diff --git a/.circleci/config.yml b/.circleci/config.yml index 32983c92e27..cf69ff68da6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -158,6 +158,8 @@ jobs: CHOCOLATEY_CONFIRM_ALL: "true" - run: name: Install Dependencies + environment: + UV_HTTP_TIMEOUT: "300" command: | $installer = Join-Path $env:TEMP "uv-install.ps1" Invoke-WebRequest -Uri https://astral.sh/uv/0.10.9/install.ps1 -OutFile $installer @@ -2475,10 +2477,15 @@ jobs: DISABLE_SCHEMA_UPDATE: "true" SERVER_ROOT_PATH: "" PROXY_LOGOUT_URL: "" + # LITELLM_LICENSE is forwarded from the project env so premium-gated + # UI flows can be exercised. license.spec.ts asserts the resulting + # JWT carries premium_user=true; if it ever stops being passed, that + # test fails loudly rather than silently regressing premium coverage. command: | - uv run --no-sync python -m litellm.proxy.proxy_cli \ - --config ui/litellm-dashboard/e2e_tests/fixtures/config.yml \ - --port 4000 + LITELLM_LICENSE="$LITELLM_LICENSE" \ + uv run --no-sync python -m litellm.proxy.proxy_cli \ + --config ui/litellm-dashboard/e2e_tests/fixtures/config.yml \ + --port 4000 background: true - run: name: Wait for proxy to be ready @@ -2495,9 +2502,12 @@ jobs: exit 1 - run: name: Run Playwright E2E tests + # Forward LITELLM_LICENSE so license.spec.ts can detect that the + # proxy was launched with a license and assert premium_user=true. command: | cd ui/litellm-dashboard - npx playwright test --config e2e_tests/playwright.config.ts + LITELLM_LICENSE="$LITELLM_LICENSE" \ + npx playwright test --config e2e_tests/playwright.config.ts no_output_timeout: 10m - store_artifacts: path: ui/litellm-dashboard/test-results @@ -2531,7 +2541,6 @@ jobs: paths: - litellm-docker-database.tar.zst - test_bad_database_url: machine: image: ubuntu-2204:2024.04.1 diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index e86fca17c7a..babe3b62933 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -53,3 +53,31 @@ jobs: uses: github/codeql-action/analyze@ebcb5b36ded6beda4ceefea6a8bc4cc885255bb3 # v3 with: category: "/language:${{ matrix.language }}" + output: sarif-results + upload: failure-only + + # py/weak-sensitive-data-hashing (CWE-328) fires on the OCI signing call at + # litellm/llms/oci/common_utils.py, which hashes the HTTP request body to + # produce the x-content-sha256 header required by the OCI HTTP signing spec — + # a content-integrity hash, not a password or secret hash. SHA-256 is mandated + # by Oracle for this header; see + # https://docs.oracle.com/en-us/iaas/Content/API/Concepts/signingrequests.htm + # The `usedforsecurity=False` flag on the hashlib.sha256 call already declares + # non-security intent, but CodeQL's taint flow still re-fires when callers + # further up the stack are modified. The suppression is scoped to this one + # file/rule pair via SARIF post-filtering so every other callsite of + # py/weak-sensitive-data-hashing in the repository continues to be analyzed. + - name: Filter SARIF (OCI sha256) + if: matrix.language == 'python' + uses: advanced-security/filter-sarif@2da736ff05ef065cb2894ac6892e47b5eac2c3c0 # v1.1 + with: + patterns: | + -litellm/llms/oci/common_utils.py:py/weak-sensitive-data-hashing + input: sarif-results/python.sarif + output: sarif-results/python.sarif + + - name: Upload SARIF + uses: github/codeql-action/upload-sarif@ebcb5b36ded6beda4ceefea6a8bc4cc885255bb3 # v3 + with: + sarif_file: sarif-results + category: "/language:${{ matrix.language }}" diff --git a/.github/workflows/test-unit-proxy-db.yml b/.github/workflows/test-unit-proxy-db.yml index 8ee3a1ed0cd..2d4e85630dc 100644 --- a/.github/workflows/test-unit-proxy-db.yml +++ b/.github/workflows/test-unit-proxy-db.yml @@ -215,8 +215,10 @@ jobs: tests/proxy_unit_tests/test_models_fallback_endpoint.py tests/proxy_unit_tests/test_google_endpoint_routing.py tests/proxy_unit_tests/test_google_gemini_proxy_request.py + tests/proxy_unit_tests/test_gemini_agents_endpoints.py tests/proxy_unit_tests/test_get_favicon.py tests/proxy_unit_tests/test_get_image.py + tests/proxy_unit_tests/test_reducto_ocr_route.py tests/proxy_unit_tests/test_ui_path_detection.py tests/proxy_unit_tests/test_prompt_test_endpoint.py tests/proxy_unit_tests/test_check_batch_cost.py diff --git a/.github/workflows/test-unit-proxy-mgmt-behavior.yml b/.github/workflows/test-unit-proxy-mgmt-behavior.yml new file mode 100644 index 00000000000..e73997323a4 --- /dev/null +++ b/.github/workflows/test-unit-proxy-mgmt-behavior.yml @@ -0,0 +1,34 @@ +name: "Unit Tests: Proxy Management-Endpoint Behavior Pinning" + +on: + pull_request: + branches: + - main + - litellm_internal_staging + - litellm_oss_branch + - "litellm_**" + +permissions: + contents: read + id-token: write + pull-requests: write + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + proxy-mgmt-behavior: + uses: ./.github/workflows/_test-unit-services-base.yml + with: + test-path: tests/proxy_behavior + # workers=0 (no xdist): the world seed is a single shared Postgres + # state — two xdist workers both call seed_world() and race on the + # ``behavior-pin-budget`` row, producing UniqueViolation + cascading + # missing-membership FK failures. The whole suite is ~7s sequentially, + # so the cost of disabling parallelism here is negligible. + workers: 0 + reruns: 0 + enable-postgres: true + artifact-name: proxy-mgmt-behavior + timeout-minutes: 15 diff --git a/README.md b/README.md index 72fd43925c9..8df351e9303 100644 --- a/README.md +++ b/README.md @@ -292,7 +292,7 @@ curl -X POST 'http://0.0.0.0:4000/v1/chat/completions' \ | [CompactifAI (`compactifai`)](https://docs.litellm.ai/docs/providers/compactifai) | ✅ | ✅ | ✅ | | | | | | | | | [Custom (`custom`)](https://docs.litellm.ai/docs/providers/custom_llm_server) | ✅ | ✅ | ✅ | | | | | | | | | [Custom OpenAI (`custom_openai`)](https://docs.litellm.ai/docs/providers/openai_compatible) | ✅ | ✅ | ✅ | | | ✅ | ✅ | ✅ | ✅ | | -| [Dashscope (`dashscope`)](https://docs.litellm.ai/docs/providers/dashscope) | ✅ | ✅ | ✅ | | | | | | | | +| [Dashscope (`dashscope`)](https://docs.litellm.ai/docs/providers/dashscope) | ✅ | ✅ | ✅ | ✅ | | | | | | ✅ | | [Databricks (`databricks`)](https://docs.litellm.ai/docs/providers/databricks) | ✅ | ✅ | ✅ | | | | | | | | | [DataRobot (`datarobot`)](https://docs.litellm.ai/docs/providers/datarobot) | ✅ | ✅ | ✅ | | | | | | | | | [Deepgram (`deepgram`)](https://docs.litellm.ai/docs/providers/deepgram) | ✅ | ✅ | ✅ | | | ✅ | | | | | diff --git a/deploy/charts/litellm-helm/Chart.yaml b/deploy/charts/litellm-helm/Chart.yaml index 0f6db331e50..0aef2442bfe 100644 --- a/deploy/charts/litellm-helm/Chart.yaml +++ b/deploy/charts/litellm-helm/Chart.yaml @@ -24,7 +24,7 @@ version: 1.1.0 # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: v1.80.12 +appVersion: v1.85.1 annotations: org.opencontainers.image.source: "https://github.com/BerriAI/litellm" diff --git a/deploy/charts/litellm-helm/templates/deployment.yaml b/deploy/charts/litellm-helm/templates/deployment.yaml index 25f69080878..aefe2a564bb 100644 --- a/deploy/charts/litellm-helm/templates/deployment.yaml +++ b/deploy/charts/litellm-helm/templates/deployment.yaml @@ -53,7 +53,7 @@ spec: - name: {{ include "litellm.name" . }} securityContext: {{- toYaml .Values.securityContext | nindent 12 }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default (printf "main-%s" .Chart.AppVersion) }}" + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} env: - name: HOST diff --git a/deploy/charts/litellm-helm/templates/hpa.yaml b/deploy/charts/litellm-helm/templates/hpa.yaml index 71e199c5aeb..fec4d1f5c5e 100644 --- a/deploy/charts/litellm-helm/templates/hpa.yaml +++ b/deploy/charts/litellm-helm/templates/hpa.yaml @@ -12,6 +12,10 @@ spec: name: {{ include "litellm.fullname" . }} minReplicas: {{ .Values.autoscaling.minReplicas }} maxReplicas: {{ .Values.autoscaling.maxReplicas }} + {{- if .Values.autoscaling.behavior }} + behavior: + {{- toYaml .Values.autoscaling.behavior | nindent 4 }} + {{- end }} metrics: {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} - type: Resource diff --git a/deploy/charts/litellm-helm/templates/migrations-job.yaml b/deploy/charts/litellm-helm/templates/migrations-job.yaml index c3f32fe32f3..5ec7f5b7f3e 100644 --- a/deploy/charts/litellm-helm/templates/migrations-job.yaml +++ b/deploy/charts/litellm-helm/templates/migrations-job.yaml @@ -41,7 +41,7 @@ spec: {{- end }} containers: - name: prisma-migrations - image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default (printf "main-%s" .Chart.AppVersion) }}" + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} securityContext: {{- toYaml .Values.securityContext | nindent 12 }} diff --git a/deploy/charts/litellm-helm/tests/hpa_tests.yaml b/deploy/charts/litellm-helm/tests/hpa_tests.yaml new file mode 100644 index 00000000000..ec18c3591d3 --- /dev/null +++ b/deploy/charts/litellm-helm/tests/hpa_tests.yaml @@ -0,0 +1,36 @@ +suite: "hpa with behavior" +templates: + - hpa.yaml +tests: + - it: "renders behavior when set" + set: + autoscaling.enabled: true + autoscaling.behavior: + scaleUp: + stabilizationWindowSeconds: 60 + policies: + - type: Pods + value: 2 + periodSeconds: 60 + scaleDown: + stabilizationWindowSeconds: 90 + policies: + - type: Pods + value: 1 + periodSeconds: 60 + asserts: + - isKind: { of: HorizontalPodAutoscaler } + - equal: { path: spec.behavior.scaleUp.stabilizationWindowSeconds, value: 60 } + - equal: { path: spec.behavior.scaleDown.stabilizationWindowSeconds, value: 90 } + +--- +suite: "hpa without behavior" +templates: + - hpa.yaml +tests: + - it: "does not render behavior when not set" + set: + autoscaling.enabled: true + asserts: + - isKind: { of: HorizontalPodAutoscaler } + - isNull: { path: spec.behavior } diff --git a/deploy/charts/litellm-helm/values.yaml b/deploy/charts/litellm-helm/values.yaml index 9c7c013341b..a9cdf28f0e7 100644 --- a/deploy/charts/litellm-helm/values.yaml +++ b/deploy/charts/litellm-helm/values.yaml @@ -10,7 +10,7 @@ image: repository: ghcr.io/berriai/litellm-database pullPolicy: Always # Overrides the image tag whose default is the chart appVersion. - # tag: "main-latest" + # tag: "latest" tag: "" imagePullSecrets: [] @@ -184,6 +184,7 @@ autoscaling: maxReplicas: 100 targetCPUUtilizationPercentage: 80 # targetMemoryUtilizationPercentage: 80 + # behavior: {} # Autoscaling with keda is mutually exclusive with hpa keda: diff --git a/docker/Dockerfile.non_root b/docker/Dockerfile.non_root index 0b9d1b9d318..8717e5b3fcd 100644 --- a/docker/Dockerfile.non_root +++ b/docker/Dockerfile.non_root @@ -24,7 +24,8 @@ RUN for i in 1 2 3; do \ curl \ openssl \ libsndfile \ - nodejs && break || sleep 5; \ + nodejs \ + npm && break || sleep 5; \ done ENV UV_PROJECT_ENVIRONMENT=/app/.venv \ diff --git a/license_cache.json b/license_cache.json index 803db8fdd1b..dc061b48f4f 100644 --- a/license_cache.json +++ b/license_cache.json @@ -50,6 +50,7 @@ "h11:0.16.0": "MIT", "requests-toolbelt:1.0.0": "Apache 2.0", "tornado:6.5.4": "Apache-2.0", + "granian:2.5.7": "BSD-3-Clause", "mlflow:3.11.1": "Copyright 2018 Databricks, Inc. All rights reserved.\n \n \t\t\t\tApache License\n Version 2.0, January 2004\n http://www.apache.org/licenses/\n \n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n \n 1. Definitions.\n \n \"License\" shall mean the terms and conditions for use, reproduction,\n and distribution as defined by Sections 1 through 9 of this document.\n \n \"Licensor\" shall mean the copyright owner or entity authorized by\n the copyright owner that is granting the License.\n \n \"Legal Entity\" shall mean the union of the acting entity and all\n other entities that control, are controlled by, or are under common\n control with that entity. For the purposes of this definition,\n \"control\" means (i) the power, direct or indirect, to cause the\n direction or management of such entity, whether by contract or\n otherwise, or (ii) ownership of fifty percent (50%) or more of the\n outstanding shares, or (iii) beneficial ownership of such entity.\n \n \"You\" (or \"Your\") shall mean an individual or Legal Entity\n exercising permissions granted by this License.\n \n \"Source\" form shall mean the preferred form for making modifications,\n including but not limited to software source code, documentation\n source, and configuration files.\n \n \"Object\" form shall mean any form resulting from mechanical\n transformation or translation of a Source form, including but\n not limited to compiled object code, generated documentation,\n and conversions to other media types.\n \n \"Work\" shall mean the work of authorship, whether in Source or\n Object form, made available under the License, as indicated by a\n copyright notice that is included in or attached to the work\n (an example is provided in the Appendix below).\n \n \"Derivative Works\" shall mean any work, whether in Source or Object\n form, that is based on (or derived from) the Work and for which the\n editorial revisions, annotations, elaborations, or other modifications\n represent, as a whole, an original work of authorship. For the purposes\n of this License, Derivative Works shall not include works that remain\n separable from, or merely link (or bind by name) to the interfaces of,\n the Work and Derivative Works thereof.\n \n \"Contribution\" shall mean any work of authorship, including\n the original version of the Work and any modifications or additions\n to that Work or Derivative Works thereof, that is intentionally\n submitted to Licensor for inclusion in the Work by the copyright owner\n or by an individual or Legal Entity authorized to submit on behalf of\n the copyright owner. For the purposes of this definition, \"submitted\"\n means any form of electronic, verbal, or written communication sent\n to the Licensor or its representatives, including but not limited to\n communication on electronic mailing lists, source code control systems,\n and issue tracking systems that are managed by, or on behalf of, the\n Licensor for the purpose of discussing and improving the Work, but\n excluding communication that is conspicuously marked or otherwise\n designated in writing by the copyright owner as \"Not a Contribution.\"\n \n \"Contributor\" shall mean Licensor and any individual or Legal Entity\n on behalf of whom a Contribution has been received by Licensor and\n subsequently incorporated within the Work.\n \n 2. Grant of Copyright License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n copyright license to reproduce, prepare Derivative Works of,\n publicly display, publicly perform, sublicense, and distribute the\n Work and such Derivative Works in Source or Object form.\n \n 3. Grant of Patent License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n (except as stated in this section) patent license to make, have made,\n use, offer to sell, sell, import, and otherwise transfer the Work,\n where such license applies only to those patent claims licensable\n by such Contributor that are necessarily infringed by their\n Contribution(s) alone or by combination of their Contribution(s)\n with the Work to which such Contribution(s) was submitted. If You\n institute patent litigation against any entity (including a\n cross-claim or counterclaim in a lawsuit) alleging that the Work\n or a Contribution incorporated within the Work constitutes direct\n or contributory patent infringement, then any patent licenses\n granted to You under this License for that Work shall terminate\n as of the date such litigation is filed.\n \n 4. Redistribution. You may reproduce and distribute copies of the\n Work or Derivative Works thereof in any medium, with or without\n modifications, and in Source or Object form, provided that You\n meet the following conditions:\n \n (a) You must give any other recipients of the Work or\n Derivative Works a copy of this License; and\n \n (b) You must cause any modified files to carry prominent notices\n stating that You changed the files; and\n \n (c) You must retain, in the Source form of any Derivative Works\n that You distribute, all copyright, patent, trademark, and\n attribution notices from the Source form of the Work,\n excluding those notices that do not pertain to any part of\n the Derivative Works; and\n \n (d) If the Work includes a \"NOTICE\" text file as part of its\n distribution, then any Derivative Works that You distribute must\n include a readable copy of the attribution notices contained\n within such NOTICE file, excluding those notices that do not\n pertain to any part of the Derivative Works, in at least one\n of the following places: within a NOTICE text file distributed\n as part of the Derivative Works; within the Source form or\n documentation, if provided along with the Derivative Works; or,\n within a display generated by the Derivative Works, if and\n wherever such third-party notices normally appear. The contents\n of the NOTICE file are for informational purposes only and\n do not modify the License. You may add Your own attribution\n notices within Derivative Works that You distribute, alongside\n or as an addendum to the NOTICE text from the Work, provided\n that such additional attribution notices cannot be construed\n as modifying the License.\n \n You may add Your own copyright statement to Your modifications and\n may provide additional or different license terms and conditions\n for use, reproduction, or distribution of Your modifications, or\n for any such Derivative Works as a whole, provided Your use,\n reproduction, and distribution of the Work otherwise complies with\n the conditions stated in this License.\n \n 5. Submission of Contributions. Unless You explicitly state otherwise,\n any Contribution intentionally submitted for inclusion in the Work\n by You to the Licensor shall be under the terms and conditions of\n this License, without any additional terms or conditions.\n Notwithstanding the above, nothing herein shall supersede or modify\n the terms of any separate license agreement you may have executed\n with Licensor regarding such Contributions.\n \n 6. Trademarks. This License does not grant permission to use the trade\n names, trademarks, service marks, or product names of the Licensor,\n except as required for reasonable and customary use in describing the\n origin of the Work and reproducing the content of the NOTICE file.\n \n 7. Disclaimer of Warranty. Unless required by applicable law or\n agreed to in writing, Licensor provides the Work (and each\n Contributor provides its Contributions) on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n implied, including, without limitation, any warranties or conditions\n of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n PARTICULAR PURPOSE. You are solely responsible for determining the\n appropriateness of using or redistributing the Work and assume any\n risks associated with Your exercise of permissions under this License.\n \n 8. Limitation of Liability. In no event and under no legal theory,\n whether in tort (including negligence), contract, or otherwise,\n unless required by applicable law (such as deliberate and grossly\n negligent acts) or agreed to in writing, shall any Contributor be\n liable to You for damages, including any direct, indirect, special,\n incidental, or consequential damages of any character arising as a\n result of this License or out of the use or inability to use the\n Work (including but not limited to damages for loss of goodwill,\n work stoppage, computer failure or malfunction, or any and all\n other commercial damages or losses), even if such Contributor\n has been advised of the possibility of such damages.\n \n 9. Accepting Warranty or Additional Liability. While redistributing\n the Work or Derivative Works thereof, You may choose to offer,\n and charge a fee for, acceptance of support, warranty, indemnity,\n or other liability obligations and/or rights consistent with this\n License. However, in accepting such obligations, You may act only\n on Your own behalf and on Your sole responsibility, not on behalf\n of any other Contributor, and only if You agree to indemnify,\n defend, and hold each Contributor harmless for any liability\n incurred by, or claims asserted against, such Contributor by reason\n of your accepting any such warranty or additional liability.\n \n END OF TERMS AND CONDITIONS\n APPENDIX: How to apply the Apache License to your work.\n \n To apply the Apache License to your work, attach the following\n boilerplate notice, with the fields enclosed by brackets \"[]\"\n replaced with your own identifying information. (Don't include\n the brackets!) The text should be enclosed in the appropriate\n comment syntax for the file format. We also recommend that a\n file or class name and description of purpose be included on the\n same \"printed page\" as the copyright notice for easier\n identification within third-party archives.\n \n Copyright [yyyy] [name of copyright owner]\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n ", "nvidia-riva-client:2.15.0": "MIT", "numpy:1.26.0": "Copyright (c) 2005-2023, NumPy Developers. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the NumPy Developers nor the names of any contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---- This binary distribution of NumPy also bundles the following software: Name: GCC runtime library Files: .dylibs/* Description: dynamically linked to files compiled with gcc Availability: https://gcc.gnu.org/viewcvs/gcc/ License: GPLv3 + runtime exception Copyright (C) 2002-2017 Free Software Foundation, Inc. Libgfortran is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. Libgfortran is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Under Section 7 of GPL version 3, you are granted additional permissions described in the GCC Runtime Library Exception, version 3.1, as published by the Free Software Foundation. You should have received a copy of the GNU General Public License and a copy of the GCC Runtime Library Exception along with this program; see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . ---- Full text of license texts referred to above follows (that they are listed below does not necessarily imply the conditions apply to the present binary release): ---- GCC RUNTIME LIBRARY EXCEPTION Version 3.1, 31 March 2009 Copyright (C) 2009 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This GCC Runtime Library Exception (\"Exception\") is an additional permission under section 7 of the GNU General Public License, version 3 (\"GPLv3\"). It applies to a given file (the \"Runtime Library\") that bears a notice placed by the copyright holder of the file stating that the file is governed by GPLv3 along with this Exception. When you use GCC to compile a program, GCC may combine portions of certain GCC header files and runtime libraries with the compiled program. The purpose of this Exception is to allow compilation of non-GPL (including proprietary) programs to use, in this way, the header files and runtime libraries covered by this Exception. 0. Definitions. A file is an \"Independent Module\" if it either requires the Runtime Library for execution after a Compilation Process, or makes use of an interface provided by the Runtime Library, but is not otherwise based on the Runtime Library. \"GCC\" means a version of the GNU Compiler Collection, with or without modifications, governed by version 3 (or a specified later version) of the GNU General Public License (GPL) with the option of using any subsequent versions published by the FSF. \"GPL-compatible Software\" is software whose conditions of propagation, modification and use would permit combination with GCC in accord with the license of GCC. \"Target Code\" refers to output from any compiler for a real or virtual target processor architecture, in executable form or suitable for input to an assembler, loader, linker and/or execution phase. Notwithstanding that, Target Code does not include data in any format that is used as a compiler intermediate representation, or used for producing a compiler intermediate representation. The \"Compilation Process\" transforms code entirely represented in non-intermediate languages designed for human-written code, and/or in Java Virtual Machine byte code, into Target Code. Thus, for example, use of source code generators and preprocessors need not be considered part of the Compilation Process, since the Compilation Process can be understood as starting with the output of the generators or preprocessors. A Compilation Process is \"Eligible\" if it is done using GCC, alone or with other GPL-compatible software, or if it is done without using any work based on GCC. For example, using non-GPL-compatible Software to optimize any GCC intermediate representations would not qualify as an Eligible Compilation Process. 1. Grant of Additional Permission. You have permission to propagate a work of Target Code formed by combining the Runtime Library with Independent Modules, even if such propagation would otherwise violate the terms of GPLv3, provided that all Target Code was generated by Eligible Compilation Processes. You may then convey such a combination under terms of your choice, consistent with the licensing of the Independent Modules. 2. No Weakening of GCC Copyleft. The availability of this Exception does not imply any general presumption that third-party software is unaffected by the copyleft requirements of the license of GCC. ---- GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. \"This License\" refers to version 3 of the GNU General Public License. \"Copyright\" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. \"The Program\" refers to any copyrightable work licensed under this License. Each licensee is addressed as \"you\". \"Licensees\" and \"recipients\" may be individuals or organizations. To \"modify\" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a \"modified version\" of the earlier work or a work \"based on\" the earlier work. A \"covered work\" means either the unmodified Program or a work based on the Program. To \"propagate\" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To \"convey\" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays \"Appropriate Legal Notices\" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The \"source code\" for a work means the preferred form of the work for making modifications to it. \"Object code\" means any non-source form of a work. A \"Standard Interface\" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The \"System Libraries\" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A \"Major Component\", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The \"Corresponding Source\" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to \"keep intact all notices\". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an \"aggregate\" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A \"User Product\" is either (1) a \"consumer product\", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, \"normally used\" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. \"Installation Information\" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. \"Additional permissions\" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered \"further restrictions\" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An \"entity transaction\" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A \"contributor\" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's \"contributor version\". A contributor's \"essential patent claims\" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, \"control\" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a \"patent license\" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To \"grant\" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. \"Knowingly relying\" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is \"discriminatory\" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License \"or any later version\" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the \"copyright\" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an \"about box\". You should also get your employer (if you work as a programmer) or school, if any, to sign a \"copyright disclaimer\" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read .", diff --git a/litellm-proxy-extras/litellm_proxy_extras/migrations/20260514120000_add_blocked_to_proxy_model_table/migration.sql b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260514120000_add_blocked_to_proxy_model_table/migration.sql new file mode 100644 index 00000000000..3253b63a884 --- /dev/null +++ b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260514120000_add_blocked_to_proxy_model_table/migration.sql @@ -0,0 +1,4 @@ +-- AlterTable +-- Adds the admin-toggleable pause flag used by the router's blocked filter and the +-- credential lookup helpers; defaults to false so existing rows behave unchanged. +ALTER TABLE "LiteLLM_ProxyModelTable" ADD COLUMN IF NOT EXISTS "blocked" BOOLEAN NOT NULL DEFAULT false; diff --git a/litellm-proxy-extras/litellm_proxy_extras/schema.prisma b/litellm-proxy-extras/litellm_proxy_extras/schema.prisma index b53507abe6a..78143fe0411 100644 --- a/litellm-proxy-extras/litellm_proxy_extras/schema.prisma +++ b/litellm-proxy-extras/litellm_proxy_extras/schema.prisma @@ -48,9 +48,10 @@ model LiteLLM_CredentialsTable { // Models on proxy model LiteLLM_ProxyModelTable { model_id String @id @default(uuid()) - model_name String + model_name String litellm_params Json - model_info Json? + model_info Json? + blocked Boolean @default(false) created_at DateTime @default(now()) @map("created_at") created_by String updated_at DateTime @default(now()) @updatedAt @map("updated_at") diff --git a/litellm-proxy-extras/pyproject.toml b/litellm-proxy-extras/pyproject.toml index ee27cc3585e..0654f17ec68 100644 --- a/litellm-proxy-extras/pyproject.toml +++ b/litellm-proxy-extras/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "litellm-proxy-extras" -version = "0.4.72" +version = "0.4.73" description = "Additional files for the LiteLLM Proxy. Reduces the size of the main litellm package." readme = "README.md" requires-python = ">=3.9" @@ -26,7 +26,7 @@ required-version = ">=0.10.9" module-root = "" [tool.commitizen] -version = "0.4.72" +version = "0.4.73" version_files = [ "pyproject.toml:^version", "../pyproject.toml:litellm-proxy-extras==", diff --git a/litellm/__init__.py b/litellm/__init__.py index e1b367fb234..7c92623358d 100644 --- a/litellm/__init__.py +++ b/litellm/__init__.py @@ -225,6 +225,10 @@ use_chat_completions_url_for_anthropic_messages: bool = bool( route_all_chat_openai_to_responses: bool = ( os.getenv("LITELLM_ROUTE_ALL_CHAT_OPENAI_TO_RESPONSES", "false").lower() == "true" ) # When True, routes all OpenAI /chat/completions requests through the Responses API bridge +use_legacy_interactions_schema: bool = ( + os.getenv("LITELLM_USE_LEGACY_INTERACTIONS_SCHEMA", "false").lower() == "true" +) # When True, sends Api-Revision: 2026-05-07 to Google so responses use the legacy `outputs` +# schema instead of the new `steps` schema. Remove this flag after June 8, 2026. retry = True ### AUTH ### api_key: Optional[str] = None @@ -409,6 +413,12 @@ internal_user_budget_duration: Optional[str] = None tag_budget_config: Optional[Dict[str, "BudgetConfig"]] = None max_end_user_budget: Optional[float] = None max_end_user_budget_id: Optional[str] = None +# When True, end-user IDs extracted from requests are validated against +# LiteLLM_EndUserTable / LiteLLM_UserTable. Values that do not resolve to a +# known row are dropped before reaching spend logs. Defaults to False for +# backwards compatibility — arbitrary client-supplied identifiers still +# pass through unchanged. +validate_end_user_id_in_db: bool = False disable_end_user_cost_tracking: Optional[bool] = None disable_end_user_cost_tracking_prometheus_only: Optional[bool] = None enable_end_user_cost_tracking_prometheus_only: Optional[bool] = None @@ -416,6 +426,7 @@ custom_prometheus_metadata_labels: List[str] = [] custom_prometheus_tags: List[str] = [] prometheus_metrics_config: Optional[List] = None prometheus_emit_stream_label: bool = False +prometheus_user_budget_label_include_email_alias: bool = False prometheus_end_user_metrics_max_series_per_metric: Optional[int] = 10000 prometheus_end_user_metrics_ttl_seconds: Optional[float] = 3600.0 prometheus_end_user_metrics_cleanup_interval_seconds: Optional[float] = 60.0 @@ -631,6 +642,7 @@ minimax_models: Set = set() aws_polly_models: Set = set() gigachat_models: Set = set() llamagate_models: Set = set() +reducto_models: Set = set() bedrock_mantle_models: Set = set() @@ -898,6 +910,8 @@ def add_known_models(model_cost_map: Optional[Dict] = None): gigachat_models.add(key) elif value.get("litellm_provider") == "llamagate": llamagate_models.add(key) + elif value.get("litellm_provider") == "reducto": + reducto_models.add(key) elif value.get("litellm_provider") == "bedrock_mantle": bedrock_mantle_models.add(key) @@ -1009,6 +1023,7 @@ model_list = list( | ovhcloud_models | lemonade_models | docker_model_runner_models + | reducto_models | bedrock_mantle_models | set(clarifai_models) ) @@ -1115,6 +1130,7 @@ models_by_provider: dict = { "aws_polly": aws_polly_models, "gigachat": gigachat_models, "llamagate": llamagate_models, + "reducto": reducto_models, "bedrock_mantle": bedrock_mantle_models, } @@ -1287,6 +1303,18 @@ from .responses.main import * # Interactions API is available as litellm.interactions module # Usage: litellm.interactions.create(), litellm.interactions.get(), etc. from . import interactions +from .interactions.agents.main import ( + acreate as acreate_agent, + create as create_agent, + alist as alist_agents, + list as list_agents, + aget as aget_agent, + get as get_agent, + adelete as adelete_agent, + delete as delete_agent, + alist_versions as alist_agent_versions, + list_versions as list_agent_versions, +) from .skills.main import ( create_skill, acreate_skill, @@ -1849,6 +1877,9 @@ if TYPE_CHECKING: from .llms.azure.completion.transformation import ( AzureOpenAITextConfig as AzureOpenAITextConfig, ) + from .llms.azure.audio_transcription.transformation import ( + AzureSpeechAudioTranscriptionConfig as AzureSpeechAudioTranscriptionConfig, + ) from .llms.hosted_vllm.chat.transformation import ( HostedVLLMChatConfig as HostedVLLMChatConfig, ) @@ -1880,6 +1911,12 @@ if TYPE_CHECKING: from .llms.dashscope.chat.transformation import ( DashScopeChatConfig as DashScopeChatConfig, ) + from .llms.dashscope.embed.transformation import ( + DashScopeEmbeddingConfig as DashScopeEmbeddingConfig, + ) + from .llms.dashscope.rerank.transformation import ( + DashScopeRerankConfig as DashScopeRerankConfig, + ) from .llms.moonshot.chat.transformation import ( MoonshotChatConfig as MoonshotChatConfig, ) diff --git a/litellm/_lazy_imports_registry.py b/litellm/_lazy_imports_registry.py index e3656b340fa..17eb6609292 100644 --- a/litellm/_lazy_imports_registry.py +++ b/litellm/_lazy_imports_registry.py @@ -273,6 +273,7 @@ LLM_CONFIG_NAMES = ( "AzureOpenAIConfig", "AzureOpenAIGPT5Config", "AzureOpenAITextConfig", + "AzureSpeechAudioTranscriptionConfig", "HostedVLLMChatConfig", "HostedVLLMEmbeddingConfig", # Alias for backwards compatibility @@ -1054,6 +1055,10 @@ _LLM_CONFIGS_IMPORT_MAP = { ".llms.azure.completion.transformation", "AzureOpenAITextConfig", ), + "AzureSpeechAudioTranscriptionConfig": ( + ".llms.azure.audio_transcription.transformation", + "AzureSpeechAudioTranscriptionConfig", + ), "HostedVLLMChatConfig": ( ".llms.hosted_vllm.chat.transformation", "HostedVLLMChatConfig", diff --git a/litellm/_redis.py b/litellm/_redis.py index 65284162663..5ab551453bb 100644 --- a/litellm/_redis.py +++ b/litellm/_redis.py @@ -100,6 +100,8 @@ def _get_redis_cluster_kwargs(client=None): "azure_tenant_id", "azure_client_secret", "max_connections", + "socket_timeout", + "socket_connect_timeout", } return available_args diff --git a/litellm/_uuid.py b/litellm/_uuid.py index 52acf647dd8..2b7c3b82d35 100644 --- a/litellm/_uuid.py +++ b/litellm/_uuid.py @@ -6,7 +6,6 @@ Always uses fastuuid for performance. import fastuuid as _uuid # type: ignore - # Expose a module-like alias so callers can use: uuid.uuid4() uuid = _uuid diff --git a/litellm/anthropic_interface/exceptions/exception_mapping_utils.py b/litellm/anthropic_interface/exceptions/exception_mapping_utils.py index 28020e763f4..4548185bbdc 100644 --- a/litellm/anthropic_interface/exceptions/exception_mapping_utils.py +++ b/litellm/anthropic_interface/exceptions/exception_mapping_utils.py @@ -9,7 +9,6 @@ from typing import Dict, Optional from .exceptions import AnthropicErrorResponse, AnthropicErrorType - # HTTP status code -> Anthropic error type # Source: https://docs.anthropic.com/en/api/errors ANTHROPIC_ERROR_TYPE_MAP: Dict[int, AnthropicErrorType] = { diff --git a/litellm/anthropic_interface/exceptions/exceptions.py b/litellm/anthropic_interface/exceptions/exceptions.py index 984390fa702..b289e493e6b 100644 --- a/litellm/anthropic_interface/exceptions/exceptions.py +++ b/litellm/anthropic_interface/exceptions/exceptions.py @@ -2,7 +2,6 @@ from typing_extensions import Literal, Required, TypedDict - # Known Anthropic error types # Source: https://docs.anthropic.com/en/api/errors AnthropicErrorType = Literal[ diff --git a/litellm/caching/caching_handler.py b/litellm/caching/caching_handler.py index 3cf1d911d7f..3f4e54382c9 100644 --- a/litellm/caching/caching_handler.py +++ b/litellm/caching/caching_handler.py @@ -87,6 +87,16 @@ class CachingHandlerResponse(BaseModel): in_memory_cache_obj = InMemoryCache() +def _is_chat_completion_cached_dict(cached_result: dict) -> bool: + cached_id = cached_result.get("id") + if isinstance(cached_id, str) and cached_id.startswith("chatcmpl"): + return True + obj = cached_result.get("object") + if isinstance(obj, str): + return obj.startswith("chat.completion") + return "choices" in cached_result + + def _should_defer_streaming_cache_hit_callbacks(*, kwargs: Dict[str, Any]) -> bool: """ When stream=True, do not run success callbacks at cache-hit time. @@ -861,27 +871,47 @@ class LLMCachingHandler: elif (call_type == "aresponses" or call_type == "responses") and isinstance( cached_result, dict ): - from litellm.responses.streaming_iterator import ( - CachedResponsesAPIStreamingIterator, - ) - - response_obj = ResponsesAPIResponse(**cached_result) - if ( - hasattr(response_obj, "_hidden_params") - and response_obj._hidden_params is not None - and isinstance(response_obj._hidden_params, dict) - ): - response_obj._hidden_params["cache_hit"] = True - - if kwargs.get("stream", False) is True: - cached_result = CachedResponsesAPIStreamingIterator( - response=response_obj, - logging_obj=logging_obj, - request_data=kwargs, - call_type=call_type, - ) + use_chat_completion_cache = _is_chat_completion_cached_dict(cached_result) + if use_chat_completion_cache: + if kwargs.get("stream", False) is True: + bridge_call_type = ( + CallTypes.acompletion.value + if call_type == "aresponses" + else CallTypes.completion.value + ) + cached_result = self._convert_cached_stream_response( + cached_result=cached_result, + call_type=bridge_call_type, + logging_obj=logging_obj, + model=model, + ) + else: + cached_result = convert_to_model_response_object( + response_object=cached_result, + model_response_object=ModelResponse(), + ) else: - cached_result = response_obj + from litellm.responses.streaming_iterator import ( + CachedResponsesAPIStreamingIterator, + ) + + response_obj = ResponsesAPIResponse(**cached_result) + if ( + hasattr(response_obj, "_hidden_params") + and response_obj._hidden_params is not None + and isinstance(response_obj._hidden_params, dict) + ): + response_obj._hidden_params["cache_hit"] = True + + if kwargs.get("stream", False) is True: + cached_result = CachedResponsesAPIStreamingIterator( + response=response_obj, + logging_obj=logging_obj, + request_data=kwargs, + call_type=call_type, + ) + else: + cached_result = response_obj if ( hasattr(cached_result, "_hidden_params") diff --git a/litellm/completion_extras/litellm_responses_transformation/handler.py b/litellm/completion_extras/litellm_responses_transformation/handler.py index ce398ee8288..2de7bda6467 100644 --- a/litellm/completion_extras/litellm_responses_transformation/handler.py +++ b/litellm/completion_extras/litellm_responses_transformation/handler.py @@ -37,6 +37,15 @@ class ResponsesToCompletionBridgeHandler: stream = litellm_params.get("stream", False) return bool(stream) + @staticmethod + def _is_preformatted_cached_chat_stream(result: Any) -> bool: + from litellm.litellm_core_utils.streaming_handler import CustomStreamWrapper + + return ( + isinstance(result, CustomStreamWrapper) + and result.custom_llm_provider == "cached_response" + ) + @staticmethod def _coerce_response_object( response_obj: Any, @@ -177,6 +186,8 @@ class ResponsesToCompletionBridgeHandler: **request_data, ) + from litellm.types.utils import ModelResponse + stream = self._resolve_stream_flag(optional_params, litellm_params) if isinstance(result, ResponsesAPIResponse): return self.transformation_handler.transform_response( @@ -192,6 +203,8 @@ class ResponsesToCompletionBridgeHandler: api_key=kwargs.get("api_key"), json_mode=kwargs.get("json_mode"), ) + elif isinstance(result, ModelResponse): + return result elif not stream: responses_api_response = self._collect_response_from_stream(result) return self.transformation_handler.transform_response( @@ -208,6 +221,10 @@ class ResponsesToCompletionBridgeHandler: json_mode=kwargs.get("json_mode"), ) else: + if self._is_preformatted_cached_chat_stream(result): + return self._apply_post_stream_processing( + result, model, custom_llm_provider + ) completion_stream = self.transformation_handler.get_model_response_iterator( streaming_response=result, # type: ignore sync_stream=True, @@ -256,6 +273,8 @@ class ResponsesToCompletionBridgeHandler: aresponses=True, ) + from litellm.types.utils import ModelResponse + stream = self._resolve_stream_flag(optional_params, litellm_params) if isinstance(result, ResponsesAPIResponse): return self.transformation_handler.transform_response( @@ -271,6 +290,8 @@ class ResponsesToCompletionBridgeHandler: api_key=kwargs.get("api_key"), json_mode=kwargs.get("json_mode"), ) + elif isinstance(result, ModelResponse): + return result elif not stream: responses_api_response = await self._collect_response_from_stream_async( result @@ -289,6 +310,10 @@ class ResponsesToCompletionBridgeHandler: json_mode=kwargs.get("json_mode"), ) else: + if self._is_preformatted_cached_chat_stream(result): + return self._apply_post_stream_processing( + result, model, custom_llm_provider + ) completion_stream = self.transformation_handler.get_model_response_iterator( streaming_response=result, # type: ignore sync_stream=False, diff --git a/litellm/completion_extras/litellm_responses_transformation/transformation.py b/litellm/completion_extras/litellm_responses_transformation/transformation.py index 32423f23314..51abbbf729b 100644 --- a/litellm/completion_extras/litellm_responses_transformation/transformation.py +++ b/litellm/completion_extras/litellm_responses_transformation/transformation.py @@ -30,6 +30,11 @@ from litellm.llms.base_llm.base_model_iterator import BaseModelResponseIterator from litellm.llms.base_llm.bridges.completion_transformation import ( CompletionTransformationBridge, ) +from litellm.responses.sse_output_recovery import ( + parse_sse_json_chunk, + record_output_item_chunk, + record_output_text_chunk, +) from litellm.types.llms.openai import ( ChatCompletionAnnotation, ChatCompletionReasoningItem, @@ -97,7 +102,7 @@ def _build_reasoning_item( def _reasoning_item_to_response_input( - r_item: Union[ChatCompletionReasoningItem, Dict[str, Any]] + r_item: Union[ChatCompletionReasoningItem, Dict[str, Any]], ) -> Dict[str, Any]: """Convert a stored ChatCompletionReasoningItem back to a Responses API input item.""" r_input: Dict[str, Any] = { @@ -601,6 +606,79 @@ class LiteLLMResponsesTransformationHandler(CompletionTransformationBridge): return choices + @classmethod + def _extract_output_from_completed_event( + cls, parsed_chunk: Dict[str, Any] + ) -> Optional[List[Dict[str, Any]]]: + response_payload = parsed_chunk.get("response") + if not isinstance(response_payload, dict): + return None + response_output = response_payload.get("output") + if not isinstance(response_output, list) or len(response_output) == 0: + return None + return cast(List[Dict[str, Any]], response_output) + + @classmethod + def _recover_output_items_from_raw_sse( + cls, raw_sse: Optional[str] + ) -> List[Dict[str, Any]]: + if not raw_sse or not isinstance(raw_sse, str): + return [] + + recovered_output_items: Dict[int, Dict[str, Any]] = {} + recovered_text_only_items: Dict[int, Dict[str, Any]] = {} + + for chunk in raw_sse.splitlines(): + parsed_chunk = parse_sse_json_chunk(chunk) + if parsed_chunk is None: + continue + + event_type = parsed_chunk.get("type") + + if event_type == ResponsesAPIStreamEvents.RESPONSE_COMPLETED: + recovered_output = cls._extract_output_from_completed_event( + parsed_chunk + ) + if recovered_output is not None: + return recovered_output + continue + + if event_type == ResponsesAPIStreamEvents.OUTPUT_ITEM_DONE: + record_output_item_chunk( + parsed_chunk=parsed_chunk, + output_items=recovered_output_items, + ) + continue + + if event_type == ResponsesAPIStreamEvents.OUTPUT_TEXT_DONE: + record_output_text_chunk( + parsed_chunk=parsed_chunk, + output_items=recovered_output_items, + text_only_items=recovered_text_only_items, + ) + continue + + # Merge text-only items into the recovered output items. Real + # OUTPUT_ITEM_DONE events take precedence at any given output_index, + # but text-only items at indices without a matching OUTPUT_ITEM_DONE + # must still be preserved (e.g. multi-output responses where some + # indices only emitted OUTPUT_TEXT_DONE). + merged_items: Dict[int, Dict[str, Any]] = {**recovered_text_only_items} + merged_items.update(recovered_output_items) + + if merged_items: + return [item for _, item in sorted(merged_items.items())] + + return [] + + @classmethod + def _recover_output_items_from_logging( + cls, logging_obj: "LiteLLMLoggingObj" + ) -> List[Dict[str, Any]]: + model_call_details = getattr(logging_obj, "model_call_details", {}) or {} + original_response = model_call_details.get("original_response") + return cls._recover_output_items_from_raw_sse(original_response) + def transform_response( # noqa: PLR0915 self, model: str, @@ -625,9 +703,22 @@ class LiteLLMResponsesTransformationHandler(CompletionTransformationBridge): if raw_response.error is not None: raise ValueError(f"Error in response: {raw_response.error}") + output_items = raw_response.output + if len(output_items) == 0: + recovered_output_items = self._recover_output_items_from_logging( + logging_obj + ) + if recovered_output_items: + output_items = cast(Any, recovered_output_items) + raw_response.output = cast(Any, recovered_output_items) + verbose_logger.warning( + "Recovered empty Responses API output from raw SSE for model=%s", + model, + ) + # Convert response output to choices using the static helper choices = self._convert_response_output_to_choices( - output_items=raw_response.output, + output_items=output_items, handle_raw_dict_callback=self._handle_raw_dict_response_item, ) @@ -641,7 +732,7 @@ class LiteLLMResponsesTransformationHandler(CompletionTransformationBridge): ) else: raise ValueError( - f"Unknown items in responses API response: {raw_response.output}" + f"Unknown items in responses API response: {output_items}" ) setattr(model_response, "choices", choices) @@ -1141,6 +1232,14 @@ class OpenAiResponsesToChatCompletionStreamIterator(BaseModelResponseIterator): event_type = parsed_chunk.get("type") if isinstance(event_type, ResponsesAPIStreamEvents): event_type = event_type.value + + if parsed_chunk.get("object") == "chat.completion.chunk" or ( + event_type is None + and isinstance(parsed_chunk.get("choices"), list) + and parsed_chunk.get("choices") + ): + return ModelResponseStream(**parsed_chunk) + verbose_logger.debug(f"Chat provider: Processing event type: {event_type}") if event_type == "response.created": @@ -1229,7 +1328,7 @@ class OpenAiResponsesToChatCompletionStreamIterator(BaseModelResponseIterator): raise ValueError( f"Chat provider: Invalid function argument delta {parsed_chunk}" ) - elif event_type == "response.output_item.done": + elif event_type == ResponsesAPIStreamEvents.OUTPUT_ITEM_DONE: # New output item added output_item = parsed_chunk.get("item", {}) if output_item.get("type") == "function_call": diff --git a/litellm/compression/content_detection.py b/litellm/compression/content_detection.py index 0655a42daf5..975117eb608 100644 --- a/litellm/compression/content_detection.py +++ b/litellm/compression/content_detection.py @@ -5,7 +5,6 @@ Auto-detect content type per message: code, JSON, or text. import json import re - _CODE_KEYWORDS = re.compile( r"\b(?:def |function |class |import |from |require\(|#include|fn |func |const |let |var |public |private |static )\b" ) diff --git a/litellm/constants.py b/litellm/constants.py index e36746326cc..fb765c0226c 100644 --- a/litellm/constants.py +++ b/litellm/constants.py @@ -1443,6 +1443,12 @@ CLI_JWT_EXPIRATION_HOURS = int( or os.getenv("LITELLM_CLI_JWT_EXPIRATION_HOURS") or 24 ) +# Comma-separated allowlisted OIDC claim map for CLI SSO polling, e.g. +# "employment_type->acme_employment_type,org_info.department->department" +CLI_SSO_CLAIM_MAP = ( + os.getenv("CLI_SSO_CLAIM_MAP") or os.getenv("LITELLM_CLI_SSO_CLAIM_MAP") or "" +) +CLI_SSO_CLAIM_MAX_SCALAR_LENGTH = 1024 ########################### UI SESSION DURATION ########################### # Duration for UI login session (username/password, SSO, invitation links). Format: "30s", "30m", "24h", "7d" diff --git a/litellm/cost_calculator.py b/litellm/cost_calculator.py index c0ec148d03a..98e00cf5788 100644 --- a/litellm/cost_calculator.py +++ b/litellm/cost_calculator.py @@ -173,17 +173,45 @@ def _cost_per_token_custom_pricing_helper( prompt_tokens: float = 0, completion_tokens: float = 0, response_time_ms: Optional[float] = 0.0, + cached_tokens: float = 0, + cache_creation_tokens: float = 0, ### CUSTOM PRICING ### custom_cost_per_token: Optional[CostPerToken] = None, custom_cost_per_second: Optional[float] = None, ) -> Optional[Tuple[float, float]]: - """Internal helper function for calculating cost, if custom pricing given""" + """Internal helper function for calculating cost, if custom pricing given. + + prompt_tokens is assumed to include both cached_tokens and cache_creation_tokens + (OpenAI-compatible convention). Anthropic-style usage where prompt_tokens excludes + cache tokens is handled at the caller (cost_per_token) before invoking this helper. + """ if custom_cost_per_token is None and custom_cost_per_second is None: return None if custom_cost_per_token is not None: - input_cost = custom_cost_per_token["input_cost_per_token"] * prompt_tokens - output_cost = custom_cost_per_token["output_cost_per_token"] * completion_tokens + input_cost_per_token = custom_cost_per_token["input_cost_per_token"] + output_cost_per_token = custom_cost_per_token["output_cost_per_token"] + + cache_read_input_token_cost = custom_cost_per_token.get( + "cache_read_input_token_cost", + input_cost_per_token, + ) + cache_creation_input_token_cost = custom_cost_per_token.get( + "cache_creation_input_token_cost", + input_cost_per_token, + ) + + regular_prompt_tokens = max( + prompt_tokens - cached_tokens - cache_creation_tokens, + 0, + ) + + input_cost = ( + regular_prompt_tokens * input_cost_per_token + + cached_tokens * cache_read_input_token_cost + + cache_creation_tokens * cache_creation_input_token_cost + ) + output_cost = completion_tokens * output_cost_per_token return input_cost, output_cost elif custom_cost_per_second is not None: output_cost = custom_cost_per_second * response_time_ms / 1000 # type: ignore @@ -323,10 +351,56 @@ def cost_per_token( # noqa: PLR0915 ) ## CUSTOM PRICING ## + # Normalize cache token counts across providers: + # - OpenAI-compatible: usage.prompt_tokens_details.cached_tokens + # (prompt_tokens already INCLUDES cached_tokens) + # - Anthropic: usage.cache_read_input_tokens / cache_creation_input_tokens + # (prompt_tokens does NOT include these — adjust before calling helper) + _cache_read_tokens: float = 0 + _cache_creation_tokens: float = 0 + _is_anthropic_style = False + + if usage_object is not None: + _pt_details = getattr(usage_object, "prompt_tokens_details", None) + if _pt_details is not None: + _cache_read_tokens = float(getattr(_pt_details, "cached_tokens", 0) or 0) + # OpenAI-compatible providers report cache-write tokens under + # either `cache_write_tokens` (kimi-k2) or `cache_creation_tokens`. + # Mirror db_spend_update_writer to stay symmetric. + _cache_creation_tokens = float( + getattr(_pt_details, "cache_write_tokens", 0) + or getattr(_pt_details, "cache_creation_tokens", 0) + or 0 + ) + + _anthropic_read = getattr(usage_object, "cache_read_input_tokens", None) + _anthropic_create = getattr(usage_object, "cache_creation_input_tokens", None) + if _anthropic_read is not None or _anthropic_create is not None: + _is_anthropic_style = True + if _anthropic_read is not None: + _cache_read_tokens = float(_anthropic_read) + if _anthropic_create is not None: + _cache_creation_tokens = float(_anthropic_create) + + if not _cache_read_tokens and cache_read_input_tokens: + _cache_read_tokens = float(cache_read_input_tokens) + _is_anthropic_style = True + if not _cache_creation_tokens and cache_creation_input_tokens: + _cache_creation_tokens = float(cache_creation_input_tokens) + _is_anthropic_style = True + + # Anthropic reports prompt_tokens as input_tokens (excluding cache tokens). + # Adjust so the helper's "prompt_tokens includes cache tokens" invariant holds. + _normalized_prompt_tokens = float(prompt_tokens) + if _is_anthropic_style: + _normalized_prompt_tokens += _cache_read_tokens + _cache_creation_tokens + response_cost = _cost_per_token_custom_pricing_helper( - prompt_tokens=prompt_tokens, + prompt_tokens=_normalized_prompt_tokens, completion_tokens=completion_tokens, response_time_ms=response_time_ms, + cached_tokens=_cache_read_tokens, + cache_creation_tokens=_cache_creation_tokens, custom_cost_per_second=custom_cost_per_second, custom_cost_per_token=custom_cost_per_token, ) @@ -1805,10 +1879,6 @@ def ocr_cost( if response.usage_info is None: raise ValueError("OCR response usage_info is None") - pages_processed = response.usage_info.pages_processed - if pages_processed is None: - raise ValueError("OCR response pages_processed is None") - try: model_info: Optional[ModelInfo] = litellm.get_model_info( model=model, custom_llm_provider=custom_llm_provider @@ -1816,9 +1886,49 @@ def ocr_cost( except Exception: model_info = None - ocr_cost_per_page: float = 0.0 + credits = getattr(response.usage_info, "credits", None) + cost_per_credit = None if model_info is not None: - ocr_cost_per_page = model_info.get("ocr_cost_per_page") or 0.0 + cost_per_credit = model_info.get("ocr_cost_per_credit") + if credits is not None and cost_per_credit is not None: + return cost_per_credit * credits, 0.0 + + ocr_cost_per_page: Optional[float] = None + if model_info is not None: + ocr_cost_per_page = model_info.get("ocr_cost_per_page") + + pages_processed = response.usage_info.pages_processed + if pages_processed is None: + if cost_per_credit is not None or ocr_cost_per_page is None: + # Surface missing usage data instead of silently under-reporting + # cost. The previous behavior raised ValueError; we now return 0.0 + # for credit-priced or unpriced models, so log a warning to keep + # the regression visible to operators. + verbose_logger.warning( + "OCR cost: model=%s custom_llm_provider=%s response.usage_info." + "pages_processed is None and credits=%s; returning 0.0 cost.", + model, + custom_llm_provider, + credits, + ) + return 0.0, 0.0 + raise ValueError("OCR response pages_processed is None") + + if ocr_cost_per_page is None: + # No per-page pricing configured. Either the model is on credit-based + # pricing (and credits weren't returned, so the credit branch above did + # not match) or the model has no OCR pricing entry at all. Surface a + # warning so that missing pricing entries are visible rather than + # silently producing zero cost for billable usage. + verbose_logger.warning( + "OCR cost: model=%s custom_llm_provider=%s reported " + "pages_processed=%s but no ocr_cost_per_page is configured; " + "returning 0.0 cost.", + model, + custom_llm_provider, + pages_processed, + ) + return 0.0, 0.0 total_ocr_processing_cost: float = ocr_cost_per_page * pages_processed return total_ocr_processing_cost, 0.0 diff --git a/litellm/exceptions.py b/litellm/exceptions.py index 8b005291556..17f5b43c273 100644 --- a/litellm/exceptions.py +++ b/litellm/exceptions.py @@ -918,9 +918,11 @@ class GuardrailRaisedException(Exception): guardrail_name: Optional[str] = None, message: str = "", should_wrap_with_default_message: bool = True, + status_code: int = 400, ): default_message = f"Guardrail raised an exception, Guardrail: {guardrail_name}, Message: {message}" self.guardrail_name = guardrail_name + self.status_code = status_code self.message = default_message if should_wrap_with_default_message else message super().__init__(self.message) @@ -930,12 +932,14 @@ class BlockedPiiEntityError(Exception): self, entity_type: str, guardrail_name: Optional[str] = None, + status_code: int = 400, ): """ Raised when a blocked entity is detected by a guardrail. """ self.entity_type = entity_type self.guardrail_name = guardrail_name + self.status_code = status_code self.message = f"Blocked entity detected: {entity_type} by Guardrail: {guardrail_name}. This entity is not allowed to be used in this request." super().__init__(self.message) diff --git a/litellm/files/types.py b/litellm/files/types.py index 688bc86f0cf..ba42a39f666 100644 --- a/litellm/files/types.py +++ b/litellm/files/types.py @@ -1,6 +1,5 @@ from typing import AsyncIterator, Dict, Iterator, Literal, NamedTuple, Union - FileContentProvider = Literal[ "openai", "azure", "vertex_ai", "bedrock", "hosted_vllm", "anthropic", "manus" ] diff --git a/litellm/google_genai/adapters/__init__.py b/litellm/google_genai/adapters/__init__.py index bfa9e712678..6fbe7d95a55 100644 --- a/litellm/google_genai/adapters/__init__.py +++ b/litellm/google_genai/adapters/__init__.py @@ -1,10 +1,10 @@ """ Google GenAI Adapters for LiteLLM -This module provides adapters for transforming Google GenAI generate_content requests +This module provides adapters for transforming Google GenAI generate_content requests to/from LiteLLM completion format with full support for: - Text content transformation -- Tool calling (function declarations, function calls, function responses) +- Tool calling (function declarations, function calls, function responses) - Streaming (both regular and tool calling) - Mixed content (text + tool calls) """ diff --git a/litellm/integrations/SlackAlerting/batching_handler.py b/litellm/integrations/SlackAlerting/batching_handler.py index fdce2e04793..828f3eb4175 100644 --- a/litellm/integrations/SlackAlerting/batching_handler.py +++ b/litellm/integrations/SlackAlerting/batching_handler.py @@ -1,9 +1,9 @@ """ -Handles Batching + sending Httpx Post requests to slack +Handles Batching + sending Httpx Post requests to slack -Slack alerts are sent every 10s or when events are greater than X events +Slack alerts are sent every 10s or when events are greater than X events -see custom_batch_logger.py for more details / defaults +see custom_batch_logger.py for more details / defaults """ from typing import TYPE_CHECKING, Any diff --git a/litellm/integrations/SlackAlerting/utils.py b/litellm/integrations/SlackAlerting/utils.py index e695266c88b..e2580768178 100644 --- a/litellm/integrations/SlackAlerting/utils.py +++ b/litellm/integrations/SlackAlerting/utils.py @@ -18,7 +18,7 @@ else: def process_slack_alerting_variables( - alert_to_webhook_url: Optional[Dict[AlertType, Union[List[str], str]]] + alert_to_webhook_url: Optional[Dict[AlertType, Union[List[str], str]]], ) -> Optional[Dict[AlertType, Union[List[str], str]]]: """ process alert_to_webhook_url diff --git a/litellm/integrations/additional_logging_utils.py b/litellm/integrations/additional_logging_utils.py index 795afd81d41..59319140a18 100644 --- a/litellm/integrations/additional_logging_utils.py +++ b/litellm/integrations/additional_logging_utils.py @@ -1,5 +1,5 @@ """ -Base class for Additional Logging Utils for CustomLoggers +Base class for Additional Logging Utils for CustomLoggers - Health Check for the logging util - Get Request / Response Payload for the logging util diff --git a/litellm/integrations/custom_batch_logger.py b/litellm/integrations/custom_batch_logger.py index f9d4496c21f..8f4844501c3 100644 --- a/litellm/integrations/custom_batch_logger.py +++ b/litellm/integrations/custom_batch_logger.py @@ -1,5 +1,5 @@ """ -Custom Logger that handles batching logic +Custom Logger that handles batching logic Use this if you want your logs to be stored in memory and flushed periodically. """ @@ -14,22 +14,38 @@ from litellm.integrations.custom_logger import CustomLogger class CustomBatchLogger(CustomLogger): + preserve_events_added_during_flush = False + + # Default cap on the in-memory log queue. Prevents unbounded memory growth + # if ``async_send_batch`` consistently fails (e.g. the destination is + # unreachable) and events are preserved across flush attempts. Subclasses + # may override by passing ``max_queue_size`` or by setting the attribute + # directly (see ``RubrikLogger`` for an example). + DEFAULT_MAX_QUEUE_SIZE = 50_000 + def __init__( self, flush_lock: Optional[asyncio.Lock] = None, batch_size: Optional[int] = None, flush_interval: Optional[int] = None, + max_queue_size: Optional[int] = None, **kwargs, ) -> None: """ Args: flush_lock (Optional[asyncio.Lock], optional): Lock to use when flushing the queue. Defaults to None. Only used for custom loggers that do batching + max_queue_size (Optional[int], optional): Maximum number of events to retain in ``log_queue``. When the limit is exceeded (e.g. because the send destination is unreachable and events are preserved for retry), the oldest events are dropped. Defaults to ``DEFAULT_MAX_QUEUE_SIZE``. """ self.log_queue: List = [] self.flush_interval = flush_interval or litellm.DEFAULT_FLUSH_INTERVAL_SECONDS self.batch_size: int = batch_size or litellm.DEFAULT_BATCH_SIZE self.last_flush_time = time.time() self.flush_lock = flush_lock + self.max_queue_size: int = ( + max_queue_size + if max_queue_size is not None + else self.DEFAULT_MAX_QUEUE_SIZE + ) super().__init__(**kwargs) @@ -47,11 +63,40 @@ class CustomBatchLogger(CustomLogger): async with self.flush_lock: if self.log_queue: + log_queue_length = len(self.log_queue) verbose_logger.debug( "CustomLogger: Flushing batch of %s events", len(self.log_queue) ) - await self.async_send_batch() - self.log_queue.clear() + try: + await self.async_send_batch() + except Exception: + # If the underlying batch send raised, do NOT drop the + # in-flight events. They will be retried on the next flush. + # Most existing async_send_batch implementations swallow + # their own errors, so this only affects loggers that opt + # in to surfacing failures (e.g. Rubrik). + verbose_logger.exception( + "CustomLogger: async_send_batch raised; preserving " + "%s events in queue for retry", + log_queue_length, + ) + # Guard against unbounded queue growth if the destination + # is persistently unreachable. Drop the oldest events + # beyond ``max_queue_size``. + overflow = len(self.log_queue) - self.max_queue_size + if overflow > 0: + del self.log_queue[:overflow] + verbose_logger.warning( + "CustomLogger: log queue exceeded max_queue_size=%s; " + "dropped %s oldest events.", + self.max_queue_size, + overflow, + ) + return + if self.preserve_events_added_during_flush: + del self.log_queue[:log_queue_length] + else: + self.log_queue.clear() self.last_flush_time = time.time() async def async_send_batch(self, *args, **kwargs): diff --git a/litellm/integrations/custom_guardrail.py b/litellm/integrations/custom_guardrail.py index c937ad0a7bf..82a35f2eedd 100644 --- a/litellm/integrations/custom_guardrail.py +++ b/litellm/integrations/custom_guardrail.py @@ -43,7 +43,11 @@ if TYPE_CHECKING: dc = DualCache() -from litellm.exceptions import ModifyResponseException as ModifyResponseException +from litellm.exceptions import ( + BlockedPiiEntityError, + GuardrailRaisedException, + ModifyResponseException, +) class CustomGuardrail(CustomLogger): @@ -737,12 +741,15 @@ class CustomGuardrail(CustomLogger): (this was logged previously as an API failure - guardrail_failed_to_respond). Guardrails signal intentional blocks by raising: + - GuardrailRaisedException (generic guardrail API, tool permission) + - BlockedPiiEntityError (Presidio PII detection) - HTTPException with status 400 (content policy violation) - ModifyResponseException (passthrough mode violation) """ - if isinstance(e, ModifyResponseException): return True + if isinstance(e, (GuardrailRaisedException, BlockedPiiEntityError)): + return True if ( HTTPException is not None and isinstance(e, HTTPException) diff --git a/litellm/integrations/focus/transformer.py b/litellm/integrations/focus/transformer.py index b7d28e3dbb9..6f4433b4a05 100644 --- a/litellm/integrations/focus/transformer.py +++ b/litellm/integrations/focus/transformer.py @@ -9,7 +9,6 @@ import polars as pl from .schema import FOCUS_NORMALIZED_SCHEMA - _TAG_KEYS = ( "team_id", "team_alias", diff --git a/litellm/integrations/opentelemetry.py b/litellm/integrations/opentelemetry.py index 2de8e8bf7f1..81fdc5a1e21 100644 --- a/litellm/integrations/opentelemetry.py +++ b/litellm/integrations/opentelemetry.py @@ -673,6 +673,15 @@ class OpenTelemetry(OTELGenAISemconvMixin, CustomLogger): if parent_otel_span is not None: parent_otel_span.set_status(Status(StatusCode.ERROR)) + # Stamp team attributes onto the SERVER (root) span too, so the + # trace root is team-filterable on the failure path like the + # child exception span below. + self._set_team_attributes_on_span( + span=parent_otel_span, + team_id=user_api_key_dict.team_id, + team_alias=user_api_key_dict.team_alias, + ) + # Stamp structured error attrs on the SERVER span itself; the # failure path otherwise only sets its status (_handle_failure # records on the litellm_request child span). Inline import: @@ -693,6 +702,14 @@ class OpenTelemetry(OTELGenAISemconvMixin, CustomLogger): }, ) + # _record_exception_on_span only stamps when error_code is set; + # bare TypeError etc. has none, and the span is about to be ended. + error_code = ( + error_information.get("error_code") if error_information else None + ) + if not error_code: + self.set_response_status_code_attribute(parent_otel_span, 500) + # Pre-request latency (request_data carries the propagated # metadata on the failure path; omitted if it failed before handoff). self.set_preprocessing_duration_attribute(parent_otel_span, request_data) @@ -709,12 +726,65 @@ class OpenTelemetry(OTELGenAISemconvMixin, CustomLogger): key="exception", value=str(original_exception), ) + self._set_team_attributes_on_span( + span=exception_logging_span, + team_id=user_api_key_dict.team_id, + team_alias=user_api_key_dict.team_alias, + ) exception_logging_span.set_status(Status(StatusCode.ERROR)) exception_logging_span.end(end_time=self._to_ns(datetime.now())) + # Emit guardrail spans for any guardrail invocations that + # ran during this request. _handle_failure typically does this, + # but for pre-call guardrail blocks the standard_logging_object + # may not carry guardrail_information by the time _handle_failure + # fires (the data lives only in request_data["metadata"]). Pull + # directly from request_data so the span is recorded either way; + # _emit_once dedupes if _handle_failure already emitted it. + self._emit_guardrail_spans_from_request_data( + request_data=request_data, + parent_span=parent_otel_span, + ) + # End Parent OTEL Sspan parent_otel_span.end(end_time=self._to_ns(datetime.now())) + def _emit_guardrail_spans_from_request_data( + self, + request_data: dict, + parent_span: Optional[Any], + ) -> None: + """Emit ``guardrail`` spans from ``request_data["metadata"] + ["standard_logging_guardrail_information"]``. + + Routed through ``_create_guardrail_span`` so the dedupe state in + ``_otel_internal`` is honoured — if ``_handle_failure`` already + emitted these spans for the same kwargs, this is a no-op. + """ + from opentelemetry import trace as _trace + + metadata = (request_data or {}).get("metadata") or {} + guardrail_information = metadata.get("standard_logging_guardrail_information") + if not guardrail_information: + return + + # _create_guardrail_span reads guardrail_information from + # kwargs["standard_logging_object"] and shares its dedupe state via + # kwargs["litellm_params"]["metadata"]["_otel_internal"]. Pass the + # SAME metadata dict the proxy populated so _handle_failure and + # this hook see the same dedupe markers. + kwargs: Dict[str, Any] = { + "litellm_params": {"metadata": metadata}, + "standard_logging_object": { + "guardrail_information": guardrail_information, + "metadata": metadata, + }, + } + context = ( + _trace.set_span_in_context(parent_span) if parent_span is not None else None + ) + self._create_guardrail_span(kwargs=kwargs, context=context) + async def async_post_call_success_hook( self, data: dict, @@ -736,11 +806,6 @@ class OpenTelemetry(OTELGenAISemconvMixin, CustomLogger): # Pre-request latency on the SERVER span (success path). self.set_preprocessing_duration_attribute(parent_span, kwargs) - # http.response.status_code on the SERVER span (success path). - # A successful proxy response is HTTP 200; the failure path sets - # this from the error code in _record_exception_on_span. - self.set_response_status_code_attribute(parent_span, 200) - # 3. Guardrail span self._create_guardrail_span(kwargs=kwargs, context=ctx) @@ -923,7 +988,15 @@ class OpenTelemetry(OTELGenAISemconvMixin, CustomLogger): and hasattr(proxy_span, "is_recording") and proxy_span.is_recording() ): - proxy_span.end(end_time=self._to_ns(end_time)) + self._close_proxy_span_ok(proxy_span, end_time) + + def _close_proxy_span_ok(self, span: Span, end_time) -> None: + """Stamp http.response.status_code=200 + status=OK, then end the span.""" + from opentelemetry.trace import Status, StatusCode + + self.set_response_status_code_attribute(span, 200) + span.set_status(Status(StatusCode.OK)) + span.end(end_time=self._to_ns(end_time)) def _handle_success(self, kwargs, response_obj, start_time, end_time): """Create the litellm_request span then close the proxy span.""" @@ -1009,8 +1082,14 @@ class OpenTelemetry(OTELGenAISemconvMixin, CustomLogger): parent_span is not None and hasattr(parent_span, "name") and parent_span.name == LITELLM_PROXY_REQUEST_SPAN_NAME + and hasattr(parent_span, "is_recording") + and parent_span.is_recording() ): - parent_span.end(end_time=self._to_ns(end_time)) + self._close_proxy_span_ok(parent_span, end_time) + + # Stamp team attributes onto the SERVER (root) span before it is + # closed, so the trace root carries them like every child span. + self._set_team_attributes_on_proxy_span_from_kwargs(kwargs) # close the proxy span explicitly from kwargs metadata # after all child spans (litellm_request, guardrail, raw_request) @@ -1070,8 +1149,70 @@ class OpenTelemetry(OTELGenAISemconvMixin, CustomLogger): ) raw_span.set_status(Status(StatusCode.OK)) self.set_raw_request_attributes(raw_span, kwargs, response_obj) + self._set_team_attributes_from_kwargs(raw_span, kwargs) raw_span.end(end_time=self._to_ns(end_time)) + def _set_team_attributes_on_span( + self, + span: Span, + team_id: Optional[str], + team_alias: Optional[str], + ) -> None: + """Stamp team_id / team_alias onto a span so every child span of a + litellm_request trace carries them, not just the root span. + + Empty strings are treated as absent: a request made with the master + key or a team-less virtual key carries ``user_api_key_team_id=""`` + in ``standard_logging_object.metadata``; propagating that to every + span only adds noise that makes traces look mis-instrumented. + """ + if team_id: + self.safe_set_attribute( + span=span, + key="metadata.user_api_key_team_id", + value=team_id, + ) + if team_alias: + self.safe_set_attribute( + span=span, + key="metadata.user_api_key_team_alias", + value=team_alias, + ) + + def _set_team_attributes_from_kwargs(self, span: Span, kwargs: dict) -> None: + """Pull team_id / team_alias from the standard logging metadata in kwargs and stamp them onto span.""" + std_log = kwargs.get("standard_logging_object") + md: dict = {} + if isinstance(std_log, dict): + md = std_log.get("metadata") or {} + elif std_log is not None: + md = getattr(std_log, "metadata", None) or {} + self._set_team_attributes_on_span( + span=span, + team_id=md.get("user_api_key_team_id"), + team_alias=md.get("user_api_key_team_alias"), + ) + + def _set_team_attributes_on_proxy_span_from_kwargs(self, kwargs: dict) -> None: + """Stamp team attributes onto the proxy SERVER (root) span so the + trace root is filterable by team, not just its children. The root + span is created in auth before the team is resolved and is + otherwise only closed (never re-attributed) on the success path. + + Guarded to the LiteLLM-created proxy span (by name + recording) so + externally provided parent spans are never mutated. + """ + litellm_params = kwargs.get("litellm_params") or {} + metadata = litellm_params.get("metadata") or {} + proxy_span = metadata.get("litellm_parent_otel_span") + if ( + proxy_span is not None + and getattr(proxy_span, "name", None) == LITELLM_PROXY_REQUEST_SPAN_NAME + and hasattr(proxy_span, "is_recording") + and proxy_span.is_recording() + ): + self._set_team_attributes_from_kwargs(proxy_span, kwargs) + def _record_metrics(self, kwargs, response_obj, start_time, end_time): duration_s = (end_time - start_time).total_seconds() params = kwargs.get("litellm_params") or {} @@ -1107,8 +1248,13 @@ class OpenTelemetry(OTELGenAISemconvMixin, CustomLogger): "mcp_tool_call_metadata", "vector_store_request_metadata", ]: - if md.get(key) is not None: - common_attrs[f"metadata.{key}"] = str(md[key]) + value = md.get(key) + if value is None: + continue + if isinstance(value, (dict, list)): + common_attrs[f"metadata.{key}"] = safe_dumps(value) + else: + common_attrs[f"metadata.{key}"] = str(value) # get hidden params hidden_params = getattr(std_log, "hidden_params", None) or (std_log or {}).get( @@ -1526,12 +1672,45 @@ class OpenTelemetry(OTELGenAISemconvMixin, CustomLogger): "masked_entity_count", safe_dumps(masked_entity_count) ) + guardrail_response = guardrail_information.get("guardrail_response") + if guardrail_response is not None: + guardrail_span.set_attribute( + "guardrail_response", safe_dumps(guardrail_response) + ) + + # Surface guardrail_status (success / guardrail_intervened / + # guardrail_failed_to_respond / not_run) as a top-level span + # attribute so trace backends can filter on it without parsing + # guardrail_response. self.safe_set_attribute( span=guardrail_span, - key="guardrail_response", - value=guardrail_information.get("guardrail_response"), + key="guardrail_status", + value=guardrail_information.get("guardrail_status"), ) + # Provider's raw top-level action (e.g. Bedrock's + # ``GUARDRAIL_INTERVENED`` / ``NONE``). Populated by the provider + # hook onto StandardLoggingGuardrailInformation so this integration + # stays provider-agnostic — we only read a normalised string. + guardrail_action = guardrail_information.get("guardrail_action") + if guardrail_action: + guardrail_span.set_attribute("guardrail_action", guardrail_action) + + # The provider hook (e.g. Bedrock) extracts violation_categories + # from the raw response BEFORE redaction and stamps them onto + # StandardLoggingGuardrailInformation. Surfacing them here as a + # queryable attribute lets dashboards group by violation category + # without parsing the redacted guardrail_response blob. + violation_categories = guardrail_information.get("violation_categories") + if violation_categories: + # OTel sequence attributes must be homogeneous primitives; + # serialise to JSON once so set_attribute never coerces. + guardrail_span.set_attribute( + "guardrail_violation_categories", safe_dumps(violation_categories) + ) + + self._set_team_attributes_from_kwargs(guardrail_span, kwargs) + guardrail_span.end(end_time=self._to_ns(end_time_datetime)) def _handle_failure(self, kwargs, response_obj, start_time, end_time): @@ -2875,6 +3054,11 @@ class OpenTelemetry(OTELGenAISemconvMixin, CustomLogger): management_endpoint_span.set_status(Status(StatusCode.OK)) management_endpoint_span.end(end_time=_end_time_ns) + # The management wrapper has no other hook that closes the SERVER span. + self.set_response_status_code_attribute(parent_otel_span, 200) + parent_otel_span.set_status(Status(StatusCode.OK)) + parent_otel_span.end(end_time=_end_time_ns) + async def async_management_endpoint_failure_hook( self, logging_payload: ManagementEndpointLoggingPayload, @@ -2925,6 +3109,24 @@ class OpenTelemetry(OTELGenAISemconvMixin, CustomLogger): management_endpoint_span.set_status(Status(StatusCode.ERROR)) management_endpoint_span.end(end_time=_end_time_ns) + # The management wrapper has no other hook that closes the SERVER span. + from litellm.litellm_core_utils.litellm_logging import ( + StandardLoggingPayloadSetup, + ) + + error_information = StandardLoggingPayloadSetup.get_error_information( + original_exception=_exception, + ) + parent_otel_span.set_status(Status(StatusCode.ERROR)) + self._record_exception_on_span( + span=parent_otel_span, + kwargs={ + "exception": _exception, + "standard_logging_object": {"error_information": error_information}, + }, + ) + parent_otel_span.end(end_time=_end_time_ns) + def create_litellm_proxy_request_started_span( self, start_time: datetime, diff --git a/litellm/integrations/opik/utils.py b/litellm/integrations/opik/utils.py index b0ab5991c91..43577505c11 100644 --- a/litellm/integrations/opik/utils.py +++ b/litellm/integrations/opik/utils.py @@ -105,7 +105,7 @@ def _remove_nulls(x: Dict[str, Any]) -> Dict[str, Any]: def get_traces_and_spans_from_payload( - payload: List[Dict[str, Any]] + payload: List[Dict[str, Any]], ) -> Tuple[List[Dict[str, Any]], List[Dict[str, Any]]]: """ Separate traces and spans from payload. diff --git a/litellm/integrations/prometheus.py b/litellm/integrations/prometheus.py index 30af0dcb8ed..5f052842122 100644 --- a/litellm/integrations/prometheus.py +++ b/litellm/integrations/prometheus.py @@ -166,6 +166,53 @@ class PrometheusLogger(CustomLogger): labelnames=self.get_labels_for_metric("litellm_output_tokens_metric"), ) + # Token-type detail metrics. These break out cached, cache-creation, + # audio and reasoning tokens that providers report inside + # prompt_tokens_details / completion_tokens_details on the usage + # object. They are sparse (only incremented when the provider + # reports a non-zero value) and are additive to the existing + # input/output token totals — no breaking change for existing + # dashboards built on the totals. + self.litellm_input_cached_tokens_metric = self._counter_factory( + "litellm_input_cached_tokens_metric", + "Provider-side cached input tokens (e.g. OpenAI prompt_tokens_details.cached_tokens, Anthropic cache_read_input_tokens)", + labelnames=self.get_labels_for_metric( + "litellm_input_cached_tokens_metric" + ), + ) + + self.litellm_input_cache_creation_tokens_metric = self._counter_factory( + "litellm_input_cache_creation_tokens_metric", + "Provider-side input tokens written to prompt cache (e.g. Anthropic cache_creation_input_tokens)", + labelnames=self.get_labels_for_metric( + "litellm_input_cache_creation_tokens_metric" + ), + ) + + self.litellm_input_audio_tokens_metric = self._counter_factory( + "litellm_input_audio_tokens_metric", + "Audio input tokens reported in prompt_tokens_details.audio_tokens", + labelnames=self.get_labels_for_metric( + "litellm_input_audio_tokens_metric" + ), + ) + + self.litellm_output_reasoning_tokens_metric = self._counter_factory( + "litellm_output_reasoning_tokens_metric", + "Reasoning tokens reported in completion_tokens_details.reasoning_tokens", + labelnames=self.get_labels_for_metric( + "litellm_output_reasoning_tokens_metric" + ), + ) + + self.litellm_output_audio_tokens_metric = self._counter_factory( + "litellm_output_audio_tokens_metric", + "Audio output tokens reported in completion_tokens_details.audio_tokens", + labelnames=self.get_labels_for_metric( + "litellm_output_audio_tokens_metric" + ), + ) + # Remaining Budget for Team self.litellm_remaining_team_budget_metric = self._gauge_factory( "litellm_remaining_team_budget_metric", @@ -1301,6 +1348,101 @@ class PrometheusLogger(CustomLogger): amount=float(standard_logging_payload["completion_tokens"]), ) + # Token-type detail metrics — sparse, only emitted when the provider + # reports a non-zero value in usage.prompt_tokens_details / + # usage.completion_tokens_details. + self._increment_token_detail_metrics( + standard_logging_payload=standard_logging_payload, + enum_values=enum_values, + label_context=label_context, + ) + + def _increment_token_detail_metrics( + self, + standard_logging_payload: StandardLoggingPayload, + enum_values: UserAPIKeyLabelValues, + label_context: Optional[PrometheusLabelFactoryContext] = None, + ) -> None: + """ + Increment per-token-type counters from the Usage object that providers + attach to the request. The Usage dict is plumbed onto + ``standard_logging_payload["metadata"]["usage_object"]`` by + ``get_standard_logging_object_payload``. + + Each counter is only incremented when the underlying value is > 0, so + scrape output stays sparse for providers that don't report these + details (most non-OpenAI/Anthropic models). + """ + metadata = standard_logging_payload.get("metadata") or {} + usage_object = ( + metadata.get("usage_object") if isinstance(metadata, dict) else None + ) + if not isinstance(usage_object, dict): + return + + prompt_details = usage_object.get("prompt_tokens_details") or {} + completion_details = usage_object.get("completion_tokens_details") or {} + + detail_metrics: List[Tuple[Any, DEFINED_PROMETHEUS_METRICS, Any]] = [ + ( + self.litellm_input_cached_tokens_metric, + "litellm_input_cached_tokens_metric", + ( + prompt_details.get("cached_tokens") + if isinstance(prompt_details, dict) + else None + ), + ), + ( + self.litellm_input_cache_creation_tokens_metric, + "litellm_input_cache_creation_tokens_metric", + ( + prompt_details.get("cache_creation_tokens") + if isinstance(prompt_details, dict) + else None + ), + ), + ( + self.litellm_input_audio_tokens_metric, + "litellm_input_audio_tokens_metric", + ( + prompt_details.get("audio_tokens") + if isinstance(prompt_details, dict) + else None + ), + ), + ( + self.litellm_output_reasoning_tokens_metric, + "litellm_output_reasoning_tokens_metric", + ( + completion_details.get("reasoning_tokens") + if isinstance(completion_details, dict) + else None + ), + ), + ( + self.litellm_output_audio_tokens_metric, + "litellm_output_audio_tokens_metric", + ( + completion_details.get("audio_tokens") + if isinstance(completion_details, dict) + else None + ), + ), + ] + + for counter, metric_name, value in detail_metrics: + if not isinstance(value, (int, float)) or value <= 0: + continue + PrometheusLogger._inc_labeled_counter( + self, + counter, + metric_name, + enum_values, + label_context=label_context, + amount=float(value), + ) + def _increment_cache_metrics( self, standard_logging_payload: StandardLoggingPayload, @@ -3540,6 +3682,10 @@ class PrometheusLogger(CustomLogger): user_object.budget_reset_at = user_info.budget_reset_at if user_object.max_budget is None and user_info.max_budget is not None: user_object.max_budget = user_info.max_budget + if user_info.user_email is not None: + user_object.user_email = user_info.user_email + if user_info.user_alias is not None: + user_object.user_alias = user_info.user_alias return user_object @@ -3556,6 +3702,8 @@ class PrometheusLogger(CustomLogger): """ enum_values = UserAPIKeyLabelValues( user=user.user_id, + user_email=user.user_email or "", + user_alias=user.user_alias or "", ) _labels = prometheus_label_factory( diff --git a/litellm/integrations/rubrik.py b/litellm/integrations/rubrik.py new file mode 100644 index 00000000000..af396ecdc73 --- /dev/null +++ b/litellm/integrations/rubrik.py @@ -0,0 +1,605 @@ +"""Rubrik LiteLLM Plugin for tool blocking and batch logging.""" + +import asyncio +import os +import random +import time +import urllib.parse +import uuid +from collections import Counter +from typing import TYPE_CHECKING, Any, Literal, Optional + +import httpx +from litellm._logging import verbose_logger +from litellm.integrations.custom_batch_logger import CustomBatchLogger +from litellm.integrations.custom_guardrail import ( + CustomGuardrail, + ModifyResponseException, +) +from litellm.litellm_core_utils.core_helpers import safe_deep_copy +from litellm.llms.custom_httpx.http_handler import ( + get_async_httpx_client, + httpxSpecialProvider, +) +from litellm.types.guardrails import GuardrailEventHooks +from litellm.types.utils import ( + ChatCompletionMessageToolCall, + Function, + GenericGuardrailAPIInputs, + StandardLoggingPayload, +) + +if TYPE_CHECKING: + from litellm.litellm_core_utils.litellm_logging import ( + Logging as LiteLLMLoggingObj, + ) + +_ENDPOINT_ANTHROPIC_MESSAGES = "/v1/messages" +_WEBHOOK_PATH_TOOL_BLOCKING = "/v1/after_completion/openai/v1" +_WEBHOOK_PATH_LOGGING_BATCH = "/v1/litellm/batch" +_MAX_QUEUE_SIZE = 10_000 +_DROP_WARNING_INTERVAL_SECONDS = 60.0 + + +class _MalformedToolBlockingResponseError(Exception): + """Raised when the tool blocking service returns a structurally invalid + response (e.g. empty ``choices``). + + Distinct from transient network/HTTP errors so callers can surface a + louder, misconfiguration-style log instead of treating it as a routine + fail-open. + """ + + +class RubrikLogger(CustomGuardrail, CustomBatchLogger): + def __init__( + self, + api_key: str | None = None, + api_base: str | None = None, + **kwargs, + ): + self.flush_lock = asyncio.Lock() + kwargs.setdefault("guardrail_name", "rubrik") + # `initialize_guardrail` always passes these kwargs explicitly, with + # value `None` when the user omits `mode` / `default_on` from the + # guardrail config. Coerce None (omitted) to the desired default + # while preserving any explicit value the caller did set -- + # in particular `default_on=False` if the user wants the guardrail + # off by default. + kwargs["event_hook"] = kwargs.get("event_hook") or GuardrailEventHooks.post_call + if kwargs.get("default_on") is None: + kwargs["default_on"] = True + super().__init__( + flush_lock=self.flush_lock, + **kwargs, + ) + + verbose_logger.debug("initializing rubrik logger") + + self.sampling_rate = 1.0 + rbrk_sampling_rate = os.getenv("RUBRIK_SAMPLING_RATE") + if rbrk_sampling_rate is not None: + try: + parsed_rate = float(rbrk_sampling_rate.strip()) + self.sampling_rate = max(0.0, min(1.0, parsed_rate)) + if parsed_rate != self.sampling_rate: + verbose_logger.warning( + f"RUBRIK_SAMPLING_RATE={parsed_rate} clamped to " + f"{self.sampling_rate}" + ) + except ValueError: + verbose_logger.warning( + f"Invalid RUBRIK_SAMPLING_RATE: {rbrk_sampling_rate!r}, using 1.0" + ) + + self.key = api_key or os.getenv("RUBRIK_API_KEY") + if not self.key: + verbose_logger.warning( + "Rubrik: No API key configured. Requests will be unauthenticated." + ) + _batch_size = os.getenv("RUBRIK_BATCH_SIZE") + + if _batch_size: + try: + self.batch_size = int(_batch_size) + except ValueError: + verbose_logger.warning( + f"Invalid RUBRIK_BATCH_SIZE: {_batch_size!r}, using default" + ) + + # Cap the in-memory retry queue so a Rubrik webhook outage cannot let + # authenticated traffic accumulate prompt/response payloads until the + # proxy runs out of memory. Once the cap is reached, oldest events are + # dropped to make room for fresh ones (drop-oldest backpressure). + self.max_queue_size = _MAX_QUEUE_SIZE + self._dropped_since_warning = 0 + self._last_drop_warning_time = 0.0 + + _webhook_url = api_base or os.getenv("RUBRIK_WEBHOOK_URL") + + if _webhook_url is None: + raise ValueError( + "Rubrik webhook URL not configured. " + "Set RUBRIK_WEBHOOK_URL or pass api_base." + ) + + _webhook_url = _webhook_url.rstrip("/").removesuffix("/v1") + self.tool_blocking_endpoint = f"{_webhook_url}{_WEBHOOK_PATH_TOOL_BLOCKING}" + self.logging_endpoint = f"{_webhook_url}{_WEBHOOK_PATH_LOGGING_BATCH}" + + self.async_httpx_client = get_async_httpx_client( + llm_provider=httpxSpecialProvider.LoggingCallback + ) + + self.tool_blocking_client = get_async_httpx_client( + llm_provider=httpxSpecialProvider.LoggingCallback, + params={"timeout": httpx.Timeout(5.0, connect=2.0)}, + ) + + self._headers: dict[str, str] = {"Content-Type": "application/json"} + if self.key: + self._headers["Authorization"] = f"Bearer {self.key}" + + # Periodic flush is started lazily on the first log event so that + # low-traffic deployments still get their batches drained even when the + # logger is instantiated outside a running event loop (sync init). + self._flush_task: Optional[asyncio.Task[Any]] = ( + self._start_periodic_flush_task() + ) + + def _start_periodic_flush_task(self) -> Optional[asyncio.Task[Any]]: + """Start the periodic flush task only when an event loop is already running.""" + try: + loop = asyncio.get_running_loop() + except RuntimeError: + verbose_logger.debug( + "Rubrik logger init: no running event loop, " + "periodic flush will start on first log event." + ) + return None + return loop.create_task(self.periodic_flush()) + + def _ensure_periodic_flush_task(self) -> None: + # Synchronous helper: in asyncio's cooperative model there is no await + # between the check and assignment, so two callers cannot race here. + if self._flush_task is None or self._flush_task.done(): + self._flush_task = self._start_periodic_flush_task() + + async def aclose(self): + """Close the dedicated HTTP clients used by this logger.""" + # Cancel the periodic flush task before closing the HTTP clients so + # the loop doesn't wake up and try to POST via a closed client. + if self._flush_task is not None and not self._flush_task.done(): + self._flush_task.cancel() + try: + await self._flush_task + except (asyncio.CancelledError, Exception): + pass + self._flush_task = None + await self.tool_blocking_client.close() + await self.async_httpx_client.close() + + # -- Guardrail hook -------------------------------------------------------- + + async def apply_guardrail( + self, + inputs: GenericGuardrailAPIInputs, + request_data: dict, + input_type: Literal["request", "response"], + logging_obj: Optional["LiteLLMLoggingObj"] = None, + ) -> GenericGuardrailAPIInputs: + """Validate tool calls against the blocking service (fail-open).""" + if input_type != "response": + return inputs + + tool_calls = inputs.get("tool_calls") + if not tool_calls: + return inputs + + try: + return await self._check_tool_calls( + inputs, tool_calls, request_data, logging_obj + ) + except ModifyResponseException: + raise + except _MalformedToolBlockingResponseError as e: + # Distinct from transient errors: the service responded but the + # payload was structurally invalid, which usually indicates a + # misconfigured webhook or a breaking change in its response + # format. Log loudly so operators notice their tool-blocking + # policy is not actually being enforced. + verbose_logger.critical( + "Tool blocking service returned a malformed response: %s. " + "Tool calls are NOT being checked -- verify the webhook " + "configuration. Returning original response unchanged.", + e, + exc_info=True, + ) + return inputs + except Exception as e: + verbose_logger.error( + f"Tool blocking hook failed: {e}. " + "Returning original response unchanged.", + exc_info=True, + ) + return inputs + + async def _check_tool_calls( + self, + inputs: GenericGuardrailAPIInputs, + tool_calls: Any, + request_data: dict, + logging_obj: Optional["LiteLLMLoggingObj"], + ) -> GenericGuardrailAPIInputs: + """Send tool calls to blocking service, raise if any are blocked.""" + message_tool_calls = self._normalize_tool_calls(tool_calls) + + call_details = ( + getattr(logging_obj, "model_call_details", {}) if logging_obj else {} + ) + response = request_data.get("response") + request_id = getattr(response, "id", None) if response else None + if logging_obj and not call_details: + verbose_logger.warning( + "Rubrik: logging_obj present but model_call_details is empty " + "-- request context will be missing" + ) + + response_data = self._build_tool_call_payload(message_tool_calls, request_id) + req_data = self._extract_request_data(call_details) + + service_response = await self._post_to_tool_blocking_service( + response_data, req_data + ) + blocked_explanation = self._extract_blocked_tools( + service_response, message_tool_calls + ) + + if blocked_explanation is not None: + model = self._resolve_model(request_data, call_details) + raise ModifyResponseException( + message=blocked_explanation, + model=model, + request_data=request_data, + guardrail_name=self.guardrail_name, + ) + + return inputs + + @staticmethod + def _normalize_tool_calls(tool_calls: Any) -> list[ChatCompletionMessageToolCall]: + """Convert tool_calls from inputs to ChatCompletionMessageToolCall objects.""" + result = [] + for tc in tool_calls: + if isinstance(tc, ChatCompletionMessageToolCall): + result.append(tc) + elif isinstance(tc, dict): + func = tc.get("function", {}) + result.append( + ChatCompletionMessageToolCall( + id=tc.get("id", ""), + type=tc.get("type", "function"), + function=Function( + name=func.get("name", ""), + arguments=func.get("arguments", ""), + ), + ) + ) + elif hasattr(tc, "id") and hasattr(tc, "function"): + result.append( + ChatCompletionMessageToolCall( + id=tc.id or "", + type=getattr(tc, "type", None) or "function", + function=tc.function, + ) + ) + else: + raise TypeError( + f"Cannot normalize tool_call of type {type(tc).__name__}" + ) + return result + + @staticmethod + def _build_tool_call_payload( + tool_calls: list[ChatCompletionMessageToolCall], + request_id: str | None, + ) -> dict[str, Any]: + """Build a full OpenAI ChatCompletion-format dict for the blocking service.""" + return { + "id": request_id or f"chatcmpl-{uuid.uuid4()}", + "object": "chat.completion", + "created": int(time.time()), + "model": "", + "choices": [ + { + "index": 0, + "message": { + "role": "assistant", + "content": None, + "tool_calls": [ + tc.model_dump(exclude_none=True) for tc in tool_calls + ], + }, + "finish_reason": "tool_calls", + } + ], + } + + @staticmethod + def _extract_request_data(call_details: dict[str, Any]) -> dict[str, Any]: + """Extract original request data from model_call_details.""" + if not call_details: + return {} + litellm_params = call_details.get("litellm_params", {}) or {} + return { + "messages": call_details.get("messages"), + "model": call_details.get("model"), + "proxy_server_request": RubrikLogger._sanitize_proxy_server_request( + litellm_params.get("proxy_server_request") + ), + } + + @staticmethod + def _sanitize_proxy_server_request(proxy_server_request: Any) -> Any: + """Allowlist only routing fields (``url``, ``method``) when forwarding + ``proxy_server_request`` to the external Rubrik webhook, dropping + inbound ``headers`` (Authorization, Cookie, x-api-key, ...) and the raw + request ``body`` so proxy credentials are not exfiltrated.""" + if not isinstance(proxy_server_request, dict): + return proxy_server_request + return { + key: proxy_server_request[key] + for key in ("url", "method") + if key in proxy_server_request + } + + @staticmethod + def _resolve_model( + request_data: dict[str, Any], call_details: dict[str, Any] + ) -> str: + """Get the model name for the ModifyResponseException.""" + response = request_data.get("response") + if response and hasattr(response, "model"): + return response.model or "unknown" + return call_details.get("model", "unknown") + + # -- Logging hooks --------------------------------------------------------- + + async def _prepare_log_payload( + self, kwargs: dict, event_type: str + ) -> StandardLoggingPayload | None: + """Shared logic for success and failure logging.""" + if random.random() > self.sampling_rate: + verbose_logger.debug( + f"Skipping Rubrik {event_type} logging " + f"(sampling_rate={self.sampling_rate})" + ) + return None + + # Deep-copy so mutations don't affect other callbacks sharing this object + standard_logging_payload: StandardLoggingPayload = safe_deep_copy( + kwargs["standard_logging_object"] + ) + + # For Anthropic /v1/messages requests, LiteLLM creates a separate + # ModelResponse (with a generated chatcmpl-* id) for logging, which + # differs from the original Anthropic msg-* id on the response dict. + # Normalize to litellm_call_id so that the logging and tool-blocking + # endpoints see the same request identifier. + litellm_params = kwargs.get("litellm_params", {}) or {} + proxy_request = litellm_params.get("proxy_server_request", {}) or {} + url_path = urllib.parse.urlparse(proxy_request.get("url", "")).path + if url_path.endswith(_ENDPOINT_ANTHROPIC_MESSAGES): + _litellm_call_id = kwargs.get("litellm_call_id") + if _litellm_call_id: + standard_logging_payload["id"] = _litellm_call_id # type: ignore[literal-required] + + if "system" in kwargs: + system_prompt_msg_list = kwargs["system"] + try: + if system_prompt_msg_list: + system_scaffold = { + "role": "system", + "content": system_prompt_msg_list, + } + if isinstance(standard_logging_payload["messages"], list): + standard_logging_payload["messages"].insert(0, system_scaffold) + elif isinstance(standard_logging_payload["messages"], (dict, str)): + standard_logging_payload["messages"] = [ + system_scaffold, + standard_logging_payload["messages"], + ] + except Exception as e: + verbose_logger.warning( + f"Rubrik: failed to prepend system prompt: {e}", + exc_info=True, + ) + + return standard_logging_payload + + async def _enqueue_log_event(self, kwargs: dict, event_type: str): + try: + self._ensure_periodic_flush_task() + payload = await self._prepare_log_payload(kwargs, event_type) + if payload is None: + return + + self.log_queue.append(payload) + self._enforce_max_queue_size() + + if len(self.log_queue) >= self.batch_size: + await self.flush_queue() + except Exception as e: + verbose_logger.error( + f"Rubrik {event_type} logging hook failed: {e}. " + "Skipping logging for this event.", + exc_info=True, + ) + + def _enforce_max_queue_size(self) -> None: + overflow = len(self.log_queue) - self.max_queue_size + if overflow <= 0: + return + del self.log_queue[:overflow] + self._dropped_since_warning += overflow + now = time.time() + if now - self._last_drop_warning_time >= _DROP_WARNING_INTERVAL_SECONDS: + verbose_logger.warning( + "Rubrik: log queue exceeded max_queue_size=%s; dropped %s " + "oldest events since the last warning. The Rubrik webhook may " + "be unhealthy or undersized for current traffic.", + self.max_queue_size, + self._dropped_since_warning, + ) + self._dropped_since_warning = 0 + self._last_drop_warning_time = now + + async def async_log_success_event(self, kwargs, response_obj, start_time, end_time): + await self._enqueue_log_event(kwargs, "success") + + async def async_log_failure_event(self, kwargs, response_obj, start_time, end_time): + await self._enqueue_log_event(kwargs, "failure") + + # -- Batch logging --------------------------------------------------------- + + async def _log_batch_to_rubrik(self, data): + # NOTE: this method intentionally re-raises on failure so the parent + # CustomBatchLogger.flush_queue keeps the unsent events in the queue + # for the next flush attempt instead of silently dropping them. + try: + response = await self.async_httpx_client.post( + url=self.logging_endpoint, + json=data, + headers=self._headers, + ) + response.raise_for_status() + except httpx.HTTPStatusError as e: + verbose_logger.exception( + f"Rubrik HTTP Error: {e.response.status_code} - {e.response.text}" + ) + raise + except Exception: + verbose_logger.exception("Rubrik Layer Error") + raise + + async def async_send_batch(self): + """Handles sending batches of responses to Rubrik. + + Note: the canonical flush path is :meth:`flush_queue`, which takes a + single snapshot used for both sending and queue draining. This method + is kept for direct callers / tests; it intentionally does NOT remove + events from the queue. + """ + if not self.log_queue: + return + + log_queue_snapshot = list(self.log_queue) + verbose_logger.debug( + "Rubrik: Flushing batch of %s events", len(log_queue_snapshot) + ) + await self._log_batch_to_rubrik( + data=log_queue_snapshot, + ) + + async def flush_queue(self): + """Snapshot, send, and drain in one consistent step. + + Overrides the base implementation so the same snapshot drives both + the HTTP send and the queue truncation. This avoids the subtle + coupling where the base class captures `len(self.log_queue)` + separately from the snapshot taken inside `async_send_batch`, + which could otherwise drift in a future refactor and cause + duplicate deliveries to Rubrik. + """ + if self.flush_lock is None: + return + + async with self.flush_lock: + if not self.log_queue: + return + snapshot = list(self.log_queue) + verbose_logger.debug("Rubrik: Flushing batch of %s events", len(snapshot)) + try: + await self._log_batch_to_rubrik(data=snapshot) + except Exception: + # Already logged with traceback inside _log_batch_to_rubrik. + # Preserve the in-flight events for retry on the next flush. + return + del self.log_queue[: len(snapshot)] + self.last_flush_time = time.time() + + # -- Tool blocking service ------------------------------------------------- + + async def _post_to_tool_blocking_service( + self, + response_data: dict[str, Any], + request_data: dict[str, Any], + ) -> dict[str, Any]: + """Post a payload to the tool blocking service and return the response. + + Args: + response_data: The OpenAI-formatted response payload to send. + request_data: Original LLM request data to include alongside + the response for additional context. Empty dict if unavailable. + + Raises: + Exception: If the service is unavailable or returns an error. + """ + envelope = { + "request": request_data, + "response": response_data, + } + verbose_logger.debug( + f"Sending request to tool blocking service: " + f"{self.tool_blocking_endpoint}" + ) + http_response = await self.tool_blocking_client.post( + self.tool_blocking_endpoint, + json=envelope, + headers=self._headers, + ) + http_response.raise_for_status() + result: dict[str, Any] = http_response.json() + return result + + @staticmethod + def _extract_blocked_tools( + service_response: dict[str, Any], + all_tool_calls: list[ChatCompletionMessageToolCall], + ) -> Optional[str]: + """Return the blocking explanation if any tool calls were blocked. + + Compares the service response (which contains only allowed tools) against + the full set of tool calls. Returns ``None`` if all tools are allowed, or + the explanation string (prefixed with newlines) otherwise. + + Expects service_response in OpenAI chat completion format: + {"choices": [{"message": {"tool_calls": [...], "content": "..."}}]} + """ + choices = service_response.get("choices", []) + if not choices: + raise _MalformedToolBlockingResponseError( + "Tool blocking service returned empty response" + ) + + message = choices[0].get("message", {}) + returned_tool_calls = message.get("tool_calls") or [] + blocking_explanation = message.get("content", "") + + allowed_id_counts: Counter = Counter( + tc["id"] + for tc in returned_tool_calls + if isinstance(tc, dict) and tc.get("id") + ) + required_id_counts: Counter = Counter(tc.id for tc in all_tool_calls if tc.id) + + all_allowed = len(returned_tool_calls) >= len(all_tool_calls) and all( + allowed_id_counts.get(tc_id, 0) >= count + for tc_id, count in required_id_counts.items() + ) + + if all_allowed: + return None + + explanation = blocking_explanation or "Tool call blocked by policy." + return f"\n\n{explanation}" diff --git a/litellm/integrations/s3_v2.py b/litellm/integrations/s3_v2.py index 332e84dd07d..4ed8a809a13 100644 --- a/litellm/integrations/s3_v2.py +++ b/litellm/integrations/s3_v2.py @@ -1,8 +1,8 @@ """ s3 Bucket Logging Integration -async_log_success_event: Processes the event, stores it in memory for DEFAULT_S3_FLUSH_INTERVAL_SECONDS seconds or until DEFAULT_S3_BATCH_SIZE and then flushes to s3 -async_log_failure_event: Processes the event, stores it in memory for DEFAULT_S3_FLUSH_INTERVAL_SECONDS seconds or until DEFAULT_S3_BATCH_SIZE and then flushes to s3 +async_log_success_event: Processes the event, stores it in memory for DEFAULT_S3_FLUSH_INTERVAL_SECONDS seconds or until DEFAULT_S3_BATCH_SIZE and then flushes to s3 +async_log_failure_event: Processes the event, stores it in memory for DEFAULT_S3_FLUSH_INTERVAL_SECONDS seconds or until DEFAULT_S3_BATCH_SIZE and then flushes to s3 NOTE 1: S3 does not provide a BATCH PUT API endpoint, so we create tasks to upload each element individually """ diff --git a/litellm/interactions/__init__.py b/litellm/interactions/__init__.py index e1125b649a6..ed01462cba6 100644 --- a/litellm/interactions/__init__.py +++ b/litellm/interactions/__init__.py @@ -5,31 +5,40 @@ This module provides SDK methods for Google's Interactions API. Usage: import litellm - + # Create an interaction with a model response = litellm.interactions.create( model="gemini-2.5-flash", input="Hello, how are you?" ) - + # Create an interaction with an agent response = litellm.interactions.create( agent="deep-research-pro-preview-12-2025", input="Research the current state of cancer research" ) - + # Async version response = await litellm.interactions.acreate(...) - + # Get an interaction response = litellm.interactions.get(interaction_id="...") - + # Delete an interaction result = litellm.interactions.delete(interaction_id="...") - + # Cancel an interaction result = litellm.interactions.cancel(interaction_id="...") + # Create a managed agent on the provider side + result = litellm.interactions.agents.create( + name="waverunner", + custom_llm_provider="gemini", + api_key="...", + base_agent="gemini-2.5-flash", + instructions="You are a helpful assistant.", + ) + Methods: - create(): Sync create interaction - acreate(): Async create interaction @@ -39,8 +48,12 @@ Methods: - adelete(): Async delete interaction - cancel(): Sync cancel interaction - acancel(): Async cancel interaction + +Sub-modules: +- agents: Provider-side agent creation (litellm.interactions.agents.create) """ +from litellm.interactions import agents from litellm.interactions.main import ( acancel, acreate, @@ -65,4 +78,6 @@ __all__ = [ # Cancel "cancel", "acancel", + # Sub-modules + "agents", ] diff --git a/litellm/interactions/agents/__init__.py b/litellm/interactions/agents/__init__.py new file mode 100644 index 00000000000..711a54fdcbb --- /dev/null +++ b/litellm/interactions/agents/__init__.py @@ -0,0 +1,39 @@ +""" +litellm.interactions.agents + +Full CRUD SDK for provider-side managed agents (e.g. Gemini v1beta/agents). + + litellm.interactions.agents.create(name=..., ...) + litellm.interactions.agents.list(api_key=...) + litellm.interactions.agents.get(name=..., ...) + litellm.interactions.agents.delete(name=..., ...) + litellm.interactions.agents.list_versions(name=..., ...) + +Async counterparts: acreate, alist, aget, adelete, alist_versions +""" + +from litellm.interactions.agents.main import ( + acreate, + adelete, + aget, + alist, + alist_versions, + create, + delete, + get, + list, + list_versions, +) + +__all__ = [ + "create", + "acreate", + "list", + "alist", + "get", + "aget", + "delete", + "adelete", + "list_versions", + "alist_versions", +] diff --git a/litellm/interactions/agents/http_handler.py b/litellm/interactions/agents/http_handler.py new file mode 100644 index 00000000000..d45ca6f4346 --- /dev/null +++ b/litellm/interactions/agents/http_handler.py @@ -0,0 +1,478 @@ +""" +HTTP handler for the Agents API. + +Extends InteractionsHTTPHandler so that the shared HTTP infrastructure +(_handle_error, _sync_client, _async_client) is reused rather than +duplicated. BaseAgentsAPIConfig stays as pure transform code. +""" + +from typing import Any, Coroutine, Dict, Optional, Union + +import httpx + +from litellm.constants import request_timeout +from litellm.interactions.http_handler import InteractionsHTTPHandler +from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj +from litellm.llms.base_llm.agents.transformation import BaseAgentsAPIConfig +from litellm.llms.custom_httpx.http_handler import AsyncHTTPHandler, HTTPHandler +from litellm.types.agents import ( + AgentCreateResponse, + AgentDeleteResult, + AgentListResponse, + AgentVersionsResponse, +) +from litellm.types.router import GenericLiteLLMParams + + +class AgentsHTTPHandler(InteractionsHTTPHandler): + """HTTP handler for Agents API CRUD requests.""" + + # ------------------------------------------------------------------ # + # CREATE # + # ------------------------------------------------------------------ # + + def create_agent( + self, + agents_api_config: BaseAgentsAPIConfig, + name: str, + litellm_params: GenericLiteLLMParams, + logging_obj: LiteLLMLoggingObj, + extra_headers: Optional[Dict[str, Any]] = None, + extra_body: Optional[Dict[str, Any]] = None, + timeout: Optional[Union[float, httpx.Timeout]] = None, + client: Optional[HTTPHandler] = None, + _is_async: bool = False, + ) -> Union[AgentCreateResponse, Coroutine[Any, Any, AgentCreateResponse]]: + if _is_async: + return self.async_create_agent( + agents_api_config=agents_api_config, + name=name, + litellm_params=litellm_params, + logging_obj=logging_obj, + extra_headers=extra_headers, + extra_body=extra_body, + timeout=timeout, + ) + + sync_httpx_client = self._sync_client(litellm_params, client) + headers = agents_api_config.validate_environment( + headers=extra_headers or {}, litellm_params=dict(litellm_params) + ) + url = agents_api_config.get_complete_url( + api_base=litellm_params.get("api_base"), + litellm_params=dict(litellm_params), + ) + data = agents_api_config.transform_create_request( + name=name, litellm_params=dict(litellm_params) + ) + if extra_body: + data.update(extra_body) + + logging_obj.pre_call( + input=name, + api_key="", + additional_args={ + "complete_input_dict": data, + "api_base": url, + "headers": headers, + }, + ) + try: + response = sync_httpx_client.post( + url=url, headers=headers, json=data, timeout=timeout or request_timeout + ) + except Exception as e: + raise self._handle_error(e=e, provider_config=agents_api_config) + + logging_obj.post_call( + original_response=response.text, + additional_args={"complete_input_dict": data}, + ) + return agents_api_config.transform_create_response( + raw_response=response, name=name + ) + + async def async_create_agent( + self, + agents_api_config: BaseAgentsAPIConfig, + name: str, + litellm_params: GenericLiteLLMParams, + logging_obj: LiteLLMLoggingObj, + extra_headers: Optional[Dict[str, Any]] = None, + extra_body: Optional[Dict[str, Any]] = None, + timeout: Optional[Union[float, httpx.Timeout]] = None, + client: Optional[AsyncHTTPHandler] = None, + ) -> AgentCreateResponse: + async_httpx_client = self._async_client(litellm_params, client) + headers = agents_api_config.validate_environment( + headers=extra_headers or {}, litellm_params=dict(litellm_params) + ) + url = agents_api_config.get_complete_url( + api_base=litellm_params.get("api_base"), + litellm_params=dict(litellm_params), + ) + data = agents_api_config.transform_create_request( + name=name, litellm_params=dict(litellm_params) + ) + if extra_body: + data.update(extra_body) + + logging_obj.pre_call( + input=name, + api_key="", + additional_args={ + "complete_input_dict": data, + "api_base": url, + "headers": headers, + }, + ) + try: + response = await async_httpx_client.post( + url=url, headers=headers, json=data, timeout=timeout or request_timeout + ) + except Exception as e: + raise self._handle_error(e=e, provider_config=agents_api_config) + + logging_obj.post_call( + original_response=response.text, + additional_args={"complete_input_dict": data}, + ) + return agents_api_config.transform_create_response( + raw_response=response, name=name + ) + + # ------------------------------------------------------------------ # + # LIST # + # ------------------------------------------------------------------ # + + def list_agents( + self, + agents_api_config: BaseAgentsAPIConfig, + litellm_params: GenericLiteLLMParams, + logging_obj: LiteLLMLoggingObj, + extra_headers: Optional[Dict[str, Any]] = None, + timeout: Optional[Union[float, httpx.Timeout]] = None, + client: Optional[HTTPHandler] = None, + _is_async: bool = False, + ) -> Union[AgentListResponse, Coroutine[Any, Any, AgentListResponse]]: + if _is_async: + return self.async_list_agents( + agents_api_config=agents_api_config, + litellm_params=litellm_params, + logging_obj=logging_obj, + extra_headers=extra_headers, + timeout=timeout, + ) + + sync_httpx_client = self._sync_client(litellm_params, client) + headers = agents_api_config.validate_environment( + headers=extra_headers or {}, litellm_params=dict(litellm_params) + ) + url, params = agents_api_config.transform_list_request( + api_base=litellm_params.get("api_base"), + litellm_params=dict(litellm_params), + ) + logging_obj.pre_call( + input="list_agents", + api_key="", + additional_args={"api_base": url, "headers": headers}, + ) + try: + response = sync_httpx_client.get(url=url, headers=headers, params=params) + except Exception as e: + raise self._handle_error(e=e, provider_config=agents_api_config) + + logging_obj.post_call(original_response=response.text, additional_args={}) + return agents_api_config.transform_list_response(raw_response=response) + + async def async_list_agents( + self, + agents_api_config: BaseAgentsAPIConfig, + litellm_params: GenericLiteLLMParams, + logging_obj: LiteLLMLoggingObj, + extra_headers: Optional[Dict[str, Any]] = None, + timeout: Optional[Union[float, httpx.Timeout]] = None, + client: Optional[AsyncHTTPHandler] = None, + ) -> AgentListResponse: + async_httpx_client = self._async_client(litellm_params, client) + headers = agents_api_config.validate_environment( + headers=extra_headers or {}, litellm_params=dict(litellm_params) + ) + url, params = agents_api_config.transform_list_request( + api_base=litellm_params.get("api_base"), + litellm_params=dict(litellm_params), + ) + logging_obj.pre_call( + input="list_agents", + api_key="", + additional_args={"api_base": url, "headers": headers}, + ) + try: + response = await async_httpx_client.get( + url=url, headers=headers, params=params + ) + except Exception as e: + raise self._handle_error(e=e, provider_config=agents_api_config) + + logging_obj.post_call(original_response=response.text, additional_args={}) + return agents_api_config.transform_list_response(raw_response=response) + + # ------------------------------------------------------------------ # + # GET # + # ------------------------------------------------------------------ # + + def get_agent( + self, + agents_api_config: BaseAgentsAPIConfig, + name: str, + litellm_params: GenericLiteLLMParams, + logging_obj: LiteLLMLoggingObj, + extra_headers: Optional[Dict[str, Any]] = None, + timeout: Optional[Union[float, httpx.Timeout]] = None, + client: Optional[HTTPHandler] = None, + _is_async: bool = False, + ) -> Union[AgentCreateResponse, Coroutine[Any, Any, AgentCreateResponse]]: + if _is_async: + return self.async_get_agent( + agents_api_config=agents_api_config, + name=name, + litellm_params=litellm_params, + logging_obj=logging_obj, + extra_headers=extra_headers, + timeout=timeout, + ) + + sync_httpx_client = self._sync_client(litellm_params, client) + headers = agents_api_config.validate_environment( + headers=extra_headers or {}, litellm_params=dict(litellm_params) + ) + url, params = agents_api_config.transform_get_request( + name=name, + api_base=litellm_params.get("api_base"), + litellm_params=dict(litellm_params), + ) + logging_obj.pre_call( + input=name, + api_key="", + additional_args={"api_base": url, "headers": headers}, + ) + try: + response = sync_httpx_client.get(url=url, headers=headers, params=params) + except Exception as e: + raise self._handle_error(e=e, provider_config=agents_api_config) + + logging_obj.post_call(original_response=response.text, additional_args={}) + return agents_api_config.transform_get_response( + raw_response=response, name=name + ) + + async def async_get_agent( + self, + agents_api_config: BaseAgentsAPIConfig, + name: str, + litellm_params: GenericLiteLLMParams, + logging_obj: LiteLLMLoggingObj, + extra_headers: Optional[Dict[str, Any]] = None, + timeout: Optional[Union[float, httpx.Timeout]] = None, + client: Optional[AsyncHTTPHandler] = None, + ) -> AgentCreateResponse: + async_httpx_client = self._async_client(litellm_params, client) + headers = agents_api_config.validate_environment( + headers=extra_headers or {}, litellm_params=dict(litellm_params) + ) + url, params = agents_api_config.transform_get_request( + name=name, + api_base=litellm_params.get("api_base"), + litellm_params=dict(litellm_params), + ) + logging_obj.pre_call( + input=name, + api_key="", + additional_args={"api_base": url, "headers": headers}, + ) + try: + response = await async_httpx_client.get( + url=url, headers=headers, params=params + ) + except Exception as e: + raise self._handle_error(e=e, provider_config=agents_api_config) + + logging_obj.post_call(original_response=response.text, additional_args={}) + return agents_api_config.transform_get_response( + raw_response=response, name=name + ) + + # ------------------------------------------------------------------ # + # DELETE # + # ------------------------------------------------------------------ # + + def delete_agent( + self, + agents_api_config: BaseAgentsAPIConfig, + name: str, + litellm_params: GenericLiteLLMParams, + logging_obj: LiteLLMLoggingObj, + extra_headers: Optional[Dict[str, Any]] = None, + timeout: Optional[Union[float, httpx.Timeout]] = None, + client: Optional[HTTPHandler] = None, + _is_async: bool = False, + ) -> Union[AgentDeleteResult, Coroutine[Any, Any, AgentDeleteResult]]: + if _is_async: + return self.async_delete_agent( + agents_api_config=agents_api_config, + name=name, + litellm_params=litellm_params, + logging_obj=logging_obj, + extra_headers=extra_headers, + timeout=timeout, + ) + + sync_httpx_client = self._sync_client(litellm_params, client) + headers = agents_api_config.validate_environment( + headers=extra_headers or {}, litellm_params=dict(litellm_params) + ) + url = agents_api_config.transform_delete_request( + name=name, + api_base=litellm_params.get("api_base"), + litellm_params=dict(litellm_params), + ) + logging_obj.pre_call( + input=name, + api_key="", + additional_args={"api_base": url, "headers": headers}, + ) + try: + response = sync_httpx_client.delete( + url=url, headers=headers, timeout=timeout or request_timeout + ) + except Exception as e: + raise self._handle_error(e=e, provider_config=agents_api_config) + + logging_obj.post_call(original_response=response.text, additional_args={}) + return agents_api_config.transform_delete_response( + raw_response=response, name=name + ) + + async def async_delete_agent( + self, + agents_api_config: BaseAgentsAPIConfig, + name: str, + litellm_params: GenericLiteLLMParams, + logging_obj: LiteLLMLoggingObj, + extra_headers: Optional[Dict[str, Any]] = None, + timeout: Optional[Union[float, httpx.Timeout]] = None, + client: Optional[AsyncHTTPHandler] = None, + ) -> AgentDeleteResult: + async_httpx_client = self._async_client(litellm_params, client) + headers = agents_api_config.validate_environment( + headers=extra_headers or {}, litellm_params=dict(litellm_params) + ) + url = agents_api_config.transform_delete_request( + name=name, + api_base=litellm_params.get("api_base"), + litellm_params=dict(litellm_params), + ) + logging_obj.pre_call( + input=name, + api_key="", + additional_args={"api_base": url, "headers": headers}, + ) + try: + response = await async_httpx_client.delete( + url=url, headers=headers, timeout=timeout or request_timeout + ) + except Exception as e: + raise self._handle_error(e=e, provider_config=agents_api_config) + + logging_obj.post_call(original_response=response.text, additional_args={}) + return agents_api_config.transform_delete_response( + raw_response=response, name=name + ) + + # ------------------------------------------------------------------ # + # LIST VERSIONS # + # ------------------------------------------------------------------ # + + def list_agent_versions( + self, + agents_api_config: BaseAgentsAPIConfig, + name: str, + litellm_params: GenericLiteLLMParams, + logging_obj: LiteLLMLoggingObj, + extra_headers: Optional[Dict[str, Any]] = None, + timeout: Optional[Union[float, httpx.Timeout]] = None, + client: Optional[HTTPHandler] = None, + _is_async: bool = False, + ) -> Union[AgentVersionsResponse, Coroutine[Any, Any, AgentVersionsResponse]]: + if _is_async: + return self.async_list_agent_versions( + agents_api_config=agents_api_config, + name=name, + litellm_params=litellm_params, + logging_obj=logging_obj, + extra_headers=extra_headers, + timeout=timeout, + ) + + sync_httpx_client = self._sync_client(litellm_params, client) + headers = agents_api_config.validate_environment( + headers=extra_headers or {}, litellm_params=dict(litellm_params) + ) + url, params = agents_api_config.transform_list_versions_request( + name=name, + api_base=litellm_params.get("api_base"), + litellm_params=dict(litellm_params), + ) + logging_obj.pre_call( + input=name, + api_key="", + additional_args={"api_base": url, "headers": headers}, + ) + try: + response = sync_httpx_client.get(url=url, headers=headers, params=params) + except Exception as e: + raise self._handle_error(e=e, provider_config=agents_api_config) + + logging_obj.post_call(original_response=response.text, additional_args={}) + return agents_api_config.transform_list_versions_response( + raw_response=response, name=name + ) + + async def async_list_agent_versions( + self, + agents_api_config: BaseAgentsAPIConfig, + name: str, + litellm_params: GenericLiteLLMParams, + logging_obj: LiteLLMLoggingObj, + extra_headers: Optional[Dict[str, Any]] = None, + timeout: Optional[Union[float, httpx.Timeout]] = None, + client: Optional[AsyncHTTPHandler] = None, + ) -> AgentVersionsResponse: + async_httpx_client = self._async_client(litellm_params, client) + headers = agents_api_config.validate_environment( + headers=extra_headers or {}, litellm_params=dict(litellm_params) + ) + url, params = agents_api_config.transform_list_versions_request( + name=name, + api_base=litellm_params.get("api_base"), + litellm_params=dict(litellm_params), + ) + logging_obj.pre_call( + input=name, + api_key="", + additional_args={"api_base": url, "headers": headers}, + ) + try: + response = await async_httpx_client.get( + url=url, headers=headers, params=params + ) + except Exception as e: + raise self._handle_error(e=e, provider_config=agents_api_config) + + logging_obj.post_call(original_response=response.text, additional_args={}) + return agents_api_config.transform_list_versions_response( + raw_response=response, name=name + ) + + +agents_http_handler = AgentsHTTPHandler() diff --git a/litellm/interactions/agents/main.py b/litellm/interactions/agents/main.py new file mode 100644 index 00000000000..f56c6f3ed5e --- /dev/null +++ b/litellm/interactions/agents/main.py @@ -0,0 +1,522 @@ +""" +LiteLLM Agents API - Main Module + +Usage: + import litellm + + # Create + response = litellm.interactions.agents.create( + name="waverunner", + custom_llm_provider="gemini", + api_key="...", + base_agent="gemini-2.5-flash", + instructions="You are a helpful assistant.", + ) + + # List + response = litellm.interactions.agents.list(api_key="...", custom_llm_provider="gemini") + + # Get + response = litellm.interactions.agents.get(name="waverunner", api_key="...") + + # Delete + result = litellm.interactions.agents.delete(name="waverunner", api_key="...") + + # List versions + result = litellm.interactions.agents.list_versions(name="waverunner", api_key="...") + + # Async versions: acreate, alist, aget, adelete, alist_versions +""" + +import asyncio +import contextvars +from functools import partial +from typing import Any, Coroutine, Dict, Optional, Union + +import httpx + +import litellm +from litellm.interactions.agents.http_handler import agents_http_handler +from litellm.interactions.agents.utils import get_provider_agents_api_config +from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj +from litellm.types.agents import ( + AgentCreateResponse, + AgentDeleteResult, + AgentListResponse, + AgentVersionsResponse, +) +from litellm.types.interactions import InteractionEnvironment +from litellm.types.router import GenericLiteLLMParams +from litellm.utils import client + +# ------------------------------------------------------------------ # +# Shared helpers # +# ------------------------------------------------------------------ # + + +def _get_agents_api_config(custom_llm_provider: str): + config = get_provider_agents_api_config(custom_llm_provider) + if config is None: + raise litellm.BadRequestError( + message=( + f"Provider '{custom_llm_provider}' does not have a native " + "agents API. Use the proxy POST /v1/agents endpoint to store " + "agents locally." + ), + model="", + llm_provider=custom_llm_provider, + ) + return config + + +def _make_logging_obj( + kwargs: Dict[str, Any], + model: str, + custom_llm_provider: str, + call_type: str, + optional_params: Dict[str, Any], +) -> LiteLLMLoggingObj: + litellm_logging_obj: LiteLLMLoggingObj = kwargs.get("litellm_logging_obj") # type: ignore + litellm_call_id: Optional[str] = kwargs.get("litellm_call_id", None) + litellm_logging_obj.update_from_kwargs( + kwargs=kwargs, + model=model, + optional_params=optional_params, + litellm_params={"litellm_call_id": litellm_call_id}, + custom_llm_provider=custom_llm_provider, + ) + return litellm_logging_obj + + +# ================================================================== # +# CREATE # +# ================================================================== # + + +@client +async def acreate( + name: str, + base_agent: Optional[str] = None, + instructions: Optional[str] = None, + base_environment: Optional[InteractionEnvironment] = None, + custom_llm_provider: Optional[str] = None, + extra_headers: Optional[Dict[str, Any]] = None, + extra_body: Optional[Dict[str, Any]] = None, + timeout: Optional[Union[float, httpx.Timeout]] = None, + **kwargs, +) -> AgentCreateResponse: + """Async: Create a managed agent on the provider side.""" + local_vars = locals() + try: + loop = asyncio.get_event_loop() + kwargs["acreate_agent"] = True + func = partial( + create, + name=name, + base_agent=base_agent, + instructions=instructions, + base_environment=base_environment, + custom_llm_provider=custom_llm_provider or "gemini", + extra_headers=extra_headers, + extra_body=extra_body, + timeout=timeout, + **kwargs, + ) + ctx = contextvars.copy_context() + init_response = await loop.run_in_executor(None, partial(ctx.run, func)) + if asyncio.iscoroutine(init_response): + return await init_response + return init_response + except Exception as e: + raise litellm.exception_type( + model=name, + custom_llm_provider=custom_llm_provider or "gemini", + original_exception=e, + completion_kwargs=local_vars, + extra_kwargs=kwargs, + ) + + +@client +def create( + name: str, + base_agent: Optional[str] = None, + instructions: Optional[str] = None, + base_environment: Optional[InteractionEnvironment] = None, + custom_llm_provider: Optional[str] = None, + extra_headers: Optional[Dict[str, Any]] = None, + extra_body: Optional[Dict[str, Any]] = None, + timeout: Optional[Union[float, httpx.Timeout]] = None, + **kwargs, +) -> Union[AgentCreateResponse, Coroutine[Any, Any, AgentCreateResponse]]: + """ + Sync: Create a managed agent on the provider side. + + Args: + name: Name for the agent (required). + base_agent: Base agent to derive from (e.g. "waverunner"). + instructions: System instructions for the agent. + base_environment: Environment to fork from — an env_id string or a + dict like ``{"type": "remote", "sources": [...]}``. + custom_llm_provider: Provider to use, e.g. "gemini". + extra_headers: Additional HTTP headers. + extra_body: Additional request body fields. + timeout: Request timeout. + **kwargs: Forwarded to GenericLiteLLMParams (api_key, api_base, etc.). + """ + local_vars = locals() + custom_llm_provider = ( + custom_llm_provider or kwargs.get("custom_llm_provider") or "gemini" + ) + try: + _is_async = kwargs.pop("acreate_agent", False) is True + if base_agent is not None: + kwargs["base_agent"] = base_agent + if instructions is not None: + kwargs["instructions"] = instructions + if base_environment is not None: + kwargs["base_environment"] = base_environment + kwargs.setdefault("custom_llm_provider", custom_llm_provider) + litellm_params = GenericLiteLLMParams(**kwargs) + logging_obj = _make_logging_obj( + kwargs, name, custom_llm_provider, "create_agent", {} + ) + config = _get_agents_api_config(custom_llm_provider) + return agents_http_handler.create_agent( + agents_api_config=config, + name=name, + litellm_params=litellm_params, + logging_obj=logging_obj, + extra_headers=extra_headers, + extra_body=extra_body, + timeout=timeout, + _is_async=_is_async, + ) + except Exception as e: + raise litellm.exception_type( + model=name, + custom_llm_provider=custom_llm_provider, + original_exception=e, + completion_kwargs=local_vars, + extra_kwargs=kwargs, + ) + + +# ================================================================== # +# LIST # +# ================================================================== # + + +@client +async def alist( + custom_llm_provider: Optional[str] = None, + extra_headers: Optional[Dict[str, Any]] = None, + timeout: Optional[Union[float, httpx.Timeout]] = None, + **kwargs, +) -> AgentListResponse: + """Async: List all agents on the provider side.""" + local_vars = locals() + try: + loop = asyncio.get_event_loop() + kwargs["alist_agents"] = True + func = partial( + list, + custom_llm_provider=custom_llm_provider or "gemini", + extra_headers=extra_headers, + timeout=timeout, + **kwargs, + ) + ctx = contextvars.copy_context() + init_response = await loop.run_in_executor(None, partial(ctx.run, func)) + if asyncio.iscoroutine(init_response): + return await init_response + return init_response + except Exception as e: + raise litellm.exception_type( + model="", + custom_llm_provider=custom_llm_provider or "gemini", + original_exception=e, + completion_kwargs=local_vars, + extra_kwargs=kwargs, + ) + + +@client +def list( + custom_llm_provider: Optional[str] = None, + extra_headers: Optional[Dict[str, Any]] = None, + timeout: Optional[Union[float, httpx.Timeout]] = None, + **kwargs, +) -> Union[AgentListResponse, Coroutine[Any, Any, AgentListResponse]]: + """Sync: List all agents on the provider side.""" + local_vars = locals() + custom_llm_provider = ( + custom_llm_provider or kwargs.get("custom_llm_provider") or "gemini" + ) + try: + _is_async = kwargs.pop("alist_agents", False) is True + kwargs.setdefault("custom_llm_provider", custom_llm_provider) + litellm_params = GenericLiteLLMParams(**kwargs) + logging_obj = _make_logging_obj( + kwargs, "", custom_llm_provider, "list_agents", {} + ) + config = _get_agents_api_config(custom_llm_provider) + return agents_http_handler.list_agents( + agents_api_config=config, + litellm_params=litellm_params, + logging_obj=logging_obj, + extra_headers=extra_headers, + timeout=timeout, + _is_async=_is_async, + ) + except Exception as e: + raise litellm.exception_type( + model="", + custom_llm_provider=custom_llm_provider, + original_exception=e, + completion_kwargs=local_vars, + extra_kwargs=kwargs, + ) + + +# ================================================================== # +# GET # +# ================================================================== # + + +@client +async def aget( + name: str, + custom_llm_provider: Optional[str] = None, + extra_headers: Optional[Dict[str, Any]] = None, + timeout: Optional[Union[float, httpx.Timeout]] = None, + **kwargs, +) -> AgentCreateResponse: + """Async: Get a specific agent by name.""" + local_vars = locals() + try: + loop = asyncio.get_event_loop() + kwargs["aget_agent"] = True + func = partial( + get, + name=name, + custom_llm_provider=custom_llm_provider or "gemini", + extra_headers=extra_headers, + timeout=timeout, + **kwargs, + ) + ctx = contextvars.copy_context() + init_response = await loop.run_in_executor(None, partial(ctx.run, func)) + if asyncio.iscoroutine(init_response): + return await init_response + return init_response + except Exception as e: + raise litellm.exception_type( + model=name, + custom_llm_provider=custom_llm_provider or "gemini", + original_exception=e, + completion_kwargs=local_vars, + extra_kwargs=kwargs, + ) + + +@client +def get( + name: str, + custom_llm_provider: Optional[str] = None, + extra_headers: Optional[Dict[str, Any]] = None, + timeout: Optional[Union[float, httpx.Timeout]] = None, + **kwargs, +) -> Union[AgentCreateResponse, Coroutine[Any, Any, AgentCreateResponse]]: + """Sync: Get a specific agent by name.""" + local_vars = locals() + custom_llm_provider = ( + custom_llm_provider or kwargs.get("custom_llm_provider") or "gemini" + ) + try: + _is_async = kwargs.pop("aget_agent", False) is True + kwargs.setdefault("custom_llm_provider", custom_llm_provider) + litellm_params = GenericLiteLLMParams(**kwargs) + logging_obj = _make_logging_obj( + kwargs, name, custom_llm_provider, "get_agent", {"name": name} + ) + config = _get_agents_api_config(custom_llm_provider) + return agents_http_handler.get_agent( + agents_api_config=config, + name=name, + litellm_params=litellm_params, + logging_obj=logging_obj, + extra_headers=extra_headers, + timeout=timeout, + _is_async=_is_async, + ) + except Exception as e: + raise litellm.exception_type( + model=name, + custom_llm_provider=custom_llm_provider, + original_exception=e, + completion_kwargs=local_vars, + extra_kwargs=kwargs, + ) + + +# ================================================================== # +# DELETE # +# ================================================================== # + + +@client +async def adelete( + name: str, + custom_llm_provider: Optional[str] = None, + extra_headers: Optional[Dict[str, Any]] = None, + timeout: Optional[Union[float, httpx.Timeout]] = None, + **kwargs, +) -> AgentDeleteResult: + """Async: Delete a specific agent by name.""" + local_vars = locals() + try: + loop = asyncio.get_event_loop() + kwargs["adelete_agent"] = True + func = partial( + delete, + name=name, + custom_llm_provider=custom_llm_provider or "gemini", + extra_headers=extra_headers, + timeout=timeout, + **kwargs, + ) + ctx = contextvars.copy_context() + init_response = await loop.run_in_executor(None, partial(ctx.run, func)) + if asyncio.iscoroutine(init_response): + return await init_response + return init_response + except Exception as e: + raise litellm.exception_type( + model=name, + custom_llm_provider=custom_llm_provider or "gemini", + original_exception=e, + completion_kwargs=local_vars, + extra_kwargs=kwargs, + ) + + +@client +def delete( + name: str, + custom_llm_provider: Optional[str] = None, + extra_headers: Optional[Dict[str, Any]] = None, + timeout: Optional[Union[float, httpx.Timeout]] = None, + **kwargs, +) -> Union[AgentDeleteResult, Coroutine[Any, Any, AgentDeleteResult]]: + """Sync: Delete a specific agent by name.""" + local_vars = locals() + custom_llm_provider = ( + custom_llm_provider or kwargs.get("custom_llm_provider") or "gemini" + ) + try: + _is_async = kwargs.pop("adelete_agent", False) is True + kwargs.setdefault("custom_llm_provider", custom_llm_provider) + litellm_params = GenericLiteLLMParams(**kwargs) + logging_obj = _make_logging_obj( + kwargs, name, custom_llm_provider, "delete_agent", {"name": name} + ) + config = _get_agents_api_config(custom_llm_provider) + return agents_http_handler.delete_agent( + agents_api_config=config, + name=name, + litellm_params=litellm_params, + logging_obj=logging_obj, + extra_headers=extra_headers, + timeout=timeout, + _is_async=_is_async, + ) + except Exception as e: + raise litellm.exception_type( + model=name, + custom_llm_provider=custom_llm_provider, + original_exception=e, + completion_kwargs=local_vars, + extra_kwargs=kwargs, + ) + + +# ================================================================== # +# LIST VERSIONS # +# ================================================================== # + + +@client +async def alist_versions( + name: str, + custom_llm_provider: Optional[str] = None, + extra_headers: Optional[Dict[str, Any]] = None, + timeout: Optional[Union[float, httpx.Timeout]] = None, + **kwargs, +) -> AgentVersionsResponse: + """Async: List versions of a specific agent.""" + local_vars = locals() + try: + loop = asyncio.get_event_loop() + kwargs["alist_agent_versions"] = True + func = partial( + list_versions, + name=name, + custom_llm_provider=custom_llm_provider or "gemini", + extra_headers=extra_headers, + timeout=timeout, + **kwargs, + ) + ctx = contextvars.copy_context() + init_response = await loop.run_in_executor(None, partial(ctx.run, func)) + if asyncio.iscoroutine(init_response): + return await init_response + return init_response + except Exception as e: + raise litellm.exception_type( + model=name, + custom_llm_provider=custom_llm_provider or "gemini", + original_exception=e, + completion_kwargs=local_vars, + extra_kwargs=kwargs, + ) + + +@client +def list_versions( + name: str, + custom_llm_provider: Optional[str] = None, + extra_headers: Optional[Dict[str, Any]] = None, + timeout: Optional[Union[float, httpx.Timeout]] = None, + **kwargs, +) -> Union[AgentVersionsResponse, Coroutine[Any, Any, AgentVersionsResponse]]: + """Sync: List versions of a specific agent.""" + local_vars = locals() + custom_llm_provider = ( + custom_llm_provider or kwargs.get("custom_llm_provider") or "gemini" + ) + try: + _is_async = kwargs.pop("alist_agent_versions", False) is True + kwargs.setdefault("custom_llm_provider", custom_llm_provider) + litellm_params = GenericLiteLLMParams(**kwargs) + logging_obj = _make_logging_obj( + kwargs, name, custom_llm_provider, "list_agent_versions", {"name": name} + ) + config = _get_agents_api_config(custom_llm_provider) + return agents_http_handler.list_agent_versions( + agents_api_config=config, + name=name, + litellm_params=litellm_params, + logging_obj=logging_obj, + extra_headers=extra_headers, + timeout=timeout, + _is_async=_is_async, + ) + except Exception as e: + raise litellm.exception_type( + model=name, + custom_llm_provider=custom_llm_provider, + original_exception=e, + completion_kwargs=local_vars, + extra_kwargs=kwargs, + ) diff --git a/litellm/interactions/agents/utils.py b/litellm/interactions/agents/utils.py new file mode 100644 index 00000000000..d16a9597f53 --- /dev/null +++ b/litellm/interactions/agents/utils.py @@ -0,0 +1,23 @@ +""" +Utility functions for the Agents API SDK. +""" + +from typing import Optional + +from litellm.llms.base_llm.agents.transformation import BaseAgentsAPIConfig + + +def get_provider_agents_api_config( + custom_llm_provider: Optional[str], +) -> Optional[BaseAgentsAPIConfig]: + """ + Return a provider-specific BaseAgentsAPIConfig if the provider has a + native agent-creation API, or None otherwise. + """ + from litellm.types.utils import LlmProviders + + if custom_llm_provider == LlmProviders.GEMINI.value: + from litellm.llms.gemini.agents.transformation import GeminiAgentsConfig + + return GeminiAgentsConfig() + return None diff --git a/litellm/interactions/http_handler.py b/litellm/interactions/http_handler.py index 7fead07043f..695da2be89a 100644 --- a/litellm/interactions/http_handler.py +++ b/litellm/interactions/http_handler.py @@ -41,27 +41,55 @@ from litellm.types.interactions import ( from litellm.types.router import GenericLiteLLMParams -class InteractionsHTTPHandler: +class _BaseHTTPHandler: + """ + Shared HTTP infrastructure for LiteLLM handler classes. + + Provides common client resolution and error-mapping helpers so that + handler subclasses (InteractionsHTTPHandler, AgentsHTTPHandler, …) do + not duplicate this boilerplate. + """ + + def _handle_error(self, e: Exception, provider_config: Any) -> Exception: + if isinstance(e, httpx.HTTPStatusError): + return provider_config.get_error_class( + error_message=e.response.text, + status_code=e.response.status_code, + headers=dict(e.response.headers), + ) + return e + + def _sync_client( + self, + litellm_params: GenericLiteLLMParams, + client: Optional[HTTPHandler], + ) -> HTTPHandler: + return client or _get_httpx_client( + params={"ssl_verify": litellm_params.get("ssl_verify", None)} + ) + + def _async_client( + self, + litellm_params: GenericLiteLLMParams, + client: Optional[AsyncHTTPHandler], + ) -> AsyncHTTPHandler: + # GenericLiteLLMParams.get uses getattr; an unset field is None, not the default. + custom_llm_provider = litellm_params.get("custom_llm_provider") or "gemini" + return client or get_async_httpx_client( + llm_provider=litellm.LlmProviders(custom_llm_provider), + params={"ssl_verify": litellm_params.get("ssl_verify", None)}, + ) + + +class InteractionsHTTPHandler(_BaseHTTPHandler): """ HTTP handler for Interactions API requests. """ - def _handle_error( - self, - e: Exception, - provider_config: BaseInteractionsAPIConfig, - ) -> Exception: - """Handle errors from HTTP requests.""" - if isinstance(e, httpx.HTTPStatusError): - error_message = e.response.text - status_code = e.response.status_code - headers = dict(e.response.headers) - return provider_config.get_error_class( - error_message=error_message, - status_code=status_code, - headers=headers, - ) - return e + # _handle_error is inherited from _BaseHTTPHandler (accepts Any provider_config). + # AgentsHTTPHandler also extends this class and passes BaseAgentsAPIConfig, which + # is structurally compatible but a different type — keeping the override here with + # BaseInteractionsAPIConfig would cause type errors in the subclass. # ========================================================= # CREATE INTERACTION diff --git a/litellm/interactions/litellm_responses_transformation/streaming_iterator.py b/litellm/interactions/litellm_responses_transformation/streaming_iterator.py index 72a3afbc3c5..4a3eb63084e 100644 --- a/litellm/interactions/litellm_responses_transformation/streaming_iterator.py +++ b/litellm/interactions/litellm_responses_transformation/streaming_iterator.py @@ -2,7 +2,17 @@ Streaming iterator for transforming Responses API stream to Interactions API stream. """ -from typing import Any, AsyncIterator, Dict, Iterator, Optional, cast +from collections import deque +from typing import ( + Any, + AsyncIterator, + Deque, + Dict, + Iterator, + List, + Optional, + cast, +) from litellm.responses.streaming_iterator import ( BaseResponsesAPIStreamingIterator, @@ -29,7 +39,13 @@ class LiteLLMResponsesInteractionsStreamingIterator: This class handles both sync and async iteration, transforming Responses API streaming events (output.text.delta, response.completed, etc.) to Interactions - API streaming events (content.delta, interaction.complete, etc.). + API streaming events. + + Schema selection: + - New schema (default, use_legacy_interactions_schema=False): + interaction.created -> step.start -> step.delta ... -> step.stop -> interaction.completed + - Legacy schema (use_legacy_interactions_schema=True, remove after June 8 2026): + interaction.start -> content.start -> content.delta ... -> content.stop -> interaction.complete """ def __init__( @@ -41,6 +57,8 @@ class LiteLLMResponsesInteractionsStreamingIterator: custom_llm_provider: Optional[str] = None, litellm_metadata: Optional[Dict[str, Any]] = None, ): + import litellm + self.model = model self.responses_stream_iterator = litellm_custom_stream_wrapper self.request_input = request_input @@ -51,66 +69,156 @@ class LiteLLMResponsesInteractionsStreamingIterator: self.collected_text = "" self.sent_interaction_start = False self.sent_content_start = False + # Capture the schema flag once at construction time so all events + # emitted by this stream use a consistent schema, even if the global + # flag is mutated mid-stream (e.g. by a config reload). + self._use_legacy: bool = litellm.use_legacy_interactions_schema + # Buffer of events that have been derived from upstream chunks but not + # yet returned to the caller. A single Responses API chunk may expand + # into multiple Interactions API events (e.g. the first text delta + # produces interaction.created + step.start + step.delta), and the + # terminal sequence on stream end may also span multiple events + # (step.stop + interaction.completed). + self._pending_events: Deque[InteractionsAPIStreamingResponse] = deque() + # Tracks whether we've already emitted a terminal completion event so + # the StopIteration fallback path doesn't double-emit. + self._sent_completion_event = False + # ID resolved from the first upstream chunk (item_id on a text delta or + # response.id on response.created). Persisted so the EOF terminal + # events stay correlated with the start events delivered earlier. + self._interaction_id: Optional[str] = None - def _transform_responses_chunk_to_interactions_chunk( - self, - responses_chunk: ResponsesAPIStreamingResponse, - ) -> Optional[InteractionsAPIStreamingResponse]: + # ------------------------------------------------------------------ + # Event builders + # ------------------------------------------------------------------ + + def _build_interaction_start_event( + self, interaction_id: str + ) -> InteractionsAPIStreamingResponse: + event_type = "interaction.start" if self._use_legacy else "interaction.created" + return InteractionsAPIStreamingResponse( + event_type=event_type, + id=interaction_id, + object="interaction", + status="in_progress", + model=self.model, + ) + + def _build_content_start_event( + self, interaction_id: str + ) -> InteractionsAPIStreamingResponse: + if self._use_legacy: + return InteractionsAPIStreamingResponse( + event_type="content.start", + id=interaction_id, + object="content", + delta={"type": "text", "text": ""}, + ) + return InteractionsAPIStreamingResponse( + event_type="step.start", + index=0, + step={"type": "model_output", "content": []}, + ) + + def _build_text_delta_event( + self, interaction_id: str, delta_text: str + ) -> InteractionsAPIStreamingResponse: + if self._use_legacy: + return InteractionsAPIStreamingResponse( + event_type="content.delta", + id=interaction_id, + object="content", + delta={"type": "text", "text": delta_text}, + ) + return InteractionsAPIStreamingResponse( + event_type="step.delta", + index=0, + delta={"type": "text", "text": delta_text}, + ) + + def _build_content_stop_event( + self, interaction_id: Optional[str] + ) -> InteractionsAPIStreamingResponse: + if self._use_legacy: + return InteractionsAPIStreamingResponse( + event_type="content.stop", + id=interaction_id, + object="content", + delta={"type": "text", "text": self.collected_text}, + ) + return InteractionsAPIStreamingResponse( + event_type="step.stop", + index=0, + ) + + def _build_completion_event( + self, response_id: str + ) -> InteractionsAPIStreamingResponse: + if self._use_legacy: + return InteractionsAPIStreamingResponse( + event_type="interaction.complete", + id=response_id, + object="interaction", + status="completed", + model=self.model, + outputs=[{"type": "text", "text": self.collected_text}], + ) + return InteractionsAPIStreamingResponse( + event_type="interaction.completed", + id=response_id, + object="interaction", + status="completed", + model=self.model, + steps=[ + { + "type": "model_output", + "content": [{"type": "text", "text": self.collected_text}], + } + ], + ) + + # ------------------------------------------------------------------ + # Per-chunk transform (returns a list of events to enqueue) + # ------------------------------------------------------------------ + + def _events_for_chunk( + self, responses_chunk: ResponsesAPIStreamingResponse + ) -> List[InteractionsAPIStreamingResponse]: """ - Transform a Responses API streaming chunk to an Interactions API streaming chunk. + Translate a single upstream Responses API chunk into the list of + Interactions API events it should produce. - Responses API events: - - output.text.delta -> content.delta - - response.completed -> interaction.complete - - Interactions API events: - - interaction.start - - content.start - - content.delta - - content.stop - - interaction.complete + Returning a list (rather than a single event) lets a chunk emit any + synthetic start events that haven't been sent yet *together with* the + actual delta event, so we never silently drop the chunk's payload. """ if not responses_chunk: - return None + return [] - # Handle OutputTextDeltaEvent -> content.delta + # Text delta: emit any missing start events, then the delta itself. if isinstance(responses_chunk, OutputTextDeltaEvent): delta_text = ( responses_chunk.delta if isinstance(responses_chunk.delta, str) else "" ) self.collected_text += delta_text + interaction_id = ( + getattr(responses_chunk, "item_id", None) or f"interaction_{id(self)}" + ) + if self._interaction_id is None: + self._interaction_id = interaction_id - # Send interaction.start if not sent + events: List[InteractionsAPIStreamingResponse] = [] if not self.sent_interaction_start: self.sent_interaction_start = True - return InteractionsAPIStreamingResponse( - event_type="interaction.start", - id=getattr(responses_chunk, "item_id", None) - or f"interaction_{id(self)}", - object="interaction", - status="in_progress", - model=self.model, - ) - - # Send content.start if not sent + events.append(self._build_interaction_start_event(interaction_id)) if not self.sent_content_start: self.sent_content_start = True - return InteractionsAPIStreamingResponse( - event_type="content.start", - id=getattr(responses_chunk, "item_id", None), - object="content", - delta={"type": "text", "text": ""}, - ) + events.append(self._build_content_start_event(interaction_id)) + events.append(self._build_text_delta_event(interaction_id, delta_text)) + return events - # Send content.delta - return InteractionsAPIStreamingResponse( - event_type="content.delta", - id=getattr(responses_chunk, "item_id", None), - object="content", - delta={"text": delta_text}, - ) - - # Handle ResponseCreatedEvent or ResponseInProgressEvent -> interaction.start + # Response created / in-progress: synthesize interaction start if we + # haven't already sent one. if isinstance(responses_chunk, (ResponseCreatedEvent, ResponseInProgressEvent)): if not self.sent_interaction_start: self.sent_interaction_start = True @@ -118,169 +226,136 @@ class LiteLLMResponsesInteractionsStreamingIterator: getattr(responses_chunk.response, "id", None) if hasattr(responses_chunk, "response") else None - ) - return InteractionsAPIStreamingResponse( - event_type="interaction.start", - id=response_id or f"interaction_{id(self)}", - object="interaction", - status="in_progress", - model=self.model, - ) + ) or f"interaction_{id(self)}" + if self._interaction_id is None: + self._interaction_id = response_id + return [self._build_interaction_start_event(response_id)] + return [] - # Handle ResponseCompletedEvent -> interaction.complete + # Response completed: emit step.stop (if content was started) followed + # by the terminal completion event. Prefer the interaction id already + # established by earlier events so consumers can correlate the start + # and completion events by id (response.id may differ from the item_id + # used to derive the initial id when the stream starts directly with a + # text delta). if isinstance(responses_chunk, ResponseCompletedEvent): self.finished = True response = responses_chunk.response - - # Send content.stop first if content was started - if self.sent_content_start: - # Note: We'll send this in the iterator, not here - pass - - # Send interaction.complete - return InteractionsAPIStreamingResponse( - event_type="interaction.complete", - id=getattr(response, "id", None) or f"interaction_{id(self)}", - object="interaction", - status="completed", - model=self.model, - outputs=[ - { - "type": "text", - "text": self.collected_text, - } - ], + response_id = ( + self._interaction_id + or getattr(response, "id", None) + or f"interaction_{id(self)}" ) - # For other event types, return None (skip) - return None + terminal: List[InteractionsAPIStreamingResponse] = [] + if self.sent_content_start: + terminal.append(self._build_content_stop_event(response_id)) + terminal.append(self._build_completion_event(response_id)) + self._sent_completion_event = True + return terminal + + return [] + + def _build_terminal_events_on_eof( + self, + ) -> List[InteractionsAPIStreamingResponse]: + """ + Build the events to flush when the upstream stream ends without a + ResponseCompletedEvent. Ensures consumers always observe a terminal + interaction.completed/interaction.complete carrying the full text. + """ + if self._sent_completion_event: + return [] + + fallback_id = self._interaction_id or f"interaction_{id(self)}" + terminal: List[InteractionsAPIStreamingResponse] = [] + if self.sent_content_start: + terminal.append(self._build_content_stop_event(fallback_id)) + if self.sent_interaction_start or self.collected_text: + terminal.append(self._build_completion_event(fallback_id)) + self._sent_completion_event = True + return terminal + + # ------------------------------------------------------------------ + # Iteration + # ------------------------------------------------------------------ def __iter__(self) -> Iterator[InteractionsAPIStreamingResponse]: - """Sync iterator implementation.""" return self def __next__(self) -> InteractionsAPIStreamingResponse: - """Get next chunk in sync mode.""" + if self._pending_events: + return self._pending_events.popleft() + if self.finished: raise StopIteration - # Check if we have a pending interaction.complete to send - if hasattr(self, "_pending_interaction_complete"): - pending: InteractionsAPIStreamingResponse = getattr( - self, "_pending_interaction_complete" - ) - delattr(self, "_pending_interaction_complete") - return pending - - # Use a loop instead of recursion to avoid stack overflow sync_iterator = cast( SyncResponsesAPIStreamingIterator, self.responses_stream_iterator ) while True: try: - # Get next chunk from responses API stream chunk = next(sync_iterator) - - # Transform chunk (chunk is already a ResponsesAPIStreamingResponse) - transformed = self._transform_responses_chunk_to_interactions_chunk( - chunk - ) - - if transformed: - # If we finished and content was started, send content.stop before interaction.complete - if ( - self.finished - and self.sent_content_start - and transformed.event_type == "interaction.complete" - ): - # Send content.stop first - content_stop = InteractionsAPIStreamingResponse( - event_type="content.stop", - id=transformed.id, - object="content", - delta={"type": "text", "text": self.collected_text}, - ) - # Store the interaction.complete to send next - self._pending_interaction_complete = transformed - return content_stop - return transformed - - # If no transformation, continue to next chunk (loop continues) - except StopIteration: self.finished = True + self._pending_events.extend(self._build_terminal_events_on_eof()) + if self._pending_events: + return self._pending_events.popleft() + raise - # Send final events if needed - if self.sent_content_start: - return InteractionsAPIStreamingResponse( - event_type="content.stop", - object="content", - delta={"type": "text", "text": self.collected_text}, - ) - - raise StopIteration + events = self._events_for_chunk(chunk) + if events: + self._pending_events.extend(events) + return self._pending_events.popleft() def __aiter__(self) -> AsyncIterator[InteractionsAPIStreamingResponse]: - """Async iterator implementation.""" return self async def __anext__(self) -> InteractionsAPIStreamingResponse: - """Get next chunk in async mode.""" + if self._pending_events: + return self._pending_events.popleft() + if self.finished: raise StopAsyncIteration - # Check if we have a pending interaction.complete to send - if hasattr(self, "_pending_interaction_complete"): - pending: InteractionsAPIStreamingResponse = getattr( - self, "_pending_interaction_complete" - ) - delattr(self, "_pending_interaction_complete") - return pending - - # Use a loop instead of recursion to avoid stack overflow async_iterator = cast( ResponsesAPIStreamingIterator, self.responses_stream_iterator ) while True: try: - # Get next chunk from responses API stream chunk = await async_iterator.__anext__() - - # Transform chunk (chunk is already a ResponsesAPIStreamingResponse) - transformed = self._transform_responses_chunk_to_interactions_chunk( - chunk - ) - - if transformed: - # If we finished and content was started, send content.stop before interaction.complete - if ( - self.finished - and self.sent_content_start - and transformed.event_type == "interaction.complete" - ): - # Send content.stop first - content_stop = InteractionsAPIStreamingResponse( - event_type="content.stop", - id=transformed.id, - object="content", - delta={"type": "text", "text": self.collected_text}, - ) - # Store the interaction.complete to send next - self._pending_interaction_complete = transformed - return content_stop - return transformed - - # If no transformation, continue to next chunk (loop continues) - except StopAsyncIteration: self.finished = True + self._pending_events.extend(self._build_terminal_events_on_eof()) + if self._pending_events: + return self._pending_events.popleft() + raise - # Send final events if needed - if self.sent_content_start: - return InteractionsAPIStreamingResponse( - event_type="content.stop", - object="content", - delta={"type": "text", "text": self.collected_text}, - ) + events = self._events_for_chunk(chunk) + if events: + self._pending_events.extend(events) + return self._pending_events.popleft() - raise StopAsyncIteration + # ------------------------------------------------------------------ + # Backwards-compatible single-chunk transform (used by tests and any + # external callers that drove the iterator chunk-by-chunk pre-fix). + # ------------------------------------------------------------------ + + def _transform_responses_chunk_to_interactions_chunk( + self, + responses_chunk: ResponsesAPIStreamingResponse, + ) -> Optional[InteractionsAPIStreamingResponse]: + """ + Compatibility shim: returns the *first* event produced for this chunk + and queues any remaining events on ``self._pending_events`` so they + are surfaced on subsequent calls/iterations. + + Prefer ``_events_for_chunk`` in new code. + """ + events = self._events_for_chunk(responses_chunk) + if not events: + return None + first = events[0] + if len(events) > 1: + self._pending_events.extend(events[1:]) + return first diff --git a/litellm/interactions/litellm_responses_transformation/transformation.py b/litellm/interactions/litellm_responses_transformation/transformation.py index 100300af7b5..173d4ca8764 100644 --- a/litellm/interactions/litellm_responses_transformation/transformation.py +++ b/litellm/interactions/litellm_responses_transformation/transformation.py @@ -226,29 +226,37 @@ class LiteLLMResponsesInteractionsConfig: - Map status - Extract usage """ - # Extract text from outputs - outputs = [] + # Extract text from outputs and build both `outputs` (legacy) and `steps` (new schema). + outputs: List[Dict[str, Any]] = [] + steps: List[Dict[str, Any]] = [] if hasattr(responses_response, "output") and responses_response.output: for output_item in responses_response.output: # Use getattr with None default to safely access content content = getattr(output_item, "content", None) if content is not None: content_items = content if isinstance(content, list) else [content] + model_output_contents: List[Dict[str, Any]] = [] for content_item in content_items: # Check if content_item has text attribute text = getattr(content_item, "text", None) if text is not None: - outputs.append( - { - "type": "text", - "text": text, - } - ) + # Use independent dict instances so mutations to one + # of `outputs` / `steps` don't leak into the other. + outputs.append({"type": "text", "text": text}) + model_output_contents.append({"type": "text", "text": text}) elif ( isinstance(content_item, dict) and content_item.get("type") == "text" ): - outputs.append(content_item) + outputs.append({**content_item}) + model_output_contents.append({**content_item}) + if model_output_contents: + steps.append( + { + "type": "model_output", + "content": model_output_contents, + } + ) # Convert created_at to ISO string created_at = getattr(responses_response, "created_at", None) @@ -270,12 +278,14 @@ class LiteLLMResponsesInteractionsConfig: else: interactions_status = status - # Build interactions response + # Build interactions response — populate both `outputs` (legacy schema) and + # `steps` (new schema) so callers work regardless of which schema they expect. interactions_response_dict: Dict[str, Any] = { "id": getattr(responses_response, "id", ""), "object": "interaction", "status": interactions_status, "outputs": outputs, + "steps": steps, "model": model or getattr(responses_response, "model", ""), "created": created, } diff --git a/litellm/interactions/main.py b/litellm/interactions/main.py index ab429ef6db5..d99cc3d11c7 100644 --- a/litellm/interactions/main.py +++ b/litellm/interactions/main.py @@ -8,25 +8,25 @@ Per OpenAPI spec (https://ai.google.dev/static/api/interactions.openapi.json): Usage: import litellm - + # Create an interaction with a model response = litellm.interactions.create( model="gemini-2.5-flash", input="Hello, how are you?" ) - + # Create an interaction with an agent response = litellm.interactions.create( agent="deep-research-pro-preview-12-2025", input="Research the current state of cancer research" ) - + # Async version response = await litellm.interactions.acreate(...) - + # Get an interaction response = litellm.interactions.get(interaction_id="...") - + # Delete an interaction result = litellm.interactions.delete(interaction_id="...") """ @@ -48,6 +48,7 @@ from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLogging from litellm.types.interactions import ( CancelInteractionResult, DeleteInteractionResult, + InteractionEnvironment, InteractionInput, InteractionsAPIResponse, InteractionsAPIStreamingResponse, @@ -80,6 +81,8 @@ async def acreate( store: Optional[bool] = None, # Background execution background: Optional[bool] = None, + # Agent execution environment ("remote", env id, or remote config object) + environment: Optional[InteractionEnvironment] = None, # Response format response_modalities: Optional[List[str]] = None, response_format: Optional[Dict[str, Any]] = None, @@ -109,6 +112,10 @@ async def acreate( stream: Whether to stream the response store: Whether to store the response for later retrieval background: Whether to run in background + environment: Agent execution environment — ``"remote"``, an existing env id + string, or a config object such as + ``{"type": "remote", "sources": [...]}`` / + ``{"type": "remote", "network": {...}}`` response_modalities: Requested response modalities (TEXT, IMAGE, AUDIO) response_format: JSON schema for response format response_mime_type: MIME type of the response @@ -144,6 +151,7 @@ async def acreate( stream=stream, store=store, background=background, + environment=environment, response_modalities=response_modalities, response_format=response_format, response_mime_type=response_mime_type, @@ -194,6 +202,8 @@ def create( store: Optional[bool] = None, # Background execution background: Optional[bool] = None, + # Agent execution environment ("remote", env id, or remote config object) + environment: Optional[InteractionEnvironment] = None, # Response format response_modalities: Optional[List[str]] = None, response_format: Optional[Dict[str, Any]] = None, @@ -231,6 +241,10 @@ def create( stream: Whether to stream the response store: Whether to store the response for later retrieval background: Whether to run in background + environment: Agent execution environment — ``"remote"``, an existing env id + string, or a config object such as + ``{"type": "remote", "sources": [...]}`` / + ``{"type": "remote", "network": {...}}`` response_modalities: Requested response modalities (TEXT, IMAGE, AUDIO) response_format: JSON schema for response format response_mime_type: MIME type of the response @@ -252,7 +266,14 @@ def create( litellm_params = GenericLiteLLMParams(**kwargs) - if model: + # Routing logic: + # - agent provided (no model, or model accidentally set to agent name) → gemini + # - model provided → resolve provider via get_llm_provider (normal routing) + if agent and model == agent: + model = None + if agent and not model: + custom_llm_provider = custom_llm_provider or "gemini" + elif model: model, custom_llm_provider, _, _ = litellm.get_llm_provider( model=model, custom_llm_provider=custom_llm_provider, diff --git a/litellm/interactions/streaming_iterator.py b/litellm/interactions/streaming_iterator.py index a5a7f9e06e5..561686a3e1b 100644 --- a/litellm/interactions/streaming_iterator.py +++ b/litellm/interactions/streaming_iterator.py @@ -101,10 +101,14 @@ class BaseInteractionsAPIStreamingIterator: ) ) - # Store the completed response (check for status=completed) - if ( - streaming_response - and getattr(streaming_response, "status", None) == "completed" + # Store the completed response. + # Legacy schema signals completion via status="completed". + # New schema (Api-Revision: 2026-05-20) uses event_type="interaction.completed". + # Remove the legacy check after June 8, 2026. + if streaming_response and ( + getattr(streaming_response, "status", None) == "completed" + or getattr(streaming_response, "event_type", None) + == "interaction.completed" ): self.completed_response = streaming_response self._handle_logging_completed_response() diff --git a/litellm/interactions/utils.py b/litellm/interactions/utils.py index 3a18ddf52fe..84437f4d3d8 100644 --- a/litellm/interactions/utils.py +++ b/litellm/interactions/utils.py @@ -15,6 +15,7 @@ INTERACTIONS_API_OPTIONAL_PARAMS = { "stream", "store", "background", + "environment", "response_modalities", "response_format", "response_mime_type", diff --git a/litellm/litellm_core_utils/get_supported_openai_params.py b/litellm/litellm_core_utils/get_supported_openai_params.py index 9d8bd7523db..b8cdc8210fc 100644 --- a/litellm/litellm_core_utils/get_supported_openai_params.py +++ b/litellm/litellm_core_utils/get_supported_openai_params.py @@ -11,6 +11,7 @@ def get_supported_openai_params( # noqa: PLR0915 request_type: Literal[ "chat_completion", "embeddings", "transcription" ] = "chat_completion", + base_model: Optional[str] = None, ) -> Optional[list]: """ Returns the supported openai params for a given model + provider @@ -20,6 +21,11 @@ def get_supported_openai_params( # noqa: PLR0915 get_supported_openai_params(model="anthropic.claude-3", custom_llm_provider="bedrock") ``` + Args: + base_model: For Azure, the true underlying model (e.g. ``"azure/gpt-5.2"``) + when the deployment name differs. Used for model-type detection so that + non-standard deployment names route to the correct config. + Returns: - List if custom_llm_provider is mapped - None if unmapped @@ -32,17 +38,21 @@ def get_supported_openai_params( # noqa: PLR0915 if custom_llm_provider in LlmProvidersSet: provider_config = litellm.ProviderConfigManager.get_provider_chat_config( - model=model, provider=LlmProviders(custom_llm_provider) + model=model, + provider=LlmProviders(custom_llm_provider), + base_model=base_model, ) elif custom_llm_provider.split("/")[0] in LlmProvidersSet: provider_config = litellm.ProviderConfigManager.get_provider_chat_config( - model=model, provider=LlmProviders(custom_llm_provider.split("/")[0]) + model=model, + provider=LlmProviders(custom_llm_provider.split("/")[0]), + base_model=base_model, ) else: provider_config = None if provider_config and request_type == "chat_completion": - return provider_config.get_supported_openai_params(model=model) + return provider_config.get_supported_openai_params(model=base_model or model) if custom_llm_provider == "bedrock": return litellm.AmazonConverseConfig().get_supported_openai_params(model=model) @@ -130,16 +140,23 @@ def get_supported_openai_params( # noqa: PLR0915 model=model ) elif custom_llm_provider == "azure": - if litellm.AzureOpenAIO1Config().is_o_series_model(model=model): + _azure_detection_model = base_model or model + if litellm.AzureOpenAIO1Config().is_o_series_model( + model=_azure_detection_model + ): return litellm.AzureOpenAIO1Config().get_supported_openai_params( - model=model + model=_azure_detection_model ) - elif litellm.AzureOpenAIGPT5Config.is_model_gpt_5_model(model=model): + elif litellm.AzureOpenAIGPT5Config.is_model_gpt_5_model( + model=_azure_detection_model + ): return litellm.AzureOpenAIGPT5Config().get_supported_openai_params( - model=model + model=_azure_detection_model ) else: - return litellm.AzureOpenAIConfig().get_supported_openai_params(model=model) + return litellm.AzureOpenAIConfig().get_supported_openai_params( + model=_azure_detection_model + ) elif custom_llm_provider == "openrouter": return litellm.OpenrouterConfig().get_supported_openai_params(model=model) elif custom_llm_provider == "vercel_ai_gateway": diff --git a/litellm/litellm_core_utils/litellm_logging.py b/litellm/litellm_core_utils/litellm_logging.py index 876f1b167db..63fa0e64695 100644 --- a/litellm/litellm_core_utils/litellm_logging.py +++ b/litellm/litellm_core_utils/litellm_logging.py @@ -994,10 +994,8 @@ class Logging(LiteLLMLoggingBaseClass): try: # [Non-blocking Extra Debug Information in metadata] if turn_off_message_logging is True: - _metadata["raw_request"] = ( - "redacted by litellm. \ + _metadata["raw_request"] = "redacted by litellm. \ 'litellm.turn_off_message_logging=True'" - ) else: curl_command = self._get_request_curl_command( api_base=additional_args.get("api_base", ""), @@ -1031,12 +1029,8 @@ class Logging(LiteLLMLoggingBaseClass): error=str(e), ) ) - _metadata["raw_request"] = ( - "Unable to Log \ - raw request: {}".format( - str(e) - ) - ) + _metadata["raw_request"] = "Unable to Log \ + raw request: {}".format(str(e)) if getattr(self, "logger_fn", None) and callable(self.logger_fn): try: self.logger_fn( @@ -1769,9 +1763,12 @@ class Logging(LiteLLMLoggingBaseClass): self.model_call_details["response_cost"] = 0.0 elif "response_cost" in hidden_params: self.model_call_details["response_cost"] = hidden_params["response_cost"] - elif self.model_call_details.get("response_cost") is not None: + elif ( + existing_cost := self.model_call_details.get("response_cost") + ) is not None and existing_cost != 0: # Preserve response_cost if already calculated (e.g., by pass-through - # handlers like Gemini/Vertex which call completion_cost directly) + # handlers like Gemini/Vertex which call completion_cost directly). + # Do not preserve 0 from failure_handler on intermediate router retries. pass else: self.model_call_details["response_cost"] = self._response_cost_calculator( @@ -5143,13 +5140,17 @@ class StandardLoggingPayloadSetup: ) -> StandardLoggingPayloadErrorInformation: from litellm.constants import MAXIMUM_TRACEBACK_LINES_TO_LOG - # Check for 'code' first (used by ProxyException), then fall back to 'status_code' (used by LiteLLM exceptions) - # Ensure error_code is always a string for Prisma Python JSON field compatibility + # ProxyException uses .code, LiteLLM exceptions use .status_code, + # httpx.HTTPStatusError exposes status only as .response.status_code. + # Stringified for Prisma JSON compatibility. error_code_attr = getattr(original_exception, "code", None) if error_code_attr is not None and str(error_code_attr) not in ("", "None"): error_status: str = str(error_code_attr) else: status_code_attr = getattr(original_exception, "status_code", None) + if status_code_attr is None: + response_attr = getattr(original_exception, "response", None) + status_code_attr = getattr(response_attr, "status_code", None) error_status = str(status_code_attr) if status_code_attr is not None else "" error_class: str = ( str(original_exception.__class__.__name__) if original_exception else "" diff --git a/litellm/litellm_core_utils/prompt_templates/common_utils.py b/litellm/litellm_core_utils/prompt_templates/common_utils.py index f417b4a5f61..32ae61d7f58 100644 --- a/litellm/litellm_core_utils/prompt_templates/common_utils.py +++ b/litellm/litellm_core_utils/prompt_templates/common_utils.py @@ -20,6 +20,7 @@ from typing import ( cast, ) +import litellm from litellm import verbose_logger from litellm.router_utils.batch_utils import InMemoryFile from litellm.types.llms.openai import ( @@ -1170,9 +1171,16 @@ def migrate_file_to_image_url( ChatCompletionImageUrlObject, ) - file_id = message["file"].get("file_id") - file_data = message["file"].get("file_data") - format = message["file"].get("format") + file_sub = message.get("file") + if file_sub is None: + raise litellm.BadRequestError( + message="Content block has type='file' but is missing the required 'file' field", + model=None, + llm_provider=None, + ) + file_id = file_sub.get("file_id") + file_data = file_sub.get("file_data") + format = file_sub.get("format") if not file_id and not file_data: raise ValueError("file_id and file_data are both None") image_url_object = ChatCompletionImageObject( @@ -1196,12 +1204,8 @@ def get_last_user_message(messages: List[AllMessageValues]) -> Optional[str]: {"role": "assistant", "content": "I'm good, thank you!"}, {"role": "user", "content": "What is the weather in Tokyo?"}, ] - get_user_prompt(messages) -> "What is the weather in Tokyo?" + get_last_user_message(messages) -> "What is the weather in Tokyo?" """ - from litellm.litellm_core_utils.prompt_templates.common_utils import ( - convert_content_list_to_str, - ) - if not messages: return None diff --git a/litellm/litellm_core_utils/prompt_templates/factory.py b/litellm/litellm_core_utils/prompt_templates/factory.py index d40ca4e3597..f169f86079a 100644 --- a/litellm/litellm_core_utils/prompt_templates/factory.py +++ b/litellm/litellm_core_utils/prompt_templates/factory.py @@ -1233,6 +1233,7 @@ def infer_protocol_value( def _gemini_tool_call_invoke_helper( function_call_params: ChatCompletionToolCallFunctionChunk, + tool_call_id: Optional[str] = None, ) -> Optional[VertexFunctionCall]: name = function_call_params.get("name", "") or "" arguments = function_call_params.get("arguments", "") @@ -1248,6 +1249,10 @@ def _gemini_tool_call_invoke_helper( name=name, args=arguments_dict, ) + if tool_call_id: + clean_id = tool_call_id.split(THOUGHT_SIGNATURE_SEPARATOR, 1)[0] + if clean_id: + function_call["id"] = clean_id return function_call @@ -1339,6 +1344,7 @@ def _get_dummy_thought_signature() -> str: def convert_to_gemini_tool_call_invoke( message: ChatCompletionAssistantMessage, model: Optional[str] = None, + custom_llm_provider: Optional[str] = None, ) -> List[VertexPartType]: """ OpenAI tool invokes: @@ -1384,12 +1390,26 @@ def convert_to_gemini_tool_call_invoke( tool_calls = message.get("tool_calls", None) function_call = message.get("function_call", None) + from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import ( + VertexGeminiConfig, + ) + + forward_tool_call_id = bool( + model + and VertexGeminiConfig._forward_gemini_function_call_id( + model, custom_llm_provider + ) + ) + if tool_calls is not None: for idx, tool in enumerate(tool_calls): if "function" in tool: gemini_function_call: Optional[VertexFunctionCall] = ( _gemini_tool_call_invoke_helper( - function_call_params=tool["function"] + function_call_params=tool["function"], + tool_call_id=( + tool.get("id") if forward_tool_call_id else None + ), ) ) if gemini_function_call is not None: @@ -1429,10 +1449,6 @@ def convert_to_gemini_tool_call_invoke( thought_signature = provider_fields.get("thought_signature") # If no signature found and model is gemini-3, use dummy signature - from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import ( - VertexGeminiConfig, - ) - if ( not thought_signature and model @@ -1462,6 +1478,8 @@ def convert_to_gemini_tool_call_invoke( def convert_to_gemini_tool_call_result( # noqa: PLR0915 message: Union[ChatCompletionToolMessage, ChatCompletionFunctionMessage], last_message_with_tool_calls: Optional[dict], + model: Optional[str] = None, + custom_llm_provider: Optional[str] = None, ) -> Union[VertexPartType, List[VertexPartType]]: """ OpenAI message with a tool result looks like: @@ -1602,6 +1620,23 @@ def convert_to_gemini_tool_call_result( # noqa: PLR0915 ): name = tool.get("function", {}).get("name", "") + # Echo the OpenAI tool_call_id on functionResponse (strip thought-signature suffix). + # Only Google AI Studio Gemini 3+ accepts `id` on function_response parts. + # Vertex AI and older Gemini models reject the field with HTTP 400. + from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import ( + VertexGeminiConfig, + ) + + gemini_call_id: Optional[str] = None + if model and VertexGeminiConfig._forward_gemini_function_call_id( + model, custom_llm_provider + ): + raw_tool_call_id = message.get("tool_call_id") + if raw_tool_call_id and isinstance(raw_tool_call_id, str): + stripped_id = raw_tool_call_id.split(THOUGHT_SIGNATURE_SEPARATOR, 1)[0] + if stripped_id: + gemini_call_id = stripped_id + if not name: raise Exception( "Missing corresponding tool call for tool response message. Received - message={}, last_message_with_tool_calls={}".format( @@ -1632,6 +1667,8 @@ def convert_to_gemini_tool_call_result( # noqa: PLR0915 name=name, response=response_data, # type: ignore ) + if gemini_call_id: + _function_response["id"] = gemini_call_id # Create part with function_response, and optionally inline_data for images (Computer Use) _part: VertexPartType = {"function_response": _function_response} @@ -2057,9 +2094,16 @@ def anthropic_process_openai_file_message( AnthropicMessagesContainerUploadParam, ]: file_message = cast(ChatCompletionFileObject, message) - file_data = file_message["file"].get("file_data") - file_id = file_message["file"].get("file_id") - format = file_message["file"].get("format") + file_sub = file_message.get("file") + if file_sub is None: + raise litellm.BadRequestError( + message="Content block has type='file' but is missing the required 'file' field", + model=None, + llm_provider="anthropic", + ) + file_data = file_sub.get("file_data") + file_id = file_sub.get("file_id") + format = file_sub.get("format") if file_data: image_chunk = convert_to_anthropic_image_obj( openai_image_url=file_data, @@ -4879,7 +4923,13 @@ class BedrockConverseMessagesProcessor: @staticmethod def _process_file_message(message: ChatCompletionFileObject) -> BedrockContentBlock: - file_message = message["file"] + file_message = message.get("file") + if file_message is None: + raise litellm.BadRequestError( + message="Content block has type='file' but is missing the required 'file' field", + model=None, + llm_provider="bedrock", + ) file_data = file_message.get("file_data") file_id = file_message.get("file_id") @@ -4900,7 +4950,13 @@ class BedrockConverseMessagesProcessor: async def _async_process_file_message( message: ChatCompletionFileObject, ) -> BedrockContentBlock: - file_message = message["file"] + file_message = message.get("file") + if file_message is None: + raise litellm.BadRequestError( + message="Content block has type='file' but is missing the required 'file' field", + model=None, + llm_provider="bedrock", + ) file_data = file_message.get("file_data") file_id = file_message.get("file_id") format = file_message.get("format") @@ -5534,9 +5590,7 @@ def default_response_schema_prompt(response_schema: dict) -> str: prompt_str = """Use this JSON schema: ```json {} - ```""".format( - response_schema - ) + ```""".format(response_schema) return prompt_str diff --git a/litellm/litellm_core_utils/specialty_caches/dynamic_logging_cache.py b/litellm/litellm_core_utils/specialty_caches/dynamic_logging_cache.py index 13341f27a61..0a6a4e82c72 100644 --- a/litellm/litellm_core_utils/specialty_caches/dynamic_logging_cache.py +++ b/litellm/litellm_core_utils/specialty_caches/dynamic_logging_cache.py @@ -1,9 +1,9 @@ """ This is a cache for LangfuseLoggers. -Langfuse Python SDK initializes a thread for each client. +Langfuse Python SDK initializes a thread for each client. -This ensures we do +This ensures we do 1. Proper cleanup of Langfuse initialized clients. 2. Re-use created langfuse clients. """ diff --git a/litellm/llms/anthropic/chat/transformation.py b/litellm/llms/anthropic/chat/transformation.py index 1ce80207552..0b56eb86d9c 100644 --- a/litellm/llms/anthropic/chat/transformation.py +++ b/litellm/llms/anthropic/chat/transformation.py @@ -1506,9 +1506,21 @@ class AnthropicConfig(AnthropicModelInfo, BaseConfig): optional_params["metadata"] = {"user_id": value} elif param == "thinking": optional_params["thinking"] = value - elif param == "reasoning_effort" and isinstance(value, str): + elif param == "reasoning_effort": + # Accept both string ("low") and dict ({"effort": "low", + # "summary": "concise"}). The Responses->Chat parser keeps the + # full dict when `summary` is set (see #25359), so a dict here + # is the standard shape Otto/OpenAI-Responses-Bridge callers + # send. Coerce to the effort string before mapping — same + # shape-tolerance the GPT-5 path already implements in + # `_normalize_reasoning_effort_for_chat_completion`. + effort_value = value + if isinstance(effort_value, dict): + effort_value = effort_value.get("effort") + if not isinstance(effort_value, str): + continue mapped_thinking = AnthropicConfig._map_reasoning_effort( - reasoning_effort=value, + reasoning_effort=effort_value, model=model, llm_provider=self.custom_llm_provider or "anthropic", ) @@ -1519,12 +1531,12 @@ class AnthropicConfig(AnthropicModelInfo, BaseConfig): optional_params["thinking"] = mapped_thinking if AnthropicConfig._is_adaptive_thinking_model(model): mapped_effort = REASONING_EFFORT_TO_OUTPUT_CONFIG_EFFORT.get( - value + effort_value ) if mapped_effort is None: AnthropicConfig._raise_invalid_reasoning_effort( model=model, - value=value, + value=effort_value, llm_provider=self.custom_llm_provider or "anthropic", ) optional_params["output_config"] = {"effort": mapped_effort} diff --git a/litellm/llms/anthropic/experimental_pass_through/adapters/transformation.py b/litellm/llms/anthropic/experimental_pass_through/adapters/transformation.py index 0e198daf089..51a1e739a0f 100644 --- a/litellm/llms/anthropic/experimental_pass_through/adapters/transformation.py +++ b/litellm/llms/anthropic/experimental_pass_through/adapters/transformation.py @@ -1476,7 +1476,7 @@ class LiteLLMAnthropicMessagesAdapter: for choice in choices: if choice.delta.content is not None and len(choice.delta.content) > 0: text += choice.delta.content - if choice.delta.tool_calls is not None: + if choice.delta.tool_calls: partial_json = "" for tool in choice.delta.tool_calls: if ( diff --git a/litellm/llms/anthropic/experimental_pass_through/messages/agentic_streaming_iterator.py b/litellm/llms/anthropic/experimental_pass_through/messages/agentic_streaming_iterator.py index d0780c82d06..d693d50b8e5 100644 --- a/litellm/llms/anthropic/experimental_pass_through/messages/agentic_streaming_iterator.py +++ b/litellm/llms/anthropic/experimental_pass_through/messages/agentic_streaming_iterator.py @@ -13,7 +13,6 @@ from typing import Any, AsyncIterator, Dict, List, Optional, cast from litellm._logging import verbose_logger - # --------------------------------------------------------------------------- # SSE parsing helpers (module-level to keep the class lean) # --------------------------------------------------------------------------- diff --git a/litellm/llms/anthropic/experimental_pass_through/messages/handler.py b/litellm/llms/anthropic/experimental_pass_through/messages/handler.py index 009ba6ef306..14e06e047ea 100644 --- a/litellm/llms/anthropic/experimental_pass_through/messages/handler.py +++ b/litellm/llms/anthropic/experimental_pass_through/messages/handler.py @@ -293,6 +293,12 @@ async def anthropic_messages( api_base=api_base, client=client, custom_llm_provider=custom_llm_provider, + # messages were already empty-text-block sanitized at the top of this + # function and are NOT reassigned before this dispatch, so the handler + # can skip its (otherwise redundant) second full-messages scan. Passed + # explicitly (not via **kwargs) so it only affects this direct + # dispatch -- interceptor / sync entry points still sanitize. + _litellm_messages_presanitized=True, **kwargs, ) ctx = contextvars.copy_context() @@ -351,10 +357,14 @@ def anthropic_messages_handler( """ from litellm.types.utils import LlmProviders - # Sanitize empty text blocks here too so the sync entry point + # Sanitize empty text blocks so the sync entry point # (litellm.messages.create -> anthropic_messages_handler) gets the same - # protection as the async wrapper. Idempotent when called twice. - messages = strip_empty_text_blocks_from_anthropic_messages(messages) + # protection as the async wrapper. The async wrapper already sanitized and + # does not reassign messages before dispatch, so it sets + # ``_litellm_messages_presanitized`` to skip this redundant second + # full-messages scan. Pop it so it never leaks into provider params. + if not kwargs.pop("_litellm_messages_presanitized", False): + messages = strip_empty_text_blocks_from_anthropic_messages(messages) metadata = validate_anthropic_api_metadata(metadata) diff --git a/litellm/llms/anthropic/experimental_pass_through/messages/transformation.py b/litellm/llms/anthropic/experimental_pass_through/messages/transformation.py index 35495d59610..15f404d3f53 100644 --- a/litellm/llms/anthropic/experimental_pass_through/messages/transformation.py +++ b/litellm/llms/anthropic/experimental_pass_through/messages/transformation.py @@ -312,7 +312,10 @@ class AnthropicMessagesConfig(BaseAnthropicMessagesConfig): ) ####### get required params for all anthropic messages requests ###### - verbose_logger.debug(f"TRANSFORMATION DEBUG - Messages: {messages}") + # Lazy %s: the f-string previously stringified the entire messages + # payload on every request regardless of log level (a full scan of the + # request body on the hot path). Defer it to when DEBUG is enabled. + verbose_logger.debug("TRANSFORMATION DEBUG - Messages: %s", messages) # Auto-strip advisor blocks from history if advisor tool is absent. # Prevents Anthropic 400: advisor_tool_result in history requires advisor tool. diff --git a/litellm/llms/anthropic/experimental_pass_through/messages/utils.py b/litellm/llms/anthropic/experimental_pass_through/messages/utils.py index fa951ebd2e5..88832fb3f63 100644 --- a/litellm/llms/anthropic/experimental_pass_through/messages/utils.py +++ b/litellm/llms/anthropic/experimental_pass_through/messages/utils.py @@ -1,4 +1,5 @@ -from typing import Any, Dict, List, cast, get_type_hints +from functools import lru_cache +from typing import Any, Dict, FrozenSet, List, cast, get_type_hints from litellm.types.llms.anthropic import AnthropicMessagesRequestOptionalParams from litellm.types.llms.anthropic_messages.anthropic_response import ( @@ -6,6 +7,18 @@ from litellm.types.llms.anthropic_messages.anthropic_response import ( ) +@lru_cache(maxsize=1) +def _anthropic_messages_optional_param_keys() -> FrozenSet[str]: + """ + Valid AnthropicMessagesRequestOptionalParams keys. + + ``typing.get_type_hints`` is ~80us/call and this TypedDict is static, so + resolving it once per process instead of once per request removes a fixed + full-pass cost from the /v1/messages request-parse path. + """ + return frozenset(get_type_hints(AnthropicMessagesRequestOptionalParams).keys()) + + class AnthropicMessagesRequestUtils: @staticmethod def get_requested_anthropic_messages_optional_param( @@ -20,7 +33,7 @@ class AnthropicMessagesRequestUtils: Returns: AnthropicMessagesRequestOptionalParams instance with only the valid parameters """ - valid_keys = get_type_hints(AnthropicMessagesRequestOptionalParams).keys() + valid_keys = _anthropic_messages_optional_param_keys() filtered_params = { k: v for k, v in params.items() if k in valid_keys and v is not None } diff --git a/litellm/llms/azure/audio_transcription/__init__.py b/litellm/llms/azure/audio_transcription/__init__.py new file mode 100644 index 00000000000..cedd0c6dbeb --- /dev/null +++ b/litellm/llms/azure/audio_transcription/__init__.py @@ -0,0 +1,3 @@ +from .transformation import AzureSpeechAudioTranscriptionConfig + +__all__ = ["AzureSpeechAudioTranscriptionConfig"] diff --git a/litellm/llms/azure/audio_transcription/transformation.py b/litellm/llms/azure/audio_transcription/transformation.py new file mode 100644 index 00000000000..e478c8ebf35 --- /dev/null +++ b/litellm/llms/azure/audio_transcription/transformation.py @@ -0,0 +1,224 @@ +""" +Azure AI Speech (Cognitive Services) speech-to-text transformation. + +Maps OpenAI-compatible audio transcription calls to Azure Speech REST +recognition for short audio. +""" + +from typing import Any, Dict, List, Optional, Union +from urllib.parse import urlencode, urlparse + +import httpx + +from litellm.litellm_core_utils.audio_utils.utils import process_audio_file +from litellm.llms.base_llm.audio_transcription.transformation import ( + AudioTranscriptionRequestData, + BaseAudioTranscriptionConfig, +) +from litellm.llms.base_llm.chat.transformation import BaseLLMException +from litellm.types.llms.openai import ( + AllMessageValues, + OpenAIAudioTranscriptionOptionalParams, +) +from litellm.secret_managers.main import get_secret_str +from litellm.types.utils import FileTypes, TranscriptionResponse + + +class AzureSpeechAudioTranscriptionException(BaseLLMException): + pass + + +class AzureSpeechAudioTranscriptionConfig(BaseAudioTranscriptionConfig): + """ + Configuration for Azure AI Speech (Cognitive Services) STT. + + Reference: + https://learn.microsoft.com/en-us/azure/ai-services/speech-service/rest-speech-to-text-short + """ + + COGNITIVE_SERVICES_DOMAIN = "api.cognitive.microsoft.com" + STT_SPEECH_DOMAIN = "stt.speech.microsoft.com" + STT_ENDPOINT_PATH = "/speech/recognition/conversation/cognitiveservices/v1" + DEFAULT_LANGUAGE = "en-US" + + def get_supported_openai_params( + self, model: str + ) -> List[OpenAIAudioTranscriptionOptionalParams]: + return ["language", "response_format"] + + def map_openai_params( + self, + non_default_params: dict, + optional_params: dict, + model: str, + drop_params: bool, + ) -> dict: + supported_params = self.get_supported_openai_params(model=model) + for key, value in non_default_params.items(): + if key in supported_params: + optional_params[key] = value + return optional_params + + def validate_environment( + self, + headers: dict, + model: str, + messages: List[AllMessageValues], + optional_params: dict, + litellm_params: dict, + api_key: Optional[str] = None, + api_base: Optional[str] = None, + ) -> dict: + api_key = api_key or get_secret_str("AZURE_SPEECH_API_KEY") + if not api_key: + raise AzureSpeechAudioTranscriptionException( + message="api_key is required for Azure AI Speech transcription.", + status_code=401, + ) + + validated_headers = headers.copy() + validated_headers["Ocp-Apim-Subscription-Key"] = api_key + validated_headers["Content-Type"] = validated_headers.get( + "Content-Type", "audio/wav" + ) + validated_headers["Accept"] = "application/json" + return validated_headers + + def get_complete_url( + self, + api_base: Optional[str], + api_key: Optional[str], + model: str, + optional_params: dict, + litellm_params: dict, + stream: Optional[bool] = None, + ) -> str: + api_base = api_base or get_secret_str("AZURE_SPEECH_API_BASE") + if api_base is None: + raise AzureSpeechAudioTranscriptionException( + message=( + "api_base is required for Azure AI Speech transcription. " + "Use a Cognitive Services endpoint like " + "https://{region}.api.cognitive.microsoft.com or an STT " + "endpoint like https://{region}.stt.speech.microsoft.com." + ), + status_code=400, + ) + + base_url = self._resolve_stt_base_url(api_base=api_base) + query_params = { + "language": optional_params.get("language", self.DEFAULT_LANGUAGE), + "format": self._get_azure_response_format( + optional_params.get("response_format") + ), + } + return f"{base_url}{self.STT_ENDPOINT_PATH}?{urlencode(query_params)}" + + def transform_audio_transcription_request( + self, + model: str, + audio_file: FileTypes, + optional_params: dict, + litellm_params: dict, + ) -> AudioTranscriptionRequestData: + processed_audio = process_audio_file(audio_file) + return AudioTranscriptionRequestData( + data=processed_audio.file_content, + files=None, + content_type=processed_audio.content_type, + ) + + def transform_audio_transcription_response( + self, + raw_response: httpx.Response, + ) -> TranscriptionResponse: + response_json = raw_response.json() + recognition_status = response_json.get("RecognitionStatus") + if recognition_status is not None and recognition_status != "Success": + raise AzureSpeechAudioTranscriptionException( + message=( + "Azure AI Speech transcription failed with " + f"RecognitionStatus={recognition_status}." + ), + status_code=raw_response.status_code, + headers=raw_response.headers, + ) + + text = self._extract_text(response_json) + response = TranscriptionResponse(text=text) + response._hidden_params = response_json + return response + + def get_error_class( + self, error_message: str, status_code: int, headers: Union[dict, httpx.Headers] + ) -> BaseLLMException: + return AzureSpeechAudioTranscriptionException( + message=error_message, + status_code=status_code, + headers=headers, + ) + + def _resolve_stt_base_url(self, api_base: str) -> str: + api_base = api_base.rstrip("/") + parsed_url = urlparse(api_base) + hostname = parsed_url.hostname or "" + + if self._is_cognitive_services_endpoint(hostname=hostname): + region = self._extract_region_from_hostname( + hostname=hostname, domain=self.COGNITIVE_SERVICES_DOMAIN + ) + return self._build_stt_base_url(region=region) + + if self._is_stt_endpoint(hostname=hostname): + return f"{parsed_url.scheme}://{hostname}" + + if self._is_azure_openai_endpoint(hostname=hostname): + raise AzureSpeechAudioTranscriptionException( + message=( + "Azure AI Speech transcription requires a Cognitive Services " + "or STT Speech endpoint, not an Azure OpenAI endpoint." + ), + status_code=400, + ) + + return api_base + + def _is_cognitive_services_endpoint(self, hostname: str) -> bool: + return hostname == self.COGNITIVE_SERVICES_DOMAIN or hostname.endswith( + f".{self.COGNITIVE_SERVICES_DOMAIN}" + ) + + def _is_stt_endpoint(self, hostname: str) -> bool: + return hostname == self.STT_SPEECH_DOMAIN or hostname.endswith( + f".{self.STT_SPEECH_DOMAIN}" + ) + + def _is_azure_openai_endpoint(self, hostname: str) -> bool: + return hostname.endswith(".openai.azure.com") + + def _extract_region_from_hostname(self, hostname: str, domain: str) -> str: + if hostname.endswith(f".{domain}"): + return hostname[: -len(f".{domain}")] + return "" + + def _build_stt_base_url(self, region: str) -> str: + if region: + return f"https://{region}.{self.STT_SPEECH_DOMAIN}" + return f"https://{self.STT_SPEECH_DOMAIN}" + + def _get_azure_response_format(self, response_format: Optional[str]) -> str: + if response_format == "verbose_json": + return "detailed" + return "simple" + + def _extract_text(self, response_json: Dict[str, Any]) -> str: + if isinstance(response_json.get("DisplayText"), str): + return response_json["DisplayText"] + + nbest = response_json.get("NBest") + if isinstance(nbest, list) and nbest: + best = nbest[0] + if isinstance(best, dict): + return best.get("Display") or best.get("Lexical") or "" + + return "" diff --git a/litellm/llms/azure/azure.py b/litellm/llms/azure/azure.py index 9291269d153..734b8ecef16 100644 --- a/litellm/llms/azure/azure.py +++ b/litellm/llms/azure/azure.py @@ -239,7 +239,9 @@ class AzureChatCompletion(BaseAzureLLM, BaseLLM): ) data = {"model": None, "messages": messages, **optional_params} - elif litellm.AzureOpenAIGPT5Config.is_model_gpt_5_model(model=model): + elif litellm.AzureOpenAIGPT5Config.is_model_gpt_5_model( + model=litellm_params.get("base_model") or model + ): data = litellm.AzureOpenAIGPT5Config().transform_request( model=model, messages=messages, diff --git a/litellm/llms/azure/chat/o_series_transformation.py b/litellm/llms/azure/chat/o_series_transformation.py index cae7513245c..0a73597a4e4 100644 --- a/litellm/llms/azure/chat/o_series_transformation.py +++ b/litellm/llms/azure/chat/o_series_transformation.py @@ -4,10 +4,10 @@ Support for o1 and o3 model families https://platform.openai.com/docs/guides/reasoning Translations handled by LiteLLM: -- modalities: image => drop param (if user opts in to dropping param) -- role: system ==> translate to role 'user' -- streaming => faked by LiteLLM -- Tools, response_format => drop param (if user opts in to dropping param) +- modalities: image => drop param (if user opts in to dropping param) +- role: system ==> translate to role 'user' +- streaming => faked by LiteLLM +- Tools, response_format => drop param (if user opts in to dropping param) - Logprobs => drop param (if user opts in to dropping param) - Temperature => drop param (if user opts in to dropping param) """ diff --git a/litellm/llms/azure/containers/transformation.py b/litellm/llms/azure/containers/transformation.py index 586b2e379a0..cd897511585 100644 --- a/litellm/llms/azure/containers/transformation.py +++ b/litellm/llms/azure/containers/transformation.py @@ -1,9 +1,16 @@ from typing import Optional +from urllib.parse import parse_qs, urlparse, urlunparse from litellm.llms.azure.common_utils import BaseAzureLLM from litellm.llms.openai.containers.transformation import OpenAIContainerConfig from litellm.types.router import GenericLiteLLMParams +# Endpoint-specific path suffixes that may appear in a deployment's api_base +# (e.g. the responses endpoint URL is stored as api_base for Azure models). +# Strip these before building the containers URL so we always start from the +# resource root (https://resource.cognitiveservices.azure.com). +_AZURE_ENDPOINT_PATHS = ("/openai/responses",) + class AzureContainerConfig(OpenAIContainerConfig): """ @@ -27,6 +34,27 @@ class AzureContainerConfig(OpenAIContainerConfig): litellm_params=GenericLiteLLMParams(api_key=api_key), ) + @staticmethod + def _normalize_api_base(api_base: Optional[str]) -> Optional[str]: + """Strip endpoint-specific path suffixes from api_base to get the resource root.""" + if not api_base: + return api_base + parsed = urlparse(api_base) + path = parsed.path.rstrip("/") + for ep in _AZURE_ENDPOINT_PATHS: + if path.endswith(ep): + return urlunparse( + (parsed.scheme, parsed.netloc, path[: -len(ep)], "", "", "") + ) + return api_base + + @staticmethod + def _extract_api_version(api_base: Optional[str]) -> Optional[str]: + """Return the api-version query param from api_base if present.""" + if not api_base: + return None + return parse_qs(urlparse(api_base).query).get("api-version", [None])[0] + def get_complete_url( self, api_base: Optional[str], @@ -39,10 +67,19 @@ class AzureContainerConfig(OpenAIContainerConfig): {endpoint}/openai/v1/containers when api_version is 'v1', 'latest', or 'preview'; otherwise: {endpoint}/openai/containers + + The deployment's api_base may be the responses endpoint URL + (e.g. .../openai/responses?api-version=2025-04-01-preview). We + prefer the api-version embedded there over the deployment's + api_version field, which may point to an older chat API version. """ + effective_params = dict(litellm_params) + api_version_from_base = self._extract_api_version(api_base) + if api_version_from_base: + effective_params["api_version"] = api_version_from_base return BaseAzureLLM._get_base_azure_url( - api_base=api_base, - litellm_params=litellm_params, + api_base=self._normalize_api_base(api_base), + litellm_params=effective_params, route="/openai/containers", default_api_version="v1", ) diff --git a/litellm/llms/azure_ai/embed/cohere_transformation.py b/litellm/llms/azure_ai/embed/cohere_transformation.py index 64433c21b61..bbbfb60fbde 100644 --- a/litellm/llms/azure_ai/embed/cohere_transformation.py +++ b/litellm/llms/azure_ai/embed/cohere_transformation.py @@ -1,5 +1,5 @@ """ -Transformation logic from OpenAI /v1/embeddings format to Azure AI Cohere's /v1/embed. +Transformation logic from OpenAI /v1/embeddings format to Azure AI Cohere's /v1/embed. Why separate file? Make it easy to see how transformation works diff --git a/litellm/llms/azure_ai/rerank/transformation.py b/litellm/llms/azure_ai/rerank/transformation.py index b5993040ea0..f64133afa8b 100644 --- a/litellm/llms/azure_ai/rerank/transformation.py +++ b/litellm/llms/azure_ai/rerank/transformation.py @@ -1,5 +1,5 @@ """ -Translate between Cohere's `/rerank` format and Azure AI's `/rerank` format. +Translate between Cohere's `/rerank` format and Azure AI's `/rerank` format. """ from typing import Optional diff --git a/litellm/llms/base_llm/agents/__init__.py b/litellm/llms/base_llm/agents/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/litellm/llms/base_llm/agents/transformation.py b/litellm/llms/base_llm/agents/transformation.py new file mode 100644 index 00000000000..508e54cb7ab --- /dev/null +++ b/litellm/llms/base_llm/agents/transformation.py @@ -0,0 +1,165 @@ +""" +Base transformation class for provider-side Agents API. + +Providers that have a native agents CRUD API (e.g. Gemini v1beta/agents) +subclass BaseAgentsAPIConfig and implement the abstract methods. + +The HTTP calls are handled by AgentsHTTPHandler — this class is pure +transform logic (same separation as BaseInteractionsAPIConfig / +InteractionsHTTPHandler). +""" + +from abc import ABC, abstractmethod +from typing import Any, Dict, Optional, Tuple, Union + +import httpx + +from litellm.types.agents import ( + AgentCreateResponse, + AgentDeleteResult, + AgentListResponse, + AgentVersionsResponse, +) + + +class BaseAgentsAPIConfig(ABC): + """ + Minimal interface for providers that expose a native agents CRUD API. + """ + + # ------------------------------------------------------------------ # + # CREATE # + # ------------------------------------------------------------------ # + + @abstractmethod + def get_complete_url( + self, + api_base: Optional[str], + litellm_params: Dict[str, Any], + ) -> str: + """Return the full URL for POST /agents (create).""" + + @abstractmethod + def validate_environment( + self, + headers: Dict[str, str], + litellm_params: Dict[str, Any], + ) -> Dict[str, str]: + """Validate credentials and return auth headers.""" + + @abstractmethod + def transform_create_request( + self, + name: str, + litellm_params: Dict[str, Any], + ) -> Dict[str, Any]: + """Map name + litellm_params to the provider's create-agent body.""" + + @abstractmethod + def transform_create_response( + self, + raw_response: httpx.Response, + name: str, + ) -> AgentCreateResponse: + """Parse create response. Raise on non-2xx.""" + + # ------------------------------------------------------------------ # + # LIST # + # ------------------------------------------------------------------ # + + @abstractmethod + def transform_list_request( + self, + api_base: Optional[str], + litellm_params: Dict[str, Any], + ) -> Tuple[str, Dict[str, Any]]: + """Return (url, query_params) for GET /agents.""" + + @abstractmethod + def transform_list_response( + self, + raw_response: httpx.Response, + ) -> AgentListResponse: + """Parse list-agents response. Raise on non-2xx.""" + + # ------------------------------------------------------------------ # + # GET # + # ------------------------------------------------------------------ # + + @abstractmethod + def transform_get_request( + self, + name: str, + api_base: Optional[str], + litellm_params: Dict[str, Any], + ) -> Tuple[str, Dict[str, Any]]: + """Return (url, query_params) for GET /agents/{name}.""" + + @abstractmethod + def transform_get_response( + self, + raw_response: httpx.Response, + name: str, + ) -> AgentCreateResponse: + """Parse get-agent response. Raise on non-2xx.""" + + # ------------------------------------------------------------------ # + # DELETE # + # ------------------------------------------------------------------ # + + @abstractmethod + def transform_delete_request( + self, + name: str, + api_base: Optional[str], + litellm_params: Dict[str, Any], + ) -> str: + """Return the URL for DELETE /agents/{name}.""" + + @abstractmethod + def transform_delete_response( + self, + raw_response: httpx.Response, + name: str, + ) -> AgentDeleteResult: + """Parse delete-agent response. Raise on non-2xx.""" + + # ------------------------------------------------------------------ # + # LIST VERSIONS # + # ------------------------------------------------------------------ # + + @abstractmethod + def transform_list_versions_request( + self, + name: str, + api_base: Optional[str], + litellm_params: Dict[str, Any], + ) -> Tuple[str, Dict[str, Any]]: + """Return (url, query_params) for GET /agents/{name}/versions.""" + + @abstractmethod + def transform_list_versions_response( + self, + raw_response: httpx.Response, + name: str, + ) -> AgentVersionsResponse: + """Parse list-versions response. Raise on non-2xx.""" + + # ------------------------------------------------------------------ # + # ERROR HANDLING # + # ------------------------------------------------------------------ # + + def get_error_class( + self, + error_message: str, + status_code: int, + headers: Union[dict, httpx.Headers], + ) -> Exception: + """Map HTTP error status codes to provider-specific exceptions.""" + from litellm.llms.base_llm.chat.transformation import BaseLLMException + + return BaseLLMException( + status_code=status_code, + message=error_message, + headers=headers, + ) diff --git a/litellm/llms/base_llm/ocr/transformation.py b/litellm/llms/base_llm/ocr/transformation.py index b7f4d8e3b2d..263e0c094ce 100644 --- a/litellm/llms/base_llm/ocr/transformation.py +++ b/litellm/llms/base_llm/ocr/transformation.py @@ -54,6 +54,7 @@ class OCRUsageInfo(LiteLLMPydanticObjectBase): """Usage information from OCR response.""" pages_processed: Optional[int] = None + credits: Optional[float] = None doc_size_bytes: Optional[int] = None model_config = {"extra": "allow"} diff --git a/litellm/llms/bedrock/base_aws_llm.py b/litellm/llms/bedrock/base_aws_llm.py index 9dd2b055a12..b659c1b0a0a 100644 --- a/litellm/llms/bedrock/base_aws_llm.py +++ b/litellm/llms/bedrock/base_aws_llm.py @@ -44,6 +44,12 @@ else: # (e.g. "us-east-1", "eu-west-2", "us-gov-west-1", "cn-north-1"). _VALID_AWS_REGION_PATTERN = re.compile(r"\A[a-z0-9-]+\Z") +# Regional STS hostnames, e.g. sts.eu-west-1.amazonaws.com or +# vpce-xxx.sts.eu-west-1.vpce.amazonaws.com +_STS_REGION_FROM_ENDPOINT_PATTERN = re.compile( + r"(?:^|\.)sts(?:-fips)?\.([a-z0-9-]+)\.(?:amazonaws\.com(?:\.cn)?|vpce\.amazonaws\.com)" +) + class Boto3CredentialsInfo(BaseModel): credentials: Credentials @@ -450,6 +456,24 @@ class BaseAWSLLM: model_id = BaseAWSLLM.encode_model_id(model_id=model_id) else: model_id = model + # Strip LiteLLM routing prefixes (e.g. "bedrock/", "invoke/", + # "bedrock/invoke/", "bedrock/converse/") that are not part of the + # actual Bedrock model ID. The converse path already does this; the + # invoke path must do the same so that ARN models such as + # bedrock/arn:aws:bedrock:…:inference-profile/global.anthropic.… + # are not forwarded verbatim to the Bedrock API, which would produce + # a malformed URL and cause botocore's EventStreamBuffer to receive + # a JSON error body instead of a binary event-stream — surfaced as a + # misleading ChecksumMismatch (0x223a7b22 == ':{"'). + # Use strip_bedrock_routing_prefix (no break) so compound prefixes + # like "bedrock/invoke/arn:..." are fully stripped in one call. + from litellm.llms.bedrock.common_utils import strip_bedrock_routing_prefix + + model_id = strip_bedrock_routing_prefix(model_id) + # URL-encode ARNs so colons and slashes are safe in the URL path. + if model_id.startswith("arn:"): + model_id = BaseAWSLLM.encode_model_id(model_id=model_id) + return model_id model_id = model_id.replace("invoke/", "", 1) if provider == "llama" and "llama/" in model_id: @@ -633,6 +657,40 @@ class BaseAWSLLM: "Region names must contain only lowercase letters, digits, and hyphens." ) + @staticmethod + def _parse_sts_region_from_endpoint( + aws_sts_endpoint: Optional[str], + ) -> Optional[str]: + """Extract region from sts.{region}.amazonaws.com or vpce-x.sts.{region}.vpce.amazonaws.com.""" + if not aws_sts_endpoint: + return None + host = urllib.parse.urlparse(aws_sts_endpoint).hostname or "" + match = _STS_REGION_FROM_ENDPOINT_PATTERN.search(host) + return match.group(1) if match else None + + @staticmethod + def _resolve_sts_region(aws_sts_endpoint: Optional[str] = None) -> Optional[str]: + """STS signing region: parsed from aws_sts_endpoint else AWS_REGION / AWS_DEFAULT_REGION.""" + return ( + BaseAWSLLM._parse_sts_region_from_endpoint(aws_sts_endpoint) + or os.getenv("AWS_REGION") + or os.getenv("AWS_DEFAULT_REGION") + ) + + def _build_sts_client_kwargs( + self, + aws_sts_endpoint: Optional[str] = None, + ssl_verify: Optional[Union[bool, str]] = None, + ) -> dict: + """STS client kwargs with aligned endpoint_url and region_name (SigV4).""" + kwargs: dict = {"verify": self._get_ssl_verify(ssl_verify)} + if aws_sts_endpoint is not None: + kwargs["endpoint_url"] = aws_sts_endpoint + sts_region = self._resolve_sts_region(aws_sts_endpoint) + if sts_region is not None: + kwargs["region_name"] = sts_region + return kwargs + def get_aws_region_name_for_non_llm_api_calls( self, aws_region_name: Optional[str] = None, @@ -787,11 +845,6 @@ class BaseAWSLLM: f"IN Web Identity Token: {aws_web_identity_token} | Role Name: {aws_role_name} | Session Name: {aws_session_name}" ) - if aws_sts_endpoint is None: - sts_endpoint = f"https://sts.{aws_region_name}.amazonaws.com" - else: - sts_endpoint = aws_sts_endpoint - oidc_token = get_secret(aws_web_identity_token) if oidc_token is None: @@ -800,13 +853,13 @@ class BaseAWSLLM: status_code=401, ) + sts_client_kwargs = self._build_sts_client_kwargs( + aws_sts_endpoint=aws_sts_endpoint, + ssl_verify=ssl_verify, + ) + with tracer.trace("boto3.client(sts)"): - sts_client = boto3.client( - "sts", - region_name=aws_region_name, - endpoint_url=sts_endpoint, - verify=self._get_ssl_verify(ssl_verify), - ) + sts_client = boto3.client("sts", **sts_client_kwargs) # https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html # https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sts/client/assume_role_with_web_identity.html @@ -847,7 +900,6 @@ class BaseAWSLLM: irsa_role_arn: str, aws_role_name: str, aws_session_name: str, - region: str, web_identity_token_file: str, aws_external_id: Optional[str] = None, aws_sts_endpoint: Optional[str] = None, @@ -862,12 +914,10 @@ class BaseAWSLLM: with open(web_identity_token_file, "r") as f: web_identity_token = f.read().strip() - irsa_sts_kwargs: dict = { - "region_name": region, - "verify": self._get_ssl_verify(ssl_verify), - } - if aws_sts_endpoint is not None: - irsa_sts_kwargs["endpoint_url"] = aws_sts_endpoint + irsa_sts_kwargs = self._build_sts_client_kwargs( + aws_sts_endpoint=aws_sts_endpoint, + ssl_verify=ssl_verify, + ) # Create an STS client without credentials with tracer.trace("boto3.client(sts) for manual IRSA"): @@ -924,7 +974,6 @@ class BaseAWSLLM: self, aws_role_name: str, aws_session_name: str, - region: str, aws_external_id: Optional[str] = None, aws_sts_endpoint: Optional[str] = None, ssl_verify: Optional[Union[bool, str]] = None, @@ -932,12 +981,10 @@ class BaseAWSLLM: """Handle same-account role assumption for IRSA.""" import boto3 - irsa_sts_kwargs: dict = { - "region_name": region, - "verify": self._get_ssl_verify(ssl_verify), - } - if aws_sts_endpoint is not None: - irsa_sts_kwargs["endpoint_url"] = aws_sts_endpoint + irsa_sts_kwargs = self._build_sts_client_kwargs( + aws_sts_endpoint=aws_sts_endpoint, + ssl_verify=ssl_verify, + ) verbose_logger.debug("Same account role assumption, using automatic IRSA") with tracer.trace("boto3.client(sts) with automatic IRSA"): @@ -1010,12 +1057,6 @@ class BaseAWSLLM: web_identity_token_file = os.getenv("AWS_WEB_IDENTITY_TOKEN_FILE") irsa_role_arn = os.getenv("AWS_ROLE_ARN") - region = ( - aws_region_name - or os.getenv("AWS_REGION") - or os.getenv("AWS_DEFAULT_REGION") - ) - # If we have IRSA environment variables and no explicit credentials, # we need to use the web identity token flow if ( @@ -1031,16 +1072,12 @@ class BaseAWSLLM: ) try: - # Use passed-in region when set, else env, else default (align with AssumeRole path) - region = region or "us-east-1" - # Check if we need to do cross-account role assumption if aws_role_name != irsa_role_arn: sts_response = self._handle_irsa_cross_account( irsa_role_arn, aws_role_name, aws_session_name, - region, web_identity_token_file, aws_external_id, aws_sts_endpoint=aws_sts_endpoint, @@ -1050,7 +1087,6 @@ class BaseAWSLLM: sts_response = self._handle_irsa_same_account( aws_role_name, aws_session_name, - region, aws_external_id, aws_sts_endpoint=aws_sts_endpoint, ssl_verify=ssl_verify, @@ -1074,11 +1110,10 @@ class BaseAWSLLM: # In EKS/IRSA environments, use ambient credentials (no explicit keys needed) # This allows the web identity token to work automatically - sts_client_kwargs: dict = {"verify": self._get_ssl_verify(ssl_verify)} - if region is not None: - sts_client_kwargs["region_name"] = region - if aws_sts_endpoint is not None: - sts_client_kwargs["endpoint_url"] = aws_sts_endpoint + sts_client_kwargs = self._build_sts_client_kwargs( + aws_sts_endpoint=aws_sts_endpoint, + ssl_verify=ssl_verify, + ) if aws_access_key_id is None and aws_secret_access_key is None: with tracer.trace("boto3.client(sts)"): sts_client = boto3.client("sts", **sts_client_kwargs) diff --git a/litellm/llms/bedrock/batches/transformation.py b/litellm/llms/bedrock/batches/transformation.py index 0602b1c2f62..620bc91732d 100644 --- a/litellm/llms/bedrock/batches/transformation.py +++ b/litellm/llms/bedrock/batches/transformation.py @@ -5,6 +5,7 @@ from typing import Any, Dict, List, Literal, Optional, Union, cast from httpx import Headers, Response +from litellm.litellm_core_utils.safe_json_dumps import safe_dumps from litellm.llms.base_llm.batches.transformation import BaseBatchesConfig from litellm.llms.base_llm.chat.transformation import BaseLLMException from litellm.secret_managers.main import get_secret_str @@ -263,9 +264,32 @@ class BedrockBatchesConfig(BaseAWSLLM, BaseBatchesConfig): cancelling_at=None, cancelled_at=None, request_counts=None, - metadata=original_request.get("metadata", {}), + metadata=self._get_openai_compatible_batch_metadata( + original_request.get("metadata", {}) + ), ) + @staticmethod + def _get_openai_compatible_batch_metadata(metadata: Any) -> Dict[str, str]: + """ + OpenAI Batch metadata only accepts string values. + """ + if not isinstance(metadata, dict): + return {} + + sanitized_metadata: Dict[str, str] = {} + for key, value in metadata.items(): + if key == "standard_logging_guardrail_information" or value is None: + continue + + str_key = str(key) + if isinstance(value, str): + sanitized_metadata[str_key] = value + else: + sanitized_metadata[str_key] = safe_dumps(value) + + return sanitized_metadata + def transform_retrieve_batch_request( self, batch_id: str, diff --git a/litellm/llms/bedrock/chat/invoke_agent/transformation.py b/litellm/llms/bedrock/chat/invoke_agent/transformation.py index e4072c24557..c88fa32b6a0 100644 --- a/litellm/llms/bedrock/chat/invoke_agent/transformation.py +++ b/litellm/llms/bedrock/chat/invoke_agent/transformation.py @@ -299,9 +299,9 @@ class AmazonInvokeAgentConfig(BaseConfig, BaseAWSLLM): ) def _get_response_stream_shape(self): - from litellm.llms.bedrock.common_utils import BEDROCK_RESPONSE_STREAM_SHAPE + from litellm.llms.bedrock.common_utils import get_bedrock_response_stream_shape - return BEDROCK_RESPONSE_STREAM_SHAPE + return get_bedrock_response_stream_shape() def _extract_response_content(self, events: InvokeAgentEventList) -> str: """Extract the final response content from parsed events.""" diff --git a/litellm/llms/bedrock/chat/invoke_handler.py b/litellm/llms/bedrock/chat/invoke_handler.py index 92ca75db95b..7a9916f1f31 100644 --- a/litellm/llms/bedrock/chat/invoke_handler.py +++ b/litellm/llms/bedrock/chat/invoke_handler.py @@ -68,9 +68,9 @@ from litellm.utils import CustomStreamWrapper, get_secret from ..base_aws_llm import BaseAWSLLM from ..common_utils import ( - BEDROCK_RESPONSE_STREAM_SHAPE, BedrockError, ModelResponseIterator, + get_bedrock_response_stream_shape, get_bedrock_tool_name, ) @@ -1828,7 +1828,8 @@ class AWSEventStreamDecoder: yield self._chunk_parser(chunk_data=_data) def _parse_message_from_event(self, event) -> Optional[str]: - if BEDROCK_RESPONSE_STREAM_SHAPE is None: + response_stream_shape = get_bedrock_response_stream_shape() + if response_stream_shape is None: raise BedrockError( status_code=500, message=( @@ -1837,9 +1838,7 @@ class AWSEventStreamDecoder: ), ) response_dict = event.to_response_dict() - parsed_response = self.parser.parse( - response_dict, BEDROCK_RESPONSE_STREAM_SHAPE - ) + parsed_response = self.parser.parse(response_dict, response_stream_shape) if response_dict["status_code"] != 200: decoded_body = response_dict["body"].decode() diff --git a/litellm/llms/bedrock/chat/invoke_transformations/anthropic_claude3_transformation.py b/litellm/llms/bedrock/chat/invoke_transformations/anthropic_claude3_transformation.py index c883ab68dff..d9599b8b9c4 100644 --- a/litellm/llms/bedrock/chat/invoke_transformations/anthropic_claude3_transformation.py +++ b/litellm/llms/bedrock/chat/invoke_transformations/anthropic_claude3_transformation.py @@ -3,6 +3,7 @@ from typing import TYPE_CHECKING, Any, List, Optional import httpx from litellm.anthropic_beta_headers_manager import filter_and_transform_beta_headers +from litellm.litellm_core_utils.litellm_logging import verbose_logger from litellm.litellm_core_utils.prompt_templates.factory import ( convert_to_anthropic_image_obj, ) @@ -22,6 +23,7 @@ from litellm.llms.bedrock.common_utils import ( from litellm.types.llms.anthropic import ANTHROPIC_TOOL_SEARCH_BETA_HEADER from litellm.types.llms.openai import AllMessageValues from litellm.types.utils import ModelResponse +from litellm.utils import _supports_factory if TYPE_CHECKING: from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj @@ -169,6 +171,24 @@ class AmazonAnthropicClaudeConfig(AmazonInvokeConfig, AnthropicConfig): anthropic_request.pop("model", None) anthropic_request.pop("stream", None) anthropic_request.pop("output_format", None) + if not ( + _supports_factory( + model=model, + custom_llm_provider="bedrock", + key="supports_output_config", + ) + or AnthropicConfig._model_supports_effort_param(model) + ): + if anthropic_request.pop("output_config", None) is not None: + verbose_logger.warning( + "Bedrock Invoke: stripping unsupported `output_config` for " + "model=%s — neither `supports_output_config` nor any " + "`supports_*_reasoning_effort` flag is set in " + "model_prices_and_context_window.json. Add the capability " + "flag to the model JSON entry if this model accepts " + "`output_config`.", + model, + ) if "anthropic_version" not in anthropic_request: anthropic_request["anthropic_version"] = self.anthropic_version diff --git a/litellm/llms/bedrock/claude_platform/common_utils.py b/litellm/llms/bedrock/claude_platform/common_utils.py index 121221518c8..3abb8710de7 100644 --- a/litellm/llms/bedrock/claude_platform/common_utils.py +++ b/litellm/llms/bedrock/claude_platform/common_utils.py @@ -4,7 +4,6 @@ import litellm from litellm.llms.bedrock.base_aws_llm import BaseAWSLLM from litellm.secret_managers.main import get_secret_str - CLAUDE_PLATFORM_SERVICE_NAME: Literal["aws-external-anthropic"] = ( "aws-external-anthropic" ) diff --git a/litellm/llms/bedrock/common_utils.py b/litellm/llms/bedrock/common_utils.py index 0256d5d4b95..4f4729e4019 100644 --- a/litellm/llms/bedrock/common_utils.py +++ b/litellm/llms/bedrock/common_utils.py @@ -4,6 +4,7 @@ from __future__ import annotations Common utilities used across bedrock chat/embedding/image generation """ +import functools import json import os from typing import TYPE_CHECKING, Any, Dict, List, Literal, Optional, Union @@ -963,10 +964,8 @@ def _load_bedrock_response_stream_shape(): """ Load the ResponseStream shape from botocore's bundled bedrock-runtime schema. - Called once at module import time; the result is stored in - ``BEDROCK_RESPONSE_STREAM_SHAPE`` and reused for the process lifetime. Returns ``None`` if botocore is unavailable or the service model cannot be - loaded, so the module still imports cleanly. + loaded. """ try: from botocore.loaders import Loader @@ -977,15 +976,22 @@ def _load_bedrock_response_stream_shape(): return ServiceModel(service_dict).shape_for("ResponseStream") except Exception as e: verbose_logger.warning( - "litellm: could not pre-load bedrock-runtime response stream shape " + "litellm: could not load bedrock-runtime response stream shape " "— Bedrock event-stream decoding will be unavailable. Error: %s", e, ) return None -# Eagerly resolved once per process — avoids per-instance or per-request disk I/O. -BEDROCK_RESPONSE_STREAM_SHAPE = _load_bedrock_response_stream_shape() +@functools.lru_cache(maxsize=1) +def get_bedrock_response_stream_shape(): + """ + Lazily load and cache the bedrock-runtime ResponseStream shape for the process. + + Avoids importing botocore (and logging warnings) unless Bedrock event-stream + decoding is actually needed. + """ + return _load_bedrock_response_stream_shape() class BedrockEventStreamDecoderBase: @@ -999,7 +1005,8 @@ class BedrockEventStreamDecoderBase: self.parser = EventStreamJSONParser() def _parse_message_from_event(self, event) -> Optional[str]: - if BEDROCK_RESPONSE_STREAM_SHAPE is None: + response_stream_shape = get_bedrock_response_stream_shape() + if response_stream_shape is None: raise BedrockError( status_code=500, message=( @@ -1008,9 +1015,7 @@ class BedrockEventStreamDecoderBase: ), ) response_dict = event.to_response_dict() - parsed_response = self.parser.parse( - response_dict, BEDROCK_RESPONSE_STREAM_SHAPE - ) + parsed_response = self.parser.parse(response_dict, response_stream_shape) if response_dict["status_code"] != 200: decoded_body = response_dict["body"].decode() diff --git a/litellm/llms/bedrock/embed/amazon_titan_g1_transformation.py b/litellm/llms/bedrock/embed/amazon_titan_g1_transformation.py index 2747551af81..64a79b73273 100644 --- a/litellm/llms/bedrock/embed/amazon_titan_g1_transformation.py +++ b/litellm/llms/bedrock/embed/amazon_titan_g1_transformation.py @@ -1,5 +1,5 @@ """ -Transformation logic from OpenAI /v1/embeddings format to Bedrock Amazon Titan G1 /invoke format. +Transformation logic from OpenAI /v1/embeddings format to Bedrock Amazon Titan G1 /invoke format. Why separate file? Make it easy to see how transformation works diff --git a/litellm/llms/bedrock/embed/cohere_transformation.py b/litellm/llms/bedrock/embed/cohere_transformation.py index d00cb74aae0..9570ff1a14c 100644 --- a/litellm/llms/bedrock/embed/cohere_transformation.py +++ b/litellm/llms/bedrock/embed/cohere_transformation.py @@ -1,5 +1,5 @@ """ -Transformation logic from OpenAI /v1/embeddings format to Bedrock Cohere /invoke format. +Transformation logic from OpenAI /v1/embeddings format to Bedrock Cohere /invoke format. Why separate file? Make it easy to see how transformation works """ @@ -22,7 +22,7 @@ class BedrockCohereEmbeddingConfig: ) -> dict: for k, v in non_default_params.items(): if k == "encoding_format": - optional_params["embedding_types"] = v + optional_params["embedding_types"] = v if isinstance(v, list) else [v] elif k == "dimensions": optional_params["output_dimension"] = v return optional_params diff --git a/litellm/llms/bedrock/messages/invoke_transformations/anthropic_claude3_transformation.py b/litellm/llms/bedrock/messages/invoke_transformations/anthropic_claude3_transformation.py index 151e0e404a0..69b61298d33 100644 --- a/litellm/llms/bedrock/messages/invoke_transformations/anthropic_claude3_transformation.py +++ b/litellm/llms/bedrock/messages/invoke_transformations/anthropic_claude3_transformation.py @@ -45,6 +45,7 @@ from litellm.types.router import GenericLiteLLMParams from litellm.types.utils import GenericStreamingChunk from litellm.types.utils import GenericStreamingChunk as GChunk from litellm.types.utils import ModelResponseStream +from litellm.utils import _supports_factory if TYPE_CHECKING: from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj @@ -557,7 +558,29 @@ class AmazonAnthropicClaudeMessagesConfig( anthropic_messages_request=anthropic_messages_request, ) - # 5a. Remove `custom` field from tools (Bedrock doesn't support it) + # 5a. Bedrock Invoke supports output_config (effort) for Claude 4.6+ models, + # but older models do not — strip it to avoid request rejection. + # Ref: https://github.com/BerriAI/litellm/issues/22797 + if not ( + _supports_factory( + model=model, + custom_llm_provider="bedrock", + key="supports_output_config", + ) + or AnthropicConfig._model_supports_effort_param(model) + ): + if anthropic_messages_request.pop("output_config", None) is not None: + verbose_logger.warning( + "Bedrock Invoke: stripping unsupported `output_config` for " + "model=%s — neither `supports_output_config` nor any " + "`supports_*_reasoning_effort` flag is set in " + "model_prices_and_context_window.json. Add the capability " + "flag to the model JSON entry if this model accepts " + "`output_config`.", + model, + ) + + # 5b. Remove `custom` field from tools (Bedrock doesn't support it) # Claude Code sends `custom: {defer_loading: true}` on tool definitions, # which causes Bedrock to reject the request with "Extra inputs are not permitted" # Ref: https://github.com/BerriAI/litellm/issues/22847 diff --git a/litellm/llms/bedrock_mantle/chat/transformation.py b/litellm/llms/bedrock_mantle/chat/transformation.py index e413bb22b2d..81a56030a5c 100644 --- a/litellm/llms/bedrock_mantle/chat/transformation.py +++ b/litellm/llms/bedrock_mantle/chat/transformation.py @@ -16,7 +16,6 @@ from litellm.secret_managers.main import get_secret_str from ...openai_like.chat.transformation import OpenAILikeChatConfig - BEDROCK_MANTLE_DEFAULT_REGION = "us-east-1" diff --git a/litellm/llms/chatgpt/responses/transformation.py b/litellm/llms/chatgpt/responses/transformation.py index 66acd933416..56b61b66c84 100644 --- a/litellm/llms/chatgpt/responses/transformation.py +++ b/litellm/llms/chatgpt/responses/transformation.py @@ -1,7 +1,5 @@ -import json -from typing import Any, Optional +from typing import Any, Dict, Optional -from litellm.constants import STREAM_SSE_DONE_STRING from litellm.exceptions import AuthenticationError from litellm.litellm_core_utils.core_helpers import process_response_headers from litellm.litellm_core_utils.llm_response_utils.convert_dict_to_response import ( @@ -9,13 +7,17 @@ from litellm.litellm_core_utils.llm_response_utils.convert_dict_to_response impo ) from litellm.llms.openai.common_utils import OpenAIError from litellm.llms.openai.responses.transformation import OpenAIResponsesAPIConfig +from litellm.responses.sse_output_recovery import ( + parse_sse_json_chunk, + record_output_item_chunk, + record_output_text_chunk, +) from litellm.types.llms.openai import ( ResponsesAPIResponse, ResponsesAPIStreamEvents, ) from litellm.types.router import GenericLiteLLMParams from litellm.types.utils import LlmProviders -from litellm.utils import CustomStreamWrapper from ..authenticator import Authenticator from ..common_utils import ( @@ -111,86 +113,139 @@ class ChatGPTResponsesAPIConfig(OpenAIResponsesAPIConfig): raw_response: Any, logging_obj: Any, ): - content_type = (raw_response.headers or {}).get("content-type", "") body_text = raw_response.text or "" - if "text/event-stream" not in content_type.lower(): - trimmed_body = body_text.lstrip() - if not ( - trimmed_body.startswith("event:") - or trimmed_body.startswith("data:") - or "\nevent:" in body_text - or "\ndata:" in body_text - ): - return super().transform_response_api_response( - model=model, - raw_response=raw_response, - logging_obj=logging_obj, - ) + if not self._should_parse_as_sse( + raw_response=raw_response, body_text=body_text + ): + return super().transform_response_api_response( + model=model, + raw_response=raw_response, + logging_obj=logging_obj, + ) logging_obj.post_call( original_response=raw_response.text, additional_args={"complete_input_dict": {}}, ) - completed_response = None - error_message = None - for chunk in body_text.splitlines(): - stripped_chunk = CustomStreamWrapper._strip_sse_data_from_chunk(chunk) - if not stripped_chunk: - continue - stripped_chunk = stripped_chunk.strip() - if not stripped_chunk: - continue - if stripped_chunk == STREAM_SSE_DONE_STRING: - break - try: - parsed_chunk = json.loads(stripped_chunk) - except json.JSONDecodeError: - continue - if not isinstance(parsed_chunk, dict): - continue - event_type = parsed_chunk.get("type") - if event_type == ResponsesAPIStreamEvents.RESPONSE_COMPLETED: - response_payload = parsed_chunk.get("response") - if isinstance(response_payload, dict): - response_payload = dict(response_payload) - if "created_at" in response_payload: - response_payload["created_at"] = _safe_convert_created_field( - response_payload["created_at"] - ) - try: - completed_response = ResponsesAPIResponse(**response_payload) - except Exception: - completed_response = ResponsesAPIResponse.model_construct( - **response_payload - ) - break - if event_type in ( - ResponsesAPIStreamEvents.RESPONSE_FAILED, - ResponsesAPIStreamEvents.ERROR, - ): - error_obj = parsed_chunk.get("error") or ( - parsed_chunk.get("response") or {} - ).get("error") - if error_obj is not None: - if isinstance(error_obj, dict): - error_message = error_obj.get("message") or str(error_obj) - else: - error_message = str(error_obj) - + completed_response, error_message = self._extract_completed_response_from_sse( + body_text=body_text + ) if completed_response is None: raise OpenAIError( message=error_message or raw_response.text, status_code=raw_response.status_code, ) + self._attach_response_headers( + completed_response=completed_response, raw_response=raw_response + ) + return completed_response + + def _should_parse_as_sse(self, raw_response: Any, body_text: str) -> bool: + content_type = (raw_response.headers or {}).get("content-type", "") + if "text/event-stream" in content_type.lower(): + return True + trimmed_body = body_text.lstrip() + return bool( + trimmed_body.startswith("event:") + or trimmed_body.startswith("data:") + or "\nevent:" in body_text + or "\ndata:" in body_text + ) + + def _extract_completed_response_from_sse( + self, body_text: str + ) -> tuple[Optional[ResponsesAPIResponse], Optional[str]]: + completed_response = None + error_message = None + streamed_output_items: Dict[int, dict] = {} + text_only_output_items: Dict[int, dict] = {} + for chunk in body_text.splitlines(): + parsed_chunk = parse_sse_json_chunk(chunk) + if parsed_chunk is None: + continue + + event_type = parsed_chunk.get("type") + if event_type == ResponsesAPIStreamEvents.OUTPUT_ITEM_DONE: + record_output_item_chunk( + parsed_chunk=parsed_chunk, + output_items=streamed_output_items, + ) + continue + + if event_type == ResponsesAPIStreamEvents.OUTPUT_TEXT_DONE: + record_output_text_chunk( + parsed_chunk=parsed_chunk, + output_items=streamed_output_items, + text_only_items=text_only_output_items, + ) + continue + + if event_type == ResponsesAPIStreamEvents.RESPONSE_COMPLETED: + # Real OUTPUT_ITEM_DONE events take precedence at any given + # output_index, but text-only items at indices without a + # matching OUTPUT_ITEM_DONE must still be preserved (e.g. + # providers that emit only OUTPUT_TEXT_DONE for some indices). + merged_items: Dict[int, dict] = {**text_only_output_items} + merged_items.update(streamed_output_items) + completed_response = self._build_completed_response_from_chunk( + parsed_chunk=parsed_chunk, + streamed_output_items=merged_items, + ) + break + + if event_type in ( + ResponsesAPIStreamEvents.RESPONSE_FAILED, + ResponsesAPIStreamEvents.ERROR, + ): + extracted_error = self._extract_error_message(parsed_chunk) + if extracted_error is not None: + error_message = extracted_error + + return completed_response, error_message + + def _build_completed_response_from_chunk( + self, parsed_chunk: Dict[str, Any], streamed_output_items: Dict[int, dict] + ) -> Optional[ResponsesAPIResponse]: + response_payload = parsed_chunk.get("response") + if not isinstance(response_payload, dict): + return None + response_payload = dict(response_payload) + if not response_payload.get("output") and streamed_output_items: + response_payload["output"] = [ + item for _, item in sorted(streamed_output_items.items()) + ] + if "created_at" in response_payload: + response_payload["created_at"] = _safe_convert_created_field( + response_payload["created_at"] + ) + try: + return ResponsesAPIResponse(**response_payload) + except Exception: + return ResponsesAPIResponse.model_construct(**response_payload) + + def _extract_error_message(self, parsed_chunk: Dict[str, Any]) -> Optional[str]: + error_obj = parsed_chunk.get("error") or ( + parsed_chunk.get("response") or {} + ).get("error") + if error_obj is None: + return None + if isinstance(error_obj, dict): + return error_obj.get("message") or str(error_obj) + return str(error_obj) + + def _attach_response_headers( + self, + completed_response: ResponsesAPIResponse, + raw_response: Any, + ) -> None: raw_headers = dict(raw_response.headers) processed_headers = process_response_headers(raw_headers) if not hasattr(completed_response, "_hidden_params"): setattr(completed_response, "_hidden_params", {}) completed_response._hidden_params["additional_headers"] = processed_headers completed_response._hidden_params["headers"] = raw_headers - return completed_response def get_complete_url( self, diff --git a/litellm/llms/cohere/embed/handler.py b/litellm/llms/cohere/embed/handler.py index 3ab8baf7ba8..81b6a1c7aec 100644 --- a/litellm/llms/cohere/embed/handler.py +++ b/litellm/llms/cohere/embed/handler.py @@ -1,5 +1,5 @@ """ -Legacy /v1/embedding handler for Bedrock Cohere. +Legacy /v1/embedding handler for Bedrock Cohere. """ import json diff --git a/litellm/llms/cohere/embed/v1_transformation.py b/litellm/llms/cohere/embed/v1_transformation.py index feca9cb5b88..82c901e7eca 100644 --- a/litellm/llms/cohere/embed/v1_transformation.py +++ b/litellm/llms/cohere/embed/v1_transformation.py @@ -110,15 +110,35 @@ class CohereEmbeddingConfig: additional_args={"complete_input_dict": data}, original_response=response_json, ) + return self._populate_embedding_response( + response_json=response_json, + model_response=model_response, + model=model, + encoding=encoding, + input=input, + ) + + def _populate_embedding_response( + self, + response_json: dict, + model_response: EmbeddingResponse, + model: str, + encoding: Any, + input: list, + ) -> EmbeddingResponse: """ - response + Parse a Cohere embed response body into an OpenAI-style EmbeddingResponse. + + Split out from `_transform_response` so callers that already log + `post_call` themselves (e.g. SageMaker's embedding handler) can reuse + the parsing without triggering a second `post_call`. + + Response shape: { 'object': "list", - 'data': [ - - ] - 'model', - 'usage' + 'data': [...], + 'model', + 'usage', } """ embeddings = response_json["embeddings"] @@ -149,9 +169,6 @@ class CohereEmbeddingConfig: model_response.object = "list" model_response.data = output_data model_response.model = model - input_tokens = 0 - for text in input: - input_tokens += len(encoding.encode(text)) setattr( model_response, diff --git a/litellm/llms/custom_httpx/container_handler.py b/litellm/llms/custom_httpx/container_handler.py index 599cd705ebf..501390d840b 100644 --- a/litellm/llms/custom_httpx/container_handler.py +++ b/litellm/llms/custom_httpx/container_handler.py @@ -257,14 +257,19 @@ class GenericContainerHandler: returns_binary = endpoint_config.get("returns_binary", False) is_multipart = endpoint_config.get("is_multipart", False) + # An empty dict passed as `params` to httpx strips any existing query + # string from the URL (e.g. ?api-version=...). Use None instead so + # httpx leaves the URL's own query string intact. + effective_params = query_params or None + try: if method == "GET": response = http_client.get( - url=url, headers=headers, params=query_params + url=url, headers=headers, params=effective_params ) elif method == "DELETE": response = http_client.delete( - url=url, headers=headers, params=query_params + url=url, headers=headers, params=effective_params ) elif method == "POST": if is_multipart and "file" in kwargs: @@ -272,11 +277,11 @@ class GenericContainerHandler: kwargs["file"], headers ) response = http_client.post( - url=url, headers=headers, params=query_params, files=files + url=url, headers=headers, params=effective_params, files=files ) else: response = http_client.post( - url=url, headers=headers, params=query_params + url=url, headers=headers, params=effective_params ) else: raise ValueError(f"Unsupported HTTP method: {method}") @@ -376,14 +381,19 @@ class GenericContainerHandler: returns_binary = endpoint_config.get("returns_binary", False) is_multipart = endpoint_config.get("is_multipart", False) + # An empty dict passed as `params` to httpx strips any existing query + # string from the URL (e.g. ?api-version=...). Use None instead so + # httpx leaves the URL's own query string intact. + effective_params = query_params or None + try: if method == "GET": response = await http_client.get( - url=url, headers=headers, params=query_params + url=url, headers=headers, params=effective_params ) elif method == "DELETE": response = await http_client.delete( - url=url, headers=headers, params=query_params + url=url, headers=headers, params=effective_params ) elif method == "POST": if is_multipart and "file" in kwargs: @@ -391,11 +401,11 @@ class GenericContainerHandler: kwargs["file"], headers ) response = await http_client.post( - url=url, headers=headers, params=query_params, files=files + url=url, headers=headers, params=effective_params, files=files ) else: response = await http_client.post( - url=url, headers=headers, params=query_params + url=url, headers=headers, params=effective_params ) else: raise ValueError(f"Unsupported HTTP method: {method}") diff --git a/litellm/llms/custom_httpx/llm_http_handler.py b/litellm/llms/custom_httpx/llm_http_handler.py index 2ff63cc2d7f..c9ab3c648ac 100644 --- a/litellm/llms/custom_httpx/llm_http_handler.py +++ b/litellm/llms/custom_httpx/llm_http_handler.py @@ -890,6 +890,18 @@ class BaseLLMHTTPHandler: headers=headers, ) + # Some providers (e.g. OCI) require request signing after the body is built. + # The default BaseConfig.sign_request returns (headers, None) — a no-op for + # providers that don't need signing. + headers, signed_body = provider_config.sign_request( + headers=headers, + optional_params=optional_params, + request_data=data, + api_base=api_base, + api_key=api_key, + model=model, + ) + ## LOGGING logging_obj.pre_call( input=input, @@ -916,6 +928,7 @@ class BaseLLMHTTPHandler: client=client, optional_params=optional_params, litellm_params=litellm_params, + signed_body=signed_body, ) if client is None or not isinstance(client, HTTPHandler): @@ -926,12 +939,20 @@ class BaseLLMHTTPHandler: sync_httpx_client = client try: - response = sync_httpx_client.post( - url=api_base, - headers=headers, - data=json.dumps(data), - timeout=timeout, - ) + if signed_body is not None: + response = sync_httpx_client.post( + url=api_base, + headers=headers, + data=signed_body, + timeout=timeout, + ) + else: + response = sync_httpx_client.post( + url=api_base, + headers=headers, + data=json.dumps(data), + timeout=timeout, + ) except Exception as e: raise self._handle_error( e=e, @@ -964,6 +985,7 @@ class BaseLLMHTTPHandler: api_key: Optional[str] = None, timeout: Optional[Union[float, httpx.Timeout]] = None, client: Optional[Union[HTTPHandler, AsyncHTTPHandler]] = None, + signed_body: Optional[bytes] = None, ) -> EmbeddingResponse: if client is None or not isinstance(client, AsyncHTTPHandler): async_httpx_client = get_async_httpx_client( @@ -974,12 +996,20 @@ class BaseLLMHTTPHandler: async_httpx_client = client try: - response = await async_httpx_client.post( - url=api_base, - headers=headers, - json=request_data, - timeout=timeout, - ) + if signed_body is not None: + response = await async_httpx_client.post( + url=api_base, + headers=headers, + data=signed_body, + timeout=timeout, + ) + else: + response = await async_httpx_client.post( + url=api_base, + headers=headers, + json=request_data, + timeout=timeout, + ) except Exception as e: raise self._handle_error(e=e, provider_config=provider_config) @@ -1177,6 +1207,8 @@ class BaseLLMHTTPHandler: data = transformed_result.data files = transformed_result.files + if transformed_result.content_type is not None: + headers["Content-Type"] = transformed_result.content_type ## LOGGING logging_obj.pre_call( @@ -1409,6 +1441,8 @@ class BaseLLMHTTPHandler: document=document, optional_params=optional_params, headers=headers, + api_key=api_key, + api_base=api_base, ) # All providers return OCRRequestData @@ -1477,6 +1511,8 @@ class BaseLLMHTTPHandler: document=document, optional_params=optional_params, headers=headers, + api_key=api_key, + api_base=api_base, ) # All providers return OCRRequestData @@ -1852,7 +1888,9 @@ class BaseLLMHTTPHandler: async_httpx_client: AsyncHTTPHandler, request_url: str, headers: dict, - signed_json_body: Optional[bytes], + # str when the caller passes a pre-serialized (unsigned) body to avoid + # re-dumping; bytes when a provider signed the request (e.g. Bedrock). + signed_json_body: Optional[Union[str, bytes]], request_body: dict, stream: bool, logging_obj: LiteLLMLoggingObj, @@ -2043,8 +2081,18 @@ class BaseLLMHTTPHandler: model=model, ) + # The request body was serialized once for the pre-call log input and + # again for the wire (json.dumps is O(payload), large for long-context + # Claude Code history). Serialize once and reuse for both. Only when + # the provider didn't sign the request (sign_request no-op for the + # native anthropic path -> signed_json_body is None); signed providers + # (e.g. Bedrock) keep their signed body untouched. The HTTP-error + # retry path mutates + re-signs the body, so it still re-serializes + # internally -- this only deduplicates the success path. + request_body_json = json.dumps(request_body) + logging_obj.pre_call( - input=[{"role": "user", "content": json.dumps(request_body)}], + input=[{"role": "user", "content": request_body_json}], api_key="", additional_args={ "complete_input_dict": request_body, @@ -2057,7 +2105,9 @@ class BaseLLMHTTPHandler: async_httpx_client=async_httpx_client, request_url=request_url, headers=headers, - signed_json_body=signed_json_body, + signed_json_body=( + signed_json_body if signed_json_body is not None else request_body_json + ), request_body=request_body, stream=stream or False, logging_obj=logging_obj, @@ -2079,6 +2129,14 @@ class BaseLLMHTTPHandler: litellm_logging_obj=logging_obj, ) + if not self._has_agentic_completion_hook(logging_obj): + # No callback overrides async_should_run_agentic_loop, so the + # agentic wrapper's only effect would be buffering every chunk + # and rebuilding the response from SSE at end-of-stream to call + # hooks that all return (False, {}). Stream through directly and + # skip that per-chunk + end-of-stream overhead. + return completion_stream + from litellm.llms.anthropic.experimental_pass_through.messages.agentic_streaming_iterator import ( AgenticAnthropicStreamingIterator, ) @@ -4586,6 +4644,51 @@ class BaseLLMHTTPHandler: fingerprints = list(kwargs.get("_agentic_loop_fingerprints", []) or []) return depth, max(max_loops, 1), fingerprints + @staticmethod + def _has_agentic_completion_hook(logging_obj: Any) -> bool: + """ + True if any registered callback actually overrides + ``async_should_run_agentic_loop`` (the gate every agentic hook goes + through). The base ``CustomLogger`` implementation returns + ``(False, {})``, so when nothing overrides it the agentic + post-processing is a guaranteed no-op and the streaming wrapper that + buffers + rebuilds the whole response from SSE just to call it can be + skipped entirely. + + Function-identity comparison (not a leaf ``__dict__`` check) so an + override inherited through any intermediate class is still detected -- + a false negative here would silently disable agentic features. + + String entries in ``litellm.callbacks`` (e.g. ``"datadog"``) are + resolved to their ``CustomLogger`` instance via + ``get_custom_logger_compatible_class`` -- same pattern as + ``ProxyLogging._callback_capabilities`` -- so a string-registered + agentic callback is detected too. + """ + from litellm.integrations.custom_logger import CustomLogger + from litellm.litellm_core_utils.litellm_logging import ( + get_custom_logger_compatible_class, + ) + + base_func = CustomLogger.async_should_run_agentic_loop + callbacks = litellm.callbacks + ( + getattr(logging_obj, "dynamic_success_callbacks", None) or [] + ) + for cb in callbacks: + if isinstance(cb, str): + resolved = get_custom_logger_compatible_class(cb) # type: ignore[arg-type] + if resolved is None: + continue + cb = resolved + if not isinstance(cb, CustomLogger): + continue + cb_func = getattr(type(cb), "async_should_run_agentic_loop", base_func) + if getattr(cb_func, "__func__", cb_func) is not getattr( + base_func, "__func__", base_func + ): + return True + return False + @staticmethod def _check_agentic_loop_safety( tool_calls: Any, @@ -7834,7 +7937,7 @@ class BaseLLMHTTPHandler: response = sync_httpx_client.get( url=url, headers=headers, - params=params, + params=params or None, ) return container_provider_config.transform_container_list_response( @@ -7911,7 +8014,7 @@ class BaseLLMHTTPHandler: response = await async_httpx_client.get( url=url, headers=headers, - params=params, + params=params or None, ) return container_provider_config.transform_container_list_response( @@ -8001,7 +8104,7 @@ class BaseLLMHTTPHandler: response = sync_httpx_client.get( url=url, headers=headers, - params=params, + params=params or None, ) return container_provider_config.transform_container_retrieve_response( @@ -8078,7 +8181,7 @@ class BaseLLMHTTPHandler: response = await async_httpx_client.get( url=url, headers=headers, - params=params, + params=params or None, ) return container_provider_config.transform_container_retrieve_response( @@ -8168,7 +8271,7 @@ class BaseLLMHTTPHandler: response = sync_httpx_client.delete( url=url, headers=headers, - params=params, + params=params or None, ) return container_provider_config.transform_container_delete_response( @@ -8245,7 +8348,7 @@ class BaseLLMHTTPHandler: response = await async_httpx_client.delete( url=url, headers=headers, - params=params, + params=params or None, ) return container_provider_config.transform_container_delete_response( @@ -8341,7 +8444,7 @@ class BaseLLMHTTPHandler: response = sync_httpx_client.get( url=url, headers=headers, - params=params, + params=params or None, ) return container_provider_config.transform_container_file_list_response( @@ -8420,7 +8523,7 @@ class BaseLLMHTTPHandler: response = await async_httpx_client.get( url=url, headers=headers, - params=params, + params=params or None, ) return container_provider_config.transform_container_file_list_response( @@ -8508,7 +8611,7 @@ class BaseLLMHTTPHandler: response = sync_httpx_client.get( url=url, headers=headers, - params=params, + params=params or None, ) return container_provider_config.transform_container_file_content_response( @@ -8584,7 +8687,7 @@ class BaseLLMHTTPHandler: response = await async_httpx_client.get( url=url, headers=headers, - params=params, + params=params or None, ) return container_provider_config.transform_container_file_content_response( diff --git a/litellm/llms/custom_httpx/mock_transport.py b/litellm/llms/custom_httpx/mock_transport.py index c9844753e0e..ad93cc134ee 100644 --- a/litellm/llms/custom_httpx/mock_transport.py +++ b/litellm/llms/custom_httpx/mock_transport.py @@ -13,7 +13,6 @@ from typing import Tuple import httpx - # --------------------------------------------------------------------------- # Pre-built response templates # --------------------------------------------------------------------------- diff --git a/litellm/llms/dashscope/common_utils.py b/litellm/llms/dashscope/common_utils.py new file mode 100644 index 00000000000..b3b89cbbebf --- /dev/null +++ b/litellm/llms/dashscope/common_utils.py @@ -0,0 +1,28 @@ +""" +Common utilities for the DashScope LLM provider. +""" + +from typing import Optional + +import httpx + +from litellm.llms.base_llm.chat.transformation import BaseLLMException + + +class DashScopeError(BaseLLMException): + """Exception class for DashScope provider errors.""" + + def __init__( + self, + status_code: int, + message: str, + headers: Optional[httpx.Headers] = None, + ): + self.status_code = status_code + self.message = message + self.headers = headers or httpx.Headers() + super().__init__( + status_code=status_code, + message=message, + headers=dict(self.headers), + ) diff --git a/litellm/llms/dashscope/cost_calculator.py b/litellm/llms/dashscope/cost_calculator.py index 9b3e3851162..8bb7f605b82 100644 --- a/litellm/llms/dashscope/cost_calculator.py +++ b/litellm/llms/dashscope/cost_calculator.py @@ -1,5 +1,5 @@ """ -Cost calculator for Dashscope Chat models. +Cost calculator for Dashscope Chat models. Handles tiered pricing and prompt caching scenarios. """ diff --git a/litellm/llms/dashscope/embed/__init__.py b/litellm/llms/dashscope/embed/__init__.py new file mode 100644 index 00000000000..4962b1f3251 --- /dev/null +++ b/litellm/llms/dashscope/embed/__init__.py @@ -0,0 +1,7 @@ +""" +DashScope Embedding Module +""" + +from .transformation import DashScopeEmbeddingConfig + +__all__ = ["DashScopeEmbeddingConfig"] diff --git a/litellm/llms/dashscope/embed/transformation.py b/litellm/llms/dashscope/embed/transformation.py new file mode 100644 index 00000000000..5bc0e5ca817 --- /dev/null +++ b/litellm/llms/dashscope/embed/transformation.py @@ -0,0 +1,191 @@ +""" +Transformation logic from OpenAI /v1/embeddings format to DashScope's /v1/embeddings format. + +Supports +- text-embedding-v4 +- text-embedding-v3 + +Endpoint +- https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings + +Docs - https://help.aliyun.com/zh/model-studio/text-embedding-synchronous-api +""" + +from typing import List, Optional, Union + +import httpx + +from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj +from litellm.llms.base_llm.chat.transformation import BaseLLMException +from litellm.llms.base_llm.embedding.transformation import BaseEmbeddingConfig +from litellm.secret_managers.main import get_secret_str +from litellm.types.llms.openai import AllEmbeddingInputValues, AllMessageValues +from litellm.types.utils import EmbeddingResponse, Usage + +from ..common_utils import DashScopeError + +DEFAULT_API_BASE = "https://dashscope.aliyuncs.com/compatible-mode/v1" + + +class DashScopeEmbeddingConfig(BaseEmbeddingConfig): + """ + Reference: https://help.aliyun.com/zh/model-studio/text-embedding-synchronous-api + + DashScope exposes an OpenAI-compatible /v1/embeddings endpoint, so the + request and response shapes are nearly identical to OpenAI's. + """ + + def __init__(self) -> None: + pass + + def get_supported_openai_params(self, model: str) -> List[str]: + # DashScope's compatible-mode embeddings API accepts the same params as OpenAI. + # `dimensions` / `encoding_format` are only honored by text-embedding-v3 / v4; + # earlier versions silently ignore them server-side. + return ["dimensions", "encoding_format", "user"] + + def map_openai_params( + self, + non_default_params: dict, + optional_params: dict, + model: str, + drop_params: bool = False, + ) -> dict: + supported = self.get_supported_openai_params(model) + for k, v in non_default_params.items(): + if v is None: + continue + if k in supported: + optional_params[k] = v + # unsupported params are dropped when drop_params=True; + # the upstream _check_valid_arg already raised UnsupportedParamsError + # for drop_params=False before this method is called. + return optional_params + + def validate_environment( + self, + headers: dict, + model: str, + messages: List[AllMessageValues], + optional_params: dict, + litellm_params: dict, + api_key: Optional[str] = None, + api_base: Optional[str] = None, + ) -> dict: + if api_key is None: + api_key = get_secret_str("DASHSCOPE_API_KEY") + if api_key is None: + raise ValueError( + "DashScope API key is required. Set 'DASHSCOPE_API_KEY' env var or pass api_key explicitly." + ) + default_headers = { + "Content-Type": "application/json", + "Authorization": f"Bearer {api_key}", + } + return {**default_headers, **headers} + + def get_complete_url( + self, + api_base: Optional[str], + api_key: Optional[str], + model: str, + optional_params: dict, + litellm_params: dict, + stream: Optional[bool] = None, + ) -> str: + base = api_base or get_secret_str("DASHSCOPE_API_BASE") or DEFAULT_API_BASE + base = base.rstrip("/") + if base.endswith("/embeddings"): + return base + return f"{base}/embeddings" + + def transform_embedding_request( + self, + model: str, + input: AllEmbeddingInputValues, + optional_params: dict, + headers: dict, + ) -> dict: + data: dict = { + "model": model, + "input": input, + } + for key in ("dimensions", "encoding_format", "user"): + value = optional_params.get(key) + if value is not None: + data[key] = value + return data + + def transform_embedding_response( + self, + model: str, + raw_response: httpx.Response, + model_response: EmbeddingResponse, + logging_obj: LiteLLMLoggingObj, + api_key: Optional[str], + request_data: dict, + optional_params: dict, + litellm_params: dict, + ) -> EmbeddingResponse: + try: + response_json = raw_response.json() + except Exception as e: + raise DashScopeError( + status_code=raw_response.status_code, + message=f"Failed to parse DashScope response as JSON: {str(e)}", + ) + + logging_obj.post_call( + input=request_data.get("input"), + api_key=api_key, + additional_args={"complete_input_dict": request_data}, + original_response=response_json, + ) + + if "error" in response_json: + error = response_json["error"] + message = ( + error.get("message", str(error)) + if isinstance(error, dict) + else str(error) + ) + raise DashScopeError( + status_code=raw_response.status_code, + message=message, + ) + + model_response.object = "list" + model_response.data = response_json.get("data", []) + model_response.model = response_json.get("model", model) + + usage = response_json.get("usage") or {} + prompt_tokens = usage.get("prompt_tokens", 0) + total_tokens = usage.get("total_tokens", prompt_tokens) + setattr( + model_response, + "usage", + Usage( + prompt_tokens=prompt_tokens, + completion_tokens=0, + total_tokens=total_tokens, + ), + ) + + if "id" in response_json: + setattr(model_response, "id", response_json["id"]) + + return model_response + + def get_error_class( + self, + error_message: str, + status_code: int, + headers: Union[dict, httpx.Headers], + ) -> BaseLLMException: + if isinstance(headers, dict): + headers = httpx.Headers(headers) + return DashScopeError( + status_code=status_code, + message=error_message, + headers=headers, + ) diff --git a/litellm/llms/dashscope/rerank/__init__.py b/litellm/llms/dashscope/rerank/__init__.py new file mode 100644 index 00000000000..2a1401f6dc0 --- /dev/null +++ b/litellm/llms/dashscope/rerank/__init__.py @@ -0,0 +1,7 @@ +""" +DashScope Rerank Module +""" + +from .transformation import DashScopeRerankConfig + +__all__ = ["DashScopeRerankConfig"] diff --git a/litellm/llms/dashscope/rerank/transformation.py b/litellm/llms/dashscope/rerank/transformation.py new file mode 100644 index 00000000000..629f3cf4af7 --- /dev/null +++ b/litellm/llms/dashscope/rerank/transformation.py @@ -0,0 +1,241 @@ +""" +Transformation logic for DashScope's OpenAI-compatible /v1/reranks API. + +Supports +- qwen3-rerank + +(Other DashScope rerankers — gte-rerank-v2 / qwen3-vl-rerank — share the same +endpoint but have not been validated against this transformer. Behavior with +those models is undefined.) + +Endpoint +- https://dashscope.aliyuncs.com/compatible-api/v1/reranks + +Note: chat/embed live under `/compatible-mode/v1/`, but DashScope's rerank +route is exposed under `/compatible-api/v1/reranks` per the docs. Override +with `DASHSCOPE_API_BASE_RERANK` to point at a different host or path. + +Empirically, qwen3-rerank accepts `return_documents=true` and echoes +`results[].document.text` back, even though the public docs list the flag +as supported only for gte-rerank-v2 / qwen3-vl-rerank. + +Docs - https://help.aliyun.com/zh/model-studio/text-rerank-api +""" + +from typing import Any, Dict, List, Optional, Union + +import httpx + +from litellm._uuid import uuid +from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj +from litellm.llms.base_llm.chat.transformation import BaseLLMException +from litellm.llms.base_llm.rerank.transformation import BaseRerankConfig +from litellm.secret_managers.main import get_secret_str +from litellm.types.rerank import ( + OptionalRerankParams, + RerankBilledUnits, + RerankResponse, + RerankResponseMeta, + RerankTokens, +) + +from ..common_utils import DashScopeError + +DEFAULT_RERANK_URL = "https://dashscope.aliyuncs.com/compatible-api/v1/reranks" + + +class DashScopeRerankConfig(BaseRerankConfig): + """ + Reference: https://help.aliyun.com/zh/model-studio/text-rerank-api + + Targets DashScope's qwen3-rerank model. Request fields: model, query, + documents, top_n, return_documents. Response: results[].index, + results[].relevance_score, optionally results[].document.text (when + return_documents=true), plus a top-level usage.total_tokens counter. + """ + + def __init__(self) -> None: + pass + + def get_complete_url( + self, + api_base: Optional[str], + model: str, + optional_params: Optional[dict] = None, + ) -> str: + if api_base is None: + api_base = get_secret_str("DASHSCOPE_API_BASE_RERANK") or DEFAULT_RERANK_URL + + if api_base == DEFAULT_RERANK_URL: + return DEFAULT_RERANK_URL + + cleaned = api_base.rstrip("/") + if cleaned.endswith("/reranks") or cleaned.endswith("/rerank"): + return cleaned + + if cleaned.endswith("/v1"): + return f"{cleaned}/reranks" + + # Unknown base: append /reranks rather than silently ignoring the caller's api_base. + return f"{cleaned}/reranks" + + def validate_environment( + self, + headers: dict, + model: str, + api_key: Optional[str] = None, + optional_params: Optional[dict] = None, + ) -> dict: + if api_key is None: + api_key = get_secret_str("DASHSCOPE_API_KEY") + if api_key is None: + raise ValueError( + "DashScope API key is required. Set 'DASHSCOPE_API_KEY' env var or pass api_key explicitly." + ) + + default_headers = { + "Authorization": f"Bearer {api_key}", + "accept": "application/json", + "content-type": "application/json", + } + return {**default_headers, **headers} + + def get_supported_cohere_rerank_params(self, model: str) -> list: + return ["query", "documents", "top_n", "return_documents"] + + def map_cohere_rerank_params( + self, + non_default_params: Optional[dict], + model: str, + drop_params: bool, + query: str, + documents: List[Union[str, Dict[str, Any]]], + custom_llm_provider: Optional[str] = None, + top_n: Optional[int] = None, + rank_fields: Optional[List[str]] = None, + return_documents: Optional[bool] = True, + max_chunks_per_doc: Optional[int] = None, + max_tokens_per_doc: Optional[int] = None, + ) -> Dict: + # qwen3-rerank accepts query/documents/top_n/return_documents. The + # rest (rank_fields, max_*_per_doc) are silently dropped. + params: OptionalRerankParams = OptionalRerankParams( + query=query, + documents=documents, + ) + if top_n is not None: + params["top_n"] = top_n + if return_documents is not None: + params["return_documents"] = return_documents + return dict(params) + + def transform_rerank_request( + self, + model: str, + optional_rerank_params: Dict, + headers: dict, + litellm_params: Optional[dict] = None, + ) -> dict: + if "query" not in optional_rerank_params: + raise ValueError("query is required for DashScope rerank") + if "documents" not in optional_rerank_params: + raise ValueError("documents is required for DashScope rerank") + + request: Dict[str, Any] = { + "model": model, + "query": optional_rerank_params["query"], + "documents": optional_rerank_params["documents"], + } + if optional_rerank_params.get("top_n") is not None: + request["top_n"] = optional_rerank_params["top_n"] + if optional_rerank_params.get("return_documents") is not None: + request["return_documents"] = optional_rerank_params["return_documents"] + return request + + def transform_rerank_response( + self, + model: str, + raw_response: httpx.Response, + model_response: RerankResponse, + logging_obj: LiteLLMLoggingObj, + api_key: Optional[str] = None, + request_data: Optional[dict] = None, + optional_params: Optional[dict] = None, + litellm_params: Optional[dict] = None, + ) -> RerankResponse: + request_data = request_data or {} + optional_params = optional_params or {} + litellm_params = litellm_params or {} + try: + response_json = raw_response.json() + except Exception: + raise DashScopeError( + status_code=raw_response.status_code, + message=raw_response.text, + ) + + logging_obj.post_call( + input=request_data.get("query"), + api_key=api_key, + additional_args={"complete_input_dict": request_data}, + original_response=response_json, + ) + + # DashScope error envelope: {"code": "...", "message": "...", "request_id": "..."} + if "code" in response_json and "results" not in response_json: + raise DashScopeError( + status_code=raw_response.status_code, + message=response_json.get("message", str(response_json)), + ) + + results = response_json.get("results") + if results is None: + raise DashScopeError( + status_code=raw_response.status_code, + message=f"No results in DashScope rerank response: {response_json}", + ) + + # qwen3-rerank returns: + # {"index": int, "relevance_score": float} + # plus, when return_documents=true was sent: + # "document": {"text": "..."} + # which already matches LiteLLM's RerankResponseDocument shape. + transformed_results: List[dict] = [] + for r in results: + item: Dict[str, Any] = { + "index": r["index"], + "relevance_score": r["relevance_score"], + } + doc = r.get("document") + if isinstance(doc, dict): + item["document"] = doc + elif isinstance(doc, str): + # Defensive: spec says dict, but normalize string-shaped echoes. + item["document"] = {"text": doc} + transformed_results.append(item) + + usage = response_json.get("usage") or {} + total_tokens = usage.get("total_tokens") + billed_units = RerankBilledUnits(total_tokens=total_tokens) + tokens = RerankTokens(input_tokens=total_tokens) + meta = RerankResponseMeta(billed_units=billed_units, tokens=tokens) + + return RerankResponse( + id=response_json.get("id") or str(uuid.uuid4()), + results=transformed_results, # type: ignore + meta=meta, + ) + + def get_error_class( + self, + error_message: str, + status_code: int, + headers: Union[dict, httpx.Headers], + ) -> BaseLLMException: + if isinstance(headers, dict): + headers = httpx.Headers(headers) + return DashScopeError( + status_code=status_code, + message=error_message, + headers=headers, + ) diff --git a/litellm/llms/datarobot/chat/transformation.py b/litellm/llms/datarobot/chat/transformation.py index 23ce63c25b2..f81e2420930 100644 --- a/litellm/llms/datarobot/chat/transformation.py +++ b/litellm/llms/datarobot/chat/transformation.py @@ -1,5 +1,5 @@ """ -Support for OpenAI's `/v1/chat/completions` endpoint. +Support for OpenAI's `/v1/chat/completions` endpoint. Calls done in OpenAI/openai.py as DataRobot is openai-compatible. """ diff --git a/litellm/llms/deepinfra/rerank/transformation.py b/litellm/llms/deepinfra/rerank/transformation.py index 276735f4758..e4bfbcb2513 100644 --- a/litellm/llms/deepinfra/rerank/transformation.py +++ b/litellm/llms/deepinfra/rerank/transformation.py @@ -1,5 +1,5 @@ """ -Translate between Cohere's `/rerank` format and Deepinfra's `/rerank` format. +Translate between Cohere's `/rerank` format and Deepinfra's `/rerank` format. """ from typing import Any, Dict, List, Optional, Union diff --git a/litellm/llms/deepseek/chat/transformation.py b/litellm/llms/deepseek/chat/transformation.py index 5cd8d119542..7ed3e484535 100644 --- a/litellm/llms/deepseek/chat/transformation.py +++ b/litellm/llms/deepseek/chat/transformation.py @@ -2,13 +2,15 @@ Translates from OpenAI's `/v1/chat/completions` to DeepSeek's `/v1/chat/completions` """ -from typing import Any, Coroutine, List, Literal, Optional, Tuple, Union, overload +from typing import Any, Coroutine, List, Literal, Optional, Tuple, Union, cast, overload +import litellm from litellm.litellm_core_utils.prompt_templates.common_utils import ( handle_messages_with_content_list_to_str_conversion, ) from litellm.secret_managers.main import get_secret_str from litellm.types.llms.openai import AllMessageValues +from litellm.utils import supports_reasoning from ...openai.chat.gpt_transformation import OpenAIGPTConfig @@ -62,6 +64,48 @@ class DeepSeekChatConfig(OpenAIGPTConfig): return optional_params + def _fill_reasoning_content( + self, messages: List[AllMessageValues] + ) -> List[AllMessageValues]: + """ + DeepSeek thinking mode requires `reasoning_content` to be passed back on + every assistant message in multi-turn conversations. If it is missing, + the API returns: + "The reasoning_content in the thinking mode must be passed back to the API." + + For each assistant message that is missing `reasoning_content`: + 1. Promote it from `provider_specific_fields["reasoning_content"]` if present + (LiteLLM stores provider-specific response fields there). + 2. Otherwise inject a single space — the minimum value the API accepts. + """ + result: List[AllMessageValues] = [] + for msg in messages: + if msg.get("role") == "assistant" and not msg.get("reasoning_content"): + patched = dict(cast(dict, msg)) + provider_fields = patched.get("provider_specific_fields") or {} + stored = provider_fields.get("reasoning_content") + if stored: + patched["reasoning_content"] = stored + cleaned = dict(provider_fields) + cleaned.pop("reasoning_content", None) + patched["provider_specific_fields"] = cleaned + else: + litellm.verbose_logger.warning( + "DeepSeek thinking mode: assistant message is missing " + "`reasoning_content` and none was saved in " + "`provider_specific_fields`. A single-space placeholder " + "is being injected to satisfy API validation, but the " + "model will receive a blank reasoning chain for this turn, " + "which may silently degrade multi-turn response quality. " + "Preserve `reasoning_content` from the original assistant " + "response when building multi-turn conversation history." + ) + patched["reasoning_content"] = " " + result.append(cast(AllMessageValues, patched)) + else: + result.append(msg) + return result + @overload def _transform_messages( self, messages: List[AllMessageValues], model: str, is_async: Literal[True] @@ -91,6 +135,66 @@ class DeepSeekChatConfig(OpenAIGPTConfig): messages=messages, model=model, is_async=False ) + def _thinking_mode_active(self, model: str, optional_params: dict) -> bool: + """ + Returns True only when thinking mode is actually active for this request: + - model supports reasoning (capability check) + - user explicitly passed thinking={"type": "enabled"} (opt-in check) + """ + return ( + supports_reasoning(model=model, custom_llm_provider="deepseek") + and (optional_params.get("thinking") or {}).get("type") == "enabled" + ) + + def transform_request( + self, + model: str, + messages: List[AllMessageValues], + optional_params: dict, + litellm_params: dict, + headers: dict, + ) -> dict: + """ + Ensures `reasoning_content` is forwarded on assistant messages for + multi-turn thinking-mode conversations (issue #28045). + + Only runs when thinking mode is actually active - guarded by both + supports_reasoning() (model capability) and optional_params["thinking"] + (user explicitly enabled it), preventing spurious injection on models + like deepseek-v3.2 that support thinking as opt-in but not always-on. + """ + if self._thinking_mode_active(model=model, optional_params=optional_params): + messages = self._fill_reasoning_content(messages) + return super().transform_request( + model=model, + messages=messages, + optional_params=optional_params, + litellm_params=litellm_params, + headers=headers, + ) + + async def async_transform_request( + self, + model: str, + messages: List[AllMessageValues], + optional_params: dict, + litellm_params: dict, + headers: dict, + ) -> dict: + """ + Async equivalent of transform_request — applies the same reasoning_content + fix for multi-turn thinking-mode conversations. + """ + if self._thinking_mode_active(model=model, optional_params=optional_params): + messages = self._fill_reasoning_content(messages) + return await super().async_transform_request( + model=model, + messages=messages, + optional_params=optional_params, + litellm_params=litellm_params, + headers=headers, + ) + def _get_openai_compatible_provider_info( self, api_base: Optional[str], api_key: Optional[str] ) -> Tuple[Optional[str], Optional[str]]: diff --git a/litellm/llms/deepseek/cost_calculator.py b/litellm/llms/deepseek/cost_calculator.py index 0f4490cb3df..e652ebeac54 100644 --- a/litellm/llms/deepseek/cost_calculator.py +++ b/litellm/llms/deepseek/cost_calculator.py @@ -1,5 +1,5 @@ """ -Cost calculator for DeepSeek Chat models. +Cost calculator for DeepSeek Chat models. Handles prompt caching scenario. """ diff --git a/litellm/llms/deepseek/messages/transformation.py b/litellm/llms/deepseek/messages/transformation.py new file mode 100644 index 00000000000..ad60478960e --- /dev/null +++ b/litellm/llms/deepseek/messages/transformation.py @@ -0,0 +1,133 @@ +""" +DeepSeek Anthropic-compatible messages transformation config. +""" + +from typing import Any, Dict, List, Optional, Tuple + +import litellm +from litellm.llms.anthropic.experimental_pass_through.messages.transformation import ( + AnthropicMessagesConfig, +) +from litellm.secret_managers.main import get_secret_str +from litellm.types.router import GenericLiteLLMParams + + +class DeepSeekAnthropicMessagesConfig(AnthropicMessagesConfig): + """ + DeepSeek exposes an Anthropic-compatible Messages API at + https://api.deepseek.com/anthropic. + + It accepts the native Anthropic Messages conversation shape, including + thinking blocks in assistant history, but rejects Anthropic's explicit + custom-tool discriminator (`{"type": "custom"}`). + """ + + @property + def custom_llm_provider(self) -> Optional[str]: + return "deepseek" + + @staticmethod + def get_api_key(api_key: Optional[str] = None) -> Optional[str]: + return api_key or get_secret_str("DEEPSEEK_API_KEY") or litellm.api_key + + @staticmethod + def get_api_base(api_base: Optional[str] = None) -> str: + return ( + api_base + or get_secret_str("DEEPSEEK_ANTHROPIC_API_BASE") + or get_secret_str("DEEPSEEK_API_BASE") + or "https://api.deepseek.com/anthropic" + ) + + def validate_anthropic_messages_environment( + self, + headers: dict, + model: str, + messages: List[Any], + optional_params: dict, + litellm_params: dict, + api_key: Optional[str] = None, + api_base: Optional[str] = None, + ) -> Tuple[dict, Optional[str]]: + dynamic_api_key = self.get_api_key(api_key=api_key) + + if ( + "x-api-key" not in headers + and "authorization" not in headers + and dynamic_api_key is not None + ): + headers["x-api-key"] = dynamic_api_key + + if "anthropic-version" not in headers: + headers["anthropic-version"] = "2023-06-01" + if "content-type" not in headers: + headers["content-type"] = "application/json" + + headers = self._update_headers_with_anthropic_beta( + headers=headers, + optional_params=optional_params, + custom_llm_provider=self.custom_llm_provider or "deepseek", + ) + + return headers, api_base + + def get_complete_url( + self, + api_base: Optional[str], + api_key: Optional[str], + model: str, + optional_params: dict, + litellm_params: dict, + stream: Optional[bool] = None, + ) -> str: + base_url = self.get_api_base(api_base=api_base).rstrip("/") + + if base_url.endswith("/v1/messages") and "/anthropic/" in base_url: + return base_url + if base_url.endswith("/v1/messages"): + base_url = base_url[: -len("/v1/messages")] + if base_url.endswith("/v1"): + base_url = base_url[: -len("/v1")] + if base_url.endswith("/beta"): + base_url = base_url[: -len("/beta")] + + if not base_url.endswith("/anthropic") and "/anthropic/" not in base_url: + base_url = f"{base_url}/anthropic" + + return f"{base_url}/v1/messages" + + @staticmethod + def _sanitize_tools_for_deepseek(tools: Any) -> Any: + if not isinstance(tools, list): + return tools + + sanitized_tools = [] + for tool in tools: + if isinstance(tool, dict) and tool.get("type") == "custom": + sanitized_tool = dict(tool) + sanitized_tool.pop("type", None) + sanitized_tools.append(sanitized_tool) + else: + sanitized_tools.append(tool) + return sanitized_tools + + def transform_anthropic_messages_request( + self, + model: str, + messages: List[Dict], + anthropic_messages_optional_request_params: Dict, + litellm_params: GenericLiteLLMParams, + headers: dict, + ) -> Dict: + anthropic_messages_request = super().transform_anthropic_messages_request( + model=model, + messages=messages, + anthropic_messages_optional_request_params=anthropic_messages_optional_request_params, + litellm_params=litellm_params, + headers=headers, + ) + if "tools" in anthropic_messages_request: + anthropic_messages_request["tools"] = self._sanitize_tools_for_deepseek( + anthropic_messages_request["tools"] + ) + return anthropic_messages_request diff --git a/litellm/llms/elevenlabs/text_to_speech/transformation.py b/litellm/llms/elevenlabs/text_to_speech/transformation.py index 6a59911701b..612fc687ef9 100644 --- a/litellm/llms/elevenlabs/text_to_speech/transformation.py +++ b/litellm/llms/elevenlabs/text_to_speech/transformation.py @@ -22,7 +22,6 @@ from litellm.types.utils import all_litellm_params from ..common_utils import ElevenLabsException - if TYPE_CHECKING: from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj from litellm.types.llms.openai import HttpxBinaryResponseContent diff --git a/litellm/llms/fireworks_ai/chat/transformation.py b/litellm/llms/fireworks_ai/chat/transformation.py index eaf01c5fe18..d39adf0b6f4 100644 --- a/litellm/llms/fireworks_ai/chat/transformation.py +++ b/litellm/llms/fireworks_ai/chat/transformation.py @@ -4,6 +4,7 @@ from typing import Any, List, Literal, Optional, Tuple, Union, cast import httpx import litellm +from litellm._logging import verbose_logger from litellm._uuid import uuid from litellm.constants import RESPONSE_FORMAT_TOOL_NAME from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj @@ -26,6 +27,7 @@ from litellm.types.utils import ( ProviderSpecificModelInfo, ) from litellm.utils import ( + get_model_cost_mutation_generation, supports_function_calling, supports_reasoning, supports_tool_choice, @@ -112,6 +114,19 @@ class FireworksAIConfig(OpenAIGPTConfig): # Only add tools for models that support function calling if supports_function_calling(model=model, custom_llm_provider="fireworks_ai"): supported_params.append("tools") + supported_params.append("parallel_tool_calls") + else: + # Historically every Fireworks model advertised tool support, so a + # JSON entry that flips `supports_function_calling` to false will + # silently drop `tools` from requests. Surface this so users can + # tell why their tool calls suddenly stop working. + verbose_logger.debug( + "fireworks_ai model %r is marked as not supporting " + "function calling in model_prices_and_context_window.json; " + "`tools` and `parallel_tool_calls` will be dropped from the " + "request.", + model, + ) # Only add tool_choice for models that explicitly support it if supports_tool_choice(model=model, custom_llm_provider="fireworks_ai"): @@ -251,34 +266,100 @@ class FireworksAIConfig(OpenAIGPTConfig): return messages - def get_provider_info(self, model: str) -> ProviderSpecificModelInfo: - # Models that support reasoning_effort - reasoning_supported_models = [ - "qwen3-8b", - "qwen3-32b", - "qwen3-coder-480b-a35b-instruct", - "deepseek-v3p1", - "deepseek-v3p2", - "glm-4p5", - "glm-4p5-air", - "glm-4p6", - "gpt-oss-120b", - "gpt-oss-20b", + # Cached index of fireworks_ai/* entries from litellm.model_cost. Building + # this index requires a full scan of model_cost (tens of thousands of + # entries), so we memoize it. The cache key is (id(model_cost), + # mutation_generation): the generation counter is bumped on every + # register_model / reload path, so add+remove or in-place value + # replacement (which can leave id and len unchanged) still invalidates. + _fireworks_index_cache: Optional[Tuple[int, int, List[Tuple[str, dict]]]] = None + + @classmethod + def _get_fireworks_index(cls) -> List[Tuple[str, dict]]: + model_cost = litellm.model_cost + signature = (id(model_cost), get_model_cost_mutation_generation()) + cached = cls._fireworks_index_cache + if ( + cached is not None + and cached[0] == signature[0] + and cached[1] == signature[1] + ): + return cached[2] + + index: List[Tuple[str, dict]] = [] + for key, model_info in model_cost.items(): + if not key.startswith("fireworks_ai/"): + continue + if not isinstance(model_info, dict): + continue + key_short = key[len("fireworks_ai/") :] + if key_short.startswith("accounts/fireworks/models/"): + key_short = key_short[len("accounts/fireworks/models/") :] + if not key_short: + continue + index.append((key_short, model_info)) + + cls._fireworks_index_cache = (signature[0], signature[1], index) + return index + + @staticmethod + def _matches_on_hyphen_boundary(short_name: str, key_short: str) -> bool: + """Return True if `key_short` appears in `short_name` aligned to + hyphen-separated word boundaries (or end-of-string). This avoids + spurious substring matches like `"some-model"` matching + `"awesome-model"`.""" + if short_name == key_short: + return True + if short_name.startswith(key_short + "-"): + return True + if short_name.endswith("-" + key_short): + return True + return ("-" + key_short + "-") in short_name + + def _get_model_cost_capability(self, model: str, capability: str) -> Optional[bool]: + short_name = model + if short_name.startswith("fireworks_ai/"): + short_name = short_name[len("fireworks_ai/") :] + if short_name.startswith("accounts/fireworks/models/"): + short_name = short_name[len("accounts/fireworks/models/") :] + + candidate_keys = [ + model, + f"fireworks_ai/{short_name}", + f"fireworks_ai/accounts/fireworks/models/{short_name}", ] - # Normalize model name - remove prefix if present - normalized_model = model - if model.startswith("fireworks_ai/"): - normalized_model = model.replace("fireworks_ai/", "") - if normalized_model.startswith("accounts/fireworks/models/"): - normalized_model = normalized_model.replace( - "accounts/fireworks/models/", "" - ) + for candidate_key in candidate_keys: + model_info = litellm.model_cost.get(candidate_key) + if model_info is not None and model_info.get(capability) is not None: + return cast(Optional[bool], model_info.get(capability)) - # Check if model supports reasoning - supports_reasoning_value = any( - reasoning_model in normalized_model - for reasoning_model in reasoning_supported_models + # Fallback: preserve historical substring matching for model name + # variants (e.g. fine-tuned or regionally-suffixed versions of a + # known model). Pick the *longest* matching entry so a more specific + # known model (e.g. "qwen3-8b-instruct") wins over a less specific + # one (e.g. "qwen3-8b") when the query model is more specific still. + # Use hyphen-aligned matching to avoid false positives where a short + # known model name is an unrelated substring of a longer one. + best_match_short: Optional[str] = None + best_match_value: Optional[bool] = None + for key_short, model_info in self._get_fireworks_index(): + if model_info.get(capability) is None: + continue + if not self._matches_on_hyphen_boundary(short_name, key_short): + continue + if best_match_short is None or len(key_short) > len(best_match_short): + best_match_short = key_short + best_match_value = cast(Optional[bool], model_info.get(capability)) + + return best_match_value + + def get_provider_info(self, model: str) -> ProviderSpecificModelInfo: + supports_function_calling_value = self._get_model_cost_capability( + model=model, capability="supports_function_calling" + ) + supports_reasoning_value = self._get_model_cost_capability( + model=model, capability="supports_reasoning" ) provider_specific_model_info: ProviderSpecificModelInfo = { @@ -288,9 +369,16 @@ class FireworksAIConfig(OpenAIGPTConfig): "supports_vision": True, # via document inlining } + if supports_function_calling_value is not None: + provider_specific_model_info["supports_function_calling"] = ( + supports_function_calling_value + ) + # Only include supports_reasoning if True if supports_reasoning_value: - provider_specific_model_info["supports_reasoning"] = True + provider_specific_model_info["supports_reasoning"] = ( + supports_reasoning_value + ) return provider_specific_model_info diff --git a/litellm/llms/gemini/agents/__init__.py b/litellm/llms/gemini/agents/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/litellm/llms/gemini/agents/transformation.py b/litellm/llms/gemini/agents/transformation.py new file mode 100644 index 00000000000..f6e0b95cf28 --- /dev/null +++ b/litellm/llms/gemini/agents/transformation.py @@ -0,0 +1,298 @@ +""" +Google AI Studio Agents API configuration. + +Proxies the Gemini v1beta Agents API: + POST /v1beta/agents create + GET /v1beta/agents list + GET /v1beta/agents/{name} get + DELETE /v1beta/agents/{name} delete + GET /v1beta/agents/{name}/versions list versions +""" + +from typing import Any, Dict, Optional, Tuple, Union + +import httpx + +from litellm._logging import verbose_logger +from litellm.llms.base_llm.agents.transformation import BaseAgentsAPIConfig +from litellm.llms.gemini.common_utils import GeminiError, GeminiModelInfo +from litellm.types.agents import ( + AgentCreateResponse, + AgentDeleteResult, + AgentListResponse, + AgentVersionsResponse, +) + +# Keys inside litellm_params that should be forwarded to the Gemini +# create-agent body verbatim. +_GEMINI_AGENT_BODY_KEYS = ("base_agent", "instructions", "base_environment") + +# LiteLLM-internal keys that must never be forwarded to Gemini. +_LITELLM_INTERNAL_KEYS = frozenset( + { + "custom_llm_provider", + "api_key", + "api_base", + "make_public", + "cost_per_query", + "input_cost_per_token", + "output_cost_per_token", + "require_trace_id_on_calls_to_agent", + "require_trace_id_on_calls_by_agent", + "max_iterations", + "max_budget_per_session", + "guardrails", + "is_public", + "agent_name", + "agent_id", + "agent_card_params", + "provider_agent_response", + } +) + + +class GeminiAgentsConfig(BaseAgentsAPIConfig): + """ + Configuration for the Google AI Studio (Gemini) native Agents API. + + Authentication uses x-goog-api-key, resolved from (in order): + 1. litellm_params["api_key"] + 2. GOOGLE_API_KEY env var + 3. GEMINI_API_KEY env var + """ + + @property + def api_version(self) -> str: + return "v1beta" + + def _base_url(self, api_base: Optional[str]) -> str: + return f"{GeminiModelInfo.get_api_base(api_base)}/{self.api_version}" + + # ------------------------------------------------------------------ # + # Shared helpers # + # ------------------------------------------------------------------ # + + def get_error_class( + self, + error_message: str, + status_code: int, + headers: Union[dict, httpx.Headers], + ) -> Exception: + return GeminiError( + message=error_message, + status_code=status_code, + headers=dict(headers), + ) + + def get_complete_url( + self, + api_base: Optional[str], + litellm_params: Dict[str, Any], + ) -> str: + return f"{self._base_url(api_base)}/agents" + + def validate_environment( + self, + headers: Dict[str, str], + litellm_params: Dict[str, Any], + ) -> Dict[str, str]: + headers = dict(headers) + headers["Content-Type"] = "application/json" + explicit_api_key = litellm_params.get("api_key") + # SECURITY: when the caller overrides ``api_base``, refuse to fall back + # to the process-wide GOOGLE_API_KEY / GEMINI_API_KEY env vars. Otherwise + # an authenticated proxy user could set ``api_base`` to an attacker- + # controlled host and have the proxy ship its shared Gemini key in the + # ``x-goog-api-key`` header. + if litellm_params.get("api_base") and not explicit_api_key: + raise ValueError( + "When overriding api_base for Gemini agents, you must also " + "supply an explicit api_key. Falling back to GOOGLE_API_KEY / " + "GEMINI_API_KEY env vars with a custom api_base is refused " + "to prevent leaking the shared provider key to arbitrary hosts." + ) + api_key = GeminiModelInfo.get_api_key(explicit_api_key) + if not api_key: + raise ValueError( + "Google API key is required. " + "Set GOOGLE_API_KEY or GEMINI_API_KEY, or pass api_key." + ) + headers["x-goog-api-key"] = api_key + return headers + + def _raise_for_status(self, raw_response: httpx.Response) -> None: + if not (200 <= raw_response.status_code < 300): + raise GeminiError( + message=raw_response.text, + status_code=raw_response.status_code, + headers=dict(raw_response.headers), + ) + + # ------------------------------------------------------------------ # + # CREATE # + # ------------------------------------------------------------------ # + + def transform_create_request( + self, + name: str, + litellm_params: Dict[str, Any], + ) -> Dict[str, Any]: + body: Dict[str, Any] = {"name": name} + for key in _GEMINI_AGENT_BODY_KEYS: + value = litellm_params.get(key) + if value is not None: + body[key] = value + verbose_logger.debug("GeminiAgentsConfig create body: %s", body) + return body + + def transform_create_response( + self, + raw_response: httpx.Response, + name: str, + ) -> AgentCreateResponse: + """ + Gemini returns: + {"id": "my-agent", "base_agent": "waverunner", + "system_instruction": "...", "base_environment": {...}} + """ + self._raise_for_status(raw_response) + try: + data: Dict[str, Any] = raw_response.json() + except Exception: + verbose_logger.warning( + "GeminiAgentsConfig: non-JSON create response (status=%d).", + raw_response.status_code, + ) + data = {"id": name} + # Gemini uses "id" as the identifier; normalise to both fields. + data.setdefault("id", name) + data.setdefault("name", data["id"]) + verbose_logger.debug("GeminiAgentsConfig create response: %s", data) + return AgentCreateResponse(**data) + + # ------------------------------------------------------------------ # + # LIST # + # ------------------------------------------------------------------ # + + def transform_list_request( + self, + api_base: Optional[str], + litellm_params: Dict[str, Any], + ) -> Tuple[str, Dict[str, Any]]: + url = f"{self._base_url(api_base)}/agents" + params: Dict[str, Any] = {} + if litellm_params.get("page_size"): + params["pageSize"] = litellm_params["page_size"] + if litellm_params.get("page_token"): + params["pageToken"] = litellm_params["page_token"] + return url, params + + def transform_list_response( + self, + raw_response: httpx.Response, + ) -> AgentListResponse: + self._raise_for_status(raw_response) + try: + data = raw_response.json() + except Exception: + data = {} + verbose_logger.debug("GeminiAgentsConfig list response: %s", data) + return AgentListResponse( + agents=data.get("agents", []), + next_page_token=data.get("nextPageToken"), + ) + + # ------------------------------------------------------------------ # + # GET # + # ------------------------------------------------------------------ # + + def transform_get_request( + self, + name: str, + api_base: Optional[str], + litellm_params: Dict[str, Any], + ) -> Tuple[str, Dict[str, Any]]: + url = f"{self._base_url(api_base)}/agents/{name}" + return url, {} + + def transform_get_response( + self, + raw_response: httpx.Response, + name: str, + ) -> AgentCreateResponse: + """Same shape as create response — Gemini returns "id" as identifier.""" + self._raise_for_status(raw_response) + try: + data = raw_response.json() + except Exception: + data = {"id": name} + data.setdefault("id", name) + data.setdefault("name", data["id"]) + verbose_logger.debug("GeminiAgentsConfig get response: %s", data) + return AgentCreateResponse(**data) + + # ------------------------------------------------------------------ # + # DELETE # + # ------------------------------------------------------------------ # + + def transform_delete_request( + self, + name: str, + api_base: Optional[str], + litellm_params: Dict[str, Any], + ) -> str: + return f"{self._base_url(api_base)}/agents/{name}" + + def transform_delete_response( + self, + raw_response: httpx.Response, + name: str, + ) -> AgentDeleteResult: + """Gemini returns an empty body ``{}`` with HTTP 200 on success.""" + self._raise_for_status(raw_response) + verbose_logger.debug( + "GeminiAgentsConfig delete (status=%d) agent '%s'", + raw_response.status_code, + name, + ) + return AgentDeleteResult(name=name, deleted=True) + + # ------------------------------------------------------------------ # + # LIST VERSIONS # + # ------------------------------------------------------------------ # + + def transform_list_versions_request( + self, + name: str, + api_base: Optional[str], + litellm_params: Dict[str, Any], + ) -> Tuple[str, Dict[str, Any]]: + url = f"{self._base_url(api_base)}/agents/{name}/versions" + params: Dict[str, Any] = {} + if litellm_params.get("page_size"): + params["pageSize"] = litellm_params["page_size"] + if litellm_params.get("page_token"): + params["pageToken"] = litellm_params["page_token"] + return url, params + + def transform_list_versions_response( + self, + raw_response: httpx.Response, + name: str, + ) -> AgentVersionsResponse: + """ + Gemini returns: + {"agentVersions": [{"agent": "waverunner", "name": "agents/.../versions/uuid", ...}]} + """ + self._raise_for_status(raw_response) + try: + data = raw_response.json() + except Exception: + data = {} + verbose_logger.debug( + "GeminiAgentsConfig list_versions response for '%s': %s", name, data + ) + return AgentVersionsResponse( + agent_versions=data.get("agentVersions", []), + next_page_token=data.get("nextPageToken"), + ) diff --git a/litellm/llms/gemini/chat/transformation.py b/litellm/llms/gemini/chat/transformation.py index 72569e5c6cd..b69b7e1913e 100644 --- a/litellm/llms/gemini/chat/transformation.py +++ b/litellm/llms/gemini/chat/transformation.py @@ -1,5 +1,7 @@ from typing import List, Optional, cast +import litellm + from litellm.litellm_core_utils.prompt_templates.factory import ( convert_generic_image_chunk_to_openai_image_obj, convert_to_anthropic_image_obj, @@ -101,7 +103,10 @@ class GoogleAIStudioGeminiConfig(VertexGeminiConfig): return supported_params def _transform_messages( - self, messages: List[AllMessageValues], model: Optional[str] = None + self, + messages: List[AllMessageValues], + model: Optional[str] = None, + litellm_params: Optional[dict] = None, ) -> List[ContentType]: """ Google AI Studio Gemini does not support HTTP/HTTPS URLs for files. @@ -141,14 +146,26 @@ class GoogleAIStudioGeminiConfig(VertexGeminiConfig): img_element["image_url"] = converted_image_url # type: ignore elif element.get("type") == "file": file_element = cast(ChatCompletionFileObject, element) - file_id = file_element["file"].get("file_id") + _file_field = file_element.get("file") + if _file_field is None: + raise litellm.BadRequestError( + message="Content block has type='file' but is missing the required 'file' field", + model=model, + llm_provider="gemini", + ) + file_id = _file_field.get("file_id") if file_id and ("http://" in file_id or "https://" in file_id): # Convert HTTP/HTTPS file URL to base64 data try: base64_data = convert_url_to_base64(file_id) - file_element["file"]["file_data"] = base64_data # type: ignore - file_element["file"].pop("file_id", None) # type: ignore + _file_field["file_data"] = base64_data # type: ignore + _file_field.pop("file_id", None) # type: ignore except Exception: # If conversion fails, leave as is and let the API handle it pass - return _gemini_convert_messages_with_history(messages=messages, model=model) + return _gemini_convert_messages_with_history( + messages=messages, + model=model, + litellm_params=litellm_params, + custom_llm_provider="gemini", + ) diff --git a/litellm/llms/gemini/interactions/transformation.py b/litellm/llms/gemini/interactions/transformation.py index 593cbf7c2cf..b18b6a28ce4 100644 --- a/litellm/llms/gemini/interactions/transformation.py +++ b/litellm/llms/gemini/interactions/transformation.py @@ -6,13 +6,18 @@ Per OpenAPI spec (https://ai.google.dev/static/api/interactions.openapi.json): - Get: GET https://generativelanguage.googleapis.com/{api_version}/interactions/{interaction_id} - Delete: DELETE https://generativelanguage.googleapis.com/{api_version}/interactions/{interaction_id} -This is a thin wrapper - no transformation needed since we follow the spec directly. +Schema versioning: +- Default (Api-Revision: 2026-05-20): new `steps` schema. +- Legacy (Api-Revision: 2026-05-07): old `outputs` schema, controlled via + litellm.use_legacy_interactions_schema = True. Remove flag after June 8, 2026. """ from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple import httpx +import litellm + from litellm._logging import verbose_logger from litellm.litellm_core_utils.core_helpers import process_response_headers from litellm.litellm_core_utils.url_utils import encode_url_path_segment @@ -64,6 +69,7 @@ class GoogleAIStudioInteractionsConfig(BaseInteractionsAPIConfig): "stream", "store", "background", + "environment", "response_modalities", "response_format", "response_mime_type", @@ -83,6 +89,15 @@ class GoogleAIStudioInteractionsConfig(BaseInteractionsAPIConfig): api_key = GeminiModelInfo.get_api_key(litellm_params.get("api_key")) if api_key: headers["x-goog-api-key"] = api_key + + # Inject the Api-Revision header to select the response schema. + # Default to the new `steps` schema unless the operator has opted out. + # Remove this conditional after June 8, 2026 and always use 2026-05-20. + if litellm.use_legacy_interactions_schema: + headers["Api-Revision"] = "2026-05-07" + else: + headers["Api-Revision"] = "2026-05-20" + return headers def get_complete_url( @@ -118,8 +133,19 @@ class GoogleAIStudioInteractionsConfig(BaseInteractionsAPIConfig): headers: dict, ) -> Dict: """ - Build request body per OpenAPI spec - minimal transformation. + Build request body per OpenAPI spec. + + When on the new schema (use_legacy_interactions_schema=False, the default): + - ``response_mime_type`` is folded into ``response_format`` and stripped from + the body (the field was removed in Api-Revision 2026-05-20). + - ``generation_config.image_config`` is moved to a ``response_format`` entry + with ``"type": "image"`` (also removed from generation_config in 2026-05-20). + + When on the legacy schema (use_legacy_interactions_schema=True): + - All fields are forwarded as-is. """ + use_legacy: bool = litellm.use_legacy_interactions_schema + request_body: Dict[str, Any] = {} # Model or Agent (one required) @@ -134,23 +160,81 @@ class GoogleAIStudioInteractionsConfig(BaseInteractionsAPIConfig): if input is not None: request_body["input"] = input - # Pass through optional params directly (they match the spec) + # Pass through optional params — legacy schema keeps all fields as-is. optional_keys = [ "tools", "system_instruction", - "generation_config", "stream", "store", "background", + "environment", "response_modalities", - "response_format", - "response_mime_type", "previous_interaction_id", ] for key in optional_keys: if optional_params.get(key) is not None: request_body[key] = optional_params[key] + if use_legacy: + # Legacy schema: forward response_mime_type and response_format as-is. + for key in ("response_format", "response_mime_type", "generation_config"): + if optional_params.get(key) is not None: + request_body[key] = optional_params[key] + else: + # New schema (Api-Revision: 2026-05-20): + # response_mime_type is removed — fold it into response_format. + response_format = optional_params.get("response_format") + response_mime_type = optional_params.get("response_mime_type") + + if ( + response_mime_type + and not isinstance(response_format, list) + and ( + not isinstance(response_format, dict) + or "mime_type" not in response_format + ) + ): + # Wrap the legacy schema into the new polymorphic format. + new_rf: Dict[str, Any] = { + "type": "text", + "mime_type": response_mime_type, + } + if response_format is not None: + new_rf["schema"] = response_format + response_format = new_rf + + if response_format is not None: + request_body["response_format"] = response_format + + # image_config moves out of generation_config into response_format. + generation_config: Optional[Dict[str, Any]] = optional_params.get( + "generation_config" + ) + if generation_config is not None: + image_config = None + if isinstance(generation_config, dict): + generation_config = dict( + generation_config + ) # avoid mutating the caller's dict + image_config = generation_config.pop("image_config", None) + if not generation_config: + generation_config = None + + if generation_config is not None: + request_body["generation_config"] = generation_config + + if image_config is not None: + # Move image_config to response_format with type=image. + image_rf: Dict[str, Any] = {"type": "image", **image_config} + existing_rf = request_body.get("response_format") + if existing_rf is None: + request_body["response_format"] = image_rf + elif isinstance(existing_rf, list): + request_body["response_format"] = [*existing_rf, image_rf] + else: + # Convert single entry to array for multimodal output. + request_body["response_format"] = [existing_rf, image_rf] + return request_body def transform_response( diff --git a/litellm/llms/gemini/videos/transformation.py b/litellm/llms/gemini/videos/transformation.py index c7116940b22..9714c8a3923 100644 --- a/litellm/llms/gemini/videos/transformation.py +++ b/litellm/llms/gemini/videos/transformation.py @@ -55,7 +55,7 @@ def _convert_image_to_gemini_format(image_file) -> Dict[str, str]: def _usage_video_resolution_from_parameters( - parameters: Dict[str, Any] + parameters: Dict[str, Any], ) -> Optional[str]: """Normalize Veo ``parameters.resolution`` for usage and cost tracking.""" res = parameters.get("resolution") diff --git a/litellm/llms/infinity/rerank/transformation.py b/litellm/llms/infinity/rerank/transformation.py index 314bf2f8a36..b9804605454 100644 --- a/litellm/llms/infinity/rerank/transformation.py +++ b/litellm/llms/infinity/rerank/transformation.py @@ -1,5 +1,5 @@ """ -Transformation logic from Cohere's /v1/rerank format to Infinity's `/v1/rerank` format. +Transformation logic from Cohere's /v1/rerank format to Infinity's `/v1/rerank` format. Why separate file? Make it easy to see how transformation works """ diff --git a/litellm/llms/jina_ai/rerank/transformation.py b/litellm/llms/jina_ai/rerank/transformation.py index ad4416925a6..56be754fc34 100644 --- a/litellm/llms/jina_ai/rerank/transformation.py +++ b/litellm/llms/jina_ai/rerank/transformation.py @@ -1,5 +1,5 @@ """ -Transformation logic from Cohere's /v1/rerank format to Jina AI's `/v1/rerank` format. +Transformation logic from Cohere's /v1/rerank format to Jina AI's `/v1/rerank` format. Why separate file? Make it easy to see how transformation works diff --git a/litellm/llms/lm_studio/embed/transformation.py b/litellm/llms/lm_studio/embed/transformation.py index 1285550c30f..87f4f6e73d5 100644 --- a/litellm/llms/lm_studio/embed/transformation.py +++ b/litellm/llms/lm_studio/embed/transformation.py @@ -1,5 +1,5 @@ """ -Transformation logic from OpenAI /v1/embeddings format to LM Studio's `/v1/embeddings` format. +Transformation logic from OpenAI /v1/embeddings format to LM Studio's `/v1/embeddings` format. Why separate file? Make it easy to see how transformation works diff --git a/litellm/llms/novita/chat/transformation.py b/litellm/llms/novita/chat/transformation.py index c05d2d7b2c5..5a64a124ade 100644 --- a/litellm/llms/novita/chat/transformation.py +++ b/litellm/llms/novita/chat/transformation.py @@ -1,5 +1,5 @@ """ -Support for OpenAI's `/v1/chat/completions` endpoint. +Support for OpenAI's `/v1/chat/completions` endpoint. Calls done in OpenAI/openai.py as Novita AI is openai-compatible. diff --git a/litellm/llms/nvidia_nim/chat/transformation.py b/litellm/llms/nvidia_nim/chat/transformation.py index b8f8b04eb53..2ef92a90626 100644 --- a/litellm/llms/nvidia_nim/chat/transformation.py +++ b/litellm/llms/nvidia_nim/chat/transformation.py @@ -1,7 +1,7 @@ """ -Nvidia NIM endpoint: https://docs.api.nvidia.com/nim/reference/databricks-dbrx-instruct-infer +Nvidia NIM endpoint: https://docs.api.nvidia.com/nim/reference/databricks-dbrx-instruct-infer -This is OpenAI compatible +This is OpenAI compatible This file only contains param mapping logic diff --git a/litellm/llms/nvidia_nim/embed.py b/litellm/llms/nvidia_nim/embed.py index 24c6cc34e4d..61c8e8244e4 100644 --- a/litellm/llms/nvidia_nim/embed.py +++ b/litellm/llms/nvidia_nim/embed.py @@ -1,7 +1,7 @@ """ Nvidia NIM embeddings endpoint: https://docs.api.nvidia.com/nim/reference/nvidia-nv-embedqa-e5-v5-infer -This is OpenAI compatible +This is OpenAI compatible This file only contains param mapping logic diff --git a/litellm/llms/oci/chat/cohere.py b/litellm/llms/oci/chat/cohere.py new file mode 100644 index 00000000000..ac92fd22aa8 --- /dev/null +++ b/litellm/llms/oci/chat/cohere.py @@ -0,0 +1,386 @@ +""" +OCI Generative AI — Cohere-specific chat transformation helpers. + +Handles message history building, tool definition adaptation, non-streaming +response parsing, and streaming chunk parsing for models served with +``apiFormat="COHERE"`` (e.g. ``cohere.command-*``). +""" + +import datetime +import json +from typing import Any, Dict, List, Optional + +import httpx +from pydantic import ValidationError + +from litellm.llms.oci.chat.generic import ( + _normalize_oci_finish_reason, + _synthesize_oci_tool_call_id, +) +from litellm.llms.oci.common_utils import ( + OCI_JSON_TO_PYTHON_TYPES, + OCIError, + enrich_cohere_param_description, + resolve_oci_schema_anyof, + resolve_oci_schema_refs, + sanitize_oci_schema, +) +from litellm.types.llms.oci import ( + CohereChatResult, + CohereMessage, + CohereParameterDefinition, + CohereStreamChunk, + CohereTool, + CohereToolCall, + CohereToolMessage, + CohereToolResult, +) +from litellm.types.llms.openai import AllMessageValues +from litellm.types.utils import ( + Choices, + Delta, + ModelResponse, + ModelResponseStream, + StreamingChoices, +) +from litellm.types.utils import Usage + + +def _extract_text_content(content: Any) -> str: + """Return the plain-text representation of a message content value.""" + if content is None: + return "" + if isinstance(content, str): + return content + if isinstance(content, list): + return "".join( + item.get("text", "") + for item in content + if isinstance(item, dict) and item.get("type") == "text" + ) + return str(content) + + +def adapt_messages_to_cohere_standard( + messages: List[AllMessageValues], +) -> List[CohereMessage]: + """Build a Cohere ``chatHistory`` list from an OpenAI-format message array. + + - All messages except the *last user message* are included. The caller pulls + the last user message into the request's top-level ``message`` field, so + trailing tool results (the standard agentic continuation pattern) still + appear in ``chatHistory`` and reach the model. + - If no user message exists, every message is included (no slice). + - System messages must be filtered out by the caller (they are routed into + ``preambleOverride`` separately) — they are not represented in + ``chatHistory``. + - Tool results are expressed as OCI ``CohereToolMessage.toolResults`` entries, + with the originating call's name and parameters resolved from the preceding + assistant message via a ``tool_call_id`` lookup. + """ + # First pass: build tool_call_id → CohereToolCall so tool-result messages can + # reference the originating call by name and parameters. + tool_call_lookup: Dict[str, CohereToolCall] = {} + for msg in messages: + if msg.get("role") == "assistant": + tool_calls_raw: Any = msg.get("tool_calls") or [] + for tc in tool_calls_raw: + tc_id = tc.get("id", "") + raw_args: Any = tc.get("function", {}).get("arguments", "{}") + try: + params: Dict[str, Any] = ( + json.loads(raw_args) if isinstance(raw_args, str) else raw_args + ) + except json.JSONDecodeError: + params = {} + tool_call_lookup[tc_id] = CohereToolCall( + name=str(tc.get("function", {}).get("name", "")), + parameters=params, + ) + + last_user_index = next( + ( + i + for i in range(len(messages) - 1, -1, -1) + if messages[i].get("role") == "user" + ), + None, + ) + history_source = ( + messages + if last_user_index is None + else [m for i, m in enumerate(messages) if i != last_user_index] + ) + + chat_history: List[CohereMessage] = [] + for msg in history_source: + role = msg.get("role") + content = _extract_text_content(msg.get("content")) + + tool_calls: Optional[List[CohereToolCall]] = None + if role == "assistant" and msg.get("tool_calls"): # type: ignore[union-attr,typeddict-item] + tool_calls = [] + for tc in msg["tool_calls"]: # type: ignore[union-attr,typeddict-item] + raw_arguments: Any = tc.get("function", {}).get("arguments", {}) + if isinstance(raw_arguments, str): + try: + arguments: Dict[str, Any] = json.loads(raw_arguments) + except json.JSONDecodeError: + arguments = {} + else: + arguments = raw_arguments + tool_calls.append( + CohereToolCall( + name=str(tc.get("function", {}).get("name", "")), + parameters=arguments, + ) + ) + + if role == "user": + chat_history.append(CohereMessage(role="USER", message=content)) + elif role == "assistant": + chat_history.append( + CohereMessage(role="CHATBOT", message=content, toolCalls=tool_calls) + ) + elif role == "tool": + tool_call_id = str(msg.get("tool_call_id", "") or "") + cohere_call = tool_call_lookup.get( + tool_call_id, CohereToolCall(name="", parameters={}) + ) + tool_result = CohereToolResult( + call=cohere_call, + outputs=[{"output": content}], + ) + # OpenAI emits one tool-role message per parallel tool call, but + # the OCI Cohere API expects all results from a single assistant + # turn to share one TOOL history entry with multiple toolResults. + # Merge consecutive tool messages so the model sees the parallel + # call/result pairing correctly during agentic loops. + if chat_history and isinstance(chat_history[-1], CohereToolMessage): + chat_history[-1].toolResults.append(tool_result) + else: + chat_history.append(CohereToolMessage(toolResults=[tool_result])) + + return chat_history + + +def adapt_tool_definitions_to_cohere_standard( + tools: List[Dict[str, Any]], +) -> List[CohereTool]: + """Adapt OpenAI-format tool definitions to the OCI Cohere format. + + - Resolves ``$ref``/``$defs`` and ``anyOf`` patterns that OCI rejects. + - Maps JSON Schema type names to Python type names (``"string"`` → ``"str"``). + - Embeds unsupported constraints (enum, format, range, pattern) into the + parameter description so the model can still see them. + """ + cohere_tools = [] + for tool in tools: + function_def = tool.get("function", {}) + raw_params = function_def.get("parameters", {}) + + resolved = sanitize_oci_schema( + resolve_oci_schema_anyof(resolve_oci_schema_refs(raw_params)) + ) + properties = resolved.get("properties", {}) + required = resolved.get("required", []) + + parameter_definitions = {} + for param_name, param_schema in properties.items(): + json_type = param_schema.get("type", "string") + python_type = OCI_JSON_TO_PYTHON_TYPES.get(json_type, json_type) + parameter_definitions[param_name] = CohereParameterDefinition( + description=enrich_cohere_param_description( + param_schema.get("description", ""), param_schema + ), + type=python_type, + isRequired=param_name in required, + ) + + cohere_tools.append( + CohereTool( + name=function_def.get("name", ""), + description=function_def.get("description", ""), + parameterDefinitions=parameter_definitions, + ) + ) + + return cohere_tools + + +def handle_cohere_response( + json_response: dict, + model: str, + model_response: ModelResponse, + raw_response: httpx.Response, +) -> ModelResponse: + """Parse a non-streaming Cohere OCI response into a LiteLLM ModelResponse.""" + try: + cohere_response = CohereChatResult(**json_response) + except (TypeError, ValidationError) as e: + raise OCIError( + message=f"Response cannot be casted to CohereChatResult: {str(e)}", + status_code=raw_response.status_code, + ) + + model_response.model = model + model_response.created = int(datetime.datetime.now().timestamp()) + + response_text = cohere_response.chatResponse.text + finish_reason = _normalize_oci_finish_reason( + cohere_response.chatResponse.finishReason + ) + + tool_calls: Optional[List[Dict[str, Any]]] = None + if cohere_response.chatResponse.toolCalls: + tool_calls = [ + { + "id": _synthesize_oci_tool_call_id( + i, tc.name, json.dumps(tc.parameters, sort_keys=True) + ), + "type": "function", + "function": { + "name": tc.name, + "arguments": json.dumps(tc.parameters), + }, + } + for i, tc in enumerate(cohere_response.chatResponse.toolCalls) + ] + + content: Optional[str] = response_text if response_text else None + + # Only include ``tool_calls`` in the message dict when actually present. + # Passing an explicit ``None`` would let downstream consumers that key off + # ``"tool_calls" in message`` (rather than truthiness) incorrectly conclude + # that tool calls were attempted. Matches the generic handler's behaviour, + # which only sets ``message.tool_calls`` when tool calls are present. + message: Dict[str, Any] = {"role": "assistant", "content": content} + if tool_calls is not None: + message["tool_calls"] = tool_calls + + model_response.choices = [ + Choices( + index=0, + message=message, + finish_reason=finish_reason, + ) + ] + + usage_info = cohere_response.chatResponse.usage + if usage_info is not None: + model_response.usage = Usage( # type: ignore[attr-defined] + prompt_tokens=usage_info.promptTokens, + completion_tokens=usage_info.completionTokens, + total_tokens=usage_info.totalTokens, + ) + else: + model_response.usage = Usage(prompt_tokens=0, completion_tokens=0, total_tokens=0) # type: ignore[attr-defined] + + return model_response + + +def handle_cohere_stream_chunk( + dict_chunk: dict, + prior_tool_calls_emitted: bool = False, + prior_text_emitted: bool = False, +) -> ModelResponseStream: + """Parse a single Cohere SSE chunk into a LiteLLM ModelResponseStream. + + ``prior_tool_calls_emitted`` lets the caller signal whether tool calls + were already emitted in earlier chunks of the same stream. When set, the + terminal consolidation chunk's tool calls are suppressed (they would + duplicate prior deltas); otherwise they are passed through so a stream + that delivers tool calls only on the terminal chunk doesn't silently + drop them. + + ``prior_text_emitted`` plays the analogous role for the ``text`` field: + when set, the terminal consolidation chunk's ``text`` is suppressed + (it would re-emit the full assembled response on top of prior deltas); + when unset (e.g. a degenerate stream that delivers the entire response + in a single SSE event carrying both ``chatHistory`` and ``finishReason``), + the text is passed through so the response content isn't silently lost. + """ + try: + typed_chunk = CohereStreamChunk(**dict_chunk) + except (TypeError, ValidationError) as e: + raise OCIError( + status_code=500, + message=f"Chunk cannot be parsed as CohereStreamChunk: {str(e)}", + ) + + if typed_chunk.index is None: + typed_chunk.index = 0 + + # OCI Cohere's terminal SSE event re-sends the full assembled response in + # `text` alongside a populated `chatHistory` and a non-null `finishReason`. + # Emitting that text would concatenate the whole response onto the + # already-streamed deltas. We require both signals to be present so that a + # future API change which adds `chatHistory` to intermediate chunks (or a + # rare early-populated case) doesn't silently drop legitimate token deltas. + is_terminal_consolidation = ( + typed_chunk.chatHistory is not None and typed_chunk.finishReason is not None + ) + # On non-terminal text-free chunks (e.g. tool-call-only or keep-alive + # chunks) emit ``content=None`` rather than ``content=""`` so downstream + # stream-mergers that distinguish "no text in this delta" from "an + # explicitly empty text delta" behave correctly. + # + # We only suppress the terminal chunk's ``text`` when the caller has + # confirmed that text deltas were already emitted earlier — otherwise + # (e.g. a degenerate stream that delivers the whole response in a + # single SSE event), passing it through is the only chance to surface it. + text: Optional[str] = ( + None if (is_terminal_consolidation and prior_text_emitted) else typed_chunk.text + ) + + # Tool calls on the terminal consolidation chunk (whether from + # `typed_chunk.toolCalls` or from `chatHistory`) typically restate what + # was already streamed in intermediate chunks. Re-emitting them would + # mint fresh `uuid4` IDs and cause downstream consumers to execute each + # tool call twice. We only suppress when the caller has confirmed that + # tool calls were already emitted earlier — otherwise (e.g. a short + # response that delivers tool calls exclusively on the terminal chunk), + # passing them through is the only chance to surface them. + cohere_tool_calls = ( + None + if (is_terminal_consolidation and prior_tool_calls_emitted) + else typed_chunk.toolCalls + ) + + tool_calls: Optional[List[Dict[str, Any]]] = None + if cohere_tool_calls: + tool_calls = [ + { + # Cohere protocol has no tool-call id, so we synthesize one + # deterministically from the call's content/position. A random + # uuid4 per chunk would cause downstream stream-mergers to + # treat each chunk as a distinct tool call. + "id": _synthesize_oci_tool_call_id( + i, tc.name, json.dumps(tc.parameters, sort_keys=True) + ), + "type": "function", + "function": { + "name": tc.name, + "arguments": json.dumps(tc.parameters), + }, + } + for i, tc in enumerate(cohere_tool_calls) + ] + + finish_reason = _normalize_oci_finish_reason(typed_chunk.finishReason) + + return ModelResponseStream( + choices=[ + StreamingChoices( + index=typed_chunk.index, + delta=Delta( + content=text, + tool_calls=tool_calls, + provider_specific_fields=None, + thinking_blocks=None, + reasoning_content=None, + ), + finish_reason=finish_reason, + ) + ] + ) diff --git a/litellm/llms/oci/chat/generic.py b/litellm/llms/oci/chat/generic.py new file mode 100644 index 00000000000..2cc1ac77a40 --- /dev/null +++ b/litellm/llms/oci/chat/generic.py @@ -0,0 +1,477 @@ +""" +OCI Generative AI — Generic-format chat transformation helpers. + +Handles message building, tool definition adaptation, non-streaming response +parsing, and streaming chunk parsing for models served with +``apiFormat="GENERIC"`` (e.g. Meta Llama, xAI Grok, Google Gemini). +""" + +import datetime +import hashlib +from typing import Any, Dict, List, Optional, Union + +import httpx +from pydantic import ValidationError + +from litellm.llms.oci.common_utils import ( + OCIError, + resolve_oci_schema_anyof, + resolve_oci_schema_refs, + sanitize_oci_schema, +) +from litellm.types.llms.oci import ( + OCICompletionResponse, + OCIContentPartUnion, + OCIImageContentPart, + OCIImageUrl, + OCIMessage, + OCIRoles, + OCIStreamChunk, + OCITextContentPart, + OCIToolCall, + OCIToolDefinition, + OCIVendors, +) +from litellm.types.llms.openai import AllMessageValues +from litellm.types.utils import ( + Delta, + ModelResponse, + ModelResponseStream, + StreamingChoices, +) +from litellm.types.utils import ChatCompletionMessageToolCall, Usage + +# Maps OpenAI role names to OCI GENERIC role names. +open_ai_to_generic_oci_role_map: Dict[str, OCIRoles] = { + "system": "SYSTEM", + "user": "USER", + "assistant": "ASSISTANT", + "tool": "TOOL", +} + + +# --------------------------------------------------------------------------- +# Message building +# --------------------------------------------------------------------------- + + +def adapt_messages_to_generic_oci_standard_content_message( + role: str, content: Union[str, list] +) -> OCIMessage: + """Convert a plain-text or multipart content message to OCI format.""" + new_content: List[OCIContentPartUnion] = [] + if isinstance(content, str): + return OCIMessage( + role=open_ai_to_generic_oci_role_map[role], + content=[OCITextContentPart(text=content)], + toolCalls=None, + toolCallId=None, + ) + + for content_item in content: + if not isinstance(content_item, dict): + raise OCIError( + status_code=400, message="Each content item must be a dictionary" + ) + + item_type = content_item.get("type") + if not isinstance(item_type, str): + raise OCIError( + status_code=400, + message="Each content item must have a string `type` field", + ) + if item_type not in ["text", "image_url"]: + raise OCIError( + status_code=400, + message=f"Content type `{item_type}` is not supported by OCI", + ) + + if item_type == "text": + text = content_item.get("text") + if not isinstance(text, str): + raise OCIError( + status_code=400, + message="Content item of type `text` must have a string `text` field", + ) + new_content.append(OCITextContentPart(text=text)) + + elif item_type == "image_url": + image_url = content_item.get("image_url") + if isinstance(image_url, dict): + image_url = image_url.get("url") + if not isinstance(image_url, str): + raise OCIError( + status_code=400, + message="Prop `image_url` must be a string or an object with a `url` property", + ) + new_content.append(OCIImageContentPart(imageUrl=OCIImageUrl(url=image_url))) + + return OCIMessage( + role=open_ai_to_generic_oci_role_map[role], + content=new_content, + toolCalls=None, + toolCallId=None, + ) + + +def adapt_messages_to_generic_oci_standard_tool_call( + role: str, tool_calls: list +) -> OCIMessage: + """Convert an assistant tool-call message to OCI format.""" + tool_calls_formatted = [] + for tool_call in tool_calls: + if not isinstance(tool_call, dict): + raise OCIError( + status_code=400, message="Each tool call must be a dictionary" + ) + if tool_call.get("type") != "function": + raise OCIError( + status_code=400, message="OCI only supports function tool calls" + ) + + tool_call_id = tool_call.get("id") + if not isinstance(tool_call_id, str): + raise OCIError(status_code=400, message="Tool call `id` must be a string") + + tool_function = tool_call.get("function") + if not isinstance(tool_function, dict): + raise OCIError( + status_code=400, message="Tool call `function` must be a dictionary" + ) + + function_name = tool_function.get("name") + if not isinstance(function_name, str): + raise OCIError( + status_code=400, message="Tool call `function.name` must be a string" + ) + + arguments = tool_call["function"].get("arguments", "{}") + if not isinstance(arguments, str): + raise OCIError( + status_code=400, + message="Tool call `function.arguments` must be a JSON string", + ) + + tool_calls_formatted.append( + OCIToolCall( + id=tool_call_id, + type="FUNCTION", + name=function_name, + arguments=arguments, + ) + ) + + return OCIMessage( + role=open_ai_to_generic_oci_role_map[role], + content=None, + toolCalls=tool_calls_formatted, + toolCallId=None, + ) + + +def adapt_messages_to_generic_oci_standard_tool_response( + role: str, tool_call_id: str, content: str +) -> OCIMessage: + """Convert a tool-result message to OCI format.""" + return OCIMessage( + role=open_ai_to_generic_oci_role_map[role], + content=[OCITextContentPart(text=content)], + toolCalls=None, + toolCallId=tool_call_id, + ) + + +def adapt_messages_to_generic_oci_standard( + messages: List[AllMessageValues], +) -> List[OCIMessage]: + """Convert an OpenAI-format message array to OCI GENERIC format.""" + new_messages = [] + for message in messages: + role = message["role"] + content = message.get("content") + tool_calls = message.get("tool_calls") + tool_call_id = message.get("tool_call_id") + + if role == "assistant" and tool_calls is not None: + if not isinstance(tool_calls, list): + raise OCIError( + status_code=400, message="Message `tool_calls` must be a list" + ) + new_messages.append( + adapt_messages_to_generic_oci_standard_tool_call(role, tool_calls) + ) + + elif role in ["system", "user", "assistant"] and content is not None: + if not isinstance(content, (str, list)): + raise OCIError( + status_code=400, + message="Message `content` must be a string or list of content parts", + ) + new_messages.append( + adapt_messages_to_generic_oci_standard_content_message(role, content) + ) + + elif role == "tool": + if not isinstance(tool_call_id, str): + raise OCIError( + status_code=400, + message="Tool result message must have a string `tool_call_id`", + ) + if not isinstance(content, str): + raise OCIError( + status_code=400, + message="Tool result message `content` must be a string", + ) + new_messages.append( + adapt_messages_to_generic_oci_standard_tool_response( + role, tool_call_id, content + ) + ) + + return new_messages + + +# --------------------------------------------------------------------------- +# Tool definition adaptation +# --------------------------------------------------------------------------- + + +def adapt_tool_definition_to_oci_standard( + tools: List[Dict], vendor: OCIVendors +) -> List[OCIToolDefinition]: + """Convert OpenAI-format tool definitions to OCI GENERIC format. + + Resolves ``$ref``/``$defs`` and ``anyOf`` that the OCI endpoint rejects. + """ + new_tools = [] + for tool in tools: + if tool["type"] != "function": + raise OCIError(status_code=400, message="OCI only supports function tools") + + tool_function = tool.get("function") + if not isinstance(tool_function, dict): + raise OCIError( + status_code=400, message="Tool `function` must be a dictionary" + ) + + raw_params = tool_function.get("parameters", {}) + resolved_params = sanitize_oci_schema( + resolve_oci_schema_anyof(resolve_oci_schema_refs(raw_params)) + ) + + new_tools.append( + OCIToolDefinition( + type="FUNCTION", + name=tool_function.get("name"), + description=tool_function.get("description", ""), + parameters=resolved_params, + ) + ) + + return new_tools + + +def _normalize_oci_finish_reason(raw: Optional[str]) -> Optional[str]: + """Map an OCI-specific finish reason to its OpenAI-standard equivalent. + + OCI emits ``COMPLETE`` / ``MAX_TOKENS`` / ``TOOL_CALL(S)`` plus a long tail + of error/cancel reasons (``ERROR``, ``ERROR_TOXIC``, ``ERROR_LIMIT``, + ``USER_CANCEL``, ``CONTENT_FILTERED``, ``CANCELLED``, ...). The OpenAI + spec only defines ``stop`` / ``length`` / ``tool_calls`` / ... — anything + else is collapsed to ``"stop"`` so downstream consumers switching on + ``finish_reason`` keep working. A ``None`` input passes through unchanged. + """ + if raw is None: + return None + if raw == "COMPLETE": + return "stop" + if raw == "MAX_TOKENS": + return "length" + if raw in ("TOOL_CALL", "TOOL_CALLS"): + return "tool_calls" + return "stop" + + +def _synthesize_oci_tool_call_id(position: int, name: str, arguments: str) -> str: + """Deterministic synthetic tool-call id derived from chunk content. + + Used as a fallback when OCI omits ``id`` (always the case for the OCI + Cohere protocol, occasionally the case for OCI GENERIC streaming chunks). + A random ``uuid4`` per chunk would cause downstream stream-merging + consumers — which key off the tool-call ``id`` — to treat re-emissions of + the same logical call (e.g. terminal consolidation chunks, retries) as + distinct calls. A content-derived digest stays stable across identical + re-emissions while differing across truly distinct calls. + """ + digest = hashlib.sha256( + f"{position}|{name}|{arguments}".encode("utf-8"), + usedforsecurity=False, + ).hexdigest()[:24] + return f"call_{digest}" + + +def adapt_tools_to_openai_standard( + tools: List[OCIToolCall], +) -> List[ChatCompletionMessageToolCall]: + """Convert OCI tool-call objects in a response to the OpenAI format.""" + return [ + ChatCompletionMessageToolCall( + id=tool.id or _synthesize_oci_tool_call_id(i, tool.name, tool.arguments), + type="function", + function={"name": tool.name, "arguments": tool.arguments}, + ) + for i, tool in enumerate(tools) + ] + + +# --------------------------------------------------------------------------- +# Response parsing +# --------------------------------------------------------------------------- + + +def handle_generic_response( + json_data: dict, + model: str, + model_response: ModelResponse, + raw_response: httpx.Response, +) -> ModelResponse: + """Parse a non-streaming GENERIC OCI response into a LiteLLM ModelResponse.""" + try: + completion_response = OCICompletionResponse(**json_data) + except (TypeError, ValidationError) as e: + raise OCIError( + message=f"Response cannot be casted to OCICompletionResponse: {str(e)}", + status_code=raw_response.status_code, + ) + + iso_str = completion_response.chatResponse.timeCreated + dt = datetime.datetime.fromisoformat(iso_str.replace("Z", "+00:00")) + model_response.created = int(dt.timestamp()) + model_response.model = completion_response.modelId + + if not completion_response.chatResponse.choices: + raise OCIError( + message="OCI response contained no choices", + status_code=raw_response.status_code, + ) + + response_choice = completion_response.chatResponse.choices[0] + message = model_response.choices[0].message # type: ignore + response_message = response_choice.message + if response_message is not None: + if response_message.content: + # Concatenate all text parts — matches the streaming handler, which + # iterates the full content array. Skips non-text parts (e.g. image + # parts) so a leading non-text part doesn't suppress trailing text. + text: Optional[str] = None + for item in response_message.content: + if isinstance(item, OCITextContentPart): + text = (text or "") + item.text + if text is not None: + message.content = text + if response_message.toolCalls: + message.tool_calls = adapt_tools_to_openai_standard( + response_message.toolCalls + ) + + model_response.choices[0].finish_reason = _normalize_oci_finish_reason( # type: ignore[union-attr,assignment] + response_choice.finishReason + ) + + oci_usage = completion_response.chatResponse.usage + reasoning_tokens: Optional[int] = None + if ( + oci_usage.completionTokensDetails + and oci_usage.completionTokensDetails.reasoningTokens is not None + ): + reasoning_tokens = oci_usage.completionTokensDetails.reasoningTokens + model_response.usage = Usage( # type: ignore[attr-defined] + prompt_tokens=oci_usage.promptTokens, + completion_tokens=oci_usage.completionTokens or 0, + total_tokens=oci_usage.totalTokens, + reasoning_tokens=reasoning_tokens, + ) + + return model_response + + +def handle_generic_stream_chunk(dict_chunk: dict) -> ModelResponseStream: + """Parse a single GENERIC SSE chunk into a LiteLLM ModelResponseStream.""" + # OCI streams tool calls progressively — early chunks may omit required fields. + if dict_chunk.get("message") and dict_chunk["message"].get("toolCalls"): + for tool_call in dict_chunk["message"]["toolCalls"]: + tool_call.setdefault("arguments", "") + tool_call.setdefault("id", "") + tool_call.setdefault("name", "") + + try: + typed_chunk = OCIStreamChunk(**dict_chunk) + except (TypeError, ValidationError) as e: + raise OCIError( + status_code=500, + message=f"Chunk cannot be parsed as OCIStreamChunk: {str(e)}", + ) + + if typed_chunk.index is None: + typed_chunk.index = 0 + + # Emit ``content=None`` rather than ``content=""`` on chunks with no text + # parts (e.g. tool-call-only or keep-alive chunks) so downstream + # stream-mergers that distinguish "no text in this delta" from "an + # explicitly empty text delta" behave correctly. + text: Optional[str] = None + if typed_chunk.message and typed_chunk.message.content: + for item in typed_chunk.message.content: + if isinstance(item, OCITextContentPart): + text = (text or "") + item.text + elif isinstance(item, OCIImageContentPart): + raise OCIError( + status_code=500, + message="OCI returned image content in a streaming response — not supported", + ) + else: + raise OCIError( + status_code=500, + message=f"Unsupported content type in OCI streaming response: {item.type}", + ) + + # Build plain tool-call dicts inline (matching the shape produced by + # ``handle_cohere_stream_chunk``) rather than calling + # ``adapt_tools_to_openai_standard`` and ``model_dump``-ing the typed + # objects. Both code paths feed ``Delta.tool_calls``, so emitting the + # same minimal ``{"id", "type", "function": {"name", "arguments"}}`` + # shape keeps downstream stream-mergers behaving identically across + # GENERIC and Cohere chunks. + tool_calls: Optional[List[Dict[str, Any]]] = None + if typed_chunk.message and typed_chunk.message.toolCalls: + tool_calls = [ + { + "id": tc.id or _synthesize_oci_tool_call_id(i, tc.name, tc.arguments), + "type": "function", + "function": { + "name": tc.name, + "arguments": tc.arguments, + }, + } + for i, tc in enumerate(typed_chunk.message.toolCalls) + ] + + finish_reason: Optional[str] = _normalize_oci_finish_reason( + typed_chunk.finishReason + ) + + return ModelResponseStream( + choices=[ + StreamingChoices( + index=typed_chunk.index, + delta=Delta( + content=text, + tool_calls=tool_calls, + provider_specific_fields=None, + thinking_blocks=None, + reasoning_content=None, + ), + finish_reason=finish_reason, + ) + ] + ) diff --git a/litellm/llms/oci/chat/transformation.py b/litellm/llms/oci/chat/transformation.py index 62104e921a4..f050f9eea36 100644 --- a/litellm/llms/oci/chat/transformation.py +++ b/litellm/llms/oci/chat/transformation.py @@ -1,20 +1,26 @@ -import base64 -import datetime -import hashlib +""" +OCI Generative AI — chat transformation orchestrator. + +This module wires together the Cohere-specific and Generic-model helpers to +implement the LiteLLM BaseConfig interface. Heavy-lifting lives in: + + - :mod:`litellm.llms.oci.chat.cohere` — Cohere message/tool/response logic + - :mod:`litellm.llms.oci.chat.generic` — Generic message/tool/response logic + - :mod:`litellm.llms.oci.common_utils` — auth, signing, schema utilities +""" + import json -from dataclasses import dataclass from typing import ( TYPE_CHECKING, Any, AsyncIterator, Dict, + Iterator, List, Optional, - Protocol, Tuple, Union, ) -from urllib.parse import urlparse import httpx @@ -28,43 +34,43 @@ from litellm.llms.custom_httpx.http_handler import ( get_async_httpx_client, version, ) -from litellm.llms.oci.common_utils import OCIError +from litellm.llms.oci.chat.cohere import ( + _extract_text_content, + adapt_messages_to_cohere_standard, + adapt_tool_definitions_to_cohere_standard, + handle_cohere_response, + handle_cohere_stream_chunk, +) +from litellm.llms.oci.chat.generic import ( + adapt_messages_to_generic_oci_standard, + adapt_tool_definition_to_oci_standard, + handle_generic_response, + handle_generic_stream_chunk, +) +from litellm.llms.oci.common_utils import ( + OCI_API_VERSION, + OCIError, + OCIRequestWrapper, # re-exported for backwards compatibility + get_oci_base_url, + resolve_oci_credentials, + sign_oci_request, + validate_oci_environment, +) from litellm.types.llms.oci import ( CohereChatRequest, - CohereMessage, - CohereChatResult, - CohereParameterDefinition, - CohereStreamChunk, - CohereTool, - CohereToolCall, OCIChatRequestPayload, OCICompletionPayload, - OCICompletionResponse, - OCIContentPartUnion, - OCIImageContentPart, - OCIImageUrl, - OCIMessage, - OCIRoles, OCIServingMode, - OCIStreamChunk, - OCITextContentPart, - OCIToolCall, - OCIToolDefinition, OCIVendors, ) from litellm.types.llms.openai import AllMessageValues from litellm.types.utils import ( - Delta, LlmProviders, ModelResponse, ModelResponseStream, - StreamingChoices, -) -from litellm.utils import ( - ChatCompletionMessageToolCall, - CustomStreamWrapper, - Usage, ) +from litellm.utils import supports_reasoning +from litellm.litellm_core_utils.streaming_handler import CustomStreamWrapper if TYPE_CHECKING: from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj @@ -74,142 +80,157 @@ else: LiteLLMLoggingObj = Any -class OCISignerProtocol(Protocol): - """ - Protocol for OCI request signers (e.g., oci.signer.Signer). - - This protocol defines the interface expected for OCI SDK signer objects. - Compatible with the OCI Python SDK's Signer class. - - See: https://docs.oracle.com/en-us/iaas/tools/python/latest/api/signing.html - """ - - def do_request_sign( - self, request: Any, *, enforce_content_headers: bool = False - ) -> None: - """ - Sign an HTTP request by adding authentication headers. - - Args: - request: Request object with method, url, headers, body, and path_url attributes - enforce_content_headers: Whether to enforce content-type and content-length headers - """ - ... - - -@dataclass -class OCIRequestWrapper: - """ - Wrapper for HTTP requests compatible with OCI signer interface. - - This class wraps request data in a format compatible with OCI SDK signers, - which expect objects with method, url, headers, body, and path_url attributes. - """ - - method: str - url: str - headers: dict - body: bytes - - @property - def path_url(self) -> str: - """Returns the path + query string for OCI signing.""" - parsed_url = urlparse(self.url) - return parsed_url.path + ("?" + parsed_url.query if parsed_url.query else "") - - -def sha256_base64(data: bytes) -> str: - digest = hashlib.sha256(data).digest() - return base64.b64encode(digest).decode() - - -def build_signature_string(method, path, headers, signed_headers): - lines = [] - for header in signed_headers: - if header == "(request-target)": - value = f"{method.lower()} {path}" - else: - value = headers[header] - lines.append(f"{header}: {value}") - return "\n".join(lines) - - -def load_private_key_from_str(key_str: str): - try: - from cryptography.hazmat.primitives import serialization - from cryptography.hazmat.primitives.asymmetric import rsa - except ImportError as e: - raise ImportError( - "cryptography package is required for OCI authentication. " - "Please install it with: pip install cryptography" - ) from e - - key = serialization.load_pem_private_key( - key_str.encode("utf-8"), - password=None, - ) - if not isinstance(key, rsa.RSAPrivateKey): - raise TypeError( - "The provided private key is not an RSA key, which is required for OCI signing." - ) - return key - - -def load_private_key_from_file(file_path: str): - """Loads a private key from a file path""" - try: - with open(file_path, "r", encoding="utf-8") as f: - key_str = f.read().strip() - except FileNotFoundError: - raise FileNotFoundError(f"Private key file not found: {file_path}") - except OSError as e: - raise OSError(f"Failed to read private key file '{file_path}': {e}") from e - - if not key_str: - raise ValueError(f"Private key file is empty: {file_path}") - - return load_private_key_from_str(key_str) - - -def get_vendor_from_model(model: str) -> OCIVendors: - """ - Extracts the vendor from the model name. - - OCI GenAI API uses two apiFormat values: - - "COHERE" for Cohere models (command-r, command-a, etc.) - - "GENERIC" for all other models (Meta Llama, xAI Grok, Google Gemini, etc.) - - Args: - model (str): The model name (e.g., "cohere.command-a-03-2025", "meta.llama-3.3-70b-instruct"). - Returns: - OCIVendors: The vendor enum value. - """ - vendor = model.split(".")[0].lower() - if vendor == "cohere": - return OCIVendors.COHERE - else: - return OCIVendors.GENERIC - - -# 5 minute timeout (models may need to load) +# Streaming timeout — generous because OCI models may need to warm up on first request STREAMING_TIMEOUT = 60 * 5 +def _model_uses_max_completion_tokens(model: str) -> bool: + """Return True for OCI-hosted models that require ``maxCompletionTokens``. + + Reasoning models on OCI (e.g. the OpenAI GPT-5 family) reject ``maxTokens`` + with HTTP 400 and require ``maxCompletionTokens`` per OpenAI's reasoning-API + convention. Driven by ``supports_reasoning`` in + ``model_prices_and_context_window.json`` so new model families are picked + up via a catalog update rather than a code change. + """ + if not model: + return False + name = model[4:] if model.lower().startswith("oci/") else model + return supports_reasoning(model=name, custom_llm_provider="oci") + + +def _iter_sse_events(stream: Iterator[str]) -> Iterator[str]: + """Yield one ``data:`` SSE line at a time from a sync text stream. + + The OCI streaming endpoint does not align SSE event boundaries with HTTP + read boundaries. A single read may carry multiple events, a single event + may straddle two reads, and some events arrive separated by only ``\\n`` + instead of ``\\n\\n``. This helper buffers across reads and yields each + complete ``data:`` line so JSON parsing downstream never sees a partial + payload. + """ + buffer = "" + for item in stream: + buffer += item + while "\n" in buffer: + line, buffer = buffer.split("\n", 1) + stripped = line.strip() + if stripped.startswith("data:"): + yield stripped + stripped = buffer.strip() + if stripped.startswith("data:"): + yield stripped + + +async def _aiter_sse_events(stream: AsyncIterator[str]) -> AsyncIterator[str]: + """Async twin of :func:`_iter_sse_events`.""" + buffer = "" + async for item in stream: + buffer += item + while "\n" in buffer: + line, buffer = buffer.split("\n", 1) + stripped = line.strip() + if stripped.startswith("data:"): + yield stripped + stripped = buffer.strip() + if stripped.startswith("data:"): + yield stripped + + +def _normalize_tool_choice(selected_params: Dict) -> None: + tc = selected_params.get("toolChoice") + if tc is None: + return + if isinstance(tc, str): + tc_map = { + "auto": {"type": "AUTO"}, + "none": {"type": "NONE"}, + "required": {"type": "REQUIRED"}, + "any": {"type": "REQUIRED"}, + } + selected_params["toolChoice"] = tc_map.get( + tc.lower(), {"type": "FUNCTION", "name": tc} + ) + return + if isinstance(tc, dict): + raw_type = tc.get("type") + if not isinstance(raw_type, str): + raise OCIError( + status_code=400, + message=f"Invalid tool_choice for OCI: missing or non-string 'type' in {tc!r}", + ) + upper = raw_type.upper() + if upper == "FUNCTION": + fn = tc.get("function") + name = fn.get("name") if isinstance(fn, dict) else tc.get("name") + if not (isinstance(name, str) and name): + raise OCIError( + status_code=400, + message="Invalid tool_choice for OCI: 'FUNCTION' type requires a non-empty function name", + ) + selected_params["toolChoice"] = {"type": "FUNCTION", "name": name} + elif upper in {"AUTO", "NONE", "REQUIRED"}: + selected_params["toolChoice"] = {"type": upper} + else: + raise OCIError( + status_code=400, + message=( + f"Invalid tool_choice for OCI: unsupported type {raw_type!r}; " + "expected one of 'FUNCTION', 'AUTO', 'NONE', 'REQUIRED'" + ), + ) + return + raise OCIError( + status_code=400, + message=( + f"Invalid tool_choice for OCI: expected str or dict, got " + f"{type(tc).__name__}" + ), + ) + + +def _normalize_response_format(selected_params: Dict, vendor: OCIVendors) -> None: + rf = selected_params.get("responseFormat") + if not isinstance(rf, dict) or "type" not in rf: + return + rf_payload = dict(rf) + selected_params["responseFormat"] = rf_payload + response_type = rf_payload["type"] + if "json_schema" in rf_payload: + raw_schema = rf_payload.pop("json_schema") + rf_payload["jsonSchema"] = ( + dict(raw_schema) if isinstance(raw_schema, dict) else raw_schema + ) + if vendor == OCIVendors.COHERE: + rf_payload["type"] = response_type + else: + fmt = response_type.upper() + rf_payload["type"] = "JSON_OBJECT" if fmt == "JSON" else fmt + + +def get_vendor_from_model(model: str) -> OCIVendors: + """Return the OCI vendor enum for a model name. + + OCI GenAI uses two ``apiFormat`` values: + + - ``"COHERE"`` for Cohere models (``cohere.*``) + - ``"GENERIC"`` for all others (Meta Llama, xAI Grok, Google Gemini, …) + """ + name = model[4:] if model.lower().startswith("oci/") else model + vendor = name.split(".")[0].lower() + if vendor == "cohere": + return OCIVendors.COHERE + return OCIVendors.GENERIC + + class OCIChatConfig(BaseConfig): - """ - Configuration class for OCI's API interface. - """ + """LiteLLM BaseConfig implementation for OCI Generative AI chat.""" - def __init__( - self, - ) -> None: - locals_ = locals().copy() - for key, value in locals_.items(): - if key != "self" and value is not None: - setattr(self.__class__, key, value) - # mark the class as using a custom stream wrapper because the default only iterates on lines - setattr(self.__class__, "has_custom_stream_wrapper", True) + @property + def has_custom_stream_wrapper(self) -> bool: + return True + def __init__(self) -> None: self.openai_to_oci_generic_param_map = { "stream": "isStream", "max_tokens": "maxTokens", @@ -221,6 +242,7 @@ class OCIChatConfig(BaseConfig): "logit_bias": "logitBias", "n": "numGenerations", "presence_penalty": "presencePenalty", + "reasoning_effort": "reasoningEffort", "seed": "seed", "stop": "stop", "tool_choice": "toolChoice", @@ -239,25 +261,43 @@ class OCIChatConfig(BaseConfig): "response_format": "responseFormat", } - # Cohere and Gemini use the same parameter mapping as GENERIC - self.openai_to_oci_cohere_param_map = ( - self.openai_to_oci_generic_param_map.copy() - ) + # Cohere param map differs from GENERIC in three ways: + # - tool_choice is unsupported + # - stop sequences key is "stopSequences" not "stop" + # - n (numGenerations) is GENERIC-only + # The unsupported keys are kept in the map with value ``False`` so + # ``map_openai_params`` either drops them (under drop_params) or raises + # a clear error, rather than silently passing them through. + self.openai_to_oci_cohere_param_map = { + k: ("stopSequences" if k == "stop" else v) + for k, v in self.openai_to_oci_generic_param_map.items() + } + self.openai_to_oci_cohere_param_map["tool_choice"] = False + self.openai_to_oci_cohere_param_map["n"] = False + # ``top_k`` is not a standard OpenAI param, but Cohere's chat request + # accepts ``topK`` and LiteLLM commonly forwards ``top_k`` as a + # passthrough param. Cohere-only — ``OCIChatRequestPayload`` (GENERIC) + # has no ``topK`` field. + self.openai_to_oci_cohere_param_map["top_k"] = "topK" + # OCI Cohere models are not reasoning models; mark reasoning_effort + # explicitly unsupported so callers either get a clear error or have + # the param dropped under drop_params, rather than silently passing + # through and tripping Pydantic validation on CohereChatRequest. + self.openai_to_oci_cohere_param_map["reasoning_effort"] = False + # CohereChatRequest has no logProbs/logitBias fields, so passing these + # through would be silently dropped by Pydantic. Mark them unsupported + # so get_supported_openai_params doesn't advertise them and callers + # get a clear error (or drop_params behaviour) instead. + self.openai_to_oci_cohere_param_map["logprobs"] = False + self.openai_to_oci_cohere_param_map["logit_bias"] = False def get_supported_openai_params(self, model: str) -> List[str]: - supported_params = [] - vendor = get_vendor_from_model(model) - if vendor == OCIVendors.COHERE: - open_ai_to_oci_param_map = self.openai_to_oci_cohere_param_map - open_ai_to_oci_param_map.pop("tool_choice") - open_ai_to_oci_param_map.pop("max_retries") - else: - open_ai_to_oci_param_map = self.openai_to_oci_generic_param_map - for key, value in open_ai_to_oci_param_map.items(): - if value: - supported_params.append(key) - - return supported_params + param_map = ( + self.openai_to_oci_cohere_param_map + if get_vendor_from_model(model) == OCIVendors.COHERE + else self.openai_to_oci_generic_param_map + ) + return [key for key, value in param_map.items() if value] def map_openai_params( self, @@ -268,238 +308,34 @@ class OCIChatConfig(BaseConfig): ) -> dict: adapted_params = {} vendor = get_vendor_from_model(model) - if vendor == OCIVendors.COHERE: - open_ai_to_oci_param_map = self.openai_to_oci_cohere_param_map - else: - open_ai_to_oci_param_map = self.openai_to_oci_generic_param_map - - all_params = {**non_default_params, **optional_params} - - for key, value in all_params.items(): - alias = open_ai_to_oci_param_map.get(key) + param_map = ( + self.openai_to_oci_cohere_param_map + if vendor == OCIVendors.COHERE + else self.openai_to_oci_generic_param_map + ) + for key, value in {**non_default_params, **optional_params}.items(): + alias = param_map.get(key) if alias is False: - # Workaround for mypy issue if drop_params or litellm.drop_params: continue - raise Exception(f"param `{key}` is not supported on OCI") - + raise OCIError( + status_code=400, + message=f"param `{key}` is not supported on OCI", + ) if alias is None: adapted_params[key] = value continue - adapted_params[alias] = value - + # Preserve the original OpenAI ``response_format`` key alongside the + # OCI-mapped ``responseFormat`` so downstream litellm framework code + # (e.g. ``json_mode`` detection, logging) that inspects + # ``optional_params["response_format"]`` continues to work. if alias == "responseFormat": adapted_params["response_format"] = value return adapted_params - def _sign_with_oci_signer( - self, - headers: dict, - optional_params: dict, - request_data: dict, - api_base: str, - ) -> Tuple[dict, bytes]: - """ - Sign request using OCI SDK Signer object. - - Args: - headers: Request headers to be signed - optional_params: Optional parameters including oci_signer - request_data: The request body dict to be sent in HTTP request - api_base: The complete URL for the HTTP request - - Returns: - Tuple of (signed_headers, encoded_body) - - Raises: - OCIError: If signing fails - ValueError: If HTTP method is unsupported - """ - oci_signer = optional_params.get("oci_signer") - body = json.dumps(request_data).encode("utf-8") - method = str(optional_params.get("method", "POST")).upper() - - if method not in ["POST", "GET", "PUT", "DELETE", "PATCH"]: - raise ValueError(f"Unsupported HTTP method: {method}") - - prepared_headers = headers.copy() - prepared_headers.setdefault("content-type", "application/json") - prepared_headers.setdefault("content-length", str(len(body))) - - request_wrapper = OCIRequestWrapper( - method=method, url=api_base, headers=prepared_headers, body=body - ) - - if oci_signer is None: - raise ValueError( - "oci_signer cannot be None when calling _sign_with_oci_signer" - ) - - try: - oci_signer.do_request_sign(request_wrapper, enforce_content_headers=True) - except Exception as e: - raise OCIError( - status_code=500, - message=( - f"Failed to sign request with provided oci_signer: {str(e)}. " - "The signer must implement the OCI SDK Signer interface with a " - "do_request_sign(request, enforce_content_headers=True) method. " - "See: https://docs.oracle.com/en-us/iaas/tools/python/latest/api/signing.html" - ), - ) from e - - headers.update(request_wrapper.headers) - return headers, body - - def _sign_with_manual_credentials( - self, - headers: dict, - optional_params: dict, - request_data: dict, - api_base: str, - ) -> Tuple[dict, None]: - """ - Sign request using manual OCI credentials. - - Args: - headers: Request headers to be signed - optional_params: Optional parameters including OCI credentials - request_data: The request body dict to be sent in HTTP request - api_base: The complete URL for the HTTP request - - Returns: - Tuple of (signed_headers, None) - - Raises: - Exception: If required credentials are missing - ImportError: If cryptography package is not installed - """ - oci_region = optional_params.get("oci_region", "us-ashburn-1") - api_base = ( - api_base - or litellm.api_base - or f"https://inference.generativeai.{oci_region}.oci.oraclecloud.com" - ) - oci_user = optional_params.get("oci_user") - oci_fingerprint = optional_params.get("oci_fingerprint") - oci_tenancy = optional_params.get("oci_tenancy") - oci_key = optional_params.get("oci_key") - oci_key_file = optional_params.get("oci_key_file") - - if ( - not oci_user - or not oci_fingerprint - or not oci_tenancy - or not (oci_key or oci_key_file) - ): - raise Exception( - "Missing required parameters: oci_user, oci_fingerprint, oci_tenancy, " - "and at least one of oci_key or oci_key_file." - ) - - method = str(optional_params.get("method", "POST")).upper() - body = json.dumps(request_data).encode("utf-8") - parsed = urlparse(api_base) - path = parsed.path or "/" - host = parsed.netloc - - date = datetime.datetime.utcnow().strftime("%a, %d %b %Y %H:%M:%S GMT") - content_type = headers.get("content-type", "application/json") - content_length = str(len(body)) - x_content_sha256 = sha256_base64(body) - - headers_to_sign = { - "date": date, - "host": host, - "content-type": content_type, - "content-length": content_length, - "x-content-sha256": x_content_sha256, - } - - signed_headers = [ - "date", - "(request-target)", - "host", - "content-length", - "content-type", - "x-content-sha256", - ] - signing_string = build_signature_string( - method, path, headers_to_sign, signed_headers - ) - - try: - from cryptography.hazmat.primitives import hashes - from cryptography.hazmat.primitives.asymmetric import padding - except ImportError as e: - raise ImportError( - "cryptography package is required for OCI authentication. " - "Please install it with: pip install cryptography" - ) from e - - # Handle oci_key - it should be a string (PEM content) - oci_key_content = None - if oci_key: - if isinstance(oci_key, str): - oci_key_content = oci_key - # Fix common issues with PEM content - # Replace escaped newlines with actual newlines - oci_key_content = oci_key_content.replace("\\n", "\n") - # Ensure proper line endings - if "\r\n" in oci_key_content: - oci_key_content = oci_key_content.replace("\r\n", "\n") - else: - raise OCIError( - status_code=400, - message=f"oci_key must be a string containing the PEM private key content. " - f"Got type: {type(oci_key).__name__}", - ) - - private_key = ( - load_private_key_from_str(oci_key_content) - if oci_key_content - else load_private_key_from_file(oci_key_file) if oci_key_file else None - ) - - if private_key is None: - raise OCIError( - status_code=400, - message="Private key is required for OCI authentication. Please provide either oci_key or oci_key_file.", - ) - - signature = private_key.sign( - signing_string.encode("utf-8"), - padding.PKCS1v15(), - hashes.SHA256(), - ) - signature_b64 = base64.b64encode(signature).decode() - - key_id = f"{oci_tenancy}/{oci_user}/{oci_fingerprint}" - - authorization = ( - 'Signature version="1",' - f'keyId="{key_id}",' - 'algorithm="rsa-sha256",' - f'headers="{" ".join(signed_headers)}",' - f'signature="{signature_b64}"' - ) - - headers.update( - { - "authorization": authorization, - "date": date, - "host": host, - "content-type": content_type, - "content-length": content_length, - "x-content-sha256": x_content_sha256, - } - ) - - return headers, None - def sign_request( self, headers: dict, @@ -510,61 +346,16 @@ class OCIChatConfig(BaseConfig): model: Optional[str] = None, stream: Optional[bool] = None, fake_stream: Optional[bool] = None, - ) -> Tuple[dict, Optional[bytes]]: - """ - Sign the OCI request by adding authentication headers. - - Supports two signing modes: - 1. OCI SDK Signer: Use an oci_signer object to sign the request - 2. Manual Signing: Use OCI credentials to manually sign the request - - Args: - headers: Request headers to be signed - optional_params: Optional parameters including auth credentials or oci_signer - request_data: The request body dict to be sent in HTTP request - api_base: The complete URL for the HTTP request - api_key: Optional API key (not used for OCI) - model: Optional model name - stream: Optional streaming flag - fake_stream: Optional fake streaming flag - - Returns: - Tuple of (signed_headers, encoded_body): - - If oci_signer is provided: Returns (headers, body) where body is the encoded JSON - - If manual credentials are provided: Returns (headers, None) as body is not returned - for the manual signing path - - Raises: - OCIError: If signing fails with oci_signer - Exception: If required credentials are missing - ImportError: If cryptography package is not installed (manual signing only) - - Example: - >>> from oci.signer import Signer - >>> signer = Signer( - ... tenancy="ocid1.tenancy.oc1..", - ... user="ocid1.user.oc1..", - ... fingerprint="xx:xx:xx", - ... private_key_file_location="~/.oci/key.pem" - ... ) - >>> headers, body = config.sign_request( - ... headers={}, - ... optional_params={"oci_signer": signer}, - ... request_data={"message": "Hello"}, - ... api_base="https://inference.generativeai.us-ashburn-1.oci.oraclecloud.com/..." - ... ) - """ - oci_signer = optional_params.get("oci_signer") - - # If a signer is provided, use it for request signing - if oci_signer is not None: - return self._sign_with_oci_signer( - headers, optional_params, request_data, api_base - ) - - # Standard manual credential signing - return self._sign_with_manual_credentials( - headers, optional_params, request_data, api_base + ) -> Tuple[dict, bytes]: + return sign_oci_request( + headers=headers, + optional_params=optional_params, + request_data=request_data, + api_base=api_base, + api_key=api_key, + model=model, + stream=stream, + fake_stream=fake_stream, ) def validate_environment( @@ -577,80 +368,35 @@ class OCIChatConfig(BaseConfig): api_key: Optional[str] = None, api_base: Optional[str] = None, ) -> dict: - """ - Validate the OCI environment and credentials. - - Supports two authentication modes: - 1. OCI SDK Signer: Pass an oci_signer object (e.g., oci.signer.Signer) - 2. Manual Credentials: Pass oci_user, oci_fingerprint, oci_tenancy, and oci_key/oci_key_file - - Args: - headers: Request headers to populate - model: Model name - messages: List of chat messages - optional_params: Optional parameters including authentication credentials - litellm_params: LiteLLM parameters - api_key: Optional API key (not used for OCI) - api_base: Optional API base URL - - Returns: - Updated headers dict - - Raises: - Exception: If required parameters are missing or invalid - """ - oci_signer = optional_params.get("oci_signer") - oci_region = optional_params.get("oci_region", "us-ashburn-1") - - # Determine api_base - api_base = ( - api_base - or litellm.api_base - or f"https://inference.generativeai.{oci_region}.oci.oraclecloud.com" - ) - - if not api_base: - raise Exception( - "Either `api_base` must be provided or `litellm.api_base` must be set. " - "Alternatively, you can set the `oci_region` optional parameter to use the default OCI region." - ) - - # Validate credentials only if signer is not provided - if oci_signer is None: - oci_user = optional_params.get("oci_user") - oci_fingerprint = optional_params.get("oci_fingerprint") - oci_tenancy = optional_params.get("oci_tenancy") - oci_key = optional_params.get("oci_key") - oci_key_file = optional_params.get("oci_key_file") - oci_compartment_id = optional_params.get("oci_compartment_id") - - if ( - not oci_user - or not oci_fingerprint - or not oci_tenancy - or not (oci_key or oci_key_file) - or not oci_compartment_id - ): - raise Exception( - "Missing required parameters: oci_user, oci_fingerprint, oci_tenancy, oci_compartment_id " - "and at least one of oci_key or oci_key_file. " - "Alternatively, provide an oci_signer object from the OCI SDK." - ) - - # Common header setup - headers.update( - { - "content-type": "application/json", - "user-agent": f"litellm/{version}", - } - ) - if not messages: - raise Exception( - "kwarg `messages` must be an array of messages that follow the openai chat standard" + raise OCIError( + status_code=400, + message="kwarg `messages` must be an array of messages that follow the openai chat standard", ) - - return headers + if optional_params.get("oci_signer") is None: + creds = resolve_oci_credentials(optional_params) + missing = [ + k + for k in ( + "oci_user", + "oci_fingerprint", + "oci_tenancy", + "oci_compartment_id", + ) + if not creds.get(k) + ] + if missing or not (creds.get("oci_key") or creds.get("oci_key_file")): + raise OCIError( + status_code=401, + message=( + "Missing required parameters: oci_user, oci_fingerprint, oci_tenancy, " + "oci_compartment_id and at least one of oci_key or oci_key_file. " + "These can be supplied via optional_params or via OCI_USER, OCI_FINGERPRINT, " + "OCI_TENANCY, OCI_COMPARTMENT_ID, OCI_KEY_FILE environment variables. " + "Alternatively, provide an oci_signer object from the OCI SDK." + ), + ) + return validate_oci_environment(headers, optional_params, api_key) def get_complete_url( self, @@ -661,43 +407,63 @@ class OCIChatConfig(BaseConfig): litellm_params: dict, stream: Optional[bool] = None, ) -> str: - oci_region = optional_params.get("oci_region", "us-ashburn-1") - return f"https://inference.generativeai.{oci_region}.oci.oraclecloud.com/20231130/actions/chat" + base = get_oci_base_url(optional_params, api_base or litellm.api_base) + return f"{base}/{OCI_API_VERSION}/actions/chat" - def _get_optional_params(self, vendor: OCIVendors, optional_params: dict) -> Dict: - selected_params = {} - if vendor == OCIVendors.COHERE: - open_ai_to_oci_param_map = self.openai_to_oci_cohere_param_map - # remove tool_choice from the map - open_ai_to_oci_param_map.pop("tool_choice") - # Add default values for Cohere API - selected_params = { - "maxTokens": 600, - "temperature": 1, - "topK": 0, - "topP": 0.75, - "frequencyPenalty": 0, - } - else: - open_ai_to_oci_param_map = self.openai_to_oci_generic_param_map + def _get_optional_params( + self, vendor: OCIVendors, optional_params: dict, model: str = "" + ) -> Dict: + param_map = ( + self.openai_to_oci_cohere_param_map + if vendor == OCIVendors.COHERE + else self.openai_to_oci_generic_param_map + ) + selected_params: Dict = {} - # Map OpenAI params to OCI params - for openai_key, oci_key in open_ai_to_oci_param_map.items(): - if oci_key and openai_key in optional_params: - selected_params[oci_key] = optional_params[openai_key] # type: ignore[index] + # OpenAI reasoning models on OCI (e.g. GPT-5 family) reject "maxTokens" + # and require "maxCompletionTokens" per OCI's /20231130/Chat schema. + # Driven by the supports_reasoning flag in the model catalog. Cohere's + # endpoint uses "maxTokens" regardless, so the override is GENERIC-only. + max_tokens_key = ( + "maxCompletionTokens" + if vendor != OCIVendors.COHERE + and model + and _model_uses_max_completion_tokens(model) + else "maxTokens" + ) - # Also check for already-mapped OCI params (for backward compatibility) - for oci_value in open_ai_to_oci_param_map.values(): - if ( - oci_value - and oci_value in optional_params - and oci_value not in selected_params - ): - selected_params[oci_value] = optional_params[oci_value] # type: ignore[index] + # ``map_openai_params`` runs before ``transform_request`` (and thus + # before this helper), so by the time we see ``optional_params`` the + # OpenAI keys have already been translated to their OCI aliases. + # We still accept the original OpenAI key as a fallback for callers + # that build ``optional_params`` directly, with OpenAI keys winning + # over OCI aliases when both happen to be present. The first OpenAI + # key reaching a given OCI target wins, so ``max_tokens`` / + # ``max_completion_tokens`` (both → ``maxTokens``) don't double-write. + for openai_key, oci_alias in param_map.items(): + if not oci_alias: + continue + target = max_tokens_key if oci_alias == "maxTokens" else oci_alias + if target in selected_params: + continue + if openai_key in optional_params: + selected_params[target] = optional_params[openai_key] # type: ignore[index] + elif oci_alias in optional_params: + selected_params[target] = optional_params[oci_alias] # type: ignore[index] + + # OCI expects uppercase reasoning levels (LOW/MEDIUM/HIGH/NONE); OpenAI + # clients send lowercase. OpenAI's "disable" maps to OCI's "NONE". + if "reasoningEffort" in selected_params: + effort = selected_params["reasoningEffort"] + if isinstance(effort, str): + normalized = effort.upper() + if normalized == "DISABLE": + normalized = "NONE" + selected_params["reasoningEffort"] = normalized if "tools" in selected_params: if vendor == OCIVendors.COHERE: - selected_params["tools"] = self.adapt_tool_definitions_to_cohere_standard( # type: ignore[assignment] + selected_params["tools"] = adapt_tool_definitions_to_cohere_standard( # type: ignore[assignment] selected_params["tools"] # type: ignore[arg-type] ) else: @@ -705,146 +471,15 @@ class OCIChatConfig(BaseConfig): selected_params["tools"], vendor # type: ignore[arg-type] ) - # Transform response_format type to OCI uppercase format - if "responseFormat" in selected_params: - rf = selected_params["responseFormat"] - if isinstance(rf, dict) and "type" in rf: - rf_payload = dict(rf) - selected_params["responseFormat"] = rf_payload + # Normalise tool_choice to OCI's flat uppercase dict form + # ({"type": "AUTO"|"NONE"|"REQUIRED"} or {"type": "FUNCTION", "name": ""}). + # OCI rejects both the OpenAI string and the nested OpenAI dict shape. + _normalize_tool_choice(selected_params) - response_type = rf_payload["type"] - schema_payload: Optional[Any] = None - - if "json_schema" in rf_payload: - raw_schema_payload = rf_payload.pop("json_schema") - if isinstance(raw_schema_payload, dict): - schema_payload = dict(raw_schema_payload) - else: - schema_payload = raw_schema_payload - - if schema_payload is not None: - rf_payload["jsonSchema"] = schema_payload - - if vendor == OCIVendors.COHERE: - # Cohere expects lower-case type values - rf_payload["type"] = response_type - else: - format_type = response_type.upper() - if format_type == "JSON": - format_type = "JSON_OBJECT" - rf_payload["type"] = format_type + _normalize_response_format(selected_params, vendor) return selected_params - def adapt_messages_to_cohere_standard( - self, messages: List[AllMessageValues] - ) -> List[CohereMessage]: - """Build chat history for Cohere models.""" - chat_history = [] - for msg in messages[:-1]: # All messages except the last one - role = msg.get("role") - content = msg.get("content") - - if isinstance(content, list): - # Extract text from content array - text_content = "" - for content_item in content: - if ( - isinstance(content_item, dict) - and content_item.get("type") == "text" - ): - text_content += content_item.get("text", "") - content = text_content - - # Ensure content is a string - if not isinstance(content, str): - content = str(content) if content is not None else "" - - # Handle tool calls - tool_calls: Optional[List[CohereToolCall]] = None - if role == "assistant" and "tool_calls" in msg and msg.get("tool_calls"): # type: ignore[union-attr,typeddict-item] - tool_calls = [] - for tool_call in msg["tool_calls"]: # type: ignore[union-attr,typeddict-item] - # Parse arguments if they're a JSON string - raw_arguments: Any = tool_call.get("function", {}).get( - "arguments", {} - ) - if isinstance(raw_arguments, str): - try: - arguments: Dict[str, Any] = json.loads(raw_arguments) - except json.JSONDecodeError: - arguments = {} - else: - arguments = raw_arguments - - tool_calls.append( - CohereToolCall( - name=str(tool_call.get("function", {}).get("name", "")), - parameters=arguments, - ) - ) - - if role == "user": - chat_history.append(CohereMessage(role="USER", message=content)) - elif role == "assistant": - chat_history.append( - CohereMessage(role="CHATBOT", message=content, toolCalls=tool_calls) - ) - elif role == "tool": - # Tool messages need special handling - chat_history.append( - CohereMessage( - role="TOOL", - message=content, - toolCalls=None, # Tool messages don't have tool calls - ) - ) - - return chat_history - - def adapt_tool_definitions_to_cohere_standard( - self, tools: List[Dict[str, Any]] - ) -> List[CohereTool]: - """Adapt tool definitions to Cohere format.""" - cohere_tools = [] - for tool in tools: - function_def = tool.get("function", {}) - parameters = function_def.get("parameters", {}).get("properties", {}) - required = function_def.get("parameters", {}).get("required", []) - - parameter_definitions = {} - for param_name, param_schema in parameters.items(): - parameter_definitions[param_name] = CohereParameterDefinition( - description=param_schema.get("description", ""), - type=param_schema.get("type", "string"), - isRequired=param_name in required, - ) - - cohere_tools.append( - CohereTool( - name=function_def.get("name", ""), - description=function_def.get("description", ""), - parameterDefinitions=parameter_definitions, - ) - ) - - return cohere_tools - - def _extract_text_content(self, content: Any) -> str: - """Extract text content from message content.""" - if isinstance(content, str): - return content - elif isinstance(content, list): - text_content = "" - for content_item in content: - if ( - isinstance(content_item, dict) - and content_item.get("type") == "text" - ): - text_content += content_item.get("text", "") - return text_content - return str(content) - def transform_request( self, model: str, @@ -853,186 +488,78 @@ class OCIChatConfig(BaseConfig): litellm_params: dict, headers: dict, ) -> dict: - oci_compartment_id = optional_params.get("oci_compartment_id", None) + creds = resolve_oci_credentials(optional_params) + oci_compartment_id = creds["oci_compartment_id"] if not oci_compartment_id: - raise Exception("kwarg `oci_compartment_id` is required for OCI requests") + raise OCIError( + status_code=400, + message=( + "oci_compartment_id is required for OCI chat requests. " + "Pass it as optional_params or set the OCI_COMPARTMENT_ID env var." + ), + ) vendor = get_vendor_from_model(model) oci_serving_mode = optional_params.get("oci_serving_mode", "ON_DEMAND") if oci_serving_mode not in ["ON_DEMAND", "DEDICATED"]: - raise Exception( - "kwarg `oci_serving_mode` must be either 'ON_DEMAND' or 'DEDICATED'" + raise OCIError( + status_code=400, + message="kwarg `oci_serving_mode` must be either 'ON_DEMAND' or 'DEDICATED'", ) if oci_serving_mode == "DEDICATED": - oci_endpoint_id = optional_params.get("oci_endpoint_id", model) - servingMode = OCIServingMode( + serving_mode = OCIServingMode( servingType="DEDICATED", - endpointId=oci_endpoint_id, + endpointId=optional_params.get("oci_endpoint_id", model), ) else: - servingMode = OCIServingMode( - servingType="ON_DEMAND", - modelId=model, - ) + serving_mode = OCIServingMode(servingType="ON_DEMAND", modelId=model) - # Build request based on vendor type if vendor == OCIVendors.COHERE: - # For Cohere, we need to use the specific Cohere format - # Extract the last user message as the main message - user_messages = [msg for msg in messages if msg.get("role") == "user"] + user_messages = [m for m in messages if m.get("role") == "user"] if not user_messages: - raise Exception("No user message found for Cohere model") + raise OCIError( + status_code=400, + message="No user message found — Cohere models require at least one user message", + ) - # Extract system messages into preambleOverride - system_messages = [msg for msg in messages if msg.get("role") == "system"] + system_messages = [m for m in messages if m.get("role") == "system"] preamble_override = None if system_messages: preamble = "\n".join( - self._extract_text_content(msg["content"]) - for msg in system_messages + _extract_text_content(m["content"]) for m in system_messages ) if preamble: preamble_override = preamble - # Create Cohere-specific chat request - optional_cohere_params = self._get_optional_params( - OCIVendors.COHERE, optional_params - ) chat_request = CohereChatRequest( apiFormat="COHERE", - message=self._extract_text_content(user_messages[-1]["content"]), - chatHistory=self.adapt_messages_to_cohere_standard(messages), + message=_extract_text_content(user_messages[-1]["content"]), + chatHistory=adapt_messages_to_cohere_standard( + [m for m in messages if m.get("role") != "system"] + ), preambleOverride=preamble_override, - **optional_cohere_params, + **self._get_optional_params(OCIVendors.COHERE, optional_params, model), ) - data = OCICompletionPayload( compartmentId=oci_compartment_id, - servingMode=servingMode, + servingMode=serving_mode, chatRequest=chat_request, ) else: - # Use generic format for other vendors data = OCICompletionPayload( compartmentId=oci_compartment_id, - servingMode=servingMode, + servingMode=serving_mode, chatRequest=OCIChatRequestPayload( apiFormat=vendor.value, messages=adapt_messages_to_generic_oci_standard(messages), - **self._get_optional_params(vendor, optional_params), + **self._get_optional_params(vendor, optional_params, model), ), ) return data.model_dump(exclude_none=True) - def _handle_cohere_response( - self, json_response: dict, model: str, model_response: ModelResponse - ) -> ModelResponse: - """Handle Cohere-specific response format.""" - cohere_response = CohereChatResult(**json_response) - # Cohere response format (uses camelCase) - model_id = model - - # Set basic response info - model_response.model = model_id - model_response.created = int(datetime.datetime.now().timestamp()) - - # Extract the response text - response_text = cohere_response.chatResponse.text - oci_finish_reason = cohere_response.chatResponse.finishReason - - # Map finish reason - if oci_finish_reason == "COMPLETE": - finish_reason = "stop" - elif oci_finish_reason == "MAX_TOKENS": - finish_reason = "length" - else: - finish_reason = "stop" - - # Handle tool calls - tool_calls: Optional[List[Dict[str, Any]]] = None - if cohere_response.chatResponse.toolCalls: - tool_calls = [] - for tool_call in cohere_response.chatResponse.toolCalls: - tool_calls.append( - { - "id": f"call_{len(tool_calls)}", # Generate a simple ID - "type": "function", - "function": { - "name": tool_call.name, - "arguments": json.dumps(tool_call.parameters), - }, - } - ) - - # Create choice - from litellm.types.utils import Choices - - choice = Choices( - index=0, - message={ - "role": "assistant", - "content": response_text, - "tool_calls": tool_calls, - }, - finish_reason=finish_reason, - ) - model_response.choices = [choice] - - # Extract usage info - usage_info = cohere_response.chatResponse.usage - from litellm.types.utils import Usage - - model_response.usage = Usage( # type: ignore[attr-defined] - prompt_tokens=usage_info.promptTokens, # type: ignore[union-attr] - completion_tokens=usage_info.completionTokens, # type: ignore[union-attr] - total_tokens=usage_info.totalTokens, # type: ignore[union-attr] - ) - - return model_response - - def _handle_generic_response( - self, - json: dict, - model: str, - model_response: ModelResponse, - raw_response: httpx.Response, - ) -> ModelResponse: - """Handle generic OCI response format.""" - try: - completion_response = OCICompletionResponse(**json) - except TypeError as e: - raise OCIError( - message=f"Response cannot be casted to OCICompletionResponse: {str(e)}", - status_code=raw_response.status_code, - ) - - iso_str = completion_response.chatResponse.timeCreated - dt = datetime.datetime.fromisoformat(iso_str.replace("Z", "+00:00")) - model_response.created = int(dt.timestamp()) - - model_response.model = completion_response.modelId - - message = model_response.choices[0].message # type: ignore - response_message = completion_response.chatResponse.choices[0].message - if response_message.content and response_message.content[0].type == "TEXT": - message.content = response_message.content[0].text - if response_message.toolCalls: - message.tool_calls = adapt_tools_to_openai_standard( - response_message.toolCalls - ) - - usage = Usage( - prompt_tokens=completion_response.chatResponse.usage.promptTokens, - completion_tokens=completion_response.chatResponse.usage.completionTokens, - total_tokens=completion_response.chatResponse.usage.totalTokens, - ) - model_response.usage = usage # type: ignore - - return model_response - def transform_response( self, model: str, @@ -1047,34 +574,31 @@ class OCIChatConfig(BaseConfig): api_key: Optional[str] = None, json_mode: Optional[bool] = None, ) -> ModelResponse: - json = raw_response.json() # noqa: F811 + response_json = raw_response.json() - error = json.get("error") - - if error is not None: - raise OCIError( - message=str(json["error"]), - status_code=raw_response.status_code, - ) - - if not isinstance(json, dict): + if not isinstance(response_json, dict): raise OCIError( message="Invalid response format from OCI", status_code=raw_response.status_code, ) - vendor = get_vendor_from_model(model) + if response_json.get("error") is not None: + raise OCIError( + message=str(response_json["error"]), + status_code=raw_response.status_code, + ) - # Handle response based on vendor type + vendor = get_vendor_from_model(model) if vendor == OCIVendors.COHERE: - model_response = self._handle_cohere_response(json, model, model_response) + model_response = handle_cohere_response( + response_json, model, model_response, raw_response + ) else: - model_response = self._handle_generic_response( - json, model, model_response, raw_response + model_response = handle_generic_response( + response_json, model, model_response, raw_response ) model_response._hidden_params["additional_headers"] = raw_response.headers - return model_response @track_llm_api_timing() @@ -1091,8 +615,6 @@ class OCIChatConfig(BaseConfig): json_mode: Optional[bool] = None, signed_json_body: Optional[bytes] = None, ) -> "OCIStreamWrapper": - if "stream" in data: - del data["stream"] if client is None or isinstance(client, AsyncHTTPHandler): client = _get_httpx_client(params={}) @@ -1100,7 +622,11 @@ class OCIChatConfig(BaseConfig): response = client.post( api_base, headers=headers, - data=json.dumps(data), + data=( + signed_json_body + if signed_json_body is not None + else json.dumps(data) + ), stream=True, logging_obj=logging_obj, timeout=STREAMING_TIMEOUT, @@ -1111,15 +637,12 @@ class OCIChatConfig(BaseConfig): if response.status_code != 200: raise OCIError(status_code=response.status_code, message=response.text) - completion_stream = response.iter_text() - - streaming_response = OCIStreamWrapper( - completion_stream=completion_stream, + return OCIStreamWrapper( + completion_stream=_iter_sse_events(response.iter_text()), model=model, custom_llm_provider=custom_llm_provider, logging_obj=logging_obj, ) - return streaming_response @track_llm_api_timing() async def get_async_custom_stream_wrapper( @@ -1135,17 +658,18 @@ class OCIChatConfig(BaseConfig): json_mode: Optional[bool] = None, signed_json_body: Optional[bytes] = None, ) -> "OCIStreamWrapper": - if "stream" in data: - del data["stream"] - if client is None or isinstance(client, HTTPHandler): - client = get_async_httpx_client(llm_provider=LlmProviders.BYTEZ, params={}) + client = get_async_httpx_client(llm_provider=LlmProviders.OCI, params={}) try: response = await client.post( api_base, headers=headers, - data=json.dumps(data), + data=( + signed_json_body + if signed_json_body is not None + else json.dumps(data) + ), stream=True, logging_obj=logging_obj, timeout=STREAMING_TIMEOUT, @@ -1156,22 +680,12 @@ class OCIChatConfig(BaseConfig): if response.status_code != 200: raise OCIError(status_code=response.status_code, message=response.text) - completion_stream = response.aiter_text() - - async def split_chunks(completion_stream: AsyncIterator[str]): - async for item in completion_stream: - for chunk in item.split("\n\n"): - if not chunk: - continue - yield chunk.strip() - - streaming_response = OCIStreamWrapper( - completion_stream=split_chunks(completion_stream), + return OCIStreamWrapper( + completion_stream=_aiter_sse_events(response.aiter_text()), model=model, custom_llm_provider=custom_llm_provider, logging_obj=logging_obj, ) - return streaming_response def get_error_class( self, error_message: str, status_code: int, headers: Union[dict, httpx.Headers] @@ -1179,332 +693,61 @@ class OCIChatConfig(BaseConfig): return OCIError(status_code=status_code, message=error_message) -open_ai_to_generic_oci_role_map: Dict[str, OCIRoles] = { - "system": "SYSTEM", - "user": "USER", - "assistant": "ASSISTANT", - "tool": "TOOL", -} - - -def adapt_messages_to_generic_oci_standard_content_message( - role: str, content: Union[str, list] -) -> OCIMessage: - new_content: List[OCIContentPartUnion] = [] - if isinstance(content, str): - return OCIMessage( - role=open_ai_to_generic_oci_role_map[role], - content=[OCITextContentPart(text=content)], - toolCalls=None, - toolCallId=None, - ) - - # content is a list of content items: - # [ - # {"type": "text", "text": "Hello"}, - # {"type": "image_url", "image_url": "https://example.com/image.png"} - # ] - for content_item in content: - if not isinstance(content_item, dict): - raise Exception("Each content item must be a dictionary") - - type = content_item.get("type") - if not isinstance(type, str): - raise Exception("Prop `type` is not a string") - - if type not in ["text", "image_url"]: - raise Exception(f"Prop `{type}` is not supported") - - if type == "text": - text = content_item.get("text") - if not isinstance(text, str): - raise Exception("Prop `text` is not a string") - new_content.append(OCITextContentPart(text=text)) - - elif type == "image_url": - image_url = content_item.get("image_url") - # Handle both OpenAI format (object with url) and string format - if isinstance(image_url, dict): - image_url = image_url.get("url") - if not isinstance(image_url, str): - raise Exception( - "Prop `image_url` must be a string or an object with a `url` property" - ) - new_content.append(OCIImageContentPart(imageUrl=OCIImageUrl(url=image_url))) - - return OCIMessage( - role=open_ai_to_generic_oci_role_map[role], - content=new_content, - toolCalls=None, - toolCallId=None, - ) - - -def adapt_messages_to_generic_oci_standard_tool_call( - role: str, tool_calls: list -) -> OCIMessage: - tool_calls_formated = [] - for tool_call in tool_calls: - if not isinstance(tool_call, dict): - raise Exception("Each tool call must be a dictionary") - - if tool_call.get("type") != "function": - raise Exception("OCI only supports function tools") - - tool_call_id = tool_call.get("id") - if not isinstance(tool_call_id, str): - raise Exception("Prop `id` is not a string") - - tool_function = tool_call.get("function") - if not isinstance(tool_function, dict): - raise Exception("Prop `function` is not a dictionary") - - function_name = tool_function.get("name") - if not isinstance(function_name, str): - raise Exception("Prop `name` is not a string") - - arguments = tool_call["function"].get("arguments", "{}") - if not isinstance(arguments, str): - raise Exception("Prop `arguments` is not a string") - - # tool_calls_formated.append(OCIToolCall( - # id=tool_call_id, - # type="FUNCTION", - # function=OCIFunction( - # name=function_name, - # arguments=arguments - # ) - # )) - - tool_calls_formated.append( - OCIToolCall( - id=tool_call_id, - type="FUNCTION", - name=function_name, - arguments=arguments, - ) - ) - - return OCIMessage( - role=open_ai_to_generic_oci_role_map[role], - content=None, - toolCalls=tool_calls_formated, - toolCallId=None, - ) - - -def adapt_messages_to_generic_oci_standard_tool_response( - role: str, tool_call_id: str, content: str -) -> OCIMessage: - return OCIMessage( - role=open_ai_to_generic_oci_role_map[role], - content=[OCITextContentPart(text=content)], - toolCalls=None, - toolCallId=tool_call_id, - ) - - -def adapt_messages_to_generic_oci_standard( - messages: List[AllMessageValues], -) -> List[OCIMessage]: - new_messages = [] - for message in messages: - role = message["role"] - content = message.get("content") - tool_calls = message.get("tool_calls") - tool_call_id = message.get("tool_call_id") - - if role == "assistant" and tool_calls is not None: - if not isinstance(tool_calls, list): - raise Exception("Prop `tool_calls` must be a list of tool calls") - new_messages.append( - adapt_messages_to_generic_oci_standard_tool_call(role, tool_calls) - ) - - elif role in ["system", "user", "assistant"] and content is not None: - if not isinstance(content, (str, list)): - raise Exception( - "Prop `content` must be a string or a list of content items" - ) - new_messages.append( - adapt_messages_to_generic_oci_standard_content_message(role, content) - ) - - elif role == "tool": - if not isinstance(tool_call_id, str): - raise Exception("Prop `tool_call_id` is required and must be a string") - if not isinstance(content, str): - raise Exception("Prop `content` is not a string") - new_messages.append( - adapt_messages_to_generic_oci_standard_tool_response( - role, tool_call_id, content - ) - ) - - return new_messages - - -def adapt_tool_definition_to_oci_standard(tools: List[Dict], vendor: OCIVendors): - new_tools = [] - for tool in tools: - if tool["type"] != "function": - raise Exception("OCI only supports function tools") - - tool_function = tool.get("function") - if not isinstance(tool_function, dict): - raise Exception("Prop `function` is not a dictionary") - - new_tool = OCIToolDefinition( - type="FUNCTION", - name=tool_function.get("name"), - description=tool_function.get("description", ""), - parameters=tool_function.get("parameters", {}), - ) - new_tools.append(new_tool) - - return new_tools - - -def adapt_tools_to_openai_standard( - tools: List[OCIToolCall], -) -> List[ChatCompletionMessageToolCall]: - new_tools = [] - for tool in tools: - new_tool = ChatCompletionMessageToolCall( - id=tool.id, - type="function", - function={ - "name": tool.name, - "arguments": tool.arguments, - }, - ) - new_tools.append(new_tool) - return new_tools - - class OCIStreamWrapper(CustomStreamWrapper): - """ - Custom stream wrapper for OCI responses. - This class is used to handle streaming responses from OCI's API. - """ + """Custom stream wrapper that dispatches OCI SSE chunks to the correct handler.""" - def __init__( - self, - **kwargs: Any, - ): + def __init__(self, **kwargs: Any): super().__init__(**kwargs) + # Tracks whether any prior Cohere chunk in this stream has emitted + # tool calls. The Cohere handler uses this to decide whether the + # terminal consolidation chunk's tool calls are duplicates (suppress) + # or the only copy of the tool calls (pass through). + self._cohere_tool_calls_emitted = False + # Analogous flag for text content. Lets the Cohere handler distinguish + # the common case (prior deltas already streamed the text, so the + # terminal chunk's text is a duplicate to suppress) from the degenerate + # single-event case (terminal chunk carries the only copy of the text). + self._cohere_text_emitted = False - def chunk_creator(self, chunk: Any): + def chunk_creator(self, chunk: Any) -> ModelResponseStream: if not isinstance(chunk, str): raise ValueError(f"Chunk is not a string: {chunk}") if not chunk.startswith("data:"): raise ValueError(f"Chunk does not start with 'data:': {chunk}") - dict_chunk = json.loads(chunk[5:]) # Remove 'data: ' prefix and parse JSON - - # Check if this is a Cohere stream chunk - if "apiFormat" in dict_chunk and dict_chunk.get("apiFormat") == "COHERE": - return self._handle_cohere_stream_chunk(dict_chunk) - else: - return self._handle_generic_stream_chunk(dict_chunk) - - def _handle_cohere_stream_chunk(self, dict_chunk: dict): - """Handle Cohere-specific streaming chunks.""" try: - typed_chunk = CohereStreamChunk(**dict_chunk) - except TypeError as e: - raise ValueError(f"Chunk cannot be casted to CohereStreamChunk: {str(e)}") + dict_chunk = json.loads(chunk[5:]) + except json.JSONDecodeError as e: + raise OCIError( + status_code=500, + message=f"Chunk cannot be parsed as JSON: {str(e)}", + ) - if typed_chunk.index is None: - typed_chunk.index = 0 + if dict_chunk.get("apiFormat") == "COHERE": + result = handle_cohere_stream_chunk( + dict_chunk, + prior_tool_calls_emitted=self._cohere_tool_calls_emitted, + prior_text_emitted=self._cohere_text_emitted, + ) + if not self._cohere_tool_calls_emitted: + for choice in result.choices: + if getattr(choice.delta, "tool_calls", None) is not None: + self._cohere_tool_calls_emitted = True + break + if not self._cohere_text_emitted: + for choice in result.choices: + if getattr(choice.delta, "content", None): + self._cohere_text_emitted = True + break + return result + return handle_generic_stream_chunk(dict_chunk) - # Extract text content - text = typed_chunk.text or "" - # Map finish reason to standard format - finish_reason = typed_chunk.finishReason - if finish_reason == "COMPLETE": - finish_reason = "stop" - elif finish_reason == "MAX_TOKENS": - finish_reason = "length" - elif finish_reason is None: - finish_reason = None - else: - finish_reason = "stop" - - # For Cohere, we don't have tool calls in the streaming format - tool_calls = None - - return ModelResponseStream( - choices=[ - StreamingChoices( - index=typed_chunk.index if typed_chunk.index else 0, - delta=Delta( - content=text, - tool_calls=tool_calls, - provider_specific_fields=None, - thinking_blocks=None, - reasoning_content=None, - ), - finish_reason=finish_reason, - ) - ] - ) - - def _handle_generic_stream_chunk(self, dict_chunk: dict): - """Handle generic OCI streaming chunks.""" - # Fix missing required fields in tool calls before Pydantic validation - # OCI streams tool calls progressively, so early chunks may be missing required fields - if dict_chunk.get("message") and dict_chunk["message"].get("toolCalls"): - for tool_call in dict_chunk["message"]["toolCalls"]: - if "arguments" not in tool_call: - tool_call["arguments"] = "" - if "id" not in tool_call: - tool_call["id"] = "" - if "name" not in tool_call: - tool_call["name"] = "" - - try: - typed_chunk = OCIStreamChunk(**dict_chunk) - except TypeError as e: - raise ValueError(f"Chunk cannot be casted to OCIStreamChunk: {str(e)}") - - if typed_chunk.index is None: - typed_chunk.index = 0 - - text = "" - if typed_chunk.message and typed_chunk.message.content: - for item in typed_chunk.message.content: - if isinstance(item, OCITextContentPart): - text += item.text - elif isinstance(item, OCIImageContentPart): - raise ValueError( - "OCI does not support image content in streaming responses" - ) - else: - raise ValueError( - f"Unsupported content type in OCI response: {item.type}" - ) - - tool_calls = None - if typed_chunk.message and typed_chunk.message.toolCalls: - tool_calls = adapt_tools_to_openai_standard(typed_chunk.message.toolCalls) - - return ModelResponseStream( - choices=[ - StreamingChoices( - index=typed_chunk.index if typed_chunk.index else 0, - delta=Delta( - content=text, - tool_calls=( - [tool.model_dump() for tool in tool_calls] - if tool_calls - else None - ), - provider_specific_fields=None, # OCI does not have provider specific fields in the response - thinking_blocks=None, # OCI does not have thinking blocks in the response - reasoning_content=None, # OCI does not have reasoning content in the response - ), - finish_reason=typed_chunk.finishReason, - ) - ] - ) +__all__ = [ + "OCIChatConfig", + "OCIStreamWrapper", + "OCIRequestWrapper", + "OCI_API_VERSION", + "STREAMING_TIMEOUT", + "get_vendor_from_model", + "version", +] diff --git a/litellm/llms/oci/common_utils.py b/litellm/llms/oci/common_utils.py index 661a6c89e4b..8785b1548a5 100644 --- a/litellm/llms/oci/common_utils.py +++ b/litellm/llms/oci/common_utils.py @@ -1,9 +1,42 @@ -from typing import Optional +import base64 +import hashlib +import json +import os +import re +from dataclasses import dataclass +from email.utils import formatdate +from typing import Any, Dict, Optional, Protocol, Tuple +from urllib.parse import urlparse import httpx from litellm.llms.base_llm.chat.transformation import BaseLLMException +try: + from cryptography.hazmat.primitives import hashes, serialization + from cryptography.hazmat.primitives.asymmetric import padding, rsa + + _CRYPTOGRAPHY_AVAILABLE = True +except ImportError: + _CRYPTOGRAPHY_AVAILABLE = False + +try: + from litellm._version import version as _litellm_version +except ImportError: + _litellm_version = "0.0.0" + + +# OCI GenAI REST API version — stable since service launch, unlikely to change +OCI_API_VERSION = "20231130" + + +def _require_cryptography() -> None: + if not _CRYPTOGRAPHY_AVAILABLE: + raise ImportError( + "cryptography package is required for OCI authentication. " + "Please install it with: pip install cryptography" + ) + class OCIError(BaseLLMException): def __init__( @@ -17,3 +50,520 @@ class OCIError(BaseLLMException): message=message, headers=headers, ) + + +# --------------------------------------------------------------------------- +# OCI signing protocol and helpers +# --------------------------------------------------------------------------- + + +class OCISignerProtocol(Protocol): + """ + Protocol for OCI request signers (e.g., oci.signer.Signer). + + Compatible with the OCI Python SDK's Signer class. + See: https://docs.oracle.com/en-us/iaas/tools/python/latest/api/signing.html + """ + + def do_request_sign( + self, request: Any, *, enforce_content_headers: bool = False + ) -> None: + pass + + +@dataclass +class OCIRequestWrapper: + """ + Wrapper for HTTP requests compatible with OCI signer interface. + + Wraps request data in the format expected by OCI SDK signers, which require + objects with method, url, headers, body, and path_url attributes. + """ + + method: str + url: str + headers: dict + body: bytes + + @property + def path_url(self) -> str: + """Returns the path + query string for OCI signing.""" + parsed = urlparse(self.url) + return parsed.path + ("?" + parsed.query if parsed.query else "") + + +def sha256_base64(data: bytes) -> str: + # SHA-256 is used here to compute the x-content-sha256 header required by the + # OCI HTTP signing specification (RSA-SHA256 request signing), not for password + # or secret hashing. This is the correct and mandated algorithm for this purpose. + # See: https://docs.oracle.com/en-us/iaas/Content/API/Concepts/signingrequests.htm + # + # ``usedforsecurity=False`` declares non-security intent to static analyzers + # (CodeQL ``py/weak-sensitive-data-hashing``) — without it the request body + # gets flagged as "password-like data" via taint tracking. + digest = hashlib.sha256(data, usedforsecurity=False).digest() # noqa: S324 + return base64.b64encode(digest).decode() + + +def build_signature_string( + method: str, path: str, headers: dict, signed_headers: list +) -> str: + lines = [] + for header in signed_headers: + if header == "(request-target)": + value = f"{method.lower()} {path}" + else: + value = headers[header] + lines.append(f"{header}: {value}") + return "\n".join(lines) + + +def load_private_key_from_str(key_str: str) -> Any: + _require_cryptography() + key = serialization.load_pem_private_key( # type: ignore[union-attr] + key_str.encode("utf-8"), + password=None, + ) + if not isinstance(key, rsa.RSAPrivateKey): # type: ignore[union-attr] + raise TypeError( + "The provided private key is not an RSA key, which is required for OCI signing." + ) + return key + + +def load_private_key_from_file(file_path: str) -> Any: + """Loads a private key from a file path.""" + try: + with open(file_path, "r", encoding="utf-8") as f: + key_str = f.read().strip() + except FileNotFoundError: + raise FileNotFoundError(f"Private key file not found: {file_path}") + except OSError as e: + raise OSError(f"Failed to read private key file '{file_path}': {e}") from e + + if not key_str: + raise ValueError(f"Private key file is empty: {file_path}") + + return load_private_key_from_str(key_str) + + +# --------------------------------------------------------------------------- +# Env-var credential resolution +# --------------------------------------------------------------------------- + +_OCI_REGION_ENV = "OCI_REGION" +_OCI_USER_ENV = "OCI_USER" +_OCI_FINGERPRINT_ENV = "OCI_FINGERPRINT" +_OCI_TENANCY_ENV = "OCI_TENANCY" +_OCI_KEY_FILE_ENV = "OCI_KEY_FILE" +_OCI_KEY_ENV = "OCI_KEY" +_OCI_COMPARTMENT_ID_ENV = "OCI_COMPARTMENT_ID" + + +def resolve_oci_credentials(optional_params: dict) -> dict: + """ + Merge OCI credentials from optional_params (explicit, always wins) and + environment variables (fallback). + + Returns a dict with resolved values for: + oci_region, oci_user, oci_fingerprint, oci_tenancy, + oci_key, oci_key_file, oci_compartment_id + """ + return { + "oci_region": optional_params.get("oci_region") + or os.environ.get(_OCI_REGION_ENV) + or "us-ashburn-1", + "oci_user": optional_params.get("oci_user") or os.environ.get(_OCI_USER_ENV), + "oci_fingerprint": optional_params.get("oci_fingerprint") + or os.environ.get(_OCI_FINGERPRINT_ENV), + "oci_tenancy": optional_params.get("oci_tenancy") + or os.environ.get(_OCI_TENANCY_ENV), + "oci_key": optional_params.get("oci_key") or os.environ.get(_OCI_KEY_ENV), + "oci_key_file": optional_params.get("oci_key_file") + or os.environ.get(_OCI_KEY_FILE_ENV), + "oci_compartment_id": optional_params.get("oci_compartment_id") + or os.environ.get(_OCI_COMPARTMENT_ID_ENV), + } + + +_OCI_REGION_RE = re.compile(r"^[a-z][a-z0-9-]{0,30}[a-z0-9]$") +_OCI_ACTION_PATH_RE = re.compile(rf"/{OCI_API_VERSION}/actions/[^/?#]+/?$") + + +def get_oci_base_url(optional_params: dict, api_base: Optional[str] = None) -> str: + """Return the OCI inference base URL, respecting any explicit api_base override. + + If ``api_base`` already ends with a fully-formed OCI action path + (``/{OCI_API_VERSION}/actions/``), that suffix is stripped so callers + can append their own action path without producing a doubled URL. + """ + if api_base: + return _OCI_ACTION_PATH_RE.sub("", api_base).rstrip("/") + creds = resolve_oci_credentials(optional_params) + region = creds["oci_region"] + if not isinstance(region, str) or not _OCI_REGION_RE.match(region): + raise OCIError( + status_code=400, + message=( + f"Invalid OCI region {region!r}: must match " + "^[a-z][a-z0-9-]{0,30}[a-z0-9]$ (e.g. 'us-ashburn-1')." + ), + ) + return f"https://inference.generativeai.{region}.oci.oraclecloud.com" + + +# --------------------------------------------------------------------------- +# Signing implementations (shared by chat, embed, and rerank configs) +# --------------------------------------------------------------------------- + + +def sign_with_oci_signer( + headers: dict, + optional_params: dict, + request_data: dict, + api_base: str, +) -> Tuple[dict, bytes]: + """Sign a request using an OCI SDK Signer object passed in optional_params.""" + oci_signer = optional_params.get("oci_signer") + body = json.dumps(request_data).encode("utf-8") + method = str(optional_params.get("method", "POST")).upper() + + if method not in {"POST", "GET", "PUT", "DELETE", "PATCH"}: + raise ValueError(f"Unsupported HTTP method: {method}") + + prepared_headers = {**headers} + prepared_headers.setdefault("content-type", "application/json") + prepared_headers.setdefault("content-length", str(len(body))) + + request_wrapper = OCIRequestWrapper( + method=method, url=api_base, headers=prepared_headers, body=body + ) + + if oci_signer is None: + raise ValueError("oci_signer cannot be None when calling sign_with_oci_signer") + + try: + oci_signer.do_request_sign(request_wrapper, enforce_content_headers=True) + except Exception as e: + raise OCIError( + status_code=500, + message=( + f"Failed to sign request with provided oci_signer: {str(e)}. " + "The signer must implement the OCI SDK Signer interface with a " + "do_request_sign(request, enforce_content_headers=True) method. " + "See: https://docs.oracle.com/en-us/iaas/tools/python/latest/api/signing.html" + ), + ) from e + + headers.update(request_wrapper.headers) + return headers, body + + +def sign_with_manual_credentials( + headers: dict, + optional_params: dict, + request_data: dict, + api_base: str, +) -> Tuple[dict, bytes]: + """Sign a request using manually provided OCI credentials (user/fingerprint/tenancy/key).""" + creds = resolve_oci_credentials(optional_params) + oci_user = creds["oci_user"] + oci_fingerprint = creds["oci_fingerprint"] + oci_tenancy = creds["oci_tenancy"] + oci_key = creds["oci_key"] + oci_key_file = creds["oci_key_file"] + + if ( + not oci_user + or not oci_fingerprint + or not oci_tenancy + or not (oci_key or oci_key_file) + ): + raise OCIError( + status_code=401, + message=( + "Missing required OCI credentials: oci_user, oci_fingerprint, oci_tenancy, " + "and at least one of oci_key or oci_key_file. " + "These can also be supplied via environment variables: " + f"{_OCI_USER_ENV}, {_OCI_FINGERPRINT_ENV}, {_OCI_TENANCY_ENV}, {_OCI_KEY_ENV} (or {_OCI_KEY_FILE_ENV}). " + "Alternatively, provide an oci_signer object from the OCI SDK." + ), + ) + + method = str(optional_params.get("method", "POST")).upper() + body = json.dumps(request_data).encode("utf-8") + parsed = urlparse(api_base) + path = parsed.path or "/" + host = parsed.netloc + + date = formatdate(usegmt=True) + content_type = headers.get("content-type", "application/json") + content_length = str(len(body)) + x_content_sha256 = sha256_base64(body) + + headers_to_sign: Dict[str, str] = { + "date": date, + "host": host, + "content-type": content_type, + "content-length": content_length, + "x-content-sha256": x_content_sha256, + } + + signed_header_names = [ + "date", + "(request-target)", + "host", + "content-length", + "content-type", + "x-content-sha256", + ] + signing_string = build_signature_string( + method, path, headers_to_sign, signed_header_names + ) + + _require_cryptography() + + # Resolve the private key — prefer inline PEM content over file path + oci_key_content: Optional[str] = None + if oci_key: + if not isinstance(oci_key, str): + raise OCIError( + status_code=400, + message=( + f"oci_key must be a string containing the PEM private key content. " + f"Got type: {type(oci_key).__name__}" + ), + ) + oci_key_content = oci_key.replace("\\n", "\n").replace("\r\n", "\n") + + private_key = ( + load_private_key_from_str(oci_key_content) + if oci_key_content + else load_private_key_from_file(oci_key_file) if oci_key_file else None + ) + + if private_key is None: + raise OCIError( + status_code=400, + message="Private key is required for OCI authentication. Provide either oci_key or oci_key_file.", + ) + + signature = private_key.sign( + signing_string.encode("utf-8"), + padding.PKCS1v15(), # type: ignore[union-attr] + hashes.SHA256(), # type: ignore[union-attr] + ) + signature_b64 = base64.b64encode(signature).decode() + + key_id = f"{oci_tenancy}/{oci_user}/{oci_fingerprint}" + authorization = ( + 'Signature version="1",' + f'keyId="{key_id}",' + 'algorithm="rsa-sha256",' + f'headers="{" ".join(signed_header_names)}",' + f'signature="{signature_b64}"' + ) + + headers.update( + { + "authorization": authorization, + "date": date, + "host": host, + "content-type": content_type, + "content-length": content_length, + "x-content-sha256": x_content_sha256, + } + ) + return headers, body + + +def sign_oci_request( + headers: dict, + optional_params: dict, + request_data: dict, + api_base: str, + api_key: Optional[str] = None, + model: Optional[str] = None, + stream: Optional[bool] = None, + fake_stream: Optional[bool] = None, +) -> Tuple[dict, bytes]: + """ + Route to the appropriate OCI signing method based on what credentials are present. + + If ``oci_signer`` is in optional_params, use the OCI SDK signer object. + Otherwise use manual RSA-SHA256 signing with explicit credentials (which can + also be supplied via OCI_* environment variables). + + Returns: + Tuple of (signed_headers, signed_body_bytes) + """ + if optional_params.get("oci_signer") is not None: + return sign_with_oci_signer(headers, optional_params, request_data, api_base) + return sign_with_manual_credentials( + headers, optional_params, request_data, api_base + ) + + +def validate_oci_environment( + headers: dict, + optional_params: dict, + api_key: Optional[str] = None, +) -> dict: + """ + Populate common OCI request headers (content-type, user-agent). + + Full credential validation is deferred to signing time so that credentials + supplied via environment variables are resolved at call time rather than + at construction time. + """ + headers.setdefault("content-type", "application/json") + headers.setdefault("user-agent", f"litellm/{_litellm_version}") + return headers + + +# --------------------------------------------------------------------------- +# JSON schema utilities for OCI tool definitions +# +# OCI Generative AI does not support JSON Schema extensions ($ref, $defs, +# anyOf). Pydantic v2 emits all three for models with Optional fields or +# nested schemas. The helpers below are ported from the official +# langchain-oracle reference implementation so that tool schemas are always +# valid before they reach the OCI endpoint. +# --------------------------------------------------------------------------- + +# Mapping from JSON Schema type names to Python type names, as expected by +# the OCI Cohere API's CohereParameterDefinition.type field. +OCI_JSON_TO_PYTHON_TYPES: Dict[str, str] = { + "string": "str", + "number": "float", + "boolean": "bool", + "integer": "int", + "array": "List", + "object": "Dict", + "any": "any", +} + + +def resolve_oci_schema_refs(schema: Dict[str, Any]) -> Dict[str, Any]: + """Inline all ``$ref``/``$defs`` references — OCI does not support JSON Schema ``$ref``.""" + defs = schema.get("$defs", {}) + resolving_stack: set = set() + + def _resolve(obj: Any) -> Any: + if isinstance(obj, dict): + if "$ref" in obj: + ref = obj["$ref"] + if ref.startswith("#/$defs/"): + key = ref.split("/")[-1] + if key in resolving_stack: + return {"type": "object"} # break cycles + resolving_stack.add(key) + try: + return _resolve(defs.get(key, obj)) + finally: + resolving_stack.discard(key) + return obj # external $ref — leave unchanged + return {k: _resolve(v) for k, v in obj.items()} + if isinstance(obj, list): + return [_resolve(item) for item in obj] + return obj + + resolved = _resolve(schema) + if isinstance(resolved, dict): + resolved.pop("$defs", None) + return resolved + + +def resolve_oci_schema_anyof(obj: Any) -> Any: + """Resolve Pydantic v2 ``Optional[T]`` → ``anyOf`` patterns. + + Pydantic v2 emits ``{"anyOf": [{"type": "T"}, {"type": "null"}]}`` for + ``Optional[T]``. OCI models don't understand ``anyOf``, so we pick the + first non-null branch and merge top-level metadata into it. + """ + if isinstance(obj, dict): + if "anyOf" in obj and "type" not in obj: + non_null = [ + t + for t in obj["anyOf"] + if not (isinstance(t, dict) and t.get("type") == "null") + ] + if non_null: + resolved = {**obj, **non_null[0]} + resolved.pop("anyOf", None) + return resolve_oci_schema_anyof(resolved) + return {k: resolve_oci_schema_anyof(v) for k, v in obj.items()} + if isinstance(obj, list): + return [resolve_oci_schema_anyof(item) for item in obj] + return obj + + +def sanitize_oci_schema(schema: Any) -> Any: + """Recursively remove OCI-incompatible fields from a JSON schema. + + Strips ``title`` keys, removes ``None``-valued ``default`` entries, + normalises ``type: [T, "null"]`` list types, and ensures arrays carry an + ``items`` definition. + """ + if isinstance(schema, list): + return [sanitize_oci_schema(item) for item in schema] + if not isinstance(schema, dict): + return schema + + sanitized: Dict[str, Any] = {} + for key, value in schema.items(): + if key == "title": + continue + if key == "default" and value is None: + continue + if key == "type": + if value == "any": + sanitized[key] = "object" + continue + if isinstance(value, list): + non_null = [t for t in value if t != "null"] + sanitized[key] = non_null[0] if non_null else "string" + continue + sanitized[key] = sanitize_oci_schema(value) + + if sanitized.get("type") == "array" and "items" not in sanitized: + sanitized["items"] = {"type": "object"} + + required = sanitized.get("required") + properties = sanitized.get("properties") + if "required" in sanitized: + if isinstance(required, list) and isinstance(properties, dict): + sanitized["required"] = [ + f for f in required if isinstance(f, str) and f in properties + ] + elif not isinstance(required, list): + sanitized["required"] = [] + + return sanitized + + +def enrich_cohere_param_description( + description: str, param_schema: Dict[str, Any] +) -> str: + """Embed schema constraints into a Cohere parameter description. + + ``CohereParameterDefinition`` only has ``type``, ``description``, and + ``isRequired``. Rich constraints (``enum``, ``format``, ``minimum``, + ``maximum``, ``pattern``) are appended to the description string so the + model can still see and respect them. + """ + parts = [description] if description else [] + if "enum" in param_schema: + parts.append(f"Allowed values: {param_schema['enum']}") + if "format" in param_schema: + parts.append(f"Format: {param_schema['format']}") + if "minimum" in param_schema or "maximum" in param_schema: + range_parts = [] + if "minimum" in param_schema: + range_parts.append(f"min={param_schema['minimum']}") + if "maximum" in param_schema: + range_parts.append(f"max={param_schema['maximum']}") + parts.append(f"Range: {', '.join(range_parts)}") + if "pattern" in param_schema: + parts.append(f"Pattern: {param_schema['pattern']}") + return ". ".join(parts) if parts else "" diff --git a/litellm/llms/oci/embed/transformation.py b/litellm/llms/oci/embed/transformation.py index 1dcd8c5213c..6cfa85b4bc4 100644 --- a/litellm/llms/oci/embed/transformation.py +++ b/litellm/llms/oci/embed/transformation.py @@ -1,8 +1,14 @@ """ -OCI Generative AI Embedding Configuration +OCI Generative AI — Embedding transformation. -Supports embedding models available on Oracle Cloud Infrastructure Generative AI service. -Uses the same authentication mechanisms as OCI chat (manual signing or OCI SDK Signer). +Endpoint: POST /20231130/actions/embedText +Supported models: cohere.embed-english-v3.0, cohere.embed-multilingual-v3.0, +cohere.embed-v4.0, and all other Cohere embed variants available on OCI +(including dedicated endpoints). + +Authentication follows the same RSA-SHA256 / OCI SDK signer pattern as chat. +The base handler (base_llm_http_handler.embedding) calls sign_request after +building the body, so signing happens automatically. Supported models: - cohere.embed-english-v3.0 @@ -10,25 +16,45 @@ Supported models: - cohere.embed-multilingual-v3.0 - cohere.embed-multilingual-light-v3.0 - cohere.embed-english-image-v3.0 -- cohere.embed-english-light-image-v3.0 -- cohere.embed-multilingual-light-image-v3.0 +- cohere.embed-multilingual-image-v3.0 - cohere.embed-v4.0 Reference: https://docs.oracle.com/en-us/iaas/api/#/en/generative-ai-inference/latest/EmbedTextResult/EmbedText """ -from typing import Any, Dict, List, Optional, Union +from typing import TYPE_CHECKING, Any, List, Optional, Tuple, Union import httpx -from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj +import litellm from litellm.llms.base_llm.chat.transformation import BaseLLMException from litellm.llms.base_llm.embedding.transformation import BaseEmbeddingConfig -from litellm.llms.oci.chat.transformation import OCIChatConfig -from litellm.llms.oci.common_utils import OCIError +from litellm.llms.oci.common_utils import ( + OCI_API_VERSION, + OCIError, + get_oci_base_url, + resolve_oci_credentials, + sign_oci_request, + validate_oci_environment, +) +from litellm.types.llms.oci import ( + OCIEmbedRequest, + OCIEmbedResponse, + OCIServingMode, +) from litellm.types.llms.openai import AllEmbeddingInputValues, AllMessageValues from litellm.types.utils import EmbeddingResponse, Usage +if TYPE_CHECKING: + from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj + + LiteLLMLoggingObj = _LiteLLMLoggingObj +else: + LiteLLMLoggingObj = Any + +# OCI sends up to 96 texts per embedText request (Cohere limit). +OCI_EMBED_BATCH_LIMIT = 96 + # Input type mapping from OpenAI conventions to OCI/Cohere conventions _INPUT_TYPE_MAP = { "search_document": "SEARCH_DOCUMENT", @@ -38,65 +64,43 @@ _INPUT_TYPE_MAP = { } -class OCIEmbeddingConfig(BaseEmbeddingConfig): +class OCIEmbedConfig(BaseEmbeddingConfig): """ - Configuration for OCI Generative AI Embedding API. + Transformation config for OCI Generative AI embeddings. - The OCI embedding endpoint uses the Cohere embed models hosted on OCI. - Authentication is handled via OCI request signing (manual credentials or OCI SDK Signer). + Supports both text and (on cohere.embed-v4.0) multimodal inputs. - Usage: - ```python - import litellm + Authentication — same two modes as chat: + - **OCI SDK signer**: pass ``oci_signer`` in optional_params. + - **Manual RSA-SHA256**: pass ``oci_user``, ``oci_fingerprint``, ``oci_tenancy``, + and ``oci_key`` or ``oci_key_file``, or set the corresponding ``OCI_*`` env vars. - response = litellm.embedding( - model="oci/cohere.embed-english-v3.0", - input=["Hello world", "Goodbye world"], - oci_compartment_id="ocid1.compartment.oc1..xxx", - oci_region="us-ashburn-1", - oci_user="ocid1.user.oc1..xxx", - oci_fingerprint="xx:xx:xx:xx", - oci_tenancy="ocid1.tenancy.oc1..xxx", - oci_key_file="~/.oci/key.pem", - ) - ``` + Required call-time params (via optional_params or env vars): + - ``oci_compartment_id`` / ``OCI_COMPARTMENT_ID`` + - ``oci_region`` / ``OCI_REGION`` (default: ``us-ashburn-1``) + + Optional call-time params: + - ``oci_serving_mode``: ``"ON_DEMAND"`` (default) or ``"DEDICATED"`` + - ``oci_endpoint_id``: endpoint OCID for dedicated serving mode + - ``input_type``: ``SEARCH_DOCUMENT``, ``SEARCH_QUERY``, ``CLASSIFICATION``, ``CLUSTERING`` + - ``truncate``: ``NONE``, ``START``, or ``END`` (default ``END``) + - ``dimensions``: output embedding dimensions (cohere.embed-v4.0+) """ - def __init__(self) -> None: - # We reuse OCIChatConfig for signing logic - self._chat_config = OCIChatConfig() - - def get_complete_url( - self, - api_base: Optional[str], - api_key: Optional[str], - model: str, - optional_params: dict, - litellm_params: dict, - stream: Optional[bool] = None, - ) -> str: - if api_base: - return api_base - - oci_region = optional_params.get("oci_region", "us-ashburn-1") - return f"https://inference.generativeai.{oci_region}.oci.oraclecloud.com/20231130/actions/embedText" - - def get_supported_openai_params(self, model: str) -> list: - return [ - "dimensions", - ] + def get_supported_openai_params(self, model: str) -> List[str]: + return ["dimensions"] def map_openai_params( self, non_default_params: dict, optional_params: dict, model: str, - drop_params: bool, + drop_params: bool = False, ) -> dict: - # Note: OCI Cohere embed does not support custom dimensions natively, - # but we pass it through in case future models support it - if "dimensions" in non_default_params: - optional_params["dimensions"] = non_default_params["dimensions"] + for key, value in non_default_params.items(): + if key == "dimensions": + # OCI API uses outputDimensions (cohere.embed-v4.0+) + optional_params["outputDimensions"] = value return optional_params def validate_environment( @@ -109,49 +113,42 @@ class OCIEmbeddingConfig(BaseEmbeddingConfig): api_key: Optional[str] = None, api_base: Optional[str] = None, ) -> dict: - """ - Validate OCI credentials for embedding requests. - Supports both OCI SDK Signer and manual credential signing. - """ - oci_signer = optional_params.get("oci_signer") - oci_region = optional_params.get("oci_region", "us-ashburn-1") - - api_base = ( - api_base - or f"https://inference.generativeai.{oci_region}.oci.oraclecloud.com" - ) - - if oci_signer is None: - oci_user = optional_params.get("oci_user") - oci_fingerprint = optional_params.get("oci_fingerprint") - oci_tenancy = optional_params.get("oci_tenancy") - oci_key = optional_params.get("oci_key") - oci_key_file = optional_params.get("oci_key_file") - oci_compartment_id = optional_params.get("oci_compartment_id") - - if ( - not oci_user - or not oci_fingerprint - or not oci_tenancy - or not (oci_key or oci_key_file) - or not oci_compartment_id - ): - raise Exception( - "Missing required parameters: oci_user, oci_fingerprint, oci_tenancy, oci_compartment_id " - "and at least one of oci_key or oci_key_file. " - "Alternatively, provide an oci_signer object from the OCI SDK." + if optional_params.get("oci_signer") is None: + creds = resolve_oci_credentials(optional_params) + missing = [ + k + for k in ( + "oci_user", + "oci_fingerprint", + "oci_tenancy", + "oci_compartment_id", ) + if not creds.get(k) + ] + if missing or not (creds.get("oci_key") or creds.get("oci_key_file")): + raise OCIError( + status_code=401, + message=( + "Missing required parameters: oci_user, oci_fingerprint, oci_tenancy, " + "oci_compartment_id and at least one of oci_key or oci_key_file. " + "These can be supplied via optional_params or via OCI_USER, OCI_FINGERPRINT, " + "OCI_TENANCY, OCI_COMPARTMENT_ID, OCI_KEY_FILE environment variables. " + "Alternatively, provide an oci_signer object from the OCI SDK." + ), + ) + return validate_oci_environment(headers, optional_params, api_key) - from litellm.llms.custom_httpx.http_handler import version - - headers.update( - { - "content-type": "application/json", - "user-agent": f"litellm/{version}", - } - ) - - return headers + def get_complete_url( + self, + api_base: Optional[str], + api_key: Optional[str], + model: str, + optional_params: dict, + litellm_params: dict, + stream: Optional[bool] = None, + ) -> str: + base = get_oci_base_url(optional_params, api_base or litellm.api_base) + return f"{base}/{OCI_API_VERSION}/actions/embedText" def sign_request( self, @@ -163,9 +160,8 @@ class OCIEmbeddingConfig(BaseEmbeddingConfig): model: Optional[str] = None, stream: Optional[bool] = None, fake_stream: Optional[bool] = None, - ): - """Delegate to OCIChatConfig's signing logic.""" - return self._chat_config.sign_request( + ) -> Tuple[dict, bytes]: + return sign_oci_request( headers=headers, optional_params=optional_params, request_data=request_data, @@ -182,91 +178,74 @@ class OCIEmbeddingConfig(BaseEmbeddingConfig): input: AllEmbeddingInputValues, optional_params: dict, headers: dict, - api_base: Optional[str] = None, ) -> dict: - """ - Transform the embedding request to OCI format. - - OCI embedText API expects: - { - "compartmentId": "...", - "servingMode": {"servingType": "ON_DEMAND", "modelId": "..."}, - "inputs": ["text1", "text2"], - "truncate": "END", - "inputType": "SEARCH_DOCUMENT" - } - """ - oci_compartment_id = optional_params.get("oci_compartment_id") - if not oci_compartment_id: - raise Exception( - "kwarg `oci_compartment_id` is required for OCI embedding requests" + creds = resolve_oci_credentials(optional_params) + compartment_id = creds["oci_compartment_id"] + if not compartment_id: + raise OCIError( + status_code=400, + message=( + "oci_compartment_id is required for OCI embedding requests. " + "Pass it as optional_params or set the OCI_COMPARTMENT_ID env var." + ), ) - # Build serving mode - oci_serving_mode = optional_params.get("oci_serving_mode", "ON_DEMAND") - if oci_serving_mode == "DEDICATED": - oci_endpoint_id = optional_params.get("oci_endpoint_id", model) - serving_mode = { - "servingType": "DEDICATED", - "endpointId": oci_endpoint_id, - } - else: - serving_mode = { - "servingType": "ON_DEMAND", - "modelId": model, - } - - # Normalize input to list of strings + # Normalise input to a flat list of strings if isinstance(input, str): - inputs = [input] + texts = [input] elif isinstance(input, list): - inputs = [] + texts = [] for item in input: - if isinstance(item, str): - inputs.append(item) - elif isinstance(item, list): - raise ValueError( - "OCI embedding does not support token-array inputs. " - "Please convert token lists to strings before calling embedding()." + if isinstance(item, list): + raise OCIError( + status_code=400, + message=( + "OCI embedText does not support token-array inputs. " + "Convert token lists to strings before calling embedding()." + ), ) - else: - inputs.append(str(item)) + texts.append(item if isinstance(item, str) else str(item)) else: - inputs = [str(input)] + texts = [str(input)] - # Build request data — OCI embedText API expects inputs, truncate, - # and inputType at the top level alongside compartmentId and servingMode - request_data: Dict[str, Any] = { - "compartmentId": oci_compartment_id, - "servingMode": serving_mode, - "inputs": inputs, - "truncate": optional_params.get("truncate", "END"), - } + if len(texts) > OCI_EMBED_BATCH_LIMIT: + raise OCIError( + status_code=400, + message=( + f"OCI embedText accepts at most {OCI_EMBED_BATCH_LIMIT} inputs per request " + f"(got {len(texts)}). Batch your requests." + ), + ) - # Map input_type if provided + serving_mode_type = optional_params.get("oci_serving_mode", "ON_DEMAND").upper() + if serving_mode_type not in {"ON_DEMAND", "DEDICATED"}: + raise OCIError( + status_code=400, + message="oci_serving_mode must be 'ON_DEMAND' or 'DEDICATED'.", + ) + + if serving_mode_type == "DEDICATED": + endpoint_id = optional_params.get("oci_endpoint_id", model) + serving_mode = OCIServingMode( + servingType="DEDICATED", endpointId=endpoint_id + ) + else: + serving_mode = OCIServingMode(servingType="ON_DEMAND", modelId=model) + + # Map input_type from OpenAI convention to OCI/Cohere convention input_type = optional_params.get("input_type") if input_type: - mapped_type = _INPUT_TYPE_MAP.get(input_type.lower(), input_type.upper()) - request_data["inputType"] = mapped_type + input_type = _INPUT_TYPE_MAP.get(input_type.lower(), input_type.upper()) - # Sign the request using the same URL the HTTP handler will POST to - signing_url = self.get_complete_url( - api_base=api_base, - api_key=None, - model=model, - optional_params=optional_params, - litellm_params={}, + request = OCIEmbedRequest( + compartmentId=compartment_id, + servingMode=serving_mode, + inputs=texts, + inputType=input_type, + truncate=optional_params.get("truncate", "END"), + outputDimensions=optional_params.get("outputDimensions"), ) - - signed_headers, body = self.sign_request( - headers=headers, - optional_params=optional_params, - request_data=request_data, - api_base=signing_url, - ) - headers.update(signed_headers) - - return request_data + return request.model_dump(exclude_none=True) def transform_embedding_response( self, @@ -274,63 +253,57 @@ class OCIEmbeddingConfig(BaseEmbeddingConfig): raw_response: httpx.Response, model_response: EmbeddingResponse, logging_obj: LiteLLMLoggingObj, - api_key: Optional[str] = None, - request_data: dict = {}, - optional_params: dict = {}, - litellm_params: dict = {}, + api_key: Optional[str], + request_data: dict, + optional_params: dict, + litellm_params: dict, ) -> EmbeddingResponse: - """ - Transform OCI embedding response to standard EmbeddingResponse format. - - OCI response format: - { - "embeddings": [[0.1, 0.2, ...], [0.3, 0.4, ...]], - "modelId": "cohere.embed-english-v3.0", - "modelVersion": "3.0", - "inputTextTokenCounts": [5, 4] - } - """ if raw_response.status_code != 200: raise OCIError( - message=raw_response.text, status_code=raw_response.status_code, + message=raw_response.text, ) try: - raw_response_json = raw_response.json() - except Exception: + json_response = raw_response.json() + except Exception as e: raise OCIError( - message=raw_response.text, status_code=raw_response.status_code, + message=f"Failed to parse OCI embed response as JSON: {e}", ) - embeddings = raw_response_json.get("embeddings", []) - model_id = raw_response_json.get("modelId", model) - - # Build response data in OpenAI format - embedding_data = [] - for idx, embedding in enumerate(embeddings): - embedding_data.append( - { - "object": "embedding", - "index": idx, - "embedding": embedding, - } + try: + parsed = OCIEmbedResponse(**json_response) + except Exception as e: + raise OCIError( + status_code=500, + message=f"OCI embed response does not match expected schema: {e}", ) - model_response.model = model_id - model_response.data = embedding_data - model_response.object = "list" + model_response.model = parsed.modelId + model_response.data = [ + { + "object": "embedding", + "index": i, + "embedding": embedding, + } + for i, embedding in enumerate(parsed.embeddings) + ] - # Calculate token usage - input_token_counts = raw_response_json.get("inputTextTokenCounts", []) - total_tokens = sum(input_token_counts) if input_token_counts else 0 - - usage = Usage( - prompt_tokens=total_tokens, - total_tokens=total_tokens, - ) - model_response.usage = usage + if parsed.inputTextTokenCounts is not None: + # Actual OCI API returns per-input token counts — sum for total usage + total = sum(parsed.inputTextTokenCounts) + model_response.usage = Usage(prompt_tokens=total, total_tokens=total) + elif parsed.usage is not None: + # Some deployments may return a usage object directly + model_response.usage = Usage( + prompt_tokens=parsed.usage.promptTokens, + total_tokens=parsed.usage.totalTokens, + ) + else: + # Neither field returned — default to zero so downstream consumers + # can always rely on usage being populated. + model_response.usage = Usage(prompt_tokens=0, total_tokens=0) return model_response @@ -340,8 +313,8 @@ class OCIEmbeddingConfig(BaseEmbeddingConfig): status_code: int, headers: Union[dict, httpx.Headers], ) -> BaseLLMException: - return OCIError( - message=error_message, - status_code=status_code, - headers=headers if isinstance(headers, httpx.Headers) else None, - ) + return OCIError(status_code=status_code, message=error_message) + + +# Alias for backwards compatibility with any code that imports OCIEmbeddingConfig +OCIEmbeddingConfig = OCIEmbedConfig diff --git a/litellm/llms/openai/chat/gpt_transformation.py b/litellm/llms/openai/chat/gpt_transformation.py index 6b7ec4dfb1c..5464b5bb7ee 100644 --- a/litellm/llms/openai/chat/gpt_transformation.py +++ b/litellm/llms/openai/chat/gpt_transformation.py @@ -287,7 +287,13 @@ class OpenAIGPTConfig(BaseLLMModelInfo, BaseConfig): content_item["image_url"] = new_image_url_obj elif content_item.get("type") == "file": content_item = cast(ChatCompletionFileObject, content_item) - file_obj = content_item["file"] + file_obj = content_item.get("file") + if file_obj is None: + raise litellm.BadRequestError( + message="Content block has type='file' but is missing the required 'file' field", + model=None, + llm_provider="openai", + ) new_file_obj = ChatCompletionFileObjectFile( **{ # type: ignore k: v diff --git a/litellm/llms/openai/chat/o_series_transformation.py b/litellm/llms/openai/chat/o_series_transformation.py index 02ae2cc9750..8db7ecf7b3a 100644 --- a/litellm/llms/openai/chat/o_series_transformation.py +++ b/litellm/llms/openai/chat/o_series_transformation.py @@ -1,14 +1,14 @@ """ -Support for o1/o3 model family +Support for o1/o3 model family https://platform.openai.com/docs/guides/reasoning Translations handled by LiteLLM: -- modalities: image => drop param (if user opts in to dropping param) -- role: system ==> translate to role 'user' -- streaming => faked by LiteLLM -- Tools, response_format => drop param (if user opts in to dropping param) -- Logprobs => drop param (if user opts in to dropping param) +- modalities: image => drop param (if user opts in to dropping param) +- role: system ==> translate to role 'user' +- streaming => faked by LiteLLM +- Tools, response_format => drop param (if user opts in to dropping param) +- Logprobs => drop param (if user opts in to dropping param) """ from typing import Any, Coroutine, List, Literal, Optional, Union, cast, overload diff --git a/litellm/llms/openai/common_utils.py b/litellm/llms/openai/common_utils.py index c13a976c1b9..381f215a13f 100644 --- a/litellm/llms/openai/common_utils.py +++ b/litellm/llms/openai/common_utils.py @@ -201,7 +201,7 @@ class BaseOpenAILLM: @staticmethod def get_openai_client_initialization_param_fields( - client_type: Literal["openai", "azure"] + client_type: Literal["openai", "azure"], ) -> Tuple[str, ...]: """Returns a tuple of fields that are used to initialize the OpenAI client""" if client_type == "openai": diff --git a/litellm/llms/openai/responses/transformation.py b/litellm/llms/openai/responses/transformation.py index b7d5340d8d4..5043d25ee37 100644 --- a/litellm/llms/openai/responses/transformation.py +++ b/litellm/llms/openai/responses/transformation.py @@ -126,9 +126,21 @@ class OpenAIResponsesAPIConfig(BaseResponsesAPIConfig): litellm_params: GenericLiteLLMParams, headers: dict, ) -> Dict: - """No transform applied since inputs are in OpenAI spec already""" + """Strip Anthropic-only `cache_control` markers before sending to OpenAI. + + OpenAI's Responses API rejects unknown fields on input content blocks + with HTTP 400 ("Unknown parameter: 'input[0].content[0].cache_control'"). + Chat Completions strips these in + `remove_cache_control_flag_from_messages_and_tools`; mirror that here. + """ input = self._validate_input_param(input) + tools = response_api_optional_request_params.get("tools") + input, tools = self.remove_cache_control_flag_from_input_and_tools( + model=model, input=input, tools=tools + ) + if tools is not None: + response_api_optional_request_params["tools"] = tools final_request_params = dict( ResponsesAPIRequestParams( model=model, input=input, **response_api_optional_request_params @@ -137,6 +149,38 @@ class OpenAIResponsesAPIConfig(BaseResponsesAPIConfig): return final_request_params + def remove_cache_control_flag_from_input_and_tools( + self, + model: str, # allows overrides to selectively run this + input: Union[str, ResponseInputParam], + tools: Optional[List[ALL_RESPONSES_API_TOOL_PARAMS]] = None, + ) -> Tuple[ + Union[str, ResponseInputParam], + Optional[List[ALL_RESPONSES_API_TOOL_PARAMS]], + ]: + """Sibling of `remove_cache_control_flag_from_messages_and_tools` on + the chat path. Strips Anthropic-only `cache_control` markers from + Responses API input content blocks and tools. + + `filter_value_from_dict` mutates each dict in place, so the same + objects are returned. + """ + from litellm.litellm_core_utils.prompt_templates.common_utils import ( + filter_value_from_dict, + ) + + if isinstance(input, list): + for item in input: + if isinstance(item, dict): + filter_value_from_dict(cast(dict, item), "cache_control") + + if tools is not None: + for tool in tools: + if isinstance(tool, dict): + filter_value_from_dict(cast(dict, tool), "cache_control") + + return input, tools + def _validate_input_param( self, input: Union[str, ResponseInputParam] ) -> Union[str, ResponseInputParam]: @@ -604,6 +648,12 @@ class OpenAIResponsesAPIConfig(BaseResponsesAPIConfig): url = str(parsed_url.copy_with(path=compact_path)) input = self._validate_input_param(input) + tools = response_api_optional_request_params.get("tools") + input, tools = self.remove_cache_control_flag_from_input_and_tools( + model=model, input=input, tools=tools + ) + if tools is not None: + response_api_optional_request_params["tools"] = tools data = dict( ResponsesAPIRequestParams( model=model, input=input, **response_api_optional_request_params diff --git a/litellm/llms/openrouter/image_generation/transformation.py b/litellm/llms/openrouter/image_generation/transformation.py index a55716a5e50..9c2293eb3f1 100644 --- a/litellm/llms/openrouter/image_generation/transformation.py +++ b/litellm/llms/openrouter/image_generation/transformation.py @@ -49,7 +49,6 @@ from litellm.types.utils import ( ) from litellm.llms.openrouter.common_utils import OpenRouterException - if TYPE_CHECKING: from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj else: diff --git a/litellm/llms/reducto/__init__.py b/litellm/llms/reducto/__init__.py new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/litellm/llms/reducto/__init__.py @@ -0,0 +1 @@ + diff --git a/litellm/llms/reducto/common.py b/litellm/llms/reducto/common.py new file mode 100644 index 00000000000..4e7d96dbe87 --- /dev/null +++ b/litellm/llms/reducto/common.py @@ -0,0 +1,159 @@ +import base64 +import binascii +from collections import defaultdict +from typing import TYPE_CHECKING, Any, Dict, List, NoReturn, Optional, Tuple + +from litellm.constants import request_timeout + +REDUCTO_API_BASE = "https://platform.reducto.ai" +REDUCTO_ID_PREFIX = "reducto://" + +if TYPE_CHECKING: + from litellm.llms.base_llm.ocr.transformation import OCRPage + + +def _normalize_api_base(api_base: Optional[str]) -> str: + return (api_base or REDUCTO_API_BASE).rstrip("/") + + +def _raise_bad_request(message: str, model: str) -> NoReturn: + import litellm + + raise litellm.BadRequestError( + message=message, + model=model, + llm_provider="reducto", + ) + + +def extract_file_id_or_bytes( + source_url: str, + model: str, +) -> Tuple[Optional[str], Optional[bytes], Optional[str]]: + if source_url.startswith(REDUCTO_ID_PREFIX): + return source_url, None, None + + if source_url.startswith("http://") or source_url.startswith("https://"): + _raise_bad_request( + "Reducto requires type='file' (auto-uploaded) or a reducto:// id. Plain http(s) URLs are not supported; upload the file first.", + model=model, + ) + + if not source_url.startswith("data:"): + _raise_bad_request( + "Reducto requires a reducto:// id or a base64 data URI after OCR preprocessing.", + model=model, + ) + + try: + header, encoded = source_url.split(",", 1) + except ValueError: + _raise_bad_request("Invalid Reducto data URI provided.", model=model) + + if ";base64" not in header: + _raise_bad_request( + "Reducto only supports base64-encoded data URIs.", model=model + ) + + mime = header.removeprefix("data:").split(";")[0] or "application/octet-stream" + try: + raw_bytes = base64.b64decode(encoded, validate=True) + except (binascii.Error, ValueError): + _raise_bad_request("Invalid Reducto base64 payload provided.", model=model) + + return None, raw_bytes, mime + + +def _extract_file_id_from_upload_response(response: Any) -> str: + try: + payload = response.json() + except ValueError as exc: + raise ValueError( + "Reducto /upload returned a non-JSON 200 response: {}".format(response.text) + ) from exc + file_id = (payload or {}).get("file_id") if isinstance(payload, dict) else None + if not isinstance(file_id, str) or not file_id: + raise ValueError( + "Reducto /upload returned 200 without a file_id; got payload={}".format( + payload + ) + ) + return file_id + + +def upload_bytes_sync( + raw_bytes: bytes, + mime: Optional[str], + api_key: str, + api_base: Optional[str], +) -> str: + import litellm + + response = litellm.module_level_client.post( + url="{}{}".format(_normalize_api_base(api_base), "/upload"), + headers={"Authorization": f"Bearer {api_key}"}, + files={"file": ("document", raw_bytes, mime or "application/octet-stream")}, + timeout=request_timeout, + ) + response.raise_for_status() + return _extract_file_id_from_upload_response(response) + + +async def upload_bytes_async( + raw_bytes: bytes, + mime: Optional[str], + api_key: str, + api_base: Optional[str], +) -> str: + import litellm + + response = await litellm.module_level_aclient.post( + url="{}{}".format(_normalize_api_base(api_base), "/upload"), + headers={"Authorization": f"Bearer {api_key}"}, + files={"file": ("document", raw_bytes, mime or "application/octet-stream")}, + timeout=request_timeout, + ) + response.raise_for_status() + return _extract_file_id_from_upload_response(response) + + +def build_pages_from_reducto(result: Dict[str, Any]) -> List["OCRPage"]: + from litellm.llms.base_llm.ocr.transformation import OCRPage + + chunks = result.get("chunks", []) or [] + blocks_by_page: Dict[int, List[Dict[str, Any]]] = defaultdict(list) + + for chunk in chunks: + for block in chunk.get("blocks", []) or []: + page_no = (block.get("bbox") or {}).get("page") + if page_no is None: + continue + try: + normalized_page = int(page_no) + except (TypeError, ValueError): + continue + blocks_by_page[normalized_page].append(block) + + if not blocks_by_page: + fallback_markdown = "\n\n".join( + chunk.get("content", "") for chunk in chunks if chunk.get("content") + ) + if fallback_markdown == "": + return [] + return [OCRPage(index=0, markdown=fallback_markdown)] + + pages: List["OCRPage"] = [] + for page_no, blocks in sorted(blocks_by_page.items()): + markdown = "\n\n".join( + block.get("content", "") for block in blocks if block.get("content") + ) + page_index = max(page_no - 1, 0) + page = OCRPage( + index=page_index, + markdown=markdown, + ) + # OCRPage accepts extra keys at runtime; assign blocks after construction + # so static typing does not reject provider-specific metadata. + setattr(page, "blocks", blocks) + pages.append(page) + return pages diff --git a/litellm/llms/reducto/ocr/__init__.py b/litellm/llms/reducto/ocr/__init__.py new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/litellm/llms/reducto/ocr/__init__.py @@ -0,0 +1 @@ + diff --git a/litellm/llms/reducto/ocr/transformation.py b/litellm/llms/reducto/ocr/transformation.py new file mode 100644 index 00000000000..cc338ecc484 --- /dev/null +++ b/litellm/llms/reducto/ocr/transformation.py @@ -0,0 +1,241 @@ +from typing import Any, Dict, Optional, Tuple + +import httpx + +from litellm.llms.base_llm.ocr.transformation import ( + BaseOCRConfig, + DocumentType, + OCRRequestData, + OCRResponse, + OCRUsageInfo, +) +from litellm.llms.reducto.common import ( + REDUCTO_API_BASE, + build_pages_from_reducto, + extract_file_id_or_bytes, + upload_bytes_async, + upload_bytes_sync, +) + + +class _BaseReductoOCRConfig(BaseOCRConfig): + def map_ocr_params( + self, + non_default_params: dict, + optional_params: dict, + model: str, + ) -> dict: + mapped_params = dict(optional_params) + supported_params = self.get_supported_ocr_params(model=model) + for param, value in non_default_params.items(): + if param in supported_params: + mapped_params[param] = value + return mapped_params + + def validate_environment( + self, + headers: Dict, + model: str, + api_key: Optional[str] = None, + api_base: Optional[str] = None, + litellm_params: Optional[dict] = None, + **kwargs, + ) -> Dict: + from litellm.secret_managers.main import get_secret_str + + resolved_key = api_key or get_secret_str("REDUCTO_API_KEY") + if resolved_key is None: + raise ValueError( + "Missing REDUCTO_API_KEY - set it in the environment or pass api_key to litellm.ocr()/litellm.aocr()" + ) + + return { + "Authorization": f"Bearer {resolved_key}", + "Content-Type": "application/json", + **headers, + } + + def get_complete_url( + self, + api_base: Optional[str], + model: str, + optional_params: dict, + litellm_params: Optional[dict] = None, + **kwargs, + ) -> str: + return "{}/parse".format((api_base or REDUCTO_API_BASE).rstrip("/")) + + def _get_source_url(self, document: DocumentType, model: str) -> str: + source_url = document.get("document_url") or document.get("image_url") + if source_url is None: + raise ValueError( + "Reducto expected OCR preprocessing to produce document_url or image_url for model={}".format( + model + ) + ) + return source_url + + @staticmethod + def _resolve_credentials( + api_key: Optional[str], api_base: Optional[str] + ) -> Tuple[str, str]: + from litellm.secret_managers.main import get_secret_str + + resolved_key = api_key or get_secret_str("REDUCTO_API_KEY") + if resolved_key is None: + raise ValueError( + "Missing REDUCTO_API_KEY - set it in the environment or pass api_key to litellm.ocr()/litellm.aocr()" + ) + resolved_base = (api_base or REDUCTO_API_BASE).rstrip("/") + return resolved_key, resolved_base + + def _ensure_file_id_sync( + self, + model: str, + document: DocumentType, + api_key: Optional[str], + api_base: Optional[str], + ) -> str: + source_url = self._get_source_url(document=document, model=model) + file_id, raw_bytes, mime = extract_file_id_or_bytes(source_url, model=model) + if file_id is not None: + return file_id + resolved_key, resolved_base = self._resolve_credentials(api_key, api_base) + return upload_bytes_sync( + raw_bytes=raw_bytes or b"", + mime=mime, + api_key=resolved_key, + api_base=resolved_base, + ) + + async def _ensure_file_id_async( + self, + model: str, + document: DocumentType, + api_key: Optional[str], + api_base: Optional[str], + ) -> str: + source_url = self._get_source_url(document=document, model=model) + file_id, raw_bytes, mime = extract_file_id_or_bytes(source_url, model=model) + if file_id is not None: + return file_id + resolved_key, resolved_base = self._resolve_credentials(api_key, api_base) + return await upload_bytes_async( + raw_bytes=raw_bytes or b"", + mime=mime, + api_key=resolved_key, + api_base=resolved_base, + ) + + def transform_ocr_response( + self, + model: str, + raw_response: httpx.Response, + logging_obj: Any, + **kwargs, + ) -> OCRResponse: + response_json = raw_response.json() + result = response_json.get("result", response_json) or {} + usage = response_json.get("usage", {}) or {} + response = OCRResponse( + pages=build_pages_from_reducto(result), + model=model, + usage_info=OCRUsageInfo( + pages_processed=usage.get("num_pages"), + credits=usage.get("credits"), + ), + object="ocr", + ) + response._hidden_params["reducto_raw"] = response_json + return response + + +class ReductoParseV3Config(_BaseReductoOCRConfig): + def get_supported_ocr_params(self, model: str) -> list: + return ["formatting", "retrieval", "settings"] + + def transform_ocr_request( + self, + model: str, + document: DocumentType, + optional_params: dict, + headers: dict, + **kwargs, + ) -> OCRRequestData: + file_id = self._ensure_file_id_sync( + model=model, + document=document, + api_key=kwargs.get("api_key"), + api_base=kwargs.get("api_base"), + ) + return OCRRequestData(data={"input": file_id, **optional_params}, files=None) + + async def async_transform_ocr_request( + self, + model: str, + document: DocumentType, + optional_params: dict, + headers: dict, + **kwargs, + ) -> OCRRequestData: + file_id = await self._ensure_file_id_async( + model=model, + document=document, + api_key=kwargs.get("api_key"), + api_base=kwargs.get("api_base"), + ) + return OCRRequestData(data={"input": file_id, **optional_params}, files=None) + + +class ReductoParseLegacyConfig(_BaseReductoOCRConfig): + def get_supported_ocr_params(self, model: str) -> list: + return ["enhance"] + + def _build_legacy_body(self, file_id: str, optional_params: dict) -> Dict[str, Any]: + body: Dict[str, Any] = {"document_url": file_id} + enhance = optional_params.get("enhance") + if enhance is not None: + body["options"] = {"enhance": enhance} + return body + + def transform_ocr_request( + self, + model: str, + document: DocumentType, + optional_params: dict, + headers: dict, + **kwargs, + ) -> OCRRequestData: + file_id = self._ensure_file_id_sync( + model=model, + document=document, + api_key=kwargs.get("api_key"), + api_base=kwargs.get("api_base"), + ) + return OCRRequestData( + data=self._build_legacy_body( + file_id=file_id, optional_params=optional_params + ), + files=None, + ) + + async def async_transform_ocr_request( + self, + model: str, + document: DocumentType, + optional_params: dict, + headers: dict, + **kwargs, + ) -> OCRRequestData: + file_id = await self._ensure_file_id_async( + model=model, + document=document, + api_key=kwargs.get("api_key"), + api_base=kwargs.get("api_base"), + ) + return OCRRequestData( + data=self._build_legacy_body( + file_id=file_id, optional_params=optional_params + ), + files=None, + ) diff --git a/litellm/llms/sagemaker/common_utils.py b/litellm/llms/sagemaker/common_utils.py index 50c8ee4220e..6c15d642f8c 100644 --- a/litellm/llms/sagemaker/common_utils.py +++ b/litellm/llms/sagemaker/common_utils.py @@ -1,3 +1,4 @@ +import functools import json from typing import AsyncIterator, Iterator, List, Optional, Union @@ -22,14 +23,22 @@ def _load_sagemaker_response_stream_shape(): ) except Exception as e: verbose_logger.warning( - "litellm: could not pre-load sagemaker-runtime response stream shape " + "litellm: could not load sagemaker-runtime response stream shape " "— SageMaker event-stream decoding will be unavailable. Error: %s", e, ) return None -SAGEMAKER_RESPONSE_STREAM_SHAPE = _load_sagemaker_response_stream_shape() +@functools.lru_cache(maxsize=1) +def get_sagemaker_response_stream_shape(): + """ + Lazily load and cache the sagemaker-runtime stream shape for the process. + + Avoids importing botocore (and logging warnings) unless SageMaker event-stream + decoding is actually needed. + """ + return _load_sagemaker_response_stream_shape() class SagemakerError(BaseLLMException): @@ -207,7 +216,8 @@ class AWSEventStreamDecoder: verbose_logger.error(f"Final error parsing accumulated JSON: {e}") def _parse_message_from_event(self, event) -> Optional[str]: - if SAGEMAKER_RESPONSE_STREAM_SHAPE is None: + response_stream_shape = get_sagemaker_response_stream_shape() + if response_stream_shape is None: raise SagemakerError( status_code=500, message=( @@ -216,9 +226,7 @@ class AWSEventStreamDecoder: ), ) response_dict = event.to_response_dict() - parsed_response = self.parser.parse( - response_dict, SAGEMAKER_RESPONSE_STREAM_SHAPE - ) + parsed_response = self.parser.parse(response_dict, response_stream_shape) if response_dict["status_code"] != 200: raise ValueError(f"Bad response code, expected 200: {response_dict}") diff --git a/litellm/llms/sagemaker/completion/handler.py b/litellm/llms/sagemaker/completion/handler.py index efbb218f575..de7be18e8ba 100644 --- a/litellm/llms/sagemaker/completion/handler.py +++ b/litellm/llms/sagemaker/completion/handler.py @@ -578,7 +578,7 @@ class SagemakerLLM(BaseAWSLLM): logger_fn=None, ): """ - Supports both Huggingface Jumpstart embeddings and Voyage models + Supports Hugging Face (TGI), Voyage, and Cohere embedding endpoints """ ### BOTO3 INIT import boto3 diff --git a/litellm/llms/sagemaker/completion/transformation.py b/litellm/llms/sagemaker/completion/transformation.py index 3e4e2460cdb..8fd32bc4460 100644 --- a/litellm/llms/sagemaker/completion/transformation.py +++ b/litellm/llms/sagemaker/completion/transformation.py @@ -1,7 +1,7 @@ """ Translate from OpenAI's `/v1/chat/completions` to Sagemaker's `/invoke` -In the Huggingface TGI format. +In the Huggingface TGI format. """ import json diff --git a/litellm/llms/sagemaker/embedding/cohere_transformation.py b/litellm/llms/sagemaker/embedding/cohere_transformation.py new file mode 100644 index 00000000000..fdb67202ebb --- /dev/null +++ b/litellm/llms/sagemaker/embedding/cohere_transformation.py @@ -0,0 +1,141 @@ +""" +Translate from OpenAI's `/v1/embeddings` to Sagemaker's `/invoke` + +In the native Cohere embed format for self-hosted Cohere endpoints +(AWS Marketplace / JumpStart). Cohere containers expect +`{"texts": [...], "input_type": "..."}` and reject the HuggingFace TGI shape +`{"inputs": [...]}` with `422 EmbedReqV2.inputs is of type string but should +be of type Object`. + +Reference: https://docs.cohere.com/v2/reference/embed +""" + +from typing import TYPE_CHECKING, Any, List, Optional, Union, cast + +if TYPE_CHECKING: + from litellm.types.llms.openai import AllEmbeddingInputValues + +from httpx._models import Headers, Response + +import litellm +from litellm.llms.base_llm.chat.transformation import BaseLLMException +from litellm.llms.base_llm.embedding.transformation import BaseEmbeddingConfig +from litellm.llms.bedrock.embed.cohere_transformation import ( + BedrockCohereEmbeddingConfig, +) +from litellm.llms.cohere.embed.v1_transformation import CohereEmbeddingConfig +from litellm.types.utils import EmbeddingResponse + +from ..common_utils import SagemakerError + + +class SagemakerCohereEmbeddingConfig(BaseEmbeddingConfig): + """ + SageMaker invoke payload for self-hosted Cohere embed models. + """ + + def __init__(self) -> None: + pass + + def get_supported_openai_params(self, model: str) -> List[str]: + return ["encoding_format", "dimensions", "input_type"] + + def map_openai_params( + self, + non_default_params: dict, + optional_params: dict, + model: str, + drop_params: bool, + ) -> dict: + optional_params = BedrockCohereEmbeddingConfig().map_openai_params( + non_default_params=non_default_params, + optional_params=optional_params, + ) + if "input_type" in non_default_params: + optional_params["input_type"] = non_default_params["input_type"] + return optional_params + + def get_error_class( + self, error_message: str, status_code: int, headers: Union[dict, Headers] + ) -> BaseLLMException: + return SagemakerError( + message=error_message, status_code=status_code, headers=headers + ) + + def transform_embedding_request( + self, + model: str, + input: "AllEmbeddingInputValues", + optional_params: dict, + headers: dict, + ) -> dict: + """ + Transform embedding request for Cohere models on SageMaker + """ + if isinstance(input, str): + input_list: List[str] = [input] + elif isinstance(input, list): + if input and (isinstance(input[0], list) or isinstance(input[0], int)): + raise ValueError("Input must be a list of strings") + input_list = cast(List[str], input) + else: + input_list = [str(input)] + + return dict( + BedrockCohereEmbeddingConfig()._transform_request( + model=model, + input=input_list, + inference_params=optional_params, + ) + ) + + def transform_embedding_response( + self, + model: str, + raw_response: Response, + model_response: "EmbeddingResponse", + logging_obj: Any, + api_key: Optional[str] = None, + request_data: dict = {}, + optional_params: dict = {}, + litellm_params: dict = {}, + ) -> "EmbeddingResponse": + """ + Transform embedding response for Cohere models on SageMaker. + + Uses `CohereEmbeddingConfig._populate_embedding_response` (not + `_transform_response`) so we do not log `post_call` a second time + — the SageMaker embedding handler already logs `post_call` before + invoking this transform. + """ + input_value = ( + logging_obj.model_call_details.get("input") + or request_data.get("texts") + or request_data.get("images") + or [] + ) + if isinstance(input_value, str): + input_value = [input_value] + + return CohereEmbeddingConfig()._populate_embedding_response( + response_json=raw_response.json(), + model_response=model_response, + model=model, + encoding=litellm.encoding, + input=input_value, + ) + + def validate_environment( + self, + headers: dict, + model: str, + messages: List[Any], + optional_params: dict, + litellm_params: dict, + api_key: Optional[str] = None, + api_base: Optional[str] = None, + ) -> dict: + """ + Validate environment for SageMaker Cohere embeddings + """ + return {"Content-Type": "application/json"} diff --git a/litellm/llms/sagemaker/embedding/transformation.py b/litellm/llms/sagemaker/embedding/transformation.py index 04430171187..5e2aa99534f 100644 --- a/litellm/llms/sagemaker/embedding/transformation.py +++ b/litellm/llms/sagemaker/embedding/transformation.py @@ -1,7 +1,7 @@ """ Translate from OpenAI's `/v1/embeddings` to Sagemaker's `/invoke` -In the Huggingface TGI format. +In the Huggingface TGI format. """ from typing import TYPE_CHECKING, Any, List, Optional, Union @@ -11,12 +11,13 @@ if TYPE_CHECKING: from httpx._models import Headers, Response -from litellm.llms.base_llm.embedding.transformation import BaseEmbeddingConfig from litellm.llms.base_llm.chat.transformation import BaseLLMException -from litellm.types.utils import Usage, EmbeddingResponse +from litellm.llms.base_llm.embedding.transformation import BaseEmbeddingConfig from litellm.llms.voyage.embedding.transformation import VoyageEmbeddingConfig +from litellm.types.utils import EmbeddingResponse, Usage from ..common_utils import SagemakerError +from .cohere_transformation import SagemakerCohereEmbeddingConfig class SagemakerEmbeddingConfig(BaseEmbeddingConfig): @@ -38,17 +39,20 @@ class SagemakerEmbeddingConfig(BaseEmbeddingConfig): Returns: Appropriate embedding config instance """ - if "voyage" in model.lower(): + model_lower = model.lower() + if "voyage" in model_lower: return VoyageEmbeddingConfig() - else: - return cls() + if "cohere" in model_lower: + return SagemakerCohereEmbeddingConfig() + return cls() def get_supported_openai_params(self, model: str) -> List[str]: - # Check if this is an embedding model - if "voyage" in model.lower(): + model_lower = model.lower() + if "voyage" in model_lower: return VoyageEmbeddingConfig().get_supported_openai_params(model) - else: - return [] + if "cohere" in model_lower: + return SagemakerCohereEmbeddingConfig().get_supported_openai_params(model) + return [] def map_openai_params( self, diff --git a/litellm/llms/sap/credentials.py b/litellm/llms/sap/credentials.py index 0ae351783e8..dd307ddf496 100644 --- a/litellm/llms/sap/credentials.py +++ b/litellm/llms/sap/credentials.py @@ -207,7 +207,7 @@ def resolve_resource_group(sources: List[Source]) -> Optional[str]: def _parse_service_key_once( - service_key: Optional[Union[str, dict]] + service_key: Optional[Union[str, dict]], ) -> Optional[Dict[str, Any]]: """ Pre-parse service_key if it's a string to avoid repeated JSON parsing. diff --git a/litellm/llms/snowflake/chat/transformation.py b/litellm/llms/snowflake/chat/transformation.py index 3e590680a75..23bb6f44757 100644 --- a/litellm/llms/snowflake/chat/transformation.py +++ b/litellm/llms/snowflake/chat/transformation.py @@ -14,7 +14,6 @@ from ...openai_like.chat.transformation import OpenAIGPTConfig from ..utils import SnowflakeBaseConfig - if TYPE_CHECKING: from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj diff --git a/litellm/llms/together_ai/chat.py b/litellm/llms/together_ai/chat.py index 7efb12fc1b2..238849cc1ec 100644 --- a/litellm/llms/together_ai/chat.py +++ b/litellm/llms/together_ai/chat.py @@ -1,5 +1,5 @@ """ -Support for OpenAI's `/v1/chat/completions` endpoint. +Support for OpenAI's `/v1/chat/completions` endpoint. Calls done in OpenAI/openai.py as TogetherAI is openai-compatible. diff --git a/litellm/llms/together_ai/embed.py b/litellm/llms/together_ai/embed.py index 577df0256cc..6a39b94acfc 100644 --- a/litellm/llms/together_ai/embed.py +++ b/litellm/llms/together_ai/embed.py @@ -1,5 +1,5 @@ """ -Support for OpenAI's `/v1/embeddings` endpoint. +Support for OpenAI's `/v1/embeddings` endpoint. Calls done in OpenAI/openai.py as TogetherAI is openai-compatible. diff --git a/litellm/llms/together_ai/rerank/transformation.py b/litellm/llms/together_ai/rerank/transformation.py index 63b593dfe42..f4d642bd25a 100644 --- a/litellm/llms/together_ai/rerank/transformation.py +++ b/litellm/llms/together_ai/rerank/transformation.py @@ -1,5 +1,5 @@ """ -Transformation logic from Cohere's /v1/rerank format to Together AI's `/v1/rerank` format. +Transformation logic from Cohere's /v1/rerank format to Together AI's `/v1/rerank` format. Why separate file? Make it easy to see how transformation works """ diff --git a/litellm/llms/vertex_ai/context_caching/transformation.py b/litellm/llms/vertex_ai/context_caching/transformation.py index 950edbeb478..f73eb220cc6 100644 --- a/litellm/llms/vertex_ai/context_caching/transformation.py +++ b/litellm/llms/vertex_ai/context_caching/transformation.py @@ -1,5 +1,5 @@ """ -Transformation logic for context caching. +Transformation logic for context caching. Why separate file? Make it easy to see how transformation works """ @@ -19,7 +19,7 @@ from ..gemini.transformation import ( def get_first_continuous_block_idx( - filtered_messages: List[Tuple[int, AllMessageValues]] # (idx, message) + filtered_messages: List[Tuple[int, AllMessageValues]], # (idx, message) ) -> int: """ Find the array index that ends the first continuous sequence of message blocks. @@ -174,7 +174,9 @@ def transform_openai_messages_to_gemini_context_caching( ) transformed_messages = _gemini_convert_messages_with_history( - messages=new_messages, model=model + messages=new_messages, + model=model, + custom_llm_provider=custom_llm_provider, ) model_name = "models/{}".format(model) diff --git a/litellm/llms/vertex_ai/context_caching/vertex_ai_context_caching.py b/litellm/llms/vertex_ai/context_caching/vertex_ai_context_caching.py index ac0f07b8e0b..3f945adca0d 100644 --- a/litellm/llms/vertex_ai/context_caching/vertex_ai_context_caching.py +++ b/litellm/llms/vertex_ai/context_caching/vertex_ai_context_caching.py @@ -41,7 +41,7 @@ class ContextCachingEndpoints(VertexBase): """ def __init__(self) -> None: - pass + super().__init__() def _get_token_and_url_context_caching( self, diff --git a/litellm/llms/vertex_ai/gemini/transformation.py b/litellm/llms/vertex_ai/gemini/transformation.py index 9afa5dec465..4f5846cc5b6 100644 --- a/litellm/llms/vertex_ai/gemini/transformation.py +++ b/litellm/llms/vertex_ai/gemini/transformation.py @@ -6,13 +6,16 @@ Why separate file? Make it easy to see how transformation works import json import os -from typing import TYPE_CHECKING, Dict, List, Literal, Optional, Tuple, Union, cast +import re +from typing import TYPE_CHECKING, Any, Dict, List, Literal, Optional, Tuple, Union, cast +from urllib.parse import quote import httpx from pydantic import BaseModel import litellm from litellm._logging import verbose_logger +from litellm.litellm_core_utils.asyncify import asyncify from litellm.litellm_core_utils.prompt_templates.common_utils import ( _get_image_mime_type_from_url, ) @@ -57,6 +60,45 @@ from ..common_utils import ( get_supports_system_message, ) +# Typed as Any to avoid introducing a module-load-time cyclic import to +# vertex_llm_base. The instance is lazily constructed by _get_vertex_base() +# the first time GCS metadata needs to be fetched. +_GCS_METADATA_VERTEX_BASE: Optional[Any] = None +# Shared sync client for GCS JSON API metadata reads so proxy/SSL settings +# from litellm's HTTP stack apply (see Greptile review on PR #27278). +_GCS_METADATA_HTTP_HANDLER: Optional[HTTPHandler] = None +_GEMINI_MIME_TYPE_ALIASES: Dict[str, str] = { + "image/jpg": "image/jpeg", +} + + +def _apply_gemini_mime_type_aliases(mime_type: str) -> str: + """Normalize known MIME aliases only; does not consult the file-type registry. + + Also strips MIME parameters (e.g. ``; charset=utf-8``) so that values + sourced from GCS object metadata (``contentType``) validate correctly. + """ + normalized = mime_type.split(";", 1)[0].strip().lower() + return _GEMINI_MIME_TYPE_ALIASES.get(normalized, normalized) + + +def _get_vertex_base() -> Any: + """Lazily return the shared VertexBase instance to avoid a module-load-time cyclic import.""" + global _GCS_METADATA_VERTEX_BASE + if _GCS_METADATA_VERTEX_BASE is None: + from ..vertex_llm_base import VertexBase + + _GCS_METADATA_VERTEX_BASE = VertexBase() + return _GCS_METADATA_VERTEX_BASE + + +def _get_gcs_metadata_http_handler() -> HTTPHandler: + global _GCS_METADATA_HTTP_HANDLER + if _GCS_METADATA_HTTP_HANDLER is None: + _GCS_METADATA_HTTP_HANDLER = HTTPHandler(timeout=5.0) + return _GCS_METADATA_HTTP_HANDLER + + if TYPE_CHECKING: from litellm.litellm_core_utils.litellm_logging import Logging as _LiteLLMLoggingObj @@ -171,12 +213,299 @@ def _apply_gemini_metadata( return cast(PartType, part_dict) +def _parse_gs_uri(gs_uri: str) -> Tuple[str, str]: + if not gs_uri.startswith("gs://"): + raise ValueError(f"Invalid gs URI: {gs_uri}") + uri_without_scheme = gs_uri[5:] # drop gs:// + uri_parts = uri_without_scheme.split("/", 1) + if len(uri_parts) != 2 or not uri_parts[0] or not uri_parts[1]: + raise ValueError(f"Invalid gs URI: {gs_uri}") + return uri_parts[0], uri_parts[1] + + +def _is_valid_gcs_bucket_name(bucket: str) -> bool: + """ + Validate bucket name against core GCS naming constraints. + """ + bucket_length = len(bucket) + max_bucket_length = 222 if "." in bucket else 63 + if bucket_length < 3 or bucket_length > max_bucket_length: + return False + if "." in bucket and any( + len(label) == 0 or len(label) > 63 for label in bucket.split(".") + ): + return False + if not re.fullmatch(r"[a-z0-9][a-z0-9._-]*[a-z0-9]", bucket): + return False + if ".." in bucket: + return False + if re.fullmatch(r"\d+\.\d+\.\d+\.\d+", bucket): + return False + return True + + +def _gs_uri_requires_content_type_metadata(url: str) -> bool: + """ + True when _process_gemini_media would call _get_gcs_object_content_type + (extension-less gs:// and no explicit format passed into that helper). + """ + if "gs://" not in url: + return False + extension_with_dot = os.path.splitext(url)[-1] + extension = extension_with_dot[1:] if extension_with_dot else "" + return len(extension) == 0 + + +def _image_url_payload_may_need_sync_gcs_metadata_fetch( + raw_image_url: Any, +) -> bool: + """ + True when this image_url value (content-part image_url or assistant ``images[]`` + entry) can trigger a blocking GCS metadata read for MIME resolution. + """ + fmt: Optional[str] = None + url: Optional[str] = None + if isinstance(raw_image_url, dict): + url = raw_image_url.get("url") # type: ignore[assignment] + if not isinstance(url, str): + return False + fmt = ( + raw_image_url.get("format") + or raw_image_url.get("mime_type") + or raw_image_url.get("content_type") + ) + elif isinstance(raw_image_url, str): + url = raw_image_url + else: + return False + if "gs://" not in url or fmt: + return False + return _gs_uri_requires_content_type_metadata(url) + + +def _openai_messages_may_need_sync_gcs_metadata_fetch( + messages: List[AllMessageValues], +) -> bool: + """ + Heuristic: True if any message part can trigger a blocking GCS JSON + metadata read inside _transform_request_body (extension-less gs:// without + explicit MIME hints). Covers user/system ``content`` parts and assistant + ``images`` (same paths as ``_gemini_convert_messages_with_history``). Used + to decide whether ``async_transform_request_body`` should offload the sync + transform via ``asyncify``. + """ + for raw in messages: + msg: Any = raw + if not isinstance(msg, dict) and hasattr(msg, "model_dump"): + msg = msg.model_dump(exclude_none=False) + if not isinstance(msg, dict): + continue + images_field = msg.get("images") + if isinstance(images_field, list): + for image_item in images_field: + if not isinstance(image_item, dict): + continue + if _image_url_payload_may_need_sync_gcs_metadata_fetch( + image_item.get("image_url") + ): + return True + + content = msg.get("content") + if not isinstance(content, list): + continue + for item in content: + if not isinstance(item, dict): + continue + itype = item.get("type") + if itype == "image_url": + if _image_url_payload_may_need_sync_gcs_metadata_fetch( + item.get("image_url") + ): + return True + elif itype == "file": + file_obj = item.get("file") + if not isinstance(file_obj, dict): + continue + fmt = ( + file_obj.get("format") + or file_obj.get("mime_type") + or file_obj.get("content_type") + ) + passed = file_obj.get("file_id") or file_obj.get("file_data") + if ( + isinstance(passed, str) + and "gs://" in passed + and not fmt + and _gs_uri_requires_content_type_metadata(passed) + ): + return True + return False + + +def _get_gcs_object_content_type( + image_url: str, + vertex_project: Optional[str] = None, + vertex_credentials: Optional[Any] = None, +) -> Optional[str]: + """ + Resolve content type from GCS object metadata. + + Only attaches a Bearer token when the caller explicitly supplies Vertex + credentials, to avoid using the server's default Google credentials on + the Gemini API-key (Google AI Studio) path and being used as an oracle + for private GCS object metadata. Without explicit credentials we only + issue an anonymous request, which only succeeds for publicly-readable + objects. + """ + try: + bucket, object_name = _parse_gs_uri(image_url) + except ValueError: + return None + if not _is_valid_gcs_bucket_name(bucket): + return None + + headers: Dict[str, str] = {} + explicit_vertex_auth_provided = ( + vertex_project is not None or vertex_credentials is not None + ) + if explicit_vertex_auth_provided: + try: + access_token, _ = _get_vertex_base().get_access_token( + credentials=vertex_credentials, + project_id=vertex_project, + ) + headers["Authorization"] = f"Bearer {access_token}" + except Exception as e: + raise litellm.BadRequestError( + message=( + "Unable to fetch GCS metadata with provided Vertex credentials/project. " + f"Original error: {str(e)}" + ), + model=None, + llm_provider="vertex_ai", + ) + + # Build the URL via httpx.URL with a fixed scheme/host and URL-encode both + # bucket and object so CodeQL does not flag the interpolation as a + # potential SSRF that could resolve to an arbitrary host. + encoded_bucket = quote(bucket, safe="") + encoded_object = quote(object_name, safe="") + metadata_url = httpx.URL( + scheme="https", + host="storage.googleapis.com", + path=f"/storage/v1/b/{encoded_bucket}/o/{encoded_object}", + params={"fields": "contentType"}, + ) + try: + response = _get_gcs_metadata_http_handler().get( + url=str(metadata_url), + headers=headers or None, + ) + except httpx.RequestError as e: + if explicit_vertex_auth_provided: + raise litellm.BadRequestError( + message=( + "Unable to reach GCS JSON API for object metadata with provided " + f"Vertex credentials. {type(e).__name__}: {e}" + ), + model=None, + llm_provider="vertex_ai", + ) from e + return None + + if response.is_error: + if explicit_vertex_auth_provided: + preview = (response.text or "")[:1024] + raise litellm.BadRequestError( + message=( + "Unable to read GCS object metadata with provided Vertex credentials. " + f"HTTP {response.status_code}. Response body (truncated): {preview!r}" + ), + model=None, + llm_provider="vertex_ai", + ) + return None + + try: + payload = response.json() + except ValueError as e: + if explicit_vertex_auth_provided: + raise litellm.BadRequestError( + message=( + "GCS metadata response was not valid JSON when using provided " + f"Vertex credentials (HTTP {response.status_code}). Error: {e}" + ), + model=None, + llm_provider="vertex_ai", + ) from e + return None + + if not isinstance(payload, dict): + if explicit_vertex_auth_provided: + raise litellm.BadRequestError( + message=( + "GCS metadata response was not a JSON object when using provided " + f"Vertex credentials (HTTP {response.status_code})." + ), + model=None, + llm_provider="vertex_ai", + ) + return None + + content_type = payload.get("contentType") + if isinstance(content_type, str) and len(content_type) > 0: + return content_type + + if explicit_vertex_auth_provided: + preview = (response.text or "")[:1024] + raise litellm.BadRequestError( + message=( + "GCS metadata JSON did not include a non-empty contentType field when " + f"using provided Vertex credentials (HTTP {response.status_code}). " + f"Body (truncated): {preview!r}" + ), + model=None, + llm_provider="vertex_ai", + ) + return None + + +def _normalize_and_validate_gemini_mime_type( + mime_type: str, model: Optional[str] +) -> str: + # Import lazily to avoid a module-level cyclic-import alert with + # litellm.types.files. + from litellm.types.files import get_file_extension_from_mime_type + + normalized_mime_type = _apply_gemini_mime_type_aliases(mime_type) + try: + file_extension = get_file_extension_from_mime_type(normalized_mime_type) + file_type = get_file_type_from_extension(file_extension) + except ValueError: + raise litellm.BadRequestError( + message=f"File type not supported by gemini - {normalized_mime_type}", + model=model, + llm_provider="vertex_ai", + ) + + if not is_gemini_1_5_accepted_file_type(file_type): + raise litellm.BadRequestError( + message=f"File type not supported by gemini - {file_type}", + model=model, + llm_provider="vertex_ai", + ) + + return get_file_mime_type_for_file_type(file_type) + + def _process_gemini_media( image_url: str, format: Optional[str] = None, media_resolution_enum: Optional[Dict[str, str]] = None, model: Optional[str] = None, video_metadata: Optional[Dict[str, Any]] = None, + vertex_project: Optional[str] = None, + vertex_credentials: Optional[Any] = None, ) -> PartType: """ Given a media URL (image, audio, or video), return the appropriate PartType for Gemini @@ -193,20 +522,63 @@ def _process_gemini_media( try: # GCS URIs if "gs://" in image_url: - # Figure out file type extension_with_dot = os.path.splitext(image_url)[-1] # Ex: ".png" extension = extension_with_dot[1:] # Ex: "png" + explicit_gcs_format = False if not format: - file_type = get_file_type_from_extension(extension) + mime_type: Optional[str] = None + # For extension-less gs:// URIs, we cannot infer from path. + # If callers pass `format`/`mime_type`, this branch is skipped. + if extension: + file_type = get_file_type_from_extension(extension) - # Validate the file type is supported by Gemini - if not is_gemini_1_5_accepted_file_type(file_type): - raise Exception(f"File type not supported by gemini - {file_type}") + # Validate the file type is supported by Gemini + if not is_gemini_1_5_accepted_file_type(file_type): + raise litellm.BadRequestError( + message=f"File type not supported by gemini - {file_type}", + model=model, + llm_provider="vertex_ai", + ) - mime_type = get_file_mime_type_for_file_type(file_type) + mime_type = get_file_mime_type_for_file_type(file_type) + else: + mime_type = _get_gcs_object_content_type( + image_url=image_url, + vertex_project=vertex_project, + vertex_credentials=vertex_credentials, + ) + if mime_type is None: + raise litellm.BadRequestError( + message=( + f"Unable to determine mime type for gs URI: {image_url}. " + "This gs:// URI has no file extension and GCS metadata " + "lookup failed. Set it explicitly using image_url.format " + "(or image_url.mime_type/content_type) or " + "message.content[].file.format." + ), + model=model, + llm_provider="vertex_ai", + ) else: mime_type = format + explicit_gcs_format = True + if mime_type is None: + raise litellm.BadRequestError( + message=f"File type not supported by gemini - {image_url}", + model=model, + llm_provider="vertex_ai", + ) + if explicit_gcs_format: + # Callers who pass format/mime_type explicitly for gs:// URIs + # rely on pass-through to Gemini (pre-PR behavior). Only apply + # known MIME aliases; skip litellm's file-type registry. + mime_type = _apply_gemini_mime_type_aliases(mime_type) + else: + mime_type = _normalize_and_validate_gemini_mime_type( + mime_type=mime_type, + model=model, + ) file_data = FileDataType(mime_type=mime_type, file_uri=image_url) part: PartType = {"file_data": file_data} return _apply_gemini_metadata( @@ -258,8 +630,6 @@ def _snake_to_camel(snake_str: str) -> str: def _camel_to_snake(camel_str: str) -> str: """Convert camelCase to snake_case""" - import re - return re.sub(r"(? List[ContentType]: """ Converts given messages from OpenAI format to Gemini format @@ -326,6 +698,16 @@ def _gemini_convert_messages_with_history( # noqa: PLR0915 msg_i = 0 tool_call_responses = [] + vertex_project = None + vertex_credentials = None + if litellm_params: + vertex_project = litellm_params.get("vertex_project") or litellm_params.get( + "vertex_ai_project" + ) + vertex_credentials = litellm_params.get( + "vertex_credentials" + ) or litellm_params.get("vertex_ai_credentials") + try: while msg_i < len(messages): user_content: List[PartType] = [] @@ -351,20 +733,42 @@ def _gemini_convert_messages_with_history( # noqa: PLR0915 img_element = element format: Optional[str] = None media_resolution_enum: Optional[Dict[str, str]] = None - if isinstance(img_element["image_url"], dict): - image_url = img_element["image_url"]["url"] - format = img_element["image_url"].get("format") - detail = img_element["image_url"].get("detail") + raw_image_url = img_element.get("image_url") + if raw_image_url is None: + raise litellm.BadRequestError( + message="Invalid message content: element type is 'image_url' but 'image_url' field is missing ", + model=model, + llm_provider="vertex_ai", + ) + if isinstance(raw_image_url, dict): + image_url = raw_image_url.get("url") + if image_url is None: + raise litellm.BadRequestError( + message="Invalid message content: element type is 'image_url' but 'url' field is missing inside 'image_url' ", + model=model, + llm_provider="vertex_ai", + ) + # TypedDict does not declare mime_type/content_type; + # read via Dict[str, Any] for caller-provided MIME fields. + image_url_dict = cast(Dict[str, Any], raw_image_url) + format = ( + image_url_dict.get("format") + or image_url_dict.get("mime_type") + or image_url_dict.get("content_type") + ) + detail = image_url_dict.get("detail") media_resolution_enum = ( _convert_detail_to_media_resolution_enum(detail) ) else: - image_url = img_element["image_url"] + image_url = raw_image_url _part = _process_gemini_media( image_url=image_url, format=format, media_resolution_enum=media_resolution_enum, model=model, + vertex_project=vertex_project, + vertex_credentials=vertex_credentials, ) _parts.append(_part) elif element["type"] == "input_audio": @@ -390,15 +794,31 @@ def _gemini_convert_messages_with_history( # noqa: PLR0915 image_url=openai_image_str, format=audio_format_modified, model=model, + vertex_project=vertex_project, + vertex_credentials=vertex_credentials, ) _parts.append(_part) elif element["type"] == "file": file_element = cast(ChatCompletionFileObject, element) - file_id = file_element["file"].get("file_id") - format = file_element["file"].get("format") - file_data = file_element["file"].get("file_data") - detail = file_element["file"].get("detail") - video_metadata = file_element["file"].get("video_metadata") + _file_field = file_element.get("file") + if _file_field is None: + raise litellm.BadRequestError( + message="Content block has type='file' but is missing the required 'file' field", + model=model, + llm_provider="vertex_ai", + ) + # TypedDict does not declare mime_type/content_type; + # read via Dict[str, Any] for caller-provided MIME fields. + file_dict = cast(Dict[str, Any], _file_field) + file_id = file_dict.get("file_id") + format = ( + file_dict.get("format") + or file_dict.get("mime_type") + or file_dict.get("content_type") + ) + file_data = file_dict.get("file_data") + detail = file_dict.get("detail") + video_metadata = file_dict.get("video_metadata") passed_file = file_id or file_data if passed_file is None: raise Exception( @@ -417,13 +837,23 @@ def _gemini_convert_messages_with_history( # noqa: PLR0915 model=model, media_resolution_enum=media_resolution_enum, video_metadata=video_metadata, + vertex_project=vertex_project, + vertex_credentials=vertex_credentials, ) _parts.append(_part) - except Exception: - raise Exception( - "Unable to determine mime type for file_id: {}, set this explicitly using message[{}].content[{}].file.format".format( - file_id, msg_i, element_idx - ) + except litellm.BadRequestError: + raise + except Exception as e: + raise litellm.BadRequestError( + message=( + f"Unable to determine mime type for file: " + f"{file_id or 'provided data'}, set this explicitly " + f"using message[{msg_i}].content[{element_idx}].file.format " + f"(or file.mime_type/content_type). " + f"Original error: {str(e)}" + ), + model=model, + llm_provider="vertex_ai", ) user_content.extend(_parts) elif _message_content is not None and isinstance(_message_content, str): @@ -528,7 +958,11 @@ def _gemini_convert_messages_with_history( # noqa: PLR0915 image_url_obj = image_item.get("image_url") if isinstance(image_url_obj, dict): assistant_image_url = image_url_obj.get("url") - format = image_url_obj.get("format") + format = ( + image_url_obj.get("format") + or image_url_obj.get("mime_type") + or image_url_obj.get("content_type") + ) detail = image_url_obj.get("detail") media_resolution_enum = ( _convert_detail_to_media_resolution_enum(detail) @@ -539,6 +973,8 @@ def _gemini_convert_messages_with_history( # noqa: PLR0915 format=format, media_resolution_enum=media_resolution_enum, model=model, + vertex_project=vertex_project, + vertex_credentials=vertex_credentials, ) assistant_content.append(_part) @@ -548,7 +984,9 @@ def _gemini_convert_messages_with_history( # noqa: PLR0915 or assistant_msg.get("function_call") is not None ): # support assistant tool invoke conversion gemini_tool_call_parts = convert_to_gemini_tool_call_invoke( - assistant_msg, model=model + assistant_msg, + model=model, + custom_llm_provider=custom_llm_provider, ) ## check if gemini_tool_call already exists in assistant_content for gemini_tool_call_part in gemini_tool_call_parts: @@ -607,7 +1045,10 @@ def _gemini_convert_messages_with_history( # noqa: PLR0915 and messages[msg_i]["role"] in tool_call_message_roles ): _part = convert_to_gemini_tool_call_result( - messages[msg_i], last_message_with_tool_calls # type: ignore + messages[msg_i], # type: ignore + last_message_with_tool_calls, # type: ignore + model=model, + custom_llm_provider=custom_llm_provider, ) msg_i += 1 # Handle both single part and list of parts (for Computer Use with images) @@ -632,16 +1073,14 @@ def _gemini_convert_messages_with_history( # noqa: PLR0915 contents.append(ContentType(role="user", parts=tool_call_responses)) if len(contents) == 0: - verbose_logger.warning( - """ + verbose_logger.warning(""" No contents in messages. Contents are required. See https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.publishers.models/generateContent#request-body. If the original request did not comply to OpenAI API requirements it should have failed by now, but LiteLLM does not check for missing messages. Setting an empty content to prevent an 400 error. Relevant Issue - https://github.com/BerriAI/litellm/issues/9733 - """ - ) + """) contents.append(ContentType(role="user", parts=[PartType(text=" ")])) return contents except Exception as e: @@ -713,11 +1152,11 @@ def _transform_request_body( # noqa: PLR0915 try: if custom_llm_provider == "gemini": content = litellm.GoogleAIStudioGeminiConfig()._transform_messages( - messages=messages, model=model + messages=messages, model=model, litellm_params=litellm_params ) else: content = litellm.VertexGeminiConfig()._transform_messages( - messages=messages, model=model + messages=messages, model=model, litellm_params=litellm_params ) tools: Optional[Tools] = optional_params.pop("tools", None) tool_choice: Optional[ToolConfig] = optional_params.pop("tool_choice", None) @@ -893,6 +1332,20 @@ async def async_transform_request_body( vertex_auth_header=vertex_auth_header, ) + if _openai_messages_may_need_sync_gcs_metadata_fetch(messages): + # _transform_request_body may issue a sync httpx.get (up to 5s timeout) + # via _get_gcs_object_content_type to fetch GCS object metadata. Run the + # whole sync transformation on a worker thread so it does not block the + # async event loop. + return await asyncify(_transform_request_body)( + messages=messages, + model=model, + custom_llm_provider=custom_llm_provider, + litellm_params=litellm_params, + cached_content=cached_content, + optional_params=optional_params, + ) + return _transform_request_body( messages=messages, model=model, diff --git a/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py b/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py index 6278de662f8..189ac7a7f6a 100644 --- a/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py +++ b/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py @@ -280,6 +280,8 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): - gemini-3-pro-preview - gemini-3-flash - gemini-3-flash-preview (Gemini 3 Flash) + - gemini-3.1-pro-preview, gemini-3.1-flash, gemini-3.1-flash-lite-preview + - gemini-3.5-flash - Any future Gemini 3.x models """ # Check for Gemini 3 models @@ -287,6 +289,20 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): return True return False + @staticmethod + def _forward_gemini_function_call_id( + model: str, custom_llm_provider: Optional[str] = None + ) -> bool: + """ + Whether to include `id` on function_call / function_response parts. + + Gemini 3+ on Google AI Studio accepts (and returns) `id` for strict + tool-call matching. Vertex AI rejects the field with HTTP 400. + """ + if custom_llm_provider != "gemini": + return False + return VertexGeminiConfig._is_gemini_3_or_newer(model) + def _supports_penalty_parameters(self, model: str) -> bool: # Gemini 3 models do not support penalty parameters if VertexGeminiConfig._is_gemini_3_or_newer(model): @@ -300,6 +316,7 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): supported_params = [ "temperature", "top_p", + "top_k", "max_tokens", "max_completion_tokens", "stream", @@ -363,6 +380,66 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): """ return Tools(googleSearch={}) + @staticmethod + def _search_tool_keys() -> set: + return { + VertexToolName.GOOGLE_SEARCH.value, + VertexToolName.GOOGLE_SEARCH_RETRIEVAL.value, + VertexToolName.ENTERPRISE_WEB_SEARCH.value, + VertexToolName.URL_CONTEXT.value, + "google_search", + "google_search_retrieval", + "enterprise_web_search", + "urlContext", + } + + @classmethod + def _drop_search_tools_mixed_with_functions(cls, optional_params: dict) -> None: + """ + Drop search tools from optional_params when mixed with function declarations + and include_server_side_tool_invocations is not enabled. + + Runs after map_openai_params merges tools and web_search_options so both + code paths (single _map_function call vs split tools + web_search_options) + get the same conflict resolution. + """ + if optional_params.get("include_server_side_tool_invocations"): + return + + tools = optional_params.get("tools") + if not isinstance(tools, list) or not tools: + return + + search_tool_keys = cls._search_tool_keys() + has_function_declarations = any( + isinstance(tool, dict) and tool.get("function_declarations") + for tool in tools + ) + if not has_function_declarations: + return + + has_search_tools = any( + isinstance(tool, dict) and any(key in tool for key in search_tool_keys) + for tool in tools + ) + if not has_search_tools: + return + + verbose_logger.warning( + "Vertex AI does not support mixing function declarations with " + "search tools (googleSearch, enterpriseWebSearch, urlContext, " + "googleSearchRetrieval) in the same request. Dropping search " + "tools and keeping function declarations. To use search tools, " + "send a request without function calling tools." + ) + optional_params["tools"] = [ + tool + for tool in tools + if not ( + isinstance(tool, dict) and any(key in tool for key in search_tool_keys) + ) + ] + def _map_service_tier_param(self, value: str, optional_params: dict) -> None: """ Map OpenAI service_tier (string) to Gemini serviceTier. @@ -884,9 +961,10 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): GeminiThinkingConfig with thinkingLevel and includeThoughts """ # Check if this is gemini-3-flash which supports MINIMAL thinking level - # Covers gemini-3-flash, gemini-3-flash-preview, gemini-3.1-flash, gemini-3.1-flash-lite-preview, etc. + # Covers gemini-3-flash, gemini-3-flash-preview, gemini-3.1-flash, gemini-3.1-flash-lite-preview, + # gemini-3.5-flash, and any future 3.x-flash variants. is_gemini3flash = model and ( - "gemini-3-flash" in model.lower() or "gemini-3.1-flash" in model.lower() + "flash" in model.lower() and "gemini-3" in model.lower() ) is_gemini31pro = model and ("gemini-3.1-pro-preview" in model.lower()) if reasoning_effort == "minimal": @@ -982,8 +1060,7 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): # Follow provider defaults unless explicitly opted into legacy behavior. if litellm.enable_gemini_default_thinking_level_low is True: is_gemini3flash = ( - "gemini-3-flash-preview" in model.lower() - or "gemini-3-flash" in model.lower() + "gemini-3" in model.lower() and "flash" in model.lower() ) params["thinkingLevel"] = ( "minimal" if is_gemini3flash else "low" @@ -1077,6 +1154,7 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): model: str, drop_params: bool, ) -> Dict: + gemini_sampling_params_warned: bool = False for param, value in non_default_params.items(): if param == "temperature": if VertexGeminiConfig._is_gemini_3_or_newer(model): @@ -1086,9 +1164,41 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): "can cause infinite loops, degraded reasoning performance, and failure on complex tasks. " "Strongly recommended to use temperature = 1.0 (default)." ) + if not gemini_sampling_params_warned: + verbose_logger.warning( + "DeprecationWarning: `temperature`, `top_p`, and `top_k` continue to " + f"function for Gemini 3+ ({model}) but are planned for removal in a " + "future release. Move sampling guidance into the `system` " + "instructions instead." + ) + gemini_sampling_params_warned = True optional_params["temperature"] = value elif param == "top_p": + if ( + VertexGeminiConfig._is_gemini_3_or_newer(model) + and not gemini_sampling_params_warned + ): + verbose_logger.warning( + "DeprecationWarning: `temperature`, `top_p`, and `top_k` continue to " + f"function for Gemini 3+ ({model}) but are planned for removal in a " + "future release. Move sampling guidance into the `system` " + "instructions instead." + ) + gemini_sampling_params_warned = True optional_params["top_p"] = value + elif param == "top_k": + if ( + VertexGeminiConfig._is_gemini_3_or_newer(model) + and not gemini_sampling_params_warned + ): + verbose_logger.warning( + "DeprecationWarning: `temperature`, `top_p`, and `top_k` continue to " + f"function for Gemini 3+ ({model}) but are planned for removal in a " + "future release. Move sampling guidance into the `system` " + "instructions instead." + ) + gemini_sampling_params_warned = True + optional_params["top_k"] = value elif ( param == "stream" and value is True ): # sending stream = False, can cause it to get passed unchecked and raise issues @@ -1139,11 +1249,14 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): if _tool_choice_value is not None: optional_params["tool_choice"] = _tool_choice_value elif param == "parallel_tool_calls": - if value is False and not ( - drop_params or litellm.drop_params - ): # if drop params is True, then we should just ignore this - self.validate_parallel_tool_calls(value, non_default_params) - else: + tools_list = non_default_params.get( + "tools", non_default_params.get("functions") + ) + num_tools = len(tools_list) if isinstance(tools_list, list) else 0 + # Gemini does not support parallel_tool_calls=False with multiple + # tools. Drop the param instead of failing — Responses API clients + # often send parallel_tool_calls=false by default. + if not (value is False and num_tools > 1): optional_params["parallel_tool_calls"] = value elif param == "seed": optional_params["seed"] = value @@ -1216,6 +1329,8 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): if "temperature" not in optional_params: optional_params["temperature"] = 1.0 + self._drop_search_tools_mixed_with_functions(optional_params) + return optional_params def get_mapped_special_auth_params(self) -> dict: @@ -1588,6 +1703,10 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): } # Extract thought signature if present thought_signature = part.get("thoughtSignature") + # Gemini 3.5+ returns a stable `id` per function call to enable + # strict response matching. Preserve it as the OpenAI + # tool_call_id so it can be echoed back unchanged. + gemini_call_id = part["functionCall"].get("id") if is_function_call is True: function_dict: Dict[str, Any] = dict(_function_chunk) @@ -1605,6 +1724,11 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): "function": _function_chunk, "index": cumulative_tool_call_idx, } + # Gemini 3.5+ returns a stable native `id`; prefer it over + # the synthetic call_ so the same value can be echoed + # back on the matching `functionResponse`. + if gemini_call_id: + _tool_response_chunk["id"] = gemini_call_id # Embed thought signature in ID for OpenAI client compatibility if thought_signature: _tool_response_chunk["provider_specific_fields"] = { # type: ignore @@ -2533,9 +2657,17 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): return model_response def _transform_messages( - self, messages: List[AllMessageValues], model: Optional[str] = None + self, + messages: List[AllMessageValues], + model: Optional[str] = None, + litellm_params: Optional[dict] = None, ) -> List[ContentType]: - return _gemini_convert_messages_with_history(messages=messages, model=model) + return _gemini_convert_messages_with_history( + messages=messages, + model=model, + litellm_params=litellm_params, + custom_llm_provider="vertex_ai", + ) def get_error_class( self, error_message: str, status_code: int, headers: Union[Dict, httpx.Headers] @@ -3139,6 +3271,31 @@ class ModelResponseIterator: self.cumulative_tool_call_index: int = 0 self.has_seen_tool_calls: bool = False + @staticmethod + def _check_streaming_error(chunk: dict) -> None: + """Detect embedded errors (e.g. 429 RESOURCE_EXHAUSTED) in streaming chunks and raise VertexAIError.""" + if "error" not in chunk: + return + error_data = chunk["error"] + if not isinstance(error_data, dict): + raise VertexAIError( + status_code=500, + message=f"Unexpected error format in mid-stream chunk: {error_data}", + ) + raw_code = error_data.get("code", 500) + if raw_code is None: + raw_code = 500 + try: + error_code = int(raw_code) + except (TypeError, ValueError): + error_code = 500 + error_message = error_data.get("message", "Unknown error") + error_status = error_data.get("status", "UNKNOWN") + raise VertexAIError( + status_code=error_code, + message=f"{error_status} - {error_message}", + ) + def _apply_stream_candidates( self, _candidates: List[Candidates], @@ -3256,6 +3413,11 @@ class ModelResponseIterator: def chunk_parser(self, chunk: dict) -> Optional["ModelResponseStream"]: try: verbose_logger.debug(f"RAW GEMINI CHUNK: {chunk}") + + # Detect mid-stream error chunks (e.g. 429 RESOURCE_EXHAUSTED). + # Vertex AI can return errors as HTTP 200 but with an "error" field in the SSE body. + self._check_streaming_error(chunk) + from litellm.types.utils import ModelResponseStream processed_chunk = GenerateContentResponseBody(**chunk) # type: ignore diff --git a/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_transformation.py b/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_transformation.py index e1b365c9f42..ba6e6f0c056 100644 --- a/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_transformation.py +++ b/litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_transformation.py @@ -1,5 +1,5 @@ """ -Transformation logic from OpenAI /v1/embeddings format to Google AI Studio /batchEmbedContents format. +Transformation logic from OpenAI /v1/embeddings format to Google AI Studio /batchEmbedContents format. Why separate file? Make it easy to see how transformation works """ diff --git a/litellm/llms/vertex_ai/text_to_speech/text_to_speech_handler.py b/litellm/llms/vertex_ai/text_to_speech/text_to_speech_handler.py index 9d9015c2b91..b835ad7d8fa 100644 --- a/litellm/llms/vertex_ai/text_to_speech/text_to_speech_handler.py +++ b/litellm/llms/vertex_ai/text_to_speech/text_to_speech_handler.py @@ -139,7 +139,7 @@ class VertexTextToSpeechAPI(VertexLLM): ########## End of logging ############ ####### Send the request ################### if _is_async is True: - return self.async_audio_speech( # type:ignore + return self.async_audio_speech( # type: ignore logging_obj=logging_obj, url=url, headers=headers, request=request ) sync_handler = _get_httpx_client() diff --git a/litellm/llms/vertex_ai/vertex_ai_partner_models/main.py b/litellm/llms/vertex_ai/vertex_ai_partner_models/main.py index 123d925f7c1..13aa2a5350e 100644 --- a/litellm/llms/vertex_ai/vertex_ai_partner_models/main.py +++ b/litellm/llms/vertex_ai/vertex_ai_partner_models/main.py @@ -45,7 +45,7 @@ class PartnerModelPrefixes(str, Enum): class VertexAIPartnerModels(VertexBase): def __init__(self) -> None: - pass + super().__init__() @staticmethod def is_vertex_partner_model(model: str): @@ -116,9 +116,6 @@ class VertexAIPartnerModels(VertexBase): CodestralTextCompletion, ) from litellm.llms.openai_like.chat.handler import OpenAILikeChatHandler - from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import ( - VertexLLM, - ) except Exception as e: raise VertexAIError( status_code=400, @@ -133,9 +130,7 @@ class VertexAIPartnerModels(VertexBase): message="""Upgrade vertex ai. Run `pip install "google-cloud-aiplatform>=1.38"`""", ) try: - vertex_httpx_logic = VertexLLM() - - access_token, project_id = vertex_httpx_logic._ensure_access_token( + access_token, project_id = self._ensure_access_token( credentials=vertex_credentials, project_id=vertex_project, custom_llm_provider="vertex_ai", @@ -292,22 +287,15 @@ class VertexAIPartnerModels(VertexBase): Returns: Dict containing token count information """ - try: - import vertexai - except Exception as e: - raise VertexAIError( - status_code=400, - message=f"""vertexai import failed please run `pip install -U "google-cloud-aiplatform>=1.38"`. Got error: {e}""", - ) - - if not ( - hasattr(vertexai, "preview") or hasattr(vertexai.preview, "language_models") - ): - raise VertexAIError( - status_code=400, - message="""Upgrade vertex ai. Run `pip install "google-cloud-aiplatform>=1.38"`""", - ) - + # Note: we intentionally do not import `vertexai` (the Gemini SDK shipped + # by `google-cloud-aiplatform`) on this path. Partner models such as + # Claude on Vertex use the Anthropic Messages API protocol directly via + # `:rawPredict`, and `VertexAIPartnerModelsTokenCounter` reaches that + # endpoint with an authenticated httpx client — it never touches the + # Gemini SDK. Requiring `google-cloud-aiplatform>=1.38` here turned a + # SDK-free Anthropic-protocol call into a hard dependency on the Gemini + # SDK (see #28084), breaking `/v1/messages/count_tokens` for Claude-on- + # Vertex on any LiteLLM install without that extra. Stay SDK-free. try: from litellm.llms.vertex_ai.vertex_ai_partner_models.count_tokens.handler import ( VertexAIPartnerModelsTokenCounter, diff --git a/litellm/llms/vertex_ai/vertex_gemma_models/main.py b/litellm/llms/vertex_ai/vertex_gemma_models/main.py index 82cfe6de984..b6bf2f73b72 100644 --- a/litellm/llms/vertex_ai/vertex_gemma_models/main.py +++ b/litellm/llms/vertex_ai/vertex_gemma_models/main.py @@ -31,7 +31,7 @@ from ..vertex_llm_base import VertexBase class VertexAIGemmaModels(VertexBase): def __init__(self) -> None: - pass + super().__init__() def completion( self, @@ -62,9 +62,6 @@ class VertexAIGemmaModels(VertexBase): try: import vertexai - from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import ( - VertexLLM, - ) from litellm.llms.vertex_ai.vertex_gemma_models.transformation import ( VertexGemmaConfig, ) @@ -83,9 +80,8 @@ class VertexAIGemmaModels(VertexBase): ) try: model = get_vertex_base_model_name(model=model) - vertex_httpx_logic = VertexLLM() - access_token, project_id = vertex_httpx_logic._ensure_access_token( + access_token, project_id = self._ensure_access_token( credentials=vertex_credentials, project_id=vertex_project, custom_llm_provider="vertex_ai", diff --git a/litellm/llms/vertex_ai/vertex_gemma_models/transformation.py b/litellm/llms/vertex_ai/vertex_gemma_models/transformation.py index 6c6446958bc..35cd54d65f6 100644 --- a/litellm/llms/vertex_ai/vertex_gemma_models/transformation.py +++ b/litellm/llms/vertex_ai/vertex_gemma_models/transformation.py @@ -91,6 +91,10 @@ class VertexGemmaConfig(OpenAIGPTConfig): "stream", None ) # Streaming not supported, will be faked client-side openai_request.pop("stream_options", None) # Stream options not supported + # Vertex Gemma's chatCompletions wrapper does not understand + # `context_management` (an Anthropic/Responses API concept). Strip it + # so the upstream endpoint does not 400 on the unknown field. + openai_request.pop("context_management", None) # Wrap in Vertex Gemma format return { diff --git a/litellm/llms/vertex_ai/vertex_llm_base.py b/litellm/llms/vertex_ai/vertex_llm_base.py index 6f687dae7e8..990063bb9fb 100644 --- a/litellm/llms/vertex_ai/vertex_llm_base.py +++ b/litellm/llms/vertex_ai/vertex_llm_base.py @@ -4,8 +4,10 @@ Base Vertex, Google AI Studio LLM Class Handles Authentication and generating request urls for Vertex AI and Google AI Studio """ +import asyncio import json import os +import threading from typing import TYPE_CHECKING, Any, Dict, Literal, Optional, Tuple import litellm @@ -30,6 +32,7 @@ GOOGLE_IMPORT_ERROR_MESSAGE = ( if TYPE_CHECKING: from google.auth.credentials import Credentials as GoogleCredentialsObject + from google.auth.credentials import TokenState else: GoogleCredentialsObject = Any @@ -42,10 +45,28 @@ class VertexBase: self._credentials: Optional[GoogleCredentialsObject] = None self._credentials_project_mapping: Dict[ Tuple[Optional[VERTEX_CREDENTIALS_TYPES], Optional[str]], - Tuple[GoogleCredentialsObject, str], + Tuple[GoogleCredentialsObject, Optional[str]], ] = {} self.project_id: Optional[str] = None self.async_handler: Optional[AsyncHTTPHandler] = None + # Per-credential-key asyncio.Lock for single-flight async refresh. + # Prevents thundering herd when token expires under high concurrency. + # Uses a regular dict (not WeakValueDictionary) so the lock identity is + # stable across concurrent callers — a weak reference can be GC'd + # between two coroutines arriving at the lock, breaking single-flight. + # An explicit refcount tracks the number of coroutines currently using + # each lock; the entry is pruned when the count reaches zero, so the + # dict stays bounded even in long-running high-cardinality deployments + # without depending on any private asyncio internals. + self._async_refresh_locks: Dict[tuple, asyncio.Lock] = {} + self._async_refresh_lock_refcounts: Dict[tuple, int] = {} + # Tracks in-flight background refresh tasks to avoid duplicate refreshes. + self._background_refresh_tasks: Dict[tuple, asyncio.Task] = {} + # Protects the sync get_access_token refresh path. + # Use RLock so that the reauthentication retry path (which calls + # back into get_access_token while still holding the lock) can + # re-acquire it without deadlocking the current thread. + self._sync_refresh_lock = threading.RLock() def get_vertex_region(self, vertex_region: Optional[str], model: str) -> str: import litellm @@ -77,7 +98,9 @@ class VertexBase: return vertex_region or "us-central1" def load_auth( - self, credentials: Optional[VERTEX_CREDENTIALS_TYPES], project_id: Optional[str] + self, + credentials: Optional[VERTEX_CREDENTIALS_TYPES], + project_id: Optional[str], ) -> Tuple[Any, str]: if credentials is not None: if isinstance(credentials, str): @@ -343,7 +366,241 @@ class VertexBase: except ImportError: raise ImportError(GOOGLE_IMPORT_ERROR_MESSAGE) - credentials.refresh(Request()) + # Serialize all refreshes on this VertexBase across threads. + # ``credentials.refresh()`` is not safe to call concurrently on the + # same credentials object, and this method is invoked from three + # places that can run on different threads: + # - sync ``get_access_token`` (already holds ``_sync_refresh_lock``) + # - the async slow path (via ``asyncify`` in a worker thread) + # - the background proactive refresh task (via ``asyncify``) + # ``_sync_refresh_lock`` is an ``RLock`` so reentrant acquisition + # from the sync path is safe. + with self._sync_refresh_lock: + credentials.refresh(Request()) + + def _acquire_async_refresh_lock(self, credential_cache_key: tuple) -> asyncio.Lock: + """Increment the refcount and return the lock for ``credential_cache_key``. + + Every call must be paired with ``_release_async_refresh_lock`` once the + caller is done with the lock so the entry can be pruned when no other + coroutine is holding or waiting on it. + """ + lock = self._async_refresh_locks.setdefault( + credential_cache_key, asyncio.Lock() + ) + self._async_refresh_lock_refcounts[credential_cache_key] = ( + self._async_refresh_lock_refcounts.get(credential_cache_key, 0) + 1 + ) + return lock + + def _release_async_refresh_lock( + self, credential_cache_key: tuple, lock: asyncio.Lock + ) -> None: + """Decrement the refcount and drop the lock entry when it reaches zero. + + Must be called only after the caller has released ``lock`` (i.e. once + the surrounding ``async with`` has exited). asyncio is cooperative, so + the decrement-then-pop sequence below runs atomically with respect to + other coroutines. + """ + remaining = self._async_refresh_lock_refcounts.get(credential_cache_key, 0) - 1 + if remaining > 0: + self._async_refresh_lock_refcounts[credential_cache_key] = remaining + return + self._async_refresh_lock_refcounts.pop(credential_cache_key, None) + if self._async_refresh_locks.get(credential_cache_key) is lock: + self._async_refresh_locks.pop(credential_cache_key, None) + + def _try_get_cached_token( + self, + credential_cache_key: tuple, + project_id: Optional[str], + ) -> Optional[Tuple[str, str]]: + """ + Look up cached credentials and return (token, project_id) if the token + is FRESH. Returns None if not cached or not fresh. + """ + from google.auth.credentials import TokenState + + creds, cached_project_id = self._unpack_cached_credentials(credential_cache_key) + if ( + creds is not None + and self._get_token_state(creds) == TokenState.FRESH + and creds.token is not None + and isinstance(creds.token, str) + ): + resolved_project = project_id or cached_project_id + if resolved_project: + return creds.token, resolved_project + return None + + def _try_get_usable_cached_token( + self, + credential_cache_key: tuple, + project_id: Optional[str], + ) -> Optional[Tuple[str, str, "TokenState", Any, Optional[str]]]: + """ + Look up cached credentials and return usable token info for FRESH or + STALE tokens (both are still valid for outbound requests). STALE + tokens are returned along with their state and the underlying + credentials object so the caller can schedule a background refresh + without holding the per-key async lock. + """ + from google.auth.credentials import TokenState + + creds, cached_project_id = self._unpack_cached_credentials(credential_cache_key) + if creds is None: + return None + token_state = self._get_token_state(creds) + if token_state not in (TokenState.FRESH, TokenState.STALE): + return None + if creds.token is None or not isinstance(creds.token, str): + return None + resolved_project = project_id or cached_project_id + if not resolved_project: + return None + return creds.token, resolved_project, token_state, creds, cached_project_id + + def _unpack_cached_credentials( + self, credential_cache_key: tuple + ) -> Tuple[Any, Optional[str]]: + """ + Return (credentials, project_id) from the cache, or (None, None) if + not cached. Handles both tuple and legacy cache formats. + """ + if credential_cache_key not in self._credentials_project_mapping: + return None, None + cached_entry = self._credentials_project_mapping[credential_cache_key] + if isinstance(cached_entry, tuple): + return cached_entry + return cached_entry, cached_entry.quota_project_id or getattr( + cached_entry, "project_id", None + ) + + def _get_token_state(self, credentials: Any) -> "TokenState": + """ + Return the token state using google-auth's TokenState enum. + + Falls back to expired/valid checks if token_state is unavailable + (e.g. older google-auth versions or mock objects in tests). + """ + from google.auth.credentials import TokenState as _TokenState + + token_state = getattr(credentials, "token_state", None) + if isinstance(token_state, _TokenState): + return token_state + # Fallback for credentials without a real token_state (e.g. mocks) + if getattr(credentials, "expired", True): + return _TokenState.INVALID + if getattr(credentials, "valid", False): + return _TokenState.FRESH + return _TokenState.INVALID + + async def _load_and_cache_credentials( + self, + credentials: Optional[VERTEX_CREDENTIALS_TYPES], + project_id: Optional[str], + credential_cache_key: tuple, + ) -> Tuple[Any, Optional[str]]: + """Load credentials via load_auth (in thread) and cache the result.""" + try: + _credentials, credential_project_id = await asyncify(self.load_auth)( + credentials=credentials, + project_id=project_id, + ) + except Exception as e: + verbose_logger.exception("Failed to load vertex credentials: %s", str(e)) + raise + if _credentials is None: + raise ValueError("Could not resolve credentials") + self._credentials_project_mapping[credential_cache_key] = ( + _credentials, + credential_project_id, + ) + return _credentials, credential_project_id + + async def _background_refresh_credentials( + self, + credentials: Any, + credential_cache_key: tuple, + credential_project_id: Optional[str], + ) -> None: + """ + Refresh credentials in the background without blocking the calling request. + + Called when the token is still valid but nearing expiry (proactive refresh). + Errors are logged but not raised — the current token is still usable. + """ + try: + verbose_logger.debug("Background proactive credential refresh") + await asyncify(self.refresh_auth)(credentials) + # Only update the cache if it still points at the credentials + # object we just refreshed. The per-key async lock is not held + # here, so a concurrent INVALID path may have already replaced + # this entry (e.g. via _handle_reauthentication_async, which + # creates a fresh credentials object). In that case our write + # would clobber the newer entry with a stale reference. + cached_creds, _ = self._unpack_cached_credentials(credential_cache_key) + if cached_creds is credentials: + self._credentials_project_mapping[credential_cache_key] = ( + credentials, + credential_project_id, + ) + except Exception: + verbose_logger.debug( + "Background credential refresh failed, will retry on next request", + exc_info=True, + ) + + async def _await_in_flight_background_refresh( + self, credential_cache_key: tuple + ) -> None: + """Wait for an in-flight background refresh to finish, if any. + + google-auth's ``Credentials.refresh()`` is not safe to invoke + concurrently on the same credentials object. Coroutines that need a + blocking refresh must first drain any background refresh that was + scheduled while a previous STALE token was being served. + """ + existing_task = self._background_refresh_tasks.get(credential_cache_key) + if existing_task is None or existing_task.done(): + return + try: + await existing_task + except Exception: + # Background refresh failures are already logged inside + # _background_refresh_credentials; the caller will fall through + # to its own blocking refresh. + pass + + def _schedule_background_refresh( + self, + credentials: Any, + credential_cache_key: tuple, + credential_project_id: Optional[str], + ) -> None: + """Kick off a single background refresh for ``credential_cache_key``. + + Skips scheduling if a refresh is already in flight. The done-callback + guards against removing a newer task that has replaced this one in the + tracking dict (done_callbacks are scheduled via ``call_soon``). + """ + existing = self._background_refresh_tasks.get(credential_cache_key) + if existing is not None and not existing.done(): + return + self._background_refresh_tasks.pop(credential_cache_key, None) + task = asyncio.create_task( + self._background_refresh_credentials( + credentials, credential_cache_key, credential_project_id + ) + ) + + def _drop_background_refresh_task(_fut: asyncio.Future[Any]) -> None: + if self._background_refresh_tasks.get(credential_cache_key) is _fut: + self._background_refresh_tasks.pop(credential_cache_key, None) + + task.add_done_callback(_drop_background_refresh_task) + self._background_refresh_tasks[credential_cache_key] = task def _ensure_access_token( self, @@ -563,6 +820,65 @@ class VertexBase: # Re-raise the original error for better context raise error + async def _handle_reauthentication_async( + self, + credentials: Optional[VERTEX_CREDENTIALS_TYPES], + project_id: Optional[str], + credential_cache_key: Tuple, + error: Exception, + ) -> Tuple[str, str]: + """ + Async reauthentication retry that stays within the per-key async lock. + """ + verbose_logger.debug( + f"Handling async reauthentication for project_id: {project_id}. " + f"Clearing cache and retrying once." + ) + + self._credentials_project_mapping.pop(credential_cache_key, None) + + try: + _credentials, credential_project_id = ( + await self._load_and_cache_credentials( + credentials=credentials, + project_id=project_id, + credential_cache_key=credential_cache_key, + ) + ) + if project_id is None and isinstance(credential_project_id, str): + project_id = credential_project_id + cache_credentials = ( + json.dumps(credentials) + if isinstance(credentials, dict) + else credentials + ) + resolved_cache_key = (cache_credentials, project_id) + # Always overwrite — any pre-existing entry at the resolved key + # references the OLD credentials object we just replaced, and + # leaving it would force the next request to do a redundant + # refresh/reauth before realizing the cached creds are stale. + self._credentials_project_mapping[resolved_cache_key] = ( + _credentials, + credential_project_id, + ) + + if _credentials.token is None or not isinstance(_credentials.token, str): + raise ValueError( + "Could not resolve credentials token. Got None or non-string token (type={})".format( + type(_credentials.token).__name__ + ) + ) + if project_id is None: + raise ValueError("Could not resolve project_id") + + return _credentials.token, project_id + except Exception as retry_error: + verbose_logger.error( + f"Async reauthentication retry failed for project_id: {project_id}. " + f"Original error: {str(error)}. Retry error: {str(retry_error)}" + ) + raise error + def get_access_token( self, credentials: Optional[VERTEX_CREDENTIALS_TYPES], @@ -646,7 +962,7 @@ class VertexBase: ) ## VALIDATE CREDENTIALS - verbose_logger.debug(f"Validating credentials for project_id: {project_id}") + verbose_logger.debug("Validating credentials") if ( project_id is None and credential_project_id is not None @@ -666,26 +982,27 @@ class VertexBase: raise ValueError("Credentials are None after loading") if _credentials.expired: - try: - verbose_logger.debug( - f"Credentials expired, refreshing for project_id: {project_id}" - ) - self.refresh_auth(_credentials) - self._credentials_project_mapping[credential_cache_key] = ( - _credentials, - credential_project_id, - ) - except Exception as e: - # if refresh fails, it's possible the user has re-authenticated via `gcloud auth application-default login` - # in this case, we should try to reload the credentials by clearing the cache and retrying - if "Reauthentication is needed" in str(e) and not _retry_reauth: - return self._handle_reauthentication( - credentials=credentials, - project_id=project_id, - credential_cache_key=credential_cache_key, - error=e, - ) - raise e + with self._sync_refresh_lock: + # Double-check after acquiring lock + if _credentials.expired: + try: + verbose_logger.debug("Credentials expired, refreshing") + self.refresh_auth(_credentials) + self._credentials_project_mapping[credential_cache_key] = ( + _credentials, + credential_project_id, + ) + except Exception as e: + # if refresh fails, it's possible the user has re-authenticated via `gcloud auth application-default login` + # in this case, we should try to reload the credentials by clearing the cache and retrying + if "Reauthentication is needed" in str(e) and not _retry_reauth: + return self._handle_reauthentication( + credentials=credentials, + project_id=project_id, + credential_cache_key=credential_cache_key, + error=e, + ) + raise e ## VALIDATION STEP if _credentials.token is None or not isinstance(_credentials.token, str): @@ -700,6 +1017,149 @@ class VertexBase: return _credentials.token, project_id + async def get_access_token_async( + self, + credentials: Optional[VERTEX_CREDENTIALS_TYPES], + project_id: Optional[str], + ) -> Tuple[str, str]: + """ + Async version of get_access_token with single-flight refresh coordination. + + Prevents thundering herd: when credentials expire under high concurrency, + only one coroutine refreshes while others wait on the lock. Uses native + async refresh for service_account and authorized_user credentials. + """ + from google.auth.credentials import TokenState + + cache_credentials = ( + json.dumps(credentials) if isinstance(credentials, dict) else credentials + ) + credential_cache_key = (cache_credentials, project_id) + + # === FAST PATH (no lock) === + # If credentials are FRESH or STALE, return immediately without + # touching the per-key async lock. STALE tokens are still usable; + # we kick off a deduplicated background refresh so subsequent + # requests get a fresh token, but we must not serialize concurrent + # callers on the lock just to schedule that refresh. + usable = self._try_get_usable_cached_token(credential_cache_key, project_id) + if usable is not None: + cached_token, resolved_project, token_state, creds, cached_project_id = ( + usable + ) + if token_state == TokenState.STALE: + self._schedule_background_refresh( + creds, credential_cache_key, cached_project_id + ) + return cached_token, resolved_project + + # === SLOW PATH (per-key lock) === + lock = self._acquire_async_refresh_lock(credential_cache_key) + try: + async with lock: + # Double-check after acquiring lock — another coroutine may have refreshed. + cached = self._try_get_cached_token(credential_cache_key, project_id) + if cached is not None: + return cached + + _credentials, credential_project_id = self._unpack_cached_credentials( + credential_cache_key + ) + + # Load credentials if not cached + if _credentials is None: + _credentials, credential_project_id = ( + await self._load_and_cache_credentials( + credentials, project_id, credential_cache_key + ) + ) + + # Resolve project_id from credentials if not provided + if project_id is None and isinstance(credential_project_id, str): + project_id = credential_project_id + resolved_cache_key = (cache_credentials, project_id) + # Always overwrite — a pre-existing entry at the resolved + # key may reference stale credentials (e.g. from before a + # reauth that only repopulated the unresolved key), which + # would force the next request through an unnecessary + # refresh/reauth cycle. + self._credentials_project_mapping[resolved_cache_key] = ( + _credentials, + credential_project_id, + ) + + # Use google-auth's token_state to decide refresh strategy: + # - STALE: token is usable but within REFRESH_THRESHOLD (3:45) of + # expiry — return it immediately and refresh in the background. + # - INVALID: token is expired or missing — must block on refresh. + token_state = self._get_token_state(_credentials) + + if token_state == TokenState.STALE: + if project_id is None: + raise ValueError("Could not resolve project_id") + current_token = _credentials.token + if current_token is None or not isinstance(current_token, str): + # Token is malformed despite STALE state — block on a full + # refresh using the same path as INVALID credentials. + token_state = TokenState.INVALID + else: + self._schedule_background_refresh( + _credentials, + credential_cache_key, + credential_project_id, + ) + return current_token, project_id + + if token_state == TokenState.INVALID: + # Drain any in-flight background refresh before invoking + # refresh_auth ourselves; google-auth's + # Credentials.refresh() is not safe to call concurrently + # on the same credentials object, and the background task + # runs outside this lock. + await self._await_in_flight_background_refresh(credential_cache_key) + cached = self._try_get_cached_token( + credential_cache_key, project_id + ) + if cached is not None: + return cached + + # Token is expired or missing — must block until refresh completes. + try: + verbose_logger.debug("Credentials expired, refreshing") + await asyncify(self.refresh_auth)(_credentials) + self._credentials_project_mapping[credential_cache_key] = ( + _credentials, + credential_project_id, + ) + except Exception as e: + if "Reauthentication is needed" in str(e): + verbose_logger.debug( + "Reauthentication needed, clearing cache and retrying" + ) + return await self._handle_reauthentication_async( + credentials=credentials, + project_id=project_id, + credential_cache_key=credential_cache_key, + error=e, + ) + raise + + # Final validation + if _credentials.token is None or not isinstance( + _credentials.token, str + ): + raise ValueError( + "Could not resolve credentials token. Got None or non-string token (type={})".format( + type(_credentials.token).__name__ + ) + ) + if project_id is None: + raise ValueError("Could not resolve project_id") + + return _credentials.token, project_id + finally: + self._release_async_refresh_lock(credential_cache_key, lock) + async def _ensure_access_token_async( self, credentials: Optional[VERTEX_CREDENTIALS_TYPES], @@ -714,13 +1174,10 @@ class VertexBase: if custom_llm_provider == "gemini": return "", "" else: - try: - return await asyncify(self.get_access_token)( - credentials=credentials, - project_id=project_id, - ) - except Exception as e: - raise e + return await self.get_access_token_async( + credentials=credentials, + project_id=project_id, + ) def set_headers( self, auth_header: Optional[str], extra_headers: Optional[dict] diff --git a/litellm/llms/vertex_ai/vertex_model_garden/main.py b/litellm/llms/vertex_ai/vertex_model_garden/main.py index 7240d9dce57..732d5f90dc2 100644 --- a/litellm/llms/vertex_ai/vertex_model_garden/main.py +++ b/litellm/llms/vertex_ai/vertex_model_garden/main.py @@ -57,7 +57,7 @@ def create_vertex_url( class VertexAIModelGardenModels(VertexBase): def __init__(self) -> None: - pass + super().__init__() def completion( self, @@ -89,9 +89,6 @@ class VertexAIModelGardenModels(VertexBase): import vertexai from litellm.llms.openai_like.chat.handler import OpenAILikeChatHandler - from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import ( - VertexLLM, - ) except Exception as e: raise VertexAIError( status_code=400, @@ -107,9 +104,8 @@ class VertexAIModelGardenModels(VertexBase): ) try: model = get_vertex_base_model_name(model=model) - vertex_httpx_logic = VertexLLM() - access_token, project_id = vertex_httpx_logic._ensure_access_token( + access_token, project_id = self._ensure_access_token( credentials=vertex_credentials, project_id=vertex_project, custom_llm_provider="vertex_ai", diff --git a/litellm/llms/vllm/completion/transformation.py b/litellm/llms/vllm/completion/transformation.py index ec4c07e95d8..e03b07f9897 100644 --- a/litellm/llms/vllm/completion/transformation.py +++ b/litellm/llms/vllm/completion/transformation.py @@ -1,5 +1,5 @@ """ -Translates from OpenAI's `/v1/chat/completions` to the VLLM sdk `llm.generate`. +Translates from OpenAI's `/v1/chat/completions` to the VLLM sdk `llm.generate`. NOT RECOMMENDED FOR PRODUCTION USE. Use `hosted_vllm/` instead. """ diff --git a/litellm/llms/voyage/embedding/transformation_contextual.py b/litellm/llms/voyage/embedding/transformation_contextual.py index 40328062e09..1f5ca99f47d 100644 --- a/litellm/llms/voyage/embedding/transformation_contextual.py +++ b/litellm/llms/voyage/embedding/transformation_contextual.py @@ -1,6 +1,6 @@ """ -This module is used to transform the request and response for the Voyage contextualized embeddings API. -This would be used for all the contextualized embeddings models in Voyage. +This module is used to transform the request and response for the Voyage contextualized embeddings API. +This would be used for all the contextualized embeddings models in Voyage. """ from typing import List, Optional, Union diff --git a/litellm/llms/xai/chat/transformation.py b/litellm/llms/xai/chat/transformation.py index 6300868a641..7325c0596a6 100644 --- a/litellm/llms/xai/chat/transformation.py +++ b/litellm/llms/xai/chat/transformation.py @@ -1,4 +1,4 @@ -from typing import Any, AsyncIterator, Iterator, List, Optional, Tuple, Union +from typing import Any, AsyncIterator, Dict, Iterator, List, Optional, Tuple, Union import httpx @@ -26,6 +26,7 @@ from ...openai.chat.gpt_transformation import ( class XAIChatConfig(OpenAIGPTConfig): + @property def custom_llm_provider(self) -> Optional[str]: return "xai" @@ -225,21 +226,57 @@ class XAIChatConfig(OpenAIGPTConfig): verbose_logger.debug(f"Error extracting X.AI web search usage: {e}") self._fold_reasoning_tokens_into_completion(response) + self._normalize_openai_compatible_usage_totals(getattr(response, "usage", None)) return response @staticmethod - def _fold_reasoning_tokens_into_completion(model_response: ModelResponse) -> None: + def _fold_reasoning_tokens_into_completion( + target: Union[ModelResponse, Usage, Dict[str, Any], None], + ) -> None: """Reconcile xAI Usage to the OpenAI invariant. xAI accounts ``reasoning_tokens`` separately from ``completion_tokens`` while still summing them into ``total_tokens``. OpenAI's contract (o1/o3) folds reasoning into ``completion_tokens``, so fold here to keep ``total = prompt + completion``. Idempotent. + + Accepts a ``ModelResponse`` (non-streaming), a ``Usage`` object, or a + raw usage ``dict`` (streaming chunk) so streaming and non-streaming + paths stay in sync. """ - usage = getattr(model_response, "usage", None) + if target is None: + return + + if isinstance(target, ModelResponse): + usage: Union[Usage, Dict[str, Any], None] = getattr(target, "usage", None) + else: + usage = target if usage is None: return + if isinstance(usage, dict): + details = usage.get("completion_tokens_details") or {} + if isinstance(details, dict): + reasoning_tokens = int(details.get("reasoning_tokens") or 0) + else: + reasoning_tokens = int(getattr(details, "reasoning_tokens", 0) or 0) + if reasoning_tokens <= 0: + return + + prompt_tokens = int(usage.get("prompt_tokens") or 0) + completion_tokens = int(usage.get("completion_tokens") or 0) + total_tokens = int(usage.get("total_tokens") or 0) + + if total_tokens == prompt_tokens + completion_tokens: + return + + # Guard against double-counting if xAI changes accounting. + if total_tokens != prompt_tokens + completion_tokens + reasoning_tokens: + return + + usage["completion_tokens"] = completion_tokens + reasoning_tokens + return + details = getattr(usage, "completion_tokens_details", None) reasoning_tokens = ( int(getattr(details, "reasoning_tokens", 0) or 0) if details else 0 @@ -284,6 +321,25 @@ class XAIChatConfig(OpenAIGPTConfig): setattr(usage, "num_sources_used", int(num_sources_used)) verbose_logger.debug(f"X.AI web search sources used: {num_sources_used}") + @staticmethod + def _normalize_openai_compatible_usage_totals( + usage: Union[Usage, Dict[str, Any], None], + ) -> None: + if usage is None: + return + if isinstance(usage, dict): + prompt_tokens = int(usage.get("prompt_tokens") or 0) + completion_tokens = int(usage.get("completion_tokens") or 0) + expected_total = prompt_tokens + completion_tokens + if int(usage.get("total_tokens") or 0) < expected_total: + usage["total_tokens"] = expected_total + return + prompt_tokens = int(usage.prompt_tokens or 0) + completion_tokens = int(usage.completion_tokens or 0) + expected_total = prompt_tokens + completion_tokens + if int(usage.total_tokens or 0) < expected_total: + usage.total_tokens = expected_total + class XAIChatCompletionStreamingHandler(OpenAIChatCompletionStreamingHandler): def chunk_parser(self, chunk: dict) -> ModelResponseStream: @@ -304,4 +360,8 @@ class XAIChatCompletionStreamingHandler(OpenAIChatCompletionStreamingHandler): # Add a dummy choice with empty delta to ensure proper processing chunk["choices"] = [{"index": 0, "delta": {}, "finish_reason": None}] + if "usage" in chunk and chunk["usage"] is not None: + XAIChatConfig._fold_reasoning_tokens_into_completion(chunk["usage"]) + XAIChatConfig._normalize_openai_compatible_usage_totals(chunk["usage"]) + return super().chunk_parser(chunk) diff --git a/litellm/main.py b/litellm/main.py index c3d1c2e05b0..09c70998cf7 100644 --- a/litellm/main.py +++ b/litellm/main.py @@ -1491,7 +1491,9 @@ def completion( # type: ignore # noqa: PLR0915 provider.value for provider in LlmProviders ]: provider_config = ProviderConfigManager.get_provider_chat_config( - model=model, provider=LlmProviders(custom_llm_provider) + model=model, + provider=LlmProviders(custom_llm_provider), + base_model=base_model, ) if provider_config is not None: @@ -1550,6 +1552,7 @@ def completion( # type: ignore # noqa: PLR0915 "safety_identifier": safety_identifier, "service_tier": service_tier, "allowed_openai_params": kwargs.get("allowed_openai_params"), + "base_model": base_model, } optional_params = get_optional_params( **optional_param_args, **non_default_params @@ -1670,6 +1673,10 @@ def completion( # type: ignore # noqa: PLR0915 reasoning_summary=_reasoning_summary_for_bridge, ) + # Use base_model (the true underlying model) for Azure model-type + # detection when the deployment name differs from the model name. + _azure_detection_model = base_model or model + if responses_api_model_info.get("mode") == "responses": from litellm.completion_extras import responses_api_bridge @@ -1713,7 +1720,9 @@ def completion( # type: ignore # noqa: PLR0915 and OpenAIGPT5Config.is_model_gpt_5_model(model) ) or ( custom_llm_provider == "azure" - and litellm.AzureOpenAIGPT5Config.is_model_gpt_5_model(model) + and litellm.AzureOpenAIGPT5Config.is_model_gpt_5_model( + _azure_detection_model + ) ): optional_params, _ = strip_reasoning_summary_aliases_from_optional_params( optional_params @@ -1766,7 +1775,9 @@ def completion( # type: ignore # noqa: PLR0915 if max_retries is not None: optional_params["max_retries"] = max_retries - if litellm.AzureOpenAIO1Config().is_o_series_model(model=model): + if litellm.AzureOpenAIO1Config().is_o_series_model( + model=_azure_detection_model + ): ## LOAD CONFIG - if set config = litellm.AzureOpenAIO1Config.get_config() for k, v in config.items(): @@ -5116,6 +5127,24 @@ def embedding( # noqa: PLR0915 client=client, aembedding=aembedding, ) + elif custom_llm_provider == "oci": + if headers is None: + headers = {} + response = base_llm_http_handler.embedding( + model=model, + input=input, + custom_llm_provider=custom_llm_provider, + api_base=api_base, + api_key=api_key, + logging_obj=logging, + timeout=timeout, + model_response=EmbeddingResponse(), + optional_params=optional_params, + client=client, + aembedding=aembedding, + litellm_params=litellm_params_dict, + headers=headers, + ) elif custom_llm_provider == "cohere" or custom_llm_provider == "cohere_chat": cohere_key = ( api_key @@ -5720,6 +5749,33 @@ def embedding( # noqa: PLR0915 aembedding=aembedding, headers=headers, ) + elif custom_llm_provider == "dashscope": + dashscope_key = ( + api_key or litellm.api_key or get_secret_str("DASHSCOPE_API_KEY") + ) + if dashscope_key is None: + raise ValueError( + "Missing API key for DashScope. Set DASHSCOPE_API_KEY environment variable or pass api_key parameter." + ) + if extra_headers is not None and isinstance(extra_headers, dict): + headers = extra_headers + else: + headers = {} + response = base_llm_http_handler.embedding( + model=model, + input=input, + timeout=timeout, + custom_llm_provider=custom_llm_provider, + logging_obj=logging, + api_base=api_base, + optional_params=optional_params, + litellm_params={}, + model_response=EmbeddingResponse(), + api_key=dashscope_key, + client=client, + aembedding=aembedding, + headers=headers, + ) elif custom_llm_provider == "ovhcloud": api_key = api_key or litellm.api_key or get_secret_str("OVHCLOUD_API_KEY") api_base = ( @@ -5769,22 +5825,6 @@ def embedding( # noqa: PLR0915 aembedding=aembedding, litellm_params={}, ) - elif custom_llm_provider == "oci": - response = base_llm_http_handler.embedding( - model=model, - input=input, - custom_llm_provider=custom_llm_provider, - api_base=api_base, - api_key=api_key, - logging_obj=logging, - timeout=timeout, - model_response=EmbeddingResponse(), - optional_params=optional_params, - client=client, - aembedding=aembedding, - litellm_params=litellm_params_dict, - headers=headers, - ) elif custom_llm_provider in litellm._custom_providers: custom_handler: Optional[CustomLLM] = None for item in litellm.custom_provider_map: @@ -6575,8 +6615,7 @@ def transcription( api_key=api_key, ) # type: ignore - if dynamic_api_key is not None: - api_key = dynamic_api_key + api_key = dynamic_api_key if dynamic_api_key is not None else api_key optional_params = get_optional_params_transcription( model=model, @@ -6616,7 +6655,7 @@ def transcription( provider=LlmProviders(custom_llm_provider), ) - if custom_llm_provider == "azure": + if custom_llm_provider == "azure" and provider_config is None: # azure configs api_base = api_base or litellm.api_base or get_secret_str("AZURE_API_BASE") diff --git a/litellm/model_prices_and_context_window_backup.json b/litellm/model_prices_and_context_window_backup.json index fb5bfa6cf4e..62e576ea0f7 100644 --- a/litellm/model_prices_and_context_window_backup.json +++ b/litellm/model_prices_and_context_window_backup.json @@ -1448,6 +1448,35 @@ "supports_native_structured_output": true, "supports_minimal_reasoning_effort": true }, + "jp.anthropic.claude-sonnet-4-6": { + "cache_creation_input_token_cost": 4.125e-06, + "cache_read_input_token_cost": 3.3e-07, + "input_cost_per_token": 3.3e-06, + "litellm_provider": "bedrock_converse", + "max_input_tokens": 1000000, + "max_output_tokens": 64000, + "max_tokens": 64000, + "mode": "chat", + "output_cost_per_token": 1.65e-05, + "search_context_cost_per_query": { + "search_context_size_high": 0.01, + "search_context_size_low": 0.01, + "search_context_size_medium": 0.01 + }, + "supports_assistant_prefill": true, + "supports_computer_use": true, + "supports_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, + "supports_reasoning": true, + "supports_response_schema": true, + "supports_max_reasoning_effort": true, + "supports_tool_choice": true, + "supports_vision": true, + "tool_use_system_prompt_tokens": 346, + "supports_native_structured_output": true, + "supports_minimal_reasoning_effort": true + }, "anthropic.claude-sonnet-4-20250514-v1:0": { "cache_creation_input_token_cost": 3.75e-06, "cache_read_input_token_cost": 3e-07, @@ -6025,6 +6054,17 @@ "mode": "audio_speech", "source": "https://azure.microsoft.com/en-us/pricing/calculator/" }, + "azure/speech/azure-stt": { + "audio_transcription_config": "azure_speech", + "input_cost_per_second": 0.0002777778, + "litellm_provider": "azure", + "mode": "audio_transcription", + "output_cost_per_second": 0.0, + "source": "https://azure.microsoft.com/en-us/pricing/details/cognitive-services/speech-services/", + "supported_endpoints": [ + "/v1/audio/transcriptions" + ] + }, "azure/tts-1": { "input_cost_per_character": 1.5e-05, "litellm_provider": "azure", @@ -9602,6 +9642,7 @@ "search_context_size_low": 0.01, "search_context_size_medium": 0.01 }, + "supports_adaptive_thinking": true, "supports_assistant_prefill": true, "supports_computer_use": true, "supports_function_calling": true, @@ -9795,6 +9836,7 @@ "search_context_size_low": 0.01, "search_context_size_medium": 0.01 }, + "supports_adaptive_thinking": true, "supports_assistant_prefill": false, "supports_computer_use": true, "supports_function_calling": true, @@ -9828,6 +9870,7 @@ "search_context_size_low": 0.01, "search_context_size_medium": 0.01 }, + "supports_adaptive_thinking": true, "supports_assistant_prefill": false, "supports_computer_use": true, "supports_function_calling": true, @@ -9861,6 +9904,7 @@ "search_context_size_low": 0.01, "search_context_size_medium": 0.01 }, + "supports_adaptive_thinking": true, "supports_assistant_prefill": false, "supports_computer_use": true, "supports_function_calling": true, @@ -9895,6 +9939,7 @@ "search_context_size_low": 0.01, "search_context_size_medium": 0.01 }, + "supports_adaptive_thinking": true, "supports_assistant_prefill": false, "supports_computer_use": true, "supports_function_calling": true, @@ -13948,6 +13993,21 @@ "supports_response_schema": true, "supports_tool_choice": true }, + "fireworks_ai/accounts/fireworks/models/glm-5p1": { + "cache_read_input_token_cost": 2.6e-07, + "input_cost_per_token": 1.4e-06, + "litellm_provider": "fireworks_ai", + "max_input_tokens": 202800, + "max_output_tokens": 202800, + "max_tokens": 202800, + "mode": "chat", + "output_cost_per_token": 4.4e-06, + "source": "https://fireworks.ai/models/fireworks/glm-5p1", + "supports_function_calling": false, + "supports_reasoning": true, + "supports_response_schema": false, + "supports_tool_choice": false + }, "fireworks_ai/accounts/fireworks/models/gpt-oss-120b": { "input_cost_per_token": 1.5e-07, "litellm_provider": "fireworks_ai", @@ -14214,6 +14274,21 @@ "supports_response_schema": true, "supports_tool_choice": true }, + "fireworks_ai/glm-5p1": { + "cache_read_input_token_cost": 2.6e-07, + "input_cost_per_token": 1.4e-06, + "litellm_provider": "fireworks_ai", + "max_input_tokens": 202800, + "max_output_tokens": 202800, + "max_tokens": 202800, + "mode": "chat", + "output_cost_per_token": 4.4e-06, + "source": "https://fireworks.ai/models/fireworks/glm-5p1", + "supports_function_calling": false, + "supports_reasoning": true, + "supports_response_schema": false, + "supports_tool_choice": false + }, "fireworks_ai/kimi-k2p5": { "cache_read_input_token_cost": 1e-07, "input_cost_per_token": 6e-07, @@ -14883,7 +14958,65 @@ "mode": "chat", "output_cost_per_reasoning_token": 1.5e-06, "output_cost_per_token": 1.5e-06, - "source": "https://ai.google.dev/gemini-api/docs/models", + "source": "https://cloud.google.com/vertex-ai/generative-ai/pricing#gemini-models", + "supported_endpoints": [ + "/v1/chat/completions", + "/v1/completions", + "/v1/batch" + ], + "supported_modalities": [ + "text", + "image", + "audio", + "video" + ], + "supported_output_modalities": [ + "text" + ], + "supports_audio_input": true, + "supports_audio_output": false, + "supports_code_execution": true, + "supports_file_search": true, + "supports_function_calling": true, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, + "supports_reasoning": true, + "supports_response_schema": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_url_context": true, + "supports_video_input": true, + "supports_vision": true, + "supports_web_search": true, + "supports_native_streaming": true, + "search_context_cost_per_query": { + "search_context_size_low": 0.014, + "search_context_size_medium": 0.014, + "search_context_size_high": 0.014 + }, + "web_search_billing_unit": "per_query", + "supports_service_tier": true + }, + "gemini-3.1-flash-lite": { + "cache_read_input_token_cost": 4.5e-08, + "cache_read_input_token_cost_per_audio_token": 9e-08, + "input_cost_per_audio_token": 9e-07, + "input_cost_per_token": 4.5e-07, + "litellm_provider": "vertex_ai-language-models", + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_images_per_prompt": 3000, + "max_input_tokens": 1048576, + "max_output_tokens": 65536, + "max_pdf_size_mb": 30, + "max_tokens": 65536, + "max_video_length": 1, + "max_videos_per_prompt": 10, + "mode": "chat", + "output_cost_per_reasoning_token": 2.7e-06, + "output_cost_per_token": 2.7e-06, + "source": "https://cloud.google.com/vertex-ai/generative-ai/pricing#gemini-models", "supported_endpoints": [ "/v1/chat/completions", "/v1/completions", @@ -15611,6 +15744,64 @@ }, "web_search_billing_unit": "per_query" }, + "vertex_ai/gemini-3.5-flash": { + "cache_read_input_token_cost": 1.5e-07, + "input_cost_per_token": 1.5e-06, + "input_cost_per_audio_token": 1e-06, + "litellm_provider": "vertex_ai", + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_images_per_prompt": 3000, + "max_input_tokens": 1048576, + "max_output_tokens": 65535, + "max_pdf_size_mb": 30, + "max_tokens": 65535, + "max_video_length": 1, + "max_videos_per_prompt": 10, + "mode": "chat", + "output_cost_per_reasoning_token": 9e-06, + "output_cost_per_token": 9e-06, + "source": "https://cloud.google.com/vertex-ai/generative-ai/pricing", + "supported_endpoints": [ + "/v1/chat/completions", + "/v1/completions", + "/v1/batch" + ], + "supported_modalities": [ + "text", + "image", + "audio", + "video" + ], + "supported_output_modalities": [ + "text" + ], + "supports_audio_input": true, + "supports_function_calling": true, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, + "supports_reasoning": true, + "supports_response_schema": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_url_context": true, + "supports_video_input": true, + "supports_vision": true, + "supports_web_search": true, + "supports_native_streaming": true, + "input_cost_per_token_priority": 2.7e-06, + "input_cost_per_audio_token_priority": 1.8e-06, + "output_cost_per_token_priority": 1.62e-05, + "cache_read_input_token_cost_priority": 2.7e-07, + "supports_service_tier": true, + "search_context_cost_per_query": { + "search_context_size_low": 0.014, + "search_context_size_medium": 0.014, + "search_context_size_high": 0.014 + }, + "web_search_billing_unit": "per_query" + }, "vertex_ai/gemini-3.1-pro-preview": { "cache_read_input_token_cost": 2e-07, "cache_read_input_token_cost_above_200k_tokens": 4e-07, @@ -16929,6 +17120,66 @@ "web_search_billing_unit": "per_query", "supports_service_tier": true }, + "gemini/gemini-3.1-flash-lite": { + "cache_read_input_token_cost": 4.5e-08, + "cache_read_input_token_cost_per_audio_token": 9e-08, + "input_cost_per_audio_token": 9e-07, + "input_cost_per_token": 4.5e-07, + "litellm_provider": "gemini", + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_images_per_prompt": 3000, + "max_input_tokens": 1048576, + "max_output_tokens": 65536, + "max_pdf_size_mb": 30, + "max_tokens": 65536, + "max_video_length": 1, + "max_videos_per_prompt": 10, + "mode": "chat", + "output_cost_per_reasoning_token": 2.7e-06, + "output_cost_per_token": 2.7e-06, + "rpm": 15, + "source": "https://ai.google.dev/gemini-api/docs/pricing", + "supported_endpoints": [ + "/v1/chat/completions", + "/v1/completions", + "/v1/batch" + ], + "supported_modalities": [ + "text", + "image", + "audio", + "video" + ], + "supported_output_modalities": [ + "text" + ], + "supports_audio_input": true, + "supports_audio_output": false, + "supports_code_execution": true, + "supports_file_search": true, + "supports_function_calling": true, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, + "supports_reasoning": true, + "supports_response_schema": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_url_context": true, + "supports_video_input": true, + "supports_vision": true, + "supports_web_search": true, + "supports_native_streaming": true, + "tpm": 250000, + "search_context_cost_per_query": { + "search_context_size_low": 0.014, + "search_context_size_medium": 0.014, + "search_context_size_high": 0.014 + }, + "web_search_billing_unit": "per_query", + "supports_service_tier": true + }, "gemini/gemini-3-flash-preview": { "cache_read_input_token_cost": 5e-08, "input_cost_per_audio_token": 1e-06, @@ -16988,6 +17239,67 @@ }, "web_search_billing_unit": "per_query" }, + "gemini/gemini-3.5-flash": { + "cache_read_input_token_cost": 1.5e-07, + "input_cost_per_audio_token": 1e-06, + "input_cost_per_token": 1.5e-06, + "litellm_provider": "gemini", + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_images_per_prompt": 3000, + "max_input_tokens": 1048576, + "max_output_tokens": 65535, + "max_pdf_size_mb": 30, + "max_tokens": 65535, + "max_video_length": 1, + "max_videos_per_prompt": 10, + "mode": "chat", + "output_cost_per_reasoning_token": 9e-06, + "output_cost_per_token": 9e-06, + "rpm": 2000, + "source": "https://ai.google.dev/pricing/gemini-3", + "supported_endpoints": [ + "/v1/chat/completions", + "/v1/completions", + "/v1/batch" + ], + "supported_modalities": [ + "text", + "image", + "audio", + "video" + ], + "supported_output_modalities": [ + "text" + ], + "supports_audio_output": false, + "supports_audio_input": true, + "supports_function_calling": true, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, + "supports_reasoning": true, + "supports_response_schema": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_url_context": true, + "supports_video_input": true, + "supports_vision": true, + "supports_web_search": true, + "supports_native_streaming": true, + "tpm": 800000, + "input_cost_per_token_priority": 2.7e-06, + "input_cost_per_audio_token_priority": 1.8e-06, + "output_cost_per_token_priority": 1.62e-05, + "cache_read_input_token_cost_priority": 2.7e-07, + "supports_service_tier": true, + "search_context_cost_per_query": { + "search_context_size_low": 0.014, + "search_context_size_medium": 0.014, + "search_context_size_high": 0.014 + }, + "web_search_billing_unit": "per_query" + }, "gemini/gemini-3.1-pro-preview": { "cache_read_input_token_cost": 2e-07, "cache_read_input_token_cost_above_200k_tokens": 4e-07, @@ -17173,6 +17485,65 @@ }, "web_search_billing_unit": "per_query" }, + "gemini-3.5-flash": { + "cache_read_input_token_cost": 1.5e-07, + "input_cost_per_audio_token": 1e-06, + "input_cost_per_token": 1.5e-06, + "litellm_provider": "vertex_ai-language-models", + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_images_per_prompt": 3000, + "max_input_tokens": 1048576, + "max_output_tokens": 65535, + "max_pdf_size_mb": 30, + "max_tokens": 65535, + "max_video_length": 1, + "max_videos_per_prompt": 10, + "mode": "chat", + "output_cost_per_reasoning_token": 9e-06, + "output_cost_per_token": 9e-06, + "source": "https://ai.google.dev/pricing/gemini-3", + "supported_endpoints": [ + "/v1/chat/completions", + "/v1/completions", + "/v1/batch" + ], + "supported_modalities": [ + "text", + "image", + "audio", + "video" + ], + "supported_output_modalities": [ + "text" + ], + "supports_audio_output": false, + "supports_audio_input": true, + "supports_function_calling": true, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, + "supports_reasoning": true, + "supports_response_schema": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_url_context": true, + "supports_video_input": true, + "supports_vision": true, + "supports_web_search": true, + "supports_native_streaming": true, + "input_cost_per_token_priority": 2.7e-06, + "input_cost_per_audio_token_priority": 1.8e-06, + "output_cost_per_token_priority": 1.62e-05, + "cache_read_input_token_cost_priority": 2.7e-07, + "supports_service_tier": true, + "search_context_cost_per_query": { + "search_context_size_low": 0.014, + "search_context_size_medium": 0.014, + "search_context_size_high": 0.014 + }, + "web_search_billing_unit": "per_query" + }, "gemini/gemini-2.5-pro-preview-tts": { "cache_read_input_token_cost": 1.25e-07, "cache_read_input_token_cost_above_200k_tokens": 2.5e-07, @@ -24107,6 +24478,21 @@ "supports_tool_choice": true, "supports_vision": true }, + "mistral/ministral-8b-2512": { + "input_cost_per_token": 1.5e-07, + "litellm_provider": "mistral", + "max_input_tokens": 262144, + "max_output_tokens": 262144, + "max_tokens": 262144, + "mode": "chat", + "output_cost_per_token": 1.5e-07, + "source": "https://mistral.ai/pricing", + "supports_assistant_prefill": true, + "supports_function_calling": true, + "supports_response_schema": true, + "supports_tool_choice": true, + "supports_vision": true + }, "mistral/mistral-tiny": { "input_cost_per_token": 2.5e-07, "litellm_provider": "mistral", @@ -25922,6 +26308,51 @@ "supports_function_calling": true, "supports_response_schema": false }, + "oci/openai.gpt-5": { + "input_cost_per_token": 1.25e-06, + "litellm_provider": "oci", + "max_input_tokens": 272000, + "max_output_tokens": 128000, + "max_tokens": 128000, + "mode": "chat", + "output_cost_per_token": 1e-05, + "source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing", + "supports_function_calling": true, + "supports_native_streaming": true, + "supports_reasoning": true, + "supports_response_schema": true, + "supports_vision": true + }, + "oci/openai.gpt-5-mini": { + "input_cost_per_token": 2.5e-07, + "litellm_provider": "oci", + "max_input_tokens": 272000, + "max_output_tokens": 128000, + "max_tokens": 128000, + "mode": "chat", + "output_cost_per_token": 2e-06, + "source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing", + "supports_function_calling": true, + "supports_native_streaming": true, + "supports_reasoning": true, + "supports_response_schema": true, + "supports_vision": true + }, + "oci/openai.gpt-5-nano": { + "input_cost_per_token": 5e-08, + "litellm_provider": "oci", + "max_input_tokens": 272000, + "max_output_tokens": 128000, + "max_tokens": 128000, + "mode": "chat", + "output_cost_per_token": 4e-07, + "source": "https://www.oracle.com/artificial-intelligence/generative-ai/generative-ai-service/pricing", + "supports_function_calling": true, + "supports_native_streaming": true, + "supports_reasoning": true, + "supports_response_schema": true, + "supports_vision": true + }, "oci/google.gemini-2.5-pro": { "input_cost_per_token": 1.25e-06, "litellm_provider": "oci", @@ -26951,6 +27382,58 @@ "supports_web_search": true, "tpm": 800000 }, + "openrouter/google/gemini-3.1-flash-lite": { + "cache_read_input_token_cost": 2.5e-08, + "cache_read_input_token_cost_per_audio_token": 5e-08, + "input_cost_per_audio_token": 5e-07, + "input_cost_per_token": 2.5e-07, + "litellm_provider": "openrouter", + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_images_per_prompt": 3000, + "max_input_tokens": 1048576, + "max_output_tokens": 65536, + "max_pdf_size_mb": 30, + "max_tokens": 65536, + "max_video_length": 1, + "max_videos_per_prompt": 10, + "mode": "chat", + "output_cost_per_reasoning_token": 1.5e-06, + "output_cost_per_token": 1.5e-06, + "rpm": 2000, + "source": "https://ai.google.dev/gemini-api/docs/pricing#gemini-3.1-flash-lite", + "supported_endpoints": [ + "/v1/chat/completions", + "/v1/completions", + "/v1/batch" + ], + "supported_modalities": [ + "text", + "image", + "audio", + "video" + ], + "supported_output_modalities": [ + "text" + ], + "supports_audio_input": true, + "supports_audio_output": false, + "supports_code_execution": true, + "supports_file_search": true, + "supports_function_calling": true, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, + "supports_reasoning": true, + "supports_response_schema": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_url_context": true, + "supports_video_input": true, + "supports_vision": true, + "supports_web_search": true, + "tpm": 800000 + }, "openrouter/google/gemini-3.1-pro-preview": { "cache_read_input_token_cost": 2e-07, "cache_read_input_token_cost_above_200k_tokens": 4e-07, @@ -28725,6 +29208,24 @@ "supports_tool_choice": true, "source": "https://aws.amazon.com/bedrock/pricing/" }, + "reducto/parse-legacy": { + "litellm_provider": "reducto", + "mode": "ocr", + "ocr_cost_per_credit": 0.015, + "source": "https://reducto.ai/pricing", + "supported_endpoints": [ + "/v1/ocr" + ] + }, + "reducto/parse-v3": { + "litellm_provider": "reducto", + "mode": "ocr", + "ocr_cost_per_credit": 0.015, + "source": "https://reducto.ai/pricing", + "supported_endpoints": [ + "/v1/ocr" + ] + }, "recraft/recraftv2": { "litellm_provider": "recraft", "mode": "image_generation", @@ -33427,6 +33928,64 @@ }, "web_search_billing_unit": "per_query" }, + "vertex_ai/gemini-3.1-flash-lite": { + "cache_read_input_token_cost": 4.5e-08, + "cache_read_input_token_cost_per_audio_token": 9e-08, + "input_cost_per_audio_token": 9e-07, + "input_cost_per_token": 4.5e-07, + "litellm_provider": "vertex_ai-language-models", + "max_audio_length_hours": 8.4, + "max_audio_per_prompt": 1, + "max_images_per_prompt": 3000, + "max_input_tokens": 1048576, + "max_output_tokens": 65536, + "max_pdf_size_mb": 30, + "max_tokens": 65536, + "max_video_length": 1, + "max_videos_per_prompt": 10, + "mode": "chat", + "output_cost_per_reasoning_token": 2.7e-06, + "output_cost_per_token": 2.7e-06, + "source": "https://cloud.google.com/vertex-ai/generative-ai/pricing#gemini-models", + "supported_endpoints": [ + "/v1/chat/completions", + "/v1/completions", + "/v1/batch" + ], + "supported_modalities": [ + "text", + "image", + "audio", + "video" + ], + "supported_output_modalities": [ + "text" + ], + "supports_audio_input": true, + "supports_audio_output": false, + "supports_code_execution": true, + "supports_file_search": true, + "supports_function_calling": true, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, + "supports_reasoning": true, + "supports_response_schema": true, + "supports_system_messages": true, + "supports_tool_choice": true, + "supports_url_context": true, + "supports_video_input": true, + "supports_vision": true, + "supports_web_search": true, + "supports_native_streaming": true, + "search_context_cost_per_query": { + "search_context_size_low": 0.014, + "search_context_size_medium": 0.014, + "search_context_size_high": 0.014 + }, + "web_search_billing_unit": "per_query", + "supports_service_tier": true + }, "vertex_ai/deep-research-pro-preview-12-2025": { "input_cost_per_image": 0.0011, "input_cost_per_token": 2e-06, diff --git a/litellm/passthrough/utils.py b/litellm/passthrough/utils.py index d39a0dda152..9484922833a 100644 --- a/litellm/passthrough/utils.py +++ b/litellm/passthrough/utils.py @@ -71,6 +71,11 @@ class BasePassthroughUtils: request_headers.pop("content-length", None) request_headers.pop("host", None) + custom_header_names = {header_name.lower() for header_name in headers} + for header_name in list(request_headers.keys()): + if header_name.lower() in custom_header_names: + request_headers.pop(header_name, None) + # Combine request headers with custom headers headers = {**request_headers, **headers} diff --git a/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py b/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py index d1b49039e8e..d0e9ad7b2a4 100644 --- a/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py +++ b/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py @@ -12,6 +12,7 @@ import hashlib import json import os import re +import time from typing import Any, Callable, Dict, List, Literal, Optional, Set, Tuple, Union, cast from urllib.parse import urlparse @@ -250,6 +251,10 @@ class MCPServerManager: } """ self._upstream_initialize_instructions_by_server_id: Dict[str, str] = {} + # Per-server monotonic timestamp of last upstream prefetch attempt (success, + # empty result, or failure). Used to throttle re-probes for servers that do + # not return instructions, and to apply a short cooldown after failures. + self._upstream_initialize_instructions_probed_at: Dict[str, float] = {} def _remember_upstream_initialize_instructions( self, server: MCPServer, client: MCPClient @@ -260,6 +265,80 @@ class MCPServerManager: raw ).strip() + async def _ensure_upstream_initialize_instructions_cached( + self, server: MCPServer + ) -> None: + """ + Open one upstream session and cache InitializeResult.instructions if missing. + + No-op when: + - YAML/DB instructions are set on the server record, + - server is OpenAPI (spec_path), + - non-empty upstream instructions are already cached, + - auth preconditions match health_check_server's skip rules + (per-user auth / missing static auth token), + - a prior probe attempt for this server is within + MCP_HEALTH_CHECK_TIMEOUT seconds (the probe is a health-check-shaped + op and already uses this knob for its inner call timeout; reusing it + as the cooldown avoids reconnecting on every gateway initialize when + upstream returns empty or fails). + """ + if server.spec_path: + return + if server.instructions and server.instructions.strip(): + return + if self._upstream_initialize_instructions_by_server_id.get(server.server_id): + return + if server.requires_per_user_auth: + return + if ( + server.auth_type + and server.auth_type != MCPAuth.none + and server.auth_type != MCPAuth.aws_sigv4 + and not server.authentication_token + ): + return + + last_probed_at = self._upstream_initialize_instructions_probed_at.get( + server.server_id + ) + if ( + last_probed_at is not None + and (time.monotonic() - last_probed_at) < MCP_HEALTH_CHECK_TIMEOUT + ): + return + + # Record the attempt up-front so that a failure / empty response does not + # cause every subsequent initialize request to re-open the upstream session. + self._upstream_initialize_instructions_probed_at[server.server_id] = ( + time.monotonic() + ) + + try: + extra_headers: Optional[Dict[str, str]] = ( + dict(server.static_headers) if server.static_headers else None + ) + client = await self._create_mcp_client( + server=server, + mcp_auth_header=None, + extra_headers=extra_headers, + stdio_env=None, + ) + + async def _noop(_session): + return "ok" + + await asyncio.wait_for( + client.run_with_session(_noop), timeout=MCP_HEALTH_CHECK_TIMEOUT + ) + self._remember_upstream_initialize_instructions(server, client) + except Exception as e: + verbose_logger.debug( + "Upstream initialize instructions prefetch failed for %s: %s", + server.name, + e, + ) + def get_registry(self) -> Dict[str, MCPServer]: """ Get the registered MCP Servers from the registry and union with the config MCP Servers @@ -280,6 +359,7 @@ class MCPServerManager: """ verbose_logger.debug("Loading MCP Servers from config-----") self._upstream_initialize_instructions_by_server_id.clear() + self._upstream_initialize_instructions_probed_at.clear() # Track which aliases have been used to ensure only first occurrence is used used_aliases = set() @@ -1212,11 +1292,17 @@ class MCPServerManager: return [] # Get server-specific auth header if available - server_auth_header = None - if mcp_server_auth_headers and server.alias: - server_auth_header = mcp_server_auth_headers.get(server.alias) - elif mcp_server_auth_headers and server.server_name: - server_auth_header = mcp_server_auth_headers.get(server.server_name) + server_auth_header: Optional[Union[str, Dict[str, str]]] = None + if mcp_server_auth_headers: + from litellm.proxy._experimental.mcp_server.utils import ( + lookup_mcp_server_auth_in_headers, + ) + + server_auth_header = lookup_mcp_server_auth_in_headers( + mcp_server_auth_headers, + alias=server.alias, + server_name=server.server_name, + ) # Fall back to deprecated mcp_auth_header if no server-specific header found if server_auth_header is None: @@ -1226,6 +1312,7 @@ class MCPServerManager: tools = await self._get_tools_from_server( server=server, mcp_auth_header=server_auth_header, + user_api_key_auth=user_api_key_auth, ) return tools except Exception as e: @@ -1406,6 +1493,7 @@ class MCPServerManager: extra_headers: Optional[Dict[str, str]] = None, add_prefix: bool = True, raw_headers: Optional[Dict[str, str]] = None, + user_api_key_auth: Optional[UserAPIKeyAuth] = None, ) -> List[MCPTool]: """ Helper method to get tools from a single MCP server with prefixed names. @@ -1432,6 +1520,46 @@ class MCPServerManager: extra_headers = {} extra_headers.update(server.static_headers) + # MCPJWTSigner: inject signed JWT for tools/list (list path skips pre_call_hook). + # Skip entirely when the signer is not configured (avoid an unnecessary + # dict copy on every list call), when the server has its own static + # Authorization header, when a per-user mcp_auth_header has already + # been resolved, or when the caller already supplied an Authorization + # entry in extra_headers (e.g. a per-user OAuth token resolved + # upstream) — admin-configured static auth and per-user OAuth must + # take precedence so the signer doesn't silently overwrite e.g. an + # upstream API key or a user's OAuth token (MCPClient._get_auth_headers + # applies extra_headers after writing Authorization from auth_value, so + # an injected JWT would otherwise clobber the per-user token). + if user_api_key_auth is not None and not server.spec_path: + from litellm.proxy.guardrails.guardrail_hooks.mcp_jwt_signer.mcp_jwt_signer import ( + get_mcp_jwt_signer, + inject_mcp_jwt_headers_for_upstream, + ) + + static_headers = server.static_headers or {} + has_static_authorization = any( + isinstance(k, str) and k.lower() == "authorization" + for k in static_headers.keys() + ) + has_extra_authorization = bool(extra_headers) and any( + isinstance(k, str) and k.lower() == "authorization" + for k in (extra_headers or {}).keys() + ) + + if ( + get_mcp_jwt_signer() is not None + and not has_static_authorization + and not mcp_auth_header + and not has_extra_authorization + ): + extra_headers = await inject_mcp_jwt_headers_for_upstream( + user_api_key_dict=user_api_key_auth, + extra_headers=extra_headers, + raw_headers=raw_headers, + for_list_tools=True, + ) + stdio_env = self._build_stdio_env(server, raw_headers) client = await self._create_mcp_client( @@ -2665,16 +2793,15 @@ class MCPServerManager: server_auth_header: Optional[Union[Dict[str, str], str]] = None if mcp_server_auth_headers: # Normalize keys for case-insensitive lookup - normalized_headers = { - k.lower(): v for k, v in mcp_server_auth_headers.items() - } + from litellm.proxy._experimental.mcp_server.utils import ( + lookup_mcp_server_auth_in_headers, + ) - if mcp_server.alias: - server_auth_header = normalized_headers.get(mcp_server.alias.lower()) - if server_auth_header is None and mcp_server.server_name: - server_auth_header = normalized_headers.get( - mcp_server.server_name.lower() - ) + server_auth_header = lookup_mcp_server_auth_in_headers( + mcp_server_auth_headers, + alias=mcp_server.alias, + server_name=mcp_server.server_name, + ) # Fall back to deprecated mcp_auth_header if no server-specific header found if server_auth_header is None: @@ -2791,6 +2918,112 @@ class MCPServerManager: return cast(CallToolResult, result) + def _resolve_mcp_server_for_tool_call( + self, + server_name: str, + name: str, + ) -> MCPServer: + """Resolve MCP server for call_tool (prefixed name, registry, fallback).""" + prefixed_tool_name = add_server_prefix_to_name(name, server_name) + mcp_server = self._get_mcp_server_from_tool_name(prefixed_tool_name) + resolved_by_server_name_only = False + normalized_server_name = normalize_server_name(server_name) + + def _candidate_matches_server_name(candidate: MCPServer) -> bool: + for identifier in ( + candidate.alias, + candidate.server_name, + candidate.name, + ): + if identifier and normalize_server_name(identifier) == ( + normalized_server_name + ): + return True + return False + + if mcp_server is None: + for candidate in self.get_registry().values(): + if _candidate_matches_server_name(candidate): + mcp_server = candidate + resolved_by_server_name_only = True + break + if mcp_server is None: + fallback = self._get_mcp_server_from_tool_name(name) + if fallback is not None and ( + not server_name or _candidate_matches_server_name(fallback) + ): + mcp_server = fallback + if mcp_server is None: + raise ValueError(f"Tool {name} not found") + + if resolved_by_server_name_only: + tool_known = ( + name in self.tool_name_to_mcp_server_name_mapping + or prefixed_tool_name in self.tool_name_to_mcp_server_name_mapping + ) + if not tool_known: + raise ValueError(f"Tool {name} not found") + + return mcp_server + + async def _resolve_oauth2_headers_for_tool_call( + self, + mcp_server: MCPServer, + oauth2_headers: Optional[Dict[str, str]], + user_api_key_auth: Optional[UserAPIKeyAuth], + ) -> Optional[Dict[str, str]]: + """Look up per-user OAuth headers when the client did not supply a token.""" + if ( + not mcp_server.needs_user_oauth_token + or oauth2_headers + or user_api_key_auth is None + ): + return oauth2_headers + + user_id = getattr(user_api_key_auth, "user_id", None) + if not user_id: + return oauth2_headers + + try: + from litellm.proxy._experimental.mcp_server.server import ( # noqa: PLC0415 + _get_user_oauth_extra_headers_from_db, + ) + + stored_headers = await _get_user_oauth_extra_headers_from_db( + server=mcp_server, + user_api_key_auth=user_api_key_auth, + ) + if stored_headers: + return stored_headers + except Exception as _lookup_exc: + verbose_logger.debug( + "call_tool: per-user token lookup failed for " "user=%s server=%s: %s", + user_id, + mcp_server.server_id, + _lookup_exc, + ) + return oauth2_headers + + async def _gather_openapi_tool_tasks( + self, + tasks: List[Any], + proxy_logging_obj: Optional[ProxyLogging], + ) -> CallToolResult: + """Await OpenAPI tool tasks and return the tool call result.""" + try: + mcp_responses = await asyncio.gather(*tasks) + result_index = 1 if proxy_logging_obj else 0 + return cast(CallToolResult, mcp_responses[result_index]) + except ( + BlockedPiiEntityError, + GuardrailRaisedException, + HTTPException, + ) as e: + verbose_logger.error( + f"Guardrail blocked MCP tool call during result check: {str(e)}" + ) + raise e + async def call_tool( self, server_name: str, @@ -2821,12 +3054,7 @@ class MCPServerManager: CallToolResult from the MCP server """ start_time = datetime.datetime.now() - - # Get the MCP server - prefixed_tool_name = add_server_prefix_to_name(name, server_name) - mcp_server = self._get_mcp_server_from_tool_name(prefixed_tool_name) - if mcp_server is None: - raise ValueError(f"Tool {name} not found") + mcp_server = self._resolve_mcp_server_for_tool_call(server_name, name) ######################################################### # Pre MCP Tool Call Hook @@ -2860,36 +3088,9 @@ class MCPServerManager: ) tasks.append(during_hook_task) - # For per-user OAuth servers: if the client didn't supply a token in - # oauth2_headers, look up the stored token from Redis / DB. This is the - # call_tool equivalent of _get_user_oauth_extra_headers_from_db used in - # list_tools. - if ( - mcp_server.needs_user_oauth_token - and not oauth2_headers - and user_api_key_auth is not None - ): - user_id = getattr(user_api_key_auth, "user_id", None) - if user_id: - try: - from litellm.proxy._experimental.mcp_server.server import ( # noqa: PLC0415 - _get_user_oauth_extra_headers_from_db, - ) - - stored_headers = await _get_user_oauth_extra_headers_from_db( - server=mcp_server, - user_api_key_auth=user_api_key_auth, - ) - if stored_headers: - oauth2_headers = stored_headers - except Exception as _lookup_exc: - verbose_logger.debug( - "call_tool: per-user token lookup failed for " - "user=%s server=%s: %s", - user_id, - mcp_server.server_id, - _lookup_exc, - ) + oauth2_headers = await self._resolve_oauth2_headers_for_tool_call( + mcp_server, oauth2_headers, user_api_key_auth + ) # For OpenAPI servers, call the tool handler directly instead of via MCP client if mcp_server.spec_path: @@ -2925,26 +3126,7 @@ class MCPServerManager: hook_extra_headers=hook_result.get("extra_headers"), ) - # For OpenAPI tools, await outside the client context - try: - mcp_responses = await asyncio.gather(*tasks) - - # If proxy_logging_obj is None, the tool call result is at index 0 - # If proxy_logging_obj is not None, the tool call result is at index 1 (after the during hook task) - result_index = 1 if proxy_logging_obj else 0 - result = mcp_responses[result_index] - - return cast(CallToolResult, result) - except ( - BlockedPiiEntityError, - GuardrailRaisedException, - HTTPException, - ) as e: - # Re-raise guardrail exceptions to properly fail the MCP call - verbose_logger.error( - f"Guardrail blocked MCP tool call during result check: {str(e)}" - ) - raise e + return await self._gather_openapi_tool_tasks(tasks, proxy_logging_obj) ######################################################### # End of Methods that call the upstream MCP servers @@ -3039,6 +3221,7 @@ class MCPServerManager: verbose_logger.debug("Loading MCP servers from database into registry...") self._upstream_initialize_instructions_by_server_id.clear() + self._upstream_initialize_instructions_probed_at.clear() # perform authz check to filter the mcp servers user has access to prisma_client = get_prisma_client_or_throw( diff --git a/litellm/proxy/_experimental/mcp_server/oauth_utils.py b/litellm/proxy/_experimental/mcp_server/oauth_utils.py index 8541a691e88..e8b591c39cf 100644 --- a/litellm/proxy/_experimental/mcp_server/oauth_utils.py +++ b/litellm/proxy/_experimental/mcp_server/oauth_utils.py @@ -3,8 +3,8 @@ import os from ipaddress import ip_address -from typing import List, Optional -from urllib.parse import urlparse, urlunparse +from typing import Any, Dict, List, NoReturn, Optional +from urllib.parse import ParseResult, urlparse, urlunparse from fastapi import HTTPException, Request @@ -29,10 +29,47 @@ _DEFAULT_PORTS = {"http": 80, "https": 443} # subdomain. HTTPS only. _TRUSTED_REDIRECT_ORIGINS_ENV = "MCP_TRUSTED_REDIRECT_ORIGINS" +# Comma-separated private-use URI allowlist for native MCP clients. +# A trailing ``*`` is a prefix match; end the prefix with ``/`` (e.g. +# ``myapp://host/oauth/*``) so ``.../oauth/callback*`` does not also +# match ``.../oauth/callback-2``. +_TRUSTED_NATIVE_REDIRECT_URIS_ENV = "MCP_TRUSTED_NATIVE_REDIRECT_URIS" + +# Default allowlist for trusted native redirect URIs. +_DEFAULT_NATIVE_REDIRECT_URIS: List[str] = [ + "cursor://anysphere.cursor-mcp/oauth/callback", +] _warned_invalid_proxy_base_url: Optional[str] = None +def _oauth_invalid_request( + error_description: str, + *, + hint: Optional[str] = None, + **extra: Any, +) -> NoReturn: + """Raise ``invalid_request`` (RFC 6749) with a debuggable description. + + FastAPI serializes ``detail`` as JSON. Callers still see ``error``: + ``invalid_request``; ``error_description`` and ``hint`` explain what + failed and how to fix it (e.g. reverse-proxy / PROXY_BASE_URL issues). + """ + detail: Dict[str, Any] = { + "error": "invalid_request", + "error_description": error_description, + } + if hint: + detail["hint"] = hint + detail.update(extra) + raise HTTPException(status_code=400, detail=detail) + + +def _origin_label(scheme: str, netloc: str) -> str: + """Human-readable origin for error messages (scheme + host[:port]).""" + return f"{scheme}://{netloc}" if netloc else f"{scheme}://" + + def _resolve_proxy_base_url_env() -> Optional[str]: global _warned_invalid_proxy_base_url configured = os.environ.get("PROXY_BASE_URL", "").strip() @@ -108,17 +145,15 @@ def validate_loopback_redirect_uri(redirect_uri: str) -> None: ``"127.0.0.1"`` alone would miss ``127.0.0.2`` and the full-form IPv6 loopback ``0:0:0:0:0:0:0:1``. """ - try: - parsed = urlparse(redirect_uri) - except ValueError: - raise HTTPException(status_code=400, detail="invalid_request") + parsed = _parse_redirect_uri_for_validation(redirect_uri) if parsed.scheme not in ("http", "https"): - raise HTTPException(status_code=400, detail="invalid_request") - # Fragments are not allowed in OAuth redirect URIs (RFC 6749 §3.1.2) - # — rejecting them prevents a ``http://127.0.0.1/cb#frag?code=...`` - # from silently eating the authorization code. + _oauth_invalid_request( + f"redirect_uri scheme {parsed.scheme!r} is not allowed; use http or https.", + ) if parsed.fragment: - raise HTTPException(status_code=400, detail="invalid_request") + _oauth_invalid_request( + "redirect_uri must not contain a URL fragment (#...).", + ) host = (parsed.hostname or "").lower() if host == "localhost": return @@ -129,7 +164,10 @@ def validate_loopback_redirect_uri(redirect_uri: str) -> None: # Unparseable host (malformed IPv6, etc.) — treat as invalid, # don't let it bubble up as a 500. pass - raise HTTPException(status_code=400, detail="invalid_request") + _oauth_invalid_request( + "redirect_uri must use a loopback host (localhost or 127.0.0.0/8).", + hint="Native MCP clients should register a callback on http://127.0.0.1:/...", + ) def _strip_default_port(scheme: str, netloc: str) -> str: @@ -212,10 +250,256 @@ def _matches_trusted_origin_entry(netloc: str, entry: str) -> bool: return netloc == entry +def _normalize_native_redirect_uri( + parsed, +) -> str: + """Lowercase scheme, netloc, and path for allowlist comparison.""" + return urlunparse( + ( + (parsed.scheme or "").lower(), + (parsed.netloc or "").lower(), + (parsed.path or "").lower(), + "", + "", + "", + ) + ) + + +def _parse_trusted_native_redirect_uris() -> List[str]: + """Built-in native MCP callbacks plus ``MCP_TRUSTED_NATIVE_REDIRECT_URIS``.""" + entries: List[str] = [uri.lower() for uri in _DEFAULT_NATIVE_REDIRECT_URIS] + raw = os.environ.get(_TRUSTED_NATIVE_REDIRECT_URIS_ENV, "").strip() + if not raw: + return entries + for token in raw.split(","): + entry = token.strip().lower() + if entry and entry not in entries: + entries.append(entry) + return entries + + +def _native_wildcard_prefix_matches(normalized: str, prefix: str) -> bool: + """Prefix match for ``entry*`` allowlist rows. + + When the prefix does not end with ``/``, only exact matches or + deeper path segments (``prefix/...``) are accepted — not siblings + like ``prefix-2``. + """ + if not normalized.startswith(prefix): + return False + suffix = normalized[len(prefix) :] + if not suffix: + return True + if prefix.endswith("/"): + return True + return suffix[0] == "/" + + +def _matches_trusted_native_redirect_uri(parsed) -> bool: + """Allowlisted private-use / custom-scheme OAuth callbacks for native MCP clients.""" + if parsed.fragment: + return False + # Query strings are not part of registered redirect_uris (RFC 6749 §3.1.2). + # Rejecting them prevents allowlist bypass via ``.../callback?injected=...``. + if parsed.query: + return False + if not parsed.netloc: + return False + if parsed.username is not None or parsed.password is not None: + return False + if "\\" in parsed.netloc: + return False + + normalized = _normalize_native_redirect_uri(parsed) + for entry in _parse_trusted_native_redirect_uris(): + if entry.endswith("*"): + if _native_wildcard_prefix_matches(normalized, entry[:-1]): + return True + elif normalized == entry: + return True + return False + + +def _parse_redirect_uri_for_validation(redirect_uri: str) -> ParseResult: + try: + return urlparse(redirect_uri) + except ValueError: + _oauth_invalid_request( + "redirect_uri is not a valid URL.", + hint="Use a full absolute URL for redirect_uri (e.g. https://your-host/ui/mcp/oauth/callback).", + ) + + +def _validate_trusted_http_redirect_shape(parsed: ParseResult) -> bool: + """Return True when ``parsed`` is an allowlisted native callback (caller may return).""" + if parsed.scheme not in ("http", "https"): + if _matches_trusted_native_redirect_uri(parsed): + return True + _oauth_invalid_request( + f"redirect_uri scheme {parsed.scheme!r} is not allowed; use http/https " + "or a registered native callback (e.g. cursor://).", + hint="Add the full URI to MCP_TRUSTED_NATIVE_REDIRECT_URIS for custom native clients.", + ) + if parsed.fragment: + _oauth_invalid_request( + "redirect_uri must not contain a URL fragment (#...).", + ) + if not parsed.netloc: + _oauth_invalid_request( + "redirect_uri must include a host (e.g. https://your-host/path).", + ) + if parsed.username is not None or parsed.password is not None: + _oauth_invalid_request( + "redirect_uri must not contain userinfo (user:pass@host).", + ) + if "\\" in parsed.netloc: + _oauth_invalid_request( + "redirect_uri host must not contain backslashes.", + ) + return False + + +def _resolve_proxy_base_for_redirect(request: Request) -> Optional[str]: + try: + return get_request_base_url(request) + except Exception as exc: + verbose_logger.warning( + "validate_trusted_redirect_uri: could not determine proxy origin, " + "falling back to loopback + allowlist. error=%s", + exc, + ) + return None + + +def _trusted_redirect_uri_is_allowed( + parsed: ParseResult, + redirect_netloc: str, + proxy_base: Optional[str], +) -> bool: + if proxy_base: + proxy_parsed = urlparse(proxy_base) + if ( + parsed.scheme == proxy_parsed.scheme + and redirect_netloc + == _strip_default_port(proxy_parsed.scheme, proxy_parsed.netloc) + ): + return True + + host = (parsed.hostname or "").lower() + if host == "localhost": + return True + try: + if ip_address(host).is_loopback: + return True + except ValueError: + pass + + if parsed.scheme == "https": + for entry in _parse_trusted_redirect_origins(): + if _matches_trusted_origin_entry(redirect_netloc, entry): + return True + return False + + +def _build_trusted_redirect_rejection_message( + redirect_uri: str, + parsed: ParseResult, + redirect_netloc: str, + proxy_base: Optional[str], +) -> str: + """Build a client-facing rejection message. + + Intentionally omits the proxy's resolved scheme / host / port to avoid + leaking internal network topology (e.g. ``http://litellm-internal:4000``) + through an unauthenticated endpoint. Full diagnostic detail — including + the computed proxy base — is logged server-side by the caller. + """ + redirect_origin = _origin_label(parsed.scheme, redirect_netloc) + proxy_parsed = urlparse(proxy_base) if proxy_base else None + proxy_netloc_norm = ( + _strip_default_port(proxy_parsed.scheme, proxy_parsed.netloc) + if proxy_parsed and proxy_parsed.netloc + else "" + ) + + mismatch_parts: List[str] = [] + if proxy_parsed and proxy_parsed.netloc: + if parsed.scheme != proxy_parsed.scheme: + mismatch_parts.append( + f"scheme: redirect_uri uses {parsed.scheme!r}, but the proxy " + "resolved a different scheme " + "(TLS often terminates at ingress — set PROXY_BASE_URL to https://… " + "or trust X-Forwarded-Proto from your ingress)" + ) + if redirect_netloc != proxy_netloc_norm: + mismatch_parts.append( + f"host/port: redirect_uri {redirect_netloc!r} does not match " + "the proxy origin" + ) + + if mismatch_parts: + return ( + f"redirect_uri origin ({redirect_origin}) does not match the proxy " + "origin. " + "; ".join(mismatch_parts) + ) + return ( + f"redirect_uri ({redirect_uri!r}) is not allowed: not same-origin with " + f"the proxy origin, not loopback, and not listed in " + f"{_TRUSTED_REDIRECT_ORIGINS_ENV}." + ) + + +def _raise_trusted_redirect_uri_rejected( + request: Request, + redirect_uri: str, + parsed: ParseResult, + redirect_netloc: str, + proxy_base: Optional[str], +) -> NoReturn: + description = _build_trusted_redirect_rejection_message( + redirect_uri, parsed, redirect_netloc, proxy_base + ) + + hint = ( + "Align the proxy public URL with the browser URL. Set PROXY_BASE_URL to your " + "HTTPS origin (e.g. https://litellm.example.com), or enable " + "general_settings.use_x_forwarded_for with mcp_trusted_proxy_ranges for your " + "ingress. Verify: curl https:///.well-known/oauth-authorization-server " + "| jq .issuer — issuer must match window.location.origin in the UI." + ) + + verbose_logger.warning( + "MCP OAuth: rejecting redirect_uri %r. %s " + "Computed proxy base=%r (PROXY_BASE_URL=%r). " + "Inbound headers: X-Forwarded-Proto=%r X-Forwarded-Host=%r " + "X-Forwarded-Port=%r Host=%r. " + "Trusted-redirect-origins env=%r. " + "Trusted-native-redirect-uris env=%r.", + redirect_uri, + description, + proxy_base, + os.environ.get("PROXY_BASE_URL"), + request.headers.get("X-Forwarded-Proto"), + request.headers.get("X-Forwarded-Host"), + request.headers.get("X-Forwarded-Port"), + request.headers.get("Host"), + os.environ.get(_TRUSTED_REDIRECT_ORIGINS_ENV), + os.environ.get(_TRUSTED_NATIVE_REDIRECT_URIS_ENV), + ) + + _oauth_invalid_request( + description, + hint=hint, + redirect_uri=redirect_uri, + ) + + def validate_trusted_redirect_uri(request: Request, redirect_uri: str) -> None: """Accept ``redirect_uri`` when it is (a) same-origin with the - proxy's own request origin, (b) loopback, or (c) listed in the - ``MCP_TRUSTED_REDIRECT_ORIGINS`` ops allowlist. + proxy's own request origin, (b) loopback, (c) listed in the + ``MCP_TRUSTED_REDIRECT_ORIGINS`` ops allowlist, or (d) a built-in / + env-configured native MCP client callback (e.g. ``cursor://``). Same-origin is VERIA-57's threat-model-safe equivalent of loopback: an attacker who can host content on the proxy's own HTTPS origin @@ -234,92 +518,13 @@ def validate_trusted_redirect_uri(request: Request, redirect_uri: str) -> None: BYOK endpoints, which only serve native MCP clients, retain :func:`validate_loopback_redirect_uri`. """ - try: - parsed = urlparse(redirect_uri) - except ValueError: - raise HTTPException(status_code=400, detail="invalid_request") - if parsed.scheme not in ("http", "https"): - raise HTTPException(status_code=400, detail="invalid_request") - if parsed.fragment: - raise HTTPException(status_code=400, detail="invalid_request") - if not parsed.netloc or parsed.username is not None or parsed.password is not None: - raise HTTPException(status_code=400, detail="invalid_request") - # Reject userinfo (``user:pass@host``) outright: OAuth redirect_uris - # have no legitimate reason to carry credentials, and allowing them - # opens a host-confusion attack where the netloc *looks* allowlisted - # (``app.example.com:443@attacker.example``) but the browser navigates - # to the post-``@`` host and hands the authorization code to the - # attacker. We compare against ``hostname`` after this, but defense in - # depth keeps malformed netloc strings from reaching the wildcard - # splitter. - if parsed.username is not None or parsed.password is not None: - raise HTTPException(status_code=400, detail="invalid_request") - # Reject backslash in netloc: urlparse keeps ``\`` as part of netloc, - # but browsers normalize ``\`` to ``/`` for http(s) URLs and treat it - # as the start of the path. An attacker can exploit that split by - # crafting ``https://attacker.net\app.example.com/cb`` — urlparse sees - # ``attacker.net\app.example.com`` (matches ``*.example.com``) while - # the browser navigates to ``attacker.net`` with the auth code. - if "\\" in parsed.netloc: - raise HTTPException(status_code=400, detail="invalid_request") - - redirect_netloc = _strip_default_port(parsed.scheme, parsed.netloc) - - # (a) Same-origin. Swallow ``get_request_base_url`` failures so the - # loopback + allowlist paths remain reachable when the origin can't - # be determined (e.g. request came from an untrusted proxy and - # ``get_request_base_url`` raised). - proxy_base: Optional[str] = None - try: - proxy_base = get_request_base_url(request) - except Exception as exc: - verbose_logger.warning( - "validate_trusted_redirect_uri: could not determine proxy origin, " - "falling back to loopback + allowlist. error=%s", - exc, - ) - proxy_base = None - if proxy_base: - proxy_parsed = urlparse(proxy_base) - if ( - parsed.scheme == proxy_parsed.scheme - and redirect_netloc - == _strip_default_port(proxy_parsed.scheme, proxy_parsed.netloc) - ): - return - - # (b) Loopback — same rule as validate_loopback_redirect_uri. - host = (parsed.hostname or "").lower() - if host == "localhost": + parsed = _parse_redirect_uri_for_validation(redirect_uri) + if _validate_trusted_http_redirect_shape(parsed): return - try: - if ip_address(host).is_loopback: - return - except ValueError: - pass - - # (c) Ops allowlist. https only. - if parsed.scheme == "https": - for entry in _parse_trusted_redirect_origins(): - if _matches_trusted_origin_entry(redirect_netloc, entry): - return - - verbose_logger.warning( - "MCP OAuth: rejecting redirect_uri %r as invalid_request. " - "Computed proxy base=%r (PROXY_BASE_URL=%r). " - "Inbound headers: X-Forwarded-Proto=%r X-Forwarded-Host=%r " - "X-Forwarded-Port=%r Host=%r. " - "Trusted-redirect-origins env=%r. " - "If this should be accepted, either align ingress X-Forwarded-* " - "with the browser URL, set PROXY_BASE_URL to your public origin, " - "or add the redirect_uri host to MCP_TRUSTED_REDIRECT_ORIGINS.", - redirect_uri, - proxy_base, - os.environ.get("PROXY_BASE_URL"), - request.headers.get("X-Forwarded-Proto"), - request.headers.get("X-Forwarded-Host"), - request.headers.get("X-Forwarded-Port"), - request.headers.get("Host"), - os.environ.get(_TRUSTED_REDIRECT_ORIGINS_ENV), + redirect_netloc = _strip_default_port(parsed.scheme, parsed.netloc) + proxy_base = _resolve_proxy_base_for_redirect(request) + if _trusted_redirect_uri_is_allowed(parsed, redirect_netloc, proxy_base): + return + _raise_trusted_redirect_uri_rejected( + request, redirect_uri, parsed, redirect_netloc, proxy_base ) - raise HTTPException(status_code=400, detail="invalid_request") diff --git a/litellm/proxy/_experimental/mcp_server/openapi_to_mcp_generator.py b/litellm/proxy/_experimental/mcp_server/openapi_to_mcp_generator.py index 271517bb1e6..de70fe1331e 100644 --- a/litellm/proxy/_experimental/mcp_server/openapi_to_mcp_generator.py +++ b/litellm/proxy/_experimental/mcp_server/openapi_to_mcp_generator.py @@ -305,7 +305,7 @@ def build_input_schema(operation: Dict[str, Any]) -> Dict[str, Any]: def _merge_openapi_tool_request_headers( - static_headers: Dict[str, str] + static_headers: Dict[str, str], ) -> Dict[str, str]: """Merge static closure headers with per-request ContextVar overrides. diff --git a/litellm/proxy/_experimental/mcp_server/rest_endpoints.py b/litellm/proxy/_experimental/mcp_server/rest_endpoints.py index 829863d2dbb..cec5224e183 100644 --- a/litellm/proxy/_experimental/mcp_server/rest_endpoints.py +++ b/litellm/proxy/_experimental/mcp_server/rest_endpoints.py @@ -1,6 +1,17 @@ import importlib from datetime import datetime -from typing import Any, Awaitable, Callable, Dict, List, Literal, Optional, Set, Union +from typing import ( + Any, + Awaitable, + Callable, + Dict, + List, + Literal, + Optional, + Set, + Tuple, + Union, +) from fastapi import APIRouter, Depends, HTTPException, Query, Request, status @@ -51,20 +62,16 @@ if MCP_AVAILABLE: mcp_auth_header: Optional[str], ) -> Optional[Union[Dict[str, str], str]]: """Helper function to get server-specific auth header with case-insensitive matching.""" - if mcp_server_auth_headers and server.alias: - normalized_server_alias = server.alias.lower() - normalized_headers = { - k.lower(): v for k, v in mcp_server_auth_headers.items() - } - server_auth = normalized_headers.get(normalized_server_alias) - if server_auth is not None: - return server_auth - elif mcp_server_auth_headers and server.server_name: - normalized_server_name = server.server_name.lower() - normalized_headers = { - k.lower(): v for k, v in mcp_server_auth_headers.items() - } - server_auth = normalized_headers.get(normalized_server_name) + from litellm.proxy._experimental.mcp_server.utils import ( + lookup_mcp_server_auth_in_headers, + ) + + if mcp_server_auth_headers: + server_auth = lookup_mcp_server_auth_in_headers( + mcp_server_auth_headers, + alias=getattr(server, "alias", None), + server_name=getattr(server, "server_name", None), + ) if server_auth is not None: return server_auth return mcp_auth_header @@ -231,11 +238,32 @@ if MCP_AVAILABLE: ) return mcp_auth_header, mcp_server_auth_headers, raw_headers + def _resolve_mcp_server_id_for_rest( + server_id: str, + allowed_server_ids: Union[Set[str], List[str]], + client_ip: Optional[str] = None, + ) -> str: + """ + Map REST ``server_id`` (UUID, server_name, or alias) to canonical server_id. + + tools/list already did this; tools/call must match so clients can pass + server names like ``order_status_mcp`` instead of only UUIDs. + """ + allowed = set(allowed_server_ids) + if server_id in allowed: + return server_id + by_name = global_mcp_server_manager.get_mcp_server_by_name( + server_id, client_ip=client_ip + ) + if by_name is not None and by_name.server_id in allowed: + return by_name.server_id + return server_id + async def _resolve_allowed_mcp_servers_with_ip_filter( request: Request, user_api_key_dict: UserAPIKeyAuth, server_id: str, - ) -> List[MCPServer]: + ) -> Tuple[List[MCPServer], str]: """ Resolve allowed MCP servers for a tool call with IP filtering. @@ -245,10 +273,10 @@ if MCP_AVAILABLE: server_id: The server ID to validate access for Returns: - List of allowed MCPServer objects + Tuple of (allowed MCPServer objects, canonical server_id) Raises: - HTTPException: If the server_id is not allowed + HTTPException: If the server_id is not allowed or not found """ # Get all auth contexts auth_contexts = await build_effective_auth_contexts(user_api_key_dict) @@ -268,8 +296,41 @@ if MCP_AVAILABLE: ) ) - # Check if the specified server_id is allowed - if server_id not in allowed_server_ids_set: + canonical_server_id = _resolve_mcp_server_id_for_rest( + server_id, allowed_server_ids_set, _rest_client_ip + ) + + if canonical_server_id not in allowed_server_ids_set: + _server = global_mcp_server_manager.get_mcp_server_by_id( + server_id + ) or global_mcp_server_manager.get_mcp_server_by_name(server_id) + if ( + _server is not None + and _rest_client_ip is not None + and not global_mcp_server_manager._is_server_accessible_from_ip( + _server, _rest_client_ip + ) + ): + raise HTTPException( + status_code=403, + detail={ + "error": "ip_filtering", + "message": ( + f"MCP server '{server_id}' is not accessible from your IP address " + f"({_rest_client_ip}). This server is restricted to internal " + "networks only. To make it externally accessible, set " + "'available_on_public_internet: true' in the server configuration." + ), + }, + ) + if _server is None: + raise HTTPException( + status_code=404, + detail={ + "error": "server_not_found", + "message": f"MCP server '{server_id}' was not found", + }, + ) raise HTTPException( status_code=403, detail={ @@ -285,7 +346,7 @@ if MCP_AVAILABLE: if server is not None: allowed_mcp_servers.append(server) - return allowed_mcp_servers + return allowed_mcp_servers, canonical_server_id async def _get_tools_for_single_server( server, @@ -301,6 +362,7 @@ if MCP_AVAILABLE: extra_headers=extra_headers, add_prefix=False, raw_headers=raw_headers, + user_api_key_auth=user_api_key_auth, ) # Filter tools based on allowed_tools configuration @@ -753,7 +815,7 @@ if MCP_AVAILABLE: }, ) - tool_arguments = data.get("arguments") + tool_arguments = data.get("arguments") or {} proxy_base_llm_response_processor = ProxyBaseLLMRequestProcessing(data=data) ( @@ -786,14 +848,18 @@ if MCP_AVAILABLE: data["user_api_key_auth"] = data["metadata"]["user_api_key_auth"] # Resolve allowed MCP servers with IP filtering - allowed_mcp_servers = await _resolve_allowed_mcp_servers_with_ip_filter( + ( + allowed_mcp_servers, + canonical_server_id, + ) = await _resolve_allowed_mcp_servers_with_ip_filter( request, user_api_key_dict, server_id ) # Look up per-user OAuth headers for this server (mirrors list_tool_rest_api). user_oauth_extra_headers: Optional[Dict[str, str]] = None target_server = next( - (s for s in allowed_mcp_servers if s.server_id == server_id), None + (s for s in allowed_mcp_servers if s.server_id == canonical_server_id), + None, ) if target_server is not None: user_oauth_extra_headers = await _get_user_oauth_extra_headers( @@ -812,6 +878,7 @@ if MCP_AVAILABLE: oauth2_headers=user_oauth_extra_headers or data.get("oauth2_headers"), raw_headers=data.get("raw_headers"), litellm_logging_obj=data.get("litellm_logging_obj"), + requested_server_id=canonical_server_id, ) return result except BlockedPiiEntityError as e: diff --git a/litellm/proxy/_experimental/mcp_server/server.py b/litellm/proxy/_experimental/mcp_server/server.py index 0a74a92f9ce..f31005be0cb 100644 --- a/litellm/proxy/_experimental/mcp_server/server.py +++ b/litellm/proxy/_experimental/mcp_server/server.py @@ -1114,10 +1114,16 @@ if MCP_AVAILABLE: ) -> Tuple[Optional[Union[Dict[str, str], str]], Optional[Dict[str, str]]]: """Build auth and extra headers for a server.""" server_auth_header: Optional[Union[Dict[str, str], str]] = None - if mcp_server_auth_headers and server.alias is not None: - server_auth_header = mcp_server_auth_headers.get(server.alias) - elif mcp_server_auth_headers and server.server_name is not None: - server_auth_header = mcp_server_auth_headers.get(server.server_name) + if mcp_server_auth_headers: + from litellm.proxy._experimental.mcp_server.utils import ( + lookup_mcp_server_auth_in_headers, + ) + + server_auth_header = lookup_mcp_server_auth_in_headers( + mcp_server_auth_headers, + alias=server.alias, + server_name=server.server_name, + ) extra_headers: Optional[Dict[str, str]] = None if server.auth_type == MCPAuth.oauth2: @@ -1159,7 +1165,7 @@ if MCP_AVAILABLE: def _merge_gateway_initialize_instructions( allowed_mcp_servers: List[MCPServer], ) -> Optional[str]: - """YAML/DB override, else in-memory upstream text from list_tools / health_check / call_tool.""" + """YAML/DB override, else upstream text (prefetch on init, or list_tools / health_check / call_tool cache).""" if not allowed_mcp_servers: return None @@ -1200,6 +1206,20 @@ if MCP_AVAILABLE: mcp_servers=mcp_servers, client_ip=client_ip, ) + if allowed: + # return_exceptions=True: a per-server probe failure (incl. CancelledError + # bubbled from anyio task group teardown on connection refused) must not + # cancel sibling probes or 500 the gateway initialize request. + await asyncio.gather( + *[ + global_mcp_server_manager._ensure_upstream_initialize_instructions_cached( + s + ) + for s in allowed + if s is not None + ], + return_exceptions=True, + ) merged = _merge_gateway_initialize_instructions(allowed_mcp_servers=allowed) tok = _mcp_gateway_initialize_instructions.set(merged) try: @@ -1368,6 +1388,7 @@ if MCP_AVAILABLE: extra_headers=extra_headers, add_prefix=True, # Always add server prefix raw_headers=raw_headers, + user_api_key_auth=user_api_key_auth, ) filtered_tools = filter_tools_by_allowed_tools(tools, server) @@ -2074,6 +2095,7 @@ if MCP_AVAILABLE: """ # Track resolved MCP server for both permission checks and dispatch mcp_server: Optional[MCPServer] = None + requested_server_id: Optional[str] = kwargs.get("requested_server_id") # If the client called with a display-name override (e.g. "Get Pet"), # translate it back to the original prefixed name before any routing. @@ -2082,14 +2104,55 @@ if MCP_AVAILABLE: # Remove prefix from tool name for logging and processing original_tool_name, server_name = split_server_prefix_from_name(name) + requested_server: Optional[MCPServer] = None + if requested_server_id: + requested_server = next( + (s for s in allowed_mcp_servers if s.server_id == requested_server_id), + None, + ) + # Resolve the actual MCP server up-front so the permission check uses # the canonical server.name even when the tool name is prefixed with a # short ID (LITELLM_USE_SHORT_MCP_TOOL_PREFIX) that doesn't match the # server's display name directly. mcp_server = global_mcp_server_manager._get_mcp_server_from_tool_name(name) + if mcp_server is None and requested_server is not None: + # REST callers may pass the raw tool name (no prefix) plus a + # ``requested_server_id``. The mapping might only contain the + # prefixed form, so retry the lookup with every known prefix of + # the requested server before treating the tool as unresolved — + # otherwise the tool_server_mismatch guard below is silently + # bypassed. + for known_prefix in iter_known_server_prefixes(requested_server): + candidate = global_mcp_server_manager._get_mcp_server_from_tool_name( + add_server_prefix_to_name(name, known_prefix) + ) + if candidate is not None: + mcp_server = candidate + break if mcp_server is not None: server_name = mcp_server.name + # REST /mcp-rest/tools/call passes server_id — tool must belong to that server + if requested_server is not None: + if ( + mcp_server is not None + and mcp_server.server_id != requested_server.server_id + ): + raise HTTPException( + status_code=403, + detail={ + "error": "tool_server_mismatch", + "message": ( + f"Tool '{name}' belongs to MCP server '{mcp_server.name}' " + f"but request specified server_id for '{requested_server.name}'." + ), + }, + ) + if mcp_server is None: + mcp_server = requested_server + server_name = requested_server.name + # Only enforce server-level permissions when we can resolve a server if server_name: if not MCPRequestHandler.is_tool_allowed( diff --git a/litellm/proxy/_experimental/mcp_server/utils.py b/litellm/proxy/_experimental/mcp_server/utils.py index df5705c3425..b8b9207555e 100644 --- a/litellm/proxy/_experimental/mcp_server/utils.py +++ b/litellm/proxy/_experimental/mcp_server/utils.py @@ -2,7 +2,8 @@ MCP Server Utilities """ -from typing import Any, Dict, Iterator, Mapping, Optional, Tuple +import re +from typing import Any, Dict, Iterator, Mapping, Optional, Tuple, Union import hashlib import importlib @@ -117,6 +118,50 @@ def normalize_server_name(server_name: str) -> str: return server_name.replace(" ", "_") +_MCP_ALIAS_HEADER_INVALID_RE = re.compile(r"[^a-z0-9_]") + + +def sanitize_mcp_alias_for_header(alias: str) -> str: + """ + Sanitize an MCP server alias for x-mcp-{alias}-{header} HTTP headers. + + Must stay in sync with ui/litellm-dashboard/src/utils/mcpHeaderUtils.ts. + """ + sanitized = _MCP_ALIAS_HEADER_INVALID_RE.sub("_", alias.lower().strip()) + sanitized = re.sub(r"_+", "_", sanitized) + return sanitized.strip("_") + + +def lookup_mcp_server_auth_in_headers( + mcp_server_auth_headers: Mapping[str, Union[str, Dict[str, str]]], + *, + alias: Optional[str] = None, + server_name: Optional[str] = None, +) -> Optional[Union[str, Dict[str, str]]]: + """ + Resolve server-specific auth headers with case-insensitive matching. + + Tries the raw alias/server_name (lowercased) and the header-safe sanitized + alias so dashboard clients using sanitize_mcp_alias_for_header() still match. + """ + if not mcp_server_auth_headers: + return None + + normalized_headers = {k.lower(): v for k, v in mcp_server_auth_headers.items()} + + for identifier in (alias, server_name): + if not identifier: + continue + keys_to_try = [identifier.lower()] + sanitized = sanitize_mcp_alias_for_header(identifier) + if sanitized and sanitized not in keys_to_try: + keys_to_try.append(sanitized) + for key in keys_to_try: + if key in normalized_headers: + return normalized_headers[key] + return None + + def validate_and_normalize_mcp_server_payload(payload: Any) -> None: """ Validate and normalize MCP server payload fields (server_name and alias). diff --git a/litellm/proxy/_experimental/out/404.html b/litellm/proxy/_experimental/out/404.html index 32fb9e1d0a7..dc8887d33e3 100644 --- a/litellm/proxy/_experimental/out/404.html +++ b/litellm/proxy/_experimental/out/404.html @@ -1 +1 @@ -404: This page could not be found.LiteLLM Dashboard

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.LiteLLM Dashboard

404

This page could not be found.

\ No newline at end of file diff --git a/litellm/proxy/_experimental/out/404/index.html b/litellm/proxy/_experimental/out/404/index.html index 32fb9e1d0a7..dc8887d33e3 100644 --- a/litellm/proxy/_experimental/out/404/index.html +++ b/litellm/proxy/_experimental/out/404/index.html @@ -1 +1 @@ -404: This page could not be found.LiteLLM Dashboard

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.LiteLLM Dashboard

404

This page could not be found.

\ No newline at end of file diff --git a/litellm/proxy/_experimental/out/__next.__PAGE__.txt b/litellm/proxy/_experimental/out/__next.__PAGE__.txt index 60bb65d6e5c..b685e174a08 100644 --- a/litellm/proxy/_experimental/out/__next.__PAGE__.txt +++ b/litellm/proxy/_experimental/out/__next.__PAGE__.txt @@ -1,30 +1,30 @@ 1:"$Sreact.fragment" 2:I[347257,["/litellm-asset-prefix/_next/static/chunks/06gao0u0xy9th.js","/litellm-asset-prefix/_next/static/chunks/0gszmhudlm6lw.js","/litellm-asset-prefix/_next/static/chunks/0pidya1qvuvx8.js"],"ClientPageRoot"] -3:I[952683,["/litellm-asset-prefix/_next/static/chunks/06gao0u0xy9th.js","/litellm-asset-prefix/_next/static/chunks/0gszmhudlm6lw.js","/litellm-asset-prefix/_next/static/chunks/0pidya1qvuvx8.js","/litellm-asset-prefix/_next/static/chunks/0niabq1py.bpc.js","/litellm-asset-prefix/_next/static/chunks/0je63_yy.8i72.js","/litellm-asset-prefix/_next/static/chunks/0qikgxv.u0j9d.js","/litellm-asset-prefix/_next/static/chunks/0fpcaw3chkoi1.js","/litellm-asset-prefix/_next/static/chunks/0zmz_tmhm2hsa.js","/litellm-asset-prefix/_next/static/chunks/01n1bg17oxp8l.js","/litellm-asset-prefix/_next/static/chunks/181y.ii57q7gs.js","/litellm-asset-prefix/_next/static/chunks/0gqqvjn11_pp3.js","/litellm-asset-prefix/_next/static/chunks/09n64dqzn.le~.js","/litellm-asset-prefix/_next/static/chunks/01g5ls2__cy9q.js","/litellm-asset-prefix/_next/static/chunks/00dq_sa6qt2eg.js","/litellm-asset-prefix/_next/static/chunks/0_ex-stk7ibf_.js","/litellm-asset-prefix/_next/static/chunks/0_p625as00xbq.js","/litellm-asset-prefix/_next/static/chunks/0tz7rml6rolh7.js","/litellm-asset-prefix/_next/static/chunks/09.lm5dax~l7e.js","/litellm-asset-prefix/_next/static/chunks/0~2_b290gsxjj.js","/litellm-asset-prefix/_next/static/chunks/0jhg37m0hy.uz.js","/litellm-asset-prefix/_next/static/chunks/0v1c3mu~xn105.js","/litellm-asset-prefix/_next/static/chunks/08401f_hwndsf.js","/litellm-asset-prefix/_next/static/chunks/0bkk~1l186k4g.js","/litellm-asset-prefix/_next/static/chunks/166fc~7u39du3.js","/litellm-asset-prefix/_next/static/chunks/14ut9b-iwzfct.js","/litellm-asset-prefix/_next/static/chunks/01u0i~l49qpdz.js","/litellm-asset-prefix/_next/static/chunks/02v412-qgvyfr.js","/litellm-asset-prefix/_next/static/chunks/0ssorln~eooo0.js","/litellm-asset-prefix/_next/static/chunks/0sleuh3e9q.ww.js","/litellm-asset-prefix/_next/static/chunks/00q4mtjboprhm.js","/litellm-asset-prefix/_next/static/chunks/0r.-zuh7vk-cs.js","/litellm-asset-prefix/_next/static/chunks/0c4pfjjue0uc-.js","/litellm-asset-prefix/_next/static/chunks/0ys10755n8os_.js","/litellm-asset-prefix/_next/static/chunks/0dt4fjjwbrov2.js","/litellm-asset-prefix/_next/static/chunks/06oag4x9~8vif.js","/litellm-asset-prefix/_next/static/chunks/00j3cgbhfjesd.js","/litellm-asset-prefix/_next/static/chunks/036wlkuzplhfz.js","/litellm-asset-prefix/_next/static/chunks/01xm1xt.gmrff.js","/litellm-asset-prefix/_next/static/chunks/0cbiddnyyt-22.js","/litellm-asset-prefix/_next/static/chunks/01eoe.0n-q6.q.js","/litellm-asset-prefix/_next/static/chunks/0nnx~7-7e5t~1.js","/litellm-asset-prefix/_next/static/chunks/0mb3erwqomzal.js","/litellm-asset-prefix/_next/static/chunks/00n_262-goqx6.js","/litellm-asset-prefix/_next/static/chunks/0gs8.sc1ds7.w.js","/litellm-asset-prefix/_next/static/chunks/11ibt3khr2hk3.js","/litellm-asset-prefix/_next/static/chunks/0aivi0og~sj6k.js","/litellm-asset-prefix/_next/static/chunks/08cbskerpmujn.js","/litellm-asset-prefix/_next/static/chunks/0ar6956xz0njn.js","/litellm-asset-prefix/_next/static/chunks/022.sz94ycw4x.js","/litellm-asset-prefix/_next/static/chunks/0ylz5md8p6x7z.js","/litellm-asset-prefix/_next/static/chunks/0-dwjzo6mg1t7.js","/litellm-asset-prefix/_next/static/chunks/0ttl0__m~5i8a.js","/litellm-asset-prefix/_next/static/chunks/0fns6vsccj10h.js","/litellm-asset-prefix/_next/static/chunks/015yfy38oh-h8.js","/litellm-asset-prefix/_next/static/chunks/0m6zdocif1gl4.js","/litellm-asset-prefix/_next/static/chunks/0ybvtcd~xp-mx.js","/litellm-asset-prefix/_next/static/chunks/0j2g7af6k4x7m.js"],"default"] +3:I[952683,["/litellm-asset-prefix/_next/static/chunks/06gao0u0xy9th.js","/litellm-asset-prefix/_next/static/chunks/0gszmhudlm6lw.js","/litellm-asset-prefix/_next/static/chunks/0pidya1qvuvx8.js","/litellm-asset-prefix/_next/static/chunks/0niabq1py.bpc.js","/litellm-asset-prefix/_next/static/chunks/0je63_yy.8i72.js","/litellm-asset-prefix/_next/static/chunks/0qikgxv.u0j9d.js","/litellm-asset-prefix/_next/static/chunks/0fpcaw3chkoi1.js","/litellm-asset-prefix/_next/static/chunks/0zmz_tmhm2hsa.js","/litellm-asset-prefix/_next/static/chunks/01n1bg17oxp8l.js","/litellm-asset-prefix/_next/static/chunks/181y.ii57q7gs.js","/litellm-asset-prefix/_next/static/chunks/0gqqvjn11_pp3.js","/litellm-asset-prefix/_next/static/chunks/09n64dqzn.le~.js","/litellm-asset-prefix/_next/static/chunks/01g5ls2__cy9q.js","/litellm-asset-prefix/_next/static/chunks/00dq_sa6qt2eg.js","/litellm-asset-prefix/_next/static/chunks/0tn9xeci9ulk~.js","/litellm-asset-prefix/_next/static/chunks/0_p625as00xbq.js","/litellm-asset-prefix/_next/static/chunks/0tz7rml6rolh7.js","/litellm-asset-prefix/_next/static/chunks/09.lm5dax~l7e.js","/litellm-asset-prefix/_next/static/chunks/0~2_b290gsxjj.js","/litellm-asset-prefix/_next/static/chunks/0jhg37m0hy.uz.js","/litellm-asset-prefix/_next/static/chunks/177i7u.kpukgd.js","/litellm-asset-prefix/_next/static/chunks/0mp75es._z-4x.js","/litellm-asset-prefix/_next/static/chunks/14twssk6nf2_p.js","/litellm-asset-prefix/_next/static/chunks/166fc~7u39du3.js","/litellm-asset-prefix/_next/static/chunks/14ut9b-iwzfct.js","/litellm-asset-prefix/_next/static/chunks/01u0i~l49qpdz.js","/litellm-asset-prefix/_next/static/chunks/02v412-qgvyfr.js","/litellm-asset-prefix/_next/static/chunks/0-_2om65ot6fh.js","/litellm-asset-prefix/_next/static/chunks/0sleuh3e9q.ww.js","/litellm-asset-prefix/_next/static/chunks/00q4mtjboprhm.js","/litellm-asset-prefix/_next/static/chunks/0634irnh4hmq6.js","/litellm-asset-prefix/_next/static/chunks/11ibt3khr2hk3.js","/litellm-asset-prefix/_next/static/chunks/08u5j~2nol0u-.js","/litellm-asset-prefix/_next/static/chunks/0dt4fjjwbrov2.js","/litellm-asset-prefix/_next/static/chunks/0m6zdocif1gl4.js","/litellm-asset-prefix/_next/static/chunks/0-mwvwyjihtq6.js","/litellm-asset-prefix/_next/static/chunks/00ggoni7r8g6y.js","/litellm-asset-prefix/_next/static/chunks/01xm1xt.gmrff.js","/litellm-asset-prefix/_next/static/chunks/036wlkuzplhfz.js","/litellm-asset-prefix/_next/static/chunks/01eoe.0n-q6.q.js","/litellm-asset-prefix/_next/static/chunks/0c.egkkrwi~pa.js","/litellm-asset-prefix/_next/static/chunks/0mb3erwqomzal.js","/litellm-asset-prefix/_next/static/chunks/17u8.w6s717n2.js","/litellm-asset-prefix/_next/static/chunks/0gs8.sc1ds7.w.js","/litellm-asset-prefix/_next/static/chunks/0-dwjzo6mg1t7.js","/litellm-asset-prefix/_next/static/chunks/0aivi0og~sj6k.js","/litellm-asset-prefix/_next/static/chunks/0c4pfjjue0uc-.js","/litellm-asset-prefix/_next/static/chunks/0_0ll_gosf9qi.js","/litellm-asset-prefix/_next/static/chunks/022.sz94ycw4x.js","/litellm-asset-prefix/_next/static/chunks/0ylz5md8p6x7z.js","/litellm-asset-prefix/_next/static/chunks/0_2kvss2-vfen.js","/litellm-asset-prefix/_next/static/chunks/0nnx~7-7e5t~1.js","/litellm-asset-prefix/_next/static/chunks/0ttl0__m~5i8a.js","/litellm-asset-prefix/_next/static/chunks/015yfy38oh-h8.js","/litellm-asset-prefix/_next/static/chunks/0ys10755n8os_.js","/litellm-asset-prefix/_next/static/chunks/0ybvtcd~xp-mx.js","/litellm-asset-prefix/_next/static/chunks/06uhwq-x7qrqc.js"],"default"] 1a:I[897367,["/litellm-asset-prefix/_next/static/chunks/06gao0u0xy9th.js","/litellm-asset-prefix/_next/static/chunks/0gszmhudlm6lw.js","/litellm-asset-prefix/_next/static/chunks/0pidya1qvuvx8.js"],"OutletBoundary"] 1b:"$Sreact.suspense" :HL["/litellm-asset-prefix/_next/static/chunks/0jib1e4hgitwz.css","style"] -0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","link","0",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/0jib1e4hgitwz.css","precedence":"next"}],["$","script","script-0",{"src":"/litellm-asset-prefix/_next/static/chunks/0niabq1py.bpc.js","async":true}],["$","script","script-1",{"src":"/litellm-asset-prefix/_next/static/chunks/0je63_yy.8i72.js","async":true}],["$","script","script-2",{"src":"/litellm-asset-prefix/_next/static/chunks/0qikgxv.u0j9d.js","async":true}],["$","script","script-3",{"src":"/litellm-asset-prefix/_next/static/chunks/0fpcaw3chkoi1.js","async":true}],["$","script","script-4",{"src":"/litellm-asset-prefix/_next/static/chunks/0zmz_tmhm2hsa.js","async":true}],["$","script","script-5",{"src":"/litellm-asset-prefix/_next/static/chunks/01n1bg17oxp8l.js","async":true}],["$","script","script-6",{"src":"/litellm-asset-prefix/_next/static/chunks/181y.ii57q7gs.js","async":true}],["$","script","script-7",{"src":"/litellm-asset-prefix/_next/static/chunks/0gqqvjn11_pp3.js","async":true}],["$","script","script-8",{"src":"/litellm-asset-prefix/_next/static/chunks/09n64dqzn.le~.js","async":true}],["$","script","script-9",{"src":"/litellm-asset-prefix/_next/static/chunks/01g5ls2__cy9q.js","async":true}],["$","script","script-10",{"src":"/litellm-asset-prefix/_next/static/chunks/00dq_sa6qt2eg.js","async":true}],["$","script","script-11",{"src":"/litellm-asset-prefix/_next/static/chunks/0_ex-stk7ibf_.js","async":true}],["$","script","script-12",{"src":"/litellm-asset-prefix/_next/static/chunks/0_p625as00xbq.js","async":true}],["$","script","script-13",{"src":"/litellm-asset-prefix/_next/static/chunks/0tz7rml6rolh7.js","async":true}],["$","script","script-14",{"src":"/litellm-asset-prefix/_next/static/chunks/09.lm5dax~l7e.js","async":true}],["$","script","script-15",{"src":"/litellm-asset-prefix/_next/static/chunks/0~2_b290gsxjj.js","async":true}],["$","script","script-16",{"src":"/litellm-asset-prefix/_next/static/chunks/0jhg37m0hy.uz.js","async":true}],["$","script","script-17",{"src":"/litellm-asset-prefix/_next/static/chunks/0v1c3mu~xn105.js","async":true}],["$","script","script-18",{"src":"/litellm-asset-prefix/_next/static/chunks/08401f_hwndsf.js","async":true}],["$","script","script-19",{"src":"/litellm-asset-prefix/_next/static/chunks/0bkk~1l186k4g.js","async":true}],["$","script","script-20",{"src":"/litellm-asset-prefix/_next/static/chunks/166fc~7u39du3.js","async":true}],["$","script","script-21",{"src":"/litellm-asset-prefix/_next/static/chunks/14ut9b-iwzfct.js","async":true}],["$","script","script-22",{"src":"/litellm-asset-prefix/_next/static/chunks/01u0i~l49qpdz.js","async":true}],["$","script","script-23",{"src":"/litellm-asset-prefix/_next/static/chunks/02v412-qgvyfr.js","async":true}],["$","script","script-24",{"src":"/litellm-asset-prefix/_next/static/chunks/0ssorln~eooo0.js","async":true}],["$","script","script-25",{"src":"/litellm-asset-prefix/_next/static/chunks/0sleuh3e9q.ww.js","async":true}],["$","script","script-26",{"src":"/litellm-asset-prefix/_next/static/chunks/00q4mtjboprhm.js","async":true}],["$","script","script-27",{"src":"/litellm-asset-prefix/_next/static/chunks/0r.-zuh7vk-cs.js","async":true}],["$","script","script-28",{"src":"/litellm-asset-prefix/_next/static/chunks/0c4pfjjue0uc-.js","async":true}],["$","script","script-29",{"src":"/litellm-asset-prefix/_next/static/chunks/0ys10755n8os_.js","async":true}],["$","script","script-30",{"src":"/litellm-asset-prefix/_next/static/chunks/0dt4fjjwbrov2.js","async":true}],["$","script","script-31",{"src":"/litellm-asset-prefix/_next/static/chunks/06oag4x9~8vif.js","async":true}],["$","script","script-32",{"src":"/litellm-asset-prefix/_next/static/chunks/00j3cgbhfjesd.js","async":true}],["$","script","script-33",{"src":"/litellm-asset-prefix/_next/static/chunks/036wlkuzplhfz.js","async":true}],["$","script","script-34",{"src":"/litellm-asset-prefix/_next/static/chunks/01xm1xt.gmrff.js","async":true}],"$L6","$L7","$L8","$L9","$La","$Lb","$Lc","$Ld","$Le","$Lf","$L10","$L11","$L12","$L13","$L14","$L15","$L16","$L17","$L18"],"$L19"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"pwKMwm15lSkxVRmJWmHkF"} +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","link","0",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/0jib1e4hgitwz.css","precedence":"next"}],["$","script","script-0",{"src":"/litellm-asset-prefix/_next/static/chunks/0niabq1py.bpc.js","async":true}],["$","script","script-1",{"src":"/litellm-asset-prefix/_next/static/chunks/0je63_yy.8i72.js","async":true}],["$","script","script-2",{"src":"/litellm-asset-prefix/_next/static/chunks/0qikgxv.u0j9d.js","async":true}],["$","script","script-3",{"src":"/litellm-asset-prefix/_next/static/chunks/0fpcaw3chkoi1.js","async":true}],["$","script","script-4",{"src":"/litellm-asset-prefix/_next/static/chunks/0zmz_tmhm2hsa.js","async":true}],["$","script","script-5",{"src":"/litellm-asset-prefix/_next/static/chunks/01n1bg17oxp8l.js","async":true}],["$","script","script-6",{"src":"/litellm-asset-prefix/_next/static/chunks/181y.ii57q7gs.js","async":true}],["$","script","script-7",{"src":"/litellm-asset-prefix/_next/static/chunks/0gqqvjn11_pp3.js","async":true}],["$","script","script-8",{"src":"/litellm-asset-prefix/_next/static/chunks/09n64dqzn.le~.js","async":true}],["$","script","script-9",{"src":"/litellm-asset-prefix/_next/static/chunks/01g5ls2__cy9q.js","async":true}],["$","script","script-10",{"src":"/litellm-asset-prefix/_next/static/chunks/00dq_sa6qt2eg.js","async":true}],["$","script","script-11",{"src":"/litellm-asset-prefix/_next/static/chunks/0tn9xeci9ulk~.js","async":true}],["$","script","script-12",{"src":"/litellm-asset-prefix/_next/static/chunks/0_p625as00xbq.js","async":true}],["$","script","script-13",{"src":"/litellm-asset-prefix/_next/static/chunks/0tz7rml6rolh7.js","async":true}],["$","script","script-14",{"src":"/litellm-asset-prefix/_next/static/chunks/09.lm5dax~l7e.js","async":true}],["$","script","script-15",{"src":"/litellm-asset-prefix/_next/static/chunks/0~2_b290gsxjj.js","async":true}],["$","script","script-16",{"src":"/litellm-asset-prefix/_next/static/chunks/0jhg37m0hy.uz.js","async":true}],["$","script","script-17",{"src":"/litellm-asset-prefix/_next/static/chunks/177i7u.kpukgd.js","async":true}],["$","script","script-18",{"src":"/litellm-asset-prefix/_next/static/chunks/0mp75es._z-4x.js","async":true}],["$","script","script-19",{"src":"/litellm-asset-prefix/_next/static/chunks/14twssk6nf2_p.js","async":true}],["$","script","script-20",{"src":"/litellm-asset-prefix/_next/static/chunks/166fc~7u39du3.js","async":true}],["$","script","script-21",{"src":"/litellm-asset-prefix/_next/static/chunks/14ut9b-iwzfct.js","async":true}],["$","script","script-22",{"src":"/litellm-asset-prefix/_next/static/chunks/01u0i~l49qpdz.js","async":true}],["$","script","script-23",{"src":"/litellm-asset-prefix/_next/static/chunks/02v412-qgvyfr.js","async":true}],["$","script","script-24",{"src":"/litellm-asset-prefix/_next/static/chunks/0-_2om65ot6fh.js","async":true}],["$","script","script-25",{"src":"/litellm-asset-prefix/_next/static/chunks/0sleuh3e9q.ww.js","async":true}],["$","script","script-26",{"src":"/litellm-asset-prefix/_next/static/chunks/00q4mtjboprhm.js","async":true}],["$","script","script-27",{"src":"/litellm-asset-prefix/_next/static/chunks/0634irnh4hmq6.js","async":true}],["$","script","script-28",{"src":"/litellm-asset-prefix/_next/static/chunks/11ibt3khr2hk3.js","async":true}],["$","script","script-29",{"src":"/litellm-asset-prefix/_next/static/chunks/08u5j~2nol0u-.js","async":true}],["$","script","script-30",{"src":"/litellm-asset-prefix/_next/static/chunks/0dt4fjjwbrov2.js","async":true}],["$","script","script-31",{"src":"/litellm-asset-prefix/_next/static/chunks/0m6zdocif1gl4.js","async":true}],["$","script","script-32",{"src":"/litellm-asset-prefix/_next/static/chunks/0-mwvwyjihtq6.js","async":true}],["$","script","script-33",{"src":"/litellm-asset-prefix/_next/static/chunks/00ggoni7r8g6y.js","async":true}],["$","script","script-34",{"src":"/litellm-asset-prefix/_next/static/chunks/01xm1xt.gmrff.js","async":true}],"$L6","$L7","$L8","$L9","$La","$Lb","$Lc","$Ld","$Le","$Lf","$L10","$L11","$L12","$L13","$L14","$L15","$L16","$L17","$L18"],"$L19"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"yOlkcWtCsM0myFZfnU8Ao"} 4:{} 5:"$0:rsc:props:children:0:props:serverProvidedParams:params" -6:["$","script","script-35",{"src":"/litellm-asset-prefix/_next/static/chunks/0cbiddnyyt-22.js","async":true}] +6:["$","script","script-35",{"src":"/litellm-asset-prefix/_next/static/chunks/036wlkuzplhfz.js","async":true}] 7:["$","script","script-36",{"src":"/litellm-asset-prefix/_next/static/chunks/01eoe.0n-q6.q.js","async":true}] -8:["$","script","script-37",{"src":"/litellm-asset-prefix/_next/static/chunks/0nnx~7-7e5t~1.js","async":true}] +8:["$","script","script-37",{"src":"/litellm-asset-prefix/_next/static/chunks/0c.egkkrwi~pa.js","async":true}] 9:["$","script","script-38",{"src":"/litellm-asset-prefix/_next/static/chunks/0mb3erwqomzal.js","async":true}] -a:["$","script","script-39",{"src":"/litellm-asset-prefix/_next/static/chunks/00n_262-goqx6.js","async":true}] +a:["$","script","script-39",{"src":"/litellm-asset-prefix/_next/static/chunks/17u8.w6s717n2.js","async":true}] b:["$","script","script-40",{"src":"/litellm-asset-prefix/_next/static/chunks/0gs8.sc1ds7.w.js","async":true}] -c:["$","script","script-41",{"src":"/litellm-asset-prefix/_next/static/chunks/11ibt3khr2hk3.js","async":true}] +c:["$","script","script-41",{"src":"/litellm-asset-prefix/_next/static/chunks/0-dwjzo6mg1t7.js","async":true}] d:["$","script","script-42",{"src":"/litellm-asset-prefix/_next/static/chunks/0aivi0og~sj6k.js","async":true}] -e:["$","script","script-43",{"src":"/litellm-asset-prefix/_next/static/chunks/08cbskerpmujn.js","async":true}] -f:["$","script","script-44",{"src":"/litellm-asset-prefix/_next/static/chunks/0ar6956xz0njn.js","async":true}] +e:["$","script","script-43",{"src":"/litellm-asset-prefix/_next/static/chunks/0c4pfjjue0uc-.js","async":true}] +f:["$","script","script-44",{"src":"/litellm-asset-prefix/_next/static/chunks/0_0ll_gosf9qi.js","async":true}] 10:["$","script","script-45",{"src":"/litellm-asset-prefix/_next/static/chunks/022.sz94ycw4x.js","async":true}] 11:["$","script","script-46",{"src":"/litellm-asset-prefix/_next/static/chunks/0ylz5md8p6x7z.js","async":true}] -12:["$","script","script-47",{"src":"/litellm-asset-prefix/_next/static/chunks/0-dwjzo6mg1t7.js","async":true}] -13:["$","script","script-48",{"src":"/litellm-asset-prefix/_next/static/chunks/0ttl0__m~5i8a.js","async":true}] -14:["$","script","script-49",{"src":"/litellm-asset-prefix/_next/static/chunks/0fns6vsccj10h.js","async":true}] +12:["$","script","script-47",{"src":"/litellm-asset-prefix/_next/static/chunks/0_2kvss2-vfen.js","async":true}] +13:["$","script","script-48",{"src":"/litellm-asset-prefix/_next/static/chunks/0nnx~7-7e5t~1.js","async":true}] +14:["$","script","script-49",{"src":"/litellm-asset-prefix/_next/static/chunks/0ttl0__m~5i8a.js","async":true}] 15:["$","script","script-50",{"src":"/litellm-asset-prefix/_next/static/chunks/015yfy38oh-h8.js","async":true}] -16:["$","script","script-51",{"src":"/litellm-asset-prefix/_next/static/chunks/0m6zdocif1gl4.js","async":true}] +16:["$","script","script-51",{"src":"/litellm-asset-prefix/_next/static/chunks/0ys10755n8os_.js","async":true}] 17:["$","script","script-52",{"src":"/litellm-asset-prefix/_next/static/chunks/0ybvtcd~xp-mx.js","async":true}] -18:["$","script","script-53",{"src":"/litellm-asset-prefix/_next/static/chunks/0j2g7af6k4x7m.js","async":true}] +18:["$","script","script-53",{"src":"/litellm-asset-prefix/_next/static/chunks/06uhwq-x7qrqc.js","async":true}] 19:["$","$L1a",null,{"children":["$","$1b",null,{"name":"Next.MetadataOutlet","children":"$@1c"}]}] 1c:null diff --git a/litellm/proxy/_experimental/out/__next._full.txt b/litellm/proxy/_experimental/out/__next._full.txt index d432a11a9b7..62020c25518 100644 --- a/litellm/proxy/_experimental/out/__next._full.txt +++ b/litellm/proxy/_experimental/out/__next._full.txt @@ -4,55 +4,55 @@ 4:I[339756,["/litellm-asset-prefix/_next/static/chunks/06gao0u0xy9th.js","/litellm-asset-prefix/_next/static/chunks/0gszmhudlm6lw.js","/litellm-asset-prefix/_next/static/chunks/0pidya1qvuvx8.js"],"default"] 5:I[837457,["/litellm-asset-prefix/_next/static/chunks/06gao0u0xy9th.js","/litellm-asset-prefix/_next/static/chunks/0gszmhudlm6lw.js","/litellm-asset-prefix/_next/static/chunks/0pidya1qvuvx8.js"],"default"] 6:I[347257,["/litellm-asset-prefix/_next/static/chunks/06gao0u0xy9th.js","/litellm-asset-prefix/_next/static/chunks/0gszmhudlm6lw.js","/litellm-asset-prefix/_next/static/chunks/0pidya1qvuvx8.js"],"ClientPageRoot"] -7:I[952683,["/litellm-asset-prefix/_next/static/chunks/06gao0u0xy9th.js","/litellm-asset-prefix/_next/static/chunks/0gszmhudlm6lw.js","/litellm-asset-prefix/_next/static/chunks/0pidya1qvuvx8.js","/litellm-asset-prefix/_next/static/chunks/0niabq1py.bpc.js","/litellm-asset-prefix/_next/static/chunks/0je63_yy.8i72.js","/litellm-asset-prefix/_next/static/chunks/0qikgxv.u0j9d.js","/litellm-asset-prefix/_next/static/chunks/0fpcaw3chkoi1.js","/litellm-asset-prefix/_next/static/chunks/0zmz_tmhm2hsa.js","/litellm-asset-prefix/_next/static/chunks/01n1bg17oxp8l.js","/litellm-asset-prefix/_next/static/chunks/181y.ii57q7gs.js","/litellm-asset-prefix/_next/static/chunks/0gqqvjn11_pp3.js","/litellm-asset-prefix/_next/static/chunks/09n64dqzn.le~.js","/litellm-asset-prefix/_next/static/chunks/01g5ls2__cy9q.js","/litellm-asset-prefix/_next/static/chunks/00dq_sa6qt2eg.js","/litellm-asset-prefix/_next/static/chunks/0_ex-stk7ibf_.js","/litellm-asset-prefix/_next/static/chunks/0_p625as00xbq.js","/litellm-asset-prefix/_next/static/chunks/0tz7rml6rolh7.js","/litellm-asset-prefix/_next/static/chunks/09.lm5dax~l7e.js","/litellm-asset-prefix/_next/static/chunks/0~2_b290gsxjj.js","/litellm-asset-prefix/_next/static/chunks/0jhg37m0hy.uz.js","/litellm-asset-prefix/_next/static/chunks/0v1c3mu~xn105.js","/litellm-asset-prefix/_next/static/chunks/08401f_hwndsf.js","/litellm-asset-prefix/_next/static/chunks/0bkk~1l186k4g.js","/litellm-asset-prefix/_next/static/chunks/166fc~7u39du3.js","/litellm-asset-prefix/_next/static/chunks/14ut9b-iwzfct.js","/litellm-asset-prefix/_next/static/chunks/01u0i~l49qpdz.js","/litellm-asset-prefix/_next/static/chunks/02v412-qgvyfr.js","/litellm-asset-prefix/_next/static/chunks/0ssorln~eooo0.js","/litellm-asset-prefix/_next/static/chunks/0sleuh3e9q.ww.js","/litellm-asset-prefix/_next/static/chunks/00q4mtjboprhm.js","/litellm-asset-prefix/_next/static/chunks/0r.-zuh7vk-cs.js","/litellm-asset-prefix/_next/static/chunks/0c4pfjjue0uc-.js","/litellm-asset-prefix/_next/static/chunks/0ys10755n8os_.js","/litellm-asset-prefix/_next/static/chunks/0dt4fjjwbrov2.js","/litellm-asset-prefix/_next/static/chunks/06oag4x9~8vif.js","/litellm-asset-prefix/_next/static/chunks/00j3cgbhfjesd.js","/litellm-asset-prefix/_next/static/chunks/036wlkuzplhfz.js","/litellm-asset-prefix/_next/static/chunks/01xm1xt.gmrff.js","/litellm-asset-prefix/_next/static/chunks/0cbiddnyyt-22.js","/litellm-asset-prefix/_next/static/chunks/01eoe.0n-q6.q.js","/litellm-asset-prefix/_next/static/chunks/0nnx~7-7e5t~1.js","/litellm-asset-prefix/_next/static/chunks/0mb3erwqomzal.js","/litellm-asset-prefix/_next/static/chunks/00n_262-goqx6.js","/litellm-asset-prefix/_next/static/chunks/0gs8.sc1ds7.w.js","/litellm-asset-prefix/_next/static/chunks/11ibt3khr2hk3.js","/litellm-asset-prefix/_next/static/chunks/0aivi0og~sj6k.js","/litellm-asset-prefix/_next/static/chunks/08cbskerpmujn.js","/litellm-asset-prefix/_next/static/chunks/0ar6956xz0njn.js","/litellm-asset-prefix/_next/static/chunks/022.sz94ycw4x.js","/litellm-asset-prefix/_next/static/chunks/0ylz5md8p6x7z.js","/litellm-asset-prefix/_next/static/chunks/0-dwjzo6mg1t7.js","/litellm-asset-prefix/_next/static/chunks/0ttl0__m~5i8a.js","/litellm-asset-prefix/_next/static/chunks/0fns6vsccj10h.js","/litellm-asset-prefix/_next/static/chunks/015yfy38oh-h8.js","/litellm-asset-prefix/_next/static/chunks/0m6zdocif1gl4.js","/litellm-asset-prefix/_next/static/chunks/0ybvtcd~xp-mx.js","/litellm-asset-prefix/_next/static/chunks/0j2g7af6k4x7m.js"],"default"] +7:I[952683,["/litellm-asset-prefix/_next/static/chunks/06gao0u0xy9th.js","/litellm-asset-prefix/_next/static/chunks/0gszmhudlm6lw.js","/litellm-asset-prefix/_next/static/chunks/0pidya1qvuvx8.js","/litellm-asset-prefix/_next/static/chunks/0niabq1py.bpc.js","/litellm-asset-prefix/_next/static/chunks/0je63_yy.8i72.js","/litellm-asset-prefix/_next/static/chunks/0qikgxv.u0j9d.js","/litellm-asset-prefix/_next/static/chunks/0fpcaw3chkoi1.js","/litellm-asset-prefix/_next/static/chunks/0zmz_tmhm2hsa.js","/litellm-asset-prefix/_next/static/chunks/01n1bg17oxp8l.js","/litellm-asset-prefix/_next/static/chunks/181y.ii57q7gs.js","/litellm-asset-prefix/_next/static/chunks/0gqqvjn11_pp3.js","/litellm-asset-prefix/_next/static/chunks/09n64dqzn.le~.js","/litellm-asset-prefix/_next/static/chunks/01g5ls2__cy9q.js","/litellm-asset-prefix/_next/static/chunks/00dq_sa6qt2eg.js","/litellm-asset-prefix/_next/static/chunks/0tn9xeci9ulk~.js","/litellm-asset-prefix/_next/static/chunks/0_p625as00xbq.js","/litellm-asset-prefix/_next/static/chunks/0tz7rml6rolh7.js","/litellm-asset-prefix/_next/static/chunks/09.lm5dax~l7e.js","/litellm-asset-prefix/_next/static/chunks/0~2_b290gsxjj.js","/litellm-asset-prefix/_next/static/chunks/0jhg37m0hy.uz.js","/litellm-asset-prefix/_next/static/chunks/177i7u.kpukgd.js","/litellm-asset-prefix/_next/static/chunks/0mp75es._z-4x.js","/litellm-asset-prefix/_next/static/chunks/14twssk6nf2_p.js","/litellm-asset-prefix/_next/static/chunks/166fc~7u39du3.js","/litellm-asset-prefix/_next/static/chunks/14ut9b-iwzfct.js","/litellm-asset-prefix/_next/static/chunks/01u0i~l49qpdz.js","/litellm-asset-prefix/_next/static/chunks/02v412-qgvyfr.js","/litellm-asset-prefix/_next/static/chunks/0-_2om65ot6fh.js","/litellm-asset-prefix/_next/static/chunks/0sleuh3e9q.ww.js","/litellm-asset-prefix/_next/static/chunks/00q4mtjboprhm.js","/litellm-asset-prefix/_next/static/chunks/0634irnh4hmq6.js","/litellm-asset-prefix/_next/static/chunks/11ibt3khr2hk3.js","/litellm-asset-prefix/_next/static/chunks/08u5j~2nol0u-.js","/litellm-asset-prefix/_next/static/chunks/0dt4fjjwbrov2.js","/litellm-asset-prefix/_next/static/chunks/0m6zdocif1gl4.js","/litellm-asset-prefix/_next/static/chunks/0-mwvwyjihtq6.js","/litellm-asset-prefix/_next/static/chunks/00ggoni7r8g6y.js","/litellm-asset-prefix/_next/static/chunks/01xm1xt.gmrff.js","/litellm-asset-prefix/_next/static/chunks/036wlkuzplhfz.js","/litellm-asset-prefix/_next/static/chunks/01eoe.0n-q6.q.js","/litellm-asset-prefix/_next/static/chunks/0c.egkkrwi~pa.js","/litellm-asset-prefix/_next/static/chunks/0mb3erwqomzal.js","/litellm-asset-prefix/_next/static/chunks/17u8.w6s717n2.js","/litellm-asset-prefix/_next/static/chunks/0gs8.sc1ds7.w.js","/litellm-asset-prefix/_next/static/chunks/0-dwjzo6mg1t7.js","/litellm-asset-prefix/_next/static/chunks/0aivi0og~sj6k.js","/litellm-asset-prefix/_next/static/chunks/0c4pfjjue0uc-.js","/litellm-asset-prefix/_next/static/chunks/0_0ll_gosf9qi.js","/litellm-asset-prefix/_next/static/chunks/022.sz94ycw4x.js","/litellm-asset-prefix/_next/static/chunks/0ylz5md8p6x7z.js","/litellm-asset-prefix/_next/static/chunks/0_2kvss2-vfen.js","/litellm-asset-prefix/_next/static/chunks/0nnx~7-7e5t~1.js","/litellm-asset-prefix/_next/static/chunks/0ttl0__m~5i8a.js","/litellm-asset-prefix/_next/static/chunks/015yfy38oh-h8.js","/litellm-asset-prefix/_next/static/chunks/0ys10755n8os_.js","/litellm-asset-prefix/_next/static/chunks/0ybvtcd~xp-mx.js","/litellm-asset-prefix/_next/static/chunks/06uhwq-x7qrqc.js"],"default"] 32:I[168027,["/litellm-asset-prefix/_next/static/chunks/06gao0u0xy9th.js","/litellm-asset-prefix/_next/static/chunks/0gszmhudlm6lw.js","/litellm-asset-prefix/_next/static/chunks/0pidya1qvuvx8.js"],"default",1] :HL["/litellm-asset-prefix/_next/static/chunks/05qmwjqau64bz.css","style"] :HL["/litellm-asset-prefix/_next/static/chunks/04o4lz~y91s1r.css","style"] :HL["/litellm-asset-prefix/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] :HL["/litellm-asset-prefix/_next/static/chunks/0jib1e4hgitwz.css","style"] -0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/05qmwjqau64bz.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/04o4lz~y91s1r.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/litellm-asset-prefix/_next/static/chunks/06gao0u0xy9th.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/litellm-asset-prefix/_next/static/chunks/0gszmhudlm6lw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/litellm-asset-prefix/_next/static/chunks/0pidya1qvuvx8.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"inter_5972bc34-module__OU16Qa__className","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],[["$","link","0",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/0jib1e4hgitwz.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/litellm-asset-prefix/_next/static/chunks/0niabq1py.bpc.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/litellm-asset-prefix/_next/static/chunks/0je63_yy.8i72.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/litellm-asset-prefix/_next/static/chunks/0qikgxv.u0j9d.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/litellm-asset-prefix/_next/static/chunks/0fpcaw3chkoi1.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/litellm-asset-prefix/_next/static/chunks/0zmz_tmhm2hsa.js","async":true,"nonce":"$undefined"}],["$","script","script-5",{"src":"/litellm-asset-prefix/_next/static/chunks/01n1bg17oxp8l.js","async":true,"nonce":"$undefined"}],["$","script","script-6",{"src":"/litellm-asset-prefix/_next/static/chunks/181y.ii57q7gs.js","async":true,"nonce":"$undefined"}],["$","script","script-7",{"src":"/litellm-asset-prefix/_next/static/chunks/0gqqvjn11_pp3.js","async":true,"nonce":"$undefined"}],["$","script","script-8",{"src":"/litellm-asset-prefix/_next/static/chunks/09n64dqzn.le~.js","async":true,"nonce":"$undefined"}],["$","script","script-9",{"src":"/litellm-asset-prefix/_next/static/chunks/01g5ls2__cy9q.js","async":true,"nonce":"$undefined"}],["$","script","script-10",{"src":"/litellm-asset-prefix/_next/static/chunks/00dq_sa6qt2eg.js","async":true,"nonce":"$undefined"}],["$","script","script-11",{"src":"/litellm-asset-prefix/_next/static/chunks/0_ex-stk7ibf_.js","async":true,"nonce":"$undefined"}],["$","script","script-12",{"src":"/litellm-asset-prefix/_next/static/chunks/0_p625as00xbq.js","async":true,"nonce":"$undefined"}],["$","script","script-13",{"src":"/litellm-asset-prefix/_next/static/chunks/0tz7rml6rolh7.js","async":true,"nonce":"$undefined"}],["$","script","script-14",{"src":"/litellm-asset-prefix/_next/static/chunks/09.lm5dax~l7e.js","async":true,"nonce":"$undefined"}],["$","script","script-15",{"src":"/litellm-asset-prefix/_next/static/chunks/0~2_b290gsxjj.js","async":true,"nonce":"$undefined"}],"$La","$Lb","$Lc","$Ld","$Le","$Lf","$L10","$L11","$L12","$L13","$L14","$L15","$L16","$L17","$L18","$L19","$L1a","$L1b","$L1c","$L1d","$L1e","$L1f","$L20","$L21","$L22","$L23","$L24","$L25","$L26","$L27","$L28","$L29","$L2a","$L2b","$L2c","$L2d","$L2e","$L2f"],"$L30"]}],{},null,false,null]},null,false,null],"$L31",false]],"m":"$undefined","G":["$32",["$L33","$L34"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"pwKMwm15lSkxVRmJWmHkF"} +0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/05qmwjqau64bz.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/04o4lz~y91s1r.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/litellm-asset-prefix/_next/static/chunks/06gao0u0xy9th.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/litellm-asset-prefix/_next/static/chunks/0gszmhudlm6lw.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/litellm-asset-prefix/_next/static/chunks/0pidya1qvuvx8.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"inter_5972bc34-module__OU16Qa__className","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],[["$","link","0",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/0jib1e4hgitwz.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/litellm-asset-prefix/_next/static/chunks/0niabq1py.bpc.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/litellm-asset-prefix/_next/static/chunks/0je63_yy.8i72.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/litellm-asset-prefix/_next/static/chunks/0qikgxv.u0j9d.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/litellm-asset-prefix/_next/static/chunks/0fpcaw3chkoi1.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/litellm-asset-prefix/_next/static/chunks/0zmz_tmhm2hsa.js","async":true,"nonce":"$undefined"}],["$","script","script-5",{"src":"/litellm-asset-prefix/_next/static/chunks/01n1bg17oxp8l.js","async":true,"nonce":"$undefined"}],["$","script","script-6",{"src":"/litellm-asset-prefix/_next/static/chunks/181y.ii57q7gs.js","async":true,"nonce":"$undefined"}],["$","script","script-7",{"src":"/litellm-asset-prefix/_next/static/chunks/0gqqvjn11_pp3.js","async":true,"nonce":"$undefined"}],["$","script","script-8",{"src":"/litellm-asset-prefix/_next/static/chunks/09n64dqzn.le~.js","async":true,"nonce":"$undefined"}],["$","script","script-9",{"src":"/litellm-asset-prefix/_next/static/chunks/01g5ls2__cy9q.js","async":true,"nonce":"$undefined"}],["$","script","script-10",{"src":"/litellm-asset-prefix/_next/static/chunks/00dq_sa6qt2eg.js","async":true,"nonce":"$undefined"}],["$","script","script-11",{"src":"/litellm-asset-prefix/_next/static/chunks/0tn9xeci9ulk~.js","async":true,"nonce":"$undefined"}],["$","script","script-12",{"src":"/litellm-asset-prefix/_next/static/chunks/0_p625as00xbq.js","async":true,"nonce":"$undefined"}],["$","script","script-13",{"src":"/litellm-asset-prefix/_next/static/chunks/0tz7rml6rolh7.js","async":true,"nonce":"$undefined"}],["$","script","script-14",{"src":"/litellm-asset-prefix/_next/static/chunks/09.lm5dax~l7e.js","async":true,"nonce":"$undefined"}],["$","script","script-15",{"src":"/litellm-asset-prefix/_next/static/chunks/0~2_b290gsxjj.js","async":true,"nonce":"$undefined"}],"$La","$Lb","$Lc","$Ld","$Le","$Lf","$L10","$L11","$L12","$L13","$L14","$L15","$L16","$L17","$L18","$L19","$L1a","$L1b","$L1c","$L1d","$L1e","$L1f","$L20","$L21","$L22","$L23","$L24","$L25","$L26","$L27","$L28","$L29","$L2a","$L2b","$L2c","$L2d","$L2e","$L2f"],"$L30"]}],{},null,false,null]},null,false,null],"$L31",false]],"m":"$undefined","G":["$32",["$L33","$L34"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"yOlkcWtCsM0myFZfnU8Ao"} 35:I[897367,["/litellm-asset-prefix/_next/static/chunks/06gao0u0xy9th.js","/litellm-asset-prefix/_next/static/chunks/0gszmhudlm6lw.js","/litellm-asset-prefix/_next/static/chunks/0pidya1qvuvx8.js"],"OutletBoundary"] 36:"$Sreact.suspense" 38:I[897367,["/litellm-asset-prefix/_next/static/chunks/06gao0u0xy9th.js","/litellm-asset-prefix/_next/static/chunks/0gszmhudlm6lw.js","/litellm-asset-prefix/_next/static/chunks/0pidya1qvuvx8.js"],"ViewportBoundary"] 3a:I[897367,["/litellm-asset-prefix/_next/static/chunks/06gao0u0xy9th.js","/litellm-asset-prefix/_next/static/chunks/0gszmhudlm6lw.js","/litellm-asset-prefix/_next/static/chunks/0pidya1qvuvx8.js"],"MetadataBoundary"] a:["$","script","script-16",{"src":"/litellm-asset-prefix/_next/static/chunks/0jhg37m0hy.uz.js","async":true,"nonce":"$undefined"}] -b:["$","script","script-17",{"src":"/litellm-asset-prefix/_next/static/chunks/0v1c3mu~xn105.js","async":true,"nonce":"$undefined"}] -c:["$","script","script-18",{"src":"/litellm-asset-prefix/_next/static/chunks/08401f_hwndsf.js","async":true,"nonce":"$undefined"}] -d:["$","script","script-19",{"src":"/litellm-asset-prefix/_next/static/chunks/0bkk~1l186k4g.js","async":true,"nonce":"$undefined"}] +b:["$","script","script-17",{"src":"/litellm-asset-prefix/_next/static/chunks/177i7u.kpukgd.js","async":true,"nonce":"$undefined"}] +c:["$","script","script-18",{"src":"/litellm-asset-prefix/_next/static/chunks/0mp75es._z-4x.js","async":true,"nonce":"$undefined"}] +d:["$","script","script-19",{"src":"/litellm-asset-prefix/_next/static/chunks/14twssk6nf2_p.js","async":true,"nonce":"$undefined"}] e:["$","script","script-20",{"src":"/litellm-asset-prefix/_next/static/chunks/166fc~7u39du3.js","async":true,"nonce":"$undefined"}] f:["$","script","script-21",{"src":"/litellm-asset-prefix/_next/static/chunks/14ut9b-iwzfct.js","async":true,"nonce":"$undefined"}] 10:["$","script","script-22",{"src":"/litellm-asset-prefix/_next/static/chunks/01u0i~l49qpdz.js","async":true,"nonce":"$undefined"}] 11:["$","script","script-23",{"src":"/litellm-asset-prefix/_next/static/chunks/02v412-qgvyfr.js","async":true,"nonce":"$undefined"}] -12:["$","script","script-24",{"src":"/litellm-asset-prefix/_next/static/chunks/0ssorln~eooo0.js","async":true,"nonce":"$undefined"}] +12:["$","script","script-24",{"src":"/litellm-asset-prefix/_next/static/chunks/0-_2om65ot6fh.js","async":true,"nonce":"$undefined"}] 13:["$","script","script-25",{"src":"/litellm-asset-prefix/_next/static/chunks/0sleuh3e9q.ww.js","async":true,"nonce":"$undefined"}] 14:["$","script","script-26",{"src":"/litellm-asset-prefix/_next/static/chunks/00q4mtjboprhm.js","async":true,"nonce":"$undefined"}] -15:["$","script","script-27",{"src":"/litellm-asset-prefix/_next/static/chunks/0r.-zuh7vk-cs.js","async":true,"nonce":"$undefined"}] -16:["$","script","script-28",{"src":"/litellm-asset-prefix/_next/static/chunks/0c4pfjjue0uc-.js","async":true,"nonce":"$undefined"}] -17:["$","script","script-29",{"src":"/litellm-asset-prefix/_next/static/chunks/0ys10755n8os_.js","async":true,"nonce":"$undefined"}] +15:["$","script","script-27",{"src":"/litellm-asset-prefix/_next/static/chunks/0634irnh4hmq6.js","async":true,"nonce":"$undefined"}] +16:["$","script","script-28",{"src":"/litellm-asset-prefix/_next/static/chunks/11ibt3khr2hk3.js","async":true,"nonce":"$undefined"}] +17:["$","script","script-29",{"src":"/litellm-asset-prefix/_next/static/chunks/08u5j~2nol0u-.js","async":true,"nonce":"$undefined"}] 18:["$","script","script-30",{"src":"/litellm-asset-prefix/_next/static/chunks/0dt4fjjwbrov2.js","async":true,"nonce":"$undefined"}] -19:["$","script","script-31",{"src":"/litellm-asset-prefix/_next/static/chunks/06oag4x9~8vif.js","async":true,"nonce":"$undefined"}] -1a:["$","script","script-32",{"src":"/litellm-asset-prefix/_next/static/chunks/00j3cgbhfjesd.js","async":true,"nonce":"$undefined"}] -1b:["$","script","script-33",{"src":"/litellm-asset-prefix/_next/static/chunks/036wlkuzplhfz.js","async":true,"nonce":"$undefined"}] +19:["$","script","script-31",{"src":"/litellm-asset-prefix/_next/static/chunks/0m6zdocif1gl4.js","async":true,"nonce":"$undefined"}] +1a:["$","script","script-32",{"src":"/litellm-asset-prefix/_next/static/chunks/0-mwvwyjihtq6.js","async":true,"nonce":"$undefined"}] +1b:["$","script","script-33",{"src":"/litellm-asset-prefix/_next/static/chunks/00ggoni7r8g6y.js","async":true,"nonce":"$undefined"}] 1c:["$","script","script-34",{"src":"/litellm-asset-prefix/_next/static/chunks/01xm1xt.gmrff.js","async":true,"nonce":"$undefined"}] -1d:["$","script","script-35",{"src":"/litellm-asset-prefix/_next/static/chunks/0cbiddnyyt-22.js","async":true,"nonce":"$undefined"}] +1d:["$","script","script-35",{"src":"/litellm-asset-prefix/_next/static/chunks/036wlkuzplhfz.js","async":true,"nonce":"$undefined"}] 1e:["$","script","script-36",{"src":"/litellm-asset-prefix/_next/static/chunks/01eoe.0n-q6.q.js","async":true,"nonce":"$undefined"}] -1f:["$","script","script-37",{"src":"/litellm-asset-prefix/_next/static/chunks/0nnx~7-7e5t~1.js","async":true,"nonce":"$undefined"}] +1f:["$","script","script-37",{"src":"/litellm-asset-prefix/_next/static/chunks/0c.egkkrwi~pa.js","async":true,"nonce":"$undefined"}] 20:["$","script","script-38",{"src":"/litellm-asset-prefix/_next/static/chunks/0mb3erwqomzal.js","async":true,"nonce":"$undefined"}] -21:["$","script","script-39",{"src":"/litellm-asset-prefix/_next/static/chunks/00n_262-goqx6.js","async":true,"nonce":"$undefined"}] +21:["$","script","script-39",{"src":"/litellm-asset-prefix/_next/static/chunks/17u8.w6s717n2.js","async":true,"nonce":"$undefined"}] 22:["$","script","script-40",{"src":"/litellm-asset-prefix/_next/static/chunks/0gs8.sc1ds7.w.js","async":true,"nonce":"$undefined"}] -23:["$","script","script-41",{"src":"/litellm-asset-prefix/_next/static/chunks/11ibt3khr2hk3.js","async":true,"nonce":"$undefined"}] +23:["$","script","script-41",{"src":"/litellm-asset-prefix/_next/static/chunks/0-dwjzo6mg1t7.js","async":true,"nonce":"$undefined"}] 24:["$","script","script-42",{"src":"/litellm-asset-prefix/_next/static/chunks/0aivi0og~sj6k.js","async":true,"nonce":"$undefined"}] -25:["$","script","script-43",{"src":"/litellm-asset-prefix/_next/static/chunks/08cbskerpmujn.js","async":true,"nonce":"$undefined"}] -26:["$","script","script-44",{"src":"/litellm-asset-prefix/_next/static/chunks/0ar6956xz0njn.js","async":true,"nonce":"$undefined"}] +25:["$","script","script-43",{"src":"/litellm-asset-prefix/_next/static/chunks/0c4pfjjue0uc-.js","async":true,"nonce":"$undefined"}] +26:["$","script","script-44",{"src":"/litellm-asset-prefix/_next/static/chunks/0_0ll_gosf9qi.js","async":true,"nonce":"$undefined"}] 27:["$","script","script-45",{"src":"/litellm-asset-prefix/_next/static/chunks/022.sz94ycw4x.js","async":true,"nonce":"$undefined"}] 28:["$","script","script-46",{"src":"/litellm-asset-prefix/_next/static/chunks/0ylz5md8p6x7z.js","async":true,"nonce":"$undefined"}] -29:["$","script","script-47",{"src":"/litellm-asset-prefix/_next/static/chunks/0-dwjzo6mg1t7.js","async":true,"nonce":"$undefined"}] -2a:["$","script","script-48",{"src":"/litellm-asset-prefix/_next/static/chunks/0ttl0__m~5i8a.js","async":true,"nonce":"$undefined"}] -2b:["$","script","script-49",{"src":"/litellm-asset-prefix/_next/static/chunks/0fns6vsccj10h.js","async":true,"nonce":"$undefined"}] +29:["$","script","script-47",{"src":"/litellm-asset-prefix/_next/static/chunks/0_2kvss2-vfen.js","async":true,"nonce":"$undefined"}] +2a:["$","script","script-48",{"src":"/litellm-asset-prefix/_next/static/chunks/0nnx~7-7e5t~1.js","async":true,"nonce":"$undefined"}] +2b:["$","script","script-49",{"src":"/litellm-asset-prefix/_next/static/chunks/0ttl0__m~5i8a.js","async":true,"nonce":"$undefined"}] 2c:["$","script","script-50",{"src":"/litellm-asset-prefix/_next/static/chunks/015yfy38oh-h8.js","async":true,"nonce":"$undefined"}] -2d:["$","script","script-51",{"src":"/litellm-asset-prefix/_next/static/chunks/0m6zdocif1gl4.js","async":true,"nonce":"$undefined"}] +2d:["$","script","script-51",{"src":"/litellm-asset-prefix/_next/static/chunks/0ys10755n8os_.js","async":true,"nonce":"$undefined"}] 2e:["$","script","script-52",{"src":"/litellm-asset-prefix/_next/static/chunks/0ybvtcd~xp-mx.js","async":true,"nonce":"$undefined"}] -2f:["$","script","script-53",{"src":"/litellm-asset-prefix/_next/static/chunks/0j2g7af6k4x7m.js","async":true,"nonce":"$undefined"}] +2f:["$","script","script-53",{"src":"/litellm-asset-prefix/_next/static/chunks/06uhwq-x7qrqc.js","async":true,"nonce":"$undefined"}] 30:["$","$L35",null,{"children":["$","$36",null,{"name":"Next.MetadataOutlet","children":"$@37"}]}] 31:["$","$1","h",{"children":[null,["$","$L38",null,{"children":"$L39"}],["$","div",null,{"hidden":true,"children":["$","$L3a",null,{"children":["$","$36",null,{"name":"Next.Metadata","children":"$L3b"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] 33:["$","link","0",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/05qmwjqau64bz.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] diff --git a/litellm/proxy/_experimental/out/__next._head.txt b/litellm/proxy/_experimental/out/__next._head.txt index 077fb2add54..98aa1531987 100644 --- a/litellm/proxy/_experimental/out/__next._head.txt +++ b/litellm/proxy/_experimental/out/__next._head.txt @@ -3,4 +3,4 @@ 3:I[897367,["/litellm-asset-prefix/_next/static/chunks/06gao0u0xy9th.js","/litellm-asset-prefix/_next/static/chunks/0gszmhudlm6lw.js","/litellm-asset-prefix/_next/static/chunks/0pidya1qvuvx8.js"],"MetadataBoundary"] 4:"$Sreact.suspense" 5:I[27201,["/litellm-asset-prefix/_next/static/chunks/06gao0u0xy9th.js","/litellm-asset-prefix/_next/static/chunks/0gszmhudlm6lw.js","/litellm-asset-prefix/_next/static/chunks/0pidya1qvuvx8.js"],"IconMark"] -0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"LiteLLM Dashboard"}],["$","meta","1",{"name":"description","content":"LiteLLM Proxy Admin UI"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.0~dgapwhi~75y.ico","sizes":"48x48","type":"image/x-icon"}],["$","link","3",{"rel":"icon","href":"./favicon.ico"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"pwKMwm15lSkxVRmJWmHkF"} +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"LiteLLM Dashboard"}],["$","meta","1",{"name":"description","content":"LiteLLM Proxy Admin UI"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.0~dgapwhi~75y.ico","sizes":"48x48","type":"image/x-icon"}],["$","link","3",{"rel":"icon","href":"./favicon.ico"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"yOlkcWtCsM0myFZfnU8Ao"} diff --git a/litellm/proxy/_experimental/out/__next._index.txt b/litellm/proxy/_experimental/out/__next._index.txt index 0075d1133bf..408084d5fd1 100644 --- a/litellm/proxy/_experimental/out/__next._index.txt +++ b/litellm/proxy/_experimental/out/__next._index.txt @@ -5,4 +5,4 @@ 5:I[837457,["/litellm-asset-prefix/_next/static/chunks/06gao0u0xy9th.js","/litellm-asset-prefix/_next/static/chunks/0gszmhudlm6lw.js","/litellm-asset-prefix/_next/static/chunks/0pidya1qvuvx8.js"],"default"] :HL["/litellm-asset-prefix/_next/static/chunks/05qmwjqau64bz.css","style"] :HL["/litellm-asset-prefix/_next/static/chunks/04o4lz~y91s1r.css","style"] -0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/05qmwjqau64bz.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/04o4lz~y91s1r.css","precedence":"next"}],["$","script","script-0",{"src":"/litellm-asset-prefix/_next/static/chunks/06gao0u0xy9th.js","async":true}],["$","script","script-1",{"src":"/litellm-asset-prefix/_next/static/chunks/0gszmhudlm6lw.js","async":true}],["$","script","script-2",{"src":"/litellm-asset-prefix/_next/static/chunks/0pidya1qvuvx8.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"inter_5972bc34-module__OU16Qa__className","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"pwKMwm15lSkxVRmJWmHkF"} +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/05qmwjqau64bz.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/litellm-asset-prefix/_next/static/chunks/04o4lz~y91s1r.css","precedence":"next"}],["$","script","script-0",{"src":"/litellm-asset-prefix/_next/static/chunks/06gao0u0xy9th.js","async":true}],["$","script","script-1",{"src":"/litellm-asset-prefix/_next/static/chunks/0gszmhudlm6lw.js","async":true}],["$","script","script-2",{"src":"/litellm-asset-prefix/_next/static/chunks/0pidya1qvuvx8.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"inter_5972bc34-module__OU16Qa__className","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"yOlkcWtCsM0myFZfnU8Ao"} diff --git a/litellm/proxy/_experimental/out/__next._tree.txt b/litellm/proxy/_experimental/out/__next._tree.txt index 2108f325cd7..101594da2d8 100644 --- a/litellm/proxy/_experimental/out/__next._tree.txt +++ b/litellm/proxy/_experimental/out/__next._tree.txt @@ -2,4 +2,4 @@ :HL["/litellm-asset-prefix/_next/static/chunks/04o4lz~y91s1r.css","style"] :HL["/litellm-asset-prefix/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}] :HL["/litellm-asset-prefix/_next/static/chunks/0jib1e4hgitwz.css","style"] -0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"pwKMwm15lSkxVRmJWmHkF"} +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"yOlkcWtCsM0myFZfnU8Ao"} diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0-_2om65ot6fh.js b/litellm/proxy/_experimental/out/_next/static/chunks/0-_2om65ot6fh.js new file mode 100644 index 00000000000..ee1052662c8 --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/0-_2om65ot6fh.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,888288,e=>{"use strict";var t=e.i(271645);e.s(["default",0,(e,s)=>{let a=void 0!==s,[l,r]=(0,t.useState)(e);return[a?s:l,e=>{a||r(e)}]}])},757440,e=>{"use strict";var t=e.i(290571),s=e.i(271645);e.s(["default",0,e=>{var a=(0,t.__rest)(e,[]);return s.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},a),s.default.createElement("path",{d:"M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z"}))}])},446428,854056,e=>{"use strict";let t;var s=e.i(290571),a=e.i(271645);e.s(["default",0,e=>{var t=(0,s.__rest)(e,[]);return a.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},t),a.default.createElement("path",{d:"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 10.5858L9.17157 7.75736L7.75736 9.17157L10.5858 12L7.75736 14.8284L9.17157 16.2426L12 13.4142L14.8284 16.2426L16.2426 14.8284L13.4142 12L16.2426 9.17157L14.8284 7.75736L12 10.5858Z"}))}],446428);var l=e.i(746725),r=e.i(914189),i=e.i(553521),n=e.i(835696),d=e.i(941444),o=e.i(178677),c=e.i(294316),u=e.i(83733),m=e.i(233137),h=e.i(732607),x=e.i(397701),g=e.i(700020);function f(e){var t;return!!(e.enter||e.enterFrom||e.enterTo||e.leave||e.leaveFrom||e.leaveTo)||(null!=(t=e.as)?t:_)!==a.Fragment||1===a.default.Children.count(e.children)}let p=(0,a.createContext)(null);p.displayName="TransitionContext";var b=((t=b||{}).Visible="visible",t.Hidden="hidden",t);let j=(0,a.createContext)(null);function v(e){return"children"in e?v(e.children):e.current.filter(({el:e})=>null!==e.current).filter(({state:e})=>"visible"===e).length>0}function y(e,t){let s=(0,d.useLatestValue)(e),n=(0,a.useRef)([]),o=(0,i.useIsMounted)(),c=(0,l.useDisposables)(),u=(0,r.useEvent)((e,t=g.RenderStrategy.Hidden)=>{let a=n.current.findIndex(({el:t})=>t===e);-1!==a&&((0,x.match)(t,{[g.RenderStrategy.Unmount](){n.current.splice(a,1)},[g.RenderStrategy.Hidden](){n.current[a].state="hidden"}}),c.microTask(()=>{var e;!v(n)&&o.current&&(null==(e=s.current)||e.call(s))}))}),m=(0,r.useEvent)(e=>{let t=n.current.find(({el:t})=>t===e);return t?"visible"!==t.state&&(t.state="visible"):n.current.push({el:e,state:"visible"}),()=>u(e,g.RenderStrategy.Unmount)}),h=(0,a.useRef)([]),f=(0,a.useRef)(Promise.resolve()),p=(0,a.useRef)({enter:[],leave:[]}),b=(0,r.useEvent)((e,s,a)=>{h.current.splice(0),t&&(t.chains.current[s]=t.chains.current[s].filter(([t])=>t!==e)),null==t||t.chains.current[s].push([e,new Promise(e=>{h.current.push(e)})]),null==t||t.chains.current[s].push([e,new Promise(e=>{Promise.all(p.current[s].map(([e,t])=>t)).then(()=>e())})]),"enter"===s?f.current=f.current.then(()=>null==t?void 0:t.wait.current).then(()=>a(s)):a(s)}),j=(0,r.useEvent)((e,t,s)=>{Promise.all(p.current[t].splice(0).map(([e,t])=>t)).then(()=>{var e;null==(e=h.current.shift())||e()}).then(()=>s(t))});return(0,a.useMemo)(()=>({children:n,register:m,unregister:u,onStart:b,onStop:j,wait:f,chains:p}),[m,u,n,b,j,p,f])}j.displayName="NestingContext";let _=a.Fragment,S=g.RenderFeatures.RenderStrategy,w=(0,g.forwardRefWithAs)(function(e,t){let{show:s,appear:l=!1,unmount:i=!0,...d}=e,u=(0,a.useRef)(null),h=f(e),x=(0,c.useSyncRefs)(...h?[u,t]:null===t?[]:[t]);(0,o.useServerHandoffComplete)();let b=(0,m.useOpenClosed)();if(void 0===s&&null!==b&&(s=(b&m.State.Open)===m.State.Open),void 0===s)throw Error("A is used but it is missing a `show={true | false}` prop.");let[_,w]=(0,a.useState)(s?"visible":"hidden"),C=y(()=>{s||w("hidden")}),[T,k]=(0,a.useState)(!0),I=(0,a.useRef)([s]);(0,n.useIsoMorphicEffect)(()=>{!1!==T&&I.current[I.current.length-1]!==s&&(I.current.push(s),k(!1))},[I,s]);let E=(0,a.useMemo)(()=>({show:s,appear:l,initial:T}),[s,l,T]);(0,n.useIsoMorphicEffect)(()=>{s?w("visible"):v(C)||null===u.current||w("hidden")},[s,C]);let U={unmount:i},R=(0,r.useEvent)(()=>{var t;T&&k(!1),null==(t=e.beforeEnter)||t.call(e)}),B=(0,r.useEvent)(()=>{var t;T&&k(!1),null==(t=e.beforeLeave)||t.call(e)}),M=(0,g.useRender)();return a.default.createElement(j.Provider,{value:C},a.default.createElement(p.Provider,{value:E},M({ourProps:{...U,as:a.Fragment,children:a.default.createElement(N,{ref:x,...U,...d,beforeEnter:R,beforeLeave:B})},theirProps:{},defaultTag:a.Fragment,features:S,visible:"visible"===_,name:"Transition"})))}),N=(0,g.forwardRefWithAs)(function(e,t){var s,l;let{transition:i=!0,beforeEnter:d,afterEnter:b,beforeLeave:w,afterLeave:N,enter:C,enterFrom:T,enterTo:k,entered:I,leave:E,leaveFrom:U,leaveTo:R,...B}=e,[M,F]=(0,a.useState)(null),D=(0,a.useRef)(null),A=f(e),L=(0,c.useSyncRefs)(...A?[D,t,F]:null===t?[]:[t]),O=null==(s=B.unmount)||s?g.RenderStrategy.Unmount:g.RenderStrategy.Hidden,{show:P,appear:z,initial:V}=function(){let e=(0,a.useContext)(p);if(null===e)throw Error("A is used but it is missing a parent or .");return e}(),[$,K]=(0,a.useState)(P?"visible":"hidden"),H=function(){let e=(0,a.useContext)(j);if(null===e)throw Error("A is used but it is missing a parent or .");return e}(),{register:q,unregister:G}=H;(0,n.useIsoMorphicEffect)(()=>q(D),[q,D]),(0,n.useIsoMorphicEffect)(()=>{if(O===g.RenderStrategy.Hidden&&D.current)return P&&"visible"!==$?void K("visible"):(0,x.match)($,{hidden:()=>G(D),visible:()=>q(D)})},[$,D,q,G,P,O]);let W=(0,o.useServerHandoffComplete)();(0,n.useIsoMorphicEffect)(()=>{if(A&&W&&"visible"===$&&null===D.current)throw Error("Did you forget to passthrough the `ref` to the actual DOM node?")},[D,$,W,A]);let J=V&&!z,Q=z&&P&&V,Z=(0,a.useRef)(!1),Y=y(()=>{Z.current||(K("hidden"),G(D))},H),X=(0,r.useEvent)(e=>{Z.current=!0,Y.onStart(D,e?"enter":"leave",e=>{"enter"===e?null==d||d():"leave"===e&&(null==w||w())})}),ee=(0,r.useEvent)(e=>{let t=e?"enter":"leave";Z.current=!1,Y.onStop(D,t,e=>{"enter"===e?null==b||b():"leave"===e&&(null==N||N())}),"leave"!==t||v(Y)||(K("hidden"),G(D))});(0,a.useEffect)(()=>{A&&i||(X(P),ee(P))},[P,A,i]);let et=!(!i||!A||!W||J),[,es]=(0,u.useTransition)(et,M,P,{start:X,end:ee}),ea=(0,g.compact)({ref:L,className:(null==(l=(0,h.classNames)(B.className,Q&&C,Q&&T,es.enter&&C,es.enter&&es.closed&&T,es.enter&&!es.closed&&k,es.leave&&E,es.leave&&!es.closed&&U,es.leave&&es.closed&&R,!es.transition&&P&&I))?void 0:l.trim())||void 0,...(0,u.transitionDataAttributes)(es)}),el=0;"visible"===$&&(el|=m.State.Open),"hidden"===$&&(el|=m.State.Closed),es.enter&&(el|=m.State.Opening),es.leave&&(el|=m.State.Closing);let er=(0,g.useRender)();return a.default.createElement(j.Provider,{value:Y},a.default.createElement(m.OpenClosedProvider,{value:el},er({ourProps:ea,theirProps:B,defaultTag:_,features:S,visible:"visible"===$,name:"Transition.Child"})))}),C=(0,g.forwardRefWithAs)(function(e,t){let s=null!==(0,a.useContext)(p),l=null!==(0,m.useOpenClosed)();return a.default.createElement(a.default.Fragment,null,!s&&l?a.default.createElement(w,{ref:t,...e}):a.default.createElement(N,{ref:t,...e}))}),T=Object.assign(w,{Child:C,Root:w});e.s(["Transition",0,T],854056)},206929,e=>{"use strict";var t=e.i(290571),s=e.i(757440),a=e.i(271645),l=e.i(446428),r=e.i(444755),i=e.i(673706),n=e.i(103471),d=e.i(495470),o=e.i(854056),c=e.i(888288);let u=(0,i.makeClassName)("Select"),m=a.default.forwardRef((e,i)=>{let{defaultValue:m="",value:h,onValueChange:x,placeholder:g="Select...",disabled:f=!1,icon:p,enableClear:b=!1,required:j,children:v,name:y,error:_=!1,errorMessage:S,className:w,id:N}=e,C=(0,t.__rest)(e,["defaultValue","value","onValueChange","placeholder","disabled","icon","enableClear","required","children","name","error","errorMessage","className","id"]),T=(0,a.useRef)(null),k=a.Children.toArray(v),[I,E]=(0,c.default)(m,h),U=(0,a.useMemo)(()=>{let e=a.default.Children.toArray(v).filter(a.isValidElement);return(0,n.constructValueToNameMapping)(e)},[v]);return a.default.createElement("div",{className:(0,r.tremorTwMerge)("w-full min-w-[10rem] text-tremor-default",w)},a.default.createElement("div",{className:"relative"},a.default.createElement("select",{title:"select-hidden",required:j,className:(0,r.tremorTwMerge)("h-full w-full absolute left-0 top-0 -z-10 opacity-0"),value:I,onChange:e=>{e.preventDefault()},name:y,disabled:f,id:N,onFocus:()=>{let e=T.current;e&&e.focus()}},a.default.createElement("option",{className:"hidden",value:"",disabled:!0,hidden:!0},g),k.map(e=>{let t=e.props.value,s=e.props.children;return a.default.createElement("option",{className:"hidden",key:t,value:t},s)})),a.default.createElement(d.Listbox,Object.assign({as:"div",ref:i,defaultValue:I,value:I,onChange:e=>{null==x||x(e),E(e)},disabled:f,id:N},C),({value:e})=>{var t;return a.default.createElement(a.default.Fragment,null,a.default.createElement(d.ListboxButton,{ref:T,className:(0,r.tremorTwMerge)("w-full outline-none text-left whitespace-nowrap truncate rounded-tremor-default focus:ring-2 transition duration-100 border pr-8 py-2","border-tremor-border shadow-tremor-input focus:border-tremor-brand-subtle focus:ring-tremor-brand-muted","dark:border-dark-tremor-border dark:shadow-dark-tremor-input dark:focus:border-dark-tremor-brand-subtle dark:focus:ring-dark-tremor-brand-muted",p?"pl-10":"pl-3",(0,n.getSelectButtonColors)((0,n.hasValue)(e),f,_))},p&&a.default.createElement("span",{className:(0,r.tremorTwMerge)("absolute inset-y-0 left-0 flex items-center ml-px pl-2.5")},a.default.createElement(p,{className:(0,r.tremorTwMerge)(u("Icon"),"flex-none h-5 w-5","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")})),a.default.createElement("span",{className:"w-[90%] block truncate"},e&&null!=(t=U.get(e))?t:g),a.default.createElement("span",{className:(0,r.tremorTwMerge)("absolute inset-y-0 right-0 flex items-center mr-3")},a.default.createElement(s.default,{className:(0,r.tremorTwMerge)(u("arrowDownIcon"),"flex-none h-5 w-5","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")}))),b&&I?a.default.createElement("button",{type:"button",className:(0,r.tremorTwMerge)("absolute inset-y-0 right-0 flex items-center mr-8"),onClick:e=>{e.preventDefault(),E(""),null==x||x("")}},a.default.createElement(l.default,{className:(0,r.tremorTwMerge)(u("clearIcon"),"flex-none h-4 w-4","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")})):null,a.default.createElement(o.Transition,{enter:"transition ease duration-100 transform",enterFrom:"opacity-0 -translate-y-4",enterTo:"opacity-100 translate-y-0",leave:"transition ease duration-100 transform",leaveFrom:"opacity-100 translate-y-0",leaveTo:"opacity-0 -translate-y-4"},a.default.createElement(d.ListboxOptions,{anchor:"bottom start",className:(0,r.tremorTwMerge)("z-10 w-[var(--button-width)] divide-y overflow-y-auto outline-none rounded-tremor-default max-h-[228px] border [--anchor-gap:4px]","bg-tremor-background border-tremor-border divide-tremor-border shadow-tremor-dropdown","dark:bg-dark-tremor-background dark:border-dark-tremor-border dark:divide-dark-tremor-border dark:shadow-dark-tremor-dropdown")},v)))})),_&&S?a.default.createElement("p",{className:(0,r.tremorTwMerge)("errorMessage","text-sm text-rose-500 mt-1")},S):null)});m.displayName="Select",e.s(["Select",0,m],206929)},502275,e=>{"use strict";var t=e.i(271645);let s=t.forwardRef(function(e,s){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:s},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["InformationCircleIcon",0,s],502275)},78085,e=>{"use strict";var t=e.i(290571),s=e.i(103471),a=e.i(888288),l=e.i(271645),r=e.i(444755),i=e.i(673706);let n=(0,i.makeClassName)("Textarea"),d=l.default.forwardRef((e,d)=>{let{value:o,defaultValue:c="",placeholder:u="Type...",error:m=!1,errorMessage:h,disabled:x=!1,className:g,onChange:f,onValueChange:p,autoHeight:b=!1}=e,j=(0,t.__rest)(e,["value","defaultValue","placeholder","error","errorMessage","disabled","className","onChange","onValueChange","autoHeight"]),[v,y]=(0,a.default)(c,o),_=(0,l.useRef)(null),S=(0,s.hasValue)(v);return(0,l.useEffect)(()=>{let e=_.current;if(b&&e){e.style.height="60px";let t=e.scrollHeight;e.style.height=t+"px"}},[b,_,v]),l.default.createElement(l.default.Fragment,null,l.default.createElement("textarea",Object.assign({ref:(0,i.mergeRefs)([_,d]),value:v,placeholder:u,disabled:x,className:(0,r.tremorTwMerge)(n("Textarea"),"w-full flex items-center outline-none rounded-tremor-default px-3 py-2 text-tremor-default focus:ring-2 transition duration-100 border","shadow-tremor-input focus:border-tremor-brand-subtle focus:ring-tremor-brand-muted","dark:shadow-dark-tremor-input focus:dark:border-dark-tremor-brand-subtle focus:dark:ring-dark-tremor-brand-muted",(0,s.getSelectButtonColors)(S,x,m),x?"placeholder:text-tremor-content-subtle dark:placeholder:text-dark-tremor-content-subtle":"placeholder:text-tremor-content dark:placeholder:text-dark-tremor-content",g),"data-testid":"text-area",onChange:e=>{null==f||f(e),y(e.target.value),null==p||p(e.target.value)}},j)),m&&h?l.default.createElement("p",{className:(0,r.tremorTwMerge)(n("errorMessage"),"text-sm text-red-500 mt-1")},h):null)});d.displayName="Textarea",e.s(["Textarea",0,d],78085)},114600,e=>{"use strict";var t=e.i(290571),s=e.i(444755),a=e.i(673706),l=e.i(271645);let r=(0,a.makeClassName)("Divider"),i=l.default.forwardRef((e,a)=>{let{className:i,children:n}=e,d=(0,t.__rest)(e,["className","children"]);return l.default.createElement("div",Object.assign({ref:a,className:(0,s.tremorTwMerge)(r("root"),"w-full mx-auto my-6 flex justify-between gap-3 items-center text-tremor-default","text-tremor-content","dark:text-dark-tremor-content",i)},d),n?l.default.createElement(l.default.Fragment,null,l.default.createElement("div",{className:(0,s.tremorTwMerge)("w-full h-[1px] bg-tremor-border dark:bg-dark-tremor-border")}),l.default.createElement("div",{className:(0,s.tremorTwMerge)("text-inherit whitespace-nowrap")},n),l.default.createElement("div",{className:(0,s.tremorTwMerge)("w-full h-[1px] bg-tremor-border dark:bg-dark-tremor-border")})):l.default.createElement("div",{className:(0,s.tremorTwMerge)("w-full h-[1px] bg-tremor-border dark:bg-dark-tremor-border")}))});i.displayName="Divider",e.s(["Divider",0,i],114600)},910119,e=>{"use strict";var t=e.i(843476),s=e.i(197647),a=e.i(653824),l=e.i(881073),r=e.i(404206),i=e.i(723731),n=e.i(271645),d=e.i(464571),o=e.i(212931),c=e.i(898586),u=e.i(312361),m=e.i(291542),h=e.i(199133),x=e.i(28651),g=e.i(175712),f=e.i(770914),p=e.i(536916),b=e.i(764205),j=e.i(827252),v=e.i(994388),y=e.i(35983),_=e.i(779241),S=e.i(78085),w=e.i(808613),N=e.i(592968),C=e.i(708347),T=e.i(860585),k=e.i(355619),I=e.i(435451);function E({userData:e,onCancel:s,onSubmit:a,teams:l,accessToken:r,userID:i,userRole:d,userModels:o,possibleUIRoles:c,isBulkEdit:u=!1}){let[m]=w.Form.useForm(),[x,g]=(0,n.useState)(!1);return n.default.useEffect(()=>{let t=e.user_info?.max_budget,s=null==t;g(s),m.setFieldsValue({user_id:e.user_id,user_email:e.user_info?.user_email,user_alias:e.user_info?.user_alias,user_role:e.user_info?.user_role,models:e.user_info?.models||[],max_budget:s?"":t,budget_duration:e.user_info?.budget_duration,metadata:e.user_info?.metadata?JSON.stringify(e.user_info.metadata,null,2):void 0})},[e,m]),(0,t.jsxs)(w.Form,{form:m,onFinish:e=>{if(e.metadata&&"string"==typeof e.metadata)try{e.metadata=JSON.parse(e.metadata)}catch(e){console.error("Error parsing metadata JSON:",e);return}(x||""===e.max_budget||void 0===e.max_budget)&&(e.max_budget=null),a(e)},layout:"vertical",children:[!u&&(0,t.jsx)(w.Form.Item,{label:"User ID",name:"user_id",children:(0,t.jsx)(_.TextInput,{disabled:!0})}),!u&&(0,t.jsx)(w.Form.Item,{label:"Email",name:"user_email",children:(0,t.jsx)(_.TextInput,{})}),(0,t.jsx)(w.Form.Item,{label:"User Alias",name:"user_alias",children:(0,t.jsx)(_.TextInput,{})}),(0,t.jsx)(w.Form.Item,{label:(0,t.jsxs)("span",{children:["Global Proxy Role"," ",(0,t.jsx)(N.Tooltip,{title:"This is the role that the user will globally on the proxy. This role is independent of any team/org specific roles.",children:(0,t.jsx)(j.InfoCircleOutlined,{})})]}),name:"user_role",children:(0,t.jsx)(h.Select,{children:c&&Object.entries(c).map(([e,{ui_label:s,description:a}])=>(0,t.jsx)(y.SelectItem,{value:e,title:s,children:(0,t.jsxs)("div",{className:"flex",children:[s," ",(0,t.jsx)("p",{className:"ml-2",style:{color:"gray",fontSize:"12px"},children:a})]})},e))})}),(0,t.jsx)(w.Form.Item,{label:(0,t.jsxs)("span",{children:["Personal Models"," ",(0,t.jsx)(N.Tooltip,{title:"Select which models this user can access outside of team-scope. Choose 'All Proxy Models' to grant access to all models available on the proxy.",children:(0,t.jsx)(j.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"models",children:(0,t.jsxs)(h.Select,{mode:"multiple",placeholder:"Select models",style:{width:"100%"},disabled:!C.all_admin_roles.includes(d||""),children:[(0,t.jsx)(h.Select.Option,{value:"all-proxy-models",children:"All Proxy Models"},"all-proxy-models"),(0,t.jsx)(h.Select.Option,{value:"no-default-models",children:"No Default Models"},"no-default-models"),o.map(e=>(0,t.jsx)(h.Select.Option,{value:e,children:(0,k.getModelDisplayName)(e)},e))]})}),(0,t.jsx)(w.Form.Item,{label:(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"12px"},children:[(0,t.jsx)("span",{children:"Max Budget (USD)"}),(0,t.jsx)(p.Checkbox,{checked:x,onChange:e=>{let t=e.target.checked;g(t),t&&m.setFieldsValue({max_budget:""})},children:"Unlimited Budget"})]}),name:"max_budget",rules:[{validator:(e,t)=>x||""!==t&&null!=t?Promise.resolve():Promise.reject(Error("Please enter a budget or select Unlimited Budget"))}],children:(0,t.jsx)(I.default,{step:.01,precision:2,style:{width:"100%"},disabled:x})}),(0,t.jsx)(w.Form.Item,{label:"Reset Budget",name:"budget_duration",children:(0,t.jsx)(T.default,{})}),(0,t.jsx)(w.Form.Item,{label:"Metadata",name:"metadata",children:(0,t.jsx)(S.Textarea,{rows:4,placeholder:"Enter metadata as JSON"})}),(0,t.jsxs)("div",{className:"flex justify-end space-x-2",children:[(0,t.jsx)(v.Button,{variant:"secondary",type:"button",onClick:s,children:"Cancel"}),(0,t.jsx)(v.Button,{type:"submit",children:"Save Changes"})]})]})}var U=e.i(727749),R=e.i(888259);let{Text:B,Title:M}=c.Typography,F=({open:e,onCancel:s,selectedUsers:a,possibleUIRoles:l,accessToken:r,onSuccess:i,teams:d,userRole:c,userModels:j,allowAllUsers:v=!1})=>{let[y,_]=(0,n.useState)(!1),[S,w]=(0,n.useState)([]),[N,C]=(0,n.useState)(null),[T,k]=(0,n.useState)(!1),[I,F]=(0,n.useState)(!1),D=()=>{w([]),C(null),k(!1),F(!1),s()},A=n.default.useMemo(()=>({user_id:"bulk_edit",user_info:{user_email:"",user_role:"",teams:[],models:[],max_budget:null,spend:0,metadata:{},created_at:null,updated_at:null},keys:[],teams:d||[]}),[d,e]),L=async e=>{if(console.log("formValues",e),!r)return void U.default.fromBackend("Access token not found");_(!0);try{let t=a.map(e=>e.user_id),l={};e.user_role&&""!==e.user_role&&(l.user_role=e.user_role),null!==e.max_budget&&void 0!==e.max_budget&&(l.max_budget=e.max_budget),e.models&&e.models.length>0&&(l.models=e.models),e.budget_duration&&""!==e.budget_duration&&(l.budget_duration=e.budget_duration),e.metadata&&Object.keys(e.metadata).length>0&&(l.metadata=e.metadata);let n=Object.keys(l).length>0,d=T&&S.length>0;if(!n&&!d)return void U.default.fromBackend("Please modify at least one field or select teams to add users to");let o=[];if(n)if(I){let e=await (0,b.userBulkUpdateUserCall)(r,l,void 0,!0);o.push(`Updated all users (${e.total_requested} total)`)}else await (0,b.userBulkUpdateUserCall)(r,l,t),o.push(`Updated ${t.length} user(s)`);if(d){let e=[];for(let t of S)try{let s=null;s=I?null:a.map(e=>({user_id:e.user_id,role:"user",user_email:e.user_email||null}));let l=await (0,b.teamBulkMemberAddCall)(r,t,s||null,N||void 0,I);console.log("result",l),e.push({teamId:t,success:!0,successfulAdditions:l.successful_additions,failedAdditions:l.failed_additions})}catch(s){console.error(`Failed to add users to team ${t}:`,s),e.push({teamId:t,success:!1,error:s})}let t=e.filter(e=>e.success),s=e.filter(e=>!e.success);if(t.length>0){let e=t.reduce((e,t)=>e+t.successfulAdditions,0);o.push(`Added users to ${t.length} team(s) (${e} total additions)`)}s.length>0&&R.default.warning(`Failed to add users to ${s.length} team(s)`)}o.length>0&&U.default.success(o.join(". ")),w([]),C(null),k(!1),F(!1),i(),s()}catch(e){console.error("Bulk operation failed:",e),U.default.fromBackend("Failed to perform bulk operations")}finally{_(!1)}};return(0,t.jsxs)(o.Modal,{open:e,onCancel:D,footer:null,title:I?"Bulk Edit All Users":`Bulk Edit ${a.length} User(s)`,width:800,children:[v&&(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(p.Checkbox,{checked:I,onChange:e=>F(e.target.checked),children:(0,t.jsx)(B,{strong:!0,children:"Update ALL users in the system"})}),I&&(0,t.jsx)("div",{style:{marginTop:8},children:(0,t.jsx)(B,{type:"warning",style:{fontSize:"12px"},children:"⚠️ This will apply changes to ALL users in the system, not just the selected ones."})})]}),!I&&(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsxs)(M,{level:5,children:["Selected Users (",a.length,"):"]}),(0,t.jsx)(m.Table,{size:"small",bordered:!0,dataSource:a,pagination:!1,scroll:{y:200},rowKey:"user_id",columns:[{title:"User ID",dataIndex:"user_id",key:"user_id",width:"30%",render:e=>(0,t.jsx)(B,{strong:!0,style:{fontSize:"12px"},children:e.length>20?`${e.slice(0,20)}...`:e})},{title:"Email",dataIndex:"user_email",key:"user_email",width:"25%",render:e=>(0,t.jsx)(B,{type:"secondary",style:{fontSize:"12px"},children:e||"No email"})},{title:"Current Role",dataIndex:"user_role",key:"user_role",width:"25%",render:e=>(0,t.jsx)(B,{style:{fontSize:"12px"},children:l?.[e]?.ui_label||e})},{title:"Budget",dataIndex:"max_budget",key:"max_budget",width:"20%",render:e=>(0,t.jsx)(B,{style:{fontSize:"12px"},children:null!==e?`$${e}`:"Unlimited"})}]})]}),(0,t.jsx)(u.Divider,{}),(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsxs)(B,{children:[(0,t.jsx)("strong",{children:"Instructions:"})," Fill in the fields below with the values you want to apply to all selected users. You can bulk edit: role, budget, models, and metadata. You can also add users to teams."]})}),(0,t.jsx)(g.Card,{title:"Team Management",size:"small",className:"mb-4",style:{backgroundColor:"#fafafa"},children:(0,t.jsxs)(f.Space,{direction:"vertical",style:{width:"100%"},children:[(0,t.jsx)(p.Checkbox,{checked:T,onChange:e=>k(e.target.checked),children:"Add selected users to teams"}),T&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(B,{strong:!0,children:"Select Teams:"}),(0,t.jsx)(h.Select,{mode:"multiple",placeholder:"Select teams to add users to",value:S,onChange:w,style:{width:"100%",marginTop:8},options:d?.map(e=>({label:e.team_alias||e.team_id,value:e.team_id}))||[]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(B,{strong:!0,children:"Team Budget (Optional):"}),(0,t.jsx)(x.InputNumber,{placeholder:"Max budget per user in team",value:N,onChange:e=>C(e),style:{width:"100%",marginTop:8},min:0,step:.01,precision:2}),(0,t.jsx)(B,{type:"secondary",style:{fontSize:"12px"},children:"Leave empty for unlimited budget within team limits"})]}),(0,t.jsx)(B,{type:"secondary",style:{fontSize:"12px"},children:'Users will be added with "user" role by default. All users will be added to each selected team.'})]})]})}),(0,t.jsx)(E,{userData:A,onCancel:D,onSubmit:L,teams:d,accessToken:r,userID:"bulk_edit",userRole:c,userModels:j,possibleUIRoles:l,isBulkEdit:!0}),y&&(0,t.jsx)("div",{style:{textAlign:"center",marginTop:"10px"},children:(0,t.jsxs)(B,{children:["Updating ",I?"all users":a.length," user(s)..."]})})]})};var D=e.i(371455);let A=({visible:e,possibleUIRoles:s,onCancel:a,user:l,onSubmit:r})=>{let[i,c]=(0,n.useState)(l),[u]=w.Form.useForm();(0,n.useEffect)(()=>{u.resetFields()},[l]);let m=async()=>{u.resetFields(),a()},g=async e=>{r(e),u.resetFields(),a()};return l?(0,t.jsx)(o.Modal,{open:e,onCancel:m,footer:null,title:"Edit User "+l.user_id,width:1e3,children:(0,t.jsx)(w.Form,{form:u,onFinish:g,initialValues:l,labelCol:{span:8},wrapperCol:{span:16},labelAlign:"left",children:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(w.Form.Item,{className:"mt-8",label:"User Email",tooltip:"Email of the User",name:"user_email",children:(0,t.jsx)(_.TextInput,{})}),(0,t.jsx)(w.Form.Item,{label:"user_id",name:"user_id",hidden:!0,children:(0,t.jsx)(_.TextInput,{})}),(0,t.jsx)(w.Form.Item,{label:"User Role",name:"user_role",children:(0,t.jsx)(h.Select,{children:s&&Object.entries(s).map(([e,{ui_label:s,description:a}])=>(0,t.jsx)(y.SelectItem,{value:e,title:s,children:(0,t.jsxs)("div",{className:"flex",children:[s," ",(0,t.jsx)("p",{className:"ml-2",style:{color:"gray",fontSize:"12px"},children:a})]})},e))})}),(0,t.jsx)(w.Form.Item,{label:"Spend (USD)",name:"spend",tooltip:"(float) - Spend of all LLM calls completed by this user",help:"Across all keys (including keys with team_id).",children:(0,t.jsx)(x.InputNumber,{min:0,step:.01})}),(0,t.jsx)(w.Form.Item,{label:"User Budget (USD)",name:"max_budget",tooltip:"(float) - Maximum budget of this user",help:"Maximum budget of this user.",children:(0,t.jsx)(I.default,{min:0,step:.01})}),(0,t.jsx)(w.Form.Item,{label:"Reset Budget",name:"budget_duration",children:(0,t.jsx)(T.default,{})}),(0,t.jsx)("div",{style:{textAlign:"right",marginTop:"10px"},children:(0,t.jsx)(d.Button,{htmlType:"submit",children:"Save"})}),(0,t.jsx)("div",{style:{textAlign:"right",marginTop:"10px"},children:(0,t.jsx)(d.Button,{htmlType:"submit",children:"Save"})})]})})}):null};var L=e.i(172372),O=e.i(500330),P=e.i(152473),z=e.i(266027),V=e.i(912598),$=e.i(127952),K=e.i(304967),H=e.i(629569),q=e.i(599724),G=e.i(114600),W=e.i(482725),J=e.i(790848),Q=e.i(646563),Z=e.i(955135);let Y=({accessToken:e,possibleUIRoles:s,userID:a,userRole:l})=>{let[r,i]=(0,n.useState)(!0),[o,u]=(0,n.useState)(null),[m,g]=(0,n.useState)(!1),[f,p]=(0,n.useState)({}),[j,v]=(0,n.useState)(!1),[y,S]=(0,n.useState)([]),{Paragraph:w}=c.Typography,{Option:N}=h.Select;(0,n.useEffect)(()=>{(async()=>{if(!e)return i(!1);try{let t=await (0,b.getInternalUserSettings)(e);if(u(t),p(t.values||{}),e)try{let t=await (0,b.modelAvailableCall)(e,a,l);if(t&&t.data){let e=t.data.map(e=>e.id);S(e)}}catch(e){console.error("Error fetching available models:",e)}}catch(e){console.error("Error fetching SSO settings:",e),U.default.fromBackend("Failed to fetch SSO settings")}finally{i(!1)}})()},[e]);let C=async()=>{if(e){v(!0);try{let t=Object.entries(f).reduce((e,[t,s])=>(e[t]=""===s?null:s,e),{}),s=await (0,b.updateInternalUserSettings)(e,t);u({...o,values:s.settings}),g(!1)}catch(e){console.error("Error updating SSO settings:",e),U.default.fromBackend("Failed to update settings: "+e)}finally{v(!1)}}},I=(e,t)=>{p(s=>({...s,[e]:t}))},E=e=>e&&Array.isArray(e)?e.map(e=>"string"==typeof e?{team_id:e,user_role:"user"}:"object"==typeof e&&e.team_id?{team_id:e.team_id,max_budget_in_team:e.max_budget_in_team,user_role:e.user_role||"user"}:{team_id:"",user_role:"user"}):[];return r?(0,t.jsx)("div",{className:"flex justify-center items-center h-64",children:(0,t.jsx)(W.Spin,{size:"large"})}):o?(0,t.jsxs)(K.Card,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(H.Title,{children:"Default User Settings"}),!r&&o&&(m?(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(d.Button,{onClick:()=>{g(!1),p(o.values||{})},disabled:j,children:"Cancel"}),(0,t.jsx)(d.Button,{type:"primary",onClick:C,loading:j,children:"Save Changes"})]}):(0,t.jsx)(d.Button,{type:"primary",onClick:()=>g(!0),children:"Edit Settings"}))]}),o?.field_schema?.description&&(0,t.jsx)(w,{className:"mb-4",children:o.field_schema.description}),(0,t.jsx)(G.Divider,{}),(0,t.jsx)("div",{className:"mt-4 space-y-4",children:(()=>{let{values:e,field_schema:a}=o;return a&&a.properties?Object.entries(a.properties).map(([a,l])=>{let r=e[a],i=a.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase());return(0,t.jsxs)("div",{className:"mb-6 pb-6 border-b border-gray-200 last:border-0",children:[(0,t.jsx)(q.Text,{className:"font-medium text-lg",children:i}),(0,t.jsx)(w,{className:"text-sm text-gray-500 mt-1",children:l.description||"No description available"}),m?(0,t.jsx)("div",{className:"mt-2",children:((e,a)=>{let l=a.type;if("teams"===e){let s,a;return(0,t.jsx)("div",{className:"mt-2",children:(s=E(f[e]||[]),a=(e,t,a)=>{let l=[...s];l[e]={...l[e],[t]:a},I("teams",l)},(0,t.jsxs)("div",{className:"space-y-3",children:[s.map((e,l)=>(0,t.jsxs)("div",{className:"border rounded-lg p-4 bg-gray-50",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsxs)(q.Text,{className:"font-medium",children:["Team ",l+1]}),(0,t.jsx)(d.Button,{size:"small",danger:!0,icon:(0,t.jsx)(Z.DeleteOutlined,{}),onClick:()=>{I("teams",s.filter((e,t)=>t!==l))},children:"Remove"})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(q.Text,{className:"text-sm font-medium mb-1",children:"Team ID"}),(0,t.jsx)(_.TextInput,{value:e.team_id,onChange:e=>a(l,"team_id",e.target.value),placeholder:"Enter team ID"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(q.Text,{className:"text-sm font-medium mb-1",children:"Max Budget in Team"}),(0,t.jsx)(x.InputNumber,{style:{width:"100%"},value:e.max_budget_in_team,onChange:e=>a(l,"max_budget_in_team",e),placeholder:"Optional",min:0,step:.01,precision:2})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(q.Text,{className:"text-sm font-medium mb-1",children:"User Role"}),(0,t.jsxs)(h.Select,{style:{width:"100%"},value:e.user_role,onChange:e=>a(l,"user_role",e),children:[(0,t.jsx)(N,{value:"user",children:"User"}),(0,t.jsx)(N,{value:"admin",children:"Admin"})]})]})]})]},l)),(0,t.jsx)(d.Button,{icon:(0,t.jsx)(Q.PlusOutlined,{}),onClick:()=>{I("teams",[...s,{team_id:"",user_role:"user"}])},className:"w-full",children:"Add Team"})]}))})}if("user_role"===e&&s)return(0,t.jsx)(h.Select,{style:{width:"100%"},value:f[e]||"",onChange:t=>I(e,t),className:"mt-2",children:Object.entries(s).filter(([e])=>e.includes("internal_user")).map(([e,{ui_label:s,description:a}])=>(0,t.jsx)(N,{value:e,children:(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)("span",{children:s}),(0,t.jsx)("span",{className:"ml-2 text-xs text-gray-500",children:a})]})},e))});if("budget_duration"===e)return(0,t.jsx)(T.default,{value:f[e]||null,onChange:t=>I(e,t),className:"mt-2"});if("boolean"===l)return(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(J.Switch,{checked:!!f[e],onChange:t=>I(e,t)})});if("array"===l&&a.items?.enum)return(0,t.jsx)(h.Select,{mode:"multiple",style:{width:"100%"},value:f[e]||[],onChange:t=>I(e,t),className:"mt-2",children:a.items.enum.map(e=>(0,t.jsx)(N,{value:e,children:e},e))});else if("models"===e)return(0,t.jsxs)(h.Select,{mode:"multiple",style:{width:"100%"},value:f[e]||[],onChange:t=>I(e,t),className:"mt-2",children:[(0,t.jsx)(N,{value:"no-default-models",children:"No Default Models"},"no-default-models"),(0,t.jsx)(N,{value:"all-proxy-models",children:"All Proxy Models"},"all-proxy-models"),y.map(e=>(0,t.jsx)(N,{value:e,children:(0,k.getModelDisplayName)(e)},e))]});else if("string"===l&&a.enum)return(0,t.jsx)(h.Select,{style:{width:"100%"},value:f[e]||"",onChange:t=>I(e,t),className:"mt-2",children:a.enum.map(e=>(0,t.jsx)(N,{value:e,children:e},e))});else return(0,t.jsx)(_.TextInput,{value:void 0!==f[e]?String(f[e]):"",onChange:t=>I(e,t.target.value),placeholder:a.description||"",className:"mt-2"})})(a,l)}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:((e,a)=>{if(null==a)return(0,t.jsx)("span",{className:"text-gray-400",children:"Not set"});if("teams"===e&&Array.isArray(a)){if(0===a.length)return(0,t.jsx)("span",{className:"text-gray-400",children:"No teams assigned"});let e=E(a);return(0,t.jsx)("div",{className:"space-y-2 mt-1",children:e.map((e,s)=>(0,t.jsx)("div",{className:"border rounded-lg p-3 bg-white",children:(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-2 text-sm",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"font-medium text-gray-600",children:"Team ID:"}),(0,t.jsx)("p",{className:"text-gray-900",children:e.team_id||"Not specified"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"font-medium text-gray-600",children:"Max Budget:"}),(0,t.jsx)("p",{className:"text-gray-900",children:void 0!==e.max_budget_in_team?`$${(0,O.formatNumberWithCommas)(e.max_budget_in_team,4)}`:"No limit"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"font-medium text-gray-600",children:"Role:"}),(0,t.jsx)("p",{className:"text-gray-900 capitalize",children:e.user_role})]})]})},s))})}if("user_role"===e&&s&&s[a]){let{ui_label:e,description:l}=s[a];return(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"font-medium",children:e}),l&&(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:l})]})}if("budget_duration"===e)return(0,t.jsx)("span",{children:(0,T.getBudgetDurationLabel)(a)});if("boolean"==typeof a)return(0,t.jsx)("span",{children:a?"Enabled":"Disabled"});if("models"===e&&Array.isArray(a))return 0===a.length?(0,t.jsx)("span",{className:"text-gray-400",children:"None"}):(0,t.jsx)("div",{className:"flex flex-wrap gap-2 mt-1",children:a.map((e,s)=>(0,t.jsx)("span",{className:"px-2 py-1 bg-blue-100 rounded text-xs",children:(0,k.getModelDisplayName)(e)},s))});if("object"==typeof a)return Array.isArray(a)?0===a.length?(0,t.jsx)("span",{className:"text-gray-400",children:"None"}):(0,t.jsx)("div",{className:"flex flex-wrap gap-2 mt-1",children:a.map((e,s)=>(0,t.jsx)("span",{className:"px-2 py-1 bg-blue-100 rounded text-xs",children:"object"==typeof e?JSON.stringify(e):String(e)},s))}):(0,t.jsx)("pre",{className:"bg-gray-100 p-2 rounded text-xs overflow-auto mt-1",children:JSON.stringify(a,null,2)});return(0,t.jsx)("span",{children:String(a)})})(a,r)})]},a)}):(0,t.jsx)(q.Text,{children:"No schema information available"})})()})]}):(0,t.jsx)(K.Card,{children:(0,t.jsx)(q.Text,{children:"No settings available or you do not have permission to view them."})})};var X=e.i(389083),ee=e.i(350967),et=e.i(752978),es=e.i(262218),ea=e.i(591935),el=e.i(68155),er=e.i(502275),ei=e.i(278587),en=e.i(166406);let ed=(e,s,a,l,r,i)=>{let n=[{header:"User ID",accessorKey:"user_id",enableSorting:!0,cell:({row:e})=>(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)(N.Tooltip,{title:e.original.user_id,children:(0,t.jsx)("span",{className:"text-xs",children:e.original.user_id?`${e.original.user_id.slice(0,7)}...`:"-"})}),e.original.user_id&&(0,t.jsx)(N.Tooltip,{title:"Copy User ID",children:(0,t.jsx)(en.CopyOutlined,{onClick:t=>{t.stopPropagation(),(0,O.copyToClipboard)(e.original.user_id,"User ID copied to clipboard")},className:"cursor-pointer text-gray-500 hover:text-blue-500 text-xs"})})]})},{header:"Email",accessorKey:"user_email",enableSorting:!0,cell:({row:e})=>(0,t.jsx)("span",{className:"text-xs",children:e.original.user_email||"-"})},{id:"status",header:"Status",enableSorting:!1,cell:({row:e})=>e.original.metadata?.scim_active===!1?(0,t.jsx)(N.Tooltip,{title:"Deactivated via SCIM (external identity provider). The user's virtual keys are blocked.",children:(0,t.jsx)(es.Tag,{color:"red","data-testid":`user-status-${e.original.user_id}`,children:"Inactive"})}):(0,t.jsx)(es.Tag,{color:"green","data-testid":`user-status-${e.original.user_id}`,children:"Active"})},{header:"Global Proxy Role",accessorKey:"user_role",enableSorting:!0,cell:({row:s})=>(0,t.jsx)("span",{className:"text-xs",children:e?.[s.original.user_role]?.ui_label||"-"})},{header:"User Alias",accessorKey:"user_alias",enableSorting:!1,cell:({row:e})=>(0,t.jsx)("span",{className:"text-xs",children:e.original.user_alias||"-"})},{header:"Spend (USD)",accessorKey:"spend",enableSorting:!0,cell:({row:e})=>(0,t.jsx)("span",{className:"text-xs",children:e.original.spend?(0,O.formatNumberWithCommas)(e.original.spend,4):"-"})},{header:"Budget (USD)",accessorKey:"max_budget",enableSorting:!1,cell:({row:e})=>(0,t.jsx)("span",{className:"text-xs",children:null!==e.original.max_budget?e.original.max_budget:"Unlimited"})},{header:()=>(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{children:"SSO ID"}),(0,t.jsx)(N.Tooltip,{title:"SSO ID is the ID of the user in the SSO provider. If the user is not using SSO, this will be null.",children:(0,t.jsx)(er.InformationCircleIcon,{className:"w-4 h-4"})})]}),accessorKey:"sso_user_id",enableSorting:!1,cell:({row:e})=>(0,t.jsx)("span",{className:"text-xs",children:null!==e.original.sso_user_id?e.original.sso_user_id:"-"})},{header:"Virtual Keys",accessorKey:"key_count",enableSorting:!1,cell:({row:e})=>(0,t.jsx)(ee.Grid,{numItems:2,children:e.original.key_count>0?(0,t.jsxs)(X.Badge,{size:"xs",color:"indigo",children:[e.original.key_count," ",1===e.original.key_count?"Key":"Keys"]}):(0,t.jsx)(X.Badge,{size:"xs",color:"gray",children:"No Keys"})})},{header:"Created At",accessorKey:"created_at",enableSorting:!0,cell:({row:e})=>(0,t.jsx)("span",{className:"text-xs",children:e.original.created_at?new Date(e.original.created_at).toLocaleDateString():"-"})},{header:"Updated At",accessorKey:"updated_at",enableSorting:!1,cell:({row:e})=>(0,t.jsx)("span",{className:"text-xs",children:e.original.updated_at?new Date(e.original.updated_at).toLocaleDateString():"-"})},{id:"actions",header:"Actions",enableSorting:!1,cell:({row:e})=>(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(N.Tooltip,{title:"Edit user details",children:(0,t.jsx)(et.Icon,{icon:ea.PencilAltIcon,size:"sm",onClick:()=>r(e.original.user_id,!0),className:"cursor-pointer hover:text-blue-600"})}),(0,t.jsx)(N.Tooltip,{title:"Delete user",children:(0,t.jsx)(et.Icon,{icon:el.TrashIcon,size:"sm",onClick:()=>a(e.original),className:"cursor-pointer hover:text-red-600"})}),(0,t.jsx)(N.Tooltip,{title:"Reset Password",children:(0,t.jsx)(et.Icon,{icon:ei.RefreshIcon,size:"sm",onClick:()=>l(e.original.user_id),className:"cursor-pointer hover:text-green-600"})})]})}];if(i){let{onSelectUser:e,onSelectAll:s,isUserSelected:a,isAllSelected:l,isIndeterminate:r}=i;return[{id:"select",enableSorting:!1,header:()=>(0,t.jsx)(p.Checkbox,{indeterminate:r,checked:l,onChange:e=>s(e.target.checked),onClick:e=>e.stopPropagation()}),cell:({row:s})=>(0,t.jsx)(p.Checkbox,{checked:a(s.original),onChange:t=>e(s.original,t.target.checked),onClick:e=>e.stopPropagation()})},...n]}return n};var eo=e.i(152990),ec=e.i(682830),eu=e.i(269200),em=e.i(427612),eh=e.i(64848),ex=e.i(942232),eg=e.i(496020),ef=e.i(977572),ep=e.i(206929),eb=e.i(94629),ej=e.i(360820),ev=e.i(871943),ey=e.i(981339),e_=e.i(530212),eS=e.i(988297),ew=e.i(118366),eN=e.i(678784);function eC({userId:e,onClose:c,accessToken:u,userRole:m,onDelete:x,possibleUIRoles:g,initialTab:f=0,startInEditMode:p=!1}){let[j,y]=(0,n.useState)(null),[_,S]=(0,n.useState)([]),[k,I]=(0,n.useState)(!1),[R,B]=(0,n.useState)(!1),[M,F]=(0,n.useState)(!0),[D,A]=(0,n.useState)(p),[P,z]=(0,n.useState)([]),[V,G]=(0,n.useState)(!1),[W,J]=(0,n.useState)(null),[Q,Z]=(0,n.useState)(null),[Y,X]=(0,n.useState)(f),[et,es]=(0,n.useState)({}),[ea,er]=(0,n.useState)(!1),[en,ed]=(0,n.useState)(!1),[eo,ec]=(0,n.useState)(!1),[ep,eb]=(0,n.useState)(null),[ej,ev]=(0,n.useState)(!1),[ey,eT]=(0,n.useState)(!1),[ek,eI]=(0,n.useState)([]),[eE,eU]=(0,n.useState)(""),[eR,eB]=(0,n.useState)("user"),[eM,eF]=(0,n.useState)(!1);n.default.useEffect(()=>{Z((0,b.getProxyBaseUrl)())},[]),n.default.useEffect(()=>{console.log(`userId: ${e}, userRole: ${m}, accessToken: ${u}`),(async()=>{try{if(!u)return;let t=await (0,b.userGetInfoV2)(u,e);if(y(t),t.teams&&t.teams.length>0)try{let e=t.teams.map(async e=>{try{let t=await (0,b.teamInfoCall)(u,e);return{team_id:e,team_alias:t?.team_info?.team_alias||null}}catch{return{team_id:e,team_alias:null}}}),s=await Promise.all(e);S(s)}catch{S(t.teams.map(e=>({team_id:e,team_alias:null})))}let s=(await (0,b.modelAvailableCall)(u,e,m||"")).data.map(e=>e.id);z(s)}catch(e){console.error("Error fetching user data:",e),U.default.fromBackend("Failed to fetch user data")}finally{F(!1)}})()},[u,e,m]);let eD="proxy_admin"===m||"Admin"===m,eA=async()=>{if(u){eF(!0);try{let e=await (0,b.teamListCall)(u,null);eI((e||[]).map(e=>({team_id:e.team_id,team_alias:e.team_alias||e.team_id})))}catch(e){console.error("Error fetching teams:",e)}finally{eF(!1)}}},eL=async()=>{if(u&&eE){ev(!0);try{await (0,b.teamMemberAddCall)(u,eE,{role:eR,user_id:e}),U.default.success("User added to team successfully"),ed(!1);let t=await (0,b.userGetInfoV2)(u,e);if(y(t),t.teams&&t.teams.length>0){let e=t.teams.map(async e=>{try{let t=await (0,b.teamInfoCall)(u,e);return{team_id:e,team_alias:t?.team_info?.team_alias||null}}catch{return{team_id:e,team_alias:null}}});S(await Promise.all(e))}else S([])}catch(e){console.error("Error adding user to team:",e),U.default.fromBackend(e?.message||"Failed to add user to team")}finally{ev(!1)}}},eO=async()=>{if(u&&ep){eT(!0);try{await (0,b.teamMemberDeleteCall)(u,ep.team_id,{role:"user",user_id:e}),U.default.success("User removed from team successfully"),ec(!1),eb(null);let t=await (0,b.userGetInfoV2)(u,e);if(y(t),t.teams&&t.teams.length>0){let e=t.teams.map(async e=>{try{let t=await (0,b.teamInfoCall)(u,e);return{team_id:e,team_alias:t?.team_info?.team_alias||null}}catch{return{team_id:e,team_alias:null}}});S(await Promise.all(e))}else S([])}catch(e){console.error("Error removing user from team:",e),U.default.fromBackend(e?.message||"Failed to remove user from team")}finally{eT(!1)}}},eP=ek.filter(e=>!_.some(t=>t.team_id===e.team_id)),ez=async()=>{if(!u)return void U.default.fromBackend("Access token not found");try{U.default.success("Generating password reset link...");let t=await (0,b.invitationCreateCall)(u,e);J(t),G(!0)}catch(e){U.default.fromBackend("Failed to generate password reset link")}},eV=async()=>{try{if(!u)return;B(!0),await (0,b.userDeleteCall)(u,[e]),U.default.success("User deleted successfully"),x&&x(),c()}catch(e){console.error("Error deleting user:",e),U.default.fromBackend("Failed to delete user")}finally{I(!1),B(!1)}},e$=async e=>{try{if(!u||!j)return;await (0,b.userUpdateUserCall)(u,e,null),y({...j,user_email:e.user_email??j.user_email,user_alias:e.user_alias??j.user_alias,models:e.models??j.models,max_budget:e.max_budget??j.max_budget,budget_duration:e.budget_duration??j.budget_duration,metadata:e.metadata??j.metadata}),U.default.success("User updated successfully"),A(!1)}catch(e){console.error("Error updating user:",e),U.default.fromBackend("Failed to update user")}};if(M)return(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsx)(v.Button,{icon:e_.ArrowLeftIcon,variant:"light",onClick:c,className:"mb-4",children:"Back to Users"}),(0,t.jsx)(q.Text,{children:"Loading user data..."})]});if(!j)return(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsx)(v.Button,{icon:e_.ArrowLeftIcon,variant:"light",onClick:c,className:"mb-4",children:"Back to Users"}),(0,t.jsx)(q.Text,{children:"User not found"})]});let eK=async(e,t)=>{await (0,O.copyToClipboard)(e)&&(es(e=>({...e,[t]:!0})),setTimeout(()=>{es(e=>({...e,[t]:!1}))},2e3))},eH={user_id:j.user_id,user_info:{user_email:j.user_email,user_alias:j.user_alias,user_role:j.user_role,models:j.models,max_budget:j.max_budget,budget_duration:j.budget_duration,metadata:j.metadata}};return(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(v.Button,{icon:e_.ArrowLeftIcon,variant:"light",onClick:c,className:"mb-4",children:"Back to Users"}),(0,t.jsx)(H.Title,{children:j.user_email||"User"}),(0,t.jsxs)("div",{className:"flex items-center cursor-pointer",children:[(0,t.jsx)(q.Text,{className:"text-gray-500 font-mono",children:j.user_id}),(0,t.jsx)(d.Button,{type:"text",size:"small",icon:et["user-id"]?(0,t.jsx)(eN.CheckIcon,{size:12}):(0,t.jsx)(ew.CopyIcon,{size:12}),onClick:()=>eK(j.user_id,"user-id"),className:`left-2 z-10 transition-all duration-200 ${et["user-id"]?"text-green-600 bg-green-50 border-green-200":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"}`})]})]}),m&&C.rolesWithWriteAccess.includes(m)&&(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)(v.Button,{icon:ei.RefreshIcon,variant:"secondary",onClick:ez,className:"flex items-center",children:"Reset Password"}),(0,t.jsx)(v.Button,{icon:el.TrashIcon,variant:"secondary",onClick:()=>I(!0),className:"flex items-center text-red-500 border-red-500 hover:text-red-600 hover:border-red-600",children:"Delete User"})]})]}),(0,t.jsx)($.default,{isOpen:k,title:"Delete User?",message:"Are you sure you want to delete this user? This action cannot be undone.",resourceInformationTitle:"User Information",resourceInformation:[{label:"Email",value:j.user_email},{label:"User ID",value:j.user_id,code:!0},{label:"Global Proxy Role",value:j.user_role&&g?.[j.user_role]?.ui_label||j.user_role||"-"},{label:"Total Spend (USD)",value:null!==j.spend&&void 0!==j.spend?j.spend.toFixed(2):void 0}],onCancel:()=>{I(!1)},onOk:eV,confirmLoading:R}),(0,t.jsxs)(a.TabGroup,{defaultIndex:Y,onIndexChange:X,children:[(0,t.jsxs)(l.TabList,{className:"mb-4",children:[(0,t.jsx)(s.Tab,{children:"Overview"}),(0,t.jsx)(s.Tab,{children:"Details"})]}),(0,t.jsxs)(i.TabPanels,{children:[(0,t.jsx)(r.TabPanel,{children:(0,t.jsxs)(ee.Grid,{numItems:1,numItemsSm:2,numItemsLg:3,className:"gap-6",children:[(0,t.jsxs)(K.Card,{children:[(0,t.jsx)(q.Text,{children:"Spend"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(H.Title,{children:["$",(0,O.formatNumberWithCommas)(j.spend||0,4)]}),(0,t.jsxs)(q.Text,{children:["of"," ",null!==j.max_budget?`$${(0,O.formatNumberWithCommas)(j.max_budget,4)}`:"Unlimited"]})]})]}),(0,t.jsxs)(K.Card,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-2",children:[(0,t.jsx)(q.Text,{children:"Teams"}),eD&&(0,t.jsx)(v.Button,{icon:eS.PlusIcon,variant:"light",size:"xs",onClick:()=>{eU(""),eB("user"),ed(!0),eA()},children:"Add Team"})]}),(0,t.jsxs)("div",{className:"mt-2",children:[_.length>0?(0,t.jsx)("div",{className:"max-h-60 overflow-y-auto",children:(0,t.jsxs)(eu.Table,{children:[(0,t.jsx)(em.TableHead,{children:(0,t.jsxs)(eg.TableRow,{children:[(0,t.jsx)(eh.TableHeaderCell,{children:"Team Name"}),eD&&(0,t.jsx)(eh.TableHeaderCell,{className:"text-right",children:"Actions"})]})}),(0,t.jsx)(ex.TableBody,{children:_.slice(0,ea?_.length:20).map(e=>(0,t.jsxs)(eg.TableRow,{children:[(0,t.jsx)(ef.TableCell,{children:e.team_alias||e.team_id}),eD&&(0,t.jsx)(ef.TableCell,{className:"text-right",children:(0,t.jsx)(v.Button,{icon:el.TrashIcon,variant:"light",size:"xs",color:"red",onClick:()=>{eb(e),ec(!0)}})})]},e.team_id))})]})}):(0,t.jsx)(q.Text,{children:"No teams"}),!ea&&_.length>20&&(0,t.jsxs)(v.Button,{variant:"light",size:"xs",className:"mt-2",onClick:()=>er(!0),children:["+",_.length-20," more"]}),ea&&_.length>20&&(0,t.jsx)(v.Button,{variant:"light",size:"xs",className:"mt-2",onClick:()=>er(!1),children:"Show Less"})]})]}),(0,t.jsxs)(K.Card,{children:[(0,t.jsx)(q.Text,{children:"Personal Models"}),(0,t.jsx)("div",{className:"mt-2",children:j.models?.length&&j.models?.length>0?j.models?.map((e,s)=>(0,t.jsx)(q.Text,{children:e},s)):(0,t.jsx)(q.Text,{children:"All proxy models"})})]})]})}),(0,t.jsx)(r.TabPanel,{children:(0,t.jsxs)(K.Card,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(H.Title,{children:"User Settings"}),!D&&m&&C.rolesWithWriteAccess.includes(m)&&(0,t.jsx)(v.Button,{onClick:()=>A(!0),children:"Edit Settings"})]}),D&&j?(0,t.jsx)(E,{userData:eH,onCancel:()=>A(!1),onSubmit:e$,teams:_,accessToken:u,userID:e,userRole:m,userModels:P,possibleUIRoles:g}):(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(q.Text,{className:"font-medium",children:"User ID"}),(0,t.jsxs)("div",{className:"flex items-center cursor-pointer",children:[(0,t.jsx)(q.Text,{className:"font-mono",children:j.user_id}),(0,t.jsx)(d.Button,{type:"text",size:"small",icon:et["user-id"]?(0,t.jsx)(eN.CheckIcon,{size:12}):(0,t.jsx)(ew.CopyIcon,{size:12}),onClick:()=>eK(j.user_id,"user-id"),className:`left-2 z-10 transition-all duration-200 ${et["user-id"]?"text-green-600 bg-green-50 border-green-200":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"}`})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(q.Text,{className:"font-medium",children:"Email"}),(0,t.jsx)(q.Text,{children:j.user_email||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(q.Text,{className:"font-medium",children:"User Alias"}),(0,t.jsx)(q.Text,{children:j.user_alias||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(q.Text,{className:"font-medium",children:"Global Proxy Role"}),(0,t.jsx)(q.Text,{children:j.user_role||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(q.Text,{className:"font-medium",children:"Created"}),(0,t.jsx)(q.Text,{children:j.created_at?new Date(j.created_at).toLocaleString():"Unknown"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(q.Text,{className:"font-medium",children:"Last Updated"}),(0,t.jsx)(q.Text,{children:j.updated_at?new Date(j.updated_at).toLocaleString():"Unknown"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(q.Text,{className:"font-medium",children:"Personal Models"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2 mt-1",children:j.models?.length&&j.models?.length>0?j.models?.map((e,s)=>(0,t.jsx)("span",{className:"px-2 py-1 bg-blue-100 rounded text-xs",children:e},s)):(0,t.jsx)(q.Text,{children:"All proxy models"})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(q.Text,{className:"font-medium",children:"Max Budget"}),(0,t.jsx)(q.Text,{children:null!==j.max_budget&&void 0!==j.max_budget?`$${(0,O.formatNumberWithCommas)(j.max_budget,4)}`:"Unlimited"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(q.Text,{className:"font-medium",children:"Budget Reset"}),(0,t.jsx)(q.Text,{children:(0,T.getBudgetDurationLabel)(j.budget_duration??null)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(q.Text,{className:"font-medium",children:"Metadata"}),(0,t.jsx)("pre",{className:"bg-gray-100 p-2 rounded text-xs overflow-auto mt-1",children:JSON.stringify(j.metadata||{},null,2)})]})]})]})})]})]}),(0,t.jsx)(L.default,{isInvitationLinkModalVisible:V,setIsInvitationLinkModalVisible:G,baseUrl:Q||"",invitationLinkData:W,modalType:"resetPassword"}),(0,t.jsx)($.default,{isOpen:eo,title:"Remove from Team",alertMessage:"Removing this user from the team will also delete any keys the user created for this team.",message:"Are you sure you want to remove this user from the team? This action cannot be undone.",resourceInformationTitle:"Team Membership",resourceInformation:[{label:"Team",value:ep?.team_alias||ep?.team_id},{label:"User ID",value:j?.user_id,code:!0},{label:"Email",value:j?.user_email}],onCancel:()=>{ec(!1),eb(null)},onOk:eO,confirmLoading:ey}),(0,t.jsx)(o.Modal,{title:"Add User to Team",open:en,onCancel:()=>ed(!1),footer:null,width:500,maskClosable:!ej,children:(0,t.jsxs)(w.Form,{layout:"vertical",onFinish:eL,children:[(0,t.jsx)(w.Form.Item,{label:"Team",required:!0,children:(0,t.jsx)(h.Select,{showSearch:!0,value:eE||void 0,onChange:eU,placeholder:"Select a team",filterOption:(e,t)=>{let s=eP.find(e=>e.team_id===t?.value);return!!s&&s.team_alias.toLowerCase().includes(e.toLowerCase())},loading:eM,children:eP.map(e=>(0,t.jsx)(h.Select.Option,{value:e.team_id,children:e.team_alias},e.team_id))})}),(0,t.jsx)(w.Form.Item,{label:"Member Role",children:(0,t.jsxs)(h.Select,{value:eR,onChange:eB,children:[(0,t.jsx)(h.Select.Option,{value:"user",children:(0,t.jsxs)(N.Tooltip,{title:"Can view team info, but not manage it",children:[(0,t.jsx)("span",{className:"font-medium",children:"user"}),(0,t.jsx)("span",{className:"ml-2 text-gray-500 text-sm",children:"- Can view team info, but not manage it"})]})}),(0,t.jsx)(h.Select.Option,{value:"admin",children:(0,t.jsxs)(N.Tooltip,{title:"Can create team keys, add members, and manage settings",children:[(0,t.jsx)("span",{className:"font-medium",children:"admin"}),(0,t.jsx)("span",{className:"ml-2 text-gray-500 text-sm",children:"- Can create team keys, add members, and manage settings"})]})})]})}),(0,t.jsx)("div",{className:"text-right mt-4",children:(0,t.jsx)(d.Button,{type:"primary",htmlType:"submit",loading:ej,disabled:!eE,children:ej?"Adding...":"Add to Team"})})]})})]})}var eT=e.i(655913),ek=e.i(38419),eI=e.i(78334),eE=e.i(555436),eU=e.i(284614);let eR=(0,e.i(475254).default)("circle-user-round",[["path",{d:"M18 20a6 6 0 0 0-12 0",key:"1qehca"}],["circle",{cx:"12",cy:"10",r:"4",key:"1h16sb"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);function eB({data:e=[],columns:s,isLoading:a=!1,onSortChange:l,currentSort:r,accessToken:i,userRole:d,possibleUIRoles:o,handleEdit:c,handleDelete:u,handleResetPassword:m,selectedUsers:h=[],onSelectionChange:x,enableSelection:g=!1,filters:f,updateFilters:p,initialFilters:b,teams:j,userListResponse:v,currentPage:_,handlePageChange:S}){let[w,N]=n.default.useState([{id:r?.sortBy||"created_at",desc:r?.sortOrder==="desc"}]),[C,T]=n.default.useState(null),[k,I]=n.default.useState(!1),[E,U]=n.default.useState(!1),R=(e,t=!1)=>{T(e),I(t)},B=(e,t)=>{x&&(t?x([...h,e]):x(h.filter(t=>t.user_id!==e.user_id)))},M=t=>{x&&(t?x(e):x([]))},F=e=>h.some(t=>t.user_id===e.user_id),D=e.length>0&&h.length===e.length,A=h.length>0&&h.lengtho?ed(o,c,u,m,R,g?{selectedUsers:h,onSelectUser:B,onSelectAll:M,isUserSelected:F,isAllSelected:D,isIndeterminate:A}:void 0):s,[o,c,u,m,R,s,g,h,D,A]),O=(0,eo.useReactTable)({data:e,columns:L,state:{sorting:w},onSortingChange:e=>{let t="function"==typeof e?e(w):e;if(N(t),t&&Array.isArray(t)&&t.length>0&&t[0]){let e=t[0];if(e.id){let t=e.id,s=e.desc?"desc":"asc";l?.(t,s)}}else l?.("created_at","desc")},getCoreRowModel:(0,ec.getCoreRowModel)(),manualSorting:!0,enableSorting:!0});return(n.default.useEffect(()=>{r&&N([{id:r.sortBy,desc:"desc"===r.sortOrder}])},[r]),C)?(0,t.jsx)(eC,{userId:C,onClose:()=>{T(null),I(!1)},accessToken:i,userRole:d,possibleUIRoles:o,initialTab:+!!k,startInEditMode:k}):(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow",children:[(0,t.jsx)("div",{className:"border-b px-6 py-4",children:(0,t.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,t.jsx)(eT.FilterInput,{placeholder:"Search by email...",value:f.email,onChange:e=>p({email:e}),icon:eE.Search}),(0,t.jsx)(ek.FiltersButton,{onClick:()=>U(!E),active:E,hasActiveFilters:!!(f.user_id||f.user_role||f.team)}),(0,t.jsx)(eI.ResetFiltersButton,{onClick:()=>{p(b)}})]}),E&&(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3 mt-3",children:[(0,t.jsx)(eT.FilterInput,{placeholder:"Filter by User ID",value:f.user_id,onChange:e=>p({user_id:e}),icon:eU.User}),(0,t.jsx)(eT.FilterInput,{placeholder:"Filter by SSO ID",value:f.sso_user_id,onChange:e=>p({sso_user_id:e}),icon:eR}),(0,t.jsx)("div",{className:"w-64",children:(0,t.jsx)(ep.Select,{value:f.user_role,onValueChange:e=>p({user_role:e}),placeholder:"Select Role",children:o&&Object.entries(o).map(([e,s])=>(0,t.jsx)(y.SelectItem,{value:e,children:s.ui_label},e))})}),(0,t.jsx)("div",{className:"w-64",children:(0,t.jsx)(ep.Select,{value:f.team,onValueChange:e=>p({team:e}),placeholder:"Select Team",children:j?.map(e=>(0,t.jsx)(y.SelectItem,{value:e.team_id,children:e.team_alias||e.team_id},e.team_id))})})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[a?(0,t.jsx)(ey.Skeleton.Input,{active:!0,style:{width:192,height:20}}):(0,t.jsxs)("span",{className:"text-sm text-gray-700",children:["Showing"," ",v&&v.users&&v.users.length>0?(v.page-1)*v.page_size+1:0," ","-"," ",v&&v.users?Math.min(v.page*v.page_size,v.total):0," ","of ",v?v.total:0," results"]}),(0,t.jsx)("div",{className:"flex space-x-2",children:a?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ey.Skeleton.Button,{active:!0,size:"small",style:{width:80,height:30}}),(0,t.jsx)(ey.Skeleton.Button,{active:!0,size:"small",style:{width:60,height:30}})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:()=>S(_-1),disabled:1===_,className:`px-3 py-1 text-sm border rounded-md ${1===_?"bg-gray-100 text-gray-400 cursor-not-allowed":"hover:bg-gray-50"}`,children:"Previous"}),(0,t.jsx)("button",{onClick:()=>S(_+1),disabled:!v||_>=v.total_pages,className:`px-3 py-1 text-sm border rounded-md ${!v||_>=v.total_pages?"bg-gray-100 text-gray-400 cursor-not-allowed":"hover:bg-gray-50"}`,children:"Next"})]})})]})]})}),(0,t.jsx)("div",{className:"overflow-auto",children:(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(eu.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",children:[(0,t.jsx)(em.TableHead,{children:O.getHeaderGroups().map(e=>(0,t.jsx)(eg.TableRow,{children:e.headers.map(e=>(0,t.jsx)(eh.TableHeaderCell,{className:`py-1 h-8 ${"actions"===e.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)]":""} ${e.column.getCanSort()?"cursor-pointer hover:bg-gray-50":""}`,onClick:e.column.getToggleSortingHandler(),children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,eo.flexRender)(e.column.columnDef.header,e.getContext())}),"actions"!==e.id&&e.column.getCanSort()&&(0,t.jsx)("div",{className:"w-4",children:e.column.getIsSorted()?({asc:(0,t.jsx)(ej.ChevronUpIcon,{className:"h-4 w-4 text-blue-500"}),desc:(0,t.jsx)(ev.ChevronDownIcon,{className:"h-4 w-4 text-blue-500"})})[e.column.getIsSorted()]:(0,t.jsx)(eb.SwitchVerticalIcon,{className:"h-4 w-4 text-gray-400"})})]})},e.id))},e.id))}),(0,t.jsx)(ex.TableBody,{children:a?(0,t.jsx)(eg.TableRow,{children:(0,t.jsx)(ef.TableCell,{colSpan:L.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"🚅 Loading users..."})})})}):e.length>0?O.getRowModel().rows.map(e=>(0,t.jsx)(eg.TableRow,{className:"h-8",children:e.getVisibleCells().map(e=>(0,t.jsx)(ef.TableCell,{className:`py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap ${"actions"===e.column.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)]":""}`,onClick:()=>{"user_id"===e.column.id&&R(e.getValue(),!1)},style:{cursor:"user_id"===e.column.id?"pointer":"default",color:"user_id"===e.column.id?"#3b82f6":"inherit"},children:(0,eo.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(eg.TableRow,{children:(0,t.jsx)(ef.TableCell,{colSpan:L.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No users found"})})})})})]})})})})]})}let{Text:eM,Title:eF}=c.Typography,eD={email:"",user_id:"",user_role:"",sso_user_id:"",team:"",model:"",min_spend:null,max_spend:null,sort_by:"created_at",sort_order:"desc"};e.s(["default",0,({accessToken:e,token:o,userRole:c,userID:u,teams:m,orgAdminOrgIds:h})=>{let x=!!c&&(0,C.isProxyAdminRole)(c),g=(0,V.useQueryClient)(),[f,p]=(0,n.useState)(1),[j,v]=(0,n.useState)(!1),[y,_]=(0,n.useState)(null),[S,w]=(0,n.useState)(!1),[N,T]=(0,n.useState)(!1),[k,I]=(0,n.useState)(null),[E,R]=(0,n.useState)("users"),[B,M]=(0,n.useState)(eD),[K,H,q]=(0,P.useDebouncedState)(B,{wait:300}),[G,W]=(0,n.useState)(!1),[J,Q]=(0,n.useState)(null),[Z,X]=(0,n.useState)(null),[ee,et]=(0,n.useState)([]),[es,ea]=(0,n.useState)(!1),[el,er]=(0,n.useState)(!1),[ei,en]=(0,n.useState)([]),eo=e=>{I(e),w(!0)};(0,n.useEffect)(()=>()=>{q.cancel()},[q]),(0,n.useEffect)(()=>{X((0,b.getProxyBaseUrl)())},[]),(0,n.useEffect)(()=>{(async()=>{try{if(!u||!c||!e)return;let t=(await (0,b.modelAvailableCall)(e,u,c)).data.map(e=>e.id);console.log("available_model_names:",t),en(t)}catch(e){console.error("Error fetching user models:",e)}})()},[e,u,c]);let ec=e=>{M(t=>{let s={...t,...e};return H(s),s})},eu=(e,t)=>{ec({sort_by:e,sort_order:t})},em=async t=>{if(!e)return void U.default.fromBackend("Access token not found");try{U.default.success("Generating password reset link...");let s=await (0,b.invitationCreateCall)(e,t);Q(s),W(!0)}catch(e){U.default.fromBackend("Failed to generate password reset link")}},eh=async()=>{if(k&&e)try{T(!0),await (0,b.userDeleteCall)(e,[k.user_id]),g.setQueriesData({queryKey:["userList"]},e=>{if(void 0===e)return e;let t=e.users.filter(e=>e.user_id!==k.user_id);return{...e,users:t}}),U.default.success("User deleted successfully")}catch(e){console.error("Error deleting user:",e),U.default.fromBackend("Failed to delete user")}finally{w(!1),I(null),T(!1)}},ex=async()=>{_(null),v(!1)},eg=async t=>{if(console.log("inside handleEditSubmit:",t),e&&o&&c&&u){try{let s=await (0,b.userUpdateUserCall)(e,t,null);g.setQueriesData({queryKey:["userList"]},e=>{if(void 0===e)return e;let t=e.users.map(e=>e.user_id===s.data.user_id?(0,O.updateExistingKeys)(e,s.data):e);return{...e,users:t}}),U.default.success(`User ${t.user_id} updated successfully`)}catch(e){console.error("There was an error updating the user",e)}_(null),v(!1)}},ef=async e=>{p(e)},ep=e=>{et(e)},eb=(0,z.useQuery)({queryKey:["userList",{debouncedFilter:K,currentPage:f,orgAdminOrgIds:h}],queryFn:async()=>{if(!e)throw Error("Access token required");return await (0,b.userListCall)(e,K.user_id?[K.user_id]:null,f,25,K.email||null,K.user_role||null,K.team||null,K.sso_user_id||null,K.sort_by,K.sort_order,h?h.map(e=>e.organization_id):null)},enabled:!!(e&&o&&c&&u),placeholderData:e=>e}),ej=eb.data,ev=(0,z.useQuery)({queryKey:["userRoles"],initialData:()=>({}),queryFn:async()=>{if(!e)throw Error("Access token required");return await (0,b.getPossibleUserRoles)(e)},enabled:!!(e&&o&&c&&u)}).data,e_=ed(ev,e=>{_(e),v(!0)},eo,em,()=>{});return(0,t.jsxs)("div",{className:"w-full p-8 overflow-hidden",children:[(0,t.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,t.jsx)("div",{className:"flex space-x-3",children:eb.isLoading?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ey.Skeleton.Button,{active:!0,size:"default",shape:"default",style:{width:110,height:36}}),(0,t.jsx)(ey.Skeleton.Button,{active:!0,size:"default",shape:"default",style:{width:145,height:36}}),(0,t.jsx)(ey.Skeleton.Button,{active:!0,size:"default",shape:"default",style:{width:110,height:36}})]}):u&&e?(0,t.jsxs)(t.Fragment,{children:[x&&(0,t.jsx)(D.CreateUserButton,{userID:u,accessToken:e,teams:m,possibleUIRoles:ev}),x&&(0,t.jsx)(d.Button,{onClick:()=>{er(!el),et([])},type:el?"primary":"default",className:"flex items-center",children:el?"Cancel Selection":"Select Users"}),x&&el&&(0,t.jsxs)(d.Button,{type:"primary",onClick:()=>{0===ee.length?U.default.fromBackend("Please select users to edit"):ea(!0)},disabled:0===ee.length,className:"flex items-center",children:["Bulk Edit (",ee.length," selected)"]})]}):null})}),x?(0,t.jsxs)(a.TabGroup,{defaultIndex:0,onIndexChange:e=>R(0===e?"users":"settings"),children:[(0,t.jsxs)(l.TabList,{className:"mb-4",children:[(0,t.jsx)(s.Tab,{children:"Users"}),(0,t.jsx)(s.Tab,{children:"Default User Settings"})]}),(0,t.jsxs)(i.TabPanels,{children:[(0,t.jsx)(r.TabPanel,{children:(0,t.jsx)(eB,{data:eb.data?.users||[],columns:e_,isLoading:eb.isLoading,accessToken:e,userRole:c,onSortChange:eu,currentSort:{sortBy:B.sort_by,sortOrder:B.sort_order},possibleUIRoles:ev,handleEdit:e=>{_(e),v(!0)},handleDelete:eo,handleResetPassword:em,enableSelection:el,selectedUsers:ee,onSelectionChange:ep,filters:B,updateFilters:ec,initialFilters:eD,teams:m,userListResponse:ej,currentPage:f,handlePageChange:ef})}),(0,t.jsx)(r.TabPanel,{children:u&&c&&e?(0,t.jsx)(Y,{accessToken:e,possibleUIRoles:ev,userID:u,userRole:c}):(0,t.jsx)("div",{className:"flex justify-center items-center h-64",children:(0,t.jsx)(ey.Skeleton,{active:!0,paragraph:{rows:4}})})})]})]}):(0,t.jsx)(eB,{data:eb.data?.users||[],columns:e_,isLoading:eb.isLoading,accessToken:e,userRole:c,onSortChange:eu,currentSort:{sortBy:B.sort_by,sortOrder:B.sort_order},possibleUIRoles:ev,handleEdit:e=>{_(e),v(!0)},handleDelete:eo,handleResetPassword:em,enableSelection:!1,selectedUsers:[],onSelectionChange:ep,filters:B,updateFilters:ec,initialFilters:eD,teams:m,userListResponse:ej,currentPage:f,handlePageChange:ef}),(0,t.jsx)(A,{visible:j,possibleUIRoles:ev,onCancel:ex,user:y,onSubmit:eg}),(0,t.jsx)($.default,{isOpen:S,title:"Delete User?",message:"Are you sure you want to delete this user? This action cannot be undone.",resourceInformationTitle:"User Information",resourceInformation:[{label:"Email",value:k?.user_email},{label:"User ID",value:k?.user_id,code:!0},{label:"Global Proxy Role",value:k&&ev?.[k.user_role]?.ui_label||k?.user_role||"-"},{label:"Total Spend (USD)",value:k?.spend?.toFixed(2)}],onCancel:()=>{w(!1),I(null)},onOk:eh,confirmLoading:N}),(0,t.jsx)(L.default,{isInvitationLinkModalVisible:G,setIsInvitationLinkModalVisible:W,baseUrl:Z||"",invitationLinkData:J,modalType:"resetPassword"}),(0,t.jsx)(F,{open:es,onCancel:()=>ea(!1),selectedUsers:ee,possibleUIRoles:ev,accessToken:e,onSuccess:()=>{g.invalidateQueries({queryKey:["userList"]}),et([]),er(!1)},teams:m,userRole:c,userModels:ei,allowAllUsers:!!c&&(0,C.isAdminRole)(c)})]})}],910119)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0-mwvwyjihtq6.js b/litellm/proxy/_experimental/out/_next/static/chunks/0-mwvwyjihtq6.js new file mode 100644 index 00000000000..ad697286e5a --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/0-mwvwyjihtq6.js @@ -0,0 +1,3 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,894660,283086,195116,e=>{"use strict";var t=e.i(801312);e.s(["LeftOutlined",()=>t.default],894660);var s=e.i(475254);let l=(0,s.default)("sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);e.s(["Sparkles",0,l],283086);let a=(0,s.default)("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);e.s(["Wrench",0,a],195116)},97859,e=>{"use strict";e.s(["AGENT_CALL_TYPES",0,["asend_message"],"ERROR_CODE_OPTIONS",0,[{label:"400 - Bad Request",value:"400"},{label:"401 - Invalid Authentication",value:"401"},{label:"403 - Permission Denied",value:"403"},{label:"404 - Not Found",value:"404"},{label:"408 - Request Timeout",value:"408"},{label:"422 - Unprocessable Entity",value:"422"},{label:"429 - Rate Limited",value:"429"},{label:"500 - Internal Server Error",value:"500"},{label:"502 - Bad Gateway",value:"502"},{label:"503 - Service Unavailable",value:"503"},{label:"529 - Overloaded",value:"529"}],"MCP_CALL_TYPES",0,["call_mcp_tool","list_mcp_tools"],"QUICK_SELECT_OPTIONS",0,[{label:"Last Minute",value:1,unit:"minutes"},{label:"Last 15 Minutes",value:15,unit:"minutes"},{label:"Last Hour",value:1,unit:"hours"},{label:"Last 4 Hours",value:4,unit:"hours"},{label:"Last 24 Hours",value:24,unit:"hours"},{label:"Last 7 Days",value:7,unit:"days"}]])},3565,502626,e=>{"use strict";var t=e.i(843476),s=e.i(271645),l=e.i(464571),a=e.i(608856),r=e.i(492030),n=e.i(166406),i=e.i(894660),o=e.i(240647),d=e.i(531245),c=e.i(283086),x=e.i(195116),m=e.i(97859),u=e.i(770914),p=e.i(262218),h=e.i(592968),g=e.i(898586),f=e.i(149192),y=e.i(536591),y=y,j=e.i(755151),b=e.i(166540),v=e.i(916925);let _="24px",N="request",w="response",S="monospace",k="#f0f0f0",{Text:C}=g.Typography;function T({log:e,onClose:s,onPrevious:l,onNext:a,statusLabel:r,statusColor:n,environment:i}){let o=e.custom_llm_provider||"",d=o?(0,v.getProviderLogoAndName)(o):null;return(0,t.jsxs)("div",{style:{padding:"16px 24px",borderBottom:`1px solid ${k}`,backgroundColor:"#fff",position:"sticky",top:0,zIndex:10},children:[(0,t.jsx)(L,{model:e.model,providerLogo:d?.logo,providerName:d?.displayName}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[(0,t.jsx)(M,{requestId:e.request_id}),(0,t.jsx)(D,{onPrevious:l,onNext:a,onClose:s})]}),(0,t.jsx)(E,{log:e,statusLabel:r,statusColor:n,environment:i})]})}function L({model:e,providerLogo:s,providerName:l}){return(0,t.jsxs)(u.Space,{size:8,style:{marginBottom:8},children:[s&&(0,t.jsx)("img",{src:s,alt:l||"Provider",style:{width:24,height:24},onError:e=>{e.target.style.display="none"}}),(0,t.jsxs)(u.Space,{size:8,direction:"horizontal",children:[(0,t.jsx)(C,{strong:!0,style:{fontSize:14},children:e}),l&&(0,t.jsx)(C,{type:"secondary",style:{fontSize:12},children:l})]})]})}function M({requestId:e}){return(0,t.jsx)("div",{style:{flex:1,minWidth:0},children:(0,t.jsx)(h.Tooltip,{title:e,children:(0,t.jsx)(C,{strong:!0,copyable:{text:e,tooltips:["Copy Request ID","Copied!"]},style:{fontSize:16,fontFamily:S,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"block"},children:e})})})}function D({onPrevious:e,onNext:s,onClose:a}){let r={border:"1px solid #d9d9d9",borderRadius:4,padding:"0 4px",fontSize:12,fontFamily:"monospace",marginLeft:4,background:"#fafafa"};return(0,t.jsxs)(u.Space,{size:4,split:(0,t.jsx)("div",{style:{width:1,height:20,background:k}}),children:[(0,t.jsxs)(l.Button,{type:"text",size:"small",onClick:e,children:[(0,t.jsx)(y.default,{}),(0,t.jsx)("span",{style:r,children:"K"})]}),(0,t.jsxs)(l.Button,{type:"text",size:"small",onClick:s,children:[(0,t.jsx)(j.DownOutlined,{}),(0,t.jsx)("span",{style:r,children:"J"})]}),(0,t.jsx)(h.Tooltip,{title:"ESC to close",children:(0,t.jsx)(l.Button,{type:"text",icon:(0,t.jsx)(f.CloseOutlined,{}),onClick:a})})]})}function E({log:e,statusLabel:s,statusColor:l,environment:a}){return(0,t.jsxs)(u.Space,{size:12,children:[(0,t.jsx)(p.Tag,{color:l,children:s}),(0,t.jsxs)(p.Tag,{children:["Env: ",a]}),(0,t.jsxs)(u.Space,{size:8,children:[(0,t.jsx)(C,{type:"secondary",style:{fontSize:13},children:(0,b.default)(e.startTime).format("MMM D, YYYY h:mm:ss A")}),(0,t.jsxs)(C,{type:"secondary",style:{fontSize:13},children:["(",(0,b.default)(e.startTime).fromNow(),")"]})]})]})}var A=e.i(869216),z=e.i(175712),I=e.i(653496),O=e.i(560445),R=e.i(362024),P=e.i(91739),B=e.i(482725),F=e.i(500330);let q=e=>e>=.8?"text-green-600":"text-yellow-600",$=({entities:e})=>{let[l,a]=(0,s.useState)(!0),[r,n]=(0,s.useState)({});return e&&0!==e.length?(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsxs)("div",{className:"flex items-center mb-2 cursor-pointer",onClick:()=>a(!l),children:[(0,t.jsx)("svg",{className:`w-5 h-5 mr-2 transition-transform ${l?"transform rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,t.jsxs)("h4",{className:"font-medium",children:["Detected Entities (",e.length,")"]})]}),l&&(0,t.jsx)("div",{className:"space-y-2",children:e.map((e,s)=>{let l=r[s]||!1;return(0,t.jsxs)("div",{className:"border rounded-lg overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between p-3 bg-gray-50 cursor-pointer hover:bg-gray-100",onClick:()=>{n(e=>({...e,[s]:!e[s]}))},children:[(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)("svg",{className:`w-5 h-5 mr-2 transition-transform ${l?"transform rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,t.jsx)("span",{className:"font-medium mr-2",children:e.entity_type}),(0,t.jsxs)("span",{className:`font-mono ${q(e.score)}`,children:["Score: ",e.score.toFixed(2)]})]}),(0,t.jsxs)("span",{className:"text-xs text-gray-500",children:["Position: ",e.start,"-",e.end]})]}),l&&(0,t.jsx)("div",{className:"p-3 border-t bg-white",children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 mb-2",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Entity Type:"}),(0,t.jsx)("span",{children:e.entity_type})]}),(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Position:"}),(0,t.jsxs)("span",{children:["Characters ",e.start,"-",e.end]})]}),(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Confidence:"}),(0,t.jsx)("span",{className:q(e.score),children:e.score.toFixed(2)})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[e.recognition_metadata&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Recognizer:"}),(0,t.jsx)("span",{children:e.recognition_metadata.recognizer_name})]}),(0,t.jsxs)("div",{className:"flex overflow-hidden",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Identifier:"}),(0,t.jsx)("span",{className:"truncate text-xs font-mono",children:e.recognition_metadata.recognizer_identifier})]})]}),e.analysis_explanation&&(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Explanation:"}),(0,t.jsx)("span",{children:e.analysis_explanation})]})]})]})})]},s)})})]}):null},H=(e,s="slate")=>(0,t.jsx)("span",{className:`px-2 py-1 rounded-md text-xs font-medium inline-block ${{green:"bg-green-100 text-green-800",red:"bg-red-100 text-red-800",blue:"bg-blue-50 text-blue-700",slate:"bg-slate-100 text-slate-800",amber:"bg-amber-100 text-amber-800"}[s]}`,children:e}),K=e=>e?H("detected","red"):H("not detected","slate"),Y=({title:e,count:l,defaultOpen:a=!0,right:r,children:n})=>{let[i,o]=(0,s.useState)(a);return(0,t.jsxs)("div",{className:"border rounded-lg overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between p-3 bg-gray-50 cursor-pointer hover:bg-gray-100",onClick:()=>o(e=>!e),children:[(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)("svg",{className:`w-5 h-5 mr-2 transition-transform ${i?"transform rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,t.jsxs)("h5",{className:"font-medium",children:[e," ","number"==typeof l&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal",children:["(",l,")"]})]})]}),(0,t.jsx)("div",{children:r})]}),i&&(0,t.jsx)("div",{className:"p-3 border-t bg-white",children:n})]})},V=({label:e,children:s,mono:l})=>(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:e}),(0,t.jsx)("span",{className:l?"font-mono text-sm break-all":"",children:s})]}),U=()=>(0,t.jsx)("div",{className:"my-3 border-t"}),W=({response:e})=>{if(!e)return null;let s=e.outputs??e.output??[],l="GUARDRAIL_INTERVENED"===e.action?"red":"green",a=(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[e.guardrailCoverage?.textCharacters&&H(`text guarded ${e.guardrailCoverage.textCharacters.guarded??0}/${e.guardrailCoverage.textCharacters.total??0}`,"blue"),e.guardrailCoverage?.images&&H(`images guarded ${e.guardrailCoverage.images.guarded??0}/${e.guardrailCoverage.images.total??0}`,"blue")]}),r=e.usage&&(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:Object.entries(e.usage).map(([e,s])=>"number"==typeof s?(0,t.jsxs)("span",{className:"px-2 py-1 bg-slate-100 text-slate-800 rounded-md text-xs font-medium",children:[e,": ",s]},e):null)});return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"border rounded-lg p-4",children:[(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(V,{label:"Action:",children:H(e.action??"N/A",l)}),e.actionReason&&(0,t.jsx)(V,{label:"Action Reason:",children:e.actionReason}),e.blockedResponse&&(0,t.jsx)(V,{label:"Blocked Response:",children:(0,t.jsx)("span",{className:"italic",children:e.blockedResponse})})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(V,{label:"Coverage:",children:a}),(0,t.jsx)(V,{label:"Usage:",children:r})]})]}),s.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(U,{}),(0,t.jsx)("h4",{className:"font-medium mb-2",children:"Outputs"}),(0,t.jsx)("div",{className:"space-y-2",children:s.map((e,s)=>(0,t.jsx)("div",{className:"p-3 bg-gray-50 rounded-md",children:(0,t.jsx)("div",{className:"text-sm whitespace-pre-wrap",children:e.text??(0,t.jsx)("em",{children:"(non-text output)"})})},s))})]})]}),e.assessments?.length?(0,t.jsx)("div",{className:"space-y-3",children:e.assessments.map((e,s)=>{let l=(0,t.jsxs)("div",{className:"flex flex-wrap gap-1",children:[e.wordPolicy&&H("word","slate"),e.contentPolicy&&H("content","slate"),e.topicPolicy&&H("topic","slate"),e.sensitiveInformationPolicy&&H("sensitive-info","slate"),e.contextualGroundingPolicy&&H("contextual-grounding","slate"),e.automatedReasoningPolicy&&H("automated-reasoning","slate")]});return(0,t.jsxs)(Y,{title:`Assessment #${s+1}`,defaultOpen:!0,right:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[e.invocationMetrics?.guardrailProcessingLatency!=null&&H(`${e.invocationMetrics.guardrailProcessingLatency} ms`,"amber"),l]}),children:[e.wordPolicy&&(0,t.jsxs)("div",{className:"mb-3",children:[(0,t.jsx)("h6",{className:"font-medium mb-2",children:"Word Policy"}),(e.wordPolicy.customWords?.length??0)>0&&(0,t.jsx)(Y,{title:"Custom Words",defaultOpen:!0,children:(0,t.jsx)("div",{className:"space-y-2",children:e.wordPolicy.customWords.map((e,s)=>(0,t.jsxs)("div",{className:"flex justify-between items-center p-2 bg-gray-50 rounded",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[H(e.action??"N/A",e.detected?"red":"slate"),(0,t.jsx)("span",{className:"font-mono text-sm break-all",children:e.match})]}),K(e.detected)]},s))})}),(e.wordPolicy.managedWordLists?.length??0)>0&&(0,t.jsx)(Y,{title:"Managed Word Lists",defaultOpen:!1,children:(0,t.jsx)("div",{className:"space-y-2",children:e.wordPolicy.managedWordLists.map((e,s)=>(0,t.jsxs)("div",{className:"flex justify-between items-center p-2 bg-gray-50 rounded",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[H(e.action??"N/A",e.detected?"red":"slate"),(0,t.jsx)("span",{className:"font-mono text-sm break-all",children:e.match}),e.type&&H(e.type,"slate")]}),K(e.detected)]},s))})})]}),e.contentPolicy?.filters?.length?(0,t.jsxs)("div",{className:"mb-3",children:[(0,t.jsx)("h6",{className:"font-medium mb-2",children:"Content Policy"}),(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"min-w-full text-sm",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"text-left text-gray-600",children:[(0,t.jsx)("th",{className:"py-1 pr-4",children:"Type"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Action"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Detected"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Strength"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Confidence"})]})}),(0,t.jsx)("tbody",{children:e.contentPolicy.filters.map((e,s)=>(0,t.jsxs)("tr",{className:"border-t",children:[(0,t.jsx)("td",{className:"py-1 pr-4",children:e.type??"—"}),(0,t.jsx)("td",{className:"py-1 pr-4",children:H(e.action??"—",e.detected?"red":"slate")}),(0,t.jsx)("td",{className:"py-1 pr-4",children:K(e.detected)}),(0,t.jsx)("td",{className:"py-1 pr-4",children:e.filterStrength??"—"}),(0,t.jsx)("td",{className:"py-1 pr-4",children:e.confidence??"—"})]},s))})]})})]}):null,e.contextualGroundingPolicy?.filters?.length?(0,t.jsxs)("div",{className:"mb-3",children:[(0,t.jsx)("h6",{className:"font-medium mb-2",children:"Contextual Grounding"}),(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"min-w-full text-sm",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"text-left text-gray-600",children:[(0,t.jsx)("th",{className:"py-1 pr-4",children:"Type"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Action"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Detected"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Score"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Threshold"})]})}),(0,t.jsx)("tbody",{children:e.contextualGroundingPolicy.filters.map((e,s)=>(0,t.jsxs)("tr",{className:"border-t",children:[(0,t.jsx)("td",{className:"py-1 pr-4",children:e.type??"—"}),(0,t.jsx)("td",{className:"py-1 pr-4",children:H(e.action??"—",e.detected?"red":"slate")}),(0,t.jsx)("td",{className:"py-1 pr-4",children:K(e.detected)}),(0,t.jsx)("td",{className:"py-1 pr-4",children:e.score??"—"}),(0,t.jsx)("td",{className:"py-1 pr-4",children:e.threshold??"—"})]},s))})]})})]}):null,e.sensitiveInformationPolicy&&(0,t.jsxs)("div",{className:"mb-3",children:[(0,t.jsx)("h6",{className:"font-medium mb-2",children:"Sensitive Information"}),(e.sensitiveInformationPolicy.piiEntities?.length??0)>0&&(0,t.jsx)(Y,{title:"PII Entities",defaultOpen:!0,children:(0,t.jsx)("div",{className:"space-y-2",children:e.sensitiveInformationPolicy.piiEntities.map((e,s)=>(0,t.jsxs)("div",{className:"flex justify-between items-center p-2 bg-gray-50 rounded",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[H(e.action??"N/A",e.detected?"red":"slate"),e.type&&H(e.type,"slate"),(0,t.jsx)("span",{className:"font-mono text-xs break-all",children:e.match})]}),K(e.detected)]},s))})}),(e.sensitiveInformationPolicy.regexes?.length??0)>0&&(0,t.jsx)(Y,{title:"Custom Regexes",defaultOpen:!1,children:(0,t.jsx)("div",{className:"space-y-2",children:e.sensitiveInformationPolicy.regexes.map((e,s)=>(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between p-2 bg-gray-50 rounded gap-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[H(e.action??"N/A",e.detected?"red":"slate"),(0,t.jsx)("span",{className:"font-medium",children:e.name??"regex"}),(0,t.jsx)("span",{className:"font-mono text-xs break-all",children:e.regex})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[K(e.detected),e.match&&(0,t.jsx)("span",{className:"font-mono text-xs break-all",children:e.match})]})]},s))})})]}),e.topicPolicy?.topics?.length?(0,t.jsxs)("div",{className:"mb-3",children:[(0,t.jsx)("h6",{className:"font-medium mb-2",children:"Topic Policy"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:e.topicPolicy.topics.map((e,s)=>(0,t.jsx)("div",{className:"px-3 py-1.5 bg-gray-50 rounded-md text-xs",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[H(e.action??"N/A",e.detected?"red":"slate"),(0,t.jsx)("span",{className:"font-medium",children:e.name??"topic"}),e.type&&H(e.type,"slate"),K(e.detected)]})},s))})]}):null,e.invocationMetrics&&(0,t.jsx)(Y,{title:"Invocation Metrics",defaultOpen:!1,children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(V,{label:"Latency (ms)",children:e.invocationMetrics.guardrailProcessingLatency??"—"}),(0,t.jsx)(V,{label:"Coverage:",children:(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[e.invocationMetrics.guardrailCoverage?.textCharacters&&H(`text ${e.invocationMetrics.guardrailCoverage.textCharacters.guarded??0}/${e.invocationMetrics.guardrailCoverage.textCharacters.total??0}`,"blue"),e.invocationMetrics.guardrailCoverage?.images&&H(`images ${e.invocationMetrics.guardrailCoverage.images.guarded??0}/${e.invocationMetrics.guardrailCoverage.images.total??0}`,"blue")]})})]}),(0,t.jsx)("div",{className:"space-y-2",children:(0,t.jsx)(V,{label:"Usage:",children:(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:e.invocationMetrics.usage&&Object.entries(e.invocationMetrics.usage).map(([e,s])=>"number"==typeof s?(0,t.jsxs)("span",{className:"px-2 py-1 bg-slate-100 text-slate-800 rounded-md text-xs font-medium",children:[e,": ",s]},e):null)})})})]})}),e.automatedReasoningPolicy?.findings?.length?(0,t.jsx)(Y,{title:"Automated Reasoning Findings",defaultOpen:!1,children:(0,t.jsx)("div",{className:"space-y-2",children:e.automatedReasoningPolicy.findings.map((e,s)=>(0,t.jsx)("pre",{className:"bg-gray-50 rounded p-2 text-xs overflow-x-auto",children:JSON.stringify(e,null,2)},s))})}):null]},s)})}):null,(0,t.jsx)(Y,{title:"Raw Bedrock Guardrail Response",defaultOpen:!1,children:(0,t.jsx)("pre",{className:"bg-gray-50 rounded p-3 text-xs overflow-x-auto",children:JSON.stringify(e,null,2)})})]})},J=(e,s="slate")=>(0,t.jsx)("span",{className:`px-2 py-1 rounded-md text-xs font-medium inline-block ${{green:"bg-green-100 text-green-800",red:"bg-red-100 text-red-800",blue:"bg-blue-50 text-blue-700",slate:"bg-slate-100 text-slate-800",amber:"bg-amber-100 text-amber-800"}[s]}`,children:e}),G=({title:e,count:l,defaultOpen:a=!0,children:r})=>{let[n,i]=(0,s.useState)(a);return(0,t.jsxs)("div",{className:"border rounded-lg overflow-hidden",children:[(0,t.jsx)("div",{className:"flex items-center justify-between p-3 bg-gray-50 cursor-pointer hover:bg-gray-100",onClick:()=>i(e=>!e),children:(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)("svg",{className:`w-5 h-5 mr-2 transition-transform ${n?"transform rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,t.jsxs)("h5",{className:"font-medium",children:[e," ","number"==typeof l&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal",children:["(",l,")"]})]})]})}),n&&(0,t.jsx)("div",{className:"p-3 border-t bg-white",children:r})]})},Q=({label:e,children:s,mono:l})=>(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:e}),(0,t.jsx)("span",{className:l?"font-mono text-sm break-all":"",children:s})]}),X=({response:e})=>{if(!e||"string"==typeof e)return"string"==typeof e&&e?(0,t.jsx)("div",{className:"bg-white rounded-lg border border-red-200 p-4",children:(0,t.jsxs)("div",{className:"text-red-800",children:[(0,t.jsx)("h5",{className:"font-medium mb-2",children:"Error"}),(0,t.jsx)("p",{className:"text-sm",children:e})]})}):null;let s=Array.isArray(e)?e:[];if(0===s.length)return(0,t.jsx)("div",{className:"bg-white rounded-lg border border-gray-200 p-4",children:(0,t.jsx)("div",{className:"text-gray-600 text-sm",children:"No detections found"})});let l=s.filter(e=>"pattern"===e.type),a=s.filter(e=>"blocked_word"===e.type),r=s.filter(e=>"category_keyword"===e.type),n=s.filter(e=>"BLOCK"===e.action).length,i=s.filter(e=>"MASK"===e.action).length,o=s.length;return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("div",{className:"bg-white rounded-lg border border-gray-200 p-4",children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(Q,{label:"Total Detections:",children:(0,t.jsx)("span",{className:"font-semibold",children:o})}),(0,t.jsx)(Q,{label:"Actions:",children:(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[n>0&&J(`${n} blocked`,"red"),i>0&&J(`${i} masked`,"blue"),0===n&&0===i&&J("passed","green")]})})]}),(0,t.jsx)("div",{className:"space-y-2",children:(0,t.jsx)(Q,{label:"By Type:",children:(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[l.length>0&&J(`${l.length} patterns`,"slate"),a.length>0&&J(`${a.length} keywords`,"slate"),r.length>0&&J(`${r.length} categories`,"slate")]})})})]})}),l.length>0&&(0,t.jsx)(G,{title:"Patterns Matched",count:l.length,defaultOpen:!0,children:(0,t.jsx)("div",{className:"space-y-2",children:l.map((e,s)=>(0,t.jsx)("div",{className:"p-3 bg-gray-50 rounded-md",children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsx)("div",{className:"space-y-1",children:(0,t.jsx)(Q,{label:"Pattern:",children:e.pattern_name||"unknown"})}),(0,t.jsx)("div",{className:"space-y-1",children:(0,t.jsx)(Q,{label:"Action:",children:J(e.action,"BLOCK"===e.action?"red":"blue")})})]})},s))})}),a.length>0&&(0,t.jsx)(G,{title:"Blocked Words Detected",count:a.length,defaultOpen:!0,children:(0,t.jsx)("div",{className:"space-y-2",children:a.map((e,s)=>(0,t.jsx)("div",{className:"p-3 bg-gray-50 rounded-md",children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)(Q,{label:"Keyword:",mono:!0,children:e.keyword||"unknown"}),e.description&&(0,t.jsx)(Q,{label:"Description:",children:e.description})]}),(0,t.jsx)("div",{className:"space-y-1",children:(0,t.jsx)(Q,{label:"Action:",children:J(e.action,"BLOCK"===e.action?"red":"blue")})})]})},s))})}),r.length>0&&(0,t.jsx)(G,{title:"Category Keywords Detected",count:r.length,defaultOpen:!0,children:(0,t.jsx)("div",{className:"space-y-2",children:r.map((e,s)=>(0,t.jsx)("div",{className:"p-3 bg-gray-50 rounded-md",children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)(Q,{label:"Category:",children:e.category||"unknown"}),(0,t.jsx)(Q,{label:"Keyword:",mono:!0,children:e.keyword||"unknown"}),e.severity&&(0,t.jsx)(Q,{label:"Severity:",children:J(e.severity,"high"===e.severity?"red":"medium"===e.severity?"amber":"slate")})]}),(0,t.jsx)("div",{className:"space-y-1",children:(0,t.jsx)(Q,{label:"Action:",children:J(e.action,"BLOCK"===e.action?"red":"blue")})})]})},s))})}),(0,t.jsx)(G,{title:"Raw Detection Data",defaultOpen:!1,children:(0,t.jsx)("pre",{className:"bg-gray-50 rounded p-3 text-xs overflow-x-auto",children:JSON.stringify(s,null,2)})})]})};var Z=e.i(764205);let ee=()=>(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[(0,t.jsx)("circle",{cx:"8",cy:"8",r:"7",stroke:"#16A34A",strokeWidth:"1.5",fill:"#F0FDF4"}),(0,t.jsx)("path",{d:"M5 8l2 2 4-4",stroke:"#16A34A",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),et=()=>(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[(0,t.jsx)("circle",{cx:"8",cy:"8",r:"7",stroke:"#DC2626",strokeWidth:"1.5",fill:"#FEF2F2"}),(0,t.jsx)("path",{d:"M6 6l4 4M10 6l-4 4",stroke:"#DC2626",strokeWidth:"1.5",strokeLinecap:"round"})]}),es=()=>(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",className:"animate-spin",children:[(0,t.jsx)("circle",{cx:"8",cy:"8",r:"6",stroke:"#D1D5DB",strokeWidth:"2"}),(0,t.jsx)("path",{d:"M8 2a6 6 0 0 1 6 6",stroke:"#6366F1",strokeWidth:"2",strokeLinecap:"round"})]}),el=({title:e,data:l,loading:a,error:r})=>{let[n,i]=(0,s.useState)(!1);return(0,t.jsxs)("div",{className:"border border-gray-200 rounded-lg bg-white",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 cursor-pointer hover:bg-gray-50 transition-colors",onClick:()=>i(!n),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[a?(0,t.jsx)(es,{}):r?(0,t.jsx)(h.Tooltip,{title:r,children:(0,t.jsx)("span",{className:"text-gray-400 text-sm",children:"--"})}):l?.compliant?(0,t.jsx)(ee,{}):(0,t.jsx)(et,{}),(0,t.jsx)("span",{className:"font-medium text-sm text-gray-900",children:e})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[!a&&!r&&l&&(0,t.jsx)("span",{className:`px-2 py-0.5 rounded text-[11px] font-semibold uppercase ${l.compliant?"bg-green-100 text-green-700 border border-green-200":"bg-red-100 text-red-700 border border-red-200"}`,children:l.compliant?"COMPLIANT":"NON-COMPLIANT"}),r&&(0,t.jsx)("span",{className:"px-2 py-0.5 rounded text-[11px] font-medium bg-gray-100 text-gray-500 border border-gray-200",children:"UNAVAILABLE"}),(0,t.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",className:`transition-transform ${n?"rotate-180":""}`,children:(0,t.jsx)("path",{d:"M6 8l4 4 4-4",stroke:"#6B7280",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]})]}),n&&(0,t.jsxs)("div",{className:"border-t border-gray-100 px-4 py-3",children:[a&&(0,t.jsx)("p",{className:"text-sm text-gray-500",children:"Checking compliance..."}),r&&(0,t.jsx)("p",{className:"text-sm text-red-600",children:r}),l&&(0,t.jsx)("div",{className:"space-y-2",children:l.checks.map((e,s)=>(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-0.5",children:e.passed?(0,t.jsx)(ee,{}):(0,t.jsx)(et,{})}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900",children:e.check_name}),(0,t.jsx)("span",{className:"text-[10px] font-mono text-gray-400",children:e.article})]}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-0.5",children:e.detail})]})]},s))})]})]})},ea=({accessToken:e,logEntry:l})=>{let[a,r]=(0,s.useState)(null),[n,i]=(0,s.useState)(null),[o,d]=(0,s.useState)(!1),[c,x]=(0,s.useState)(!1),[m,u]=(0,s.useState)(null),[p,h]=(0,s.useState)(null);return(0,s.useEffect)(()=>{if(!e||!l.request_id)return;let t={request_id:l.request_id,user_id:l.user,model:l.model,timestamp:l.startTime,guardrail_information:l.metadata?.guardrail_information};d(!0),u(null),(0,Z.checkEuAiActCompliance)(e,t).then(r).catch(e=>u(e.message||"Failed to check EU AI Act compliance")).finally(()=>d(!1)),x(!0),h(null),(0,Z.checkGdprCompliance)(e,t).then(i).catch(e=>h(e.message||"Failed to check GDPR compliance")).finally(()=>x(!1))},[e,l]),(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider mb-4",children:"Regulatory Compliance"}),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(el,{title:"EU AI Act",data:a,loading:o,error:m}),(0,t.jsx)(el,{title:"GDPR",data:n,loading:c,error:p})]})]})},er=new Set(["presidio","bedrock","litellm_content_filter"]),en=(e,t)=>{if(null==e)return!1;if("string"==typeof e)return e===t;if(Array.isArray(e))return e.includes(t);if("object"==typeof e&&"default"in e){let s=e.default;if("string"==typeof s)return s===t;if(Array.isArray(s))return s.some(e=>"string"==typeof e&&e===t)}return!1},ei=e=>Object.values(e.masked_entity_count||{}).reduce((e,t)=>e+("number"==typeof t?t:0),0),eo=e=>"success"===(e.guardrail_status??"").toLowerCase(),ed=e=>e.policy_template||e.guardrail_name,ec=()=>(0,t.jsxs)("svg",{width:"40",height:"40",viewBox:"0 0 40 40",fill:"none",children:[(0,t.jsx)("circle",{cx:"20",cy:"20",r:"20",fill:"#EEF2FF"}),(0,t.jsx)("path",{d:"M20 10l8 4v6c0 5.25-3.4 10.15-8 11.5C15.4 30.15 12 25.25 12 20v-6l8-4z",stroke:"#6366F1",strokeWidth:"1.5",fill:"none"}),(0,t.jsx)("path",{d:"M16 20l3 3 5-6",stroke:"#6366F1",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})]}),ex=({className:e})=>(0,t.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 22 22",fill:"none",className:e,children:[(0,t.jsx)("circle",{cx:"11",cy:"11",r:"10",stroke:"#16A34A",strokeWidth:"1.5",fill:"#F0FDF4"}),(0,t.jsx)("path",{d:"M7 11l3 3 5-6",stroke:"#16A34A",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),em=({className:e})=>(0,t.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 22 22",fill:"none",className:e,children:[(0,t.jsx)("circle",{cx:"11",cy:"11",r:"10",stroke:"#DC2626",strokeWidth:"1.5",fill:"#FEF2F2"}),(0,t.jsx)("path",{d:"M8 8l6 6M14 8l-6 6",stroke:"#DC2626",strokeWidth:"1.5",strokeLinecap:"round"})]}),eu=()=>(0,t.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 22 22",fill:"none",children:[(0,t.jsx)("circle",{cx:"11",cy:"11",r:"10",stroke:"#3B82F6",strokeWidth:"1.5",fill:"#EFF6FF"}),(0,t.jsx)("path",{d:"M9 7.5l6 3.5-6 3.5V7.5z",fill:"#3B82F6"})]}),ep=()=>(0,t.jsx)("svg",{width:"22",height:"22",viewBox:"0 0 22 22",fill:"none",children:(0,t.jsx)("circle",{cx:"11",cy:"11",r:"5",fill:"#9CA3AF"})}),eh=({expanded:e})=>(0,t.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",className:`transition-transform ${e?"rotate-180":""}`,children:(0,t.jsx)("path",{d:"M6 8l4 4 4-4",stroke:"#6B7280",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),eg=()=>(0,t.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:(0,t.jsx)("path",{d:"M8 2v8m0 0l-3-3m3 3l3-3M3 12h10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),ef=({matchDetails:e})=>e&&0!==e.length?(0,t.jsxs)("div",{className:"mt-3",children:[(0,t.jsxs)("h5",{className:"text-sm font-medium mb-2 text-gray-700",children:["Match Details (",e.length,")"]}),(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"w-full text-sm",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"border-b text-left text-gray-500",children:[(0,t.jsx)("th",{className:"pb-2 pr-4 font-medium",children:"Type"}),(0,t.jsx)("th",{className:"pb-2 pr-4 font-medium",children:"Method"}),(0,t.jsx)("th",{className:"pb-2 pr-4 font-medium",children:"Action"}),(0,t.jsx)("th",{className:"pb-2 font-medium",children:"Detail"})]})}),(0,t.jsx)("tbody",{children:e.map((e,s)=>(0,t.jsxs)("tr",{className:"border-b border-gray-100",children:[(0,t.jsx)("td",{className:"py-2 pr-4",children:e.type}),(0,t.jsx)("td",{className:"py-2 pr-4",children:(0,t.jsx)("span",{className:"px-2 py-0.5 bg-slate-100 text-slate-700 rounded text-xs",children:e.detection_method??"-"})}),(0,t.jsx)("td",{className:"py-2 pr-4",children:(0,t.jsx)("span",{className:`px-2 py-0.5 rounded text-xs font-medium ${"BLOCK"===e.action_taken?"bg-red-100 text-red-800":"bg-blue-50 text-blue-700"}`,children:e.action_taken??"-"})}),(0,t.jsxs)("td",{className:"py-2 font-mono text-xs text-gray-600 break-all",children:[e.category?`[${e.category}] `:"",e.snippet??"-"]})]},s))})]})})]}):null,ey=({response:e})=>{let[l,a]=(0,s.useState)(!1);return(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsxs)("div",{className:"border rounded-lg overflow-hidden",children:[(0,t.jsx)("div",{className:"flex items-center justify-between p-3 bg-gray-50 cursor-pointer hover:bg-gray-100",onClick:()=>a(!l),children:(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(eh,{expanded:l}),(0,t.jsx)("h5",{className:"font-medium text-sm ml-1",children:"Raw Guardrail Response"})]})}),l&&(0,t.jsx)("div",{className:"p-3 border-t bg-white",children:(0,t.jsx)("pre",{className:"bg-gray-50 rounded p-3 text-xs overflow-x-auto",children:JSON.stringify(e,null,2)})})]})})},ej=({entries:e})=>{let l=(0,s.useMemo)(()=>[...e].sort((e,t)=>(e.start_time??0)-(t.start_time??0)),[e]),a=(0,s.useMemo)(()=>{if(0===l.length)return[];let e=l[0].start_time,t=[];t.push({type:"request",label:"Request received",offsetMs:0});let s=l.filter(e=>en(e.guardrail_mode,"pre_call")),a=l.filter(e=>en(e.guardrail_mode,"post_call")||en(e.guardrail_mode,"logging_only")),r=l.filter(e=>en(e.guardrail_mode,"during_call"));for(let l of s){let s=Math.round((l.end_time-e)*1e3);t.push({type:"guardrail",label:`Pre-call guardrail: ${ed(l)}`,offsetMs:s,status:eo(l)?"PASSED":"FAILED",isSuccess:eo(l)})}let n=s.length>0?Math.max(...s.map(e=>e.end_time)):e,i=Math.round((((a.length>0?Math.min(...a.map(e=>e.start_time)):void 0)??n+1)-e)*1e3);for(let s of(t.push({type:"llm",label:"LLM call",offsetMs:i}),r)){let l=Math.round((s.end_time-e)*1e3);t.push({type:"guardrail",label:`During-call guardrail: ${ed(s)}`,offsetMs:l,status:eo(s)?"PASSED":"FAILED",isSuccess:eo(s)})}for(let s of a){let l=Math.round((s.end_time-e)*1e3);t.push({type:"guardrail",label:`Post-call guardrail: ${ed(s)}`,offsetMs:l,status:eo(s)?"PASSED":"FAILED",isSuccess:eo(s)})}let o=Math.round((Math.max(...l.map(e=>e.end_time))-e)*1e3)+1;return t.push({type:"response",label:"Response returned",offsetMs:o}),t},[l]);return(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider mb-4",children:"Request Lifecycle"}),(0,t.jsx)("div",{className:"relative",children:a.map((e,s)=>(0,t.jsxs)("div",{className:"flex items-start gap-3 relative",children:[(0,t.jsxs)("div",{className:"flex flex-col items-center",children:[(0,t.jsx)("div",{className:"flex-shrink-0",children:"request"===e.type||"response"===e.type?(0,t.jsx)(ep,{}):"llm"===e.type?(0,t.jsx)(eu,{}):e.isSuccess?(0,t.jsx)(ex,{}):(0,t.jsx)(em,{})}),s{let l,a,[r,n]=(0,s.useState)(!1),i=eo(e),o=ei(e),d=ed(e),c=(l=Math.round(1e3*e.duration),`${l}ms`),x=null==(a=(e=>{if(null==e)return null;if("string"==typeof e)return e;if(Array.isArray(e)){let t=e[0];return"string"==typeof t?t:null}if("object"==typeof e&&"default"in e){let t=e.default;if("string"==typeof t)return t;if(Array.isArray(t)){let e=t[0];return"string"==typeof e?e:null}}return null})(e.guardrail_mode))||""===a?"—":a.replace(/_/g,"-").toUpperCase(),m=(e=>{if(!eo(e))return null;if(null!=e.risk_score)return e.risk_score;let t=ei(e),s=e.patterns_checked??0,l=e.confidence_score??0;if(0===s&&0===l)return 0;let a=7*(s>0?t/s:0)+3*l;return t>0&&a<2&&(a=2),Math.min(10,Math.round(10*a)/10)})(e),u=e.guardrail_provider??"presidio",p=e.guardrail_response,g=Array.isArray(p)?p:[],f="bedrock"!==u||null===p||"object"!=typeof p||Array.isArray(p)?void 0:p,y=null!=e.patterns_checked?`${o}/${e.patterns_checked} matched`:o>0?`${o} matched`:null;return(0,t.jsxs)("div",{className:"border border-gray-200 rounded-lg bg-white",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3 cursor-pointer hover:bg-gray-50 transition-colors",onClick:()=>n(!r),children:[(0,t.jsx)("div",{className:"flex-shrink-0",children:i?(0,t.jsx)(ex,{}):(0,t.jsx)(em,{})}),(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-wrap flex-1 min-w-0",children:[(0,t.jsx)("span",{className:"font-semibold text-gray-900 text-sm truncate",children:d}),(0,t.jsx)("span",{className:"px-2 py-0.5 border border-blue-200 bg-blue-50 text-blue-700 rounded text-[11px] font-semibold uppercase flex-shrink-0",children:x}),(0,t.jsx)("span",{className:`px-2 py-0.5 rounded text-[11px] font-semibold uppercase flex-shrink-0 ${i?"bg-green-100 text-green-700 border border-green-200":"bg-red-100 text-red-700 border border-red-200"}`,children:i?"PASSED":"FAILED"}),y&&(0,t.jsx)("span",{className:`px-2 py-0.5 rounded text-[11px] font-medium flex-shrink-0 ${0===o?"bg-green-50 text-green-700 border border-green-200":"bg-amber-50 text-amber-700 border border-amber-200"}`,children:y}),null!=e.confidence_score&&(0,t.jsxs)("span",{className:"px-2 py-0.5 bg-gray-100 text-gray-600 border border-gray-200 rounded text-[11px] font-medium flex-shrink-0",children:[(100*e.confidence_score).toFixed(0),"% conf"]}),null!=m&&i&&(0,t.jsx)(h.Tooltip,{title:`Risk score: ${m}/10`,children:(0,t.jsxs)("span",{className:`px-2 py-0.5 border rounded text-[11px] font-semibold flex-shrink-0 ${m<=3?"text-green-600 bg-green-50 border-green-200":m<=6?"text-amber-600 bg-amber-50 border-amber-200":"text-red-600 bg-red-50 border-red-200"}`,children:["Risk ",m,"/10"]})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-3 flex-shrink-0",children:[(0,t.jsx)("span",{className:"text-sm text-gray-500 font-mono",children:c}),e.detection_method&&(0,t.jsx)("span",{className:"px-2 py-0.5 bg-gray-100 text-gray-600 border border-gray-200 rounded text-[11px] font-medium",children:e.detection_method.split(",")[0].trim()}),(0,t.jsx)(eh,{expanded:r})]})]}),r&&(0,t.jsxs)("div",{className:"border-t border-gray-100 px-4 py-3",children:[e.classification&&(0,t.jsxs)("div",{className:"mb-3 bg-gray-50 rounded-lg p-3 space-y-1",children:[(0,t.jsx)("h5",{className:"text-sm font-medium text-gray-700 mb-2",children:"Classification"}),e.classification.category&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"font-medium w-1/3 text-gray-500",children:"Category:"}),(0,t.jsx)("span",{children:e.classification.category})]}),e.classification.article_reference&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"font-medium w-1/3 text-gray-500",children:"Reference:"}),(0,t.jsx)("span",{className:"font-mono",children:e.classification.article_reference})]}),null!=e.classification.confidence&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"font-medium w-1/3 text-gray-500",children:"Confidence:"}),(0,t.jsxs)("span",{children:[(100*e.classification.confidence).toFixed(0),"%"]})]}),e.classification.reason&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"font-medium w-1/3 text-gray-500",children:"Reason:"}),(0,t.jsx)("span",{children:e.classification.reason})]})]}),e.match_details&&e.match_details.length>0&&(0,t.jsx)(ef,{matchDetails:e.match_details}),o>0&&(0,t.jsxs)("div",{className:"mt-3",children:[(0,t.jsx)("h5",{className:"text-sm font-medium text-gray-700 mb-2",children:"Masked Entities"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:Object.entries(e.masked_entity_count||{}).map(([e,s])=>(0,t.jsxs)("span",{className:"px-2 py-1 bg-blue-50 text-blue-700 rounded text-xs font-medium",children:[e,": ",s]},e))})]}),"presidio"===u&&g.length>0&&(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)($,{entities:g})}),"bedrock"===u&&f&&(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)(W,{response:f})}),"litellm_content_filter"===u&&p&&(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)(X,{response:p})}),u&&!er.has(u)&&p&&(0,t.jsx)(ey,{response:p})]})]})},ev=({data:e,accessToken:l,logEntry:a})=>{let r=(0,s.useMemo)(()=>Array.isArray(e)?e.filter(e=>!!e):e?[e]:[],[e]),n=r.filter(eo).length,i=n===r.length,o=(0,s.useMemo)(()=>Math.round(1e3*r.reduce((e,t)=>e+(t.duration??0),0)),[r]);return((0,s.useMemo)(()=>Array.from(new Set(r.map(e=>e.policy_template).filter(Boolean))),[r]),0===r.length)?null:(0,t.jsxs)("div",{className:"bg-white rounded-xl border border-gray-200 shadow-sm w-full max-w-full overflow-hidden mb-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-6 py-4 border-b border-gray-100",children:[(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)(ec,{}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-gray-900",children:"Guardrails & Policy Compliance"}),(0,t.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,t.jsxs)("span",{className:"text-sm text-gray-500",children:[r.length," guardrail",1!==r.length?"s":""," evaluated"]}),(0,t.jsx)("span",{className:"text-gray-300",children:"|"}),(0,t.jsxs)("span",{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-semibold ${i?"bg-green-50 text-green-700 border border-green-200":"bg-red-50 text-red-700 border border-red-200"}`,children:[i?(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M3 6l2.5 2.5L9 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}):null,n," Passed"]})]})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-6",children:[(0,t.jsx)("div",{className:"text-right",children:(0,t.jsxs)("div",{className:"text-sm font-medium text-gray-900",children:["Total: ",o,"ms overhead"]})}),(0,t.jsxs)("button",{onClick:()=>{let e=new Blob([JSON.stringify(r,null,2)],{type:"application/json"}),t=URL.createObjectURL(e),s=document.createElement("a");s.href=t,s.download=`guardrail-compliance-log-${new Date().toISOString().slice(0,10)}.json`,s.click(),URL.revokeObjectURL(t)},className:"inline-flex items-center gap-2 px-4 py-2 border border-gray-300 rounded-lg text-sm font-medium text-gray-700 bg-white hover:bg-gray-50 transition-colors",children:[(0,t.jsx)(eg,{}),"Export Compliance Log"]})]})]}),l&&a&&(0,t.jsx)("div",{className:"px-6 py-4 border-b border-gray-100",children:(0,t.jsx)(ea,{accessToken:l,logEntry:a})}),(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b border-gray-100 px-6 py-5",children:(0,t.jsx)(ej,{entries:r})}),(0,t.jsxs)("div",{className:"px-6 py-5",children:[(0,t.jsx)("h4",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider mb-4",children:"Evaluation Details"}),(0,t.jsx)("div",{className:"space-y-3",children:r.map((e,s)=>(0,t.jsx)(eb,{entry:e},`${e.guardrail_name??"guardrail"}-${s}`))})]})]})]})};var e_=e.i(291542),eN=e.i(245704),ew=e.i(518617),eS=e.i(19732);let{Text:ek}=g.Typography;function eC({data:e}){let s=Array.isArray(e)?e:[e];return s.length?(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:12},children:[(0,t.jsx)(eS.ExperimentOutlined,{style:{fontSize:16,color:"#6366f1"}}),(0,t.jsx)(ek,{strong:!0,style:{fontSize:15},children:"LLM Judge Results"})]}),s.map((e,s)=>(0,t.jsx)(eT,{entry:e},e.eval_id||s))]}):null}function eT({entry:e}){let s=e.passed,l=s?"#52c41a":"#ff4d4f",a=(e.verdicts||[]).filter(e=>"overall"!==(e.criterion_name||"").toLowerCase()),r=[{title:"Criterion",dataIndex:"criterion_name",key:"criterion_name",width:160,render:e=>(0,t.jsx)(ek,{strong:!0,style:{whiteSpace:"nowrap"},children:e})},{title:"Weight",dataIndex:"weight",key:"weight",width:65,render:e=>null!=e?(0,t.jsxs)(ek,{type:"secondary",style:{fontSize:12},children:[e,"%"]}):null},{title:"Score",dataIndex:"score",key:"score",width:65,render:e=>(0,t.jsx)(ek,{style:{color:e>=70?"#52c41a":e>=50?"#faad14":"#ff4d4f",fontWeight:600},children:e})},{title:(0,t.jsx)(h.Tooltip,{title:"Score × Weight — how much each criterion contributes to the final score",children:(0,t.jsx)("span",{style:{borderBottom:"1px dashed #aaa",cursor:"help"},children:"Weighted"})}),key:"weighted",width:75,render:(e,s)=>{if(null==s.weight)return null;let l=s.score*s.weight/100;return(0,t.jsx)(ek,{type:"secondary",style:{fontSize:12},children:l%1==0?l:l.toFixed(1)})}},{title:"Comment",dataIndex:"reasoning",key:"reasoning",ellipsis:{showTitle:!1},render:e=>(0,t.jsx)(h.Tooltip,{title:e,children:(0,t.jsx)("span",{style:{fontSize:12},children:e})})}];return(0,t.jsxs)(z.Card,{size:"small",className:"mb-3",style:{borderLeft:`3px solid ${l}`},title:(0,t.jsxs)(u.Space,{children:[s?(0,t.jsx)(eN.CheckCircleOutlined,{style:{color:"#52c41a"}}):(0,t.jsx)(ew.CloseCircleOutlined,{style:{color:"#ff4d4f"}}),(0,t.jsx)(ek,{strong:!0,children:e.eval_name}),(0,t.jsx)(p.Tag,{color:s?"success":"error",children:s?"PASSED":"FAILED"}),(0,t.jsx)(h.Tooltip,{title:"Weighted average of all criterion scores. Each criterion has a weight (%) set when the eval was created — higher-weight criteria count more toward the final score.",children:(0,t.jsxs)(ek,{type:"secondary",style:{fontSize:12,cursor:"help",borderBottom:"1px dashed #aaa"},children:[e.overall_score?.toFixed(0)," / 100",null!=e.threshold&&` (threshold: ${e.threshold})`]})})]}),extra:(0,t.jsxs)(u.Space,{size:"small",children:[e.judge_model&&(0,t.jsxs)(ek,{type:"secondary",style:{fontSize:12},children:["Judge: ",e.judge_model]}),null!=e.iteration&&(0,t.jsxs)(ek,{type:"secondary",style:{fontSize:12},children:["Iter: ",e.iteration+1]})]}),children:[e.eval_error&&(0,t.jsxs)(ek,{type:"warning",style:{display:"block",marginBottom:8,fontSize:12},children:["Judge error: ",e.eval_error]}),a.length>0?(0,t.jsx)(e_.Table,{dataSource:a,columns:r,pagination:!1,size:"small",rowKey:"criterion_name",scroll:{x:!0},summary:()=>{if(!a.some(e=>null!=e.weight))return null;let e=a.reduce((e,t)=>e+(null!=t.weight?t.score*t.weight/100:0),0);return(0,t.jsxs)(e_.Table.Summary.Row,{children:[(0,t.jsx)(e_.Table.Summary.Cell,{index:0,children:(0,t.jsx)(ek,{strong:!0,style:{fontSize:12},children:"Total"})}),(0,t.jsx)(e_.Table.Summary.Cell,{index:1}),(0,t.jsx)(e_.Table.Summary.Cell,{index:2}),(0,t.jsx)(e_.Table.Summary.Cell,{index:3,children:(0,t.jsx)(ek,{strong:!0,style:{fontSize:12,color:l},children:e%1==0?e:e.toFixed(1)})}),(0,t.jsx)(e_.Table.Summary.Cell,{index:4})]})}}):(0,t.jsxs)(ek,{type:"secondary",style:{fontSize:12},children:["Score: ",e.overall_score?.toFixed(1)," — no per-criterion breakdown available."]})]})}let eL=e=>null==e?"-":`$${(0,F.formatNumberWithCommas)(e,8)}`,eM=e=>null==e?"-":`${(100*e).toFixed(2)}%`,eD=({costBreakdown:e,totalSpend:s,promptTokens:l,completionTokens:a,cacheHit:r,rawInputTokens:n,cacheReadTokens:i,cacheCreationTokens:o})=>{let d=r?.toLowerCase()==="true",c=void 0!==l||void 0!==a,x=e?.input_cost!==void 0||e?.output_cost!==void 0,m=e?.additional_costs&&Object.entries(e.additional_costs).some(([,e])=>null!=e&&0!==e);if(!(x||c||m||e&&(void 0!==e.discount_percent&&0!==e.discount_percent||void 0!==e.discount_amount&&0!==e.discount_amount||void 0!==e.margin_percent&&0!==e.margin_percent||void 0!==e.margin_fixed_amount&&0!==e.margin_fixed_amount||void 0!==e.margin_total_amount&&0!==e.margin_total_amount)))return null;let u=e&&(void 0!==e.discount_percent&&0!==e.discount_percent||void 0!==e.discount_amount&&0!==e.discount_amount),p=e&&(void 0!==e.margin_percent&&0!==e.margin_percent||void 0!==e.margin_fixed_amount&&0!==e.margin_fixed_amount||void 0!==e.margin_total_amount&&0!==e.margin_total_amount),h=d?0:e?.input_cost,g=d?0:e?.output_cost,f=d?0:e?.original_cost,y=d?0:e?.total_cost??s;return(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(R.Collapse,{expandIconPosition:"start",items:[{key:"1",label:(0,t.jsxs)("div",{className:"flex items-center justify-between w-full",children:[(0,t.jsx)("h3",{className:"text-lg font-medium text-gray-900",children:"Cost Breakdown"}),(0,t.jsxs)("div",{className:"flex items-center space-x-2 mr-4",children:[(0,t.jsx)("span",{className:"text-sm text-gray-500",children:"Total:"}),(0,t.jsxs)("span",{className:"text-sm font-semibold text-gray-900",children:[eL(s),d&&" (Cached)"]})]})]}),children:(0,t.jsxs)("div",{className:"p-6 space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2 max-w-2xl",children:[(()=>{if(e?.cache_read_cost!==void 0||e?.cache_creation_cost!==void 0){let s=d?0:(h??0)-(e?.cache_read_cost??0)-(e?.cache_creation_cost??0);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"text-gray-600 font-medium w-1/3",children:"Input Cost:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:[eL(s),null!=n&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal ml-1",children:["(",n.toLocaleString()," tokens)"]})]})]}),(e?.cache_read_cost??0)>0&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"text-gray-600 font-medium w-1/3",children:"Cache Read Cost:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:[eL(d?0:e?.cache_read_cost),(i??0)>0&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal ml-1",children:["(",(i??0).toLocaleString()," tokens)"]})]})]}),(e?.cache_creation_cost??0)>0&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"text-gray-600 font-medium w-1/3",children:"Cache Write Cost:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:[eL(d?0:e?.cache_creation_cost),(o??0)>0&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal ml-1",children:["(",(o??0).toLocaleString()," tokens)"]})]})]})]})}return(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"text-gray-600 font-medium w-1/3",children:"Input Cost:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:[eL(h),void 0!==l&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal ml-1",children:["(",l.toLocaleString()," prompt tokens)"]})]})]})})(),(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"text-gray-600 font-medium w-1/3",children:"Output Cost:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:[eL(g),void 0!==a&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal ml-1",children:["(",a.toLocaleString()," completion tokens)"]})]})]}),e?.tool_usage_cost!==void 0&&e.tool_usage_cost>0&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"text-gray-600 font-medium w-1/3",children:"Tool Usage Cost:"}),(0,t.jsx)("span",{className:"text-gray-900",children:eL(e.tool_usage_cost)})]}),e?.additional_costs&&Object.entries(e.additional_costs).filter(([,e])=>null!=e&&0!==e).map(([e,s])=>(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsxs)("span",{className:"text-gray-600 font-medium w-1/3",children:[e,":"]}),(0,t.jsx)("span",{className:"text-gray-900",children:eL(s)})]},e))]}),!d&&(0,t.jsx)("div",{className:"pt-2 border-t border-gray-100 max-w-2xl",children:(0,t.jsxs)("div",{className:"flex text-sm font-semibold",children:[(0,t.jsx)("span",{className:"text-gray-900 w-1/3",children:"Original LLM Cost:"}),(0,t.jsx)("span",{className:"text-gray-900",children:eL(f)})]})}),(u||p)&&(0,t.jsxs)("div",{className:"pt-2 space-y-2 max-w-2xl",children:[u&&(0,t.jsxs)("div",{className:"space-y-2",children:[void 0!==e.discount_percent&&0!==e.discount_percent&&(0,t.jsxs)("div",{className:"flex text-sm text-gray-600",children:[(0,t.jsxs)("span",{className:"font-medium w-1/3",children:["Discount (",eM(e.discount_percent),"):"]}),(0,t.jsxs)("span",{className:"text-gray-900",children:["-",eL(e.discount_amount)]})]}),void 0!==e.discount_amount&&void 0===e.discount_percent&&(0,t.jsxs)("div",{className:"flex text-sm text-gray-600",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Discount Amount:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:["-",eL(e.discount_amount)]})]})]}),p&&(0,t.jsxs)("div",{className:"space-y-2",children:[void 0!==e.margin_percent&&0!==e.margin_percent&&(0,t.jsxs)("div",{className:"flex text-sm text-gray-600",children:[(0,t.jsxs)("span",{className:"font-medium w-1/3",children:["Margin (",eM(e.margin_percent),"):"]}),(0,t.jsxs)("span",{className:"text-gray-900",children:["+",eL((e.margin_total_amount||0)-(e.margin_fixed_amount||0))]})]}),void 0!==e.margin_fixed_amount&&0!==e.margin_fixed_amount&&(0,t.jsxs)("div",{className:"flex text-sm text-gray-600",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Margin:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:["+",eL(e.margin_fixed_amount)]})]})]})]}),(0,t.jsx)("div",{className:"mt-4 pt-4 border-t border-gray-200 max-w-2xl",children:(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)("span",{className:"font-bold text-sm text-gray-900 w-1/3",children:"Final Calculated Cost:"}),(0,t.jsxs)("span",{className:"text-sm font-bold text-gray-900",children:[eL(y),d&&" (Cached)"]})]})})]})}]})})},eE=({show:e})=>e?(0,t.jsxs)("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-4 flex items-start",children:[(0,t.jsx)("div",{className:"text-blue-500 mr-3 flex-shrink-0 mt-0.5",children:(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,t.jsx)("line",{x1:"12",y1:"16",x2:"12",y2:"12"}),(0,t.jsx)("line",{x1:"12",y1:"8",x2:"12.01",y2:"8"})]})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"text-sm font-medium text-blue-800",children:"Request/Response Data Not Available"}),(0,t.jsxs)("p",{className:"text-sm text-blue-700 mt-1",children:["To view request and response details, enable prompt storage in your LiteLLM configuration by adding the following to your ",(0,t.jsx)("code",{className:"bg-blue-100 px-1 py-0.5 rounded",children:"proxy_config.yaml"})," file, or toggle the setting in ",(0,t.jsx)("strong",{children:"Admin Settings → Logging Settings"}),"."]}),(0,t.jsx)("pre",{className:"mt-2 bg-white p-3 rounded border border-blue-200 text-xs font-mono overflow-auto",children:`general_settings: + store_model_in_db: true + store_prompts_in_spend_logs: true`}),(0,t.jsx)("p",{className:"text-xs text-blue-700 mt-2",children:"Note: This will only affect new requests after the configuration change."})]})]}):null;function eA({data:e}){let[l,a]=(0,s.useState)({});if(!e||0===e.length)return null;let r=e=>new Date(1e3*e).toLocaleString();return(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(R.Collapse,{defaultActiveKey:["1"],expandIconPosition:"start",items:[{key:"1",label:(0,t.jsx)("h3",{className:"text-lg font-medium text-gray-900",children:"Vector Store Requests"}),children:(0,t.jsx)("div",{className:"p-4",children:e.map((e,s)=>{var n,i;return(0,t.jsxs)("div",{className:"mb-6 last:mb-0",children:[(0,t.jsx)("div",{className:"bg-white rounded-lg border p-4 mb-4",children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Query:"}),(0,t.jsx)("span",{className:"font-mono",children:e.query})]}),(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Vector Store ID:"}),(0,t.jsx)("span",{className:"font-mono",children:e.vector_store_id})]}),(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Provider:"}),(0,t.jsx)("span",{className:"flex items-center",children:(()=>{let{logo:s,displayName:l}=(0,v.getProviderLogoAndName)(e.custom_llm_provider);return(0,t.jsxs)(t.Fragment,{children:[s&&(0,t.jsx)("img",{src:s,alt:`${l} logo`,className:"h-5 w-5 mr-2"}),l]})})()})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Start Time:"}),(0,t.jsx)("span",{children:r(e.start_time)})]}),(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"End Time:"}),(0,t.jsx)("span",{children:r(e.end_time)})]}),(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Duration:"}),(0,t.jsx)("span",{children:(n=e.start_time,i=e.end_time,`${((i-n)*1e3).toFixed(2)}ms`)})]})]})]})}),(0,t.jsx)("h4",{className:"font-medium mb-2",children:"Search Results"}),(0,t.jsx)("div",{className:"space-y-2",children:e.vector_store_search_response.data.map((e,r)=>{let n=l[`${s}-${r}`]||!1;return(0,t.jsxs)("div",{className:"border rounded-lg overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center p-3 bg-gray-50 cursor-pointer",onClick:()=>{let e;return e=`${s}-${r}`,void a(t=>({...t,[e]:!t[e]}))},children:[(0,t.jsx)("svg",{className:`w-5 h-5 mr-2 transition-transform ${n?"transform rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsxs)("span",{className:"font-medium mr-2",children:["Result ",r+1]}),(0,t.jsxs)("span",{className:"text-gray-500 text-sm",children:["Score: ",(0,t.jsx)("span",{className:"font-mono",children:e.score.toFixed(4)})]})]})]}),n&&(0,t.jsx)("div",{className:"p-3 border-t bg-white",children:e.content.map((e,s)=>(0,t.jsxs)("div",{className:"mb-2 last:mb-0",children:[(0,t.jsx)("div",{className:"text-xs text-gray-500 mb-1",children:e.type}),(0,t.jsx)("pre",{className:"text-xs font-mono whitespace-pre-wrap break-all bg-gray-50 p-2 rounded",children:e.text})]},s))})]},r)})})]},s)})})}]})})}let{Text:ez}=g.Typography;function eI({value:e,maxWidth:s=180}){return e?(0,t.jsx)(h.Tooltip,{title:e,children:(0,t.jsx)(ez,{copyable:{text:e,tooltips:["Copy","Copied!"]},style:{maxWidth:s,display:"inline-block",verticalAlign:"bottom",fontFamily:S,fontSize:12},ellipsis:!0,children:e})}):(0,t.jsx)(ez,{type:"secondary",children:"-"})}let{Text:eO}=g.Typography;function eR({prompt:e=0,completion:s=0,total:l=0}){return(0,t.jsxs)(eO,{children:[l.toLocaleString()," (",e.toLocaleString()," prompt tokens + ",s.toLocaleString()," completion tokens)"]})}let eP=e=>!!e&&e instanceof Date,eB=e=>"object"==typeof e&&null!==e,eF=e=>!!e&&e instanceof Object&&"function"==typeof e;function eq(e,t){return void 0===t&&(t=!1),!e||t?`"${e}"`:e}function e$(e){let{field:t,value:l,data:a,lastElement:r,openBracket:n,closeBracket:i,level:o,style:d,shouldExpandNode:c,clickToExpandNode:x,outerRef:m,beforeExpandChange:u}=e,p=(0,s.useRef)(!1),[h,g]=(0,s.useState)(()=>c(o,l,t)),f=(0,s.useRef)(null);(0,s.useEffect)(()=>{p.current?g(c(o,l,t)):p.current=!0},[c]);let y=(0,s.useId)();if(0===a.length)return function(e){let{field:t,openBracket:l,closeBracket:a,lastElement:r,style:n}=e;return(0,s.createElement)("div",{className:n.basicChildStyle,role:"treeitem","aria-selected":void 0},(t||""===t)&&(0,s.createElement)("span",{className:n.label},eq(t,n.quotesForFieldNames),":"),(0,s.createElement)("span",{className:n.punctuation},l),(0,s.createElement)("span",{className:n.punctuation},a),!r&&(0,s.createElement)("span",{className:n.punctuation},","))}({field:t,openBracket:n,closeBracket:i,lastElement:r,style:d});let j=h?d.collapseIcon:d.expandIcon,b=h?d.ariaLables.collapseJson:d.ariaLables.expandJson,v=o+1,_=a.length-1,N=e=>{h!==e&&(!u||u({level:o,value:l,field:t,newExpandValue:e}))&&g(e)},w=e=>{if("ArrowRight"===e.key||"ArrowLeft"===e.key)e.preventDefault(),N("ArrowRight"===e.key);else if("ArrowUp"===e.key||"ArrowDown"===e.key){e.preventDefault();let t="ArrowUp"===e.key?-1:1;if(!m.current)return;let s=m.current.querySelectorAll("[role=button]"),l=-1;for(let e=0;e{var e;N(!h);let t=f.current;if(!t)return;let s=null==(e=m.current)?void 0:e.querySelector('[role=button][tabindex="0"]');s&&(s.tabIndex=-1),t.tabIndex=0,t.focus()};return(0,s.createElement)("div",{className:d.basicChildStyle,role:"treeitem","aria-expanded":h,"aria-selected":void 0},(0,s.createElement)("span",{className:j,onClick:S,onKeyDown:w,role:"button","aria-label":b,"aria-expanded":h,"aria-controls":h?y:void 0,ref:f,tabIndex:0===o?0:-1}),(t||""===t)&&(x?(0,s.createElement)("span",{className:d.clickableLabel,onClick:S,onKeyDown:w},eq(t,d.quotesForFieldNames),":"):(0,s.createElement)("span",{className:d.label},eq(t,d.quotesForFieldNames),":")),(0,s.createElement)("span",{className:d.punctuation},n),h?(0,s.createElement)("ul",{id:y,role:"group",className:d.childFieldsContainer},a.map((e,t)=>(0,s.createElement)(eV,{key:e[0]||t,field:e[0],value:e[1],style:d,lastElement:t===_,level:v,shouldExpandNode:c,clickToExpandNode:x,beforeExpandChange:u,outerRef:m}))):(0,s.createElement)("span",{className:d.collapsedContent,onClick:S,onKeyDown:w}),(0,s.createElement)("span",{className:d.punctuation},i),!r&&(0,s.createElement)("span",{className:d.punctuation},","))}function eH(e){let{field:t,value:s,style:l,lastElement:a,shouldExpandNode:r,clickToExpandNode:n,level:i,outerRef:o,beforeExpandChange:d}=e;return e$({field:t,value:s,lastElement:a||!1,level:i,openBracket:"{",closeBracket:"}",style:l,shouldExpandNode:r,clickToExpandNode:n,data:Object.keys(s).map(e=>[e,s[e]]),outerRef:o,beforeExpandChange:d})}function eK(e){let{field:t,value:s,style:l,lastElement:a,level:r,shouldExpandNode:n,clickToExpandNode:i,outerRef:o,beforeExpandChange:d}=e;return e$({field:t,value:s,lastElement:a||!1,level:r,openBracket:"[",closeBracket:"]",style:l,shouldExpandNode:n,clickToExpandNode:i,data:s.map(e=>[void 0,e]),outerRef:o,beforeExpandChange:d})}function eY(e){let t,{field:l,value:a,style:r,lastElement:n}=e,i=r.otherValue;if(null===a)t="null",i=r.nullValue;else if(void 0===a)t="undefined",i=r.undefinedValue;else if("string"==typeof a||a instanceof String){var o;o=!r.noQuotesForStringValues,t=r.stringifyStringValues?JSON.stringify(a):o?`"${a}"`:a,i=r.stringValue}else if("boolean"==typeof a||a instanceof Boolean)t=a?"true":"false",i=r.booleanValue;else if("number"==typeof a||a instanceof Number)t=a.toString(),i=r.numberValue;else"bigint"==typeof a||a instanceof BigInt?(t=`${a.toString()}n`,i=r.numberValue):t=eP(a)?a.toISOString():eF(a)?"function() { }":a.toString();return(0,s.createElement)("div",{className:r.basicChildStyle,role:"treeitem","aria-selected":void 0},(l||""===l)&&(0,s.createElement)("span",{className:r.label},eq(l,r.quotesForFieldNames),":"),(0,s.createElement)("span",{className:i},t),!n&&(0,s.createElement)("span",{className:r.punctuation},","))}function eV(e){let t=e.value;return Array.isArray(t)?(0,s.createElement)(eK,Object.assign({},e)):!eB(t)||eP(t)||eF(t)?(0,s.createElement)(eY,Object.assign({},e)):(0,s.createElement)(eH,Object.assign({},e))}let eU={container:"_2IvMF _GzYRV",basicChildStyle:"_2bkNM",childFieldsContainer:"_1BXBN",label:"_1MGIk",clickableLabel:"_2YKJg _1MGIk _1MFti",nullValue:"_2T6PJ",undefinedValue:"_1Gho6",stringValue:"_vGjyY",booleanValue:"_3zQKs",numberValue:"_1bQdo",otherValue:"_1xvuR",punctuation:"_3uHL6 _3eOF8",collapseIcon:"_oLqym _f10Tu _1MFti _1LId0",expandIcon:"_2AXVT _f10Tu _1MFti _1UmXx",collapsedContent:"_2KJWg _1pNG9 _1MFti",noQuotesForStringValues:!1,quotesForFieldNames:!1,ariaLables:{collapseJson:"collapse JSON",expandJson:"expand JSON"},stringifyStringValues:!1},eW=()=>!0,eJ=e=>{let{data:t,style:l=eU,shouldExpandNode:a=eW,clickToExpandNode:r=!1,beforeExpandChange:n,compactTopLevel:i,...o}=e,d=(0,s.useRef)(null);return(0,s.createElement)("div",Object.assign({"aria-label":"JSON view"},o,{className:l.container,ref:d,role:"tree"}),i&&eB(t)?Object.entries(t).map(e=>{let[t,i]=e;return(0,s.createElement)(eV,{key:t,field:t,value:i,style:{...eU,...l},lastElement:!0,level:1,shouldExpandNode:a,clickToExpandNode:r,beforeExpandChange:n,outerRef:d})}):(0,s.createElement)(eV,{value:t,style:{...eU,...l},lastElement:!0,level:0,shouldExpandNode:a,clickToExpandNode:r,outerRef:d,beforeExpandChange:n}))},{Text:eG}=g.Typography;function eQ({data:e}){return e?(0,t.jsx)("div",{style:{maxHeight:400,overflow:"auto",background:"#fafafa",padding:12,borderRadius:4},children:(0,t.jsx)("div",{className:"[&_[role='tree']]:bg-white [&_[role='tree']]:text-slate-900",children:(0,t.jsx)(eJ,{data:e,style:eU,clickToExpandNode:!0})})}):(0,t.jsx)(eG,{type:"secondary",children:"No data"})}function eX(e){if("string"==typeof e)try{return JSON.parse(e)}catch{}return e}function eZ(e){return Array.isArray(e)?e:e?[e]:[]}function e0(e){if("string"==typeof e)try{return JSON.parse(e)}catch{}return e}var e1=e.i(366308);let{Text:e2}=g.Typography;function e5({tool:e}){let s=Object.entries(e.parameters?.properties||{}).map(([t,s])=>({key:t,name:t,type:s.type||"any",description:s.description||"-",required:e.parameters?.required?.includes(t)||!1})),l=[{title:"Parameter",dataIndex:"name",key:"name",render:(e,s)=>(0,t.jsxs)(e2,{code:!0,children:[e,s.required&&(0,t.jsx)(e2,{type:"danger",children:"*"})]})},{title:"Type",dataIndex:"type",key:"type",render:e=>(0,t.jsx)(e2,{code:!0,style:{color:"#1890ff"},children:e})},{title:"Description",dataIndex:"description",key:"description",render:e=>(0,t.jsx)(e2,{type:"secondary",children:e})}];return(0,t.jsxs)("div",{children:[e.description&&(0,t.jsx)("div",{style:{marginBottom:16},children:(0,t.jsx)(e2,{style:{lineHeight:1.6,whiteSpace:"pre-wrap"},children:e.description})}),s.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)(e2,{type:"secondary",style:{fontSize:12,display:"block",marginBottom:8},children:"Parameters"}),(0,t.jsx)(e_.Table,{dataSource:s,columns:l,pagination:!1,size:"small",bordered:!0})]}),e.called&&e.callData&&(0,t.jsxs)("div",{style:{marginTop:16},children:[(0,t.jsx)(e2,{type:"secondary",style:{fontSize:12,display:"block",marginBottom:8},children:"Called With"}),(0,t.jsx)("div",{style:{background:"#f6ffed",border:"1px solid #b7eb8f",borderRadius:4,padding:12},children:(0,t.jsx)("pre",{style:{margin:0,fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:JSON.stringify(e.callData.arguments,null,2)})})]})]})}function e4({tool:e}){let s={type:"function",function:{name:e.name,description:e.description,parameters:e.parameters}};return(0,t.jsx)("pre",{style:{margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:12,background:"#fafafa",padding:12,borderRadius:4,maxHeight:300,overflow:"auto"},children:JSON.stringify(s,null,2)})}let{Text:e6}=g.Typography;function e3({tool:e}){let[l,a]=(0,s.useState)("formatted");return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:12},children:[(0,t.jsx)(e6,{type:"secondary",style:{fontSize:12},children:"Description"}),(0,t.jsxs)(P.Radio.Group,{size:"small",value:l,onChange:e=>a(e.target.value),children:[(0,t.jsx)(P.Radio.Button,{value:"formatted",children:"Formatted"}),(0,t.jsx)(P.Radio.Button,{value:"json",children:"JSON"})]})]}),"formatted"===l?(0,t.jsx)(e5,{tool:e}):(0,t.jsx)(e4,{tool:e})]})}let{Text:e8}=g.Typography;function e7({tool:e}){let[l,a]=(0,s.useState)(!1);return(0,t.jsxs)("div",{style:{border:"1px solid #f0f0f0",borderRadius:8,overflow:"hidden"},children:[(0,t.jsxs)("div",{onClick:()=>a(!l),style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 16px",cursor:"pointer",background:l?"#fafafa":"#fff",transition:"background 0.2s"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,t.jsx)(e1.ToolOutlined,{style:{color:"#8c8c8c",fontSize:14}}),(0,t.jsxs)(e8,{style:{fontSize:14},children:[e.index,". ",e.name]})]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,t.jsx)(p.Tag,{color:e.called?"blue":"default",children:e.called?"called":"not called"}),l?(0,t.jsx)(j.DownOutlined,{style:{fontSize:12,color:"#8c8c8c"}}):(0,t.jsx)(o.RightOutlined,{style:{fontSize:12,color:"#8c8c8c"}})]})]}),l&&(0,t.jsx)("div",{style:{padding:"16px",borderTop:"1px solid #f0f0f0",background:"#fff"},children:(0,t.jsx)(e3,{tool:e})})]})}let{Text:e9}=g.Typography;function te({log:e}){let s=function(e){let t,s=!(t=e0(e.proxy_server_request||e.messages))||Array.isArray(t)?[]:"object"==typeof t&&t.tools&&Array.isArray(t.tools)?t.tools:[];if(0===s.length)return[];let l=function(e){let t=e0(e.response);if(!t||"object"!=typeof t)return[];let s=t.choices;if(Array.isArray(s)&&s.length>0){let e=s[0].message;if(e&&Array.isArray(e.tool_calls))return e.tool_calls}if(Array.isArray(t.content)){let e=t.content.filter(e=>"tool_use"===e.type);if(e.length>0)return e.map(e=>({id:e.id,type:"function",function:{name:e.name,arguments:JSON.stringify(e.input||{})}}))}if(Array.isArray(t.tool_calls))return t.tool_calls;if(Array.isArray(t.results)){let e=[];for(let s of t.results)if("response.done"===s.type&&s.response?.output)for(let t of s.response.output)"function_call"===t.type&&e.push({id:t.call_id||"",type:"function",function:{name:t.name||"",arguments:t.arguments||"{}"}});if(e.length>0)return e}return[]}(e),a=new Set(l.map(e=>e.function?.name).filter(Boolean)),r=new Map;return l.forEach(e=>{let t=e.function?.name;t&&r.set(t,{id:e.id,name:t,arguments:function(e){try{return JSON.parse(e)}catch{return{}}}(e.function?.arguments||"{}")})}),s.map((e,t)=>{let s=e.function?.name||e.name||`Tool ${t+1}`;return{index:t+1,name:s,description:e.function?.description||e.description||"",parameters:e.function?.parameters||e.input_schema||{},called:a.has(s),callData:r.get(s)}})}(e);if(0===s.length)return null;let l=s.length,a=s.filter(e=>e.called).length,r=s.slice(0,2).map(e=>e.name).join(", "),n=s.length>2;return(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(R.Collapse,{expandIconPosition:"start",items:[{key:"1",label:(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,flexWrap:"wrap"},children:[(0,t.jsx)("h3",{className:"text-lg font-medium text-gray-900",children:"Tools"}),(0,t.jsxs)(e9,{type:"secondary",style:{fontSize:14},children:[l," provided, ",a," called"]}),(0,t.jsxs)(e9,{type:"secondary",style:{fontSize:14},children:["• ",r,n&&"..."]})]}),children:(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:s.map(e=>(0,t.jsx)(e7,{tool:e},e.name))})}]})})}let tt=e=>{if(!e)return{};if("string"==typeof e)try{return JSON.parse(e)}catch{return{raw:e}}return e};var ts=e.i(888259),tl=e.i(264843),y=y;let{Text:ta}=g.Typography;function tr({type:e,tokens:s,cost:a,onCopy:r,isCollapsed:i,onToggleCollapse:o,turnCount:d}){return(0,t.jsxs)("div",{onClick:o,style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 16px",borderBottom:i?"none":"1px solid #f0f0f0",background:"#fafafa",cursor:o?"pointer":"default",transition:"background 0.15s ease"},onMouseEnter:e=>{o&&(e.currentTarget.style.background="#f5f5f5")},onMouseLeave:e=>{e.currentTarget.style.background="#fafafa"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:16},children:[o&&(0,t.jsx)("div",{style:{display:"flex",alignItems:"center"},children:i?(0,t.jsx)(j.DownOutlined,{style:{fontSize:10,color:"#8c8c8c"}}):(0,t.jsx)(y.default,{style:{fontSize:10,color:"#8c8c8c"}})}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:["input"===e?(0,t.jsx)(tl.MessageOutlined,{style:{color:"#8c8c8c",fontSize:14}}):(0,t.jsx)("span",{style:{fontSize:14,filter:"grayscale(1)",opacity:.6},children:"✨"}),(0,t.jsx)(ta,{style:{fontWeight:500,fontSize:14},children:"input"===e?"Input":"Output"})]}),void 0!==s&&(0,t.jsxs)(ta,{type:"secondary",style:{fontSize:12},children:["Tokens: ",s.toLocaleString()]}),void 0!==a&&(0,t.jsxs)(ta,{type:"secondary",style:{fontSize:12},children:["Cost: $",a.toFixed(6)]}),void 0!==d&&d>0&&(0,t.jsxs)(ta,{type:"secondary",style:{fontSize:12},children:["Turns: ",d]})]}),(0,t.jsx)(h.Tooltip,{title:"Copy",children:(0,t.jsx)(l.Button,{type:"text",size:"small",icon:(0,t.jsx)(n.CopyOutlined,{}),onClick:e=>{e.stopPropagation(),r()}})})]})}let{Text:tn}=g.Typography;function ti({label:e,content:l,defaultExpanded:a=!1}){let[r,n]=(0,s.useState)(a),[i,d]=(0,s.useState)(!1),c=l?.length||0;return l&&0!==c?(0,t.jsxs)("div",{style:{marginBottom:8},children:[(0,t.jsxs)("div",{onClick:()=>n(!r),onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),style:{display:"flex",alignItems:"center",gap:6,cursor:"pointer",padding:"4px 0",borderRadius:4,background:i?"#f5f5f5":"transparent",transition:"background 0.15s ease",marginBottom:4*!!r},children:[r?(0,t.jsx)(j.DownOutlined,{style:{fontSize:10,color:"#8c8c8c"}}):(0,t.jsx)(o.RightOutlined,{style:{fontSize:10,color:"#8c8c8c"}}),(0,t.jsx)(tn,{type:"secondary",style:{fontSize:10,letterSpacing:"0.5px",textTransform:"uppercase"},children:e}),(0,t.jsxs)(tn,{type:"secondary",style:{fontSize:10},children:["(",c.toLocaleString()," chars)"]})]}),(0,t.jsx)("div",{style:{maxHeight:r?"2000px":"0px",overflow:"hidden",transition:"max-height 0.2s ease-out, opacity 0.2s ease-out",opacity:+!!r},children:(0,t.jsx)("div",{style:{paddingLeft:16,fontSize:13,lineHeight:1.7,color:"#262626",borderLeft:"1px solid #f0f0f0",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:l})})]}):null}let{Text:to}=g.Typography;function td({tool:e,compact:s=!1}){return(0,t.jsxs)("div",{style:{background:"#f8f9fa",border:"1px solid #e9ecef",borderRadius:6,padding:s?"6px 10px":"10px 14px",marginTop:8,fontFamily:"monospace",fontSize:12,position:"relative"},children:[(0,t.jsx)("div",{style:{position:"absolute",top:-8,left:12,background:"#fff",padding:"0 6px",fontSize:10,color:"#8c8c8c",border:"1px solid #e9ecef",borderRadius:3},children:"function"}),(0,t.jsx)(to,{strong:!0,style:{fontSize:13,display:"block",marginBottom:6},children:e.name}),Object.keys(e.arguments).length>0&&(0,t.jsx)("div",{children:Object.entries(e.arguments).map(([e,s])=>(0,t.jsxs)("div",{style:{marginBottom:2},children:[(0,t.jsxs)(to,{type:"secondary",style:{fontSize:12},children:[e,":"," "]}),(0,t.jsx)(to,{style:{fontSize:12},children:JSON.stringify(s)})]},e))})]})}let{Text:tc}=g.Typography;function tx({label:e,content:s,toolCalls:l,isCompact:a=!1}){let r=s&&"null"!==s&&s.length>0?s:null,n=l&&l.length>0;return r||n?(0,t.jsxs)("div",{style:{marginBottom:8*!!a},children:[(0,t.jsx)(tc,{type:"secondary",style:{fontSize:10,letterSpacing:"0.5px",textTransform:"uppercase",display:"block",marginBottom:3},children:e}),r&&(0,t.jsx)("div",{style:{fontSize:13,lineHeight:1.7,color:"#262626",whiteSpace:"pre-wrap",wordBreak:"break-word",marginBottom:6*!!n},children:r}),n&&(0,t.jsx)("div",{children:l.map((e,s)=>(0,t.jsx)(td,{tool:e,compact:a},e.id||s))})]}):null}let{Text:tm}=g.Typography;function tu({messages:e}){let[l,a]=(0,s.useState)(!1),[r,n]=(0,s.useState)(!1);return 0===e.length?null:(0,t.jsxs)("div",{style:{marginBottom:8},children:[(0,t.jsxs)("div",{onClick:()=>a(!l),onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),style:{display:"flex",alignItems:"center",gap:6,cursor:"pointer",padding:"4px 0",borderRadius:4,background:r?"#f5f5f5":"transparent",transition:"background 0.15s ease",marginBottom:4*!!l},children:[l?(0,t.jsx)(j.DownOutlined,{style:{fontSize:10,color:"#8c8c8c"}}):(0,t.jsx)(o.RightOutlined,{style:{fontSize:10,color:"#8c8c8c"}}),(0,t.jsxs)(tm,{type:"secondary",style:{fontSize:10,letterSpacing:"0.5px",textTransform:"uppercase"},children:["HISTORY (",e.length," message",1!==e.length?"s":"",")"]})]}),(0,t.jsx)("div",{style:{maxHeight:l?"2000px":"0px",overflow:"hidden",transition:"max-height 0.2s ease-out, opacity 0.2s ease-out",opacity:+!!l},children:(0,t.jsx)("div",{style:{paddingLeft:16,borderLeft:"1px solid #f0f0f0"},children:e.map((e,s)=>(0,t.jsx)(tx,{label:e.role.toUpperCase(),content:e.content,toolCalls:e.toolCalls,isCompact:!0},s))})})]})}function tp({messages:e,promptTokens:l,inputCost:a}){let[r,n]=(0,s.useState)(!1);if(0===e.length)return null;let i=e.find(e=>"system"===e.role),o=e.filter(e=>"system"!==e.role),d=o.length>0?o[o.length-1]:null,c=o.slice(0,-1);return(0,t.jsxs)("div",{style:{border:"1px solid #f0f0f0",borderRadius:6,marginBottom:8,overflow:"hidden"},children:[(0,t.jsx)(tr,{type:"input",tokens:l,cost:a,onCopy:()=>{let e=d?.content||"";navigator.clipboard.writeText(e),ts.default.success("Input copied")},isCollapsed:r,onToggleCollapse:()=>n(!r)}),(0,t.jsx)("div",{style:{maxHeight:r?"0px":"10000px",overflow:"hidden",transition:"max-height 0.3s ease-out, opacity 0.3s ease-out",opacity:+!r},children:(0,t.jsxs)("div",{style:{padding:"12px 16px"},children:[i&&(0,t.jsx)(ti,{label:"SYSTEM",content:i.content,defaultExpanded:!!(i.content&&i.content.length<200)}),c.length>0&&(0,t.jsx)(tu,{messages:c}),d&&(0,t.jsx)(tx,{label:d.role.toUpperCase(),content:d.content,toolCalls:d.toolCalls})]})})]})}let{Text:th}=g.Typography;function tg({message:e,completionTokens:l,outputCost:a}){let[r,n]=(0,s.useState)(!1),i=()=>{if(!e)return;let t=e.content||"";navigator.clipboard.writeText(t),ts.default.success("Output copied")};return e?(0,t.jsxs)("div",{style:{border:"1px solid #f0f0f0",borderRadius:6,overflow:"hidden"},children:[(0,t.jsx)(tr,{type:"output",tokens:l,cost:a,onCopy:i,isCollapsed:r,onToggleCollapse:()=>n(!r)}),(0,t.jsx)("div",{style:{maxHeight:r?"0px":"10000px",overflow:"hidden",transition:"max-height 0.3s ease-out, opacity 0.3s ease-out",opacity:+!r},children:(0,t.jsx)("div",{style:{padding:"12px 16px"},children:(0,t.jsx)(tx,{label:"ASSISTANT",content:e.content,toolCalls:e.toolCalls})})})]}):(0,t.jsxs)("div",{style:{border:"1px solid #f0f0f0",borderRadius:6,overflow:"hidden"},children:[(0,t.jsx)(tr,{type:"output",tokens:l,cost:a,onCopy:i,isCollapsed:r,onToggleCollapse:()=>n(!r)}),(0,t.jsx)("div",{style:{maxHeight:r?"0px":"10000px",overflow:"hidden",transition:"max-height 0.3s ease-out, opacity 0.3s ease-out",opacity:+!r},children:(0,t.jsx)("div",{style:{padding:"12px 16px"},children:(0,t.jsx)(th,{type:"secondary",style:{fontSize:13,fontStyle:"italic"},children:"No response data available"})})})]})}var tf=e.i(782273),ty=e.i(313603),tj=e.i(793916),y=y;let{Text:tb}=g.Typography;function tv({response:e,metrics:s}){let l=e?.results||[],a=e?.usage,r=l.find(e=>"session.created"===e.type||"session.updated"===e.type),n=l.filter(e=>"response.done"===e.type);return(0,t.jsxs)("div",{children:[r?.session&&(0,t.jsx)(t_,{session:r.session,turnCount:n.length}),n.length>0&&(0,t.jsx)(tN,{responses:n.map(e=>e.response).filter(Boolean),totalUsage:a,metrics:s}),!r&&0===n.length&&(0,t.jsx)("div",{style:{border:"1px solid #f0f0f0",borderRadius:6,padding:"16px",color:"#8c8c8c",fontStyle:"italic",fontSize:13},children:"No recognized realtime events found"})]})}function t_({session:e,turnCount:l}){let[a,r]=(0,s.useState)(!0);return(0,t.jsxs)("div",{style:{border:"1px solid #f0f0f0",borderRadius:6,marginBottom:8,overflow:"hidden"},children:[(0,t.jsx)("div",{onClick:()=>r(!a),style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 16px",borderBottom:a?"none":"1px solid #f0f0f0",background:"#fafafa",cursor:"pointer",transition:"background 0.15s ease"},onMouseEnter:e=>{e.currentTarget.style.background="#f5f5f5"},onMouseLeave:e=>{e.currentTarget.style.background="#fafafa"},children:(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:16},children:[(0,t.jsx)("div",{style:{display:"flex",alignItems:"center"},children:a?(0,t.jsx)(j.DownOutlined,{style:{fontSize:10,color:"#8c8c8c"}}):(0,t.jsx)(y.default,{style:{fontSize:10,color:"#8c8c8c"}})}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,t.jsx)(ty.SettingOutlined,{style:{color:"#8c8c8c",fontSize:14}}),(0,t.jsx)(tb,{style:{fontWeight:500,fontSize:14},children:"Session"})]}),(0,t.jsx)(tb,{type:"secondary",style:{fontSize:12},children:e.model}),l>0&&(0,t.jsxs)(p.Tag,{color:"purple",style:{margin:0,fontWeight:500},children:[l," ",1===l?"turn":"turns"]}),e.voice&&(0,t.jsxs)(p.Tag,{color:"blue",style:{margin:0},children:[(0,t.jsx)(tf.SoundOutlined,{})," ",e.voice]}),e.modalities&&(0,t.jsx)("div",{style:{display:"flex",gap:4},children:e.modalities.map(e=>(0,t.jsxs)(p.Tag,{style:{margin:0},children:["audio"===e?(0,t.jsx)(tj.AudioOutlined,{}):(0,t.jsx)(tl.MessageOutlined,{})," ",e]},e))})]})}),(0,t.jsx)("div",{style:{maxHeight:a?"0px":"10000px",overflow:"hidden",transition:"max-height 0.3s ease-out, opacity 0.3s ease-out",opacity:+!a},children:(0,t.jsxs)("div",{style:{padding:"12px 16px"},children:[(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"8px 24px",fontSize:13},children:[(0,t.jsx)(tC,{label:"Model",value:e.model}),(0,t.jsx)(tC,{label:"Voice",value:e.voice}),(0,t.jsx)(tC,{label:"Temperature",value:e.temperature}),(0,t.jsx)(tC,{label:"Max Output Tokens",value:e.max_response_output_tokens}),(0,t.jsx)(tC,{label:"Input Audio Format",value:e.input_audio_format}),(0,t.jsx)(tC,{label:"Output Audio Format",value:e.output_audio_format}),e.turn_detection&&(0,t.jsx)(tC,{label:"Turn Detection",value:e.turn_detection.type}),e.tools&&e.tools.length>0&&(0,t.jsx)(tC,{label:"Tools",value:`${e.tools.length} tool(s)`})]}),e.instructions&&(0,t.jsxs)("div",{style:{marginTop:12},children:[(0,t.jsx)(tb,{type:"secondary",style:{fontSize:10,letterSpacing:"0.5px",textTransform:"uppercase",display:"block",marginBottom:4},children:"Instructions"}),(0,t.jsx)("div",{style:{fontSize:12,lineHeight:1.6,color:"#595959",background:"#fafafa",padding:"8px 12px",borderRadius:4,border:"1px solid #f0f0f0",whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:120,overflowY:"auto"},children:e.instructions})]})]})})]})}function tN({responses:e,totalUsage:l,metrics:a}){let[r,n]=(0,s.useState)(!1),i=l?.total_tokens,o=e.length;return(0,t.jsxs)("div",{style:{border:"1px solid #f0f0f0",borderRadius:6,overflow:"hidden"},children:[(0,t.jsx)(tr,{type:"output",tokens:a?.completion_tokens??i,cost:a?.output_cost,onCopy:()=>{let t=e.flatMap(e=>(e.output||[]).flatMap(e=>(e.content||[]).map(t=>`${e.role}: ${t.transcript||t.text||""}`))).join("\n");navigator.clipboard.writeText(t)},isCollapsed:r,onToggleCollapse:()=>n(!r),turnCount:o}),(0,t.jsx)("div",{style:{maxHeight:r?"0px":"10000px",overflow:"hidden",transition:"max-height 0.3s ease-out, opacity 0.3s ease-out",opacity:+!r},children:(0,t.jsx)("div",{style:{padding:"12px 16px"},children:e.map((e,s)=>(0,t.jsx)(tw,{response:e,index:s},e.id||s))})})]})}function tw({response:e,index:s}){let l=e.output||[],a=e.usage;return(0,t.jsxs)("div",{style:{marginBottom:12,paddingBottom:12,borderBottom:"1px solid #f5f5f5"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[(0,t.jsx)(p.Tag,{color:"completed"===e.status?"green":"orange",style:{margin:0},children:e.status||"unknown"}),a&&(0,t.jsxs)(tb,{type:"secondary",style:{fontSize:11},children:[a.input_tokens??0," in / ",a.output_tokens??0," out tokens"]}),e.conversation_id&&(0,t.jsx)(h.Tooltip,{title:e.conversation_id,children:(0,t.jsxs)(tb,{type:"secondary",style:{fontSize:11,cursor:"help"},children:["conv: ",e.conversation_id.slice(0,12),"..."]})})]}),l.map((e,s)=>(0,t.jsx)(tS,{output:e},e.id||s)),a?.input_token_details&&(0,t.jsx)(tk,{label:"Input",details:a.input_token_details}),a?.output_token_details&&(0,t.jsx)(tk,{label:"Output",details:a.output_token_details})]})}function tS({output:e}){let s=e.content||[];return s.some(e=>e.transcript||e.text)?(0,t.jsxs)("div",{style:{marginBottom:8},children:[(0,t.jsx)(tb,{type:"secondary",style:{fontSize:10,letterSpacing:"0.5px",textTransform:"uppercase",display:"block",marginBottom:3},children:e.role?.toUpperCase()||"ASSISTANT"}),s.map((e,s)=>{let l=e.transcript||e.text;return l?(0,t.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8,marginBottom:4},children:["audio"===e.type&&(0,t.jsx)(tj.AudioOutlined,{style:{color:"#8c8c8c",fontSize:12,marginTop:3,flexShrink:0}}),"text"===e.type&&(0,t.jsx)(tl.MessageOutlined,{style:{color:"#8c8c8c",fontSize:12,marginTop:3,flexShrink:0}}),(0,t.jsx)("div",{style:{fontSize:13,lineHeight:1.7,color:"#262626",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:l})]},s):null})]}):null}function tk({label:e,details:s}){let l=Object.entries(s).filter(([,e])=>"number"==typeof e||"object"==typeof e&&null!==e);return 0===l.length?null:(0,t.jsxs)("div",{style:{marginTop:4},children:[(0,t.jsxs)(tb,{type:"secondary",style:{fontSize:10,letterSpacing:"0.5px",textTransform:"uppercase"},children:[e," Token Breakdown"]}),(0,t.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,marginTop:4},children:l.map(([e,s])=>"number"==typeof s?(0,t.jsxs)(p.Tag,{style:{margin:0},children:[e.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase()),": ",s.toLocaleString()]},e):null)})]})}function tC({label:e,value:s}){return null==s?null:(0,t.jsxs)("div",{children:[(0,t.jsx)(tb,{type:"secondary",style:{fontSize:11},children:e}),(0,t.jsx)("div",{style:{fontSize:13,color:"#262626"},children:String(s)})]})}function tT({request:e,response:s,metrics:l}){let a,r,n;if(s&&s.results&&Array.isArray(s.results)&&0!==s.results.length&&s.results.some(e=>"session.created"===e.type||"session.updated"===e.type||"response.done"===e.type))return(0,t.jsx)(tv,{response:s,metrics:l});let{requestMessages:i,responseMessage:o}=(a=[],e?.messages&&Array.isArray(e.messages)&&e.messages.forEach(e=>{let t;a.push({role:e.role||"user",content:"string"==typeof(t=e.content)?t:Array.isArray(t)?t.map(e=>"string"==typeof e?e:"text"===e.type?e.text:"image_url"===e.type?"[Image]":JSON.stringify(e)).join("\n"):JSON.stringify(t),toolCallId:e.tool_call_id})}),r=null,(n=s?.choices?.[0]?.message)&&(r={role:n.role||"assistant",content:n.content||"",toolCalls:(e=>{if(e&&Array.isArray(e))return e.map(e=>({id:e.id||"",name:e.function?.name||"unknown",arguments:tt(e.function?.arguments)}))})(n.tool_calls)}),{requestMessages:a,responseMessage:r});return(0,t.jsxs)("div",{children:[(0,t.jsx)(tp,{messages:i,promptTokens:l?.prompt_tokens,inputCost:l?.input_cost}),(0,t.jsx)(tg,{message:o,completionTokens:l?.completion_tokens,outputCost:l?.output_cost})]})}let{Text:tL}=g.Typography;function tM({logEntry:e,isLoadingDetails:s=!1,accessToken:l}){var a,r;let n=e.metadata||{},i="failure"===n.status,o=i?n.error_information:null,d=!!(a=e.messages)&&(Array.isArray(a)?a.length>0:"object"==typeof a&&Object.keys(a).length>0),c=!!(r=e.response)&&Object.keys(eX(r)).length>0,x=!d&&!c&&!i&&!s,m=n?.guardrail_information,u=eZ(m),p=u.length>0,h=u.reduce((e,t)=>{let s=t?.masked_entity_count;return s?e+Object.values(s).reduce((e,t)=>"number"==typeof t?e+t:e,0):e},0),g=0===u.length?"-":1===u.length?u[0]?.guardrail_name??"-":`${u.length} guardrails`,f=n?.eval_information,y=n.vector_store_request_metadata&&Array.isArray(n.vector_store_request_metadata)&&n.vector_store_request_metadata.length>0;return(0,t.jsxs)("div",{style:{padding:`${_} ${_} 0`},children:[i&&o&&(0,t.jsx)(O.Alert,{type:"error",showIcon:!0,message:"Request Failed",description:(0,t.jsx)(tD,{errorInfo:o}),className:"mb-6"}),e.request_tags&&Object.keys(e.request_tags).length>0&&(0,t.jsx)(tE,{tags:e.request_tags}),(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(z.Card,{title:"Request Details",size:"small",bordered:!1,style:{marginBottom:0},children:(0,t.jsxs)(A.Descriptions,{column:2,size:"small",children:[(0,t.jsx)(A.Descriptions.Item,{label:"Model",children:e.model}),(0,t.jsx)(A.Descriptions.Item,{label:"Provider",children:e.custom_llm_provider||"-"}),(0,t.jsx)(A.Descriptions.Item,{label:"Call Type",children:e.call_type}),(0,t.jsx)(A.Descriptions.Item,{label:"Model ID",children:(0,t.jsx)(eI,{value:e.model_id})}),(0,t.jsx)(A.Descriptions.Item,{label:"API Base",children:(0,t.jsx)(eI,{value:e.api_base,maxWidth:200})}),e.requester_ip_address&&(0,t.jsx)(A.Descriptions.Item,{label:"IP Address",children:e.requester_ip_address}),p&&(0,t.jsx)(A.Descriptions.Item,{label:"Guardrail",children:(0,t.jsx)(tA,{label:g,maskedCount:h})})]})})}),(0,t.jsx)(tz,{logEntry:e,metadata:n}),(0,t.jsx)(eD,{costBreakdown:n?.cost_breakdown,totalSpend:e.spend??0,promptTokens:e.prompt_tokens,completionTokens:e.completion_tokens,cacheHit:e.cache_hit,rawInputTokens:n?.additional_usage_values?.prompt_tokens_details?.text_tokens,cacheReadTokens:n?.additional_usage_values?.cache_read_input_tokens,cacheCreationTokens:n?.additional_usage_values?.cache_creation_input_tokens}),(0,t.jsx)(te,{log:e}),x&&(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsx)(eE,{show:x})}),s?(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6 p-8 text-center",children:[(0,t.jsx)(B.Spin,{size:"default"}),(0,t.jsx)("div",{style:{marginTop:8,color:"#999"},children:"Loading request & response data..."})]}):(0,t.jsx)(tI,{hasResponse:c,hasError:i,getRawRequest:()=>eX(e.proxy_server_request||e.messages),getFormattedResponse:()=>i&&o?{error:{message:o.error_message||"An error occurred",type:o.error_class||"error",code:o.error_code||"unknown",param:null}}:eX(e.response),logEntry:e}),p&&(0,t.jsx)("div",{id:"guardrail-section",children:(0,t.jsx)(ev,{data:m,accessToken:l??null,logEntry:{request_id:e.request_id,user:e.user,model:e.model,startTime:e.startTime,metadata:e.metadata}})}),null!=f&&(0,t.jsx)(eC,{data:f}),y&&(0,t.jsx)(eA,{data:n.vector_store_request_metadata}),e.metadata&&Object.keys(e.metadata).length>0&&(0,t.jsx)(tR,{metadata:e.metadata}),(0,t.jsx)("div",{style:{height:_}})]})}function tD({errorInfo:e}){return(0,t.jsxs)("div",{children:[e.error_code&&(0,t.jsxs)("div",{children:[(0,t.jsx)(tL,{strong:!0,children:"Error Code:"})," ",e.error_code]}),e.error_message&&(0,t.jsxs)("div",{children:[(0,t.jsx)(tL,{strong:!0,children:"Message:"})," ",e.error_message]})]})}function tE({tags:e}){return(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden p-4 mb-6",children:[(0,t.jsx)(tL,{strong:!0,style:{display:"block",marginBottom:8,fontSize:16},children:"Tags"}),(0,t.jsx)(u.Space,{size:8,wrap:!0,children:Object.entries(e).map(([e,s])=>(0,t.jsxs)(p.Tag,{children:[e,": ",String(s)]},e))})]})}function tA({label:e,maskedCount:s}){return(0,t.jsxs)(u.Space,{size:8,children:[(0,t.jsx)("a",{onClick:()=>{let e=document.getElementById("guardrail-section");e&&e.scrollIntoView({behavior:"smooth"})},style:{cursor:"pointer"},children:e}),s>0&&(0,t.jsxs)(p.Tag,{color:"blue",children:[s," masked"]})]})}function tz({logEntry:e,metadata:s}){let l=e.completionStartTime,a=l&&l!==e.endTime?new Date(l).getTime()-new Date(e.startTime).getTime():null,r=e.cache_hit||s?.additional_usage_values?.cache_read_input_tokens&&s.additional_usage_values.cache_read_input_tokens>0,n=String(e.cache_hit??"None"),i="true"===n.toLowerCase()?"green":"false"===n.toLowerCase()?"red":"default",o=function(e){let t=e?.additional_usage_values?.prompt_tokens_details?.text_tokens??e?.usage_object?.prompt_tokens_details?.text_tokens;if(null==t)return;let s=Number(t);return Number.isFinite(s)?s:void 0}(s),d="anthropic_messages"===e.call_type&&void 0!==o;return(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(z.Card,{title:"Metrics",size:"small",style:{marginBottom:0},children:(0,t.jsxs)(A.Descriptions,{column:2,size:"small",children:[d?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(A.Descriptions.Item,{label:"Input Tokens",children:(0,F.formatNumberWithCommas)(o)}),(0,t.jsx)(A.Descriptions.Item,{label:"Output Tokens",children:(0,F.formatNumberWithCommas)(e.completion_tokens)})]}):(0,t.jsx)(A.Descriptions.Item,{label:"Tokens",children:(0,t.jsx)(eR,{prompt:e.prompt_tokens,completion:e.completion_tokens,total:e.total_tokens})}),(0,t.jsxs)(A.Descriptions.Item,{label:"Cost",children:["$",(0,F.formatNumberWithCommas)(e.spend||0,8)]}),(0,t.jsxs)(A.Descriptions.Item,{label:"Duration",children:[null!=e.request_duration_ms?(e.request_duration_ms/1e3).toFixed(3):"-"," s"]}),null!=a&&a>0&&(0,t.jsxs)(A.Descriptions.Item,{label:"Time to First Token",children:[(a/1e3).toFixed(3)," s"]}),r&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(A.Descriptions.Item,{label:"Cache Hit",children:(0,t.jsx)(p.Tag,{color:i,children:n})}),s?.additional_usage_values?.cache_read_input_tokens>0&&(0,t.jsx)(A.Descriptions.Item,{label:"Cache Read Tokens",children:(0,F.formatNumberWithCommas)(s.additional_usage_values.cache_read_input_tokens)}),s?.additional_usage_values?.cache_creation_input_tokens>0&&(0,t.jsx)(A.Descriptions.Item,{label:"Cache Creation Tokens",children:(0,F.formatNumberWithCommas)(s.additional_usage_values.cache_creation_input_tokens)})]}),s?.litellm_overhead_time_ms!==void 0&&null!==s.litellm_overhead_time_ms&&(0,t.jsxs)(A.Descriptions.Item,{label:"LiteLLM Overhead",children:[s.litellm_overhead_time_ms.toFixed(2)," ms"]}),(0,t.jsx)(A.Descriptions.Item,{label:"Retries",children:s?.attempted_retries!==void 0&&s?.attempted_retries!==null?s.attempted_retries>0?(0,t.jsxs)(t.Fragment,{children:[s.attempted_retries,void 0!==s.max_retries&&null!==s.max_retries?` / ${s.max_retries}`:""]}):(0,t.jsx)(p.Tag,{color:"green",children:"None"}):"-"}),(0,t.jsx)(A.Descriptions.Item,{label:"Start Time",children:(0,b.default)(e.startTime).format("YYYY-MM-DDTHH:mm:ss.SSS[Z]")}),(0,t.jsx)(A.Descriptions.Item,{label:"End Time",children:(0,b.default)(e.endTime).format("YYYY-MM-DDTHH:mm:ss.SSS[Z]")})]})})})}function tI({hasResponse:e,hasError:l,getRawRequest:a,getFormattedResponse:r,logEntry:n}){let[i,o]=(0,s.useState)(N),[d,c]=(0,s.useState)("pretty"),x=n.spend??0,m=n.prompt_tokens||0,u=n.completion_tokens||0,p=m+u,h=n.metadata?.cost_breakdown,g=h?.input_cost!==void 0&&h?.output_cost!==void 0,f=g?h.input_cost??0:p>0?x*m/p:0,y=g?h.output_cost??0:p>0?x*u/p:0;return(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(R.Collapse,{defaultActiveKey:["1"],expandIconPosition:"start",items:[{key:"1",label:(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%"},onClick:e=>{e.target.closest(".ant-radio-group")&&e.stopPropagation()},children:[(0,t.jsx)("h3",{className:"text-lg font-medium text-gray-900",style:{margin:0},children:"Request & Response"}),(0,t.jsxs)(P.Radio.Group,{size:"small",value:d,onChange:e=>c(e.target.value),children:[(0,t.jsx)(P.Radio.Button,{value:"pretty",children:"Pretty"}),(0,t.jsx)(P.Radio.Button,{value:"json",children:"JSON"})]})]}),children:(0,t.jsx)("div",{children:"pretty"===d?(0,t.jsx)(tT,{request:a(),response:r(),metrics:{prompt_tokens:m,completion_tokens:u,input_cost:f,output_cost:y}}):(0,t.jsx)(I.Tabs,{activeKey:i,onChange:e=>o(e),tabBarExtraContent:(0,t.jsx)(tL,{copyable:{text:JSON.stringify(i===N?a():r(),null,2),tooltips:["Copy JSON","Copied!"]},disabled:i===w&&!e&&!l}),items:[{key:N,label:"Request",children:(0,t.jsx)("div",{style:{paddingTop:16,paddingBottom:16},children:(0,t.jsx)(eQ,{data:a(),mode:"formatted"})})},{key:w,label:"Response",children:(0,t.jsx)("div",{style:{paddingTop:16,paddingBottom:16},children:e||l?(0,t.jsx)(eQ,{data:r(),mode:"formatted"}):(0,t.jsx)("div",{style:{textAlign:"center",padding:20,color:"#999",fontStyle:"italic"},children:"Response data not available"})})}]})})}]})})}function tO({guardrailEntries:e}){let s=e.every(e=>{let t=e?.guardrail_status||e?.status;return"pass"===t||"passed"===t||"success"===t});return(0,t.jsx)("div",{style:{textAlign:"left",marginBottom:12},children:(0,t.jsxs)("div",{onClick:()=>{let e=document.getElementById("guardrail-section");e&&e.scrollIntoView({behavior:"smooth"})},style:{display:"inline-flex",alignItems:"center",gap:6,padding:"4px 12px",borderRadius:16,cursor:"pointer",fontSize:13,fontWeight:500,backgroundColor:s?"#f0fdf4":"#fef2f2",color:s?"#15803d":"#b91c1c",border:`1px solid ${s?"#bbf7d0":"#fecaca"}`},children:[s?"✓":"✗"," ",e.length," guardrail",1!==e.length?"s":""," evaluated",(0,t.jsx)("span",{style:{fontSize:11,opacity:.7},children:"↓"})]})})}function tR({metadata:e}){return(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(R.Collapse,{defaultActiveKey:["1"],expandIconPosition:"start",items:[{key:"1",label:(0,t.jsx)("h3",{className:"text-lg font-medium text-gray-900",children:"Metadata"}),children:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginBottom:8},children:(0,t.jsx)(tL,{copyable:{text:JSON.stringify(e,null,2),tooltips:["Copy Metadata","Copied!"]}})}),(0,t.jsx)("pre",{style:{maxHeight:300,overflowY:"auto",fontSize:12,fontFamily:S,whiteSpace:"pre-wrap",wordBreak:"break-all",margin:0},children:JSON.stringify(e,null,2)})]})}]})})}var tP=e.i(266027),tB=e.i(135214);function tF({row:e,isSelected:s,onClick:l}){let a=m.MCP_CALL_TYPES.includes(e.call_type),r=m.AGENT_CALL_TYPES.includes(e.call_type),n=null!=e.request_duration_ms?(e.request_duration_ms/1e3).toFixed(3):e.startTime&&e.endTime?((Date.parse(e.endTime)-Date.parse(e.startTime))/1e3).toFixed(3):"-";return(0,t.jsxs)("button",{type:"button",className:`w-full text-left pl-8 pr-2 py-1 transition-colors ${s?"bg-blue-50":"hover:bg-slate-100"}`,onClick:l,children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[a?(0,t.jsx)(x.Wrench,{size:12,className:"text-slate-500 flex-shrink-0"}):r?(0,t.jsx)(d.Bot,{size:12,className:"text-slate-500 flex-shrink-0"}):(0,t.jsx)(c.Sparkles,{size:12,className:"text-slate-500 flex-shrink-0"}),(0,t.jsx)("span",{className:"text-xs font-medium text-slate-900 truncate",children:function(e,t){let s=(t||"").trim();if(m.MCP_CALL_TYPES.includes(e))return s.replace(/^mcp:\s*/i,"").split("/").pop()||s||"mcp_tool";let l=(s.split("/").pop()||s).replace(/-20\d{6}.*$/i,"").replace(/:.*$/,""),a=l.match(/claude-[a-z0-9-]+/i);return a?a[0]:l||"llm_call"}(e.call_type,e.model)})]}),(0,t.jsxs)("div",{className:"text-[10px] text-slate-500 mt-0 flex items-center gap-1.5 font-mono",children:[(0,t.jsxs)("span",{children:[n,"s"]}),e.spend?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{children:"·"}),(0,t.jsx)("span",{children:(0,F.getSpendString)(e.spend)})]}):null,e.total_tokens?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{children:"·"}),(0,t.jsxs)("span",{children:[e.total_tokens," tok"]})]}):null]})]})}e.s(["LogDetailsDrawer",0,function({open:e,onClose:d,logEntry:c,sessionId:x,accessToken:u,allLogs:p=[],onSelectLog:h,startTime:g}){let f=!!x,[y,j]=(0,s.useState)(null),[b,v]=(0,s.useState)(!1),[_,N]=(0,s.useState)(!1),{data:w=[]}=(0,tP.useQuery)({queryKey:["sessionLogs",x],queryFn:async()=>{if(!x||!u)return[];let e=await (0,Z.sessionSpendLogsCall)(u,x);return(e.data||e||[]).map(e=>({...e,request_duration_ms:e.request_duration_ms??Date.parse(e.endTime)-Date.parse(e.startTime)})).sort((e,t)=>{let s=+!!m.MCP_CALL_TYPES.includes(e.call_type),l=+!!m.MCP_CALL_TYPES.includes(t.call_type);return s!==l?s-l:new Date(e.startTime).getTime()-new Date(t.startTime).getTime()})},enabled:!!(e&&f&&x&&u)}),S=(0,s.useMemo)(()=>f?w.length?y?w.find(e=>e.request_id===y)||w[0]:c?.request_id&&w.find(e=>e.request_id===c.request_id)||w[0]:null:c,[f,c,y,w]);(0,s.useEffect)(()=>{f&&w.length&&(y&&w.some(e=>e.request_id===y)||j(c?.request_id&&w.some(e=>e.request_id===c.request_id)?c.request_id:w[0].request_id))},[f,c,y,w]),(0,s.useEffect)(()=>{e?v(!1):(f&&j(null),N(!1))},[e,f]);let{selectNextLog:k,selectPreviousLog:C}=function({isOpen:e,currentLog:t,allLogs:l,onClose:a,onSelectLog:r}){(0,s.useEffect)(()=>{let t=t=>{var s;if(!((s=t.target)instanceof HTMLInputElement||s instanceof HTMLTextAreaElement)&&e)switch(t.key){case"Escape":a();break;case"j":case"J":n();break;case"k":case"K":i()}};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e,t,l]);let n=()=>{if(!t||!l.length||!r)return;let e=l.findIndex(e=>e.request_id===t.request_id);e{if(!t||!l.length||!r)return;let e=l.findIndex(e=>e.request_id===t.request_id);e>0&&r(l[e-1])};return{selectNextLog:n,selectPreviousLog:i}}({isOpen:e,currentLog:S,allLogs:f?w:p,onClose:d,onSelectLog:e=>{f&&j(e.request_id),h?.(e)}}),L=((e,t,s)=>{let{accessToken:l}=(0,tB.default)();return(0,tP.useQuery)({queryKey:["logDetails",e,t,l],queryFn:async()=>l&&e&&t?await (0,Z.uiSpendLogDetailsCall)(l,e,t):null,enabled:s&&!!l&&!!e&&!!t,staleTime:6e5,gcTime:6e5})})(S?.request_id,g,e&&!!S?.request_id),M=L.data,D=L.isLoading,E=(0,s.useMemo)(()=>S?{...S,messages:M?.messages||S.messages,response:M?.response||S.response,proxy_server_request:M?.proxy_server_request||S.proxy_server_request}:null,[S,M]),A=S?.metadata||{},z="failure"===A.status?"Failure":"Success",I="failure"===A.status?"error":"success",O=A?.user_api_key_team_alias||"default",R=w.reduce((e,t)=>e+(t.spend||0),0),P=w.length>0?new Date(Math.min(...w.map(e=>new Date(e.startTime).getTime()))):null,B=w.length>0?new Date(Math.max(...w.map(e=>new Date(e.endTime).getTime()))):null,q=P&&B?((B.getTime()-P.getTime())/1e3).toFixed(2):"0.00",$=w.filter(e=>!m.MCP_CALL_TYPES.includes(e.call_type)&&!m.AGENT_CALL_TYPES.includes(e.call_type)).length,H=w.filter(e=>m.AGENT_CALL_TYPES.includes(e.call_type)).length,K=w.filter(e=>m.MCP_CALL_TYPES.includes(e.call_type)).length,Y=f?w:S?[S]:[],V=f?x||"":S?.request_id||"",U=V.length>14?`${V.slice(0,11)}...`:V,W=async()=>{if(V)try{await navigator.clipboard.writeText(V),N(!0),setTimeout(()=>N(!1),1200)}catch{}};return S&&E?(0,t.jsx)(a.Drawer,{title:null,placement:"right",onClose:d,open:e,width:"60%",closable:!1,mask:!0,maskClosable:!0,styles:{body:{padding:0,overflow:"hidden"},header:{display:"none"}},children:(0,t.jsxs)("div",{style:{height:"100%"},className:"flex relative",children:[b?(0,t.jsx)(l.Button,{type:"text",size:"small",icon:(0,t.jsx)(o.RightOutlined,{}),onClick:()=>v(!1),className:"absolute top-2 left-2 z-20 !bg-white !border !border-slate-200 !rounded-md","aria-label":"Expand trace sidebar"}):(0,t.jsx)(l.Button,{type:"text",size:"small",icon:(0,t.jsx)(i.LeftOutlined,{}),onClick:()=>v(!0),className:"absolute top-2 left-2 z-20 !bg-white !border !border-slate-200 !rounded-md","aria-label":"Collapse trace sidebar"}),!b&&(0,t.jsxs)("div",{className:"border-r border-slate-200 bg-slate-50 flex flex-col",style:{width:224},children:[(0,t.jsxs)("div",{className:"pl-12 pr-3 py-2 border-b border-slate-200 bg-white",children:[(0,t.jsx)("div",{className:"flex items-start justify-between gap-2",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-slate-500",children:f?"Session":"Trace"}),(0,t.jsxs)("div",{className:"font-mono text-[12px] text-slate-900 leading-tight flex items-center gap-1",children:[(0,t.jsx)("span",{className:"truncate",children:U}),(0,t.jsx)("button",{type:"button",onClick:W,className:"text-slate-400 hover:text-slate-600","aria-label":"Copy trace id",children:_?(0,t.jsx)(r.CheckOutlined,{className:"text-[11px]"}):(0,t.jsx)(n.CopyOutlined,{className:"text-[11px]"})})]})]})}),(0,t.jsxs)("div",{className:"mt-1 text-[11px] text-slate-500 font-mono",children:[Y.length," req",[f?$:Y.filter(e=>!m.MCP_CALL_TYPES.includes(e.call_type)&&!m.AGENT_CALL_TYPES.includes(e.call_type)).length,f?H:Y.filter(e=>m.AGENT_CALL_TYPES.includes(e.call_type)).length,f?K:Y.filter(e=>m.MCP_CALL_TYPES.includes(e.call_type)).length].map((e,s)=>{let l=[" LLM"," Agent"," MCP"][s];return e>0?(0,t.jsxs)("span",{children:[(0,t.jsx)("span",{className:"mx-1.5",children:"·"}),e,l]},l):null}),(0,t.jsx)("span",{className:"mx-1.5",children:"·"}),f?(0,F.getSpendString)(R):(0,F.getSpendString)(S.spend||0),f&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"mx-1.5",children:"·"}),q,"s"]})]})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto",children:[eZ(A?.guardrail_information).length>0&&(0,t.jsx)("div",{className:"px-3 pt-2",children:(0,t.jsx)(tO,{guardrailEntries:eZ(A?.guardrail_information)})}),f?(0,t.jsx)("div",{className:"py-1",children:(0,t.jsxs)("div",{className:"relative pl-2",children:[(0,t.jsx)("div",{className:"absolute left-4 top-1 bottom-1 border-l border-slate-300"}),Y.map((e,s)=>{let l=s===Y.length-1;return(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("div",{className:"absolute left-4 top-3 w-3 border-t border-slate-300"}),l&&(0,t.jsx)("div",{className:"absolute left-4 top-3 bottom-0 w-px bg-slate-50"}),(0,t.jsx)(tF,{row:e,isSelected:e.request_id===S.request_id,onClick:()=>{j(e.request_id),h?.(e)}})]},e.request_id)})]})}):(0,t.jsx)("div",{className:"py-1",children:Y.map(e=>(0,t.jsx)(tF,{row:e,isSelected:e.request_id===S.request_id,onClick:()=>h?.(e)},e.request_id))})]})]}),(0,t.jsxs)("div",{className:"flex-1 flex flex-col overflow-hidden",children:[(0,t.jsx)(T,{log:S,onClose:d,onPrevious:C,onNext:k,statusLabel:z,statusColor:I,environment:O}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,t.jsx)(tM,{logEntry:E,isLoadingDetails:D,accessToken:u??null})})]})]})}):null}],502626),e.s([],3565)},95684,e=>{"use strict";var t=e.i(165370);e.s(["Pagination",()=>t.default])},86827,e=>{"use strict";var t=e.i(843476),s=e.i(482725),l=e.i(56456);e.s(["AntDLoadingSpinner",0,function({size:e,fontSize:a}){let r=(0,t.jsx)(l.LoadingOutlined,{style:a?{fontSize:a}:void 0,spin:!0});return(0,t.jsx)(s.Spin,{indicator:r,size:e})}])},307582,e=>{"use strict";var t=e.i(843476);e.s(["TimeCell",0,({utcTime:e})=>(0,t.jsx)("span",{style:{fontFamily:"monospace",width:"180px",display:"inline-block"},children:(e=>{try{return new Date(e).toLocaleString("en-US",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!0}).replace(",","")}catch(e){return"Error converting time"}})(e)})])},93648,245767,e=>{"use strict";var t=e.i(843476),s=e.i(271645),l=e.i(560445),a=e.i(207082),r=e.i(135214),n=e.i(500330),i=e.i(871943),o=e.i(360820),d=e.i(94629),c=e.i(152990),x=e.i(682830),m=e.i(269200),u=e.i(942232),p=e.i(977572),h=e.i(427612),g=e.i(64848),f=e.i(496020),y=e.i(592968);function j({keys:e,totalCount:l,isLoading:a,isFetching:r,pageIndex:b,pageSize:v,onPageChange:_}){let[N,w]=(0,s.useState)([{id:"deleted_at",desc:!0}]),[S,k]=(0,s.useState)({pageIndex:b,pageSize:v});s.default.useEffect(()=>{k({pageIndex:b,pageSize:v})},[b,v]);let C=[{id:"token",accessorKey:"token",header:"Key ID",size:150,maxSize:250,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s,children:(0,t.jsx)("span",{className:"font-mono text-blue-500 text-xs truncate block max-w-[250px]",children:s||"-"})})}},{id:"key_alias",accessorKey:"key_alias",header:"Key Alias",size:150,maxSize:200,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s,children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block max-w-[200px]",children:s??"-"})})}},{id:"team_alias",accessorKey:"team_alias",header:"Team Alias",size:120,maxSize:180,cell:e=>{let s=e.getValue();return(0,t.jsx)("span",{className:"truncate block max-w-[180px]",children:s||"-"})}},{id:"spend",accessorKey:"spend",header:"Spend (USD)",size:100,maxSize:140,cell:e=>(0,t.jsx)("span",{className:"block max-w-[140px]",children:(0,n.formatNumberWithCommas)(e.getValue(),4)})},{id:"max_budget",accessorKey:"max_budget",header:"Budget (USD)",size:110,maxSize:150,cell:e=>{let s=e.getValue();return(0,t.jsx)("span",{className:"block max-w-[150px]",children:null===s?"Unlimited":`$${(0,n.formatNumberWithCommas)(s)}`})}},{id:"user_email",accessorKey:"user_email",header:"User Email",size:160,maxSize:250,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s,children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block max-w-[250px]",children:s??"-"})})}},{id:"user_id",accessorKey:"user_id",header:"User ID",size:120,maxSize:200,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s||void 0,children:(0,t.jsx)("span",{className:"truncate block max-w-[200px]",children:s||"-"})})}},{id:"created_at",accessorKey:"created_at",header:"Created At",size:120,maxSize:140,cell:e=>{let s=e.getValue();return(0,t.jsx)("span",{className:"block max-w-[140px]",children:s?new Date(s).toLocaleDateString():"-"})}},{id:"created_by",accessorKey:"created_by",header:"Created By",size:120,maxSize:180,cell:e=>{let s=e.row.original.created_by;return(0,t.jsx)(y.Tooltip,{title:s||void 0,children:(0,t.jsx)("span",{className:"truncate block max-w-[180px]",children:s||"-"})})}},{id:"deleted_at",accessorKey:"deleted_at",header:"Deleted At",size:120,maxSize:140,cell:e=>{let s=e.row.original.deleted_at;return(0,t.jsx)("span",{className:"block max-w-[140px]",children:s?new Date(s).toLocaleDateString():"-"})}},{id:"deleted_by",accessorKey:"deleted_by",header:"Deleted By",size:120,maxSize:180,cell:e=>{let s=e.row.original.deleted_by;return(0,t.jsx)(y.Tooltip,{title:s||void 0,children:(0,t.jsx)("span",{className:"truncate block max-w-[180px]",children:s||"-"})})}}],T=(0,c.useReactTable)({data:e,columns:C,columnResizeMode:"onChange",columnResizeDirection:"ltr",state:{sorting:N,pagination:S},onSortingChange:w,onPaginationChange:e=>{let t="function"==typeof e?e(S):e;k(t),_(t.pageIndex)},getCoreRowModel:(0,x.getCoreRowModel)(),getSortedRowModel:(0,x.getSortedRowModel)(),getPaginationRowModel:(0,x.getPaginationRowModel)(),enableSorting:!0,manualSorting:!1,manualPagination:!0,pageCount:Math.ceil(l/v)}),{pageIndex:L}=T.getState().pagination,M=L*v+1,D=Math.min((L+1)*v,l),E=`${M} - ${D}`;return(0,t.jsx)("div",{className:"w-full h-full overflow-hidden",children:(0,t.jsxs)("div",{className:"border-b py-4 flex-1 overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between w-full mb-4",children:[a||r?(0,t.jsx)("span",{className:"inline-flex text-sm text-gray-700",children:"Loading..."}):(0,t.jsxs)("span",{className:"inline-flex text-sm text-gray-700",children:["Showing ",E," of ",l," results"]}),(0,t.jsxs)("div",{className:"inline-flex items-center gap-2",children:[a||r?(0,t.jsx)("span",{className:"text-sm text-gray-700",children:"Loading..."}):(0,t.jsxs)("span",{className:"text-sm text-gray-700",children:["Page ",L+1," of ",T.getPageCount()]}),(0,t.jsx)("button",{onClick:()=>T.previousPage(),disabled:a||r||!T.getCanPreviousPage(),className:"px-3 py-1 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Previous"}),(0,t.jsx)("button",{onClick:()=>T.nextPage(),disabled:a||r||!T.getCanNextPage(),className:"px-3 py-1 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Next"})]})]}),(0,t.jsx)("div",{className:"h-[75vh] overflow-auto",children:(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(m.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",style:{width:T.getCenterTotalSize()},children:[(0,t.jsx)(h.TableHead,{children:T.getHeaderGroups().map(e=>(0,t.jsx)(f.TableRow,{children:e.headers.map(e=>(0,t.jsx)(g.TableHeaderCell,{"data-header-id":e.id,className:"py-1 h-8 relative hover:bg-gray-50",style:{width:e.getSize(),maxWidth:e.column.columnDef.maxSize,position:"relative"},onMouseEnter:()=>{let t=document.querySelector(`[data-header-id="${e.id}"] .resizer`);t&&(t.style.opacity="0.5")},onMouseLeave:()=>{let t=document.querySelector(`[data-header-id="${e.id}"] .resizer`);t&&!e.column.getIsResizing()&&(t.style.opacity="0")},onClick:e.column.getToggleSortingHandler(),children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,c.flexRender)(e.column.columnDef.header,e.getContext())}),(0,t.jsx)("div",{className:"w-4",children:e.column.getIsSorted()?({asc:(0,t.jsx)(o.ChevronUpIcon,{className:"h-4 w-4 text-blue-500"}),desc:(0,t.jsx)(i.ChevronDownIcon,{className:"h-4 w-4 text-blue-500"})})[e.column.getIsSorted()]:(0,t.jsx)(d.SwitchVerticalIcon,{className:"h-4 w-4 text-gray-400"})}),(0,t.jsx)("div",{onDoubleClick:()=>e.column.resetSize(),onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:`resizer ${T.options.columnResizeDirection} ${e.column.getIsResizing()?"isResizing":""}`,style:{position:"absolute",right:0,top:0,height:"100%",width:"5px",background:e.column.getIsResizing()?"#3b82f6":"transparent",cursor:"col-resize",userSelect:"none",touchAction:"none",opacity:+!!e.column.getIsResizing()}})]})},e.id))},e.id))}),(0,t.jsx)(u.TableBody,{children:a||r?(0,t.jsx)(f.TableRow,{children:(0,t.jsx)(p.TableCell,{colSpan:C.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"🚅 Loading keys..."})})})}):e.length>0?T.getRowModel().rows.map(e=>(0,t.jsx)(f.TableRow,{className:"h-8",children:e.getVisibleCells().map(e=>(0,t.jsx)(p.TableCell,{style:{width:e.column.getSize(),maxWidth:e.column.columnDef.maxSize,whiteSpace:"pre-wrap",overflow:"hidden"},className:"py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap",children:(0,c.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(f.TableRow,{children:(0,t.jsx)(p.TableCell,{colSpan:C.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No deleted keys found"})})})})})]})})})})]})})}e.s(["default",0,function(){let{premiumUser:e}=(0,r.default)(),[n,i]=(0,s.useState)(0),[o]=(0,s.useState)(50),{data:d,isPending:c,isFetching:x}=(0,a.useDeletedKeys)(n+1,o);return(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[!e&&(0,t.jsx)(l.Alert,{type:"info",banner:!0,showIcon:!0,message:"Coming soon to Enterprise",description:"Deleted key auditing is graduating from beta into our Enterprise audit & compliance suite."}),(0,t.jsx)(j,{keys:d?.keys||[],totalCount:d?.total_count||0,isLoading:c,isFetching:x,pageIndex:n,pageSize:o,onPageChange:i})]})}],93648);var b=e.i(785242),v=e.i(389083),_=e.i(599724),N=e.i(355619);function w({teams:e,isLoading:l,isFetching:a}){let[r,j]=(0,s.useState)([{id:"deleted_at",desc:!0}]),b=[{id:"team_alias",accessorKey:"team_alias",header:"Team Name",size:150,maxSize:200,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s||void 0,children:(0,t.jsx)("span",{className:"truncate block max-w-[200px]",children:s||"-"})})}},{id:"team_id",accessorKey:"team_id",header:"Team ID",size:150,maxSize:250,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s,children:(0,t.jsx)("span",{className:"font-mono text-blue-500 text-xs truncate block max-w-[250px]",children:s||"-"})})}},{id:"created_at",accessorKey:"created_at",header:"Created",size:120,maxSize:140,cell:e=>{let s=e.getValue();return(0,t.jsx)("span",{className:"block max-w-[140px]",children:s?new Date(s).toLocaleDateString():"-"})}},{id:"spend",accessorKey:"spend",header:"Spend (USD)",size:100,maxSize:140,cell:e=>{let s=e.row.original.spend;return(0,t.jsx)("span",{className:"block max-w-[140px]",children:void 0!==s?(0,n.formatNumberWithCommas)(s,4):"-"})}},{id:"max_budget",accessorKey:"max_budget",header:"Budget (USD)",size:110,maxSize:150,cell:e=>{let s=e.getValue();return(0,t.jsx)("span",{className:"block max-w-[150px]",children:null==s?"No limit":`$${(0,n.formatNumberWithCommas)(s)}`})}},{id:"models",accessorKey:"models",header:"Models",size:200,maxSize:300,cell:e=>{let s=e.getValue();return Array.isArray(s)&&0!==s.length?(0,t.jsxs)("div",{className:"flex flex-wrap gap-1 max-w-[300px]",children:[s.slice(0,3).map((e,s)=>"all-proxy-models"===e?(0,t.jsx)(v.Badge,{size:"xs",color:"red",children:(0,t.jsx)(_.Text,{children:"All Proxy Models"})},s):(0,t.jsx)(v.Badge,{size:"xs",color:"blue",children:(0,t.jsx)(_.Text,{children:e.length>30?`${(0,N.getModelDisplayName)(e).slice(0,30)}...`:(0,N.getModelDisplayName)(e)})},s)),s.length>3&&(0,t.jsx)(v.Badge,{size:"xs",color:"gray",children:(0,t.jsxs)(_.Text,{children:["+",s.length-3," ",s.length-3==1?"more model":"more models"]})})]}):(0,t.jsx)(v.Badge,{size:"xs",color:"red",children:(0,t.jsx)(_.Text,{children:"All Proxy Models"})})}},{id:"organization_id",accessorKey:"organization_id",header:"Organization",size:150,maxSize:200,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s||void 0,children:(0,t.jsx)("span",{className:"truncate block max-w-[200px]",children:s||"-"})})}},{id:"deleted_at",accessorKey:"deleted_at",header:"Deleted At",size:120,maxSize:140,cell:e=>{let s=e.row.original.deleted_at;return(0,t.jsx)("span",{className:"block max-w-[140px]",children:s?new Date(s).toLocaleDateString():"-"})}},{id:"deleted_by",accessorKey:"deleted_by",header:"Deleted By",size:120,maxSize:180,cell:e=>{let s=e.row.original.deleted_by;return(0,t.jsx)(y.Tooltip,{title:s||void 0,children:(0,t.jsx)("span",{className:"truncate block max-w-[180px]",children:s||"-"})})}}],S=(0,c.useReactTable)({data:e,columns:b,columnResizeMode:"onChange",columnResizeDirection:"ltr",state:{sorting:r},onSortingChange:j,getCoreRowModel:(0,x.getCoreRowModel)(),getSortedRowModel:(0,x.getSortedRowModel)(),enableSorting:!0,manualSorting:!1});return(0,t.jsx)("div",{className:"w-full h-full overflow-hidden",children:(0,t.jsxs)("div",{className:"border-b py-4 flex-1 overflow-hidden",children:[(0,t.jsx)("div",{className:"flex items-center justify-between w-full mb-4",children:l||a?(0,t.jsx)("span",{className:"inline-flex text-sm text-gray-700",children:"Loading..."}):(0,t.jsxs)("span",{className:"inline-flex text-sm text-gray-700",children:["Showing ",e.length," ",1===e.length?"team":"teams"]})}),(0,t.jsx)("div",{className:"h-[75vh] overflow-auto",children:(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(m.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",style:{width:S.getCenterTotalSize()},children:[(0,t.jsx)(h.TableHead,{children:S.getHeaderGroups().map(e=>(0,t.jsx)(f.TableRow,{children:e.headers.map(e=>(0,t.jsx)(g.TableHeaderCell,{"data-header-id":e.id,className:"py-1 h-8 relative hover:bg-gray-50",style:{width:e.getSize(),maxWidth:e.column.columnDef.maxSize,position:"relative"},onMouseEnter:()=>{let t=document.querySelector(`[data-header-id="${e.id}"] .resizer`);t&&(t.style.opacity="0.5")},onMouseLeave:()=>{let t=document.querySelector(`[data-header-id="${e.id}"] .resizer`);t&&!e.column.getIsResizing()&&(t.style.opacity="0")},onClick:e.column.getToggleSortingHandler(),children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,c.flexRender)(e.column.columnDef.header,e.getContext())}),(0,t.jsx)("div",{className:"w-4",children:e.column.getIsSorted()?({asc:(0,t.jsx)(o.ChevronUpIcon,{className:"h-4 w-4 text-blue-500"}),desc:(0,t.jsx)(i.ChevronDownIcon,{className:"h-4 w-4 text-blue-500"})})[e.column.getIsSorted()]:(0,t.jsx)(d.SwitchVerticalIcon,{className:"h-4 w-4 text-gray-400"})}),(0,t.jsx)("div",{onDoubleClick:()=>e.column.resetSize(),onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:`resizer ${S.options.columnResizeDirection} ${e.column.getIsResizing()?"isResizing":""}`,style:{position:"absolute",right:0,top:0,height:"100%",width:"5px",background:e.column.getIsResizing()?"#3b82f6":"transparent",cursor:"col-resize",userSelect:"none",touchAction:"none",opacity:+!!e.column.getIsResizing()}})]})},e.id))},e.id))}),(0,t.jsx)(u.TableBody,{children:l||a?(0,t.jsx)(f.TableRow,{children:(0,t.jsx)(p.TableCell,{colSpan:b.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"🚅 Loading teams..."})})})}):e.length>0?S.getRowModel().rows.map(e=>(0,t.jsx)(f.TableRow,{className:"h-8",children:e.getVisibleCells().map(e=>(0,t.jsx)(p.TableCell,{style:{width:e.column.getSize(),maxWidth:e.column.columnDef.maxSize,whiteSpace:"pre-wrap",overflow:"hidden"},className:"py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap",children:(0,c.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(f.TableRow,{children:(0,t.jsx)(p.TableCell,{colSpan:b.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No deleted teams found"})})})})})]})})})})]})})}e.s(["default",0,function(){let{premiumUser:e}=(0,r.default)(),{data:s,isPending:a,isFetching:n}=(0,b.useDeletedTeams)(1,100);return(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[!e&&(0,t.jsx)(l.Alert,{type:"info",banner:!0,showIcon:!0,message:"Coming soon to Enterprise",description:"Deleted team auditing is graduating from beta into our Enterprise audit & compliance suite."}),(0,t.jsx)(w,{teams:s||[],isLoading:a,isFetching:n})]})}],245767)},942161,e=>{"use strict";var t=e.i(843476),s=e.i(271645),l=e.i(266027),a=e.i(619273),r=e.i(291542),n=e.i(262218),i=e.i(311451),o=e.i(199133),d=e.i(464571),c=e.i(95684),x=e.i(482725),m=e.i(91979),u=e.i(56456),p=e.i(166540),h=e.i(764205),g=e.i(608856),f=e.i(898586),y=e.i(149192),j=e.i(166406),b=e.i(492030),v=e.i(304911);let{Text:_}=f.Typography,N={LiteLLM_VerificationToken:"Keys",LiteLLM_TeamTable:"Teams",LiteLLM_UserTable:"Users",LiteLLM_OrganizationTable:"Organizations",LiteLLM_ProxyModelTable:"Models"},w={created:"green",updated:"blue",deleted:"red",rotated:"orange"};function S({label:e,value:l}){let[a,r]=(0,s.useState)(!1),n=(0,s.useCallback)(async()=>{try{let e=JSON.stringify(l,null,2);if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(e);else{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select(),document.execCommand("copy"),document.body.removeChild(t)}r(!0),setTimeout(()=>r(!1),2e3)}catch(e){console.error("Copy failed:",e)}},[l]);return(0,t.jsxs)("div",{className:"bg-white rounded border overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center px-3 py-2 border-b bg-gray-50",children:[(0,t.jsx)("span",{className:"text-xs font-semibold text-gray-600",children:e}),(0,t.jsx)("button",{onClick:n,className:"p-1 hover:bg-gray-200 rounded text-gray-500 hover:text-gray-700 transition-colors",title:"Copy JSON",children:a?(0,t.jsx)(b.CheckOutlined,{className:"text-green-600"}):(0,t.jsx)(j.CopyOutlined,{})})]}),(0,t.jsx)("pre",{className:"p-3 bg-white text-xs font-mono overflow-auto max-h-96 whitespace-pre-wrap break-all m-0",children:JSON.stringify(l,null,2)})]})}function k({label:e,value:s}){return(0,t.jsxs)("div",{className:"flex items-start gap-2 py-1.5",children:[(0,t.jsx)("span",{className:"text-xs text-gray-500 w-36 shrink-0",children:e}),(0,t.jsx)("span",{className:"text-xs text-gray-900 break-all",children:s})]})}function C({log:e}){let{action:s,table_name:l,before_value:a,updated_values:r}=e,n="LiteLLM_VerificationToken"===l,i="updated"===s||"rotated"===s,o=a,d=r;if(i&&a&&r){let e={},t={};new Set([...Object.keys(a),...Object.keys(r)]).forEach(s=>{JSON.stringify(a[s])!==JSON.stringify(r[s])&&(s in a&&(e[s]=a[s]),s in r&&(t[s]=r[s]))}),Object.keys(a).forEach(s=>{s in r||s in e||(e[s]=a[s],t[s]=void 0)}),Object.keys(r).forEach(s=>{s in a||s in t||(t[s]=r[s],e[s]=void 0)}),o=Object.keys(e).length>0?e:{note:"No differing fields detected"},d=Object.keys(t).length>0?t:{note:"No differing fields detected"}}let c=(e,s)=>{if(!s||0===Object.keys(s).length)return(0,t.jsxs)("div",{className:"bg-white rounded border overflow-hidden",children:[(0,t.jsx)("div",{className:"flex items-center px-3 py-2 border-b bg-gray-50",children:(0,t.jsx)("span",{className:"text-xs font-semibold text-gray-600",children:e})}),(0,t.jsx)("p",{className:"px-3 py-3 text-xs text-gray-400 italic m-0",children:"N/A"})]});if(n&&i){let l=["token","spend","max_budget"];if(Object.keys(s).every(e=>l.includes(e))&&!("note"in s))return(0,t.jsxs)("div",{className:"bg-white rounded border overflow-hidden",children:[(0,t.jsx)("div",{className:"flex items-center px-3 py-2 border-b bg-gray-50",children:(0,t.jsx)("span",{className:"text-xs font-semibold text-gray-600",children:e})}),(0,t.jsxs)("div",{className:"px-3 py-3 space-y-1 text-xs",children:[void 0!==s.token&&(0,t.jsxs)("p",{children:[(0,t.jsx)("span",{className:"text-gray-500",children:"Token:"})," ",s.token??"N/A"]}),void 0!==s.spend&&(0,t.jsxs)("p",{children:[(0,t.jsx)("span",{className:"text-gray-500",children:"Spend:"})," $",Number(s.spend).toFixed(6)]}),void 0!==s.max_budget&&(0,t.jsxs)("p",{children:[(0,t.jsx)("span",{className:"text-gray-500",children:"Max Budget:"})," $",Number(s.max_budget).toFixed(6)]})]})]})}return(0,t.jsx)(S,{label:e,value:s})};return(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 mt-4",children:[c("Before",o),c("After",d)]})}function T({open:e,onClose:s,log:l}){if(!l)return null;let a=N[l.table_name]??l.table_name,r=w[l.action]??"default";return(0,t.jsxs)(g.Drawer,{placement:"right",width:"60%",open:e,onClose:s,closable:!1,mask:!0,maskClosable:!0,styles:{body:{padding:0,display:"flex",flexDirection:"column"},header:{display:"none"}},children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-6 py-4 border-b bg-white shrink-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(n.Tag,{color:r,className:"capitalize m-0",children:l.action}),(0,t.jsx)("span",{className:"text-sm text-gray-500",children:p.default.utc(l.updated_at).local().format("MMM D, YYYY HH:mm:ss")})]}),(0,t.jsx)("button",{onClick:s,className:"w-8 h-8 flex items-center justify-center rounded hover:bg-gray-100 text-gray-500","aria-label":"Close",children:(0,t.jsx)(y.CloseOutlined,{})})]}),(0,t.jsxs)("div",{className:"px-6 py-5",children:[(0,t.jsxs)("div",{className:"bg-gray-50 border rounded-lg p-4 mb-5",children:[(0,t.jsx)("p",{className:"text-xs font-semibold text-gray-700 mb-2 uppercase tracking-wide",children:"Details"}),(0,t.jsx)(k,{label:"Table",value:a}),(0,t.jsx)(k,{label:"Object ID",value:(0,t.jsx)(_,{copyable:!0,className:"font-mono text-xs",children:l.object_id})}),(0,t.jsx)(k,{label:"Changed By",value:(0,t.jsx)(v.default,{userId:l.changed_by})}),(0,t.jsx)(k,{label:"API Key (Hash)",value:l.changed_by_api_key?(0,t.jsx)(_,{copyable:!0,className:"font-mono text-xs break-all",children:l.changed_by_api_key}):"—"})]}),(0,t.jsx)(C,{log:l})]})]})}let{Search:L}=i.Input,M={LiteLLM_VerificationToken:"Keys",LiteLLM_TeamTable:"Teams",LiteLLM_UserTable:"Users",LiteLLM_OrganizationTable:"Organizations",LiteLLM_ProxyModelTable:"Models"},D={created:"green",updated:"blue",deleted:"red",rotated:"orange"};e.s(["default",0,function({userID:e,userRole:i,token:g,accessToken:f,isActive:y,premiumUser:j}){let[b,_]=(0,s.useState)(1),[N,w]=(0,s.useState)(""),[S,k]=(0,s.useState)(""),[C,E]=(0,s.useState)(""),[A,z]=(0,s.useState)(""),[I,O]=(0,s.useState)(void 0),[R,P]=(0,s.useState)(void 0),[B,F]=(0,s.useState)(null),[q,$]=(0,s.useState)(!1),H=(0,l.useQuery)({queryKey:["audit_logs",b,50,N,S,C,A,I,R],queryFn:async()=>f&&g&&i&&e?(0,h.uiAuditLogsCall)({accessToken:f,page:b,page_size:50,params:{object_id:N||void 0,changed_by:S||void 0,object_key_hash:C||void 0,object_team_id:A||void 0,action:I||void 0,table_name:R||void 0,sort_by:"updated_at",sort_order:"desc"}}):{audit_logs:[],total:0,page:1,page_size:50,total_pages:0},enabled:!!f&&!!g&&!!i&&!!e&&y,placeholderData:a.keepPreviousData}),K=[{title:"Timestamp",dataIndex:"updated_at",key:"updated_at",width:200,render:e=>(0,t.jsx)("span",{className:"font-mono text-xs whitespace-nowrap",children:p.default.utc(e).local().format("MMM D, YYYY HH:mm:ss")})},{title:"Action",dataIndex:"action",key:"action",width:100,render:e=>(0,t.jsx)(n.Tag,{color:D[e]??"default",className:"capitalize",children:e})},{title:"Table",dataIndex:"table_name",key:"table_name",width:130,render:e=>M[e]??e},{title:"Object ID",dataIndex:"object_id",key:"object_id",render:e=>(0,t.jsx)("span",{className:"font-mono text-xs",children:e})},{title:"Changed By",dataIndex:"changed_by",key:"changed_by",width:200,render:e=>(0,t.jsx)(v.default,{userId:e})},{title:"API Key (Hash)",dataIndex:"changed_by_api_key",key:"changed_by_api_key",width:140,render:e=>e?(0,t.jsxs)("span",{className:"font-mono text-xs",children:[e.slice(0,12),"…"]}):"—"}];if(!j)return(0,t.jsxs)("div",{style:{textAlign:"center",marginTop:"20px"},children:[(0,t.jsx)("h1",{style:{display:"block",marginBottom:"10px"},children:"✨ Enterprise Feature."}),(0,t.jsx)("p",{style:{display:"block",marginBottom:"10px"},children:"This is a LiteLLM Enterprise feature, and requires a valid key to use."}),(0,t.jsx)("p",{style:{display:"block",marginBottom:"20px",fontStyle:"italic"},children:"Here's a preview of what Audit Logs offer:"}),(0,t.jsx)("img",{src:"../ui/assets/audit-logs-preview.png",alt:"Audit Logs Preview",style:{maxWidth:"100%",maxHeight:"700px",borderRadius:"8px",boxShadow:"0 4px 8px rgba(0,0,0,0.1)",margin:"0 auto"},onError:e=>{e.target.style.display="none"}})]});let Y=H.data?.audit_logs??[],V=H.data?.total??0;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow",children:[(0,t.jsxs)("div",{className:"border-b px-6 py-4",children:[(0,t.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,t.jsx)("h1",{className:"text-xl font-semibold",children:"Audit Logs"})}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,t.jsx)(L,{placeholder:"Object ID",allowClear:!0,style:{width:200},onSearch:e=>{w(e),_(1)},onChange:e=>{e.target.value||(w(""),_(1))}}),(0,t.jsx)(L,{placeholder:"Changed By",allowClear:!0,style:{width:180},onSearch:e=>{k(e),_(1)},onChange:e=>{e.target.value||(k(""),_(1))}}),(0,t.jsx)(L,{placeholder:"Team ID",allowClear:!0,style:{width:180},onSearch:e=>{z(e),_(1)},onChange:e=>{e.target.value||(z(""),_(1))}}),(0,t.jsx)(L,{placeholder:"Key Hash",allowClear:!0,style:{width:180},onSearch:e=>{E(e),_(1)},onChange:e=>{e.target.value||(E(""),_(1))}}),(0,t.jsx)(o.Select,{placeholder:"All Actions",allowClear:!0,style:{width:140},options:[{label:"Created",value:"created"},{label:"Updated",value:"updated"},{label:"Deleted",value:"deleted"},{label:"Rotated",value:"rotated"}],onChange:e=>{O(e),_(1)}}),(0,t.jsx)(o.Select,{placeholder:"All Tables",allowClear:!0,style:{width:150},options:[{label:"Keys",value:"LiteLLM_VerificationToken"},{label:"Teams",value:"LiteLLM_TeamTable"},{label:"Users",value:"LiteLLM_UserTable"},{label:"Organizations",value:"LiteLLM_OrganizationTable"},{label:"Models",value:"LiteLLM_ProxyModelTable"}],onChange:e=>{P(e),_(1)}}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,t.jsx)(d.Button,{icon:(0,t.jsx)(m.ReloadOutlined,{spin:H.isFetching}),onClick:()=>H.refetch(),disabled:H.isFetching}),(0,t.jsx)(c.Pagination,{current:b,pageSize:50,total:V,showTotal:e=>`${e} total`,showSizeChanger:!1,size:"small",onChange:e=>_(e)})]})]})]}),(0,t.jsx)(r.Table,{columns:K,dataSource:Y,rowKey:"id",loading:{spinning:H.isLoading,indicator:(0,t.jsx)(x.Spin,{indicator:(0,t.jsx)(u.LoadingOutlined,{spin:!0}),size:"small"})},size:"small",pagination:!1,onRow:e=>({onClick:()=>{F(e),$(!0)},style:{cursor:"pointer"}})})]}),(0,t.jsx)(T,{open:q,onClose:()=>$(!1),log:B})]})}],942161)},245099,504809,15374,e=>{"use strict";var t=e.i(843476),s=e.i(500330),l=(e.i(389083),e.i(994388)),a=e.i(592968),r=e.i(271645),n=e.i(916925),i=e.i(446891),o=e.i(307582),d=e.i(97859);let c=({size:e=12})=>(0,t.jsx)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"flex-shrink-0 text-gray-400",children:(0,t.jsx)("path",{d:"M12 3l1.912 5.813a2 2 0 0 0 1.275 1.275L21 12l-5.813 1.912a2 2 0 0 0-1.275 1.275L12 21l-1.912-5.813a2 2 0 0 0-1.275-1.275L3 12l5.813-1.912a2 2 0 0 0 1.275-1.275L12 3z"})}),x=({size:e=10})=>(0,t.jsx)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"flex-shrink-0",children:(0,t.jsx)("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"})}),m=({size:e=12})=>(0,t.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"flex-shrink-0",children:[(0,t.jsx)("path",{d:"M12 8V4H8"}),(0,t.jsx)("rect",{width:"16",height:"12",x:"4",y:"8",rx:"2"}),(0,t.jsx)("path",{d:"M2 14h2"}),(0,t.jsx)("path",{d:"M20 14h2"}),(0,t.jsx)("path",{d:"M15 13v2"}),(0,t.jsx)("path",{d:"M9 13v2"})]}),u=({count:e})=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-blue-50 text-blue-700 border border-blue-200 rounded-full text-[11px] font-medium whitespace-nowrap",children:[(0,t.jsx)(c,{}),null!=e?e:"LLM"]}),p=({count:e})=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-amber-50 text-amber-700 border border-amber-200 rounded-full text-[11px] font-medium whitespace-nowrap",children:[(0,t.jsx)(x,{}),null!=e?e:"MCP"]}),h=({count:e})=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-violet-50 text-violet-700 border border-violet-200 rounded-full text-[11px] font-medium whitespace-nowrap",children:[(0,t.jsx)(m,{}),null!=e?e:"Agent"]}),g=({label:e,field:s,sortBy:l,sortOrder:a,onSortChange:r})=>(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{children:e}),(0,t.jsx)(i.TableHeaderSortDropdown,{sortState:l===s&&a,onSortChange:e=>{!1===e?r("startTime","desc"):r(s,e)}})]}),f=e=>[{header:e?()=>(0,t.jsx)(g,{label:"Time",field:"startTime",sortBy:e.sortBy,sortOrder:e.sortOrder,onSortChange:e.onSortChange}):"Time",accessorKey:"startTime",cell:e=>(0,t.jsx)(o.TimeCell,{utcTime:e.getValue()})},{header:"Type",id:"type",cell:e=>{let s=e.row.original,l=s.session_total_count||1,r=d.MCP_CALL_TYPES.includes(s.call_type),n=d.AGENT_CALL_TYPES.includes(s.call_type),i=s.session_llm_count??(r||n?0:l),o=s.session_agent_count??(n?l:0),g=s.session_mcp_count??(r?l:0);if(r)return(0,t.jsx)(p,{});if(n&&l<=1)return(0,t.jsx)(h,{});if(l<=1)return(0,t.jsx)(u,{});let f=(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-blue-50 text-blue-700 border border-blue-200 rounded-full text-[11px] font-medium whitespace-nowrap",children:[(0,t.jsx)(c,{}),(0,t.jsx)("span",{children:l}),o>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-blue-300",children:"·"}),(0,t.jsx)(m,{size:10})]}),g>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-blue-300",children:"·"}),(0,t.jsx)(x,{})]})]}),y=[i>0&&`${i} LLM`,o>0&&`${o} Agent`,g>0&&`${g} MCP`].filter(Boolean);return(0,t.jsx)(a.Tooltip,{title:y.join(" • "),children:f})}},{header:"Status",accessorKey:"metadata.status",cell:e=>{let s="failure"!==(e.getValue()||"Success").toLowerCase();return(0,t.jsx)("span",{className:`px-2 py-1 rounded-md text-xs font-medium inline-block text-center w-16 ${s?"bg-green-100 text-green-800":"bg-red-100 text-red-800"}`,children:s?"Success":"Failure"})}},{header:"Session ID",accessorKey:"session_id",cell:e=>{let s=String(e.getValue()||""),r=e.row.original.onSessionClick;return(0,t.jsx)(a.Tooltip,{title:String(e.getValue()||""),children:(0,t.jsx)(l.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal text-xs max-w-[15ch] truncate block",onClick:()=>r?.(s),children:String(e.getValue()||"")})})}},{header:"Request ID",accessorKey:"request_id",cell:e=>(0,t.jsx)(a.Tooltip,{title:String(e.getValue()||""),children:(0,t.jsx)("span",{className:"font-mono text-xs max-w-[15ch] truncate block",children:String(e.getValue()||"")})})},{header:e?()=>(0,t.jsx)(g,{label:"Cost",field:"spend",sortBy:e.sortBy,sortOrder:e.sortOrder,onSortChange:e.onSortChange}):"Cost",accessorKey:"spend",cell:e=>{let l=e.row.original,r=l.mcp_tool_call_count||0,n=l.mcp_tool_call_spend||0;return(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)(a.Tooltip,{title:`$${String(e.getValue()||0)}`,children:(0,t.jsx)("span",{children:(0,s.getSpendString)(e.getValue()||0)})}),r>0&&n>0&&(0,t.jsxs)("span",{className:"text-[10px] text-amber-600",children:["incl. ",(0,s.getSpendString)(n)," from ",r," MCP"]})]})}},{header:e?()=>(0,t.jsx)(g,{label:"Duration (s)",field:"request_duration_ms",sortBy:e.sortBy,sortOrder:e.sortOrder,onSortChange:e.onSortChange}):"Duration (s)",accessorKey:"request_duration_ms",cell:e=>{let s=e.getValue();if(null==s)return(0,t.jsx)("span",{children:"-"});let l=(s/1e3).toFixed(2);return(0,t.jsx)(a.Tooltip,{title:`${s}ms`,children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:l})})}},{header:e?()=>(0,t.jsx)(g,{label:"TTFT (s)",field:"ttft_ms",sortBy:e.sortBy,sortOrder:e.sortOrder,onSortChange:e.onSortChange}):"TTFT (s)",accessorKey:"completionStartTime",cell:e=>{let s=e.row.original,l=e.getValue();if(!l||l===s.endTime)return(0,t.jsx)("span",{children:"-"});let r=new Date(l).getTime()-new Date(s.startTime).getTime();if(r<=0)return(0,t.jsx)("span",{children:"-"});let n=(r/1e3).toFixed(2);return(0,t.jsx)(a.Tooltip,{title:`${r}ms`,children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:n})})}},{header:"Team Name",accessorKey:"metadata.user_api_key_team_alias",cell:e=>(0,t.jsx)(a.Tooltip,{title:String(e.getValue()||"-"),children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:String(e.getValue()||"-")})})},{header:"Key Hash",accessorKey:"metadata.user_api_key",cell:e=>{let s=String(e.getValue()||"-"),l=e.row.original.onKeyHashClick;return(0,t.jsx)(a.Tooltip,{title:s,children:(0,t.jsx)("span",{className:"font-mono max-w-[15ch] truncate block cursor-pointer hover:text-blue-600",onClick:()=>l?.(s),children:s})})}},{header:"Key Name",accessorKey:"metadata.user_api_key_alias",cell:e=>(0,t.jsx)(a.Tooltip,{title:String(e.getValue()||"-"),children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:String(e.getValue()||"-")})})},{header:e?()=>(0,t.jsx)(g,{label:"Model",field:"model",sortBy:e.sortBy,sortOrder:e.sortOrder,onSortChange:e.onSortChange}):"Model",accessorKey:"model",cell:e=>{let s=e.row.original,l=s.custom_llm_provider,r=String(e.getValue()||"");return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[l&&(0,t.jsx)("img",{src:s.metadata?.mcp_tool_call_metadata?.mcp_server_logo_url?s.metadata.mcp_tool_call_metadata.mcp_server_logo_url:l?(0,n.getProviderLogoAndName)(l).logo:"",alt:"",className:"w-4 h-4",onError:e=>{e.target.style.display="none"}}),(0,t.jsx)(a.Tooltip,{title:r,children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:r})})]})}},{header:e?()=>(0,t.jsx)(g,{label:"Tokens",field:"total_tokens",sortBy:e.sortBy,sortOrder:e.sortOrder,onSortChange:e.onSortChange}):"Tokens",accessorKey:"total_tokens",cell:e=>{let s=e.row.original;return(0,t.jsxs)("span",{className:"text-sm",children:[String(s.total_tokens||"0"),(0,t.jsxs)("span",{className:"text-gray-400 text-xs ml-1",children:["(",String(s.prompt_tokens||"0"),"+",String(s.completion_tokens||"0"),")"]})]})}},{header:"Internal User",accessorKey:"user",cell:e=>(0,t.jsx)(a.Tooltip,{title:String(e.getValue()||"-"),children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:String(e.getValue()||"-")})})},{header:"End User",accessorKey:"end_user",cell:e=>(0,t.jsx)(a.Tooltip,{title:String(e.getValue()||"-"),children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:String(e.getValue()||"-")})})},{header:"Tags",accessorKey:"request_tags",cell:e=>{let s=e.getValue();if(!s||0===Object.keys(s).length)return"-";let l=Object.entries(s),r=l[0],n=l.slice(1);return(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:(0,t.jsx)(a.Tooltip,{title:(0,t.jsx)("div",{className:"flex flex-col gap-1",children:l.map(([e,s])=>(0,t.jsxs)("span",{children:[e,": ",String(s)]},e))}),children:(0,t.jsxs)("span",{className:"px-2 py-1 bg-gray-100 rounded-full text-xs",children:[r[0],": ",String(r[1]),n.length>0&&` +${n.length}`]})})})}}];f(),e.s(["createColumns",0,f],245099);var y=e.i(663435);let j=({value:e,onChange:s})=>(0,t.jsx)(y.default,{value:e,onChange:s});var b=e.i(50882),v=e.i(625901),_=e.i(56456),N=e.i(152473),w=e.i(199133),S=e.i(770914);let{Text:k}=e.i(898586).Typography,C=({value:e,onChange:s,placeholder:l="Select a model",style:a,pageSize:n=50,allowClear:i=!0,disabled:o=!1})=>{let[d,c]=(0,r.useState)(""),[x,m]=(0,N.useDebouncedState)("",{wait:300}),{data:u,fetchNextPage:p,hasNextPage:h,isFetchingNextPage:g,isLoading:f}=(0,v.useInfiniteModelInfo)(n,x||void 0),y=(0,r.useMemo)(()=>{if(!u?.pages)return[];let e=new Set,t=[];for(let s of u.pages)for(let l of s.data){let s=l.model_info?.id??"",a=l.model_name??"";!s||e.has(s)||(e.add(s),t.push({label:a?`${a} (${s})`:s,value:s,modelName:a,modelId:s}))}return t},[u]);return(0,t.jsx)(w.Select,{value:e||void 0,onChange:e=>{let t="string"==typeof e?e:Array.isArray(e)?e[0]??"":"";s?.(t)},placeholder:l,style:{width:"100%",...a},allowClear:i,disabled:o,showSearch:!0,filterOption:!1,onSearch:e=>{c(e),m(e)},searchValue:d,onPopupScroll:e=>{let t=e.currentTarget;(t.scrollTop+t.clientHeight)/t.scrollHeight>=.8&&h&&!g&&p()},loading:f,notFoundContent:f?(0,t.jsx)(_.LoadingOutlined,{spin:!0}):"No models found",options:y,optionRender:e=>{let{modelName:s,modelId:l}=e.data;return(0,t.jsx)(t.Fragment,{children:s?(0,t.jsxs)(S.Space,{direction:"vertical",children:[(0,t.jsxs)(S.Space,{direction:"horizontal",children:[(0,t.jsx)(k,{strong:!0,children:"Model name:"}),(0,t.jsx)(k,{ellipsis:!0,children:s})]}),(0,t.jsxs)(k,{ellipsis:!0,type:"secondary",children:["Model ID: ",l]})]}):(0,t.jsxs)(k,{ellipsis:!0,type:"secondary",children:["Model ID: ",l]})})},popupRender:e=>(0,t.jsxs)(t.Fragment,{children:[e,g&&(0,t.jsx)("div",{style:{textAlign:"center",padding:8},children:(0,t.jsx)(_.LoadingOutlined,{spin:!0})})]})})};var T=e.i(764205),L=e.i(166540),M=e.i(619273),D=e.i(266027),E=e.i(633627),A=e.i(700514);let z={TEAM_ID:"Team ID",KEY_HASH:"Key Hash",REQUEST_ID:"Request ID",MODEL:"Model",PUBLIC_MODEL_OR_SEARCH_TOOL:"Public model / search tool",USER_ID:"User ID",END_USER:"End User",STATUS:"Status",KEY_ALIAS:"Key Alias",ERROR_CODE:"Error Code",ERROR_MESSAGE:"Error Message"},I=[z.KEY_HASH,z.ERROR_MESSAGE,z.REQUEST_ID,z.USER_ID,z.PUBLIC_MODEL_OR_SEARCH_TOOL],O={[z.TEAM_ID]:"",[z.KEY_HASH]:"",[z.REQUEST_ID]:"",[z.MODEL]:"",[z.PUBLIC_MODEL_OR_SEARCH_TOOL]:"",[z.USER_ID]:"",[z.END_USER]:"",[z.STATUS]:"",[z.KEY_ALIAS]:"",[z.ERROR_CODE]:"",[z.ERROR_MESSAGE]:""};e.s(["FILTER_KEYS",0,z,"defaultFilters",0,O,"useLogFilterLogic",0,function({accessToken:e,token:t,userRole:s,userID:l,filters:a,setFilters:n,filterByCurrentUser:i,activeTab:o,isLiveTail:d,startTime:c,endTime:x,pageSize:m=A.defaultPageSize,isCustomDate:u,setCurrentPage:p,sortBy:h="startTime",sortOrder:g="desc",currentPage:f=1}){let[y,j]=function(e){let[t,s]=(0,r.useState)(e);return(0,r.useEffect)(()=>{let t=setTimeout(()=>s(e),300);return()=>clearTimeout(t)},[e,300]),[t,s]}(a),b=(0,r.useMemo)(()=>{let e={...a};for(let t of I)e[t]=y[t];return e},[a,y]),v=(0,D.useQuery)({queryKey:["logs","table",f,m,c,x,u,b,i?l:null,h,g],queryFn:async()=>{if(!e||!t||!s||!l)return{data:[],total:0,page:1,page_size:m,total_pages:0};let a=(0,L.default)(c).utc().format("YYYY-MM-DD HH:mm:ss"),r=u?(0,L.default)(x).utc().format("YYYY-MM-DD HH:mm:ss"):(0,L.default)().utc().format("YYYY-MM-DD HH:mm:ss");return await (0,T.uiSpendLogsCall)({accessToken:e,start_date:a,end_date:r,page:f,page_size:m,params:{api_key:b[z.KEY_HASH]||void 0,team_id:b[z.TEAM_ID]||void 0,request_id:b[z.REQUEST_ID]||void 0,user_id:b[z.USER_ID]||(i?l??void 0:void 0),end_user:b[z.END_USER]||void 0,status_filter:b[z.STATUS]||void 0,model_id:b[z.MODEL]||void 0,model:b[z.PUBLIC_MODEL_OR_SEARCH_TOOL]||void 0,key_alias:b[z.KEY_ALIAS]||void 0,error_code:b[z.ERROR_CODE]||void 0,error_message:b[z.ERROR_MESSAGE]||void 0,sort_by:h,sort_order:g}})},enabled:!!e&&!!t&&!!s&&!!l&&"request logs"===o,refetchInterval:!!d&&1===f&&15e3,placeholderData:M.keepPreviousData,refetchIntervalInBackground:!1}),_=v.data??{data:[],total:0,page:1,page_size:m,total_pages:0},{data:N}=(0,D.useQuery)({queryKey:["allTeamsForLogFilters",e],queryFn:async()=>e&&await (0,E.fetchAllTeams)(e)||[],enabled:!!e});return{logsQuery:v,filteredLogs:_,allTeams:N,handleFilterChange:e=>{n(t=>{let s={...t,...e};for(let e of Object.keys(O))e in s||(s[e]=O[e]);return JSON.stringify(s)!==JSON.stringify(t)&&p(1),s})},handleFilterReset:()=>{n(O),j(O),p(1)}}}],504809),e.s(["getLogFilterOptions",0,function(e){return[{name:"Team ID",label:"Team ID",customComponent:j},{name:"Status",label:"Status",isSearchable:!1,options:[{label:"Success",value:"success"},{label:"Failure",value:"failure"}]},{name:"Model",label:"Model",customComponent:C},{name:z.PUBLIC_MODEL_OR_SEARCH_TOOL,label:"Public model / search tool",isSearchable:!1},{name:"Key Alias",label:"Key Alias",customComponent:b.PaginatedKeyAliasSelect},{name:"End User",label:"End User",isSearchable:!0,searchFn:async t=>{let s=await (0,T.allEndUsersCall)(e);return(s?.map(e=>e.user_id)||[]).filter(e=>e.toLowerCase().includes(t.toLowerCase())).map(e=>({label:e,value:e}))}},{name:"Error Code",label:"Error Code",isSearchable:!0,searchFn:async e=>{if(!e)return d.ERROR_CODE_OPTIONS;let t=e.toLowerCase(),s=d.ERROR_CODE_OPTIONS.filter(e=>e.label.toLowerCase().includes(t));return!d.ERROR_CODE_OPTIONS.some(t=>t.value===e.trim())&&e.trim()&&s.push({label:`Use custom code: ${e.trim()}`,value:e.trim()}),s}},{name:"Key Hash",label:"Key Hash",isSearchable:!1},{name:"Error Message",label:"Error Message",isSearchable:!1}]}],15374)},909778,e=>{"use strict";var t=e.i(843476),s=e.i(166540),l=e.i(271645),a=e.i(772345),r=e.i(464571),n=e.i(790848),i=e.i(97859);e.s(["LogsTableToolbar",0,function({searchTerm:e,onSearchChange:o,startTime:d,onStartTimeChange:c,endTime:x,onEndTimeChange:m,isCustomDate:u,onIsCustomDateChange:p,selectedTimeInterval:h,onSelectedTimeIntervalChange:g,isLiveTail:f,onIsLiveTailChange:y,currentPage:j,onCurrentPageChange:b,pageSize:v,isLoading:_,isButtonLoading:N,onRefetch:w,filteredLogs:S}){let[k,C]=(0,l.useState)(!1),T=(0,l.useRef)(null);(0,l.useEffect)(()=>{function e(e){T.current&&!T.current.contains(e.target)&&C(!1)}return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);let L=i.QUICK_SELECT_OPTIONS.find(e=>e.value===h.value&&e.unit===h.unit),M=u?((e,t,l)=>{if(e)return`${(0,s.default)(t).format("MMM D, h:mm A")} - ${(0,s.default)(l).format("MMM D, h:mm A")}`;let a=(0,s.default)(),r=(0,s.default)(t),n=a.diff(r,"minutes");if(n>=0&&n<2)return"Last 1 Minute";if(n>=2&&n<16)return"Last 15 Minutes";if(n>=16&&n<61)return"Last Hour";let i=a.diff(r,"hours");return i>=1&&i<5?"Last 4 Hours":i>=5&&i<25?"Last 24 Hours":i>=25&&i<169?"Last 7 Days":`${r.format("MMM D")} - ${a.format("MMM D")}`})(u,d,x):L?.label;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"border-b px-6 py-4 w-full max-w-full box-border",children:(0,t.jsxs)("div",{className:"flex flex-col md:flex-row items-start md:items-center justify-between space-y-4 md:space-y-0 w-full max-w-full box-border",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3 w-full max-w-full box-border",children:[(0,t.jsxs)("div",{className:"relative w-64 min-w-0 flex-shrink-0",children:[(0,t.jsx)("input",{type:"text",placeholder:"Search by Request ID",className:"w-full px-3 py-2 pl-8 border rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",value:e,onChange:e=>o(e.target.value)}),(0,t.jsx)("svg",{className:"absolute left-2.5 top-2.5 h-4 w-4 text-gray-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 min-w-0 flex-shrink",children:[(0,t.jsxs)("div",{className:"relative z-50",ref:T,children:[(0,t.jsxs)("button",{onClick:()=>C(!k),className:"px-3 py-2 text-sm border rounded-md hover:bg-gray-50 flex items-center gap-2",children:[(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"})}),M]}),k&&(0,t.jsx)("div",{className:"absolute left-0 mt-2 w-64 bg-white rounded-lg shadow-lg border p-2 z-50",children:(0,t.jsxs)("div",{className:"space-y-1",children:[i.QUICK_SELECT_OPTIONS.map(e=>(0,t.jsx)("button",{className:`w-full px-3 py-2 text-left text-sm hover:bg-gray-50 rounded-md ${M===e.label?"bg-blue-50 text-blue-600":""}`,onClick:()=>{b(1),m((0,s.default)().format("YYYY-MM-DDTHH:mm")),c((0,s.default)().subtract(e.value,e.unit).format("YYYY-MM-DDTHH:mm")),g({value:e.value,unit:e.unit}),p(!1),C(!1)},children:e.label},e.label)),(0,t.jsx)("div",{className:"border-t my-2"}),(0,t.jsx)("button",{className:`w-full px-3 py-2 text-left text-sm hover:bg-gray-50 rounded-md ${u?"bg-blue-50 text-blue-600":""}`,onClick:()=>p(!u),children:"Custom Range"})]})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900",children:"Live Tail"}),(0,t.jsx)(n.Switch,{checked:f,defaultChecked:!0,onChange:y})]}),(0,t.jsx)(r.Button,{type:"default",icon:(0,t.jsx)(a.SyncOutlined,{spin:N}),onClick:w,disabled:N,title:"Fetch data",children:N?"Fetching":"Fetch"})]}),u&&(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{children:(0,t.jsx)("input",{type:"datetime-local",value:d,onChange:e=>{c(e.target.value),b(1)},className:"px-3 py-2 border rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"})}),(0,t.jsx)("span",{className:"text-gray-500",children:"to"}),(0,t.jsx)("div",{children:(0,t.jsx)("input",{type:"datetime-local",value:x,onChange:e=>{m(e.target.value),b(1)},className:"px-3 py-2 border rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"})})]})]}),(0,t.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,t.jsxs)("span",{className:"text-sm text-gray-700 whitespace-nowrap",children:["Showing ",_?"...":S?(j-1)*v+1:0," -"," ",_?"...":S?Math.min(j*v,S.total):0," ","of ",_?"...":S?S.total:0," results"]}),(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsxs)("span",{className:"text-sm text-gray-700 min-w-[90px]",children:["Page ",_?"...":j," of"," ",_?"...":S?S.total_pages:1]}),(0,t.jsx)("button",{onClick:()=>b(e=>Math.max(1,e-1)),disabled:_||1===j,className:"px-3 py-1 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Previous"}),(0,t.jsx)("button",{onClick:()=>b(e=>Math.min(S.total_pages||1,e+1)),disabled:_||j===(S.total_pages||1),className:"px-3 py-1 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Next"})]})]})]})}),f&&1===j&&(0,t.jsxs)("div",{className:"mb-4 px-4 py-2 bg-green-50 border border-green-200 rounded-md flex items-center justify-between",children:[(0,t.jsx)("div",{className:"flex items-center gap-2",children:(0,t.jsx)("span",{className:"text-sm text-green-700",children:"Auto-refreshing every 15 seconds"})}),(0,t.jsx)("button",{onClick:()=>y(!1),className:"text-sm text-green-600 hover:text-green-800",children:"Stop"})]})]})}],909778)},936190,e=>{"use strict";var t=e.i(843476),s=e.i(166540),l=e.i(271645),a=e.i(197647),r=e.i(653824),n=e.i(881073),i=e.i(404206),o=e.i(723731),d=e.i(708347),c=e.i(93648),x=e.i(245767),m=e.i(969550),u=e.i(764205),p=e.i(20147),h=e.i(942161),g=e.i(245099),f=e.i(97859),y=e.i(15374),j=e.i(504809);e.i(3565);var b=e.i(502626),v=e.i(909778),_=e.i(149121),N=e.i(86827);e.s(["default",0,function({accessToken:e,token:w,userRole:S,userID:k,premiumUser:C}){let[T,L]=(0,l.useState)(""),[M,D]=(0,l.useState)(1),[E]=(0,l.useState)(50),[A,z]=(0,l.useState)((0,s.default)().subtract(24,"hours").format("YYYY-MM-DDTHH:mm")),[I,O]=(0,l.useState)((0,s.default)().format("YYYY-MM-DDTHH:mm")),[R,P]=(0,l.useState)(!1),[B,F]=(0,l.useState)(j.defaultFilters),[q,$]=(0,l.useState)(null),[H,K]=(0,l.useState)(null),[Y,V]=(0,l.useState)(S&&d.internalUserRoles.includes(S)),[U,W]=(0,l.useState)("request logs"),[J,G]=(0,l.useState)(null),[Q,X]=(0,l.useState)(!1),[Z,ee]=(0,l.useState)(null),[et,es]=(0,l.useState)("startTime"),[el,ea]=(0,l.useState)("desc"),[er,en]=(0,l.useState)({value:24,unit:"hours"}),[ei,eo]=(0,l.useState)(()=>{let e=sessionStorage.getItem("isLiveTail");return null===e||JSON.parse(e)});(0,l.useEffect)(()=>{sessionStorage.setItem("isLiveTail",JSON.stringify(ei))},[ei]),(0,l.useEffect)(()=>{(async()=>{H&&e&&$({...(await (0,u.keyInfoV1Call)(e,H)).info,token:H,api_key:H})})()},[H,e]),(0,l.useEffect)(()=>{S&&d.internalUserRoles.includes(S)&&V(!0)},[S]);let{logsQuery:ed,filteredLogs:ec,allTeams:ex,handleFilterChange:em,handleFilterReset:eu}=(0,j.useLogFilterLogic)({accessToken:e,token:w,userRole:S,userID:k,filters:B,setFilters:F,filterByCurrentUser:!!Y,activeTab:U,isLiveTail:ei,startTime:A,endTime:I,pageSize:E,isCustomDate:R,setCurrentPage:D,sortBy:et,sortOrder:el,currentPage:M}),ep=(0,l.useCallback)(()=>{eu(),z((0,s.default)().subtract(24,"hours").format("YYYY-MM-DDTHH:mm")),O((0,s.default)().format("YYYY-MM-DDTHH:mm")),P(!1),en({value:24,unit:"hours"}),D(1)},[eu]),eh=(0,l.useCallback)((e,t)=>{es(e),ea(t),D(1)},[]),eg=(0,l.useMemo)(()=>(0,g.createColumns)({sortBy:et,sortOrder:el,onSortChange:eh}),[et,el,eh]),ef=(0,l.useMemo)(()=>{let e=ec.data.filter(e=>!T||e.request_id.includes(T)||e.model.includes(T)||e.user&&e.user.includes(T)),t=e.reduce((e,t)=>(t.session_id&&(e[t.session_id]||(e[t.session_id]={llm:0,agent:0,mcp:0}),f.MCP_CALL_TYPES.includes(t.call_type)?e[t.session_id].mcp+=1:f.AGENT_CALL_TYPES.includes(t.call_type)?e[t.session_id].agent+=1:e[t.session_id].llm+=1),e),{}),s=new Map;for(let t of e){if(!t.session_id||1>=(t.session_total_count||1))continue;let e=f.MCP_CALL_TYPES.includes(t.call_type),l=s.get(t.session_id);l&&(!l.isMcp||e)||s.set(t.session_id,{requestId:t.request_id,isMcp:e})}return e.map(e=>{let s=e.session_id?t[e.session_id]:void 0;return{...e,request_duration_ms:e.request_duration_ms,session_llm_count:s?.llm??void 0,session_mcp_count:s?.mcp??void 0,session_agent_count:s?.agent??void 0,onKeyHashClick:e=>K(e),onSessionClick:t=>{t&&(ee(t),G(e),X(!0))}}}).filter(e=>!e.session_id||1>=(e.session_total_count||1)||s.get(e.session_id)?.requestId===e.request_id)},[ec.data,T]),ey=(0,l.useDeferredValue)(ef),ej=ey!==ef,eb=ed.isFetching||ej,ev=ed.isPlaceholderData,e_=ed.isLoading||ev;return e&&w&&S&&k?(0,t.jsxs)("div",{className:"w-full max-w-screen p-6 overflow-x-hidden box-border",children:[(0,t.jsxs)(r.TabGroup,{defaultIndex:0,onIndexChange:e=>W(0===e?"request logs":"audit logs"),children:[(0,t.jsxs)(n.TabList,{children:[(0,t.jsx)(a.Tab,{children:"Request Logs"}),(0,t.jsx)(a.Tab,{children:"Audit Logs"}),(0,t.jsx)(a.Tab,{children:"Deleted Keys"}),(0,t.jsx)(a.Tab,{children:"Deleted Teams"})]}),(0,t.jsxs)(o.TabPanels,{children:[(0,t.jsxs)(i.TabPanel,{children:[(0,t.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,t.jsx)("h1",{className:"text-xl font-semibold",children:"Request Logs"})}),q&&H&&q.api_key===H?(0,t.jsx)(p.default,{keyId:H,keyData:q,teams:ex??[],onClose:()=>K(null),backButtonText:"Back to Logs"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(m.default,{options:(0,y.getLogFilterOptions)(e),onApplyFilters:em,onResetFilters:ep}),(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow w-full max-w-full box-border",children:[(0,t.jsx)(v.LogsTableToolbar,{searchTerm:T,onSearchChange:L,startTime:A,onStartTimeChange:z,endTime:I,onEndTimeChange:O,isCustomDate:R,onIsCustomDateChange:P,selectedTimeInterval:er,onSelectedTimeIntervalChange:en,isLiveTail:ei,onIsLiveTailChange:eo,currentPage:M,onCurrentPageChange:D,pageSize:E,isLoading:e_,isButtonLoading:eb,onRefetch:()=>ed.refetch(),filteredLogs:ec}),(0,t.jsx)(_.DataTable,{columns:eg,data:ey,onRowClick:e=>{if(e.session_id&&(e.session_total_count||1)>1){ee(e.session_id),G(e),X(!0);return}ee(null),G(e),X(!0)},isLoading:e_})]})]})]}),(0,t.jsx)(i.TabPanel,{children:(0,t.jsx)(h.default,{userID:k,userRole:S,token:w,accessToken:e,isActive:"audit logs"===U,premiumUser:C})}),(0,t.jsx)(i.TabPanel,{children:(0,t.jsx)(c.default,{})}),(0,t.jsx)(i.TabPanel,{children:(0,t.jsx)(x.default,{})})]})]}),(0,t.jsx)(b.LogDetailsDrawer,{open:Q,onClose:()=>{X(!1),ee(null)},logEntry:J,sessionId:Z,accessToken:e,allLogs:ef,onSelectLog:G,startTime:(0,s.default)(A).utc().format("YYYY-MM-DD HH:mm:ss")})]}):(0,t.jsx)("div",{className:"flex items-center justify-center h-64",children:(0,t.jsx)(N.AntDLoadingSpinner,{size:"large"})})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/00bicsqsx~erf.js b/litellm/proxy/_experimental/out/_next/static/chunks/00bicsqsx~erf.js deleted file mode 100644 index ad0c2e2a7e5..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/00bicsqsx~erf.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,21548,e=>{"use strict";var t=e.i(616303);e.s(["Empty",()=>t.default])},94629,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4"}))});e.s(["SwitchVerticalIcon",0,r],94629)},991124,e=>{"use strict";let t=(0,e.i(475254).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["default",0,t])},678784,678745,e=>{"use strict";let t=(0,e.i(475254).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",0,t],678745),e.s(["CheckIcon",0,t],678784)},118366,e=>{"use strict";var t=e.i(991124);e.s(["CopyIcon",()=>t.default])},240647,e=>{"use strict";var t=e.i(286612);e.s(["RightOutlined",()=>t.default])},362024,e=>{"use strict";var t=e.i(988122);e.s(["Collapse",()=>t.default])},516015,(e,t,r)=>{},898547,(e,t,r)=>{var n=e.i(247167);e.r(516015);var a=e.r(271645),i=a&&"object"==typeof a&&"default"in a?a:{default:a},s=void 0!==n.default&&n.default.env&&!0,o=function(e){return"[object String]"===Object.prototype.toString.call(e)},l=function(){function e(e){var t=void 0===e?{}:e,r=t.name,n=void 0===r?"stylesheet":r,a=t.optimizeForSpeed,i=void 0===a?s:a;u(o(n),"`name` must be a string"),this._name=n,this._deletedRulePlaceholder="#"+n+"-deleted-rule____{}",u("boolean"==typeof i,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=i,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0;var l="u">typeof window&&document.querySelector('meta[property="csp-nonce"]');this._nonce=l?l.getAttribute("content"):null}var t,r=e.prototype;return r.setOptimizeForSpeed=function(e){u("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),u(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},r.isOptimizeForSpeed=function(){return this._optimizeForSpeed},r.inject=function(){var e=this;if(u(!this._injected,"sheet already injected"),this._injected=!0,"u">typeof window&&this._optimizeForSpeed){this._tags[0]=this.makeStyleTag(this._name),this._optimizeForSpeed="insertRule"in this.getSheet(),this._optimizeForSpeed||(s||console.warn("StyleSheet: optimizeForSpeed mode not supported falling back to standard mode."),this.flush(),this._injected=!0);return}this._serverSheet={cssRules:[],insertRule:function(t,r){return"number"==typeof r?e._serverSheet.cssRules[r]={cssText:t}:e._serverSheet.cssRules.push({cssText:t}),r},deleteRule:function(t){e._serverSheet.cssRules[t]=null}}},r.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var t=0;ttypeof window?this.getSheet():this._serverSheet;if(t.trim()||(t=this._deletedRulePlaceholder),!r.cssRules[e])return e;r.deleteRule(e);try{r.insertRule(t,e)}catch(n){s||console.warn("StyleSheet: illegal rule: \n\n"+t+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),r.insertRule(this._deletedRulePlaceholder,e)}}else{var n=this._tags[e];u(n,"old rule at index `"+e+"` not found"),n.textContent=t}return e},r.deleteRule=function(e){if("u"typeof window?(this._tags.forEach(function(e){return e&&e.parentNode.removeChild(e)}),this._tags=[]):this._serverSheet.cssRules=[]},r.cssRules=function(){var e=this;return"u">>0},d={};function m(e,t){if(!t)return"jsx-"+e;var r=String(t),n=e+r;return d[n]||(d[n]="jsx-"+c(e+"-"+r)),d[n]}function f(e,t){"u"typeof window&&!this._fromServer&&(this._fromServer=this.selectFromServer(),this._instancesCounts=Object.keys(this._fromServer).reduce(function(e,t){return e[t]=0,e},{}));var r=this.getIdAndRules(e),n=r.styleId,a=r.rules;if(n in this._instancesCounts){this._instancesCounts[n]+=1;return}var i=a.map(function(e){return t._sheet.insertRule(e)}).filter(function(e){return -1!==e});this._indices[n]=i,this._instancesCounts[n]=1},t.remove=function(e){var t=this,r=this.getIdAndRules(e).styleId;if(function(e,t){if(!e)throw Error("StyleSheetRegistry: "+t+".")}(r in this._instancesCounts,"styleId: `"+r+"` not found"),this._instancesCounts[r]-=1,this._instancesCounts[r]<1){var n=this._fromServer&&this._fromServer[r];n?(n.parentNode.removeChild(n),delete this._fromServer[r]):(this._indices[r].forEach(function(e){return t._sheet.deleteRule(e)}),delete this._indices[r]),delete this._instancesCounts[r]}},t.update=function(e,t){this.add(t),this.remove(e)},t.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},t.cssRules=function(){var e=this,t=this._fromServer?Object.keys(this._fromServer).map(function(t){return[t,e._fromServer[t]]}):[],r=this._sheet.cssRules();return t.concat(Object.keys(this._indices).map(function(t){return[t,e._indices[t].map(function(e){return r[e].cssText}).join(e._optimizeForSpeed?"":"\n")]}).filter(function(e){return!!e[1]}))},t.styles=function(e){var t,r;return t=this.cssRules(),void 0===(r=e)&&(r={}),t.map(function(e){var t=e[0],n=e[1];return i.default.createElement("style",{id:"__"+t,key:"__"+t,nonce:r.nonce?r.nonce:void 0,dangerouslySetInnerHTML:{__html:n}})})},t.getIdAndRules=function(e){var t=e.children,r=e.dynamic,n=e.id;if(r){var a=m(n,r);return{styleId:a,rules:Array.isArray(t)?t.map(function(e){return f(a,e)}):[f(a,t)]}}return{styleId:m(n),rules:Array.isArray(t)?t:[t]}},t.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(e,t){return e[t.id.slice(2)]=t,e},{})},e}(),p=a.createContext(null);function g(){return new h}function v(){return a.useContext(p)}p.displayName="StyleSheetContext";var b=i.default.useInsertionEffect||i.default.useLayoutEffect,y="u">typeof window?g():void 0;function A(e){var t=y||v();return t&&("u"{t.exports=e.r(898547).style},916925,e=>{"use strict";var t,r=((t={}).A2A_Agent="A2A Agent",t.AI21="Ai21",t.AI21_CHAT="Ai21 Chat",t.AIML="AI/ML API",t.AIOHTTP_OPENAI="Aiohttp Openai",t.Anthropic="Anthropic",t.ANTHROPIC_TEXT="Anthropic Text",t.AssemblyAI="AssemblyAI",t.AUTO_ROUTER="Auto Router",t.Bedrock="Amazon Bedrock",t.BedrockMantle="Amazon Bedrock Mantle",t.SageMaker="AWS SageMaker",t.Azure="Azure",t.Azure_AI_Studio="Azure AI Foundry (Studio)",t.AZURE_TEXT="Azure Text",t.BASETEN="Baseten",t.BYTEZ="Bytez",t.Cerebras="Cerebras",t.CLARIFAI="Clarifai",t.CLOUDFLARE="Cloudflare",t.CODESTRAL="Codestral",t.Cohere="Cohere",t.COHERE_CHAT="Cohere Chat",t.COMETAPI="Cometapi",t.COMPACTIFAI="Compactifai",t.Cursor="Cursor",t.Dashscope="Dashscope",t.Databricks="Databricks (Qwen API)",t.DATAROBOT="Datarobot",t.DeepInfra="DeepInfra",t.Deepgram="Deepgram",t.Deepseek="Deepseek",t.DOCKER_MODEL_RUNNER="Docker Model Runner",t.DOTPROMPT="Dotprompt",t.ElevenLabs="ElevenLabs",t.EMPOWER="Empower",t.FalAI="Fal AI",t.FEATHERLESS_AI="Featherless Ai",t.FireworksAI="Fireworks AI",t.FRIENDLIAI="Friendliai",t.GALADRIEL="Galadriel",t.GITHUB_COPILOT="Github Copilot",t.Google_AI_Studio="Google AI Studio",t.GradientAI="GradientAI",t.Groq="Groq",t.HEROKU="Heroku",t.Hosted_Vllm="vllm",t.HUGGINGFACE="Huggingface",t.HYPERBOLIC="Hyperbolic",t.Infinity="Infinity",t.JinaAI="Jina AI",t.LAMBDA_AI="Lambda Ai",t.LEMONADE="Lemonade",t.LLAMAFILE="Llamafile",t.LM_STUDIO="Lm Studio",t.LLAMA="Meta Llama",t.MARITALK="Maritalk",t.MiniMax="MiniMax",t.MistralAI="Mistral AI",t.MOONSHOT="Moonshot",t.MORPH="Morph",t.NEBIUS="Nebius",t.NLP_CLOUD="Nlp Cloud",t.NOVITA="Novita",t.NSCALE="Nscale",t.NVIDIA_NIM="Nvidia Nim",t.Ollama="Ollama",t.OLLAMA_CHAT="Ollama Chat",t.OOBABOOGA="Oobabooga",t.OpenAI="OpenAI",t.OPENAI_LIKE="Openai Like",t.OpenAI_Compatible="OpenAI-Compatible Endpoints (Together AI, etc.)",t.OpenAI_Text="OpenAI Text Completion",t.OpenAI_Text_Compatible="OpenAI-Compatible Text Completion Models (Together AI, etc.)",t.Openrouter="Openrouter",t.Oracle="Oracle Cloud Infrastructure (OCI)",t.OVHCLOUD="Ovhcloud",t.Perplexity="Perplexity",t.PETALS="Petals",t.PG_VECTOR="Pg Vector",t.PREDIBASE="Predibase",t.RECRAFT="Recraft",t.REPLICATE="Replicate",t.RunwayML="RunwayML",t.SAGEMAKER_LEGACY="Sagemaker",t.Sambanova="Sambanova",t.SAP="SAP Generative AI Hub",t.Snowflake="Snowflake",t.TEXT_COMPLETION_CODESTRAL="Text-Completion-Codestral",t.TogetherAI="TogetherAI",t.TOPAZ="Topaz",t.Triton="Triton",t.V0="V0",t.VERCEL_AI_GATEWAY="Vercel Ai Gateway",t.Vertex_AI="Vertex AI (Anthropic, Gemini, etc.)",t.VERTEX_AI_BETA="Vertex Ai Beta",t.VLLM="Vllm",t.VolcEngine="VolcEngine",t.Voyage="Voyage AI",t.WANDB="Wandb",t.WATSONX="Watsonx",t.WATSONX_TEXT="Watsonx Text",t.xAI="xAI",t.XINFERENCE="Xinference",t.ZAI="Z.AI (Zhipu AI)",t);let n={A2A_Agent:"a2a_agent",AI21:"ai21",AI21_CHAT:"ai21_chat",AIML:"aiml",AIOHTTP_OPENAI:"aiohttp_openai",Anthropic:"anthropic",ANTHROPIC_TEXT:"anthropic_text",AssemblyAI:"assemblyai",AUTO_ROUTER:"auto_router",Azure:"azure",Azure_AI_Studio:"azure_ai",AZURE_TEXT:"azure_text",BASETEN:"baseten",Bedrock:"bedrock",BedrockMantle:"bedrock_mantle",BYTEZ:"bytez",Cerebras:"cerebras",CLARIFAI:"clarifai",CLOUDFLARE:"cloudflare",CODESTRAL:"codestral",Cohere:"cohere",COHERE_CHAT:"cohere_chat",COMETAPI:"cometapi",COMPACTIFAI:"compactifai",Cursor:"cursor",Dashscope:"dashscope",Databricks:"databricks",DATAROBOT:"datarobot",DeepInfra:"deepinfra",Deepgram:"deepgram",Deepseek:"deepseek",DOCKER_MODEL_RUNNER:"docker_model_runner",DOTPROMPT:"dotprompt",ElevenLabs:"elevenlabs",EMPOWER:"empower",FalAI:"fal_ai",FEATHERLESS_AI:"featherless_ai",FireworksAI:"fireworks_ai",FRIENDLIAI:"friendliai",GALADRIEL:"galadriel",GITHUB_COPILOT:"github_copilot",Google_AI_Studio:"gemini",GradientAI:"gradient_ai",Groq:"groq",HEROKU:"heroku",Hosted_Vllm:"hosted_vllm",HUGGINGFACE:"huggingface",HYPERBOLIC:"hyperbolic",Infinity:"infinity",JinaAI:"jina_ai",LAMBDA_AI:"lambda_ai",LEMONADE:"lemonade",LLAMAFILE:"llamafile",LLAMA:"meta_llama",LM_STUDIO:"lm_studio",MARITALK:"maritalk",MiniMax:"minimax",MistralAI:"mistral",MOONSHOT:"moonshot",MORPH:"morph",NEBIUS:"nebius",NLP_CLOUD:"nlp_cloud",NOVITA:"novita",NSCALE:"nscale",NVIDIA_NIM:"nvidia_nim",Ollama:"ollama",OLLAMA_CHAT:"ollama_chat",OOBABOOGA:"oobabooga",OpenAI:"openai",OPENAI_LIKE:"openai_like",OpenAI_Compatible:"openai",OpenAI_Text:"text-completion-openai",OpenAI_Text_Compatible:"text-completion-openai",Openrouter:"openrouter",Oracle:"oci",OVHCLOUD:"ovhcloud",Perplexity:"perplexity",PETALS:"petals",PG_VECTOR:"pg_vector",PREDIBASE:"predibase",RECRAFT:"recraft",REPLICATE:"replicate",RunwayML:"runwayml",SAGEMAKER_LEGACY:"sagemaker",SageMaker:"sagemaker_chat",Sambanova:"sambanova",SAP:"sap",Snowflake:"snowflake",TEXT_COMPLETION_CODESTRAL:"text-completion-codestral",TogetherAI:"together_ai",TOPAZ:"topaz",Triton:"triton",V0:"v0",VERCEL_AI_GATEWAY:"vercel_ai_gateway",Vertex_AI:"vertex_ai",VERTEX_AI_BETA:"vertex_ai_beta",VLLM:"vllm",VolcEngine:"volcengine",Voyage:"voyage",WANDB:"wandb",WATSONX:"watsonx",WATSONX_TEXT:"watsonx_text",xAI:"xai",XINFERENCE:"xinference",ZAI:"zai"},a="../ui/assets/logos/",i={"A2A Agent":`${a}a2a_agent.png`,Ai21:`${a}ai21.svg`,"Ai21 Chat":`${a}ai21.svg`,"AI/ML API":`${a}aiml_api.svg`,"Aiohttp Openai":`${a}openai_small.svg`,Anthropic:`${a}anthropic.svg`,"Anthropic Text":`${a}anthropic.svg`,AssemblyAI:`${a}assemblyai_small.png`,Azure:`${a}microsoft_azure.svg`,"Azure AI Foundry (Studio)":`${a}microsoft_azure.svg`,"Azure Text":`${a}microsoft_azure.svg`,Baseten:`${a}baseten.svg`,"Amazon Bedrock":`${a}bedrock.svg`,"Amazon Bedrock Mantle":`${a}bedrock.svg`,"AWS SageMaker":`${a}bedrock.svg`,Cerebras:`${a}cerebras.svg`,Cloudflare:`${a}cloudflare.svg`,Codestral:`${a}mistral.svg`,Cohere:`${a}cohere.svg`,"Cohere Chat":`${a}cohere.svg`,Cometapi:`${a}cometapi.svg`,Cursor:`${a}cursor.svg`,"Databricks (Qwen API)":`${a}databricks.svg`,Dashscope:`${a}dashscope.svg`,Deepseek:`${a}deepseek.svg`,Deepgram:`${a}deepgram.png`,DeepInfra:`${a}deepinfra.png`,ElevenLabs:`${a}elevenlabs.png`,"Fal AI":`${a}fal_ai.jpg`,"Featherless Ai":`${a}featherless.svg`,"Fireworks AI":`${a}fireworks.svg`,Friendliai:`${a}friendli.svg`,"Github Copilot":`${a}github_copilot.svg`,"Google AI Studio":`${a}google.svg`,GradientAI:`${a}gradientai.svg`,Groq:`${a}groq.svg`,vllm:`${a}vllm.png`,Huggingface:`${a}huggingface.svg`,Hyperbolic:`${a}hyperbolic.svg`,Infinity:`${a}infinity.png`,"Jina AI":`${a}jina.png`,"Lambda Ai":`${a}lambda.svg`,"Lm Studio":`${a}lmstudio.svg`,"Meta Llama":`${a}meta_llama.svg`,MiniMax:`${a}minimax.svg`,"Mistral AI":`${a}mistral.svg`,Moonshot:`${a}moonshot.svg`,Morph:`${a}morph.svg`,Nebius:`${a}nebius.svg`,Novita:`${a}novita.svg`,"Nvidia Nim":`${a}nvidia_nim.svg`,Ollama:`${a}ollama.svg`,"Ollama Chat":`${a}ollama.svg`,Oobabooga:`${a}openai_small.svg`,OpenAI:`${a}openai_small.svg`,"Openai Like":`${a}openai_small.svg`,"OpenAI Text Completion":`${a}openai_small.svg`,"OpenAI-Compatible Text Completion Models (Together AI, etc.)":`${a}openai_small.svg`,"OpenAI-Compatible Endpoints (Together AI, etc.)":`${a}openai_small.svg`,Openrouter:`${a}openrouter.svg`,"Oracle Cloud Infrastructure (OCI)":`${a}oracle.svg`,Perplexity:`${a}perplexity-ai.svg`,Recraft:`${a}recraft.svg`,Replicate:`${a}replicate.svg`,RunwayML:`${a}runwayml.png`,Sagemaker:`${a}bedrock.svg`,Sambanova:`${a}sambanova.svg`,"SAP Generative AI Hub":`${a}sap.png`,Snowflake:`${a}snowflake.svg`,"Text-Completion-Codestral":`${a}mistral.svg`,TogetherAI:`${a}togetherai.svg`,Topaz:`${a}topaz.svg`,Triton:`${a}nvidia_triton.png`,V0:`${a}v0.svg`,"Vercel Ai Gateway":`${a}vercel.svg`,"Vertex AI (Anthropic, Gemini, etc.)":`${a}google.svg`,"Vertex Ai Beta":`${a}google.svg`,Vllm:`${a}vllm.png`,VolcEngine:`${a}volcengine.png`,"Voyage AI":`${a}voyage.webp`,Watsonx:`${a}watsonx.svg`,"Watsonx Text":`${a}watsonx.svg`,xAI:`${a}xai.svg`,Xinference:`${a}xinference.svg`};e.s(["Providers",()=>r,"getPlaceholder",0,e=>{if("AI/ML API"===e)return"aiml/flux-pro/v1.1";if("Vertex AI (Anthropic, Gemini, etc.)"===e)return"gemini-pro";if("Anthropic"==e)return"claude-3-opus";if("Amazon Bedrock"==e)return"claude-3-opus";if("AWS SageMaker"==e)return"sagemaker/jumpstart-dft-meta-textgeneration-llama-2-7b";else if("Google AI Studio"==e)return"gemini-pro";else if("Azure AI Foundry (Studio)"==e)return"azure_ai/command-r-plus";else if("Azure"==e)return"my-deployment";else if("Oracle Cloud Infrastructure (OCI)"==e)return"oci/xai.grok-4";else if("Snowflake"==e)return"snowflake/mistral-7b";else if("Voyage AI"==e)return"voyage/";else if("Jina AI"==e)return"jina_ai/";else if("VolcEngine"==e)return"volcengine/";else if("DeepInfra"==e)return"deepinfra/";else if("Fal AI"==e)return"fal_ai/fal-ai/flux-pro/v1.1-ultra";else if("RunwayML"==e)return"runwayml/gen4_turbo";else if("Watsonx"===e)return"watsonx/ibm/granite-3-3-8b-instruct";else if("Cursor"===e)return"cursor/claude-4-sonnet";else if("Z.AI (Zhipu AI)"===e)return"zai/glm-4.5";else return"gpt-3.5-turbo"},"getProviderLogoAndName",0,e=>{if(!e)return{logo:"",displayName:"-"};if("gemini"===e.toLowerCase()){let e="Google AI Studio";return{logo:i[e],displayName:e}}let t=Object.keys(n).find(t=>n[t].toLowerCase()===e.toLowerCase());if(!t)return{logo:"",displayName:e};let a=r[t];return{logo:i[a],displayName:a}},"getProviderModels",0,(e,t)=>{console.log(`Provider key: ${e}`);let r=n[e];console.log(`Provider mapped to: ${r}`);let a=[];return e&&"object"==typeof t&&(Object.entries(t).forEach(([e,t])=>{if(null!==t&&"object"==typeof t&&"litellm_provider"in t){let n=t.litellm_provider;(n===r||"string"==typeof n&&n.includes(r))&&a.push(e)}}),"Cohere"==e&&(console.log("Adding cohere chat models"),Object.entries(t).forEach(([e,t])=>{null!==t&&"object"==typeof t&&"litellm_provider"in t&&"cohere_chat"===t.litellm_provider&&a.push(e)})),"AWS SageMaker"==e&&(console.log("Adding sagemaker chat models"),Object.entries(t).forEach(([e,t])=>{null!==t&&"object"==typeof t&&"litellm_provider"in t&&"sagemaker_chat"===t.litellm_provider&&a.push(e)}))),a},"providerLogoMap",0,i,"provider_map",0,n])},798496,e=>{"use strict";var t=e.i(843476),r=e.i(152990),n=e.i(682830),a=e.i(271645),i=e.i(269200),s=e.i(427612),o=e.i(64848),l=e.i(942232),u=e.i(496020),c=e.i(977572),d=e.i(94629),m=e.i(360820),f=e.i(871943);e.s(["ModelDataTable",0,function({data:e=[],columns:h,isLoading:p=!1,defaultSorting:g=[],pagination:v,onPaginationChange:b,enablePagination:y=!1,onRowClick:A}){let[w,x]=a.default.useState(g),[C]=a.default.useState("onChange"),[S,_]=a.default.useState({}),[E,T]=a.default.useState({}),I=(0,r.useReactTable)({data:e,columns:h,state:{sorting:w,columnSizing:S,columnVisibility:E,...y&&v?{pagination:v}:{}},columnResizeMode:C,onSortingChange:x,onColumnSizingChange:_,onColumnVisibilityChange:T,...y&&b?{onPaginationChange:b}:{},getCoreRowModel:(0,n.getCoreRowModel)(),getSortedRowModel:(0,n.getSortedRowModel)(),...y?{getPaginationRowModel:(0,n.getPaginationRowModel)()}:{},enableSorting:!0,enableColumnResizing:!0,defaultColumn:{minSize:40,maxSize:500}});return(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsx)("div",{className:"relative min-w-full",children:(0,t.jsxs)(i.Table,{className:"[&_td]:py-2 [&_th]:py-2",style:{width:I.getTotalSize(),minWidth:"100%",tableLayout:"fixed"},children:[(0,t.jsx)(s.TableHead,{children:I.getHeaderGroups().map(e=>(0,t.jsx)(u.TableRow,{children:e.headers.map(e=>(0,t.jsxs)(o.TableHeaderCell,{className:`py-1 h-8 relative ${"actions"===e.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)] w-[120px] ml-8":""} ${e.column.columnDef.meta?.className||""}`,style:{width:"actions"===e.id?120:e.getSize(),position:"actions"===e.id?"sticky":"relative",right:"actions"===e.id?0:"auto"},onClick:e.column.getCanSort()?e.column.getToggleSortingHandler():void 0,children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,r.flexRender)(e.column.columnDef.header,e.getContext())}),"actions"!==e.id&&e.column.getCanSort()&&(0,t.jsx)("div",{className:"w-4",children:e.column.getIsSorted()?({asc:(0,t.jsx)(m.ChevronUpIcon,{className:"h-4 w-4 text-blue-500"}),desc:(0,t.jsx)(f.ChevronDownIcon,{className:"h-4 w-4 text-blue-500"})})[e.column.getIsSorted()]:(0,t.jsx)(d.SwitchVerticalIcon,{className:"h-4 w-4 text-gray-400"})})]}),e.column.getCanResize()&&(0,t.jsx)("div",{onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:`absolute right-0 top-0 h-full w-2 cursor-col-resize select-none touch-none ${e.column.getIsResizing()?"bg-blue-500":"hover:bg-blue-200"}`})]},e.id))},e.id))}),(0,t.jsx)(l.TableBody,{children:p?(0,t.jsx)(u.TableRow,{children:(0,t.jsx)(c.TableCell,{colSpan:h.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"🚅 Loading models..."})})})}):I.getRowModel().rows.length>0?I.getRowModel().rows.map(e=>(0,t.jsx)(u.TableRow,{onClick:()=>A?.(e.original),className:A?"cursor-pointer hover:bg-gray-50":"",children:e.getVisibleCells().map(e=>(0,t.jsx)(c.TableCell,{className:`py-0.5 overflow-hidden ${"actions"===e.column.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)] w-[120px] ml-8":""} ${e.column.columnDef.meta?.className||""}`,style:{width:"actions"===e.column.id?120:e.column.getSize(),position:"actions"===e.column.id?"sticky":"relative",right:"actions"===e.column.id?0:"auto"},children:(0,r.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(u.TableRow,{children:(0,t.jsx)(c.TableCell,{colSpan:h.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No models found"})})})})})]})})})})}])},149121,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(152990),a=e.i(682830),i=e.i(269200),s=e.i(427612),o=e.i(64848),l=e.i(942232),u=e.i(496020),c=e.i(977572);e.s(["DataTable",0,function({data:e=[],columns:d,onRowClick:m,renderSubComponent:f,renderChildRows:h,getRowCanExpand:p,isLoading:g=!1,loadingMessage:v="🚅 Loading logs...",noDataMessage:b="No logs found",enableSorting:y=!1}){let A=!!(f||h)&&!!p,[w,x]=(0,r.useState)([]),C=(0,n.useReactTable)({data:e,columns:d,...y&&{state:{sorting:w},onSortingChange:x,enableSortingRemoval:!1},...A&&{getRowCanExpand:p},getRowId:(e,t)=>e?.request_id??String(t),getCoreRowModel:(0,a.getCoreRowModel)(),...y&&{getSortedRowModel:(0,a.getSortedRowModel)()},...A&&{getExpandedRowModel:(0,a.getExpandedRowModel)()}});return(0,t.jsx)("div",{className:"rounded-lg custom-border overflow-x-auto w-full max-w-full box-border",children:(0,t.jsxs)(i.Table,{className:"[&_td]:py-0.5 [&_th]:py-1 table-fixed w-full box-border",style:{minWidth:"400px"},children:[(0,t.jsx)(s.TableHead,{children:C.getHeaderGroups().map(e=>(0,t.jsx)(u.TableRow,{children:e.headers.map(e=>{let r=y&&e.column.getCanSort(),a=e.column.getIsSorted();return(0,t.jsx)(o.TableHeaderCell,{className:`py-1 h-8 ${r?"cursor-pointer select-none hover:bg-gray-50":""}`,onClick:r?e.column.getToggleSortingHandler():void 0,children:e.isPlaceholder?null:(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.flexRender)(e.column.columnDef.header,e.getContext()),r&&(0,t.jsx)("span",{className:"text-gray-400",children:"asc"===a?"↑":"desc"===a?"↓":"⇅"})]})},e.id)})},e.id))}),(0,t.jsx)(l.TableBody,{children:g?(0,t.jsx)(u.TableRow,{children:(0,t.jsx)(c.TableCell,{colSpan:d.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:v})})})}):C.getRowModel().rows.length>0?C.getRowModel().rows.map(e=>(0,t.jsxs)(r.Fragment,{children:[(0,t.jsx)(u.TableRow,{className:`h-8 ${m?"cursor-pointer hover:bg-gray-50":""}`,onClick:()=>m?.(e.original),children:e.getVisibleCells().map(e=>(0,t.jsx)(c.TableCell,{className:"py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap",children:(0,n.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))}),A&&e.getIsExpanded()&&h&&h({row:e}),A&&e.getIsExpanded()&&f&&!h&&(0,t.jsx)(u.TableRow,{children:(0,t.jsx)(c.TableCell,{colSpan:e.getVisibleCells().length,className:"p-0",children:(0,t.jsx)("div",{className:"w-full max-w-full overflow-hidden box-border",children:f({row:e})})})})]},e.id)):(0,t.jsx)(u.TableRow,{children:(0,t.jsx)(c.TableCell,{colSpan:d.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:b})})})})})]})})}])},37091,e=>{"use strict";var t=e.i(290571),r=e.i(95779),n=e.i(444755),a=e.i(673706),i=e.i(271645);let s=i.default.forwardRef((e,s)=>{let{color:o,children:l,className:u}=e,c=(0,t.__rest)(e,["color","children","className"]);return i.default.createElement("p",Object.assign({ref:s,className:(0,n.tremorTwMerge)(o?(0,a.getColorClassNames)(o,r.colorPalette.lightText).textColor:"text-tremor-content-emphasis dark:text-dark-tremor-content-emphasis",u)},c),l)});s.displayName="Subtitle",e.s(["Subtitle",0,s],37091)},883552,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(562901),n=e.i(343794),a=e.i(914949),i=e.i(529681),s=e.i(242064),o=e.i(829672),l=e.i(285781),u=e.i(836938),c=e.i(920228),d=e.i(62405),m=e.i(408850),f=e.i(87414),h=e.i(310730);let p=(0,e.i(246422).genStyleHooks)("Popconfirm",e=>(e=>{let{componentCls:t,iconCls:r,antCls:n,zIndexPopup:a,colorText:i,colorWarning:s,marginXXS:o,marginXS:l,fontSize:u,fontWeightStrong:c,colorTextHeading:d}=e;return{[t]:{zIndex:a,[`&${n}-popover`]:{fontSize:u},[`${t}-message`]:{marginBottom:l,display:"flex",flexWrap:"nowrap",alignItems:"start",[`> ${t}-message-icon ${r}`]:{color:s,fontSize:u,lineHeight:1,marginInlineEnd:l},[`${t}-title`]:{fontWeight:c,color:d,"&:only-child":{fontWeight:"normal"}},[`${t}-description`]:{marginTop:o,color:i}},[`${t}-buttons`]:{textAlign:"end",whiteSpace:"nowrap",button:{marginInlineStart:l}}}}})(e),e=>{let{zIndexPopupBase:t}=e;return{zIndexPopup:t+60}},{resetStyle:!1});var g=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,n=Object.getOwnPropertySymbols(e);at.indexOf(n[a])&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};let v=e=>{let{prefixCls:n,okButtonProps:a,cancelButtonProps:i,title:o,description:h,cancelText:p,okText:g,okType:v="primary",icon:b=t.createElement(r.default,null),showCancel:y=!0,close:A,onConfirm:w,onCancel:x,onPopupClick:C}=e,{getPrefixCls:S}=t.useContext(s.ConfigContext),[_]=(0,m.useLocale)("Popconfirm",f.default.Popconfirm),E=(0,u.getRenderPropValue)(o),T=(0,u.getRenderPropValue)(h);return t.createElement("div",{className:`${n}-inner-content`,onClick:C},t.createElement("div",{className:`${n}-message`},b&&t.createElement("span",{className:`${n}-message-icon`},b),t.createElement("div",{className:`${n}-message-text`},E&&t.createElement("div",{className:`${n}-title`},E),T&&t.createElement("div",{className:`${n}-description`},T))),t.createElement("div",{className:`${n}-buttons`},y&&t.createElement(c.default,Object.assign({onClick:x,size:"small"},i),p||(null==_?void 0:_.cancelText)),t.createElement(l.default,{buttonProps:Object.assign(Object.assign({size:"small"},(0,d.convertLegacyProps)(v)),a),actionFn:w,close:A,prefixCls:S("btn"),quitOnNullishReturnValue:!0,emitEvent:!0},g||(null==_?void 0:_.okText))))};var b=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,n=Object.getOwnPropertySymbols(e);at.indexOf(n[a])&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};let y=t.forwardRef((e,l)=>{var u,c;let{prefixCls:d,placement:m="top",trigger:f="click",okType:h="primary",icon:g=t.createElement(r.default,null),children:y,overlayClassName:A,onOpenChange:w,onVisibleChange:x,overlayStyle:C,styles:S,classNames:_}=e,E=b(e,["prefixCls","placement","trigger","okType","icon","children","overlayClassName","onOpenChange","onVisibleChange","overlayStyle","styles","classNames"]),{getPrefixCls:T,className:I,style:O,classNames:M,styles:R}=(0,s.useComponentConfig)("popconfirm"),[k,$]=(0,a.default)(!1,{value:null!=(u=e.open)?u:e.visible,defaultValue:null!=(c=e.defaultOpen)?c:e.defaultVisible}),N=(e,t)=>{$(e,!0),null==x||x(e),null==w||w(e,t)},L=T("popconfirm",d),j=(0,n.default)(L,I,A,M.root,null==_?void 0:_.root),D=(0,n.default)(M.body,null==_?void 0:_.body),[P]=p(L);return P(t.createElement(o.default,Object.assign({},(0,i.default)(E,["title"]),{trigger:f,placement:m,onOpenChange:(t,r)=>{let{disabled:n=!1}=e;n||N(t,r)},open:k,ref:l,classNames:{root:j,body:D},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},R.root),O),C),null==S?void 0:S.root),body:Object.assign(Object.assign({},R.body),null==S?void 0:S.body)},content:t.createElement(v,Object.assign({okType:h,icon:g},e,{prefixCls:L,close:e=>{N(!1,e)},onConfirm:t=>{var r;return null==(r=e.onConfirm)?void 0:r.call(void 0,t)},onCancel:t=>{var r;N(!1,t),null==(r=e.onCancel)||r.call(void 0,t)}})),"data-popover-inject":!0}),y))});y._InternalPanelDoNotUseOrYouWillBeFired=e=>{let{prefixCls:r,placement:a,className:i,style:o}=e,l=g(e,["prefixCls","placement","className","style"]),{getPrefixCls:u}=t.useContext(s.ConfigContext),c=u("popconfirm",r),[d]=p(c);return d(t.createElement(h.default,{placement:a,className:(0,n.default)(c,i),style:o,content:t.createElement(v,Object.assign({prefixCls:c},l))}))},e.s(["Popconfirm",0,y],883552)},446891,836991,e=>{"use strict";var t=e.i(843476),r=e.i(464571),n=e.i(326373),a=e.i(94629),i=e.i(360820),s=e.i(871943),o=e.i(271645);let l=o.forwardRef(function(e,t){return o.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),o.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"}))});e.s(["XIcon",0,l],836991),e.s(["TableHeaderSortDropdown",0,({sortState:e,onSortChange:o})=>{let u=[{key:"asc",label:"Ascending",icon:(0,t.jsx)(i.ChevronUpIcon,{className:"h-4 w-4"})},{key:"desc",label:"Descending",icon:(0,t.jsx)(s.ChevronDownIcon,{className:"h-4 w-4"})},{key:"reset",label:"Reset",icon:(0,t.jsx)(l,{className:"h-4 w-4"})}];return(0,t.jsx)(n.Dropdown,{menu:{items:u,onClick:({key:e})=>{"asc"===e?o("asc"):"desc"===e?o("desc"):"reset"===e&&o(!1)},selectable:!0,selectedKeys:e?[e]:[]},trigger:["click"],autoAdjustOverflow:!0,children:(0,t.jsx)(r.Button,{type:"text",onClick:e=>e.stopPropagation(),icon:"asc"===e?(0,t.jsx)(i.ChevronUpIcon,{className:"h-4 w-4"}):"desc"===e?(0,t.jsx)(s.ChevronDownIcon,{className:"h-4 w-4"}):(0,t.jsx)(a.SwitchVerticalIcon,{className:"h-4 w-4"}),className:e?"text-blue-500 hover:text-blue-600":"text-gray-400 hover:text-blue-500"})})}],446891)},987432,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z"}}]},name:"save",theme:"outlined"};var a=e.i(9583),i=r.forwardRef(function(e,i){return r.createElement(a.default,(0,t.default)({},e,{ref:i,icon:n}))});e.s(["SaveOutlined",0,i],987432)},750113,e=>{"use strict";var t=e.i(684024);e.s(["QuestionCircleOutlined",()=>t.default])},724154,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372 0-89 31.3-170.8 83.5-234.8l523.3 523.3C682.8 852.7 601 884 512 884zm288.5-137.2L277.2 223.5C341.2 171.3 423 140 512 140c205.4 0 372 166.6 372 372 0 89-31.3 170.8-83.5 234.8z"}}]},name:"stop",theme:"outlined"};var a=e.i(9583),i=r.forwardRef(function(e,i){return r.createElement(a.default,(0,t.default)({},e,{ref:i,icon:n}))});e.s(["StopOutlined",0,i],724154)},153472,e=>{"use strict";var t,r,n=e.i(266027),a=e.i(954616),i=e.i(912598),s=e.i(243652),o=e.i(135214),l=e.i(764205),u=((t={}).GENERAL_SETTINGS="general_settings",t),c=((r={}).MAXIMUM_SPEND_LOGS_RETENTION_PERIOD="maximum_spend_logs_retention_period",r);let d=async(e,t)=>{try{let r=l.proxyBaseUrl?`${l.proxyBaseUrl}/config/list?config_type=${t}`:`/config/list?config_type=${t}`,n=await fetch(r,{method:"GET",headers:{[(0,l.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=(0,l.deriveErrorMessage)(e);throw(0,l.handleError)(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to get proxy config for ${t}:`,e),e}},m=(0,s.createQueryKeys)("proxyConfig"),f=async(e,t)=>{try{let r=l.proxyBaseUrl?`${l.proxyBaseUrl}/config/field/delete`:"/config/field/delete",n=await fetch(r,{method:"POST",headers:{[(0,l.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok){let e=await n.json(),t=(0,l.deriveErrorMessage)(e);throw(0,l.handleError)(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to delete proxy config field ${t.field_name}:`,e),e}};e.s(["ConfigType",()=>u,"GeneralSettingsFieldName",()=>c,"proxyConfigKeys",0,m,"useDeleteProxyConfigField",0,()=>{let{accessToken:e}=(0,o.default)(),t=(0,i.useQueryClient)();return(0,a.useMutation)({mutationFn:async t=>{if(!e)throw Error("Access token is required");return await f(e,t)},onSuccess:()=>{t.invalidateQueries({queryKey:m.all})}})},"useProxyConfig",0,e=>{let{accessToken:t}=(0,o.default)();return(0,n.useQuery)({queryKey:m.list({filters:{configType:e}}),queryFn:async()=>await d(t,e),enabled:!!t})}])},475647,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M696 480H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"plus-circle",theme:"outlined"};var a=e.i(9583),i=r.forwardRef(function(e,i){return r.createElement(a.default,(0,t.default)({},e,{ref:i,icon:n}))});e.s(["PlusCircleOutlined",0,i],475647)},286536,77705,e=>{"use strict";var t=e.i(475254);let r=(0,t.default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Eye",0,r],286536);let n=(0,t.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);e.s(["EyeOff",0,n],77705)},888288,e=>{"use strict";var t=e.i(271645);e.s(["default",0,(e,r)=>{let n=void 0!==r,[a,i]=(0,t.useState)(e);return[n?r:a,e=>{n||i(e)}]}])},793130,e=>{"use strict";var t=e.i(290571),r=e.i(783222),n=e.i(433336),a=e.i(271645),i=e.i(394487),s=e.i(503269),o=e.i(214520),l=e.i(746725),u=e.i(914189),c=e.i(144279),d=e.i(294316),m=e.i(601893),f=e.i(140721),h=e.i(942803),p=e.i(233538),g=e.i(694421),v=e.i(700020),b=e.i(35889),y=e.i(998348),A=e.i(722678);let w=(0,a.createContext)(null);w.displayName="GroupContext";let x=a.Fragment,C=Object.assign((0,v.forwardRefWithAs)(function(e,t){var x;let C=(0,a.useId)(),S=(0,h.useProvidedId)(),_=(0,m.useDisabled)(),{id:E=S||`headlessui-switch-${C}`,disabled:T=_||!1,checked:I,defaultChecked:O,onChange:M,name:R,value:k,form:$,autoFocus:N=!1,...L}=e,j=(0,a.useContext)(w),[D,P]=(0,a.useState)(null),z=(0,a.useRef)(null),F=(0,d.useSyncRefs)(z,t,null===j?null:j.setSwitch,P),V=(0,o.useDefaultValue)(O),[H,B]=(0,s.useControllable)(I,M,null!=V&&V),G=(0,l.useDisposables)(),[U,W]=(0,a.useState)(!1),q=(0,u.useEvent)(()=>{W(!0),null==B||B(!H),G.nextFrame(()=>{W(!1)})}),K=(0,u.useEvent)(e=>{if((0,p.isDisabledReactIssue7711)(e.currentTarget))return e.preventDefault();e.preventDefault(),q()}),Y=(0,u.useEvent)(e=>{e.key===y.Keys.Space?(e.preventDefault(),q()):e.key===y.Keys.Enter&&(0,g.attemptSubmit)(e.currentTarget)}),X=(0,u.useEvent)(e=>e.preventDefault()),Z=(0,A.useLabelledBy)(),Q=(0,b.useDescribedBy)(),{isFocusVisible:J,focusProps:ee}=(0,r.useFocusRing)({autoFocus:N}),{isHovered:et,hoverProps:er}=(0,n.useHover)({isDisabled:T}),{pressed:en,pressProps:ea}=(0,i.useActivePress)({disabled:T}),ei=(0,a.useMemo)(()=>({checked:H,disabled:T,hover:et,focus:J,active:en,autofocus:N,changing:U}),[H,et,J,en,T,U,N]),es=(0,v.mergeProps)({id:E,ref:F,role:"switch",type:(0,c.useResolveButtonType)(e,D),tabIndex:-1===e.tabIndex?0:null!=(x=e.tabIndex)?x:0,"aria-checked":H,"aria-labelledby":Z,"aria-describedby":Q,disabled:T||void 0,autoFocus:N,onClick:K,onKeyUp:Y,onKeyPress:X},ee,er,ea),eo=(0,a.useCallback)(()=>{if(void 0!==V)return null==B?void 0:B(V)},[B,V]),el=(0,v.useRender)();return a.default.createElement(a.default.Fragment,null,null!=R&&a.default.createElement(f.FormFields,{disabled:T,data:{[R]:k||"on"},overrides:{type:"checkbox",checked:H},form:$,onReset:eo}),el({ourProps:es,theirProps:L,slot:ei,defaultTag:"button",name:"Switch"}))}),{Group:function(e){var t;let[r,n]=(0,a.useState)(null),[i,s]=(0,A.useLabels)(),[o,l]=(0,b.useDescriptions)(),u=(0,a.useMemo)(()=>({switch:r,setSwitch:n}),[r,n]),c=(0,v.useRender)();return a.default.createElement(l,{name:"Switch.Description",value:o},a.default.createElement(s,{name:"Switch.Label",value:i,props:{htmlFor:null==(t=u.switch)?void 0:t.id,onClick(e){r&&(e.currentTarget instanceof HTMLLabelElement&&e.preventDefault(),r.click(),r.focus({preventScroll:!0}))}}},a.default.createElement(w.Provider,{value:u},c({ourProps:{},theirProps:e,slot:{},defaultTag:x,name:"Switch.Group"}))))},Label:A.Label,Description:b.Description});var S=e.i(888288),_=e.i(95779),E=e.i(444755),T=e.i(673706),I=e.i(829087);let O=(0,T.makeClassName)("Switch"),M=a.default.forwardRef((e,r)=>{let{checked:n,defaultChecked:i=!1,onChange:s,color:o,name:l,error:u,errorMessage:c,disabled:d,required:m,tooltip:f,id:h}=e,p=(0,t.__rest)(e,["checked","defaultChecked","onChange","color","name","error","errorMessage","disabled","required","tooltip","id"]),g={bgColor:o?(0,T.getColorClassNames)(o,_.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",ringColor:o?(0,T.getColorClassNames)(o,_.colorPalette.ring).ringColor:"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"},[v,b]=(0,S.default)(i,n),[y,A]=(0,a.useState)(!1),{tooltipProps:w,getReferenceProps:x}=(0,I.useTooltip)(300);return a.default.createElement("div",{className:"flex flex-row items-center justify-start"},a.default.createElement(I.default,Object.assign({text:f},w)),a.default.createElement("div",Object.assign({ref:(0,T.mergeRefs)([r,w.refs.setReference]),className:(0,E.tremorTwMerge)(O("root"),"flex flex-row relative h-5")},p,x),a.default.createElement("input",{type:"checkbox",className:(0,E.tremorTwMerge)(O("input"),"absolute w-5 h-5 cursor-pointer left-0 top-0 opacity-0"),name:l,required:m,checked:v,onChange:e=>{e.preventDefault()}}),a.default.createElement(C,{checked:v,onChange:e=>{b(e),null==s||s(e)},disabled:d,className:(0,E.tremorTwMerge)(O("switch"),"w-10 h-5 group relative inline-flex shrink-0 cursor-pointer items-center justify-center rounded-tremor-full","focus:outline-none",d?"cursor-not-allowed":""),onFocus:()=>A(!0),onBlur:()=>A(!1),id:h},a.default.createElement("span",{className:(0,E.tremorTwMerge)(O("sr-only"),"sr-only")},"Switch ",v?"on":"off"),a.default.createElement("span",{"aria-hidden":"true",className:(0,E.tremorTwMerge)(O("background"),v?g.bgColor:"bg-tremor-border dark:bg-dark-tremor-border","pointer-events-none absolute mx-auto h-3 w-9 rounded-tremor-full transition-colors duration-100 ease-in-out")}),a.default.createElement("span",{"aria-hidden":"true",className:(0,E.tremorTwMerge)(O("round"),v?(0,E.tremorTwMerge)(g.bgColor,"translate-x-5 border-tremor-background dark:border-dark-tremor-background"):"translate-x-0 bg-tremor-border dark:bg-dark-tremor-border border-tremor-background dark:border-dark-tremor-background","pointer-events-none absolute left-0 inline-block h-5 w-5 transform rounded-tremor-full border-2 shadow-tremor-input duration-100 ease-in-out transition",y?(0,E.tremorTwMerge)("ring-2",g.ringColor):"")}))),u&&c?a.default.createElement("p",{className:(0,E.tremorTwMerge)(O("errorMessage"),"text-sm text-red-500 mt-1 ")},c):null)});M.displayName="Switch",e.s(["Switch",0,M],793130)},418371,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(916925);e.s(["ProviderLogo",0,({provider:e,className:a="w-4 h-4"})=>{let[i,s]=(0,r.useState)(!1),{logo:o}=(0,n.getProviderLogoAndName)(e);return i||!o?(0,t.jsx)("div",{className:`${a} rounded-full bg-gray-200 flex items-center justify-center text-xs`,children:e?.charAt(0)||"-"}):(0,t.jsx)("img",{src:o,alt:`${e} logo`,className:a,onError:()=>s(!0)})}])},368670,539677,e=>{"use strict";var t=e.i(764205),r=e.i(266027);let n=(0,e.i(243652).createQueryKeys)("modelCostMap");e.s(["useModelCostMap",0,()=>(0,r.useQuery)({queryKey:n.list({}),queryFn:async()=>await (0,t.modelCostMap)(),staleTime:6e4,gcTime:6e4})],368670),e.i(247167);var a=e.i(931067),i=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M740 161c-61.8 0-112 50.2-112 112 0 50.1 33.1 92.6 78.5 106.9v95.9L320 602.4V318.1c44.2-15 76-56.9 76-106.1 0-61.8-50.2-112-112-112s-112 50.2-112 112c0 49.2 31.8 91 76 106.1V706c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1v-27.8l423.5-138.7a50.52 50.52 0 0034.9-48.2V378.2c42.9-15.8 73.6-57 73.6-105.2 0-61.8-50.2-112-112-112zm-504 51a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm96 600a48.01 48.01 0 01-96 0 48.01 48.01 0 0196 0zm408-491a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"}}]},name:"branches",theme:"outlined"};var o=e.i(9583),l=i.forwardRef(function(e,t){return i.createElement(o.default,(0,a.default)({},e,{ref:t,icon:s}))});e.s(["BranchesOutlined",0,l],539677)},738014,e=>{"use strict";var t=e.i(135214),r=e.i(764205),n=e.i(266027);let a=(0,e.i(243652).createQueryKeys)("users");e.s(["useCurrentUser",0,()=>{let{accessToken:e,userId:i}=(0,t.default)();return(0,n.useQuery)({queryKey:a.detail(i),queryFn:async()=>await (0,r.userGetInfoV2)(e),enabled:!!(e&&i)})}])},160818,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.4 800.9c.2-.3.5-.6.7-.9C920.6 722.1 960 621.7 960 512s-39.4-210.1-104.8-288c-.2-.3-.5-.5-.7-.8-1.1-1.3-2.1-2.5-3.2-3.7-.4-.5-.8-.9-1.2-1.4l-4.1-4.7-.1-.1c-1.5-1.7-3.1-3.4-4.6-5.1l-.1-.1c-3.2-3.4-6.4-6.8-9.7-10.1l-.1-.1-4.8-4.8-.3-.3c-1.5-1.5-3-2.9-4.5-4.3-.5-.5-1-1-1.6-1.5-1-1-2-1.9-3-2.8-.3-.3-.7-.6-1-1C736.4 109.2 629.5 64 512 64s-224.4 45.2-304.3 119.2c-.3.3-.7.6-1 1-1 .9-2 1.9-3 2.9-.5.5-1 1-1.6 1.5-1.5 1.4-3 2.9-4.5 4.3l-.3.3-4.8 4.8-.1.1c-3.3 3.3-6.5 6.7-9.7 10.1l-.1.1c-1.6 1.7-3.1 3.4-4.6 5.1l-.1.1c-1.4 1.5-2.8 3.1-4.1 4.7-.4.5-.8.9-1.2 1.4-1.1 1.2-2.1 2.5-3.2 3.7-.2.3-.5.5-.7.8C103.4 301.9 64 402.3 64 512s39.4 210.1 104.8 288c.2.3.5.6.7.9l3.1 3.7c.4.5.8.9 1.2 1.4l4.1 4.7c0 .1.1.1.1.2 1.5 1.7 3 3.4 4.6 5l.1.1c3.2 3.4 6.4 6.8 9.6 10.1l.1.1c1.6 1.6 3.1 3.2 4.7 4.7l.3.3c3.3 3.3 6.7 6.5 10.1 9.6 80.1 74 187 119.2 304.5 119.2s224.4-45.2 304.3-119.2a300 300 0 0010-9.6l.3-.3c1.6-1.6 3.2-3.1 4.7-4.7l.1-.1c3.3-3.3 6.5-6.7 9.6-10.1l.1-.1c1.5-1.7 3.1-3.3 4.6-5 0-.1.1-.1.1-.2 1.4-1.5 2.8-3.1 4.1-4.7.4-.5.8-.9 1.2-1.4a99 99 0 003.3-3.7zm4.1-142.6c-13.8 32.6-32 62.8-54.2 90.2a444.07 444.07 0 00-81.5-55.9c11.6-46.9 18.8-98.4 20.7-152.6H887c-3 40.9-12.6 80.6-28.5 118.3zM887 484H743.5c-1.9-54.2-9.1-105.7-20.7-152.6 29.3-15.6 56.6-34.4 81.5-55.9A373.86 373.86 0 01887 484zM658.3 165.5c39.7 16.8 75.8 40 107.6 69.2a394.72 394.72 0 01-59.4 41.8c-15.7-45-35.8-84.1-59.2-115.4 3.7 1.4 7.4 2.9 11 4.4zm-90.6 700.6c-9.2 7.2-18.4 12.7-27.7 16.4V697a389.1 389.1 0 01115.7 26.2c-8.3 24.6-17.9 47.3-29 67.8-17.4 32.4-37.8 58.3-59 75.1zm59-633.1c11 20.6 20.7 43.3 29 67.8A389.1 389.1 0 01540 327V141.6c9.2 3.7 18.5 9.1 27.7 16.4 21.2 16.7 41.6 42.6 59 75zM540 640.9V540h147.5c-1.6 44.2-7.1 87.1-16.3 127.8l-.3 1.2A445.02 445.02 0 00540 640.9zm0-156.9V383.1c45.8-2.8 89.8-12.5 130.9-28.1l.3 1.2c9.2 40.7 14.7 83.5 16.3 127.8H540zm-56 56v100.9c-45.8 2.8-89.8 12.5-130.9 28.1l-.3-1.2c-9.2-40.7-14.7-83.5-16.3-127.8H484zm-147.5-56c1.6-44.2 7.1-87.1 16.3-127.8l.3-1.2c41.1 15.6 85 25.3 130.9 28.1V484H336.5zM484 697v185.4c-9.2-3.7-18.5-9.1-27.7-16.4-21.2-16.7-41.7-42.7-59.1-75.1-11-20.6-20.7-43.3-29-67.8 37.2-14.6 75.9-23.3 115.8-26.1zm0-370a389.1 389.1 0 01-115.7-26.2c8.3-24.6 17.9-47.3 29-67.8 17.4-32.4 37.8-58.4 59.1-75.1 9.2-7.2 18.4-12.7 27.7-16.4V327zM365.7 165.5c3.7-1.5 7.3-3 11-4.4-23.4 31.3-43.5 70.4-59.2 115.4-21-12-40.9-26-59.4-41.8 31.8-29.2 67.9-52.4 107.6-69.2zM165.5 365.7c13.8-32.6 32-62.8 54.2-90.2 24.9 21.5 52.2 40.3 81.5 55.9-11.6 46.9-18.8 98.4-20.7 152.6H137c3-40.9 12.6-80.6 28.5-118.3zM137 540h143.5c1.9 54.2 9.1 105.7 20.7 152.6a444.07 444.07 0 00-81.5 55.9A373.86 373.86 0 01137 540zm228.7 318.5c-39.7-16.8-75.8-40-107.6-69.2 18.5-15.8 38.4-29.7 59.4-41.8 15.7 45 35.8 84.1 59.2 115.4-3.7-1.4-7.4-2.9-11-4.4zm292.6 0c-3.7 1.5-7.3 3-11 4.4 23.4-31.3 43.5-70.4 59.2-115.4 21 12 40.9 26 59.4 41.8a373.81 373.81 0 01-107.6 69.2z"}}]},name:"global",theme:"outlined"};var a=e.i(9583),i=r.forwardRef(function(e,i){return r.createElement(a.default,(0,t.default)({},e,{ref:i,icon:n}))});e.s(["GlobalOutlined",0,i],160818)},751904,e=>{"use strict";var t=e.i(401361);e.s(["EditOutlined",()=>t.default])},564897,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"minus-circle",theme:"outlined"};var a=e.i(9583),i=r.forwardRef(function(e,i){return r.createElement(a.default,(0,t.default)({},e,{ref:i,icon:n}))});e.s(["MinusCircleOutlined",0,i],564897)},822315,(e,t,r)=>{e.e,t.exports=function(){"use strict";var e="millisecond",t="second",r="minute",n="hour",a="week",i="month",s="quarter",o="year",l="date",u="Invalid Date",c=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,d=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,m=function(e,t,r){var n=String(e);return!n||n.length>=t?e:""+Array(t+1-n.length).join(r)+e},f="en",h={};h[f]={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],r=e%100;return"["+e+(t[(r-20)%10]||t[r]||t[0])+"]"}};var p="$isDayjsObject",g=function(e){return e instanceof A||!(!e||!e[p])},v=function e(t,r,n){var a;if(!t)return f;if("string"==typeof t){var i=t.toLowerCase();h[i]&&(a=i),r&&(h[i]=r,a=i);var s=t.split("-");if(!a&&s.length>1)return e(s[0])}else{var o=t.name;h[o]=t,a=o}return!n&&a&&(f=a),a||!n&&f},b=function(e,t){if(g(e))return e.clone();var r="object"==typeof t?t:{};return r.date=e,r.args=arguments,new A(r)},y={s:m,z:function(e){var t=-e.utcOffset(),r=Math.abs(t);return(t<=0?"+":"-")+m(Math.floor(r/60),2,"0")+":"+m(r%60,2,"0")},m:function e(t,r){if(t.date(){"use strict";var t=e.i(290571),r=e.i(271645);e.s(["default",0,e=>{var n=(0,t.__rest)(e,[]);return r.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},n),r.default.createElement("path",{d:"M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z"}))}])},446428,854056,e=>{"use strict";let t;var r=e.i(290571),n=e.i(271645);e.s(["default",0,e=>{var t=(0,r.__rest)(e,[]);return n.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},t),n.default.createElement("path",{d:"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 10.5858L9.17157 7.75736L7.75736 9.17157L10.5858 12L7.75736 14.8284L9.17157 16.2426L12 13.4142L14.8284 16.2426L16.2426 14.8284L13.4142 12L16.2426 9.17157L14.8284 7.75736L12 10.5858Z"}))}],446428);var a=e.i(746725),i=e.i(914189),s=e.i(553521),o=e.i(835696),l=e.i(941444),u=e.i(178677),c=e.i(294316),d=e.i(83733),m=e.i(233137),f=e.i(732607),h=e.i(397701),p=e.i(700020);function g(e){var t;return!!(e.enter||e.enterFrom||e.enterTo||e.leave||e.leaveFrom||e.leaveTo)||(null!=(t=e.as)?t:x)!==n.Fragment||1===n.default.Children.count(e.children)}let v=(0,n.createContext)(null);v.displayName="TransitionContext";var b=((t=b||{}).Visible="visible",t.Hidden="hidden",t);let y=(0,n.createContext)(null);function A(e){return"children"in e?A(e.children):e.current.filter(({el:e})=>null!==e.current).filter(({state:e})=>"visible"===e).length>0}function w(e,t){let r=(0,l.useLatestValue)(e),o=(0,n.useRef)([]),u=(0,s.useIsMounted)(),c=(0,a.useDisposables)(),d=(0,i.useEvent)((e,t=p.RenderStrategy.Hidden)=>{let n=o.current.findIndex(({el:t})=>t===e);-1!==n&&((0,h.match)(t,{[p.RenderStrategy.Unmount](){o.current.splice(n,1)},[p.RenderStrategy.Hidden](){o.current[n].state="hidden"}}),c.microTask(()=>{var e;!A(o)&&u.current&&(null==(e=r.current)||e.call(r))}))}),m=(0,i.useEvent)(e=>{let t=o.current.find(({el:t})=>t===e);return t?"visible"!==t.state&&(t.state="visible"):o.current.push({el:e,state:"visible"}),()=>d(e,p.RenderStrategy.Unmount)}),f=(0,n.useRef)([]),g=(0,n.useRef)(Promise.resolve()),v=(0,n.useRef)({enter:[],leave:[]}),b=(0,i.useEvent)((e,r,n)=>{f.current.splice(0),t&&(t.chains.current[r]=t.chains.current[r].filter(([t])=>t!==e)),null==t||t.chains.current[r].push([e,new Promise(e=>{f.current.push(e)})]),null==t||t.chains.current[r].push([e,new Promise(e=>{Promise.all(v.current[r].map(([e,t])=>t)).then(()=>e())})]),"enter"===r?g.current=g.current.then(()=>null==t?void 0:t.wait.current).then(()=>n(r)):n(r)}),y=(0,i.useEvent)((e,t,r)=>{Promise.all(v.current[t].splice(0).map(([e,t])=>t)).then(()=>{var e;null==(e=f.current.shift())||e()}).then(()=>r(t))});return(0,n.useMemo)(()=>({children:o,register:m,unregister:d,onStart:b,onStop:y,wait:g,chains:v}),[m,d,o,b,y,v,g])}y.displayName="NestingContext";let x=n.Fragment,C=p.RenderFeatures.RenderStrategy,S=(0,p.forwardRefWithAs)(function(e,t){let{show:r,appear:a=!1,unmount:s=!0,...l}=e,d=(0,n.useRef)(null),f=g(e),h=(0,c.useSyncRefs)(...f?[d,t]:null===t?[]:[t]);(0,u.useServerHandoffComplete)();let b=(0,m.useOpenClosed)();if(void 0===r&&null!==b&&(r=(b&m.State.Open)===m.State.Open),void 0===r)throw Error("A is used but it is missing a `show={true | false}` prop.");let[x,S]=(0,n.useState)(r?"visible":"hidden"),E=w(()=>{r||S("hidden")}),[T,I]=(0,n.useState)(!0),O=(0,n.useRef)([r]);(0,o.useIsoMorphicEffect)(()=>{!1!==T&&O.current[O.current.length-1]!==r&&(O.current.push(r),I(!1))},[O,r]);let M=(0,n.useMemo)(()=>({show:r,appear:a,initial:T}),[r,a,T]);(0,o.useIsoMorphicEffect)(()=>{r?S("visible"):A(E)||null===d.current||S("hidden")},[r,E]);let R={unmount:s},k=(0,i.useEvent)(()=>{var t;T&&I(!1),null==(t=e.beforeEnter)||t.call(e)}),$=(0,i.useEvent)(()=>{var t;T&&I(!1),null==(t=e.beforeLeave)||t.call(e)}),N=(0,p.useRender)();return n.default.createElement(y.Provider,{value:E},n.default.createElement(v.Provider,{value:M},N({ourProps:{...R,as:n.Fragment,children:n.default.createElement(_,{ref:h,...R,...l,beforeEnter:k,beforeLeave:$})},theirProps:{},defaultTag:n.Fragment,features:C,visible:"visible"===x,name:"Transition"})))}),_=(0,p.forwardRefWithAs)(function(e,t){var r,a;let{transition:s=!0,beforeEnter:l,afterEnter:b,beforeLeave:S,afterLeave:_,enter:E,enterFrom:T,enterTo:I,entered:O,leave:M,leaveFrom:R,leaveTo:k,...$}=e,[N,L]=(0,n.useState)(null),j=(0,n.useRef)(null),D=g(e),P=(0,c.useSyncRefs)(...D?[j,t,L]:null===t?[]:[t]),z=null==(r=$.unmount)||r?p.RenderStrategy.Unmount:p.RenderStrategy.Hidden,{show:F,appear:V,initial:H}=function(){let e=(0,n.useContext)(v);if(null===e)throw Error("A is used but it is missing a parent or .");return e}(),[B,G]=(0,n.useState)(F?"visible":"hidden"),U=function(){let e=(0,n.useContext)(y);if(null===e)throw Error("A is used but it is missing a parent or .");return e}(),{register:W,unregister:q}=U;(0,o.useIsoMorphicEffect)(()=>W(j),[W,j]),(0,o.useIsoMorphicEffect)(()=>{if(z===p.RenderStrategy.Hidden&&j.current)return F&&"visible"!==B?void G("visible"):(0,h.match)(B,{hidden:()=>q(j),visible:()=>W(j)})},[B,j,W,q,F,z]);let K=(0,u.useServerHandoffComplete)();(0,o.useIsoMorphicEffect)(()=>{if(D&&K&&"visible"===B&&null===j.current)throw Error("Did you forget to passthrough the `ref` to the actual DOM node?")},[j,B,K,D]);let Y=H&&!V,X=V&&F&&H,Z=(0,n.useRef)(!1),Q=w(()=>{Z.current||(G("hidden"),q(j))},U),J=(0,i.useEvent)(e=>{Z.current=!0,Q.onStart(j,e?"enter":"leave",e=>{"enter"===e?null==l||l():"leave"===e&&(null==S||S())})}),ee=(0,i.useEvent)(e=>{let t=e?"enter":"leave";Z.current=!1,Q.onStop(j,t,e=>{"enter"===e?null==b||b():"leave"===e&&(null==_||_())}),"leave"!==t||A(Q)||(G("hidden"),q(j))});(0,n.useEffect)(()=>{D&&s||(J(F),ee(F))},[F,D,s]);let et=!(!s||!D||!K||Y),[,er]=(0,d.useTransition)(et,N,F,{start:J,end:ee}),en=(0,p.compact)({ref:P,className:(null==(a=(0,f.classNames)($.className,X&&E,X&&T,er.enter&&E,er.enter&&er.closed&&T,er.enter&&!er.closed&&I,er.leave&&M,er.leave&&!er.closed&&R,er.leave&&er.closed&&k,!er.transition&&F&&O))?void 0:a.trim())||void 0,...(0,d.transitionDataAttributes)(er)}),ea=0;"visible"===B&&(ea|=m.State.Open),"hidden"===B&&(ea|=m.State.Closed),er.enter&&(ea|=m.State.Opening),er.leave&&(ea|=m.State.Closing);let ei=(0,p.useRender)();return n.default.createElement(y.Provider,{value:Q},n.default.createElement(m.OpenClosedProvider,{value:ea},ei({ourProps:en,theirProps:$,defaultTag:x,features:C,visible:"visible"===B,name:"Transition.Child"})))}),E=(0,p.forwardRefWithAs)(function(e,t){let r=null!==(0,n.useContext)(v),a=null!==(0,m.useOpenClosed)();return n.default.createElement(n.default.Fragment,null,!r&&a?n.default.createElement(S,{ref:t,...e}):n.default.createElement(_,{ref:t,...e}))}),T=Object.assign(S,{Child:E,Root:S});e.s(["Transition",0,T],854056)},206929,e=>{"use strict";var t=e.i(290571),r=e.i(757440),n=e.i(271645),a=e.i(446428),i=e.i(444755),s=e.i(673706),o=e.i(103471),l=e.i(495470),u=e.i(854056),c=e.i(888288);let d=(0,s.makeClassName)("Select"),m=n.default.forwardRef((e,s)=>{let{defaultValue:m="",value:f,onValueChange:h,placeholder:p="Select...",disabled:g=!1,icon:v,enableClear:b=!1,required:y,children:A,name:w,error:x=!1,errorMessage:C,className:S,id:_}=e,E=(0,t.__rest)(e,["defaultValue","value","onValueChange","placeholder","disabled","icon","enableClear","required","children","name","error","errorMessage","className","id"]),T=(0,n.useRef)(null),I=n.Children.toArray(A),[O,M]=(0,c.default)(m,f),R=(0,n.useMemo)(()=>{let e=n.default.Children.toArray(A).filter(n.isValidElement);return(0,o.constructValueToNameMapping)(e)},[A]);return n.default.createElement("div",{className:(0,i.tremorTwMerge)("w-full min-w-[10rem] text-tremor-default",S)},n.default.createElement("div",{className:"relative"},n.default.createElement("select",{title:"select-hidden",required:y,className:(0,i.tremorTwMerge)("h-full w-full absolute left-0 top-0 -z-10 opacity-0"),value:O,onChange:e=>{e.preventDefault()},name:w,disabled:g,id:_,onFocus:()=>{let e=T.current;e&&e.focus()}},n.default.createElement("option",{className:"hidden",value:"",disabled:!0,hidden:!0},p),I.map(e=>{let t=e.props.value,r=e.props.children;return n.default.createElement("option",{className:"hidden",key:t,value:t},r)})),n.default.createElement(l.Listbox,Object.assign({as:"div",ref:s,defaultValue:O,value:O,onChange:e=>{null==h||h(e),M(e)},disabled:g,id:_},E),({value:e})=>{var t;return n.default.createElement(n.default.Fragment,null,n.default.createElement(l.ListboxButton,{ref:T,className:(0,i.tremorTwMerge)("w-full outline-none text-left whitespace-nowrap truncate rounded-tremor-default focus:ring-2 transition duration-100 border pr-8 py-2","border-tremor-border shadow-tremor-input focus:border-tremor-brand-subtle focus:ring-tremor-brand-muted","dark:border-dark-tremor-border dark:shadow-dark-tremor-input dark:focus:border-dark-tremor-brand-subtle dark:focus:ring-dark-tremor-brand-muted",v?"pl-10":"pl-3",(0,o.getSelectButtonColors)((0,o.hasValue)(e),g,x))},v&&n.default.createElement("span",{className:(0,i.tremorTwMerge)("absolute inset-y-0 left-0 flex items-center ml-px pl-2.5")},n.default.createElement(v,{className:(0,i.tremorTwMerge)(d("Icon"),"flex-none h-5 w-5","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")})),n.default.createElement("span",{className:"w-[90%] block truncate"},e&&null!=(t=R.get(e))?t:p),n.default.createElement("span",{className:(0,i.tremorTwMerge)("absolute inset-y-0 right-0 flex items-center mr-3")},n.default.createElement(r.default,{className:(0,i.tremorTwMerge)(d("arrowDownIcon"),"flex-none h-5 w-5","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")}))),b&&O?n.default.createElement("button",{type:"button",className:(0,i.tremorTwMerge)("absolute inset-y-0 right-0 flex items-center mr-8"),onClick:e=>{e.preventDefault(),M(""),null==h||h("")}},n.default.createElement(a.default,{className:(0,i.tremorTwMerge)(d("clearIcon"),"flex-none h-4 w-4","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")})):null,n.default.createElement(u.Transition,{enter:"transition ease duration-100 transform",enterFrom:"opacity-0 -translate-y-4",enterTo:"opacity-100 translate-y-0",leave:"transition ease duration-100 transform",leaveFrom:"opacity-100 translate-y-0",leaveTo:"opacity-0 -translate-y-4"},n.default.createElement(l.ListboxOptions,{anchor:"bottom start",className:(0,i.tremorTwMerge)("z-10 w-[var(--button-width)] divide-y overflow-y-auto outline-none rounded-tremor-default max-h-[228px] border [--anchor-gap:4px]","bg-tremor-background border-tremor-border divide-tremor-border shadow-tremor-dropdown","dark:bg-dark-tremor-background dark:border-dark-tremor-border dark:divide-dark-tremor-border dark:shadow-dark-tremor-dropdown")},A)))})),x&&C?n.default.createElement("p",{className:(0,i.tremorTwMerge)("errorMessage","text-sm text-rose-500 mt-1")},C):null)});m.displayName="Select",e.s(["Select",0,m],206929)},502275,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["InformationCircleIcon",0,r],502275)},664307,e=>{"use strict";var t=e.i(843476),r=e.i(135214),n=e.i(214541),a=e.i(271645),i=e.i(161059);e.s(["default",0,()=>{let{token:e,premiumUser:s}=(0,r.default)(),[o,l]=(0,a.useState)([]),{teams:u}=(0,n.default)();return(0,t.jsx)(i.default,{token:e,modelData:{data:[]},keys:o,setModelData:()=>{},premiumUser:s,teams:u})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/00ggoni7r8g6y.js b/litellm/proxy/_experimental/out/_next/static/chunks/00ggoni7r8g6y.js new file mode 100644 index 00000000000..3a292c40142 --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/00ggoni7r8g6y.js @@ -0,0 +1,10 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,161059,147612,e=>{"use strict";var t=e.i(843476),l=e.i(764205),s=e.i(266027),a=e.i(243652),r=e.i(135214);let i=(0,a.createQueryKeys)("credentials"),o=()=>{let{accessToken:e}=(0,r.default)();return(0,s.useQuery)({queryKey:i.list({}),queryFn:async()=>await (0,l.credentialListCall)(e),enabled:!!e})};var n=e.i(368670),d=e.i(625901),c=e.i(292639),m=e.i(785242),u=e.i(152990),h=e.i(682830),x=e.i(271645),p=e.i(269200),g=e.i(427612),f=e.i(64848),_=e.i(942232),j=e.i(496020),y=e.i(977572),b=e.i(446891);function v({data:e=[],columns:l,isLoading:s=!1,sorting:a=[],onSortingChange:r,pagination:i,onPaginationChange:o,enablePagination:n=!1,onRowClick:d}){let[c]=x.default.useState("onChange"),[m,N]=x.default.useState({}),[w,C]=x.default.useState({}),S=(0,u.useReactTable)({data:e,columns:l,state:{sorting:a,columnSizing:m,columnVisibility:w,...n&&i?{pagination:i}:{}},columnResizeMode:c,onSortingChange:r,onColumnSizingChange:N,onColumnVisibilityChange:C,...n&&o?{onPaginationChange:o}:{},getCoreRowModel:(0,h.getCoreRowModel)(),...n?{getPaginationRowModel:(0,h.getPaginationRowModel)()}:{},enableSorting:!0,enableColumnResizing:!0,manualSorting:!0,defaultColumn:{minSize:40,maxSize:500}});return(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsx)("div",{className:"relative min-w-full",children:(0,t.jsxs)(p.Table,{className:"[&_td]:py-2 [&_th]:py-2",style:{width:S.getTotalSize(),minWidth:"100%",tableLayout:"fixed"},children:[(0,t.jsx)(g.TableHead,{children:S.getHeaderGroups().map(e=>(0,t.jsx)(j.TableRow,{children:e.headers.map(e=>(0,t.jsxs)(f.TableHeaderCell,{className:`py-1 h-8 relative ${"actions"===e.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)] w-[120px] ml-8":""} ${e.column.columnDef.meta?.className||""}`,style:{width:"actions"===e.id?120:e.getSize(),position:"actions"===e.id?"sticky":"relative",right:"actions"===e.id?0:"auto"},children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,u.flexRender)(e.column.columnDef.header,e.getContext())}),"actions"!==e.id&&e.column.getCanSort()&&r&&(0,t.jsx)(b.TableHeaderSortDropdown,{sortState:!1!==e.column.getIsSorted()&&e.column.getIsSorted(),onSortChange:t=>{!1===t?r([]):r([{id:e.column.id,desc:"desc"===t}])},columnId:e.column.id})]}),e.column.getCanResize()&&(0,t.jsx)("div",{onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:`absolute right-0 top-0 h-full w-2 cursor-col-resize select-none touch-none ${e.column.getIsResizing()?"bg-blue-500":"hover:bg-blue-200"}`})]},e.id))},e.id))}),(0,t.jsx)(_.TableBody,{children:s?(0,t.jsx)(j.TableRow,{children:(0,t.jsx)(y.TableCell,{colSpan:l.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"🚅 Loading models..."})})})}):S.getRowModel().rows.length>0?S.getRowModel().rows.map(e=>(0,t.jsx)(j.TableRow,{className:d?"cursor-pointer hover:bg-gray-50":"",onClick:()=>d?.(e.original),children:e.getVisibleCells().map(e=>(0,t.jsx)(y.TableCell,{className:`py-0.5 overflow-hidden ${"actions"===e.column.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)] w-[120px] ml-8":""} ${e.column.columnDef.meta?.className||""}`,style:{width:"actions"===e.column.id?120:e.column.getSize(),position:"actions"===e.column.id?"sticky":"relative",right:"actions"===e.column.id?0:"auto"},children:(0,u.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(j.TableRow,{children:(0,t.jsx)(y.TableCell,{colSpan:l.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No models found"})})})})})]})})})})}var N=e.i(751904),w=e.i(827252),C=e.i(772345),S=e.i(68155),k=e.i(389083),T=e.i(994388),F=e.i(752978),I=e.i(312361),M=e.i(525720),P=e.i(282786),A=e.i(770914),E=e.i(790848),L=e.i(592968),R=e.i(898586),O=e.i(418371);let{Text:B,Title:z}=R.Typography,q=(0,t.jsxs)(A.Space,{direction:"vertical",size:12,children:[(0,t.jsx)(B,{strong:!0,style:{fontSize:13},children:"Credential types"}),(0,t.jsxs)(A.Space,{direction:"vertical",size:8,children:[(0,t.jsx)(M.Flex,{align:"center",gap:8,children:(0,t.jsxs)(A.Space,{direction:"vertical",children:[(0,t.jsxs)(M.Flex,{align:"center",gap:8,children:[(0,t.jsx)(C.SyncOutlined,{style:{color:"#1890ff"}}),(0,t.jsx)(z,{level:5,style:{margin:0,color:"#1890ff"},children:"Reusable"})]}),(0,t.jsx)(B,{type:"secondary",children:"Credentials saved in LiteLLM that can be added to models repeatedly."})]})}),(0,t.jsx)(I.Divider,{size:"small"}),(0,t.jsx)(M.Flex,{align:"center",gap:8,children:(0,t.jsxs)(A.Space,{direction:"vertical",size:8,children:[(0,t.jsxs)(M.Flex,{align:"center",gap:8,children:[(0,t.jsx)(N.EditOutlined,{style:{color:"#8c8c8c",fontSize:14,flexShrink:0}}),(0,t.jsx)(z,{level:5,style:{margin:0},children:"Manual"})]}),(0,t.jsx)(B,{type:"secondary",children:"Credentials added directly during model creation or defined in the config file."})]})})]})]}),V=e=>e?.model_info?.team_public_model_name?e.model_info.team_public_model_name:e?.model_name||"-";var D=e.i(127952),H=e.i(727749),$=e.i(313603),G=e.i(912598),U=e.i(350967),J=e.i(404206),K=e.i(906579),W=e.i(464571),Q=e.i(199133),Y=e.i(981339),X=e.i(153472),Z=e.i(954616);let ee=async(e,t)=>{let s=(0,l.getProxyBaseUrl)(),a=s?`${s}/config/field/update`:"/config/field/update",r=await fetch(a,{method:"POST",headers:{[(0,l.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({field_name:"store_model_in_db",field_value:t.store_model_in_db,config_type:"general_settings"})});if(!r.ok){let e=await r.json().catch(()=>({}));throw Error(e?.error?.message||e?.message||e?.detail||"Failed to update model storage settings")}return await r.json()};var et=e.i(190702),el=e.i(808613),es=e.i(212931);let ea=({isVisible:e,onCancel:l,onSuccess:s})=>{let[a]=el.Form.useForm(),{mutateAsync:i,isPending:o}=(()=>{let{accessToken:e}=(0,r.default)();return(0,Z.useMutation)({mutationFn:async t=>{if(!e)throw Error("Access token is required");return await ee(e,t)}})})(),{data:n,isLoading:d,refetch:c}=(0,X.useProxyConfig)(X.ConfigType.GENERAL_SETTINGS);(0,x.useEffect)(()=>{e&&c()},[e,c]);let m=(0,x.useMemo)(()=>{if(!n)return{store_model_in_db:!1};let e=n.find(e=>"store_model_in_db"===e.field_name);return{store_model_in_db:e?.field_value??!1}},[n]),u=async e=>{try{await i(e,{onSuccess:()=>{H.default.success("Model storage settings updated successfully"),c(),s?.()},onError:e=>{H.default.fromBackend("Failed to save model storage settings: "+(0,et.parseErrorMessage)(e))}})}catch(e){H.default.fromBackend("Failed to save model storage settings: "+(0,et.parseErrorMessage)(e))}},h=()=>{a.resetFields(),l()};return(0,t.jsx)(es.Modal,{title:(0,t.jsx)(R.Typography.Title,{level:5,children:"Model Settings"}),open:e,footer:(0,t.jsxs)(A.Space,{children:[(0,t.jsx)(W.Button,{onClick:h,disabled:o||d,children:"Cancel"}),(0,t.jsx)(W.Button,{type:"primary",loading:o,disabled:d,onClick:()=>a.submit(),children:o?"Saving...":"Save Settings"})]}),onCancel:h,children:(0,t.jsx)(el.Form,{form:a,layout:"horizontal",onFinish:u,initialValues:m,children:(0,t.jsx)(el.Form.Item,{label:"Store Model in DB",name:"store_model_in_db",tooltip:n?.find(e=>"store_model_in_db"===e.field_name)?.field_description||"If enabled, models and config are stored in and loaded from the database.",valuePropName:"checked",children:d?(0,t.jsx)(Y.Skeleton.Input,{active:!0,block:!0}):(0,t.jsx)(E.Switch,{})})},n?JSON.stringify(m):"loading")})};var er=e.i(374009);let ei=(e,t)=>{if(!e?.data)return{data:[]};let l=JSON.parse(JSON.stringify(e.data));for(let e=0;e"model"!==e&&"api_base"!==e))),l[e].provider=o,l[e].input_cost=n,l[e].output_cost=d,l[e].litellm_model_name=a,null!=l[e].input_cost&&(l[e].input_cost=(1e6*Number(l[e].input_cost)).toFixed(2)),null!=l[e].output_cost&&(l[e].output_cost=(1e6*Number(l[e].output_cost)).toFixed(2)),l[e].max_tokens=c,l[e].max_input_tokens=m,l[e].api_base=s?.litellm_params?.api_base,l[e].cleanedLitellmParams=u}return{data:l}},{Text:eo}=R.Typography,en=({selectedModelGroup:e,setSelectedModelGroup:s,availableModelGroups:a,availableModelAccessGroups:i,setSelectedModelId:o,setSelectedTeamId:c})=>{let{data:u,isLoading:h}=(0,n.useModelCostMap)(),{accessToken:p,userId:g,userRole:f,premiumUser:_}=(0,r.default)(),{data:j,isLoading:y}=(0,m.useTeams)(),b=(0,G.useQueryClient)(),[I,R]=(0,x.useState)(""),[z,X]=(0,x.useState)(""),[Z,ee]=(0,x.useState)("current_team"),[et,el]=(0,x.useState)("personal"),[es,en]=(0,x.useState)(!1),[ed,ec]=(0,x.useState)(null),[em,eu]=(0,x.useState)(new Set),[eh,ex]=(0,x.useState)(1),[ep]=(0,x.useState)(50),[eg,ef]=(0,x.useState)({pageIndex:0,pageSize:50}),[e_,ej]=(0,x.useState)([]),[ey,eb]=(0,x.useState)(!1),ev=(0,x.useMemo)(()=>(0,er.default)(e=>{X(e),ex(1),ef(e=>({...e,pageIndex:0}))},200),[]);(0,x.useEffect)(()=>(ev(I),()=>{ev.cancel()}),[I,ev]);let eN="personal"===et?void 0:et.team_id,ew=(0,x.useMemo)(()=>{if(0===e_.length)return;let e=e_[0];return({input_cost:"costs",model_info_db_model:"status",model_info_created_by:"created_at",model_info_updated_at:"updated_at"})[e.id]||e.id},[e_]),eC=(0,x.useMemo)(()=>{if(0!==e_.length)return e_[0].desc?"desc":"asc"},[e_]),{data:eS,isLoading:ek,refetch:eT}=(0,d.useModelsInfo)(eh,ep,z||void 0,void 0,eN,ew,eC),eF=ek||h,eI=e=>null!=u&&"object"==typeof u&&e in u?u[e].litellm_provider:"openai",eM=(0,x.useMemo)(()=>eS?ei(eS,eI):{data:[]},[eS,u]),[eP,eA]=(0,x.useState)(null),[eE,eL]=(0,x.useState)(!1),eR=(0,x.useMemo)(()=>eS?{total_count:eS.total_count??0,current_page:eS.current_page??1,total_pages:eS.total_pages??1,size:eS.size??ep}:{total_count:0,current_page:1,total_pages:1,size:ep},[eS,ep]),eO=(0,x.useMemo)(()=>eM&&eM.data&&0!==eM.data.length?eM.data.filter(t=>{let l="all"===e||t.model_name===e||!e||"wildcard"===e&&t.model_name?.includes("*"),s="all"===ed||t.model_info.access_groups?.includes(ed)||!ed;return l&&s}):[],[eM,e,ed]);(0,x.useEffect)(()=>{ef(e=>({...e,pageIndex:0})),ex(1)},[e,ed]),(0,x.useEffect)(()=>{ex(1),ef(e=>({...e,pageIndex:0}))},[eN]),(0,x.useEffect)(()=>{ex(1),ef(e=>({...e,pageIndex:0}))},[e_]);let eB=(0,x.useMemo)(()=>eP&&eM?.data?eM.data.find(e=>e.model_info.id===eP):null,[eP,eM]),ez=async()=>{if(p&&eP)try{eL(!0),await (0,l.modelDeleteCall)(p,eP),H.default.success("Model deleted successfully"),b.invalidateQueries({queryKey:["models","list"]}),eT()}catch(e){console.error("Error deleting model:",e),H.default.fromBackend(e)}finally{eL(!1),eA(null)}},[eq,eV]=(0,x.useState)(null),eD=async(e,t)=>{if(p)try{eV(e),await (0,l.modelPatchUpdateCall)(p,{blocked:t},e),H.default.success(t?"Model paused":"Model resumed"),b.invalidateQueries({queryKey:["models","list"]})}catch(e){console.error("Error toggling model pause state:",e),H.default.fromBackend(e)}finally{eV(null)}};return(0,t.jsxs)(J.TabPanel,{children:[(0,t.jsx)(U.Grid,{children:(0,t.jsx)("div",{className:"flex flex-col space-y-4",children:(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow",children:[(0,t.jsxs)("div",{className:"border-b px-6 py-4 bg-gray-50",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)(eo,{className:"text-lg font-semibold text-gray-900",children:"Current Team:"}),(0,t.jsx)("div",{className:"w-80",children:eF?(0,t.jsx)(Y.Skeleton.Input,{active:!0,block:!0,size:"large"}):(0,t.jsx)(Q.Select,{style:{width:"100%"},size:"large",defaultValue:"personal",value:"personal"===et?"personal":et.team_id,onChange:e=>{if("personal"===e)el("personal"),ex(1),ef(e=>({...e,pageIndex:0}));else{let t=j?.find(t=>t.team_id===e);t&&(el(t),ex(1),ef(e=>({...e,pageIndex:0})))}},loading:y,options:[{value:"personal",label:(0,t.jsxs)(A.Space,{direction:"horizontal",align:"center",children:[(0,t.jsx)(K.Badge,{color:"blue",size:"small"}),(0,t.jsx)(eo,{style:{fontSize:16},children:"Personal"})]})},...j?.filter(e=>e.team_id).map(e=>({value:e.team_id,label:(0,t.jsxs)(A.Space,{direction:"horizontal",align:"center",children:[(0,t.jsx)(K.Badge,{color:"green",size:"small"}),(0,t.jsx)(eo,{ellipsis:!0,style:{fontSize:16},children:e.team_alias?e.team_alias:e.team_id})]})}))??[]]})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)(eo,{className:"text-lg font-semibold text-gray-900",children:"View:"}),(0,t.jsx)("div",{className:"w-64",children:eF?(0,t.jsx)(Y.Skeleton.Input,{active:!0,block:!0,size:"large"}):(0,t.jsx)(Q.Select,{style:{width:"100%"},size:"large",defaultValue:"current_team",value:Z,onChange:e=>ee(e),options:[{value:"current_team",label:(0,t.jsxs)(A.Space,{direction:"horizontal",align:"center",children:[(0,t.jsx)(K.Badge,{color:"purple",size:"small"}),(0,t.jsx)(eo,{style:{fontSize:16},children:"Current Team Models"})]})},{value:"all",label:(0,t.jsxs)(A.Space,{direction:"horizontal",align:"center",children:[(0,t.jsx)(K.Badge,{color:"gray",size:"small"}),(0,t.jsx)(eo,{style:{fontSize:16},children:"All Available Models"})]})}]})})]})]}),"current_team"===Z&&(0,t.jsxs)("div",{className:"flex items-start gap-2 mt-3",children:[(0,t.jsx)(w.InfoCircleOutlined,{className:"text-gray-400 mt-0.5 flex-shrink-0 text-xs"}),(0,t.jsx)("div",{className:"text-xs text-gray-500",children:"personal"===et?(0,t.jsxs)("span",{children:["To access these models: Create a Virtual Key without selecting a team on the"," ",(0,t.jsx)("a",{href:"/public?login=success&page=api-keys",className:"text-gray-600 hover:text-gray-800 underline",children:"Virtual Keys page"})]}):(0,t.jsxs)("span",{children:['To access these models: Create a Virtual Key and select Team as "',"string"!=typeof et?et.team_alias||et.team_id:"",'" on the'," ",(0,t.jsx)("a",{href:"/public?login=success&page=api-keys",className:"text-gray-600 hover:text-gray-800 underline",children:"Virtual Keys page"})]})})]})]}),(0,t.jsx)("div",{className:"border-b px-6 py-4",children:(0,t.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,t.jsxs)("div",{className:"relative w-64",children:[(0,t.jsx)("input",{type:"text",placeholder:"Search model names...","data-testid":"model-search-input",className:"w-full px-3 py-2 pl-8 border rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",value:I,onChange:e=>R(e.target.value)}),(0,t.jsx)("svg",{className:"absolute left-2.5 top-2.5 h-4 w-4 text-gray-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})})]}),(0,t.jsxs)("button",{className:`px-3 py-2 text-sm border rounded-md hover:bg-gray-50 flex items-center gap-2 ${es?"bg-gray-100":""}`,onClick:()=>en(!es),children:[(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"})}),"Filters"]}),(0,t.jsxs)("button",{className:"px-3 py-2 text-sm border rounded-md hover:bg-gray-50 flex items-center gap-2",onClick:()=>{R(""),s("all"),ec(null),el("personal"),ee("current_team"),ex(1),ef({pageIndex:0,pageSize:50}),ej([])},children:[(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})}),"Reset Filters"]})]}),(0,t.jsx)(W.Button,{icon:(0,t.jsx)($.SettingOutlined,{}),onClick:()=>eb(!0),title:"Model Settings"})]}),es&&(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3 mt-3",children:[(0,t.jsx)("div",{className:"w-64",children:(0,t.jsx)(Q.Select,{className:"w-full",value:e??"all",onChange:e=>s("all"===e?"all":e),placeholder:"Filter by Public Model Name",showSearch:!0,options:[{value:"all",label:"All Models"},{value:"wildcard",label:"Wildcard Models (*)"},...a.map((e,t)=>({value:e,label:e}))]})}),(0,t.jsx)("div",{className:"w-64",children:(0,t.jsx)(Q.Select,{className:"w-full",value:ed??"all",onChange:e=>ec("all"===e?null:e),placeholder:"Filter by Model Access Group",showSearch:!0,options:[{value:"all",label:"All Model Access Groups"},...i.map((e,t)=>({value:e,label:e}))]})})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[eF?(0,t.jsx)(Y.Skeleton.Input,{active:!0,style:{width:184,height:20}}):(0,t.jsx)("span",{"data-testid":"models-results-count",className:"text-sm text-gray-700",children:eR.total_count>0?`Showing ${(eh-1)*ep+1} - ${Math.min(eh*ep,eR.total_count)} of ${eR.total_count} results`:"Showing 0 results"}),(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[eF?(0,t.jsx)(Y.Skeleton.Button,{active:!0,style:{width:84,height:30}}):(0,t.jsx)("button",{onClick:()=>{ex(eh-1),ef(e=>({...e,pageIndex:0}))},disabled:1===eh,className:`px-3 py-1 text-sm border rounded-md ${1===eh?"bg-gray-100 text-gray-400 cursor-not-allowed":"hover:bg-gray-50"}`,children:"Previous"}),eF?(0,t.jsx)(Y.Skeleton.Button,{active:!0,style:{width:56,height:30}}):(0,t.jsx)("button",{onClick:()=>{ex(eh+1),ef(e=>({...e,pageIndex:0}))},disabled:eh>=eR.total_pages,className:`px-3 py-1 text-sm border rounded-md ${eh>=eR.total_pages?"bg-gray-100 text-gray-400 cursor-not-allowed":"hover:bg-gray-50"}`,children:"Next"})]})]})]})}),(0,t.jsx)(v,{columns:[{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Model ID"}),accessorKey:"model_info.id",enableSorting:!1,size:130,minSize:80,cell:({row:e})=>{let l=e.original;return(0,t.jsx)(L.Tooltip,{title:l.model_info.id,children:(0,t.jsx)(B,{ellipsis:!0,className:"text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs cursor-pointer w-full block",style:{fontSize:14,padding:"1px 8px"},onClick:e=>{e.stopPropagation(),o(l.model_info.id)},children:l.model_info.id})})}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Model Information"}),accessorKey:"model_name",size:250,minSize:120,cell:({row:e})=>{let l=e.original,s=V(e.original)||"-",a=(0,t.jsxs)(A.Space,{direction:"vertical",size:12,style:{minWidth:220},children:[(0,t.jsxs)(M.Flex,{align:"center",gap:8,children:[(0,t.jsx)(O.ProviderLogo,{provider:l.provider}),(0,t.jsx)(B,{type:"secondary",style:{fontSize:12},ellipsis:!0,children:l.provider||"Unknown provider"})]}),(0,t.jsxs)(A.Space,{direction:"vertical",size:6,children:[(0,t.jsxs)(A.Space,{direction:"vertical",size:2,style:{width:"100%"},children:[(0,t.jsx)(B,{type:"secondary",style:{fontSize:11},children:"Public Model Name"}),(0,t.jsx)(B,{strong:!0,style:{fontSize:13,maxWidth:480},ellipsis:!0,title:s,children:s})]}),(0,t.jsxs)(A.Space,{direction:"vertical",size:2,children:[(0,t.jsx)(B,{type:"secondary",style:{fontSize:11},children:"LiteLLM Model Name"}),(0,t.jsx)(B,{style:{fontSize:13},copyable:{text:l.litellm_model_name||"-"},ellipsis:!0,title:l.litellm_model_name||"-",children:l.litellm_model_name||"-"})]})]})]});return(0,t.jsx)(P.Popover,{content:a,placement:"right",arrow:{pointAtCenter:!0},styles:{root:{maxWidth:500}},children:(0,t.jsxs)("div",{className:"flex items-start space-x-2 min-w-0 w-full cursor-pointer",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-0.5",children:l.provider?(0,t.jsx)(O.ProviderLogo,{provider:l.provider}):(0,t.jsx)("div",{className:"w-4 h-4 rounded-full bg-gray-200 flex items-center justify-center text-xs",children:"-"})}),(0,t.jsxs)("div",{className:"flex flex-col min-w-0 flex-1",children:[(0,t.jsx)(B,{ellipsis:!0,className:"text-gray-900",style:{fontSize:12,fontWeight:500,lineHeight:"16px"},children:s}),(0,t.jsx)(B,{ellipsis:!0,type:"secondary",style:{fontSize:12,lineHeight:"16px",marginTop:2},children:l.litellm_model_name||"-"})]})]})})}},{header:()=>(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Credentials"}),(0,t.jsx)(P.Popover,{content:q,placement:"bottom",arrow:{pointAtCenter:!0},children:(0,t.jsx)(w.InfoCircleOutlined,{className:"cursor-pointer text-gray-400 hover:text-gray-600",style:{fontSize:12}})})]}),accessorKey:"litellm_credential_name",enableSorting:!1,size:180,minSize:100,cell:({row:e})=>{let l=e.original,s=l.litellm_params?.litellm_credential_name,a=!!s;return(0,t.jsx)("div",{className:"flex items-center space-x-2 min-w-0 w-full",children:a?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(C.SyncOutlined,{className:"flex-shrink-0",style:{color:"#1890ff",fontSize:14}}),(0,t.jsx)("span",{className:"text-xs truncate text-blue-600",title:s,children:s})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(N.EditOutlined,{className:"flex-shrink-0",style:{color:"#8c8c8c",fontSize:14}}),(0,t.jsx)("span",{className:"text-xs text-gray-500",children:"Manual"})]})})}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Created By"}),accessorKey:"model_info.created_by",sortingFn:"datetime",size:160,minSize:100,cell:({row:e})=>{let l=e.original,s=!l.model_info?.db_model,a=l.model_info.created_by,r=l.model_info.created_at?new Date(l.model_info.created_at).toLocaleDateString():null;return(0,t.jsxs)("div",{className:"flex flex-col min-w-0 w-full",children:[(0,t.jsx)("div",{className:"text-xs font-medium text-gray-900 truncate",title:s?"Defined in config":a||"Unknown",children:s?"Defined in config":a||"Unknown"}),(0,t.jsx)("div",{className:"text-xs text-gray-500 truncate mt-0.5",title:s?"Config file":r||"Unknown date",children:s?"-":r||"Unknown date"})]})}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Updated At"}),accessorKey:"model_info.updated_at",sortingFn:"datetime",size:120,minSize:80,cell:({row:e})=>{let l=e.original;return(0,t.jsx)("span",{className:"text-xs",children:l.model_info.updated_at?new Date(l.model_info.updated_at).toLocaleDateString():"-"})}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Costs"}),accessorKey:"input_cost",size:120,minSize:80,cell:({row:e})=>{let l=e.original,s=l.input_cost,a=l.output_cost;return null==s&&null==a?(0,t.jsx)("div",{className:"w-full",children:(0,t.jsx)("span",{className:"text-xs text-gray-400",children:"-"})}):(0,t.jsx)(L.Tooltip,{title:"Cost per 1M tokens",children:(0,t.jsxs)("div",{className:"flex flex-col min-w-0 w-full",children:[null!=s&&(0,t.jsxs)("div",{className:"text-xs font-medium text-gray-900 truncate",children:["In: $",s]}),null!=a&&(0,t.jsxs)("div",{className:"text-xs text-gray-500 truncate mt-0.5",children:["Out: $",a]})]})})}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Team ID"}),accessorKey:"model_info.team_id",enableSorting:!1,size:130,minSize:80,cell:({row:e})=>{let l=e.original;return l.model_info.team_id?(0,t.jsx)("div",{className:"overflow-hidden w-full",children:(0,t.jsx)(L.Tooltip,{title:l.model_info.team_id,children:(0,t.jsxs)(T.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left overflow-hidden truncate w-full",onClick:e=>{e.stopPropagation(),c(l.model_info.team_id)},children:[l.model_info.team_id.slice(0,7),"..."]})})}):"-"}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Model Access Group"}),accessorKey:"model_info.model_access_group",enableSorting:!1,size:180,minSize:100,cell:({row:e})=>{let l=e.original,s=l.model_info.access_groups;if(!s||0===s.length)return"-";let a=l.model_info.id,r=em.has(a),i=s.length>1;return(0,t.jsxs)("div",{className:"flex items-center gap-1 overflow-hidden w-full",children:[(0,t.jsx)(k.Badge,{size:"xs",color:"blue",className:"text-xs px-1.5 py-0.5 h-5 leading-tight flex-shrink-0",children:s[0]}),(r||!i&&2===s.length)&&s.slice(1).map((e,l)=>(0,t.jsx)(k.Badge,{size:"xs",color:"blue",className:"text-xs px-1.5 py-0.5 h-5 leading-tight flex-shrink-0",children:e},l+1)),i&&(0,t.jsx)("button",{onClick:e=>{let t;e.stopPropagation(),t=new Set(em),r?t.delete(a):t.add(a),eu(t)},className:"text-xs text-blue-600 hover:text-blue-800 px-1 py-0.5 rounded hover:bg-blue-50 h-5 leading-tight flex-shrink-0 whitespace-nowrap",children:r?"−":`+${s.length-1}`})]})}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Status"}),accessorKey:"model_info.db_model",size:120,minSize:80,cell:({row:e})=>{let l=e.original;return(0,t.jsx)("div",{className:` + inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium + ${l.model_info.db_model?"bg-blue-50 text-blue-600":"bg-gray-100 text-gray-600"} + `,children:l.model_info.db_model?"DB Model":"Config Model"})}},{id:"actions",header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Actions"}),size:100,minSize:80,enableResizing:!1,cell:({row:e})=>{let l=e.original,s="Admin"===f||l.model_info?.created_by===g,a=!l.model_info?.db_model,r="Admin"===f,i=l.model_info?.blocked===!0,o=!a&&r&&!!eD,n=eq===l.model_info?.id;return(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2 pr-4",children:[(0,t.jsx)(L.Tooltip,{title:a?"Config models cannot be paused from the dashboard. Pause is DB-backed.":r?i?"Resume model — restore normal routing.":"Pause model — stop routing requests until resumed.":"Only proxy admins can pause or resume a model.",children:(0,t.jsx)(E.Switch,{size:"small",checked:!i,disabled:!o||n,loading:n,"aria-label":i?"Resume model":"Pause model",onClick:(e,t)=>{t.stopPropagation()},onChange:e=>{let t=l.model_info?.id;o&&eD&&t&&eD(t,!e)}})}),a?(0,t.jsx)(L.Tooltip,{title:"Config model cannot be deleted on the dashboard. Please delete it from the config file.",children:(0,t.jsx)(F.Icon,{icon:S.TrashIcon,size:"sm",className:"opacity-50 cursor-not-allowed"})}):(0,t.jsx)(L.Tooltip,{title:"Delete model",children:(0,t.jsx)(F.Icon,{icon:S.TrashIcon,size:"sm",onClick:e=>{e.stopPropagation(),s&&eA&&eA(l.model_info.id)},className:s?"cursor-pointer hover:text-red-600":"opacity-50 cursor-not-allowed"})})]})}}],data:eO,isLoading:ek,sorting:e_,onSortingChange:ej,pagination:eg,onPaginationChange:ef,enablePagination:!0,onRowClick:e=>o(e.model_info.id)})]})})}),(0,t.jsx)(D.default,{isOpen:!!eP,title:"Delete Model",alertMessage:"This action cannot be undone.",message:"Are you sure you want to delete this model?",resourceInformationTitle:"Model Information",resourceInformation:eB?[{label:"Model Name",value:eB.model_name||"Not Set"},{label:"LiteLLM Model Name",value:eB.litellm_model_name||"Not Set"},{label:"Provider",value:eB.provider||"Not Set"},{label:"Created By",value:eB.model_info?.created_by||"Not Set"}]:[],onCancel:()=>eA(null),onOk:ez,confirmLoading:eE}),(0,t.jsx)(ea,{isVisible:ey,onCancel:()=>eb(!1),onSuccess:()=>eb(!1)})]})};var ed=e.i(206929),ec=e.i(35983),em=e.i(599724),eu=e.i(629569),eh=e.i(28651);let ex={"BadRequestError (400)":"BadRequestErrorRetries","AuthenticationError (401)":"AuthenticationErrorRetries","TimeoutError (408)":"TimeoutErrorRetries","RateLimitError (429)":"RateLimitErrorRetries","ContentPolicyViolationError (400)":"ContentPolicyViolationErrorRetries","InternalServerError (500)":"InternalServerErrorRetries"},ep=({selectedModelGroup:e,setSelectedModelGroup:l,availableModelGroups:s,globalRetryPolicy:a,setGlobalRetryPolicy:r,defaultRetry:i,modelGroupRetryPolicy:o,setModelGroupRetryPolicy:n,handleSaveRetrySettings:d})=>(0,t.jsxs)(J.TabPanel,{children:[(0,t.jsx)("div",{className:"flex items-center gap-4 mb-6",children:(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(em.Text,{children:"Retry Policy Scope:"}),(0,t.jsxs)(ed.Select,{className:"ml-2 w-48",defaultValue:"global",value:"global"===e?"global":e||s[0],onValueChange:e=>l(e),children:[(0,t.jsx)(ec.SelectItem,{value:"global",children:"Global Default"}),s.map((e,s)=>(0,t.jsx)(ec.SelectItem,{value:e,onClick:()=>l(e),children:e},s))]})]})}),"global"===e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eu.Title,{children:"Global Retry Policy"}),(0,t.jsx)(em.Text,{className:"mb-6",children:"Default retry settings applied to all model groups unless overridden"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(eu.Title,{children:["Retry Policy for ",e]}),(0,t.jsx)(em.Text,{className:"mb-6",children:"Model-specific retry settings. Falls back to global defaults if not set."})]}),ex&&(0,t.jsx)("table",{children:(0,t.jsx)("tbody",{children:Object.entries(ex).map(([l,s],d)=>{let c;if("global"===e)c=a?.[s]??i;else{let t=o?.[e]?.[s];c=null!=t?t:a?.[s]??i}return(0,t.jsxs)("tr",{className:"flex justify-between items-center mt-2",children:[(0,t.jsxs)("td",{children:[(0,t.jsx)(em.Text,{children:l}),"global"!==e&&(0,t.jsxs)(em.Text,{className:"text-xs text-gray-500 ml-2",children:["(Global: ",a?.[s]??i,")"]})]}),(0,t.jsx)("td",{children:(0,t.jsx)(eh.InputNumber,{className:"ml-5",value:c,min:0,step:1,onChange:t=>{"global"===e?r(e=>null==t?e:{...e??{},[s]:t}):n(l=>{let a=l?.[e]??{};return{...l??{},[e]:{...a,[s]:t}}})}})})]},d)})})}),(0,t.jsx)(T.Button,{className:"mt-6 mr-8",onClick:d,children:"Save"})]});var eg=e.i(883552),ef=e.i(262218),e_=e.i(175712),ej=e.i(91979),ey=e.i(637235),eb=e.i(724154);e.i(247167);var ev=e.i(931067);let eN={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3zm36.3 281a123.07 123.07 0 01-87.6 36.3H263.9c-33.1 0-64.2-12.9-87.6-36.3A123.3 123.3 0 01140 612c0-28 9.1-54.3 26.2-76.3a125.7 125.7 0 0166.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0152.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10c54.3 14.5 92.1 63.8 92.1 120 0 33.1-12.9 64.3-36.3 87.7z"}}]},name:"cloud",theme:"outlined"};var ew=e.i(9583),eC=x.forwardRef(function(e,t){return x.createElement(ew.default,(0,ev.default)({},e,{ref:t,icon:eN}))}),eS=e.i(210612),ek=e.i(285027);let{Text:eT}=R.Typography,eF=({accessToken:e,onReloadSuccess:s,buttonText:a="Reload Price Data",showIcon:r=!0,size:i="middle",type:o="primary",className:n=""})=>{let[d,c]=(0,x.useState)(!1),[m,u]=(0,x.useState)(!1),[h,p]=(0,x.useState)(!1),[g,f]=(0,x.useState)(!1),[_,j]=(0,x.useState)(6),[y,b]=(0,x.useState)(null),[v,N]=(0,x.useState)(!1),[C,S]=(0,x.useState)(null),[k,T]=(0,x.useState)(!1);(0,x.useEffect)(()=>{F(),M();let e=setInterval(()=>{F(),M()},3e4);return()=>clearInterval(e)},[e]);let F=async()=>{if(e){N(!0);try{console.log("Fetching reload status...");let t=await (0,l.getModelCostMapReloadStatus)(e);console.log("Received status:",t),b(t)}catch(e){console.error("Failed to fetch reload status:",e),b({scheduled:!1,interval_hours:null,last_run:null,next_run:null})}finally{N(!1)}}},M=async()=>{if(e){T(!0);try{let t=await (0,l.getModelCostMapSource)(e);S(t)}catch(e){console.error("Failed to fetch cost map source info:",e)}finally{T(!1)}}},P=async()=>{if(!e)return void H.default.fromBackend("No access token available");c(!0);try{let t=await (0,l.reloadModelCostMap)(e);"success"===t.status?(H.default.success(`Price data reloaded successfully! ${t.models_count||0} models updated.`),s?.(),await F(),await M()):H.default.fromBackend("Failed to reload price data")}catch(e){console.error("Error reloading price data:",e),H.default.fromBackend("Failed to reload price data. Please try again.")}finally{c(!1)}},E=async()=>{if(!e)return void H.default.fromBackend("No access token available");if(_<=0)return void H.default.fromBackend("Hours must be greater than 0");u(!0);try{let t=await (0,l.scheduleModelCostMapReload)(e,_);"success"===t.status?(H.default.success(`Periodic reload scheduled for every ${_} hours`),f(!1),await F()):H.default.fromBackend("Failed to schedule periodic reload")}catch(e){console.error("Error scheduling reload:",e),H.default.fromBackend("Failed to schedule periodic reload. Please try again.")}finally{u(!1)}},R=async()=>{if(!e)return void H.default.fromBackend("No access token available");p(!0);try{let t=await (0,l.cancelModelCostMapReload)(e);"success"===t.status?(H.default.success("Periodic reload cancelled successfully"),await F()):H.default.fromBackend("Failed to cancel periodic reload")}catch(e){console.error("Error cancelling reload:",e),H.default.fromBackend("Failed to cancel periodic reload. Please try again.")}finally{p(!1)}},O=e=>{if(!e)return"Never";try{return new Date(e).toLocaleString()}catch{return e}};return(0,t.jsxs)("div",{className:n,children:[(0,t.jsxs)(A.Space,{direction:"horizontal",size:"middle",style:{marginBottom:16},children:[(0,t.jsx)(eg.Popconfirm,{title:"Hard Refresh Price Data",description:"This will immediately fetch the latest pricing information from the remote source. Continue?",onConfirm:P,okText:"Yes",cancelText:"No",okButtonProps:{style:{backgroundColor:"#6366f1",borderColor:"#6366f1",color:"white",fontWeight:"500",borderRadius:"0.375rem",padding:"0.375rem 0.75rem",height:"auto",fontSize:"0.875rem",lineHeight:"1.25rem",transition:"all 0.2s ease-in-out"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#4f46e5"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="#6366f1"}},children:(0,t.jsx)(W.Button,{type:o,size:i,loading:d,icon:r?(0,t.jsx)(ej.ReloadOutlined,{}):void 0,style:{backgroundColor:"#6366f1",borderColor:"#6366f1",color:"white",fontWeight:"500",borderRadius:"0.375rem",padding:"0.375rem 0.75rem",height:"auto",fontSize:"0.875rem",lineHeight:"1.25rem",transition:"all 0.2s ease-in-out"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#4f46e5"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="#6366f1"},children:a})}),y?.scheduled?(0,t.jsx)(W.Button,{type:"default",size:i,danger:!0,icon:(0,t.jsx)(eb.StopOutlined,{}),loading:h,onClick:R,style:{borderColor:"#ff4d4f",color:"#ff4d4f",fontWeight:"500",borderRadius:"0.375rem",padding:"0.375rem 0.75rem",height:"auto",fontSize:"0.875rem",lineHeight:"1.25rem"},children:"Cancel Periodic Reload"}):(0,t.jsx)(W.Button,{type:"default",size:i,icon:(0,t.jsx)(ey.ClockCircleOutlined,{}),onClick:()=>f(!0),style:{borderColor:"#d9d9d9",color:"#6366f1",fontWeight:"500",borderRadius:"0.375rem",padding:"0.375rem 0.75rem",height:"auto",fontSize:"0.875rem",lineHeight:"1.25rem"},children:"Set Up Periodic Reload"})]}),C&&(0,t.jsx)(e_.Card,{size:"small",style:{backgroundColor:"remote"===C.source?"#f0f7ff":"#fff8f0",border:`1px solid ${"remote"===C.source?"#bae0ff":"#ffd591"}`,borderRadius:8,marginBottom:12},children:(0,t.jsxs)(A.Space,{direction:"vertical",size:"small",style:{width:"100%"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:["remote"===C.source?(0,t.jsx)(eC,{style:{color:"#1677ff",fontSize:16}}):(0,t.jsx)(eS.DatabaseOutlined,{style:{color:"#fa8c16",fontSize:16}}),(0,t.jsx)(eT,{strong:!0,style:{fontSize:"13px"},children:"Pricing Data Source"}),(0,t.jsx)(ef.Tag,{color:"remote"===C.source?"blue":"orange",style:{marginLeft:"auto",fontWeight:600,textTransform:"uppercase",fontSize:"11px"},children:"remote"===C.source?"Remote":"Local"})]}),(0,t.jsx)(I.Divider,{style:{margin:"6px 0"}}),(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,t.jsx)(eT,{type:"secondary",style:{fontSize:"12px"},children:"Models loaded:"}),(0,t.jsx)(eT,{strong:!0,style:{fontSize:"12px"},children:C.model_count.toLocaleString()})]}),C.url&&(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:8},children:[(0,t.jsx)(eT,{type:"secondary",style:{fontSize:"12px",whiteSpace:"nowrap"},children:"remote"===C.source?"Loaded from:":"Attempted URL:"}),(0,t.jsx)(L.Tooltip,{title:C.url,children:(0,t.jsx)(eT,{style:{fontSize:"11px",maxWidth:240,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"block",color:"#1677ff",cursor:"default"},children:C.url})})]}),C.is_env_forced&&(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:2},children:[(0,t.jsx)(w.InfoCircleOutlined,{style:{color:"#fa8c16",fontSize:12}}),(0,t.jsxs)(eT,{type:"secondary",style:{fontSize:"11px"},children:["Local mode forced via ",(0,t.jsx)("code",{children:"LITELLM_LOCAL_MODEL_COST_MAP=True"})]})]}),C.fallback_reason&&(0,t.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:6,backgroundColor:"#fff7e6",border:"1px solid #ffd591",borderRadius:4,padding:"4px 8px",marginTop:2},children:[(0,t.jsx)(ek.WarningOutlined,{style:{color:"#fa8c16",fontSize:12,marginTop:2}}),(0,t.jsxs)(eT,{style:{fontSize:"11px",color:"#614700"},children:["Fell back to local: ",C.fallback_reason]})]})]})}),y&&(0,t.jsx)(e_.Card,{size:"small",style:{backgroundColor:"#f8f9fa",border:"1px solid #e9ecef",borderRadius:8},children:(0,t.jsxs)(A.Space,{direction:"vertical",size:"small",style:{width:"100%"},children:[y.scheduled?(0,t.jsx)("div",{children:(0,t.jsxs)(ef.Tag,{color:"green",icon:(0,t.jsx)(ey.ClockCircleOutlined,{}),children:["Scheduled every ",y.interval_hours," hours"]})}):(0,t.jsx)(eT,{type:"secondary",children:"No periodic reload scheduled"}),(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,t.jsx)(eT,{type:"secondary",style:{fontSize:"12px"},children:"Last run:"}),(0,t.jsx)(eT,{style:{fontSize:"12px"},children:O(y.last_run)})]}),y.scheduled&&(0,t.jsxs)(t.Fragment,{children:[y.next_run&&(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,t.jsx)(eT,{type:"secondary",style:{fontSize:"12px"},children:"Next run:"}),(0,t.jsx)(eT,{style:{fontSize:"12px"},children:O(y.next_run)})]}),(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,t.jsx)(eT,{type:"secondary",style:{fontSize:"12px"},children:"Status:"}),(0,t.jsx)(ef.Tag,{color:y?.scheduled?y.last_run?"success":"processing":"default",children:y?.scheduled?y.last_run?"Active":"Ready":"Not scheduled"})]})]})]})}),(0,t.jsxs)(es.Modal,{title:"Set Up Periodic Reload",open:g,onOk:E,onCancel:()=>f(!1),confirmLoading:m,okText:"Schedule",cancelText:"Cancel",okButtonProps:{style:{backgroundColor:"#6366f1",borderColor:"#6366f1",color:"white"}},children:[(0,t.jsx)("div",{style:{marginBottom:16},children:(0,t.jsx)(eT,{children:"Set up automatic reload of price data every:"})}),(0,t.jsx)("div",{style:{marginBottom:16},children:(0,t.jsx)(eh.InputNumber,{min:1,max:168,value:_,onChange:e=>j(e||6),addonAfter:"hours",style:{width:"100%"}})}),(0,t.jsx)("div",{children:(0,t.jsxs)(eT,{type:"secondary",children:["This will automatically fetch the latest pricing data from the remote source every ",_," hours."]})})]})]})},eI=()=>{let{accessToken:e}=(0,r.default)(),{refetch:l}=(0,n.useModelCostMap)();return(0,t.jsx)(J.TabPanel,{children:(0,t.jsxs)("div",{className:"p-6",children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)(eu.Title,{children:"Price Data Management"}),(0,t.jsx)(em.Text,{className:"text-tremor-content",children:"Manage model pricing data and configure automatic reload schedules"})]}),(0,t.jsx)(eF,{accessToken:e,onReloadSuccess:()=>{l()},buttonText:"Reload Price Data",size:"middle",type:"primary",className:"w-full"})]})})};var eM=e.i(916925);let eP=async(e,t,l)=>{try{console.log("handling submit for formValues:",e);let t=e.model_mappings||[];if("model_mappings"in e&&delete e.model_mappings,e.model&&e.model.includes("all-wildcard")){let l=e.custom_llm_provider,s=(eM.provider_map[l]??l.toLowerCase())+"/*";e.model_name=s,t.push({public_name:s,litellm_model:s}),e.model=s}let l=[];for(let s of t){let t={},a={},r=s.public_name;for(let[l,r]of(t.model=s.litellm_model,void 0!==e.input_cost_per_token&&null!==e.input_cost_per_token&&""!==e.input_cost_per_token&&(e.input_cost_per_token=Number(e.input_cost_per_token)/1e6),void 0!==e.output_cost_per_token&&null!==e.output_cost_per_token&&""!==e.output_cost_per_token&&(e.output_cost_per_token=Number(e.output_cost_per_token)/1e6),void 0!==e.cache_read_input_token_cost&&null!==e.cache_read_input_token_cost&&""!==e.cache_read_input_token_cost?e.cache_read_input_token_cost=Number(e.cache_read_input_token_cost)/1e6:void 0!==e.input_cost_per_token&&null!==e.input_cost_per_token&&""!==e.input_cost_per_token?e.cache_read_input_token_cost=Number(e.input_cost_per_token):delete e.cache_read_input_token_cost,void 0!==e.cache_creation_input_token_cost&&null!==e.cache_creation_input_token_cost&&""!==e.cache_creation_input_token_cost?e.cache_creation_input_token_cost=Number(e.cache_creation_input_token_cost)/1e6:delete e.cache_creation_input_token_cost,t.model=s.litellm_model,console.log("formValues add deployment:",e),Object.entries(e)))if(""!==r&&"custom_pricing"!==l&&"pricing_model"!==l&&"cache_control"!==l)if("model_name"==l)t.model=r;else if("custom_llm_provider"==l){console.log("custom_llm_provider:",r);let e=eM.provider_map[r]??r.toLowerCase();t.custom_llm_provider=e,console.log("custom_llm_provider mappingResult:",e)}else if("model"==l)continue;else if("base_model"===l)a[l]=r;else if("team_id"===l)a.team_id=r;else if("model_access_group"===l)a.access_groups=r;else if("mode"==l)console.log("placing mode in modelInfo"),a.mode=r,delete t.mode;else if("custom_model_name"===l)t.model=r;else if("litellm_extra_params"==l){console.log("litellm_extra_params:",r);let e={};if(r&&void 0!=r){try{e=JSON.parse(r),"litellm_credential_name"in e&&delete e.litellm_credential_name}catch(e){throw H.default.fromBackend("Failed to parse LiteLLM Extra Params: "+e),Error("Failed to parse litellm_extra_params: "+e)}for(let[l,s]of Object.entries(e))t[l]=s}}else if("model_info_params"==l){console.log("model_info_params:",r);let e={};if(r&&void 0!=r){try{e=JSON.parse(r)}catch(e){throw H.default.fromBackend("Failed to parse LiteLLM Extra Params: "+e),Error("Failed to parse litellm_extra_params: "+e)}for(let[t,l]of Object.entries(e))a[t]=l}}else if("input_cost_per_token"===l||"output_cost_per_token"===l||"input_cost_per_second"===l||"cache_read_input_token_cost"===l||"cache_creation_input_token_cost"===l){null!=r&&""!==r&&(t[l]=Number(r));continue}else t[l]=r;l.push({litellmParamsObj:t,modelInfoObj:a,modelName:r})}return l}catch(e){H.default.fromBackend("Failed to create model: "+e)}},eA=async(e,t,s,a)=>{try{let r=await eP(e,t,s);if(!r||0===r.length)return;for(let e of r){let{litellmParamsObj:s,modelInfoObj:a,modelName:r}=e,i={model_name:r,litellm_params:s,model_info:a},o=await (0,l.modelCreateCall)(t,i);console.log(`response for model create call: ${o.data}`)}a&&a(),s.resetFields()}catch(e){H.default.fromBackend("Failed to add model: "+e)}};var eE=e.i(591935),eL=e.i(304967),eR=e.i(779241);let eO=(0,a.createQueryKeys)("providerFields"),eB=()=>(0,s.useQuery)({queryKey:eO.list({}),queryFn:async()=>await (0,l.getProviderCreateMetadata)(),staleTime:864e5,gcTime:864e5});var ez=e.i(519756),eq=e.i(178654),eV=e.i(311451),eD=e.i(621192),eH=e.i(515831);let{Link:e$}=R.Typography,eG=e=>{let t="password"===e.field_type?"password":"select"===e.field_type?"select":"upload"===e.field_type?"upload":"textarea"===e.field_type?"textarea":"text";return{key:e.key,label:e.label,placeholder:e.placeholder??void 0,tooltip:e.tooltip??void 0,required:e.required??!1,type:t,options:e.options??void 0,defaultValue:e.default_value??void 0}},eU={},eJ=({selectedProvider:e,uploadProps:l})=>{let s=eM.Providers[e],a=el.Form.useFormInstance(),{data:r,isLoading:i,error:o}=eB(),n=x.default.useMemo(()=>{if(!r)return null;let e={};return r.forEach(t=>{let l=t.provider_display_name,s=t.credential_fields.map(eG);e[l]=s,t.provider&&(e[t.provider]=s),t.litellm_provider&&(e[t.litellm_provider]=s)}),e},[r]);x.default.useEffect(()=>{n&&Object.assign(eU,n)},[n]);let d=x.default.useMemo(()=>{let t=eU[s]??eU[e];if(t)return t;if(!r)return[];let l=r.find(t=>t.provider_display_name===s||t.provider===e||t.litellm_provider===e);if(!l)return[];let a=l.credential_fields.map(eG);return eU[l.provider_display_name]=a,l.provider&&(eU[l.provider]=a),l.litellm_provider&&(eU[l.litellm_provider]=a),a},[s,e,r]),c={name:"file",accept:".json",beforeUpload:e=>{if("application/json"===e.type){let t=new FileReader;t.onload=e=>{if(e.target){let t=e.target.result;console.log(`Setting field value from JSON, length: ${t.length}`),a.setFieldsValue({vertex_credentials:t}),console.log("Form values after setting:",a.getFieldsValue())}},t.readAsText(e)}return!1},onChange(e){console.log("Upload onChange triggered in ProviderSpecificFields"),console.log("Current form values:",a.getFieldsValue()),"uploading"!==e.file.status&&console.log(e.file,e.fileList)}};return(0,t.jsxs)(t.Fragment,{children:[i&&0===d.length&&(0,t.jsx)(eD.Row,{children:(0,t.jsx)(eq.Col,{span:24,children:(0,t.jsx)(em.Text,{className:"mb-2",children:"Loading provider fields..."})})}),o&&0===d.length&&(0,t.jsx)(eD.Row,{children:(0,t.jsx)(eq.Col,{span:24,children:(0,t.jsx)(em.Text,{className:"mb-2 text-red-500",children:o instanceof Error?o.message:"Failed to load provider credential fields"})})}),d.map(e=>(0,t.jsxs)(x.default.Fragment,{children:[(0,t.jsx)(el.Form.Item,{label:e.label,name:e.key,rules:e.required?[{required:!0,message:"Required"}]:void 0,tooltip:e.tooltip,className:"vertex_credentials"===e.key?"mb-0":void 0,children:"select"===e.type?(0,t.jsx)(Q.Select,{placeholder:e.placeholder,defaultValue:e.defaultValue,children:e.options?.map(e=>(0,t.jsx)(Q.Select.Option,{value:e,children:e},e))}):"upload"===e.type?(0,t.jsx)(eH.Upload,{...c,onChange:t=>{l?.onChange&&l.onChange(t),setTimeout(()=>{let t=a.getFieldValue(e.key);console.log(`${e.key} value after upload:`,JSON.stringify(t))},500)},children:(0,t.jsx)(W.Button,{icon:(0,t.jsx)(ez.UploadOutlined,{}),children:"Click to Upload"})}):"textarea"===e.type?(0,t.jsx)(eV.Input.TextArea,{placeholder:e.placeholder,defaultValue:e.defaultValue,rows:6,style:{fontFamily:"monospace",fontSize:"12px"}}):(0,t.jsx)(eR.TextInput,{placeholder:e.placeholder,type:"password"===e.type?"password":"text",defaultValue:e.defaultValue})}),"vertex_credentials"===e.key&&(0,t.jsx)(eD.Row,{children:(0,t.jsx)(eq.Col,{children:(0,t.jsx)(em.Text,{className:"mb-3 mt-1",children:"Give a gcp service account(.json file)"})})}),"base_model"===e.key&&(0,t.jsxs)(eD.Row,{children:[(0,t.jsx)(eq.Col,{span:10}),(0,t.jsx)(eq.Col,{span:10,children:(0,t.jsxs)(em.Text,{className:"mb-2",children:["The actual model your azure deployment uses. Used for accurate cost tracking. Select name from"," ",(0,t.jsx)(e$,{href:"https://github.com/BerriAI/litellm/blob/main/model_prices_and_context_window.json",target:"_blank",children:"here"})]})})]})]},e.key))]})},{Link:eK}=R.Typography,eW=({open:e,onCancel:l,onAddCredential:s,uploadProps:a})=>{let[r]=el.Form.useForm(),[i,o]=(0,x.useState)(eM.Providers.OpenAI);return(0,t.jsx)(es.Modal,{title:"Add New Credential",open:e,onCancel:()=>{l(),r.resetFields()},footer:null,width:600,children:(0,t.jsxs)(el.Form,{form:r,onFinish:e=>{s(Object.entries(e).reduce((e,[t,l])=>(""!==l&&null!=l&&(e[t]=l),e),{})),r.resetFields()},layout:"vertical",children:[(0,t.jsx)(el.Form.Item,{label:"Credential Name:",name:"credential_name",rules:[{required:!0,message:"Credential name is required"}],children:(0,t.jsx)(eR.TextInput,{placeholder:"Enter a friendly name for these credentials"})}),(0,t.jsx)(el.Form.Item,{rules:[{required:!0,message:"Required"}],label:"Provider:",name:"custom_llm_provider",tooltip:"Helper to auto-populate provider specific fields",children:(0,t.jsx)(Q.Select,{showSearch:!0,onChange:e=>{o(e),r.setFieldValue("custom_llm_provider",e)},children:Object.entries(eM.Providers).map(([e,l])=>(0,t.jsx)(Q.Select.Option,{value:e,children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("img",{src:eM.providerLogoMap[l],alt:`${e} logo`,className:"w-5 h-5",onError:e=>{let t=e.target,s=t.parentElement;if(s){let e=document.createElement("div");e.className="w-5 h-5 rounded-full bg-gray-200 flex items-center justify-center text-xs",e.textContent=l.charAt(0),s.replaceChild(e,t)}}}),(0,t.jsx)("span",{children:l})]})},e))})}),(0,t.jsx)(eJ,{selectedProvider:i,uploadProps:a}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)(L.Tooltip,{title:"Get help on our github",children:(0,t.jsx)(eK,{href:"https://github.com/BerriAI/litellm/issues",children:"Need Help?"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(W.Button,{onClick:()=>{l(),r.resetFields()},style:{marginRight:10},children:"Cancel"}),(0,t.jsx)(W.Button,{htmlType:"submit",children:"Add Credential"})]})]})]})})},{Link:eQ}=R.Typography;function eY({open:e,onCancel:l,onUpdateCredential:s,uploadProps:a,existingCredential:r}){let[i]=el.Form.useForm(),[o,n]=(0,x.useState)(eM.Providers.Anthropic);return(0,x.useEffect)(()=>{if(r){let e=Object.entries(r.credential_values||{}).reduce((e,[t,l])=>(e[t]=l??null,e),{});i.setFieldsValue({credential_name:r.credential_name,custom_llm_provider:r.credential_info.custom_llm_provider,...e}),n(r.credential_info.custom_llm_provider)}},[r]),(0,t.jsx)(es.Modal,{title:"Edit Credential",open:e,onCancel:()=>{l(),i.resetFields()},footer:null,width:600,destroyOnHidden:!0,children:(0,t.jsxs)(el.Form,{form:i,onFinish:e=>{s(Object.entries(e).reduce((e,[t,l])=>(""!==l&&null!=l&&(e[t]=l),e),{})),i.resetFields()},layout:"vertical",children:[(0,t.jsx)(el.Form.Item,{label:"Credential Name:",name:"credential_name",rules:[{required:!0,message:"Credential name is required"}],initialValue:r?.credential_name,children:(0,t.jsx)(eR.TextInput,{placeholder:"Enter a friendly name for these credentials",disabled:!!r?.credential_name})}),(0,t.jsx)(el.Form.Item,{rules:[{required:!0,message:"Required"}],label:"Provider:",name:"custom_llm_provider",tooltip:"Helper to auto-populate provider specific fields",children:(0,t.jsx)(Q.Select,{showSearch:!0,onChange:e=>{n(e),i.setFieldValue("custom_llm_provider",e)},children:Object.entries(eM.Providers).map(([e,l])=>(0,t.jsx)(Q.Select.Option,{value:e,children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("img",{src:eM.providerLogoMap[l],alt:`${e} logo`,className:"w-5 h-5",onError:e=>{let t=e.target,s=t.parentElement;if(s){let e=document.createElement("div");e.className="w-5 h-5 rounded-full bg-gray-200 flex items-center justify-center text-xs",e.textContent=l.charAt(0),s.replaceChild(e,t)}}}),(0,t.jsx)("span",{children:l})]})},e))})}),(0,t.jsx)(eJ,{selectedProvider:o,uploadProps:a}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)(L.Tooltip,{title:"Get help on our github",children:(0,t.jsx)(eQ,{href:"https://github.com/BerriAI/litellm/issues",children:"Need Help?"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(W.Button,{onClick:()=>{l(),i.resetFields()},style:{marginRight:10},children:"Cancel"}),(0,t.jsx)(W.Button,{htmlType:"submit",children:"Update Credential"})]})]})]})})}var eX=e.i(708347);let eZ=({uploadProps:e})=>{let{accessToken:s,userRole:a}=(0,r.default)(),i=(0,eX.isProxyAdminRole)(a??""),{data:n,refetch:d}=o(),c=n?.credentials||[],[m,u]=(0,x.useState)(!1),[h,b]=(0,x.useState)(!1),[v,N]=(0,x.useState)(null),[w,C]=(0,x.useState)(null),[F,I]=(0,x.useState)(!1),[M,P]=(0,x.useState)(!1),[A]=el.Form.useForm(),E=["credential_name","custom_llm_provider"],L=async e=>{if(!s)return;let t=Object.entries(e).filter(([e])=>!E.includes(e)).reduce((e,[t,l])=>({...e,[t]:l}),{}),a={credential_name:e.credential_name,credential_values:t,credential_info:{custom_llm_provider:e.custom_llm_provider}};await (0,l.credentialUpdateCall)(s,e.credential_name,a),H.default.success("Credential updated successfully"),b(!1),await d()},R=async e=>{if(!s)return;let t=Object.entries(e).filter(([e])=>!E.includes(e)).reduce((e,[t,l])=>({...e,[t]:l}),{}),a={credential_name:e.credential_name,credential_values:t,credential_info:{custom_llm_provider:e.custom_llm_provider}};await (0,l.credentialCreateCall)(s,a),H.default.success("Credential added successfully"),u(!1),await d()},O=async()=>{if(s&&w){P(!0);try{await (0,l.credentialDeleteCall)(s,w.credential_name),H.default.success("Credential deleted successfully"),await d()}catch(e){H.default.error("Failed to delete credential")}finally{C(null),I(!1),P(!1)}}};return(0,t.jsxs)("div",{className:"w-full mx-auto flex-auto overflow-y-auto p-2",children:[i&&(0,t.jsx)(T.Button,{onClick:()=>u(!0),children:"Add Credential"}),(0,t.jsx)("div",{className:"flex justify-between items-center mt-4 mb-4",children:(0,t.jsx)(em.Text,{children:"Configured credentials for different AI providers. Add and manage your API credentials."})}),(0,t.jsx)(eL.Card,{children:(0,t.jsxs)(p.Table,{children:[(0,t.jsx)(g.TableHead,{children:(0,t.jsxs)(j.TableRow,{children:[(0,t.jsx)(f.TableHeaderCell,{children:"Credential Name"}),(0,t.jsx)(f.TableHeaderCell,{children:"Provider"}),(0,t.jsx)(f.TableHeaderCell,{children:"Actions"})]})}),(0,t.jsx)(_.TableBody,{children:c&&0!==c.length?c.map((e,l)=>{var s;let a,r;return(0,t.jsxs)(j.TableRow,{children:[(0,t.jsx)(y.TableCell,{children:e.credential_name}),(0,t.jsx)(y.TableCell,{children:(s=e.credential_info?.custom_llm_provider||"-",r=(a={openai:"blue",azure:"indigo",anthropic:"purple",default:"gray"})[s.toLowerCase()]||a.default,(0,t.jsx)(k.Badge,{color:r,size:"xs",children:s}))}),(0,t.jsx)(y.TableCell,{children:i?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(T.Button,{icon:eE.PencilAltIcon,variant:"light",size:"sm",onClick:()=>{N(e),b(!0)}}),(0,t.jsx)(T.Button,{icon:S.TrashIcon,variant:"light",size:"sm",onClick:()=>{C(e),I(!0)},className:"ml-2"})]}):null})]},l)}):(0,t.jsx)(j.TableRow,{children:(0,t.jsx)(y.TableCell,{colSpan:4,className:"text-center py-4 text-gray-500",children:"No credentials configured"})})})]})}),m&&(0,t.jsx)(eW,{onAddCredential:R,open:m,onCancel:()=>u(!1),uploadProps:e}),h&&(0,t.jsx)(eY,{open:h,existingCredential:v,onUpdateCredential:L,uploadProps:e,onCancel:()=>b(!1)}),(0,t.jsx)(D.default,{isOpen:F,onCancel:()=>{C(null),I(!1)},onOk:O,title:"Delete Credential?",message:"Are you sure you want to delete this credential? This action cannot be undone and may break existing integrations.",resourceInformationTitle:"Credential Information",resourceInformation:[{label:"Credential Name",value:w?.credential_name},{label:"Provider",value:w?.credential_info?.custom_llm_provider||"-"}],confirmLoading:M,requiredConfirmation:w?.credential_name})]})};var e0=e.i(278587),e1=e.i(309426),e2=e.i(197647),e4=e.i(653824),e5=e.i(881073),e6=e.i(723731),e3=e.i(475647),e8=e.i(91739),e7=e.i(437902),e9=e.i(166406);let{Text:te}=R.Typography,tt=({formValues:e,accessToken:s,testMode:a,modelName:r="this model",onClose:i,onTestComplete:o})=>{var n,d,c;let m,u,[h,p]=x.default.useState(null),[g,f]=x.default.useState(null),[_,j]=x.default.useState(null),[y,b]=x.default.useState(!0),[v,N]=x.default.useState(!1),[C,S]=x.default.useState(!1),k=async()=>{b(!0),S(!1),p(null),f(null),j(null),N(!1),await new Promise(e=>setTimeout(e,100));try{console.log("Testing connection with form values:",e);let t=await eP(e,s,null);if(!t){console.log("No result from prepareModelAddRequest"),p("Failed to prepare model data. Please check your form inputs."),N(!1),b(!1);return}console.log("Result from prepareModelAddRequest:",t);let{litellmParamsObj:a,modelInfoObj:r,modelName:i}=t[0],o=await (0,l.testConnectionRequest)(s,a,r,r?.mode);if("success"===o.status)H.default.success("Connection test successful!"),p(null),N(!0);else{let e=o.result?.error||o.message||"Unknown error";p(e),f(a),j(o.result?.raw_request_typed_dict),N(!1)}}catch(e){console.error("Test connection error:",e),p(e instanceof Error?e.message:String(e)),N(!1)}finally{b(!1),o&&o()}};x.default.useEffect(()=>{let e=setTimeout(()=>{k()},200);return()=>clearTimeout(e)},[]);let T=e=>e?e.split("stack trace:")[0].trim().replace(/^litellm\.(.*?)Error: /,""):"Unknown error",F="string"==typeof h?T(h):h?.message?T(h.message):"Unknown error",M=_?(n=_.raw_request_api_base,d=_.raw_request_body,c=_.raw_request_headers||{},m=JSON.stringify(d,null,2).split("\n").map(e=>` ${e}`).join("\n"),u=Object.entries(c).map(([e,t])=>`-H '${e}: ${t}'`).join(" \\\n "),`curl -X POST \\ + ${n} \\ + ${u?`${u} \\ + `:""}-H 'Content-Type: application/json' \\ + -d '{ +${m} + }'`):"";return(0,t.jsxs)("div",{style:{padding:"24px",borderRadius:"8px",backgroundColor:"#fff"},children:[y?(0,t.jsxs)("div",{style:{textAlign:"center",padding:"32px 20px"},className:"jsx-dc9a0e2d897fe63b",children:[(0,t.jsx)("div",{style:{marginBottom:"16px"},className:"jsx-dc9a0e2d897fe63b loading-spinner",children:(0,t.jsx)("div",{style:{border:"3px solid #f3f3f3",borderTop:"3px solid #1890ff",borderRadius:"50%",width:"30px",height:"30px",animation:"spin 1s linear infinite",margin:"0 auto"},className:"jsx-dc9a0e2d897fe63b"})}),(0,t.jsxs)(te,{style:{fontSize:"16px"},children:["Testing connection to ",r,"..."]}),(0,t.jsx)(e7.default,{id:"dc9a0e2d897fe63b",children:"@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"})]}):v?(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"32px 20px"},children:[(0,t.jsx)("div",{style:{color:"#52c41a",fontSize:"24px",display:"flex",alignItems:"center"},children:(0,t.jsx)("svg",{viewBox:"64 64 896 896",focusable:"false","data-icon":"check-circle",width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z"})})}),(0,t.jsxs)(te,{"data-testid":"connection-success-msg",type:"success",style:{fontSize:"18px",fontWeight:500,marginLeft:"10px"},children:["Connection to ",r," successful!"]})]}):(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",marginBottom:"20px"},children:[(0,t.jsx)(ek.WarningOutlined,{style:{color:"#ff4d4f",fontSize:"24px",marginRight:"12px"}}),(0,t.jsxs)(te,{"data-testid":"connection-failure-msg",type:"danger",style:{fontSize:"18px",fontWeight:500},children:["Connection to ",r," failed"]})]}),(0,t.jsxs)("div",{style:{backgroundColor:"#fff2f0",border:"1px solid #ffccc7",borderRadius:"8px",padding:"16px",marginBottom:"20px",boxShadow:"0 1px 2px rgba(0, 0, 0, 0.03)"},children:[(0,t.jsxs)(te,{strong:!0,style:{display:"block",marginBottom:"8px"},children:["Error:"," "]}),(0,t.jsx)(te,{type:"danger",style:{fontSize:"14px",lineHeight:"1.5"},children:F}),h&&(0,t.jsx)("div",{style:{marginTop:"12px"},children:(0,t.jsx)(W.Button,{type:"link",onClick:()=>S(!C),style:{paddingLeft:0,height:"auto"},children:C?"Hide Details":"Show Details"})})]}),C&&(0,t.jsxs)("div",{style:{marginBottom:"20px"},children:[(0,t.jsx)(te,{strong:!0,style:{display:"block",marginBottom:"8px",fontSize:"15px"},children:"Troubleshooting Details"}),(0,t.jsx)("pre",{style:{backgroundColor:"#f5f5f5",padding:"16px",borderRadius:"8px",fontSize:"13px",maxHeight:"200px",overflow:"auto",border:"1px solid #e8e8e8",lineHeight:"1.5"},children:"string"==typeof h?h:JSON.stringify(h,null,2)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(te,{strong:!0,style:{display:"block",marginBottom:"8px",fontSize:"15px"},children:"API Request"}),(0,t.jsx)("pre",{style:{backgroundColor:"#f5f5f5",padding:"16px",borderRadius:"8px",fontSize:"13px",maxHeight:"250px",overflow:"auto",border:"1px solid #e8e8e8",lineHeight:"1.5"},children:M||"No request data available"}),(0,t.jsx)(W.Button,{style:{marginTop:"8px"},icon:(0,t.jsx)(e9.CopyOutlined,{}),onClick:()=>{navigator.clipboard.writeText(M||""),H.default.success("Copied to clipboard")},children:"Copy to Clipboard"})]})]})}),(0,t.jsx)(I.Divider,{style:{margin:"24px 0 16px"}}),(0,t.jsx)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:(0,t.jsx)(W.Button,{type:"link",href:"https://docs.litellm.ai/docs/providers",target:"_blank",icon:(0,t.jsx)(w.InfoCircleOutlined,{}),children:"View Documentation"})})]})},tl=async(e,t,s,a)=>{try{let r;console.log("=== AUTO ROUTER SUBMIT HANDLER CALLED ==="),console.log("handling auto router submit for formValues:",e),console.log("Model type:",e.model_type),"complexity_router"===e.model_type?(console.log("Creating complexity router configuration"),r={model_name:e.auto_router_name,litellm_params:{model:"auto_router/complexity_router",complexity_router_config:e.complexity_router_config,complexity_router_default_model:e.auto_router_default_model},model_info:{}},console.log("Complexity router config:",e.complexity_router_config)):(console.log("Creating semantic router configuration"),r={model_name:e.auto_router_name,litellm_params:{model:`auto_router/${e.auto_router_name}`,auto_router_config:JSON.stringify(e.auto_router_config),auto_router_default_model:e.auto_router_default_model},model_info:{}},e.auto_router_embedding_model&&"custom"!==e.auto_router_embedding_model?r.litellm_params.auto_router_embedding_model=e.auto_router_embedding_model:e.custom_embedding_model&&(r.litellm_params.auto_router_embedding_model=e.custom_embedding_model),console.log("Semantic router config (stringified):",r.litellm_params.auto_router_config)),e.team_id&&(r.model_info.team_id=e.team_id),e.model_access_group&&e.model_access_group.length>0&&(r.model_info.access_groups=e.model_access_group),console.log("Auto router configuration to be created:",r),console.log("Calling modelCreateCall...");let i=await (0,l.modelCreateCall)(t,r);console.log("response for auto router create call:",i);let o="complexity_router"===e.model_type?"Complexity Router":"Semantic Router";H.default.success(`Successfully created ${o}: ${e.auto_router_name}`),s.resetFields(),a&&a()}catch(e){console.error("Failed to add auto router:",e),H.default.fromBackend("Failed to add auto router: "+e)}};var ts=e.i(689020),ta=e.i(955135),tr=e.i(646563),ti=e.i(362024),to=e.i(21548);let{Text:tn}=R.Typography,{TextArea:td}=eV.Input,tc=({modelInfo:e,value:l,onChange:s})=>{let[a,r]=(0,x.useState)([]),[i,o]=(0,x.useState)(!1),[n,d]=(0,x.useState)([]);(0,x.useEffect)(()=>{let e=l?.routes;if(e){let t=[];r(l=>e.map((e,s)=>{let a=l[s],r=a?.id||e.id||`route-${s}-${Date.now()}`;return t.push(r),{id:r,model:e.name||e.model||"",utterances:e.utterances||[],description:e.description||"",score_threshold:e.score_threshold??.5}})),d(t)}else r([]),d([])},[l]);let c=(e,t,l)=>{let s=a.map(s=>s.id===e?{...s,[t]:l}:s);r(s),m(s)},m=e=>{let t={routes:e.map(e=>({name:e.model,utterances:e.utterances,description:e.description,score_threshold:e.score_threshold}))};s?.(t)},u=e.map(e=>({value:e.model_group,label:e.model_group}));return(0,t.jsxs)("div",{className:"w-full max-w-none",children:[(0,t.jsxs)(M.Flex,{justify:"space-between",align:"center",gap:"middle",style:{width:"100%",marginBottom:24},children:[(0,t.jsxs)(A.Space,{align:"center",children:[(0,t.jsx)(R.Typography.Title,{level:4,style:{margin:0},children:"Routes Configuration"}),(0,t.jsx)(L.Tooltip,{title:"Configure routing logic to automatically select the best model based on user input patterns",children:(0,t.jsx)(w.InfoCircleOutlined,{className:"text-gray-400"})})]}),(0,t.jsx)(W.Button,{type:"primary",icon:(0,t.jsx)(tr.PlusOutlined,{}),onClick:()=>{let e=`route-${Date.now()}`,t=[...a,{id:e,model:"",utterances:[],description:"",score_threshold:.5}];r(t),m(t),d(t=>[...t,e])},className:"bg-blue-600 hover:bg-blue-700",children:"Add Route"})]}),0===a.length?(0,t.jsx)(e_.Card,{children:(0,t.jsx)(to.Empty,{description:'No routes configured. Click "Add Route" to get started.'})}):(0,t.jsx)(ti.Collapse,{activeKey:n,onChange:e=>d(Array.isArray(e)?e:[e].filter(Boolean)),style:{width:"100%"},items:a.map((e,l)=>({key:e.id,label:(0,t.jsxs)(tn,{style:{fontSize:16},children:["Route ",l+1,": ",e.model||"Unnamed"]}),extra:(0,t.jsx)(W.Button,{type:"text",danger:!0,size:"small",icon:(0,t.jsx)(ta.DeleteOutlined,{}),onClick:t=>{var l;let s;t.stopPropagation(),l=e.id,r(s=a.filter(e=>e.id!==l)),m(s),d(e=>e.filter(e=>e!==l))}}),children:(0,t.jsxs)(e_.Card,{children:[(0,t.jsxs)("div",{className:"mb-4 w-full",children:[(0,t.jsx)(tn,{className:"text-sm font-medium mb-2 block",children:"Model"}),(0,t.jsx)(Q.Select,{value:e.model,onChange:t=>c(e.id,"model",t),placeholder:"Select model",showSearch:!0,style:{width:"100%"},options:u})]}),(0,t.jsxs)("div",{className:"mb-4 w-full",children:[(0,t.jsx)(tn,{className:"text-sm font-medium mb-2 block",children:"Description"}),(0,t.jsx)(td,{value:e.description,onChange:t=>c(e.id,"description",t.target.value),placeholder:"Describe when this route should be used...",rows:2,style:{width:"100%"}})]}),(0,t.jsxs)("div",{className:"mb-4 w-full",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,t.jsx)(tn,{className:"text-sm font-medium",children:"Score Threshold"}),(0,t.jsx)(L.Tooltip,{title:"Minimum similarity score to route to this model (0-1)",children:(0,t.jsx)(w.InfoCircleOutlined,{className:"text-gray-400"})})]}),(0,t.jsx)(eh.InputNumber,{value:e.score_threshold,onChange:t=>c(e.id,"score_threshold",t||0),min:0,max:1,step:.1,style:{width:"100%"},placeholder:"0.5"})]}),(0,t.jsxs)("div",{className:"w-full",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,t.jsx)(tn,{className:"text-sm font-medium",children:"Example Utterances"}),(0,t.jsx)(L.Tooltip,{title:"Training examples for this route. Type an utterance and press Enter to add it.",children:(0,t.jsx)(w.InfoCircleOutlined,{className:"text-gray-400"})})]}),(0,t.jsx)(tn,{className:"text-xs text-gray-500 mb-2",children:"Type an utterance and press Enter to add it. You can also paste multiple lines."}),(0,t.jsx)(Q.Select,{mode:"tags",value:e.utterances,onChange:t=>c(e.id,"utterances",t),placeholder:"Type an utterance and press Enter...",style:{width:"100%"},tokenSeparators:["\n"],maxTagCount:"responsive",allowClear:!0})]})]},e.id)}))}),(0,t.jsx)(I.Divider,{}),(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4 w-full",children:[(0,t.jsx)(tn,{className:"text-lg font-semibold",children:"JSON Preview"}),(0,t.jsx)(W.Button,{type:"link",onClick:()=>o(!i),className:"text-blue-600 p-0",children:i?"Hide":"Show"})]}),i&&(0,t.jsx)(e_.Card,{className:"bg-gray-50 w-full",children:(0,t.jsx)("pre",{className:"text-sm overflow-auto max-h-64 w-full",children:JSON.stringify({routes:a.map(e=>({name:e.model,utterances:e.utterances,description:e.description,score_threshold:e.score_threshold}))},null,2)})})]})},{Text:tm}=R.Typography,tu={SIMPLE:{label:"Simple",description:"Basic questions, greetings, simple factual queries",examples:'"Hello!", "What is Python?", "Thanks!"'},MEDIUM:{label:"Medium",description:"Standard queries requiring some reasoning or explanation",examples:'"Explain how REST APIs work", "Debug this error"'},COMPLEX:{label:"Complex",description:"Technical, multi-part requests requiring deep knowledge",examples:'"Design a microservices architecture", "Implement a rate limiter"'},REASONING:{label:"Reasoning",description:"Chain-of-thought, analysis, explicit reasoning requests",examples:'"Think step by step...", "Analyze the pros and cons..."'}},th=({modelInfo:e,value:l,onChange:s})=>{let a=e.map(e=>({value:e.model_group,label:e.model_group}));return(0,t.jsxs)("div",{className:"w-full max-w-none",children:[(0,t.jsxs)(A.Space,{align:"center",style:{marginBottom:16},children:[(0,t.jsx)(R.Typography.Title,{level:4,style:{margin:0},children:"Complexity Tier Configuration"}),(0,t.jsx)(L.Tooltip,{title:"Map each complexity tier to a model. Simple queries use cheaper/faster models, complex queries use more capable models.",children:(0,t.jsx)(w.InfoCircleOutlined,{className:"text-gray-400"})})]}),(0,t.jsx)(tm,{type:"secondary",style:{display:"block",marginBottom:24},children:"The complexity router automatically classifies requests by complexity using rule-based scoring (no API calls, <1ms latency). Configure which model handles each tier."}),(0,t.jsx)(e_.Card,{children:Object.keys(tu).map((e,r)=>{let i=tu[e];return(0,t.jsxs)("div",{children:[r>0&&(0,t.jsx)(I.Divider,{style:{margin:"16px 0"}}),(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,t.jsxs)(tm,{strong:!0,style:{fontSize:16},children:[i.label," Tier"]}),(0,t.jsx)(L.Tooltip,{title:i.description,children:(0,t.jsx)(w.InfoCircleOutlined,{className:"text-gray-400"})})]}),(0,t.jsxs)(tm,{type:"secondary",style:{display:"block",marginBottom:8,fontSize:12},children:["Examples: ",i.examples]}),(0,t.jsx)(Q.Select,{value:l[e],onChange:t=>{s({...l,[e]:t})},placeholder:`Select model for ${i.label.toLowerCase()} queries`,showSearch:!0,style:{width:"100%"},options:a})]})]},e)})}),(0,t.jsx)(I.Divider,{}),(0,t.jsxs)(e_.Card,{className:"bg-gray-50",children:[(0,t.jsx)(tm,{strong:!0,style:{display:"block",marginBottom:8},children:"How Classification Works"}),(0,t.jsx)(tm,{type:"secondary",style:{fontSize:13},children:"The router scores each request across 7 dimensions: token count, code presence, reasoning markers, technical terms, simple indicators, multi-step patterns, and question complexity. The weighted score determines the tier:"}),(0,t.jsxs)("ul",{style:{marginTop:8,marginBottom:0,paddingLeft:20,fontSize:13,color:"rgba(0, 0, 0, 0.45)"},children:[(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{children:"SIMPLE"}),": Score < 0.15"]}),(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{children:"MEDIUM"}),": Score 0.15 - 0.35"]}),(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{children:"COMPLEX"}),": Score 0.35 - 0.60"]}),(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{children:"REASONING"}),": Score > 0.60 (or 2+ reasoning markers)"]})]})]})]})};var tx=e.i(962944),tp=e.i(539677);let{Title:tg,Link:tf}=R.Typography,t_=({form:e,handleOk:s,accessToken:a,userRole:r})=>{let[i,o]=(0,x.useState)(!1),[n,d]=(0,x.useState)(!1),[c,m]=(0,x.useState)(""),[u,h]=(0,x.useState)([]),[p,g]=(0,x.useState)([]),[f,_]=(0,x.useState)(!1),[j,y]=(0,x.useState)(!1),[b,v]=(0,x.useState)("complexity"),[N,w]=(0,x.useState)(null),[C,S]=(0,x.useState)({SIMPLE:"",MEDIUM:"",COMPLEX:"",REASONING:""});(0,x.useEffect)(()=>{(async()=>{h((await (0,l.modelAvailableCall)(a,"","",!1,null,!0,!0)).data.map(e=>e.id))})()},[a]),(0,x.useEffect)(()=>{(async()=>{try{let e=await (0,ts.fetchAvailableModels)(a);console.log("Fetched models for auto router:",e),g(e)}catch(e){console.error("Error fetching model info for auto router:",e)}})()},[a]);let k=eX.all_admin_roles.includes(r),T=async()=>{d(!0),m(`test-${Date.now()}`),o(!0)},F=()=>{console.log("Auto router submit triggered!"),console.log("Router type:",b);let t=e.getFieldsValue();if(console.log("Form values:",t),!t.auto_router_name)return void H.default.fromBackend("Please enter an Auto Router Name");if("complexity"===b){if(0===Object.values(C).filter(Boolean).length)return void H.default.fromBackend("Please select at least one model for a complexity tier");let l=C.MEDIUM||C.SIMPLE||C.COMPLEX||C.REASONING;e.setFieldsValue({custom_llm_provider:"auto_router",model:t.auto_router_name,api_key:"not_required_for_auto_router",auto_router_default_model:l}),e.validateFields(["auto_router_name"]).then(r=>{console.log("Complexity router validation passed");let i={...r,auto_router_name:t.auto_router_name,auto_router_default_model:l,model_type:"complexity_router",complexity_router_config:{tiers:C},model_access_group:t.model_access_group};console.log("Final submit values:",i),tl(i,a,e,s)}).catch(e=>{console.error("Validation failed:",e),H.default.fromBackend("Please fill in all required fields")})}else{if(!t.auto_router_default_model)return void H.default.fromBackend("Please select a Default Model");if(e.setFieldsValue({custom_llm_provider:"auto_router",model:t.auto_router_name,api_key:"not_required_for_auto_router"}),!N||!N.routes||0===N.routes.length)return void H.default.fromBackend("Please configure at least one route for the auto router");if(N.routes.filter(e=>!e.name||!e.description||0===e.utterances.length).length>0)return void H.default.fromBackend("Please ensure all routes have a target model, description, and at least one utterance");e.validateFields().then(t=>{console.log("Form validation passed, submitting with values:",t);let l={...t,auto_router_config:N,model_type:"semantic_router"};console.log("Final submit values:",l),tl(l,a,e,s)}).catch(e=>{console.error("Validation failed:",e);let t=e.errorFields||[];if(t.length>0){let e=t.map(e=>{let t=e.name[0];return({auto_router_name:"Auto Router Name",auto_router_default_model:"Default Model",auto_router_embedding_model:"Embedding Model"})[t]||t});H.default.fromBackend(`Please fill in the following required fields: ${e.join(", ")}`)}else H.default.fromBackend("Please fill in all required fields")})}};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(tg,{level:2,children:"Add Auto Router"}),(0,t.jsx)(em.Text,{className:"text-gray-600 mb-6",children:"Create an auto router that automatically selects the best model based on request complexity or semantic matching."}),(0,t.jsx)(e_.Card,{className:"mb-4",children:(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(em.Text,{className:"text-sm font-medium mb-2 block",children:"Router Type"}),(0,t.jsx)(e8.Radio.Group,{value:b,onChange:e=>v(e.target.value),className:"w-full",children:(0,t.jsxs)(A.Space,{direction:"vertical",className:"w-full",children:[(0,t.jsxs)(e8.Radio,{value:"complexity",className:"w-full",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(tx.ThunderboltOutlined,{className:"text-yellow-500"}),(0,t.jsx)("span",{className:"font-medium",children:"Complexity Router"}),(0,t.jsx)(K.Badge,{count:"Recommended",style:{backgroundColor:"#52c41a",fontSize:"10px",padding:"0 6px"}})]}),(0,t.jsxs)("div",{className:"text-xs text-gray-500 ml-6 mt-1",children:["Automatically routes based on request complexity. No training data needed — just pick 4 models and go.",(0,t.jsx)("br",{}),(0,t.jsx)("span",{className:"text-green-600",children:"✓ Zero API calls"})," · ",(0,t.jsx)("span",{className:"text-green-600",children:"✓ <1ms latency"})," · ",(0,t.jsx)("span",{className:"text-green-600",children:"✓ No cost"})]})]}),(0,t.jsxs)(e8.Radio,{value:"semantic",className:"w-full mt-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(tp.BranchesOutlined,{className:"text-blue-500"}),(0,t.jsx)("span",{className:"font-medium",children:"Semantic Router"})]}),(0,t.jsx)("div",{className:"text-xs text-gray-500 ml-6 mt-1",children:"Routes based on semantic similarity to example utterances. Requires embedding model and training examples."})]})]})})]})}),(0,t.jsx)(e_.Card,{children:(0,t.jsxs)(el.Form,{form:e,onFinish:F,labelCol:{span:10},wrapperCol:{span:16},labelAlign:"left",children:[(0,t.jsx)(el.Form.Item,{rules:[{required:!0,message:"Auto router name is required"}],label:"Auto Router Name",name:"auto_router_name",tooltip:"Unique name for this auto router configuration",labelCol:{span:10},labelAlign:"left",children:(0,t.jsx)(eR.TextInput,{placeholder:"e.g., smart_router, auto_router_1"})}),"complexity"===b?(0,t.jsx)("div",{className:"w-full mb-4",children:(0,t.jsx)(th,{modelInfo:p,value:C,onChange:e=>{S(e)}})}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"w-full mb-4",children:(0,t.jsx)(tc,{modelInfo:p,value:N,onChange:t=>{w(t),e.setFieldValue("auto_router_config",t)}})}),(0,t.jsx)(el.Form.Item,{rules:[{required:"semantic"===b,message:"Default model is required"}],label:"Default Model",name:"auto_router_default_model",tooltip:"Fallback model to use when auto routing logic cannot determine the best model",labelCol:{span:10},labelAlign:"left",children:(0,t.jsx)(Q.Select,{placeholder:"Select a default model",onChange:e=>{_("custom"===e)},options:[...Array.from(new Set(p.map(e=>e.model_group))).map(e=>({value:e,label:e})),{value:"custom",label:"Enter custom model name"}],style:{width:"100%"},showSearch:!0})}),(0,t.jsx)(el.Form.Item,{label:"Embedding Model",name:"auto_router_embedding_model",tooltip:"Optional: Embedding model to use for semantic routing decisions",labelCol:{span:10},labelAlign:"left",children:(0,t.jsx)(Q.Select,{value:e.getFieldValue("auto_router_embedding_model"),placeholder:"Select an embedding model (optional)",onChange:t=>{y("custom"===t),e.setFieldValue("auto_router_embedding_model",t)},options:[...Array.from(new Set(p.map(e=>e.model_group))).map(e=>({value:e,label:e})),{value:"custom",label:"Enter custom model name"}],style:{width:"100%"},showSearch:!0,allowClear:!0})})]}),(0,t.jsxs)("div",{className:"flex items-center my-4",children:[(0,t.jsx)("div",{className:"flex-grow border-t border-gray-200"}),(0,t.jsx)("span",{className:"px-4 text-gray-500 text-sm",children:"Additional Settings"}),(0,t.jsx)("div",{className:"flex-grow border-t border-gray-200"})]}),k&&(0,t.jsx)(el.Form.Item,{label:"Model Access Group",name:"model_access_group",className:"mb-4",tooltip:"Use model access groups to control who can access this auto router",children:(0,t.jsx)(Q.Select,{mode:"tags",showSearch:!0,placeholder:"Select existing groups or type to create new ones",optionFilterProp:"children",tokenSeparators:[","],options:u.map(e=>({value:e,label:e})),maxTagCount:"responsive",allowClear:!0})}),(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(L.Tooltip,{title:"Get help on our github",children:(0,t.jsx)(R.Typography.Link,{href:"https://github.com/BerriAI/litellm/issues",children:"Need Help?"})}),(0,t.jsxs)("div",{className:"space-x-2",children:[(0,t.jsx)(W.Button,{onClick:T,loading:n,children:"Test Connection"}),(0,t.jsx)(W.Button,{type:"primary",onClick:()=>{console.log("Add Auto Router button clicked!"),F()},children:"Add Auto Router"})]})]})]})}),(0,t.jsx)(es.Modal,{title:"Connection Test Results",open:i,onCancel:()=>{o(!1),d(!1)},footer:[(0,t.jsx)(W.Button,{onClick:()=>{o(!1),d(!1)},children:"Close"},"close")],width:700,children:i&&(0,t.jsx)(tt,{formValues:e.getFieldsValue(),accessToken:a,testMode:"chat",modelName:e.getFieldValue("auto_router_name"),onClose:()=>{o(!1),d(!1)},onTestComplete:()=>d(!1)},c)})]})};var tj=e.i(838932),ty=e.i(109034),tb=e.i(793130),tv=e.i(560445),tN=e.i(663435),tw=e.i(677667),tC=e.i(898667),tS=e.i(130643),tk=e.i(635432),tT=e.i(564897),tF=e.i(435451);let{Text:tI}=R.Typography,tM=({form:e,showCacheControl:l,onCacheControlChange:s})=>{let a=t=>{let l=e.getFieldValue("litellm_extra_params");try{let s=l?JSON.parse(l):{};t.length>0?s.cache_control_injection_points=t:delete s.cache_control_injection_points,Object.keys(s).length>0?e.setFieldValue("litellm_extra_params",JSON.stringify(s,null,2)):e.setFieldValue("litellm_extra_params","")}catch(e){console.error("Error updating cache control points:",e)}};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(el.Form.Item,{label:"Cache Control Injection Points",name:"cache_control",valuePropName:"checked",className:"mb-4",tooltip:"Tell litellm where to inject cache control checkpoints. You can specify either by role (to apply to all messages of that role) or by specific message index.",children:(0,t.jsx)(E.Switch,{onChange:s,className:"bg-gray-600"})}),l&&(0,t.jsxs)("div",{className:"ml-6 pl-4 border-l-2 border-gray-200",children:[(0,t.jsx)(tI,{className:"text-sm text-gray-500 block mb-4",children:"Providers like Anthropic, Bedrock API require users to specify where to inject cache control checkpoints, litellm can automatically add them for you as a cost saving feature."}),(0,t.jsx)(el.Form.List,{name:"cache_control_injection_points",initialValue:[{location:"message"}],children:(l,{add:s,remove:r})=>(0,t.jsxs)(t.Fragment,{children:[l.map((s,i)=>(0,t.jsxs)("div",{className:"flex items-center mb-4 gap-4",children:[(0,t.jsx)(el.Form.Item,{...s,label:"Type",name:[s.name,"location"],initialValue:"message",className:"mb-0",style:{width:"180px"},children:(0,t.jsx)(Q.Select,{disabled:!0,options:[{value:"message",label:"Message"}]})}),(0,t.jsx)(el.Form.Item,{...s,label:"Role",name:[s.name,"role"],className:"mb-0",style:{width:"180px"},tooltip:"LiteLLM will mark all messages of this role as cacheable",children:(0,t.jsx)(Q.Select,{placeholder:"Select a role",allowClear:!0,options:[{value:"user",label:"User"},{value:"system",label:"System"},{value:"assistant",label:"Assistant"}],onChange:()=>{a(e.getFieldValue("cache_control_points"))}})}),(0,t.jsx)(el.Form.Item,{...s,label:"Index",name:[s.name,"index"],className:"mb-0",style:{width:"180px"},tooltip:"(Optional) If set litellm will mark the message at this index as cacheable",children:(0,t.jsx)(tF.default,{type:"number",placeholder:"Optional",step:1,onChange:()=>{a(e.getFieldValue("cache_control_points"))}})}),l.length>1&&(0,t.jsx)(tT.MinusCircleOutlined,{className:"text-red-500 cursor-pointer text-lg ml-12",onClick:()=>{r(s.name),setTimeout(()=>{a(e.getFieldValue("cache_control_points"))},0)}})]},s.key)),(0,t.jsx)(el.Form.Item,{children:(0,t.jsxs)("button",{type:"button",className:"flex items-center justify-center w-full border border-dashed border-gray-300 py-2 px-4 text-gray-600 hover:text-blue-600 hover:border-blue-300 transition-all rounded",onClick:()=>s(),children:[(0,t.jsx)(tr.PlusOutlined,{className:"mr-2"}),"Add Injection Point"]})})]})})]})]})};var tP=e.i(916940),tA=e.i(122550);let{Link:tE}=R.Typography,tL=({showAdvancedSettings:e,setShowAdvancedSettings:l,teams:s,guardrailsList:a,tagsList:r,accessToken:i})=>{let[o]=el.Form.useForm(),[n,d]=x.default.useState(!1),[c,m]=x.default.useState("per_token"),[u,h]=x.default.useState(!1),p=(e,t)=>t&&(isNaN(Number(t))||0>Number(t))?Promise.reject("Please enter a valid positive number"):Promise.resolve();return(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)(tw.Accordion,{className:"mt-2 mb-4",children:[(0,t.jsx)(tC.AccordionHeader,{children:(0,t.jsx)("b",{children:"Advanced Settings"})}),(0,t.jsx)(tS.AccordionBody,{children:(0,t.jsxs)("div",{className:"bg-white rounded-lg",children:[(0,t.jsx)(el.Form.Item,{label:"Custom Pricing",name:"custom_pricing",valuePropName:"checked",className:"mb-4",children:(0,t.jsx)(E.Switch,{onChange:e=>{d(e),e||o.setFieldsValue({input_cost_per_token:void 0,output_cost_per_token:void 0,cache_read_input_token_cost:void 0,cache_creation_input_token_cost:void 0,input_cost_per_second:void 0})},className:"bg-gray-600"})}),(0,t.jsx)(el.Form.Item,{label:(0,t.jsxs)("span",{children:["Attached Knowledge Bases (RAG)"," ",(0,t.jsx)(L.Tooltip,{title:"Vector stores to use for RAG. Every request to this model will automatically retrieve context from these knowledge bases.",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/completion/knowledgebase",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(w.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),name:"vector_store_ids",className:"mt-4",help:"Select vector stores to attach. Requests to this model will automatically use these for RAG. Set up vector stores in Tools > Vector Stores.",children:(0,t.jsx)(tP.default,{onChange:()=>{},accessToken:i,placeholder:"Select knowledge bases (optional)"})}),(0,t.jsx)(el.Form.Item,{label:(0,t.jsxs)("span",{children:["Guardrails"," ",(0,t.jsx)(L.Tooltip,{title:"Apply safety guardrails to this key to filter content or enforce policies",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/guardrails/quick_start",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(w.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),name:"guardrails",className:"mt-4",help:"Select existing guardrails. Go to 'Guardrails' tab to create new guardrails.",children:(0,t.jsx)(Q.Select,{mode:"tags",style:{width:"100%"},placeholder:"Select or enter guardrails",options:a.map(e=>({value:e,label:e}))})}),(0,t.jsx)(el.Form.Item,{label:"Tags",name:"tags",className:"mb-4",children:(0,t.jsx)(Q.Select,{mode:"tags",style:{width:"100%"},placeholder:"Select or enter tags",options:Object.values(r).map(e=>({value:e.name,label:e.name,title:e.description||e.name}))})}),n&&(0,t.jsxs)("div",{className:"ml-6 pl-4 border-l-2 border-gray-200",children:[(0,t.jsx)(el.Form.Item,{label:"Pricing Model",name:"pricing_model",className:"mb-4",children:(0,t.jsx)(Q.Select,{defaultValue:"per_token",onChange:e=>m(e),options:[{value:"per_token",label:"Per Million Tokens"},{value:"per_second",label:"Per Second"}]})}),"per_token"===c?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(el.Form.Item,{label:"Input Cost (per 1M tokens)",name:"input_cost_per_token",rules:[{validator:p}],className:"mb-4",children:(0,t.jsx)(eR.TextInput,{})}),(0,t.jsx)(el.Form.Item,{label:"Output Cost (per 1M tokens)",name:"output_cost_per_token",rules:[{validator:p}],className:"mb-4",children:(0,t.jsx)(eR.TextInput,{})}),(0,t.jsx)(el.Form.Item,{label:"Cache Read Cost (per 1M tokens)",name:"cache_read_input_token_cost",rules:[{validator:p}],tooltip:"If left blank, defaults to Input Cost.",className:"mb-4",children:(0,t.jsx)(eR.TextInput,{placeholder:"Defaults to Input Cost if blank"})}),(0,t.jsx)(el.Form.Item,{label:"Cache Write Cost (per 1M tokens)",name:"cache_creation_input_token_cost",rules:[{validator:p}],tooltip:"If left blank, defaults to Input Cost (the backend falls back to input_cost_per_token when no cache-write rate is set).",className:"mb-4",children:(0,t.jsx)(eR.TextInput,{placeholder:"Defaults to Input Cost if blank"})})]}):(0,t.jsx)(el.Form.Item,{label:"Cost Per Second",name:"input_cost_per_second",rules:[{validator:p}],className:"mb-4",children:(0,t.jsx)(eR.TextInput,{})})]}),(0,t.jsx)(el.Form.Item,{label:"Use in pass through routes",name:"use_in_pass_through",valuePropName:"checked",className:"mb-4 mt-4",tooltip:(0,t.jsxs)("span",{children:["Allow using these credentials in pass through routes."," ",(0,t.jsx)(tE,{href:"https://docs.litellm.ai/docs/pass_through/vertex_ai",target:"_blank",children:"Learn more"})]}),children:(0,t.jsx)(E.Switch,{onChange:e=>{let t=o.getFieldValue("litellm_extra_params");try{let l=t?JSON.parse(t):{};e?l.use_in_pass_through=!0:delete l.use_in_pass_through,Object.keys(l).length>0?o.setFieldValue("litellm_extra_params",JSON.stringify(l,null,2)):o.setFieldValue("litellm_extra_params","")}catch(t){e?o.setFieldValue("litellm_extra_params",JSON.stringify({use_in_pass_through:!0},null,2)):o.setFieldValue("litellm_extra_params","")}},className:"bg-gray-600"})}),(0,t.jsx)(tM,{form:o,showCacheControl:u,onCacheControlChange:e=>{if(h(e),!e){let e=o.getFieldValue("litellm_extra_params");try{let t=e?JSON.parse(e):{};delete t.cache_control_injection_points,Object.keys(t).length>0?o.setFieldValue("litellm_extra_params",JSON.stringify(t,null,2)):o.setFieldValue("litellm_extra_params","")}catch(e){o.setFieldValue("litellm_extra_params","")}}}}),(0,t.jsx)(el.Form.Item,{label:"LiteLLM Params",name:"litellm_extra_params",tooltip:"Optional litellm params used for making a litellm.completion() call.",className:"mb-4 mt-4",rules:[{validator:tA.formItemValidateJSON}],children:(0,t.jsx)(tk.default,{rows:4,placeholder:'{ "rpm": 100, "timeout": 0, "stream_timeout": 0 }'})}),(0,t.jsxs)(eD.Row,{className:"mb-4",children:[(0,t.jsx)(eq.Col,{span:10}),(0,t.jsx)(eq.Col,{span:10,children:(0,t.jsxs)(em.Text,{className:"text-gray-600 text-sm",children:["Pass JSON of litellm supported params"," ",(0,t.jsx)(tE,{href:"https://docs.litellm.ai/docs/completion/input",target:"_blank",children:"litellm.completion() call"})]})})]}),(0,t.jsx)(el.Form.Item,{label:"Model Info",name:"model_info_params",tooltip:"Optional model info params. Returned when calling `/model/info` endpoint.",className:"mb-0",rules:[{validator:tA.formItemValidateJSON}],children:(0,t.jsx)(tk.default,{rows:4,placeholder:'{ "mode": "chat" }'})})]})})]})})};var tR=e.i(291542),tO=e.i(750113);let tB=({content:e,children:l,width:s="auto",className:a=""})=>{let[r,i]=(0,x.useState)(!1),[o,n]=(0,x.useState)("top"),d=(0,x.useRef)(null);return(0,t.jsxs)("div",{className:"relative inline-block",ref:d,children:[l||(0,t.jsx)(tO.QuestionCircleOutlined,{className:"ml-1 text-gray-500 cursor-help",onMouseEnter:()=>{if(d.current){let e=d.current.getBoundingClientRect(),t=e.top,l=window.innerHeight-e.bottom;t<300&&l>300?n("bottom"):n("top")}i(!0)},onMouseLeave:()=>i(!1)}),r&&(0,t.jsxs)("div",{className:`absolute left-1/2 -translate-x-1/2 z-50 bg-black/90 text-white p-2 rounded-md text-sm font-normal shadow-lg ${a}`,style:{["top"===o?"bottom":"top"]:"100%",width:s,marginBottom:"top"===o?"8px":"0",marginTop:"bottom"===o?"8px":"0"},children:[e,(0,t.jsx)("div",{className:"absolute left-1/2 -translate-x-1/2 w-0 h-0",style:{top:"top"===o?"100%":"auto",bottom:"bottom"===o?"100%":"auto",borderTop:"top"===o?"6px solid rgba(0, 0, 0, 0.9)":"6px solid transparent",borderBottom:"bottom"===o?"6px solid rgba(0, 0, 0, 0.9)":"6px solid transparent",borderLeft:"6px solid transparent",borderRight:"6px solid transparent"}})]})]})},tz=()=>{let e=el.Form.useFormInstance(),[l,s]=(0,x.useState)(0),a=el.Form.useWatch("model",e)||[],r=Array.isArray(a)?a:[a],i=el.Form.useWatch("custom_model_name",e),o=!r.includes("all-wildcard"),n=el.Form.useWatch("custom_llm_provider",e);if((0,x.useEffect)(()=>{if(i&&r.includes("custom")){let t=(e.getFieldValue("model_mappings")||[]).map(e=>"custom"===e.public_name||"custom"===e.litellm_model?n===eM.Providers.Azure?{public_name:i,litellm_model:`azure/${i}`}:{public_name:i,litellm_model:i}:e);e.setFieldValue("model_mappings",t),s(e=>e+1)}},[i,r,n,e]),(0,x.useEffect)(()=>{if(r.length>0&&!r.includes("all-wildcard")){let t=e.getFieldValue("model_mappings")||[];if(t.length!==r.length||!r.every(e=>t.some(t=>"custom"===e?"custom"===t.litellm_model||t.litellm_model===i:n===eM.Providers.Azure?t.litellm_model===`azure/${e}`:t.litellm_model===e))){let t=r.map(e=>"custom"===e&&i?n===eM.Providers.Azure?{public_name:i,litellm_model:`azure/${i}`}:{public_name:i,litellm_model:i}:n===eM.Providers.Azure?{public_name:e,litellm_model:`azure/${e}`}:{public_name:e,litellm_model:e});e.setFieldValue("model_mappings",t),s(e=>e+1)}}},[r,i,n,e]),!o)return null;let d=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"mb-2 font-normal",children:"The name you specify in your API calls to LiteLLM Proxy"}),(0,t.jsxs)("div",{className:"mb-2 font-normal",children:[(0,t.jsx)("strong",{children:"Example:"})," If you name your public model"," ",(0,t.jsx)("code",{className:"bg-gray-700 px-1 py-0.5 rounded text-xs",children:"example-name"}),", and choose"," ",(0,t.jsx)("code",{className:"bg-gray-700 px-1 py-0.5 rounded text-xs",children:"openai/qwen-plus-latest"})," as the LiteLLM model"]}),(0,t.jsxs)("div",{className:"mb-2 font-normal",children:[(0,t.jsx)("strong",{children:"Usage:"})," You make an API call to the LiteLLM proxy with"," ",(0,t.jsx)("code",{className:"bg-gray-700 px-1 py-0.5 rounded text-xs",children:'model = "example-name"'})]}),(0,t.jsxs)("div",{className:"font-normal",children:[(0,t.jsx)("strong",{children:"Result:"})," LiteLLM sends"," ",(0,t.jsx)("code",{className:"bg-gray-700 px-1 py-0.5 rounded text-xs",children:"qwen-plus-latest"})," to the provider"]})]}),c=(0,t.jsx)("div",{children:"The model name LiteLLM will send to the LLM API"}),m=[{title:(0,t.jsxs)("span",{className:"flex items-center",children:["Public Model Name",(0,t.jsx)(tB,{content:d,width:"500px"})]}),dataIndex:"public_name",key:"public_name",render:(l,s,a)=>(0,t.jsx)(eR.TextInput,{value:l,onChange:t=>{let l=t.target.value,s=[...e.getFieldValue("model_mappings")],r=n===eM.Providers.Anthropic,i=l.endsWith("-1m"),o=e.getFieldValue("litellm_extra_params"),d=!o||""===o.trim(),c=l;if(r&&i&&d){let t=JSON.stringify({extra_headers:{"anthropic-beta":"context-1m-2025-08-07"}},null,2);e.setFieldValue("litellm_extra_params",t),c=l.slice(0,-3)}s[a].public_name=c,e.setFieldValue("model_mappings",s)}})},{title:(0,t.jsxs)("span",{className:"flex items-center",children:["LiteLLM Model Name",(0,t.jsx)(tB,{content:c,width:"360px"})]}),dataIndex:"litellm_model",key:"litellm_model"}];return(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(el.Form.Item,{label:"Model Mappings",name:"model_mappings",tooltip:"Map public model names to LiteLLM model names for load balancing",labelCol:{span:10},wrapperCol:{span:16},labelAlign:"left",rules:[{required:!0,validator:async(e,t)=>{if(!t||0===t.length)throw Error("At least one model mapping is required");if(t.filter(e=>!e.public_name||""===e.public_name.trim()).length>0)throw Error("All model mappings must have valid public names")}}],children:(0,t.jsx)(tR.Table,{dataSource:e.getFieldValue("model_mappings"),columns:m,pagination:!1,size:"small"},l)})})},tq=({selectedProvider:e,providerModels:l,getPlaceholder:s})=>{let a=el.Form.useFormInstance(),r=t=>{let l=t.target.value,s=(a.getFieldValue("model_mappings")||[]).map(t=>"custom"===t.public_name||"custom"===t.litellm_model?e===eM.Providers.Azure?{public_name:l,litellm_model:`azure/${l}`}:{public_name:l,litellm_model:l}:t);a.setFieldsValue({model_mappings:s})};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(el.Form.Item,{label:"LiteLLM Model Name(s)",tooltip:"The model name LiteLLM will send to the LLM API",className:"mb-0",children:[(0,t.jsx)(el.Form.Item,{name:"model",rules:[{required:!0,message:`Please enter ${e===eM.Providers.Azure?"a deployment name":"at least one model"}.`}],noStyle:!0,children:e===eM.Providers.Azure||e===eM.Providers.OpenAI_Compatible||e===eM.Providers.Ollama?(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(eR.TextInput,{placeholder:s(e),onChange:e===eM.Providers.Azure?e=>{let t=e.target.value,l=t?[{public_name:t,litellm_model:`azure/${t}`}]:[];a.setFieldsValue({model:t,model_mappings:l})}:void 0})}):l.length>0?(0,t.jsx)(Q.Select,{"data-testid":"model-name-select",mode:"multiple",allowClear:!0,showSearch:!0,placeholder:"Select models",onChange:t=>{let l=Array.isArray(t)?t:[t];if(l.includes("all-wildcard"))a.setFieldsValue({model_name:void 0,model_mappings:[]});else if(JSON.stringify(a.getFieldValue("model"))!==JSON.stringify(l)){let t=l.map(t=>e===eM.Providers.Azure?{public_name:t,litellm_model:`azure/${t}`}:{public_name:t,litellm_model:t});a.setFieldsValue({model:l,model_mappings:t})}},optionFilterProp:"children",filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase()),options:[{label:"Custom Model Name (Enter below)",value:"custom"},{label:`All ${e} Models (Wildcard)`,value:"all-wildcard"},...l.map(e=>({label:e,value:e}))],style:{width:"100%"}}):(0,t.jsx)(eR.TextInput,{placeholder:s(e)})}),(0,t.jsx)(el.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.model!==t.model,children:({getFieldValue:l})=>{let s=l("model")||[];return(Array.isArray(s)?s:[s]).includes("custom")&&(0,t.jsx)(el.Form.Item,{name:"custom_model_name",rules:[{required:!0,message:"Please enter a custom model name."}],className:"mt-2",children:(0,t.jsx)(eR.TextInput,{placeholder:e===eM.Providers.Azure?"Enter Azure deployment name":"Enter custom model name",onChange:r})})}})]}),(0,t.jsxs)(eD.Row,{children:[(0,t.jsx)(eq.Col,{span:10}),(0,t.jsx)(eq.Col,{span:14,children:(0,t.jsx)(em.Text,{className:"mb-3 mt-1",children:e===eM.Providers.Azure?"Your deployment name will be saved as the public model name, and LiteLLM will use 'azure/deployment-name' internally":"The model name LiteLLM will send to the LLM API"})})]})]})},tV=[{value:"chat",label:"Chat - /chat/completions"},{value:"completion",label:"Completion - /completions"},{value:"embedding",label:"Embedding - /embeddings"},{value:"audio_speech",label:"Audio Speech - /audio/speech"},{value:"audio_transcription",label:"Audio Transcription - /audio/transcriptions"},{value:"image_generation",label:"Image Generation - /images/generations"},{value:"video_generation",label:"Video Generation - /videos"},{value:"rerank",label:"Rerank - /rerank"},{value:"realtime",label:"Realtime - /realtime"},{value:"batch",label:"Batch - /batch"},{value:"ocr",label:"OCR - /ocr"}],{Title:tD,Link:tH}=R.Typography,t$=({form:e,handleOk:s,selectedProvider:a,setSelectedProvider:i,providerModels:o,setProviderModelsFn:n,getPlaceholder:d,uploadProps:c,showAdvancedSettings:m,setShowAdvancedSettings:u,teams:h,credentials:p})=>{let[g,f]=(0,x.useState)("chat"),[_,j]=(0,x.useState)(!1),[y,b]=(0,x.useState)(!1),[v,N]=(0,x.useState)(""),{accessToken:w,userRole:C,premiumUser:S,userId:k}=(0,r.default)(),{data:T,isLoading:F,error:I}=eB(),{data:M}=(0,tj.useGuardrails)(),P=M?.guardrails.map(e=>e.guardrail_name),{data:A,isLoading:E,error:B}=(0,ty.useTags)(),z=async()=>{b(!0),N(`test-${Date.now()}`),j(!0)},[q,V]=(0,x.useState)(!1),[D,H]=(0,x.useState)([]),[$,G]=(0,x.useState)(null);(0,x.useEffect)(()=>{(async()=>{H((await (0,l.modelAvailableCall)(w,"","",!1,null,!0,!0)).data.map(e=>e.id))})()},[w]);let U=(0,x.useMemo)(()=>T?[...T].sort((e,t)=>e.provider_display_name.localeCompare(t.provider_display_name)):[],[T]),J=I?I instanceof Error?I.message:"Failed to load providers":null,K=eX.all_admin_roles.includes(C),Y=(0,eX.isUserTeamAdminForAnyTeam)(h,k);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(tD,{level:2,children:"Add Model"}),(0,t.jsx)(e_.Card,{children:(0,t.jsx)(el.Form,{form:e,onFinish:async e=>{console.log("🔥 Form onFinish triggered with values:",e),await s().then(()=>{G(null)})},onFinishFailed:e=>{console.log("💥 Form onFinishFailed triggered:",e)},labelCol:{span:10},wrapperCol:{span:16},labelAlign:"left",children:(0,t.jsxs)(t.Fragment,{children:[Y&&!K&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(el.Form.Item,{label:"Select Team",name:"team_id",rules:[{required:!0,message:"Please select a team to continue"}],tooltip:"Select the team for which you want to add this model",children:(0,t.jsx)(tN.default,{onChange:e=>{G(e)}})}),!$&&(0,t.jsx)(tv.Alert,{message:"Team Selection Required",description:"As a team admin, you need to select your team first before adding models.",type:"info",showIcon:!0,className:"mb-4"})]}),(K||Y&&$)&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(el.Form.Item,{rules:[{required:!0,message:"Required"}],label:"Provider:",name:"custom_llm_provider",tooltip:"E.g. OpenAI, Azure OpenAI, Anthropic, Bedrock, etc.",labelCol:{span:10},labelAlign:"left",children:(0,t.jsxs)(Q.Select,{virtual:!1,showSearch:!0,loading:F,placeholder:F?"Loading providers...":"Select a provider",optionFilterProp:"data-label",onChange:t=>{i(t),n(t),e.setFieldsValue({custom_llm_provider:t}),e.setFieldsValue({model:[],model_name:void 0})},children:[J&&0===U.length&&(0,t.jsx)(Q.Select.Option,{value:"",children:J},"__error"),U.map(e=>{let l=e.provider_display_name,s=e.provider;return eM.providerLogoMap[l],(0,t.jsx)(Q.Select.Option,{value:s,"data-label":l,children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)(O.ProviderLogo,{provider:s,className:"w-5 h-5"}),(0,t.jsx)("span",{children:l})]})},s)})]})}),(0,t.jsx)(tq,{selectedProvider:a,providerModels:o,getPlaceholder:d}),(0,t.jsx)(tz,{}),(0,t.jsx)(el.Form.Item,{label:"Mode",name:"mode",className:"mb-1",children:(0,t.jsx)(Q.Select,{style:{width:"100%"},value:g,onChange:e=>f(e),options:tV})}),(0,t.jsxs)(eD.Row,{children:[(0,t.jsx)(eq.Col,{span:10}),(0,t.jsx)(eq.Col,{span:10,children:(0,t.jsxs)(em.Text,{className:"mb-5 mt-1",children:[(0,t.jsx)("strong",{children:"Optional"})," - LiteLLM endpoint to use when health checking this model"," ",(0,t.jsx)(tH,{href:"https://docs.litellm.ai/docs/proxy/health#health",target:"_blank",children:"Learn more"})]})})]}),(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)(R.Typography.Text,{className:"text-sm text-gray-500 mb-2",children:"Either select existing credentials OR enter new provider credentials below"})}),(0,t.jsx)(el.Form.Item,{label:"Existing Credentials",name:"litellm_credential_name",initialValue:null,children:(0,t.jsx)(Q.Select,{showSearch:!0,placeholder:"Select or search for existing credentials",optionFilterProp:"children",filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase()),options:[{value:null,label:"None"},...p.map(e=>({value:e.credential_name,label:e.credential_name}))],allowClear:!0})}),(0,t.jsx)(el.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.litellm_credential_name!==t.litellm_credential_name||e.provider!==t.provider,children:({getFieldValue:e})=>{let l=e("litellm_credential_name");return(console.log("🔑 Credential Name Changed:",l),l)?null:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center my-4",children:[(0,t.jsx)("div",{className:"flex-grow border-t border-gray-200"}),(0,t.jsx)("span",{className:"px-4 text-gray-500 text-sm",children:"OR"}),(0,t.jsx)("div",{className:"flex-grow border-t border-gray-200"})]}),(0,t.jsx)(eJ,{selectedProvider:a,uploadProps:c})]})}}),(0,t.jsxs)("div",{className:"flex items-center my-4",children:[(0,t.jsx)("div",{className:"flex-grow border-t border-gray-200"}),(0,t.jsx)("span",{className:"px-4 text-gray-500 text-sm",children:"Additional Model Info Settings"}),(0,t.jsx)("div",{className:"flex-grow border-t border-gray-200"})]}),(K||!Y)&&(0,t.jsx)(el.Form.Item,{label:"Team-BYOK Model",tooltip:"Only use this model + credential combination for this team. Useful when teams want to onboard their own OpenAI keys.",className:"mb-4",children:(0,t.jsx)(L.Tooltip,{title:S?"":"This is an enterprise-only feature. Upgrade to premium to restrict model+credential combinations to a specific team.",placement:"top",children:(0,t.jsx)(tb.Switch,{checked:q,onChange:t=>{V(t),t||e.setFieldValue("team_id",void 0)},disabled:!S})})}),q&&(K||!Y)&&(0,t.jsx)(el.Form.Item,{label:"Select Team",name:"team_id",className:"mb-4",tooltip:"Only keys for this team will be able to call this model.",rules:[{required:q&&!K,message:"Please select a team."}],children:(0,t.jsx)(tN.default,{disabled:!S})}),K&&(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(el.Form.Item,{label:"Model Access Group",name:"model_access_group",className:"mb-4",tooltip:"Use model access groups to give users access to select models, and add new ones to the group over time.",children:(0,t.jsx)(Q.Select,{mode:"tags",showSearch:!0,placeholder:"Select existing groups or type to create new ones",optionFilterProp:"children",tokenSeparators:[","],options:D.map(e=>({value:e,label:e})),maxTagCount:"responsive",allowClear:!0})})}),(0,t.jsx)(tL,{showAdvancedSettings:m,setShowAdvancedSettings:u,teams:h,guardrailsList:P||[],tagsList:A||{},accessToken:w||""})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(L.Tooltip,{title:"Get help on our github",children:(0,t.jsx)(R.Typography.Link,{href:"https://github.com/BerriAI/litellm/issues",children:"Need Help?"})}),(0,t.jsxs)("div",{className:"space-x-2",children:[(0,t.jsx)(W.Button,{"data-testid":"test-connect-btn",onClick:z,loading:y,children:"Test Connect"}),(0,t.jsx)(W.Button,{"data-testid":"add-model-btn",htmlType:"submit",children:"Add Model"})]})]})]})})}),(0,t.jsx)(es.Modal,{title:"Connection Test Results",open:_,onCancel:()=>{j(!1),b(!1)},footer:[(0,t.jsx)(W.Button,{onClick:()=>{j(!1),b(!1)},children:"Close"},"close")],width:700,children:_&&(0,t.jsx)(tt,{formValues:e.getFieldsValue(),accessToken:w,testMode:g,modelName:e.getFieldValue("model_name")||e.getFieldValue("model"),onClose:()=>{j(!1),b(!1)},onTestComplete:()=>b(!1)},v)})]})},tG=({form:e,handleOk:l,selectedProvider:s,setSelectedProvider:a,providerModels:r,setProviderModelsFn:i,getPlaceholder:o,uploadProps:n,showAdvancedSettings:d,setShowAdvancedSettings:c,teams:m,credentials:u,accessToken:h,userRole:x})=>{let[p]=el.Form.useForm();return(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)(e4.TabGroup,{className:"w-full",children:[(0,t.jsxs)(e5.TabList,{className:"mb-4",children:[(0,t.jsx)(e2.Tab,{children:"Add Model"}),(0,t.jsx)(e2.Tab,{children:"Add Auto Router"})]}),(0,t.jsxs)(e6.TabPanels,{children:[(0,t.jsx)(J.TabPanel,{children:(0,t.jsx)(t$,{form:e,handleOk:l,selectedProvider:s,setSelectedProvider:a,providerModels:r,setProviderModelsFn:i,getPlaceholder:o,uploadProps:n,showAdvancedSettings:d,setShowAdvancedSettings:c,teams:m,credentials:u})}),(0,t.jsx)(J.TabPanel,{children:(0,t.jsx)(t_,{form:p,handleOk:()=>{p.validateFields().then(e=>{tl(e,h,p,l)}).catch(e=>{console.error("Validation failed:",e)})},accessToken:h,userRole:x})})]})]})})};var tU=e.i(798496),tJ=e.i(536916),tK=e.i(502275),tW=e.i(122577);let tQ=[{pattern:/Missing .* API Key/i,replacement:"Missing API Key"},{pattern:/Connection timeout/i,replacement:"Connection timeout"},{pattern:/Network.*not.*ok/i,replacement:"Network connection failed"},{pattern:/403.*Forbidden/i,replacement:"Access forbidden - check API key permissions"},{pattern:/401.*Unauthorized/i,replacement:"Unauthorized - invalid API key"},{pattern:/429.*rate limit/i,replacement:"Rate limit exceeded"},{pattern:/500.*Internal Server Error/i,replacement:"Provider internal server error"},{pattern:/litellm\.AuthenticationError/i,replacement:"Authentication failed"},{pattern:/litellm\.RateLimitError/i,replacement:"Rate limit exceeded"},{pattern:/litellm\.APIError/i,replacement:"API error"}],tY=({accessToken:e,modelData:s,all_models_on_proxy:a,getDisplayModelName:r,setSelectedModelId:i,teams:o,isLoading:n=!1,paginationMeta:d,currentPage:c=1,pageSize:m=50,onPageChange:u})=>{let h,p,g,f,[_,j]=(0,x.useState)({}),[y,b]=(0,x.useState)([]),[v,N]=(0,x.useState)(!1),[w,C]=(0,x.useState)(!1),[S,F]=(0,x.useState)(null),[I,M]=(0,x.useState)(!1),[P,A]=(0,x.useState)(null);(0,x.useRef)(null),(0,x.useEffect)(()=>{e&&s?.data&&(async()=>{let t={};s.data.forEach(e=>{let l=e.model_info?.id;l&&(t[l]={status:"none",lastCheck:"None",lastSuccess:"None",loading:!1,error:void 0,fullError:void 0,successResponse:void 0})});try{let a=await (0,l.latestHealthChecksCall)(e);a&&a.latest_health_checks&&"object"==typeof a.latest_health_checks&&Object.entries(a.latest_health_checks).forEach(([e,l])=>{if(!l||!s.data.some(t=>t.model_info?.id===e))return;let a=l.error_message||void 0;t[e]={status:l.status||"unknown",lastCheck:l.checked_at?new Date(l.checked_at).toLocaleString():"None",lastSuccess:"healthy"===l.status&&l.checked_at?new Date(l.checked_at).toLocaleString():"None",loading:!1,error:a?E(a):void 0,fullError:a,successResponse:"healthy"===l.status?l:void 0}})}catch(e){console.warn("Failed to load health check history (using default states):",e)}j(t)})()},[e,s]);let E=e=>{if(!e)return"Health check failed";let t="string"==typeof e?e:JSON.stringify(e),l=t.match(/(\w+Error):\s*(\d{3})/i);if(l)return`${l[1]}: ${l[2]}`;let s=t.match(/(AuthenticationError|RateLimitError|BadRequestError|InternalServerError|TimeoutError|NotFoundError|ForbiddenError|ServiceUnavailableError|BadGatewayError|ContentPolicyViolationError|\w+Error)/i),a=t.match(/\b(400|401|403|404|408|429|500|502|503|504)\b/);if(s&&a)return`${s[1]}: ${a[1]}`;if(a){let e=a[1];return`${({400:"BadRequestError",401:"AuthenticationError",403:"ForbiddenError",404:"NotFoundError",408:"TimeoutError",429:"RateLimitError",500:"InternalServerError",502:"BadGatewayError",503:"ServiceUnavailableError",504:"GatewayTimeoutError"})[e]}: ${e}`}if(s){let e=s[1],t={AuthenticationError:"401",RateLimitError:"429",BadRequestError:"400",InternalServerError:"500",TimeoutError:"408",NotFoundError:"404",ForbiddenError:"403",ServiceUnavailableError:"503",BadGatewayError:"502",GatewayTimeoutError:"504",ContentPolicyViolationError:"400"}[e];return t?`${e}: ${t}`:e}for(let{pattern:e,replacement:l}of tQ)if(e.test(t))return l;if(/missing.*api.*key|invalid.*key|unauthorized/i.test(t))return"AuthenticationError: 401";if(/rate.*limit|too.*many.*requests/i.test(t))return"RateLimitError: 429";if(/timeout|timed.*out/i.test(t))return"TimeoutError: 408";if(/not.*found/i.test(t))return"NotFoundError: 404";if(/forbidden|access.*denied/i.test(t))return"ForbiddenError: 403";if(/internal.*server.*error/i.test(t))return"InternalServerError: 500";let r=t.replace(/[\n\r]+/g," ").replace(/\s+/g," ").trim(),i=r.split(/[.!?]/),o=i[0]?.trim();return o&&o.length>0?o.length>100?o.substring(0,97)+"...":o:r.length>100?r.substring(0,97)+"...":r},R=async t=>{if(e){j(e=>({...e,[t]:{...e[t],loading:!0,status:"checking"}}));try{let s=await (0,l.individualModelHealthCheckCall)(e,t),a=new Date().toLocaleString();if(s.unhealthy_count>0&&s.unhealthy_endpoints&&s.unhealthy_endpoints.length>0){let e=s.unhealthy_endpoints[0]?.error||"Health check failed",l=E(e);j(s=>({...s,[t]:{status:"unhealthy",lastCheck:a,lastSuccess:s[t]?.lastSuccess||"None",loading:!1,error:l,fullError:e}}))}else j(e=>({...e,[t]:{status:"healthy",lastCheck:a,lastSuccess:a,loading:!1,successResponse:s}}));try{let s=await (0,l.latestHealthChecksCall)(e),a=s.latest_health_checks?.[t];if(a){let e=a.error_message||void 0;j(l=>({...l,[t]:{status:a.status||l[t]?.status||"unknown",lastCheck:a.checked_at?new Date(a.checked_at).toLocaleString():l[t]?.lastCheck||"None",lastSuccess:"healthy"===a.status&&a.checked_at?new Date(a.checked_at).toLocaleString():l[t]?.lastSuccess||"None",loading:!1,error:e?E(e):l[t]?.error,fullError:e||l[t]?.fullError,successResponse:"healthy"===a.status?a:l[t]?.successResponse}}))}}catch(e){console.debug("Could not fetch updated status from database (non-critical):",e)}}catch(a){let e=new Date().toLocaleString(),l=a instanceof Error?a.message:String(a),s=E(l);j(a=>({...a,[t]:{status:"unhealthy",lastCheck:e,lastSuccess:a[t]?.lastSuccess||"None",loading:!1,error:s,fullError:l}}))}}},O=async()=>{let t=y.length>0?y:a,s=t.reduce((e,t)=>(e[t]={..._[t],loading:!0,status:"checking"},e),{});j(e=>({...e,...s}));let r={},i=t.map(async t=>{if(e)try{let s=await (0,l.individualModelHealthCheckCall)(e,t);r[t]=s;let a=new Date().toLocaleString();if(s.unhealthy_count>0&&s.unhealthy_endpoints&&s.unhealthy_endpoints.length>0){let e=s.unhealthy_endpoints[0]?.error||"Health check failed",l=E(e);j(s=>({...s,[t]:{status:"unhealthy",lastCheck:a,lastSuccess:s[t]?.lastSuccess||"None",loading:!1,error:l,fullError:e}}))}else j(e=>({...e,[t]:{status:"healthy",lastCheck:a,lastSuccess:a,loading:!1,successResponse:s}}))}catch(a){console.error(`Health check failed for model id ${t}:`,a);let e=new Date().toLocaleString(),l=a instanceof Error?a.message:String(a),s=E(l);j(a=>({...a,[t]:{status:"unhealthy",lastCheck:e,lastSuccess:a[t]?.lastSuccess||"None",loading:!1,error:s,fullError:l}}))}});await Promise.allSettled(i);try{if(!e)return;let s=await (0,l.latestHealthChecksCall)(e);s.latest_health_checks&&Object.entries(s.latest_health_checks).forEach(([e,l])=>{if(t.includes(e)&&l){let t=l.error_message||void 0;j(s=>{let a=s[e];return{...s,[e]:{status:l.status||a?.status||"unknown",lastCheck:l.checked_at?new Date(l.checked_at).toLocaleString():a?.lastCheck||"None",lastSuccess:"healthy"===l.status&&l.checked_at?new Date(l.checked_at).toLocaleString():a?.lastSuccess||"None",loading:!1,error:t?E(t):a?.error,fullError:t||a?.fullError,successResponse:"healthy"===l.status?l:a?.successResponse}}})}})}catch(e){console.warn("Failed to fetch updated health statuses from database (non-critical):",e)}},B=e=>{N(e),e?b(a):b([])},z=e=>{b([]),N(!1),j({}),u?.(e)},q=()=>{C(!1),F(null)},V=()=>{M(!1),A(null)},D=(s?.data??[]).map(e=>{let t=e.model_info?.id,l=(t?_[t]:null)||{status:"none",lastCheck:"None",loading:!1};return{model_name:e.model_name,model_info:e.model_info,provider:e.provider,litellm_model_name:e.litellm_model_name,health_status:l.status,last_check:l.lastCheck,last_success:l.lastSuccess||"None",health_loading:l.loading,health_error:l.error,health_full_error:l.fullError}}),H=!!(d&&u),$=d?.total_count??0,G=d?.total_pages??1,U=d?.current_page??c,J=d?.size??m,K=H&&$>0?(U-1)*J+1:0,Q=H?Math.min(U*J,$):0;return(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(eu.Title,{children:"Model Health Status"}),(0,t.jsx)(em.Text,{className:"text-gray-600 mt-1",children:"Run health checks on individual models to verify they are working correctly"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[y.length>0&&(0,t.jsx)(T.Button,{size:"sm",variant:"light",onClick:()=>B(!1),className:"px-3 py-1 text-sm",children:"Clear Selection"}),(0,t.jsx)(T.Button,{size:"sm",variant:"secondary",onClick:O,disabled:Object.values(_).some(e=>e.loading),className:"px-3 py-1 text-sm",children:y.length>0&&y.length0?`Showing ${K} - ${Q} of ${$} results`:"Showing 0 results"}),(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("button",{onClick:()=>z(c-1),disabled:n||1===c,className:`px-3 py-1 text-sm border rounded-md ${n||1===c?"bg-gray-100 text-gray-400 cursor-not-allowed":"hover:bg-gray-50"}`,children:"Previous"}),(0,t.jsx)("button",{onClick:()=>z(c+1),disabled:n||c>=G,className:`px-3 py-1 text-sm border rounded-md ${n||c>=G?"bg-gray-100 text-gray-400 cursor-not-allowed":"hover:bg-gray-50"}`,children:"Next"})]})]}),(0,t.jsx)(tU.ModelDataTable,{columns:(h=(e,t)=>{t?b(t=>[...t,e]):(b(t=>t.filter(t=>t!==e)),N(!1))},p=e=>{switch(e){case"healthy":return(0,t.jsx)(k.Badge,{color:"emerald",children:"healthy"});case"unhealthy":return(0,t.jsx)(k.Badge,{color:"red",children:"unhealthy"});case"checking":return(0,t.jsx)(k.Badge,{color:"blue",children:"checking"});case"none":return(0,t.jsx)(k.Badge,{color:"gray",children:"none"});default:return(0,t.jsx)(k.Badge,{color:"gray",children:"unknown"})}},g=(e,t,l)=>{F({modelName:e,cleanedError:t,fullError:l}),C(!0)},f=(e,t)=>{A({modelName:e,response:t}),M(!0)},[{header:()=>(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(tJ.Checkbox,{checked:v,indeterminate:y.length>0&&!v,onChange:e=>B(e.target.checked),onClick:e=>e.stopPropagation()}),(0,t.jsx)("span",{children:"Model ID"})]}),accessorKey:"model_info.id",enableSorting:!0,sortingFn:"alphanumeric",cell:({row:e})=>{let l=e.original,s=l.model_info?.id??"",a=y.includes(s);return(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(tJ.Checkbox,{checked:a,onChange:e=>h(s,e.target.checked),onClick:e=>e.stopPropagation()}),(0,t.jsx)(L.Tooltip,{title:l.model_info.id,children:(0,t.jsx)("div",{className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left w-full truncate whitespace-nowrap cursor-pointer max-w-[15ch]",onClick:()=>i&&i(l.model_info.id),children:l.model_info.id})})]})}},{header:"Model Name",accessorKey:"model_name",enableSorting:!0,sortingFn:"alphanumeric",cell:({row:e})=>{let l=e.original,s=r(l)||l.model_name;return(0,t.jsx)("div",{className:"font-medium text-sm",children:(0,t.jsx)(L.Tooltip,{title:s,children:(0,t.jsx)("div",{className:"truncate max-w-[200px]",children:s})})})}},{header:"Team Alias",accessorKey:"model_info.team_id",enableSorting:!0,sortingFn:"alphanumeric",cell:({row:e})=>{let l=e.original,s=l.model_info?.team_id;if(!s)return(0,t.jsx)("span",{className:"text-gray-400 text-sm",children:"-"});let a=o?.find(e=>e.team_id===s),r=a?.team_alias||s;return(0,t.jsx)("div",{className:"text-sm",children:(0,t.jsx)(L.Tooltip,{title:r,children:(0,t.jsx)("div",{className:"truncate max-w-[150px]",children:r})})})}},{header:"Health Status",accessorKey:"health_status",enableSorting:!0,sortingFn:(e,t,l)=>{let s=e.getValue("health_status")||"unknown",a=t.getValue("health_status")||"unknown",r={healthy:0,checking:1,unknown:2,unhealthy:3};return(r[s]??4)-(r[a]??4)},cell:({row:e})=>{let l=e.original,s={status:l.health_status,loading:l.health_loading,error:l.health_error};if(s.loading)return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsxs)("div",{className:"flex space-x-1",children:[(0,t.jsx)("div",{className:"w-2 h-2 bg-indigo-500 rounded-full animate-pulse"}),(0,t.jsx)("div",{className:"w-2 h-2 bg-indigo-500 rounded-full animate-pulse",style:{animationDelay:"0.2s"}}),(0,t.jsx)("div",{className:"w-2 h-2 bg-indigo-500 rounded-full animate-pulse",style:{animationDelay:"0.4s"}})]}),(0,t.jsx)(em.Text,{className:"text-gray-600 text-sm",children:"Checking..."})]});let a=l.model_info?.id??"",i=r(l)||l.model_name,o="healthy"===s.status&&_[a]?.successResponse;return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[p(s.status),o&&f&&(0,t.jsx)(L.Tooltip,{title:"View response details",placement:"top",children:(0,t.jsx)("button",{onClick:()=>f(i,_[a]?.successResponse),className:"p-1 text-green-600 hover:text-green-800 hover:bg-green-50 rounded cursor-pointer transition-colors",children:(0,t.jsx)(tK.InformationCircleIcon,{className:"h-4 w-4"})})})]})}},{header:"Error Details",accessorKey:"health_error",enableSorting:!1,cell:({row:e})=>{let l=e.original,s=l.model_info?.id??"",a=r(l)||l.model_name,i=_[s];if(!i?.error)return(0,t.jsx)(em.Text,{className:"text-gray-400 text-sm",children:"No errors"});let o=i.error,n=i.fullError||i.error;return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("div",{className:"max-w-[200px]",children:(0,t.jsx)(L.Tooltip,{title:o,placement:"top",children:(0,t.jsx)(em.Text,{className:"text-red-600 text-sm truncate",children:o})})}),g&&n!==o&&(0,t.jsx)(L.Tooltip,{title:"View full error details",placement:"top",children:(0,t.jsx)("button",{onClick:()=>g(a,o,n),className:"p-1 text-red-600 hover:text-red-800 hover:bg-red-50 rounded cursor-pointer transition-colors",children:(0,t.jsx)(tK.InformationCircleIcon,{className:"h-4 w-4"})})})]})}},{header:"Last Check",accessorKey:"last_check",enableSorting:!0,sortingFn:(e,t,l)=>{let s=e.getValue("last_check")||"Never checked",a=t.getValue("last_check")||"Never checked";if("Never checked"===s&&"Never checked"===a)return 0;if("Never checked"===s)return 1;if("Never checked"===a)return -1;if("Check in progress..."===s&&"Check in progress..."===a)return 0;if("Check in progress..."===s)return -1;if("Check in progress..."===a)return 1;let r=new Date(s),i=new Date(a);return isNaN(r.getTime())&&isNaN(i.getTime())?0:isNaN(r.getTime())?1:isNaN(i.getTime())?-1:i.getTime()-r.getTime()},cell:({row:e})=>{let l=e.original;return(0,t.jsx)(em.Text,{className:"text-gray-600 text-sm",children:l.health_loading?"Check in progress...":l.last_check})}},{header:"Last Success",accessorKey:"last_success",enableSorting:!0,sortingFn:(e,t,l)=>{let s=e.getValue("last_success")||"Never succeeded",a=t.getValue("last_success")||"Never succeeded";if("Never succeeded"===s&&"Never succeeded"===a)return 0;if("Never succeeded"===s)return 1;if("Never succeeded"===a)return -1;if("None"===s&&"None"===a)return 0;if("None"===s)return 1;if("None"===a)return -1;let r=new Date(s),i=new Date(a);return isNaN(r.getTime())&&isNaN(i.getTime())?0:isNaN(r.getTime())?1:isNaN(i.getTime())?-1:i.getTime()-r.getTime()},cell:({row:e})=>{let l=e.original,s=_[l.model_info?.id??""],a=s?.lastSuccess||"None";return(0,t.jsx)(em.Text,{className:"text-gray-600 text-sm",children:a})}},{header:"Actions",id:"actions",cell:({row:e})=>{let l=e.original,s=l.model_info?.id??"",a=l.health_status&&"none"!==l.health_status,r=l.health_loading?"Checking...":a?"Re-run Health Check":"Run Health Check";return(0,t.jsx)(L.Tooltip,{title:r,placement:"top",children:(0,t.jsx)("button",{"data-testid":"run-health-check-btn",className:`p-2 rounded-md transition-colors ${l.health_loading?"text-gray-400 cursor-not-allowed bg-gray-100":"text-indigo-600 hover:text-indigo-700 hover:bg-indigo-50"}`,onClick:()=>{l.health_loading||R(s)},disabled:l.health_loading,children:l.health_loading?(0,t.jsxs)("div",{className:"flex space-x-1",children:[(0,t.jsx)("div",{className:"w-1 h-1 bg-gray-400 rounded-full animate-pulse"}),(0,t.jsx)("div",{className:"w-1 h-1 bg-gray-400 rounded-full animate-pulse",style:{animationDelay:"0.2s"}}),(0,t.jsx)("div",{className:"w-1 h-1 bg-gray-400 rounded-full animate-pulse",style:{animationDelay:"0.4s"}})]}):a?(0,t.jsx)(e0.RefreshIcon,{className:"h-4 w-4"}):(0,t.jsx)(tW.PlayIcon,{className:"h-4 w-4"})})})},enableSorting:!1}]),data:D,isLoading:n})]}),(0,t.jsx)(es.Modal,{title:S?`Health Check Error - ${S.modelName}`:"Error Details",open:w,onCancel:q,footer:[(0,t.jsx)(W.Button,{onClick:q,children:"Close"},"close")],width:800,children:S&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Error:"}),(0,t.jsx)("div",{className:"mt-2 p-3 bg-red-50 border border-red-200 rounded-md",children:(0,t.jsx)(em.Text,{className:"text-red-800",children:S.cleanedError})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Full Error Details:"}),(0,t.jsx)("div",{className:"mt-2 p-3 bg-gray-50 border border-gray-200 rounded-md max-h-96 overflow-y-auto",children:(0,t.jsx)("pre",{className:"text-sm text-gray-800 whitespace-pre-wrap",children:S.fullError})})]})]})}),(0,t.jsx)(es.Modal,{title:P?`Health Check Response - ${P.modelName}`:"Response Details",open:I,onCancel:V,footer:[(0,t.jsx)(W.Button,{onClick:V,children:"Close"},"close")],width:800,children:P&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Status:"}),(0,t.jsx)("div",{className:"mt-2 p-3 bg-green-50 border border-green-200 rounded-md",children:(0,t.jsx)(em.Text,{className:"text-green-800",children:"Health check passed successfully"})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Response Details:"}),(0,t.jsx)("div",{className:"mt-2 p-3 bg-gray-50 border border-gray-200 rounded-md max-h-96 overflow-y-auto",children:(0,t.jsx)("pre",{className:"text-sm text-gray-800 whitespace-pre-wrap",children:JSON.stringify(P.response,null,2)})})]})]})})]})};var tX=e.i(250980),tZ=e.i(797672),t0=e.i(871943),t1=e.i(502547);let t2=({accessToken:e,initialModelGroupAlias:s={},onAliasUpdate:a})=>{let[r,i]=(0,x.useState)([]),[o,n]=(0,x.useState)({aliasName:"",targetModelGroup:""}),[d,c]=(0,x.useState)(null),[m,u]=(0,x.useState)(!0);(0,x.useEffect)(()=>{i(Object.entries(s).map(([e,t],l)=>({id:`${l}-${e}`,aliasName:e,targetModelGroup:"string"==typeof t?t:t?.model??""})))},[s]);let h=async t=>{if(!e)return console.error("Access token is missing"),!1;try{let s={};return t.forEach(e=>{s[e.aliasName]=e.targetModelGroup}),console.log("Saving model group alias:",s),await (0,l.setCallbacksCall)(e,{router_settings:{model_group_alias:s}}),a&&a(s),!0}catch(e){return console.error("Failed to save model group alias settings:",e),H.default.fromBackend("Failed to save model group alias settings"),!1}},b=async()=>{if(!o.aliasName||!o.targetModelGroup)return void H.default.fromBackend("Please provide both alias name and target model group");if(r.some(e=>e.aliasName===o.aliasName))return void H.default.fromBackend("An alias with this name already exists");let e=[...r,{id:`${Date.now()}-${o.aliasName}`,aliasName:o.aliasName,targetModelGroup:o.targetModelGroup}];await h(e)&&(i(e),n({aliasName:"",targetModelGroup:""}),H.default.success("Alias added successfully"))},v=async()=>{if(!d)return;if(!d.aliasName||!d.targetModelGroup)return void H.default.fromBackend("Please provide both alias name and target model group");if(r.some(e=>e.id!==d.id&&e.aliasName===d.aliasName))return void H.default.fromBackend("An alias with this name already exists");let e=r.map(e=>e.id===d.id?d:e);await h(e)&&(i(e),c(null),H.default.success("Alias updated successfully"))},N=()=>{c(null)},w=async e=>{let t=r.filter(t=>t.id!==e);await h(t)&&(i(t),H.default.success("Alias deleted successfully"))},C=r.reduce((e,t)=>(e[t.aliasName]=t.targetModelGroup,e),{});return(0,t.jsxs)(eL.Card,{className:"mb-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between cursor-pointer",onClick:()=>u(!m),children:[(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)(eu.Title,{className:"mb-0",children:"Model Group Alias Settings"}),(0,t.jsx)("p",{className:"text-sm text-gray-500",children:"Create aliases for your model groups to simplify API calls. For example, you can create an alias 'gpt-4o' that points to 'gpt-4o-mini-openai' model group."})]}),(0,t.jsx)("div",{className:"flex items-center",children:m?(0,t.jsx)(t0.ChevronDownIcon,{className:"w-5 h-5 text-gray-500"}):(0,t.jsx)(t1.ChevronRightIcon,{className:"w-5 h-5 text-gray-500"})})]}),m&&(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)(em.Text,{className:"text-sm font-medium text-gray-700 mb-2",children:"Add New Alias"}),(0,t.jsxs)("div",{className:"grid grid-cols-3 gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-gray-500 mb-1",children:"Alias Name"}),(0,t.jsx)("input",{type:"text",value:o.aliasName,onChange:e=>n({...o,aliasName:e.target.value}),placeholder:"e.g., gpt-4o",className:"w-full px-3 py-2 border border-gray-300 rounded-md text-sm"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-gray-500 mb-1",children:"Target Model Group"}),(0,t.jsx)("input",{type:"text",value:o.targetModelGroup,onChange:e=>n({...o,targetModelGroup:e.target.value}),placeholder:"e.g., gpt-4o-mini-openai",className:"w-full px-3 py-2 border border-gray-300 rounded-md text-sm"})]}),(0,t.jsx)("div",{className:"flex items-end",children:(0,t.jsxs)("button",{onClick:b,disabled:!o.aliasName||!o.targetModelGroup,className:`flex items-center px-4 py-2 rounded-md text-sm ${!o.aliasName||!o.targetModelGroup?"bg-gray-300 text-gray-500 cursor-not-allowed":"bg-green-600 text-white hover:bg-green-700"}`,children:[(0,t.jsx)(tX.PlusCircleIcon,{className:"w-4 h-4 mr-1"}),"Add Alias"]})})]})]}),(0,t.jsx)(em.Text,{className:"text-sm font-medium text-gray-700 mb-2",children:"Manage Existing Aliases"}),(0,t.jsx)("div",{className:"rounded-lg custom-border relative mb-6",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(p.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",children:[(0,t.jsx)(g.TableHead,{children:(0,t.jsxs)(j.TableRow,{children:[(0,t.jsx)(f.TableHeaderCell,{className:"py-1 h-8",children:"Alias Name"}),(0,t.jsx)(f.TableHeaderCell,{className:"py-1 h-8",children:"Target Model Group"}),(0,t.jsx)(f.TableHeaderCell,{className:"py-1 h-8",children:"Actions"})]})}),(0,t.jsxs)(_.TableBody,{children:[r.map(e=>(0,t.jsx)(j.TableRow,{className:"h-8",children:d&&d.id===e.id?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(y.TableCell,{className:"py-0.5",children:(0,t.jsx)("input",{type:"text",value:d.aliasName,onChange:e=>c({...d,aliasName:e.target.value}),className:"w-full px-2 py-1 border border-gray-300 rounded-md text-sm"})}),(0,t.jsx)(y.TableCell,{className:"py-0.5",children:(0,t.jsx)("input",{type:"text",value:d.targetModelGroup,onChange:e=>c({...d,targetModelGroup:e.target.value}),className:"w-full px-2 py-1 border border-gray-300 rounded-md text-sm"})}),(0,t.jsx)(y.TableCell,{className:"py-0.5 whitespace-nowrap",children:(0,t.jsxs)("div",{className:"flex space-x-2",children:[(0,t.jsx)("button",{onClick:v,className:"text-xs bg-blue-50 text-blue-600 px-2 py-1 rounded hover:bg-blue-100",children:"Save"}),(0,t.jsx)("button",{onClick:N,className:"text-xs bg-gray-50 text-gray-600 px-2 py-1 rounded hover:bg-gray-100",children:"Cancel"})]})})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(y.TableCell,{className:"py-0.5 text-sm text-gray-900",children:e.aliasName}),(0,t.jsx)(y.TableCell,{className:"py-0.5 text-sm text-gray-500",children:e.targetModelGroup}),(0,t.jsx)(y.TableCell,{className:"py-0.5 whitespace-nowrap",children:(0,t.jsxs)("div",{className:"flex space-x-2",children:[(0,t.jsx)("button",{onClick:()=>{c({...e})},className:"text-xs bg-blue-50 text-blue-600 px-2 py-1 rounded hover:bg-blue-100",children:(0,t.jsx)(tZ.PencilIcon,{className:"w-3 h-3"})}),(0,t.jsx)("button",{onClick:()=>w(e.id),className:"text-xs bg-red-50 text-red-600 px-2 py-1 rounded hover:bg-red-100",children:(0,t.jsx)(S.TrashIcon,{className:"w-3 h-3"})})]})})]})},e.id)),0===r.length&&(0,t.jsx)(j.TableRow,{children:(0,t.jsx)(y.TableCell,{colSpan:3,className:"py-0.5 text-sm text-gray-500 text-center",children:"No aliases added yet. Add a new alias above."})})]})]})})}),(0,t.jsxs)(eL.Card,{children:[(0,t.jsx)(eu.Title,{className:"mb-4",children:"Configuration Example"}),(0,t.jsx)(em.Text,{className:"text-gray-600 mb-4",children:"Here's how your current aliases would look in the config.yaml:"}),(0,t.jsx)("div",{className:"bg-gray-100 rounded-lg p-4 font-mono text-sm",children:(0,t.jsxs)("div",{className:"text-gray-700",children:["router_settings:",(0,t.jsx)("br",{}),"  model_group_alias:",0===Object.keys(C).length?(0,t.jsxs)("span",{className:"text-gray-500",children:[(0,t.jsx)("br",{}),"    # No aliases configured yet"]}):Object.entries(C).map(([e,l])=>(0,t.jsxs)("span",{children:[(0,t.jsx)("br",{}),'    "',e,'": "',l,'"']},e))]})})]})]})]})};var t4=e.i(530212);let t5=x.forwardRef(function(e,t){return x.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),x.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1121 9z"}))});var t6=e.i(678784),t3=e.i(118366),t8=e.i(500330);let t7=({isVisible:e,onCancel:s,onSuccess:a,modelData:r,accessToken:i,userRole:o})=>{let[n]=el.Form.useForm(),[d,c]=(0,x.useState)(!1),[m,u]=(0,x.useState)([]),[h,p]=(0,x.useState)([]),[g,f]=(0,x.useState)(!1),[_,j]=(0,x.useState)(!1),[y,b]=(0,x.useState)(null);(0,x.useEffect)(()=>{e&&r&&v()},[e,r]),(0,x.useEffect)(()=>{let t=async()=>{if(i)try{let e=await (0,l.modelAvailableCall)(i,"","",!1,null,!0,!0);u(e.data.map(e=>e.id))}catch(e){console.error("Error fetching model access groups:",e)}},s=async()=>{if(i)try{let e=await (0,ts.fetchAvailableModels)(i);p(e)}catch(e){console.error("Error fetching model info:",e)}};e&&(t(),s())},[e,i]);let v=()=>{try{let e=null;r.litellm_params?.auto_router_config&&(e="string"==typeof r.litellm_params.auto_router_config?JSON.parse(r.litellm_params.auto_router_config):r.litellm_params.auto_router_config),b(e),n.setFieldsValue({auto_router_name:r.model_name,auto_router_default_model:r.litellm_params?.auto_router_default_model||"",auto_router_embedding_model:r.litellm_params?.auto_router_embedding_model||"",model_access_group:r.model_info?.access_groups||[]});let t=new Set(h.map(e=>e.model_group));f(!t.has(r.litellm_params?.auto_router_default_model)),j(!t.has(r.litellm_params?.auto_router_embedding_model))}catch(e){console.error("Error parsing auto router config:",e),H.default.fromBackend("Error loading auto router configuration")}},N=async()=>{try{c(!0);let e=await n.validateFields(),t={...r.litellm_params,auto_router_config:JSON.stringify(y),auto_router_default_model:e.auto_router_default_model,auto_router_embedding_model:e.auto_router_embedding_model||void 0},o={...r.model_info,access_groups:e.model_access_group||[]},d={model_name:e.auto_router_name,litellm_params:t,model_info:o};await (0,l.modelPatchUpdateCall)(i,d,r.model_info.id);let m={...r,model_name:e.auto_router_name,litellm_params:t,model_info:o};H.default.success("Auto router configuration updated successfully"),a(m),s()}catch(e){console.error("Error updating auto router:",e),H.default.fromBackend("Failed to update auto router configuration")}finally{c(!1)}},w=h.map(e=>({value:e.model_group,label:e.model_group}));return(0,t.jsx)(es.Modal,{title:"Edit Auto Router Configuration",open:e,onCancel:s,footer:[(0,t.jsx)(W.Button,{onClick:s,children:"Cancel"},"cancel"),(0,t.jsx)(W.Button,{loading:d,onClick:N,children:"Save Changes"},"submit")],width:1e3,destroyOnHidden:!0,children:(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)(em.Text,{className:"text-gray-600",children:"Edit the auto router configuration including routing logic, default models, and access settings."}),(0,t.jsxs)(el.Form,{form:n,layout:"vertical",className:"space-y-4",children:[(0,t.jsx)(el.Form.Item,{label:"Auto Router Name",name:"auto_router_name",rules:[{required:!0,message:"Auto router name is required"}],children:(0,t.jsx)(eR.TextInput,{placeholder:"e.g., auto_router_1, smart_routing"})}),(0,t.jsx)("div",{className:"w-full",children:(0,t.jsx)(tc,{modelInfo:h,value:y,onChange:e=>{b(e)}})}),(0,t.jsx)(el.Form.Item,{label:"Default Model",name:"auto_router_default_model",rules:[{required:!0,message:"Default model is required"}],children:(0,t.jsx)(Q.Select,{placeholder:"Select a default model",onChange:e=>{f("custom"===e)},options:[...w,{value:"custom",label:"Enter custom model name"}],showSearch:!0})}),(0,t.jsx)(el.Form.Item,{label:"Embedding Model",name:"auto_router_embedding_model",children:(0,t.jsx)(Q.Select,{placeholder:"Select an embedding model (optional)",onChange:e=>{j("custom"===e)},options:[...w,{value:"custom",label:"Enter custom model name"}],showSearch:!0,allowClear:!0})}),"Admin"===o&&(0,t.jsx)(el.Form.Item,{label:"Model Access Groups",name:"model_access_group",tooltip:"Control who can access this auto router",children:(0,t.jsx)(Q.Select,{mode:"tags",showSearch:!0,placeholder:"Select existing groups or type to create new ones",optionFilterProp:"children",tokenSeparators:[","],options:m.map(e=>({value:e,label:e})),maxTagCount:"responsive",allowClear:!0})})]})]})})},{Title:t9,Link:le}=R.Typography,lt=({isVisible:e,onCancel:l,onAddCredential:s,existingCredential:a,setIsCredentialModalOpen:r})=>{let[i]=el.Form.useForm();return console.log(`existingCredential in add credentials tab: ${JSON.stringify(a)}`),(0,t.jsx)(es.Modal,{title:"Reuse Credentials",open:e,onCancel:()=>{l(),i.resetFields()},footer:null,width:600,children:(0,t.jsxs)(el.Form,{form:i,onFinish:e=>{s(e),i.resetFields(),r(!1)},layout:"vertical",children:[(0,t.jsx)(el.Form.Item,{label:"Credential Name:",name:"credential_name",rules:[{required:!0,message:"Credential name is required"}],initialValue:a?.credential_name,children:(0,t.jsx)(eR.TextInput,{placeholder:"Enter a friendly name for these credentials"})}),Object.entries(a?.credential_values||{}).map(([e,l])=>(0,t.jsx)(el.Form.Item,{label:e,name:e,initialValue:l,children:(0,t.jsx)(eR.TextInput,{placeholder:`Enter ${e}`,disabled:!0})},e)),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)(L.Tooltip,{title:"Get help on our github",children:(0,t.jsx)(le,{href:"https://github.com/BerriAI/litellm/issues",children:"Need Help?"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(W.Button,{onClick:()=>{l(),i.resetFields()},style:{marginRight:10},children:"Cancel"}),(0,t.jsx)(W.Button,{htmlType:"submit",children:"Reuse Credentials"})]})]})]})})};function ll({modelId:e,onClose:s,accessToken:a,userID:r,userRole:i,onModelUpdate:o,modelAccessGroups:c}){let m,[u]=el.Form.useForm(),[h,p]=(0,x.useState)(null),[g,f]=(0,x.useState)(!1),[_,j]=(0,x.useState)(!1),[y,b]=(0,x.useState)(!1),[v,N]=(0,x.useState)(!1),[C,k]=(0,x.useState)(!1),[F,I]=(0,x.useState)(!1),[M,P]=(0,x.useState)(null),[A,E]=(0,x.useState)(!1),[R,O]=(0,x.useState)({}),[B,z]=(0,x.useState)(!1),[q,$]=(0,x.useState)([]),[G,K]=(0,x.useState)({}),[Y,X]=(0,x.useState)([]),{data:Z,isLoading:ee}=(0,d.useModelsInfo)(1,50,void 0,e),{data:et}=(0,n.useModelCostMap)(),{data:ea}=(0,d.useModelHub)(),er=e=>null!=et&&"object"==typeof et&&e in et?et[e].litellm_provider:"openai",eo=(0,x.useMemo)(()=>Z?.data&&0!==Z.data.length&&ei(Z,er).data[0]||null,[Z,et]),en=("Admin"===i||eo?.model_info?.created_by===r)&&eo?.model_info?.db_model,ed="Admin"===i,ec=eo?.litellm_params?.auto_router_config!=null,eh=eo?.litellm_params?.litellm_credential_name!=null&&eo?.litellm_params?.litellm_credential_name!=void 0;(0,x.useEffect)(()=>{if(eo&&!h){let e=eo;e.litellm_model_name||(e={...e,litellm_model_name:e?.litellm_params?.litellm_model_name??e?.litellm_params?.model??e?.model_info?.key??null}),p(e),e?.litellm_params?.cache_control_injection_points&&E(!0)}},[eo,h]),(0,x.useEffect)(()=>{let t=async()=>{if(!a||eo)return;let t=(await (0,l.modelInfoV1Call)(a,e)).data[0];t&&!t.litellm_model_name&&(t={...t,litellm_model_name:t?.litellm_params?.litellm_model_name??t?.litellm_params?.model??t?.model_info?.key??null}),p(t),t?.litellm_params?.cache_control_injection_points&&E(!0)},s=async()=>{if(a)try{let e=(await (0,l.getGuardrailsList)(a)).guardrails.map(e=>e.guardrail_name);$(e)}catch(e){console.error("Failed to fetch guardrails:",e)}},r=async()=>{if(a)try{let e=await (0,l.tagListCall)(a);K(e)}catch(e){console.error("Failed to fetch tags:",e)}},i=async()=>{if(a)try{let e=await (0,l.credentialListCall)(a);X(e.credentials||[])}catch(e){console.error("Failed to fetch credentials:",e)}};(async()=>{if(!a||eh)return;let t=await (0,l.credentialGetCall)(a,null,e);P({credential_name:t.credential_name,credential_values:t.credential_values,credential_info:t.credential_info})})(),t(),s(),r(),i()},[a,e]);let ex=async t=>{if(!a)return;let s={credential_name:t.credential_name,model_id:e,credential_info:{custom_llm_provider:h.litellm_params?.custom_llm_provider}};H.default.info("Storing credential.."),await (0,l.credentialCreateCall)(a,s),H.default.success("Credential stored successfully")},ep=async t=>{try{let s;if(!a)return;k(!0);let r={};try{r=t.litellm_extra_params?JSON.parse(t.litellm_extra_params):{},delete r.litellm_credential_name}catch(e){H.default.fromBackend("Invalid JSON in LiteLLM Params"),k(!1);return}let i={...t.litellm_params,...r,model:t.litellm_model_name,api_base:t.api_base,custom_llm_provider:t.custom_llm_provider,organization:t.organization,tpm:t.tpm,rpm:t.rpm,max_retries:t.max_retries,timeout:t.timeout,stream_timeout:t.stream_timeout,tags:t.tags};u.isFieldTouched("input_cost")&&void 0!==t.input_cost&&null!==t.input_cost&&(i.input_cost_per_token=Number(t.input_cost)/1e6),u.isFieldTouched("output_cost")&&void 0!==t.output_cost&&null!==t.output_cost&&(i.output_cost_per_token=Number(t.output_cost)/1e6),(u.isFieldTouched("cache_read_cost")||u.isFieldTouched("input_cost"))&&(void 0!==t.cache_read_cost&&null!==t.cache_read_cost&&""!==t.cache_read_cost?i.cache_read_input_token_cost=Number(t.cache_read_cost)/1e6:void 0!==i.input_cost_per_token&&(i.cache_read_input_token_cost=i.input_cost_per_token)),u.isFieldTouched("cache_write_cost")&&(void 0!==t.cache_write_cost&&null!==t.cache_write_cost&&""!==t.cache_write_cost?i.cache_creation_input_token_cost=Number(t.cache_write_cost)/1e6:delete i.cache_creation_input_token_cost),t.litellm_credential_name?i.litellm_credential_name=t.litellm_credential_name:delete i.litellm_credential_name,t.guardrails&&(i.guardrails=t.guardrails),t.vector_store_ids?.length>0?i.vector_store_ids=t.vector_store_ids:void 0!==t.vector_store_ids?i.vector_store_ids=[]:delete i.vector_store_ids,t.cache_control&&t.cache_control_injection_points?.length>0?i.cache_control_injection_points=t.cache_control_injection_points:delete i.cache_control_injection_points;try{s=t.model_info?JSON.parse(t.model_info):eo.model_info,t.model_access_group&&(s={...s,access_groups:t.model_access_group}),void 0!==t.health_check_model&&(s={...s,health_check_model:t.health_check_model})}catch(e){H.default.fromBackend("Invalid JSON in Model Info");return}let n={model_name:t.model_name,litellm_params:i,model_info:s};await (0,l.modelPatchUpdateCall)(a,n,e);let d={...h,model_name:t.model_name,litellm_model_name:t.litellm_model_name,litellm_params:i,model_info:s};p(d),o&&o(d),H.default.success("Model settings updated successfully"),N(!1),I(!1)}catch(e){console.error("Error updating model:",e),H.default.fromBackend("Failed to update model settings")}finally{k(!1)}};if(ee)return(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsx)(T.Button,{icon:t4.ArrowLeftIcon,variant:"light",onClick:s,className:"mb-4",children:"Back to Models"}),(0,t.jsx)(em.Text,{children:"Loading..."})]});if(!eo)return(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsx)(T.Button,{icon:t4.ArrowLeftIcon,variant:"light",onClick:s,className:"mb-4",children:"Back to Models"}),(0,t.jsx)(em.Text,{children:"Model not found"})]});let eg=async()=>{if(a)try{H.default.info("Testing connection...");let e=await (0,l.testConnectionRequest)(a,{custom_llm_provider:h.litellm_params.custom_llm_provider,litellm_credential_name:h.litellm_params.litellm_credential_name,model:h.litellm_model_name},{id:h.model_info?.id,mode:h.model_info?.mode},h.model_info?.mode);if("success"===e.status)H.default.success("Connection test successful!");else throw Error(e?.result?.error||e?.message||"Unknown error")}catch(e){e instanceof Error?H.default.error("Error testing connection: "+(0,tA.truncateString)(e.message,100)):H.default.error("Error testing connection: "+String(e))}},ef=async()=>{try{if(j(!0),!a)return;await (0,l.modelDeleteCall)(a,e),H.default.success("Model deleted successfully"),o&&o({deleted:!0,model_info:{id:e}}),s()}catch(e){console.error("Error deleting the model:",e),H.default.fromBackend("Failed to delete model")}finally{j(!1),f(!1)}},e_=async(e,t)=>{await (0,t8.copyToClipboard)(e)&&(O(e=>({...e,[t]:!0})),setTimeout(()=>{O(e=>({...e,[t]:!1}))},2e3))},ej=eo.litellm_model_name.includes("*");return(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(T.Button,{icon:t4.ArrowLeftIcon,variant:"light",onClick:s,className:"mb-4",children:"Back to Models"}),(0,t.jsxs)(eu.Title,{children:["Public Model Name: ",V(eo)]}),(0,t.jsxs)("div",{className:"flex items-center cursor-pointer",children:[(0,t.jsx)(em.Text,{className:"text-gray-500 font-mono",children:eo.model_info.id}),(0,t.jsx)(W.Button,{type:"text",size:"small",icon:R["model-id"]?(0,t.jsx)(t6.CheckIcon,{size:12}):(0,t.jsx)(t3.CopyIcon,{size:12}),onClick:()=>e_(eo.model_info.id,"model-id"),className:`left-2 z-10 transition-all duration-200 ${R["model-id"]?"text-green-600 bg-green-50 border-green-200":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"}`})]})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(T.Button,{variant:"secondary",icon:e0.RefreshIcon,onClick:eg,className:"flex items-center gap-2","data-testid":"test-connection-button",children:"Test Connection"}),(0,t.jsx)(T.Button,{icon:t5,variant:"secondary",onClick:()=>b(!0),className:"flex items-center",disabled:!ed,"data-testid":"reuse-credentials-button",children:"Re-use Credentials"}),(0,t.jsx)(T.Button,{icon:S.TrashIcon,variant:"secondary",onClick:()=>f(!0),className:"flex items-center text-red-500 border-red-500 hover:text-red-700",disabled:!en,"data-testid":"delete-model-button",children:"Delete Model"})]})]}),(0,t.jsxs)(e4.TabGroup,{children:[(0,t.jsxs)(e5.TabList,{className:"mb-6",children:[(0,t.jsx)(e2.Tab,{children:"Overview"}),(0,t.jsx)(e2.Tab,{children:"Raw JSON"})]}),(0,t.jsxs)(e6.TabPanels,{children:[(0,t.jsxs)(J.TabPanel,{children:[(0,t.jsxs)(U.Grid,{numItems:1,numItemsSm:2,numItemsLg:3,className:"gap-6 mb-6",children:[(0,t.jsxs)(eL.Card,{children:[(0,t.jsx)(em.Text,{children:"Provider"}),(0,t.jsxs)("div",{className:"mt-2 flex items-center space-x-2",children:[eo.provider&&(0,t.jsx)("img",{src:(0,eM.getProviderLogoAndName)(eo.provider).logo,alt:`${eo.provider} logo`,className:"w-4 h-4",onError:e=>{let t=e.currentTarget,l=t.parentElement;if(l&&l.contains(t))try{let e=document.createElement("div");e.className="w-4 h-4 rounded-full bg-gray-200 flex items-center justify-center text-xs",e.textContent=eo.provider?.charAt(0)||"-",l.replaceChild(e,t)}catch(e){console.error("Failed to replace provider logo fallback:",e)}}}),(0,t.jsx)(eu.Title,{children:eo.provider||"Not Set"})]})]}),(0,t.jsxs)(eL.Card,{children:[(0,t.jsx)(em.Text,{children:"LiteLLM Model"}),(0,t.jsx)("div",{className:"mt-2 overflow-hidden",children:(0,t.jsx)(L.Tooltip,{title:eo.litellm_model_name||"Not Set",children:(0,t.jsx)("div",{className:"break-all text-sm font-medium leading-relaxed cursor-pointer",children:eo.litellm_model_name||"Not Set"})})})]}),(0,t.jsxs)(eL.Card,{children:[(0,t.jsx)(em.Text,{children:"Pricing"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(em.Text,{children:["Input: $",eo.input_cost,"/1M tokens"]}),(0,t.jsxs)(em.Text,{children:["Output: $",eo.output_cost,"/1M tokens"]})]})]})]}),(0,t.jsxs)("div",{className:"mb-6 text-sm text-gray-500 flex items-center gap-x-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-x-2",children:[(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),"Created At"," ",eo.model_info.created_at?new Date(eo.model_info.created_at).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"}):"Not Set"]}),(0,t.jsxs)("div",{className:"flex items-center gap-x-2",children:[(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})}),"Created By ",eo.model_info.created_by||"Not Set"]})]}),(0,t.jsxs)(eL.Card,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(eu.Title,{children:"Model Settings"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[ec&&en&&!F&&(0,t.jsx)(T.Button,{onClick:()=>z(!0),className:"flex items-center",children:"Edit Auto Router"}),en?!F&&(0,t.jsx)(T.Button,{onClick:()=>I(!0),className:"flex items-center",children:"Edit Settings"}):(0,t.jsx)(L.Tooltip,{title:"Only DB models can be edited. You must be an admin or the creator of the model to edit it.",children:(0,t.jsx)(w.InfoCircleOutlined,{})})]})]}),h?(0,t.jsx)(el.Form,{form:u,onFinish:ep,initialValues:{model_name:h.model_name,litellm_model_name:h.litellm_model_name,api_base:h.litellm_params.api_base,custom_llm_provider:h.litellm_params.custom_llm_provider,organization:h.litellm_params.organization,tpm:h.litellm_params.tpm,rpm:h.litellm_params.rpm,max_retries:h.litellm_params.max_retries,timeout:h.litellm_params.timeout,stream_timeout:h.litellm_params.stream_timeout,input_cost:h.litellm_params.input_cost_per_token?1e6*h.litellm_params.input_cost_per_token:h.model_info?.input_cost_per_token*1e6||null,output_cost:h.litellm_params?.output_cost_per_token?1e6*h.litellm_params.output_cost_per_token:h.model_info?.output_cost_per_token*1e6||null,cache_read_cost:h.litellm_params?.cache_read_input_token_cost!==void 0&&h.litellm_params?.cache_read_input_token_cost!==null?1e6*h.litellm_params.cache_read_input_token_cost:h.model_info?.cache_read_input_token_cost!==void 0&&h.model_info?.cache_read_input_token_cost!==null?1e6*h.model_info.cache_read_input_token_cost:null,cache_write_cost:h.litellm_params?.cache_creation_input_token_cost!==void 0&&h.litellm_params?.cache_creation_input_token_cost!==null?1e6*h.litellm_params.cache_creation_input_token_cost:h.model_info?.cache_creation_input_token_cost!==void 0&&h.model_info?.cache_creation_input_token_cost!==null?1e6*h.model_info.cache_creation_input_token_cost:null,cache_control:!!h.litellm_params?.cache_control_injection_points,cache_control_injection_points:h.litellm_params?.cache_control_injection_points||[],model_access_group:Array.isArray(h.model_info?.access_groups)?h.model_info.access_groups:[],guardrails:Array.isArray(h.litellm_params?.guardrails)?h.litellm_params.guardrails:[],vector_store_ids:Array.isArray(h.litellm_params?.vector_store_ids)&&h.litellm_params.vector_store_ids.length>0?h.litellm_params.vector_store_ids:void 0,tags:Array.isArray(h.litellm_params?.tags)?h.litellm_params.tags:[],health_check_model:ej?h.model_info?.health_check_model:null,litellm_credential_name:h.litellm_params?.litellm_credential_name||"",litellm_extra_params:JSON.stringify(Object.fromEntries(Object.entries(h.litellm_params||{}).filter(([e])=>"litellm_credential_name"!==e)),null,2)},layout:"vertical",onValuesChange:()=>N(!0),children:(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Model Name"}),F?(0,t.jsx)(el.Form.Item,{name:"model_name",className:"mb-0",children:(0,t.jsx)(eR.TextInput,{placeholder:"Enter model name"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.model_name})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"LiteLLM Model Name"}),F?(0,t.jsx)(el.Form.Item,{name:"litellm_model_name",className:"mb-0",children:(0,t.jsx)(eR.TextInput,{placeholder:"Enter LiteLLM model name"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_model_name})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Input Cost (per 1M tokens)"}),F?(0,t.jsx)(el.Form.Item,{name:"input_cost",className:"mb-0",children:(0,t.jsx)(tF.default,{placeholder:"Enter input cost"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h?.litellm_params?.input_cost_per_token?(h.litellm_params?.input_cost_per_token*1e6).toFixed(4):h?.model_info?.input_cost_per_token?(1e6*h.model_info.input_cost_per_token).toFixed(4):"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Output Cost (per 1M tokens)"}),F?(0,t.jsx)(el.Form.Item,{name:"output_cost",className:"mb-0",children:(0,t.jsx)(tF.default,{placeholder:"Enter output cost"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h?.litellm_params?.output_cost_per_token?(1e6*h.litellm_params.output_cost_per_token).toFixed(4):h?.model_info?.output_cost_per_token?(1e6*h.model_info.output_cost_per_token).toFixed(4):"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Cache Read Cost (per 1M tokens)"}),F?(0,t.jsx)(el.Form.Item,{name:"cache_read_cost",className:"mb-0",tooltip:"If left blank on save, defaults to Input Cost.",children:(0,t.jsx)(tF.default,{placeholder:"Defaults to Input Cost if blank"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h?.litellm_params?.cache_read_input_token_cost!==void 0&&h?.litellm_params?.cache_read_input_token_cost!==null?(1e6*h.litellm_params.cache_read_input_token_cost).toFixed(4):h?.model_info?.cache_read_input_token_cost!==void 0&&h?.model_info?.cache_read_input_token_cost!==null?(1e6*h.model_info.cache_read_input_token_cost).toFixed(4):"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Cache Write Cost (per 1M tokens)"}),F?(0,t.jsx)(el.Form.Item,{name:"cache_write_cost",className:"mb-0",tooltip:"If left blank on save, defaults to Input Cost (backend falls back to input_cost_per_token).",children:(0,t.jsx)(tF.default,{placeholder:"Defaults to Input Cost if blank"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h?.litellm_params?.cache_creation_input_token_cost!==void 0&&h?.litellm_params?.cache_creation_input_token_cost!==null?(1e6*h.litellm_params.cache_creation_input_token_cost).toFixed(4):h?.model_info?.cache_creation_input_token_cost!==void 0&&h?.model_info?.cache_creation_input_token_cost!==null?(1e6*h.model_info.cache_creation_input_token_cost).toFixed(4):"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"API Base"}),F?(0,t.jsx)(el.Form.Item,{name:"api_base",className:"mb-0",children:(0,t.jsx)(eR.TextInput,{placeholder:"Enter API base"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.api_base||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Custom LLM Provider"}),F?(0,t.jsx)(el.Form.Item,{name:"custom_llm_provider",className:"mb-0",children:(0,t.jsx)(eR.TextInput,{placeholder:"Enter custom LLM provider"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.custom_llm_provider||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Organization"}),F?(0,t.jsx)(el.Form.Item,{name:"organization",className:"mb-0",children:(0,t.jsx)(eR.TextInput,{placeholder:"Enter organization"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.organization||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"TPM (Tokens per Minute)"}),F?(0,t.jsx)(el.Form.Item,{name:"tpm",className:"mb-0",children:(0,t.jsx)(tF.default,{placeholder:"Enter TPM"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.tpm||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"RPM (Requests per Minute)"}),F?(0,t.jsx)(el.Form.Item,{name:"rpm",className:"mb-0",children:(0,t.jsx)(tF.default,{placeholder:"Enter RPM"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.rpm||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Max Retries"}),F?(0,t.jsx)(el.Form.Item,{name:"max_retries",className:"mb-0",children:(0,t.jsx)(tF.default,{placeholder:"Enter max retries"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.max_retries||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Timeout (seconds)"}),F?(0,t.jsx)(el.Form.Item,{name:"timeout",className:"mb-0",children:(0,t.jsx)(tF.default,{placeholder:"Enter timeout"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.timeout||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Stream Timeout (seconds)"}),F?(0,t.jsx)(el.Form.Item,{name:"stream_timeout",className:"mb-0",children:(0,t.jsx)(tF.default,{placeholder:"Enter stream timeout"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.stream_timeout||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Model Access Groups"}),F?(0,t.jsx)(el.Form.Item,{name:"model_access_group",className:"mb-0",children:(0,t.jsx)(Q.Select,{mode:"tags",showSearch:!0,placeholder:"Select existing groups or type to create new ones",optionFilterProp:"children",tokenSeparators:[","],maxTagCount:"responsive",allowClear:!0,style:{width:"100%"},options:c?.map(e=>({value:e,label:e}))})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.model_info?.access_groups?Array.isArray(h.model_info.access_groups)?h.model_info.access_groups.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:h.model_info.access_groups.map((e,l)=>(0,t.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-blue-100 text-blue-800",children:e},l))}):"No groups assigned":h.model_info.access_groups:"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(em.Text,{className:"font-medium",children:["Guardrails",(0,t.jsx)(L.Tooltip,{title:"Apply safety guardrails to this model to filter content or enforce policies",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/guardrails/quick_start",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(w.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),F?(0,t.jsx)(el.Form.Item,{name:"guardrails",className:"mb-0",children:(0,t.jsx)(Q.Select,{mode:"tags",showSearch:!0,placeholder:"Select existing guardrails or type to create new ones",optionFilterProp:"children",tokenSeparators:[","],maxTagCount:"responsive",allowClear:!0,style:{width:"100%"},options:q.map(e=>({value:e,label:e}))})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.guardrails?Array.isArray(h.litellm_params.guardrails)?h.litellm_params.guardrails.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:h.litellm_params.guardrails.map((e,l)=>(0,t.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-green-100 text-green-800",children:e},l))}):"No guardrails assigned":h.litellm_params.guardrails:"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(em.Text,{className:"font-medium",children:["Attached Knowledge Bases (RAG)",(0,t.jsx)(L.Tooltip,{title:"Vector stores used for RAG. Every request to this model will automatically retrieve context from these knowledge bases.",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/completion/knowledgebase",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(w.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),F?(0,t.jsx)(el.Form.Item,{name:"vector_store_ids",className:"mb-0",children:(0,t.jsx)(tP.default,{onChange:()=>{},accessToken:a||"",placeholder:"Select knowledge bases (optional)"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.vector_store_ids?Array.isArray(h.litellm_params.vector_store_ids)?h.litellm_params.vector_store_ids.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:h.litellm_params.vector_store_ids.map((e,l)=>(0,t.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-blue-100 text-blue-800",children:e},l))}):"No knowledge bases attached":String(h.litellm_params.vector_store_ids):"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Tags"}),F?(0,t.jsx)(el.Form.Item,{name:"tags",className:"mb-0",children:(0,t.jsx)(Q.Select,{mode:"tags",showSearch:!0,placeholder:"Select existing tags or type to create new ones",optionFilterProp:"children",tokenSeparators:[","],maxTagCount:"responsive",allowClear:!0,style:{width:"100%"},options:Object.values(G).map(e=>({value:e.name,label:e.name,title:e.description||e.name}))})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.tags?Array.isArray(h.litellm_params.tags)?h.litellm_params.tags.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:h.litellm_params.tags.map((e,l)=>(0,t.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-purple-100 text-purple-800",children:e},l))}):"No tags assigned":h.litellm_params.tags:"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Existing Credentials"}),F?(0,t.jsx)(el.Form.Item,{name:"litellm_credential_name",className:"mb-0",children:(0,t.jsx)(Q.Select,{showSearch:!0,placeholder:"Select or search for existing credentials",optionFilterProp:"children",filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase()),options:[{value:"",label:"None"},...Y.map(e=>({value:e.credential_name,label:e.credential_name}))],allowClear:!0})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.litellm_credential_name||"Manual"})]}),ej&&(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Health Check Model"}),F?(0,t.jsx)(el.Form.Item,{name:"health_check_model",className:"mb-0",children:(0,t.jsx)(Q.Select,{showSearch:!0,placeholder:"Select existing health check model",optionFilterProp:"children",allowClear:!0,options:(m=eo.litellm_model_name.split("/")[0],ea?.data?.filter(e=>e.providers?.includes(m)&&e.model_group!==eo.litellm_model_name).map(e=>({value:e.model_group,label:e.model_group}))||[])})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.model_info?.health_check_model||"Not Set"})]}),F?(0,t.jsx)(tM,{form:u,showCacheControl:A,onCacheControlChange:e=>E(e)}):(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Cache Control"}),(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.cache_control_injection_points?(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{children:"Enabled"}),(0,t.jsx)("div",{className:"mt-2",children:h.litellm_params.cache_control_injection_points.map((e,l)=>(0,t.jsxs)("div",{className:"text-sm text-gray-600 mb-1",children:["Location: ",e.location,",",e.role&&(0,t.jsxs)("span",{children:[" Role: ",e.role]}),void 0!==e.index&&(0,t.jsxs)("span",{children:[" Index: ",e.index]})]},l))})]}):"Disabled"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Model Info"}),F?(0,t.jsx)(el.Form.Item,{name:"model_info",className:"mb-0",children:(0,t.jsx)(eV.Input.TextArea,{rows:4,placeholder:'{"gpt-4": 100, "claude-v1": 200}',defaultValue:JSON.stringify(eo.model_info,null,2)})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:(0,t.jsx)("pre",{className:"bg-gray-100 p-2 rounded text-xs overflow-auto mt-1",children:JSON.stringify(h.model_info,null,2)})})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(em.Text,{className:"font-medium",children:["LiteLLM Params",(0,t.jsx)(L.Tooltip,{title:"Optional litellm params used for making a litellm.completion() call. Some params are automatically added by LiteLLM.",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/completion/input",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(w.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),F?(0,t.jsx)(el.Form.Item,{name:"litellm_extra_params",rules:[{validator:tA.formItemValidateJSON}],children:(0,t.jsx)(eV.Input.TextArea,{rows:4,placeholder:'{ "rpm": 100, "timeout": 0, "stream_timeout": 0 }'})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:(0,t.jsx)("pre",{className:"bg-gray-100 p-2 rounded text-xs overflow-auto mt-1",children:JSON.stringify(h.litellm_params,null,2)})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Team ID"}),(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:eo.model_info.team_id||"Not Set"})]})]}),F&&(0,t.jsxs)("div",{className:"mt-6 flex justify-end gap-2",children:[(0,t.jsx)(T.Button,{variant:"secondary",onClick:()=>{u.resetFields(),N(!1),I(!1)},disabled:C,children:"Cancel"}),(0,t.jsx)(T.Button,{variant:"primary",onClick:()=>u.submit(),loading:C,children:"Save Changes"})]})]})}):(0,t.jsx)(em.Text,{children:"Loading..."})]})]}),(0,t.jsx)(J.TabPanel,{children:(0,t.jsx)(eL.Card,{children:(0,t.jsx)("pre",{className:"bg-gray-100 p-4 rounded text-xs overflow-auto",children:JSON.stringify(eo,null,2)})})})]})]}),(0,t.jsx)(D.default,{isOpen:g,title:"Delete Model",alertMessage:"This action cannot be undone.",message:"Are you sure you want to delete this model?",resourceInformationTitle:"Model Information",resourceInformation:[{label:"Model Name",value:eo?.model_name||"Not Set"},{label:"LiteLLM Model Name",value:eo?.litellm_model_name||"Not Set"},{label:"Provider",value:eo?.provider||"Not Set"},{label:"Created By",value:eo?.model_info?.created_by||"Not Set"}],onCancel:()=>f(!1),onOk:ef,confirmLoading:_}),y&&!eh?(0,t.jsx)(lt,{isVisible:y,onCancel:()=>b(!1),onAddCredential:ex,existingCredential:M,setIsCredentialModalOpen:b}):(0,t.jsx)(es.Modal,{open:y,onCancel:()=>b(!1),title:"Using Existing Credential",children:(0,t.jsx)(em.Text,{children:eo.litellm_params.litellm_credential_name})}),(0,t.jsx)(t7,{isVisible:B,onCancel:()=>z(!1),onSuccess:e=>{p(e),o&&o(e)},modelData:h||eo,accessToken:a||"",userRole:i||""})]})}var ls=e.i(37091),la=e.i(218129);let lr=({value:e={},onChange:l})=>{let[s,a]=(0,x.useState)(Object.entries(e)),r=(e,t,r)=>{let i=[...s];i[e]=[t,r],a(i),l?.(Object.fromEntries(i))};return(0,t.jsxs)("div",{children:[s.map(([e,i],o)=>(0,t.jsxs)(A.Space,{style:{display:"flex",marginBottom:8},align:"center",children:[(0,t.jsx)(eR.TextInput,{placeholder:"Header Name",value:e,onChange:e=>r(o,e.target.value,i)}),(0,t.jsx)(eR.TextInput,{placeholder:"Header Value",value:i,onChange:t=>r(o,e,t.target.value)}),(0,t.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,t.jsx)(tT.MinusCircleOutlined,{onClick:()=>{let e;a(e=s.filter((e,t)=>t!==o)),l?.(Object.fromEntries(e))},style:{cursor:"pointer"}})})]},o)),(0,t.jsx)(W.Button,{type:"dashed",onClick:()=>{a([...s,["",""]])},icon:(0,t.jsx)(tr.PlusOutlined,{}),children:"Add Header"})]})},li=({value:e={},onChange:l})=>{let[s,a]=(0,x.useState)(Object.entries(e)),r=(e,t,r)=>{let i=[...s];i[e]=[t,r],a(i),l?.(Object.fromEntries(i))};return(0,t.jsxs)("div",{children:[s.map(([e,i],o)=>(0,t.jsxs)(A.Space,{style:{display:"flex",marginBottom:8},align:"center",children:[(0,t.jsx)(eR.TextInput,{placeholder:"Parameter Name (e.g., version)",value:e,onChange:e=>r(o,e.target.value,i)}),(0,t.jsx)(eR.TextInput,{placeholder:"Parameter Value (e.g., v1)",value:i,onChange:t=>r(o,e,t.target.value)}),(0,t.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,t.jsx)(tT.MinusCircleOutlined,{onClick:()=>{let e;a(e=s.filter((e,t)=>t!==o)),l?.(Object.fromEntries(e))},style:{cursor:"pointer"}})})]},o)),(0,t.jsx)(W.Button,{type:"dashed",onClick:()=>{a([...s,["",""]])},icon:(0,t.jsx)(tr.PlusOutlined,{}),children:"Add Query Parameter"})]})};var lo=e.i(240647);let{Title:ln,Text:ld}=R.Typography,lc=({pathValue:e,targetValue:s,includeSubpath:a})=>{let r=(0,l.getProxyBaseUrl)();return e&&s?(0,t.jsxs)(e_.Card,{className:"p-5",children:[(0,t.jsx)(ln,{level:5,className:"text-lg font-semibold text-gray-900 mb-2",children:"Route Preview"}),(0,t.jsx)(ld,{type:"secondary",className:"text-gray-600 mb-5",style:{display:"block"},children:"How your requests will be routed"}),(0,t.jsxs)("div",{className:"space-y-5",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-base font-semibold text-gray-900 mb-3",children:"Basic routing:"}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsxs)("div",{className:"flex-1 bg-gray-50 border border-gray-200 rounded-lg p-3",children:[(0,t.jsx)("div",{className:"text-sm text-gray-600 mb-2",children:"Your endpoint"}),(0,t.jsx)("code",{className:"font-mono text-sm text-gray-900",children:e?`${r}${e}`:""})]}),(0,t.jsx)("div",{className:"text-gray-400",children:(0,t.jsx)(lo.RightOutlined,{className:"text-lg"})}),(0,t.jsxs)("div",{className:"flex-1 bg-gray-50 border border-gray-200 rounded-lg p-3",children:[(0,t.jsx)("div",{className:"text-sm text-gray-600 mb-2",children:"Forwards to"}),(0,t.jsx)("code",{className:"font-mono text-sm text-gray-900",children:s})]})]})]}),a&&(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-base font-semibold text-gray-900 mb-3",children:"With subpaths:"}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsxs)("div",{className:"flex-1 bg-gray-50 border border-gray-200 rounded-lg p-3",children:[(0,t.jsx)("div",{className:"text-sm text-gray-600 mb-2",children:"Your endpoint + subpath"}),(0,t.jsxs)("code",{className:"font-mono text-sm text-gray-900",children:[e&&`${r}${e}`,(0,t.jsx)("span",{className:"text-blue-600",children:"/v1/text-to-image/base/model"})]})]}),(0,t.jsx)("div",{className:"text-gray-400",children:(0,t.jsx)(lo.RightOutlined,{className:"text-lg"})}),(0,t.jsxs)("div",{className:"flex-1 bg-gray-50 border border-gray-200 rounded-lg p-3",children:[(0,t.jsx)("div",{className:"text-sm text-gray-600 mb-2",children:"Forwards to"}),(0,t.jsxs)("code",{className:"font-mono text-sm text-gray-900",children:[s,(0,t.jsx)("span",{className:"text-blue-600",children:"/v1/text-to-image/base/model"})]})]})]}),(0,t.jsxs)("div",{className:"mt-3 text-sm text-gray-600",children:["Any path after ",e," will be appended to the target URL"]})]})}),!a&&(0,t.jsx)("div",{className:"mt-4 p-3 bg-blue-50 rounded-md border border-blue-200",children:(0,t.jsxs)("div",{className:"flex items-start",children:[(0,t.jsx)(w.InfoCircleOutlined,{className:"text-blue-500 mt-0.5 mr-2 flex-shrink-0"}),(0,t.jsxs)("div",{className:"text-sm text-blue-700",children:[(0,t.jsx)("span",{className:"font-medium",children:"Not seeing the routing you wanted?"})," Try enabling - Include Subpaths - above - this allows subroutes like"," ",(0,t.jsx)("code",{className:"bg-blue-100 px-1 py-0.5 rounded font-mono text-xs",children:"/api/v1/models"})," to be forwarded automatically."]})]})})]})]}):null},lm=({premiumUser:e,authEnabled:l,onAuthChange:s})=>(0,t.jsxs)(eL.Card,{className:"p-6",children:[(0,t.jsx)(eu.Title,{className:"text-lg font-semibold text-gray-900 mb-2",children:"Security"}),(0,t.jsx)(ls.Subtitle,{className:"text-gray-600 mb-4",children:"When enabled, requests to this endpoint will require a valid LiteLLM Virtual Key"}),e?(0,t.jsx)(el.Form.Item,{name:"auth",valuePropName:"checked",className:"mb-0",children:(0,t.jsx)(E.Switch,{checked:l,onChange:e=>{s(e)}})}):(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center mb-3",children:[(0,t.jsx)(E.Switch,{disabled:!0,checked:!1,style:{outline:"2px solid #d1d5db",outlineOffset:"2px"}}),(0,t.jsx)("span",{className:"ml-2 text-sm text-gray-400",children:"Authentication (Premium)"})]}),(0,t.jsx)("div",{className:"p-3 bg-yellow-50 border border-yellow-200 rounded-lg",children:(0,t.jsxs)(em.Text,{className:"text-sm text-yellow-800",children:["Setting authentication for pass-through endpoints is a LiteLLM Enterprise feature. Get a trial key"," ",(0,t.jsx)("a",{href:"https://www.litellm.ai/#pricing",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"here"}),"."]})})]})]});var lu=e.i(891547);let lh=({accessToken:e,value:l={},onChange:s,disabled:a=!1})=>{let[r,i]=(0,x.useState)(Object.keys(l)),[o,n]=(0,x.useState)(l);(0,x.useEffect)(()=>{n(l),i(Object.keys(l))},[l]);let d=(e,t,l)=>{let a=o[e]||{},r={...o,[e]:{...a,[t]:l.length>0?l:void 0}};r[e]?.request_fields||r[e]?.response_fields||(r[e]=null),n(r),s&&s(r)};return(0,t.jsxs)(eL.Card,{className:"p-6",children:[(0,t.jsx)(eu.Title,{className:"text-lg font-semibold text-gray-900 mb-2",children:"Guardrails"}),(0,t.jsx)(ls.Subtitle,{className:"text-gray-600 mb-6",children:"Configure guardrails to enforce policies on requests and responses. Guardrails are opt-in for passthrough endpoints."}),(0,t.jsx)(tv.Alert,{message:(0,t.jsxs)("span",{children:["Field-Level Targeting"," ",(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/pass_through_guardrails#field-level-targeting",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 underline",children:"(Learn More)"})]}),description:(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("div",{children:"Optionally specify which fields to check. If left empty, the entire request/response is sent to the guardrail."}),(0,t.jsxs)("div",{className:"text-xs space-y-1 mt-2",children:[(0,t.jsx)("div",{className:"font-medium",children:"Common Examples:"}),(0,t.jsxs)("div",{children:["• ",(0,t.jsx)("code",{className:"bg-gray-100 px-1 rounded",children:"query"})," - Single field"]}),(0,t.jsxs)("div",{children:["• ",(0,t.jsx)("code",{className:"bg-gray-100 px-1 rounded",children:"documents[*].text"})," - All text in documents array"]}),(0,t.jsxs)("div",{children:["• ",(0,t.jsx)("code",{className:"bg-gray-100 px-1 rounded",children:"messages[*].content"})," - All message contents"]})]})]}),type:"info",showIcon:!0,className:"mb-4"}),(0,t.jsx)(el.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Select Guardrails",(0,t.jsx)(L.Tooltip,{title:"Choose which guardrails should run on this endpoint. Org/team/key level guardrails will also be included.",children:(0,t.jsx)(w.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),children:(0,t.jsx)(lu.default,{accessToken:e,value:r,onChange:e=>{i(e);let t={};e.forEach(e=>{t[e]=o[e]||null}),n(t),s&&s(t)},disabled:a})}),r.length>0&&(0,t.jsxs)("div",{className:"mt-6 space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-gray-700",children:"Field Targeting (Optional)"}),(0,t.jsx)("div",{className:"text-xs text-gray-500",children:"💡 Tip: Leave empty to check entire payload"})]}),r.map(e=>(0,t.jsxs)(eL.Card,{className:"p-4 bg-gray-50",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-gray-900 mb-3",children:e}),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,t.jsxs)("label",{className:"text-xs text-gray-600 flex items-center",children:["Request Fields (pre_call)",(0,t.jsx)(L.Tooltip,{title:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"font-medium mb-1",children:"Specify which request fields to check"}),(0,t.jsxs)("div",{className:"text-xs space-y-1",children:[(0,t.jsx)("div",{children:"Examples:"}),(0,t.jsx)("div",{children:"• query"}),(0,t.jsx)("div",{children:"• documents[*].text"}),(0,t.jsx)("div",{children:"• messages[*].content"})]})]}),children:(0,t.jsx)(w.InfoCircleOutlined,{className:"ml-1 text-gray-400"})})]}),(0,t.jsxs)("div",{className:"flex gap-1",children:[(0,t.jsx)("button",{type:"button",onClick:()=>{let t=o[e]?.request_fields||[];d(e,"request_fields",[...t,"query"])},className:"text-xs px-2 py-1 bg-white border border-gray-300 rounded hover:bg-gray-50",disabled:a,children:"+ query"}),(0,t.jsx)("button",{type:"button",onClick:()=>{let t=o[e]?.request_fields||[];d(e,"request_fields",[...t,"documents[*]"])},className:"text-xs px-2 py-1 bg-white border border-gray-300 rounded hover:bg-gray-50",disabled:a,children:"+ documents[*]"})]})]}),(0,t.jsx)(Q.Select,{mode:"tags",style:{width:"100%"},placeholder:"Type field name or use + buttons above (e.g., query, documents[*].text)",value:o[e]?.request_fields||[],onChange:t=>d(e,"request_fields",t),disabled:a,tokenSeparators:[","]})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,t.jsxs)("label",{className:"text-xs text-gray-600 flex items-center",children:["Response Fields (post_call)",(0,t.jsx)(L.Tooltip,{title:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"font-medium mb-1",children:"Specify which response fields to check"}),(0,t.jsxs)("div",{className:"text-xs space-y-1",children:[(0,t.jsx)("div",{children:"Examples:"}),(0,t.jsx)("div",{children:"• results[*].text"}),(0,t.jsx)("div",{children:"• choices[*].message.content"})]})]}),children:(0,t.jsx)(w.InfoCircleOutlined,{className:"ml-1 text-gray-400"})})]}),(0,t.jsx)("div",{className:"flex gap-1",children:(0,t.jsx)("button",{type:"button",onClick:()=>{let t=o[e]?.response_fields||[];d(e,"response_fields",[...t,"results[*]"])},className:"text-xs px-2 py-1 bg-white border border-gray-300 rounded hover:bg-gray-50",disabled:a,children:"+ results[*]"})})]}),(0,t.jsx)(Q.Select,{mode:"tags",style:{width:"100%"},placeholder:"Type field name or use + buttons above (e.g., results[*].text)",value:o[e]?.response_fields||[],onChange:t=>d(e,"response_fields",t),disabled:a,tokenSeparators:[","]})]})]})]},e))]})]})},{Option:lx}=Q.Select,lp=["GET","POST","PUT","DELETE","PATCH"],lg=({accessToken:e,setPassThroughItems:s,passThroughItems:a,premiumUser:r=!1})=>{let[i]=el.Form.useForm(),[o,n]=(0,x.useState)(!1),[d,c]=(0,x.useState)(!1),[m,u]=(0,x.useState)(""),[h,p]=(0,x.useState)(""),[g,f]=(0,x.useState)(""),[_,j]=(0,x.useState)(!0),[y,b]=(0,x.useState)(!1),[v,N]=(0,x.useState)([]),[C,S]=(0,x.useState)({}),k=()=>{i.resetFields(),p(""),f(""),j(!0),N([]),S({}),n(!1)},F=async t=>{console.log("addPassThrough called with:",t),c(!0);try{!r&&"auth"in t&&delete t.auth,C&&Object.keys(C).length>0&&(t.guardrails=C),v&&v.length>0&&(t.methods=v),console.log(`formValues: ${JSON.stringify(t)}`);let o=(await (0,l.createPassThroughEndpoint)(e,t)).endpoints[0],d=[...a,o];s(d),H.default.success("Pass-through endpoint created successfully"),i.resetFields(),p(""),f(""),j(!0),N([]),S({}),n(!1)}catch(e){H.default.fromBackend("Error creating pass-through endpoint: "+e)}finally{c(!1)}};return(0,t.jsxs)("div",{children:[(0,t.jsx)(T.Button,{className:"mx-auto mb-4 mt-4",onClick:()=>n(!0),children:"+ Add Pass-Through Endpoint"}),(0,t.jsx)(es.Modal,{title:(0,t.jsxs)("div",{className:"flex items-center space-x-3 pb-4 border-b border-gray-100",children:[(0,t.jsx)(la.ApiOutlined,{className:"text-xl text-blue-500"}),(0,t.jsx)("h2",{className:"text-xl font-semibold text-gray-900",children:"Add Pass-Through Endpoint"})]}),open:o,width:1e3,onCancel:k,footer:null,className:"top-8",styles:{body:{padding:"24px"},header:{padding:"24px 24px 0 24px",border:"none"}},children:(0,t.jsxs)("div",{className:"mt-6",children:[(0,t.jsx)(tv.Alert,{message:"What is a Pass-Through Endpoint?",description:"Route requests from your LiteLLM proxy to any external API. Perfect for custom models, image generation APIs, or any service you want to proxy through LiteLLM.",type:"info",showIcon:!0,className:"mb-6"}),(0,t.jsxs)(el.Form,{form:i,onFinish:F,layout:"vertical",className:"space-y-6",initialValues:{include_subpath:!0,path:h,target:g},children:[(0,t.jsxs)(eL.Card,{className:"p-5",children:[(0,t.jsx)(eu.Title,{className:"text-lg font-semibold text-gray-900 mb-2",children:"Route Configuration"}),(0,t.jsx)(ls.Subtitle,{className:"text-gray-600 mb-5",children:"Configure how requests to your domain will be forwarded to the target API"}),(0,t.jsxs)("div",{className:"space-y-5",children:[(0,t.jsx)(el.Form.Item,{label:(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Path Prefix"}),name:"path",rules:[{required:!0,message:"Path is required",pattern:/^\//}],extra:(0,t.jsx)("div",{className:"text-xs text-gray-500 mt-1",children:"Example: /bria, /adobe-photoshop, /elasticsearch"}),className:"mb-4",children:(0,t.jsx)("div",{className:"flex items-center",children:(0,t.jsx)(eR.TextInput,{placeholder:"bria",value:h,onChange:e=>{var t;let l;return l=t=e.target.value,void(t&&!t.startsWith("/")&&(l="/"+t),p(l),i.setFieldsValue({path:l}))},className:"flex-1"})})}),(0,t.jsx)(el.Form.Item,{label:(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Target URL"}),name:"target",rules:[{required:!0,message:"Target URL is required"},{type:"url",message:"Please enter a valid URL"}],extra:(0,t.jsx)("div",{className:"text-xs text-gray-500 mt-1",children:"Example:https://engine.prod.bria-api.com"}),className:"mb-4",children:(0,t.jsx)(eR.TextInput,{placeholder:"https://engine.prod.bria-api.com",value:g,onChange:e=>{f(e.target.value),i.setFieldsValue({target:e.target.value})}})}),(0,t.jsx)(el.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["HTTP Methods (Optional)",(0,t.jsx)(L.Tooltip,{title:"Select specific HTTP methods. Leave empty to support all methods (GET, POST, PUT, DELETE, PATCH). Useful when the same path needs different targets for different methods.",children:(0,t.jsx)(w.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"methods",extra:(0,t.jsx)("div",{className:"text-xs text-gray-500 mt-1",children:0===v.length?"All HTTP methods supported (default)":`Only ${v.join(", ")} requests will be routed to this endpoint`}),className:"mb-4",children:(0,t.jsx)(Q.Select,{mode:"multiple",placeholder:"Select methods (leave empty for all)",value:v,onChange:N,allowClear:!0,style:{width:"100%"},children:lp.map(e=>(0,t.jsx)(lx,{value:e,children:e},e))})}),(0,t.jsxs)("div",{className:"flex items-center justify-between py-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-sm font-medium text-gray-700",children:"Include Subpaths"}),(0,t.jsx)("div",{className:"text-xs text-gray-500 mt-0.5",children:"Forward all subpaths to the target API (recommended for REST APIs)"})]}),(0,t.jsx)(el.Form.Item,{name:"include_subpath",valuePropName:"checked",className:"mb-0",children:(0,t.jsx)(tb.Switch,{checked:_,onChange:j})})]})]})]}),(0,t.jsx)(lc,{pathValue:h,targetValue:g,includeSubpath:_}),(0,t.jsxs)(eL.Card,{className:"p-6",children:[(0,t.jsx)(eu.Title,{className:"text-lg font-semibold text-gray-900 mb-2",children:"Headers"}),(0,t.jsx)(ls.Subtitle,{className:"text-gray-600 mb-6",children:"Add headers that will be sent with every request to the target API"}),(0,t.jsx)(el.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Authentication Headers",(0,t.jsx)(L.Tooltip,{title:"Authentication and other headers to forward with requests",children:(0,t.jsx)(w.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"headers",rules:[{required:!0,message:"Please configure the headers"}],extra:(0,t.jsxs)("div",{className:"text-xs text-gray-500 mt-2",children:[(0,t.jsx)("div",{className:"font-medium mb-1",children:"Add authentication tokens and other required headers"}),(0,t.jsx)("div",{children:"Common examples: auth_token, Authorization, x-api-key"})]}),children:(0,t.jsx)(lr,{})})]}),(0,t.jsxs)(eL.Card,{className:"p-6",children:[(0,t.jsx)(eu.Title,{className:"text-lg font-semibold text-gray-900 mb-2",children:"Default Query Parameters"}),(0,t.jsx)(ls.Subtitle,{className:"text-gray-600 mb-6",children:"Add query parameters that will be automatically sent with every request to the target API"}),(0,t.jsx)(el.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Default Query Parameters (Optional)",(0,t.jsx)(L.Tooltip,{title:"Query parameters that will be added to all requests. Clients can override these by providing their own values.",children:(0,t.jsx)(w.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"default_query_params",extra:(0,t.jsxs)("div",{className:"text-xs text-gray-500 mt-2",children:[(0,t.jsx)("div",{className:"font-medium mb-1",children:"Parameters are sent with all GET, POST, PUT, PATCH requests"}),(0,t.jsx)("div",{children:"Client parameters override defaults. Examples: version=v1, format=json, key=default"})]}),children:(0,t.jsx)(li,{})})]}),(0,t.jsx)(lm,{premiumUser:r,authEnabled:y,onAuthChange:e=>{b(e),i.setFieldsValue({auth:e})}}),(0,t.jsx)(lh,{accessToken:e,value:C,onChange:S}),(0,t.jsxs)(eL.Card,{className:"p-6",children:[(0,t.jsx)(eu.Title,{className:"text-lg font-semibold text-gray-900 mb-2",children:"Billing"}),(0,t.jsx)(ls.Subtitle,{className:"text-gray-600 mb-6",children:"Optional cost tracking for this endpoint"}),(0,t.jsx)(el.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Cost Per Request (USD)",(0,t.jsx)(L.Tooltip,{title:"Optional: Track costs for requests to this endpoint",children:(0,t.jsx)(w.InfoCircleOutlined,{className:"ml-2 text-gray-400 hover:text-gray-600"})})]}),name:"cost_per_request",extra:(0,t.jsx)("div",{className:"text-xs text-gray-500 mt-2",children:"The cost charged for each request through this endpoint"}),children:(0,t.jsx)(tF.default,{min:0,step:.001,precision:4,placeholder:"2.0000",size:"large"})})]}),(0,t.jsxs)("div",{className:"flex items-center justify-end space-x-3 pt-6 border-t border-gray-100",children:[(0,t.jsx)(T.Button,{variant:"secondary",onClick:k,children:"Cancel"}),(0,t.jsx)(T.Button,{variant:"primary",loading:d,onClick:()=>{console.log("Submit button clicked"),i.submit()},children:d?"Creating...":"Add Pass-Through Endpoint"})]})]})]})})]})};var lf=e.i(286536),l_=e.i(77705);let lj=["GET","POST","PUT","DELETE","PATCH"],{Option:ly}=Q.Select,lb=({value:e})=>{let[l,s]=(0,x.useState)(!1),a=JSON.stringify(e,null,2);return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("pre",{className:"font-mono text-xs bg-gray-50 p-2 rounded max-w-md overflow-auto",children:l?a:"••••••••"}),(0,t.jsx)("button",{onClick:()=>s(!l),className:"p-1 hover:bg-gray-100 rounded",type:"button",children:l?(0,t.jsx)(l_.EyeOff,{className:"w-4 h-4 text-gray-500"}):(0,t.jsx)(lf.Eye,{className:"w-4 h-4 text-gray-500"})})]})},lv=({endpointData:e,onClose:s,accessToken:a,isAdmin:r,premiumUser:i=!1,onEndpointUpdated:o})=>{let[n,d]=(0,x.useState)(e),[c,m]=(0,x.useState)(!1),[u,h]=(0,x.useState)(!1),[p,g]=(0,x.useState)(e?.auth||!1),[f,_]=(0,x.useState)(e?.methods||[]),[j,y]=(0,x.useState)(e?.guardrails||{}),[b]=el.Form.useForm(),v=async e=>{try{if(!a||!n?.id)return;let t={};if(e.headers)try{t="string"==typeof e.headers?JSON.parse(e.headers):e.headers}catch(e){H.default.fromBackend("Invalid JSON format for headers");return}let s={path:n.path,target:e.target,headers:t,include_subpath:e.include_subpath,cost_per_request:e.cost_per_request,auth:i?e.auth:void 0,methods:f&&f.length>0?f:void 0,guardrails:j&&Object.keys(j).length>0?j:void 0};await (0,l.updatePassThroughEndpoint)(a,n.id,s),d({...n,...s}),h(!1),o&&o()}catch(e){console.error("Error updating endpoint:",e),H.default.fromBackend("Failed to update pass through endpoint")}},N=async()=>{try{if(!a||!n?.id)return;await (0,l.deletePassThroughEndpointsCall)(a,n.id),H.default.success("Pass through endpoint deleted successfully"),s(),o&&o()}catch(e){console.error("Error deleting endpoint:",e),H.default.fromBackend("Failed to delete pass through endpoint")}};return c?(0,t.jsx)("div",{className:"p-4",children:"Loading..."}):n?(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsx)("div",{className:"flex justify-between items-center mb-6",children:(0,t.jsxs)("div",{children:[(0,t.jsx)(W.Button,{onClick:s,className:"mb-4",children:"← Back"}),(0,t.jsxs)(eu.Title,{children:["Pass Through Endpoint: ",n.path]}),(0,t.jsx)(em.Text,{className:"text-gray-500 font-mono",children:n.id})]})}),(0,t.jsxs)(e4.TabGroup,{children:[(0,t.jsxs)(e5.TabList,{className:"mb-4",children:[(0,t.jsx)(e2.Tab,{children:"Overview"},"overview"),r?(0,t.jsx)(e2.Tab,{children:"Settings"},"settings"):(0,t.jsx)(t.Fragment,{})]}),(0,t.jsxs)(e6.TabPanels,{children:[(0,t.jsxs)(J.TabPanel,{children:[(0,t.jsxs)(U.Grid,{numItems:1,numItemsSm:2,numItemsLg:3,className:"gap-6",children:[(0,t.jsxs)(eL.Card,{children:[(0,t.jsx)(em.Text,{children:"Path"}),(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(eu.Title,{className:"font-mono",children:n.path})})]}),(0,t.jsxs)(eL.Card,{children:[(0,t.jsx)(em.Text,{children:"Target"}),(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(eu.Title,{children:n.target})})]}),(0,t.jsxs)(eL.Card,{children:[(0,t.jsx)(em.Text,{children:"Configuration"}),(0,t.jsxs)("div",{className:"mt-2 space-y-2",children:[(0,t.jsx)("div",{children:(0,t.jsx)(k.Badge,{color:n.include_subpath?"green":"gray",children:n.include_subpath?"Include Subpath":"Exact Path"})}),(0,t.jsx)("div",{children:(0,t.jsx)(k.Badge,{color:n.auth?"blue":"gray",children:n.auth?"Auth Required":"No Auth"})}),n.methods&&n.methods.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"text-xs text-gray-500",children:"HTTP Methods:"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1 mt-1",children:n.methods.map(e=>(0,t.jsx)(k.Badge,{color:"indigo",size:"sm",children:e},e))})]}),(!n.methods||0===n.methods.length)&&(0,t.jsx)("div",{children:(0,t.jsx)(em.Text,{className:"text-xs text-gray-500",children:"All HTTP methods supported"})}),void 0!==n.cost_per_request&&(0,t.jsx)("div",{children:(0,t.jsxs)(em.Text,{children:["Cost per request: $",n.cost_per_request]})})]})]})]}),(0,t.jsx)("div",{className:"mt-6",children:(0,t.jsx)(lc,{pathValue:n.path,targetValue:n.target,includeSubpath:n.include_subpath||!1})}),n.headers&&Object.keys(n.headers).length>0&&(0,t.jsxs)(eL.Card,{className:"mt-6",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Headers"}),(0,t.jsxs)(k.Badge,{color:"blue",children:[Object.keys(n.headers).length," headers configured"]})]}),(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)(lb,{value:n.headers})})]}),n.guardrails&&Object.keys(n.guardrails).length>0&&(0,t.jsxs)(eL.Card,{className:"mt-6",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Guardrails"}),(0,t.jsxs)(k.Badge,{color:"purple",children:[Object.keys(n.guardrails).length," guardrails configured"]})]}),(0,t.jsx)("div",{className:"mt-4 space-y-2",children:Object.entries(n.guardrails).map(([e,l])=>(0,t.jsxs)("div",{className:"p-3 bg-gray-50 rounded",children:[(0,t.jsx)("div",{className:"font-medium text-sm",children:e}),l&&(l.request_fields||l.response_fields)&&(0,t.jsxs)("div",{className:"mt-2 text-xs text-gray-600 space-y-1",children:[l.request_fields&&(0,t.jsxs)("div",{children:["Request fields: ",l.request_fields.join(", ")]}),l.response_fields&&(0,t.jsxs)("div",{children:["Response fields: ",l.response_fields.join(", ")]})]}),!l&&(0,t.jsx)("div",{className:"text-xs text-gray-600 mt-1",children:"Uses entire payload"})]},e))})]})]}),r&&(0,t.jsx)(J.TabPanel,{children:(0,t.jsxs)(eL.Card,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(eu.Title,{children:"Pass Through Endpoint Settings"}),(0,t.jsx)("div",{className:"space-x-2",children:!u&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(T.Button,{onClick:()=>h(!0),children:"Edit Settings"}),(0,t.jsx)(T.Button,{onClick:N,variant:"secondary",color:"red",children:"Delete Endpoint"})]})})]}),u?(0,t.jsxs)(el.Form,{form:b,onFinish:v,initialValues:{target:n.target,headers:n.headers?JSON.stringify(n.headers,null,2):"",include_subpath:n.include_subpath||!1,cost_per_request:n.cost_per_request,auth:n.auth||!1,methods:n.methods||[]},layout:"vertical",children:[(0,t.jsx)(el.Form.Item,{label:"Target URL",name:"target",rules:[{required:!0,message:"Please input a target URL"}],children:(0,t.jsx)(eR.TextInput,{placeholder:"https://api.example.com"})}),(0,t.jsx)(el.Form.Item,{label:"Headers (JSON)",name:"headers",children:(0,t.jsx)(eV.Input.TextArea,{rows:5,placeholder:'{"Authorization": "Bearer your-token", "Content-Type": "application/json"}'})}),(0,t.jsx)(el.Form.Item,{label:"HTTP Methods (Optional)",name:"methods",extra:0===f.length?"All HTTP methods supported (default)":`Only ${f.join(", ")} requests will be routed to this endpoint`,children:(0,t.jsx)(Q.Select,{mode:"multiple",placeholder:"Select methods (leave empty for all)",value:f,onChange:_,allowClear:!0,style:{width:"100%"},children:lj.map(e=>(0,t.jsx)(ly,{value:e,children:e},e))})}),(0,t.jsx)(el.Form.Item,{label:"Include Subpath",name:"include_subpath",valuePropName:"checked",children:(0,t.jsx)(E.Switch,{})}),(0,t.jsx)(el.Form.Item,{label:"Cost per Request",name:"cost_per_request",children:(0,t.jsx)(eh.InputNumber,{min:0,step:.01,precision:2,placeholder:"0.00",addonBefore:"$"})}),(0,t.jsx)(lm,{premiumUser:i,authEnabled:p,onAuthChange:e=>{g(e),b.setFieldsValue({auth:e})}}),(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)(lh,{accessToken:a||"",value:j,onChange:y})}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 mt-6",children:[(0,t.jsx)(W.Button,{onClick:()=>h(!1),children:"Cancel"}),(0,t.jsx)(T.Button,{children:"Save Changes"})]})]}):(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Path"}),(0,t.jsx)("div",{className:"font-mono",children:n.path})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Target URL"}),(0,t.jsx)("div",{children:n.target})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Include Subpath"}),(0,t.jsx)(k.Badge,{color:n.include_subpath?"green":"gray",children:n.include_subpath?"Yes":"No"})]}),void 0!==n.cost_per_request&&(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Cost per Request"}),(0,t.jsxs)("div",{children:["$",n.cost_per_request]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Authentication Required"}),(0,t.jsx)(k.Badge,{color:n.auth?"green":"gray",children:n.auth?"Yes":"No"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Headers"}),n.headers&&Object.keys(n.headers).length>0?(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(lb,{value:n.headers})}):(0,t.jsx)("div",{className:"text-gray-500",children:"No headers configured"})]})]})]})})]})]})]}):(0,t.jsx)("div",{className:"p-4",children:"Pass through endpoint not found"})};var lN=e.i(149121);let lw=({value:e})=>{let[l,s]=(0,x.useState)(!1),a=JSON.stringify(e);return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("span",{className:"font-mono text-xs",children:l?a:"••••••••"}),(0,t.jsx)("button",{onClick:()=>s(!l),className:"p-1 hover:bg-gray-100 rounded",type:"button",children:l?(0,t.jsx)(l_.EyeOff,{className:"w-4 h-4 text-gray-500"}):(0,t.jsx)(lf.Eye,{className:"w-4 h-4 text-gray-500"})})]})},lC=({accessToken:e,userRole:s,userID:a,modelData:r,premiumUser:i})=>{let[o,n]=(0,x.useState)([]),[d,c]=(0,x.useState)(null),[m,u]=(0,x.useState)(!1),[h,p]=(0,x.useState)(null);(0,x.useEffect)(()=>{e&&s&&a&&(0,l.getPassThroughEndpointsCall)(e).then(e=>{n(e.endpoints)})},[e,s,a]);let g=async e=>{p(e),u(!0)},f=async()=>{if(null!=h&&e){try{await (0,l.deletePassThroughEndpointsCall)(e,h);let t=o.filter(e=>e.id!==h);n(t),H.default.success("Endpoint deleted successfully.")}catch(e){console.error("Error deleting the endpoint:",e),H.default.fromBackend("Error deleting the endpoint: "+e)}u(!1),p(null)}},_=[{header:"ID",accessorKey:"id",cell:e=>(0,t.jsx)(L.Tooltip,{title:e.row.original.id,children:(0,t.jsx)("div",{className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left w-full truncate whitespace-nowrap cursor-pointer max-w-[15ch]",onClick:()=>e.row.original.id&&c(e.row.original.id),children:e.row.original.id})})},{header:"Path",accessorKey:"path"},{header:"Target",accessorKey:"target",cell:e=>(0,t.jsx)(em.Text,{children:e.getValue()})},{header:()=>(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{children:"Methods"}),(0,t.jsx)(L.Tooltip,{title:"HTTP methods supported by this endpoint",children:(0,t.jsx)(tK.InformationCircleIcon,{className:"w-4 h-4 text-gray-400 cursor-help"})})]}),accessorKey:"methods",cell:e=>{let l=e.getValue();return l&&0!==l.length?(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:l.map(e=>(0,t.jsx)(K.Badge,{color:"indigo",className:"text-xs",children:e},e))}):(0,t.jsx)(K.Badge,{color:"blue",children:"ALL"})}},{header:()=>(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{children:"Authentication"}),(0,t.jsx)(L.Tooltip,{title:"LiteLLM Virtual Key required to call endpoint",children:(0,t.jsx)(tK.InformationCircleIcon,{className:"w-4 h-4 text-gray-400 cursor-help"})})]}),accessorKey:"auth",cell:e=>(0,t.jsx)(K.Badge,{color:e.getValue()?"green":"gray",children:e.getValue()?"Yes":"No"})},{header:"Headers",accessorKey:"headers",cell:e=>(0,t.jsx)(lw,{value:e.getValue()||{}})},{header:"Actions",id:"actions",cell:({row:e})=>(0,t.jsxs)("div",{className:"flex space-x-1",children:[(0,t.jsx)(F.Icon,{icon:eE.PencilAltIcon,size:"sm",onClick:()=>e.original.id&&c(e.original.id),title:"Edit"}),(0,t.jsx)(F.Icon,{icon:S.TrashIcon,size:"sm",onClick:()=>{var t;return t=e.original.id,e.index,void g(t)},title:"Delete"})]})}];if(!e)return null;if(d){console.log("selectedEndpointId",d),console.log("generalSettings",o);let a=o.find(e=>e.id===d);return a?(0,t.jsx)(lv,{endpointData:a,onClose:()=>c(null),accessToken:e,isAdmin:"Admin"===s||"admin"===s,premiumUser:i,onEndpointUpdated:()=>{e&&(0,l.getPassThroughEndpointsCall)(e).then(e=>{n(e.endpoints)})}}):(0,t.jsx)("div",{children:"Endpoint not found"})}return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(eu.Title,{children:"Pass Through Endpoints"}),(0,t.jsx)(em.Text,{className:"text-tremor-content",children:"Configure and manage your pass-through endpoints"})]}),(0,t.jsx)(lg,{accessToken:e,setPassThroughItems:n,passThroughItems:o,premiumUser:i}),(0,t.jsx)(lN.DataTable,{data:o,columns:_,renderSubComponent:()=>(0,t.jsx)("div",{}),getRowCanExpand:()=>!1,isLoading:!1,noDataMessage:"No pass-through endpoints configured"}),m&&(0,t.jsx)("div",{className:"fixed z-10 inset-0 overflow-y-auto",children:(0,t.jsxs)("div",{className:"flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0",children:[(0,t.jsx)("div",{className:"fixed inset-0 transition-opacity","aria-hidden":"true",children:(0,t.jsx)("div",{className:"absolute inset-0 bg-gray-500 opacity-75"})}),(0,t.jsx)("span",{className:"hidden sm:inline-block sm:align-middle sm:h-screen","aria-hidden":"true",children:"​"}),(0,t.jsxs)("div",{className:"inline-block align-bottom bg-white rounded-lg text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full",children:[(0,t.jsx)("div",{className:"bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4",children:(0,t.jsx)("div",{className:"sm:flex sm:items-start",children:(0,t.jsxs)("div",{className:"mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left",children:[(0,t.jsx)("h3",{className:"text-lg leading-6 font-medium text-gray-900",children:"Delete Pass-Through Endpoint"}),(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)("p",{className:"text-sm text-gray-500",children:"Are you sure you want to delete this pass-through endpoint? This action cannot be undone."})})]})})}),(0,t.jsxs)("div",{className:"bg-gray-50 px-4 py-3 sm:px-6 sm:flex sm:flex-row-reverse",children:[(0,t.jsx)(T.Button,{onClick:f,color:"red",className:"ml-2",children:"Delete"}),(0,t.jsx)(T.Button,{onClick:()=>{u(!1),p(null)},children:"Cancel"})]})]})]})})]})};e.s(["default",0,lC],147612);var lS=e.i(56567);e.s(["default",0,({premiumUser:e,teams:s})=>{let a,i,{accessToken:m,token:u,userRole:h,userId:p}=(0,r.default)(),[g]=el.Form.useForm(),[f,_]=(0,x.useState)(""),[j,y]=(0,x.useState)([]),[b,v]=(0,x.useState)(eM.Providers.Anthropic),[N,w]=(0,x.useState)(null),[C,S]=(0,x.useState)(null),[k,T]=(0,x.useState)(null),[I,M]=(0,x.useState)(0),[P,A]=(0,x.useState)({}),[E,L]=(0,x.useState)(!1),[R,O]=(0,x.useState)(null),[B,z]=(0,x.useState)(null),[q,D]=(0,x.useState)(0),[$,K]=(0,x.useState)(1),[W,Q]=(0,x.useState)(()=>"true"!==localStorage.getItem("hideMissingProviderBanner")),Y=(0,G.useQueryClient)(),{data:X,isLoading:Z,refetch:ee}=(0,d.useModelsInfo)(),{data:et,isLoading:es}=(0,d.useModelsInfo)($,50),{data:ea,isLoading:er}=(0,n.useModelCostMap)(),{data:eo,isLoading:ed}=o(),ec=eo?.credentials||[],{data:em,isLoading:eu}=(0,c.useUISettings)(),eh=(0,x.useMemo)(()=>{if(!X?.data)return[];let e=new Set;for(let t of X.data)e.add(t.model_name);return Array.from(e).sort()},[X?.data]),ex=(0,x.useMemo)(()=>{if(!X?.data)return[];let e=new Set;for(let t of X.data){let l=t.model_info;if(l?.access_groups)for(let t of l.access_groups)e.add(t)}return Array.from(e)},[X?.data]),eg=(0,x.useMemo)(()=>X?.data?X.data.map(e=>e.model_name):[],[X?.data]),ef=(0,x.useMemo)(()=>et?.data?et.data.map(e=>e.model_info?.id).filter(e=>!!e):[],[et?.data]),e_=e=>null!=ea&&"object"==typeof ea&&e in ea?ea[e].litellm_provider:"openai",ej=(0,x.useMemo)(()=>X?.data?ei(X,e_):{data:[]},[X?.data,e_]),ey=(0,x.useMemo)(()=>et?.data?ei(et,e_):{data:[]},[et?.data,e_]),eb=(0,x.useMemo)(()=>({total_count:et?.total_count??0,current_page:et?.current_page??$,total_pages:et?.total_pages??1,size:et?.size??50}),[et,$]),ev=h&&(0,eX.isProxyAdminRole)(h),eN=h&&eX.internalUserRoles.includes(h),ew=p&&(0,eX.isUserTeamAdminForAnyTeam)(s,p),eC=eN&&em?.values?.disable_model_add_for_internal_users===!0,eS={name:"file",accept:".json",pastable:!1,beforeUpload:e=>{if("application/json"===e.type){let t=new FileReader;t.onload=e=>{if(e.target){let t=e.target.result;g.setFieldsValue({vertex_credentials:t})}},t.readAsText(e)}return!1},onChange(e){"done"===e.file.status?H.default.success(`${e.file.name} file uploaded successfully`):"error"===e.file.status&&H.default.fromBackend(`${e.file.name} file upload failed.`)}},ek=()=>{_(new Date().toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})),K(1),Y.invalidateQueries({queryKey:["models","list"]}),ee()},eT=async()=>{if(m)try{let e={router_settings:{}};"global"===N?(k&&(e.router_settings.retry_policy=k),H.default.success("Global retry settings saved successfully")):(C&&(e.router_settings.model_group_retry_policy=C),H.default.success(`Retry settings saved successfully for ${N}`)),await (0,l.setCallbacksCall)(m,e)}catch(e){H.default.fromBackend("Failed to save retry settings")}};(0,x.useEffect)(()=>{if(!m||!u||!h||!p||!X)return;let e=async()=>{try{let e=(await (0,l.getCallbacksCall)(m,p,h)).router_settings,t=e.model_group_retry_policy,s=e.num_retries;S(t),T(e.retry_policy),M(s);let a=e.model_group_alias||{};A(a)}catch(e){console.error("Error fetching model data:",e)}};m&&u&&h&&p&&X&&e()},[m,u,h,p,X]);let eF=async()=>{try{let e=await g.validateFields();await eA(e,m,g,ek)}catch(t){let e=t.errorFields?.map(e=>`${e.name.join(".")}: ${e.errors.join(", ")}`).join(" | ")||"Unknown validation error";H.default.fromBackend(`Please fill in the following required fields: ${e}`)}};return(Object.keys(eM.Providers).find(e=>eM.Providers[e]===b),B)?(0,t.jsx)("div",{className:"w-full h-full",children:(0,t.jsx)(lS.default,{teamId:B,onClose:()=>z(null),accessToken:m,is_team_admin:"Admin"===h,is_proxy_admin:"Proxy Admin"===h,userModels:eg,editTeam:!1,onUpdate:ek,premiumUser:e})}):(0,t.jsx)("div",{className:"w-full mx-4 h-[75vh]",children:(0,t.jsx)(U.Grid,{numItems:1,className:"gap-2 p-8 w-full mt-2",children:(0,t.jsxs)(e1.Col,{numColSpan:1,className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold",children:"Model Management"}),eX.all_admin_roles.includes(h)?(0,t.jsx)("p",{className:"text-sm text-gray-600",children:"Add and manage models for the proxy"}):(0,t.jsx)("p",{className:"text-sm text-gray-600",children:"Add models for teams you are an admin for."})]}),!W&&(0,t.jsxs)("a",{href:"https://models.litellm.ai/?request=true",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[#6366f1] hover:text-[#5558e3] border border-[#6366f1] hover:border-[#5558e3] rounded-lg transition-colors",children:[(0,t.jsx)(e3.PlusCircleOutlined,{style:{fontSize:"12px"}}),"Request Provider"]})]}),W&&(0,t.jsxs)("div",{className:"mb-4 px-4 py-3 bg-blue-50 rounded-lg border border-blue-100 flex items-center gap-4",children:[(0,t.jsx)("div",{className:"flex-shrink-0 w-10 h-10 bg-white rounded-full flex items-center justify-center border border-blue-200",children:(0,t.jsx)(e3.PlusCircleOutlined,{style:{fontSize:"18px",color:"#6366f1"}})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("h4",{className:"text-gray-900 font-semibold text-sm m-0",children:"Missing a provider?"}),(0,t.jsx)("p",{className:"text-gray-500 text-xs m-0 mt-0.5",children:"The LiteLLM engineering team is constantly adding support for new LLM models, providers, endpoints. If you don't see the one you need, let us know and we'll prioritize it."})]}),(0,t.jsxs)("a",{href:"https://models.litellm.ai/?request=true",target:"_blank",rel:"noopener noreferrer",className:"flex-shrink-0 inline-flex items-center gap-2 px-4 py-2 bg-[#6366f1] hover:bg-[#5558e3] text-white text-sm font-medium rounded-lg transition-colors",children:["Request Provider",(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})})]}),(0,t.jsx)("button",{onClick:()=>{Q(!1),localStorage.setItem("hideMissingProviderBanner","true")},className:"flex-shrink-0 p-1 text-gray-400 hover:text-gray-600 hover:bg-gray-100 rounded-full transition-colors","aria-label":"Dismiss banner",children:(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})})]}),R&&!(Z||er||ed||eu)?(0,t.jsx)(ll,{modelId:R,onClose:()=>{O(null)},accessToken:m,userID:p,userRole:h,onModelUpdate:e=>{Y.invalidateQueries({queryKey:["models","list"]}),ek()},modelAccessGroups:ex}):(a=eX.all_admin_roles.includes(h),i=[{tab:(0,t.jsx)(e2.Tab,{children:a?"All Models":"Your Models"},"all-models"),panel:(0,t.jsx)(en,{selectedModelGroup:N,setSelectedModelGroup:w,availableModelGroups:eh,availableModelAccessGroups:ex,setSelectedModelId:O,setSelectedTeamId:z},"all-models")}],(ev||!eC&&ew)&&i.push({tab:(0,t.jsx)(e2.Tab,{children:"Add Model"},"add-model"),panel:(0,t.jsx)(J.TabPanel,{className:"h-full",children:(0,t.jsx)(tG,{form:g,handleOk:eF,selectedProvider:b,setSelectedProvider:v,providerModels:j,setProviderModelsFn:e=>{y((0,eM.getProviderModels)(e,ea))},getPlaceholder:eM.getPlaceholder,uploadProps:eS,showAdvancedSettings:E,setShowAdvancedSettings:L,teams:s,credentials:ec,accessToken:m,userRole:h})},"add-model")}),a&&i.push({tab:(0,t.jsx)(e2.Tab,{children:"LLM Credentials"},"llm-credentials"),panel:(0,t.jsx)(J.TabPanel,{children:(0,t.jsx)(eZ,{uploadProps:eS})},"llm-credentials")},{tab:(0,t.jsx)(e2.Tab,{children:"Pass-Through Endpoints"},"pass-through"),panel:(0,t.jsx)(J.TabPanel,{children:(0,t.jsx)(lC,{accessToken:m,userRole:h,userID:p,modelData:ej,premiumUser:e})},"pass-through")},{tab:(0,t.jsx)(e2.Tab,{children:"Health Status"},"health-status"),panel:(0,t.jsx)(J.TabPanel,{children:(0,t.jsx)(tY,{accessToken:m,modelData:ey,all_models_on_proxy:ef,getDisplayModelName:V,setSelectedModelId:O,teams:s,isLoading:es,paginationMeta:eb,currentPage:$,pageSize:50,onPageChange:K})},"health-status")},{tab:(0,t.jsx)(e2.Tab,{children:"Model Retry Settings"},"model-retry-settings"),panel:(0,t.jsx)(ep,{selectedModelGroup:N,setSelectedModelGroup:w,availableModelGroups:eh,globalRetryPolicy:k,setGlobalRetryPolicy:T,defaultRetry:I,modelGroupRetryPolicy:C,setModelGroupRetryPolicy:S,handleSaveRetrySettings:eT},"model-retry-settings")},{tab:(0,t.jsx)(e2.Tab,{children:"Model Group Alias"},"model-group-alias"),panel:(0,t.jsx)(J.TabPanel,{children:(0,t.jsx)(t2,{accessToken:m,initialModelGroupAlias:P,onAliasUpdate:A})},"model-group-alias")},{tab:(0,t.jsx)(e2.Tab,{children:"Price Data Reload"},"price-data-reload"),panel:(0,t.jsx)(eI,{},"price-data-reload")}),(0,t.jsxs)(e4.TabGroup,{index:q,onIndexChange:D,className:"gap-2 h-[75vh] w-full ",children:[(0,t.jsxs)(e5.TabList,{className:"flex justify-between mt-2 w-full items-center",children:[(0,t.jsx)("div",{className:"flex",children:i.map(e=>e.tab)}),(0,t.jsxs)("div",{className:"flex items-center space-x-2 self-center",children:[f&&(0,t.jsxs)("span",{className:"text-xs text-gray-500",children:["Last Refreshed: ",f]}),(0,t.jsx)(F.Icon,{icon:e0.RefreshIcon,variant:"shadow",size:"xs",className:"cursor-pointer",onClick:ek})]})]}),(0,t.jsx)(e6.TabPanels,{children:i.map(e=>e.panel)})]}))]})})})}],161059)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/00n_262-goqx6.js b/litellm/proxy/_experimental/out/_next/static/chunks/00n_262-goqx6.js deleted file mode 100644 index 2b94cea1006..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/00n_262-goqx6.js +++ /dev/null @@ -1,3 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,894660,283086,195116,e=>{"use strict";var t=e.i(801312);e.s(["LeftOutlined",()=>t.default],894660);var s=e.i(475254);let a=(0,s.default)("sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);e.s(["Sparkles",0,a],283086);let l=(0,s.default)("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);e.s(["Wrench",0,l],195116)},97859,e=>{"use strict";e.s(["AGENT_CALL_TYPES",0,["asend_message"],"ERROR_CODE_OPTIONS",0,[{label:"400 - Bad Request",value:"400"},{label:"401 - Invalid Authentication",value:"401"},{label:"403 - Permission Denied",value:"403"},{label:"404 - Not Found",value:"404"},{label:"408 - Request Timeout",value:"408"},{label:"422 - Unprocessable Entity",value:"422"},{label:"429 - Rate Limited",value:"429"},{label:"500 - Internal Server Error",value:"500"},{label:"502 - Bad Gateway",value:"502"},{label:"503 - Service Unavailable",value:"503"},{label:"529 - Overloaded",value:"529"}],"MCP_CALL_TYPES",0,["call_mcp_tool","list_mcp_tools"],"QUICK_SELECT_OPTIONS",0,[{label:"Last Minute",value:1,unit:"minutes"},{label:"Last 15 Minutes",value:15,unit:"minutes"},{label:"Last Hour",value:1,unit:"hours"},{label:"Last 4 Hours",value:4,unit:"hours"},{label:"Last 24 Hours",value:24,unit:"hours"},{label:"Last 7 Days",value:7,unit:"days"}]])},257486,624001,207066,337767,237062,e=>{"use strict";var t=e.i(97859);e.s(["getEventDisplayName",0,function(e,s){let a=(s||"").trim();if(t.MCP_CALL_TYPES.includes(e))return a.replace(/^mcp:\s*/i,"").split("/").pop()||a||"mcp_tool";let l=(a.split("/").pop()||a).replace(/-20\d{6}.*$/i,"").replace(/:.*$/,""),r=l.match(/claude-[a-z0-9-]+/i);return r?r[0]:l||"llm_call"}],257486);var s=e.i(843476),a=e.i(464571),l=e.i(770914),r=e.i(262218),i=e.i(592968),n=e.i(898586),o=e.i(149192),d=e.i(536591);e.s(["UpOutlined",()=>d.default],624001);var d=d,c=e.i(755151),x=e.i(166540),m=e.i(916925);let u="16px 24px",p="Escape",h="monospace",g="#f0f0f0",f="#fff";e.s(["API_BASE_MAX_WIDTH",0,200,"COLOR_BACKGROUND",0,f,"COLOR_BG_LIGHT",0,"#fafafa","COLOR_BORDER",0,g,"DEFAULT_MAX_WIDTH",0,180,"DRAWER_CONTENT_PADDING",0,"24px","DRAWER_HEADER_PADDING",0,u,"DRAWER_WIDTH",0,"60%","FONT_FAMILY_MONO",0,h,"FONT_SIZE_HEADER",0,16,"FONT_SIZE_MEDIUM",0,13,"FONT_SIZE_SMALL",0,12,"JSON_MAX_HEIGHT",0,400,"KEY_ESCAPE",0,p,"KEY_J_LOWER",0,"j","KEY_J_UPPER",0,"J","KEY_K_LOWER",0,"k","KEY_K_UPPER",0,"K","METADATA_MAX_HEIGHT",0,300,"SPACING_LARGE",0,12,"SPACING_MEDIUM",0,8,"SPACING_SMALL",0,4,"SPACING_XLARGE",0,16,"TAB_REQUEST",0,"request","TAB_RESPONSE",0,"response"],207066);let{Text:y}=n.Typography;function j({model:e,providerLogo:t,providerName:a}){return(0,s.jsxs)(l.Space,{size:8,style:{marginBottom:8},children:[t&&(0,s.jsx)("img",{src:t,alt:a||"Provider",style:{width:24,height:24},onError:e=>{e.target.style.display="none"}}),(0,s.jsxs)(l.Space,{size:8,direction:"horizontal",children:[(0,s.jsx)(y,{strong:!0,style:{fontSize:14},children:e}),a&&(0,s.jsx)(y,{type:"secondary",style:{fontSize:12},children:a})]})]})}function b({requestId:e}){return(0,s.jsx)("div",{style:{flex:1,minWidth:0},children:(0,s.jsx)(i.Tooltip,{title:e,children:(0,s.jsx)(y,{strong:!0,copyable:{text:e,tooltips:["Copy Request ID","Copied!"]},style:{fontSize:16,fontFamily:h,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"block"},children:e})})})}function v({onPrevious:e,onNext:t,onClose:r}){let n={border:"1px solid #d9d9d9",borderRadius:4,padding:"0 4px",fontSize:12,fontFamily:"monospace",marginLeft:4,background:"#fafafa"};return(0,s.jsxs)(l.Space,{size:4,split:(0,s.jsx)("div",{style:{width:1,height:20,background:g}}),children:[(0,s.jsxs)(a.Button,{type:"text",size:"small",onClick:e,children:[(0,s.jsx)(d.default,{}),(0,s.jsx)("span",{style:n,children:"K"})]}),(0,s.jsxs)(a.Button,{type:"text",size:"small",onClick:t,children:[(0,s.jsx)(c.DownOutlined,{}),(0,s.jsx)("span",{style:n,children:"J"})]}),(0,s.jsx)(i.Tooltip,{title:"ESC to close",children:(0,s.jsx)(a.Button,{type:"text",icon:(0,s.jsx)(o.CloseOutlined,{}),onClick:r})})]})}function _({log:e,statusLabel:t,statusColor:a,environment:i}){return(0,s.jsxs)(l.Space,{size:12,children:[(0,s.jsx)(r.Tag,{color:a,children:t}),(0,s.jsxs)(r.Tag,{children:["Env: ",i]}),(0,s.jsxs)(l.Space,{size:8,children:[(0,s.jsx)(y,{type:"secondary",style:{fontSize:13},children:(0,x.default)(e.startTime).format("MMM D, YYYY h:mm:ss A")}),(0,s.jsxs)(y,{type:"secondary",style:{fontSize:13},children:["(",(0,x.default)(e.startTime).fromNow(),")"]})]})]})}e.s(["DrawerHeader",0,function({log:e,onClose:t,onPrevious:a,onNext:l,statusLabel:r,statusColor:i,environment:n}){let o=e.custom_llm_provider||"",d=o?(0,m.getProviderLogoAndName)(o):null;return(0,s.jsxs)("div",{style:{padding:u,borderBottom:`1px solid ${g}`,backgroundColor:f,position:"sticky",top:0,zIndex:10},children:[(0,s.jsx)(j,{model:e.model,providerLogo:d?.logo,providerName:d?.displayName}),(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[(0,s.jsx)(b,{requestId:e.request_id}),(0,s.jsx)(v,{onPrevious:a,onNext:l,onClose:t})]}),(0,s.jsx)(_,{log:e,statusLabel:r,statusColor:i,environment:n})]})}],337767);var N=e.i(271645);e.s(["useKeyboardNavigation",0,function({isOpen:e,currentLog:t,allLogs:s,onClose:a,onSelectLog:l}){(0,N.useEffect)(()=>{let t=t=>{var s;if(!((s=t.target)instanceof HTMLInputElement||s instanceof HTMLTextAreaElement)&&e)switch(t.key){case p:a();break;case"j":case"J":r();break;case"k":case"K":i()}};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e,t,s]);let r=()=>{if(!t||!s.length||!l)return;let e=s.findIndex(e=>e.request_id===t.request_id);e{if(!t||!s.length||!l)return;let e=s.findIndex(e=>e.request_id===t.request_id);e>0&&l(s[e-1])};return{selectNextLog:r,selectPreviousLog:i}}],237062)},517442,e=>{"use strict";var t=e.i(843476),s=e.i(271645),a=e.i(592968);let l=e=>e>=.8?"text-green-600":"text-yellow-600",r=({entities:e})=>{let[a,r]=(0,s.useState)(!0),[i,n]=(0,s.useState)({});return e&&0!==e.length?(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsxs)("div",{className:"flex items-center mb-2 cursor-pointer",onClick:()=>r(!a),children:[(0,t.jsx)("svg",{className:`w-5 h-5 mr-2 transition-transform ${a?"transform rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,t.jsxs)("h4",{className:"font-medium",children:["Detected Entities (",e.length,")"]})]}),a&&(0,t.jsx)("div",{className:"space-y-2",children:e.map((e,s)=>{let a=i[s]||!1;return(0,t.jsxs)("div",{className:"border rounded-lg overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between p-3 bg-gray-50 cursor-pointer hover:bg-gray-100",onClick:()=>{n(e=>({...e,[s]:!e[s]}))},children:[(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)("svg",{className:`w-5 h-5 mr-2 transition-transform ${a?"transform rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,t.jsx)("span",{className:"font-medium mr-2",children:e.entity_type}),(0,t.jsxs)("span",{className:`font-mono ${l(e.score)}`,children:["Score: ",e.score.toFixed(2)]})]}),(0,t.jsxs)("span",{className:"text-xs text-gray-500",children:["Position: ",e.start,"-",e.end]})]}),a&&(0,t.jsx)("div",{className:"p-3 border-t bg-white",children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 mb-2",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Entity Type:"}),(0,t.jsx)("span",{children:e.entity_type})]}),(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Position:"}),(0,t.jsxs)("span",{children:["Characters ",e.start,"-",e.end]})]}),(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Confidence:"}),(0,t.jsx)("span",{className:l(e.score),children:e.score.toFixed(2)})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[e.recognition_metadata&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Recognizer:"}),(0,t.jsx)("span",{children:e.recognition_metadata.recognizer_name})]}),(0,t.jsxs)("div",{className:"flex overflow-hidden",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Identifier:"}),(0,t.jsx)("span",{className:"truncate text-xs font-mono",children:e.recognition_metadata.recognizer_identifier})]})]}),e.analysis_explanation&&(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Explanation:"}),(0,t.jsx)("span",{children:e.analysis_explanation})]})]})]})})]},s)})})]}):null},i=(e,s="slate")=>(0,t.jsx)("span",{className:`px-2 py-1 rounded-md text-xs font-medium inline-block ${{green:"bg-green-100 text-green-800",red:"bg-red-100 text-red-800",blue:"bg-blue-50 text-blue-700",slate:"bg-slate-100 text-slate-800",amber:"bg-amber-100 text-amber-800"}[s]}`,children:e}),n=e=>e?i("detected","red"):i("not detected","slate"),o=({title:e,count:a,defaultOpen:l=!0,right:r,children:i})=>{let[n,o]=(0,s.useState)(l);return(0,t.jsxs)("div",{className:"border rounded-lg overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between p-3 bg-gray-50 cursor-pointer hover:bg-gray-100",onClick:()=>o(e=>!e),children:[(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)("svg",{className:`w-5 h-5 mr-2 transition-transform ${n?"transform rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,t.jsxs)("h5",{className:"font-medium",children:[e," ","number"==typeof a&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal",children:["(",a,")"]})]})]}),(0,t.jsx)("div",{children:r})]}),n&&(0,t.jsx)("div",{className:"p-3 border-t bg-white",children:i})]})},d=({label:e,children:s,mono:a})=>(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:e}),(0,t.jsx)("span",{className:a?"font-mono text-sm break-all":"",children:s})]}),c=()=>(0,t.jsx)("div",{className:"my-3 border-t"}),x=({response:e})=>{if(!e)return null;let s=e.outputs??e.output??[],a="GUARDRAIL_INTERVENED"===e.action?"red":"green",l=(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[e.guardrailCoverage?.textCharacters&&i(`text guarded ${e.guardrailCoverage.textCharacters.guarded??0}/${e.guardrailCoverage.textCharacters.total??0}`,"blue"),e.guardrailCoverage?.images&&i(`images guarded ${e.guardrailCoverage.images.guarded??0}/${e.guardrailCoverage.images.total??0}`,"blue")]}),r=e.usage&&(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:Object.entries(e.usage).map(([e,s])=>"number"==typeof s?(0,t.jsxs)("span",{className:"px-2 py-1 bg-slate-100 text-slate-800 rounded-md text-xs font-medium",children:[e,": ",s]},e):null)});return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"border rounded-lg p-4",children:[(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(d,{label:"Action:",children:i(e.action??"N/A",a)}),e.actionReason&&(0,t.jsx)(d,{label:"Action Reason:",children:e.actionReason}),e.blockedResponse&&(0,t.jsx)(d,{label:"Blocked Response:",children:(0,t.jsx)("span",{className:"italic",children:e.blockedResponse})})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(d,{label:"Coverage:",children:l}),(0,t.jsx)(d,{label:"Usage:",children:r})]})]}),s.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(c,{}),(0,t.jsx)("h4",{className:"font-medium mb-2",children:"Outputs"}),(0,t.jsx)("div",{className:"space-y-2",children:s.map((e,s)=>(0,t.jsx)("div",{className:"p-3 bg-gray-50 rounded-md",children:(0,t.jsx)("div",{className:"text-sm whitespace-pre-wrap",children:e.text??(0,t.jsx)("em",{children:"(non-text output)"})})},s))})]})]}),e.assessments?.length?(0,t.jsx)("div",{className:"space-y-3",children:e.assessments.map((e,s)=>{let a=(0,t.jsxs)("div",{className:"flex flex-wrap gap-1",children:[e.wordPolicy&&i("word","slate"),e.contentPolicy&&i("content","slate"),e.topicPolicy&&i("topic","slate"),e.sensitiveInformationPolicy&&i("sensitive-info","slate"),e.contextualGroundingPolicy&&i("contextual-grounding","slate"),e.automatedReasoningPolicy&&i("automated-reasoning","slate")]});return(0,t.jsxs)(o,{title:`Assessment #${s+1}`,defaultOpen:!0,right:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[e.invocationMetrics?.guardrailProcessingLatency!=null&&i(`${e.invocationMetrics.guardrailProcessingLatency} ms`,"amber"),a]}),children:[e.wordPolicy&&(0,t.jsxs)("div",{className:"mb-3",children:[(0,t.jsx)("h6",{className:"font-medium mb-2",children:"Word Policy"}),(e.wordPolicy.customWords?.length??0)>0&&(0,t.jsx)(o,{title:"Custom Words",defaultOpen:!0,children:(0,t.jsx)("div",{className:"space-y-2",children:e.wordPolicy.customWords.map((e,s)=>(0,t.jsxs)("div",{className:"flex justify-between items-center p-2 bg-gray-50 rounded",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[i(e.action??"N/A",e.detected?"red":"slate"),(0,t.jsx)("span",{className:"font-mono text-sm break-all",children:e.match})]}),n(e.detected)]},s))})}),(e.wordPolicy.managedWordLists?.length??0)>0&&(0,t.jsx)(o,{title:"Managed Word Lists",defaultOpen:!1,children:(0,t.jsx)("div",{className:"space-y-2",children:e.wordPolicy.managedWordLists.map((e,s)=>(0,t.jsxs)("div",{className:"flex justify-between items-center p-2 bg-gray-50 rounded",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[i(e.action??"N/A",e.detected?"red":"slate"),(0,t.jsx)("span",{className:"font-mono text-sm break-all",children:e.match}),e.type&&i(e.type,"slate")]}),n(e.detected)]},s))})})]}),e.contentPolicy?.filters?.length?(0,t.jsxs)("div",{className:"mb-3",children:[(0,t.jsx)("h6",{className:"font-medium mb-2",children:"Content Policy"}),(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"min-w-full text-sm",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"text-left text-gray-600",children:[(0,t.jsx)("th",{className:"py-1 pr-4",children:"Type"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Action"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Detected"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Strength"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Confidence"})]})}),(0,t.jsx)("tbody",{children:e.contentPolicy.filters.map((e,s)=>(0,t.jsxs)("tr",{className:"border-t",children:[(0,t.jsx)("td",{className:"py-1 pr-4",children:e.type??"—"}),(0,t.jsx)("td",{className:"py-1 pr-4",children:i(e.action??"—",e.detected?"red":"slate")}),(0,t.jsx)("td",{className:"py-1 pr-4",children:n(e.detected)}),(0,t.jsx)("td",{className:"py-1 pr-4",children:e.filterStrength??"—"}),(0,t.jsx)("td",{className:"py-1 pr-4",children:e.confidence??"—"})]},s))})]})})]}):null,e.contextualGroundingPolicy?.filters?.length?(0,t.jsxs)("div",{className:"mb-3",children:[(0,t.jsx)("h6",{className:"font-medium mb-2",children:"Contextual Grounding"}),(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"min-w-full text-sm",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"text-left text-gray-600",children:[(0,t.jsx)("th",{className:"py-1 pr-4",children:"Type"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Action"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Detected"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Score"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Threshold"})]})}),(0,t.jsx)("tbody",{children:e.contextualGroundingPolicy.filters.map((e,s)=>(0,t.jsxs)("tr",{className:"border-t",children:[(0,t.jsx)("td",{className:"py-1 pr-4",children:e.type??"—"}),(0,t.jsx)("td",{className:"py-1 pr-4",children:i(e.action??"—",e.detected?"red":"slate")}),(0,t.jsx)("td",{className:"py-1 pr-4",children:n(e.detected)}),(0,t.jsx)("td",{className:"py-1 pr-4",children:e.score??"—"}),(0,t.jsx)("td",{className:"py-1 pr-4",children:e.threshold??"—"})]},s))})]})})]}):null,e.sensitiveInformationPolicy&&(0,t.jsxs)("div",{className:"mb-3",children:[(0,t.jsx)("h6",{className:"font-medium mb-2",children:"Sensitive Information"}),(e.sensitiveInformationPolicy.piiEntities?.length??0)>0&&(0,t.jsx)(o,{title:"PII Entities",defaultOpen:!0,children:(0,t.jsx)("div",{className:"space-y-2",children:e.sensitiveInformationPolicy.piiEntities.map((e,s)=>(0,t.jsxs)("div",{className:"flex justify-between items-center p-2 bg-gray-50 rounded",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[i(e.action??"N/A",e.detected?"red":"slate"),e.type&&i(e.type,"slate"),(0,t.jsx)("span",{className:"font-mono text-xs break-all",children:e.match})]}),n(e.detected)]},s))})}),(e.sensitiveInformationPolicy.regexes?.length??0)>0&&(0,t.jsx)(o,{title:"Custom Regexes",defaultOpen:!1,children:(0,t.jsx)("div",{className:"space-y-2",children:e.sensitiveInformationPolicy.regexes.map((e,s)=>(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between p-2 bg-gray-50 rounded gap-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[i(e.action??"N/A",e.detected?"red":"slate"),(0,t.jsx)("span",{className:"font-medium",children:e.name??"regex"}),(0,t.jsx)("span",{className:"font-mono text-xs break-all",children:e.regex})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[n(e.detected),e.match&&(0,t.jsx)("span",{className:"font-mono text-xs break-all",children:e.match})]})]},s))})})]}),e.topicPolicy?.topics?.length?(0,t.jsxs)("div",{className:"mb-3",children:[(0,t.jsx)("h6",{className:"font-medium mb-2",children:"Topic Policy"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:e.topicPolicy.topics.map((e,s)=>(0,t.jsx)("div",{className:"px-3 py-1.5 bg-gray-50 rounded-md text-xs",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[i(e.action??"N/A",e.detected?"red":"slate"),(0,t.jsx)("span",{className:"font-medium",children:e.name??"topic"}),e.type&&i(e.type,"slate"),n(e.detected)]})},s))})]}):null,e.invocationMetrics&&(0,t.jsx)(o,{title:"Invocation Metrics",defaultOpen:!1,children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(d,{label:"Latency (ms)",children:e.invocationMetrics.guardrailProcessingLatency??"—"}),(0,t.jsx)(d,{label:"Coverage:",children:(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[e.invocationMetrics.guardrailCoverage?.textCharacters&&i(`text ${e.invocationMetrics.guardrailCoverage.textCharacters.guarded??0}/${e.invocationMetrics.guardrailCoverage.textCharacters.total??0}`,"blue"),e.invocationMetrics.guardrailCoverage?.images&&i(`images ${e.invocationMetrics.guardrailCoverage.images.guarded??0}/${e.invocationMetrics.guardrailCoverage.images.total??0}`,"blue")]})})]}),(0,t.jsx)("div",{className:"space-y-2",children:(0,t.jsx)(d,{label:"Usage:",children:(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:e.invocationMetrics.usage&&Object.entries(e.invocationMetrics.usage).map(([e,s])=>"number"==typeof s?(0,t.jsxs)("span",{className:"px-2 py-1 bg-slate-100 text-slate-800 rounded-md text-xs font-medium",children:[e,": ",s]},e):null)})})})]})}),e.automatedReasoningPolicy?.findings?.length?(0,t.jsx)(o,{title:"Automated Reasoning Findings",defaultOpen:!1,children:(0,t.jsx)("div",{className:"space-y-2",children:e.automatedReasoningPolicy.findings.map((e,s)=>(0,t.jsx)("pre",{className:"bg-gray-50 rounded p-2 text-xs overflow-x-auto",children:JSON.stringify(e,null,2)},s))})}):null]},s)})}):null,(0,t.jsx)(o,{title:"Raw Bedrock Guardrail Response",defaultOpen:!1,children:(0,t.jsx)("pre",{className:"bg-gray-50 rounded p-3 text-xs overflow-x-auto",children:JSON.stringify(e,null,2)})})]})},m=(e,s="slate")=>(0,t.jsx)("span",{className:`px-2 py-1 rounded-md text-xs font-medium inline-block ${{green:"bg-green-100 text-green-800",red:"bg-red-100 text-red-800",blue:"bg-blue-50 text-blue-700",slate:"bg-slate-100 text-slate-800",amber:"bg-amber-100 text-amber-800"}[s]}`,children:e}),u=({title:e,count:a,defaultOpen:l=!0,children:r})=>{let[i,n]=(0,s.useState)(l);return(0,t.jsxs)("div",{className:"border rounded-lg overflow-hidden",children:[(0,t.jsx)("div",{className:"flex items-center justify-between p-3 bg-gray-50 cursor-pointer hover:bg-gray-100",onClick:()=>n(e=>!e),children:(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)("svg",{className:`w-5 h-5 mr-2 transition-transform ${i?"transform rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,t.jsxs)("h5",{className:"font-medium",children:[e," ","number"==typeof a&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal",children:["(",a,")"]})]})]})}),i&&(0,t.jsx)("div",{className:"p-3 border-t bg-white",children:r})]})},p=({label:e,children:s,mono:a})=>(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:e}),(0,t.jsx)("span",{className:a?"font-mono text-sm break-all":"",children:s})]}),h=({response:e})=>{if(!e||"string"==typeof e)return"string"==typeof e&&e?(0,t.jsx)("div",{className:"bg-white rounded-lg border border-red-200 p-4",children:(0,t.jsxs)("div",{className:"text-red-800",children:[(0,t.jsx)("h5",{className:"font-medium mb-2",children:"Error"}),(0,t.jsx)("p",{className:"text-sm",children:e})]})}):null;let s=Array.isArray(e)?e:[];if(0===s.length)return(0,t.jsx)("div",{className:"bg-white rounded-lg border border-gray-200 p-4",children:(0,t.jsx)("div",{className:"text-gray-600 text-sm",children:"No detections found"})});let a=s.filter(e=>"pattern"===e.type),l=s.filter(e=>"blocked_word"===e.type),r=s.filter(e=>"category_keyword"===e.type),i=s.filter(e=>"BLOCK"===e.action).length,n=s.filter(e=>"MASK"===e.action).length,o=s.length;return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("div",{className:"bg-white rounded-lg border border-gray-200 p-4",children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(p,{label:"Total Detections:",children:(0,t.jsx)("span",{className:"font-semibold",children:o})}),(0,t.jsx)(p,{label:"Actions:",children:(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[i>0&&m(`${i} blocked`,"red"),n>0&&m(`${n} masked`,"blue"),0===i&&0===n&&m("passed","green")]})})]}),(0,t.jsx)("div",{className:"space-y-2",children:(0,t.jsx)(p,{label:"By Type:",children:(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[a.length>0&&m(`${a.length} patterns`,"slate"),l.length>0&&m(`${l.length} keywords`,"slate"),r.length>0&&m(`${r.length} categories`,"slate")]})})})]})}),a.length>0&&(0,t.jsx)(u,{title:"Patterns Matched",count:a.length,defaultOpen:!0,children:(0,t.jsx)("div",{className:"space-y-2",children:a.map((e,s)=>(0,t.jsx)("div",{className:"p-3 bg-gray-50 rounded-md",children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsx)("div",{className:"space-y-1",children:(0,t.jsx)(p,{label:"Pattern:",children:e.pattern_name||"unknown"})}),(0,t.jsx)("div",{className:"space-y-1",children:(0,t.jsx)(p,{label:"Action:",children:m(e.action,"BLOCK"===e.action?"red":"blue")})})]})},s))})}),l.length>0&&(0,t.jsx)(u,{title:"Blocked Words Detected",count:l.length,defaultOpen:!0,children:(0,t.jsx)("div",{className:"space-y-2",children:l.map((e,s)=>(0,t.jsx)("div",{className:"p-3 bg-gray-50 rounded-md",children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)(p,{label:"Keyword:",mono:!0,children:e.keyword||"unknown"}),e.description&&(0,t.jsx)(p,{label:"Description:",children:e.description})]}),(0,t.jsx)("div",{className:"space-y-1",children:(0,t.jsx)(p,{label:"Action:",children:m(e.action,"BLOCK"===e.action?"red":"blue")})})]})},s))})}),r.length>0&&(0,t.jsx)(u,{title:"Category Keywords Detected",count:r.length,defaultOpen:!0,children:(0,t.jsx)("div",{className:"space-y-2",children:r.map((e,s)=>(0,t.jsx)("div",{className:"p-3 bg-gray-50 rounded-md",children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)(p,{label:"Category:",children:e.category||"unknown"}),(0,t.jsx)(p,{label:"Keyword:",mono:!0,children:e.keyword||"unknown"}),e.severity&&(0,t.jsx)(p,{label:"Severity:",children:m(e.severity,"high"===e.severity?"red":"medium"===e.severity?"amber":"slate")})]}),(0,t.jsx)("div",{className:"space-y-1",children:(0,t.jsx)(p,{label:"Action:",children:m(e.action,"BLOCK"===e.action?"red":"blue")})})]})},s))})}),(0,t.jsx)(u,{title:"Raw Detection Data",defaultOpen:!1,children:(0,t.jsx)("pre",{className:"bg-gray-50 rounded p-3 text-xs overflow-x-auto",children:JSON.stringify(s,null,2)})})]})};var g=e.i(764205);let f=()=>(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[(0,t.jsx)("circle",{cx:"8",cy:"8",r:"7",stroke:"#16A34A",strokeWidth:"1.5",fill:"#F0FDF4"}),(0,t.jsx)("path",{d:"M5 8l2 2 4-4",stroke:"#16A34A",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),y=()=>(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[(0,t.jsx)("circle",{cx:"8",cy:"8",r:"7",stroke:"#DC2626",strokeWidth:"1.5",fill:"#FEF2F2"}),(0,t.jsx)("path",{d:"M6 6l4 4M10 6l-4 4",stroke:"#DC2626",strokeWidth:"1.5",strokeLinecap:"round"})]}),j=()=>(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",className:"animate-spin",children:[(0,t.jsx)("circle",{cx:"8",cy:"8",r:"6",stroke:"#D1D5DB",strokeWidth:"2"}),(0,t.jsx)("path",{d:"M8 2a6 6 0 0 1 6 6",stroke:"#6366F1",strokeWidth:"2",strokeLinecap:"round"})]}),b=({title:e,data:l,loading:r,error:i})=>{let[n,o]=(0,s.useState)(!1);return(0,t.jsxs)("div",{className:"border border-gray-200 rounded-lg bg-white",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 cursor-pointer hover:bg-gray-50 transition-colors",onClick:()=>o(!n),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[r?(0,t.jsx)(j,{}):i?(0,t.jsx)(a.Tooltip,{title:i,children:(0,t.jsx)("span",{className:"text-gray-400 text-sm",children:"--"})}):l?.compliant?(0,t.jsx)(f,{}):(0,t.jsx)(y,{}),(0,t.jsx)("span",{className:"font-medium text-sm text-gray-900",children:e})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[!r&&!i&&l&&(0,t.jsx)("span",{className:`px-2 py-0.5 rounded text-[11px] font-semibold uppercase ${l.compliant?"bg-green-100 text-green-700 border border-green-200":"bg-red-100 text-red-700 border border-red-200"}`,children:l.compliant?"COMPLIANT":"NON-COMPLIANT"}),i&&(0,t.jsx)("span",{className:"px-2 py-0.5 rounded text-[11px] font-medium bg-gray-100 text-gray-500 border border-gray-200",children:"UNAVAILABLE"}),(0,t.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",className:`transition-transform ${n?"rotate-180":""}`,children:(0,t.jsx)("path",{d:"M6 8l4 4 4-4",stroke:"#6B7280",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]})]}),n&&(0,t.jsxs)("div",{className:"border-t border-gray-100 px-4 py-3",children:[r&&(0,t.jsx)("p",{className:"text-sm text-gray-500",children:"Checking compliance..."}),i&&(0,t.jsx)("p",{className:"text-sm text-red-600",children:i}),l&&(0,t.jsx)("div",{className:"space-y-2",children:l.checks.map((e,s)=>(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-0.5",children:e.passed?(0,t.jsx)(f,{}):(0,t.jsx)(y,{})}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900",children:e.check_name}),(0,t.jsx)("span",{className:"text-[10px] font-mono text-gray-400",children:e.article})]}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-0.5",children:e.detail})]})]},s))})]})]})},v=({accessToken:e,logEntry:a})=>{let[l,r]=(0,s.useState)(null),[i,n]=(0,s.useState)(null),[o,d]=(0,s.useState)(!1),[c,x]=(0,s.useState)(!1),[m,u]=(0,s.useState)(null),[p,h]=(0,s.useState)(null);return(0,s.useEffect)(()=>{if(!e||!a.request_id)return;let t={request_id:a.request_id,user_id:a.user,model:a.model,timestamp:a.startTime,guardrail_information:a.metadata?.guardrail_information};d(!0),u(null),(0,g.checkEuAiActCompliance)(e,t).then(r).catch(e=>u(e.message||"Failed to check EU AI Act compliance")).finally(()=>d(!1)),x(!0),h(null),(0,g.checkGdprCompliance)(e,t).then(n).catch(e=>h(e.message||"Failed to check GDPR compliance")).finally(()=>x(!1))},[e,a]),(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider mb-4",children:"Regulatory Compliance"}),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(b,{title:"EU AI Act",data:l,loading:o,error:m}),(0,t.jsx)(b,{title:"GDPR",data:i,loading:c,error:p})]})]})},_=new Set(["presidio","bedrock","litellm_content_filter"]),N=(e,t)=>{if(null==e)return!1;if("string"==typeof e)return e===t;if(Array.isArray(e))return e.includes(t);if("object"==typeof e&&"default"in e){let s=e.default;if("string"==typeof s)return s===t;if(Array.isArray(s))return s.some(e=>"string"==typeof e&&e===t)}return!1},w=e=>Object.values(e.masked_entity_count||{}).reduce((e,t)=>e+("number"==typeof t?t:0),0),S=e=>"success"===(e.guardrail_status??"").toLowerCase(),k=e=>e.policy_template||e.guardrail_name,T=()=>(0,t.jsxs)("svg",{width:"40",height:"40",viewBox:"0 0 40 40",fill:"none",children:[(0,t.jsx)("circle",{cx:"20",cy:"20",r:"20",fill:"#EEF2FF"}),(0,t.jsx)("path",{d:"M20 10l8 4v6c0 5.25-3.4 10.15-8 11.5C15.4 30.15 12 25.25 12 20v-6l8-4z",stroke:"#6366F1",strokeWidth:"1.5",fill:"none"}),(0,t.jsx)("path",{d:"M16 20l3 3 5-6",stroke:"#6366F1",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})]}),C=({className:e})=>(0,t.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 22 22",fill:"none",className:e,children:[(0,t.jsx)("circle",{cx:"11",cy:"11",r:"10",stroke:"#16A34A",strokeWidth:"1.5",fill:"#F0FDF4"}),(0,t.jsx)("path",{d:"M7 11l3 3 5-6",stroke:"#16A34A",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),L=({className:e})=>(0,t.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 22 22",fill:"none",className:e,children:[(0,t.jsx)("circle",{cx:"11",cy:"11",r:"10",stroke:"#DC2626",strokeWidth:"1.5",fill:"#FEF2F2"}),(0,t.jsx)("path",{d:"M8 8l6 6M14 8l-6 6",stroke:"#DC2626",strokeWidth:"1.5",strokeLinecap:"round"})]}),E=()=>(0,t.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 22 22",fill:"none",children:[(0,t.jsx)("circle",{cx:"11",cy:"11",r:"10",stroke:"#3B82F6",strokeWidth:"1.5",fill:"#EFF6FF"}),(0,t.jsx)("path",{d:"M9 7.5l6 3.5-6 3.5V7.5z",fill:"#3B82F6"})]}),M=()=>(0,t.jsx)("svg",{width:"22",height:"22",viewBox:"0 0 22 22",fill:"none",children:(0,t.jsx)("circle",{cx:"11",cy:"11",r:"5",fill:"#9CA3AF"})}),A=({expanded:e})=>(0,t.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",className:`transition-transform ${e?"rotate-180":""}`,children:(0,t.jsx)("path",{d:"M6 8l4 4 4-4",stroke:"#6B7280",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),D=()=>(0,t.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:(0,t.jsx)("path",{d:"M8 2v8m0 0l-3-3m3 3l3-3M3 12h10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),R=({matchDetails:e})=>e&&0!==e.length?(0,t.jsxs)("div",{className:"mt-3",children:[(0,t.jsxs)("h5",{className:"text-sm font-medium mb-2 text-gray-700",children:["Match Details (",e.length,")"]}),(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"w-full text-sm",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"border-b text-left text-gray-500",children:[(0,t.jsx)("th",{className:"pb-2 pr-4 font-medium",children:"Type"}),(0,t.jsx)("th",{className:"pb-2 pr-4 font-medium",children:"Method"}),(0,t.jsx)("th",{className:"pb-2 pr-4 font-medium",children:"Action"}),(0,t.jsx)("th",{className:"pb-2 font-medium",children:"Detail"})]})}),(0,t.jsx)("tbody",{children:e.map((e,s)=>(0,t.jsxs)("tr",{className:"border-b border-gray-100",children:[(0,t.jsx)("td",{className:"py-2 pr-4",children:e.type}),(0,t.jsx)("td",{className:"py-2 pr-4",children:(0,t.jsx)("span",{className:"px-2 py-0.5 bg-slate-100 text-slate-700 rounded text-xs",children:e.detection_method??"-"})}),(0,t.jsx)("td",{className:"py-2 pr-4",children:(0,t.jsx)("span",{className:`px-2 py-0.5 rounded text-xs font-medium ${"BLOCK"===e.action_taken?"bg-red-100 text-red-800":"bg-blue-50 text-blue-700"}`,children:e.action_taken??"-"})}),(0,t.jsxs)("td",{className:"py-2 font-mono text-xs text-gray-600 break-all",children:[e.category?`[${e.category}] `:"",e.snippet??"-"]})]},s))})]})})]}):null,O=({response:e})=>{let[a,l]=(0,s.useState)(!1);return(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsxs)("div",{className:"border rounded-lg overflow-hidden",children:[(0,t.jsx)("div",{className:"flex items-center justify-between p-3 bg-gray-50 cursor-pointer hover:bg-gray-100",onClick:()=>l(!a),children:(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(A,{expanded:a}),(0,t.jsx)("h5",{className:"font-medium text-sm ml-1",children:"Raw Guardrail Response"})]})}),a&&(0,t.jsx)("div",{className:"p-3 border-t bg-white",children:(0,t.jsx)("pre",{className:"bg-gray-50 rounded p-3 text-xs overflow-x-auto",children:JSON.stringify(e,null,2)})})]})})},I=({entries:e})=>{let a=(0,s.useMemo)(()=>[...e].sort((e,t)=>(e.start_time??0)-(t.start_time??0)),[e]),l=(0,s.useMemo)(()=>{if(0===a.length)return[];let e=a[0].start_time,t=[];t.push({type:"request",label:"Request received",offsetMs:0});let s=a.filter(e=>N(e.guardrail_mode,"pre_call")),l=a.filter(e=>N(e.guardrail_mode,"post_call")||N(e.guardrail_mode,"logging_only")),r=a.filter(e=>N(e.guardrail_mode,"during_call"));for(let a of s){let s=Math.round((a.end_time-e)*1e3);t.push({type:"guardrail",label:`Pre-call guardrail: ${k(a)}`,offsetMs:s,status:S(a)?"PASSED":"FAILED",isSuccess:S(a)})}let i=s.length>0?Math.max(...s.map(e=>e.end_time)):e,n=Math.round((((l.length>0?Math.min(...l.map(e=>e.start_time)):void 0)??i+1)-e)*1e3);for(let s of(t.push({type:"llm",label:"LLM call",offsetMs:n}),r)){let a=Math.round((s.end_time-e)*1e3);t.push({type:"guardrail",label:`During-call guardrail: ${k(s)}`,offsetMs:a,status:S(s)?"PASSED":"FAILED",isSuccess:S(s)})}for(let s of l){let a=Math.round((s.end_time-e)*1e3);t.push({type:"guardrail",label:`Post-call guardrail: ${k(s)}`,offsetMs:a,status:S(s)?"PASSED":"FAILED",isSuccess:S(s)})}let o=Math.round((Math.max(...a.map(e=>e.end_time))-e)*1e3)+1;return t.push({type:"response",label:"Response returned",offsetMs:o}),t},[a]);return(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider mb-4",children:"Request Lifecycle"}),(0,t.jsx)("div",{className:"relative",children:l.map((e,s)=>(0,t.jsxs)("div",{className:"flex items-start gap-3 relative",children:[(0,t.jsxs)("div",{className:"flex flex-col items-center",children:[(0,t.jsx)("div",{className:"flex-shrink-0",children:"request"===e.type||"response"===e.type?(0,t.jsx)(M,{}):"llm"===e.type?(0,t.jsx)(E,{}):e.isSuccess?(0,t.jsx)(C,{}):(0,t.jsx)(L,{})}),s{let l,i,[n,o]=(0,s.useState)(!1),d=S(e),c=w(e),m=k(e),u=(l=Math.round(1e3*e.duration),`${l}ms`),p=null==(i=(e=>{if(null==e)return null;if("string"==typeof e)return e;if(Array.isArray(e)){let t=e[0];return"string"==typeof t?t:null}if("object"==typeof e&&"default"in e){let t=e.default;if("string"==typeof t)return t;if(Array.isArray(t)){let e=t[0];return"string"==typeof e?e:null}}return null})(e.guardrail_mode))||""===i?"—":i.replace(/_/g,"-").toUpperCase(),g=(e=>{if(!S(e))return null;if(null!=e.risk_score)return e.risk_score;let t=w(e),s=e.patterns_checked??0,a=e.confidence_score??0;if(0===s&&0===a)return 0;let l=7*(s>0?t/s:0)+3*a;return t>0&&l<2&&(l=2),Math.min(10,Math.round(10*l)/10)})(e),f=e.guardrail_provider??"presidio",y=e.guardrail_response,j=Array.isArray(y)?y:[],b="bedrock"!==f||null===y||"object"!=typeof y||Array.isArray(y)?void 0:y,v=null!=e.patterns_checked?`${c}/${e.patterns_checked} matched`:c>0?`${c} matched`:null;return(0,t.jsxs)("div",{className:"border border-gray-200 rounded-lg bg-white",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3 cursor-pointer hover:bg-gray-50 transition-colors",onClick:()=>o(!n),children:[(0,t.jsx)("div",{className:"flex-shrink-0",children:d?(0,t.jsx)(C,{}):(0,t.jsx)(L,{})}),(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-wrap flex-1 min-w-0",children:[(0,t.jsx)("span",{className:"font-semibold text-gray-900 text-sm truncate",children:m}),(0,t.jsx)("span",{className:"px-2 py-0.5 border border-blue-200 bg-blue-50 text-blue-700 rounded text-[11px] font-semibold uppercase flex-shrink-0",children:p}),(0,t.jsx)("span",{className:`px-2 py-0.5 rounded text-[11px] font-semibold uppercase flex-shrink-0 ${d?"bg-green-100 text-green-700 border border-green-200":"bg-red-100 text-red-700 border border-red-200"}`,children:d?"PASSED":"FAILED"}),v&&(0,t.jsx)("span",{className:`px-2 py-0.5 rounded text-[11px] font-medium flex-shrink-0 ${0===c?"bg-green-50 text-green-700 border border-green-200":"bg-amber-50 text-amber-700 border border-amber-200"}`,children:v}),null!=e.confidence_score&&(0,t.jsxs)("span",{className:"px-2 py-0.5 bg-gray-100 text-gray-600 border border-gray-200 rounded text-[11px] font-medium flex-shrink-0",children:[(100*e.confidence_score).toFixed(0),"% conf"]}),null!=g&&d&&(0,t.jsx)(a.Tooltip,{title:`Risk score: ${g}/10`,children:(0,t.jsxs)("span",{className:`px-2 py-0.5 border rounded text-[11px] font-semibold flex-shrink-0 ${g<=3?"text-green-600 bg-green-50 border-green-200":g<=6?"text-amber-600 bg-amber-50 border-amber-200":"text-red-600 bg-red-50 border-red-200"}`,children:["Risk ",g,"/10"]})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-3 flex-shrink-0",children:[(0,t.jsx)("span",{className:"text-sm text-gray-500 font-mono",children:u}),e.detection_method&&(0,t.jsx)("span",{className:"px-2 py-0.5 bg-gray-100 text-gray-600 border border-gray-200 rounded text-[11px] font-medium",children:e.detection_method.split(",")[0].trim()}),(0,t.jsx)(A,{expanded:n})]})]}),n&&(0,t.jsxs)("div",{className:"border-t border-gray-100 px-4 py-3",children:[e.classification&&(0,t.jsxs)("div",{className:"mb-3 bg-gray-50 rounded-lg p-3 space-y-1",children:[(0,t.jsx)("h5",{className:"text-sm font-medium text-gray-700 mb-2",children:"Classification"}),e.classification.category&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"font-medium w-1/3 text-gray-500",children:"Category:"}),(0,t.jsx)("span",{children:e.classification.category})]}),e.classification.article_reference&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"font-medium w-1/3 text-gray-500",children:"Reference:"}),(0,t.jsx)("span",{className:"font-mono",children:e.classification.article_reference})]}),null!=e.classification.confidence&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"font-medium w-1/3 text-gray-500",children:"Confidence:"}),(0,t.jsxs)("span",{children:[(100*e.classification.confidence).toFixed(0),"%"]})]}),e.classification.reason&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"font-medium w-1/3 text-gray-500",children:"Reason:"}),(0,t.jsx)("span",{children:e.classification.reason})]})]}),e.match_details&&e.match_details.length>0&&(0,t.jsx)(R,{matchDetails:e.match_details}),c>0&&(0,t.jsxs)("div",{className:"mt-3",children:[(0,t.jsx)("h5",{className:"text-sm font-medium text-gray-700 mb-2",children:"Masked Entities"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:Object.entries(e.masked_entity_count||{}).map(([e,s])=>(0,t.jsxs)("span",{className:"px-2 py-1 bg-blue-50 text-blue-700 rounded text-xs font-medium",children:[e,": ",s]},e))})]}),"presidio"===f&&j.length>0&&(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)(r,{entities:j})}),"bedrock"===f&&b&&(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)(x,{response:b})}),"litellm_content_filter"===f&&y&&(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)(h,{response:y})}),f&&!_.has(f)&&y&&(0,t.jsx)(O,{response:y})]})]})};e.s(["default",0,({data:e,accessToken:a,logEntry:l})=>{let r=(0,s.useMemo)(()=>Array.isArray(e)?e.filter(e=>!!e):e?[e]:[],[e]),i=r.filter(S).length,n=i===r.length,o=(0,s.useMemo)(()=>Math.round(1e3*r.reduce((e,t)=>e+(t.duration??0),0)),[r]);return((0,s.useMemo)(()=>Array.from(new Set(r.map(e=>e.policy_template).filter(Boolean))),[r]),0===r.length)?null:(0,t.jsxs)("div",{className:"bg-white rounded-xl border border-gray-200 shadow-sm w-full max-w-full overflow-hidden mb-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-6 py-4 border-b border-gray-100",children:[(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)(T,{}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-gray-900",children:"Guardrails & Policy Compliance"}),(0,t.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,t.jsxs)("span",{className:"text-sm text-gray-500",children:[r.length," guardrail",1!==r.length?"s":""," evaluated"]}),(0,t.jsx)("span",{className:"text-gray-300",children:"|"}),(0,t.jsxs)("span",{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-semibold ${n?"bg-green-50 text-green-700 border border-green-200":"bg-red-50 text-red-700 border border-red-200"}`,children:[n?(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M3 6l2.5 2.5L9 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}):null,i," Passed"]})]})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-6",children:[(0,t.jsx)("div",{className:"text-right",children:(0,t.jsxs)("div",{className:"text-sm font-medium text-gray-900",children:["Total: ",o,"ms overhead"]})}),(0,t.jsxs)("button",{onClick:()=>{let e=new Blob([JSON.stringify(r,null,2)],{type:"application/json"}),t=URL.createObjectURL(e),s=document.createElement("a");s.href=t,s.download=`guardrail-compliance-log-${new Date().toISOString().slice(0,10)}.json`,s.click(),URL.revokeObjectURL(t)},className:"inline-flex items-center gap-2 px-4 py-2 border border-gray-300 rounded-lg text-sm font-medium text-gray-700 bg-white hover:bg-gray-50 transition-colors",children:[(0,t.jsx)(D,{}),"Export Compliance Log"]})]})]}),a&&l&&(0,t.jsx)("div",{className:"px-6 py-4 border-b border-gray-100",children:(0,t.jsx)(v,{accessToken:a,logEntry:l})}),(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b border-gray-100 px-6 py-5",children:(0,t.jsx)(I,{entries:r})}),(0,t.jsxs)("div",{className:"px-6 py-5",children:[(0,t.jsx)("h4",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider mb-4",children:"Evaluation Details"}),(0,t.jsx)("div",{className:"space-y-3",children:r.map((e,s)=>(0,t.jsx)(z,{entry:e},`${e.guardrail_name??"guardrail"}-${s}`))})]})]})]})}],517442)},869939,e=>{"use strict";var t=e.i(843476),s=e.i(175712),a=e.i(262218),l=e.i(291542),r=e.i(898586),i=e.i(770914),n=e.i(592968),o=e.i(245704),d=e.i(518617),c=e.i(19732);let{Text:x}=r.Typography;function m({entry:e}){let r=e.passed,c=r?"#52c41a":"#ff4d4f",u=(e.verdicts||[]).filter(e=>"overall"!==(e.criterion_name||"").toLowerCase()),p=[{title:"Criterion",dataIndex:"criterion_name",key:"criterion_name",width:160,render:e=>(0,t.jsx)(x,{strong:!0,style:{whiteSpace:"nowrap"},children:e})},{title:"Weight",dataIndex:"weight",key:"weight",width:65,render:e=>null!=e?(0,t.jsxs)(x,{type:"secondary",style:{fontSize:12},children:[e,"%"]}):null},{title:"Score",dataIndex:"score",key:"score",width:65,render:e=>(0,t.jsx)(x,{style:{color:e>=70?"#52c41a":e>=50?"#faad14":"#ff4d4f",fontWeight:600},children:e})},{title:(0,t.jsx)(n.Tooltip,{title:"Score × Weight — how much each criterion contributes to the final score",children:(0,t.jsx)("span",{style:{borderBottom:"1px dashed #aaa",cursor:"help"},children:"Weighted"})}),key:"weighted",width:75,render:(e,s)=>{if(null==s.weight)return null;let a=s.score*s.weight/100;return(0,t.jsx)(x,{type:"secondary",style:{fontSize:12},children:a%1==0?a:a.toFixed(1)})}},{title:"Comment",dataIndex:"reasoning",key:"reasoning",ellipsis:{showTitle:!1},render:e=>(0,t.jsx)(n.Tooltip,{title:e,children:(0,t.jsx)("span",{style:{fontSize:12},children:e})})}];return(0,t.jsxs)(s.Card,{size:"small",className:"mb-3",style:{borderLeft:`3px solid ${c}`},title:(0,t.jsxs)(i.Space,{children:[r?(0,t.jsx)(o.CheckCircleOutlined,{style:{color:"#52c41a"}}):(0,t.jsx)(d.CloseCircleOutlined,{style:{color:"#ff4d4f"}}),(0,t.jsx)(x,{strong:!0,children:e.eval_name}),(0,t.jsx)(a.Tag,{color:r?"success":"error",children:r?"PASSED":"FAILED"}),(0,t.jsx)(n.Tooltip,{title:"Weighted average of all criterion scores. Each criterion has a weight (%) set when the eval was created — higher-weight criteria count more toward the final score.",children:(0,t.jsxs)(x,{type:"secondary",style:{fontSize:12,cursor:"help",borderBottom:"1px dashed #aaa"},children:[e.overall_score?.toFixed(0)," / 100",null!=e.threshold&&` (threshold: ${e.threshold})`]})})]}),extra:(0,t.jsxs)(i.Space,{size:"small",children:[e.judge_model&&(0,t.jsxs)(x,{type:"secondary",style:{fontSize:12},children:["Judge: ",e.judge_model]}),null!=e.iteration&&(0,t.jsxs)(x,{type:"secondary",style:{fontSize:12},children:["Iter: ",e.iteration+1]})]}),children:[e.eval_error&&(0,t.jsxs)(x,{type:"warning",style:{display:"block",marginBottom:8,fontSize:12},children:["Judge error: ",e.eval_error]}),u.length>0?(0,t.jsx)(l.Table,{dataSource:u,columns:p,pagination:!1,size:"small",rowKey:"criterion_name",scroll:{x:!0},summary:()=>{if(!u.some(e=>null!=e.weight))return null;let e=u.reduce((e,t)=>e+(null!=t.weight?t.score*t.weight/100:0),0);return(0,t.jsxs)(l.Table.Summary.Row,{children:[(0,t.jsx)(l.Table.Summary.Cell,{index:0,children:(0,t.jsx)(x,{strong:!0,style:{fontSize:12},children:"Total"})}),(0,t.jsx)(l.Table.Summary.Cell,{index:1}),(0,t.jsx)(l.Table.Summary.Cell,{index:2}),(0,t.jsx)(l.Table.Summary.Cell,{index:3,children:(0,t.jsx)(x,{strong:!0,style:{fontSize:12,color:c},children:e%1==0?e:e.toFixed(1)})}),(0,t.jsx)(l.Table.Summary.Cell,{index:4})]})}}):(0,t.jsxs)(x,{type:"secondary",style:{fontSize:12},children:["Score: ",e.overall_score?.toFixed(1)," — no per-criterion breakdown available."]})]})}e.s(["default",0,function({data:e}){let s=Array.isArray(e)?e:[e];return s.length?(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:12},children:[(0,t.jsx)(c.ExperimentOutlined,{style:{fontSize:16,color:"#6366f1"}}),(0,t.jsx)(x,{strong:!0,style:{fontSize:15},children:"LLM Judge Results"})]}),s.map((e,s)=>(0,t.jsx)(m,{entry:e},e.eval_id||s))]}):null}])},70635,e=>{"use strict";var t=e.i(843476),s=e.i(362024),a=e.i(500330);let l=e=>null==e?"-":`$${(0,a.formatNumberWithCommas)(e,8)}`,r=e=>null==e?"-":`${(100*e).toFixed(2)}%`;e.s(["CostBreakdownViewer",0,({costBreakdown:e,totalSpend:a,promptTokens:i,completionTokens:n,cacheHit:o,rawInputTokens:d,cacheReadTokens:c,cacheCreationTokens:x})=>{let m=o?.toLowerCase()==="true",u=void 0!==i||void 0!==n,p=e?.input_cost!==void 0||e?.output_cost!==void 0,h=e?.additional_costs&&Object.entries(e.additional_costs).some(([,e])=>null!=e&&0!==e);if(!(p||u||h||e&&(void 0!==e.discount_percent&&0!==e.discount_percent||void 0!==e.discount_amount&&0!==e.discount_amount||void 0!==e.margin_percent&&0!==e.margin_percent||void 0!==e.margin_fixed_amount&&0!==e.margin_fixed_amount||void 0!==e.margin_total_amount&&0!==e.margin_total_amount)))return null;let g=e&&(void 0!==e.discount_percent&&0!==e.discount_percent||void 0!==e.discount_amount&&0!==e.discount_amount),f=e&&(void 0!==e.margin_percent&&0!==e.margin_percent||void 0!==e.margin_fixed_amount&&0!==e.margin_fixed_amount||void 0!==e.margin_total_amount&&0!==e.margin_total_amount),y=m?0:e?.input_cost,j=m?0:e?.output_cost,b=m?0:e?.original_cost,v=m?0:e?.total_cost??a;return(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(s.Collapse,{expandIconPosition:"start",items:[{key:"1",label:(0,t.jsxs)("div",{className:"flex items-center justify-between w-full",children:[(0,t.jsx)("h3",{className:"text-lg font-medium text-gray-900",children:"Cost Breakdown"}),(0,t.jsxs)("div",{className:"flex items-center space-x-2 mr-4",children:[(0,t.jsx)("span",{className:"text-sm text-gray-500",children:"Total:"}),(0,t.jsxs)("span",{className:"text-sm font-semibold text-gray-900",children:[l(a),m&&" (Cached)"]})]})]}),children:(0,t.jsxs)("div",{className:"p-6 space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2 max-w-2xl",children:[(()=>{if(e?.cache_read_cost!==void 0||e?.cache_creation_cost!==void 0){let s=m?0:(y??0)-(e?.cache_read_cost??0)-(e?.cache_creation_cost??0);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"text-gray-600 font-medium w-1/3",children:"Input Cost:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:[l(s),null!=d&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal ml-1",children:["(",d.toLocaleString()," tokens)"]})]})]}),(e?.cache_read_cost??0)>0&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"text-gray-600 font-medium w-1/3",children:"Cache Read Cost:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:[l(m?0:e?.cache_read_cost),(c??0)>0&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal ml-1",children:["(",(c??0).toLocaleString()," tokens)"]})]})]}),(e?.cache_creation_cost??0)>0&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"text-gray-600 font-medium w-1/3",children:"Cache Write Cost:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:[l(m?0:e?.cache_creation_cost),(x??0)>0&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal ml-1",children:["(",(x??0).toLocaleString()," tokens)"]})]})]})]})}return(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"text-gray-600 font-medium w-1/3",children:"Input Cost:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:[l(y),void 0!==i&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal ml-1",children:["(",i.toLocaleString()," prompt tokens)"]})]})]})})(),(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"text-gray-600 font-medium w-1/3",children:"Output Cost:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:[l(j),void 0!==n&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal ml-1",children:["(",n.toLocaleString()," completion tokens)"]})]})]}),e?.tool_usage_cost!==void 0&&e.tool_usage_cost>0&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"text-gray-600 font-medium w-1/3",children:"Tool Usage Cost:"}),(0,t.jsx)("span",{className:"text-gray-900",children:l(e.tool_usage_cost)})]}),e?.additional_costs&&Object.entries(e.additional_costs).filter(([,e])=>null!=e&&0!==e).map(([e,s])=>(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsxs)("span",{className:"text-gray-600 font-medium w-1/3",children:[e,":"]}),(0,t.jsx)("span",{className:"text-gray-900",children:l(s)})]},e))]}),!m&&(0,t.jsx)("div",{className:"pt-2 border-t border-gray-100 max-w-2xl",children:(0,t.jsxs)("div",{className:"flex text-sm font-semibold",children:[(0,t.jsx)("span",{className:"text-gray-900 w-1/3",children:"Original LLM Cost:"}),(0,t.jsx)("span",{className:"text-gray-900",children:l(b)})]})}),(g||f)&&(0,t.jsxs)("div",{className:"pt-2 space-y-2 max-w-2xl",children:[g&&(0,t.jsxs)("div",{className:"space-y-2",children:[void 0!==e.discount_percent&&0!==e.discount_percent&&(0,t.jsxs)("div",{className:"flex text-sm text-gray-600",children:[(0,t.jsxs)("span",{className:"font-medium w-1/3",children:["Discount (",r(e.discount_percent),"):"]}),(0,t.jsxs)("span",{className:"text-gray-900",children:["-",l(e.discount_amount)]})]}),void 0!==e.discount_amount&&void 0===e.discount_percent&&(0,t.jsxs)("div",{className:"flex text-sm text-gray-600",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Discount Amount:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:["-",l(e.discount_amount)]})]})]}),f&&(0,t.jsxs)("div",{className:"space-y-2",children:[void 0!==e.margin_percent&&0!==e.margin_percent&&(0,t.jsxs)("div",{className:"flex text-sm text-gray-600",children:[(0,t.jsxs)("span",{className:"font-medium w-1/3",children:["Margin (",r(e.margin_percent),"):"]}),(0,t.jsxs)("span",{className:"text-gray-900",children:["+",l((e.margin_total_amount||0)-(e.margin_fixed_amount||0))]})]}),void 0!==e.margin_fixed_amount&&0!==e.margin_fixed_amount&&(0,t.jsxs)("div",{className:"flex text-sm text-gray-600",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Margin:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:["+",l(e.margin_fixed_amount)]})]})]})]}),(0,t.jsx)("div",{className:"mt-4 pt-4 border-t border-gray-200 max-w-2xl",children:(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)("span",{className:"font-bold text-sm text-gray-900 w-1/3",children:"Final Calculated Cost:"}),(0,t.jsxs)("span",{className:"text-sm font-bold text-gray-900",children:[l(v),m&&" (Cached)"]})]})})]})}]})})}])},70969,e=>{"use strict";var t=e.i(843476);e.s(["ConfigInfoMessage",0,({show:e})=>e?(0,t.jsxs)("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-4 flex items-start",children:[(0,t.jsx)("div",{className:"text-blue-500 mr-3 flex-shrink-0 mt-0.5",children:(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,t.jsx)("line",{x1:"12",y1:"16",x2:"12",y2:"12"}),(0,t.jsx)("line",{x1:"12",y1:"8",x2:"12.01",y2:"8"})]})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"text-sm font-medium text-blue-800",children:"Request/Response Data Not Available"}),(0,t.jsxs)("p",{className:"text-sm text-blue-700 mt-1",children:["To view request and response details, enable prompt storage in your LiteLLM configuration by adding the following to your ",(0,t.jsx)("code",{className:"bg-blue-100 px-1 py-0.5 rounded",children:"proxy_config.yaml"})," file, or toggle the setting in ",(0,t.jsx)("strong",{children:"Admin Settings → Logging Settings"}),"."]}),(0,t.jsx)("pre",{className:"mt-2 bg-white p-3 rounded border border-blue-200 text-xs font-mono overflow-auto",children:`general_settings: - store_model_in_db: true - store_prompts_in_spend_logs: true`}),(0,t.jsx)("p",{className:"text-xs text-blue-700 mt-2",children:"Note: This will only affect new requests after the configuration change."})]})]}):null])},3565,331052,867612,502626,e=>{"use strict";var t=e.i(843476),s=e.i(271645),a=e.i(464571),l=e.i(608856),r=e.i(492030),i=e.i(166406),n=e.i(894660),o=e.i(240647),d=e.i(531245),c=e.i(283086),x=e.i(195116),m=e.i(97859),u=e.i(257486),p=e.i(337767),h=e.i(237062),g=e.i(898586),f=e.i(869216),y=e.i(175712),j=e.i(262218),b=e.i(653496),v=e.i(560445),_=e.i(362024),N=e.i(91739),w=e.i(770914),S=e.i(482725),k=e.i(166540),T=e.i(500330),C=e.i(517442),L=e.i(869939),E=e.i(70635),M=e.i(70969),A=e.i(916925);function D({data:e}){let[a,l]=(0,s.useState)({});if(!e||0===e.length)return null;let r=e=>new Date(1e3*e).toLocaleString();return(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(_.Collapse,{defaultActiveKey:["1"],expandIconPosition:"start",items:[{key:"1",label:(0,t.jsx)("h3",{className:"text-lg font-medium text-gray-900",children:"Vector Store Requests"}),children:(0,t.jsx)("div",{className:"p-4",children:e.map((e,s)=>{var i,n;return(0,t.jsxs)("div",{className:"mb-6 last:mb-0",children:[(0,t.jsx)("div",{className:"bg-white rounded-lg border p-4 mb-4",children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Query:"}),(0,t.jsx)("span",{className:"font-mono",children:e.query})]}),(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Vector Store ID:"}),(0,t.jsx)("span",{className:"font-mono",children:e.vector_store_id})]}),(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Provider:"}),(0,t.jsx)("span",{className:"flex items-center",children:(()=>{let{logo:s,displayName:a}=(0,A.getProviderLogoAndName)(e.custom_llm_provider);return(0,t.jsxs)(t.Fragment,{children:[s&&(0,t.jsx)("img",{src:s,alt:`${a} logo`,className:"h-5 w-5 mr-2"}),a]})})()})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Start Time:"}),(0,t.jsx)("span",{children:r(e.start_time)})]}),(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"End Time:"}),(0,t.jsx)("span",{children:r(e.end_time)})]}),(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Duration:"}),(0,t.jsx)("span",{children:(i=e.start_time,n=e.end_time,`${((n-i)*1e3).toFixed(2)}ms`)})]})]})]})}),(0,t.jsx)("h4",{className:"font-medium mb-2",children:"Search Results"}),(0,t.jsx)("div",{className:"space-y-2",children:e.vector_store_search_response.data.map((e,r)=>{let i=a[`${s}-${r}`]||!1;return(0,t.jsxs)("div",{className:"border rounded-lg overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center p-3 bg-gray-50 cursor-pointer",onClick:()=>{let e;return e=`${s}-${r}`,void l(t=>({...t,[e]:!t[e]}))},children:[(0,t.jsx)("svg",{className:`w-5 h-5 mr-2 transition-transform ${i?"transform rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsxs)("span",{className:"font-medium mr-2",children:["Result ",r+1]}),(0,t.jsxs)("span",{className:"text-gray-500 text-sm",children:["Score: ",(0,t.jsx)("span",{className:"font-mono",children:e.score.toFixed(4)})]})]})]}),i&&(0,t.jsx)("div",{className:"p-3 border-t bg-white",children:e.content.map((e,s)=>(0,t.jsxs)("div",{className:"mb-2 last:mb-0",children:[(0,t.jsx)("div",{className:"text-xs text-gray-500 mb-1",children:e.type}),(0,t.jsx)("pre",{className:"text-xs font-mono whitespace-pre-wrap break-all bg-gray-50 p-2 rounded",children:e.text})]},s))})]},r)})})]},s)})})}]})})}e.s(["VectorStoreViewer",0,D],331052);var R=e.i(592968),O=e.i(207066);let{Text:I}=g.Typography;function z({value:e,maxWidth:s=O.DEFAULT_MAX_WIDTH}){return e?(0,t.jsx)(R.Tooltip,{title:e,children:(0,t.jsx)(I,{copyable:{text:e,tooltips:["Copy","Copied!"]},style:{maxWidth:s,display:"inline-block",verticalAlign:"bottom",fontFamily:O.FONT_FAMILY_MONO,fontSize:O.FONT_SIZE_SMALL},ellipsis:!0,children:e})}):(0,t.jsx)(I,{type:"secondary",children:"-"})}let{Text:P}=g.Typography;function B({prompt:e=0,completion:s=0,total:a=0}){return(0,t.jsxs)(P,{children:[a.toLocaleString()," (",e.toLocaleString()," prompt tokens + ",s.toLocaleString()," completion tokens)"]})}let F=e=>!!e&&e instanceof Date,H=e=>"object"==typeof e&&null!==e,q=e=>!!e&&e instanceof Object&&"function"==typeof e;function Y(e,t){return void 0===t&&(t=!1),!e||t?`"${e}"`:e}function K(e){let{field:t,value:a,data:l,lastElement:r,openBracket:i,closeBracket:n,level:o,style:d,shouldExpandNode:c,clickToExpandNode:x,outerRef:m,beforeExpandChange:u}=e,p=(0,s.useRef)(!1),[h,g]=(0,s.useState)(()=>c(o,a,t)),f=(0,s.useRef)(null);(0,s.useEffect)(()=>{p.current?g(c(o,a,t)):p.current=!0},[c]);let y=(0,s.useId)();if(0===l.length)return function(e){let{field:t,openBracket:a,closeBracket:l,lastElement:r,style:i}=e;return(0,s.createElement)("div",{className:i.basicChildStyle,role:"treeitem","aria-selected":void 0},(t||""===t)&&(0,s.createElement)("span",{className:i.label},Y(t,i.quotesForFieldNames),":"),(0,s.createElement)("span",{className:i.punctuation},a),(0,s.createElement)("span",{className:i.punctuation},l),!r&&(0,s.createElement)("span",{className:i.punctuation},","))}({field:t,openBracket:i,closeBracket:n,lastElement:r,style:d});let j=h?d.collapseIcon:d.expandIcon,b=h?d.ariaLables.collapseJson:d.ariaLables.expandJson,v=o+1,_=l.length-1,N=e=>{h!==e&&(!u||u({level:o,value:a,field:t,newExpandValue:e}))&&g(e)},w=e=>{if("ArrowRight"===e.key||"ArrowLeft"===e.key)e.preventDefault(),N("ArrowRight"===e.key);else if("ArrowUp"===e.key||"ArrowDown"===e.key){e.preventDefault();let t="ArrowUp"===e.key?-1:1;if(!m.current)return;let s=m.current.querySelectorAll("[role=button]"),a=-1;for(let e=0;e{var e;N(!h);let t=f.current;if(!t)return;let s=null==(e=m.current)?void 0:e.querySelector('[role=button][tabindex="0"]');s&&(s.tabIndex=-1),t.tabIndex=0,t.focus()};return(0,s.createElement)("div",{className:d.basicChildStyle,role:"treeitem","aria-expanded":h,"aria-selected":void 0},(0,s.createElement)("span",{className:j,onClick:S,onKeyDown:w,role:"button","aria-label":b,"aria-expanded":h,"aria-controls":h?y:void 0,ref:f,tabIndex:0===o?0:-1}),(t||""===t)&&(x?(0,s.createElement)("span",{className:d.clickableLabel,onClick:S,onKeyDown:w},Y(t,d.quotesForFieldNames),":"):(0,s.createElement)("span",{className:d.label},Y(t,d.quotesForFieldNames),":")),(0,s.createElement)("span",{className:d.punctuation},i),h?(0,s.createElement)("ul",{id:y,role:"group",className:d.childFieldsContainer},l.map((e,t)=>(0,s.createElement)(V,{key:e[0]||t,field:e[0],value:e[1],style:d,lastElement:t===_,level:v,shouldExpandNode:c,clickToExpandNode:x,beforeExpandChange:u,outerRef:m}))):(0,s.createElement)("span",{className:d.collapsedContent,onClick:S,onKeyDown:w}),(0,s.createElement)("span",{className:d.punctuation},n),!r&&(0,s.createElement)("span",{className:d.punctuation},","))}function $(e){let{field:t,value:s,style:a,lastElement:l,shouldExpandNode:r,clickToExpandNode:i,level:n,outerRef:o,beforeExpandChange:d}=e;return K({field:t,value:s,lastElement:l||!1,level:n,openBracket:"{",closeBracket:"}",style:a,shouldExpandNode:r,clickToExpandNode:i,data:Object.keys(s).map(e=>[e,s[e]]),outerRef:o,beforeExpandChange:d})}function U(e){let{field:t,value:s,style:a,lastElement:l,level:r,shouldExpandNode:i,clickToExpandNode:n,outerRef:o,beforeExpandChange:d}=e;return K({field:t,value:s,lastElement:l||!1,level:r,openBracket:"[",closeBracket:"]",style:a,shouldExpandNode:i,clickToExpandNode:n,data:s.map(e=>[void 0,e]),outerRef:o,beforeExpandChange:d})}function W(e){let t,{field:a,value:l,style:r,lastElement:i}=e,n=r.otherValue;if(null===l)t="null",n=r.nullValue;else if(void 0===l)t="undefined",n=r.undefinedValue;else if("string"==typeof l||l instanceof String){var o;o=!r.noQuotesForStringValues,t=r.stringifyStringValues?JSON.stringify(l):o?`"${l}"`:l,n=r.stringValue}else if("boolean"==typeof l||l instanceof Boolean)t=l?"true":"false",n=r.booleanValue;else if("number"==typeof l||l instanceof Number)t=l.toString(),n=r.numberValue;else"bigint"==typeof l||l instanceof BigInt?(t=`${l.toString()}n`,n=r.numberValue):t=F(l)?l.toISOString():q(l)?"function() { }":l.toString();return(0,s.createElement)("div",{className:r.basicChildStyle,role:"treeitem","aria-selected":void 0},(a||""===a)&&(0,s.createElement)("span",{className:r.label},Y(a,r.quotesForFieldNames),":"),(0,s.createElement)("span",{className:n},t),!i&&(0,s.createElement)("span",{className:r.punctuation},","))}function V(e){let t=e.value;return Array.isArray(t)?(0,s.createElement)(U,Object.assign({},e)):!H(t)||F(t)||q(t)?(0,s.createElement)(W,Object.assign({},e)):(0,s.createElement)($,Object.assign({},e))}let G={container:"_2IvMF _GzYRV",basicChildStyle:"_2bkNM",childFieldsContainer:"_1BXBN",label:"_1MGIk",clickableLabel:"_2YKJg _1MGIk _1MFti",nullValue:"_2T6PJ",undefinedValue:"_1Gho6",stringValue:"_vGjyY",booleanValue:"_3zQKs",numberValue:"_1bQdo",otherValue:"_1xvuR",punctuation:"_3uHL6 _3eOF8",collapseIcon:"_oLqym _f10Tu _1MFti _1LId0",expandIcon:"_2AXVT _f10Tu _1MFti _1UmXx",collapsedContent:"_2KJWg _1pNG9 _1MFti",noQuotesForStringValues:!1,quotesForFieldNames:!1,ariaLables:{collapseJson:"collapse JSON",expandJson:"expand JSON"},stringifyStringValues:!1},J=()=>!0,Q=e=>{let{data:t,style:a=G,shouldExpandNode:l=J,clickToExpandNode:r=!1,beforeExpandChange:i,compactTopLevel:n,...o}=e,d=(0,s.useRef)(null);return(0,s.createElement)("div",Object.assign({"aria-label":"JSON view"},o,{className:a.container,ref:d,role:"tree"}),n&&H(t)?Object.entries(t).map(e=>{let[t,n]=e;return(0,s.createElement)(V,{key:t,field:t,value:n,style:{...G,...a},lastElement:!0,level:1,shouldExpandNode:l,clickToExpandNode:r,beforeExpandChange:i,outerRef:d})}):(0,s.createElement)(V,{value:t,style:{...G,...a},lastElement:!0,level:0,shouldExpandNode:l,clickToExpandNode:r,outerRef:d,beforeExpandChange:i}))};e.s(["JsonView",0,Q,"defaultStyles",0,G],867612);let{Text:X}=g.Typography;function Z({data:e}){return e?(0,t.jsx)("div",{style:{maxHeight:O.JSON_MAX_HEIGHT,overflow:"auto",background:O.COLOR_BG_LIGHT,padding:O.SPACING_LARGE,borderRadius:4},children:(0,t.jsx)("div",{className:"[&_[role='tree']]:bg-white [&_[role='tree']]:text-slate-900",children:(0,t.jsx)(Q,{data:e,style:G,clickToExpandNode:!0})})}):(0,t.jsx)(X,{type:"secondary",children:"No data"})}function ee(e){if("string"==typeof e)try{return JSON.parse(e)}catch{}return e}function et(e){return Array.isArray(e)?e:e?[e]:[]}function es(e){if("string"==typeof e)try{return JSON.parse(e)}catch{}return e}var ea=e.i(366308),el=e.i(755151),er=e.i(291542);let{Text:ei}=g.Typography;function en({tool:e}){let s=Object.entries(e.parameters?.properties||{}).map(([t,s])=>({key:t,name:t,type:s.type||"any",description:s.description||"-",required:e.parameters?.required?.includes(t)||!1})),a=[{title:"Parameter",dataIndex:"name",key:"name",render:(e,s)=>(0,t.jsxs)(ei,{code:!0,children:[e,s.required&&(0,t.jsx)(ei,{type:"danger",children:"*"})]})},{title:"Type",dataIndex:"type",key:"type",render:e=>(0,t.jsx)(ei,{code:!0,style:{color:"#1890ff"},children:e})},{title:"Description",dataIndex:"description",key:"description",render:e=>(0,t.jsx)(ei,{type:"secondary",children:e})}];return(0,t.jsxs)("div",{children:[e.description&&(0,t.jsx)("div",{style:{marginBottom:16},children:(0,t.jsx)(ei,{style:{lineHeight:1.6,whiteSpace:"pre-wrap"},children:e.description})}),s.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)(ei,{type:"secondary",style:{fontSize:12,display:"block",marginBottom:8},children:"Parameters"}),(0,t.jsx)(er.Table,{dataSource:s,columns:a,pagination:!1,size:"small",bordered:!0})]}),e.called&&e.callData&&(0,t.jsxs)("div",{style:{marginTop:16},children:[(0,t.jsx)(ei,{type:"secondary",style:{fontSize:12,display:"block",marginBottom:8},children:"Called With"}),(0,t.jsx)("div",{style:{background:"#f6ffed",border:"1px solid #b7eb8f",borderRadius:4,padding:12},children:(0,t.jsx)("pre",{style:{margin:0,fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:JSON.stringify(e.callData.arguments,null,2)})})]})]})}function eo({tool:e}){let s={type:"function",function:{name:e.name,description:e.description,parameters:e.parameters}};return(0,t.jsx)("pre",{style:{margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:12,background:"#fafafa",padding:12,borderRadius:4,maxHeight:300,overflow:"auto"},children:JSON.stringify(s,null,2)})}let{Text:ed}=g.Typography;function ec({tool:e}){let[a,l]=(0,s.useState)("formatted");return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:12},children:[(0,t.jsx)(ed,{type:"secondary",style:{fontSize:12},children:"Description"}),(0,t.jsxs)(N.Radio.Group,{size:"small",value:a,onChange:e=>l(e.target.value),children:[(0,t.jsx)(N.Radio.Button,{value:"formatted",children:"Formatted"}),(0,t.jsx)(N.Radio.Button,{value:"json",children:"JSON"})]})]}),"formatted"===a?(0,t.jsx)(en,{tool:e}):(0,t.jsx)(eo,{tool:e})]})}let{Text:ex}=g.Typography;function em({tool:e}){let[a,l]=(0,s.useState)(!1);return(0,t.jsxs)("div",{style:{border:"1px solid #f0f0f0",borderRadius:8,overflow:"hidden"},children:[(0,t.jsxs)("div",{onClick:()=>l(!a),style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 16px",cursor:"pointer",background:a?"#fafafa":"#fff",transition:"background 0.2s"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,t.jsx)(ea.ToolOutlined,{style:{color:"#8c8c8c",fontSize:14}}),(0,t.jsxs)(ex,{style:{fontSize:14},children:[e.index,". ",e.name]})]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,t.jsx)(j.Tag,{color:e.called?"blue":"default",children:e.called?"called":"not called"}),a?(0,t.jsx)(el.DownOutlined,{style:{fontSize:12,color:"#8c8c8c"}}):(0,t.jsx)(o.RightOutlined,{style:{fontSize:12,color:"#8c8c8c"}})]})]}),a&&(0,t.jsx)("div",{style:{padding:"16px",borderTop:"1px solid #f0f0f0",background:"#fff"},children:(0,t.jsx)(ec,{tool:e})})]})}let{Text:eu}=g.Typography;function ep({log:e}){let s=function(e){let t,s=!(t=es(e.proxy_server_request||e.messages))||Array.isArray(t)?[]:"object"==typeof t&&t.tools&&Array.isArray(t.tools)?t.tools:[];if(0===s.length)return[];let a=function(e){let t=es(e.response);if(!t||"object"!=typeof t)return[];let s=t.choices;if(Array.isArray(s)&&s.length>0){let e=s[0].message;if(e&&Array.isArray(e.tool_calls))return e.tool_calls}if(Array.isArray(t.content)){let e=t.content.filter(e=>"tool_use"===e.type);if(e.length>0)return e.map(e=>({id:e.id,type:"function",function:{name:e.name,arguments:JSON.stringify(e.input||{})}}))}if(Array.isArray(t.tool_calls))return t.tool_calls;if(Array.isArray(t.results)){let e=[];for(let s of t.results)if("response.done"===s.type&&s.response?.output)for(let t of s.response.output)"function_call"===t.type&&e.push({id:t.call_id||"",type:"function",function:{name:t.name||"",arguments:t.arguments||"{}"}});if(e.length>0)return e}return[]}(e),l=new Set(a.map(e=>e.function?.name).filter(Boolean)),r=new Map;return a.forEach(e=>{let t=e.function?.name;t&&r.set(t,{id:e.id,name:t,arguments:function(e){try{return JSON.parse(e)}catch{return{}}}(e.function?.arguments||"{}")})}),s.map((e,t)=>{let s=e.function?.name||e.name||`Tool ${t+1}`;return{index:t+1,name:s,description:e.function?.description||e.description||"",parameters:e.function?.parameters||e.input_schema||{},called:l.has(s),callData:r.get(s)}})}(e);if(0===s.length)return null;let a=s.length,l=s.filter(e=>e.called).length,r=s.slice(0,2).map(e=>e.name).join(", "),i=s.length>2;return(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(_.Collapse,{expandIconPosition:"start",items:[{key:"1",label:(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,flexWrap:"wrap"},children:[(0,t.jsx)("h3",{className:"text-lg font-medium text-gray-900",children:"Tools"}),(0,t.jsxs)(eu,{type:"secondary",style:{fontSize:14},children:[a," provided, ",l," called"]}),(0,t.jsxs)(eu,{type:"secondary",style:{fontSize:14},children:["• ",r,i&&"..."]})]}),children:(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:s.map(e=>(0,t.jsx)(em,{tool:e},e.name))})}]})})}let eh=e=>{if(!e)return{};if("string"==typeof e)try{return JSON.parse(e)}catch{return{raw:e}}return e};var eg=e.i(888259),ef=e.i(264843),ey=e.i(624001);let{Text:ej}=g.Typography;function eb({type:e,tokens:s,cost:l,onCopy:r,isCollapsed:n,onToggleCollapse:o,turnCount:d}){return(0,t.jsxs)("div",{onClick:o,style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 16px",borderBottom:n?"none":"1px solid #f0f0f0",background:"#fafafa",cursor:o?"pointer":"default",transition:"background 0.15s ease"},onMouseEnter:e=>{o&&(e.currentTarget.style.background="#f5f5f5")},onMouseLeave:e=>{e.currentTarget.style.background="#fafafa"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:16},children:[o&&(0,t.jsx)("div",{style:{display:"flex",alignItems:"center"},children:n?(0,t.jsx)(el.DownOutlined,{style:{fontSize:10,color:"#8c8c8c"}}):(0,t.jsx)(ey.UpOutlined,{style:{fontSize:10,color:"#8c8c8c"}})}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:["input"===e?(0,t.jsx)(ef.MessageOutlined,{style:{color:"#8c8c8c",fontSize:14}}):(0,t.jsx)("span",{style:{fontSize:14,filter:"grayscale(1)",opacity:.6},children:"✨"}),(0,t.jsx)(ej,{style:{fontWeight:500,fontSize:14},children:"input"===e?"Input":"Output"})]}),void 0!==s&&(0,t.jsxs)(ej,{type:"secondary",style:{fontSize:12},children:["Tokens: ",s.toLocaleString()]}),void 0!==l&&(0,t.jsxs)(ej,{type:"secondary",style:{fontSize:12},children:["Cost: $",l.toFixed(6)]}),void 0!==d&&d>0&&(0,t.jsxs)(ej,{type:"secondary",style:{fontSize:12},children:["Turns: ",d]})]}),(0,t.jsx)(R.Tooltip,{title:"Copy",children:(0,t.jsx)(a.Button,{type:"text",size:"small",icon:(0,t.jsx)(i.CopyOutlined,{}),onClick:e=>{e.stopPropagation(),r()}})})]})}let{Text:ev}=g.Typography;function e_({label:e,content:a,defaultExpanded:l=!1}){let[r,i]=(0,s.useState)(l),[n,d]=(0,s.useState)(!1),c=a?.length||0;return a&&0!==c?(0,t.jsxs)("div",{style:{marginBottom:8},children:[(0,t.jsxs)("div",{onClick:()=>i(!r),onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),style:{display:"flex",alignItems:"center",gap:6,cursor:"pointer",padding:"4px 0",borderRadius:4,background:n?"#f5f5f5":"transparent",transition:"background 0.15s ease",marginBottom:4*!!r},children:[r?(0,t.jsx)(el.DownOutlined,{style:{fontSize:10,color:"#8c8c8c"}}):(0,t.jsx)(o.RightOutlined,{style:{fontSize:10,color:"#8c8c8c"}}),(0,t.jsx)(ev,{type:"secondary",style:{fontSize:10,letterSpacing:"0.5px",textTransform:"uppercase"},children:e}),(0,t.jsxs)(ev,{type:"secondary",style:{fontSize:10},children:["(",c.toLocaleString()," chars)"]})]}),(0,t.jsx)("div",{style:{maxHeight:r?"2000px":"0px",overflow:"hidden",transition:"max-height 0.2s ease-out, opacity 0.2s ease-out",opacity:+!!r},children:(0,t.jsx)("div",{style:{paddingLeft:16,fontSize:13,lineHeight:1.7,color:"#262626",borderLeft:"1px solid #f0f0f0",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:a})})]}):null}let{Text:eN}=g.Typography;function ew({tool:e,compact:s=!1}){return(0,t.jsxs)("div",{style:{background:"#f8f9fa",border:"1px solid #e9ecef",borderRadius:6,padding:s?"6px 10px":"10px 14px",marginTop:8,fontFamily:"monospace",fontSize:12,position:"relative"},children:[(0,t.jsx)("div",{style:{position:"absolute",top:-8,left:12,background:"#fff",padding:"0 6px",fontSize:10,color:"#8c8c8c",border:"1px solid #e9ecef",borderRadius:3},children:"function"}),(0,t.jsx)(eN,{strong:!0,style:{fontSize:13,display:"block",marginBottom:6},children:e.name}),Object.keys(e.arguments).length>0&&(0,t.jsx)("div",{children:Object.entries(e.arguments).map(([e,s])=>(0,t.jsxs)("div",{style:{marginBottom:2},children:[(0,t.jsxs)(eN,{type:"secondary",style:{fontSize:12},children:[e,":"," "]}),(0,t.jsx)(eN,{style:{fontSize:12},children:JSON.stringify(s)})]},e))})]})}let{Text:eS}=g.Typography;function ek({label:e,content:s,toolCalls:a,isCompact:l=!1}){let r=s&&"null"!==s&&s.length>0?s:null,i=a&&a.length>0;return r||i?(0,t.jsxs)("div",{style:{marginBottom:8*!!l},children:[(0,t.jsx)(eS,{type:"secondary",style:{fontSize:10,letterSpacing:"0.5px",textTransform:"uppercase",display:"block",marginBottom:3},children:e}),r&&(0,t.jsx)("div",{style:{fontSize:13,lineHeight:1.7,color:"#262626",whiteSpace:"pre-wrap",wordBreak:"break-word",marginBottom:6*!!i},children:r}),i&&(0,t.jsx)("div",{children:a.map((e,s)=>(0,t.jsx)(ew,{tool:e,compact:l},e.id||s))})]}):null}let{Text:eT}=g.Typography;function eC({messages:e}){let[a,l]=(0,s.useState)(!1),[r,i]=(0,s.useState)(!1);return 0===e.length?null:(0,t.jsxs)("div",{style:{marginBottom:8},children:[(0,t.jsxs)("div",{onClick:()=>l(!a),onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),style:{display:"flex",alignItems:"center",gap:6,cursor:"pointer",padding:"4px 0",borderRadius:4,background:r?"#f5f5f5":"transparent",transition:"background 0.15s ease",marginBottom:4*!!a},children:[a?(0,t.jsx)(el.DownOutlined,{style:{fontSize:10,color:"#8c8c8c"}}):(0,t.jsx)(o.RightOutlined,{style:{fontSize:10,color:"#8c8c8c"}}),(0,t.jsxs)(eT,{type:"secondary",style:{fontSize:10,letterSpacing:"0.5px",textTransform:"uppercase"},children:["HISTORY (",e.length," message",1!==e.length?"s":"",")"]})]}),(0,t.jsx)("div",{style:{maxHeight:a?"2000px":"0px",overflow:"hidden",transition:"max-height 0.2s ease-out, opacity 0.2s ease-out",opacity:+!!a},children:(0,t.jsx)("div",{style:{paddingLeft:16,borderLeft:"1px solid #f0f0f0"},children:e.map((e,s)=>(0,t.jsx)(ek,{label:e.role.toUpperCase(),content:e.content,toolCalls:e.toolCalls,isCompact:!0},s))})})]})}function eL({messages:e,promptTokens:a,inputCost:l}){let[r,i]=(0,s.useState)(!1);if(0===e.length)return null;let n=e.find(e=>"system"===e.role),o=e.filter(e=>"system"!==e.role),d=o.length>0?o[o.length-1]:null,c=o.slice(0,-1);return(0,t.jsxs)("div",{style:{border:"1px solid #f0f0f0",borderRadius:6,marginBottom:8,overflow:"hidden"},children:[(0,t.jsx)(eb,{type:"input",tokens:a,cost:l,onCopy:()=>{let e=d?.content||"";navigator.clipboard.writeText(e),eg.default.success("Input copied")},isCollapsed:r,onToggleCollapse:()=>i(!r)}),(0,t.jsx)("div",{style:{maxHeight:r?"0px":"10000px",overflow:"hidden",transition:"max-height 0.3s ease-out, opacity 0.3s ease-out",opacity:+!r},children:(0,t.jsxs)("div",{style:{padding:"12px 16px"},children:[n&&(0,t.jsx)(e_,{label:"SYSTEM",content:n.content,defaultExpanded:!!(n.content&&n.content.length<200)}),c.length>0&&(0,t.jsx)(eC,{messages:c}),d&&(0,t.jsx)(ek,{label:d.role.toUpperCase(),content:d.content,toolCalls:d.toolCalls})]})})]})}let{Text:eE}=g.Typography;function eM({message:e,completionTokens:a,outputCost:l}){let[r,i]=(0,s.useState)(!1),n=()=>{if(!e)return;let t=e.content||"";navigator.clipboard.writeText(t),eg.default.success("Output copied")};return e?(0,t.jsxs)("div",{style:{border:"1px solid #f0f0f0",borderRadius:6,overflow:"hidden"},children:[(0,t.jsx)(eb,{type:"output",tokens:a,cost:l,onCopy:n,isCollapsed:r,onToggleCollapse:()=>i(!r)}),(0,t.jsx)("div",{style:{maxHeight:r?"0px":"10000px",overflow:"hidden",transition:"max-height 0.3s ease-out, opacity 0.3s ease-out",opacity:+!r},children:(0,t.jsx)("div",{style:{padding:"12px 16px"},children:(0,t.jsx)(ek,{label:"ASSISTANT",content:e.content,toolCalls:e.toolCalls})})})]}):(0,t.jsxs)("div",{style:{border:"1px solid #f0f0f0",borderRadius:6,overflow:"hidden"},children:[(0,t.jsx)(eb,{type:"output",tokens:a,cost:l,onCopy:n,isCollapsed:r,onToggleCollapse:()=>i(!r)}),(0,t.jsx)("div",{style:{maxHeight:r?"0px":"10000px",overflow:"hidden",transition:"max-height 0.3s ease-out, opacity 0.3s ease-out",opacity:+!r},children:(0,t.jsx)("div",{style:{padding:"12px 16px"},children:(0,t.jsx)(eE,{type:"secondary",style:{fontSize:13,fontStyle:"italic"},children:"No response data available"})})})]})}var eA=e.i(782273),eD=e.i(313603),eR=e.i(793916);let{Text:eO}=g.Typography;function eI({response:e,metrics:s}){let a=e?.results||[],l=e?.usage,r=a.find(e=>"session.created"===e.type||"session.updated"===e.type),i=a.filter(e=>"response.done"===e.type);return(0,t.jsxs)("div",{children:[r?.session&&(0,t.jsx)(ez,{session:r.session,turnCount:i.length}),i.length>0&&(0,t.jsx)(eP,{responses:i.map(e=>e.response).filter(Boolean),totalUsage:l,metrics:s}),!r&&0===i.length&&(0,t.jsx)("div",{style:{border:"1px solid #f0f0f0",borderRadius:6,padding:"16px",color:"#8c8c8c",fontStyle:"italic",fontSize:13},children:"No recognized realtime events found"})]})}function ez({session:e,turnCount:a}){let[l,r]=(0,s.useState)(!0);return(0,t.jsxs)("div",{style:{border:"1px solid #f0f0f0",borderRadius:6,marginBottom:8,overflow:"hidden"},children:[(0,t.jsx)("div",{onClick:()=>r(!l),style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 16px",borderBottom:l?"none":"1px solid #f0f0f0",background:"#fafafa",cursor:"pointer",transition:"background 0.15s ease"},onMouseEnter:e=>{e.currentTarget.style.background="#f5f5f5"},onMouseLeave:e=>{e.currentTarget.style.background="#fafafa"},children:(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:16},children:[(0,t.jsx)("div",{style:{display:"flex",alignItems:"center"},children:l?(0,t.jsx)(el.DownOutlined,{style:{fontSize:10,color:"#8c8c8c"}}):(0,t.jsx)(ey.UpOutlined,{style:{fontSize:10,color:"#8c8c8c"}})}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,t.jsx)(eD.SettingOutlined,{style:{color:"#8c8c8c",fontSize:14}}),(0,t.jsx)(eO,{style:{fontWeight:500,fontSize:14},children:"Session"})]}),(0,t.jsx)(eO,{type:"secondary",style:{fontSize:12},children:e.model}),a>0&&(0,t.jsxs)(j.Tag,{color:"purple",style:{margin:0,fontWeight:500},children:[a," ",1===a?"turn":"turns"]}),e.voice&&(0,t.jsxs)(j.Tag,{color:"blue",style:{margin:0},children:[(0,t.jsx)(eA.SoundOutlined,{})," ",e.voice]}),e.modalities&&(0,t.jsx)("div",{style:{display:"flex",gap:4},children:e.modalities.map(e=>(0,t.jsxs)(j.Tag,{style:{margin:0},children:["audio"===e?(0,t.jsx)(eR.AudioOutlined,{}):(0,t.jsx)(ef.MessageOutlined,{})," ",e]},e))})]})}),(0,t.jsx)("div",{style:{maxHeight:l?"0px":"10000px",overflow:"hidden",transition:"max-height 0.3s ease-out, opacity 0.3s ease-out",opacity:+!l},children:(0,t.jsxs)("div",{style:{padding:"12px 16px"},children:[(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"8px 24px",fontSize:13},children:[(0,t.jsx)(eq,{label:"Model",value:e.model}),(0,t.jsx)(eq,{label:"Voice",value:e.voice}),(0,t.jsx)(eq,{label:"Temperature",value:e.temperature}),(0,t.jsx)(eq,{label:"Max Output Tokens",value:e.max_response_output_tokens}),(0,t.jsx)(eq,{label:"Input Audio Format",value:e.input_audio_format}),(0,t.jsx)(eq,{label:"Output Audio Format",value:e.output_audio_format}),e.turn_detection&&(0,t.jsx)(eq,{label:"Turn Detection",value:e.turn_detection.type}),e.tools&&e.tools.length>0&&(0,t.jsx)(eq,{label:"Tools",value:`${e.tools.length} tool(s)`})]}),e.instructions&&(0,t.jsxs)("div",{style:{marginTop:12},children:[(0,t.jsx)(eO,{type:"secondary",style:{fontSize:10,letterSpacing:"0.5px",textTransform:"uppercase",display:"block",marginBottom:4},children:"Instructions"}),(0,t.jsx)("div",{style:{fontSize:12,lineHeight:1.6,color:"#595959",background:"#fafafa",padding:"8px 12px",borderRadius:4,border:"1px solid #f0f0f0",whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:120,overflowY:"auto"},children:e.instructions})]})]})})]})}function eP({responses:e,totalUsage:a,metrics:l}){let[r,i]=(0,s.useState)(!1),n=a?.total_tokens,o=e.length;return(0,t.jsxs)("div",{style:{border:"1px solid #f0f0f0",borderRadius:6,overflow:"hidden"},children:[(0,t.jsx)(eb,{type:"output",tokens:l?.completion_tokens??n,cost:l?.output_cost,onCopy:()=>{let t=e.flatMap(e=>(e.output||[]).flatMap(e=>(e.content||[]).map(t=>`${e.role}: ${t.transcript||t.text||""}`))).join("\n");navigator.clipboard.writeText(t)},isCollapsed:r,onToggleCollapse:()=>i(!r),turnCount:o}),(0,t.jsx)("div",{style:{maxHeight:r?"0px":"10000px",overflow:"hidden",transition:"max-height 0.3s ease-out, opacity 0.3s ease-out",opacity:+!r},children:(0,t.jsx)("div",{style:{padding:"12px 16px"},children:e.map((e,s)=>(0,t.jsx)(eB,{response:e,index:s},e.id||s))})})]})}function eB({response:e,index:s}){let a=e.output||[],l=e.usage;return(0,t.jsxs)("div",{style:{marginBottom:12,paddingBottom:12,borderBottom:"1px solid #f5f5f5"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[(0,t.jsx)(j.Tag,{color:"completed"===e.status?"green":"orange",style:{margin:0},children:e.status||"unknown"}),l&&(0,t.jsxs)(eO,{type:"secondary",style:{fontSize:11},children:[l.input_tokens??0," in / ",l.output_tokens??0," out tokens"]}),e.conversation_id&&(0,t.jsx)(R.Tooltip,{title:e.conversation_id,children:(0,t.jsxs)(eO,{type:"secondary",style:{fontSize:11,cursor:"help"},children:["conv: ",e.conversation_id.slice(0,12),"..."]})})]}),a.map((e,s)=>(0,t.jsx)(eF,{output:e},e.id||s)),l?.input_token_details&&(0,t.jsx)(eH,{label:"Input",details:l.input_token_details}),l?.output_token_details&&(0,t.jsx)(eH,{label:"Output",details:l.output_token_details})]})}function eF({output:e}){let s=e.content||[];return s.some(e=>e.transcript||e.text)?(0,t.jsxs)("div",{style:{marginBottom:8},children:[(0,t.jsx)(eO,{type:"secondary",style:{fontSize:10,letterSpacing:"0.5px",textTransform:"uppercase",display:"block",marginBottom:3},children:e.role?.toUpperCase()||"ASSISTANT"}),s.map((e,s)=>{let a=e.transcript||e.text;return a?(0,t.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8,marginBottom:4},children:["audio"===e.type&&(0,t.jsx)(eR.AudioOutlined,{style:{color:"#8c8c8c",fontSize:12,marginTop:3,flexShrink:0}}),"text"===e.type&&(0,t.jsx)(ef.MessageOutlined,{style:{color:"#8c8c8c",fontSize:12,marginTop:3,flexShrink:0}}),(0,t.jsx)("div",{style:{fontSize:13,lineHeight:1.7,color:"#262626",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:a})]},s):null})]}):null}function eH({label:e,details:s}){let a=Object.entries(s).filter(([,e])=>"number"==typeof e||"object"==typeof e&&null!==e);return 0===a.length?null:(0,t.jsxs)("div",{style:{marginTop:4},children:[(0,t.jsxs)(eO,{type:"secondary",style:{fontSize:10,letterSpacing:"0.5px",textTransform:"uppercase"},children:[e," Token Breakdown"]}),(0,t.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,marginTop:4},children:a.map(([e,s])=>"number"==typeof s?(0,t.jsxs)(j.Tag,{style:{margin:0},children:[e.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase()),": ",s.toLocaleString()]},e):null)})]})}function eq({label:e,value:s}){return null==s?null:(0,t.jsxs)("div",{children:[(0,t.jsx)(eO,{type:"secondary",style:{fontSize:11},children:e}),(0,t.jsx)("div",{style:{fontSize:13,color:"#262626"},children:String(s)})]})}function eY({request:e,response:s,metrics:a}){let l,r,i;if(s&&s.results&&Array.isArray(s.results)&&0!==s.results.length&&s.results.some(e=>"session.created"===e.type||"session.updated"===e.type||"response.done"===e.type))return(0,t.jsx)(eI,{response:s,metrics:a});let{requestMessages:n,responseMessage:o}=(l=[],e?.messages&&Array.isArray(e.messages)&&e.messages.forEach(e=>{let t;l.push({role:e.role||"user",content:"string"==typeof(t=e.content)?t:Array.isArray(t)?t.map(e=>"string"==typeof e?e:"text"===e.type?e.text:"image_url"===e.type?"[Image]":JSON.stringify(e)).join("\n"):JSON.stringify(t),toolCallId:e.tool_call_id})}),r=null,(i=s?.choices?.[0]?.message)&&(r={role:i.role||"assistant",content:i.content||"",toolCalls:(e=>{if(e&&Array.isArray(e))return e.map(e=>({id:e.id||"",name:e.function?.name||"unknown",arguments:eh(e.function?.arguments)}))})(i.tool_calls)}),{requestMessages:l,responseMessage:r});return(0,t.jsxs)("div",{children:[(0,t.jsx)(eL,{messages:n,promptTokens:a?.prompt_tokens,inputCost:a?.input_cost}),(0,t.jsx)(eM,{message:o,completionTokens:a?.completion_tokens,outputCost:a?.output_cost})]})}let{Text:eK}=g.Typography;function e$({logEntry:e,isLoadingDetails:s=!1,accessToken:a}){var l,r;let i=e.metadata||{},n="failure"===i.status,o=n?i.error_information:null,d=!!(l=e.messages)&&(Array.isArray(l)?l.length>0:"object"==typeof l&&Object.keys(l).length>0),c=!!(r=e.response)&&Object.keys(ee(r)).length>0,x=!d&&!c&&!n&&!s,m=i?.guardrail_information,u=et(m),p=u.length>0,h=u.reduce((e,t)=>{let s=t?.masked_entity_count;return s?e+Object.values(s).reduce((e,t)=>"number"==typeof t?e+t:e,0):e},0),g=0===u.length?"-":1===u.length?u[0]?.guardrail_name??"-":`${u.length} guardrails`,j=i?.eval_information,b=i.vector_store_request_metadata&&Array.isArray(i.vector_store_request_metadata)&&i.vector_store_request_metadata.length>0;return(0,t.jsxs)("div",{style:{padding:`${O.DRAWER_CONTENT_PADDING} ${O.DRAWER_CONTENT_PADDING} 0`},children:[n&&o&&(0,t.jsx)(v.Alert,{type:"error",showIcon:!0,message:"Request Failed",description:(0,t.jsx)(eU,{errorInfo:o}),className:"mb-6"}),e.request_tags&&Object.keys(e.request_tags).length>0&&(0,t.jsx)(eW,{tags:e.request_tags}),(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(y.Card,{title:"Request Details",size:"small",bordered:!1,style:{marginBottom:0},children:(0,t.jsxs)(f.Descriptions,{column:2,size:"small",children:[(0,t.jsx)(f.Descriptions.Item,{label:"Model",children:e.model}),(0,t.jsx)(f.Descriptions.Item,{label:"Provider",children:e.custom_llm_provider||"-"}),(0,t.jsx)(f.Descriptions.Item,{label:"Call Type",children:e.call_type}),(0,t.jsx)(f.Descriptions.Item,{label:"Model ID",children:(0,t.jsx)(z,{value:e.model_id})}),(0,t.jsx)(f.Descriptions.Item,{label:"API Base",children:(0,t.jsx)(z,{value:e.api_base,maxWidth:O.API_BASE_MAX_WIDTH})}),e.requester_ip_address&&(0,t.jsx)(f.Descriptions.Item,{label:"IP Address",children:e.requester_ip_address}),p&&(0,t.jsx)(f.Descriptions.Item,{label:"Guardrail",children:(0,t.jsx)(eV,{label:g,maskedCount:h})})]})})}),(0,t.jsx)(eG,{logEntry:e,metadata:i}),(0,t.jsx)(E.CostBreakdownViewer,{costBreakdown:i?.cost_breakdown,totalSpend:e.spend??0,promptTokens:e.prompt_tokens,completionTokens:e.completion_tokens,cacheHit:e.cache_hit,rawInputTokens:i?.additional_usage_values?.prompt_tokens_details?.text_tokens,cacheReadTokens:i?.additional_usage_values?.cache_read_input_tokens,cacheCreationTokens:i?.additional_usage_values?.cache_creation_input_tokens}),(0,t.jsx)(ep,{log:e}),x&&(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsx)(M.ConfigInfoMessage,{show:x})}),s?(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6 p-8 text-center",children:[(0,t.jsx)(S.Spin,{size:"default"}),(0,t.jsx)("div",{style:{marginTop:8,color:"#999"},children:"Loading request & response data..."})]}):(0,t.jsx)(eJ,{hasResponse:c,hasError:n,getRawRequest:()=>ee(e.proxy_server_request||e.messages),getFormattedResponse:()=>n&&o?{error:{message:o.error_message||"An error occurred",type:o.error_class||"error",code:o.error_code||"unknown",param:null}}:ee(e.response),logEntry:e}),p&&(0,t.jsx)("div",{id:"guardrail-section",children:(0,t.jsx)(C.default,{data:m,accessToken:a??null,logEntry:{request_id:e.request_id,user:e.user,model:e.model,startTime:e.startTime,metadata:e.metadata}})}),null!=j&&(0,t.jsx)(L.default,{data:j}),b&&(0,t.jsx)(D,{data:i.vector_store_request_metadata}),e.metadata&&Object.keys(e.metadata).length>0&&(0,t.jsx)(eX,{metadata:e.metadata}),(0,t.jsx)("div",{style:{height:O.DRAWER_CONTENT_PADDING}})]})}function eU({errorInfo:e}){return(0,t.jsxs)("div",{children:[e.error_code&&(0,t.jsxs)("div",{children:[(0,t.jsx)(eK,{strong:!0,children:"Error Code:"})," ",e.error_code]}),e.error_message&&(0,t.jsxs)("div",{children:[(0,t.jsx)(eK,{strong:!0,children:"Message:"})," ",e.error_message]})]})}function eW({tags:e}){return(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden p-4 mb-6",children:[(0,t.jsx)(eK,{strong:!0,style:{display:"block",marginBottom:8,fontSize:16},children:"Tags"}),(0,t.jsx)(w.Space,{size:O.SPACING_MEDIUM,wrap:!0,children:Object.entries(e).map(([e,s])=>(0,t.jsxs)(j.Tag,{children:[e,": ",String(s)]},e))})]})}function eV({label:e,maskedCount:s}){return(0,t.jsxs)(w.Space,{size:O.SPACING_MEDIUM,children:[(0,t.jsx)("a",{onClick:()=>{let e=document.getElementById("guardrail-section");e&&e.scrollIntoView({behavior:"smooth"})},style:{cursor:"pointer"},children:e}),s>0&&(0,t.jsxs)(j.Tag,{color:"blue",children:[s," masked"]})]})}function eG({logEntry:e,metadata:s}){let a=e.completionStartTime,l=a&&a!==e.endTime?new Date(a).getTime()-new Date(e.startTime).getTime():null,r=e.cache_hit||s?.additional_usage_values?.cache_read_input_tokens&&s.additional_usage_values.cache_read_input_tokens>0,i=String(e.cache_hit??"None"),n="true"===i.toLowerCase()?"green":"false"===i.toLowerCase()?"red":"default",o=function(e){let t=e?.additional_usage_values?.prompt_tokens_details?.text_tokens??e?.usage_object?.prompt_tokens_details?.text_tokens;if(null==t)return;let s=Number(t);return Number.isFinite(s)?s:void 0}(s),d="anthropic_messages"===e.call_type&&void 0!==o;return(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(y.Card,{title:"Metrics",size:"small",style:{marginBottom:0},children:(0,t.jsxs)(f.Descriptions,{column:2,size:"small",children:[d?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(f.Descriptions.Item,{label:"Input Tokens",children:(0,T.formatNumberWithCommas)(o)}),(0,t.jsx)(f.Descriptions.Item,{label:"Output Tokens",children:(0,T.formatNumberWithCommas)(e.completion_tokens)})]}):(0,t.jsx)(f.Descriptions.Item,{label:"Tokens",children:(0,t.jsx)(B,{prompt:e.prompt_tokens,completion:e.completion_tokens,total:e.total_tokens})}),(0,t.jsxs)(f.Descriptions.Item,{label:"Cost",children:["$",(0,T.formatNumberWithCommas)(e.spend||0,8)]}),(0,t.jsxs)(f.Descriptions.Item,{label:"Duration",children:[null!=e.request_duration_ms?(e.request_duration_ms/1e3).toFixed(3):"-"," s"]}),null!=l&&l>0&&(0,t.jsxs)(f.Descriptions.Item,{label:"Time to First Token",children:[(l/1e3).toFixed(3)," s"]}),r&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(f.Descriptions.Item,{label:"Cache Hit",children:(0,t.jsx)(j.Tag,{color:n,children:i})}),s?.additional_usage_values?.cache_read_input_tokens>0&&(0,t.jsx)(f.Descriptions.Item,{label:"Cache Read Tokens",children:(0,T.formatNumberWithCommas)(s.additional_usage_values.cache_read_input_tokens)}),s?.additional_usage_values?.cache_creation_input_tokens>0&&(0,t.jsx)(f.Descriptions.Item,{label:"Cache Creation Tokens",children:(0,T.formatNumberWithCommas)(s.additional_usage_values.cache_creation_input_tokens)})]}),s?.litellm_overhead_time_ms!==void 0&&null!==s.litellm_overhead_time_ms&&(0,t.jsxs)(f.Descriptions.Item,{label:"LiteLLM Overhead",children:[s.litellm_overhead_time_ms.toFixed(2)," ms"]}),(0,t.jsx)(f.Descriptions.Item,{label:"Retries",children:s?.attempted_retries!==void 0&&s?.attempted_retries!==null?s.attempted_retries>0?(0,t.jsxs)(t.Fragment,{children:[s.attempted_retries,void 0!==s.max_retries&&null!==s.max_retries?` / ${s.max_retries}`:""]}):(0,t.jsx)(j.Tag,{color:"green",children:"None"}):"-"}),(0,t.jsx)(f.Descriptions.Item,{label:"Start Time",children:(0,k.default)(e.startTime).format("YYYY-MM-DDTHH:mm:ss.SSS[Z]")}),(0,t.jsx)(f.Descriptions.Item,{label:"End Time",children:(0,k.default)(e.endTime).format("YYYY-MM-DDTHH:mm:ss.SSS[Z]")})]})})})}function eJ({hasResponse:e,hasError:a,getRawRequest:l,getFormattedResponse:r,logEntry:i}){let[n,o]=(0,s.useState)(O.TAB_REQUEST),[d,c]=(0,s.useState)("pretty"),x=i.spend??0,m=i.prompt_tokens||0,u=i.completion_tokens||0,p=m+u,h=i.metadata?.cost_breakdown,g=h?.input_cost!==void 0&&h?.output_cost!==void 0,f=g?h.input_cost??0:p>0?x*m/p:0,y=g?h.output_cost??0:p>0?x*u/p:0;return(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(_.Collapse,{defaultActiveKey:["1"],expandIconPosition:"start",items:[{key:"1",label:(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%"},onClick:e=>{e.target.closest(".ant-radio-group")&&e.stopPropagation()},children:[(0,t.jsx)("h3",{className:"text-lg font-medium text-gray-900",style:{margin:0},children:"Request & Response"}),(0,t.jsxs)(N.Radio.Group,{size:"small",value:d,onChange:e=>c(e.target.value),children:[(0,t.jsx)(N.Radio.Button,{value:"pretty",children:"Pretty"}),(0,t.jsx)(N.Radio.Button,{value:"json",children:"JSON"})]})]}),children:(0,t.jsx)("div",{children:"pretty"===d?(0,t.jsx)(eY,{request:l(),response:r(),metrics:{prompt_tokens:m,completion_tokens:u,input_cost:f,output_cost:y}}):(0,t.jsx)(b.Tabs,{activeKey:n,onChange:e=>o(e),tabBarExtraContent:(0,t.jsx)(eK,{copyable:{text:JSON.stringify(n===O.TAB_REQUEST?l():r(),null,2),tooltips:["Copy JSON","Copied!"]},disabled:n===O.TAB_RESPONSE&&!e&&!a}),items:[{key:O.TAB_REQUEST,label:"Request",children:(0,t.jsx)("div",{style:{paddingTop:O.SPACING_XLARGE,paddingBottom:O.SPACING_XLARGE},children:(0,t.jsx)(Z,{data:l(),mode:"formatted"})})},{key:O.TAB_RESPONSE,label:"Response",children:(0,t.jsx)("div",{style:{paddingTop:O.SPACING_XLARGE,paddingBottom:O.SPACING_XLARGE},children:e||a?(0,t.jsx)(Z,{data:r(),mode:"formatted"}):(0,t.jsx)("div",{style:{textAlign:"center",padding:20,color:"#999",fontStyle:"italic"},children:"Response data not available"})})}]})})}]})})}function eQ({guardrailEntries:e}){let s=e.every(e=>{let t=e?.guardrail_status||e?.status;return"pass"===t||"passed"===t||"success"===t});return(0,t.jsx)("div",{style:{textAlign:"left",marginBottom:12},children:(0,t.jsxs)("div",{onClick:()=>{let e=document.getElementById("guardrail-section");e&&e.scrollIntoView({behavior:"smooth"})},style:{display:"inline-flex",alignItems:"center",gap:6,padding:"4px 12px",borderRadius:16,cursor:"pointer",fontSize:13,fontWeight:500,backgroundColor:s?"#f0fdf4":"#fef2f2",color:s?"#15803d":"#b91c1c",border:`1px solid ${s?"#bbf7d0":"#fecaca"}`},children:[s?"✓":"✗"," ",e.length," guardrail",1!==e.length?"s":""," evaluated",(0,t.jsx)("span",{style:{fontSize:11,opacity:.7},children:"↓"})]})})}function eX({metadata:e}){return(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(_.Collapse,{defaultActiveKey:["1"],expandIconPosition:"start",items:[{key:"1",label:(0,t.jsx)("h3",{className:"text-lg font-medium text-gray-900",children:"Metadata"}),children:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginBottom:8},children:(0,t.jsx)(eK,{copyable:{text:JSON.stringify(e,null,2),tooltips:["Copy Metadata","Copied!"]}})}),(0,t.jsx)("pre",{style:{maxHeight:O.METADATA_MAX_HEIGHT,overflowY:"auto",fontSize:O.FONT_SIZE_SMALL,fontFamily:O.FONT_FAMILY_MONO,whiteSpace:"pre-wrap",wordBreak:"break-all",margin:0},children:JSON.stringify(e,null,2)})]})}]})})}var eZ=e.i(764205),e0=e.i(266027),e1=e.i(135214);function e2({row:e,isSelected:s,onClick:a}){let l=m.MCP_CALL_TYPES.includes(e.call_type),r=m.AGENT_CALL_TYPES.includes(e.call_type),i=null!=e.request_duration_ms?(e.request_duration_ms/1e3).toFixed(3):e.startTime&&e.endTime?((Date.parse(e.endTime)-Date.parse(e.startTime))/1e3).toFixed(3):"-";return(0,t.jsxs)("button",{type:"button",className:`w-full text-left pl-8 pr-2 py-1 transition-colors ${s?"bg-blue-50":"hover:bg-slate-100"}`,onClick:a,children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[l?(0,t.jsx)(x.Wrench,{size:12,className:"text-slate-500 flex-shrink-0"}):r?(0,t.jsx)(d.Bot,{size:12,className:"text-slate-500 flex-shrink-0"}):(0,t.jsx)(c.Sparkles,{size:12,className:"text-slate-500 flex-shrink-0"}),(0,t.jsx)("span",{className:"text-xs font-medium text-slate-900 truncate",children:(0,u.getEventDisplayName)(e.call_type,e.model)})]}),(0,t.jsxs)("div",{className:"text-[10px] text-slate-500 mt-0 flex items-center gap-1.5 font-mono",children:[(0,t.jsxs)("span",{children:[i,"s"]}),e.spend?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{children:"·"}),(0,t.jsx)("span",{children:(0,T.getSpendString)(e.spend)})]}):null,e.total_tokens?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{children:"·"}),(0,t.jsxs)("span",{children:[e.total_tokens," tok"]})]}):null]})]})}e.s(["LogDetailsDrawer",0,function({open:e,onClose:d,logEntry:c,sessionId:x,accessToken:u,allLogs:g=[],onSelectLog:f,startTime:y}){let j=!!x,[b,v]=(0,s.useState)(null),[_,N]=(0,s.useState)(!1),[w,S]=(0,s.useState)(!1),{data:k=[]}=(0,e0.useQuery)({queryKey:["sessionLogs",x],queryFn:async()=>{if(!x||!u)return[];let e=await (0,eZ.sessionSpendLogsCall)(u,x);return(e.data||e||[]).map(e=>({...e,request_duration_ms:e.request_duration_ms??Date.parse(e.endTime)-Date.parse(e.startTime)})).sort((e,t)=>{let s=+!!m.MCP_CALL_TYPES.includes(e.call_type),a=+!!m.MCP_CALL_TYPES.includes(t.call_type);return s!==a?s-a:new Date(e.startTime).getTime()-new Date(t.startTime).getTime()})},enabled:!!(e&&j&&x&&u)}),C=(0,s.useMemo)(()=>j?k.length?b?k.find(e=>e.request_id===b)||k[0]:c?.request_id&&k.find(e=>e.request_id===c.request_id)||k[0]:null:c,[j,c,b,k]);(0,s.useEffect)(()=>{j&&k.length&&(b&&k.some(e=>e.request_id===b)||v(c?.request_id&&k.some(e=>e.request_id===c.request_id)?c.request_id:k[0].request_id))},[j,c,b,k]),(0,s.useEffect)(()=>{e?N(!1):(j&&v(null),S(!1))},[e,j]);let{selectNextLog:L,selectPreviousLog:E}=(0,h.useKeyboardNavigation)({isOpen:e,currentLog:C,allLogs:j?k:g,onClose:d,onSelectLog:e=>{j&&v(e.request_id),f?.(e)}}),M=((e,t,s)=>{let{accessToken:a}=(0,e1.default)();return(0,e0.useQuery)({queryKey:["logDetails",e,t,a],queryFn:async()=>a&&e&&t?await (0,eZ.uiSpendLogDetailsCall)(a,e,t):null,enabled:s&&!!a&&!!e&&!!t,staleTime:6e5,gcTime:6e5})})(C?.request_id,y,e&&!!C?.request_id),A=M.data,D=M.isLoading,R=(0,s.useMemo)(()=>C?{...C,messages:A?.messages||C.messages,response:A?.response||C.response,proxy_server_request:A?.proxy_server_request||C.proxy_server_request}:null,[C,A]),I=C?.metadata||{},z="failure"===I.status?"Failure":"Success",P="failure"===I.status?"error":"success",B=I?.user_api_key_team_alias||"default",F=k.reduce((e,t)=>e+(t.spend||0),0),H=k.length>0?new Date(Math.min(...k.map(e=>new Date(e.startTime).getTime()))):null,q=k.length>0?new Date(Math.max(...k.map(e=>new Date(e.endTime).getTime()))):null,Y=H&&q?((q.getTime()-H.getTime())/1e3).toFixed(2):"0.00",K=k.filter(e=>!m.MCP_CALL_TYPES.includes(e.call_type)&&!m.AGENT_CALL_TYPES.includes(e.call_type)).length,$=k.filter(e=>m.AGENT_CALL_TYPES.includes(e.call_type)).length,U=k.filter(e=>m.MCP_CALL_TYPES.includes(e.call_type)).length,W=j?k:C?[C]:[],V=j?x||"":C?.request_id||"",G=V.length>14?`${V.slice(0,11)}...`:V,J=async()=>{if(V)try{await navigator.clipboard.writeText(V),S(!0),setTimeout(()=>S(!1),1200)}catch{}};return C&&R?(0,t.jsx)(l.Drawer,{title:null,placement:"right",onClose:d,open:e,width:O.DRAWER_WIDTH,closable:!1,mask:!0,maskClosable:!0,styles:{body:{padding:0,overflow:"hidden"},header:{display:"none"}},children:(0,t.jsxs)("div",{style:{height:"100%"},className:"flex relative",children:[_?(0,t.jsx)(a.Button,{type:"text",size:"small",icon:(0,t.jsx)(o.RightOutlined,{}),onClick:()=>N(!1),className:"absolute top-2 left-2 z-20 !bg-white !border !border-slate-200 !rounded-md","aria-label":"Expand trace sidebar"}):(0,t.jsx)(a.Button,{type:"text",size:"small",icon:(0,t.jsx)(n.LeftOutlined,{}),onClick:()=>N(!0),className:"absolute top-2 left-2 z-20 !bg-white !border !border-slate-200 !rounded-md","aria-label":"Collapse trace sidebar"}),!_&&(0,t.jsxs)("div",{className:"border-r border-slate-200 bg-slate-50 flex flex-col",style:{width:224},children:[(0,t.jsxs)("div",{className:"pl-12 pr-3 py-2 border-b border-slate-200 bg-white",children:[(0,t.jsx)("div",{className:"flex items-start justify-between gap-2",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-slate-500",children:j?"Session":"Trace"}),(0,t.jsxs)("div",{className:"font-mono text-[12px] text-slate-900 leading-tight flex items-center gap-1",children:[(0,t.jsx)("span",{className:"truncate",children:G}),(0,t.jsx)("button",{type:"button",onClick:J,className:"text-slate-400 hover:text-slate-600","aria-label":"Copy trace id",children:w?(0,t.jsx)(r.CheckOutlined,{className:"text-[11px]"}):(0,t.jsx)(i.CopyOutlined,{className:"text-[11px]"})})]})]})}),(0,t.jsxs)("div",{className:"mt-1 text-[11px] text-slate-500 font-mono",children:[W.length," req",[j?K:W.filter(e=>!m.MCP_CALL_TYPES.includes(e.call_type)&&!m.AGENT_CALL_TYPES.includes(e.call_type)).length,j?$:W.filter(e=>m.AGENT_CALL_TYPES.includes(e.call_type)).length,j?U:W.filter(e=>m.MCP_CALL_TYPES.includes(e.call_type)).length].map((e,s)=>{let a=[" LLM"," Agent"," MCP"][s];return e>0?(0,t.jsxs)("span",{children:[(0,t.jsx)("span",{className:"mx-1.5",children:"·"}),e,a]},a):null}),(0,t.jsx)("span",{className:"mx-1.5",children:"·"}),j?(0,T.getSpendString)(F):(0,T.getSpendString)(C.spend||0),j&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"mx-1.5",children:"·"}),Y,"s"]})]})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto",children:[et(I?.guardrail_information).length>0&&(0,t.jsx)("div",{className:"px-3 pt-2",children:(0,t.jsx)(eQ,{guardrailEntries:et(I?.guardrail_information)})}),j?(0,t.jsx)("div",{className:"py-1",children:(0,t.jsxs)("div",{className:"relative pl-2",children:[(0,t.jsx)("div",{className:"absolute left-4 top-1 bottom-1 border-l border-slate-300"}),W.map((e,s)=>{let a=s===W.length-1;return(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("div",{className:"absolute left-4 top-3 w-3 border-t border-slate-300"}),a&&(0,t.jsx)("div",{className:"absolute left-4 top-3 bottom-0 w-px bg-slate-50"}),(0,t.jsx)(e2,{row:e,isSelected:e.request_id===C.request_id,onClick:()=>{v(e.request_id),f?.(e)}})]},e.request_id)})]})}):(0,t.jsx)("div",{className:"py-1",children:W.map(e=>(0,t.jsx)(e2,{row:e,isSelected:e.request_id===C.request_id,onClick:()=>f?.(e)},e.request_id))})]})]}),(0,t.jsxs)("div",{className:"flex-1 flex flex-col overflow-hidden",children:[(0,t.jsx)(p.DrawerHeader,{log:C,onClose:d,onPrevious:E,onNext:L,statusLabel:z,statusColor:P,environment:B}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,t.jsx)(e$,{logEntry:R,isLoadingDetails:D,accessToken:u??null})})]})]})}):null}],502626),e.s([],3565)},95684,e=>{"use strict";var t=e.i(165370);e.s(["Pagination",()=>t.default])},307582,e=>{"use strict";var t=e.i(843476);e.s(["TimeCell",0,({utcTime:e})=>(0,t.jsx)("span",{style:{fontFamily:"monospace",width:"180px",display:"inline-block"},children:(e=>{try{return new Date(e).toLocaleString("en-US",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!0}).replace(",","")}catch(e){return"Error converting time"}})(e)})])},93648,245767,313793,291950,e=>{"use strict";var t=e.i(843476),s=e.i(271645),a=e.i(560445),l=e.i(207082),r=e.i(135214),i=e.i(500330),n=e.i(871943),o=e.i(360820),d=e.i(94629),c=e.i(152990),x=e.i(682830),m=e.i(269200),u=e.i(942232),p=e.i(977572),h=e.i(427612),g=e.i(64848),f=e.i(496020),y=e.i(592968);function j({keys:e,totalCount:a,isLoading:l,isFetching:r,pageIndex:b,pageSize:v,onPageChange:_}){let[N,w]=(0,s.useState)([{id:"deleted_at",desc:!0}]),[S,k]=(0,s.useState)({pageIndex:b,pageSize:v});s.default.useEffect(()=>{k({pageIndex:b,pageSize:v})},[b,v]);let T=[{id:"token",accessorKey:"token",header:"Key ID",size:150,maxSize:250,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s,children:(0,t.jsx)("span",{className:"font-mono text-blue-500 text-xs truncate block max-w-[250px]",children:s||"-"})})}},{id:"key_alias",accessorKey:"key_alias",header:"Key Alias",size:150,maxSize:200,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s,children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block max-w-[200px]",children:s??"-"})})}},{id:"team_alias",accessorKey:"team_alias",header:"Team Alias",size:120,maxSize:180,cell:e=>{let s=e.getValue();return(0,t.jsx)("span",{className:"truncate block max-w-[180px]",children:s||"-"})}},{id:"spend",accessorKey:"spend",header:"Spend (USD)",size:100,maxSize:140,cell:e=>(0,t.jsx)("span",{className:"block max-w-[140px]",children:(0,i.formatNumberWithCommas)(e.getValue(),4)})},{id:"max_budget",accessorKey:"max_budget",header:"Budget (USD)",size:110,maxSize:150,cell:e=>{let s=e.getValue();return(0,t.jsx)("span",{className:"block max-w-[150px]",children:null===s?"Unlimited":`$${(0,i.formatNumberWithCommas)(s)}`})}},{id:"user_email",accessorKey:"user_email",header:"User Email",size:160,maxSize:250,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s,children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block max-w-[250px]",children:s??"-"})})}},{id:"user_id",accessorKey:"user_id",header:"User ID",size:120,maxSize:200,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s||void 0,children:(0,t.jsx)("span",{className:"truncate block max-w-[200px]",children:s||"-"})})}},{id:"created_at",accessorKey:"created_at",header:"Created At",size:120,maxSize:140,cell:e=>{let s=e.getValue();return(0,t.jsx)("span",{className:"block max-w-[140px]",children:s?new Date(s).toLocaleDateString():"-"})}},{id:"created_by",accessorKey:"created_by",header:"Created By",size:120,maxSize:180,cell:e=>{let s=e.row.original.created_by;return(0,t.jsx)(y.Tooltip,{title:s||void 0,children:(0,t.jsx)("span",{className:"truncate block max-w-[180px]",children:s||"-"})})}},{id:"deleted_at",accessorKey:"deleted_at",header:"Deleted At",size:120,maxSize:140,cell:e=>{let s=e.row.original.deleted_at;return(0,t.jsx)("span",{className:"block max-w-[140px]",children:s?new Date(s).toLocaleDateString():"-"})}},{id:"deleted_by",accessorKey:"deleted_by",header:"Deleted By",size:120,maxSize:180,cell:e=>{let s=e.row.original.deleted_by;return(0,t.jsx)(y.Tooltip,{title:s||void 0,children:(0,t.jsx)("span",{className:"truncate block max-w-[180px]",children:s||"-"})})}}],C=(0,c.useReactTable)({data:e,columns:T,columnResizeMode:"onChange",columnResizeDirection:"ltr",state:{sorting:N,pagination:S},onSortingChange:w,onPaginationChange:e=>{let t="function"==typeof e?e(S):e;k(t),_(t.pageIndex)},getCoreRowModel:(0,x.getCoreRowModel)(),getSortedRowModel:(0,x.getSortedRowModel)(),getPaginationRowModel:(0,x.getPaginationRowModel)(),enableSorting:!0,manualSorting:!1,manualPagination:!0,pageCount:Math.ceil(a/v)}),{pageIndex:L}=C.getState().pagination,E=L*v+1,M=Math.min((L+1)*v,a),A=`${E} - ${M}`;return(0,t.jsx)("div",{className:"w-full h-full overflow-hidden",children:(0,t.jsxs)("div",{className:"border-b py-4 flex-1 overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between w-full mb-4",children:[l||r?(0,t.jsx)("span",{className:"inline-flex text-sm text-gray-700",children:"Loading..."}):(0,t.jsxs)("span",{className:"inline-flex text-sm text-gray-700",children:["Showing ",A," of ",a," results"]}),(0,t.jsxs)("div",{className:"inline-flex items-center gap-2",children:[l||r?(0,t.jsx)("span",{className:"text-sm text-gray-700",children:"Loading..."}):(0,t.jsxs)("span",{className:"text-sm text-gray-700",children:["Page ",L+1," of ",C.getPageCount()]}),(0,t.jsx)("button",{onClick:()=>C.previousPage(),disabled:l||r||!C.getCanPreviousPage(),className:"px-3 py-1 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Previous"}),(0,t.jsx)("button",{onClick:()=>C.nextPage(),disabled:l||r||!C.getCanNextPage(),className:"px-3 py-1 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Next"})]})]}),(0,t.jsx)("div",{className:"h-[75vh] overflow-auto",children:(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(m.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",style:{width:C.getCenterTotalSize()},children:[(0,t.jsx)(h.TableHead,{children:C.getHeaderGroups().map(e=>(0,t.jsx)(f.TableRow,{children:e.headers.map(e=>(0,t.jsx)(g.TableHeaderCell,{"data-header-id":e.id,className:"py-1 h-8 relative hover:bg-gray-50",style:{width:e.getSize(),maxWidth:e.column.columnDef.maxSize,position:"relative"},onMouseEnter:()=>{let t=document.querySelector(`[data-header-id="${e.id}"] .resizer`);t&&(t.style.opacity="0.5")},onMouseLeave:()=>{let t=document.querySelector(`[data-header-id="${e.id}"] .resizer`);t&&!e.column.getIsResizing()&&(t.style.opacity="0")},onClick:e.column.getToggleSortingHandler(),children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,c.flexRender)(e.column.columnDef.header,e.getContext())}),(0,t.jsx)("div",{className:"w-4",children:e.column.getIsSorted()?({asc:(0,t.jsx)(o.ChevronUpIcon,{className:"h-4 w-4 text-blue-500"}),desc:(0,t.jsx)(n.ChevronDownIcon,{className:"h-4 w-4 text-blue-500"})})[e.column.getIsSorted()]:(0,t.jsx)(d.SwitchVerticalIcon,{className:"h-4 w-4 text-gray-400"})}),(0,t.jsx)("div",{onDoubleClick:()=>e.column.resetSize(),onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:`resizer ${C.options.columnResizeDirection} ${e.column.getIsResizing()?"isResizing":""}`,style:{position:"absolute",right:0,top:0,height:"100%",width:"5px",background:e.column.getIsResizing()?"#3b82f6":"transparent",cursor:"col-resize",userSelect:"none",touchAction:"none",opacity:+!!e.column.getIsResizing()}})]})},e.id))},e.id))}),(0,t.jsx)(u.TableBody,{children:l||r?(0,t.jsx)(f.TableRow,{children:(0,t.jsx)(p.TableCell,{colSpan:T.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"🚅 Loading keys..."})})})}):e.length>0?C.getRowModel().rows.map(e=>(0,t.jsx)(f.TableRow,{className:"h-8",children:e.getVisibleCells().map(e=>(0,t.jsx)(p.TableCell,{style:{width:e.column.getSize(),maxWidth:e.column.columnDef.maxSize,whiteSpace:"pre-wrap",overflow:"hidden"},className:"py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap",children:(0,c.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(f.TableRow,{children:(0,t.jsx)(p.TableCell,{colSpan:T.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No deleted keys found"})})})})})]})})})})]})})}e.s(["default",0,function(){let{premiumUser:e}=(0,r.default)(),[i,n]=(0,s.useState)(0),[o]=(0,s.useState)(50),{data:d,isPending:c,isFetching:x}=(0,l.useDeletedKeys)(i+1,o);return(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[!e&&(0,t.jsx)(a.Alert,{type:"info",banner:!0,showIcon:!0,message:"Coming soon to Enterprise",description:"Deleted key auditing is graduating from beta into our Enterprise audit & compliance suite."}),(0,t.jsx)(j,{keys:d?.keys||[],totalCount:d?.total_count||0,isLoading:c,isFetching:x,pageIndex:i,pageSize:o,onPageChange:n})]})}],93648);var b=e.i(785242),v=e.i(389083),_=e.i(599724),N=e.i(355619);function w({teams:e,isLoading:a,isFetching:l}){let[r,j]=(0,s.useState)([{id:"deleted_at",desc:!0}]),b=[{id:"team_alias",accessorKey:"team_alias",header:"Team Name",size:150,maxSize:200,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s||void 0,children:(0,t.jsx)("span",{className:"truncate block max-w-[200px]",children:s||"-"})})}},{id:"team_id",accessorKey:"team_id",header:"Team ID",size:150,maxSize:250,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s,children:(0,t.jsx)("span",{className:"font-mono text-blue-500 text-xs truncate block max-w-[250px]",children:s||"-"})})}},{id:"created_at",accessorKey:"created_at",header:"Created",size:120,maxSize:140,cell:e=>{let s=e.getValue();return(0,t.jsx)("span",{className:"block max-w-[140px]",children:s?new Date(s).toLocaleDateString():"-"})}},{id:"spend",accessorKey:"spend",header:"Spend (USD)",size:100,maxSize:140,cell:e=>{let s=e.row.original.spend;return(0,t.jsx)("span",{className:"block max-w-[140px]",children:void 0!==s?(0,i.formatNumberWithCommas)(s,4):"-"})}},{id:"max_budget",accessorKey:"max_budget",header:"Budget (USD)",size:110,maxSize:150,cell:e=>{let s=e.getValue();return(0,t.jsx)("span",{className:"block max-w-[150px]",children:null==s?"No limit":`$${(0,i.formatNumberWithCommas)(s)}`})}},{id:"models",accessorKey:"models",header:"Models",size:200,maxSize:300,cell:e=>{let s=e.getValue();return Array.isArray(s)&&0!==s.length?(0,t.jsxs)("div",{className:"flex flex-wrap gap-1 max-w-[300px]",children:[s.slice(0,3).map((e,s)=>"all-proxy-models"===e?(0,t.jsx)(v.Badge,{size:"xs",color:"red",children:(0,t.jsx)(_.Text,{children:"All Proxy Models"})},s):(0,t.jsx)(v.Badge,{size:"xs",color:"blue",children:(0,t.jsx)(_.Text,{children:e.length>30?`${(0,N.getModelDisplayName)(e).slice(0,30)}...`:(0,N.getModelDisplayName)(e)})},s)),s.length>3&&(0,t.jsx)(v.Badge,{size:"xs",color:"gray",children:(0,t.jsxs)(_.Text,{children:["+",s.length-3," ",s.length-3==1?"more model":"more models"]})})]}):(0,t.jsx)(v.Badge,{size:"xs",color:"red",children:(0,t.jsx)(_.Text,{children:"All Proxy Models"})})}},{id:"organization_id",accessorKey:"organization_id",header:"Organization",size:150,maxSize:200,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s||void 0,children:(0,t.jsx)("span",{className:"truncate block max-w-[200px]",children:s||"-"})})}},{id:"deleted_at",accessorKey:"deleted_at",header:"Deleted At",size:120,maxSize:140,cell:e=>{let s=e.row.original.deleted_at;return(0,t.jsx)("span",{className:"block max-w-[140px]",children:s?new Date(s).toLocaleDateString():"-"})}},{id:"deleted_by",accessorKey:"deleted_by",header:"Deleted By",size:120,maxSize:180,cell:e=>{let s=e.row.original.deleted_by;return(0,t.jsx)(y.Tooltip,{title:s||void 0,children:(0,t.jsx)("span",{className:"truncate block max-w-[180px]",children:s||"-"})})}}],S=(0,c.useReactTable)({data:e,columns:b,columnResizeMode:"onChange",columnResizeDirection:"ltr",state:{sorting:r},onSortingChange:j,getCoreRowModel:(0,x.getCoreRowModel)(),getSortedRowModel:(0,x.getSortedRowModel)(),enableSorting:!0,manualSorting:!1});return(0,t.jsx)("div",{className:"w-full h-full overflow-hidden",children:(0,t.jsxs)("div",{className:"border-b py-4 flex-1 overflow-hidden",children:[(0,t.jsx)("div",{className:"flex items-center justify-between w-full mb-4",children:a||l?(0,t.jsx)("span",{className:"inline-flex text-sm text-gray-700",children:"Loading..."}):(0,t.jsxs)("span",{className:"inline-flex text-sm text-gray-700",children:["Showing ",e.length," ",1===e.length?"team":"teams"]})}),(0,t.jsx)("div",{className:"h-[75vh] overflow-auto",children:(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(m.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",style:{width:S.getCenterTotalSize()},children:[(0,t.jsx)(h.TableHead,{children:S.getHeaderGroups().map(e=>(0,t.jsx)(f.TableRow,{children:e.headers.map(e=>(0,t.jsx)(g.TableHeaderCell,{"data-header-id":e.id,className:"py-1 h-8 relative hover:bg-gray-50",style:{width:e.getSize(),maxWidth:e.column.columnDef.maxSize,position:"relative"},onMouseEnter:()=>{let t=document.querySelector(`[data-header-id="${e.id}"] .resizer`);t&&(t.style.opacity="0.5")},onMouseLeave:()=>{let t=document.querySelector(`[data-header-id="${e.id}"] .resizer`);t&&!e.column.getIsResizing()&&(t.style.opacity="0")},onClick:e.column.getToggleSortingHandler(),children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,c.flexRender)(e.column.columnDef.header,e.getContext())}),(0,t.jsx)("div",{className:"w-4",children:e.column.getIsSorted()?({asc:(0,t.jsx)(o.ChevronUpIcon,{className:"h-4 w-4 text-blue-500"}),desc:(0,t.jsx)(n.ChevronDownIcon,{className:"h-4 w-4 text-blue-500"})})[e.column.getIsSorted()]:(0,t.jsx)(d.SwitchVerticalIcon,{className:"h-4 w-4 text-gray-400"})}),(0,t.jsx)("div",{onDoubleClick:()=>e.column.resetSize(),onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:`resizer ${S.options.columnResizeDirection} ${e.column.getIsResizing()?"isResizing":""}`,style:{position:"absolute",right:0,top:0,height:"100%",width:"5px",background:e.column.getIsResizing()?"#3b82f6":"transparent",cursor:"col-resize",userSelect:"none",touchAction:"none",opacity:+!!e.column.getIsResizing()}})]})},e.id))},e.id))}),(0,t.jsx)(u.TableBody,{children:a||l?(0,t.jsx)(f.TableRow,{children:(0,t.jsx)(p.TableCell,{colSpan:b.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"🚅 Loading teams..."})})})}):e.length>0?S.getRowModel().rows.map(e=>(0,t.jsx)(f.TableRow,{className:"h-8",children:e.getVisibleCells().map(e=>(0,t.jsx)(p.TableCell,{style:{width:e.column.getSize(),maxWidth:e.column.columnDef.maxSize,whiteSpace:"pre-wrap",overflow:"hidden"},className:"py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap",children:(0,c.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(f.TableRow,{children:(0,t.jsx)(p.TableCell,{colSpan:b.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No deleted teams found"})})})})})]})})})})]})})}e.s(["default",0,function(){let{premiumUser:e}=(0,r.default)(),{data:s,isPending:l,isFetching:i}=(0,b.useDeletedTeams)(1,100);return(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[!e&&(0,t.jsx)(a.Alert,{type:"info",banner:!0,showIcon:!0,message:"Coming soon to Enterprise",description:"Deleted team auditing is graduating from beta into our Enterprise audit & compliance suite."}),(0,t.jsx)(w,{teams:s||[],isLoading:l,isFetching:i})]})}],245767);var S=e.i(663435);e.s(["default",0,({value:e,onChange:s})=>(0,t.jsx)(S.default,{value:e,onChange:s})],313793);var k=e.i(625901),T=e.i(56456),C=e.i(152473),L=e.i(199133),E=e.i(770914);let{Text:M}=e.i(898586).Typography;e.s(["PaginatedModelSelect",0,({value:e,onChange:a,placeholder:l="Select a model",style:r,pageSize:i=50,allowClear:n=!0,disabled:o=!1})=>{let[d,c]=(0,s.useState)(""),[x,m]=(0,C.useDebouncedState)("",{wait:300}),{data:u,fetchNextPage:p,hasNextPage:h,isFetchingNextPage:g,isLoading:f}=(0,k.useInfiniteModelInfo)(i,x||void 0),y=(0,s.useMemo)(()=>{if(!u?.pages)return[];let e=new Set,t=[];for(let s of u.pages)for(let a of s.data){let s=a.model_info?.id??"",l=a.model_name??"";!s||e.has(s)||(e.add(s),t.push({label:l?`${l} (${s})`:s,value:s,modelName:l,modelId:s}))}return t},[u]);return(0,t.jsx)(L.Select,{value:e||void 0,onChange:e=>{let t="string"==typeof e?e:Array.isArray(e)?e[0]??"":"";a?.(t)},placeholder:l,style:{width:"100%",...r},allowClear:n,disabled:o,showSearch:!0,filterOption:!1,onSearch:e=>{c(e),m(e)},searchValue:d,onPopupScroll:e=>{let t=e.currentTarget;(t.scrollTop+t.clientHeight)/t.scrollHeight>=.8&&h&&!g&&p()},loading:f,notFoundContent:f?(0,t.jsx)(T.LoadingOutlined,{spin:!0}):"No models found",options:y,optionRender:e=>{let{modelName:s,modelId:a}=e.data;return(0,t.jsx)(t.Fragment,{children:s?(0,t.jsxs)(E.Space,{direction:"vertical",children:[(0,t.jsxs)(E.Space,{direction:"horizontal",children:[(0,t.jsx)(M,{strong:!0,children:"Model name:"}),(0,t.jsx)(M,{ellipsis:!0,children:s})]}),(0,t.jsxs)(M,{ellipsis:!0,type:"secondary",children:["Model ID: ",a]})]}):(0,t.jsxs)(M,{ellipsis:!0,type:"secondary",children:["Model ID: ",a]})})},popupRender:e=>(0,t.jsxs)(t.Fragment,{children:[e,g&&(0,t.jsx)("div",{style:{textAlign:"center",padding:8},children:(0,t.jsx)(T.LoadingOutlined,{spin:!0})})]})})}],291950)},942161,e=>{"use strict";var t=e.i(843476),s=e.i(271645),a=e.i(266027),l=e.i(619273),r=e.i(291542),i=e.i(262218),n=e.i(311451),o=e.i(199133),d=e.i(464571),c=e.i(95684),x=e.i(482725),m=e.i(91979),u=e.i(56456),p=e.i(166540),h=e.i(764205),g=e.i(608856),f=e.i(898586),y=e.i(149192),j=e.i(166406),b=e.i(492030),v=e.i(304911);let{Text:_}=f.Typography,N={LiteLLM_VerificationToken:"Keys",LiteLLM_TeamTable:"Teams",LiteLLM_UserTable:"Users",LiteLLM_OrganizationTable:"Organizations",LiteLLM_ProxyModelTable:"Models"},w={created:"green",updated:"blue",deleted:"red",rotated:"orange"};function S({label:e,value:a}){let[l,r]=(0,s.useState)(!1),i=(0,s.useCallback)(async()=>{try{let e=JSON.stringify(a,null,2);if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(e);else{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select(),document.execCommand("copy"),document.body.removeChild(t)}r(!0),setTimeout(()=>r(!1),2e3)}catch(e){console.error("Copy failed:",e)}},[a]);return(0,t.jsxs)("div",{className:"bg-white rounded border overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center px-3 py-2 border-b bg-gray-50",children:[(0,t.jsx)("span",{className:"text-xs font-semibold text-gray-600",children:e}),(0,t.jsx)("button",{onClick:i,className:"p-1 hover:bg-gray-200 rounded text-gray-500 hover:text-gray-700 transition-colors",title:"Copy JSON",children:l?(0,t.jsx)(b.CheckOutlined,{className:"text-green-600"}):(0,t.jsx)(j.CopyOutlined,{})})]}),(0,t.jsx)("pre",{className:"p-3 bg-white text-xs font-mono overflow-auto max-h-96 whitespace-pre-wrap break-all m-0",children:JSON.stringify(a,null,2)})]})}function k({label:e,value:s}){return(0,t.jsxs)("div",{className:"flex items-start gap-2 py-1.5",children:[(0,t.jsx)("span",{className:"text-xs text-gray-500 w-36 shrink-0",children:e}),(0,t.jsx)("span",{className:"text-xs text-gray-900 break-all",children:s})]})}function T({log:e}){let{action:s,table_name:a,before_value:l,updated_values:r}=e,i="LiteLLM_VerificationToken"===a,n="updated"===s||"rotated"===s,o=l,d=r;if(n&&l&&r){let e={},t={};new Set([...Object.keys(l),...Object.keys(r)]).forEach(s=>{JSON.stringify(l[s])!==JSON.stringify(r[s])&&(s in l&&(e[s]=l[s]),s in r&&(t[s]=r[s]))}),Object.keys(l).forEach(s=>{s in r||s in e||(e[s]=l[s],t[s]=void 0)}),Object.keys(r).forEach(s=>{s in l||s in t||(t[s]=r[s],e[s]=void 0)}),o=Object.keys(e).length>0?e:{note:"No differing fields detected"},d=Object.keys(t).length>0?t:{note:"No differing fields detected"}}let c=(e,s)=>{if(!s||0===Object.keys(s).length)return(0,t.jsxs)("div",{className:"bg-white rounded border overflow-hidden",children:[(0,t.jsx)("div",{className:"flex items-center px-3 py-2 border-b bg-gray-50",children:(0,t.jsx)("span",{className:"text-xs font-semibold text-gray-600",children:e})}),(0,t.jsx)("p",{className:"px-3 py-3 text-xs text-gray-400 italic m-0",children:"N/A"})]});if(i&&n){let a=["token","spend","max_budget"];if(Object.keys(s).every(e=>a.includes(e))&&!("note"in s))return(0,t.jsxs)("div",{className:"bg-white rounded border overflow-hidden",children:[(0,t.jsx)("div",{className:"flex items-center px-3 py-2 border-b bg-gray-50",children:(0,t.jsx)("span",{className:"text-xs font-semibold text-gray-600",children:e})}),(0,t.jsxs)("div",{className:"px-3 py-3 space-y-1 text-xs",children:[void 0!==s.token&&(0,t.jsxs)("p",{children:[(0,t.jsx)("span",{className:"text-gray-500",children:"Token:"})," ",s.token??"N/A"]}),void 0!==s.spend&&(0,t.jsxs)("p",{children:[(0,t.jsx)("span",{className:"text-gray-500",children:"Spend:"})," $",Number(s.spend).toFixed(6)]}),void 0!==s.max_budget&&(0,t.jsxs)("p",{children:[(0,t.jsx)("span",{className:"text-gray-500",children:"Max Budget:"})," $",Number(s.max_budget).toFixed(6)]})]})]})}return(0,t.jsx)(S,{label:e,value:s})};return(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 mt-4",children:[c("Before",o),c("After",d)]})}function C({open:e,onClose:s,log:a}){if(!a)return null;let l=N[a.table_name]??a.table_name,r=w[a.action]??"default";return(0,t.jsxs)(g.Drawer,{placement:"right",width:"60%",open:e,onClose:s,closable:!1,mask:!0,maskClosable:!0,styles:{body:{padding:0,display:"flex",flexDirection:"column"},header:{display:"none"}},children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-6 py-4 border-b bg-white shrink-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(i.Tag,{color:r,className:"capitalize m-0",children:a.action}),(0,t.jsx)("span",{className:"text-sm text-gray-500",children:p.default.utc(a.updated_at).local().format("MMM D, YYYY HH:mm:ss")})]}),(0,t.jsx)("button",{onClick:s,className:"w-8 h-8 flex items-center justify-center rounded hover:bg-gray-100 text-gray-500","aria-label":"Close",children:(0,t.jsx)(y.CloseOutlined,{})})]}),(0,t.jsxs)("div",{className:"px-6 py-5",children:[(0,t.jsxs)("div",{className:"bg-gray-50 border rounded-lg p-4 mb-5",children:[(0,t.jsx)("p",{className:"text-xs font-semibold text-gray-700 mb-2 uppercase tracking-wide",children:"Details"}),(0,t.jsx)(k,{label:"Table",value:l}),(0,t.jsx)(k,{label:"Object ID",value:(0,t.jsx)(_,{copyable:!0,className:"font-mono text-xs",children:a.object_id})}),(0,t.jsx)(k,{label:"Changed By",value:(0,t.jsx)(v.default,{userId:a.changed_by})}),(0,t.jsx)(k,{label:"API Key (Hash)",value:a.changed_by_api_key?(0,t.jsx)(_,{copyable:!0,className:"font-mono text-xs break-all",children:a.changed_by_api_key}):"—"})]}),(0,t.jsx)(T,{log:a})]})]})}let{Search:L}=n.Input,E={LiteLLM_VerificationToken:"Keys",LiteLLM_TeamTable:"Teams",LiteLLM_UserTable:"Users",LiteLLM_OrganizationTable:"Organizations",LiteLLM_ProxyModelTable:"Models"},M={created:"green",updated:"blue",deleted:"red",rotated:"orange"};e.s(["default",0,function({userID:e,userRole:n,token:g,accessToken:f,isActive:y,premiumUser:j}){let[b,_]=(0,s.useState)(1),[N,w]=(0,s.useState)(""),[S,k]=(0,s.useState)(""),[T,A]=(0,s.useState)(""),[D,R]=(0,s.useState)(""),[O,I]=(0,s.useState)(void 0),[z,P]=(0,s.useState)(void 0),[B,F]=(0,s.useState)(null),[H,q]=(0,s.useState)(!1),Y=(0,a.useQuery)({queryKey:["audit_logs",b,50,N,S,T,D,O,z],queryFn:async()=>f&&g&&n&&e?(0,h.uiAuditLogsCall)({accessToken:f,page:b,page_size:50,params:{object_id:N||void 0,changed_by:S||void 0,object_key_hash:T||void 0,object_team_id:D||void 0,action:O||void 0,table_name:z||void 0,sort_by:"updated_at",sort_order:"desc"}}):{audit_logs:[],total:0,page:1,page_size:50,total_pages:0},enabled:!!f&&!!g&&!!n&&!!e&&y,placeholderData:l.keepPreviousData}),K=[{title:"Timestamp",dataIndex:"updated_at",key:"updated_at",width:200,render:e=>(0,t.jsx)("span",{className:"font-mono text-xs whitespace-nowrap",children:p.default.utc(e).local().format("MMM D, YYYY HH:mm:ss")})},{title:"Action",dataIndex:"action",key:"action",width:100,render:e=>(0,t.jsx)(i.Tag,{color:M[e]??"default",className:"capitalize",children:e})},{title:"Table",dataIndex:"table_name",key:"table_name",width:130,render:e=>E[e]??e},{title:"Object ID",dataIndex:"object_id",key:"object_id",render:e=>(0,t.jsx)("span",{className:"font-mono text-xs",children:e})},{title:"Changed By",dataIndex:"changed_by",key:"changed_by",width:200,render:e=>(0,t.jsx)(v.default,{userId:e})},{title:"API Key (Hash)",dataIndex:"changed_by_api_key",key:"changed_by_api_key",width:140,render:e=>e?(0,t.jsxs)("span",{className:"font-mono text-xs",children:[e.slice(0,12),"…"]}):"—"}];if(!j)return(0,t.jsxs)("div",{style:{textAlign:"center",marginTop:"20px"},children:[(0,t.jsx)("h1",{style:{display:"block",marginBottom:"10px"},children:"✨ Enterprise Feature."}),(0,t.jsx)("p",{style:{display:"block",marginBottom:"10px"},children:"This is a LiteLLM Enterprise feature, and requires a valid key to use."}),(0,t.jsx)("p",{style:{display:"block",marginBottom:"20px",fontStyle:"italic"},children:"Here's a preview of what Audit Logs offer:"}),(0,t.jsx)("img",{src:"../ui/assets/audit-logs-preview.png",alt:"Audit Logs Preview",style:{maxWidth:"100%",maxHeight:"700px",borderRadius:"8px",boxShadow:"0 4px 8px rgba(0,0,0,0.1)",margin:"0 auto"},onError:e=>{e.target.style.display="none"}})]});let $=Y.data?.audit_logs??[],U=Y.data?.total??0;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow",children:[(0,t.jsxs)("div",{className:"border-b px-6 py-4",children:[(0,t.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,t.jsx)("h1",{className:"text-xl font-semibold",children:"Audit Logs"})}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,t.jsx)(L,{placeholder:"Object ID",allowClear:!0,style:{width:200},onSearch:e=>{w(e),_(1)},onChange:e=>{e.target.value||(w(""),_(1))}}),(0,t.jsx)(L,{placeholder:"Changed By",allowClear:!0,style:{width:180},onSearch:e=>{k(e),_(1)},onChange:e=>{e.target.value||(k(""),_(1))}}),(0,t.jsx)(L,{placeholder:"Team ID",allowClear:!0,style:{width:180},onSearch:e=>{R(e),_(1)},onChange:e=>{e.target.value||(R(""),_(1))}}),(0,t.jsx)(L,{placeholder:"Key Hash",allowClear:!0,style:{width:180},onSearch:e=>{A(e),_(1)},onChange:e=>{e.target.value||(A(""),_(1))}}),(0,t.jsx)(o.Select,{placeholder:"All Actions",allowClear:!0,style:{width:140},options:[{label:"Created",value:"created"},{label:"Updated",value:"updated"},{label:"Deleted",value:"deleted"},{label:"Rotated",value:"rotated"}],onChange:e=>{I(e),_(1)}}),(0,t.jsx)(o.Select,{placeholder:"All Tables",allowClear:!0,style:{width:150},options:[{label:"Keys",value:"LiteLLM_VerificationToken"},{label:"Teams",value:"LiteLLM_TeamTable"},{label:"Users",value:"LiteLLM_UserTable"},{label:"Organizations",value:"LiteLLM_OrganizationTable"},{label:"Models",value:"LiteLLM_ProxyModelTable"}],onChange:e=>{P(e),_(1)}}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,t.jsx)(d.Button,{icon:(0,t.jsx)(m.ReloadOutlined,{spin:Y.isFetching}),onClick:()=>Y.refetch(),disabled:Y.isFetching}),(0,t.jsx)(c.Pagination,{current:b,pageSize:50,total:U,showTotal:e=>`${e} total`,showSizeChanger:!1,size:"small",onChange:e=>_(e)})]})]})]}),(0,t.jsx)(r.Table,{columns:K,dataSource:$,rowKey:"id",loading:{spinning:Y.isLoading,indicator:(0,t.jsx)(x.Spin,{indicator:(0,t.jsx)(u.LoadingOutlined,{spin:!0}),size:"small"})},size:"small",pagination:!1,onRow:e=>({onClick:()=>{F(e),q(!0)},style:{cursor:"pointer"}})})]}),(0,t.jsx)(C,{open:H,onClose:()=>q(!1),log:B})]})}],942161)},245099,e=>{"use strict";var t=e.i(843476),s=e.i(500330),a=(e.i(389083),e.i(994388)),l=e.i(592968);e.i(271645);var r=e.i(916925),i=e.i(446891),n=e.i(307582),o=e.i(97859);let d=({size:e=12})=>(0,t.jsx)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"flex-shrink-0 text-gray-400",children:(0,t.jsx)("path",{d:"M12 3l1.912 5.813a2 2 0 0 0 1.275 1.275L21 12l-5.813 1.912a2 2 0 0 0-1.275 1.275L12 21l-1.912-5.813a2 2 0 0 0-1.275-1.275L3 12l5.813-1.912a2 2 0 0 0 1.275-1.275L12 3z"})}),c=({size:e=10})=>(0,t.jsx)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"flex-shrink-0",children:(0,t.jsx)("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"})}),x=({size:e=12})=>(0,t.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"flex-shrink-0",children:[(0,t.jsx)("path",{d:"M12 8V4H8"}),(0,t.jsx)("rect",{width:"16",height:"12",x:"4",y:"8",rx:"2"}),(0,t.jsx)("path",{d:"M2 14h2"}),(0,t.jsx)("path",{d:"M20 14h2"}),(0,t.jsx)("path",{d:"M15 13v2"}),(0,t.jsx)("path",{d:"M9 13v2"})]}),m=({count:e})=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-blue-50 text-blue-700 border border-blue-200 rounded-full text-[11px] font-medium whitespace-nowrap",children:[(0,t.jsx)(d,{}),null!=e?e:"LLM"]}),u=({count:e})=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-amber-50 text-amber-700 border border-amber-200 rounded-full text-[11px] font-medium whitespace-nowrap",children:[(0,t.jsx)(c,{}),null!=e?e:"MCP"]}),p=({count:e})=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-violet-50 text-violet-700 border border-violet-200 rounded-full text-[11px] font-medium whitespace-nowrap",children:[(0,t.jsx)(x,{}),null!=e?e:"Agent"]}),h=({label:e,field:s,sortBy:a,sortOrder:l,onSortChange:r})=>(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{children:e}),(0,t.jsx)(i.TableHeaderSortDropdown,{sortState:a===s&&l,onSortChange:e=>{!1===e?r("startTime","desc"):r(s,e)}})]}),g=e=>[{header:e?()=>(0,t.jsx)(h,{label:"Time",field:"startTime",sortBy:e.sortBy,sortOrder:e.sortOrder,onSortChange:e.onSortChange}):"Time",accessorKey:"startTime",cell:e=>(0,t.jsx)(n.TimeCell,{utcTime:e.getValue()})},{header:"Type",id:"type",cell:e=>{let s=e.row.original,a=s.session_total_count||1,r=o.MCP_CALL_TYPES.includes(s.call_type),i=o.AGENT_CALL_TYPES.includes(s.call_type),n=s.session_llm_count??(r||i?0:a),h=s.session_agent_count??(i?a:0),g=s.session_mcp_count??(r?a:0);if(r)return(0,t.jsx)(u,{});if(i&&a<=1)return(0,t.jsx)(p,{});if(a<=1)return(0,t.jsx)(m,{});let f=(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-blue-50 text-blue-700 border border-blue-200 rounded-full text-[11px] font-medium whitespace-nowrap",children:[(0,t.jsx)(d,{}),(0,t.jsx)("span",{children:a}),h>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-blue-300",children:"·"}),(0,t.jsx)(x,{size:10})]}),g>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-blue-300",children:"·"}),(0,t.jsx)(c,{})]})]}),y=[n>0&&`${n} LLM`,h>0&&`${h} Agent`,g>0&&`${g} MCP`].filter(Boolean);return(0,t.jsx)(l.Tooltip,{title:y.join(" • "),children:f})}},{header:"Status",accessorKey:"metadata.status",cell:e=>{let s="failure"!==(e.getValue()||"Success").toLowerCase();return(0,t.jsx)("span",{className:`px-2 py-1 rounded-md text-xs font-medium inline-block text-center w-16 ${s?"bg-green-100 text-green-800":"bg-red-100 text-red-800"}`,children:s?"Success":"Failure"})}},{header:"Session ID",accessorKey:"session_id",cell:e=>{let s=String(e.getValue()||""),r=e.row.original.onSessionClick;return(0,t.jsx)(l.Tooltip,{title:String(e.getValue()||""),children:(0,t.jsx)(a.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal text-xs max-w-[15ch] truncate block",onClick:()=>r?.(s),children:String(e.getValue()||"")})})}},{header:"Request ID",accessorKey:"request_id",cell:e=>(0,t.jsx)(l.Tooltip,{title:String(e.getValue()||""),children:(0,t.jsx)("span",{className:"font-mono text-xs max-w-[15ch] truncate block",children:String(e.getValue()||"")})})},{header:e?()=>(0,t.jsx)(h,{label:"Cost",field:"spend",sortBy:e.sortBy,sortOrder:e.sortOrder,onSortChange:e.onSortChange}):"Cost",accessorKey:"spend",cell:e=>{let a=e.row.original,r=a.mcp_tool_call_count||0,i=a.mcp_tool_call_spend||0;return(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)(l.Tooltip,{title:`$${String(e.getValue()||0)}`,children:(0,t.jsx)("span",{children:(0,s.getSpendString)(e.getValue()||0)})}),r>0&&i>0&&(0,t.jsxs)("span",{className:"text-[10px] text-amber-600",children:["incl. ",(0,s.getSpendString)(i)," from ",r," MCP"]})]})}},{header:e?()=>(0,t.jsx)(h,{label:"Duration (s)",field:"request_duration_ms",sortBy:e.sortBy,sortOrder:e.sortOrder,onSortChange:e.onSortChange}):"Duration (s)",accessorKey:"request_duration_ms",cell:e=>{let s=e.getValue();if(null==s)return(0,t.jsx)("span",{children:"-"});let a=(s/1e3).toFixed(2);return(0,t.jsx)(l.Tooltip,{title:`${s}ms`,children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:a})})}},{header:e?()=>(0,t.jsx)(h,{label:"TTFT (s)",field:"ttft_ms",sortBy:e.sortBy,sortOrder:e.sortOrder,onSortChange:e.onSortChange}):"TTFT (s)",accessorKey:"completionStartTime",cell:e=>{let s=e.row.original,a=e.getValue();if(!a||a===s.endTime)return(0,t.jsx)("span",{children:"-"});let r=new Date(a).getTime()-new Date(s.startTime).getTime();if(r<=0)return(0,t.jsx)("span",{children:"-"});let i=(r/1e3).toFixed(2);return(0,t.jsx)(l.Tooltip,{title:`${r}ms`,children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:i})})}},{header:"Team Name",accessorKey:"metadata.user_api_key_team_alias",cell:e=>(0,t.jsx)(l.Tooltip,{title:String(e.getValue()||"-"),children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:String(e.getValue()||"-")})})},{header:"Key Hash",accessorKey:"metadata.user_api_key",cell:e=>{let s=String(e.getValue()||"-"),a=e.row.original.onKeyHashClick;return(0,t.jsx)(l.Tooltip,{title:s,children:(0,t.jsx)("span",{className:"font-mono max-w-[15ch] truncate block cursor-pointer hover:text-blue-600",onClick:()=>a?.(s),children:s})})}},{header:"Key Name",accessorKey:"metadata.user_api_key_alias",cell:e=>(0,t.jsx)(l.Tooltip,{title:String(e.getValue()||"-"),children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:String(e.getValue()||"-")})})},{header:e?()=>(0,t.jsx)(h,{label:"Model",field:"model",sortBy:e.sortBy,sortOrder:e.sortOrder,onSortChange:e.onSortChange}):"Model",accessorKey:"model",cell:e=>{let s=e.row.original,a=s.custom_llm_provider,i=String(e.getValue()||"");return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[a&&(0,t.jsx)("img",{src:s.metadata?.mcp_tool_call_metadata?.mcp_server_logo_url?s.metadata.mcp_tool_call_metadata.mcp_server_logo_url:a?(0,r.getProviderLogoAndName)(a).logo:"",alt:"",className:"w-4 h-4",onError:e=>{e.target.style.display="none"}}),(0,t.jsx)(l.Tooltip,{title:i,children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:i})})]})}},{header:e?()=>(0,t.jsx)(h,{label:"Tokens",field:"total_tokens",sortBy:e.sortBy,sortOrder:e.sortOrder,onSortChange:e.onSortChange}):"Tokens",accessorKey:"total_tokens",cell:e=>{let s=e.row.original;return(0,t.jsxs)("span",{className:"text-sm",children:[String(s.total_tokens||"0"),(0,t.jsxs)("span",{className:"text-gray-400 text-xs ml-1",children:["(",String(s.prompt_tokens||"0"),"+",String(s.completion_tokens||"0"),")"]})]})}},{header:"Internal User",accessorKey:"user",cell:e=>(0,t.jsx)(l.Tooltip,{title:String(e.getValue()||"-"),children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:String(e.getValue()||"-")})})},{header:"End User",accessorKey:"end_user",cell:e=>(0,t.jsx)(l.Tooltip,{title:String(e.getValue()||"-"),children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:String(e.getValue()||"-")})})},{header:"Tags",accessorKey:"request_tags",cell:e=>{let s=e.getValue();if(!s||0===Object.keys(s).length)return"-";let a=Object.entries(s),r=a[0],i=a.slice(1);return(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:(0,t.jsx)(l.Tooltip,{title:(0,t.jsx)("div",{className:"flex flex-col gap-1",children:a.map(([e,s])=>(0,t.jsxs)("span",{children:[e,": ",String(s)]},e))}),children:(0,t.jsxs)("span",{className:"px-2 py-1 bg-gray-100 rounded-full text-xs",children:[r[0],": ",String(r[1]),i.length>0&&` +${i.length}`]})})})}}];g(),e.s(["createColumns",0,g],245099)},339086,504809,e=>{"use strict";e.i(843476);var t=e.i(271645);e.s([],339086);var s=e.i(166540),a=e.i(764205),l=e.i(266027),r=e.i(633627),i=e.i(374009),n=e.i(700514);let o={TEAM_ID:"Team ID",KEY_HASH:"Key Hash",REQUEST_ID:"Request ID",MODEL:"Model",PUBLIC_MODEL_OR_SEARCH_TOOL:"Public model / search tool",USER_ID:"User ID",END_USER:"End User",STATUS:"Status",KEY_ALIAS:"Key Alias",ERROR_CODE:"Error Code",ERROR_MESSAGE:"Error Message"};e.s(["FILTER_KEYS",0,o,"useLogFilterLogic",0,function({logs:e,accessToken:d,startTime:c,endTime:x,pageSize:m=n.defaultPageSize,isCustomDate:u,setCurrentPage:p,userID:h,userRole:g,sortBy:f="startTime",sortOrder:y="desc",currentPage:j=1}){let b=(0,t.useMemo)(()=>({[o.TEAM_ID]:"",[o.KEY_HASH]:"",[o.REQUEST_ID]:"",[o.MODEL]:"",[o.PUBLIC_MODEL_OR_SEARCH_TOOL]:"",[o.USER_ID]:"",[o.END_USER]:"",[o.STATUS]:"",[o.KEY_ALIAS]:"",[o.ERROR_CODE]:"",[o.ERROR_MESSAGE]:""}),[]),[v,_]=(0,t.useState)(b),[N,w]=(0,t.useState)(null),S=(0,t.useRef)(0),k=(0,t.useRef)(v),T=(0,t.useRef)(!1),C=(0,t.useCallback)(async(e,t=1)=>{if(!d)return;console.log("Filters being sent to API:",e);let l=Date.now();S.current=l;let r=(0,s.default)(c).utc().format("YYYY-MM-DD HH:mm:ss"),i=u?(0,s.default)(x).utc().format("YYYY-MM-DD HH:mm:ss"):(0,s.default)().utc().format("YYYY-MM-DD HH:mm:ss");try{let s=await (0,a.uiSpendLogsCall)({accessToken:d,start_date:r,end_date:i,page:t,page_size:m,params:{api_key:e[o.KEY_HASH]||void 0,team_id:e[o.TEAM_ID]||void 0,request_id:e[o.REQUEST_ID]||void 0,user_id:e[o.USER_ID]||void 0,end_user:e[o.END_USER]||void 0,status_filter:e[o.STATUS]||void 0,model_id:e[o.MODEL]||void 0,model:e[o.PUBLIC_MODEL_OR_SEARCH_TOOL]||void 0,key_alias:e[o.KEY_ALIAS]||void 0,error_code:e[o.ERROR_CODE]||void 0,error_message:e[o.ERROR_MESSAGE]||void 0,sort_by:f,sort_order:y}});l===S.current&&w({...s,data:s.data??[]})}catch(e){console.error("Error searching users:",e),w({data:[],total:0,page:1,page_size:m,total_pages:0})}},[d,c,x,u,m,f,y]),L=(0,t.useMemo)(()=>(0,i.default)((e,t)=>C(e,t),300),[C]);(0,t.useEffect)(()=>()=>L.cancel(),[L]);let E=(0,t.useMemo)(()=>!!(v[o.KEY_ALIAS]||v[o.KEY_HASH]||v[o.REQUEST_ID]||v[o.USER_ID]||v[o.END_USER]||v[o.ERROR_CODE]||v[o.ERROR_MESSAGE]||v[o.MODEL]||v[o.PUBLIC_MODEL_OR_SEARCH_TOOL]),[v]);(0,t.useEffect)(()=>{k.current=v,T.current=E},[v,E]),(0,t.useEffect)(()=>{T.current&&d&&(L.cancel(),C(k.current,j))},[f,y,j,c,x,u]);let M=(0,t.useMemo)(()=>{if(!e||!e.data)return{data:[],total:0,page:1,page_size:m,total_pages:0};if(E)return e;let t=[...e.data];if(v[o.TEAM_ID]&&(t=t.filter(e=>e.team_id===v[o.TEAM_ID])),v[o.STATUS]&&(t=t.filter(e=>"success"===v[o.STATUS]?!e.status||"success"===e.status:e.status===v[o.STATUS])),v[o.MODEL]&&(t=t.filter(e=>e.model_id===v[o.MODEL])),v[o.PUBLIC_MODEL_OR_SEARCH_TOOL]){let e=v[o.PUBLIC_MODEL_OR_SEARCH_TOOL];t=t.filter(t=>t.model===e)}return v[o.KEY_HASH]&&(t=t.filter(e=>e.api_key===v[o.KEY_HASH])),v[o.END_USER]&&(t=t.filter(e=>e.end_user===v[o.END_USER])),v[o.ERROR_CODE]&&(t=t.filter(e=>{let t=(e.metadata||{}).error_information;return t&&t.error_code===v[o.ERROR_CODE]})),{data:t,total:e.total,page:e.page,page_size:e.page_size,total_pages:e.total_pages}},[e,v,E]),A=(0,t.useMemo)(()=>E?null!==N?N:{data:[],total:0,page:1,page_size:m,total_pages:0}:M,[E,N,M]),{data:D}=(0,l.useQuery)({queryKey:["allTeamsForLogFilters",d],queryFn:async()=>d&&await (0,r.fetchAllTeams)(d)||[],enabled:!!d}),R=(0,t.useCallback)((e=j)=>{E&&d&&(L.cancel(),C(v,e))},[E,d,v,j,C,L]);return{filters:v,filteredLogs:A,hasBackendFilters:E,allTeams:D,handleFilterChange:e=>{_(t=>{let s={...t,...e};for(let e of Object.keys(b))e in s||(s[e]=b[e]);return JSON.stringify(s)!==JSON.stringify(t)&&(p(1),w(null),L(s,1)),s})},handleFilterReset:()=>{_(b),w(null),L.cancel(),p(1)},refetchWithFilters:R}}],504809)},936190,e=>{"use strict";var t=e.i(843476),s=e.i(619273),a=e.i(266027),l=e.i(912598),r=e.i(166540),i=e.i(271645);e.i(517442),e.i(500330);var n=e.i(772345),o=e.i(793130),d=e.i(197647),c=e.i(653824),x=e.i(881073),m=e.i(404206),u=e.i(723731),p=e.i(464571),h=e.i(708347),g=e.i(93648),f=e.i(245767),y=e.i(313793),j=e.i(50882),b=e.i(291950),v=e.i(969550),_=e.i(764205),N=e.i(20147),w=e.i(942161),S=e.i(245099);e.i(70969);var k=e.i(97859);e.i(70635),e.i(339086);var T=e.i(504809);e.i(3565);var C=e.i(502626);e.i(727749),e.i(867612);var L=e.i(149121);e.i(331052),e.s(["default",0,function({accessToken:e,token:E,userRole:M,userID:A,premiumUser:D}){let[R,O]=(0,i.useState)(""),[I,z]=(0,i.useState)(!1),[P,B]=(0,i.useState)(!1),[F,H]=(0,i.useState)(1),[q]=(0,i.useState)(50),Y=(0,i.useRef)(null),K=(0,i.useRef)(null),$=(0,i.useRef)(null),[U,W]=(0,i.useState)((0,r.default)().subtract(24,"hours").format("YYYY-MM-DDTHH:mm")),[V,G]=(0,i.useState)((0,r.default)().format("YYYY-MM-DDTHH:mm")),[J,Q]=(0,i.useState)(!1),[X,Z]=(0,i.useState)(!1),[ee,et]=(0,i.useState)(""),[es,ea]=(0,i.useState)(""),[el,er]=(0,i.useState)(""),[ei,en]=(0,i.useState)(""),[eo,ed]=(0,i.useState)(""),[ec,ex]=(0,i.useState)(null),[em,eu]=(0,i.useState)(null),[ep,eh]=(0,i.useState)(""),[eg,ef]=(0,i.useState)(""),[ey,ej]=(0,i.useState)(M&&h.internalUserRoles.includes(M)),[eb,ev]=(0,i.useState)("request logs"),[e_,eN]=(0,i.useState)(null),[ew,eS]=(0,i.useState)(!1),[ek,eT]=(0,i.useState)(null),[eC,eL]=(0,i.useState)("startTime"),[eE,eM]=(0,i.useState)("desc"),[eA,eD]=(0,i.useState)(!0);(0,l.useQueryClient)();let[eR,eO]=(0,i.useState)(()=>{let e=sessionStorage.getItem("isLiveTail");return null===e||JSON.parse(e)});(0,i.useEffect)(()=>{sessionStorage.setItem("isLiveTail",JSON.stringify(eR))},[eR]);let[eI,ez]=(0,i.useState)({value:24,unit:"hours"});(0,i.useEffect)(()=>{(async()=>{em&&e&&ex({...(await (0,_.keyInfoV1Call)(e,em)).info,token:em,api_key:em})})()},[em,e]),(0,i.useEffect)(()=>{function e(e){Y.current&&!Y.current.contains(e.target)&&B(!1),K.current&&!K.current.contains(e.target)&&z(!1),$.current&&!$.current.contains(e.target)&&Z(!1)}return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,i.useEffect)(()=>{M&&h.internalUserRoles.includes(M)&&ej(!0)},[M]);let eP=(0,a.useQuery)({queryKey:["logs","table",F,q,U,V,el,ei,ey?A:null,ep,eo,eC,eE],queryFn:async()=>{if(!e||!E||!M||!A)return{data:[],total:0,page:1,page_size:q,total_pages:0};let t=(0,r.default)(U).utc().format("YYYY-MM-DD HH:mm:ss"),s=J?(0,r.default)(V).utc().format("YYYY-MM-DD HH:mm:ss"):(0,r.default)().utc().format("YYYY-MM-DD HH:mm:ss");return await (0,_.uiSpendLogsCall)({accessToken:e,start_date:t,end_date:s,page:F,page_size:q,params:{api_key:ei||void 0,team_id:el||void 0,user_id:ey?A??void 0:void 0,end_user:eg||void 0,status_filter:ep||void 0,model_id:eo||void 0,sort_by:eC,sort_order:eE}})},enabled:!!e&&!!E&&!!M&&!!A&&"request logs"===eb&&eA,refetchInterval:!!eR&&1===F&&15e3,placeholderData:s.keepPreviousData,refetchIntervalInBackground:!0}),eB=(0,i.useDeferredValue)(eP.isFetching),eF=eP.isFetching||eB,eH=eP.data||{data:[],total:0,page:1,page_size:q||10,total_pages:1},{filters:eq,filteredLogs:eY,hasBackendFilters:eK,allTeams:e$,handleFilterChange:eU,handleFilterReset:eW,refetchWithFilters:eV}=(0,T.useLogFilterLogic)({logs:eH,accessToken:e,startTime:U,endTime:V,pageSize:q,isCustomDate:J,setCurrentPage:H,userID:A,userRole:M,sortBy:eC,sortOrder:eE,currentPage:F}),eG=(0,i.useCallback)(()=>{eW(),W((0,r.default)().subtract(24,"hours").format("YYYY-MM-DDTHH:mm")),G((0,r.default)().format("YYYY-MM-DDTHH:mm")),Q(!1),ez({value:24,unit:"hours"}),H(1)},[eW]);if((0,i.useEffect)(()=>{eD(!eK)},[eK]),(0,i.useEffect)(()=>{e&&(eq["Team ID"]?er(eq["Team ID"]):er(""),eh(eq.Status||""),ed(eq.Model||""),ef(eq["End User"]||""),en(eq["Key Hash"]||""))},[eq,e]),!e||!E||!M||!A)return null;let eJ=eY.data.filter(e=>!R||e.request_id.includes(R)||e.model.includes(R)||e.user&&e.user.includes(R)),eQ=eJ.reduce((e,t)=>(t.session_id&&(e[t.session_id]||(e[t.session_id]={llm:0,agent:0,mcp:0}),k.MCP_CALL_TYPES.includes(t.call_type)?e[t.session_id].mcp+=1:k.AGENT_CALL_TYPES.includes(t.call_type)?e[t.session_id].agent+=1:e[t.session_id].llm+=1),e),{}),eX=new Map;for(let e of eJ){if(!e.session_id||1>=(e.session_total_count||1))continue;let t=k.MCP_CALL_TYPES.includes(e.call_type),s=eX.get(e.session_id);s&&(!s.isMcp||t)||eX.set(e.session_id,{requestId:e.request_id,isMcp:t})}let eZ=eJ.map(e=>{let t=e.session_id?eQ[e.session_id]:void 0;return{...e,request_duration_ms:e.request_duration_ms,session_llm_count:t?.llm??void 0,session_mcp_count:t?.mcp??void 0,session_agent_count:t?.agent??void 0,onKeyHashClick:e=>eu(e),onSessionClick:t=>{t&&(eT(t),eN(e),eS(!0))}}}).filter(e=>!e.session_id||1>=(e.session_total_count||1)||eX.get(e.session_id)?.requestId===e.request_id)||[],e0=[{name:"Team ID",label:"Team ID",customComponent:y.default},{name:"Status",label:"Status",isSearchable:!1,options:[{label:"Success",value:"success"},{label:"Failure",value:"failure"}]},{name:"Model",label:"Model",customComponent:b.PaginatedModelSelect},{name:T.FILTER_KEYS.PUBLIC_MODEL_OR_SEARCH_TOOL,label:"Public model / search tool",isSearchable:!1},{name:"Key Alias",label:"Key Alias",customComponent:j.PaginatedKeyAliasSelect},{name:"End User",label:"End User",isSearchable:!0,searchFn:async t=>{if(!e)return[];let s=await (0,_.allEndUsersCall)(e);return(s?.map(e=>e.user_id)||[]).filter(e=>e.toLowerCase().includes(t.toLowerCase())).map(e=>({label:e,value:e}))}},{name:"Error Code",label:"Error Code",isSearchable:!0,searchFn:async e=>{if(!e)return k.ERROR_CODE_OPTIONS;let t=e.toLowerCase(),s=k.ERROR_CODE_OPTIONS.filter(e=>e.label.toLowerCase().includes(t));return!k.ERROR_CODE_OPTIONS.some(t=>t.value===e.trim())&&e.trim()&&s.push({label:`Use custom code: ${e.trim()}`,value:e.trim()}),s}},{name:"Key Hash",label:"Key Hash",isSearchable:!1},{name:"Error Message",label:"Error Message",isSearchable:!1}],e1=k.QUICK_SELECT_OPTIONS.find(e=>e.value===eI.value&&e.unit===eI.unit),e2=J?((e,t,s)=>{if(e)return`${(0,r.default)(t).format("MMM D, h:mm A")} - ${(0,r.default)(s).format("MMM D, h:mm A")}`;let a=(0,r.default)(),l=(0,r.default)(t),i=a.diff(l,"minutes");if(i>=0&&i<2)return"Last 1 Minute";if(i>=2&&i<16)return"Last 15 Minutes";if(i>=16&&i<61)return"Last Hour";let n=a.diff(l,"hours");return n>=1&&n<5?"Last 4 Hours":n>=5&&n<25?"Last 24 Hours":n>=25&&n<169?"Last 7 Days":`${l.format("MMM D")} - ${a.format("MMM D")}`})(J,U,V):e1?.label;return(0,t.jsxs)("div",{className:"w-full max-w-screen p-6 overflow-x-hidden box-border",children:[(0,t.jsxs)(c.TabGroup,{defaultIndex:0,onIndexChange:e=>ev(0===e?"request logs":"audit logs"),children:[(0,t.jsxs)(x.TabList,{children:[(0,t.jsx)(d.Tab,{children:"Request Logs"}),(0,t.jsx)(d.Tab,{children:"Audit Logs"}),(0,t.jsx)(d.Tab,{children:"Deleted Keys"}),(0,t.jsx)(d.Tab,{children:"Deleted Teams"})]}),(0,t.jsxs)(u.TabPanels,{children:[(0,t.jsxs)(m.TabPanel,{children:[(0,t.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,t.jsx)("h1",{className:"text-xl font-semibold",children:"Request Logs"})}),ec&&em&&ec.api_key===em?(0,t.jsx)(N.default,{keyId:em,keyData:ec,teams:e$??[],onClose:()=>eu(null),backButtonText:"Back to Logs"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(v.default,{options:e0,onApplyFilters:eU,onResetFilters:eG}),(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow w-full max-w-full box-border",children:[(0,t.jsx)("div",{className:"border-b px-6 py-4 w-full max-w-full box-border",children:(0,t.jsxs)("div",{className:"flex flex-col md:flex-row items-start md:items-center justify-between space-y-4 md:space-y-0 w-full max-w-full box-border",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3 w-full max-w-full box-border",children:[(0,t.jsxs)("div",{className:"relative w-64 min-w-0 flex-shrink-0",children:[(0,t.jsx)("input",{type:"text",placeholder:"Search by Request ID",className:"w-full px-3 py-2 pl-8 border rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",value:R,onChange:e=>O(e.target.value)}),(0,t.jsx)("svg",{className:"absolute left-2.5 top-2.5 h-4 w-4 text-gray-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 min-w-0 flex-shrink",children:[(0,t.jsxs)("div",{className:"relative z-50",ref:$,children:[(0,t.jsxs)("button",{onClick:()=>Z(!X),className:"px-3 py-2 text-sm border rounded-md hover:bg-gray-50 flex items-center gap-2",children:[(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"})}),e2]}),X&&(0,t.jsx)("div",{className:"absolute right-0 mt-2 w-64 bg-white rounded-lg shadow-lg border p-2 z-50",children:(0,t.jsxs)("div",{className:"space-y-1",children:[k.QUICK_SELECT_OPTIONS.map(e=>(0,t.jsx)("button",{className:`w-full px-3 py-2 text-left text-sm hover:bg-gray-50 rounded-md ${e2===e.label?"bg-blue-50 text-blue-600":""}`,onClick:()=>{H(1),G((0,r.default)().format("YYYY-MM-DDTHH:mm")),W((0,r.default)().subtract(e.value,e.unit).format("YYYY-MM-DDTHH:mm")),ez({value:e.value,unit:e.unit}),Q(!1),Z(!1)},children:e.label},e.label)),(0,t.jsx)("div",{className:"border-t my-2"}),(0,t.jsx)("button",{className:`w-full px-3 py-2 text-left text-sm hover:bg-gray-50 rounded-md ${J?"bg-blue-50 text-blue-600":""}`,onClick:()=>Q(!J),children:"Custom Range"})]})})]}),(0,t.jsx)(()=>(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900",children:"Live Tail"}),(0,t.jsx)(o.Switch,{color:"green",checked:eR,defaultChecked:!0,onChange:eO})]}),{}),(0,t.jsx)(p.Button,{type:"default",icon:(0,t.jsx)(n.SyncOutlined,{spin:eF}),onClick:()=>{eK?eV():eP.refetch()},disabled:eF,title:"Fetch data",children:eF?"Fetching":"Fetch"})]}),J&&(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{children:(0,t.jsx)("input",{type:"datetime-local",value:U,onChange:e=>{W(e.target.value),H(1)},className:"px-3 py-2 border rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"})}),(0,t.jsx)("span",{className:"text-gray-500",children:"to"}),(0,t.jsx)("div",{children:(0,t.jsx)("input",{type:"datetime-local",value:V,onChange:e=>{G(e.target.value),H(1)},className:"px-3 py-2 border rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"})})]})]}),(0,t.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,t.jsxs)("span",{className:"text-sm text-gray-700 whitespace-nowrap",children:["Showing ",eP.isLoading?"...":eY?(F-1)*q+1:0," -"," ",eP.isLoading?"...":eY?Math.min(F*q,eY.total):0," ","of ",eP.isLoading?"...":eY?eY.total:0," results"]}),(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsxs)("span",{className:"text-sm text-gray-700 min-w-[90px]",children:["Page ",eP.isLoading?"...":F," of"," ",eP.isLoading?"...":eY?eY.total_pages:1]}),(0,t.jsx)("button",{onClick:()=>H(e=>Math.max(1,e-1)),disabled:eP.isLoading||1===F,className:"px-3 py-1 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Previous"}),(0,t.jsx)("button",{onClick:()=>H(e=>Math.min(eY.total_pages||1,e+1)),disabled:eP.isLoading||F===(eY.total_pages||1),className:"px-3 py-1 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Next"})]})]})]})}),eR&&1===F&&eA&&(0,t.jsxs)("div",{className:"mb-4 px-4 py-2 bg-green-50 border border-greem-200 rounded-md flex items-center justify-between",children:[(0,t.jsx)("div",{className:"flex items-center gap-2",children:(0,t.jsx)("span",{className:"text-sm text-green-700",children:"Auto-refreshing every 15 seconds"})}),(0,t.jsx)("button",{onClick:()=>eO(!1),className:"text-sm text-green-600 hover:text-green-800",children:"Stop"})]}),(0,t.jsx)(L.DataTable,{columns:(0,S.createColumns)({sortBy:eC,sortOrder:eE,onSortChange:(e,t)=>{eL(e),eM(t),H(1)}}),data:eZ,onRowClick:e=>{if(e.session_id&&(e.session_total_count||1)>1){eT(e.session_id),eN(e),eS(!0);return}eT(null),eN(e),eS(!0)},isLoading:eP.isLoading})]})]})]}),(0,t.jsx)(m.TabPanel,{children:(0,t.jsx)(w.default,{userID:A,userRole:M,token:E,accessToken:e,isActive:"audit logs"===eb,premiumUser:D})}),(0,t.jsx)(m.TabPanel,{children:(0,t.jsx)(g.default,{})}),(0,t.jsx)(m.TabPanel,{children:(0,t.jsx)(f.default,{})})]})]}),(0,t.jsx)(C.LogDetailsDrawer,{open:ew,onClose:()=>{eS(!1),eT(null)},logEntry:e_,sessionId:ek,accessToken:e,allLogs:eZ,onSelectLog:e=>{eN(e)},startTime:(0,r.default)(U).utc().format("YYYY-MM-DD HH:mm:ss")})]})}],936190)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/047wghe2gva_o.js b/litellm/proxy/_experimental/out/_next/static/chunks/00~.g-t.r9f51.js similarity index 89% rename from litellm/proxy/_experimental/out/_next/static/chunks/047wghe2gva_o.js rename to litellm/proxy/_experimental/out/_next/static/chunks/00~.g-t.r9f51.js index 1c440ddea99..b4833fcc9ae 100644 --- a/litellm/proxy/_experimental/out/_next/static/chunks/047wghe2gva_o.js +++ b/litellm/proxy/_experimental/out/_next/static/chunks/00~.g-t.r9f51.js @@ -1 +1 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,625901,e=>{"use strict";var t=e.i(266027),r=e.i(621482),a=e.i(243652),l=e.i(764205),n=e.i(135214);let i=(0,a.createQueryKeys)("models"),s=(0,a.createQueryKeys)("modelHub"),o=(0,a.createQueryKeys)("allProxyModels");(0,a.createQueryKeys)("selectedTeamModels");let u=(0,a.createQueryKeys)("infiniteModels");e.s(["useAllProxyModels",0,()=>{let{accessToken:e,userId:r,userRole:a}=(0,n.default)();return(0,t.useQuery)({queryKey:o.list({}),queryFn:async()=>await (0,l.modelAvailableCall)(e,r,a,!0,null,!0,!1,"expand"),enabled:!!(e&&r&&a)})},"useInfiniteModelInfo",0,(e=50,t)=>{let{accessToken:a,userId:i,userRole:s}=(0,n.default)();return(0,r.useInfiniteQuery)({queryKey:u.list({filters:{...i&&{userId:i},...s&&{userRole:s},size:e,...t&&{search:t}}}),queryFn:async({pageParam:r})=>await (0,l.modelInfoCall)(a,i,s,r,e,t),initialPageParam:1,getNextPageParam:e=>{if(e.current_page{let{accessToken:e}=(0,n.default)();return(0,t.useQuery)({queryKey:s.list({}),queryFn:async()=>await (0,l.modelHubCall)(e),enabled:!!e})},"useModelsInfo",0,(e=1,r=50,a,s,o,u,c)=>{let{accessToken:d,userId:f,userRole:p}=(0,n.default)();return(0,t.useQuery)({queryKey:i.list({filters:{...f&&{userId:f},...p&&{userRole:p},page:e,size:r,...a&&{search:a},...s&&{modelId:s},...o&&{teamId:o},...u&&{sortBy:u},...c&&{sortOrder:c}}}),queryFn:async()=>await (0,l.modelInfoCall)(d,f,p,e,r,a,s,o,u,c),enabled:!!(d&&f&&p)})}])},91979,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z"}}]},name:"reload",theme:"outlined"};var l=e.i(9583),n=r.forwardRef(function(e,n){return r.createElement(l.default,(0,t.default)({},e,{ref:n,icon:a}))});e.s(["ReloadOutlined",0,n],91979)},94629,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4"}))});e.s(["SwitchVerticalIcon",0,r],94629)},166406,e=>{"use strict";var t=e.i(190144);e.s(["CopyOutlined",()=>t.default])},447566,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 000 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"}}]},name:"arrow-left",theme:"outlined"};var l=e.i(9583),n=r.forwardRef(function(e,n){return r.createElement(l.default,(0,t.default)({},e,{ref:n,icon:a}))});e.s(["ArrowLeftOutlined",0,n],447566)},492030,e=>{"use strict";var t=e.i(121229);e.s(["CheckOutlined",()=>t.default])},829672,836938,310730,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(914949),l=e.i(404948);let n=e=>e?"function"==typeof e?e():e:null;e.s(["getRenderPropValue",0,n],836938);var i=e.i(613541),s=e.i(763731),o=e.i(242064),u=e.i(491816);e.i(793154);var c=e.i(880476),d=e.i(183293),f=e.i(717356),p=e.i(320560),m=e.i(307358),h=e.i(246422),g=e.i(838378),y=e.i(617933);let v=(0,h.genStyleHooks)("Popover",e=>{let{colorBgElevated:t,colorText:r}=e,a=(0,g.mergeToken)(e,{popoverBg:t,popoverColor:r});return[(e=>{let{componentCls:t,popoverColor:r,titleMinWidth:a,fontWeightStrong:l,innerPadding:n,boxShadowSecondary:i,colorTextHeading:s,borderRadiusLG:o,zIndexPopup:u,titleMarginBottom:c,colorBgElevated:f,popoverBg:m,titleBorderBottom:h,innerContentPadding:g,titlePadding:y}=e;return[{[t]:Object.assign(Object.assign({},(0,d.resetComponent)(e)),{position:"absolute",top:0,left:{_skip_check_:!0,value:0},zIndex:u,fontWeight:"normal",whiteSpace:"normal",textAlign:"start",cursor:"auto",userSelect:"text","--valid-offset-x":"var(--arrow-offset-horizontal, var(--arrow-x))",transformOrigin:"var(--valid-offset-x, 50%) var(--arrow-y, 50%)","--antd-arrow-background-color":f,width:"max-content",maxWidth:"100vw","&-rtl":{direction:"rtl"},"&-hidden":{display:"none"},[`${t}-content`]:{position:"relative"},[`${t}-inner`]:{backgroundColor:m,backgroundClip:"padding-box",borderRadius:o,boxShadow:i,padding:n},[`${t}-title`]:{minWidth:a,marginBottom:c,color:s,fontWeight:l,borderBottom:h,padding:y},[`${t}-inner-content`]:{color:r,padding:g}})},(0,p.default)(e,"var(--antd-arrow-background-color)"),{[`${t}-pure`]:{position:"relative",maxWidth:"none",margin:e.sizePopupArrow,display:"inline-block",[`${t}-content`]:{display:"inline-block"}}}]})(a),(e=>{let{componentCls:t}=e;return{[t]:y.PresetColors.map(r=>{let a=e[`${r}6`];return{[`&${t}-${r}`]:{"--antd-arrow-background-color":a,[`${t}-inner`]:{backgroundColor:a},[`${t}-arrow`]:{background:"transparent"}}}})}})(a),(0,f.initZoomMotion)(a,"zoom-big")]},e=>{let{lineWidth:t,controlHeight:r,fontHeight:a,padding:l,wireframe:n,zIndexPopupBase:i,borderRadiusLG:s,marginXS:o,lineType:u,colorSplit:c,paddingSM:d}=e,f=r-a;return Object.assign(Object.assign(Object.assign({titleMinWidth:177,zIndexPopup:i+30},(0,m.getArrowToken)(e)),(0,p.getArrowOffsetToken)({contentRadius:s,limitVerticalRadius:!0})),{innerPadding:12*!n,titleMarginBottom:n?0:o,titlePadding:n?`${f/2}px ${l}px ${f/2-t}px`:0,titleBorderBottom:n?`${t}px ${u} ${c}`:"none",innerContentPadding:n?`${d}px ${l}px`:0})},{resetStyle:!1,deprecatedTokens:[["width","titleMinWidth"],["minWidth","titleMinWidth"]]});var b=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,a=Object.getOwnPropertySymbols(e);lt.indexOf(a[l])&&Object.prototype.propertyIsEnumerable.call(e,a[l])&&(r[a[l]]=e[a[l]]);return r};let w=({title:e,content:r,prefixCls:a})=>e||r?t.createElement(t.Fragment,null,e&&t.createElement("div",{className:`${a}-title`},e),r&&t.createElement("div",{className:`${a}-inner-content`},r)):null,x=e=>{let{hashId:a,prefixCls:l,className:i,style:s,placement:o="top",title:u,content:d,children:f}=e,p=n(u),m=n(d),h=(0,r.default)(a,l,`${l}-pure`,`${l}-placement-${o}`,i);return t.createElement("div",{className:h,style:s},t.createElement("div",{className:`${l}-arrow`}),t.createElement(c.Popup,Object.assign({},e,{className:a,prefixCls:l}),f||t.createElement(w,{prefixCls:l,title:p,content:m})))},O=e=>{let{prefixCls:a,className:l}=e,n=b(e,["prefixCls","className"]),{getPrefixCls:i}=t.useContext(o.ConfigContext),s=i("popover",a),[u,c,d]=v(s);return u(t.createElement(x,Object.assign({},n,{prefixCls:s,hashId:c,className:(0,r.default)(l,d)})))};e.s(["Overlay",0,w,"default",0,O],310730);var C=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,a=Object.getOwnPropertySymbols(e);lt.indexOf(a[l])&&Object.prototype.propertyIsEnumerable.call(e,a[l])&&(r[a[l]]=e[a[l]]);return r};let j=t.forwardRef((e,c)=>{var d,f;let{prefixCls:p,title:m,content:h,overlayClassName:g,placement:y="top",trigger:b="hover",children:x,mouseEnterDelay:O=.1,mouseLeaveDelay:j=.1,onOpenChange:S,overlayStyle:E={},styles:$,classNames:M}=e,k=C(e,["prefixCls","title","content","overlayClassName","placement","trigger","children","mouseEnterDelay","mouseLeaveDelay","onOpenChange","overlayStyle","styles","classNames"]),{getPrefixCls:N,className:P,style:R,classNames:I,styles:L}=(0,o.useComponentConfig)("popover"),_=N("popover",p),[A,D,F]=v(_),K=N(),z=(0,r.default)(g,D,F,P,I.root,null==M?void 0:M.root),B=(0,r.default)(I.body,null==M?void 0:M.body),[T,W]=(0,a.default)(!1,{value:null!=(d=e.open)?d:e.visible,defaultValue:null!=(f=e.defaultOpen)?f:e.defaultVisible}),G=(e,t)=>{W(e,!0),null==S||S(e,t)},Q=n(m),V=n(h);return A(t.createElement(u.default,Object.assign({placement:y,trigger:b,mouseEnterDelay:O,mouseLeaveDelay:j},k,{prefixCls:_,classNames:{root:z,body:B},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},L.root),R),E),null==$?void 0:$.root),body:Object.assign(Object.assign({},L.body),null==$?void 0:$.body)},ref:c,open:T,onOpenChange:e=>{G(e)},overlay:Q||V?t.createElement(w,{prefixCls:_,title:Q,content:V}):null,transitionName:(0,i.getTransitionName)(K,"zoom-big",k.transitionName),"data-popover-inject":!0}),(0,s.cloneElement)(x,{onKeyDown:e=>{var r,a;(0,t.isValidElement)(x)&&(null==(a=null==x?void 0:(r=x.props).onKeyDown)||a.call(r,e)),e.keyCode===l.default.ESC&&G(!1,e)}})))});j._InternalPanelDoNotUseOrYouWillBeFired=O,e.s(["default",0,j],829672)},282786,e=>{"use strict";var t=e.i(829672);e.s(["Popover",()=>t.default])},637235,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z"}}]},name:"clock-circle",theme:"outlined"};var l=e.i(9583),n=r.forwardRef(function(e,n){return r.createElement(l.default,(0,t.default)({},e,{ref:n,icon:a}))});e.s(["ClockCircleOutlined",0,n],637235)},891547,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(199133),l=e.i(764205);e.s(["default",0,({onChange:e,value:n,className:i,accessToken:s,disabled:o})=>{let[u,c]=(0,r.useState)([]),[d,f]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{(async()=>{if(s){f(!0);try{let e=await (0,l.getGuardrailsList)(s);console.log("Guardrails response:",e),e.guardrails&&(console.log("Guardrails data:",e.guardrails),c(e.guardrails))}catch(e){console.error("Error fetching guardrails:",e)}finally{f(!1)}}})()},[s]),(0,t.jsx)("div",{children:(0,t.jsx)(a.Select,{mode:"multiple",disabled:o,placeholder:o?"Setting guardrails is a premium feature.":"Select guardrails",onChange:t=>{console.log("Selected guardrails:",t),e(t)},value:n,loading:d,className:i,allowClear:!0,options:u.map(e=>(console.log("Mapping guardrail:",e),{label:`${e.guardrail_name}`,value:e.guardrail_name})),optionFilterProp:"label",showSearch:!0,style:{width:"100%"}})})}])},921511,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(199133),l=e.i(764205);function n(e){return e.filter(e=>(e.version_status??"draft")!=="draft").map(e=>{var t;let r=e.version_number??1,a=e.version_status??"draft";return{label:`${e.policy_name} — v${r} (${a})${e.description?` — ${e.description}`:""}`,value:"production"===a?e.policy_name:e.policy_id?(t=e.policy_id,`policy_${t}`):e.policy_name}})}e.s(["default",0,({onChange:e,value:i,className:s,accessToken:o,disabled:u,onPoliciesLoaded:c})=>{let[d,f]=(0,r.useState)([]),[p,m]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{(async()=>{if(o){m(!0);try{let e=await (0,l.getPoliciesList)(o);e.policies&&(f(e.policies),c?.(e.policies))}catch(e){console.error("Error fetching policies:",e)}finally{m(!1)}}})()},[o,c]),(0,t.jsx)("div",{children:(0,t.jsx)(a.Select,{mode:"multiple",disabled:u,placeholder:u?"Setting policies is a premium feature.":"Select policies (production or published versions)",onChange:t=>{e(t)},value:i,loading:p,className:s,allowClear:!0,options:n(d),optionFilterProp:"label",showSearch:!0,style:{width:"100%"}})})},"getPolicyOptionEntries",0,n])},525720,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(529681),l=e.i(908286),n=e.i(242064),i=e.i(246422),s=e.i(838378);let o=["wrap","nowrap","wrap-reverse"],u=["flex-start","flex-end","start","end","center","space-between","space-around","space-evenly","stretch","normal","left","right"],c=["center","start","end","flex-start","flex-end","self-start","self-end","baseline","normal","stretch"],d=function(e,t){let a,l,n;return(0,r.default)(Object.assign(Object.assign(Object.assign({},(a=!0===t.wrap?"wrap":t.wrap,{[`${e}-wrap-${a}`]:a&&o.includes(a)})),(l={},c.forEach(r=>{l[`${e}-align-${r}`]=t.align===r}),l[`${e}-align-stretch`]=!t.align&&!!t.vertical,l)),(n={},u.forEach(r=>{n[`${e}-justify-${r}`]=t.justify===r}),n)))},f=(0,i.genStyleHooks)("Flex",e=>{let{paddingXS:t,padding:r,paddingLG:a}=e,l=(0,s.mergeToken)(e,{flexGapSM:t,flexGap:r,flexGapLG:a});return[(e=>{let{componentCls:t}=e;return{[t]:{display:"flex",margin:0,padding:0,"&-vertical":{flexDirection:"column"},"&-rtl":{direction:"rtl"},"&:empty":{display:"none"}}}})(l),(e=>{let{componentCls:t}=e;return{[t]:{"&-gap-small":{gap:e.flexGapSM},"&-gap-middle":{gap:e.flexGap},"&-gap-large":{gap:e.flexGapLG}}}})(l),(e=>{let{componentCls:t}=e,r={};return o.forEach(e=>{r[`${t}-wrap-${e}`]={flexWrap:e}}),r})(l),(e=>{let{componentCls:t}=e,r={};return c.forEach(e=>{r[`${t}-align-${e}`]={alignItems:e}}),r})(l),(e=>{let{componentCls:t}=e,r={};return u.forEach(e=>{r[`${t}-justify-${e}`]={justifyContent:e}}),r})(l)]},()=>({}),{resetStyle:!1});var p=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,a=Object.getOwnPropertySymbols(e);lt.indexOf(a[l])&&Object.prototype.propertyIsEnumerable.call(e,a[l])&&(r[a[l]]=e[a[l]]);return r};let m=t.default.forwardRef((e,i)=>{let{prefixCls:s,rootClassName:o,className:u,style:c,flex:m,gap:h,vertical:g=!1,component:y="div",children:v}=e,b=p(e,["prefixCls","rootClassName","className","style","flex","gap","vertical","component","children"]),{flex:w,direction:x,getPrefixCls:O}=t.default.useContext(n.ConfigContext),C=O("flex",s),[j,S,E]=f(C),$=null!=g?g:null==w?void 0:w.vertical,M=(0,r.default)(u,o,null==w?void 0:w.className,C,S,E,d(C,e),{[`${C}-rtl`]:"rtl"===x,[`${C}-gap-${h}`]:(0,l.isPresetSize)(h),[`${C}-vertical`]:$}),k=Object.assign(Object.assign({},null==w?void 0:w.style),c);return m&&(k.flex=m),h&&!(0,l.isPresetSize)(h)&&(k.gap=h),j(t.default.createElement(y,Object.assign({ref:i,className:M,style:k},(0,a.default)(b,["justify","wrap","align"])),v))});e.s(["Flex",0,m],525720)},530212,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 19l-7-7m0 0l7-7m-7 7h18"}))});e.s(["ArrowLeftIcon",0,r],530212)},211576,e=>{"use strict";var t=e.i(131757);e.s(["Col",()=>t.default])},954616,e=>{"use strict";var t=e.i(271645),r=e.i(114272),a=e.i(540143),l=e.i(915823),n=e.i(619273),i=class extends l.Subscribable{#e;#t=void 0;#r;#a;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#l()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),(0,n.shallowEqualObjects)(this.options,t)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#r,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,n.hashKey)(t.mutationKey)!==(0,n.hashKey)(this.options.mutationKey)?this.reset():this.#r?.state.status==="pending"&&this.#r.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#r?.removeObserver(this)}onMutationUpdate(e){this.#l(),this.#n(e)}getCurrentResult(){return this.#t}reset(){this.#r?.removeObserver(this),this.#r=void 0,this.#l(),this.#n()}mutate(e,t){return this.#a=t,this.#r?.removeObserver(this),this.#r=this.#e.getMutationCache().build(this.#e,this.options),this.#r.addObserver(this),this.#r.execute(e)}#l(){let e=this.#r?.state??(0,r.getDefaultState)();this.#t={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#n(e){a.notifyManager.batch(()=>{if(this.#a&&this.hasListeners()){let t=this.#t.variables,r=this.#t.context,a={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type==="success"){try{this.#a.onSuccess?.(e.data,t,r,a)}catch(e){Promise.reject(e)}try{this.#a.onSettled?.(e.data,null,t,r,a)}catch(e){Promise.reject(e)}}else if(e?.type==="error"){try{this.#a.onError?.(e.error,t,r,a)}catch(e){Promise.reject(e)}try{this.#a.onSettled?.(void 0,e.error,t,r,a)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},s=e.i(912598);e.s(["useMutation",0,function(e,r){let l=(0,s.useQueryClient)(r),[o]=t.useState(()=>new i(l,e));t.useEffect(()=>{o.setOptions(e)},[o,e]);let u=t.useSyncExternalStore(t.useCallback(e=>o.subscribe(a.notifyManager.batchCalls(e)),[o]),()=>o.getCurrentResult(),()=>o.getCurrentResult()),c=t.useCallback((e,t)=>{o.mutate(e,t).catch(n.noop)},[o]);if(u.error&&(0,n.shouldThrowError)(o.options.throwOnError,[u.error]))throw u.error;return{...u,mutate:c,mutateAsync:u.mutate}}],954616)},646563,e=>{"use strict";var t=e.i(959013);e.s(["PlusOutlined",()=>t.default])},178654,621192,e=>{"use strict";let t=e.i(211576).Col;e.s(["Col",0,t],178654);let r=e.i(264042).Row;e.s(["Row",0,r],621192)},214541,e=>{"use strict";var t=e.i(271645),r=e.i(135214),a=e.i(270345);e.s(["default",0,()=>{let[e,l]=(0,t.useState)([]),{accessToken:n,userId:i,userRole:s}=(0,r.default)();return(0,t.useEffect)(()=>{(async()=>{l(await (0,a.fetchTeams)(n,i,s,null))})()},[n,i,s]),{teams:e,setTeams:l}}])},439189,435684,96226,497245,e=>{"use strict";function t(e){let t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new e.constructor(+e):new Date("number"==typeof e||"[object Number]"===t||"string"==typeof e||"[object String]"===t?e:NaN)}function r(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}e.s(["toDate",0,t],435684),e.s(["constructFrom",0,r],96226),e.s(["addDays",0,function(e,a){let l=t(e);return isNaN(a)?r(e,NaN):(a&&l.setDate(l.getDate()+a),l)}],439189),e.s(["addMonths",0,function(e,a){let l=t(e);if(isNaN(a))return r(e,NaN);if(!a)return l;let n=l.getDate(),i=r(e,l.getTime());return(i.setMonth(l.getMonth()+a+1,0),n>=i.getDate())?i:(l.setFullYear(i.getFullYear(),i.getMonth(),n),l)}],497245)},969550,e=>{"use strict";var t=e.i(843476),r=e.i(271645);let a=r.forwardRef(function(e,t){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"}))});var l=e.i(464571),n=e.i(311451),i=e.i(199133),s=e.i(374009);e.s(["default",0,({options:e,onApplyFilters:o,onResetFilters:u,initialValues:c={},buttonLabel:d="Filters"})=>{let[f,p]=(0,r.useState)(!1),[m,h]=(0,r.useState)(c),[g,y]=(0,r.useState)({}),[v,b]=(0,r.useState)({}),[w,x]=(0,r.useState)({}),[O,C]=(0,r.useState)({}),j=(0,r.useCallback)((0,s.default)(async(e,t)=>{if(t.isSearchable&&t.searchFn){b(e=>({...e,[t.name]:!0}));try{let r=await t.searchFn(e);y(e=>({...e,[t.name]:r}))}catch(e){console.error("Error searching:",e),y(e=>({...e,[t.name]:[]}))}finally{b(e=>({...e,[t.name]:!1}))}}},300),[]),S=(0,r.useCallback)(async e=>{if(e.isSearchable&&e.searchFn&&!O[e.name]){b(t=>({...t,[e.name]:!0})),C(t=>({...t,[e.name]:!0}));try{let t=await e.searchFn("");y(r=>({...r,[e.name]:t}))}catch(t){console.error("Error loading initial options:",t),y(t=>({...t,[e.name]:[]}))}finally{b(t=>({...t,[e.name]:!1}))}}},[O]);(0,r.useEffect)(()=>{f&&e.forEach(e=>{e.isSearchable&&!O[e.name]&&S(e)})},[f,e,S,O]);let E=(e,t)=>{let r={...m,[e]:t};h(r),o(r)};return(0,t.jsxs)("div",{className:"w-full",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-6",children:[(0,t.jsx)(l.Button,{icon:(0,t.jsx)(a,{className:"h-4 w-4"}),onClick:()=>p(!f),className:"flex items-center gap-2",children:d}),(0,t.jsx)(l.Button,{onClick:()=>{let t={};e.forEach(e=>{t[e.name]=""}),h(t),u()},children:"Reset Filters"})]}),f&&(0,t.jsx)("div",{className:"grid grid-cols-3 gap-x-6 gap-y-4 mb-6",children:["Team ID","Status","Organization ID","Key Alias","User ID","End User","Error Code","Error Message","Key Hash","Model","Public model / search tool"].map(r=>{let a,l=e.find(e=>e.label===r||e.name===r);return l?(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)("label",{className:"text-sm text-gray-600",children:l.label||l.name}),l.isSearchable?(0,t.jsx)(i.Select,{showSearch:!0,className:"w-full",placeholder:`Search ${l.label||l.name}...`,value:m[l.name]||void 0,onChange:e=>E(l.name,e),onOpenChange:e=>{e&&l.isSearchable&&!O[l.name]&&S(l)},onSearch:e=>{x(t=>({...t,[l.name]:e})),l.searchFn&&j(e,l)},filterOption:!1,loading:v[l.name],options:g[l.name]||[],allowClear:!0,notFoundContent:v[l.name]?"Loading...":"No results found"}):l.options?(0,t.jsx)(i.Select,{className:"w-full",placeholder:`Select ${l.label||l.name}...`,value:m[l.name]||void 0,onChange:e=>E(l.name,e),allowClear:!0,children:l.options.map(e=>(0,t.jsx)(i.Select.Option,{value:e.value,children:e.label},e.value))}):l.customComponent?(a=l.customComponent,(0,t.jsx)(a,{value:m[l.name]||void 0,onChange:e=>E(l.name,e??""),placeholder:`Select ${l.label||l.name}...`,allFilters:m})):(0,t.jsx)(n.Input,{className:"w-full",placeholder:`Enter ${l.label||l.name}...`,value:m[l.name]||"",onChange:e=>E(l.name,e.target.value),allowClear:!0})]},l.name):null})})]})}],969550)},633627,e=>{"use strict";var t=e.i(764205);let r=(e,t,r,a)=>{for(let l of e){let e=l?.key_alias;e&&"string"==typeof e&&t.add(e.trim());let n=l?.organization_id??l?.org_id;n&&"string"==typeof n&&r.add(n.trim());let i=l?.user_id;if(i&&"string"==typeof i){let e=l?.user?.user_email||i;a.set(i,e)}}},a=async(e,a)=>{if(!e||!a)return{keyAliases:[],organizationIds:[],userIds:[]};try{let l=new Set,n=new Set,i=new Map,s=await (0,t.keyListCall)(e,null,a,null,null,null,1,100,null,null,"user",null),o=s?.keys||[],u=s?.total_pages??1;r(o,l,n,i);let c=Math.min(u,10)-1;if(c>0){let s=Array.from({length:c},(r,l)=>(0,t.keyListCall)(e,null,a,null,null,null,l+2,100,null,null,"user",null));for(let e of(await Promise.allSettled(s)))"fulfilled"===e.status&&r(e.value?.keys||[],l,n,i)}return{keyAliases:Array.from(l).sort(),organizationIds:Array.from(n).sort(),userIds:Array.from(i.entries()).map(([e,t])=>({id:e,email:t}))}}catch(e){return console.error("Error fetching team filter options:",e),{keyAliases:[],organizationIds:[],userIds:[]}}},l=async(e,r)=>{if(!e)return[];try{let a=[],l=1,n=!0;for(;n;){let i=await (0,t.teamListCall)(e,r||null,null);a=[...a,...i],l{if(!e)return[];try{let r=[],a=1,l=!0;for(;l;){let n=await (0,t.organizationListCall)(e);r=[...r,...n],a{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z"}}]},name:"reload",theme:"outlined"};var l=e.i(9583),n=r.forwardRef(function(e,n){return r.createElement(l.default,(0,t.default)({},e,{ref:n,icon:a}))});e.s(["ReloadOutlined",0,n],91979)},625901,e=>{"use strict";var t=e.i(266027),r=e.i(621482),a=e.i(243652),l=e.i(764205),n=e.i(135214);let i=(0,a.createQueryKeys)("models"),s=(0,a.createQueryKeys)("modelHub"),o=(0,a.createQueryKeys)("allProxyModels");(0,a.createQueryKeys)("selectedTeamModels");let u=(0,a.createQueryKeys)("infiniteModels");e.s(["useAllProxyModels",0,()=>{let{accessToken:e,userId:r,userRole:a}=(0,n.default)();return(0,t.useQuery)({queryKey:o.list({}),queryFn:async()=>await (0,l.modelAvailableCall)(e,r,a,!0,null,!0,!1,"expand"),enabled:!!(e&&r&&a)})},"useInfiniteModelInfo",0,(e=50,t)=>{let{accessToken:a,userId:i,userRole:s}=(0,n.default)();return(0,r.useInfiniteQuery)({queryKey:u.list({filters:{...i&&{userId:i},...s&&{userRole:s},size:e,...t&&{search:t}}}),queryFn:async({pageParam:r})=>await (0,l.modelInfoCall)(a,i,s,r,e,t),initialPageParam:1,getNextPageParam:e=>{if(e.current_page{let{accessToken:e}=(0,n.default)();return(0,t.useQuery)({queryKey:s.list({}),queryFn:async()=>await (0,l.modelHubCall)(e),enabled:!!e})},"useModelsInfo",0,(e=1,r=50,a,s,o,u,c)=>{let{accessToken:d,userId:f,userRole:p}=(0,n.default)();return(0,t.useQuery)({queryKey:i.list({filters:{...f&&{userId:f},...p&&{userRole:p},page:e,size:r,...a&&{search:a},...s&&{modelId:s},...o&&{teamId:o},...u&&{sortBy:u},...c&&{sortOrder:c}}}),queryFn:async()=>await (0,l.modelInfoCall)(d,f,p,e,r,a,s,o,u,c),enabled:!!(d&&f&&p)})}])},94629,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4"}))});e.s(["SwitchVerticalIcon",0,r],94629)},166406,e=>{"use strict";var t=e.i(190144);e.s(["CopyOutlined",()=>t.default])},447566,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 000 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"}}]},name:"arrow-left",theme:"outlined"};var l=e.i(9583),n=r.forwardRef(function(e,n){return r.createElement(l.default,(0,t.default)({},e,{ref:n,icon:a}))});e.s(["ArrowLeftOutlined",0,n],447566)},492030,e=>{"use strict";var t=e.i(121229);e.s(["CheckOutlined",()=>t.default])},829672,836938,310730,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(914949),l=e.i(404948);let n=e=>e?"function"==typeof e?e():e:null;e.s(["getRenderPropValue",0,n],836938);var i=e.i(613541),s=e.i(763731),o=e.i(242064),u=e.i(491816);e.i(793154);var c=e.i(880476),d=e.i(183293),f=e.i(717356),p=e.i(320560),m=e.i(307358),h=e.i(246422),g=e.i(838378),y=e.i(617933);let v=(0,h.genStyleHooks)("Popover",e=>{let{colorBgElevated:t,colorText:r}=e,a=(0,g.mergeToken)(e,{popoverBg:t,popoverColor:r});return[(e=>{let{componentCls:t,popoverColor:r,titleMinWidth:a,fontWeightStrong:l,innerPadding:n,boxShadowSecondary:i,colorTextHeading:s,borderRadiusLG:o,zIndexPopup:u,titleMarginBottom:c,colorBgElevated:f,popoverBg:m,titleBorderBottom:h,innerContentPadding:g,titlePadding:y}=e;return[{[t]:Object.assign(Object.assign({},(0,d.resetComponent)(e)),{position:"absolute",top:0,left:{_skip_check_:!0,value:0},zIndex:u,fontWeight:"normal",whiteSpace:"normal",textAlign:"start",cursor:"auto",userSelect:"text","--valid-offset-x":"var(--arrow-offset-horizontal, var(--arrow-x))",transformOrigin:"var(--valid-offset-x, 50%) var(--arrow-y, 50%)","--antd-arrow-background-color":f,width:"max-content",maxWidth:"100vw","&-rtl":{direction:"rtl"},"&-hidden":{display:"none"},[`${t}-content`]:{position:"relative"},[`${t}-inner`]:{backgroundColor:m,backgroundClip:"padding-box",borderRadius:o,boxShadow:i,padding:n},[`${t}-title`]:{minWidth:a,marginBottom:c,color:s,fontWeight:l,borderBottom:h,padding:y},[`${t}-inner-content`]:{color:r,padding:g}})},(0,p.default)(e,"var(--antd-arrow-background-color)"),{[`${t}-pure`]:{position:"relative",maxWidth:"none",margin:e.sizePopupArrow,display:"inline-block",[`${t}-content`]:{display:"inline-block"}}}]})(a),(e=>{let{componentCls:t}=e;return{[t]:y.PresetColors.map(r=>{let a=e[`${r}6`];return{[`&${t}-${r}`]:{"--antd-arrow-background-color":a,[`${t}-inner`]:{backgroundColor:a},[`${t}-arrow`]:{background:"transparent"}}}})}})(a),(0,f.initZoomMotion)(a,"zoom-big")]},e=>{let{lineWidth:t,controlHeight:r,fontHeight:a,padding:l,wireframe:n,zIndexPopupBase:i,borderRadiusLG:s,marginXS:o,lineType:u,colorSplit:c,paddingSM:d}=e,f=r-a;return Object.assign(Object.assign(Object.assign({titleMinWidth:177,zIndexPopup:i+30},(0,m.getArrowToken)(e)),(0,p.getArrowOffsetToken)({contentRadius:s,limitVerticalRadius:!0})),{innerPadding:12*!n,titleMarginBottom:n?0:o,titlePadding:n?`${f/2}px ${l}px ${f/2-t}px`:0,titleBorderBottom:n?`${t}px ${u} ${c}`:"none",innerContentPadding:n?`${d}px ${l}px`:0})},{resetStyle:!1,deprecatedTokens:[["width","titleMinWidth"],["minWidth","titleMinWidth"]]});var b=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,a=Object.getOwnPropertySymbols(e);lt.indexOf(a[l])&&Object.prototype.propertyIsEnumerable.call(e,a[l])&&(r[a[l]]=e[a[l]]);return r};let w=({title:e,content:r,prefixCls:a})=>e||r?t.createElement(t.Fragment,null,e&&t.createElement("div",{className:`${a}-title`},e),r&&t.createElement("div",{className:`${a}-inner-content`},r)):null,x=e=>{let{hashId:a,prefixCls:l,className:i,style:s,placement:o="top",title:u,content:d,children:f}=e,p=n(u),m=n(d),h=(0,r.default)(a,l,`${l}-pure`,`${l}-placement-${o}`,i);return t.createElement("div",{className:h,style:s},t.createElement("div",{className:`${l}-arrow`}),t.createElement(c.Popup,Object.assign({},e,{className:a,prefixCls:l}),f||t.createElement(w,{prefixCls:l,title:p,content:m})))},O=e=>{let{prefixCls:a,className:l}=e,n=b(e,["prefixCls","className"]),{getPrefixCls:i}=t.useContext(o.ConfigContext),s=i("popover",a),[u,c,d]=v(s);return u(t.createElement(x,Object.assign({},n,{prefixCls:s,hashId:c,className:(0,r.default)(l,d)})))};e.s(["Overlay",0,w,"default",0,O],310730);var C=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,a=Object.getOwnPropertySymbols(e);lt.indexOf(a[l])&&Object.prototype.propertyIsEnumerable.call(e,a[l])&&(r[a[l]]=e[a[l]]);return r};let j=t.forwardRef((e,c)=>{var d,f;let{prefixCls:p,title:m,content:h,overlayClassName:g,placement:y="top",trigger:b="hover",children:x,mouseEnterDelay:O=.1,mouseLeaveDelay:j=.1,onOpenChange:S,overlayStyle:E={},styles:$,classNames:M}=e,k=C(e,["prefixCls","title","content","overlayClassName","placement","trigger","children","mouseEnterDelay","mouseLeaveDelay","onOpenChange","overlayStyle","styles","classNames"]),{getPrefixCls:N,className:P,style:R,classNames:I,styles:L}=(0,o.useComponentConfig)("popover"),_=N("popover",p),[A,D,F]=v(_),K=N(),z=(0,r.default)(g,D,F,P,I.root,null==M?void 0:M.root),B=(0,r.default)(I.body,null==M?void 0:M.body),[T,W]=(0,a.default)(!1,{value:null!=(d=e.open)?d:e.visible,defaultValue:null!=(f=e.defaultOpen)?f:e.defaultVisible}),G=(e,t)=>{W(e,!0),null==S||S(e,t)},Q=n(m),V=n(h);return A(t.createElement(u.default,Object.assign({placement:y,trigger:b,mouseEnterDelay:O,mouseLeaveDelay:j},k,{prefixCls:_,classNames:{root:z,body:B},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},L.root),R),E),null==$?void 0:$.root),body:Object.assign(Object.assign({},L.body),null==$?void 0:$.body)},ref:c,open:T,onOpenChange:e=>{G(e)},overlay:Q||V?t.createElement(w,{prefixCls:_,title:Q,content:V}):null,transitionName:(0,i.getTransitionName)(K,"zoom-big",k.transitionName),"data-popover-inject":!0}),(0,s.cloneElement)(x,{onKeyDown:e=>{var r,a;(0,t.isValidElement)(x)&&(null==(a=null==x?void 0:(r=x.props).onKeyDown)||a.call(r,e)),e.keyCode===l.default.ESC&&G(!1,e)}})))});j._InternalPanelDoNotUseOrYouWillBeFired=O,e.s(["default",0,j],829672)},282786,e=>{"use strict";var t=e.i(829672);e.s(["Popover",()=>t.default])},637235,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z"}}]},name:"clock-circle",theme:"outlined"};var l=e.i(9583),n=r.forwardRef(function(e,n){return r.createElement(l.default,(0,t.default)({},e,{ref:n,icon:a}))});e.s(["ClockCircleOutlined",0,n],637235)},891547,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(199133),l=e.i(764205);e.s(["default",0,({onChange:e,value:n,className:i,accessToken:s,disabled:o})=>{let[u,c]=(0,r.useState)([]),[d,f]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{(async()=>{if(s){f(!0);try{let e=await (0,l.getGuardrailsList)(s);console.log("Guardrails response:",e),e.guardrails&&(console.log("Guardrails data:",e.guardrails),c(e.guardrails))}catch(e){console.error("Error fetching guardrails:",e)}finally{f(!1)}}})()},[s]),(0,t.jsx)("div",{children:(0,t.jsx)(a.Select,{mode:"multiple",disabled:o,placeholder:o?"Setting guardrails is a premium feature.":"Select guardrails",onChange:t=>{console.log("Selected guardrails:",t),e(t)},value:n,loading:d,className:i,allowClear:!0,options:u.map(e=>(console.log("Mapping guardrail:",e),{label:`${e.guardrail_name}`,value:e.guardrail_name})),optionFilterProp:"label",showSearch:!0,style:{width:"100%"}})})}])},921511,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(199133),l=e.i(764205);function n(e){return e.filter(e=>(e.version_status??"draft")!=="draft").map(e=>{var t;let r=e.version_number??1,a=e.version_status??"draft";return{label:`${e.policy_name} — v${r} (${a})${e.description?` — ${e.description}`:""}`,value:"production"===a?e.policy_name:e.policy_id?(t=e.policy_id,`policy_${t}`):e.policy_name}})}e.s(["default",0,({onChange:e,value:i,className:s,accessToken:o,disabled:u,onPoliciesLoaded:c})=>{let[d,f]=(0,r.useState)([]),[p,m]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{(async()=>{if(o){m(!0);try{let e=await (0,l.getPoliciesList)(o);e.policies&&(f(e.policies),c?.(e.policies))}catch(e){console.error("Error fetching policies:",e)}finally{m(!1)}}})()},[o,c]),(0,t.jsx)("div",{children:(0,t.jsx)(a.Select,{mode:"multiple",disabled:u,placeholder:u?"Setting policies is a premium feature.":"Select policies (production or published versions)",onChange:t=>{e(t)},value:i,loading:p,className:s,allowClear:!0,options:n(d),optionFilterProp:"label",showSearch:!0,style:{width:"100%"}})})},"getPolicyOptionEntries",0,n])},525720,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(529681),l=e.i(908286),n=e.i(242064),i=e.i(246422),s=e.i(838378);let o=["wrap","nowrap","wrap-reverse"],u=["flex-start","flex-end","start","end","center","space-between","space-around","space-evenly","stretch","normal","left","right"],c=["center","start","end","flex-start","flex-end","self-start","self-end","baseline","normal","stretch"],d=function(e,t){let a,l,n;return(0,r.default)(Object.assign(Object.assign(Object.assign({},(a=!0===t.wrap?"wrap":t.wrap,{[`${e}-wrap-${a}`]:a&&o.includes(a)})),(l={},c.forEach(r=>{l[`${e}-align-${r}`]=t.align===r}),l[`${e}-align-stretch`]=!t.align&&!!t.vertical,l)),(n={},u.forEach(r=>{n[`${e}-justify-${r}`]=t.justify===r}),n)))},f=(0,i.genStyleHooks)("Flex",e=>{let{paddingXS:t,padding:r,paddingLG:a}=e,l=(0,s.mergeToken)(e,{flexGapSM:t,flexGap:r,flexGapLG:a});return[(e=>{let{componentCls:t}=e;return{[t]:{display:"flex",margin:0,padding:0,"&-vertical":{flexDirection:"column"},"&-rtl":{direction:"rtl"},"&:empty":{display:"none"}}}})(l),(e=>{let{componentCls:t}=e;return{[t]:{"&-gap-small":{gap:e.flexGapSM},"&-gap-middle":{gap:e.flexGap},"&-gap-large":{gap:e.flexGapLG}}}})(l),(e=>{let{componentCls:t}=e,r={};return o.forEach(e=>{r[`${t}-wrap-${e}`]={flexWrap:e}}),r})(l),(e=>{let{componentCls:t}=e,r={};return c.forEach(e=>{r[`${t}-align-${e}`]={alignItems:e}}),r})(l),(e=>{let{componentCls:t}=e,r={};return u.forEach(e=>{r[`${t}-justify-${e}`]={justifyContent:e}}),r})(l)]},()=>({}),{resetStyle:!1});var p=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,a=Object.getOwnPropertySymbols(e);lt.indexOf(a[l])&&Object.prototype.propertyIsEnumerable.call(e,a[l])&&(r[a[l]]=e[a[l]]);return r};let m=t.default.forwardRef((e,i)=>{let{prefixCls:s,rootClassName:o,className:u,style:c,flex:m,gap:h,vertical:g=!1,component:y="div",children:v}=e,b=p(e,["prefixCls","rootClassName","className","style","flex","gap","vertical","component","children"]),{flex:w,direction:x,getPrefixCls:O}=t.default.useContext(n.ConfigContext),C=O("flex",s),[j,S,E]=f(C),$=null!=g?g:null==w?void 0:w.vertical,M=(0,r.default)(u,o,null==w?void 0:w.className,C,S,E,d(C,e),{[`${C}-rtl`]:"rtl"===x,[`${C}-gap-${h}`]:(0,l.isPresetSize)(h),[`${C}-vertical`]:$}),k=Object.assign(Object.assign({},null==w?void 0:w.style),c);return m&&(k.flex=m),h&&!(0,l.isPresetSize)(h)&&(k.gap=h),j(t.default.createElement(y,Object.assign({ref:i,className:M,style:k},(0,a.default)(b,["justify","wrap","align"])),v))});e.s(["Flex",0,m],525720)},530212,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 19l-7-7m0 0l7-7m-7 7h18"}))});e.s(["ArrowLeftIcon",0,r],530212)},211576,e=>{"use strict";var t=e.i(131757);e.s(["Col",()=>t.default])},954616,e=>{"use strict";var t=e.i(271645),r=e.i(114272),a=e.i(540143),l=e.i(915823),n=e.i(619273),i=class extends l.Subscribable{#e;#t=void 0;#r;#a;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#l()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),(0,n.shallowEqualObjects)(this.options,t)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#r,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,n.hashKey)(t.mutationKey)!==(0,n.hashKey)(this.options.mutationKey)?this.reset():this.#r?.state.status==="pending"&&this.#r.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#r?.removeObserver(this)}onMutationUpdate(e){this.#l(),this.#n(e)}getCurrentResult(){return this.#t}reset(){this.#r?.removeObserver(this),this.#r=void 0,this.#l(),this.#n()}mutate(e,t){return this.#a=t,this.#r?.removeObserver(this),this.#r=this.#e.getMutationCache().build(this.#e,this.options),this.#r.addObserver(this),this.#r.execute(e)}#l(){let e=this.#r?.state??(0,r.getDefaultState)();this.#t={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#n(e){a.notifyManager.batch(()=>{if(this.#a&&this.hasListeners()){let t=this.#t.variables,r=this.#t.context,a={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type==="success"){try{this.#a.onSuccess?.(e.data,t,r,a)}catch(e){Promise.reject(e)}try{this.#a.onSettled?.(e.data,null,t,r,a)}catch(e){Promise.reject(e)}}else if(e?.type==="error"){try{this.#a.onError?.(e.error,t,r,a)}catch(e){Promise.reject(e)}try{this.#a.onSettled?.(void 0,e.error,t,r,a)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},s=e.i(912598);e.s(["useMutation",0,function(e,r){let l=(0,s.useQueryClient)(r),[o]=t.useState(()=>new i(l,e));t.useEffect(()=>{o.setOptions(e)},[o,e]);let u=t.useSyncExternalStore(t.useCallback(e=>o.subscribe(a.notifyManager.batchCalls(e)),[o]),()=>o.getCurrentResult(),()=>o.getCurrentResult()),c=t.useCallback((e,t)=>{o.mutate(e,t).catch(n.noop)},[o]);if(u.error&&(0,n.shouldThrowError)(o.options.throwOnError,[u.error]))throw u.error;return{...u,mutate:c,mutateAsync:u.mutate}}],954616)},646563,e=>{"use strict";var t=e.i(959013);e.s(["PlusOutlined",()=>t.default])},178654,621192,e=>{"use strict";let t=e.i(211576).Col;e.s(["Col",0,t],178654);let r=e.i(264042).Row;e.s(["Row",0,r],621192)},214541,e=>{"use strict";var t=e.i(271645),r=e.i(135214),a=e.i(270345);e.s(["default",0,()=>{let[e,l]=(0,t.useState)([]),{accessToken:n,userId:i,userRole:s}=(0,r.default)();return(0,t.useEffect)(()=>{(async()=>{l(await (0,a.fetchTeams)(n,i,s,null))})()},[n,i,s]),{teams:e,setTeams:l}}])},439189,435684,96226,497245,e=>{"use strict";function t(e){let t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new e.constructor(+e):new Date("number"==typeof e||"[object Number]"===t||"string"==typeof e||"[object String]"===t?e:NaN)}function r(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}e.s(["toDate",0,t],435684),e.s(["constructFrom",0,r],96226),e.s(["addDays",0,function(e,a){let l=t(e);return isNaN(a)?r(e,NaN):(a&&l.setDate(l.getDate()+a),l)}],439189),e.s(["addMonths",0,function(e,a){let l=t(e);if(isNaN(a))return r(e,NaN);if(!a)return l;let n=l.getDate(),i=r(e,l.getTime());return(i.setMonth(l.getMonth()+a+1,0),n>=i.getDate())?i:(l.setFullYear(i.getFullYear(),i.getMonth(),n),l)}],497245)},969550,e=>{"use strict";var t=e.i(843476),r=e.i(271645);let a=r.forwardRef(function(e,t){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"}))});var l=e.i(464571),n=e.i(311451),i=e.i(199133),s=e.i(374009);e.s(["default",0,({options:e,onApplyFilters:o,onResetFilters:u,initialValues:c={},buttonLabel:d="Filters"})=>{let[f,p]=(0,r.useState)(!1),[m,h]=(0,r.useState)(c),[g,y]=(0,r.useState)({}),[v,b]=(0,r.useState)({}),[w,x]=(0,r.useState)({}),[O,C]=(0,r.useState)({}),j=(0,r.useCallback)((0,s.default)(async(e,t)=>{if(t.isSearchable&&t.searchFn){b(e=>({...e,[t.name]:!0}));try{let r=await t.searchFn(e);y(e=>({...e,[t.name]:r}))}catch(e){console.error("Error searching:",e),y(e=>({...e,[t.name]:[]}))}finally{b(e=>({...e,[t.name]:!1}))}}},300),[]),S=(0,r.useCallback)(async e=>{if(e.isSearchable&&e.searchFn&&!O[e.name]){b(t=>({...t,[e.name]:!0})),C(t=>({...t,[e.name]:!0}));try{let t=await e.searchFn("");y(r=>({...r,[e.name]:t}))}catch(t){console.error("Error loading initial options:",t),y(t=>({...t,[e.name]:[]}))}finally{b(t=>({...t,[e.name]:!1}))}}},[O]);(0,r.useEffect)(()=>{f&&e.forEach(e=>{e.isSearchable&&!O[e.name]&&S(e)})},[f,e,S,O]);let E=(e,t)=>{let r={...m,[e]:t};h(r),o(r)};return(0,t.jsxs)("div",{className:"w-full",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-6",children:[(0,t.jsx)(l.Button,{icon:(0,t.jsx)(a,{className:"h-4 w-4"}),onClick:()=>p(!f),className:"flex items-center gap-2",children:d}),(0,t.jsx)(l.Button,{onClick:()=>{let t={};e.forEach(e=>{t[e.name]=""}),h(t),u()},children:"Reset Filters"})]}),f&&(0,t.jsx)("div",{className:"grid grid-cols-3 gap-x-6 gap-y-4 mb-6",children:["Team ID","Status","Organization ID","Key Alias","User ID","End User","Error Code","Error Message","Key Hash","Model","Public model / search tool"].map(r=>{let a,l=e.find(e=>e.label===r||e.name===r);return l?(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)("label",{className:"text-sm text-gray-600",children:l.label||l.name}),l.isSearchable?(0,t.jsx)(i.Select,{showSearch:!0,className:"w-full",placeholder:`Search ${l.label||l.name}...`,value:m[l.name]||void 0,onChange:e=>E(l.name,e),onOpenChange:e=>{e&&l.isSearchable&&!O[l.name]&&S(l)},onSearch:e=>{x(t=>({...t,[l.name]:e})),l.searchFn&&j(e,l)},filterOption:!1,loading:v[l.name],options:g[l.name]||[],allowClear:!0,notFoundContent:v[l.name]?"Loading...":"No results found"}):l.options?(0,t.jsx)(i.Select,{className:"w-full",placeholder:`Select ${l.label||l.name}...`,value:m[l.name]||void 0,onChange:e=>E(l.name,e),allowClear:!0,children:l.options.map(e=>(0,t.jsx)(i.Select.Option,{value:e.value,children:e.label},e.value))}):l.customComponent?(a=l.customComponent,(0,t.jsx)(a,{value:m[l.name]||void 0,onChange:e=>E(l.name,e??""),placeholder:`Select ${l.label||l.name}...`,allFilters:m})):(0,t.jsx)(n.Input,{className:"w-full",placeholder:`Enter ${l.label||l.name}...`,value:m[l.name]||"",onChange:e=>E(l.name,e.target.value),allowClear:!0})]},l.name):null})})]})}],969550)},633627,e=>{"use strict";var t=e.i(764205);let r=(e,t,r,a)=>{for(let l of e){let e=l?.key_alias;e&&"string"==typeof e&&t.add(e.trim());let n=l?.organization_id??l?.org_id;n&&"string"==typeof n&&r.add(n.trim());let i=l?.user_id;if(i&&"string"==typeof i){let e=l?.user?.user_email||i;a.set(i,e)}}},a=async(e,a)=>{if(!e||!a)return{keyAliases:[],organizationIds:[],userIds:[]};try{let l=new Set,n=new Set,i=new Map,s=await (0,t.keyListCall)(e,null,a,null,null,null,1,100,null,null,"user",null),o=s?.keys||[],u=s?.total_pages??1;r(o,l,n,i);let c=Math.min(u,10)-1;if(c>0){let s=Array.from({length:c},(r,l)=>(0,t.keyListCall)(e,null,a,null,null,null,l+2,100,null,null,"user",null));for(let e of(await Promise.allSettled(s)))"fulfilled"===e.status&&r(e.value?.keys||[],l,n,i)}return{keyAliases:Array.from(l).sort(),organizationIds:Array.from(n).sort(),userIds:Array.from(i.entries()).map(([e,t])=>({id:e,email:t}))}}catch(e){return console.error("Error fetching team filter options:",e),{keyAliases:[],organizationIds:[],userIds:[]}}},l=async(e,r)=>{if(!e)return[];try{let a=[],l=1,n=!0;for(;n;){let i=await (0,t.teamListCall)(e,r||null,null);a=[...a,...i],l{if(!e)return[];try{let r=[],a=1,l=!0;for(;l;){let n=await (0,t.organizationListCall)(e);r=[...r,...n],a{"use strict";var t=e.i(764205),s=e.i(266027),a=e.i(243652),r=e.i(708347),l=e.i(135214);let i=(0,a.createQueryKeys)("agents");e.s(["useAgents",0,()=>{let{accessToken:e,userRole:a}=(0,l.default)();return(0,s.useQuery)({queryKey:i.list({}),queryFn:async()=>await (0,t.getAgentsList)(e),enabled:!!e&&r.all_admin_roles.includes(a||"")})}],289793);let n=(0,a.createQueryKeys)("customers");e.s(["useCustomers",0,()=>{let{accessToken:e,userRole:a}=(0,l.default)();return(0,s.useQuery)({queryKey:n.list({}),queryFn:async()=>await (0,t.allEndUsersCall)(e),enabled:!!e&&r.all_admin_roles.includes(a)})}],952840);var o=e.i(621482);let c=(0,a.createQueryKeys)("infiniteUsers"),d=50;e.s(["useInfiniteUsers",0,(e=d,s)=>{let{accessToken:a,userRole:i}=(0,l.default)();return(0,o.useInfiniteQuery)({queryKey:c.list({filters:{pageSize:e,...s&&{searchEmail:s}}}),queryFn:async({pageParam:r})=>await (0,t.userListCall)(a,null,r,e,s||null),initialPageParam:1,getNextPageParam:e=>{if(e.pagee&&t&&t.length?(0,u.jsxs)("div",{className:"w-56 rounded-tremor-default border border-tremor-border bg-tremor-background p-2 text-tremor-default shadow-tremor-dropdown",children:[(0,u.jsx)("p",{className:"text-tremor-content-strong",children:s}),t.map(e=>{let t=e.dataKey?.toString();if(!t||!e.payload)return null;let s=((e,t)=>{let s=t.substring(t.indexOf(".")+1);if(e.metrics&&s in e.metrics)return e.metrics[s]})(e.payload,t),a=t.includes("spend"),r=void 0!==s?a?`$${s.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})}`:s.toLocaleString():"N/A",l=b[e.color]||e.color;return(0,u.jsxs)("div",{className:"flex items-center justify-between space-x-4",children:[(0,u.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,u.jsx)("span",{className:"h-2 w-2 shrink-0 rounded-full ring-2 ring-white drop-shadow-md",style:{backgroundColor:l}}),(0,u.jsx)("p",{className:"font-medium text-tremor-content dark:text-dark-tremor-content",children:t.replace("metrics.","").replace(/_/g," ").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")})]}),(0,u.jsx)("p",{className:"font-medium text-tremor-content-emphasis dark:text-dark-tremor-content-emphasis",children:r})]},t)})]}):null,v=({categories:e,colors:t})=>(0,u.jsx)("div",{className:"flex items-center justify-end space-x-4",children:e.map((e,s)=>{let a=b[t[s]]||t[s];return(0,u.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,u.jsx)("span",{className:"h-2 w-2 shrink-0 rounded-full ring-4 ring-white",style:{backgroundColor:a}}),(0,u.jsx)("p",{className:"text-sm text-tremor-content dark:text-dark-tremor-content",children:e.replace("metrics.","").replace(/_/g," ").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")})]},e)})});e.s(["CustomLegend",0,v,"CustomTooltip",0,k],286718);var N=e.i(291542),T=e.i(271645);let C=[{title:"Model",dataIndex:"model",key:"model",render:e=>e||"-"},{title:"Spend (USD)",dataIndex:"spend",key:"spend",render:e=>`$${(0,m.formatNumberWithCommas)(e,2)}`},{title:"Successful",dataIndex:"successful_requests",key:"successful_requests",render:e=>(0,u.jsx)("span",{className:"text-green-600",children:e?.toLocaleString()||0})},{title:"Failed",dataIndex:"failed_requests",key:"failed_requests",render:e=>(0,u.jsx)("span",{className:"text-red-600",children:e?.toLocaleString()||0})},{title:"Tokens",dataIndex:"tokens",key:"tokens",render:e=>e?.toLocaleString()||0}],w=({topModels:e})=>{let[t,s]=(0,T.useState)("table");return 0===e.length?null:(0,u.jsxs)(g.Card,{className:"mt-4",children:[(0,u.jsxs)("div",{className:"flex justify-between items-center mb-3",children:[(0,u.jsx)(_.Title,{children:"Model Usage"}),(0,u.jsxs)("div",{className:"flex space-x-2",children:[(0,u.jsx)("button",{onClick:()=>s("table"),className:`px-3 py-1 text-sm rounded-md ${"table"===t?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-700"}`,children:"Table"}),(0,u.jsx)("button",{onClick:()=>s("chart"),className:`px-3 py-1 text-sm rounded-md ${"chart"===t?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-700"}`,children:"Chart"})]})]}),"chart"===t?(0,u.jsx)("div",{className:"max-h-[234px] overflow-y-auto",children:(0,u.jsx)(p.BarChart,{style:{height:40*e.length},data:e.map(e=>({key:e.model,spend:e.spend})),index:"key",categories:["spend"],colors:["cyan"],valueFormatter:e=>`$${(0,m.formatNumberWithCommas)(e,2)}`,layout:"vertical",yAxisWidth:180,tickGap:5,showLegend:!1})}):(0,u.jsx)(N.Table,{columns:C,dataSource:e,rowKey:"model",size:"small",pagination:!1,scroll:e.length>5?{y:195}:void 0})]})};function S(e){return e>=1e6?(e/1e6).toFixed(2)+"M":e>=1e3?e/1e3+"k":e.toString()}e.s(["valueFormatter",0,S,"valueFormatterSpend",0,function(e){return 0===e?"$0":e>=1e6?"$"+e/1e6+"M":e>=1e3?"$"+e/1e3+"k":"$"+e}],23371);let q=({modelName:e,metrics:t,hidePromptCachingMetrics:s=!1})=>(0,u.jsxs)("div",{className:"space-y-2",children:[(0,u.jsxs)(f.Grid,{numItems:4,className:"gap-4",children:[(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Requests"}),(0,u.jsx)(_.Title,{children:t.total_requests.toLocaleString()})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Successful Requests"}),(0,u.jsx)(_.Title,{children:t.total_successful_requests.toLocaleString()})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Tokens"}),(0,u.jsx)(_.Title,{children:t.total_tokens.toLocaleString()}),(0,u.jsxs)(j.Text,{children:[Math.round(t.total_tokens/t.total_successful_requests)," avg per successful request"]})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Spend"}),(0,u.jsxs)(_.Title,{children:["$",(0,m.formatNumberWithCommas)(t.total_spend,2)]}),(0,u.jsxs)(j.Text,{children:["$",(0,m.formatNumberWithCommas)(t.total_spend/t.total_successful_requests,3)," per successful request"]})]})]}),t.top_api_keys&&t.top_api_keys.length>0&&(0,u.jsxs)(g.Card,{className:"mt-4",children:[(0,u.jsx)(_.Title,{children:"Top Virtual Keys by Spend"}),(0,u.jsx)("div",{className:"mt-3",children:(0,u.jsx)("div",{className:"grid grid-cols-1 gap-2",children:t.top_api_keys.map((e,t)=>(0,u.jsxs)("div",{className:"flex justify-between items-center p-3 bg-gray-50 rounded-lg",children:[(0,u.jsxs)("div",{children:[(0,u.jsx)(j.Text,{className:"font-medium",children:e.key_alias||`${e.api_key.substring(0,10)}...`}),e.team_id&&(0,u.jsxs)(j.Text,{className:"text-xs text-gray-500",children:["Team: ",e.team_id]})]}),(0,u.jsxs)("div",{className:"text-right",children:[(0,u.jsxs)(j.Text,{className:"font-medium",children:["$",(0,m.formatNumberWithCommas)(e.spend,2)]}),(0,u.jsxs)(j.Text,{className:"text-xs text-gray-500",children:[e.requests.toLocaleString()," requests | ",e.tokens.toLocaleString()," tokens"]})]})]},e.api_key))})})]}),t.top_models&&t.top_models.length>0&&(0,u.jsx)(w,{topModels:t.top_models}),(0,u.jsxs)(g.Card,{className:"mt-4",children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Spend per day"}),(0,u.jsx)(v,{categories:["metrics.spend"],colors:["green"]})]}),(0,u.jsx)(p.BarChart,{className:"mt-4",data:t.daily_data,index:"date",categories:["metrics.spend"],colors:["green"],valueFormatter:e=>`$${(0,m.formatNumberWithCommas)(e,2,!0)}`,yAxisWidth:72})]}),(0,u.jsxs)(f.Grid,{numItems:2,className:"gap-4 mt-4",children:[(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Total Tokens"}),(0,u.jsx)(v,{categories:["metrics.prompt_tokens","metrics.completion_tokens","metrics.total_tokens"],colors:["blue","cyan","indigo"]})]}),(0,u.jsx)(h.AreaChart,{className:"mt-4",data:t.daily_data,index:"date",categories:["metrics.prompt_tokens","metrics.completion_tokens","metrics.total_tokens"],colors:["blue","cyan","indigo"],valueFormatter:S,customTooltip:k,showLegend:!1})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Requests per day"}),(0,u.jsx)(v,{categories:["metrics.api_requests"],colors:["blue"]})]}),(0,u.jsx)(p.BarChart,{className:"mt-4",data:t.daily_data,index:"date",categories:["metrics.api_requests"],colors:["blue"],valueFormatter:S,customTooltip:k,showLegend:!1})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Success vs Failed Requests"}),(0,u.jsx)(v,{categories:["metrics.successful_requests","metrics.failed_requests"],colors:["green","red"]})]}),(0,u.jsx)(h.AreaChart,{className:"mt-4",data:t.daily_data,index:"date",categories:["metrics.successful_requests","metrics.failed_requests"],colors:["green","red"],valueFormatter:S,customTooltip:k,showLegend:!1})]}),!s&&(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Prompt Caching Metrics"}),(0,u.jsx)(v,{categories:["metrics.cache_read_input_tokens","metrics.cache_creation_input_tokens"],colors:["cyan","purple"]})]}),(0,u.jsxs)("div",{className:"mb-2",children:[(0,u.jsxs)(j.Text,{children:["Cache Read: ",t.total_cache_read_input_tokens?.toLocaleString()||0," tokens"]}),(0,u.jsxs)(j.Text,{children:["Cache Creation: ",t.total_cache_creation_input_tokens?.toLocaleString()||0," tokens"]})]}),(0,u.jsx)(h.AreaChart,{className:"mt-4",data:t.daily_data,index:"date",categories:["metrics.cache_read_input_tokens","metrics.cache_creation_input_tokens"],colors:["cyan","purple"],valueFormatter:S,customTooltip:k,showLegend:!1})]})]})]});e.s(["ActivityMetrics",0,({modelMetrics:e,hidePromptCachingMetrics:t=!1})=>{let s=Object.keys(e).sort((t,s)=>""===t?1:""===s?-1:e[s].total_spend-e[t].total_spend),a={total_requests:0,total_successful_requests:0,total_tokens:0,total_spend:0,total_cache_read_input_tokens:0,total_cache_creation_input_tokens:0,daily_data:{}};Object.values(e).forEach(e=>{a.total_requests+=e.total_requests,a.total_successful_requests+=e.total_successful_requests,a.total_tokens+=e.total_tokens,a.total_spend+=e.total_spend,a.total_cache_read_input_tokens+=e.total_cache_read_input_tokens||0,a.total_cache_creation_input_tokens+=e.total_cache_creation_input_tokens||0,e.daily_data.forEach(e=>{a.daily_data[e.date]||(a.daily_data[e.date]={prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,spend:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0}),a.daily_data[e.date].prompt_tokens+=e.metrics.prompt_tokens,a.daily_data[e.date].completion_tokens+=e.metrics.completion_tokens,a.daily_data[e.date].total_tokens+=e.metrics.total_tokens,a.daily_data[e.date].api_requests+=e.metrics.api_requests,a.daily_data[e.date].spend+=e.metrics.spend,a.daily_data[e.date].successful_requests+=e.metrics.successful_requests,a.daily_data[e.date].failed_requests+=e.metrics.failed_requests,a.daily_data[e.date].cache_read_input_tokens+=e.metrics.cache_read_input_tokens||0,a.daily_data[e.date].cache_creation_input_tokens+=e.metrics.cache_creation_input_tokens||0})});let r=Object.entries(a.daily_data).map(([e,t])=>({date:e,metrics:t})).sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime());return(0,u.jsxs)("div",{className:"space-y-8",children:[(0,u.jsxs)("div",{className:"border rounded-lg p-4",children:[(0,u.jsx)(_.Title,{children:"Overall Usage"}),(0,u.jsxs)(f.Grid,{numItems:4,className:"gap-4 mb-4",children:[(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Requests"}),(0,u.jsx)(_.Title,{children:a.total_requests.toLocaleString()})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Successful Requests"}),(0,u.jsx)(_.Title,{children:a.total_successful_requests.toLocaleString()})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Tokens"}),(0,u.jsx)(_.Title,{children:a.total_tokens.toLocaleString()})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Spend"}),(0,u.jsxs)(_.Title,{children:["$",(0,m.formatNumberWithCommas)(a.total_spend,2)]})]})]}),(0,u.jsxs)(f.Grid,{numItems:2,className:"gap-4",children:[(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Total Tokens Over Time"}),(0,u.jsx)(v,{categories:["metrics.prompt_tokens","metrics.completion_tokens","metrics.total_tokens"],colors:["blue","cyan","indigo"]})]}),(0,u.jsx)(h.AreaChart,{className:"mt-4",data:r,index:"date",categories:["metrics.prompt_tokens","metrics.completion_tokens","metrics.total_tokens"],colors:["blue","cyan","indigo"],valueFormatter:S,customTooltip:k,showLegend:!1})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Total Requests Over Time"}),(0,u.jsx)(v,{categories:["metrics.successful_requests","metrics.failed_requests"],colors:["emerald","red"]})]}),(0,u.jsx)(h.AreaChart,{className:"mt-4",data:r,index:"date",categories:["metrics.successful_requests","metrics.failed_requests"],colors:["emerald","red"],valueFormatter:e=>e.toLocaleString(),customTooltip:k,showLegend:!1})]})]})]}),(0,u.jsx)(y.Collapse,{defaultActiveKey:s[0],children:s.map(s=>(0,u.jsx)(y.Collapse.Panel,{header:(0,u.jsxs)("div",{className:"flex justify-between items-center w-full",children:[(0,u.jsx)(_.Title,{children:e[s].label||"Unknown Item"}),(0,u.jsxs)("div",{className:"flex space-x-4 text-sm text-gray-500",children:[(0,u.jsxs)("span",{children:["$",(0,m.formatNumberWithCommas)(e[s].total_spend,2)]}),(0,u.jsxs)("span",{children:[e[s].total_requests.toLocaleString()," requests"]})]})]}),children:(0,u.jsx)(q,{modelName:s||"Unknown Model",metrics:e[s],hidePromptCachingMetrics:t})},s))})]})},"processActivityData",0,(e,t,s=[])=>{let a={};return e.results.forEach(e=>{Object.entries(e.breakdown[t]||{}).forEach(([r,l])=>{a[r]||(a[r]={label:"api_keys"===t?((e,t,s)=>{let a=e.metadata.key_alias||`key-hash-${t}`,r=e.metadata.team_id;if(r){let e=(0,x.resolveTeamAliasFromTeamID)(r,s);return e?`${a} (team: ${e})`:`${a} (team_id: ${r})`}return a})(l,r,s):"entities"===t&&(l.metadata?.agent_name||l.metadata?.team_alias)||r,total_requests:0,total_successful_requests:0,total_failed_requests:0,total_tokens:0,prompt_tokens:0,completion_tokens:0,total_spend:0,total_cache_read_input_tokens:0,total_cache_creation_input_tokens:0,top_api_keys:[],top_models:[],daily_data:[]}),a[r].total_requests+=l.metrics.api_requests,a[r].prompt_tokens+=l.metrics.prompt_tokens,a[r].completion_tokens+=l.metrics.completion_tokens,a[r].total_tokens+=l.metrics.total_tokens,a[r].total_spend+=l.metrics.spend,a[r].total_successful_requests+=l.metrics.successful_requests,a[r].total_failed_requests+=l.metrics.failed_requests,a[r].total_cache_read_input_tokens+=l.metrics.cache_read_input_tokens||0,a[r].total_cache_creation_input_tokens+=l.metrics.cache_creation_input_tokens||0,a[r].daily_data.push({date:e.date,metrics:{prompt_tokens:l.metrics.prompt_tokens,completion_tokens:l.metrics.completion_tokens,total_tokens:l.metrics.total_tokens,api_requests:l.metrics.api_requests,spend:l.metrics.spend,successful_requests:l.metrics.successful_requests,failed_requests:l.metrics.failed_requests,cache_read_input_tokens:l.metrics.cache_read_input_tokens||0,cache_creation_input_tokens:l.metrics.cache_creation_input_tokens||0}})})}),"api_keys"!==t&&Object.entries(a).forEach(([s,r])=>{let l={};e.results.forEach(e=>{let a=e.breakdown[t]?.[s];a&&"api_key_breakdown"in a&&Object.entries(a.api_key_breakdown||{}).forEach(([e,t])=>{l[e]||(l[e]={api_key:e,key_alias:t.metadata.key_alias,team_id:t.metadata.team_id,spend:0,requests:0,tokens:0}),l[e].spend+=t.metrics.spend,l[e].requests+=t.metrics.api_requests,l[e].tokens+=t.metrics.total_tokens})}),a[s].top_api_keys=Object.values(l).sort((e,t)=>t.spend-e.spend).slice(0,5)}),"api_keys"===t&&Object.entries(a).forEach(([t,s])=>{let r={};e.results.forEach(e=>{Object.entries(e.breakdown.models||{}).forEach(([e,s])=>{if(s&&"api_key_breakdown"in s){let a=s.api_key_breakdown?.[t];a&&(r[e]||(r[e]={model:e,spend:0,requests:0,successful_requests:0,failed_requests:0,tokens:0}),r[e].spend+=a.metrics.spend,r[e].requests+=a.metrics.api_requests,r[e].successful_requests+=a.metrics.successful_requests||0,r[e].failed_requests+=a.metrics.failed_requests||0,r[e].tokens+=a.metrics.total_tokens)}})}),a[t].top_models=Object.values(r).sort((e,t)=>t.spend-e.spend)}),Object.values(a).forEach(e=>{e.daily_data.sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime())}),a}],487147);var L=e.i(994388),D=e.i(366283),A=e.i(779241),M=e.i(212931),O=e.i(808613),E=e.i(482725),F=e.i(199133),$=e.i(727749);e.s(["default",0,({isOpen:e,onClose:s,accessToken:a})=>{let[r]=O.Form.useForm(),[l,i]=(0,T.useState)(!1),[n,o]=(0,T.useState)(null),[c,d]=(0,T.useState)(!1),[m,x]=(0,T.useState)("cloudzero"),[h,p]=(0,T.useState)(!1);(0,T.useEffect)(()=>{e&&a&&g()},[e,a]);let g=async()=>{d(!0);try{let e=await fetch("/cloudzero/settings",{method:"GET",headers:{[(0,t.getGlobalLitellmHeaderName)()]:`Bearer ${a}`,"Content-Type":"application/json"}});if(e.ok){let t=await e.json();o(t),r.setFieldsValue({connection_id:t.connection_id})}else if(404!==e.status){let t=await e.json();$.default.fromBackend(`Failed to load existing settings: ${t.error||"Unknown error"}`)}}catch(e){console.error("Error loading CloudZero settings:",e),$.default.fromBackend("Failed to load existing settings")}finally{d(!1)}},f=async e=>{if(!a)return void $.default.fromBackend("No access token available");i(!0);try{let s=n?"/cloudzero/settings":"/cloudzero/init",r=n?"PUT":"POST",l={...e,timezone:"UTC"},i=await fetch(s,{method:r,headers:{[(0,t.getGlobalLitellmHeaderName)()]:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify(l)}),c=await i.json();if(i.ok)return $.default.success(c.message||"CloudZero settings saved successfully"),o({api_key_masked:e.api_key.substring(0,4)+"****"+e.api_key.slice(-4),connection_id:e.connection_id,status:"configured"}),!0;return $.default.fromBackend(c.error||"Failed to save CloudZero settings"),!1}catch(e){return console.error("Error saving CloudZero settings:",e),$.default.fromBackend("Failed to save CloudZero settings"),!1}finally{i(!1)}},_=async()=>{if(!a)return void $.default.fromBackend("No access token available");p(!0);try{let e=await fetch("/cloudzero/export",{method:"POST",headers:{[(0,t.getGlobalLitellmHeaderName)()]:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({limit:1e5,operation:"replace_hourly"})}),r=await e.json();e.ok?($.default.success(r.message||"Export to CloudZero completed successfully"),s()):$.default.fromBackend(r.error||"Failed to export to CloudZero")}catch(e){console.error("Error exporting to CloudZero:",e),$.default.fromBackend("Failed to export to CloudZero")}finally{p(!1)}},y=async()=>{p(!0);try{$.default.info("CSV export functionality coming soon!"),s()}catch(e){console.error("Error exporting CSV:",e),$.default.fromBackend("Failed to export CSV")}finally{p(!1)}},b=async()=>{if("cloudzero"===m){if(!n){let e=await r.validateFields();if(!await f(e))return}await _()}else await y()},k=()=>{r.resetFields(),x("cloudzero"),o(null),s()},v=[{value:"cloudzero",label:(0,u.jsxs)("div",{className:"flex items-center gap-2",children:[(0,u.jsx)("img",{src:"/cloudzero.png",alt:"CloudZero",className:"w-5 h-5",onError:e=>{e.target.style.display="none"}}),(0,u.jsx)("span",{children:"Export to CloudZero"})]})},{value:"csv",label:(0,u.jsxs)("div",{className:"flex items-center gap-2",children:[(0,u.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,u.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})}),(0,u.jsx)("span",{children:"Export to CSV"})]})}];return(0,u.jsx)(M.Modal,{title:"Export Data",open:e,onCancel:k,footer:null,width:600,destroyOnHidden:!0,children:(0,u.jsxs)("div",{className:"space-y-4",children:[(0,u.jsxs)("div",{children:[(0,u.jsx)(j.Text,{className:"font-medium mb-2 block",children:"Export Destination"}),(0,u.jsx)(F.Select,{value:m,onChange:x,options:v,className:"w-full",size:"large"})]}),"cloudzero"===m&&(0,u.jsx)("div",{children:c?(0,u.jsx)("div",{className:"flex justify-center py-8",children:(0,u.jsx)(E.Spin,{size:"large"})}):(0,u.jsxs)(u.Fragment,{children:[n&&(0,u.jsx)(D.Callout,{title:"Existing CloudZero Configuration",icon:()=>(0,u.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,u.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})}),color:"green",className:"mb-4",children:(0,u.jsxs)(j.Text,{children:["API Key: ",n.api_key_masked,(0,u.jsx)("br",{}),"Connection ID: ",n.connection_id]})}),!n&&(0,u.jsxs)(O.Form,{form:r,layout:"vertical",children:[(0,u.jsx)(O.Form.Item,{label:"CloudZero API Key",name:"api_key",rules:[{required:!0,message:"Please enter your CloudZero API key"}],children:(0,u.jsx)(A.TextInput,{type:"password",placeholder:"Enter your CloudZero API key"})}),(0,u.jsx)(O.Form.Item,{label:"Connection ID",name:"connection_id",rules:[{required:!0,message:"Please enter the CloudZero connection ID"}],children:(0,u.jsx)(A.TextInput,{placeholder:"Enter CloudZero connection ID"})})]})]})}),"csv"===m&&(0,u.jsx)(D.Callout,{title:"CSV Export",icon:()=>(0,u.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,u.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 6v6m0 0v6m0-6h6m-6 0H6"})}),color:"blue",children:(0,u.jsx)(j.Text,{children:"Export your usage data as a CSV file for analysis in spreadsheet applications."})}),(0,u.jsxs)("div",{className:"flex justify-end space-x-2 pt-4",children:[(0,u.jsx)(L.Button,{variant:"secondary",onClick:k,children:"Cancel"}),(0,u.jsx)(L.Button,{onClick:b,loading:l||h,disabled:l||h,children:"cloudzero"===m?"Export to CloudZero":"Export CSV"})]})]})})}],498610);var U=e.i(785242),P=e.i(464571),R=e.i(981339);let V=({value:e,onChange:t})=>(0,u.jsxs)("div",{children:[(0,u.jsx)("label",{className:"text-sm font-medium text-gray-700 block mb-2",children:"Format"}),(0,u.jsx)(F.Select,{value:e,onChange:t,className:"w-full",options:[{value:"csv",label:"CSV (Excel, Google Sheets)"},{value:"json",label:"JSON (includes metadata)"}]})]}),I=({dateRange:e,selectedFilters:t})=>(0,u.jsxs)("div",{className:"text-sm text-gray-500",children:[e.from?.toLocaleDateString()," - ",e.to?.toLocaleDateString(),t.length>0&&` \xb7 ${t.length} filter${t.length>1?"s":""}`]});var B=e.i(91739);let W=({value:e,onChange:t,entityType:s})=>(0,u.jsxs)("div",{children:[(0,u.jsx)("label",{className:"text-sm font-medium text-gray-700 block mb-2",children:"Export type"}),(0,u.jsx)(B.Radio.Group,{value:e,onChange:e=>t(e.target.value),className:"w-full",children:(0,u.jsxs)("div",{className:"space-y-2",children:[(0,u.jsxs)("label",{className:"flex items-start p-3 border border-gray-200 rounded-lg hover:bg-gray-50 cursor-pointer transition-colors",children:[(0,u.jsx)(B.Radio,{value:"daily",className:"mt-0.5"}),(0,u.jsxs)("div",{className:"ml-3 flex-1",children:[(0,u.jsxs)("div",{className:"font-medium text-sm",children:["Day-by-day breakdown by ",s]}),(0,u.jsxs)("div",{className:"text-xs text-gray-500 mt-0.5",children:["Daily metrics for each ",s]})]})]}),(0,u.jsxs)("label",{className:"flex items-start p-3 border border-gray-200 rounded-lg hover:bg-gray-50 cursor-pointer transition-colors",children:[(0,u.jsx)(B.Radio,{value:"daily_with_keys",className:"mt-0.5"}),(0,u.jsxs)("div",{className:"ml-3 flex-1",children:[(0,u.jsxs)("div",{className:"font-medium text-sm",children:["Day-by-day breakdown by ",s," and key"]}),(0,u.jsxs)("div",{className:"text-xs text-gray-500 mt-0.5",children:["Daily metrics for each ",s,", split by API key"]})]})]}),(0,u.jsxs)("label",{className:"flex items-start p-3 border border-gray-200 rounded-lg hover:bg-gray-50 cursor-pointer transition-colors",children:[(0,u.jsx)(B.Radio,{value:"daily_with_models",className:"mt-0.5"}),(0,u.jsxs)("div",{className:"ml-3 flex-1",children:[(0,u.jsxs)("div",{className:"font-medium text-sm",children:["Day-by-day by ",s," and model"]}),(0,u.jsx)("div",{className:"text-xs text-gray-500 mt-0.5",children:"Daily metrics split by model"})]})]})]})})]});var z=e.i(59935);let Y=(e,t)=>({id:e,alias:t[e]||e}),K=["spend","api_requests","successful_requests","failed_requests","total_tokens","prompt_tokens","completion_tokens","cache_read_input_tokens","cache_creation_input_tokens"],H=e=>{let t=e.entities;return t&&Object.keys(t).length>0?t:(e=>{let t=e.api_keys;if(!t||0===Object.keys(t).length)return{};let s={};for(let[e,a]of Object.entries(t)){let t=a?.metadata?.team_id||"Unassigned";s[t]||(s[t]={metrics:Object.fromEntries(K.map(e=>[e,0])),api_key_breakdown:{}});let r=s[t].metrics,l=a?.metrics||{};for(let e of K)r[e]+=l[e]||0;s[t].api_key_breakdown[e]=a}return s})(e)},G=(e,t,s,a={})=>{switch(t){case"daily":default:return((e,t,s={})=>{let a=[];return e.results.forEach(e=>{Object.entries(H(e.breakdown)).forEach(([r,l])=>{let{id:i,alias:n}=Y(r,s);a.push({Date:e.date,[t]:n,[`${t} ID`]:i,"Spend ($)":(0,m.formatNumberWithCommas)(l.metrics.spend,4),Requests:l.metrics.api_requests,"Successful Requests":l.metrics.successful_requests,"Failed Requests":l.metrics.failed_requests,"Total Tokens":l.metrics.total_tokens,"Prompt Tokens":l.metrics.prompt_tokens||0,"Completion Tokens":l.metrics.completion_tokens||0})})}),a.sort((e,t)=>new Date(e.Date).getTime()-new Date(t.Date).getTime())})(e,s,a);case"daily_with_keys":return((e,t,s={})=>{let a={};return e.results.forEach(e=>{Object.entries(H(e.breakdown)).forEach(([t,r])=>{let{id:l,alias:i}=Y(t,s);Object.entries(r.api_key_breakdown||{}).forEach(([t,s])=>{let r=s?.metadata?.key_alias||null,n=`${e.date}_${l}_${t}`;a[n]?(a[n].metrics.spend+=s.metrics?.spend||0,a[n].metrics.api_requests+=s.metrics?.api_requests||0,a[n].metrics.successful_requests+=s.metrics?.successful_requests||0,a[n].metrics.failed_requests+=s.metrics?.failed_requests||0,a[n].metrics.total_tokens+=s.metrics?.total_tokens||0,a[n].metrics.prompt_tokens+=s.metrics?.prompt_tokens||0,a[n].metrics.completion_tokens+=s.metrics?.completion_tokens||0):a[n]={Date:e.date,entityId:l,entityAlias:i,keyId:t,keyAlias:r,metrics:{spend:s.metrics?.spend||0,api_requests:s.metrics?.api_requests||0,successful_requests:s.metrics?.successful_requests||0,failed_requests:s.metrics?.failed_requests||0,total_tokens:s.metrics?.total_tokens||0,prompt_tokens:s.metrics?.prompt_tokens||0,completion_tokens:s.metrics?.completion_tokens||0}}})})}),Object.values(a).map(e=>({Date:e.Date,[t]:e.entityAlias,[`${t} ID`]:e.entityId,"Key Alias":e.keyAlias||"-","Key ID":e.keyId,"Spend ($)":(0,m.formatNumberWithCommas)(e.metrics.spend,4),Requests:e.metrics.api_requests,"Successful Requests":e.metrics.successful_requests,"Failed Requests":e.metrics.failed_requests,"Total Tokens":e.metrics.total_tokens,"Prompt Tokens":e.metrics.prompt_tokens,"Completion Tokens":e.metrics.completion_tokens})).sort((e,t)=>new Date(e.Date).getTime()-new Date(t.Date).getTime())})(e,s,a);case"daily_with_models":return((e,t,s={})=>{let a=[];return e.results.forEach(e=>{let r={};Object.entries(H(e.breakdown)).forEach(([t,s])=>{r[t]||(r[t]={}),Object.entries(e.breakdown.models||{}).forEach(([e,a])=>{Object.entries(s.api_key_breakdown||{}).forEach(([s,a])=>{r[t][e]||(r[t][e]={spend:0,requests:0,successful:0,failed:0,tokens:0}),r[t][e].spend+=a.metrics.spend||0,r[t][e].requests+=a.metrics.api_requests||0,r[t][e].successful+=a.metrics.successful_requests||0,r[t][e].failed+=a.metrics.failed_requests||0,r[t][e].tokens+=a.metrics.total_tokens||0})})}),Object.entries(r).forEach(([r,l])=>{let{id:i,alias:n}=Y(r,s);Object.entries(l).forEach(([s,r])=>{a.push({Date:e.date,[t]:n,[`${t} ID`]:i,Model:s,"Spend ($)":(0,m.formatNumberWithCommas)(r.spend,4),Requests:r.requests,Successful:r.successful,Failed:r.failed,"Total Tokens":r.tokens})})})}),a.sort((e,t)=>new Date(e.Date).getTime()-new Date(t.Date).getTime())})(e,s,a)}},Z=({isOpen:e,onClose:t,entityType:s,spendData:a,dateRange:r,selectedFilters:l,customTitle:i})=>{let[n,o]=(0,T.useState)("csv"),[c,d]=(0,T.useState)("daily"),[m,h]=(0,T.useState)(!1),{data:p,isLoading:g}=(0,U.useTeams)(),f=s.charAt(0).toUpperCase()+s.slice(1),j=i||`Export ${f} Usage`,_=(0,T.useMemo)(()=>(0,x.createTeamAliasMap)(p),[p]),y=async e=>{let i=e||n;h(!0);try{"csv"===i?(((e,t,s,a,r={})=>{let l=G(e,t,s,r),i=new Blob([z.default.unparse(l)],{type:"text/csv;charset=utf-8;"}),n=window.URL.createObjectURL(i),o=document.createElement("a");o.href=n,o.download=`${a}_usage_${t}_${new Date().toISOString().split("T")[0]}.csv`,document.body.appendChild(o),o.click(),document.body.removeChild(o),window.URL.revokeObjectURL(n)})(a,c,f,s,_),$.default.success(`${f} usage data exported successfully as CSV`)):(((e,t,s,a,r,l,i={})=>{let n=G(e,t,s,i),o={export_date:new Date().toISOString(),entity_type:a,date_range:{from:r.from?.toISOString(),to:r.to?.toISOString()},filters_applied:l.length>0?l:"None",export_scope:t,summary:{total_spend:e.metadata.total_spend,total_requests:e.metadata.total_api_requests,successful_requests:e.metadata.total_successful_requests,failed_requests:e.metadata.total_failed_requests,total_tokens:e.metadata.total_tokens}},c=new Blob([JSON.stringify({metadata:o,data:n},null,2)],{type:"application/json"}),d=window.URL.createObjectURL(c),u=document.createElement("a");u.href=d,u.download=`${a}_usage_${t}_${new Date().toISOString().split("T")[0]}.json`,document.body.appendChild(u),u.click(),document.body.removeChild(u),window.URL.revokeObjectURL(d)})(a,c,f,s,r,l,_),$.default.success(`${f} usage data exported successfully as JSON`)),t()}catch(e){console.error("Error exporting data:",e),$.default.fromBackend("Failed to export data")}finally{h(!1)}};return(0,u.jsx)(M.Modal,{title:(0,u.jsx)("span",{className:"text-base font-semibold",children:j}),open:e,onCancel:t,footer:null,width:480,children:(0,u.jsxs)("div",{className:"space-y-5 py-2",children:[g?(0,u.jsx)(R.Skeleton,{active:!0}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(I,{dateRange:r,selectedFilters:l}),(0,u.jsx)(W,{value:c,onChange:d,entityType:s}),(0,u.jsx)(V,{value:n,onChange:o})]}),g?(0,u.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-4 border-t",children:[(0,u.jsx)(R.Skeleton.Button,{active:!0}),(0,u.jsx)(R.Skeleton.Button,{active:!0})]}):(0,u.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-4 border-t",children:[(0,u.jsx)(P.Button,{variant:"outlined",onClick:t,disabled:m,children:"Cancel"}),(0,u.jsx)(P.Button,{onClick:()=>y(),loading:m||g,disabled:m||g,type:"primary",children:m?"Exporting...":`Export ${n.toUpperCase()}`})]})]})})};e.s(["default",0,Z],785952),e.s(["default",0,({dateValue:e,entityType:t,spendData:s,showFilters:a=!1,filterLabel:r,filterPlaceholder:l,selectedFilters:i=[],onFiltersChange:n,filterOptions:o=[],filterMode:c="multiple",customTitle:d,compactLayout:m=!1,teams:x=[]})=>{let[h,p]=(0,T.useState)(!1);return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("div",{className:"mb-4",children:(0,u.jsxs)("div",{className:`grid ${a&&o.length>0?"grid-cols-[1fr_auto]":"grid-cols-[auto]"} items-end gap-4`,children:[a&&o.length>0&&(0,u.jsxs)("div",{children:[r&&(0,u.jsx)(j.Text,{className:"mb-2",children:r}),(0,u.jsx)(F.Select,{mode:"single"===c?void 0:"multiple",style:{width:"100%"},placeholder:l,value:"single"===c?i[0]??void 0:i,onChange:e=>{"single"===c?n?.(e?[e]:[]):n?.(e)},options:o,allowClear:!0})]}),(0,u.jsx)("div",{className:"justify-self-end",children:(0,u.jsx)(L.Button,{onClick:()=>p(!0),icon:()=>(0,u.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,u.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})}),children:"Export Data"})})]})}),(0,u.jsx)(Z,{isOpen:h,onClose:()=>p(!1),entityType:t,spendData:s,dateRange:e,selectedFilters:i,customTitle:d,teams:x})]})}],193523),e.s([],260573)},973706,e=>{"use strict";var t=e.i(843476),s=e.i(72713),a=e.i(637235),r=e.i(994388),l=e.i(599724),i=e.i(166540),n=e.i(271645);let o=[{label:"Today",shortLabel:"today",getValue:()=>({from:(0,i.default)().startOf("day").toDate(),to:(0,i.default)().endOf("day").toDate()})},{label:"Last 7 days",shortLabel:"7d",getValue:()=>({from:(0,i.default)().subtract(7,"days").startOf("day").toDate(),to:(0,i.default)().endOf("day").toDate()})},{label:"Last 30 days",shortLabel:"30d",getValue:()=>({from:(0,i.default)().subtract(30,"days").startOf("day").toDate(),to:(0,i.default)().endOf("day").toDate()})},{label:"Month to date",shortLabel:"MTD",getValue:()=>({from:(0,i.default)().startOf("month").toDate(),to:(0,i.default)().endOf("day").toDate()})},{label:"Year to date",shortLabel:"YTD",getValue:()=>({from:(0,i.default)().startOf("year").toDate(),to:(0,i.default)().endOf("day").toDate()})}];e.s(["default",0,({value:e,onValueChange:c,label:d="Select Time Range",showTimeRange:u=!0})=>{let[m,x]=(0,n.useState)(!1),[h,p]=(0,n.useState)(e),[g,f]=(0,n.useState)(null),[j,_]=(0,n.useState)(""),[y,b]=(0,n.useState)(""),k=(0,n.useRef)(null),v=(0,n.useCallback)(e=>{if(!e.from||!e.to)return null;for(let t of o){let s=t.getValue(),a=(0,i.default)(e.from).isSame((0,i.default)(s.from),"day"),r=(0,i.default)(e.to).isSame((0,i.default)(s.to),"day");if(a&&r)return t.shortLabel}return null},[]);(0,n.useEffect)(()=>{f(v(e))},[e,v]);let N=(0,n.useCallback)(()=>{if(!j||!y)return{isValid:!0,error:""};let e=(0,i.default)(j,"YYYY-MM-DD"),t=(0,i.default)(y,"YYYY-MM-DD");return e.isValid()&&t.isValid()?t.isBefore(e)?{isValid:!1,error:"End date cannot be before start date"}:{isValid:!0,error:""}:{isValid:!1,error:"Invalid date format"}},[j,y])();(0,n.useEffect)(()=>{e.from&&_((0,i.default)(e.from).format("YYYY-MM-DD")),e.to&&b((0,i.default)(e.to).format("YYYY-MM-DD")),p(e)},[e]),(0,n.useEffect)(()=>{let e=e=>{k.current&&!k.current.contains(e.target)&&x(!1)};return m&&document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[m]);let T=(0,n.useCallback)((e,t)=>{if(!e||!t)return"Select date range";let s=e=>(0,i.default)(e).format("D MMM, HH:mm");return`${s(e)} - ${s(t)}`},[]),C=(0,n.useCallback)(e=>{let t;if(!e.from)return e;let s={...e},a=new Date(e.from);return t=new Date(e.to?e.to:e.from),a.toDateString()===t.toDateString(),a.setHours(0,0,0,0),t.setHours(23,59,59,999),s.from=a,s.to=t,s},[]),w=(0,n.useCallback)(()=>{try{if(j&&y&&N.isValid){let e=(0,i.default)(j,"YYYY-MM-DD").startOf("day"),t=(0,i.default)(y,"YYYY-MM-DD").endOf("day");if(e.isValid()&&t.isValid()){let s={from:e.toDate(),to:t.toDate()};p(s);let a=v(s);f(a)}}}catch(e){console.warn("Invalid date format:",e)}},[j,y,N.isValid,v]);return(0,n.useEffect)(()=>{w()},[w]),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[d&&(0,t.jsx)(l.Text,{className:"text-sm font-medium text-gray-700 whitespace-nowrap",children:d}),(0,t.jsxs)("div",{className:"relative",ref:k,children:[(0,t.jsx)("div",{className:"w-[300px] px-3 py-2 text-sm border border-gray-300 rounded-md bg-white cursor-pointer hover:border-gray-400 focus:border-blue-500 focus:ring-1 focus:ring-blue-500",onClick:()=>x(!m),children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(a.ClockCircleOutlined,{className:"text-gray-600"}),(0,t.jsx)("span",{className:"text-gray-900",children:T(e.from,e.to)})]}),(0,t.jsx)("svg",{className:`w-4 h-4 text-gray-400 transition-transform ${m?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})}),m&&(0,t.jsx)("div",{className:"absolute top-full right-0 z-[9999] min-w-[600px] mt-1 bg-white border border-gray-200 rounded-lg shadow-xl",children:(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsxs)("div",{className:"w-1/2 border-r border-gray-200",children:[(0,t.jsx)("div",{className:"p-3 border-b border-gray-200",children:(0,t.jsx)("span",{className:"text-sm font-semibold text-gray-900",children:"Relative time"})}),(0,t.jsx)("div",{className:"h-[350px] overflow-y-auto",children:o.map(e=>{let s=g===e.shortLabel;return(0,t.jsxs)("div",{className:`flex items-center justify-between px-5 py-4 cursor-pointer border-b border-gray-100 transition-colors ${s?"bg-blue-50 hover:bg-blue-100 border-blue-200":"hover:bg-gray-50"}`,onClick:()=>(e=>{let{from:t,to:s}=e.getValue();p({from:t,to:s}),f(e.shortLabel),_((0,i.default)(t).format("YYYY-MM-DD")),b((0,i.default)(s).format("YYYY-MM-DD"))})(e),children:[(0,t.jsx)("span",{className:`text-sm ${s?"text-blue-700 font-medium":"text-gray-700"}`,children:e.label}),(0,t.jsx)("span",{className:`text-xs px-2 py-1 rounded capitalize ${s?"text-blue-700 bg-blue-100":"text-gray-500 bg-gray-100"}`,children:e.shortLabel})]},e.label)})})]}),(0,t.jsxs)("div",{className:"w-1/2 relative",children:[(0,t.jsx)("div",{className:"p-3.5 border-b border-gray-200",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(s.CalendarOutlined,{className:"text-gray-600"}),(0,t.jsx)("span",{className:"text-sm font-semibold text-gray-900",children:"Start and end dates"})]})}),(0,t.jsxs)("div",{className:"p-6 space-y-6 pb-20",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm text-gray-700 mb-1 block",children:"Start date"}),(0,t.jsx)("input",{type:"date",value:j,onChange:e=>_(e.target.value),className:`w-65 px-3 py-2 text-sm border rounded-md cursor-pointer hover:border-gray-400 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 ${!N.isValid?"border-red-300 focus:border-red-500 focus:ring-red-200":"border-gray-300"}`})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm text-gray-700 mb-1 block",children:"End date"}),(0,t.jsx)("input",{type:"date",value:y,onChange:e=>b(e.target.value),className:`w-65 px-3 py-2 text-sm border rounded-md cursor-pointer hover:border-gray-400 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 ${!N.isValid?"border-red-300 focus:border-red-500 focus:ring-red-200":"border-gray-300"}`})]}),!N.isValid&&N.error&&(0,t.jsx)("div",{className:"bg-red-50 border border-red-200 rounded-md p-3",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("svg",{className:"w-4 h-4 text-red-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z"})}),(0,t.jsx)("span",{className:"text-sm text-red-700 font-medium",children:N.error})]})}),h.from&&h.to&&N.isValid&&(0,t.jsxs)("div",{className:"bg-blue-50 p-3 rounded-md space-y-1",children:[(0,t.jsxs)("div",{className:"text-xs text-blue-800",children:[(0,t.jsx)("span",{className:"font-medium",children:"From:"})," ",(0,i.default)(h.from).format("MMM D, YYYY [at] HH:mm:ss")]}),(0,t.jsxs)("div",{className:"text-xs text-blue-800",children:[(0,t.jsx)("span",{className:"font-medium",children:"To:"})," ",(0,i.default)(h.to).format("MMM D, YYYY [at] HH:mm:ss")]})]})]}),(0,t.jsx)("div",{className:"absolute bottom-4 right-4",children:(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(r.Button,{variant:"secondary",onClick:()=>{p(e),e.from&&_((0,i.default)(e.from).format("YYYY-MM-DD")),e.to&&b((0,i.default)(e.to).format("YYYY-MM-DD")),f(v(e)),x(!1)},children:"Cancel"}),(0,t.jsx)(r.Button,{onClick:()=>{h.from&&h.to&&N.isValid&&(c(h),requestIdleCallback(()=>{c(C(h))},{timeout:100}),x(!1))},disabled:!h.from||!h.to||!N.isValid,children:"Apply"})]})})]})]})})]})]})}])},797305,497650,e=>{"use strict";var t=e.i(843476),s=e.i(755151),a=e.i(872934),r=e.i(827252),l=e.i(56456),i=e.i(240647),n=e.i(152473),o=e.i(584935),c=e.i(304967),d=e.i(309426),u=e.i(350967),m=e.i(197647),x=e.i(653824),h=e.i(881073),p=e.i(404206),g=e.i(723731),f=e.i(599724),j=e.i(629569),_=e.i(560445),y=e.i(464571),b=e.i(560025),k=e.i(199133),v=e.i(592968),N=e.i(898586),T=e.i(271645),C=e.i(289793),w=e.i(952840),S=e.i(135214),q=e.i(738014),L=e.i(617885),D=e.i(500330),A=e.i(708347),M=e.i(487147),O=e.i(498610);e.i(260573);var E=e.i(785952),F=e.i(764205),$=e.i(973706),U=e.i(571303);let P=({isDateChanging:e=!1})=>(0,t.jsx)("div",{className:"flex items-center justify-center h-40",children:(0,t.jsxs)("div",{className:"flex items-center justify-center gap-3",children:[(0,t.jsx)(U.UiLoadingSpinner,{className:"size-5"}),(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("span",{className:"text-gray-600 text-sm font-medium",children:e?"Processing date selection...":"Loading chart data..."}),(0,t.jsx)("span",{className:"text-gray-400 text-xs mt-1",children:e?"This will only take a moment":"Fetching your data"})]})]})});var R=e.i(290571),V=e.i(95779),I=e.i(444755),B=e.i(673706);let W=T.default.forwardRef((e,t)=>{let{color:s,children:a,className:r}=e,l=(0,R.__rest)(e,["color","children","className"]);return T.default.createElement("p",Object.assign({ref:t,className:(0,I.tremorTwMerge)("font-semibold text-tremor-metric",s?(0,B.getColorClassNames)(s,V.colorPalette.darkText).textColor:"text-tremor-content-strong dark:text-dark-tremor-content-strong",r)},l),a)});W.displayName="Metric";var z=e.i(37091),Y=e.i(269200),K=e.i(427612),H=e.i(496020),G=e.i(64848),Z=e.i(942232),J=e.i(977572),Q=e.i(994388);let X=({accessToken:e,selectedTags:s,formatAbbreviatedNumber:a})=>{let r,l,i,n,[c,d]=(0,T.useState)({results:[],total_count:0,page:1,page_size:50,total_pages:0}),[u,_]=(0,T.useState)(!1),[y,b]=(0,T.useState)(1),k=async()=>{if(e){_(!0);try{let t=await (0,F.perUserAnalyticsCall)(e,y,50,s.length>0?s:void 0);d(t)}catch(e){console.error("Failed to fetch per-user data:",e)}finally{_(!1)}}};return(0,T.useEffect)(()=>{k()},[e,s,y]),(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)(j.Title,{children:"Per User Usage"}),(0,t.jsx)(z.Subtitle,{children:"Individual developer usage metrics"}),(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)(h.TabList,{className:"mb-6",children:[(0,t.jsx)(m.Tab,{children:"User Details"}),(0,t.jsx)(m.Tab,{children:"Usage Distribution"})]}),(0,t.jsxs)(g.TabPanels,{children:[(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsxs)(Y.Table,{children:[(0,t.jsx)(K.TableHead,{children:(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(G.TableHeaderCell,{children:"User ID"}),(0,t.jsx)(G.TableHeaderCell,{children:"User Email"}),(0,t.jsx)(G.TableHeaderCell,{children:"User Agent"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-right",children:"Success Generations"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-right",children:"Total Tokens"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-right",children:"Failed Requests"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-right",children:"Total Cost"})]})}),(0,t.jsx)(Z.TableBody,{children:c.results.slice(0,10).map((e,s)=>(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(J.TableCell,{children:(0,t.jsx)(f.Text,{className:"font-medium",children:e.user_id})}),(0,t.jsx)(J.TableCell,{children:(0,t.jsx)(f.Text,{children:e.user_email||"N/A"})}),(0,t.jsx)(J.TableCell,{children:(0,t.jsx)(f.Text,{children:e.user_agent||"Unknown"})}),(0,t.jsx)(J.TableCell,{className:"text-right",children:(0,t.jsx)(f.Text,{children:a(e.successful_requests)})}),(0,t.jsx)(J.TableCell,{className:"text-right",children:(0,t.jsx)(f.Text,{children:a(e.total_tokens)})}),(0,t.jsx)(J.TableCell,{className:"text-right",children:(0,t.jsx)(f.Text,{children:a(e.failed_requests)})}),(0,t.jsx)(J.TableCell,{className:"text-right",children:(0,t.jsxs)(f.Text,{children:["$",a(e.spend,4)]})})]},s))})]}),c.results.length>10&&(0,t.jsxs)("div",{className:"mt-4 flex justify-between items-center",children:[(0,t.jsxs)(f.Text,{className:"text-sm text-gray-500",children:["Showing 10 of ",c.total_count," results"]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(Q.Button,{size:"sm",variant:"secondary",onClick:()=>{y>1&&b(y-1)},disabled:1===y,children:"Previous"}),(0,t.jsx)(Q.Button,{size:"sm",variant:"secondary",onClick:()=>{y=c.total_pages,children:"Next"})]})]})]}),(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(j.Title,{className:"text-lg",children:"User Usage Distribution"}),(0,t.jsx)(z.Subtitle,{children:"Number of users by successful request frequency"})]}),(0,t.jsx)(o.BarChart,{data:(r=new Map,c.results.forEach(e=>{let t=e.user_agent||"Unknown";r.set(t,(r.get(t)||0)+1)}),l=Array.from(r.entries()).sort(([,e],[,t])=>t-e).slice(0,8).map(([e])=>e),i={"1-9 requests":{range:[1,9],agents:{}},"10-99 requests":{range:[10,99],agents:{}},"100-999 requests":{range:[100,999],agents:{}},"1K-9.9K requests":{range:[1e3,9999],agents:{}},"10K-99.9K requests":{range:[1e4,99999],agents:{}},"100K+ requests":{range:[1e5,1/0],agents:{}}},c.results.forEach(e=>{let t=e.successful_requests,s=e.user_agent||"Unknown";l.includes(s)&&Object.entries(i).forEach(([e,a])=>{t>=a.range[0]&&t<=a.range[1]&&(a.agents[s]||(a.agents[s]=0),a.agents[s]++)})}),Object.entries(i).map(([e,t])=>{let s={category:e};return l.forEach(e=>{s[e]=t.agents[e]||0}),s})),index:"category",categories:(n=new Map,c.results.forEach(e=>{let t=e.user_agent||"Unknown";n.set(t,(n.get(t)||0)+1)}),Array.from(n.entries()).sort(([,e],[,t])=>t-e).slice(0,8).map(([e])=>e)),colors:["blue","green","orange","red","purple","yellow","pink","indigo"],valueFormatter:e=>`${e} users`,yAxisWidth:80,showLegend:!0,stack:!0})]})]})]})]})},ee=({accessToken:e,userRole:s,dateValue:a,onDateChange:r})=>{let[l,i]=(0,T.useState)({results:[]}),[n,d]=(0,T.useState)({results:[]}),[_,y]=(0,T.useState)({results:[]}),[b,N]=(0,T.useState)({results:[]}),[C,w]=(0,T.useState)(""),[S,q]=(0,T.useState)([]),[L,D]=(0,T.useState)([]),[A,M]=(0,T.useState)(!1),[O,E]=(0,T.useState)(!1),[$,U]=(0,T.useState)(!1),[R,V]=(0,T.useState)(!1),[I,B]=(0,T.useState)(!1),Y=new Date,K=async()=>{if(e){M(!0);try{let t=await (0,F.tagDistinctCall)(e);q(t.results.map(e=>e.tag))}catch(e){console.error("Failed to fetch available tags:",e)}finally{M(!1)}}},H=async()=>{if(e){E(!0);try{let t=await (0,F.tagDauCall)(e,Y,C||void 0,L.length>0?L:void 0);i(t)}catch(e){console.error("Failed to fetch DAU data:",e)}finally{E(!1)}}},G=async()=>{if(e){U(!0);try{let t=await (0,F.tagWauCall)(e,Y,C||void 0,L.length>0?L:void 0);d(t)}catch(e){console.error("Failed to fetch WAU data:",e)}finally{U(!1)}}},Z=async()=>{if(e){V(!0);try{let t=await (0,F.tagMauCall)(e,Y,C||void 0,L.length>0?L:void 0);y(t)}catch(e){console.error("Failed to fetch MAU data:",e)}finally{V(!1)}}},J=async()=>{if(e&&a.from&&a.to){B(!0);try{let t=await (0,F.userAgentSummaryCall)(e,a.from,a.to,L.length>0?L:void 0);N(t)}catch(e){console.error("Failed to fetch user agent summary data:",e)}finally{B(!1)}}};(0,T.useEffect)(()=>{K()},[e]),(0,T.useEffect)(()=>{if(!e)return;let t=setTimeout(()=>{H(),G(),Z()},50);return()=>clearTimeout(t)},[e,C,L]),(0,T.useEffect)(()=>{if(!a.from||!a.to)return;let e=setTimeout(()=>{J()},50);return()=>clearTimeout(e)},[e,a,L]);let Q=e=>e.startsWith("User-Agent: ")?e.replace("User-Agent: ",""):e,ee=e=>Object.entries(e.reduce((e,t)=>(e[t.tag]=(e[t.tag]||0)+t.active_users,e),{})).sort(([,e],[,t])=>t-e).map(([e])=>e),et=ee(l.results).slice(0,10),es=ee(n.results).slice(0,10),ea=ee(_.results).slice(0,10),er=(()=>{let e=[],t=new Date;for(let s=6;s>=0;s--){let a=new Date(t);a.setDate(a.getDate()-s);let r={date:a.toISOString().split("T")[0]};et.forEach(e=>{r[Q(e)]=0}),e.push(r)}return l.results.forEach(t=>{let s=Q(t.tag),a=e.find(e=>e.date===t.date);a&&(a[s]=t.active_users)}),e})(),el=(()=>{let e=[];for(let t=1;t<=7;t++){let s={week:`Week ${t}`};es.forEach(e=>{s[Q(e)]=0}),e.push(s)}return n.results.forEach(t=>{let s=Q(t.tag),a=t.date.match(/Week (\d+)/);if(a){let r=`Week ${a[1]}`,l=e.find(e=>e.week===r);l&&(l[s]=t.active_users)}}),e})(),ei=(()=>{let e=[];for(let t=1;t<=7;t++){let s={month:`Month ${t}`};ea.forEach(e=>{s[Q(e)]=0}),e.push(s)}return _.results.forEach(t=>{let s=Q(t.tag),a=t.date.match(/Month (\d+)/);if(a){let r=`Month ${a[1]}`,l=e.find(e=>e.month===r);l&&(l[s]=t.active_users)}}),e})(),en=(e,t=0)=>{if(e>=1e8||e>=1e7)return(e/1e6).toFixed(t)+"M";if(e>=1e6)return(e/1e6).toFixed(t)+"M";if(e>=1e4)return(e/1e3).toFixed(t)+"K";if(e>=1e3)return(e/1e3).toFixed(t)+"K";else return e.toFixed(t)};return(0,t.jsxs)("div",{className:"space-y-6 mt-6",children:[(0,t.jsx)(c.Card,{children:(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"flex justify-between items-start",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Title,{children:"Summary by User Agent"}),(0,t.jsx)(z.Subtitle,{children:"Performance metrics for different user agents"})]}),(0,t.jsxs)("div",{className:"w-96",children:[(0,t.jsx)(f.Text,{className:"text-sm font-medium block mb-2",children:"Filter by User Agents"}),(0,t.jsx)(k.Select,{mode:"multiple",placeholder:"All User Agents",value:L,onChange:D,style:{width:"100%"},showSearch:!0,allowClear:!0,loading:A,optionFilterProp:"label",className:"rounded-md",maxTagCount:"responsive",children:S.map(e=>{let s=Q(e),a=s.length>50?`${s.substring(0,50)}...`:s;return(0,t.jsx)(k.Select.Option,{value:e,label:a,title:s,children:a},e)})})]})]}),I?(0,t.jsx)(P,{isDateChanging:!1}):(0,t.jsxs)(u.Grid,{numItems:4,className:"gap-4",children:[(b.results||[]).slice(0,4).map((e,s)=>{let a=Q(e.tag),r=a.length>15?a.substring(0,15)+"...":a;return(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(v.Tooltip,{title:a,placement:"top",children:(0,t.jsx)(j.Title,{className:"truncate",children:r})}),(0,t.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Success Requests"}),(0,t.jsx)(W,{className:"text-lg",children:en(e.successful_requests)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Total Tokens"}),(0,t.jsx)(W,{className:"text-lg",children:en(e.total_tokens)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Total Cost"}),(0,t.jsxs)(W,{className:"text-lg",children:["$",en(e.total_spend,4)]})]})]})]},s)}),Array.from({length:Math.max(0,4-(b.results||[]).length)}).map((e,s)=>(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"No Data"}),(0,t.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Success Requests"}),(0,t.jsx)(W,{className:"text-lg",children:"-"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Total Tokens"}),(0,t.jsx)(W,{className:"text-lg",children:"-"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Total Cost"}),(0,t.jsx)(W,{className:"text-lg",children:"-"})]})]})]},`empty-${s}`))]})]})}),(0,t.jsx)(c.Card,{children:(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)(h.TabList,{className:"mb-6",children:[(0,t.jsx)(m.Tab,{children:"DAU/WAU/MAU"}),(0,t.jsx)(m.Tab,{children:"Per User Usage (Last 30 Days)"})]}),(0,t.jsxs)(g.TabPanels,{children:[(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)(j.Title,{children:"DAU, WAU & MAU per Agent"}),(0,t.jsx)(z.Subtitle,{children:"Active users across different time periods"})]}),(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)(h.TabList,{className:"mb-6",children:[(0,t.jsx)(m.Tab,{children:"DAU"}),(0,t.jsx)(m.Tab,{children:"WAU"}),(0,t.jsx)(m.Tab,{children:"MAU"})]}),(0,t.jsxs)(g.TabPanels,{children:[(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)(j.Title,{className:"text-lg",children:"Daily Active Users - Last 7 Days"})}),O?(0,t.jsx)(P,{isDateChanging:!1}):(0,t.jsx)(o.BarChart,{data:er,index:"date",categories:et.map(Q),valueFormatter:e=>en(e),yAxisWidth:60,showLegend:!0,stack:!0})]}),(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)(j.Title,{className:"text-lg",children:"Weekly Active Users - Last 7 Weeks"})}),$?(0,t.jsx)(P,{isDateChanging:!1}):(0,t.jsx)(o.BarChart,{data:el,index:"week",categories:es.map(Q),valueFormatter:e=>en(e),yAxisWidth:60,showLegend:!0,stack:!0})]}),(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)(j.Title,{className:"text-lg",children:"Monthly Active Users - Last 7 Months"})}),R?(0,t.jsx)(P,{isDateChanging:!1}):(0,t.jsx)(o.BarChart,{data:ei,index:"month",categories:ea.map(Q),valueFormatter:e=>en(e),yAxisWidth:60,showLegend:!0,stack:!0})]})]})]})]}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(X,{accessToken:e,selectedTags:L,formatAbbreviatedNumber:en})})]})]})})]})};var et=e.i(617802);let es=["total_spend","total_prompt_tokens","total_completion_tokens","total_tokens","total_api_requests","total_successful_requests","total_failed_requests","total_cache_read_input_tokens","total_cache_creation_input_tokens"],ea={results:[],metadata:{total_spend:0,total_prompt_tokens:0,total_completion_tokens:0,total_tokens:0,total_api_requests:0,total_successful_requests:0,total_failed_requests:0,total_cache_read_input_tokens:0,total_cache_creation_input_tokens:0,total_pages:1,has_more:!1,page:1}};function er({fetchFn:e,args:t,enabled:s}){let[a,r]=(0,T.useState)(ea),[l,i]=(0,T.useState)(!1),[n,o]=(0,T.useState)(!1),[c,d]=(0,T.useState)({currentPage:0,totalPages:0}),[u,m]=(0,T.useState)(!1),x=(0,T.useRef)(0),h=(0,T.useRef)(!1),p=(0,T.useRef)(null),g=(0,T.useRef)(t);g.current=t;let f=JSON.stringify(t),j=(0,T.useCallback)(()=>{h.current=!0,m(!0),o(!1),null!==p.current&&(clearTimeout(p.current),p.current=null)},[]);return(0,T.useEffect)(()=>{if(!s){r(ea),i(!1),o(!1),d({currentPage:0,totalPages:0}),m(!1);return}let t=++x.current;h.current=!1,m(!1);let a=()=>x.current!==t||h.current,l=e=>new Promise(t=>{p.current=setTimeout(()=>{p.current=null,t()},e)});return(async()=>{let t=g.current;i(!0),o(!1),d({currentPage:1,totalPages:1});try{let s=[...t.slice(0,3),1,...t.slice(3)],n=await e(...s);if(a())return;r(n);let c=n.metadata?.total_pages||1;if(d({currentPage:1,totalPages:c}),c<=1)return void i(!1);i(!1),o(!0);let u=[...n.results],m={...n.metadata};for(let s=2;s<=c;s++){if(a()||(await l(300),a()))return;let i=[...t.slice(0,3),s,...t.slice(3)],n=await e(...i);if(a())return;u=[...u,...n.results],(m=function(e,t){let s={...e};for(let a of es)s[a]=(e[a]||0)+(t[a]||0);return s}(m,n.metadata)).total_pages=c,m.has_more=s{x.current++,null!==p.current&&(clearTimeout(p.current),p.current=null)}},[s,e,f]),{data:a,loading:l,isFetchingMore:n,progress:c,cancelled:u,cancel:j}}var el=e.i(23371),ei=e.i(286718);let en=({endpointData:e})=>{let s=e||{},a=T.default.useMemo(()=>Object.entries(s).map(([e,t])=>({endpoint:e,"metrics.successful_requests":t.metrics.successful_requests,"metrics.failed_requests":t.metrics.failed_requests,metrics:{successful_requests:t.metrics.successful_requests,failed_requests:t.metrics.failed_requests}})),[s]);return(0,t.jsxs)(c.Card,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)(j.Title,{children:"Success vs Failed Requests by Endpoint"}),(0,t.jsx)(ei.CustomLegend,{categories:["metrics.successful_requests","metrics.failed_requests"],colors:["green","red"]})]}),(0,t.jsx)(o.BarChart,{className:"mt-4",data:a,index:"endpoint",categories:["metrics.successful_requests","metrics.failed_requests"],colors:["green","red"],valueFormatter:e=>e.toLocaleString(),customTooltip:ei.CustomTooltip,showLegend:!1,stack:!0,yAxisWidth:60})]})};var eo=e.i(731195),ec=e.i(883966),ed=e.i(555706),eu=e.i(785183),em=e.i(93230),ex=e.i(844171),eh=(0,ec.generateCategoricalChart)({chartName:"LineChart",GraphicalChild:ed.Line,axisComponents:[{axisType:"xAxis",AxisComp:eu.XAxis},{axisType:"yAxis",AxisComp:em.YAxis}],formatAxisMap:ex.formatAxisMap}),ep=e.i(872526),eg=e.i(800494),ef=e.i(234239),ej=e.i(559559),e_=e.i(238279),ey=e.i(114887),eb=e.i(933303),ek=e.i(628781),ev=e.i(472007),eN=e.i(480731);let eT=T.default.forwardRef((e,t)=>{let{data:s=[],categories:a=[],index:r,colors:l=V.themeColorRange,valueFormatter:i=B.defaultValueFormatter,startEndOnly:n=!1,showXAxis:o=!0,showYAxis:c=!0,yAxisWidth:d=56,intervalType:u="equidistantPreserveStart",animationDuration:m=900,showAnimation:x=!1,showTooltip:h=!0,showLegend:p=!0,showGridLines:g=!0,autoMinValue:f=!1,curveType:j="linear",minValue:_,maxValue:y,connectNulls:b=!1,allowDecimals:k=!0,noDataText:v,className:N,onValueChange:C,enableLegendSlider:w=!1,customTooltip:S,rotateLabelX:q,padding:L=o||c?{left:20,right:20}:{left:0,right:0},tickGap:D=5,xAxisLabel:A,yAxisLabel:M}=e,O=(0,R.__rest)(e,["data","categories","index","colors","valueFormatter","startEndOnly","showXAxis","showYAxis","yAxisWidth","intervalType","animationDuration","showAnimation","showTooltip","showLegend","showGridLines","autoMinValue","curveType","minValue","maxValue","connectNulls","allowDecimals","noDataText","className","onValueChange","enableLegendSlider","customTooltip","rotateLabelX","padding","tickGap","xAxisLabel","yAxisLabel"]),[E,F]=(0,T.useState)(60),[$,U]=(0,T.useState)(void 0),[P,W]=(0,T.useState)(void 0),z=(0,ev.constructCategoryColors)(a,l),Y=(0,ev.getYAxisDomain)(f,_,y),K=!!C;function H(e){K&&(e===P&&!$||(0,ev.hasOnlyOneValueForThisKey)(s,e)&&$&&$.dataKey===e?(W(void 0),null==C||C(null)):(W(e),null==C||C({eventType:"category",categoryClicked:e})),U(void 0))}return T.default.createElement("div",Object.assign({ref:t,className:(0,I.tremorTwMerge)("w-full h-80",N)},O),T.default.createElement(eo.ResponsiveContainer,{className:"h-full w-full"},(null==s?void 0:s.length)?T.default.createElement(eh,{data:s,onClick:K&&(P||$)?()=>{U(void 0),W(void 0),null==C||C(null)}:void 0,margin:{bottom:A?30:void 0,left:M?20:void 0,right:M?5:void 0,top:5}},g?T.default.createElement(ep.CartesianGrid,{className:(0,I.tremorTwMerge)("stroke-1","stroke-tremor-border","dark:stroke-dark-tremor-border"),horizontal:!0,vertical:!1}):null,T.default.createElement(eu.XAxis,{padding:L,hide:!o,dataKey:r,interval:n?"preserveStartEnd":u,tick:{transform:"translate(0, 6)"},ticks:n?[s[0][r],s[s.length-1][r]]:void 0,fill:"",stroke:"",className:(0,I.tremorTwMerge)("text-tremor-label","fill-tremor-content","dark:fill-dark-tremor-content"),tickLine:!1,axisLine:!1,minTickGap:D,angle:null==q?void 0:q.angle,dy:null==q?void 0:q.verticalShift,height:null==q?void 0:q.xAxisHeight},A&&T.default.createElement(eg.Label,{position:"insideBottom",offset:-20,className:"fill-tremor-content-emphasis text-tremor-default font-medium dark:fill-dark-tremor-content-emphasis"},A)),T.default.createElement(em.YAxis,{width:d,hide:!c,axisLine:!1,tickLine:!1,type:"number",domain:Y,tick:{transform:"translate(-3, 0)"},fill:"",stroke:"",className:(0,I.tremorTwMerge)("text-tremor-label","fill-tremor-content","dark:fill-dark-tremor-content"),tickFormatter:i,allowDecimals:k},M&&T.default.createElement(eg.Label,{position:"insideLeft",style:{textAnchor:"middle"},angle:-90,offset:-15,className:"fill-tremor-content-emphasis text-tremor-default font-medium dark:fill-dark-tremor-content-emphasis"},M)),T.default.createElement(ef.Tooltip,{wrapperStyle:{outline:"none"},isAnimationActive:!1,cursor:{stroke:"#d1d5db",strokeWidth:1},content:h?({active:e,payload:t,label:s})=>S?T.default.createElement(S,{payload:null==t?void 0:t.map(e=>{var t;return Object.assign(Object.assign({},e),{color:null!=(t=z.get(e.dataKey))?t:eN.BaseColors.Gray})}),active:e,label:s}):T.default.createElement(eb.default,{active:e,payload:t,label:s,valueFormatter:i,categoryColors:z}):T.default.createElement(T.default.Fragment,null),position:{y:0}}),p?T.default.createElement(ej.Legend,{verticalAlign:"top",height:E,content:({payload:e})=>(0,ey.default)({payload:e},z,F,P,K?e=>H(e):void 0,w)}):null,a.map(e=>{var t;return T.default.createElement(ed.Line,{className:(0,I.tremorTwMerge)((0,B.getColorClassNames)(null!=(t=z.get(e))?t:eN.BaseColors.Gray,V.colorPalette.text).strokeColor),strokeOpacity:$||P&&P!==e?.3:1,activeDot:e=>{var t;let{cx:a,cy:r,stroke:l,strokeLinecap:i,strokeLinejoin:n,strokeWidth:o,dataKey:c}=e;return T.default.createElement(e_.Dot,{className:(0,I.tremorTwMerge)("stroke-tremor-background dark:stroke-dark-tremor-background",C?"cursor-pointer":"",(0,B.getColorClassNames)(null!=(t=z.get(c))?t:eN.BaseColors.Gray,V.colorPalette.text).fillColor),cx:a,cy:r,r:5,fill:"",stroke:l,strokeLinecap:i,strokeLinejoin:n,strokeWidth:o,onClick:(t,a)=>{a.stopPropagation(),K&&(e.index===(null==$?void 0:$.index)&&e.dataKey===(null==$?void 0:$.dataKey)||(0,ev.hasOnlyOneValueForThisKey)(s,e.dataKey)&&P&&P===e.dataKey?(W(void 0),U(void 0),null==C||C(null)):(W(e.dataKey),U({index:e.index,dataKey:e.dataKey}),null==C||C(Object.assign({eventType:"dot",categoryClicked:e.dataKey},e.payload))))}})},dot:t=>{var a;let{stroke:r,strokeLinecap:l,strokeLinejoin:i,strokeWidth:n,cx:o,cy:c,dataKey:d,index:u}=t;return(0,ev.hasOnlyOneValueForThisKey)(s,e)&&!($||P&&P!==e)||(null==$?void 0:$.index)===u&&(null==$?void 0:$.dataKey)===e?T.default.createElement(e_.Dot,{key:u,cx:o,cy:c,r:5,stroke:r,fill:"",strokeLinecap:l,strokeLinejoin:i,strokeWidth:n,className:(0,I.tremorTwMerge)("stroke-tremor-background dark:stroke-dark-tremor-background",C?"cursor-pointer":"",(0,B.getColorClassNames)(null!=(a=z.get(d))?a:eN.BaseColors.Gray,V.colorPalette.text).fillColor)}):T.default.createElement(T.Fragment,{key:u})},key:e,name:e,type:j,dataKey:e,stroke:"",strokeWidth:2,strokeLinejoin:"round",strokeLinecap:"round",isAnimationActive:x,animationDuration:m,connectNulls:b})}),C?a.map(e=>T.default.createElement(ed.Line,{className:(0,I.tremorTwMerge)("cursor-pointer"),strokeOpacity:0,key:e,name:e,type:j,dataKey:e,stroke:"transparent",fill:"transparent",legendType:"none",tooltipType:"none",strokeWidth:12,connectNulls:b,onClick:(e,t)=>{t.stopPropagation();let{name:s}=e;H(s)}})):null):T.default.createElement(ek.default,{noDataText:v})))});eT.displayName="LineChart";let eC=function({dailyData:e,endpointData:s}){let a=(0,T.useMemo)(()=>{var t;let s,a;return e?.results&&0!==e.results.length?(t=e.results,s=[],a=new Set,t.forEach(e=>{e.breakdown.endpoints&&Object.keys(e.breakdown.endpoints).forEach(e=>a.add(e))}),t.forEach(e=>{let t={date:new Date(e.date).toLocaleDateString("en-US",{month:"short",day:"numeric"})};a.forEach(s=>{let a=e.breakdown.endpoints?.[s];t[s]=a?.metrics.api_requests||0}),s.push(t)}),s.reverse()):[]},[e]),r=(0,T.useMemo)(()=>0===a.length?[]:Object.keys(a[0]).filter(e=>"date"!==e),[a]);return(0,t.jsxs)(c.Card,{className:"mb-6",children:[(0,t.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,t.jsx)(j.Title,{children:"Endpoint Usage Trends"})}),(0,t.jsx)(eT,{className:"h-80",data:a,index:"date",categories:r,colors:["blue","cyan","indigo","violet","purple","fuchsia","pink","rose","red","orange"].slice(0,r.length),valueFormatter:e=>e.toLocaleString(),showLegend:!0,showGridLines:!0,yAxisWidth:60,connectNulls:!0,curveType:"natural"})]})};var ew=e.i(291542),eS=e.i(309821);e.s(["Progress",()=>eS.default],497650);var eS=eS;let eq=({endpointData:e})=>{let s=Object.entries(e).map(([e,t])=>{var s,a;return{key:e,endpoint:e,successful_requests:t.metrics.successful_requests,failed_requests:t.metrics.failed_requests,api_requests:t.metrics.api_requests,total_tokens:t.metrics.total_tokens,spend:t.metrics.spend,successRate:(s=t.metrics.successful_requests,0===(a=t.metrics.api_requests)?0:s/a*100)}}),a=[{title:"Endpoint",dataIndex:"endpoint",key:"endpoint",render:e=>(0,t.jsx)("span",{className:"font-medium",children:e})},{title:"Successful / Failed",key:"requests",render:(e,s)=>{let a=s.api_requests>0?s.successful_requests/s.api_requests*100:0,r=s.api_requests>0?s.failed_requests/s.api_requests*100:0,l={"0%":"#22c55e"};return a>0&&a<100&&(l[`${a}%`]="#22c55e",l[`${a+.01}%`]="#ef4444"),l["100%"]=r>0?"#ef4444":"#22c55e",(0,t.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,t.jsx)("div",{className:"flex-1 relative",children:(0,t.jsx)(eS.default,{percent:a+r,size:"small",strokeColor:l,showInfo:!1})}),(0,t.jsxs)("div",{className:"flex items-center space-x-2 text-sm min-w-[100px]",children:[(0,t.jsx)("span",{className:"text-green-600 font-medium",children:s.successful_requests.toLocaleString()}),(0,t.jsx)("span",{className:"text-gray-400",children:"/"}),(0,t.jsx)("span",{className:"text-red-600 font-medium",children:s.failed_requests.toLocaleString()})]})]})}},{title:"Total Request",dataIndex:"api_requests",key:"api_requests",render:e=>e.toLocaleString()},{title:"Success Rate",dataIndex:"successRate",key:"successRate",render:e=>{let s=e.toFixed(2);return(0,t.jsxs)("span",{className:e>=95?"text-green-600 font-medium":e>=80?"text-yellow-600 font-medium":"text-red-600 font-medium",children:[s,"%"]})}},{title:"Total Tokens",dataIndex:"total_tokens",key:"total_tokens",render:e=>e.toLocaleString()},{title:"Spend",dataIndex:"spend",key:"spend",render:e=>`$${(0,D.formatNumberWithCommas)(e,2)}`}];return(0,t.jsx)(ew.Table,{columns:a,dataSource:s,pagination:!1})},eL=({userSpendData:e})=>{let s=(0,T.useMemo)(()=>{let t={};return e?.results&&e.results.forEach(e=>{Object.entries(e.breakdown.endpoints||{}).forEach(([e,s])=>{t[e]||(t[e]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:s.metadata||{},api_key_breakdown:{}}),t[e].metrics.spend+=s.metrics.spend,t[e].metrics.prompt_tokens+=s.metrics.prompt_tokens,t[e].metrics.completion_tokens+=s.metrics.completion_tokens,t[e].metrics.total_tokens+=s.metrics.total_tokens,t[e].metrics.api_requests+=s.metrics.api_requests,t[e].metrics.successful_requests+=s.metrics.successful_requests||0,t[e].metrics.failed_requests+=s.metrics.failed_requests||0,t[e].metrics.cache_read_input_tokens+=s.metrics.cache_read_input_tokens||0,t[e].metrics.cache_creation_input_tokens+=s.metrics.cache_creation_input_tokens||0})}),t},[e]);return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(eq,{endpointData:s}),(0,t.jsx)(en,{endpointData:s}),(0,t.jsx)(eC,{dailyData:e,endpointData:s})]})};var eD=e.i(214541),eA=e.i(413990),eM=e.i(785242);let{Text:eO}=N.Typography,eE=({value:e=[],onChange:s,disabled:a,organizationId:r,pageSize:i=20,placeholder:o="Search teams by alias..."})=>{let[c,d]=(0,T.useState)(""),[u,m]=(0,n.useDebouncedState)("",{wait:300}),{data:x,fetchNextPage:h,hasNextPage:p,isFetchingNextPage:g,isLoading:f}=(0,eM.useInfiniteTeams)(i,u||void 0,r),j=(0,T.useMemo)(()=>{if(!x?.pages)return[];let e=new Set,t=[];for(let s of x.pages)for(let a of s.teams)e.has(a.team_id)||(e.add(a.team_id),t.push(a));return t},[x]);return(0,t.jsx)(k.Select,{mode:"multiple",showSearch:!0,placeholder:o,value:e,onChange:e=>s?.(e),disabled:a,allowClear:!0,filterOption:!1,onSearch:e=>{d(e),m(e)},searchValue:c,onPopupScroll:e=>{let t=e.currentTarget;(t.scrollTop+t.clientHeight)/t.scrollHeight>=.8&&p&&!g&&h()},loading:f,notFoundContent:f?(0,t.jsx)(l.LoadingOutlined,{spin:!0}):"No teams found",style:{width:"100%"},popupRender:e=>(0,t.jsxs)(t.Fragment,{children:[e,g&&(0,t.jsx)("div",{style:{textAlign:"center",padding:8},children:(0,t.jsx)(l.LoadingOutlined,{spin:!0})})]}),children:j.map(e=>(0,t.jsxs)(k.Select.Option,{value:e.team_id,children:[(0,t.jsx)("span",{className:"font-medium",children:e.team_alias})," ",(0,t.jsxs)(eO,{type:"secondary",children:["(",e.team_id,")"]})]},e.team_id))})};var eF=e.i(193523),eF=eF,e$=e.i(916925),eU=e.i(1023),eP=e.i(149121);function eR({topModels:e,topModelsLimit:s,setTopModelsLimit:a}){let[r,l]=(0,T.useState)("table"),i=[{header:"Model",accessorKey:"key",cell:e=>e.getValue()||"-"},{header:"Spend (USD)",accessorKey:"spend",cell:e=>{let t=e.getValue();return`$${(0,D.formatNumberWithCommas)(t,2)}`}},{header:"Successful",accessorKey:"successful_requests",cell:e=>(0,t.jsx)("span",{className:"text-green-600",children:e.getValue()?.toLocaleString()||0})},{header:"Failed",accessorKey:"failed_requests",cell:e=>(0,t.jsx)("span",{className:"text-red-600",children:e.getValue()?.toLocaleString()||0})},{header:"Tokens",accessorKey:"tokens",cell:e=>e.getValue()?.toLocaleString()||0}],n=e.slice(0,s);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"mb-4 flex justify-between items-center",children:[(0,t.jsx)(b.Segmented,{options:[{label:"5",value:5},{label:"10",value:10},{label:"25",value:25},{label:"50",value:50}],value:s,onChange:e=>a(e)}),(0,t.jsxs)("div",{className:"flex space-x-2",children:[(0,t.jsx)("button",{onClick:()=>l("table"),className:`px-3 py-1 text-sm rounded-md ${"table"===r?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-700"}`,children:"Table View"}),(0,t.jsx)("button",{onClick:()=>l("chart"),className:`px-3 py-1 text-sm rounded-md ${"chart"===r?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-700"}`,children:"Chart View"})]})]}),"chart"===r?(0,t.jsx)("div",{className:"relative max-h-[600px] overflow-y-auto",children:(0,t.jsx)(o.BarChart,{className:"mt-4 cursor-pointer hover:opacity-90",style:{height:52*Math.min(n.length,s)},data:n,index:"key",categories:["spend"],colors:["cyan"],valueFormatter:e=>`$${(0,D.formatNumberWithCommas)(e,2)}`,layout:"vertical",yAxisWidth:200,tickGap:5,showLegend:!1})}):(0,t.jsx)("div",{className:"border rounded-lg overflow-hidden max-h-[600px] overflow-y-auto",children:(0,t.jsx)(eP.DataTable,{columns:i,data:n,renderSubComponent:()=>(0,t.jsx)(t.Fragment,{}),getRowCanExpand:()=>!1,isLoading:!1})})]})}let eV={tag:F.tagDailyActivityCall,team:F.teamDailyActivityCall,organization:F.organizationDailyActivityCall,customer:F.customerDailyActivityCall,agent:F.agentDailyActivityCall,user:F.userDailyActivityCall},eI=({accessToken:e,entityType:s,entityId:r,entityList:i,dateValue:n})=>{let b,k,v,{teams:N}=(0,eD.default)(),[C,w]=(0,T.useState)([]),[S,q]=(0,T.useState)(5),[L,A]=(0,T.useState)(5),[O,E]=(0,T.useState)(5),$=(0,T.useMemo)(()=>n.from?new Date(n.from):null,[n.from]),U=(0,T.useMemo)(()=>n.to?new Date(n.to):null,[n.to]),P=(0,T.useMemo)(()=>"user"===s?C.length>0?C[0]:null:C.length>0?C:null,[s,C]),R=eV[s],V=!!e&&!!$&&!!U,{data:I,isFetchingMore:B,progress:W,cancelled:Q,cancel:X}=er({fetchFn:R,args:[e,$,U,P],enabled:V}),{data:ee,isFetchingMore:et,progress:es,cancelled:ea,cancel:ei}=er({fetchFn:F.agentDailyActivityCall,args:[e,$,U,null],enabled:V&&"team"===s}),en=(0,M.processActivityData)(I,"models",N||[]),eo=(0,M.processActivityData)(I,"api_keys",N||[]),ec="team"===s?(0,M.processActivityData)(ee,"entities",N||[]):{},ed=()=>{let e={};return I.results.forEach(t=>{Object.entries(t.breakdown.providers||{}).forEach(([t,s])=>{e[t]||(e[t]={provider:t,spend:0,requests:0,successful_requests:0,failed_requests:0,tokens:0});try{e[t].spend+=s.metrics.spend,e[t].requests+=s.metrics.api_requests,e[t].successful_requests+=s.metrics.successful_requests,e[t].failed_requests+=s.metrics.failed_requests,e[t].tokens+=s.metrics.total_tokens}catch(e){console.error(`Error processing provider ${t}: ${e}`)}})}),Object.values(e).filter(e=>e.spend>0).sort((e,t)=>t.spend-e.spend)},eu=(e,t)=>{if(i){let t=i.find(t=>t.value===e);if(t)return t.label}return t?.team_alias?t.team_alias:e},em=()=>{var e;let t={};return I.results.forEach(e=>{Object.entries(e.breakdown.entities||{}).forEach(([e,s])=>{t[e]||(t[e]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{alias:eu(e,s.metadata),id:e}}),t[e].metrics.spend+=s.metrics.spend,t[e].metrics.api_requests+=s.metrics.api_requests,t[e].metrics.successful_requests+=s.metrics.successful_requests,t[e].metrics.failed_requests+=s.metrics.failed_requests,t[e].metrics.total_tokens+=s.metrics.total_tokens})}),e=Object.values(t).sort((e,t)=>t.metrics.spend-e.metrics.spend),0===C.length?e:e.filter(e=>C.includes(e.metadata.id))},ex=s.charAt(0).toUpperCase()+s.slice(1);return(0,t.jsxs)("div",{style:{width:"100%"},className:"relative",children:[B&&(0,t.jsx)(_.Alert,{banner:!0,type:"warning",className:"mb-2",message:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{children:[(0,t.jsx)(l.LoadingOutlined,{spin:!0,className:"mr-2"}),"Currently fetching spend data: fetched ",W.currentPage," / ",W.totalPages," pages. Charts will update periodically as data loads. Moving off of this page will stop and reset this. To continue using the UI in the meantime,"," ",(0,t.jsxs)("a",{href:window.location.href,target:"_blank",rel:"noopener noreferrer",children:["open a new tab ",(0,t.jsx)(a.ExportOutlined,{})]}),"."]}),(0,t.jsx)(y.Button,{type:"primary",danger:!0,onClick:X,children:"Stop"})]})}),Q&&(0,t.jsx)(_.Alert,{banner:!0,type:"info",className:"mb-2",message:(0,t.jsxs)("span",{children:["Showing partial data (",W.currentPage,"/",W.totalPages," pages loaded)"]})}),et&&"team"===s&&(0,t.jsx)(_.Alert,{banner:!0,type:"warning",className:"mb-2",message:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{children:[(0,t.jsx)(l.LoadingOutlined,{spin:!0,className:"mr-2"}),"Currently fetching agent data: fetched ",es.currentPage," / ",es.totalPages," pages. Charts will update periodically as data loads. Moving off of this page will stop and reset this. To continue using the UI in the meantime,"," ",(0,t.jsxs)("a",{href:window.location.href,target:"_blank",rel:"noopener noreferrer",children:["open a new tab ",(0,t.jsx)(a.ExportOutlined,{})]}),"."]}),(0,t.jsx)(y.Button,{type:"primary",danger:!0,onClick:ei,children:"Stop"})]})}),ea&&"team"===s&&(0,t.jsx)(_.Alert,{banner:!0,type:"info",className:"mb-2",message:(0,t.jsxs)("span",{children:["Showing partial agent data (",es.currentPage,"/",es.totalPages," pages loaded)"]})}),"team"===s&&(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(f.Text,{className:"mb-2",children:"Filter by team"}),(0,t.jsx)(eE,{value:C,onChange:w})]}),(0,t.jsx)(eF.default,{dateValue:n,entityType:s,spendData:I,showFilters:"team"!==s&&null!==i&&i.length>0,filterLabel:`Filter by ${s}`,filterPlaceholder:`Select ${s} to filter...`,selectedFilters:C,onFiltersChange:w,filterOptions:(()=>{if(i)return i})()||void 0,filterMode:"user"===s?"single":"multiple",teams:N||[]}),(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)(h.TabList,{variant:"solid",className:"mt-1",children:[(0,t.jsx)(m.Tab,{children:"Cost"}),(0,t.jsx)(m.Tab,{children:"agent"===s?"Request / Token Consumption":"Model Activity"}),"team"===s?(0,t.jsx)(m.Tab,{children:"Agent Activity"}):(0,t.jsx)(t.Fragment,{}),(0,t.jsx)(m.Tab,{children:"Key Activity"}),(0,t.jsx)(m.Tab,{children:"Endpoint Activity"})]}),(0,t.jsxs)(g.TabPanels,{children:[(0,t.jsx)(p.TabPanel,{children:(0,t.jsxs)(u.Grid,{numItems:2,className:"gap-2 w-full",children:[(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsxs)(j.Title,{children:[ex," Spend Overview"]}),(0,t.jsxs)(u.Grid,{numItems:5,className:"gap-4 mt-4",children:[(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Total Spend"}),(0,t.jsxs)(f.Text,{className:"text-2xl font-bold mt-2",children:["$",(0,D.formatNumberWithCommas)(I.metadata.total_spend,2)]})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Total Requests"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2",children:I.metadata.total_api_requests.toLocaleString()})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Successful Requests"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-green-600",children:I.metadata.total_successful_requests.toLocaleString()})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Failed Requests"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-red-600",children:I.metadata.total_failed_requests.toLocaleString()})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Total Tokens"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2",children:I.metadata.total_tokens.toLocaleString()})]})]})]})}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Daily Spend"}),(0,t.jsx)(o.BarChart,{data:[...I.results].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),index:"date",categories:["metrics.spend"],colors:["cyan"],valueFormatter:el.valueFormatterSpend,yAxisWidth:100,showLegend:!1,customTooltip:({payload:e,active:s})=>{if(!s||!e?.[0])return null;let a=e[0].payload,r=Object.keys(a.breakdown.entities||{}).length;return(0,t.jsxs)("div",{className:"bg-white p-4 shadow-lg rounded-lg border",children:[(0,t.jsx)("p",{className:"font-bold",children:a.date}),(0,t.jsxs)("p",{className:"text-cyan-500",children:["Total Spend: $",(0,D.formatNumberWithCommas)(a.metrics.spend,2)]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Total Requests: ",a.metrics.api_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Successful: ",a.metrics.successful_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Failed: ",a.metrics.failed_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Total Tokens: ",a.metrics.total_tokens]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Total ",ex,"s: ",r]}),(0,t.jsxs)("div",{className:"mt-2 border-t pt-2",children:[(0,t.jsxs)("p",{className:"font-semibold",children:["Spend by ",ex,":"]}),Object.entries(a.breakdown.entities||{}).sort(([,e],[,t])=>{let s=e.metrics.spend;return t.metrics.spend-s}).slice(0,5).map(([e,s])=>(0,t.jsxs)("p",{className:"text-sm text-gray-600",children:[eu(e,s.metadata),": $",(0,D.formatNumberWithCommas)(s.metrics.spend,2)]},e)),r>5&&(0,t.jsxs)("p",{className:"text-sm text-gray-500 italic",children:["...and ",r-5," more"]})]})]})}})]})}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsx)(c.Card,{children:(0,t.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,t.jsxs)("div",{className:"flex flex-col space-y-2",children:[(0,t.jsxs)(j.Title,{children:["Spend Per ",ex]}),(0,t.jsx)(z.Subtitle,{className:"text-xs",children:"Showing Top 5 by Spend"}),(0,t.jsxs)("div",{className:"flex items-center text-sm text-gray-500",children:[(0,t.jsxs)("span",{children:["Get Started by Tracking cost per ",ex," "]}),(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/enterprise#spend-tracking",className:"text-blue-500 hover:text-blue-700 ml-1",children:"here"})]})]}),(0,t.jsxs)(u.Grid,{numItems:2,className:"gap-6",children:[(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsx)(o.BarChart,{className:"mt-4 h-52",data:em().slice(0,5).map(e=>({...e,metadata:{...e.metadata,alias_display:e.metadata.alias&&e.metadata.alias.length>15?`${e.metadata.alias.slice(0,15)}...`:e.metadata.alias}})),index:"metadata.alias_display",categories:["metrics.spend"],colors:["cyan"],valueFormatter:el.valueFormatterSpend,layout:"vertical",showLegend:!1,yAxisWidth:150,customTooltip:({payload:e,active:s})=>{if(!s||!e?.[0])return null;let a=e[0].payload;return(0,t.jsxs)("div",{className:"bg-white p-4 shadow-lg rounded-lg border",children:[(0,t.jsx)("p",{className:"font-bold",children:a.metadata.alias}),(0,t.jsxs)("p",{className:"text-cyan-500",children:["Spend: $",(0,D.formatNumberWithCommas)(a.metrics.spend,4)]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Requests: ",a.metrics.api_requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-green-600",children:["Successful: ",a.metrics.successful_requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-red-600",children:["Failed: ",a.metrics.failed_requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Tokens: ",a.metrics.total_tokens.toLocaleString()]})]})}})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsx)("div",{className:"h-52 overflow-y-auto",children:(0,t.jsxs)(Y.Table,{children:[(0,t.jsx)(K.TableHead,{children:(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(G.TableHeaderCell,{children:ex}),(0,t.jsx)(G.TableHeaderCell,{children:"Spend"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-green-600",children:"Successful"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-red-600",children:"Failed"}),(0,t.jsx)(G.TableHeaderCell,{children:"Tokens"})]})}),(0,t.jsx)(Z.TableBody,{children:em().filter(e=>e.metrics.spend>0).map(e=>(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(J.TableCell,{children:e.metadata.alias}),(0,t.jsxs)(J.TableCell,{children:["$",(0,D.formatNumberWithCommas)(e.metrics.spend,4)]}),(0,t.jsx)(J.TableCell,{className:"text-green-600",children:e.metrics.successful_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{className:"text-red-600",children:e.metrics.failed_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{children:e.metrics.total_tokens.toLocaleString()})]},e.metadata.id))})]})})})]})]})})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Top Virtual Keys"}),(0,t.jsx)(eU.default,{topKeys:(console.log("debugTags",{spendData:I}),b={},I.results.forEach(e=>{let{breakdown:t}=e,{entities:s}=t;console.log("debugTags",{entities:s});let a=Object.keys(s).reduce((e,t)=>{let{api_key_breakdown:a}=s[t];return Object.keys(a).forEach(s=>{let r={tag:t,usage:a[s].metrics.spend};e[s]?e[s].push(r):e[s]=[r]}),e},{});console.log("debugTags",{tagDictionary:a}),Object.entries(e.breakdown.api_keys||{}).forEach(([e,t])=>{b[e]||(b[e]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{key_alias:t.metadata.key_alias,team_id:t.metadata.team_id||null,tags:a[e]||[]}},console.log("debugTags",{keySpend:b})),b[e].metrics.spend+=t.metrics.spend,b[e].metrics.prompt_tokens+=t.metrics.prompt_tokens,b[e].metrics.completion_tokens+=t.metrics.completion_tokens,b[e].metrics.total_tokens+=t.metrics.total_tokens,b[e].metrics.api_requests+=t.metrics.api_requests,b[e].metrics.successful_requests+=t.metrics.successful_requests,b[e].metrics.failed_requests+=t.metrics.failed_requests,b[e].metrics.cache_read_input_tokens+=t.metrics.cache_read_input_tokens||0,b[e].metrics.cache_creation_input_tokens+=t.metrics.cache_creation_input_tokens||0})}),Object.entries(b).map(([e,t])=>({api_key:e,key_alias:t.metadata.key_alias||"-",tags:t.metadata.tags||"-",spend:t.metrics.spend})).sort((e,t)=>t.spend-e.spend).slice(0,S)),teams:null,showTags:"tag"===s,topKeysLimit:S,setTopKeysLimit:q})]})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"agent"===s?"Top Agents":"Top Models"}),(0,t.jsx)(eR,{topModels:(k={},I.results.forEach(e=>{Object.entries(e.breakdown.models||{}).forEach(([e,t])=>{k[e]||(k[e]={spend:0,requests:0,successful_requests:0,failed_requests:0,tokens:0});try{k[e].spend+=t.metrics.spend}catch(s){console.error(`Error adding spend for ${e}: ${s}, got metrics: ${JSON.stringify(t)}`)}k[e].requests+=t.metrics.api_requests,k[e].successful_requests+=t.metrics.successful_requests,k[e].failed_requests+=t.metrics.failed_requests,k[e].tokens+=t.metrics.total_tokens})}),Object.entries(k).map(([e,t])=>({key:e,...t})).sort((e,t)=>t.spend-e.spend).slice(0,L)),topModelsLimit:L,setTopModelsLimit:A})]})}),"team"===s&&(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Top Agents Driving Spend"}),(0,t.jsx)(eR,{topModels:(v={},ee.results.forEach(e=>{Object.entries(e.breakdown.entities||{}).forEach(([e,t])=>{v[e]||(v[e]={spend:0,requests:0,successful_requests:0,failed_requests:0,tokens:0,agent_name:t.metadata?.agent_name||e}),v[e].spend+=t.metrics.spend,v[e].requests+=t.metrics.api_requests,v[e].successful_requests+=t.metrics.successful_requests,v[e].failed_requests+=t.metrics.failed_requests,v[e].tokens+=t.metrics.total_tokens})}),Object.entries(v).map(([e,t])=>({key:t.agent_name,...t})).sort((e,t)=>t.spend-e.spend).slice(0,O)),topModelsLimit:O,setTopModelsLimit:E})]})}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsx)(c.Card,{children:(0,t.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,t.jsx)(j.Title,{children:"Provider Usage"}),(0,t.jsxs)(u.Grid,{numItems:2,children:[(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsx)(eA.DonutChart,{className:"mt-4 h-40",data:ed(),index:"provider",category:"spend",valueFormatter:e=>`$${(0,D.formatNumberWithCommas)(e,2)}`,colors:["cyan","blue","indigo","violet","purple"]})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(Y.Table,{children:[(0,t.jsx)(K.TableHead,{children:(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(G.TableHeaderCell,{children:"Provider"}),(0,t.jsx)(G.TableHeaderCell,{children:"Spend"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-green-600",children:"Successful"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-red-600",children:"Failed"}),(0,t.jsx)(G.TableHeaderCell,{children:"Tokens"})]})}),(0,t.jsx)(Z.TableBody,{children:ed().map(e=>(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(J.TableCell,{children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[e.provider&&(0,t.jsx)("img",{src:(0,e$.getProviderLogoAndName)(e.provider).logo,alt:`${e.provider} logo`,className:"w-4 h-4",onError:t=>{let s=t.target,a=s.parentElement;if(a){let t=document.createElement("div");t.className="w-4 h-4 rounded-full bg-gray-200 flex items-center justify-center text-xs",t.textContent=e.provider?.charAt(0)||"-",a.replaceChild(t,s)}}}),(0,t.jsx)("span",{children:e.provider})]})}),(0,t.jsxs)(J.TableCell,{children:["$",(0,D.formatNumberWithCommas)(e.spend,2)]}),(0,t.jsx)(J.TableCell,{className:"text-green-600",children:e.successful_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{className:"text-red-600",children:e.failed_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{children:e.tokens.toLocaleString()})]},e.provider))})]})})]})]})})})]})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:en,hidePromptCachingMetrics:"agent"===s})}),"team"===s?(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:ec})}):(0,t.jsx)(t.Fragment,{}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:eo,hidePromptCachingMetrics:"agent"===s})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(eL,{userSpendData:I})})]})]})]})};var eB=e.i(793130),eW=e.i(418371);let ez=({loading:e,isDateChanging:s,providerSpend:a})=>{let[l,i]=(0,T.useState)(!1),[n,o]=(0,T.useState)(!1),m=a.filter(e=>e.provider?.toLowerCase()==="unknown"?n:!!l||e.spend>0);return(0,t.jsxs)(c.Card,{className:"h-full",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(j.Title,{children:"Spend by Provider"}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("label",{className:"text-sm text-gray-700",children:"Show Zero Spend"}),(0,t.jsx)(eB.Switch,{checked:l,onChange:i})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("label",{className:"text-sm text-gray-700",children:"Show Unknown"}),(0,t.jsx)(v.Tooltip,{title:"Requests that failed to route to a provider",children:(0,t.jsx)(r.InfoCircleOutlined,{className:"text-gray-400 hover:text-gray-600"})})]}),(0,t.jsx)(eB.Switch,{checked:n,onChange:o})]})]})]}),e?(0,t.jsx)(P,{isDateChanging:s}):(0,t.jsxs)(u.Grid,{numItems:2,children:[(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsx)(eA.DonutChart,{className:"mt-4 h-40",data:m,index:"provider",category:"spend",valueFormatter:e=>`$${(0,D.formatNumberWithCommas)(e,2)}`,colors:["cyan"]})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(Y.Table,{children:[(0,t.jsx)(K.TableHead,{children:(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(G.TableHeaderCell,{children:"Provider"}),(0,t.jsx)(G.TableHeaderCell,{children:"Spend"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-green-600",children:"Successful"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-red-600",children:"Failed"}),(0,t.jsx)(G.TableHeaderCell,{children:"Tokens"})]})}),(0,t.jsx)(Z.TableBody,{children:m.map(e=>(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(J.TableCell,{children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[e.provider&&(0,t.jsx)(eW.ProviderLogo,{provider:e.provider,className:"w-4 h-4"}),(0,t.jsx)("span",{children:e.provider})]})}),(0,t.jsxs)(J.TableCell,{children:["$",(0,D.formatNumberWithCommas)(e.spend,2)]}),(0,t.jsx)(J.TableCell,{className:"text-green-600",children:e.successful_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{className:"text-red-600",children:e.failed_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{children:e.tokens.toLocaleString()})]},e.provider))})]})})]})]})};var eY=e.i(311451),eK=e.i(482725),eH=e.i(918789);let{TextArea:eG}=eY.Input,eZ={get_usage_data:"📊",get_team_usage_data:"👥",get_tag_usage_data:"🏷️"},eJ=({step:e})=>{let s=eZ[e.tool_name]||"🔧",a=e.arguments,r=a.start_date&&a.end_date?`${a.start_date} → ${a.end_date}`:"",l=a.team_ids||a.tags||a.user_id||"";return(0,t.jsxs)("div",{className:"flex items-start gap-2 px-3 py-2 rounded-lg bg-gray-100 border border-gray-200 text-xs",children:[(0,t.jsx)("span",{className:"flex-shrink-0 mt-0.5",children:"running"===e.status?(0,t.jsx)(eK.Spin,{size:"small"}):"error"===e.status?(0,t.jsx)("span",{className:"text-red-500",children:"✗"}):(0,t.jsx)("span",{className:"text-green-600",children:"✓"})}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"font-medium text-gray-700",children:[s," ",e.tool_label]}),r&&(0,t.jsx)("div",{className:"text-gray-500 mt-0.5",children:r}),l&&(0,t.jsxs)("div",{className:"text-gray-500 mt-0.5",children:["Filter: ",l]}),"error"===e.status&&e.error&&(0,t.jsx)("div",{className:"text-red-600 mt-0.5",children:e.error})]})]})},eQ=({content:e})=>(0,t.jsx)(eH.default,{components:{p:({children:e})=>(0,t.jsx)("p",{className:"mb-2 last:mb-0",children:e}),strong:({children:e})=>(0,t.jsx)("strong",{className:"font-semibold",children:e}),ul:({children:e})=>(0,t.jsx)("ul",{className:"list-disc pl-4 mb-2 space-y-0.5",children:e}),ol:({children:e})=>(0,t.jsx)("ol",{className:"list-decimal pl-4 mb-2 space-y-0.5",children:e}),li:({children:e})=>(0,t.jsx)("li",{children:e}),h1:({children:e})=>(0,t.jsx)("h4",{className:"font-semibold text-sm mt-2 mb-1",children:e}),h2:({children:e})=>(0,t.jsx)("h4",{className:"font-semibold text-sm mt-2 mb-1",children:e}),h3:({children:e})=>(0,t.jsx)("h4",{className:"font-semibold text-sm mt-2 mb-1",children:e}),code:({children:e,className:s})=>s?.includes("language-")?(0,t.jsx)("pre",{className:"bg-gray-100 rounded p-2 my-1 overflow-x-auto text-xs",children:(0,t.jsx)("code",{children:e})}):(0,t.jsx)("code",{className:"px-1 py-0.5 rounded bg-gray-100 text-xs font-mono",children:e}),table:({children:e})=>(0,t.jsx)("div",{className:"overflow-x-auto my-2",children:(0,t.jsx)("table",{className:"text-xs border-collapse w-full",children:e})}),th:({children:e})=>(0,t.jsx)("th",{className:"border border-gray-200 px-2 py-1 bg-gray-50 font-medium text-left",children:e}),td:({children:e})=>(0,t.jsx)("td",{className:"border border-gray-200 px-2 py-1",children:e})},children:e}),eX=({open:e,onClose:s,accessToken:a})=>{let[r,l]=(0,T.useState)([]),[i,n]=(0,T.useState)(""),[o,c]=(0,T.useState)(!1),[d,u]=(0,T.useState)(void 0),[m,x]=(0,T.useState)([]),[h,p]=(0,T.useState)(!1),[g,f]=(0,T.useState)(""),[j,_]=(0,T.useState)(null),[b,v]=(0,T.useState)([]),N=(0,T.useRef)(null),C=(0,T.useRef)(null);(0,T.useEffect)(()=>{e&&0===m.length&&w()},[e]),(0,T.useEffect)(()=>{"function"==typeof N.current?.scrollIntoView&&N.current.scrollIntoView({behavior:"smooth"})},[r,g,b,j]);let w=async()=>{if(a){p(!0);try{let e=await (0,F.modelHubCall)(a);if(e?.data?.length>0){let t=e.data.map(e=>e.model_group).sort();x(t)}}catch(e){console.error("Failed to load models:",e)}finally{p(!1)}}},S=async()=>{if(!a||!i.trim()||o)return;let e=[...r,{role:"user",content:i.trim()}];l(e),n(""),c(!0),f(""),_(null),v([]);let t=new AbortController;C.current=t;let s="",u=[];try{await (0,F.usageAiChatStream)(a,e.slice(-20).map(e=>({role:e.role,content:e.content})),d||"",e=>{_(null),s+=e,f(s)},()=>{_(null),v([]),l(e=>[...e,{role:"assistant",content:s,toolCalls:u.length>0?[...u]:void 0}]),f("")},e=>{_(null),v([]),l(t=>[...t,{role:"assistant",content:`Error: ${e}`}]),f("")},e=>{_(e)},e=>{let t=u.findIndex(t=>t.tool_name===e.tool_name);t>=0?u[t]={...e}:u.push({...e}),v([...u])},t.signal)}catch(s){if(s?.name==="AbortError"||t.signal.aborted)return;let e=s?.message||"Failed to get response. Please try again.";l(t=>[...t,{role:"assistant",content:`Error: ${e}`}]),f("")}finally{c(!1),C.current=null}};return(0,t.jsxs)("div",{"data-testid":"usage-ai-chat-panel",className:`fixed top-0 right-0 h-full bg-white border-l border-gray-200 shadow-2xl z-50 flex flex-col transition-transform duration-300 ease-in-out ${e?"translate-x-0":"translate-x-full"}`,style:{width:420},children:[(0,t.jsxs)("div",{className:"px-5 pt-5 pb-3 border-b border-gray-100 flex-shrink-0",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("svg",{className:"w-5 h-5 text-blue-600",viewBox:"0 0 16 16",fill:"currentColor",children:(0,t.jsx)("path",{d:"M8 1l1.5 3.5L13 6l-3.5 1.5L8 11 6.5 7.5 3 6l3.5-1.5L8 1zm4 7l.75 1.75L14.5 10.5l-1.75.75L12 13l-.75-1.75L9.5 10.5l1.75-.75L12 8zM4 9l.75 1.75L6.5 11.5l-1.75.75L4 14l-.75-1.75L1.5 11.5l1.75-.75L4 9z"})}),(0,t.jsx)("h3",{className:"text-base font-semibold text-gray-900",children:"Ask AI"})]}),(0,t.jsx)("button",{onClick:()=>{C.current&&C.current.abort(),s()},className:"text-gray-400 hover:text-gray-600 transition-colors p-1 rounded-md hover:bg-gray-100",children:(0,t.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,t.jsx)("p",{className:"text-xs text-gray-500",children:"Ask about your spend, models, keys, and trends"})]}),(0,t.jsx)("div",{className:"px-5 py-3 border-b border-gray-100 flex-shrink-0",children:(0,t.jsx)(k.Select,{placeholder:"Select a model (optional, defaults to gpt-4o-mini)",value:d,onChange:e=>u(e),loading:h,showSearch:!0,allowClear:!0,size:"small",className:"w-full",options:m.map(e=>({label:e,value:e})),filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase())})}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 space-y-3 bg-gray-50",children:[0===r.length&&!g&&!o&&(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center h-full text-gray-400",children:[(0,t.jsx)("svg",{className:"w-8 h-8 mb-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M8 10h.01M12 10h.01M16 10h.01M9 16H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-5l-5 5v-5z"})}),(0,t.jsx)("p",{className:"text-sm font-medium",children:"Ask a question about your usage"}),(0,t.jsx)("p",{className:"text-xs mt-1",children:'e.g. "Which model costs me the most?"'})]}),r.map((e,s)=>(0,t.jsx)("div",{children:"user"===e.role?(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)("div",{className:"max-w-[88%] rounded-xl px-3.5 py-2 text-sm leading-relaxed bg-blue-600 text-white",children:e.content})}):(0,t.jsxs)("div",{className:"space-y-2",children:[e.toolCalls&&e.toolCalls.length>0&&(0,t.jsx)("div",{className:"space-y-1.5",children:e.toolCalls.map((e,s)=>(0,t.jsx)(eJ,{step:e},s))}),(0,t.jsx)("div",{className:"max-w-[95%] rounded-xl px-3.5 py-2.5 text-sm leading-relaxed bg-white border border-gray-200 text-gray-800",children:(0,t.jsx)(eQ,{content:e.content})})]})},s)),o&&b.length>0&&(0,t.jsx)("div",{className:"space-y-1.5",children:b.map((e,s)=>(0,t.jsx)(eJ,{step:e},s))}),o&&!g&&(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 text-xs text-gray-500",children:[(0,t.jsx)(eK.Spin,{size:"small"}),(0,t.jsx)("span",{className:"italic",children:j||"Thinking..."})]}),g&&(0,t.jsx)("div",{className:"max-w-[95%] rounded-xl px-3.5 py-2.5 text-sm leading-relaxed bg-white border border-gray-200 text-gray-800",children:(0,t.jsx)(eQ,{content:g})}),(0,t.jsx)("div",{ref:N})]}),(0,t.jsxs)("div",{className:"px-4 py-3 border-t border-gray-200 bg-white flex-shrink-0",children:[(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(eG,{value:i,onChange:e=>n(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),S())},placeholder:"Ask about your usage...",autoSize:{minRows:1,maxRows:3},className:"flex-1",disabled:o}),(0,t.jsx)(y.Button,{type:"primary",onClick:S,disabled:!i.trim()||o,loading:o,children:"Send"})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center mt-2",children:[(0,t.jsx)("button",{onClick:()=>{l([]),f(""),v([]),_(null)},className:"text-xs text-gray-400 hover:text-gray-600 transition-colors",disabled:0===r.length,children:"Clear chat"}),(0,t.jsx)("span",{className:"text-xs text-gray-400",children:"Enter to send"})]})]})]})};var e0=e.i(299251),e1=e.i(153702),e2=e.i(160818),e5=e.i(777579),e4=e.i(983561);e.i(247167);var e6=e.i(931067);let e3={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M922.9 701.9H327.4l29.9-60.9 496.8-.9c16.8 0 31.2-12 34.2-28.6l68.8-385.1c1.8-10.1-.9-20.5-7.5-28.4a34.99 34.99 0 00-26.6-12.5l-632-2.1-5.4-25.4c-3.4-16.2-18-28-34.6-28H96.5a35.3 35.3 0 100 70.6h125.9L246 312.8l58.1 281.3-74.8 122.1a34.96 34.96 0 00-3 36.8c6 11.9 18.1 19.4 31.5 19.4h62.8a102.43 102.43 0 00-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7h161.1a102.43 102.43 0 00-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7H923c19.4 0 35.3-15.8 35.3-35.3a35.42 35.42 0 00-35.4-35.2zM305.7 253l575.8 1.9-56.4 315.8-452.3.8L305.7 253zm96.9 612.7c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 01-31.6 31.6zm325.1 0c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 01-31.6 31.6z"}}]},name:"shopping-cart",theme:"outlined"};var e7=e.i(9583),e9=T.forwardRef(function(e,t){return T.createElement(e7.default,(0,e6.default)({},e,{ref:t,icon:e3}))}),e8=e.i(232164),te=e.i(645526),tt=e.i(771674),ts=e.i(906579);let ta=[{value:"global",label:"Global Usage",showForAdmin:"Global Usage",showForNonAdmin:"Your Usage",description:"View usage across all resources",descriptionForAdmin:"View usage across all resources",descriptionForNonAdmin:"View your usage",icon:(0,t.jsx)(e2.GlobalOutlined,{style:{fontSize:"16px"}})},{value:"my-usage",label:"Your Usage",description:"View your own usage",icon:(0,t.jsx)(tt.UserOutlined,{style:{fontSize:"16px"}}),adminOnly:!0},{value:"organization",label:"Organization Usage",showForAdmin:"Organization Usage",showForNonAdmin:"Your Organization Usage",description:"View organization-level usage",descriptionForAdmin:"View usage across all organizations",descriptionForNonAdmin:"View your organization's usage",icon:(0,t.jsx)(e0.BankOutlined,{style:{fontSize:"16px"}})},{value:"team",label:"Team Usage",description:"View usage by team",icon:(0,t.jsx)(te.TeamOutlined,{style:{fontSize:"16px"}})},{value:"customer",label:"Customer Usage",description:"View usage by customer accounts",icon:(0,t.jsx)(e9,{style:{fontSize:"16px"}}),adminOnly:!0},{value:"tag",label:"Tag Usage",description:"View usage grouped by tags",icon:(0,t.jsx)(e8.TagsOutlined,{style:{fontSize:"16px"}}),adminOnly:!0},{value:"agent",label:"Agent Usage (A2A)",description:"View usage by AI agents",icon:(0,t.jsx)(e4.RobotOutlined,{style:{fontSize:"16px"}}),adminOnly:!0},{value:"user",label:"User Usage",description:"View usage by individual users",icon:(0,t.jsx)(tt.UserOutlined,{style:{fontSize:"16px"}}),adminOnly:!0},{value:"user-agent-activity",label:"User Agent Activity",description:"View detailed user agent activity logs",icon:(0,t.jsx)(e5.LineChartOutlined,{style:{fontSize:"16px"}}),adminOnly:!0}],tr=({value:e,onChange:s,isAdmin:a,canViewTagUsage:r=!1,title:l="Usage View",description:i="Select the usage data you want to view","data-id":n})=>{let o=ta.filter(e=>"tag"===e.value&&!!r||!e.adminOnly||!!a).map(e=>{let t=e.label,s=e.description;return e.showForAdmin&&e.showForNonAdmin&&(t=a?e.showForAdmin:e.showForNonAdmin),e.descriptionForAdmin&&e.descriptionForNonAdmin&&(s=a?e.descriptionForAdmin:e.descriptionForNonAdmin),{value:e.value,label:t,description:s,icon:e.icon,badgeText:e.badgeText}});return(0,t.jsx)("div",{className:"w-full","data-id":n,children:(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-start gap-4",children:[(0,t.jsxs)("div",{className:"flex items-stretch gap-2 min-w-0",children:[(0,t.jsx)("div",{className:"flex-shrink-0 flex items-center",children:(0,t.jsx)(e1.BarChartOutlined,{style:{fontSize:"32px"}})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-gray-900 mb-0.5 leading-tight",children:l}),(0,t.jsx)("p",{className:"text-xs text-gray-600 leading-tight",children:i})]})]}),(0,t.jsx)("div",{className:"flex-shrink-0",children:(0,t.jsx)(k.Select,{value:e,onChange:s,className:"w-54 sm:w-64 md:w-72",size:"large",options:o.map(e=>({value:e.value,label:e.label})),optionRender:e=>{let s=o.find(t=>t.value===e.value);return s?(0,t.jsxs)("div",{className:"flex items-center gap-2 py-1",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-0.5",children:s.icon}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-gray-900",children:s.label}),(0,t.jsx)("div",{className:"text-xs text-gray-600 mt-0.5",children:s.description})]}),s.badgeText&&(0,t.jsx)("div",{className:"items-center",children:(0,t.jsx)(ts.Badge,{color:"blue",count:s.badgeText})})]}):e.label},labelRender:e=>{let s=o.find(t=>t.value===e.value);return s?(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{children:s.icon}),(0,t.jsx)("span",{className:"text-sm",children:s.label})]}):e.label}})})]})})};e.s(["default",0,({teams:e,organizations:U})=>{let R,{accessToken:V,userRole:I,userId:B,premiumUser:W}=(0,S.default)(),[z,Y]=(0,T.useState)(null),[K,H]=(0,T.useState)(!1),[G,Z]=(0,T.useState)(!1),[J,Q]=(0,T.useState)(!1),X=(0,T.useMemo)(()=>new Date(Date.now()-6048e5),[]),es=(0,T.useMemo)(()=>new Date,[]),[ea,ei]=(0,T.useState)({from:X,to:es}),[en,eo]=(0,T.useState)([]),{data:ec=[]}=(0,w.useCustomers)(),{data:ed}=(0,C.useAgents)(),{data:eu}=(0,q.useCurrentUser)();console.log(`currentUser: ${JSON.stringify(eu)}`),console.log(`currentUser max budget: ${eu?.max_budget}`);let em=A.all_admin_roles.includes(I||""),ex=em||A.internalUserRoles.includes(I||""),[eh,ep]=(0,T.useState)(""),[eg,ef]=(0,n.useDebouncedState)("",{wait:300}),{data:ej,fetchNextPage:e_,hasNextPage:ey,isFetchingNextPage:eb,isLoading:ek}=(0,L.useInfiniteUsers)(50,eg||void 0),ev=(0,T.useMemo)(()=>{if(!ej?.pages)return[];let e=new Set,t=[];for(let s of ej.pages)for(let a of s.users)e.has(a.user_id)||(e.add(a.user_id),t.push({value:a.user_id,label:a.user_alias?`${a.user_alias} (${a.user_id})`:a.user_email?`${a.user_email} (${a.user_id})`:a.user_id}));return t},[ej]),[eN,eT]=(0,T.useState)(em?null:B||null),[eC,ew]=(0,T.useState)("groups"),[eS,eq]=(0,T.useState)(!1),[eD,eA]=(0,T.useState)(!1),[eM,eO]=(0,T.useState)(!1),[eE,eF]=(0,T.useState)("global"),[e$,eP]=(0,T.useState)(!0),[eR,eV]=(0,T.useState)(5),[eB,eW]=(0,T.useState)(5),[eY,eK]=(0,T.useState)(!1);(0,T.useEffect)(()=>{!em&&B&&eT(B)},[em,B]);let eH="my-usage"!==eE&&em?eN:B||null,eG=(0,T.useMemo)(()=>ea.from?new Date(ea.from):null,[ea.from]),eZ=(0,T.useMemo)(()=>ea.to?new Date(ea.to):null,[ea.to]);(0,T.useEffect)(()=>{if(!V)return;let e=!1;return(async()=>{try{let t=await (0,F.tagListCall)(V,eG,eZ);if(e)return;eo(Object.values(t).map(e=>({label:e.name,value:e.name})))}catch(t){e||console.error("Failed to fetch tag list",t)}})(),()=>{e=!0}},[V,eG,eZ]);let eJ=(0,T.useRef)(0);(0,T.useEffect)(()=>{if(!V||!eG||!eZ)return;let e=++eJ.current;Z(!0),H(!1),Y(null),(0,F.userDailyActivityAggregatedCall)(V,eG,eZ,eH).then(t=>{eJ.current===e&&(Y(t),Z(!1),Q(!1))}).catch(()=>{eJ.current===e&&(H(!0),Z(!1))})},[V,eG,eZ,eH]);let eQ=er({fetchFn:F.userDailyActivityCall,args:[V,eG,eZ,eH],enabled:K&&!!V&&!!eG&&!!eZ}),e0=(0,T.useMemo)(()=>z||(K?eQ.data:{results:[],metadata:{}}),[z,K,eQ.data]),e1=G||eQ.loading;(0,T.useEffect)(()=>{K&&!eQ.loading&&eQ.data.results.length>0&&Q(!1)},[K,eQ.loading,eQ.data.results.length]);let e2=(0,T.useCallback)(e=>{Q(!0),ei(e)},[]),e5=e0.metadata?.total_spend||0,e4=(0,T.useMemo)(()=>{let e={};return e0.results.forEach(t=>{Object.entries(t.breakdown.models||{}).forEach(([t,s])=>{e[t]||(e[t]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{},api_key_breakdown:{}}),e[t].metrics.spend+=s.metrics.spend,e[t].metrics.prompt_tokens+=s.metrics.prompt_tokens,e[t].metrics.completion_tokens+=s.metrics.completion_tokens,e[t].metrics.total_tokens+=s.metrics.total_tokens,e[t].metrics.api_requests+=s.metrics.api_requests,e[t].metrics.successful_requests+=s.metrics.successful_requests||0,e[t].metrics.failed_requests+=s.metrics.failed_requests||0,e[t].metrics.cache_read_input_tokens+=s.metrics.cache_read_input_tokens||0,e[t].metrics.cache_creation_input_tokens+=s.metrics.cache_creation_input_tokens||0})}),Object.entries(e).map(([e,t])=>({key:e,spend:t.metrics.spend,requests:t.metrics.api_requests,successful_requests:t.metrics.successful_requests,failed_requests:t.metrics.failed_requests,tokens:t.metrics.total_tokens})).sort((e,t)=>t.spend-e.spend).slice(0,eB)},[e0.results,eB]),e6=(0,T.useMemo)(()=>{let e={};return e0.results.forEach(t=>{Object.entries(t.breakdown.model_groups||{}).forEach(([t,s])=>{e[t]||(e[t]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{},api_key_breakdown:{}}),e[t].metrics.spend+=s.metrics.spend,e[t].metrics.prompt_tokens+=s.metrics.prompt_tokens,e[t].metrics.completion_tokens+=s.metrics.completion_tokens,e[t].metrics.total_tokens+=s.metrics.total_tokens,e[t].metrics.api_requests+=s.metrics.api_requests,e[t].metrics.successful_requests+=s.metrics.successful_requests||0,e[t].metrics.failed_requests+=s.metrics.failed_requests||0,e[t].metrics.cache_read_input_tokens+=s.metrics.cache_read_input_tokens||0,e[t].metrics.cache_creation_input_tokens+=s.metrics.cache_creation_input_tokens||0})}),Object.entries(e).map(([e,t])=>({key:e,spend:t.metrics.spend,requests:t.metrics.api_requests,successful_requests:t.metrics.successful_requests,failed_requests:t.metrics.failed_requests,tokens:t.metrics.total_tokens})).sort((e,t)=>t.spend-e.spend).slice(0,eB)},[e0.results,eB]),e3=(0,T.useMemo)(()=>{let e={};return e0.results.forEach(t=>{Object.entries(t.breakdown.providers||{}).forEach(([t,s])=>{e[t]||(e[t]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{},api_key_breakdown:{}}),e[t].metrics.spend+=s.metrics.spend,e[t].metrics.prompt_tokens+=s.metrics.prompt_tokens,e[t].metrics.completion_tokens+=s.metrics.completion_tokens,e[t].metrics.total_tokens+=s.metrics.total_tokens,e[t].metrics.api_requests+=s.metrics.api_requests,e[t].metrics.successful_requests+=s.metrics.successful_requests||0,e[t].metrics.failed_requests+=s.metrics.failed_requests||0,e[t].metrics.cache_read_input_tokens+=s.metrics.cache_read_input_tokens||0,e[t].metrics.cache_creation_input_tokens+=s.metrics.cache_creation_input_tokens||0})}),Object.entries(e).map(([e,t])=>({provider:e,spend:t.metrics.spend,requests:t.metrics.api_requests,successful_requests:t.metrics.successful_requests,failed_requests:t.metrics.failed_requests,tokens:t.metrics.total_tokens}))},[e0.results]),e7=(0,T.useMemo)(()=>{let e={};return e0.results.forEach(t=>{Object.entries(t.breakdown.api_keys||{}).forEach(([t,s])=>{e[t]||(e[t]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{key_alias:s.metadata.key_alias,team_id:null,tags:s.metadata.tags||[]}}),e[t].metrics.spend+=s.metrics.spend,e[t].metrics.prompt_tokens+=s.metrics.prompt_tokens,e[t].metrics.completion_tokens+=s.metrics.completion_tokens,e[t].metrics.total_tokens+=s.metrics.total_tokens,e[t].metrics.api_requests+=s.metrics.api_requests,e[t].metrics.successful_requests+=s.metrics.successful_requests,e[t].metrics.failed_requests+=s.metrics.failed_requests,e[t].metrics.cache_read_input_tokens+=s.metrics.cache_read_input_tokens||0,e[t].metrics.cache_creation_input_tokens+=s.metrics.cache_creation_input_tokens||0})}),Object.entries(e).map(([e,t])=>({api_key:e,key_alias:t.metadata.key_alias||"-",tags:t.metadata.tags||[],spend:t.metrics.spend})).sort((e,t)=>t.spend-e.spend).slice(0,eR)},[e0.results,eR]),e9=(0,T.useMemo)(()=>[...e0.results].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),[e0.results]),e8=(0,T.useMemo)(()=>(0,M.processActivityData)(e0,"models",e),[e0,e]),te=(0,T.useMemo)(()=>(0,M.processActivityData)(e0,"api_keys",e),[e0,e]),tt=(0,T.useMemo)(()=>(0,M.processActivityData)(e0,"mcp_servers",e),[e0,e]);return(0,t.jsxs)("div",{style:{width:"100%"},className:"p-8 relative",children:[(0,t.jsx)("div",{className:"flex items-end justify-between gap-6 mb-6",children:(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsxs)("div",{className:"flex items-end justify-between gap-6 mb-4 w-full",children:[(0,t.jsx)(tr,{value:eE,onChange:e=>eF(e),isAdmin:em,canViewTagUsage:ex}),(0,t.jsx)($.default,{value:ea,onValueChange:e2})]}),eQ.isFetchingMore&&(0,t.jsx)(_.Alert,{banner:!0,type:"warning",className:"mb-2",message:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{children:[(0,t.jsx)(l.LoadingOutlined,{spin:!0,className:"mr-2"}),"Currently fetching spend data: fetched ",eQ.progress.currentPage," /"," ",eQ.progress.totalPages," pages. Charts will update periodically as data loads. Moving off of this page will stop and reset this. To continue using the UI in the meantime,"," ",(0,t.jsxs)("a",{href:window.location.href,target:"_blank",rel:"noopener noreferrer",children:["open a new tab ",(0,t.jsx)(a.ExportOutlined,{})]}),"."]}),(0,t.jsx)(y.Button,{type:"primary",danger:!0,onClick:eQ.cancel,children:"Stop"})]})}),eQ.cancelled&&(0,t.jsx)(_.Alert,{banner:!0,type:"info",className:"mb-2",message:(0,t.jsxs)("span",{children:["Showing partial data (",eQ.progress.currentPage,"/",eQ.progress.totalPages," ","pages loaded)"]})}),("global"===eE||"my-usage"===eE)&&(0,t.jsxs)(t.Fragment,{children:[em&&"global"===eE&&(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(f.Text,{className:"mb-2",children:"Filter by user"}),(0,t.jsx)(k.Select,{showSearch:!0,allowClear:!0,style:{width:"100%"},placeholder:"Select user to filter...",value:eN,onChange:e=>eT(e??null),filterOption:!1,onSearch:e=>{ep(e),ef(e)},searchValue:eh,onPopupScroll:e=>{let t=e.currentTarget;(t.scrollTop+t.clientHeight)/t.scrollHeight>=.8&&ey&&!eb&&e_()},loading:ek,notFoundContent:ek?(0,t.jsx)(l.LoadingOutlined,{spin:!0}):"No users found",options:ev,popupRender:e=>(0,t.jsxs)(t.Fragment,{children:[e,eb&&(0,t.jsx)("div",{style:{textAlign:"center",padding:8},children:(0,t.jsx)(l.LoadingOutlined,{spin:!0})})]})})]}),(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsxs)(h.TabList,{variant:"solid",className:"mt-1",children:[(0,t.jsx)(m.Tab,{children:"Cost"}),(0,t.jsx)(m.Tab,{children:"Model Activity"}),(0,t.jsx)(m.Tab,{children:"Key Activity"}),(0,t.jsx)(m.Tab,{children:"MCP Server Activity"}),(0,t.jsx)(m.Tab,{children:"Endpoint Activity"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(y.Button,{onClick:()=>eO(!0),icon:(0,t.jsx)("svg",{className:"w-4 h-4",viewBox:"0 0 16 16",fill:"currentColor",children:(0,t.jsx)("path",{d:"M8 1l1.5 3.5L13 6l-3.5 1.5L8 11 6.5 7.5 3 6l3.5-1.5L8 1zm4 7l.75 1.75L14.5 10.5l-1.75.75L12 13l-.75-1.75L9.5 10.5l1.75-.75L12 8zM4 9l.75 1.75L6.5 11.5l-1.75.75L4 14l-.75-1.75L1.5 11.5l1.75-.75L4 9z"})}),children:"Ask AI"}),(0,t.jsx)(y.Button,{onClick:()=>eA(!0),icon:(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})}),children:"Export Data"})]})]}),(0,t.jsxs)(g.TabPanels,{children:[(0,t.jsx)(p.TabPanel,{children:(0,t.jsxs)(u.Grid,{numItems:2,className:"gap-2 w-full",children:[(0,t.jsxs)(d.Col,{numColSpan:2,children:[(0,t.jsx)("div",{className:"flex items-center gap-4 mt-2 mb-2",children:(0,t.jsxs)(f.Text,{className:"text-tremor-default text-tremor-content dark:text-dark-tremor-content text-lg",children:["Project Spend"," ",ea.from&&ea.to&&(0,t.jsxs)(t.Fragment,{children:[ea.from.toLocaleDateString("en-US",{month:"short",day:"numeric",year:ea.from.getFullYear()!==ea.to.getFullYear()?"numeric":void 0})," - ",ea.to.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})]})]})}),(0,t.jsx)(et.default,{userSpend:e5,selectedTeam:null,userMaxBudget:eu?.max_budget||null})]}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Usage Metrics"}),(0,t.jsxs)(u.Grid,{numItems:5,className:"gap-4 mt-4",children:[(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Total Requests"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2",children:e0.metadata?.total_api_requests?.toLocaleString()||0})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Successful Requests"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-green-600",children:e0.metadata?.total_successful_requests?.toLocaleString()||0})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(j.Title,{children:"Failed Requests"}),(0,t.jsx)(v.Tooltip,{title:"Includes requests that failed to route to a provider, tool usage failures, and other request errors where the provider cannot be determined.",children:(0,t.jsx)(r.InfoCircleOutlined,{className:"text-gray-400 hover:text-gray-600"})})]}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-red-600",children:e0.metadata?.total_failed_requests?.toLocaleString()||0})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Average Cost per Request"}),(0,t.jsxs)(f.Text,{className:"text-2xl font-bold mt-2",children:["$",(0,D.formatNumberWithCommas)((e5||0)/(e0.metadata?.total_api_requests||1),4)]})]}),(0,t.jsxs)(c.Card,{className:"cursor-pointer hover:bg-gray-50 transition-colors",onClick:()=>eK(!eY),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(j.Title,{children:"Total Tokens"}),eY?(0,t.jsx)(s.DownOutlined,{className:"text-gray-400 text-xs"}):(0,t.jsx)(i.RightOutlined,{className:"text-gray-400 text-xs"})]}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2",children:e0.metadata?.total_tokens?.toLocaleString()||0})]})]}),eY&&(0,t.jsxs)(u.Grid,{numItems:4,className:"gap-4 mt-4",children:[(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Input Tokens"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-blue-600",children:Math.max(0,(e0.metadata?.total_prompt_tokens||0)-(e0.metadata?.total_cache_read_input_tokens||0)-(e0.metadata?.total_cache_creation_input_tokens||0)).toLocaleString()})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Output Tokens"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-cyan-600",children:e0.metadata?.total_completion_tokens?.toLocaleString()||0})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Cache Read Tokens"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-green-600",children:e0.metadata?.total_cache_read_input_tokens?.toLocaleString()||0})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Cache Write Tokens"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-purple-600",children:e0.metadata?.total_cache_creation_input_tokens?.toLocaleString()||0})]})]})]})}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Daily Spend"}),e1?(0,t.jsx)(P,{isDateChanging:J}):(0,t.jsx)(o.BarChart,{data:e9,index:"date",categories:["metrics.spend"],colors:["cyan"],valueFormatter:el.valueFormatterSpend,yAxisWidth:100,showLegend:!1,customTooltip:({payload:e,active:s})=>{if(!s||!e?.[0])return null;let a=e[0].payload;return(0,t.jsxs)("div",{className:"bg-white p-4 shadow-lg rounded-lg border",children:[(0,t.jsx)("p",{className:"font-bold",children:a.date}),(0,t.jsxs)("p",{className:"text-cyan-500",children:["Spend: $",(0,D.formatNumberWithCommas)(a.metrics.spend,2)]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Requests: ",a.metrics.api_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Successful: ",a.metrics.successful_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Failed: ",a.metrics.failed_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Tokens: ",a.metrics.total_tokens]})]})}})]})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(c.Card,{className:"h-full",children:[(0,t.jsx)(j.Title,{children:"Top Virtual Keys"}),(0,t.jsx)(eU.default,{topKeys:e7,teams:null,topKeysLimit:eR,setTopKeysLimit:eV})]})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(c.Card,{className:"h-full",children:[(0,t.jsx)(j.Title,{children:"groups"===eC?"Top Public Model Names":"Top Litellm Models"}),(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(b.Segmented,{options:[{label:"5",value:5},{label:"10",value:10},{label:"25",value:25},{label:"50",value:50}],value:eB,onChange:e=>eW(e)}),(0,t.jsxs)("div",{className:"flex bg-gray-100 rounded-lg p-1",children:[(0,t.jsx)("button",{className:`px-3 py-1 text-sm rounded-md transition-colors ${"groups"===eC?"bg-white shadow-sm text-gray-900":"text-gray-600 hover:text-gray-900"}`,onClick:()=>ew("groups"),children:"Public Model Name"}),(0,t.jsx)("button",{className:`px-3 py-1 text-sm rounded-md transition-colors ${"individual"===eC?"bg-white shadow-sm text-gray-900":"text-gray-600 hover:text-gray-900"}`,onClick:()=>ew("individual"),children:"Litellm Model Name"})]})]}),e1?(0,t.jsx)(P,{isDateChanging:J}):(0,t.jsx)("div",{className:"relative max-h-[600px] overflow-y-auto",children:(R="groups"===eC?e6:e4,(0,t.jsx)(o.BarChart,{className:"mt-4",style:{height:52*Math.min(R.length,eB)},data:R,index:"key",categories:["spend"],colors:["cyan"],valueFormatter:el.valueFormatterSpend,layout:"vertical",yAxisWidth:200,showLegend:!1,customTooltip:({payload:e,active:s})=>{if(!s||!e?.[0])return null;let a=e[0].payload;return(0,t.jsxs)("div",{className:"bg-white p-4 shadow-lg rounded-lg border",children:[(0,t.jsx)("p",{className:"font-bold",children:a.key}),(0,t.jsxs)("p",{className:"text-cyan-500",children:["Spend: $",(0,D.formatNumberWithCommas)(a.spend,2)]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Total Requests: ",a.requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-green-600",children:["Successful: ",a.successful_requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-red-600",children:["Failed: ",a.failed_requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Tokens: ",a.tokens.toLocaleString()]})]})}}))})]})}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsx)(ez,{loading:e1,isDateChanging:J,providerSpend:e3})})]})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:e8})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:te})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:tt})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(eL,{userSpendData:e0})})]})]})]}),"organization"===eE&&(0,t.jsx)(eI,{accessToken:V,entityType:"organization",userID:B,userRole:I,dateValue:ea,entityList:U?.map(e=>({label:e.organization_alias,value:e.organization_id}))||null,premiumUser:W}),"team"===eE&&(0,t.jsx)(eI,{accessToken:V,entityType:"team",userID:B,userRole:I,entityList:e?.map(e=>({label:e.team_alias,value:e.team_id}))||null,premiumUser:W,dateValue:ea}),"customer"===eE&&(0,t.jsx)(eI,{accessToken:V,entityType:"customer",userID:B,userRole:I,entityList:ec?.map(e=>({label:e.alias||e.user_id,value:e.user_id}))||null,premiumUser:W,dateValue:ea}),"tag"===eE&&(0,t.jsxs)(t.Fragment,{children:[e$&&(0,t.jsx)(_.Alert,{banner:!0,type:"info",message:"Reusable credentials are automatically tracked as tags",description:(0,t.jsxs)(N.Typography.Text,{children:["When a reusable credential is used, it will appear as a tag prefixed with"," ",(0,t.jsx)(N.Typography.Text,{code:!0,children:"Credential: "}),"in this view."]}),closable:!0,onClose:()=>eP(!1),className:"mb-5"}),(0,t.jsx)(eI,{accessToken:V,entityType:"tag",userID:B,userRole:I,entityList:en,premiumUser:W,dateValue:ea})]}),"agent"===eE&&(0,t.jsx)(eI,{accessToken:V,entityType:"agent",userID:B,userRole:I,entityList:ed?.agents?.map(e=>({label:e.agent_name,value:e.agent_id}))||null,premiumUser:W,dateValue:ea}),"user"===eE&&(0,t.jsx)(eI,{accessToken:V,entityType:"user",userID:B,userRole:I,entityList:ev.length>0?ev:null,premiumUser:W,dateValue:ea}),"user-agent-activity"===eE&&(0,t.jsx)(ee,{accessToken:V,userRole:I,dateValue:ea})]})}),(0,t.jsx)(O.default,{isOpen:eS,onClose:()=>eq(!1),accessToken:V}),(0,t.jsx)(E.default,{isOpen:eD,onClose:()=>eA(!1),entityType:"team",spendData:{results:e0.results,metadata:e0.metadata},dateRange:ea,selectedFilters:[],customTitle:"Export Usage Data"}),(0,t.jsx)(eX,{open:eM,onClose:()=>eO(!1),accessToken:V})]})}],797305)}]); \ No newline at end of file +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,289793,952840,617885,286718,23371,487147,498610,785952,193523,260573,e=>{"use strict";var t=e.i(764205),s=e.i(266027),a=e.i(243652),r=e.i(708347),l=e.i(135214);let i=(0,a.createQueryKeys)("agents");e.s(["useAgents",0,()=>{let{accessToken:e,userRole:a}=(0,l.default)();return(0,s.useQuery)({queryKey:i.list({}),queryFn:async()=>await (0,t.getAgentsList)(e),enabled:!!e&&r.all_admin_roles.includes(a||"")})}],289793);let n=(0,a.createQueryKeys)("customers");e.s(["useCustomers",0,()=>{let{accessToken:e,userRole:a}=(0,l.default)();return(0,s.useQuery)({queryKey:n.list({}),queryFn:async()=>await (0,t.allEndUsersCall)(e),enabled:!!e&&r.all_admin_roles.includes(a)})}],952840);var o=e.i(621482);let c=(0,a.createQueryKeys)("infiniteUsers"),d=50;e.s(["useInfiniteUsers",0,(e=d,s)=>{let{accessToken:a,userRole:i}=(0,l.default)();return(0,o.useInfiniteQuery)({queryKey:c.list({filters:{pageSize:e,...s&&{searchEmail:s}}}),queryFn:async({pageParam:r})=>await (0,t.userListCall)(a,null,r,e,s||null),initialPageParam:1,getNextPageParam:e=>{if(e.pagee&&t&&t.length?(0,u.jsxs)("div",{className:"w-56 rounded-tremor-default border border-tremor-border bg-tremor-background p-2 text-tremor-default shadow-tremor-dropdown",children:[(0,u.jsx)("p",{className:"text-tremor-content-strong",children:s}),t.map(e=>{let t=e.dataKey?.toString();if(!t||!e.payload)return null;let s=((e,t)=>{let s=t.substring(t.indexOf(".")+1);if(e.metrics&&s in e.metrics)return e.metrics[s]})(e.payload,t),a=t.includes("spend"),r=void 0!==s?a?`$${s.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})}`:s.toLocaleString():"N/A",l=b[e.color]||e.color;return(0,u.jsxs)("div",{className:"flex items-center justify-between space-x-4",children:[(0,u.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,u.jsx)("span",{className:"h-2 w-2 shrink-0 rounded-full ring-2 ring-white drop-shadow-md",style:{backgroundColor:l}}),(0,u.jsx)("p",{className:"font-medium text-tremor-content dark:text-dark-tremor-content",children:t.replace("metrics.","").replace(/_/g," ").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")})]}),(0,u.jsx)("p",{className:"font-medium text-tremor-content-emphasis dark:text-dark-tremor-content-emphasis",children:r})]},t)})]}):null,v=({categories:e,colors:t})=>(0,u.jsx)("div",{className:"flex items-center justify-end space-x-4",children:e.map((e,s)=>{let a=b[t[s]]||t[s];return(0,u.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,u.jsx)("span",{className:"h-2 w-2 shrink-0 rounded-full ring-4 ring-white",style:{backgroundColor:a}}),(0,u.jsx)("p",{className:"text-sm text-tremor-content dark:text-dark-tremor-content",children:e.replace("metrics.","").replace(/_/g," ").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")})]},e)})});e.s(["CustomLegend",0,v,"CustomTooltip",0,k],286718);var N=e.i(291542),T=e.i(271645);let C=[{title:"Model",dataIndex:"model",key:"model",render:e=>e||"-"},{title:"Spend (USD)",dataIndex:"spend",key:"spend",render:e=>`$${(0,m.formatNumberWithCommas)(e,2)}`},{title:"Successful",dataIndex:"successful_requests",key:"successful_requests",render:e=>(0,u.jsx)("span",{className:"text-green-600",children:e?.toLocaleString()||0})},{title:"Failed",dataIndex:"failed_requests",key:"failed_requests",render:e=>(0,u.jsx)("span",{className:"text-red-600",children:e?.toLocaleString()||0})},{title:"Tokens",dataIndex:"tokens",key:"tokens",render:e=>e?.toLocaleString()||0}],w=({topModels:e})=>{let[t,s]=(0,T.useState)("table");return 0===e.length?null:(0,u.jsxs)(g.Card,{className:"mt-4",children:[(0,u.jsxs)("div",{className:"flex justify-between items-center mb-3",children:[(0,u.jsx)(_.Title,{children:"Model Usage"}),(0,u.jsxs)("div",{className:"flex space-x-2",children:[(0,u.jsx)("button",{onClick:()=>s("table"),className:`px-3 py-1 text-sm rounded-md ${"table"===t?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-700"}`,children:"Table"}),(0,u.jsx)("button",{onClick:()=>s("chart"),className:`px-3 py-1 text-sm rounded-md ${"chart"===t?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-700"}`,children:"Chart"})]})]}),"chart"===t?(0,u.jsx)("div",{className:"max-h-[234px] overflow-y-auto",children:(0,u.jsx)(p.BarChart,{style:{height:40*e.length},data:e.map(e=>({key:e.model,spend:e.spend})),index:"key",categories:["spend"],colors:["cyan"],valueFormatter:e=>`$${(0,m.formatNumberWithCommas)(e,2)}`,layout:"vertical",yAxisWidth:180,tickGap:5,showLegend:!1})}):(0,u.jsx)(N.Table,{columns:C,dataSource:e,rowKey:"model",size:"small",pagination:!1,scroll:e.length>5?{y:195}:void 0})]})};function S(e){return e>=1e6?(e/1e6).toFixed(2)+"M":e>=1e3?e/1e3+"k":e.toString()}e.s(["valueFormatter",0,S,"valueFormatterSpend",0,function(e){return 0===e?"$0":e>=1e6?"$"+e/1e6+"M":e>=1e3?"$"+e/1e3+"k":"$"+e}],23371);let q=({modelName:e,metrics:t,hidePromptCachingMetrics:s=!1})=>(0,u.jsxs)("div",{className:"space-y-2",children:[(0,u.jsxs)(f.Grid,{numItems:4,className:"gap-4",children:[(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Requests"}),(0,u.jsx)(_.Title,{children:t.total_requests.toLocaleString()})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Successful Requests"}),(0,u.jsx)(_.Title,{children:t.total_successful_requests.toLocaleString()})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Tokens"}),(0,u.jsx)(_.Title,{children:t.total_tokens.toLocaleString()}),(0,u.jsxs)(j.Text,{children:[Math.round(t.total_tokens/t.total_successful_requests)," avg per successful request"]})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Spend"}),(0,u.jsxs)(_.Title,{children:["$",(0,m.formatNumberWithCommas)(t.total_spend,2)]}),(0,u.jsxs)(j.Text,{children:["$",(0,m.formatNumberWithCommas)(t.total_spend/t.total_successful_requests,3)," per successful request"]})]})]}),t.top_api_keys&&t.top_api_keys.length>0&&(0,u.jsxs)(g.Card,{className:"mt-4",children:[(0,u.jsx)(_.Title,{children:"Top Virtual Keys by Spend"}),(0,u.jsx)("div",{className:"mt-3",children:(0,u.jsx)("div",{className:"grid grid-cols-1 gap-2",children:t.top_api_keys.map((e,t)=>(0,u.jsxs)("div",{className:"flex justify-between items-center p-3 bg-gray-50 rounded-lg",children:[(0,u.jsxs)("div",{children:[(0,u.jsx)(j.Text,{className:"font-medium",children:e.key_alias||`${e.api_key.substring(0,10)}...`}),e.team_id&&(0,u.jsxs)(j.Text,{className:"text-xs text-gray-500",children:["Team: ",e.team_id]})]}),(0,u.jsxs)("div",{className:"text-right",children:[(0,u.jsxs)(j.Text,{className:"font-medium",children:["$",(0,m.formatNumberWithCommas)(e.spend,2)]}),(0,u.jsxs)(j.Text,{className:"text-xs text-gray-500",children:[e.requests.toLocaleString()," requests | ",e.tokens.toLocaleString()," tokens"]})]})]},e.api_key))})})]}),t.top_models&&t.top_models.length>0&&(0,u.jsx)(w,{topModels:t.top_models}),(0,u.jsxs)(g.Card,{className:"mt-4",children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Spend per day"}),(0,u.jsx)(v,{categories:["metrics.spend"],colors:["green"]})]}),(0,u.jsx)(p.BarChart,{className:"mt-4",data:t.daily_data,index:"date",categories:["metrics.spend"],colors:["green"],valueFormatter:e=>`$${(0,m.formatNumberWithCommas)(e,2,!0)}`,yAxisWidth:72})]}),(0,u.jsxs)(f.Grid,{numItems:2,className:"gap-4 mt-4",children:[(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Total Tokens"}),(0,u.jsx)(v,{categories:["metrics.prompt_tokens","metrics.completion_tokens","metrics.total_tokens"],colors:["blue","cyan","indigo"]})]}),(0,u.jsx)(h.AreaChart,{className:"mt-4",data:t.daily_data,index:"date",categories:["metrics.prompt_tokens","metrics.completion_tokens","metrics.total_tokens"],colors:["blue","cyan","indigo"],valueFormatter:S,customTooltip:k,showLegend:!1})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Requests per day"}),(0,u.jsx)(v,{categories:["metrics.api_requests"],colors:["blue"]})]}),(0,u.jsx)(p.BarChart,{className:"mt-4",data:t.daily_data,index:"date",categories:["metrics.api_requests"],colors:["blue"],valueFormatter:S,customTooltip:k,showLegend:!1})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Success vs Failed Requests"}),(0,u.jsx)(v,{categories:["metrics.successful_requests","metrics.failed_requests"],colors:["green","red"]})]}),(0,u.jsx)(h.AreaChart,{className:"mt-4",data:t.daily_data,index:"date",categories:["metrics.successful_requests","metrics.failed_requests"],colors:["green","red"],valueFormatter:S,customTooltip:k,showLegend:!1})]}),!s&&(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Prompt Caching Metrics"}),(0,u.jsx)(v,{categories:["metrics.cache_read_input_tokens","metrics.cache_creation_input_tokens"],colors:["cyan","purple"]})]}),(0,u.jsxs)("div",{className:"mb-2",children:[(0,u.jsxs)(j.Text,{children:["Cache Read: ",t.total_cache_read_input_tokens?.toLocaleString()||0," tokens"]}),(0,u.jsxs)(j.Text,{children:["Cache Creation: ",t.total_cache_creation_input_tokens?.toLocaleString()||0," tokens"]})]}),(0,u.jsx)(h.AreaChart,{className:"mt-4",data:t.daily_data,index:"date",categories:["metrics.cache_read_input_tokens","metrics.cache_creation_input_tokens"],colors:["cyan","purple"],valueFormatter:S,customTooltip:k,showLegend:!1})]})]})]});e.s(["ActivityMetrics",0,({modelMetrics:e,hidePromptCachingMetrics:t=!1})=>{let s=Object.keys(e).sort((t,s)=>""===t?1:""===s?-1:e[s].total_spend-e[t].total_spend),a={total_requests:0,total_successful_requests:0,total_tokens:0,total_spend:0,total_cache_read_input_tokens:0,total_cache_creation_input_tokens:0,daily_data:{}};Object.values(e).forEach(e=>{a.total_requests+=e.total_requests,a.total_successful_requests+=e.total_successful_requests,a.total_tokens+=e.total_tokens,a.total_spend+=e.total_spend,a.total_cache_read_input_tokens+=e.total_cache_read_input_tokens||0,a.total_cache_creation_input_tokens+=e.total_cache_creation_input_tokens||0,e.daily_data.forEach(e=>{a.daily_data[e.date]||(a.daily_data[e.date]={prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,spend:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0}),a.daily_data[e.date].prompt_tokens+=e.metrics.prompt_tokens,a.daily_data[e.date].completion_tokens+=e.metrics.completion_tokens,a.daily_data[e.date].total_tokens+=e.metrics.total_tokens,a.daily_data[e.date].api_requests+=e.metrics.api_requests,a.daily_data[e.date].spend+=e.metrics.spend,a.daily_data[e.date].successful_requests+=e.metrics.successful_requests,a.daily_data[e.date].failed_requests+=e.metrics.failed_requests,a.daily_data[e.date].cache_read_input_tokens+=e.metrics.cache_read_input_tokens||0,a.daily_data[e.date].cache_creation_input_tokens+=e.metrics.cache_creation_input_tokens||0})});let r=Object.entries(a.daily_data).map(([e,t])=>({date:e,metrics:t})).sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime());return(0,u.jsxs)("div",{className:"space-y-8",children:[(0,u.jsxs)("div",{className:"border rounded-lg p-4",children:[(0,u.jsx)(_.Title,{children:"Overall Usage"}),(0,u.jsxs)(f.Grid,{numItems:4,className:"gap-4 mb-4",children:[(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Requests"}),(0,u.jsx)(_.Title,{children:a.total_requests.toLocaleString()})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Successful Requests"}),(0,u.jsx)(_.Title,{children:a.total_successful_requests.toLocaleString()})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Tokens"}),(0,u.jsx)(_.Title,{children:a.total_tokens.toLocaleString()})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Spend"}),(0,u.jsxs)(_.Title,{children:["$",(0,m.formatNumberWithCommas)(a.total_spend,2)]})]})]}),(0,u.jsxs)(f.Grid,{numItems:2,className:"gap-4",children:[(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Total Tokens Over Time"}),(0,u.jsx)(v,{categories:["metrics.prompt_tokens","metrics.completion_tokens","metrics.total_tokens"],colors:["blue","cyan","indigo"]})]}),(0,u.jsx)(h.AreaChart,{className:"mt-4",data:r,index:"date",categories:["metrics.prompt_tokens","metrics.completion_tokens","metrics.total_tokens"],colors:["blue","cyan","indigo"],valueFormatter:S,customTooltip:k,showLegend:!1})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Total Requests Over Time"}),(0,u.jsx)(v,{categories:["metrics.successful_requests","metrics.failed_requests"],colors:["emerald","red"]})]}),(0,u.jsx)(h.AreaChart,{className:"mt-4",data:r,index:"date",categories:["metrics.successful_requests","metrics.failed_requests"],colors:["emerald","red"],valueFormatter:e=>e.toLocaleString(),customTooltip:k,showLegend:!1})]})]})]}),(0,u.jsx)(y.Collapse,{defaultActiveKey:s[0],children:s.map(s=>(0,u.jsx)(y.Collapse.Panel,{header:(0,u.jsxs)("div",{className:"flex justify-between items-center w-full",children:[(0,u.jsx)(_.Title,{children:e[s].label||"Unknown Item"}),(0,u.jsxs)("div",{className:"flex space-x-4 text-sm text-gray-500",children:[(0,u.jsxs)("span",{children:["$",(0,m.formatNumberWithCommas)(e[s].total_spend,2)]}),(0,u.jsxs)("span",{children:[e[s].total_requests.toLocaleString()," requests"]})]})]}),children:(0,u.jsx)(q,{modelName:s||"Unknown Model",metrics:e[s],hidePromptCachingMetrics:t})},s))})]})},"processActivityData",0,(e,t,s=[])=>{let a={};return e.results.forEach(e=>{Object.entries(e.breakdown[t]||{}).forEach(([r,l])=>{a[r]||(a[r]={label:"api_keys"===t?((e,t,s)=>{let a=e.metadata.key_alias||`key-hash-${t}`,r=e.metadata.team_id;if(r){let e=(0,x.resolveTeamAliasFromTeamID)(r,s);return e?`${a} (team: ${e})`:`${a} (team_id: ${r})`}return a})(l,r,s):"entities"===t&&(l.metadata?.agent_name||l.metadata?.team_alias)||r,total_requests:0,total_successful_requests:0,total_failed_requests:0,total_tokens:0,prompt_tokens:0,completion_tokens:0,total_spend:0,total_cache_read_input_tokens:0,total_cache_creation_input_tokens:0,top_api_keys:[],top_models:[],daily_data:[]}),a[r].total_requests+=l.metrics.api_requests,a[r].prompt_tokens+=l.metrics.prompt_tokens,a[r].completion_tokens+=l.metrics.completion_tokens,a[r].total_tokens+=l.metrics.total_tokens,a[r].total_spend+=l.metrics.spend,a[r].total_successful_requests+=l.metrics.successful_requests,a[r].total_failed_requests+=l.metrics.failed_requests,a[r].total_cache_read_input_tokens+=l.metrics.cache_read_input_tokens||0,a[r].total_cache_creation_input_tokens+=l.metrics.cache_creation_input_tokens||0,a[r].daily_data.push({date:e.date,metrics:{prompt_tokens:l.metrics.prompt_tokens,completion_tokens:l.metrics.completion_tokens,total_tokens:l.metrics.total_tokens,api_requests:l.metrics.api_requests,spend:l.metrics.spend,successful_requests:l.metrics.successful_requests,failed_requests:l.metrics.failed_requests,cache_read_input_tokens:l.metrics.cache_read_input_tokens||0,cache_creation_input_tokens:l.metrics.cache_creation_input_tokens||0}})})}),"api_keys"!==t&&Object.entries(a).forEach(([s,r])=>{let l={};e.results.forEach(e=>{let a=e.breakdown[t]?.[s];a&&"api_key_breakdown"in a&&Object.entries(a.api_key_breakdown||{}).forEach(([e,t])=>{l[e]||(l[e]={api_key:e,key_alias:t.metadata.key_alias,team_id:t.metadata.team_id,spend:0,requests:0,tokens:0}),l[e].spend+=t.metrics.spend,l[e].requests+=t.metrics.api_requests,l[e].tokens+=t.metrics.total_tokens})}),a[s].top_api_keys=Object.values(l).sort((e,t)=>t.spend-e.spend).slice(0,5)}),"api_keys"===t&&Object.entries(a).forEach(([t,s])=>{let r={};e.results.forEach(e=>{Object.entries(e.breakdown.models||{}).forEach(([e,s])=>{if(s&&"api_key_breakdown"in s){let a=s.api_key_breakdown?.[t];a&&(r[e]||(r[e]={model:e,spend:0,requests:0,successful_requests:0,failed_requests:0,tokens:0}),r[e].spend+=a.metrics.spend,r[e].requests+=a.metrics.api_requests,r[e].successful_requests+=a.metrics.successful_requests||0,r[e].failed_requests+=a.metrics.failed_requests||0,r[e].tokens+=a.metrics.total_tokens)}})}),a[t].top_models=Object.values(r).sort((e,t)=>t.spend-e.spend)}),Object.values(a).forEach(e=>{e.daily_data.sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime())}),a}],487147);var L=e.i(994388),D=e.i(366283),A=e.i(779241),M=e.i(212931),O=e.i(808613),E=e.i(482725),F=e.i(199133),$=e.i(727749);e.s(["default",0,({isOpen:e,onClose:s,accessToken:a})=>{let[r]=O.Form.useForm(),[l,i]=(0,T.useState)(!1),[n,o]=(0,T.useState)(null),[c,d]=(0,T.useState)(!1),[m,x]=(0,T.useState)("cloudzero"),[h,p]=(0,T.useState)(!1);(0,T.useEffect)(()=>{e&&a&&g()},[e,a]);let g=async()=>{d(!0);try{let e=await fetch("/cloudzero/settings",{method:"GET",headers:{[(0,t.getGlobalLitellmHeaderName)()]:`Bearer ${a}`,"Content-Type":"application/json"}});if(e.ok){let t=await e.json();o(t),r.setFieldsValue({connection_id:t.connection_id})}else if(404!==e.status){let t=await e.json();$.default.fromBackend(`Failed to load existing settings: ${t.error||"Unknown error"}`)}}catch(e){console.error("Error loading CloudZero settings:",e),$.default.fromBackend("Failed to load existing settings")}finally{d(!1)}},f=async e=>{if(!a)return void $.default.fromBackend("No access token available");i(!0);try{let s=n?"/cloudzero/settings":"/cloudzero/init",r=n?"PUT":"POST",l={...e,timezone:"UTC"},i=await fetch(s,{method:r,headers:{[(0,t.getGlobalLitellmHeaderName)()]:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify(l)}),c=await i.json();if(i.ok)return $.default.success(c.message||"CloudZero settings saved successfully"),o({api_key_masked:e.api_key.substring(0,4)+"****"+e.api_key.slice(-4),connection_id:e.connection_id,status:"configured"}),!0;return $.default.fromBackend(c.error||"Failed to save CloudZero settings"),!1}catch(e){return console.error("Error saving CloudZero settings:",e),$.default.fromBackend("Failed to save CloudZero settings"),!1}finally{i(!1)}},_=async()=>{if(!a)return void $.default.fromBackend("No access token available");p(!0);try{let e=await fetch("/cloudzero/export",{method:"POST",headers:{[(0,t.getGlobalLitellmHeaderName)()]:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({limit:1e5,operation:"replace_hourly"})}),r=await e.json();e.ok?($.default.success(r.message||"Export to CloudZero completed successfully"),s()):$.default.fromBackend(r.error||"Failed to export to CloudZero")}catch(e){console.error("Error exporting to CloudZero:",e),$.default.fromBackend("Failed to export to CloudZero")}finally{p(!1)}},y=async()=>{p(!0);try{$.default.info("CSV export functionality coming soon!"),s()}catch(e){console.error("Error exporting CSV:",e),$.default.fromBackend("Failed to export CSV")}finally{p(!1)}},b=async()=>{if("cloudzero"===m){if(!n){let e=await r.validateFields();if(!await f(e))return}await _()}else await y()},k=()=>{r.resetFields(),x("cloudzero"),o(null),s()},v=[{value:"cloudzero",label:(0,u.jsxs)("div",{className:"flex items-center gap-2",children:[(0,u.jsx)("img",{src:"/cloudzero.png",alt:"CloudZero",className:"w-5 h-5",onError:e=>{e.target.style.display="none"}}),(0,u.jsx)("span",{children:"Export to CloudZero"})]})},{value:"csv",label:(0,u.jsxs)("div",{className:"flex items-center gap-2",children:[(0,u.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,u.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})}),(0,u.jsx)("span",{children:"Export to CSV"})]})}];return(0,u.jsx)(M.Modal,{title:"Export Data",open:e,onCancel:k,footer:null,width:600,destroyOnHidden:!0,children:(0,u.jsxs)("div",{className:"space-y-4",children:[(0,u.jsxs)("div",{children:[(0,u.jsx)(j.Text,{className:"font-medium mb-2 block",children:"Export Destination"}),(0,u.jsx)(F.Select,{value:m,onChange:x,options:v,className:"w-full",size:"large"})]}),"cloudzero"===m&&(0,u.jsx)("div",{children:c?(0,u.jsx)("div",{className:"flex justify-center py-8",children:(0,u.jsx)(E.Spin,{size:"large"})}):(0,u.jsxs)(u.Fragment,{children:[n&&(0,u.jsx)(D.Callout,{title:"Existing CloudZero Configuration",icon:()=>(0,u.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,u.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})}),color:"green",className:"mb-4",children:(0,u.jsxs)(j.Text,{children:["API Key: ",n.api_key_masked,(0,u.jsx)("br",{}),"Connection ID: ",n.connection_id]})}),!n&&(0,u.jsxs)(O.Form,{form:r,layout:"vertical",children:[(0,u.jsx)(O.Form.Item,{label:"CloudZero API Key",name:"api_key",rules:[{required:!0,message:"Please enter your CloudZero API key"}],children:(0,u.jsx)(A.TextInput,{type:"password",placeholder:"Enter your CloudZero API key"})}),(0,u.jsx)(O.Form.Item,{label:"Connection ID",name:"connection_id",rules:[{required:!0,message:"Please enter the CloudZero connection ID"}],children:(0,u.jsx)(A.TextInput,{placeholder:"Enter CloudZero connection ID"})})]})]})}),"csv"===m&&(0,u.jsx)(D.Callout,{title:"CSV Export",icon:()=>(0,u.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,u.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 6v6m0 0v6m0-6h6m-6 0H6"})}),color:"blue",children:(0,u.jsx)(j.Text,{children:"Export your usage data as a CSV file for analysis in spreadsheet applications."})}),(0,u.jsxs)("div",{className:"flex justify-end space-x-2 pt-4",children:[(0,u.jsx)(L.Button,{variant:"secondary",onClick:k,children:"Cancel"}),(0,u.jsx)(L.Button,{onClick:b,loading:l||h,disabled:l||h,children:"cloudzero"===m?"Export to CloudZero":"Export CSV"})]})]})})}],498610);var U=e.i(785242),P=e.i(464571),R=e.i(981339);let V=({value:e,onChange:t})=>(0,u.jsxs)("div",{children:[(0,u.jsx)("label",{className:"text-sm font-medium text-gray-700 block mb-2",children:"Format"}),(0,u.jsx)(F.Select,{value:e,onChange:t,className:"w-full",options:[{value:"csv",label:"CSV (Excel, Google Sheets)"},{value:"json",label:"JSON (includes metadata)"}]})]}),I=({dateRange:e,selectedFilters:t})=>(0,u.jsxs)("div",{className:"text-sm text-gray-500",children:[e.from?.toLocaleDateString()," - ",e.to?.toLocaleDateString(),t.length>0&&` \xb7 ${t.length} filter${t.length>1?"s":""}`]});var B=e.i(91739);let W=({value:e,onChange:t,entityType:s})=>(0,u.jsxs)("div",{children:[(0,u.jsx)("label",{className:"text-sm font-medium text-gray-700 block mb-2",children:"Export type"}),(0,u.jsx)(B.Radio.Group,{value:e,onChange:e=>t(e.target.value),className:"w-full",children:(0,u.jsxs)("div",{className:"space-y-2",children:[(0,u.jsxs)("label",{className:"flex items-start p-3 border border-gray-200 rounded-lg hover:bg-gray-50 cursor-pointer transition-colors",children:[(0,u.jsx)(B.Radio,{value:"daily",className:"mt-0.5"}),(0,u.jsxs)("div",{className:"ml-3 flex-1",children:[(0,u.jsxs)("div",{className:"font-medium text-sm",children:["Day-by-day breakdown by ",s]}),(0,u.jsxs)("div",{className:"text-xs text-gray-500 mt-0.5",children:["Daily metrics for each ",s]})]})]}),(0,u.jsxs)("label",{className:"flex items-start p-3 border border-gray-200 rounded-lg hover:bg-gray-50 cursor-pointer transition-colors",children:[(0,u.jsx)(B.Radio,{value:"daily_with_keys",className:"mt-0.5"}),(0,u.jsxs)("div",{className:"ml-3 flex-1",children:[(0,u.jsxs)("div",{className:"font-medium text-sm",children:["Day-by-day breakdown by ",s," and key"]}),(0,u.jsxs)("div",{className:"text-xs text-gray-500 mt-0.5",children:["Daily metrics for each ",s,", split by API key"]})]})]}),(0,u.jsxs)("label",{className:"flex items-start p-3 border border-gray-200 rounded-lg hover:bg-gray-50 cursor-pointer transition-colors",children:[(0,u.jsx)(B.Radio,{value:"daily_with_models",className:"mt-0.5"}),(0,u.jsxs)("div",{className:"ml-3 flex-1",children:[(0,u.jsxs)("div",{className:"font-medium text-sm",children:["Day-by-day by ",s," and model"]}),(0,u.jsx)("div",{className:"text-xs text-gray-500 mt-0.5",children:"Daily metrics split by model"})]})]})]})})]});var z=e.i(59935);let Y=(e,t)=>({id:e,alias:t[e]||e}),K=["spend","api_requests","successful_requests","failed_requests","total_tokens","prompt_tokens","completion_tokens","cache_read_input_tokens","cache_creation_input_tokens"],H=e=>{let t=e.entities;return t&&Object.keys(t).length>0?t:(e=>{let t=e.api_keys;if(!t||0===Object.keys(t).length)return{};let s={};for(let[e,a]of Object.entries(t)){let t=a?.metadata?.team_id||"Unassigned";s[t]||(s[t]={metrics:Object.fromEntries(K.map(e=>[e,0])),api_key_breakdown:{}});let r=s[t].metrics,l=a?.metrics||{};for(let e of K)r[e]+=l[e]||0;s[t].api_key_breakdown[e]=a}return s})(e)},G=(e,t,s,a={})=>{switch(t){case"daily":default:return((e,t,s={})=>{let a=[];return e.results.forEach(e=>{Object.entries(H(e.breakdown)).forEach(([r,l])=>{let{id:i,alias:n}=Y(r,s);a.push({Date:e.date,[t]:n,[`${t} ID`]:i,"Spend ($)":(0,m.formatNumberWithCommas)(l.metrics.spend,4),Requests:l.metrics.api_requests,"Successful Requests":l.metrics.successful_requests,"Failed Requests":l.metrics.failed_requests,"Total Tokens":l.metrics.total_tokens,"Prompt Tokens":l.metrics.prompt_tokens||0,"Completion Tokens":l.metrics.completion_tokens||0})})}),a.sort((e,t)=>new Date(e.Date).getTime()-new Date(t.Date).getTime())})(e,s,a);case"daily_with_keys":return((e,t,s={})=>{let a={};return e.results.forEach(e=>{Object.entries(H(e.breakdown)).forEach(([t,r])=>{let{id:l,alias:i}=Y(t,s);Object.entries(r.api_key_breakdown||{}).forEach(([t,s])=>{let r=s?.metadata?.key_alias||null,n=`${e.date}_${l}_${t}`;a[n]?(a[n].metrics.spend+=s.metrics?.spend||0,a[n].metrics.api_requests+=s.metrics?.api_requests||0,a[n].metrics.successful_requests+=s.metrics?.successful_requests||0,a[n].metrics.failed_requests+=s.metrics?.failed_requests||0,a[n].metrics.total_tokens+=s.metrics?.total_tokens||0,a[n].metrics.prompt_tokens+=s.metrics?.prompt_tokens||0,a[n].metrics.completion_tokens+=s.metrics?.completion_tokens||0):a[n]={Date:e.date,entityId:l,entityAlias:i,keyId:t,keyAlias:r,metrics:{spend:s.metrics?.spend||0,api_requests:s.metrics?.api_requests||0,successful_requests:s.metrics?.successful_requests||0,failed_requests:s.metrics?.failed_requests||0,total_tokens:s.metrics?.total_tokens||0,prompt_tokens:s.metrics?.prompt_tokens||0,completion_tokens:s.metrics?.completion_tokens||0}}})})}),Object.values(a).map(e=>({Date:e.Date,[t]:e.entityAlias,[`${t} ID`]:e.entityId,"Key Alias":e.keyAlias||"-","Key ID":e.keyId,"Spend ($)":(0,m.formatNumberWithCommas)(e.metrics.spend,4),Requests:e.metrics.api_requests,"Successful Requests":e.metrics.successful_requests,"Failed Requests":e.metrics.failed_requests,"Total Tokens":e.metrics.total_tokens,"Prompt Tokens":e.metrics.prompt_tokens,"Completion Tokens":e.metrics.completion_tokens})).sort((e,t)=>new Date(e.Date).getTime()-new Date(t.Date).getTime())})(e,s,a);case"daily_with_models":return((e,t,s={})=>{let a=[];return e.results.forEach(e=>{let r={};Object.entries(H(e.breakdown)).forEach(([t,s])=>{r[t]||(r[t]={}),Object.entries(e.breakdown.models||{}).forEach(([e,a])=>{Object.entries(s.api_key_breakdown||{}).forEach(([s,a])=>{r[t][e]||(r[t][e]={spend:0,requests:0,successful:0,failed:0,tokens:0}),r[t][e].spend+=a.metrics.spend||0,r[t][e].requests+=a.metrics.api_requests||0,r[t][e].successful+=a.metrics.successful_requests||0,r[t][e].failed+=a.metrics.failed_requests||0,r[t][e].tokens+=a.metrics.total_tokens||0})})}),Object.entries(r).forEach(([r,l])=>{let{id:i,alias:n}=Y(r,s);Object.entries(l).forEach(([s,r])=>{a.push({Date:e.date,[t]:n,[`${t} ID`]:i,Model:s,"Spend ($)":(0,m.formatNumberWithCommas)(r.spend,4),Requests:r.requests,Successful:r.successful,Failed:r.failed,"Total Tokens":r.tokens})})})}),a.sort((e,t)=>new Date(e.Date).getTime()-new Date(t.Date).getTime())})(e,s,a)}},Z=({isOpen:e,onClose:t,entityType:s,spendData:a,dateRange:r,selectedFilters:l,customTitle:i})=>{let[n,o]=(0,T.useState)("csv"),[c,d]=(0,T.useState)("daily"),[m,h]=(0,T.useState)(!1),{data:p,isLoading:g}=(0,U.useTeams)(),f=s.charAt(0).toUpperCase()+s.slice(1),j=i||`Export ${f} Usage`,_=(0,T.useMemo)(()=>(0,x.createTeamAliasMap)(p),[p]),y=async e=>{let i=e||n;h(!0);try{"csv"===i?(((e,t,s,a,r={})=>{let l=G(e,t,s,r),i=new Blob([z.default.unparse(l)],{type:"text/csv;charset=utf-8;"}),n=window.URL.createObjectURL(i),o=document.createElement("a");o.href=n,o.download=`${a}_usage_${t}_${new Date().toISOString().split("T")[0]}.csv`,document.body.appendChild(o),o.click(),document.body.removeChild(o),window.URL.revokeObjectURL(n)})(a,c,f,s,_),$.default.success(`${f} usage data exported successfully as CSV`)):(((e,t,s,a,r,l,i={})=>{let n=G(e,t,s,i),o={export_date:new Date().toISOString(),entity_type:a,date_range:{from:r.from?.toISOString(),to:r.to?.toISOString()},filters_applied:l.length>0?l:"None",export_scope:t,summary:{total_spend:e.metadata.total_spend,total_requests:e.metadata.total_api_requests,successful_requests:e.metadata.total_successful_requests,failed_requests:e.metadata.total_failed_requests,total_tokens:e.metadata.total_tokens}},c=new Blob([JSON.stringify({metadata:o,data:n},null,2)],{type:"application/json"}),d=window.URL.createObjectURL(c),u=document.createElement("a");u.href=d,u.download=`${a}_usage_${t}_${new Date().toISOString().split("T")[0]}.json`,document.body.appendChild(u),u.click(),document.body.removeChild(u),window.URL.revokeObjectURL(d)})(a,c,f,s,r,l,_),$.default.success(`${f} usage data exported successfully as JSON`)),t()}catch(e){console.error("Error exporting data:",e),$.default.fromBackend("Failed to export data")}finally{h(!1)}};return(0,u.jsx)(M.Modal,{title:(0,u.jsx)("span",{className:"text-base font-semibold",children:j}),open:e,onCancel:t,footer:null,width:480,children:(0,u.jsxs)("div",{className:"space-y-5 py-2",children:[g?(0,u.jsx)(R.Skeleton,{active:!0}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(I,{dateRange:r,selectedFilters:l}),(0,u.jsx)(W,{value:c,onChange:d,entityType:s}),(0,u.jsx)(V,{value:n,onChange:o})]}),g?(0,u.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-4 border-t",children:[(0,u.jsx)(R.Skeleton.Button,{active:!0}),(0,u.jsx)(R.Skeleton.Button,{active:!0})]}):(0,u.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-4 border-t",children:[(0,u.jsx)(P.Button,{variant:"outlined",onClick:t,disabled:m,children:"Cancel"}),(0,u.jsx)(P.Button,{onClick:()=>y(),loading:m||g,disabled:m||g,type:"primary",children:m?"Exporting...":`Export ${n.toUpperCase()}`})]})]})})};e.s(["default",0,Z],785952),e.s(["default",0,({dateValue:e,entityType:t,spendData:s,showFilters:a=!1,filterLabel:r,filterPlaceholder:l,selectedFilters:i=[],onFiltersChange:n,filterOptions:o=[],filterMode:c="multiple",customTitle:d,compactLayout:m=!1,teams:x=[]})=>{let[h,p]=(0,T.useState)(!1);return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("div",{className:"mb-4",children:(0,u.jsxs)("div",{className:`grid ${a&&o.length>0?"grid-cols-[1fr_auto]":"grid-cols-[auto]"} items-end gap-4`,children:[a&&o.length>0&&(0,u.jsxs)("div",{children:[r&&(0,u.jsx)(j.Text,{className:"mb-2",children:r}),(0,u.jsx)(F.Select,{mode:"single"===c?void 0:"multiple",style:{width:"100%"},placeholder:l,value:"single"===c?i[0]??void 0:i,onChange:e=>{"single"===c?n?.(e?[e]:[]):n?.(e)},options:o,allowClear:!0})]}),(0,u.jsx)("div",{className:"justify-self-end",children:(0,u.jsx)(L.Button,{onClick:()=>p(!0),icon:()=>(0,u.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,u.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})}),children:"Export Data"})})]})}),(0,u.jsx)(Z,{isOpen:h,onClose:()=>p(!1),entityType:t,spendData:s,dateRange:e,selectedFilters:i,customTitle:d,teams:x})]})}],193523),e.s([],260573)},973706,e=>{"use strict";var t=e.i(843476),s=e.i(72713),a=e.i(637235),r=e.i(994388),l=e.i(599724),i=e.i(166540),n=e.i(271645);let o=[{label:"Today",shortLabel:"today",getValue:()=>({from:(0,i.default)().startOf("day").toDate(),to:(0,i.default)().endOf("day").toDate()})},{label:"Last 7 days",shortLabel:"7d",getValue:()=>({from:(0,i.default)().subtract(7,"days").startOf("day").toDate(),to:(0,i.default)().endOf("day").toDate()})},{label:"Last 30 days",shortLabel:"30d",getValue:()=>({from:(0,i.default)().subtract(30,"days").startOf("day").toDate(),to:(0,i.default)().endOf("day").toDate()})},{label:"Month to date",shortLabel:"MTD",getValue:()=>({from:(0,i.default)().startOf("month").toDate(),to:(0,i.default)().endOf("day").toDate()})},{label:"Year to date",shortLabel:"YTD",getValue:()=>({from:(0,i.default)().startOf("year").toDate(),to:(0,i.default)().endOf("day").toDate()})}];e.s(["default",0,({value:e,onValueChange:c,label:d="Select Time Range",showTimeRange:u=!0})=>{let[m,x]=(0,n.useState)(!1),[h,p]=(0,n.useState)(e),[g,f]=(0,n.useState)(null),[j,_]=(0,n.useState)(""),[y,b]=(0,n.useState)(""),k=(0,n.useRef)(null),v=(0,n.useCallback)(e=>{if(!e.from||!e.to)return null;for(let t of o){let s=t.getValue(),a=(0,i.default)(e.from).isSame((0,i.default)(s.from),"day"),r=(0,i.default)(e.to).isSame((0,i.default)(s.to),"day");if(a&&r)return t.shortLabel}return null},[]);(0,n.useEffect)(()=>{f(v(e))},[e,v]);let N=(0,n.useCallback)(()=>{if(!j||!y)return{isValid:!0,error:""};let e=(0,i.default)(j,"YYYY-MM-DD"),t=(0,i.default)(y,"YYYY-MM-DD");return e.isValid()&&t.isValid()?t.isBefore(e)?{isValid:!1,error:"End date cannot be before start date"}:{isValid:!0,error:""}:{isValid:!1,error:"Invalid date format"}},[j,y])();(0,n.useEffect)(()=>{e.from&&_((0,i.default)(e.from).format("YYYY-MM-DD")),e.to&&b((0,i.default)(e.to).format("YYYY-MM-DD")),p(e)},[e]),(0,n.useEffect)(()=>{let e=e=>{k.current&&!k.current.contains(e.target)&&x(!1)};return m&&document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[m]);let T=(0,n.useCallback)((e,t)=>{if(!e||!t)return"Select date range";let s=e=>(0,i.default)(e).format("D MMM, HH:mm");return`${s(e)} - ${s(t)}`},[]),C=(0,n.useCallback)(e=>{let t;if(!e.from)return e;let s={...e},a=new Date(e.from);return t=new Date(e.to?e.to:e.from),a.toDateString()===t.toDateString(),a.setHours(0,0,0,0),t.setHours(23,59,59,999),s.from=a,s.to=t,s},[]),w=(0,n.useCallback)(()=>{try{if(j&&y&&N.isValid){let e=(0,i.default)(j,"YYYY-MM-DD").startOf("day"),t=(0,i.default)(y,"YYYY-MM-DD").endOf("day");if(e.isValid()&&t.isValid()){let s={from:e.toDate(),to:t.toDate()};p(s);let a=v(s);f(a)}}}catch(e){console.warn("Invalid date format:",e)}},[j,y,N.isValid,v]);return(0,n.useEffect)(()=>{w()},[w]),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[d&&(0,t.jsx)(l.Text,{className:"text-sm font-medium text-gray-700 whitespace-nowrap",children:d}),(0,t.jsxs)("div",{className:"relative",ref:k,children:[(0,t.jsx)("div",{className:"w-[300px] px-3 py-2 text-sm border border-gray-300 rounded-md bg-white cursor-pointer hover:border-gray-400 focus:border-blue-500 focus:ring-1 focus:ring-blue-500",onClick:()=>x(!m),children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(a.ClockCircleOutlined,{className:"text-gray-600"}),(0,t.jsx)("span",{className:"text-gray-900",children:T(e.from,e.to)})]}),(0,t.jsx)("svg",{className:`w-4 h-4 text-gray-400 transition-transform ${m?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})}),m&&(0,t.jsx)("div",{className:"absolute top-full right-0 z-[9999] min-w-[600px] mt-1 bg-white border border-gray-200 rounded-lg shadow-xl",children:(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsxs)("div",{className:"w-1/2 border-r border-gray-200",children:[(0,t.jsx)("div",{className:"p-3 border-b border-gray-200",children:(0,t.jsx)("span",{className:"text-sm font-semibold text-gray-900",children:"Relative time"})}),(0,t.jsx)("div",{className:"h-[350px] overflow-y-auto",children:o.map(e=>{let s=g===e.shortLabel;return(0,t.jsxs)("div",{className:`flex items-center justify-between px-5 py-4 cursor-pointer border-b border-gray-100 transition-colors ${s?"bg-blue-50 hover:bg-blue-100 border-blue-200":"hover:bg-gray-50"}`,onClick:()=>(e=>{let{from:t,to:s}=e.getValue();p({from:t,to:s}),f(e.shortLabel),_((0,i.default)(t).format("YYYY-MM-DD")),b((0,i.default)(s).format("YYYY-MM-DD"))})(e),children:[(0,t.jsx)("span",{className:`text-sm ${s?"text-blue-700 font-medium":"text-gray-700"}`,children:e.label}),(0,t.jsx)("span",{className:`text-xs px-2 py-1 rounded capitalize ${s?"text-blue-700 bg-blue-100":"text-gray-500 bg-gray-100"}`,children:e.shortLabel})]},e.label)})})]}),(0,t.jsxs)("div",{className:"w-1/2 relative",children:[(0,t.jsx)("div",{className:"p-3.5 border-b border-gray-200",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(s.CalendarOutlined,{className:"text-gray-600"}),(0,t.jsx)("span",{className:"text-sm font-semibold text-gray-900",children:"Start and end dates"})]})}),(0,t.jsxs)("div",{className:"p-6 space-y-6 pb-20",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm text-gray-700 mb-1 block",children:"Start date"}),(0,t.jsx)("input",{type:"date",value:j,onChange:e=>_(e.target.value),className:`w-65 px-3 py-2 text-sm border rounded-md cursor-pointer hover:border-gray-400 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 ${!N.isValid?"border-red-300 focus:border-red-500 focus:ring-red-200":"border-gray-300"}`})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm text-gray-700 mb-1 block",children:"End date"}),(0,t.jsx)("input",{type:"date",value:y,onChange:e=>b(e.target.value),className:`w-65 px-3 py-2 text-sm border rounded-md cursor-pointer hover:border-gray-400 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 ${!N.isValid?"border-red-300 focus:border-red-500 focus:ring-red-200":"border-gray-300"}`})]}),!N.isValid&&N.error&&(0,t.jsx)("div",{className:"bg-red-50 border border-red-200 rounded-md p-3",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("svg",{className:"w-4 h-4 text-red-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z"})}),(0,t.jsx)("span",{className:"text-sm text-red-700 font-medium",children:N.error})]})}),h.from&&h.to&&N.isValid&&(0,t.jsxs)("div",{className:"bg-blue-50 p-3 rounded-md space-y-1",children:[(0,t.jsxs)("div",{className:"text-xs text-blue-800",children:[(0,t.jsx)("span",{className:"font-medium",children:"From:"})," ",(0,i.default)(h.from).format("MMM D, YYYY [at] HH:mm:ss")]}),(0,t.jsxs)("div",{className:"text-xs text-blue-800",children:[(0,t.jsx)("span",{className:"font-medium",children:"To:"})," ",(0,i.default)(h.to).format("MMM D, YYYY [at] HH:mm:ss")]})]})]}),(0,t.jsx)("div",{className:"absolute bottom-4 right-4",children:(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(r.Button,{variant:"secondary",onClick:()=>{p(e),e.from&&_((0,i.default)(e.from).format("YYYY-MM-DD")),e.to&&b((0,i.default)(e.to).format("YYYY-MM-DD")),f(v(e)),x(!1)},children:"Cancel"}),(0,t.jsx)(r.Button,{onClick:()=>{h.from&&h.to&&N.isValid&&(c(h),requestIdleCallback(()=>{c(C(h))},{timeout:100}),x(!1))},disabled:!h.from||!h.to||!N.isValid,children:"Apply"})]})})]})]})})]})]})}])},797305,497650,e=>{"use strict";var t=e.i(843476),s=e.i(755151),a=e.i(872934),r=e.i(827252),l=e.i(56456),i=e.i(240647),n=e.i(152473),o=e.i(584935),c=e.i(304967),d=e.i(309426),u=e.i(350967),m=e.i(197647),x=e.i(653824),h=e.i(881073),p=e.i(404206),g=e.i(723731),f=e.i(599724),j=e.i(629569),_=e.i(560445),y=e.i(464571),b=e.i(560025),k=e.i(199133),v=e.i(592968),N=e.i(898586),T=e.i(271645),C=e.i(289793),w=e.i(952840),S=e.i(135214),q=e.i(738014),L=e.i(617885),D=e.i(500330),A=e.i(708347),M=e.i(487147),O=e.i(498610);e.i(260573);var E=e.i(785952),F=e.i(764205),$=e.i(973706),U=e.i(571303);let P=({isDateChanging:e=!1})=>(0,t.jsx)("div",{className:"flex items-center justify-center h-40",children:(0,t.jsxs)("div",{className:"flex items-center justify-center gap-3",children:[(0,t.jsx)(U.UiLoadingSpinner,{className:"size-5"}),(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("span",{className:"text-gray-600 text-sm font-medium",children:e?"Processing date selection...":"Loading chart data..."}),(0,t.jsx)("span",{className:"text-gray-400 text-xs mt-1",children:e?"This will only take a moment":"Fetching your data"})]})]})});var R=e.i(290571),V=e.i(95779),I=e.i(444755),B=e.i(673706);let W=T.default.forwardRef((e,t)=>{let{color:s,children:a,className:r}=e,l=(0,R.__rest)(e,["color","children","className"]);return T.default.createElement("p",Object.assign({ref:t,className:(0,I.tremorTwMerge)("font-semibold text-tremor-metric",s?(0,B.getColorClassNames)(s,V.colorPalette.darkText).textColor:"text-tremor-content-strong dark:text-dark-tremor-content-strong",r)},l),a)});W.displayName="Metric";var z=e.i(37091),Y=e.i(269200),K=e.i(427612),H=e.i(496020),G=e.i(64848),Z=e.i(942232),J=e.i(977572),Q=e.i(994388);let X=({accessToken:e,selectedTags:s,formatAbbreviatedNumber:a})=>{let r,l,i,n,[c,d]=(0,T.useState)({results:[],total_count:0,page:1,page_size:50,total_pages:0}),[u,_]=(0,T.useState)(!1),[y,b]=(0,T.useState)(1),k=async()=>{if(e){_(!0);try{let t=await (0,F.perUserAnalyticsCall)(e,y,50,s.length>0?s:void 0);d(t)}catch(e){console.error("Failed to fetch per-user data:",e)}finally{_(!1)}}};return(0,T.useEffect)(()=>{k()},[e,s,y]),(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)(j.Title,{children:"Per User Usage"}),(0,t.jsx)(z.Subtitle,{children:"Individual developer usage metrics"}),(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)(h.TabList,{className:"mb-6",children:[(0,t.jsx)(m.Tab,{children:"User Details"}),(0,t.jsx)(m.Tab,{children:"Usage Distribution"})]}),(0,t.jsxs)(g.TabPanels,{children:[(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsxs)(Y.Table,{children:[(0,t.jsx)(K.TableHead,{children:(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(G.TableHeaderCell,{children:"User ID"}),(0,t.jsx)(G.TableHeaderCell,{children:"User Email"}),(0,t.jsx)(G.TableHeaderCell,{children:"User Agent"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-right",children:"Success Generations"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-right",children:"Total Tokens"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-right",children:"Failed Requests"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-right",children:"Total Cost"})]})}),(0,t.jsx)(Z.TableBody,{children:c.results.slice(0,10).map((e,s)=>(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(J.TableCell,{children:(0,t.jsx)(f.Text,{className:"font-medium",children:e.user_id})}),(0,t.jsx)(J.TableCell,{children:(0,t.jsx)(f.Text,{children:e.user_email||"N/A"})}),(0,t.jsx)(J.TableCell,{children:(0,t.jsx)(f.Text,{children:e.user_agent||"Unknown"})}),(0,t.jsx)(J.TableCell,{className:"text-right",children:(0,t.jsx)(f.Text,{children:a(e.successful_requests)})}),(0,t.jsx)(J.TableCell,{className:"text-right",children:(0,t.jsx)(f.Text,{children:a(e.total_tokens)})}),(0,t.jsx)(J.TableCell,{className:"text-right",children:(0,t.jsx)(f.Text,{children:a(e.failed_requests)})}),(0,t.jsx)(J.TableCell,{className:"text-right",children:(0,t.jsxs)(f.Text,{children:["$",a(e.spend,4)]})})]},s))})]}),c.results.length>10&&(0,t.jsxs)("div",{className:"mt-4 flex justify-between items-center",children:[(0,t.jsxs)(f.Text,{className:"text-sm text-gray-500",children:["Showing 10 of ",c.total_count," results"]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(Q.Button,{size:"sm",variant:"secondary",onClick:()=>{y>1&&b(y-1)},disabled:1===y,children:"Previous"}),(0,t.jsx)(Q.Button,{size:"sm",variant:"secondary",onClick:()=>{y=c.total_pages,children:"Next"})]})]})]}),(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(j.Title,{className:"text-lg",children:"User Usage Distribution"}),(0,t.jsx)(z.Subtitle,{children:"Number of users by successful request frequency"})]}),(0,t.jsx)(o.BarChart,{data:(r=new Map,c.results.forEach(e=>{let t=e.user_agent||"Unknown";r.set(t,(r.get(t)||0)+1)}),l=Array.from(r.entries()).sort(([,e],[,t])=>t-e).slice(0,8).map(([e])=>e),i={"1-9 requests":{range:[1,9],agents:{}},"10-99 requests":{range:[10,99],agents:{}},"100-999 requests":{range:[100,999],agents:{}},"1K-9.9K requests":{range:[1e3,9999],agents:{}},"10K-99.9K requests":{range:[1e4,99999],agents:{}},"100K+ requests":{range:[1e5,1/0],agents:{}}},c.results.forEach(e=>{let t=e.successful_requests,s=e.user_agent||"Unknown";l.includes(s)&&Object.entries(i).forEach(([e,a])=>{t>=a.range[0]&&t<=a.range[1]&&(a.agents[s]||(a.agents[s]=0),a.agents[s]++)})}),Object.entries(i).map(([e,t])=>{let s={category:e};return l.forEach(e=>{s[e]=t.agents[e]||0}),s})),index:"category",categories:(n=new Map,c.results.forEach(e=>{let t=e.user_agent||"Unknown";n.set(t,(n.get(t)||0)+1)}),Array.from(n.entries()).sort(([,e],[,t])=>t-e).slice(0,8).map(([e])=>e)),colors:["blue","green","orange","red","purple","yellow","pink","indigo"],valueFormatter:e=>`${e} users`,yAxisWidth:80,showLegend:!0,stack:!0})]})]})]})]})},ee=({accessToken:e,userRole:s,dateValue:a,onDateChange:r})=>{let[l,i]=(0,T.useState)({results:[]}),[n,d]=(0,T.useState)({results:[]}),[_,y]=(0,T.useState)({results:[]}),[b,N]=(0,T.useState)({results:[]}),[C,w]=(0,T.useState)(""),[S,q]=(0,T.useState)([]),[L,D]=(0,T.useState)([]),[A,M]=(0,T.useState)(!1),[O,E]=(0,T.useState)(!1),[$,U]=(0,T.useState)(!1),[R,V]=(0,T.useState)(!1),[I,B]=(0,T.useState)(!1),Y=new Date,K=async()=>{if(e){M(!0);try{let t=await (0,F.tagDistinctCall)(e);q(t.results.map(e=>e.tag))}catch(e){console.error("Failed to fetch available tags:",e)}finally{M(!1)}}},H=async()=>{if(e){E(!0);try{let t=await (0,F.tagDauCall)(e,Y,C||void 0,L.length>0?L:void 0);i(t)}catch(e){console.error("Failed to fetch DAU data:",e)}finally{E(!1)}}},G=async()=>{if(e){U(!0);try{let t=await (0,F.tagWauCall)(e,Y,C||void 0,L.length>0?L:void 0);d(t)}catch(e){console.error("Failed to fetch WAU data:",e)}finally{U(!1)}}},Z=async()=>{if(e){V(!0);try{let t=await (0,F.tagMauCall)(e,Y,C||void 0,L.length>0?L:void 0);y(t)}catch(e){console.error("Failed to fetch MAU data:",e)}finally{V(!1)}}},J=async()=>{if(e&&a.from&&a.to){B(!0);try{let t=await (0,F.userAgentSummaryCall)(e,a.from,a.to,L.length>0?L:void 0);N(t)}catch(e){console.error("Failed to fetch user agent summary data:",e)}finally{B(!1)}}};(0,T.useEffect)(()=>{K()},[e]),(0,T.useEffect)(()=>{if(!e)return;let t=setTimeout(()=>{H(),G(),Z()},50);return()=>clearTimeout(t)},[e,C,L]),(0,T.useEffect)(()=>{if(!a.from||!a.to)return;let e=setTimeout(()=>{J()},50);return()=>clearTimeout(e)},[e,a,L]);let Q=e=>e.startsWith("User-Agent: ")?e.replace("User-Agent: ",""):e,ee=e=>Object.entries(e.reduce((e,t)=>(e[t.tag]=(e[t.tag]||0)+t.active_users,e),{})).sort(([,e],[,t])=>t-e).map(([e])=>e),et=ee(l.results).slice(0,10),es=ee(n.results).slice(0,10),ea=ee(_.results).slice(0,10),er=(()=>{let e=[],t=new Date;for(let s=6;s>=0;s--){let a=new Date(t);a.setDate(a.getDate()-s);let r={date:a.toISOString().split("T")[0]};et.forEach(e=>{r[Q(e)]=0}),e.push(r)}return l.results.forEach(t=>{let s=Q(t.tag),a=e.find(e=>e.date===t.date);a&&(a[s]=t.active_users)}),e})(),el=(()=>{let e=[];for(let t=1;t<=7;t++){let s={week:`Week ${t}`};es.forEach(e=>{s[Q(e)]=0}),e.push(s)}return n.results.forEach(t=>{let s=Q(t.tag),a=t.date.match(/Week (\d+)/);if(a){let r=`Week ${a[1]}`,l=e.find(e=>e.week===r);l&&(l[s]=t.active_users)}}),e})(),ei=(()=>{let e=[];for(let t=1;t<=7;t++){let s={month:`Month ${t}`};ea.forEach(e=>{s[Q(e)]=0}),e.push(s)}return _.results.forEach(t=>{let s=Q(t.tag),a=t.date.match(/Month (\d+)/);if(a){let r=`Month ${a[1]}`,l=e.find(e=>e.month===r);l&&(l[s]=t.active_users)}}),e})(),en=(e,t=0)=>{if(e>=1e8||e>=1e7)return(e/1e6).toFixed(t)+"M";if(e>=1e6)return(e/1e6).toFixed(t)+"M";if(e>=1e4)return(e/1e3).toFixed(t)+"K";if(e>=1e3)return(e/1e3).toFixed(t)+"K";else return e.toFixed(t)};return(0,t.jsxs)("div",{className:"space-y-6 mt-6",children:[(0,t.jsx)(c.Card,{children:(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"flex justify-between items-start",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Title,{children:"Summary by User Agent"}),(0,t.jsx)(z.Subtitle,{children:"Performance metrics for different user agents"})]}),(0,t.jsxs)("div",{className:"w-96",children:[(0,t.jsx)(f.Text,{className:"text-sm font-medium block mb-2",children:"Filter by User Agents"}),(0,t.jsx)(k.Select,{mode:"multiple",placeholder:"All User Agents",value:L,onChange:D,style:{width:"100%"},showSearch:!0,allowClear:!0,loading:A,optionFilterProp:"label",className:"rounded-md",maxTagCount:"responsive",children:S.map(e=>{let s=Q(e),a=s.length>50?`${s.substring(0,50)}...`:s;return(0,t.jsx)(k.Select.Option,{value:e,label:a,title:s,children:a},e)})})]})]}),I?(0,t.jsx)(P,{isDateChanging:!1}):(0,t.jsxs)(u.Grid,{numItems:4,className:"gap-4",children:[(b.results||[]).slice(0,4).map((e,s)=>{let a=Q(e.tag),r=a.length>15?a.substring(0,15)+"...":a;return(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(v.Tooltip,{title:a,placement:"top",children:(0,t.jsx)(j.Title,{className:"truncate",children:r})}),(0,t.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Success Requests"}),(0,t.jsx)(W,{className:"text-lg",children:en(e.successful_requests)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Total Tokens"}),(0,t.jsx)(W,{className:"text-lg",children:en(e.total_tokens)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Total Cost"}),(0,t.jsxs)(W,{className:"text-lg",children:["$",en(e.total_spend,4)]})]})]})]},s)}),Array.from({length:Math.max(0,4-(b.results||[]).length)}).map((e,s)=>(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"No Data"}),(0,t.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Success Requests"}),(0,t.jsx)(W,{className:"text-lg",children:"-"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Total Tokens"}),(0,t.jsx)(W,{className:"text-lg",children:"-"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Total Cost"}),(0,t.jsx)(W,{className:"text-lg",children:"-"})]})]})]},`empty-${s}`))]})]})}),(0,t.jsx)(c.Card,{children:(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)(h.TabList,{className:"mb-6",children:[(0,t.jsx)(m.Tab,{children:"DAU/WAU/MAU"}),(0,t.jsx)(m.Tab,{children:"Per User Usage (Last 30 Days)"})]}),(0,t.jsxs)(g.TabPanels,{children:[(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)(j.Title,{children:"DAU, WAU & MAU per Agent"}),(0,t.jsx)(z.Subtitle,{children:"Active users across different time periods"})]}),(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)(h.TabList,{className:"mb-6",children:[(0,t.jsx)(m.Tab,{children:"DAU"}),(0,t.jsx)(m.Tab,{children:"WAU"}),(0,t.jsx)(m.Tab,{children:"MAU"})]}),(0,t.jsxs)(g.TabPanels,{children:[(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)(j.Title,{className:"text-lg",children:"Daily Active Users - Last 7 Days"})}),O?(0,t.jsx)(P,{isDateChanging:!1}):(0,t.jsx)(o.BarChart,{data:er,index:"date",categories:et.map(Q),valueFormatter:e=>en(e),yAxisWidth:60,showLegend:!0,stack:!0})]}),(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)(j.Title,{className:"text-lg",children:"Weekly Active Users - Last 7 Weeks"})}),$?(0,t.jsx)(P,{isDateChanging:!1}):(0,t.jsx)(o.BarChart,{data:el,index:"week",categories:es.map(Q),valueFormatter:e=>en(e),yAxisWidth:60,showLegend:!0,stack:!0})]}),(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)(j.Title,{className:"text-lg",children:"Monthly Active Users - Last 7 Months"})}),R?(0,t.jsx)(P,{isDateChanging:!1}):(0,t.jsx)(o.BarChart,{data:ei,index:"month",categories:ea.map(Q),valueFormatter:e=>en(e),yAxisWidth:60,showLegend:!0,stack:!0})]})]})]})]}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(X,{accessToken:e,selectedTags:L,formatAbbreviatedNumber:en})})]})]})})]})};var et=e.i(617802);let es=["total_spend","total_prompt_tokens","total_completion_tokens","total_tokens","total_api_requests","total_successful_requests","total_failed_requests","total_cache_read_input_tokens","total_cache_creation_input_tokens"],ea={results:[],metadata:{total_spend:0,total_prompt_tokens:0,total_completion_tokens:0,total_tokens:0,total_api_requests:0,total_successful_requests:0,total_failed_requests:0,total_cache_read_input_tokens:0,total_cache_creation_input_tokens:0,total_pages:1,has_more:!1,page:1}};function er({fetchFn:e,args:t,enabled:s}){let[a,r]=(0,T.useState)(ea),[l,i]=(0,T.useState)(!1),[n,o]=(0,T.useState)(!1),[c,d]=(0,T.useState)({currentPage:0,totalPages:0}),[u,m]=(0,T.useState)(!1),x=(0,T.useRef)(0),h=(0,T.useRef)(!1),p=(0,T.useRef)(null),g=(0,T.useRef)(t);g.current=t;let f=JSON.stringify(t),j=(0,T.useCallback)(()=>{h.current=!0,m(!0),o(!1),null!==p.current&&(clearTimeout(p.current),p.current=null)},[]);return(0,T.useEffect)(()=>{if(!s){r(ea),i(!1),o(!1),d({currentPage:0,totalPages:0}),m(!1);return}let t=++x.current;h.current=!1,m(!1);let a=()=>x.current!==t||h.current,l=e=>new Promise(t=>{p.current=setTimeout(()=>{p.current=null,t()},e)});return(async()=>{let t=g.current;i(!0),o(!1),d({currentPage:1,totalPages:1});try{let s=[...t.slice(0,3),1,...t.slice(3)],n=await e(...s);if(a())return;r(n);let c=n.metadata?.total_pages||1;if(d({currentPage:1,totalPages:c}),c<=1)return void i(!1);i(!1),o(!0);let u=[...n.results],m={...n.metadata};for(let s=2;s<=c;s++){if(a()||(await l(300),a()))return;let i=[...t.slice(0,3),s,...t.slice(3)],n=await e(...i);if(a())return;u=[...u,...n.results],(m=function(e,t){let s={...e};for(let a of es)s[a]=(e[a]||0)+(t[a]||0);return s}(m,n.metadata)).total_pages=c,m.has_more=s{x.current++,null!==p.current&&(clearTimeout(p.current),p.current=null)}},[s,e,f]),{data:a,loading:l,isFetchingMore:n,progress:c,cancelled:u,cancel:j}}var el=e.i(23371),ei=e.i(286718);let en=({endpointData:e})=>{let s=e||{},a=T.default.useMemo(()=>Object.entries(s).map(([e,t])=>({endpoint:e,"metrics.successful_requests":t.metrics.successful_requests,"metrics.failed_requests":t.metrics.failed_requests,metrics:{successful_requests:t.metrics.successful_requests,failed_requests:t.metrics.failed_requests}})),[s]);return(0,t.jsxs)(c.Card,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)(j.Title,{children:"Success vs Failed Requests by Endpoint"}),(0,t.jsx)(ei.CustomLegend,{categories:["metrics.successful_requests","metrics.failed_requests"],colors:["green","red"]})]}),(0,t.jsx)(o.BarChart,{className:"mt-4",data:a,index:"endpoint",categories:["metrics.successful_requests","metrics.failed_requests"],colors:["green","red"],valueFormatter:e=>e.toLocaleString(),customTooltip:ei.CustomTooltip,showLegend:!1,stack:!0,yAxisWidth:60})]})};var eo=e.i(731195),ec=e.i(883966),ed=e.i(555706),eu=e.i(785183),em=e.i(93230),ex=e.i(844171),eh=(0,ec.generateCategoricalChart)({chartName:"LineChart",GraphicalChild:ed.Line,axisComponents:[{axisType:"xAxis",AxisComp:eu.XAxis},{axisType:"yAxis",AxisComp:em.YAxis}],formatAxisMap:ex.formatAxisMap}),ep=e.i(872526),eg=e.i(800494),ef=e.i(234239),ej=e.i(559559),e_=e.i(238279),ey=e.i(114887),eb=e.i(933303),ek=e.i(628781),ev=e.i(472007),eN=e.i(480731);let eT=T.default.forwardRef((e,t)=>{let{data:s=[],categories:a=[],index:r,colors:l=V.themeColorRange,valueFormatter:i=B.defaultValueFormatter,startEndOnly:n=!1,showXAxis:o=!0,showYAxis:c=!0,yAxisWidth:d=56,intervalType:u="equidistantPreserveStart",animationDuration:m=900,showAnimation:x=!1,showTooltip:h=!0,showLegend:p=!0,showGridLines:g=!0,autoMinValue:f=!1,curveType:j="linear",minValue:_,maxValue:y,connectNulls:b=!1,allowDecimals:k=!0,noDataText:v,className:N,onValueChange:C,enableLegendSlider:w=!1,customTooltip:S,rotateLabelX:q,padding:L=o||c?{left:20,right:20}:{left:0,right:0},tickGap:D=5,xAxisLabel:A,yAxisLabel:M}=e,O=(0,R.__rest)(e,["data","categories","index","colors","valueFormatter","startEndOnly","showXAxis","showYAxis","yAxisWidth","intervalType","animationDuration","showAnimation","showTooltip","showLegend","showGridLines","autoMinValue","curveType","minValue","maxValue","connectNulls","allowDecimals","noDataText","className","onValueChange","enableLegendSlider","customTooltip","rotateLabelX","padding","tickGap","xAxisLabel","yAxisLabel"]),[E,F]=(0,T.useState)(60),[$,U]=(0,T.useState)(void 0),[P,W]=(0,T.useState)(void 0),z=(0,ev.constructCategoryColors)(a,l),Y=(0,ev.getYAxisDomain)(f,_,y),K=!!C;function H(e){K&&(e===P&&!$||(0,ev.hasOnlyOneValueForThisKey)(s,e)&&$&&$.dataKey===e?(W(void 0),null==C||C(null)):(W(e),null==C||C({eventType:"category",categoryClicked:e})),U(void 0))}return T.default.createElement("div",Object.assign({ref:t,className:(0,I.tremorTwMerge)("w-full h-80",N)},O),T.default.createElement(eo.ResponsiveContainer,{className:"h-full w-full"},(null==s?void 0:s.length)?T.default.createElement(eh,{data:s,onClick:K&&(P||$)?()=>{U(void 0),W(void 0),null==C||C(null)}:void 0,margin:{bottom:A?30:void 0,left:M?20:void 0,right:M?5:void 0,top:5}},g?T.default.createElement(ep.CartesianGrid,{className:(0,I.tremorTwMerge)("stroke-1","stroke-tremor-border","dark:stroke-dark-tremor-border"),horizontal:!0,vertical:!1}):null,T.default.createElement(eu.XAxis,{padding:L,hide:!o,dataKey:r,interval:n?"preserveStartEnd":u,tick:{transform:"translate(0, 6)"},ticks:n?[s[0][r],s[s.length-1][r]]:void 0,fill:"",stroke:"",className:(0,I.tremorTwMerge)("text-tremor-label","fill-tremor-content","dark:fill-dark-tremor-content"),tickLine:!1,axisLine:!1,minTickGap:D,angle:null==q?void 0:q.angle,dy:null==q?void 0:q.verticalShift,height:null==q?void 0:q.xAxisHeight},A&&T.default.createElement(eg.Label,{position:"insideBottom",offset:-20,className:"fill-tremor-content-emphasis text-tremor-default font-medium dark:fill-dark-tremor-content-emphasis"},A)),T.default.createElement(em.YAxis,{width:d,hide:!c,axisLine:!1,tickLine:!1,type:"number",domain:Y,tick:{transform:"translate(-3, 0)"},fill:"",stroke:"",className:(0,I.tremorTwMerge)("text-tremor-label","fill-tremor-content","dark:fill-dark-tremor-content"),tickFormatter:i,allowDecimals:k},M&&T.default.createElement(eg.Label,{position:"insideLeft",style:{textAnchor:"middle"},angle:-90,offset:-15,className:"fill-tremor-content-emphasis text-tremor-default font-medium dark:fill-dark-tremor-content-emphasis"},M)),T.default.createElement(ef.Tooltip,{wrapperStyle:{outline:"none"},isAnimationActive:!1,cursor:{stroke:"#d1d5db",strokeWidth:1},content:h?({active:e,payload:t,label:s})=>S?T.default.createElement(S,{payload:null==t?void 0:t.map(e=>{var t;return Object.assign(Object.assign({},e),{color:null!=(t=z.get(e.dataKey))?t:eN.BaseColors.Gray})}),active:e,label:s}):T.default.createElement(eb.default,{active:e,payload:t,label:s,valueFormatter:i,categoryColors:z}):T.default.createElement(T.default.Fragment,null),position:{y:0}}),p?T.default.createElement(ej.Legend,{verticalAlign:"top",height:E,content:({payload:e})=>(0,ey.default)({payload:e},z,F,P,K?e=>H(e):void 0,w)}):null,a.map(e=>{var t;return T.default.createElement(ed.Line,{className:(0,I.tremorTwMerge)((0,B.getColorClassNames)(null!=(t=z.get(e))?t:eN.BaseColors.Gray,V.colorPalette.text).strokeColor),strokeOpacity:$||P&&P!==e?.3:1,activeDot:e=>{var t;let{cx:a,cy:r,stroke:l,strokeLinecap:i,strokeLinejoin:n,strokeWidth:o,dataKey:c}=e;return T.default.createElement(e_.Dot,{className:(0,I.tremorTwMerge)("stroke-tremor-background dark:stroke-dark-tremor-background",C?"cursor-pointer":"",(0,B.getColorClassNames)(null!=(t=z.get(c))?t:eN.BaseColors.Gray,V.colorPalette.text).fillColor),cx:a,cy:r,r:5,fill:"",stroke:l,strokeLinecap:i,strokeLinejoin:n,strokeWidth:o,onClick:(t,a)=>{a.stopPropagation(),K&&(e.index===(null==$?void 0:$.index)&&e.dataKey===(null==$?void 0:$.dataKey)||(0,ev.hasOnlyOneValueForThisKey)(s,e.dataKey)&&P&&P===e.dataKey?(W(void 0),U(void 0),null==C||C(null)):(W(e.dataKey),U({index:e.index,dataKey:e.dataKey}),null==C||C(Object.assign({eventType:"dot",categoryClicked:e.dataKey},e.payload))))}})},dot:t=>{var a;let{stroke:r,strokeLinecap:l,strokeLinejoin:i,strokeWidth:n,cx:o,cy:c,dataKey:d,index:u}=t;return(0,ev.hasOnlyOneValueForThisKey)(s,e)&&!($||P&&P!==e)||(null==$?void 0:$.index)===u&&(null==$?void 0:$.dataKey)===e?T.default.createElement(e_.Dot,{key:u,cx:o,cy:c,r:5,stroke:r,fill:"",strokeLinecap:l,strokeLinejoin:i,strokeWidth:n,className:(0,I.tremorTwMerge)("stroke-tremor-background dark:stroke-dark-tremor-background",C?"cursor-pointer":"",(0,B.getColorClassNames)(null!=(a=z.get(d))?a:eN.BaseColors.Gray,V.colorPalette.text).fillColor)}):T.default.createElement(T.Fragment,{key:u})},key:e,name:e,type:j,dataKey:e,stroke:"",strokeWidth:2,strokeLinejoin:"round",strokeLinecap:"round",isAnimationActive:x,animationDuration:m,connectNulls:b})}),C?a.map(e=>T.default.createElement(ed.Line,{className:(0,I.tremorTwMerge)("cursor-pointer"),strokeOpacity:0,key:e,name:e,type:j,dataKey:e,stroke:"transparent",fill:"transparent",legendType:"none",tooltipType:"none",strokeWidth:12,connectNulls:b,onClick:(e,t)=>{t.stopPropagation();let{name:s}=e;H(s)}})):null):T.default.createElement(ek.default,{noDataText:v})))});eT.displayName="LineChart";let eC=function({dailyData:e,endpointData:s}){let a=(0,T.useMemo)(()=>{var t;let s,a;return e?.results&&0!==e.results.length?(t=e.results,s=[],a=new Set,t.forEach(e=>{e.breakdown.endpoints&&Object.keys(e.breakdown.endpoints).forEach(e=>a.add(e))}),t.forEach(e=>{let t={date:new Date(e.date).toLocaleDateString("en-US",{month:"short",day:"numeric"})};a.forEach(s=>{let a=e.breakdown.endpoints?.[s];t[s]=a?.metrics.api_requests||0}),s.push(t)}),s.reverse()):[]},[e]),r=(0,T.useMemo)(()=>0===a.length?[]:Object.keys(a[0]).filter(e=>"date"!==e),[a]);return(0,t.jsxs)(c.Card,{className:"mb-6",children:[(0,t.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,t.jsx)(j.Title,{children:"Endpoint Usage Trends"})}),(0,t.jsx)(eT,{className:"h-80",data:a,index:"date",categories:r,colors:["blue","cyan","indigo","violet","purple","fuchsia","pink","rose","red","orange"].slice(0,r.length),valueFormatter:e=>e.toLocaleString(),showLegend:!0,showGridLines:!0,yAxisWidth:60,connectNulls:!0,curveType:"natural"})]})};var ew=e.i(291542),eS=e.i(309821);e.s(["Progress",()=>eS.default],497650);var eS=eS;let eq=({endpointData:e})=>{let s=Object.entries(e).map(([e,t])=>{var s,a;return{key:e,endpoint:e,successful_requests:t.metrics.successful_requests,failed_requests:t.metrics.failed_requests,api_requests:t.metrics.api_requests,total_tokens:t.metrics.total_tokens,spend:t.metrics.spend,successRate:(s=t.metrics.successful_requests,0===(a=t.metrics.api_requests)?0:s/a*100)}}),a=[{title:"Endpoint",dataIndex:"endpoint",key:"endpoint",render:e=>(0,t.jsx)("span",{className:"font-medium",children:e})},{title:"Successful / Failed",key:"requests",render:(e,s)=>{let a=s.api_requests>0?s.successful_requests/s.api_requests*100:0,r=s.api_requests>0?s.failed_requests/s.api_requests*100:0,l={"0%":"#22c55e"};return a>0&&a<100&&(l[`${a}%`]="#22c55e",l[`${a+.01}%`]="#ef4444"),l["100%"]=r>0?"#ef4444":"#22c55e",(0,t.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,t.jsx)("div",{className:"flex-1 relative",children:(0,t.jsx)(eS.default,{percent:a+r,size:"small",strokeColor:l,showInfo:!1})}),(0,t.jsxs)("div",{className:"flex items-center space-x-2 text-sm min-w-[100px]",children:[(0,t.jsx)("span",{className:"text-green-600 font-medium",children:s.successful_requests.toLocaleString()}),(0,t.jsx)("span",{className:"text-gray-400",children:"/"}),(0,t.jsx)("span",{className:"text-red-600 font-medium",children:s.failed_requests.toLocaleString()})]})]})}},{title:"Total Request",dataIndex:"api_requests",key:"api_requests",render:e=>e.toLocaleString()},{title:"Success Rate",dataIndex:"successRate",key:"successRate",render:e=>{let s=e.toFixed(2);return(0,t.jsxs)("span",{className:e>=95?"text-green-600 font-medium":e>=80?"text-yellow-600 font-medium":"text-red-600 font-medium",children:[s,"%"]})}},{title:"Total Tokens",dataIndex:"total_tokens",key:"total_tokens",render:e=>e.toLocaleString()},{title:"Spend",dataIndex:"spend",key:"spend",render:e=>`$${(0,D.formatNumberWithCommas)(e,2)}`}];return(0,t.jsx)(ew.Table,{columns:a,dataSource:s,pagination:!1})},eL=({userSpendData:e})=>{let s=(0,T.useMemo)(()=>{let t={};return e?.results&&e.results.forEach(e=>{Object.entries(e.breakdown.endpoints||{}).forEach(([e,s])=>{t[e]||(t[e]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:s.metadata||{},api_key_breakdown:{}}),t[e].metrics.spend+=s.metrics.spend,t[e].metrics.prompt_tokens+=s.metrics.prompt_tokens,t[e].metrics.completion_tokens+=s.metrics.completion_tokens,t[e].metrics.total_tokens+=s.metrics.total_tokens,t[e].metrics.api_requests+=s.metrics.api_requests,t[e].metrics.successful_requests+=s.metrics.successful_requests||0,t[e].metrics.failed_requests+=s.metrics.failed_requests||0,t[e].metrics.cache_read_input_tokens+=s.metrics.cache_read_input_tokens||0,t[e].metrics.cache_creation_input_tokens+=s.metrics.cache_creation_input_tokens||0})}),t},[e]);return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(eq,{endpointData:s}),(0,t.jsx)(en,{endpointData:s}),(0,t.jsx)(eC,{dailyData:e,endpointData:s})]})};var eD=e.i(214541),eA=e.i(413990),eM=e.i(785242);let{Text:eO}=N.Typography,eE=({value:e=[],onChange:s,disabled:a,organizationId:r,pageSize:i=20,placeholder:o="Search teams by alias..."})=>{let[c,d]=(0,T.useState)(""),[u,m]=(0,n.useDebouncedState)("",{wait:300}),{data:x,fetchNextPage:h,hasNextPage:p,isFetchingNextPage:g,isLoading:f}=(0,eM.useInfiniteTeams)(i,u||void 0,r),j=(0,T.useMemo)(()=>{if(!x?.pages)return[];let e=new Set,t=[];for(let s of x.pages)for(let a of s.teams)e.has(a.team_id)||(e.add(a.team_id),t.push(a));return t},[x]);return(0,t.jsx)(k.Select,{mode:"multiple",showSearch:!0,placeholder:o,value:e,onChange:e=>s?.(e),disabled:a,allowClear:!0,filterOption:!1,onSearch:e=>{d(e),m(e)},searchValue:c,onPopupScroll:e=>{let t=e.currentTarget;(t.scrollTop+t.clientHeight)/t.scrollHeight>=.8&&p&&!g&&h()},loading:f,notFoundContent:f?(0,t.jsx)(l.LoadingOutlined,{spin:!0}):"No teams found",style:{width:"100%"},popupRender:e=>(0,t.jsxs)(t.Fragment,{children:[e,g&&(0,t.jsx)("div",{style:{textAlign:"center",padding:8},children:(0,t.jsx)(l.LoadingOutlined,{spin:!0})})]}),children:j.map(e=>(0,t.jsxs)(k.Select.Option,{value:e.team_id,children:[(0,t.jsx)("span",{className:"font-medium",children:e.team_alias})," ",(0,t.jsxs)(eO,{type:"secondary",children:["(",e.team_id,")"]})]},e.team_id))})};var eF=e.i(193523),eF=eF,e$=e.i(916925),eU=e.i(1023),eP=e.i(149121);function eR({topModels:e,topModelsLimit:s,setTopModelsLimit:a}){let[r,l]=(0,T.useState)("table"),i=[{header:"Model",accessorKey:"key",cell:e=>e.getValue()||"-"},{header:"Spend (USD)",accessorKey:"spend",cell:e=>{let t=e.getValue();return`$${(0,D.formatNumberWithCommas)(t,2)}`}},{header:"Successful",accessorKey:"successful_requests",cell:e=>(0,t.jsx)("span",{className:"text-green-600",children:e.getValue()?.toLocaleString()||0})},{header:"Failed",accessorKey:"failed_requests",cell:e=>(0,t.jsx)("span",{className:"text-red-600",children:e.getValue()?.toLocaleString()||0})},{header:"Tokens",accessorKey:"tokens",cell:e=>e.getValue()?.toLocaleString()||0}],n=e.slice(0,s);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"mb-4 flex justify-between items-center",children:[(0,t.jsx)(b.Segmented,{options:[{label:"5",value:5},{label:"10",value:10},{label:"25",value:25},{label:"50",value:50}],value:s,onChange:e=>a(e)}),(0,t.jsxs)("div",{className:"flex space-x-2",children:[(0,t.jsx)("button",{onClick:()=>l("table"),className:`px-3 py-1 text-sm rounded-md ${"table"===r?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-700"}`,children:"Table View"}),(0,t.jsx)("button",{onClick:()=>l("chart"),className:`px-3 py-1 text-sm rounded-md ${"chart"===r?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-700"}`,children:"Chart View"})]})]}),"chart"===r?(0,t.jsx)("div",{className:"relative max-h-[600px] overflow-y-auto",children:(0,t.jsx)(o.BarChart,{className:"mt-4 cursor-pointer hover:opacity-90",style:{height:52*Math.min(n.length,s)},data:n,index:"key",categories:["spend"],colors:["cyan"],valueFormatter:e=>`$${(0,D.formatNumberWithCommas)(e,2)}`,layout:"vertical",yAxisWidth:200,tickGap:5,showLegend:!1})}):(0,t.jsx)("div",{className:"border rounded-lg overflow-hidden max-h-[600px] overflow-y-auto",children:(0,t.jsx)(eP.DataTable,{columns:i,data:n,renderSubComponent:()=>(0,t.jsx)(t.Fragment,{}),getRowCanExpand:()=>!1,isLoading:!1})})]})}let eV={tag:F.tagDailyActivityCall,team:F.teamDailyActivityCall,organization:F.organizationDailyActivityCall,customer:F.customerDailyActivityCall,agent:F.agentDailyActivityCall,user:F.userDailyActivityCall},eI=({accessToken:e,entityType:s,entityId:r,entityList:i,dateValue:n})=>{let b,k,v,{teams:N}=(0,eD.default)(),[C,w]=(0,T.useState)([]),[S,q]=(0,T.useState)(5),[L,A]=(0,T.useState)(5),[O,E]=(0,T.useState)(5),$=(0,T.useMemo)(()=>n.from?new Date(n.from):null,[n.from]),U=(0,T.useMemo)(()=>n.to?new Date(n.to):null,[n.to]),P=(0,T.useMemo)(()=>"user"===s?C.length>0?C[0]:null:C.length>0?C:null,[s,C]),R=eV[s],V=!!e&&!!$&&!!U,{data:I,isFetchingMore:B,progress:W,cancelled:Q,cancel:X}=er({fetchFn:R,args:[e,$,U,P],enabled:V}),{data:ee,isFetchingMore:et,progress:es,cancelled:ea,cancel:ei}=er({fetchFn:F.agentDailyActivityCall,args:[e,$,U,null],enabled:V&&"team"===s}),en=(0,M.processActivityData)(I,"models",N||[]),eo=(0,M.processActivityData)(I,"api_keys",N||[]),ec="team"===s?(0,M.processActivityData)(ee,"entities",N||[]):{},ed=()=>{let e={};return I.results.forEach(t=>{Object.entries(t.breakdown.providers||{}).forEach(([t,s])=>{e[t]||(e[t]={provider:t,spend:0,requests:0,successful_requests:0,failed_requests:0,tokens:0});try{e[t].spend+=s.metrics.spend,e[t].requests+=s.metrics.api_requests,e[t].successful_requests+=s.metrics.successful_requests,e[t].failed_requests+=s.metrics.failed_requests,e[t].tokens+=s.metrics.total_tokens}catch(e){console.error(`Error processing provider ${t}: ${e}`)}})}),Object.values(e).filter(e=>e.spend>0).sort((e,t)=>t.spend-e.spend)},eu=(e,t)=>{if(i){let t=i.find(t=>t.value===e);if(t)return t.label}return t?.team_alias?t.team_alias:e},em=()=>{var e;let t={};return I.results.forEach(e=>{Object.entries(e.breakdown.entities||{}).forEach(([e,s])=>{t[e]||(t[e]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{alias:eu(e,s.metadata),id:e}}),t[e].metrics.spend+=s.metrics.spend,t[e].metrics.api_requests+=s.metrics.api_requests,t[e].metrics.successful_requests+=s.metrics.successful_requests,t[e].metrics.failed_requests+=s.metrics.failed_requests,t[e].metrics.total_tokens+=s.metrics.total_tokens})}),e=Object.values(t).sort((e,t)=>t.metrics.spend-e.metrics.spend),0===C.length?e:e.filter(e=>C.includes(e.metadata.id))},ex=s.charAt(0).toUpperCase()+s.slice(1);return(0,t.jsxs)("div",{style:{width:"100%"},className:"relative",children:[B&&(0,t.jsx)(_.Alert,{banner:!0,type:"warning",className:"mb-2",message:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{children:[(0,t.jsx)(l.LoadingOutlined,{spin:!0,className:"mr-2"}),"Currently fetching spend data: fetched ",W.currentPage," / ",W.totalPages," pages. Charts will update periodically as data loads. Moving off of this page will stop and reset this. To continue using the UI in the meantime,"," ",(0,t.jsxs)("a",{href:window.location.href,target:"_blank",rel:"noopener noreferrer",children:["open a new tab ",(0,t.jsx)(a.ExportOutlined,{})]}),"."]}),(0,t.jsx)(y.Button,{type:"primary",danger:!0,onClick:X,children:"Stop"})]})}),Q&&(0,t.jsx)(_.Alert,{banner:!0,type:"info",className:"mb-2",message:(0,t.jsxs)("span",{children:["Showing partial data (",W.currentPage,"/",W.totalPages," pages loaded)"]})}),et&&"team"===s&&(0,t.jsx)(_.Alert,{banner:!0,type:"warning",className:"mb-2",message:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{children:[(0,t.jsx)(l.LoadingOutlined,{spin:!0,className:"mr-2"}),"Currently fetching agent data: fetched ",es.currentPage," / ",es.totalPages," pages. Charts will update periodically as data loads. Moving off of this page will stop and reset this. To continue using the UI in the meantime,"," ",(0,t.jsxs)("a",{href:window.location.href,target:"_blank",rel:"noopener noreferrer",children:["open a new tab ",(0,t.jsx)(a.ExportOutlined,{})]}),"."]}),(0,t.jsx)(y.Button,{type:"primary",danger:!0,onClick:ei,children:"Stop"})]})}),ea&&"team"===s&&(0,t.jsx)(_.Alert,{banner:!0,type:"info",className:"mb-2",message:(0,t.jsxs)("span",{children:["Showing partial agent data (",es.currentPage,"/",es.totalPages," pages loaded)"]})}),"team"===s&&(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(f.Text,{className:"mb-2",children:"Filter by team"}),(0,t.jsx)(eE,{value:C,onChange:w})]}),(0,t.jsx)(eF.default,{dateValue:n,entityType:s,spendData:I,showFilters:"team"!==s&&null!==i&&i.length>0,filterLabel:`Filter by ${s}`,filterPlaceholder:`Select ${s} to filter...`,selectedFilters:C,onFiltersChange:w,filterOptions:(()=>{if(i)return i})()||void 0,filterMode:"user"===s?"single":"multiple",teams:N||[]}),(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)(h.TabList,{variant:"solid",className:"mt-1",children:[(0,t.jsx)(m.Tab,{children:"Cost"}),(0,t.jsx)(m.Tab,{children:"agent"===s?"Request / Token Consumption":"Model Activity"}),"team"===s?(0,t.jsx)(m.Tab,{children:"Agent Activity"}):(0,t.jsx)(t.Fragment,{}),(0,t.jsx)(m.Tab,{children:"Key Activity"}),(0,t.jsx)(m.Tab,{children:"Endpoint Activity"})]}),(0,t.jsxs)(g.TabPanels,{children:[(0,t.jsx)(p.TabPanel,{children:(0,t.jsxs)(u.Grid,{numItems:2,className:"gap-2 w-full",children:[(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsxs)(j.Title,{children:[ex," Spend Overview"]}),(0,t.jsxs)(u.Grid,{numItems:5,className:"gap-4 mt-4",children:[(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Total Spend"}),(0,t.jsxs)(f.Text,{className:"text-2xl font-bold mt-2",children:["$",(0,D.formatNumberWithCommas)(I.metadata.total_spend,2)]})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Total Requests"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2",children:I.metadata.total_api_requests.toLocaleString()})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Successful Requests"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-green-600",children:I.metadata.total_successful_requests.toLocaleString()})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Failed Requests"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-red-600",children:I.metadata.total_failed_requests.toLocaleString()})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Total Tokens"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2",children:I.metadata.total_tokens.toLocaleString()})]})]})]})}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Daily Spend"}),(0,t.jsx)(o.BarChart,{data:[...I.results].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),index:"date",categories:["metrics.spend"],colors:["cyan"],valueFormatter:el.valueFormatterSpend,yAxisWidth:100,showLegend:!1,customTooltip:({payload:e,active:s})=>{if(!s||!e?.[0])return null;let a=e[0].payload,r=Object.keys(a.breakdown.entities||{}).length;return(0,t.jsxs)("div",{className:"bg-white p-4 shadow-lg rounded-lg border",children:[(0,t.jsx)("p",{className:"font-bold",children:a.date}),(0,t.jsxs)("p",{className:"text-cyan-500",children:["Total Spend: $",(0,D.formatNumberWithCommas)(a.metrics.spend,2)]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Total Requests: ",a.metrics.api_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Successful: ",a.metrics.successful_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Failed: ",a.metrics.failed_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Total Tokens: ",a.metrics.total_tokens]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Total ",ex,"s: ",r]}),(0,t.jsxs)("div",{className:"mt-2 border-t pt-2",children:[(0,t.jsxs)("p",{className:"font-semibold",children:["Spend by ",ex,":"]}),Object.entries(a.breakdown.entities||{}).sort(([,e],[,t])=>{let s=e.metrics.spend;return t.metrics.spend-s}).slice(0,5).map(([e,s])=>(0,t.jsxs)("p",{className:"text-sm text-gray-600",children:[eu(e,s.metadata),": $",(0,D.formatNumberWithCommas)(s.metrics.spend,2)]},e)),r>5&&(0,t.jsxs)("p",{className:"text-sm text-gray-500 italic",children:["...and ",r-5," more"]})]})]})}})]})}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsx)(c.Card,{children:(0,t.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,t.jsxs)("div",{className:"flex flex-col space-y-2",children:[(0,t.jsxs)(j.Title,{children:["Spend Per ",ex]}),(0,t.jsx)(z.Subtitle,{className:"text-xs",children:"Showing Top 5 by Spend"}),(0,t.jsxs)("div",{className:"flex items-center text-sm text-gray-500",children:[(0,t.jsxs)("span",{children:["Get Started by Tracking cost per ",ex," "]}),(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/enterprise#spend-tracking",className:"text-blue-500 hover:text-blue-700 ml-1",children:"here"})]})]}),(0,t.jsxs)(u.Grid,{numItems:2,className:"gap-6",children:[(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsx)(o.BarChart,{className:"mt-4 h-52",data:em().slice(0,5).map(e=>({...e,metadata:{...e.metadata,alias_display:e.metadata.alias&&e.metadata.alias.length>15?`${e.metadata.alias.slice(0,15)}...`:e.metadata.alias}})),index:"metadata.alias_display",categories:["metrics.spend"],colors:["cyan"],valueFormatter:el.valueFormatterSpend,layout:"vertical",showLegend:!1,yAxisWidth:150,customTooltip:({payload:e,active:s})=>{if(!s||!e?.[0])return null;let a=e[0].payload;return(0,t.jsxs)("div",{className:"bg-white p-4 shadow-lg rounded-lg border",children:[(0,t.jsx)("p",{className:"font-bold",children:a.metadata.alias}),(0,t.jsxs)("p",{className:"text-cyan-500",children:["Spend: $",(0,D.formatNumberWithCommas)(a.metrics.spend,4)]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Requests: ",a.metrics.api_requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-green-600",children:["Successful: ",a.metrics.successful_requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-red-600",children:["Failed: ",a.metrics.failed_requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Tokens: ",a.metrics.total_tokens.toLocaleString()]})]})}})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsx)("div",{className:"h-52 overflow-y-auto",children:(0,t.jsxs)(Y.Table,{children:[(0,t.jsx)(K.TableHead,{children:(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(G.TableHeaderCell,{children:ex}),(0,t.jsx)(G.TableHeaderCell,{children:"Spend"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-green-600",children:"Successful"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-red-600",children:"Failed"}),(0,t.jsx)(G.TableHeaderCell,{children:"Tokens"})]})}),(0,t.jsx)(Z.TableBody,{children:em().filter(e=>e.metrics.spend>0).map(e=>(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(J.TableCell,{children:e.metadata.alias}),(0,t.jsxs)(J.TableCell,{children:["$",(0,D.formatNumberWithCommas)(e.metrics.spend,4)]}),(0,t.jsx)(J.TableCell,{className:"text-green-600",children:e.metrics.successful_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{className:"text-red-600",children:e.metrics.failed_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{children:e.metrics.total_tokens.toLocaleString()})]},e.metadata.id))})]})})})]})]})})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Top Virtual Keys"}),(0,t.jsx)(eU.default,{topKeys:(console.log("debugTags",{spendData:I}),b={},I.results.forEach(e=>{let{breakdown:t}=e,{entities:s}=t;console.log("debugTags",{entities:s});let a=Object.keys(s).reduce((e,t)=>{let{api_key_breakdown:a}=s[t];return Object.keys(a).forEach(s=>{let r={tag:t,usage:a[s].metrics.spend};e[s]?e[s].push(r):e[s]=[r]}),e},{});console.log("debugTags",{tagDictionary:a}),Object.entries(e.breakdown.api_keys||{}).forEach(([e,t])=>{b[e]||(b[e]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{key_alias:t.metadata.key_alias,team_id:t.metadata.team_id||null,tags:a[e]||[]}},console.log("debugTags",{keySpend:b})),b[e].metrics.spend+=t.metrics.spend,b[e].metrics.prompt_tokens+=t.metrics.prompt_tokens,b[e].metrics.completion_tokens+=t.metrics.completion_tokens,b[e].metrics.total_tokens+=t.metrics.total_tokens,b[e].metrics.api_requests+=t.metrics.api_requests,b[e].metrics.successful_requests+=t.metrics.successful_requests,b[e].metrics.failed_requests+=t.metrics.failed_requests,b[e].metrics.cache_read_input_tokens+=t.metrics.cache_read_input_tokens||0,b[e].metrics.cache_creation_input_tokens+=t.metrics.cache_creation_input_tokens||0})}),Object.entries(b).map(([e,t])=>({api_key:e,key_alias:t.metadata.key_alias||"-",tags:t.metadata.tags||"-",spend:t.metrics.spend})).sort((e,t)=>t.spend-e.spend).slice(0,S)),teams:null,showTags:"tag"===s,topKeysLimit:S,setTopKeysLimit:q})]})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"agent"===s?"Top Agents":"Top Models"}),(0,t.jsx)(eR,{topModels:(k={},I.results.forEach(e=>{Object.entries(e.breakdown.models||{}).forEach(([e,t])=>{k[e]||(k[e]={spend:0,requests:0,successful_requests:0,failed_requests:0,tokens:0});try{k[e].spend+=t.metrics.spend}catch(s){console.error(`Error adding spend for ${e}: ${s}, got metrics: ${JSON.stringify(t)}`)}k[e].requests+=t.metrics.api_requests,k[e].successful_requests+=t.metrics.successful_requests,k[e].failed_requests+=t.metrics.failed_requests,k[e].tokens+=t.metrics.total_tokens})}),Object.entries(k).map(([e,t])=>({key:e,...t})).sort((e,t)=>t.spend-e.spend).slice(0,L)),topModelsLimit:L,setTopModelsLimit:A})]})}),"team"===s&&(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Top Agents Driving Spend"}),(0,t.jsx)(eR,{topModels:(v={},ee.results.forEach(e=>{Object.entries(e.breakdown.entities||{}).forEach(([e,t])=>{v[e]||(v[e]={spend:0,requests:0,successful_requests:0,failed_requests:0,tokens:0,agent_name:t.metadata?.agent_name||e}),v[e].spend+=t.metrics.spend,v[e].requests+=t.metrics.api_requests,v[e].successful_requests+=t.metrics.successful_requests,v[e].failed_requests+=t.metrics.failed_requests,v[e].tokens+=t.metrics.total_tokens})}),Object.entries(v).map(([e,t])=>({key:t.agent_name,...t})).sort((e,t)=>t.spend-e.spend).slice(0,O)),topModelsLimit:O,setTopModelsLimit:E})]})}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsx)(c.Card,{children:(0,t.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,t.jsx)(j.Title,{children:"Provider Usage"}),(0,t.jsxs)(u.Grid,{numItems:2,children:[(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsx)(eA.DonutChart,{className:"mt-4 h-40",data:ed(),index:"provider",category:"spend",valueFormatter:e=>`$${(0,D.formatNumberWithCommas)(e,2)}`,colors:["cyan","blue","indigo","violet","purple"]})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(Y.Table,{children:[(0,t.jsx)(K.TableHead,{children:(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(G.TableHeaderCell,{children:"Provider"}),(0,t.jsx)(G.TableHeaderCell,{children:"Spend"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-green-600",children:"Successful"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-red-600",children:"Failed"}),(0,t.jsx)(G.TableHeaderCell,{children:"Tokens"})]})}),(0,t.jsx)(Z.TableBody,{children:ed().map(e=>(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(J.TableCell,{children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[e.provider&&(0,t.jsx)("img",{src:(0,e$.getProviderLogoAndName)(e.provider).logo,alt:`${e.provider} logo`,className:"w-4 h-4",onError:t=>{let s=t.target,a=s.parentElement;if(a){let t=document.createElement("div");t.className="w-4 h-4 rounded-full bg-gray-200 flex items-center justify-center text-xs",t.textContent=e.provider?.charAt(0)||"-",a.replaceChild(t,s)}}}),(0,t.jsx)("span",{children:e.provider})]})}),(0,t.jsxs)(J.TableCell,{children:["$",(0,D.formatNumberWithCommas)(e.spend,2)]}),(0,t.jsx)(J.TableCell,{className:"text-green-600",children:e.successful_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{className:"text-red-600",children:e.failed_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{children:e.tokens.toLocaleString()})]},e.provider))})]})})]})]})})})]})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:en,hidePromptCachingMetrics:"agent"===s})}),"team"===s?(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:ec})}):(0,t.jsx)(t.Fragment,{}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:eo,hidePromptCachingMetrics:"agent"===s})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(eL,{userSpendData:I})})]})]})]})};var eB=e.i(793130),eW=e.i(418371);let ez=({loading:e,isDateChanging:s,providerSpend:a})=>{let[l,i]=(0,T.useState)(!1),[n,o]=(0,T.useState)(!1),m=a.filter(e=>e.provider?.toLowerCase()==="unknown"?n:!!l||e.spend>0);return(0,t.jsxs)(c.Card,{className:"h-full",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(j.Title,{children:"Spend by Provider"}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("label",{className:"text-sm text-gray-700",children:"Show Zero Spend"}),(0,t.jsx)(eB.Switch,{checked:l,onChange:i})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("label",{className:"text-sm text-gray-700",children:"Show Unknown"}),(0,t.jsx)(v.Tooltip,{title:"Requests that failed to route to a provider",children:(0,t.jsx)(r.InfoCircleOutlined,{className:"text-gray-400 hover:text-gray-600"})})]}),(0,t.jsx)(eB.Switch,{checked:n,onChange:o})]})]})]}),e?(0,t.jsx)(P,{isDateChanging:s}):(0,t.jsxs)(u.Grid,{numItems:2,children:[(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsx)(eA.DonutChart,{className:"mt-4 h-40",data:m,index:"provider",category:"spend",valueFormatter:e=>`$${(0,D.formatNumberWithCommas)(e,2)}`,colors:["cyan"]})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(Y.Table,{children:[(0,t.jsx)(K.TableHead,{children:(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(G.TableHeaderCell,{children:"Provider"}),(0,t.jsx)(G.TableHeaderCell,{children:"Spend"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-green-600",children:"Successful"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-red-600",children:"Failed"}),(0,t.jsx)(G.TableHeaderCell,{children:"Tokens"})]})}),(0,t.jsx)(Z.TableBody,{children:m.map(e=>(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(J.TableCell,{children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[e.provider&&(0,t.jsx)(eW.ProviderLogo,{provider:e.provider,className:"w-4 h-4"}),(0,t.jsx)("span",{children:e.provider})]})}),(0,t.jsxs)(J.TableCell,{children:["$",(0,D.formatNumberWithCommas)(e.spend,2)]}),(0,t.jsx)(J.TableCell,{className:"text-green-600",children:e.successful_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{className:"text-red-600",children:e.failed_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{children:e.tokens.toLocaleString()})]},e.provider))})]})})]})]})};var eY=e.i(311451),eK=e.i(482725),eH=e.i(918789);let{TextArea:eG}=eY.Input,eZ={get_usage_data:"📊",get_team_usage_data:"👥",get_tag_usage_data:"🏷️"},eJ=({step:e})=>{let s=eZ[e.tool_name]||"🔧",a=e.arguments,r=a.start_date&&a.end_date?`${a.start_date} → ${a.end_date}`:"",l=a.team_ids||a.tags||a.user_id||"";return(0,t.jsxs)("div",{className:"flex items-start gap-2 px-3 py-2 rounded-lg bg-gray-100 border border-gray-200 text-xs",children:[(0,t.jsx)("span",{className:"flex-shrink-0 mt-0.5",children:"running"===e.status?(0,t.jsx)(eK.Spin,{size:"small"}):"error"===e.status?(0,t.jsx)("span",{className:"text-red-500",children:"✗"}):(0,t.jsx)("span",{className:"text-green-600",children:"✓"})}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"font-medium text-gray-700",children:[s," ",e.tool_label]}),r&&(0,t.jsx)("div",{className:"text-gray-500 mt-0.5",children:r}),l&&(0,t.jsxs)("div",{className:"text-gray-500 mt-0.5",children:["Filter: ",l]}),"error"===e.status&&e.error&&(0,t.jsx)("div",{className:"text-red-600 mt-0.5",children:e.error})]})]})},eQ=({content:e})=>(0,t.jsx)(eH.default,{components:{p:({children:e})=>(0,t.jsx)("p",{className:"mb-2 last:mb-0",children:e}),strong:({children:e})=>(0,t.jsx)("strong",{className:"font-semibold",children:e}),ul:({children:e})=>(0,t.jsx)("ul",{className:"list-disc pl-4 mb-2 space-y-0.5",children:e}),ol:({children:e})=>(0,t.jsx)("ol",{className:"list-decimal pl-4 mb-2 space-y-0.5",children:e}),li:({children:e})=>(0,t.jsx)("li",{children:e}),h1:({children:e})=>(0,t.jsx)("h4",{className:"font-semibold text-sm mt-2 mb-1",children:e}),h2:({children:e})=>(0,t.jsx)("h4",{className:"font-semibold text-sm mt-2 mb-1",children:e}),h3:({children:e})=>(0,t.jsx)("h4",{className:"font-semibold text-sm mt-2 mb-1",children:e}),code:({children:e,className:s})=>s?.includes("language-")?(0,t.jsx)("pre",{className:"bg-gray-100 rounded p-2 my-1 overflow-x-auto text-xs",children:(0,t.jsx)("code",{children:e})}):(0,t.jsx)("code",{className:"px-1 py-0.5 rounded bg-gray-100 text-xs font-mono",children:e}),table:({children:e})=>(0,t.jsx)("div",{className:"overflow-x-auto my-2",children:(0,t.jsx)("table",{className:"text-xs border-collapse w-full",children:e})}),th:({children:e})=>(0,t.jsx)("th",{className:"border border-gray-200 px-2 py-1 bg-gray-50 font-medium text-left",children:e}),td:({children:e})=>(0,t.jsx)("td",{className:"border border-gray-200 px-2 py-1",children:e})},children:e}),eX=({open:e,onClose:s,accessToken:a})=>{let[r,l]=(0,T.useState)([]),[i,n]=(0,T.useState)(""),[o,c]=(0,T.useState)(!1),[d,u]=(0,T.useState)(void 0),[m,x]=(0,T.useState)([]),[h,p]=(0,T.useState)(!1),[g,f]=(0,T.useState)(""),[j,_]=(0,T.useState)(null),[b,v]=(0,T.useState)([]),N=(0,T.useRef)(null),C=(0,T.useRef)(null);(0,T.useEffect)(()=>{e&&0===m.length&&w()},[e]),(0,T.useEffect)(()=>{"function"==typeof N.current?.scrollIntoView&&N.current.scrollIntoView({behavior:"smooth"})},[r,g,b,j]);let w=async()=>{if(a){p(!0);try{let e=await (0,F.modelHubCall)(a);if(e?.data?.length>0){let t=e.data.map(e=>e.model_group).sort();x(t)}}catch(e){console.error("Failed to load models:",e)}finally{p(!1)}}},S=async()=>{if(!a||!i.trim()||o)return;let e=[...r,{role:"user",content:i.trim()}];l(e),n(""),c(!0),f(""),_(null),v([]);let t=new AbortController;C.current=t;let s="",u=[];try{await (0,F.usageAiChatStream)(a,e.slice(-20).map(e=>({role:e.role,content:e.content})),d||"",e=>{_(null),s+=e,f(s)},()=>{_(null),v([]),l(e=>[...e,{role:"assistant",content:s,toolCalls:u.length>0?[...u]:void 0}]),f("")},e=>{_(null),v([]),l(t=>[...t,{role:"assistant",content:`Error: ${e}`}]),f("")},e=>{_(e)},e=>{let t=u.findIndex(t=>t.tool_name===e.tool_name);t>=0?u[t]={...e}:u.push({...e}),v([...u])},t.signal)}catch(s){if(s?.name==="AbortError"||t.signal.aborted)return;let e=s?.message||"Failed to get response. Please try again.";l(t=>[...t,{role:"assistant",content:`Error: ${e}`}]),f("")}finally{c(!1),C.current=null}};return(0,t.jsxs)("div",{"data-testid":"usage-ai-chat-panel",className:`fixed top-0 right-0 h-full bg-white border-l border-gray-200 shadow-2xl z-50 flex flex-col transition-transform duration-300 ease-in-out ${e?"translate-x-0":"translate-x-full"}`,style:{width:420},children:[(0,t.jsxs)("div",{className:"px-5 pt-5 pb-3 border-b border-gray-100 flex-shrink-0",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("svg",{className:"w-5 h-5 text-blue-600",viewBox:"0 0 16 16",fill:"currentColor",children:(0,t.jsx)("path",{d:"M8 1l1.5 3.5L13 6l-3.5 1.5L8 11 6.5 7.5 3 6l3.5-1.5L8 1zm4 7l.75 1.75L14.5 10.5l-1.75.75L12 13l-.75-1.75L9.5 10.5l1.75-.75L12 8zM4 9l.75 1.75L6.5 11.5l-1.75.75L4 14l-.75-1.75L1.5 11.5l1.75-.75L4 9z"})}),(0,t.jsx)("h3",{className:"text-base font-semibold text-gray-900",children:"Ask AI"})]}),(0,t.jsx)("button",{onClick:()=>{C.current&&C.current.abort(),s()},className:"text-gray-400 hover:text-gray-600 transition-colors p-1 rounded-md hover:bg-gray-100",children:(0,t.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,t.jsx)("p",{className:"text-xs text-gray-500",children:"Ask about your spend, models, keys, and trends"})]}),(0,t.jsx)("div",{className:"px-5 py-3 border-b border-gray-100 flex-shrink-0",children:(0,t.jsx)(k.Select,{placeholder:"Select a model (optional, defaults to gpt-4o-mini)",value:d,onChange:e=>u(e),loading:h,showSearch:!0,allowClear:!0,size:"small",className:"w-full",options:m.map(e=>({label:e,value:e})),filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase())})}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 space-y-3 bg-gray-50",children:[0===r.length&&!g&&!o&&(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center h-full text-gray-400",children:[(0,t.jsx)("svg",{className:"w-8 h-8 mb-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M8 10h.01M12 10h.01M16 10h.01M9 16H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-5l-5 5v-5z"})}),(0,t.jsx)("p",{className:"text-sm font-medium",children:"Ask a question about your usage"}),(0,t.jsx)("p",{className:"text-xs mt-1",children:'e.g. "Which model costs me the most?"'})]}),r.map((e,s)=>(0,t.jsx)("div",{children:"user"===e.role?(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)("div",{className:"max-w-[88%] rounded-xl px-3.5 py-2 text-sm leading-relaxed bg-blue-600 text-white",children:e.content})}):(0,t.jsxs)("div",{className:"space-y-2",children:[e.toolCalls&&e.toolCalls.length>0&&(0,t.jsx)("div",{className:"space-y-1.5",children:e.toolCalls.map((e,s)=>(0,t.jsx)(eJ,{step:e},s))}),(0,t.jsx)("div",{className:"max-w-[95%] rounded-xl px-3.5 py-2.5 text-sm leading-relaxed bg-white border border-gray-200 text-gray-800",children:(0,t.jsx)(eQ,{content:e.content})})]})},s)),o&&b.length>0&&(0,t.jsx)("div",{className:"space-y-1.5",children:b.map((e,s)=>(0,t.jsx)(eJ,{step:e},s))}),o&&!g&&(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 text-xs text-gray-500",children:[(0,t.jsx)(eK.Spin,{size:"small"}),(0,t.jsx)("span",{className:"italic",children:j||"Thinking..."})]}),g&&(0,t.jsx)("div",{className:"max-w-[95%] rounded-xl px-3.5 py-2.5 text-sm leading-relaxed bg-white border border-gray-200 text-gray-800",children:(0,t.jsx)(eQ,{content:g})}),(0,t.jsx)("div",{ref:N})]}),(0,t.jsxs)("div",{className:"px-4 py-3 border-t border-gray-200 bg-white flex-shrink-0",children:[(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(eG,{value:i,onChange:e=>n(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),S())},placeholder:"Ask about your usage...",autoSize:{minRows:1,maxRows:3},className:"flex-1",disabled:o}),(0,t.jsx)(y.Button,{type:"primary",onClick:S,disabled:!i.trim()||o,loading:o,children:"Send"})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center mt-2",children:[(0,t.jsx)("button",{onClick:()=>{l([]),f(""),v([]),_(null)},className:"text-xs text-gray-400 hover:text-gray-600 transition-colors",disabled:0===r.length,children:"Clear chat"}),(0,t.jsx)("span",{className:"text-xs text-gray-400",children:"Enter to send"})]})]})]})};var e0=e.i(299251),e1=e.i(153702),e2=e.i(160818),e5=e.i(777579),e4=e.i(983561);e.i(247167);var e6=e.i(931067);let e3={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M922.9 701.9H327.4l29.9-60.9 496.8-.9c16.8 0 31.2-12 34.2-28.6l68.8-385.1c1.8-10.1-.9-20.5-7.5-28.4a34.99 34.99 0 00-26.6-12.5l-632-2.1-5.4-25.4c-3.4-16.2-18-28-34.6-28H96.5a35.3 35.3 0 100 70.6h125.9L246 312.8l58.1 281.3-74.8 122.1a34.96 34.96 0 00-3 36.8c6 11.9 18.1 19.4 31.5 19.4h62.8a102.43 102.43 0 00-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7h161.1a102.43 102.43 0 00-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7H923c19.4 0 35.3-15.8 35.3-35.3a35.42 35.42 0 00-35.4-35.2zM305.7 253l575.8 1.9-56.4 315.8-452.3.8L305.7 253zm96.9 612.7c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 01-31.6 31.6zm325.1 0c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 01-31.6 31.6z"}}]},name:"shopping-cart",theme:"outlined"};var e7=e.i(9583),e9=T.forwardRef(function(e,t){return T.createElement(e7.default,(0,e6.default)({},e,{ref:t,icon:e3}))}),e8=e.i(232164),te=e.i(645526),tt=e.i(771674),ts=e.i(906579);let ta=[{value:"global",label:"Global Usage",showForAdmin:"Global Usage",showForNonAdmin:"Your Usage",description:"View usage across all resources",descriptionForAdmin:"View usage across all resources",descriptionForNonAdmin:"View your usage",icon:(0,t.jsx)(e2.GlobalOutlined,{style:{fontSize:"16px"}})},{value:"my-usage",label:"Your Usage",description:"View your own usage",icon:(0,t.jsx)(tt.UserOutlined,{style:{fontSize:"16px"}}),adminOnly:!0},{value:"organization",label:"Organization Usage",showForAdmin:"Organization Usage",showForNonAdmin:"Your Organization Usage",description:"View organization-level usage",descriptionForAdmin:"View usage across all organizations",descriptionForNonAdmin:"View your organization's usage",icon:(0,t.jsx)(e0.BankOutlined,{style:{fontSize:"16px"}})},{value:"team",label:"Team Usage",description:"View usage by team",icon:(0,t.jsx)(te.TeamOutlined,{style:{fontSize:"16px"}})},{value:"customer",label:"Customer Usage",description:"View usage by customer accounts",icon:(0,t.jsx)(e9,{style:{fontSize:"16px"}}),adminOnly:!0},{value:"tag",label:"Tag Usage",description:"View usage grouped by tags",icon:(0,t.jsx)(e8.TagsOutlined,{style:{fontSize:"16px"}}),adminOnly:!0},{value:"agent",label:"Agent Usage (A2A)",description:"View usage by AI agents",icon:(0,t.jsx)(e4.RobotOutlined,{style:{fontSize:"16px"}}),adminOnly:!0},{value:"user",label:"User Usage",description:"View usage by individual users",icon:(0,t.jsx)(tt.UserOutlined,{style:{fontSize:"16px"}}),adminOnly:!0},{value:"user-agent-activity",label:"User Agent Activity",description:"View detailed user agent activity logs",icon:(0,t.jsx)(e5.LineChartOutlined,{style:{fontSize:"16px"}}),adminOnly:!0}],tr=({value:e,onChange:s,isAdmin:a,canViewTagUsage:r=!1,title:l="Usage View",description:i="Select the usage data you want to view","data-id":n})=>{let o=ta.filter(e=>"tag"===e.value&&!!r||!e.adminOnly||!!a).map(e=>{let t=e.label,s=e.description;return e.showForAdmin&&e.showForNonAdmin&&(t=a?e.showForAdmin:e.showForNonAdmin),e.descriptionForAdmin&&e.descriptionForNonAdmin&&(s=a?e.descriptionForAdmin:e.descriptionForNonAdmin),{value:e.value,label:t,description:s,icon:e.icon,badgeText:e.badgeText}});return(0,t.jsx)("div",{className:"w-full","data-id":n,children:(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-start gap-4",children:[(0,t.jsxs)("div",{className:"flex items-stretch gap-2 min-w-0",children:[(0,t.jsx)("div",{className:"flex-shrink-0 flex items-center",children:(0,t.jsx)(e1.BarChartOutlined,{style:{fontSize:"32px"}})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-gray-900 mb-0.5 leading-tight",children:l}),(0,t.jsx)("p",{className:"text-xs text-gray-600 leading-tight",children:i})]})]}),(0,t.jsx)("div",{className:"flex-shrink-0",children:(0,t.jsx)(k.Select,{value:e,onChange:s,className:"w-54 sm:w-64 md:w-72",size:"large",options:o.map(e=>({value:e.value,label:e.label})),optionRender:e=>{let s=o.find(t=>t.value===e.value);return s?(0,t.jsxs)("div",{className:"flex items-center gap-2 py-1",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-0.5",children:s.icon}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-gray-900",children:s.label}),(0,t.jsx)("div",{className:"text-xs text-gray-600 mt-0.5",children:s.description})]}),s.badgeText&&(0,t.jsx)("div",{className:"items-center",children:(0,t.jsx)(ts.Badge,{color:"blue",count:s.badgeText})})]}):e.label},labelRender:e=>{let s=o.find(t=>t.value===e.value);return s?(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{children:s.icon}),(0,t.jsx)("span",{className:"text-sm",children:s.label})]}):e.label}})})]})})};e.s(["default",0,({teams:e,organizations:U})=>{let R,{accessToken:V,userRole:I,userId:B,premiumUser:W}=(0,S.default)(),[z,Y]=(0,T.useState)(null),[K,H]=(0,T.useState)(!1),[G,Z]=(0,T.useState)(!1),[J,Q]=(0,T.useState)(!1),X=(0,T.useMemo)(()=>new Date(Date.now()-6048e5),[]),es=(0,T.useMemo)(()=>new Date,[]),[ea,ei]=(0,T.useState)({from:X,to:es}),[en,eo]=(0,T.useState)([]),{data:ec=[]}=(0,w.useCustomers)(),{data:ed}=(0,C.useAgents)(),{data:eu}=(0,q.useCurrentUser)();console.log(`currentUser: ${JSON.stringify(eu)}`),console.log(`currentUser max budget: ${eu?.max_budget}`);let em=A.all_admin_roles.includes(I||""),ex=em||A.internalUserRoles.includes(I||""),[eh,ep]=(0,T.useState)(""),[eg,ef]=(0,n.useDebouncedState)("",{wait:300}),{data:ej,fetchNextPage:e_,hasNextPage:ey,isFetchingNextPage:eb,isLoading:ek}=(0,L.useInfiniteUsers)(50,eg||void 0),ev=(0,T.useMemo)(()=>{if(!ej?.pages)return[];let e=new Set,t=[];for(let s of ej.pages)for(let a of s.users)e.has(a.user_id)||(e.add(a.user_id),t.push({value:a.user_id,label:a.user_alias?`${a.user_alias} (${a.user_id})`:a.user_email?`${a.user_email} (${a.user_id})`:a.user_id}));return t},[ej]),[eN,eT]=(0,T.useState)(em?null:B||null),[eC,ew]=(0,T.useState)("groups"),[eS,eq]=(0,T.useState)(!1),[eD,eA]=(0,T.useState)(!1),[eM,eO]=(0,T.useState)(!1),[eE,eF]=(0,T.useState)("global"),[e$,eP]=(0,T.useState)(!0),[eR,eV]=(0,T.useState)(5),[eB,eW]=(0,T.useState)(5),[eY,eK]=(0,T.useState)(!1);(0,T.useEffect)(()=>{!em&&B&&eT(B)},[em,B]);let eH="my-usage"!==eE&&em?eN:B||null,eG=(0,T.useMemo)(()=>ea.from?new Date(ea.from):null,[ea.from]),eZ=(0,T.useMemo)(()=>ea.to?new Date(ea.to):null,[ea.to]);(0,T.useEffect)(()=>{if(!V)return;let e=!1;return(async()=>{try{let t=await (0,F.tagListCall)(V,eG,eZ);if(e)return;eo(Object.values(t).map(e=>({label:e.name,value:e.name})))}catch(t){e||console.error("Failed to fetch tag list",t)}})(),()=>{e=!0}},[V,eG,eZ]);let eJ=(0,T.useRef)(0);(0,T.useEffect)(()=>{if(!V||!eG||!eZ)return;let e=++eJ.current;Z(!0),H(!1),Y(null),(0,F.userDailyActivityAggregatedCall)(V,eG,eZ,eH).then(t=>{eJ.current===e&&(Y(t),Z(!1),Q(!1))}).catch(()=>{eJ.current===e&&(H(!0),Z(!1))})},[V,eG,eZ,eH]);let eQ=er({fetchFn:F.userDailyActivityCall,args:[V,eG,eZ,eH],enabled:K&&!!V&&!!eG&&!!eZ}),e0=(0,T.useMemo)(()=>z||(K?eQ.data:{results:[],metadata:{}}),[z,K,eQ.data]),e1=G||eQ.loading;(0,T.useEffect)(()=>{K&&!eQ.loading&&eQ.data.results.length>0&&Q(!1)},[K,eQ.loading,eQ.data.results.length]);let e2=(0,T.useCallback)(e=>{Q(!0),ei(e)},[]),e5=e0.metadata?.total_spend||0,e4=(0,T.useMemo)(()=>{let e={};return e0.results.forEach(t=>{Object.entries(t.breakdown.models||{}).forEach(([t,s])=>{e[t]||(e[t]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{},api_key_breakdown:{}}),e[t].metrics.spend+=s.metrics.spend,e[t].metrics.prompt_tokens+=s.metrics.prompt_tokens,e[t].metrics.completion_tokens+=s.metrics.completion_tokens,e[t].metrics.total_tokens+=s.metrics.total_tokens,e[t].metrics.api_requests+=s.metrics.api_requests,e[t].metrics.successful_requests+=s.metrics.successful_requests||0,e[t].metrics.failed_requests+=s.metrics.failed_requests||0,e[t].metrics.cache_read_input_tokens+=s.metrics.cache_read_input_tokens||0,e[t].metrics.cache_creation_input_tokens+=s.metrics.cache_creation_input_tokens||0})}),Object.entries(e).map(([e,t])=>({key:e,spend:t.metrics.spend,requests:t.metrics.api_requests,successful_requests:t.metrics.successful_requests,failed_requests:t.metrics.failed_requests,tokens:t.metrics.total_tokens})).sort((e,t)=>t.spend-e.spend).slice(0,eB)},[e0.results,eB]),e6=(0,T.useMemo)(()=>{let e={};return e0.results.forEach(t=>{Object.entries(t.breakdown.model_groups||{}).forEach(([t,s])=>{e[t]||(e[t]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{},api_key_breakdown:{}}),e[t].metrics.spend+=s.metrics.spend,e[t].metrics.prompt_tokens+=s.metrics.prompt_tokens,e[t].metrics.completion_tokens+=s.metrics.completion_tokens,e[t].metrics.total_tokens+=s.metrics.total_tokens,e[t].metrics.api_requests+=s.metrics.api_requests,e[t].metrics.successful_requests+=s.metrics.successful_requests||0,e[t].metrics.failed_requests+=s.metrics.failed_requests||0,e[t].metrics.cache_read_input_tokens+=s.metrics.cache_read_input_tokens||0,e[t].metrics.cache_creation_input_tokens+=s.metrics.cache_creation_input_tokens||0})}),Object.entries(e).map(([e,t])=>({key:e,spend:t.metrics.spend,requests:t.metrics.api_requests,successful_requests:t.metrics.successful_requests,failed_requests:t.metrics.failed_requests,tokens:t.metrics.total_tokens})).sort((e,t)=>t.spend-e.spend).slice(0,eB)},[e0.results,eB]),e3=(0,T.useMemo)(()=>{let e={};return e0.results.forEach(t=>{Object.entries(t.breakdown.providers||{}).forEach(([t,s])=>{e[t]||(e[t]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{},api_key_breakdown:{}}),e[t].metrics.spend+=s.metrics.spend,e[t].metrics.prompt_tokens+=s.metrics.prompt_tokens,e[t].metrics.completion_tokens+=s.metrics.completion_tokens,e[t].metrics.total_tokens+=s.metrics.total_tokens,e[t].metrics.api_requests+=s.metrics.api_requests,e[t].metrics.successful_requests+=s.metrics.successful_requests||0,e[t].metrics.failed_requests+=s.metrics.failed_requests||0,e[t].metrics.cache_read_input_tokens+=s.metrics.cache_read_input_tokens||0,e[t].metrics.cache_creation_input_tokens+=s.metrics.cache_creation_input_tokens||0})}),Object.entries(e).map(([e,t])=>({provider:e,spend:t.metrics.spend,requests:t.metrics.api_requests,successful_requests:t.metrics.successful_requests,failed_requests:t.metrics.failed_requests,tokens:t.metrics.total_tokens}))},[e0.results]),e7=(0,T.useMemo)(()=>{let e={};return e0.results.forEach(t=>{Object.entries(t.breakdown.api_keys||{}).forEach(([t,s])=>{e[t]||(e[t]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{key_alias:s.metadata.key_alias,team_id:null,tags:s.metadata.tags||[]}}),e[t].metrics.spend+=s.metrics.spend,e[t].metrics.prompt_tokens+=s.metrics.prompt_tokens,e[t].metrics.completion_tokens+=s.metrics.completion_tokens,e[t].metrics.total_tokens+=s.metrics.total_tokens,e[t].metrics.api_requests+=s.metrics.api_requests,e[t].metrics.successful_requests+=s.metrics.successful_requests,e[t].metrics.failed_requests+=s.metrics.failed_requests,e[t].metrics.cache_read_input_tokens+=s.metrics.cache_read_input_tokens||0,e[t].metrics.cache_creation_input_tokens+=s.metrics.cache_creation_input_tokens||0})}),Object.entries(e).map(([e,t])=>({api_key:e,key_alias:t.metadata.key_alias||"-",tags:t.metadata.tags||[],spend:t.metrics.spend})).sort((e,t)=>t.spend-e.spend).slice(0,eR)},[e0.results,eR]),e9=(0,T.useMemo)(()=>[...e0.results].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),[e0.results]),e8=(0,T.useMemo)(()=>(0,M.processActivityData)(e0,"models",e),[e0,e]),te=(0,T.useMemo)(()=>(0,M.processActivityData)(e0,"api_keys",e),[e0,e]),tt=(0,T.useMemo)(()=>(0,M.processActivityData)(e0,"mcp_servers",e),[e0,e]);return(0,t.jsxs)("div",{style:{width:"100%"},className:"p-8 relative",children:[(0,t.jsx)("div",{className:"flex items-end justify-between gap-6 mb-6",children:(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsxs)("div",{className:"flex items-end justify-between gap-6 mb-4 w-full",children:[(0,t.jsx)(tr,{value:eE,onChange:e=>eF(e),isAdmin:em,canViewTagUsage:ex}),(0,t.jsx)($.default,{value:ea,onValueChange:e2})]}),eQ.isFetchingMore&&(0,t.jsx)(_.Alert,{banner:!0,type:"warning",className:"mb-2",message:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{children:[(0,t.jsx)(l.LoadingOutlined,{spin:!0,className:"mr-2"}),"Currently fetching spend data: fetched ",eQ.progress.currentPage," /"," ",eQ.progress.totalPages," pages. Charts will update periodically as data loads. Moving off of this page will stop and reset this. To continue using the UI in the meantime,"," ",(0,t.jsxs)("a",{href:window.location.href,target:"_blank",rel:"noopener noreferrer",children:["open a new tab ",(0,t.jsx)(a.ExportOutlined,{})]}),"."]}),(0,t.jsx)(y.Button,{type:"primary",danger:!0,onClick:eQ.cancel,children:"Stop"})]})}),eQ.cancelled&&(0,t.jsx)(_.Alert,{banner:!0,type:"info",className:"mb-2",message:(0,t.jsxs)("span",{children:["Showing partial data (",eQ.progress.currentPage,"/",eQ.progress.totalPages," ","pages loaded)"]})}),("global"===eE||"my-usage"===eE)&&(0,t.jsxs)(t.Fragment,{children:[em&&"global"===eE&&(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(f.Text,{className:"mb-2",children:"Filter by user"}),(0,t.jsx)(k.Select,{showSearch:!0,allowClear:!0,style:{width:"100%"},placeholder:"Select user to filter...",value:eN,onChange:e=>eT(e??null),filterOption:!1,onSearch:e=>{ep(e),ef(e)},searchValue:eh,onPopupScroll:e=>{let t=e.currentTarget;(t.scrollTop+t.clientHeight)/t.scrollHeight>=.8&&ey&&!eb&&e_()},loading:ek,notFoundContent:ek?(0,t.jsx)(l.LoadingOutlined,{spin:!0}):"No users found",options:ev,popupRender:e=>(0,t.jsxs)(t.Fragment,{children:[e,eb&&(0,t.jsx)("div",{style:{textAlign:"center",padding:8},children:(0,t.jsx)(l.LoadingOutlined,{spin:!0})})]})})]}),(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsxs)(h.TabList,{variant:"solid",className:"mt-1",children:[(0,t.jsx)(m.Tab,{children:"Cost"}),(0,t.jsx)(m.Tab,{children:"Model Activity"}),(0,t.jsx)(m.Tab,{children:"Key Activity"}),(0,t.jsx)(m.Tab,{children:"MCP Server Activity"}),(0,t.jsx)(m.Tab,{children:"Endpoint Activity"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(y.Button,{onClick:()=>eO(!0),icon:(0,t.jsx)("svg",{className:"w-4 h-4",viewBox:"0 0 16 16",fill:"currentColor",children:(0,t.jsx)("path",{d:"M8 1l1.5 3.5L13 6l-3.5 1.5L8 11 6.5 7.5 3 6l3.5-1.5L8 1zm4 7l.75 1.75L14.5 10.5l-1.75.75L12 13l-.75-1.75L9.5 10.5l1.75-.75L12 8zM4 9l.75 1.75L6.5 11.5l-1.75.75L4 14l-.75-1.75L1.5 11.5l1.75-.75L4 9z"})}),children:"Ask AI"}),(0,t.jsx)(y.Button,{onClick:()=>eA(!0),icon:(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})}),children:"Export Data"})]})]}),(0,t.jsxs)(g.TabPanels,{children:[(0,t.jsx)(p.TabPanel,{children:(0,t.jsxs)(u.Grid,{numItems:2,className:"gap-2 w-full",children:[(0,t.jsxs)(d.Col,{numColSpan:2,children:[(0,t.jsx)("div",{className:"flex items-center gap-4 mt-2 mb-2",children:(0,t.jsxs)(f.Text,{className:"text-tremor-default text-tremor-content dark:text-dark-tremor-content text-lg",children:["Project Spend"," ",ea.from&&ea.to&&(0,t.jsxs)(t.Fragment,{children:[ea.from.toLocaleDateString("en-US",{month:"short",day:"numeric",year:ea.from.getFullYear()!==ea.to.getFullYear()?"numeric":void 0})," - ",ea.to.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})]})]})}),(0,t.jsx)(et.default,{userSpend:e5,selectedTeam:null,userMaxBudget:eu?.max_budget||null})]}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Usage Metrics"}),(0,t.jsxs)(u.Grid,{numItems:5,className:"gap-4 mt-4",children:[(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Total Requests"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2",children:e0.metadata?.total_api_requests?.toLocaleString()||0})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Successful Requests"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-green-600",children:e0.metadata?.total_successful_requests?.toLocaleString()||0})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(j.Title,{children:"Failed Requests"}),(0,t.jsx)(v.Tooltip,{title:"Includes requests that failed to route to a provider, tool usage failures, and other request errors where the provider cannot be determined.",children:(0,t.jsx)(r.InfoCircleOutlined,{className:"text-gray-400 hover:text-gray-600"})})]}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-red-600",children:e0.metadata?.total_failed_requests?.toLocaleString()||0})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Average Cost per Request"}),(0,t.jsxs)(f.Text,{className:"text-2xl font-bold mt-2",children:["$",(0,D.formatNumberWithCommas)((e5||0)/(e0.metadata?.total_api_requests||1),4)]})]}),(0,t.jsxs)(c.Card,{className:"cursor-pointer hover:bg-gray-50 transition-colors",onClick:()=>eK(!eY),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(j.Title,{children:"Total Tokens"}),eY?(0,t.jsx)(s.DownOutlined,{className:"text-gray-400 text-xs"}):(0,t.jsx)(i.RightOutlined,{className:"text-gray-400 text-xs"})]}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2",children:e0.metadata?.total_tokens?.toLocaleString()||0})]})]}),eY&&(0,t.jsxs)(u.Grid,{numItems:4,className:"gap-4 mt-4",children:[(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Input Tokens"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-blue-600",children:(e0.metadata?.total_prompt_tokens||0).toLocaleString()})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Output Tokens"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-cyan-600",children:e0.metadata?.total_completion_tokens?.toLocaleString()||0})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Cache Read Tokens"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-green-600",children:e0.metadata?.total_cache_read_input_tokens?.toLocaleString()||0})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Cache Write Tokens"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-purple-600",children:e0.metadata?.total_cache_creation_input_tokens?.toLocaleString()||0})]})]})]})}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Daily Spend"}),e1?(0,t.jsx)(P,{isDateChanging:J}):(0,t.jsx)(o.BarChart,{data:e9,index:"date",categories:["metrics.spend"],colors:["cyan"],valueFormatter:el.valueFormatterSpend,yAxisWidth:100,showLegend:!1,customTooltip:({payload:e,active:s})=>{if(!s||!e?.[0])return null;let a=e[0].payload;return(0,t.jsxs)("div",{className:"bg-white p-4 shadow-lg rounded-lg border",children:[(0,t.jsx)("p",{className:"font-bold",children:a.date}),(0,t.jsxs)("p",{className:"text-cyan-500",children:["Spend: $",(0,D.formatNumberWithCommas)(a.metrics.spend,2)]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Requests: ",a.metrics.api_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Successful: ",a.metrics.successful_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Failed: ",a.metrics.failed_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Tokens: ",a.metrics.total_tokens]})]})}})]})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(c.Card,{className:"h-full",children:[(0,t.jsx)(j.Title,{children:"Top Virtual Keys"}),(0,t.jsx)(eU.default,{topKeys:e7,teams:null,topKeysLimit:eR,setTopKeysLimit:eV})]})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(c.Card,{className:"h-full",children:[(0,t.jsx)(j.Title,{children:"groups"===eC?"Top Public Model Names":"Top Litellm Models"}),(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(b.Segmented,{options:[{label:"5",value:5},{label:"10",value:10},{label:"25",value:25},{label:"50",value:50}],value:eB,onChange:e=>eW(e)}),(0,t.jsxs)("div",{className:"flex bg-gray-100 rounded-lg p-1",children:[(0,t.jsx)("button",{className:`px-3 py-1 text-sm rounded-md transition-colors ${"groups"===eC?"bg-white shadow-sm text-gray-900":"text-gray-600 hover:text-gray-900"}`,onClick:()=>ew("groups"),children:"Public Model Name"}),(0,t.jsx)("button",{className:`px-3 py-1 text-sm rounded-md transition-colors ${"individual"===eC?"bg-white shadow-sm text-gray-900":"text-gray-600 hover:text-gray-900"}`,onClick:()=>ew("individual"),children:"Litellm Model Name"})]})]}),e1?(0,t.jsx)(P,{isDateChanging:J}):(0,t.jsx)("div",{className:"relative max-h-[600px] overflow-y-auto",children:(R="groups"===eC?e6:e4,(0,t.jsx)(o.BarChart,{className:"mt-4",style:{height:52*Math.min(R.length,eB)},data:R,index:"key",categories:["spend"],colors:["cyan"],valueFormatter:el.valueFormatterSpend,layout:"vertical",yAxisWidth:200,showLegend:!1,customTooltip:({payload:e,active:s})=>{if(!s||!e?.[0])return null;let a=e[0].payload;return(0,t.jsxs)("div",{className:"bg-white p-4 shadow-lg rounded-lg border",children:[(0,t.jsx)("p",{className:"font-bold",children:a.key}),(0,t.jsxs)("p",{className:"text-cyan-500",children:["Spend: $",(0,D.formatNumberWithCommas)(a.spend,2)]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Total Requests: ",a.requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-green-600",children:["Successful: ",a.successful_requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-red-600",children:["Failed: ",a.failed_requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Tokens: ",a.tokens.toLocaleString()]})]})}}))})]})}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsx)(ez,{loading:e1,isDateChanging:J,providerSpend:e3})})]})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:e8})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:te})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:tt})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(eL,{userSpendData:e0})})]})]})]}),"organization"===eE&&(0,t.jsx)(eI,{accessToken:V,entityType:"organization",userID:B,userRole:I,dateValue:ea,entityList:U?.map(e=>({label:e.organization_alias,value:e.organization_id}))||null,premiumUser:W}),"team"===eE&&(0,t.jsx)(eI,{accessToken:V,entityType:"team",userID:B,userRole:I,entityList:e?.map(e=>({label:e.team_alias,value:e.team_id}))||null,premiumUser:W,dateValue:ea}),"customer"===eE&&(0,t.jsx)(eI,{accessToken:V,entityType:"customer",userID:B,userRole:I,entityList:ec?.map(e=>({label:e.alias||e.user_id,value:e.user_id}))||null,premiumUser:W,dateValue:ea}),"tag"===eE&&(0,t.jsxs)(t.Fragment,{children:[e$&&(0,t.jsx)(_.Alert,{banner:!0,type:"info",message:"Reusable credentials are automatically tracked as tags",description:(0,t.jsxs)(N.Typography.Text,{children:["When a reusable credential is used, it will appear as a tag prefixed with"," ",(0,t.jsx)(N.Typography.Text,{code:!0,children:"Credential: "}),"in this view."]}),closable:!0,onClose:()=>eP(!1),className:"mb-5"}),(0,t.jsx)(eI,{accessToken:V,entityType:"tag",userID:B,userRole:I,entityList:en,premiumUser:W,dateValue:ea})]}),"agent"===eE&&(0,t.jsx)(eI,{accessToken:V,entityType:"agent",userID:B,userRole:I,entityList:ed?.agents?.map(e=>({label:e.agent_name,value:e.agent_id}))||null,premiumUser:W,dateValue:ea}),"user"===eE&&(0,t.jsx)(eI,{accessToken:V,entityType:"user",userID:B,userRole:I,entityList:ev.length>0?ev:null,premiumUser:W,dateValue:ea}),"user-agent-activity"===eE&&(0,t.jsx)(ee,{accessToken:V,userRole:I,dateValue:ea})]})}),(0,t.jsx)(O.default,{isOpen:eS,onClose:()=>eq(!1),accessToken:V}),(0,t.jsx)(E.default,{isOpen:eD,onClose:()=>eA(!1),entityType:"team",spendData:{results:e0.results,metadata:e0.metadata},dateRange:ea,selectedFilters:[],customTitle:"Export Usage Data"}),(0,t.jsx)(eX,{open:eM,onClose:()=>eO(!1),accessToken:V})]})}],797305)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/09op-t36a-zxm.js b/litellm/proxy/_experimental/out/_next/static/chunks/02c9zh-2~xg8x.js similarity index 63% rename from litellm/proxy/_experimental/out/_next/static/chunks/09op-t36a-zxm.js rename to litellm/proxy/_experimental/out/_next/static/chunks/02c9zh-2~xg8x.js index 70fa265dcdd..14371a58481 100644 --- a/litellm/proxy/_experimental/out/_next/static/chunks/09op-t36a-zxm.js +++ b/litellm/proxy/_experimental/out/_next/static/chunks/02c9zh-2~xg8x.js @@ -1,8 +1,8 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,596239,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"}}]},name:"link",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["LinkOutlined",0,l],596239)},599724,936325,e=>{"use strict";var t=e.i(95779),r=e.i(444755),a=e.i(673706),s=e.i(271645);let l=s.default.forwardRef((e,l)=>{let{color:o,className:i,children:n}=e;return s.default.createElement("p",{ref:l,className:(0,r.tremorTwMerge)("text-tremor-default",o?(0,a.getColorClassNames)(o,t.colorPalette.text).textColor:(0,r.tremorTwMerge)("text-tremor-content","dark:text-dark-tremor-content"),i)},n)});l.displayName="Text",e.s(["default",0,l],936325),e.s(["Text",0,l],599724)},994388,e=>{"use strict";var t=e.i(290571),r=e.i(829087),a=e.i(271645);let s=["preEnter","entering","entered","preExit","exiting","exited","unmounted"],l=e=>({_s:e,status:s[e],isEnter:e<3,isMounted:6!==e,isResolved:2===e||e>4}),o=e=>e?6:5,i=(e,t,r,a,s)=>{clearTimeout(a.current);let o=l(e);t(o),r.current=o,s&&s({current:o})};var n=e.i(480731),d=e.i(444755),c=e.i(673706);let u=e=>{var r=(0,t.__rest)(e,[]);return a.default.createElement("svg",Object.assign({},r,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"}),a.default.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}),a.default.createElement("path",{d:"M18.364 5.636L16.95 7.05A7 7 0 1 0 19 12h2a9 9 0 1 1-2.636-6.364z"}))};var m=e.i(95779);let g={xs:{height:"h-4",width:"w-4"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-6",width:"w-6"},xl:{height:"h-6",width:"w-6"}},h=(e,t)=>{switch(e){case"primary":return{textColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",hoverTextColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,c.getColorClassNames)(t,m.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",hoverBgColor:t?(0,c.getColorClassNames)(t,m.colorPalette.darkBackground).hoverBgColor:"hover:bg-tremor-brand-emphasis dark:hover:bg-dark-tremor-brand-emphasis",borderColor:t?(0,c.getColorClassNames)(t,m.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",hoverBorderColor:t?(0,c.getColorClassNames)(t,m.colorPalette.darkBorder).hoverBorderColor:"hover:border-tremor-brand-emphasis dark:hover:border-dark-tremor-brand-emphasis"};case"secondary":return{textColor:t?(0,c.getColorClassNames)(t,m.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,m.colorPalette.text).textColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,hoverBgColor:t?(0,d.tremorTwMerge)((0,c.getColorClassNames)(t,m.colorPalette.background).hoverBgColor,"hover:bg-opacity-20 dark:hover:bg-opacity-20"):"hover:bg-tremor-brand-faint dark:hover:bg-dark-tremor-brand-faint",borderColor:t?(0,c.getColorClassNames)(t,m.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand"};case"light":return{textColor:t?(0,c.getColorClassNames)(t,m.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,m.colorPalette.darkText).hoverTextColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,borderColor:"",hoverBorderColor:""}}},f=(0,c.makeClassName)("Button"),b=({loading:e,iconSize:t,iconPosition:r,Icon:s,needMargin:l,transitionStatus:o})=>{let i=l?r===n.HorizontalPositions.Left?(0,d.tremorTwMerge)("-ml-1","mr-1.5"):(0,d.tremorTwMerge)("-mr-1","ml-1.5"):"",c=(0,d.tremorTwMerge)("w-0 h-0"),m={default:c,entering:c,entered:t,exiting:t,exited:c};return e?a.default.createElement(u,{className:(0,d.tremorTwMerge)(f("icon"),"animate-spin shrink-0",i,m.default,m[o]),style:{transition:"width 150ms"}}):a.default.createElement(s,{className:(0,d.tremorTwMerge)(f("icon"),"shrink-0",t,i)})},x=a.default.forwardRef((e,s)=>{let{icon:u,iconPosition:m=n.HorizontalPositions.Left,size:x=n.Sizes.SM,color:p,variant:v="primary",disabled:C,loading:w=!1,loadingText:k,children:y,tooltip:j,className:N}=e,M=(0,t.__rest)(e,["icon","iconPosition","size","color","variant","disabled","loading","loadingText","children","tooltip","className"]),O=w||C,T=void 0!==u||w,E=w&&k,R=!(!y&&!E),$=(0,d.tremorTwMerge)(g[x].height,g[x].width),S="light"!==v?(0,d.tremorTwMerge)("rounded-tremor-default border","shadow-tremor-input","dark:shadow-dark-tremor-input"):"",z=h(v,p),P=("light"!==v?{xs:{paddingX:"px-2.5",paddingY:"py-1.5",fontSize:"text-xs"},sm:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-sm"},md:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-md"},lg:{paddingX:"px-4",paddingY:"py-2.5",fontSize:"text-lg"},xl:{paddingX:"px-4",paddingY:"py-3",fontSize:"text-xl"}}:{xs:{paddingX:"",paddingY:"",fontSize:"text-xs"},sm:{paddingX:"",paddingY:"",fontSize:"text-sm"},md:{paddingX:"",paddingY:"",fontSize:"text-md"},lg:{paddingX:"",paddingY:"",fontSize:"text-lg"},xl:{paddingX:"",paddingY:"",fontSize:"text-xl"}})[x],{tooltipProps:I,getReferenceProps:A}=(0,r.useTooltip)(300),[B,L]=(({enter:e=!0,exit:t=!0,preEnter:r,preExit:s,timeout:n,initialEntered:d,mountOnEnter:c,unmountOnExit:u,onStateChange:m}={})=>{let[g,h]=(0,a.useState)(()=>l(d?2:o(c))),f=(0,a.useRef)(g),b=(0,a.useRef)(0),[x,p]="object"==typeof n?[n.enter,n.exit]:[n,n],v=(0,a.useCallback)(()=>{let e=((e,t)=>{switch(e){case 1:case 0:return 2;case 4:case 3:return o(t)}})(f.current._s,u);e&&i(e,h,f,b,m)},[m,u]);return[g,(0,a.useCallback)(a=>{let l=e=>{switch(i(e,h,f,b,m),e){case 1:x>=0&&(b.current=((...e)=>setTimeout(...e))(v,x));break;case 4:p>=0&&(b.current=((...e)=>setTimeout(...e))(v,p));break;case 0:case 3:b.current=((...e)=>setTimeout(...e))(()=>{isNaN(document.body.offsetTop)||l(e+1)},0)}},n=f.current.isEnter;"boolean"!=typeof a&&(a=!n),a?n||l(e?+!r:2):n&&l(t?s?3:4:o(u))},[v,m,e,t,r,s,x,p,u]),v]})({timeout:50});return(0,a.useEffect)(()=>{L(w)},[w]),a.default.createElement("button",Object.assign({ref:(0,c.mergeRefs)([s,I.refs.setReference]),className:(0,d.tremorTwMerge)(f("root"),"shrink-0 inline-flex justify-center items-center group font-medium outline-none",S,P.paddingX,P.paddingY,P.fontSize,z.textColor,z.bgColor,z.borderColor,z.hoverBorderColor,O?"opacity-50 cursor-not-allowed":(0,d.tremorTwMerge)(h(v,p).hoverTextColor,h(v,p).hoverBgColor,h(v,p).hoverBorderColor),N),disabled:O},A,M),a.default.createElement(r.default,Object.assign({text:j},I)),T&&m!==n.HorizontalPositions.Right?a.default.createElement(b,{loading:w,iconSize:$,iconPosition:m,Icon:u,transitionStatus:B.status,needMargin:R}):null,E||y?a.default.createElement("span",{className:(0,d.tremorTwMerge)(f("text"),"text-tremor-default whitespace-nowrap")},E?k:y):null,T&&m===n.HorizontalPositions.Right?a.default.createElement(b,{loading:w,iconSize:$,iconPosition:m,Icon:u,transitionStatus:B.status,needMargin:R}):null)});x.displayName="Button",e.s(["Button",0,x],994388)},304967,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(480731),s=e.i(95779),l=e.i(444755),o=e.i(673706);let i=(0,o.makeClassName)("Card"),n=r.default.forwardRef((e,n)=>{let{decoration:d="",decorationColor:c,children:u,className:m}=e,g=(0,t.__rest)(e,["decoration","decorationColor","children","className"]);return r.default.createElement("div",Object.assign({ref:n,className:(0,l.tremorTwMerge)(i("root"),"relative w-full text-left ring-1 rounded-tremor-default p-6","bg-tremor-background ring-tremor-ring shadow-tremor-card","dark:bg-dark-tremor-background dark:ring-dark-tremor-ring dark:shadow-dark-tremor-card",c?(0,o.getColorClassNames)(c,s.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",(e=>{if(!e)return"";switch(e){case a.HorizontalPositions.Left:return"border-l-4";case a.VerticalPositions.Top:return"border-t-4";case a.HorizontalPositions.Right:return"border-r-4";case a.VerticalPositions.Bottom:return"border-b-4";default:return""}})(d),m)},g),u)});n.displayName="Card",e.s(["Card",0,n],304967)},629569,e=>{"use strict";var t=e.i(290571),r=e.i(95779),a=e.i(444755),s=e.i(673706),l=e.i(271645);let o=l.default.forwardRef((e,o)=>{let{color:i,children:n,className:d}=e,c=(0,t.__rest)(e,["color","children","className"]);return l.default.createElement("p",Object.assign({ref:o,className:(0,a.tremorTwMerge)("font-medium text-tremor-title",i?(0,s.getColorClassNames)(i,r.colorPalette.darkText).textColor:"text-tremor-content-strong dark:text-dark-tremor-content-strong",d)},c),n)});o.displayName="Title",e.s(["Title",0,o],629569)},653496,e=>{"use strict";var t=e.i(721369);e.s(["Tabs",()=>t.default])},447566,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 000 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"}}]},name:"arrow-left",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["ArrowLeftOutlined",0,l],447566)},492030,e=>{"use strict";var t=e.i(121229);e.s(["CheckOutlined",()=>t.default])},530212,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 19l-7-7m0 0l7-7m-7 7h18"}))});e.s(["ArrowLeftIcon",0,r],530212)},211576,e=>{"use strict";var t=e.i(131757);e.s(["Col",()=>t.default])},954616,e=>{"use strict";var t=e.i(271645),r=e.i(114272),a=e.i(540143),s=e.i(915823),l=e.i(619273),o=class extends s.Subscribable{#e;#t=void 0;#r;#a;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#s()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),(0,l.shallowEqualObjects)(this.options,t)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#r,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,l.hashKey)(t.mutationKey)!==(0,l.hashKey)(this.options.mutationKey)?this.reset():this.#r?.state.status==="pending"&&this.#r.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#r?.removeObserver(this)}onMutationUpdate(e){this.#s(),this.#l(e)}getCurrentResult(){return this.#t}reset(){this.#r?.removeObserver(this),this.#r=void 0,this.#s(),this.#l()}mutate(e,t){return this.#a=t,this.#r?.removeObserver(this),this.#r=this.#e.getMutationCache().build(this.#e,this.options),this.#r.addObserver(this),this.#r.execute(e)}#s(){let e=this.#r?.state??(0,r.getDefaultState)();this.#t={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#l(e){a.notifyManager.batch(()=>{if(this.#a&&this.hasListeners()){let t=this.#t.variables,r=this.#t.context,a={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type==="success"){try{this.#a.onSuccess?.(e.data,t,r,a)}catch(e){Promise.reject(e)}try{this.#a.onSettled?.(e.data,null,t,r,a)}catch(e){Promise.reject(e)}}else if(e?.type==="error"){try{this.#a.onError?.(e.error,t,r,a)}catch(e){Promise.reject(e)}try{this.#a.onSettled?.(void 0,e.error,t,r,a)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},i=e.i(912598);e.s(["useMutation",0,function(e,r){let s=(0,i.useQueryClient)(r),[n]=t.useState(()=>new o(s,e));t.useEffect(()=>{n.setOptions(e)},[n,e]);let d=t.useSyncExternalStore(t.useCallback(e=>n.subscribe(a.notifyManager.batchCalls(e)),[n]),()=>n.getCurrentResult(),()=>n.getCurrentResult()),c=t.useCallback((e,t)=>{n.mutate(e,t).catch(l.noop)},[n]);if(d.error&&(0,l.shouldThrowError)(n.options.throwOnError,[d.error]))throw d.error;return{...d,mutate:c,mutateAsync:d.mutate}}],954616)},646563,e=>{"use strict";var t=e.i(959013);e.s(["PlusOutlined",()=>t.default])},178654,621192,e=>{"use strict";let t=e.i(211576).Col;e.s(["Col",0,t],178654);let r=e.i(264042).Row;e.s(["Row",0,r],621192)},149121,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(152990),s=e.i(682830),l=e.i(269200),o=e.i(427612),i=e.i(64848),n=e.i(942232),d=e.i(496020),c=e.i(977572);e.s(["DataTable",0,function({data:e=[],columns:u,onRowClick:m,renderSubComponent:g,renderChildRows:h,getRowCanExpand:f,isLoading:b=!1,loadingMessage:x="🚅 Loading logs...",noDataMessage:p="No logs found",enableSorting:v=!1}){let C=!!(g||h)&&!!f,[w,k]=(0,r.useState)([]),y=(0,a.useReactTable)({data:e,columns:u,...v&&{state:{sorting:w},onSortingChange:k,enableSortingRemoval:!1},...C&&{getRowCanExpand:f},getRowId:(e,t)=>e?.request_id??String(t),getCoreRowModel:(0,s.getCoreRowModel)(),...v&&{getSortedRowModel:(0,s.getSortedRowModel)()},...C&&{getExpandedRowModel:(0,s.getExpandedRowModel)()}});return(0,t.jsx)("div",{className:"rounded-lg custom-border overflow-x-auto w-full max-w-full box-border",children:(0,t.jsxs)(l.Table,{className:"[&_td]:py-0.5 [&_th]:py-1 table-fixed w-full box-border",style:{minWidth:"400px"},children:[(0,t.jsx)(o.TableHead,{children:y.getHeaderGroups().map(e=>(0,t.jsx)(d.TableRow,{children:e.headers.map(e=>{let r=v&&e.column.getCanSort(),s=e.column.getIsSorted();return(0,t.jsx)(i.TableHeaderCell,{className:`py-1 h-8 ${r?"cursor-pointer select-none hover:bg-gray-50":""}`,onClick:r?e.column.getToggleSortingHandler():void 0,children:e.isPlaceholder?null:(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.flexRender)(e.column.columnDef.header,e.getContext()),r&&(0,t.jsx)("span",{className:"text-gray-400",children:"asc"===s?"↑":"desc"===s?"↓":"⇅"})]})},e.id)})},e.id))}),(0,t.jsx)(n.TableBody,{children:b?(0,t.jsx)(d.TableRow,{children:(0,t.jsx)(c.TableCell,{colSpan:u.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:x})})})}):y.getRowModel().rows.length>0?y.getRowModel().rows.map(e=>(0,t.jsxs)(r.Fragment,{children:[(0,t.jsx)(d.TableRow,{className:`h-8 ${m?"cursor-pointer hover:bg-gray-50":""}`,onClick:()=>m?.(e.original),children:e.getVisibleCells().map(e=>(0,t.jsx)(c.TableCell,{className:"py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap",children:(0,a.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))}),C&&e.getIsExpanded()&&h&&h({row:e}),C&&e.getIsExpanded()&&g&&!h&&(0,t.jsx)(d.TableRow,{children:(0,t.jsx)(c.TableCell,{colSpan:e.getVisibleCells().length,className:"p-0",children:(0,t.jsx)("div",{className:"w-full max-w-full overflow-hidden box-border",children:g({row:e})})})})]},e.id)):(0,t.jsx)(d.TableRow,{children:(0,t.jsx)(c.TableCell,{colSpan:u.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:p})})})})})]})})}])},362024,e=>{"use strict";var t=e.i(988122);e.s(["Collapse",()=>t.default])},245704,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"check-circle",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["CheckCircleOutlined",0,l],245704)},149192,e=>{"use strict";var t=e.i(864517);e.s(["CloseOutlined",()=>t.default])},434166,e=>{"use strict";e.s(["getSecureItem",0,function(e){try{let t=window.sessionStorage.getItem(e);if(null===t)return null;return decodeURIComponent(atob(t).split("").map(e=>"%"+e.charCodeAt(0).toString(16).padStart(2,"0")).join(""))}catch{return null}},"setSecureItem",0,function(e,t){window.sessionStorage.setItem(e,btoa(encodeURIComponent(t).replace(/%([0-9A-F]{2})/g,(e,t)=>String.fromCharCode(parseInt(t,16)))))}])},611052,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(212931),s=e.i(311451),l=e.i(790848),o=e.i(888259),i=e.i(438957);e.i(247167);var n=e.i(931067);let d={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 10-56 0z"}}]},name:"lock",theme:"outlined"};var c=e.i(9583),u=r.forwardRef(function(e,t){return r.createElement(c.default,(0,n.default)({},e,{ref:t,icon:d}))}),m=e.i(492030),g=e.i(266537),h=e.i(447566),f=e.i(149192),b=e.i(596239);e.s(["ByokCredentialModal",0,({server:e,open:n,onClose:d,onSuccess:c,accessToken:x})=>{let[p,v]=(0,r.useState)(1),[C,w]=(0,r.useState)(""),[k,y]=(0,r.useState)(!0),[j,N]=(0,r.useState)(!1),M=e.alias||e.server_name||"Service",O=M.charAt(0).toUpperCase(),T=()=>{v(1),w(""),y(!0),N(!1),d()},E=async()=>{if(!C.trim())return void o.default.error("Please enter your API key");N(!0);try{let t=await fetch(`/v1/mcp/server/${e.server_id}/user-credential`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${x}`},body:JSON.stringify({credential:C.trim(),save:k})});if(!t.ok){let e=await t.json();throw Error(e?.detail?.error||"Failed to save credential")}o.default.success(`Connected to ${M}`),c(e.server_id),T()}catch(e){o.default.error(e.message||"Failed to connect")}finally{N(!1)}};return(0,t.jsx)(a.Modal,{open:n,onCancel:T,footer:null,width:480,closeIcon:null,className:"byok-modal",children:(0,t.jsxs)("div",{className:"relative p-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[2===p?(0,t.jsxs)("button",{onClick:()=>v(1),className:"flex items-center gap-1 text-gray-500 hover:text-gray-800 text-sm",children:[(0,t.jsx)(h.ArrowLeftOutlined,{})," Back"]}):(0,t.jsx)("div",{}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("div",{className:`w-2 h-2 rounded-full ${1===p?"bg-blue-500":"bg-gray-300"}`}),(0,t.jsx)("div",{className:`w-2 h-2 rounded-full ${2===p?"bg-blue-500":"bg-gray-300"}`})]}),(0,t.jsx)("button",{onClick:T,className:"text-gray-400 hover:text-gray-600",children:(0,t.jsx)(f.CloseOutlined,{})})]}),1===p?(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsxs)("div",{className:"flex items-center justify-center gap-3 mb-6",children:[(0,t.jsx)("div",{className:"w-14 h-14 rounded-xl bg-gradient-to-br from-teal-400 to-cyan-600 flex items-center justify-center text-white font-bold text-xl shadow",children:"L"}),(0,t.jsx)(g.ArrowRightOutlined,{className:"text-gray-400 text-lg"}),(0,t.jsx)("div",{className:"w-14 h-14 rounded-xl bg-gradient-to-br from-blue-600 to-indigo-800 flex items-center justify-center text-white font-bold text-xl shadow",children:O})]}),(0,t.jsxs)("h2",{className:"text-2xl font-bold text-gray-900 mb-2",children:["Connect ",M]}),(0,t.jsxs)("p",{className:"text-gray-500 mb-6",children:["LiteLLM needs access to ",M," to complete your request."]}),(0,t.jsx)("div",{className:"bg-gray-50 rounded-xl p-4 text-left mb-4",children:(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("div",{className:"mt-0.5",children:(0,t.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",className:"text-gray-500",children:[(0,t.jsx)("rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",stroke:"currentColor",strokeWidth:"2"}),(0,t.jsx)("path",{d:"M8 4v16M16 4v16",stroke:"currentColor",strokeWidth:"2"})]})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-semibold text-gray-800 mb-1",children:"How it works"}),(0,t.jsxs)("p",{className:"text-gray-500 text-sm",children:["LiteLLM acts as a secure bridge. Your requests are routed through our MCP client directly to"," ",M,"'s API."]})]})]})}),e.byok_description&&e.byok_description.length>0&&(0,t.jsxs)("div",{className:"bg-gray-50 rounded-xl p-4 text-left mb-6",children:[(0,t.jsxs)("p",{className:"text-xs font-semibold text-gray-500 uppercase tracking-widest mb-3 flex items-center gap-2",children:[(0,t.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",className:"text-green-500",children:[(0,t.jsx)("path",{d:"M12 2L12 22M2 12L22 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"}),(0,t.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2"})]}),"Requested Access"]}),(0,t.jsx)("ul",{className:"space-y-2",children:e.byok_description.map((e,r)=>(0,t.jsxs)("li",{className:"flex items-center gap-2 text-sm text-gray-700",children:[(0,t.jsx)(m.CheckOutlined,{className:"text-green-500 flex-shrink-0"}),e]},r))})]}),(0,t.jsxs)("button",{onClick:()=>v(2),className:"w-full bg-gray-900 hover:bg-gray-700 text-white font-medium py-3 px-6 rounded-xl flex items-center justify-center gap-2 transition-colors",children:["Continue to Authentication ",(0,t.jsx)(g.ArrowRightOutlined,{})]}),(0,t.jsx)("button",{onClick:T,className:"mt-3 w-full text-gray-400 hover:text-gray-600 text-sm py-2",children:"Cancel"})]}):(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"w-12 h-12 rounded-full bg-blue-50 flex items-center justify-center mb-4",children:(0,t.jsx)(i.KeyOutlined,{className:"text-blue-400 text-xl"})}),(0,t.jsx)("h2",{className:"text-2xl font-bold text-gray-900 mb-2",children:"Provide API Key"}),(0,t.jsxs)("p",{className:"text-gray-500 mb-6",children:["Enter your ",M," API key to authorize this connection."]}),(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsxs)("label",{className:"block text-sm font-semibold text-gray-800 mb-2",children:[M," API Key"]}),(0,t.jsx)(s.Input.Password,{placeholder:"Enter your API key",value:C,onChange:e=>w(e.target.value),size:"large",className:"rounded-lg"}),e.byok_api_key_help_url&&(0,t.jsxs)("a",{href:e.byok_api_key_help_url,target:"_blank",rel:"noopener noreferrer",className:"text-blue-500 hover:text-blue-700 text-sm mt-2 flex items-center gap-1",children:["Where do I find my API key? ",(0,t.jsx)(b.LinkOutlined,{})]})]}),(0,t.jsxs)("div",{className:"bg-gray-50 rounded-xl p-4 flex items-center justify-between mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",className:"text-gray-500",children:(0,t.jsx)("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z",fill:"currentColor"})}),(0,t.jsx)("span",{className:"text-sm font-medium text-gray-800",children:"Save key for future use"})]}),(0,t.jsx)(l.Switch,{checked:k,onChange:y})]}),(0,t.jsxs)("div",{className:"bg-blue-50 rounded-xl p-4 flex items-start gap-3 mb-6",children:[(0,t.jsx)(u,{className:"text-blue-400 mt-0.5 flex-shrink-0"}),(0,t.jsx)("p",{className:"text-sm text-blue-700",children:"Your key is stored securely and transmitted over HTTPS. It is never shared with third parties."})]}),(0,t.jsxs)("button",{onClick:E,disabled:j,className:"w-full bg-blue-500 hover:bg-blue-600 disabled:opacity-60 text-white font-medium py-3 px-6 rounded-xl flex items-center justify-center gap-2 transition-colors",children:[(0,t.jsx)(u,{}),"Connect & Authorize"]})]})]})})}],611052)},185793,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(242064),s=e.i(529681);let l=e=>{let{prefixCls:a,className:s,style:l,size:o,shape:i}=e,n=(0,r.default)({[`${a}-lg`]:"large"===o,[`${a}-sm`]:"small"===o}),d=(0,r.default)({[`${a}-circle`]:"circle"===i,[`${a}-square`]:"square"===i,[`${a}-round`]:"round"===i}),c=t.useMemo(()=>"number"==typeof o?{width:o,height:o,lineHeight:`${o}px`}:{},[o]);return t.createElement("span",{className:(0,r.default)(a,n,d,s),style:Object.assign(Object.assign({},c),l)})};e.i(296059);var o=e.i(694758),i=e.i(915654),n=e.i(246422),d=e.i(838378);let c=new o.Keyframes("ant-skeleton-loading",{"0%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),u=e=>({height:e,lineHeight:(0,i.unit)(e)}),m=e=>Object.assign({width:e},u(e)),g=(e,t)=>Object.assign({width:t(e).mul(5).equal(),minWidth:t(e).mul(5).equal()},u(e)),h=e=>Object.assign({width:e},u(e)),f=(e,t,r)=>{let{skeletonButtonCls:a}=e;return{[`${r}${a}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${r}${a}-round`]:{borderRadius:t}}},b=(e,t)=>Object.assign({width:t(e).mul(2).equal(),minWidth:t(e).mul(2).equal()},u(e)),x=(0,n.genStyleHooks)("Skeleton",e=>{let{componentCls:t,calc:r}=e;return(e=>{let{componentCls:t,skeletonAvatarCls:r,skeletonTitleCls:a,skeletonParagraphCls:s,skeletonButtonCls:l,skeletonInputCls:o,skeletonImageCls:i,controlHeight:n,controlHeightLG:d,controlHeightSM:u,gradientFromColor:x,padding:p,marginSM:v,borderRadius:C,titleHeight:w,blockRadius:k,paragraphLiHeight:y,controlHeightXS:j,paragraphMarginTop:N}=e;return{[t]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:p,verticalAlign:"top",[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:x},m(n)),[`${r}-circle`]:{borderRadius:"50%"},[`${r}-lg`]:Object.assign({},m(d)),[`${r}-sm`]:Object.assign({},m(u))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[a]:{width:"100%",height:w,background:x,borderRadius:k,[`+ ${s}`]:{marginBlockStart:u}},[s]:{padding:0,"> li":{width:"100%",height:y,listStyle:"none",background:x,borderRadius:k,"+ li":{marginBlockStart:j}}},[`${s}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${a}, ${s} > li`]:{borderRadius:C}}},[`${t}-with-avatar ${t}-content`]:{[a]:{marginBlockStart:v,[`+ ${s}`]:{marginBlockStart:N}}},[`${t}${t}-element`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"inline-block",width:"auto"},(e=>{let{borderRadiusSM:t,skeletonButtonCls:r,controlHeight:a,controlHeightLG:s,controlHeightSM:l,gradientFromColor:o,calc:i}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:o,borderRadius:t,width:i(a).mul(2).equal(),minWidth:i(a).mul(2).equal()},b(a,i))},f(e,a,r)),{[`${r}-lg`]:Object.assign({},b(s,i))}),f(e,s,`${r}-lg`)),{[`${r}-sm`]:Object.assign({},b(l,i))}),f(e,l,`${r}-sm`))})(e)),(e=>{let{skeletonAvatarCls:t,gradientFromColor:r,controlHeight:a,controlHeightLG:s,controlHeightSM:l}=e;return{[t]:Object.assign({display:"inline-block",verticalAlign:"top",background:r},m(a)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:Object.assign({},m(s)),[`${t}${t}-sm`]:Object.assign({},m(l))}})(e)),(e=>{let{controlHeight:t,borderRadiusSM:r,skeletonInputCls:a,controlHeightLG:s,controlHeightSM:l,gradientFromColor:o,calc:i}=e;return{[a]:Object.assign({display:"inline-block",verticalAlign:"top",background:o,borderRadius:r},g(t,i)),[`${a}-lg`]:Object.assign({},g(s,i)),[`${a}-sm`]:Object.assign({},g(l,i))}})(e)),(e=>{let{skeletonImageCls:t,imageSizeBase:r,gradientFromColor:a,borderRadiusSM:s,calc:l}=e;return{[t]:Object.assign(Object.assign({display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"middle",background:a,borderRadius:s},h(l(r).mul(2).equal())),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:Object.assign(Object.assign({},h(r)),{maxWidth:l(r).mul(4).equal(),maxHeight:l(r).mul(4).equal()}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}})(e)),[`${t}${t}-block`]:{width:"100%",[l]:{width:"100%"},[o]:{width:"100%"}},[`${t}${t}-active`]:{[` +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,596239,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"}}]},name:"link",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["LinkOutlined",0,l],596239)},599724,936325,e=>{"use strict";var t=e.i(95779),r=e.i(444755),a=e.i(673706),s=e.i(271645);let l=s.default.forwardRef((e,l)=>{let{color:o,className:i,children:n}=e;return s.default.createElement("p",{ref:l,className:(0,r.tremorTwMerge)("text-tremor-default",o?(0,a.getColorClassNames)(o,t.colorPalette.text).textColor:(0,r.tremorTwMerge)("text-tremor-content","dark:text-dark-tremor-content"),i)},n)});l.displayName="Text",e.s(["default",0,l],936325),e.s(["Text",0,l],599724)},994388,e=>{"use strict";var t=e.i(290571),r=e.i(829087),a=e.i(271645);let s=["preEnter","entering","entered","preExit","exiting","exited","unmounted"],l=e=>({_s:e,status:s[e],isEnter:e<3,isMounted:6!==e,isResolved:2===e||e>4}),o=e=>e?6:5,i=(e,t,r,a,s)=>{clearTimeout(a.current);let o=l(e);t(o),r.current=o,s&&s({current:o})};var n=e.i(480731),d=e.i(444755),c=e.i(673706);let u=e=>{var r=(0,t.__rest)(e,[]);return a.default.createElement("svg",Object.assign({},r,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"}),a.default.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}),a.default.createElement("path",{d:"M18.364 5.636L16.95 7.05A7 7 0 1 0 19 12h2a9 9 0 1 1-2.636-6.364z"}))};var m=e.i(95779);let g={xs:{height:"h-4",width:"w-4"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-6",width:"w-6"},xl:{height:"h-6",width:"w-6"}},h=(e,t)=>{switch(e){case"primary":return{textColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",hoverTextColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,c.getColorClassNames)(t,m.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",hoverBgColor:t?(0,c.getColorClassNames)(t,m.colorPalette.darkBackground).hoverBgColor:"hover:bg-tremor-brand-emphasis dark:hover:bg-dark-tremor-brand-emphasis",borderColor:t?(0,c.getColorClassNames)(t,m.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",hoverBorderColor:t?(0,c.getColorClassNames)(t,m.colorPalette.darkBorder).hoverBorderColor:"hover:border-tremor-brand-emphasis dark:hover:border-dark-tremor-brand-emphasis"};case"secondary":return{textColor:t?(0,c.getColorClassNames)(t,m.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,m.colorPalette.text).textColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,hoverBgColor:t?(0,d.tremorTwMerge)((0,c.getColorClassNames)(t,m.colorPalette.background).hoverBgColor,"hover:bg-opacity-20 dark:hover:bg-opacity-20"):"hover:bg-tremor-brand-faint dark:hover:bg-dark-tremor-brand-faint",borderColor:t?(0,c.getColorClassNames)(t,m.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand"};case"light":return{textColor:t?(0,c.getColorClassNames)(t,m.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,m.colorPalette.darkText).hoverTextColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,borderColor:"",hoverBorderColor:""}}},f=(0,c.makeClassName)("Button"),b=({loading:e,iconSize:t,iconPosition:r,Icon:s,needMargin:l,transitionStatus:o})=>{let i=l?r===n.HorizontalPositions.Left?(0,d.tremorTwMerge)("-ml-1","mr-1.5"):(0,d.tremorTwMerge)("-mr-1","ml-1.5"):"",c=(0,d.tremorTwMerge)("w-0 h-0"),m={default:c,entering:c,entered:t,exiting:t,exited:c};return e?a.default.createElement(u,{className:(0,d.tremorTwMerge)(f("icon"),"animate-spin shrink-0",i,m.default,m[o]),style:{transition:"width 150ms"}}):a.default.createElement(s,{className:(0,d.tremorTwMerge)(f("icon"),"shrink-0",t,i)})},x=a.default.forwardRef((e,s)=>{let{icon:u,iconPosition:m=n.HorizontalPositions.Left,size:x=n.Sizes.SM,color:p,variant:v="primary",disabled:C,loading:w=!1,loadingText:k,children:y,tooltip:j,className:N}=e,O=(0,t.__rest)(e,["icon","iconPosition","size","color","variant","disabled","loading","loadingText","children","tooltip","className"]),M=w||C,T=void 0!==u||w,E=w&&k,R=!(!y&&!E),$=(0,d.tremorTwMerge)(g[x].height,g[x].width),S="light"!==v?(0,d.tremorTwMerge)("rounded-tremor-default border","shadow-tremor-input","dark:shadow-dark-tremor-input"):"",z=h(v,p),P=("light"!==v?{xs:{paddingX:"px-2.5",paddingY:"py-1.5",fontSize:"text-xs"},sm:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-sm"},md:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-md"},lg:{paddingX:"px-4",paddingY:"py-2.5",fontSize:"text-lg"},xl:{paddingX:"px-4",paddingY:"py-3",fontSize:"text-xl"}}:{xs:{paddingX:"",paddingY:"",fontSize:"text-xs"},sm:{paddingX:"",paddingY:"",fontSize:"text-sm"},md:{paddingX:"",paddingY:"",fontSize:"text-md"},lg:{paddingX:"",paddingY:"",fontSize:"text-lg"},xl:{paddingX:"",paddingY:"",fontSize:"text-xl"}})[x],{tooltipProps:I,getReferenceProps:A}=(0,r.useTooltip)(300),[L,B]=(({enter:e=!0,exit:t=!0,preEnter:r,preExit:s,timeout:n,initialEntered:d,mountOnEnter:c,unmountOnExit:u,onStateChange:m}={})=>{let[g,h]=(0,a.useState)(()=>l(d?2:o(c))),f=(0,a.useRef)(g),b=(0,a.useRef)(0),[x,p]="object"==typeof n?[n.enter,n.exit]:[n,n],v=(0,a.useCallback)(()=>{let e=((e,t)=>{switch(e){case 1:case 0:return 2;case 4:case 3:return o(t)}})(f.current._s,u);e&&i(e,h,f,b,m)},[m,u]);return[g,(0,a.useCallback)(a=>{let l=e=>{switch(i(e,h,f,b,m),e){case 1:x>=0&&(b.current=((...e)=>setTimeout(...e))(v,x));break;case 4:p>=0&&(b.current=((...e)=>setTimeout(...e))(v,p));break;case 0:case 3:b.current=((...e)=>setTimeout(...e))(()=>{isNaN(document.body.offsetTop)||l(e+1)},0)}},n=f.current.isEnter;"boolean"!=typeof a&&(a=!n),a?n||l(e?+!r:2):n&&l(t?s?3:4:o(u))},[v,m,e,t,r,s,x,p,u]),v]})({timeout:50});return(0,a.useEffect)(()=>{B(w)},[w]),a.default.createElement("button",Object.assign({ref:(0,c.mergeRefs)([s,I.refs.setReference]),className:(0,d.tremorTwMerge)(f("root"),"shrink-0 inline-flex justify-center items-center group font-medium outline-none",S,P.paddingX,P.paddingY,P.fontSize,z.textColor,z.bgColor,z.borderColor,z.hoverBorderColor,M?"opacity-50 cursor-not-allowed":(0,d.tremorTwMerge)(h(v,p).hoverTextColor,h(v,p).hoverBgColor,h(v,p).hoverBorderColor),N),disabled:M},A,O),a.default.createElement(r.default,Object.assign({text:j},I)),T&&m!==n.HorizontalPositions.Right?a.default.createElement(b,{loading:w,iconSize:$,iconPosition:m,Icon:u,transitionStatus:L.status,needMargin:R}):null,E||y?a.default.createElement("span",{className:(0,d.tremorTwMerge)(f("text"),"text-tremor-default whitespace-nowrap")},E?k:y):null,T&&m===n.HorizontalPositions.Right?a.default.createElement(b,{loading:w,iconSize:$,iconPosition:m,Icon:u,transitionStatus:L.status,needMargin:R}):null)});x.displayName="Button",e.s(["Button",0,x],994388)},304967,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(480731),s=e.i(95779),l=e.i(444755),o=e.i(673706);let i=(0,o.makeClassName)("Card"),n=r.default.forwardRef((e,n)=>{let{decoration:d="",decorationColor:c,children:u,className:m}=e,g=(0,t.__rest)(e,["decoration","decorationColor","children","className"]);return r.default.createElement("div",Object.assign({ref:n,className:(0,l.tremorTwMerge)(i("root"),"relative w-full text-left ring-1 rounded-tremor-default p-6","bg-tremor-background ring-tremor-ring shadow-tremor-card","dark:bg-dark-tremor-background dark:ring-dark-tremor-ring dark:shadow-dark-tremor-card",c?(0,o.getColorClassNames)(c,s.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",(e=>{if(!e)return"";switch(e){case a.HorizontalPositions.Left:return"border-l-4";case a.VerticalPositions.Top:return"border-t-4";case a.HorizontalPositions.Right:return"border-r-4";case a.VerticalPositions.Bottom:return"border-b-4";default:return""}})(d),m)},g),u)});n.displayName="Card",e.s(["Card",0,n],304967)},629569,e=>{"use strict";var t=e.i(290571),r=e.i(95779),a=e.i(444755),s=e.i(673706),l=e.i(271645);let o=l.default.forwardRef((e,o)=>{let{color:i,children:n,className:d}=e,c=(0,t.__rest)(e,["color","children","className"]);return l.default.createElement("p",Object.assign({ref:o,className:(0,a.tremorTwMerge)("font-medium text-tremor-title",i?(0,s.getColorClassNames)(i,r.colorPalette.darkText).textColor:"text-tremor-content-strong dark:text-dark-tremor-content-strong",d)},c),n)});o.displayName="Title",e.s(["Title",0,o],629569)},653496,e=>{"use strict";var t=e.i(721369);e.s(["Tabs",()=>t.default])},447566,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 000 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"}}]},name:"arrow-left",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["ArrowLeftOutlined",0,l],447566)},492030,e=>{"use strict";var t=e.i(121229);e.s(["CheckOutlined",()=>t.default])},530212,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 19l-7-7m0 0l7-7m-7 7h18"}))});e.s(["ArrowLeftIcon",0,r],530212)},211576,e=>{"use strict";var t=e.i(131757);e.s(["Col",()=>t.default])},954616,e=>{"use strict";var t=e.i(271645),r=e.i(114272),a=e.i(540143),s=e.i(915823),l=e.i(619273),o=class extends s.Subscribable{#e;#t=void 0;#r;#a;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#s()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),(0,l.shallowEqualObjects)(this.options,t)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#r,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,l.hashKey)(t.mutationKey)!==(0,l.hashKey)(this.options.mutationKey)?this.reset():this.#r?.state.status==="pending"&&this.#r.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#r?.removeObserver(this)}onMutationUpdate(e){this.#s(),this.#l(e)}getCurrentResult(){return this.#t}reset(){this.#r?.removeObserver(this),this.#r=void 0,this.#s(),this.#l()}mutate(e,t){return this.#a=t,this.#r?.removeObserver(this),this.#r=this.#e.getMutationCache().build(this.#e,this.options),this.#r.addObserver(this),this.#r.execute(e)}#s(){let e=this.#r?.state??(0,r.getDefaultState)();this.#t={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#l(e){a.notifyManager.batch(()=>{if(this.#a&&this.hasListeners()){let t=this.#t.variables,r=this.#t.context,a={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type==="success"){try{this.#a.onSuccess?.(e.data,t,r,a)}catch(e){Promise.reject(e)}try{this.#a.onSettled?.(e.data,null,t,r,a)}catch(e){Promise.reject(e)}}else if(e?.type==="error"){try{this.#a.onError?.(e.error,t,r,a)}catch(e){Promise.reject(e)}try{this.#a.onSettled?.(void 0,e.error,t,r,a)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},i=e.i(912598);e.s(["useMutation",0,function(e,r){let s=(0,i.useQueryClient)(r),[n]=t.useState(()=>new o(s,e));t.useEffect(()=>{n.setOptions(e)},[n,e]);let d=t.useSyncExternalStore(t.useCallback(e=>n.subscribe(a.notifyManager.batchCalls(e)),[n]),()=>n.getCurrentResult(),()=>n.getCurrentResult()),c=t.useCallback((e,t)=>{n.mutate(e,t).catch(l.noop)},[n]);if(d.error&&(0,l.shouldThrowError)(n.options.throwOnError,[d.error]))throw d.error;return{...d,mutate:c,mutateAsync:d.mutate}}],954616)},646563,e=>{"use strict";var t=e.i(959013);e.s(["PlusOutlined",()=>t.default])},178654,621192,e=>{"use strict";let t=e.i(211576).Col;e.s(["Col",0,t],178654);let r=e.i(264042).Row;e.s(["Row",0,r],621192)},149121,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(152990),s=e.i(682830),l=e.i(269200),o=e.i(427612),i=e.i(64848),n=e.i(942232),d=e.i(496020),c=e.i(977572);e.s(["DataTable",0,function({data:e=[],columns:u,onRowClick:m,renderSubComponent:g,renderChildRows:h,getRowCanExpand:f,isLoading:b=!1,loadingMessage:x="🚅 Loading logs...",noDataMessage:p="No logs found",enableSorting:v=!1}){let C=!!(g||h)&&!!f,[w,k]=(0,r.useState)([]),y=(0,a.useReactTable)({data:e,columns:u,...v&&{state:{sorting:w},onSortingChange:k,enableSortingRemoval:!1},...C&&{getRowCanExpand:f},getRowId:(e,t)=>e?.request_id??String(t),getCoreRowModel:(0,s.getCoreRowModel)(),...v&&{getSortedRowModel:(0,s.getSortedRowModel)()},...C&&{getExpandedRowModel:(0,s.getExpandedRowModel)()}});return(0,t.jsx)("div",{className:"rounded-lg custom-border overflow-x-auto w-full max-w-full box-border",children:(0,t.jsxs)(l.Table,{className:"[&_td]:py-0.5 [&_th]:py-1 table-fixed w-full box-border",style:{minWidth:"400px"},children:[(0,t.jsx)(o.TableHead,{children:y.getHeaderGroups().map(e=>(0,t.jsx)(d.TableRow,{children:e.headers.map(e=>{let r=v&&e.column.getCanSort(),s=e.column.getIsSorted();return(0,t.jsx)(i.TableHeaderCell,{className:`py-1 h-8 ${r?"cursor-pointer select-none hover:bg-gray-50":""}`,onClick:r?e.column.getToggleSortingHandler():void 0,children:e.isPlaceholder?null:(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.flexRender)(e.column.columnDef.header,e.getContext()),r&&(0,t.jsx)("span",{className:"text-gray-400",children:"asc"===s?"↑":"desc"===s?"↓":"⇅"})]})},e.id)})},e.id))}),(0,t.jsx)(n.TableBody,{children:b?(0,t.jsx)(d.TableRow,{children:(0,t.jsx)(c.TableCell,{colSpan:u.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:x})})})}):y.getRowModel().rows.length>0?y.getRowModel().rows.map(e=>(0,t.jsxs)(r.Fragment,{children:[(0,t.jsx)(d.TableRow,{className:`h-8 ${m?"cursor-pointer hover:bg-gray-50":""}`,onClick:()=>m?.(e.original),children:e.getVisibleCells().map(e=>(0,t.jsx)(c.TableCell,{className:"py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap",children:(0,a.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))}),C&&e.getIsExpanded()&&h&&h({row:e}),C&&e.getIsExpanded()&&g&&!h&&(0,t.jsx)(d.TableRow,{children:(0,t.jsx)(c.TableCell,{colSpan:e.getVisibleCells().length,className:"p-0",children:(0,t.jsx)("div",{className:"w-full max-w-full overflow-hidden box-border",children:g({row:e})})})})]},e.id)):(0,t.jsx)(d.TableRow,{children:(0,t.jsx)(c.TableCell,{colSpan:u.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:p})})})})})]})})}])},362024,e=>{"use strict";var t=e.i(988122);e.s(["Collapse",()=>t.default])},245704,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"check-circle",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["CheckCircleOutlined",0,l],245704)},149192,e=>{"use strict";var t=e.i(864517);e.s(["CloseOutlined",()=>t.default])},434166,e=>{"use strict";e.s(["getSecureItem",0,function(e){try{let t=window.sessionStorage.getItem(e);if(null===t)return null;return decodeURIComponent(atob(t).split("").map(e=>"%"+e.charCodeAt(0).toString(16).padStart(2,"0")).join(""))}catch{return null}},"setSecureItem",0,function(e,t){window.sessionStorage.setItem(e,btoa(encodeURIComponent(t).replace(/%([0-9A-F]{2})/g,(e,t)=>String.fromCharCode(parseInt(t,16)))))}])},611052,2781,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(212931),s=e.i(311451),l=e.i(790848),o=e.i(888259),i=e.i(438957);e.i(247167);var n=e.i(931067);let d={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 10-56 0z"}}]},name:"lock",theme:"outlined"};var c=e.i(9583),u=r.forwardRef(function(e,t){return r.createElement(c.default,(0,n.default)({},e,{ref:t,icon:d}))});e.s(["LockOutlined",0,u],2781);var m=e.i(492030),g=e.i(266537),h=e.i(447566),f=e.i(149192),b=e.i(596239);e.s(["ByokCredentialModal",0,({server:e,open:n,onClose:d,onSuccess:c,accessToken:x})=>{let[p,v]=(0,r.useState)(1),[C,w]=(0,r.useState)(""),[k,y]=(0,r.useState)(!0),[j,N]=(0,r.useState)(!1),O=e.alias||e.server_name||"Service",M=O.charAt(0).toUpperCase(),T=()=>{v(1),w(""),y(!0),N(!1),d()},E=async()=>{if(!C.trim())return void o.default.error("Please enter your API key");N(!0);try{let t=await fetch(`/v1/mcp/server/${e.server_id}/user-credential`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${x}`},body:JSON.stringify({credential:C.trim(),save:k})});if(!t.ok){let e=await t.json();throw Error(e?.detail?.error||"Failed to save credential")}o.default.success(`Connected to ${O}`),c(e.server_id),T()}catch(e){o.default.error(e.message||"Failed to connect")}finally{N(!1)}};return(0,t.jsx)(a.Modal,{open:n,onCancel:T,footer:null,width:480,closeIcon:null,className:"byok-modal",children:(0,t.jsxs)("div",{className:"relative p-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[2===p?(0,t.jsxs)("button",{onClick:()=>v(1),className:"flex items-center gap-1 text-gray-500 hover:text-gray-800 text-sm",children:[(0,t.jsx)(h.ArrowLeftOutlined,{})," Back"]}):(0,t.jsx)("div",{}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("div",{className:`w-2 h-2 rounded-full ${1===p?"bg-blue-500":"bg-gray-300"}`}),(0,t.jsx)("div",{className:`w-2 h-2 rounded-full ${2===p?"bg-blue-500":"bg-gray-300"}`})]}),(0,t.jsx)("button",{onClick:T,className:"text-gray-400 hover:text-gray-600",children:(0,t.jsx)(f.CloseOutlined,{})})]}),1===p?(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsxs)("div",{className:"flex items-center justify-center gap-3 mb-6",children:[(0,t.jsx)("div",{className:"w-14 h-14 rounded-xl bg-gradient-to-br from-teal-400 to-cyan-600 flex items-center justify-center text-white font-bold text-xl shadow",children:"L"}),(0,t.jsx)(g.ArrowRightOutlined,{className:"text-gray-400 text-lg"}),(0,t.jsx)("div",{className:"w-14 h-14 rounded-xl bg-gradient-to-br from-blue-600 to-indigo-800 flex items-center justify-center text-white font-bold text-xl shadow",children:M})]}),(0,t.jsxs)("h2",{className:"text-2xl font-bold text-gray-900 mb-2",children:["Connect ",O]}),(0,t.jsxs)("p",{className:"text-gray-500 mb-6",children:["LiteLLM needs access to ",O," to complete your request."]}),(0,t.jsx)("div",{className:"bg-gray-50 rounded-xl p-4 text-left mb-4",children:(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("div",{className:"mt-0.5",children:(0,t.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",className:"text-gray-500",children:[(0,t.jsx)("rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",stroke:"currentColor",strokeWidth:"2"}),(0,t.jsx)("path",{d:"M8 4v16M16 4v16",stroke:"currentColor",strokeWidth:"2"})]})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-semibold text-gray-800 mb-1",children:"How it works"}),(0,t.jsxs)("p",{className:"text-gray-500 text-sm",children:["LiteLLM acts as a secure bridge. Your requests are routed through our MCP client directly to"," ",O,"'s API."]})]})]})}),e.byok_description&&e.byok_description.length>0&&(0,t.jsxs)("div",{className:"bg-gray-50 rounded-xl p-4 text-left mb-6",children:[(0,t.jsxs)("p",{className:"text-xs font-semibold text-gray-500 uppercase tracking-widest mb-3 flex items-center gap-2",children:[(0,t.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",className:"text-green-500",children:[(0,t.jsx)("path",{d:"M12 2L12 22M2 12L22 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"}),(0,t.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2"})]}),"Requested Access"]}),(0,t.jsx)("ul",{className:"space-y-2",children:e.byok_description.map((e,r)=>(0,t.jsxs)("li",{className:"flex items-center gap-2 text-sm text-gray-700",children:[(0,t.jsx)(m.CheckOutlined,{className:"text-green-500 flex-shrink-0"}),e]},r))})]}),(0,t.jsxs)("button",{onClick:()=>v(2),className:"w-full bg-gray-900 hover:bg-gray-700 text-white font-medium py-3 px-6 rounded-xl flex items-center justify-center gap-2 transition-colors",children:["Continue to Authentication ",(0,t.jsx)(g.ArrowRightOutlined,{})]}),(0,t.jsx)("button",{onClick:T,className:"mt-3 w-full text-gray-400 hover:text-gray-600 text-sm py-2",children:"Cancel"})]}):(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"w-12 h-12 rounded-full bg-blue-50 flex items-center justify-center mb-4",children:(0,t.jsx)(i.KeyOutlined,{className:"text-blue-400 text-xl"})}),(0,t.jsx)("h2",{className:"text-2xl font-bold text-gray-900 mb-2",children:"Provide API Key"}),(0,t.jsxs)("p",{className:"text-gray-500 mb-6",children:["Enter your ",O," API key to authorize this connection."]}),(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsxs)("label",{className:"block text-sm font-semibold text-gray-800 mb-2",children:[O," API Key"]}),(0,t.jsx)(s.Input.Password,{placeholder:"Enter your API key",value:C,onChange:e=>w(e.target.value),size:"large",className:"rounded-lg"}),e.byok_api_key_help_url&&(0,t.jsxs)("a",{href:e.byok_api_key_help_url,target:"_blank",rel:"noopener noreferrer",className:"text-blue-500 hover:text-blue-700 text-sm mt-2 flex items-center gap-1",children:["Where do I find my API key? ",(0,t.jsx)(b.LinkOutlined,{})]})]}),(0,t.jsxs)("div",{className:"bg-gray-50 rounded-xl p-4 flex items-center justify-between mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",className:"text-gray-500",children:(0,t.jsx)("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z",fill:"currentColor"})}),(0,t.jsx)("span",{className:"text-sm font-medium text-gray-800",children:"Save key for future use"})]}),(0,t.jsx)(l.Switch,{checked:k,onChange:y})]}),(0,t.jsxs)("div",{className:"bg-blue-50 rounded-xl p-4 flex items-start gap-3 mb-6",children:[(0,t.jsx)(u,{className:"text-blue-400 mt-0.5 flex-shrink-0"}),(0,t.jsx)("p",{className:"text-sm text-blue-700",children:"Your key is stored securely and transmitted over HTTPS. It is never shared with third parties."})]}),(0,t.jsxs)("button",{onClick:E,disabled:j,className:"w-full bg-blue-500 hover:bg-blue-600 disabled:opacity-60 text-white font-medium py-3 px-6 rounded-xl flex items-center justify-center gap-2 transition-colors",children:[(0,t.jsx)(u,{}),"Connect & Authorize"]})]})]})})}],611052)},185793,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(242064),s=e.i(529681);let l=e=>{let{prefixCls:a,className:s,style:l,size:o,shape:i}=e,n=(0,r.default)({[`${a}-lg`]:"large"===o,[`${a}-sm`]:"small"===o}),d=(0,r.default)({[`${a}-circle`]:"circle"===i,[`${a}-square`]:"square"===i,[`${a}-round`]:"round"===i}),c=t.useMemo(()=>"number"==typeof o?{width:o,height:o,lineHeight:`${o}px`}:{},[o]);return t.createElement("span",{className:(0,r.default)(a,n,d,s),style:Object.assign(Object.assign({},c),l)})};e.i(296059);var o=e.i(694758),i=e.i(915654),n=e.i(246422),d=e.i(838378);let c=new o.Keyframes("ant-skeleton-loading",{"0%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),u=e=>({height:e,lineHeight:(0,i.unit)(e)}),m=e=>Object.assign({width:e},u(e)),g=(e,t)=>Object.assign({width:t(e).mul(5).equal(),minWidth:t(e).mul(5).equal()},u(e)),h=e=>Object.assign({width:e},u(e)),f=(e,t,r)=>{let{skeletonButtonCls:a}=e;return{[`${r}${a}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${r}${a}-round`]:{borderRadius:t}}},b=(e,t)=>Object.assign({width:t(e).mul(2).equal(),minWidth:t(e).mul(2).equal()},u(e)),x=(0,n.genStyleHooks)("Skeleton",e=>{let{componentCls:t,calc:r}=e;return(e=>{let{componentCls:t,skeletonAvatarCls:r,skeletonTitleCls:a,skeletonParagraphCls:s,skeletonButtonCls:l,skeletonInputCls:o,skeletonImageCls:i,controlHeight:n,controlHeightLG:d,controlHeightSM:u,gradientFromColor:x,padding:p,marginSM:v,borderRadius:C,titleHeight:w,blockRadius:k,paragraphLiHeight:y,controlHeightXS:j,paragraphMarginTop:N}=e;return{[t]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:p,verticalAlign:"top",[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:x},m(n)),[`${r}-circle`]:{borderRadius:"50%"},[`${r}-lg`]:Object.assign({},m(d)),[`${r}-sm`]:Object.assign({},m(u))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[a]:{width:"100%",height:w,background:x,borderRadius:k,[`+ ${s}`]:{marginBlockStart:u}},[s]:{padding:0,"> li":{width:"100%",height:y,listStyle:"none",background:x,borderRadius:k,"+ li":{marginBlockStart:j}}},[`${s}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${a}, ${s} > li`]:{borderRadius:C}}},[`${t}-with-avatar ${t}-content`]:{[a]:{marginBlockStart:v,[`+ ${s}`]:{marginBlockStart:N}}},[`${t}${t}-element`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"inline-block",width:"auto"},(e=>{let{borderRadiusSM:t,skeletonButtonCls:r,controlHeight:a,controlHeightLG:s,controlHeightSM:l,gradientFromColor:o,calc:i}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:o,borderRadius:t,width:i(a).mul(2).equal(),minWidth:i(a).mul(2).equal()},b(a,i))},f(e,a,r)),{[`${r}-lg`]:Object.assign({},b(s,i))}),f(e,s,`${r}-lg`)),{[`${r}-sm`]:Object.assign({},b(l,i))}),f(e,l,`${r}-sm`))})(e)),(e=>{let{skeletonAvatarCls:t,gradientFromColor:r,controlHeight:a,controlHeightLG:s,controlHeightSM:l}=e;return{[t]:Object.assign({display:"inline-block",verticalAlign:"top",background:r},m(a)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:Object.assign({},m(s)),[`${t}${t}-sm`]:Object.assign({},m(l))}})(e)),(e=>{let{controlHeight:t,borderRadiusSM:r,skeletonInputCls:a,controlHeightLG:s,controlHeightSM:l,gradientFromColor:o,calc:i}=e;return{[a]:Object.assign({display:"inline-block",verticalAlign:"top",background:o,borderRadius:r},g(t,i)),[`${a}-lg`]:Object.assign({},g(s,i)),[`${a}-sm`]:Object.assign({},g(l,i))}})(e)),(e=>{let{skeletonImageCls:t,imageSizeBase:r,gradientFromColor:a,borderRadiusSM:s,calc:l}=e;return{[t]:Object.assign(Object.assign({display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"middle",background:a,borderRadius:s},h(l(r).mul(2).equal())),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:Object.assign(Object.assign({},h(r)),{maxWidth:l(r).mul(4).equal(),maxHeight:l(r).mul(4).equal()}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}})(e)),[`${t}${t}-block`]:{width:"100%",[l]:{width:"100%"},[o]:{width:"100%"}},[`${t}${t}-active`]:{[` ${a}, ${s} > li, ${r}, ${l}, ${o}, ${i} - `]:Object.assign({},{background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:c,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"})}}})((0,d.mergeToken)(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:r(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"}))},e=>{let{colorFillContent:t,colorFill:r}=e;return{color:t,colorGradientEnd:r,gradientFromColor:t,gradientToColor:r,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),p=e=>{let{prefixCls:a,className:s,style:l,rows:o=0}=e,i=Array.from({length:o}).map((r,a)=>t.createElement("li",{key:a,style:{width:((e,t)=>{let{width:r,rows:a=2}=t;return Array.isArray(r)?r[e]:a-1===e?r:void 0})(a,e)}}));return t.createElement("ul",{className:(0,r.default)(a,s),style:l},i)},v=({prefixCls:e,className:a,width:s,style:l})=>t.createElement("h3",{className:(0,r.default)(e,a),style:Object.assign({width:s},l)});function C(e){return e&&"object"==typeof e?e:{}}let w=e=>{let{prefixCls:s,loading:o,className:i,rootClassName:n,style:d,children:c,avatar:u=!1,title:m=!0,paragraph:g=!0,active:h,round:f}=e,{getPrefixCls:b,direction:w,className:k,style:y}=(0,a.useComponentConfig)("skeleton"),j=b("skeleton",s),[N,M,O]=x(j);if(o||!("loading"in e)){let e,a,s=!!u,o=!!m,c=!!g;if(s){let r=Object.assign(Object.assign({prefixCls:`${j}-avatar`},o&&!c?{size:"large",shape:"square"}:{size:"large",shape:"circle"}),C(u));e=t.createElement("div",{className:`${j}-header`},t.createElement(l,Object.assign({},r)))}if(o||c){let e,r;if(o){let r=Object.assign(Object.assign({prefixCls:`${j}-title`},!s&&c?{width:"38%"}:s&&c?{width:"50%"}:{}),C(m));e=t.createElement(v,Object.assign({},r))}if(c){let e,a=Object.assign(Object.assign({prefixCls:`${j}-paragraph`},(e={},s&&o||(e.width="61%"),!s&&o?e.rows=3:e.rows=2,e)),C(g));r=t.createElement(p,Object.assign({},a))}a=t.createElement("div",{className:`${j}-content`},e,r)}let b=(0,r.default)(j,{[`${j}-with-avatar`]:s,[`${j}-active`]:h,[`${j}-rtl`]:"rtl"===w,[`${j}-round`]:f},k,i,n,M,O);return N(t.createElement("div",{className:b,style:Object.assign(Object.assign({},y),d)},e,a))}return null!=c?c:null};w.Button=e=>{let{prefixCls:o,className:i,rootClassName:n,active:d,block:c=!1,size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",o),[h,f,b]=x(g),p=(0,s.default)(e,["prefixCls"]),v=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},i,n,f,b);return h(t.createElement("div",{className:v},t.createElement(l,Object.assign({prefixCls:`${g}-button`,size:u},p))))},w.Avatar=e=>{let{prefixCls:o,className:i,rootClassName:n,active:d,shape:c="circle",size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",o),[h,f,b]=x(g),p=(0,s.default)(e,["prefixCls","className"]),v=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d},i,n,f,b);return h(t.createElement("div",{className:v},t.createElement(l,Object.assign({prefixCls:`${g}-avatar`,shape:c,size:u},p))))},w.Input=e=>{let{prefixCls:o,className:i,rootClassName:n,active:d,block:c,size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",o),[h,f,b]=x(g),p=(0,s.default)(e,["prefixCls"]),v=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},i,n,f,b);return h(t.createElement("div",{className:v},t.createElement(l,Object.assign({prefixCls:`${g}-input`,size:u},p))))},w.Image=e=>{let{prefixCls:s,className:l,rootClassName:o,style:i,active:n}=e,{getPrefixCls:d}=t.useContext(a.ConfigContext),c=d("skeleton",s),[u,m,g]=x(c),h=(0,r.default)(c,`${c}-element`,{[`${c}-active`]:n},l,o,m,g);return u(t.createElement("div",{className:h},t.createElement("div",{className:(0,r.default)(`${c}-image`,l),style:i},t.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${c}-image-svg`},t.createElement("title",null,"Image placeholder"),t.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:`${c}-image-path`})))))},w.Node=e=>{let{prefixCls:s,className:l,rootClassName:o,style:i,active:n,children:d}=e,{getPrefixCls:c}=t.useContext(a.ConfigContext),u=c("skeleton",s),[m,g,h]=x(u),f=(0,r.default)(u,`${u}-element`,{[`${u}-active`]:n},g,l,o,h);return m(t.createElement("div",{className:f},t.createElement("div",{className:(0,r.default)(`${u}-image`,l),style:i},d)))},e.s(["default",0,w],185793)},959013,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["default",0,l],959013)},269200,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let s=(0,e.i(673706).makeClassName)("Table"),l=r.default.forwardRef((e,l)=>{let{children:o,className:i}=e,n=(0,t.__rest)(e,["children","className"]);return r.default.createElement("div",{className:(0,a.tremorTwMerge)(s("root"),"overflow-auto",i)},r.default.createElement("table",Object.assign({ref:l,className:(0,a.tremorTwMerge)(s("table"),"w-full text-tremor-default","text-tremor-content","dark:text-dark-tremor-content")},n),o))});l.displayName="Table",e.s(["Table",0,l],269200)},427612,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let s=(0,e.i(673706).makeClassName)("TableHead"),l=r.default.forwardRef((e,l)=>{let{children:o,className:i}=e,n=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("thead",Object.assign({ref:l,className:(0,a.tremorTwMerge)(s("root"),"text-left","text-tremor-content","dark:text-dark-tremor-content",i)},n),o))});l.displayName="TableHead",e.s(["TableHead",0,l],427612)},64848,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let s=(0,e.i(673706).makeClassName)("TableHeaderCell"),l=r.default.forwardRef((e,l)=>{let{children:o,className:i}=e,n=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("th",Object.assign({ref:l,className:(0,a.tremorTwMerge)(s("root"),"whitespace-nowrap text-left font-semibold top-0 px-4 py-3.5","text-tremor-content-strong","dark:text-dark-tremor-content-strong",i)},n),o))});l.displayName="TableHeaderCell",e.s(["TableHeaderCell",0,l],64848)},942232,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let s=(0,e.i(673706).makeClassName)("TableBody"),l=r.default.forwardRef((e,l)=>{let{children:o,className:i}=e,n=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tbody",Object.assign({ref:l,className:(0,a.tremorTwMerge)(s("root"),"align-top divide-y","divide-tremor-border","dark:divide-dark-tremor-border",i)},n),o))});l.displayName="TableBody",e.s(["TableBody",0,l],942232)},496020,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let s=(0,e.i(673706).makeClassName)("TableRow"),l=r.default.forwardRef((e,l)=>{let{children:o,className:i}=e,n=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tr",Object.assign({ref:l,className:(0,a.tremorTwMerge)(s("row"),i)},n),o))});l.displayName="TableRow",e.s(["TableRow",0,l],496020)},977572,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let s=(0,e.i(673706).makeClassName)("TableCell"),l=r.default.forwardRef((e,l)=>{let{children:o,className:i}=e,n=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("td",Object.assign({ref:l,className:(0,a.tremorTwMerge)(s("root"),"align-middle whitespace-nowrap text-left p-4",i)},n),o))});l.displayName="TableCell",e.s(["TableCell",0,l],977572)},68155,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"}))});e.s(["TrashIcon",0,r],68155)},728889,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(829087),s=e.i(480731),l=e.i(444755),o=e.i(673706),i=e.i(95779);let n={xs:{paddingX:"px-1.5",paddingY:"py-1.5"},sm:{paddingX:"px-1.5",paddingY:"py-1.5"},md:{paddingX:"px-2",paddingY:"py-2"},lg:{paddingX:"px-2",paddingY:"py-2"},xl:{paddingX:"px-2.5",paddingY:"py-2.5"}},d={xs:{height:"h-3",width:"w-3"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-7",width:"w-7"},xl:{height:"h-9",width:"w-9"}},c={simple:{rounded:"",border:"",ring:"",shadow:""},light:{rounded:"rounded-tremor-default",border:"",ring:"",shadow:""},shadow:{rounded:"rounded-tremor-default",border:"border",ring:"",shadow:"shadow-tremor-card dark:shadow-dark-tremor-card"},solid:{rounded:"rounded-tremor-default",border:"border-2",ring:"ring-1",shadow:""},outlined:{rounded:"rounded-tremor-default",border:"border",ring:"ring-2",shadow:""}},u=(0,o.makeClassName)("Icon"),m=r.default.forwardRef((e,m)=>{let{icon:g,variant:h="simple",tooltip:f,size:b=s.Sizes.SM,color:x,className:p}=e,v=(0,t.__rest)(e,["icon","variant","tooltip","size","color","className"]),C=((e,t)=>{switch(e){case"simple":return{textColor:t?(0,o.getColorClassNames)(t,i.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:"",borderColor:"",ringColor:""};case"light":return{textColor:t?(0,o.getColorClassNames)(t,i.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,l.tremorTwMerge)((0,o.getColorClassNames)(t,i.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand-muted dark:bg-dark-tremor-brand-muted",borderColor:"",ringColor:""};case"shadow":return{textColor:t?(0,o.getColorClassNames)(t,i.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,l.tremorTwMerge)((0,o.getColorClassNames)(t,i.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:"border-tremor-border dark:border-dark-tremor-border",ringColor:""};case"solid":return{textColor:t?(0,o.getColorClassNames)(t,i.colorPalette.text).textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,l.tremorTwMerge)((0,o.getColorClassNames)(t,i.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand dark:bg-dark-tremor-brand",borderColor:"border-tremor-brand-inverted dark:border-dark-tremor-brand-inverted",ringColor:"ring-tremor-ring dark:ring-dark-tremor-ring"};case"outlined":return{textColor:t?(0,o.getColorClassNames)(t,i.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,l.tremorTwMerge)((0,o.getColorClassNames)(t,i.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:t?(0,o.getColorClassNames)(t,i.colorPalette.ring).borderColor:"border-tremor-brand-subtle dark:border-dark-tremor-brand-subtle",ringColor:t?(0,l.tremorTwMerge)((0,o.getColorClassNames)(t,i.colorPalette.ring).ringColor,"ring-opacity-40"):"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"}}})(h,x),{tooltipProps:w,getReferenceProps:k}=(0,a.useTooltip)();return r.default.createElement("span",Object.assign({ref:(0,o.mergeRefs)([m,w.refs.setReference]),className:(0,l.tremorTwMerge)(u("root"),"inline-flex shrink-0 items-center justify-center",C.bgColor,C.textColor,C.borderColor,C.ringColor,c[h].rounded,c[h].border,c[h].shadow,c[h].ring,n[b].paddingX,n[b].paddingY,p)},k,v),r.default.createElement(a.default,Object.assign({text:f},w)),r.default.createElement(g,{className:(0,l.tremorTwMerge)(u("icon"),"shrink-0",d[b].height,d[b].width)}))});m.displayName="Icon",e.s(["default",0,m],728889)},752978,e=>{"use strict";var t=e.i(728889);e.s(["Icon",()=>t.default])},591935,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"}))});e.s(["PencilAltIcon",0,r],591935)},991124,e=>{"use strict";let t=(0,e.i(475254).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["default",0,t])},678784,678745,e=>{"use strict";let t=(0,e.i(475254).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",0,t],678745),e.s(["CheckIcon",0,t],678784)},118366,e=>{"use strict";var t=e.i(991124);e.s(["CopyIcon",()=>t.default])},751904,e=>{"use strict";var t=e.i(401361);e.s(["EditOutlined",()=>t.default])},91979,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z"}}]},name:"reload",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["ReloadOutlined",0,l],91979)},564897,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"minus-circle",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["MinusCircleOutlined",0,l],564897)},848725,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"}))});e.s(["EyeIcon",0,r],848725)},292335,122520,165615,e=>{"use strict";let t={NONE:"none",API_KEY:"api_key",BEARER_TOKEN:"bearer_token",TOKEN:"token",BASIC:"basic",OAUTH2:"oauth2",AWS_SIGV4:"aws_sigv4"},r={SSE:"sse",HTTP:"http",STDIO:"stdio",OPENAPI:"openapi"};e.s(["AUTH_TYPE",0,t,"OAUTH_FLOW",0,{INTERACTIVE:"interactive",M2M:"m2m"},"TRANSPORT",0,r,"handleAuth",0,e=>null==e?t.NONE:e,"handleTransport",0,(e,t)=>null==e?r.SSE:t&&e!==r.STDIO?r.OPENAPI:e],292335),e.s(["extractErrorMessage",0,function(e){if(e instanceof Error)return e.message;if(e&&"object"==typeof e){let t=e.detail;return"string"==typeof t?t:Array.isArray(t)?t.map(e=>e&&"object"==typeof e?"string"==typeof e.msg?e.msg:JSON.stringify(e):String(e)).join("; "):t&&"object"==typeof t&&"string"==typeof t.error?t.error:"string"==typeof e.message?e.message:JSON.stringify(e)}return String(e)}],122520);let a=e=>{let t=new Uint8Array(e),r="";return t.forEach(e=>r+=String.fromCharCode(e)),btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")},s=async e=>{let t=new TextEncoder().encode(e);return a(await window.crypto.subtle.digest("SHA-256",t))};e.s(["generateCodeChallenge",0,s,"generateCodeVerifier",0,()=>{let e=new Uint8Array(32);return window.crypto.getRandomValues(e),a(e.buffer)}],165615)},54943,e=>{"use strict";let t=(0,e.i(475254).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["default",0,t])},987432,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z"}}]},name:"save",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["SaveOutlined",0,l],987432)},995926,e=>{"use strict";var t=e.i(841947);e.s(["XIcon",()=>t.default])},546467,e=>{"use strict";let t=(0,e.i(475254).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["default",0,t])},750113,e=>{"use strict";var t=e.i(684024);e.s(["QuestionCircleOutlined",()=>t.default])},988846,e=>{"use strict";var t=e.i(54943);e.s(["SearchIcon",()=>t.default])},328196,e=>{"use strict";var t=e.i(361653);e.s(["AlertCircleIcon",()=>t.default])},302202,e=>{"use strict";let t=(0,e.i(475254).default)("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);e.s(["ServerIcon",0,t],302202)},54131,634831,438100,e=>{"use strict";var t=e.i(399219);e.s(["ChevronUpIcon",()=>t.default],54131);var r=e.i(546467);e.s(["ExternalLinkIcon",()=>r.default],634831);let a=(0,e.i(475254).default)("key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]]);e.s(["KeyIcon",0,a],438100)},245094,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48zm-194.9 6.1l192-161c3.8-3.2 3.8-9.1 0-12.3l-192-160.9A7.95 7.95 0 00308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 00-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"code",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["CodeOutlined",0,l],245094)},458505,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z"}}]},name:"dollar",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["DollarOutlined",0,l],458505)},903446,e=>{"use strict";let t=(0,e.i(475254).default)("settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["default",0,t])},440987,e=>{"use strict";var t=e.i(903446);e.s(["SettingsIcon",()=>t.default])},338468,e=>{"use strict";var t=e.i(843476);e.i(111790);var r=e.i(280881),a=e.i(135214);e.s(["default",0,()=>{let{accessToken:e,userRole:s,userId:l}=(0,a.default)();return(0,t.jsx)(r.MCPServers,{accessToken:e,userRole:s,userID:l})}])}]); \ No newline at end of file + `]:Object.assign({},{background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:c,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"})}}})((0,d.mergeToken)(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:r(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"}))},e=>{let{colorFillContent:t,colorFill:r}=e;return{color:t,colorGradientEnd:r,gradientFromColor:t,gradientToColor:r,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),p=e=>{let{prefixCls:a,className:s,style:l,rows:o=0}=e,i=Array.from({length:o}).map((r,a)=>t.createElement("li",{key:a,style:{width:((e,t)=>{let{width:r,rows:a=2}=t;return Array.isArray(r)?r[e]:a-1===e?r:void 0})(a,e)}}));return t.createElement("ul",{className:(0,r.default)(a,s),style:l},i)},v=({prefixCls:e,className:a,width:s,style:l})=>t.createElement("h3",{className:(0,r.default)(e,a),style:Object.assign({width:s},l)});function C(e){return e&&"object"==typeof e?e:{}}let w=e=>{let{prefixCls:s,loading:o,className:i,rootClassName:n,style:d,children:c,avatar:u=!1,title:m=!0,paragraph:g=!0,active:h,round:f}=e,{getPrefixCls:b,direction:w,className:k,style:y}=(0,a.useComponentConfig)("skeleton"),j=b("skeleton",s),[N,O,M]=x(j);if(o||!("loading"in e)){let e,a,s=!!u,o=!!m,c=!!g;if(s){let r=Object.assign(Object.assign({prefixCls:`${j}-avatar`},o&&!c?{size:"large",shape:"square"}:{size:"large",shape:"circle"}),C(u));e=t.createElement("div",{className:`${j}-header`},t.createElement(l,Object.assign({},r)))}if(o||c){let e,r;if(o){let r=Object.assign(Object.assign({prefixCls:`${j}-title`},!s&&c?{width:"38%"}:s&&c?{width:"50%"}:{}),C(m));e=t.createElement(v,Object.assign({},r))}if(c){let e,a=Object.assign(Object.assign({prefixCls:`${j}-paragraph`},(e={},s&&o||(e.width="61%"),!s&&o?e.rows=3:e.rows=2,e)),C(g));r=t.createElement(p,Object.assign({},a))}a=t.createElement("div",{className:`${j}-content`},e,r)}let b=(0,r.default)(j,{[`${j}-with-avatar`]:s,[`${j}-active`]:h,[`${j}-rtl`]:"rtl"===w,[`${j}-round`]:f},k,i,n,O,M);return N(t.createElement("div",{className:b,style:Object.assign(Object.assign({},y),d)},e,a))}return null!=c?c:null};w.Button=e=>{let{prefixCls:o,className:i,rootClassName:n,active:d,block:c=!1,size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",o),[h,f,b]=x(g),p=(0,s.default)(e,["prefixCls"]),v=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},i,n,f,b);return h(t.createElement("div",{className:v},t.createElement(l,Object.assign({prefixCls:`${g}-button`,size:u},p))))},w.Avatar=e=>{let{prefixCls:o,className:i,rootClassName:n,active:d,shape:c="circle",size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",o),[h,f,b]=x(g),p=(0,s.default)(e,["prefixCls","className"]),v=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d},i,n,f,b);return h(t.createElement("div",{className:v},t.createElement(l,Object.assign({prefixCls:`${g}-avatar`,shape:c,size:u},p))))},w.Input=e=>{let{prefixCls:o,className:i,rootClassName:n,active:d,block:c,size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",o),[h,f,b]=x(g),p=(0,s.default)(e,["prefixCls"]),v=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},i,n,f,b);return h(t.createElement("div",{className:v},t.createElement(l,Object.assign({prefixCls:`${g}-input`,size:u},p))))},w.Image=e=>{let{prefixCls:s,className:l,rootClassName:o,style:i,active:n}=e,{getPrefixCls:d}=t.useContext(a.ConfigContext),c=d("skeleton",s),[u,m,g]=x(c),h=(0,r.default)(c,`${c}-element`,{[`${c}-active`]:n},l,o,m,g);return u(t.createElement("div",{className:h},t.createElement("div",{className:(0,r.default)(`${c}-image`,l),style:i},t.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${c}-image-svg`},t.createElement("title",null,"Image placeholder"),t.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:`${c}-image-path`})))))},w.Node=e=>{let{prefixCls:s,className:l,rootClassName:o,style:i,active:n,children:d}=e,{getPrefixCls:c}=t.useContext(a.ConfigContext),u=c("skeleton",s),[m,g,h]=x(u),f=(0,r.default)(u,`${u}-element`,{[`${u}-active`]:n},g,l,o,h);return m(t.createElement("div",{className:f},t.createElement("div",{className:(0,r.default)(`${u}-image`,l),style:i},d)))},e.s(["default",0,w],185793)},959013,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["default",0,l],959013)},269200,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let s=(0,e.i(673706).makeClassName)("Table"),l=r.default.forwardRef((e,l)=>{let{children:o,className:i}=e,n=(0,t.__rest)(e,["children","className"]);return r.default.createElement("div",{className:(0,a.tremorTwMerge)(s("root"),"overflow-auto",i)},r.default.createElement("table",Object.assign({ref:l,className:(0,a.tremorTwMerge)(s("table"),"w-full text-tremor-default","text-tremor-content","dark:text-dark-tremor-content")},n),o))});l.displayName="Table",e.s(["Table",0,l],269200)},427612,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let s=(0,e.i(673706).makeClassName)("TableHead"),l=r.default.forwardRef((e,l)=>{let{children:o,className:i}=e,n=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("thead",Object.assign({ref:l,className:(0,a.tremorTwMerge)(s("root"),"text-left","text-tremor-content","dark:text-dark-tremor-content",i)},n),o))});l.displayName="TableHead",e.s(["TableHead",0,l],427612)},64848,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let s=(0,e.i(673706).makeClassName)("TableHeaderCell"),l=r.default.forwardRef((e,l)=>{let{children:o,className:i}=e,n=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("th",Object.assign({ref:l,className:(0,a.tremorTwMerge)(s("root"),"whitespace-nowrap text-left font-semibold top-0 px-4 py-3.5","text-tremor-content-strong","dark:text-dark-tremor-content-strong",i)},n),o))});l.displayName="TableHeaderCell",e.s(["TableHeaderCell",0,l],64848)},942232,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let s=(0,e.i(673706).makeClassName)("TableBody"),l=r.default.forwardRef((e,l)=>{let{children:o,className:i}=e,n=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tbody",Object.assign({ref:l,className:(0,a.tremorTwMerge)(s("root"),"align-top divide-y","divide-tremor-border","dark:divide-dark-tremor-border",i)},n),o))});l.displayName="TableBody",e.s(["TableBody",0,l],942232)},496020,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let s=(0,e.i(673706).makeClassName)("TableRow"),l=r.default.forwardRef((e,l)=>{let{children:o,className:i}=e,n=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tr",Object.assign({ref:l,className:(0,a.tremorTwMerge)(s("row"),i)},n),o))});l.displayName="TableRow",e.s(["TableRow",0,l],496020)},977572,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let s=(0,e.i(673706).makeClassName)("TableCell"),l=r.default.forwardRef((e,l)=>{let{children:o,className:i}=e,n=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("td",Object.assign({ref:l,className:(0,a.tremorTwMerge)(s("root"),"align-middle whitespace-nowrap text-left p-4",i)},n),o))});l.displayName="TableCell",e.s(["TableCell",0,l],977572)},68155,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"}))});e.s(["TrashIcon",0,r],68155)},728889,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(829087),s=e.i(480731),l=e.i(444755),o=e.i(673706),i=e.i(95779);let n={xs:{paddingX:"px-1.5",paddingY:"py-1.5"},sm:{paddingX:"px-1.5",paddingY:"py-1.5"},md:{paddingX:"px-2",paddingY:"py-2"},lg:{paddingX:"px-2",paddingY:"py-2"},xl:{paddingX:"px-2.5",paddingY:"py-2.5"}},d={xs:{height:"h-3",width:"w-3"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-7",width:"w-7"},xl:{height:"h-9",width:"w-9"}},c={simple:{rounded:"",border:"",ring:"",shadow:""},light:{rounded:"rounded-tremor-default",border:"",ring:"",shadow:""},shadow:{rounded:"rounded-tremor-default",border:"border",ring:"",shadow:"shadow-tremor-card dark:shadow-dark-tremor-card"},solid:{rounded:"rounded-tremor-default",border:"border-2",ring:"ring-1",shadow:""},outlined:{rounded:"rounded-tremor-default",border:"border",ring:"ring-2",shadow:""}},u=(0,o.makeClassName)("Icon"),m=r.default.forwardRef((e,m)=>{let{icon:g,variant:h="simple",tooltip:f,size:b=s.Sizes.SM,color:x,className:p}=e,v=(0,t.__rest)(e,["icon","variant","tooltip","size","color","className"]),C=((e,t)=>{switch(e){case"simple":return{textColor:t?(0,o.getColorClassNames)(t,i.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:"",borderColor:"",ringColor:""};case"light":return{textColor:t?(0,o.getColorClassNames)(t,i.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,l.tremorTwMerge)((0,o.getColorClassNames)(t,i.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand-muted dark:bg-dark-tremor-brand-muted",borderColor:"",ringColor:""};case"shadow":return{textColor:t?(0,o.getColorClassNames)(t,i.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,l.tremorTwMerge)((0,o.getColorClassNames)(t,i.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:"border-tremor-border dark:border-dark-tremor-border",ringColor:""};case"solid":return{textColor:t?(0,o.getColorClassNames)(t,i.colorPalette.text).textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,l.tremorTwMerge)((0,o.getColorClassNames)(t,i.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand dark:bg-dark-tremor-brand",borderColor:"border-tremor-brand-inverted dark:border-dark-tremor-brand-inverted",ringColor:"ring-tremor-ring dark:ring-dark-tremor-ring"};case"outlined":return{textColor:t?(0,o.getColorClassNames)(t,i.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,l.tremorTwMerge)((0,o.getColorClassNames)(t,i.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:t?(0,o.getColorClassNames)(t,i.colorPalette.ring).borderColor:"border-tremor-brand-subtle dark:border-dark-tremor-brand-subtle",ringColor:t?(0,l.tremorTwMerge)((0,o.getColorClassNames)(t,i.colorPalette.ring).ringColor,"ring-opacity-40"):"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"}}})(h,x),{tooltipProps:w,getReferenceProps:k}=(0,a.useTooltip)();return r.default.createElement("span",Object.assign({ref:(0,o.mergeRefs)([m,w.refs.setReference]),className:(0,l.tremorTwMerge)(u("root"),"inline-flex shrink-0 items-center justify-center",C.bgColor,C.textColor,C.borderColor,C.ringColor,c[h].rounded,c[h].border,c[h].shadow,c[h].ring,n[b].paddingX,n[b].paddingY,p)},k,v),r.default.createElement(a.default,Object.assign({text:f},w)),r.default.createElement(g,{className:(0,l.tremorTwMerge)(u("icon"),"shrink-0",d[b].height,d[b].width)}))});m.displayName="Icon",e.s(["default",0,m],728889)},752978,e=>{"use strict";var t=e.i(728889);e.s(["Icon",()=>t.default])},591935,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"}))});e.s(["PencilAltIcon",0,r],591935)},991124,e=>{"use strict";let t=(0,e.i(475254).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["default",0,t])},678784,678745,e=>{"use strict";let t=(0,e.i(475254).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",0,t],678745),e.s(["CheckIcon",0,t],678784)},118366,e=>{"use strict";var t=e.i(991124);e.s(["CopyIcon",()=>t.default])},751904,e=>{"use strict";var t=e.i(401361);e.s(["EditOutlined",()=>t.default])},91979,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z"}}]},name:"reload",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["ReloadOutlined",0,l],91979)},564897,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"minus-circle",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["MinusCircleOutlined",0,l],564897)},848725,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"}))});e.s(["EyeIcon",0,r],848725)},292335,122520,165615,779129,e=>{"use strict";let t={NONE:"none",API_KEY:"api_key",BEARER_TOKEN:"bearer_token",TOKEN:"token",BASIC:"basic",OAUTH2:"oauth2",AWS_SIGV4:"aws_sigv4"},r={SSE:"sse",HTTP:"http",STDIO:"stdio",OPENAPI:"openapi"};e.s(["AUTH_TYPE",0,t,"OAUTH_FLOW",0,{INTERACTIVE:"interactive",M2M:"m2m"},"TRANSPORT",0,r,"handleAuth",0,e=>null==e?t.NONE:e,"handleTransport",0,(e,t)=>null==e?r.SSE:t&&e!==r.STDIO?r.OPENAPI:e],292335),e.s(["extractErrorMessage",0,function(e){if(e instanceof Error)return e.message;if(e&&"object"==typeof e){let t=e.detail;return"string"==typeof t?t:Array.isArray(t)?t.map(e=>e&&"object"==typeof e?"string"==typeof e.msg?e.msg:JSON.stringify(e):String(e)).join("; "):t&&"object"==typeof t&&"string"==typeof t.error?t.error:"string"==typeof e.message?e.message:JSON.stringify(e)}return String(e)}],122520);let a=e=>{let t=new Uint8Array(e),r="";return t.forEach(e=>r+=String.fromCharCode(e)),btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")},s=async e=>{let t=new TextEncoder().encode(e);return a(await window.crypto.subtle.digest("SHA-256",t))};e.s(["generateCodeChallenge",0,s,"generateCodeVerifier",0,()=>{let e=new Uint8Array(32);return window.crypto.getRandomValues(e),a(e.buffer)}],165615),e.i(764205),e.s(["buildCallbackUrl",0,()=>{{let e=window.location.pathname||"",t=e.indexOf("/ui"),r=t>=0?e.slice(0,t+3).replace(/\/+$/,""):"";return`${window.location.origin}${r}/mcp/oauth/callback`}},"clearStorage",0,(...e)=>{e.forEach(e=>{try{window.sessionStorage.removeItem(e)}catch(e){}})}],779129)},54943,e=>{"use strict";let t=(0,e.i(475254).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["default",0,t])},987432,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z"}}]},name:"save",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["SaveOutlined",0,l],987432)},995926,e=>{"use strict";var t=e.i(841947);e.s(["XIcon",()=>t.default])},546467,e=>{"use strict";let t=(0,e.i(475254).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["default",0,t])},750113,e=>{"use strict";var t=e.i(684024);e.s(["QuestionCircleOutlined",()=>t.default])},988846,e=>{"use strict";var t=e.i(54943);e.s(["SearchIcon",()=>t.default])},328196,e=>{"use strict";var t=e.i(361653);e.s(["AlertCircleIcon",()=>t.default])},302202,e=>{"use strict";let t=(0,e.i(475254).default)("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);e.s(["ServerIcon",0,t],302202)},54131,634831,438100,e=>{"use strict";var t=e.i(399219);e.s(["ChevronUpIcon",()=>t.default],54131);var r=e.i(546467);e.s(["ExternalLinkIcon",()=>r.default],634831);let a=(0,e.i(475254).default)("key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]]);e.s(["KeyIcon",0,a],438100)},245094,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48zm-194.9 6.1l192-161c3.8-3.2 3.8-9.1 0-12.3l-192-160.9A7.95 7.95 0 00308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 00-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"code",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["CodeOutlined",0,l],245094)},458505,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z"}}]},name:"dollar",theme:"outlined"};var s=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(s.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["DollarOutlined",0,l],458505)},903446,e=>{"use strict";let t=(0,e.i(475254).default)("settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["default",0,t])},440987,e=>{"use strict";var t=e.i(903446);e.s(["SettingsIcon",()=>t.default])},338468,e=>{"use strict";var t=e.i(843476);e.i(111790);var r=e.i(280881),a=e.i(135214);e.s(["default",0,()=>{let{accessToken:e,userRole:s,userId:l}=(0,a.default)();return(0,t.jsx)(r.MCPServers,{accessToken:e,userRole:s,userID:l})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/02dhx~4jy22xz.js b/litellm/proxy/_experimental/out/_next/static/chunks/02dhx~4jy22xz.js deleted file mode 100644 index 07fe6b3c5dd..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/02dhx~4jy22xz.js +++ /dev/null @@ -1,2 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,964893,(e,t,r)=>{"use strict";var n=e.r(174080),a={stream:!0},l=Object.prototype.hasOwnProperty;function u(t){var r=e.r(t);return"function"!=typeof r.then||"fulfilled"===r.status?null:(r.then(function(e){r.status="fulfilled",r.value=e},function(e){r.status="rejected",r.reason=e}),r)}var i=new WeakSet,o=new WeakSet;function c(){}function s(t){for(var r=t[1],n=[],a=0;af||35===f||114===f||120===f?(h=f,f=3,c++):(h=0,f=3);continue;case 2:44===(_=o[c++])?f=4:p=p<<4|(96<_?_-87:_-48);continue;case 3:_=o.indexOf(10,c);break;case 4:(_=c+p)>o.length&&(_=-1)}var v=o.byteOffset+c;if(-1<_)p=new Uint8Array(o.buffer,v,_-c),98===h?Z(e,i,_===g?p:p.slice()):function(e,t,r,n,l,u){switch(n){case 65:Z(e,r,el(l,u).buffer);return;case 79:eu(e,r,l,u,Int8Array,1);return;case 111:Z(e,r,0===l.length?u:el(l,u));return;case 85:eu(e,r,l,u,Uint8ClampedArray,1);return;case 83:eu(e,r,l,u,Int16Array,2);return;case 115:eu(e,r,l,u,Uint16Array,2);return;case 76:eu(e,r,l,u,Int32Array,4);return;case 108:eu(e,r,l,u,Uint32Array,4);return;case 71:eu(e,r,l,u,Float32Array,4);return;case 103:eu(e,r,l,u,Float64Array,8);return;case 77:eu(e,r,l,u,BigInt64Array,8);return;case 109:eu(e,r,l,u,BigUint64Array,8);return;case 86:eu(e,r,l,u,DataView,1);return}t=e._stringDecoder;for(var i="",o=0;o{"use strict";t.exports=e.r(964893)},235326,(e,t,r)=>{"use strict";t.exports=e.r(121413)},451191,(e,t,r)=>{"use strict";function n(e,t=!0){return e.pathname+e.search+(t?e.hash:"")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createHrefFromUrl",{enumerable:!0,get:function(){return n}}),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},126935,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HTML_LIMITED_BOT_UA_RE",{enumerable:!0,get:function(){return n}});let n=/[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i},82604,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTML_LIMITED_BOT_UA_RE:function(){return l.HTML_LIMITED_BOT_UA_RE},HTML_LIMITED_BOT_UA_RE_STRING:function(){return i},getBotType:function(){return s},isBot:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(126935),u=/Googlebot(?!-)|Googlebot$/i,i=l.HTML_LIMITED_BOT_UA_RE.source;function o(e){return l.HTML_LIMITED_BOT_UA_RE.test(e)}function c(e){return u.test(e)||o(e)}function s(e){return u.test(e)?"dom":o(e)?"html":void 0}},388540,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a,l={ACTION_HMR_REFRESH:function(){return f},ACTION_NAVIGATE:function(){return o},ACTION_REFRESH:function(){return i},ACTION_RESTORE:function(){return c},ACTION_SERVER_ACTION:function(){return d},ACTION_SERVER_PATCH:function(){return s},PrefetchKind:function(){return h},ScrollBehavior:function(){return p}};for(var u in l)Object.defineProperty(r,u,{enumerable:!0,get:l[u]});let i="refresh",o="navigate",c="restore",s="server-patch",f="hmr-refresh",d="server-action";var h=((n={}).AUTO="auto",n.FULL="full",n),p=((a={})[a.Default=0]="Default",a[a.NoScroll=1]="NoScroll",a);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},564245,(e,t,r)=>{"use strict";function n(e){return null!==e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isThenable",{enumerable:!0,get:function(){return n}})},941538,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={dispatchAppRouterAction:function(){return c},dispatchGestureState:function(){return f},refreshOnInstantNavigationUnlock:function(){return o},useActionQueue:function(){return d}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(151836)._(e.r(271645)),u=e.r(564245);e.r(388540);let i=null;function o(){}function c(e){if(null===i)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});i(e)}let s=null;function f(e){if(null===s)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});s(e)}function d(e){let[t,r]=l.default.useState(e.state),[n,a]=(0,l.useOptimistic)(t);"u">typeof window&&(s=a),"u">typeof window&&(i=t=>e.dispatch(t,r));let o=(0,l.useMemo)(()=>n,[n]);return(0,u.isThenable)(o)?(0,l.use)(o):o}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},132120,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"callServer",{enumerable:!0,get:function(){return u}});let n=e.r(271645),a=e.r(388540),l=e.r(941538);async function u(e,t){return new Promise((r,u)=>{(0,n.startTransition)(()=>{(0,l.dispatchAppRouterAction)({type:a.ACTION_SERVER_ACTION,actionId:e,actionArgs:t,resolve:r,reject:u})})})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},92245,(e,t,r)=>{"use strict";let n;Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findSourceMapURL",{enumerable:!0,get:function(){return n}});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},767764,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HEAD_REQUEST_KEY:function(){return i},ROOT_SEGMENT_REQUEST_KEY:function(){return u},appendSegmentRequestKeyPart:function(){return c},convertSegmentPathToStaticExportFilename:function(){return d},createSegmentRequestKeyPart:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(813258),u="",i="/_head";function o(e){if("string"==typeof e)return e.startsWith(l.PAGE_SEGMENT_KEY)?l.PAGE_SEGMENT_KEY:"/_not-found"===e?"_not-found":f(e);let t=e[0];return"$"+e[2]+"$"+f(t)}function c(e,t,r){return e+"/"+("children"===t?r:`@${f(t)}/${r}`)}let s=/^[a-zA-Z0-9\-_@]+$/;function f(e){return s.test(e)?e:"!"+btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function d(e){return`__next${e.replace(/\//g,".")}.txt`}},33906,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={doesStaticSegmentAppearInURL:function(){return f},getCacheKeyForDynamicParam:function(){return d},getParamValueFromCacheKey:function(){return p},getRenderedPathname:function(){return c},getRenderedSearch:function(){return o},parseDynamicParamFromURLPart:function(){return s},urlSearchParamsToParsedUrlQuery:function(){return y},urlToUrlWithoutFlightMarker:function(){return h}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(813258),u=e.r(767764),i=e.r(621768);function o(e){let t=e.headers.get(i.NEXT_REWRITTEN_QUERY_HEADER);return null!==t?""===t?"":"?"+t:h(new URL(e.url)).search}function c(e){return e.headers.get(i.NEXT_REWRITTEN_PATH_HEADER)??h(new URL(e.url)).pathname}function s(e,t,r){switch(e){case"c":return rencodeURIComponent(e)):[];case"ci(..)(..)":case"ci(.)":case"ci(..)":case"ci(...)":{let n=e.length-2;return r0===t?encodeURIComponent(e.slice(n)):encodeURIComponent(e)):[]}case"oc":return rencodeURIComponent(e)):null;case"d":if(r>=t.length)return"";return encodeURIComponent(t[r]);case"di(..)(..)":case"di(.)":case"di(..)":case"di(...)":{let n=e.length-2;if(r>=t.length)return"";return encodeURIComponent(t[r].slice(n))}default:return""}}function f(e){return!(e===u.ROOT_SEGMENT_REQUEST_KEY||e.startsWith(l.PAGE_SEGMENT_KEY)||"("===e[0]&&e.endsWith(")"))&&e!==l.DEFAULT_SEGMENT_KEY&&"/_not-found"!==e}function d(e,t){return"string"==typeof e?(0,l.addSearchParamsIfPageSegment)(e,Object.fromEntries(new URLSearchParams(t))):null===e?"":e.join("/")}function h(e){let t=new URL(e);if(t.searchParams.delete(i.NEXT_RSC_UNION_QUERY),t.pathname.endsWith(".txt")){let{pathname:e}=t,r=e.endsWith("/index.txt")?10:4;t.pathname=e.slice(0,-r)}return t}function p(e,t){return"c"===t||"oc"===t?e.split("/"):e}function y(e){let t={};for(let[r,n]of e.entries())void 0===t[r]?t[r]=n:Array.isArray(t[r])?t[r].push(n):t[r]=[t[r],n];return t}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},450590,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createInitialRSCPayloadFromFallbackPrerender:function(){return c},getFlightDataPartsFromPath:function(){return o},getNextFlightSegmentPath:function(){return s},normalizeFlightData:function(){return f},prepareFlightRouterStateForRequest:function(){return d}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(813258),u=e.r(33906),i=e.r(451191);function o(e){let[t,r,n,a]=e.slice(-4),l=e.slice(0,-4);return{pathToSegment:l.slice(0,-1),segmentPath:l,segment:l[l.length-1]??"",tree:t,seedData:r,head:n,isHeadPartial:a,isRootRender:4===e.length}}function c(e,t){let r=(0,u.getRenderedPathname)(e),n=(0,u.getRenderedSearch)(e),a=(0,i.createHrefFromUrl)(new URL(location.href)),l=t.f[0],o=l[0],c={c:a.split("/"),q:n,i:t.i,f:[[function e(t,r,n,a){let l,i,o=t[0];if("string"==typeof o)l=o,i=(0,u.doesStaticSegmentAppearInURL)(o);else{let e=o[0],t=o[2],c=o[3],s=(0,u.parseDynamicParamFromURLPart)(t,n,a);l=[e,(0,u.getCacheKeyForDynamicParam)(s,r),t,c],i=!0}let c=i?a+1:a,s=t[1],f={};for(let t in s){let a=s[t];f[t]=e(a,r,n,c)}return[l,f,null,t[3],t[4]]}(o,n,r.split("/").filter(e=>""!==e),0),l[1],l[2],l[2]]],m:t.m,G:t.G,S:t.S,h:t.h};return t.b&&(c.b=t.b),c}function s(e){return e.slice(2)}function f(e){return"string"==typeof e?e:e.map(e=>o(e))}function d(e,t){return t?encodeURIComponent(JSON.stringify(e)):encodeURIComponent(JSON.stringify(function e(t){let[r,n,a,u,i]=t,o=function(e){if("string"==typeof e)return e.startsWith(l.PAGE_SEGMENT_KEY+"?")?l.PAGE_SEGMENT_KEY:e;let[t,r,n]=e;return[t,r,n,null]}(r),c={};for(let[t,r]of Object.entries(n))c[t]=e(r);let s=[o,c];return u&&(s[2]=null,s[3]=u),void 0!==i&&(s[4]=i),s}(e)))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},419921,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={djb2Hash:function(){return l},hexHash:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function l(e){let t=5381;for(let r=0;r>>0}function u(e){return l(e).toString(36).slice(0,5)}},686051,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"computeCacheBustingSearchParam",{enumerable:!0,get:function(){return a}});let n=e.r(419921);function a(e,t,r,a){return(void 0===e||"0"===e)&&void 0===t&&void 0===r&&void 0===a?"":(0,n.hexHash)([e||"0",t||"0",r||"0",a||"0"].join(","))}},288093,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={setCacheBustingSearchParam:function(){return i},setCacheBustingSearchParamWithHash:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(686051),u=e.r(621768),i=(e,t)=>{o(e,(0,l.computeCacheBustingSearchParam)(t[u.NEXT_ROUTER_PREFETCH_HEADER],t[u.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER],t[u.NEXT_ROUTER_STATE_TREE_HEADER],t[u.NEXT_URL]))},o=(e,t)=>{let r=e.search,n=(r.startsWith("?")?r.slice(1):r).split("&").filter(e=>e&&!e.startsWith(`${u.NEXT_RSC_UNION_QUERY}=`));t.length>0?n.push(`${u.NEXT_RSC_UNION_QUERY}=${t}`):n.push(`${u.NEXT_RSC_UNION_QUERY}`),e.search=n.length?`?${n.join("&")}`:""};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},732992,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getNavigationBuildId:function(){return i},setNavigationBuildId:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l="";function u(e){l=e}function i(){return l}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},663416,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return g},APP_DIR_ALIAS:function(){return V},CACHE_ONE_YEAR_SECONDS:function(){return I},DOT_NEXT_ALIAS:function(){return x},ESLINT_DEFAULT_DIRS:function(){return ei},GSP_NO_RETURNED_VALUE:function(){return et},GSSP_COMPONENT_MEMBER_ERROR:function(){return ea},GSSP_NO_RETURNED_VALUE:function(){return er},HTML_CONTENT_TYPE_HEADER:function(){return u},INFINITE_CACHE:function(){return j},INSTRUMENTATION_HOOK_FILENAME:function(){return L},JSON_CONTENT_TYPE_HEADER:function(){return i},MATCHED_PATH_HEADER:function(){return s},MIDDLEWARE_FILENAME:function(){return M},MIDDLEWARE_LOCATION_REGEXP:function(){return F},NEXT_BODY_SUFFIX:function(){return m},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return C},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return P},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return S},NEXT_CACHE_ROOT_PARAM_TAG_ID:function(){return N},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return A},NEXT_CACHE_TAGS_HEADER:function(){return E},NEXT_CACHE_TAG_MAX_ITEMS:function(){return O},NEXT_CACHE_TAG_MAX_LENGTH:function(){return w},NEXT_DATA_SUFFIX:function(){return _},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return c},NEXT_META_SUFFIX:function(){return v},NEXT_NAV_DEPLOYMENT_ID_HEADER:function(){return R},NEXT_QUERY_PARAM_PREFIX:function(){return o},NEXT_RESUME_HEADER:function(){return b},NEXT_RESUME_STATE_LENGTH_HEADER:function(){return T},NON_STANDARD_NODE_ENV:function(){return el},PAGES_DIR_ALIAS:function(){return k},PRERENDER_REVALIDATE_HEADER:function(){return f},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return d},PROXY_FILENAME:function(){return D},PROXY_LOCATION_REGEXP:function(){return U},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return W},ROOT_DIR_ALIAS:function(){return H},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return Y},RSC_ACTION_ENCRYPTION_ALIAS:function(){return q},RSC_ACTION_PROXY_ALIAS:function(){return K},RSC_ACTION_VALIDATE_ALIAS:function(){return $},RSC_CACHE_WRAPPER_ALIAS:function(){return X},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return G},RSC_MOD_REF_PROXY_ALIAS:function(){return B},RSC_SEGMENTS_DIR_SUFFIX:function(){return h},RSC_SEGMENT_SUFFIX:function(){return p},RSC_SUFFIX:function(){return y},SERVER_PROPS_EXPORT_ERROR:function(){return ee},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return Q},SERVER_PROPS_SSG_CONFLICT:function(){return J},SERVER_RUNTIME:function(){return eo},SSG_FALLBACK_EXPORT_ERROR:function(){return eu},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return z},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return Z},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return l},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return en},WEBPACK_LAYERS:function(){return ef},WEBPACK_RESOURCE_QUERIES:function(){return ed},WEB_SOCKET_MAX_RECONNECTIONS:function(){return ec}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l="text/plain",u="text/html; charset=utf-8",i="application/json; charset=utf-8",o="nxtP",c="nxtI",s="x-matched-path",f="x-prerender-revalidate",d="x-prerender-revalidate-if-generated",h=".segments",p=".segment.rsc",y=".rsc",g=".action",_=".json",v=".meta",m=".body",R="x-nextjs-deployment-id",E="x-next-cache-tags",P="x-next-revalidated-tags",S="x-next-revalidate-tag-token",b="next-resume",T="x-next-resume-state-length",O=128,w=256,A=1024,C="_N_T_",N="_N_RP_",I=31536e3,j=0xfffffffe,M="middleware",F=`(?:src/)?${M}`,D="proxy",U=`(?:src/)?${D}`,L="instrumentation",k="private-next-pages",x="private-dot-next",H="private-next-root-dir",V="private-next-app-dir",B="private-next-rsc-mod-ref-proxy",$="private-next-rsc-action-validate",K="private-next-rsc-server-reference",X="private-next-rsc-cache-wrapper",G="private-next-rsc-track-dynamic-import",q="private-next-rsc-action-encryption",Y="private-next-rsc-action-client-wrapper",W="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",z="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",Q="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",J="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",Z="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",ee="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",et="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",er="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",en="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",ea="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",el='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',eu="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ei=["app","pages","components","lib","src"],eo={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},ec=12,es={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ef={...es,GROUP:{builtinReact:[es.reactServerComponents,es.actionBrowser],serverOnly:[es.reactServerComponents,es.actionBrowser,es.instrument,es.middleware],neutralTarget:[es.apiNode,es.apiEdge],clientOnly:[es.serverSideRendering,es.appPagesBrowser],bundled:[es.reactServerComponents,es.actionBrowser,es.serverSideRendering,es.appPagesBrowser,es.shared,es.instrument,es.middleware],appPages:[es.reactServerComponents,es.serverSideRendering,es.appPagesBrowser,es.actionBrowser]}},ed={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},606372,(e,t,r)=>{"use strict";function n(e){return(e.then(a),"fulfilled"!==e.status)?null:e.value}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"readVaryParams",{enumerable:!0,get:function(){return n}});let a=()=>{}},522744,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PrefetchHint",{enumerable:!0,get:function(){return a}});var n,a=((n={})[n.HasRuntimePrefetch=1]="HasRuntimePrefetch",n[n.SubtreeHasInstant=2]="SubtreeHasInstant",n[n.SegmentHasLoadingBoundary=4]="SegmentHasLoadingBoundary",n[n.SubtreeHasLoadingBoundary=8]="SubtreeHasLoadingBoundary",n[n.IsRootLayout=16]="IsRootLayout",n[n.ParentInlinedIntoSelf=32]="ParentInlinedIntoSelf",n[n.InlinedIntoChild=64]="InlinedIntoChild",n[n.HeadInlinedIntoSelf=128]="HeadInlinedIntoSelf",n[n.HeadOutlined=256]="HeadOutlined",n)},756019,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"matchSegment",{enumerable:!0,get:function(){return n}});let n=(e,t)=>"string"==typeof e?"string"==typeof t&&e===t:"string"!=typeof t&&e[0]===t[0]&&e[1]===t[1];("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},477048,(e,t,r)=>{"use strict";function n(e,t){let r=new URL(e);return{pathname:r.pathname,search:r.search,nextUrl:t}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createCacheKey",{enumerable:!0,get:function(){return n}}),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},509396,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a,l,u={FetchStrategy:function(){return s},NavigationResultTag:function(){return o},PrefetchPriority:function(){return c}};for(var i in u)Object.defineProperty(r,i,{enumerable:!0,get:u[i]});var o=((n={})[n.MPA=0]="MPA",n[n.Success=1]="Success",n[n.NoOp=2]="NoOp",n[n.Async=3]="Async",n),c=((a={})[a.Intent=2]="Intent",a[a.Default=1]="Default",a[a.Background=0]="Background",a),s=((l={})[l.LoadingBoundary=0]="LoadingBoundary",l[l.PPR=1]="PPR",l[l.PPRRuntime=2]="PPRRuntime",l[l.Full=3]="Full",l);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},511,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={Fallback:function(){return u},createCacheMap:function(){return o},deleteFromCacheMap:function(){return h},deleteMapEntry:function(){return p},getFromCacheMap:function(){return c},isValueExpired:function(){return s},setInCacheMap:function(){return f},setSizeInCacheMap:function(){return y}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(373861),u={},i={};function o(){return{parent:null,key:null,value:null,map:null,prev:null,next:null,size:0}}function c(e,t,r,n,a){let o=function e(t,r,n,a,l,o){let c,f;if(null!==a)c=a.value,f=a.parent;else if(l&&o!==i)c=i,f=null;else return null===n.value?n:s(t,r,n.value)?(p(n),null):n;let d=n.map;if(null!==d){let n=d.get(c);if(void 0!==n){let a=e(t,r,n,f,l,c);if(null!==a)return a}let a=d.get(u);if(void 0!==a)return e(t,r,a,f,l,c)}return null}(e,t,r,n,a,0);return null===o||null===o.value?null:((0,l.lruPut)(o),o.value)}function s(e,t,r){return r.staleAt<=e||r.version{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={cleanup:function(){return h},deleteFromLru:function(){return f},lruPut:function(){return c},updateLruSize:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(511),u=e.r(777709),i=null,o=0;function c(e){if(i===e)return;let t=e.prev,r=e.next;if(null===r||null===t?(o+=e.size,d()):(t.next=r,r.prev=t),null===i)e.prev=e,e.next=e;else{let t=i.prev;e.prev=t,null!==t&&(t.next=e),e.next=i,i.prev=e}i=e}function s(e,t){let r=e.size;e.size=t,null!==e.next&&(o=o-r+t,d())}function f(e){let t=e.next,r=e.prev;null!==t&&null!==r&&(o-=e.size,e.next=null,e.prev=null,i===e?t===i?i=null:(i=t,r.next=t,t.prev=r):(r.next=t,t.prev=r))}function d(){o<=0x3200000||(0,u.pingPrefetchScheduler)()}function h(){if(!(o<=0x3200000))for(;o>0x2d00000&&null!==i;){let e=i.prev;null!==e&&(0,l.deleteMapEntry)(e)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},777709,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={cancelPrefetchTask:function(){return E},isPrefetchTaskDirty:function(){return S},pingPrefetchScheduler:function(){return T},pingPrefetchTask:function(){return C},reschedulePrefetchTask:function(){return P},schedulePrefetchTask:function(){return R},startRevalidationCooldown:function(){return m}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(522744),u=e.r(756019),i=e.r(620896),o=e.r(477048),c=e.r(509396),s=e.r(813258),f=e.r(373861),d="function"==typeof queueMicrotask?queueMicrotask:e=>Promise.resolve().then(e).catch(e=>setTimeout(()=>{throw e})),h=[],p=0,y=0,g=!1,_=null,v=null;function m(){null!==v&&clearTimeout(v),v=setTimeout(()=>{v=null,T()},300)}function R(e,t,r,n,a,l){let u={key:e,treeAtTimeOfPrefetch:t,routeCacheVersion:(0,i.getCurrentRouteCacheVersion)(),segmentCacheVersion:(0,i.getCurrentSegmentCacheVersion)(),priority:n,phase:1,hasBackgroundWork:!1,spawnedRuntimePrefetches:null,fetchStrategy:r,sortId:y++,isCanceled:!1,onInvalidate:a,_heapIndex:-1};return b(u),x(h,u),T(),u}function E(e){e.isCanceled=!0,function(e,t){let r=t._heapIndex;if(-1!==r&&(t._heapIndex=-1,0!==e.length)){let n=e.pop();n!==t&&(e[r]=n,n._heapIndex=r,K(e,n,r))}}(h,e)}function P(e,t,r,n){e.isCanceled=!1,e.phase=1,e.sortId=y++,e.priority=e===_?c.PrefetchPriority.Intent:n,e.treeAtTimeOfPrefetch=t,e.fetchStrategy=r,b(e),-1!==e._heapIndex?B(h,e):x(h,e),T()}function S(e,t,r){return e.routeCacheVersion!==(0,i.getCurrentRouteCacheVersion)()||e.segmentCacheVersion!==(0,i.getCurrentSegmentCacheVersion)()||e.treeAtTimeOfPrefetch!==r||e.key.nextUrl!==t}function b(e){e.priority===c.PrefetchPriority.Intent&&e!==_&&(null!==_&&_.priority!==c.PrefetchPriority.Background&&(_.priority=c.PrefetchPriority.Default,B(h,_)),_=e)}function T(){g||(g=!0,d(N))}function O(e){return null===v&&(e.priority===c.PrefetchPriority.Intent?p<12:p<4)}function w(e){return p++,e.then(e=>null===e?(A(),null):(e.closed.then(A),e.value))}function A(){p--,T()}function C(e){e.isCanceled||-1!==e._heapIndex||(x(h,e),T())}function N(){g=!1;let e=Date.now(),t=H(h);for(;null!==t&&O(t);){t.routeCacheVersion=(0,i.getCurrentRouteCacheVersion)(),t.segmentCacheVersion=(0,i.getCurrentSegmentCacheVersion)();let r=function(e,t){let r=t.key,n=(0,i.readOrCreateRouteCacheEntry)(e,t,r),a=function(e,t,r){switch(r.status){case i.EntryStatus.Empty:w((0,i.fetchRouteOnCacheMiss)(r,t.key)),r.staleAt=e+6e4,r.status=i.EntryStatus.Pending;case i.EntryStatus.Pending:{let e=r.blockedTasks;return null===e?r.blockedTasks=new Set([t]):e.add(t),1}case i.EntryStatus.Rejected:break;case i.EntryStatus.Fulfilled:{let o;if(0!==t.phase)return 2;if(!O(t))return 0;let s=r.tree;switch(o=s.prefetchHints&l.PrefetchHint.SubtreeHasInstant?c.FetchStrategy.PPR:t.fetchStrategy===c.FetchStrategy.PPR?r.supportsPerSegmentPrefetching?c.FetchStrategy.PPR:c.FetchStrategy.LoadingBoundary:t.fetchStrategy){case c.FetchStrategy.PPR:{var n,a,u;if(F(n=e,a=t,u=r,(0,i.readOrCreateSegmentCacheEntry)(n,c.FetchStrategy.PPR,u.metadata),a.key,u.metadata),0===function e(t,r,n,a,u){let o=(0,i.readOrCreateSegmentCacheEntry)(t,r.fetchStrategy,u);F(t,r,n,o,r.key,u);let c=a[1],s=u.slots;if(null!==s)for(let a in s){if(!O(r))return 0;let u=s[a],o=u.segment,f=c[a],d=f?.[0];if(0===(void 0!==d&&L(n,o,d)?e(t,r,n,f,u):function e(t,r,n,a){if(a.prefetchHints&l.PrefetchHint.HasRuntimePrefetch)return null===r.spawnedRuntimePrefetches?r.spawnedRuntimePrefetches=new Set([a.requestKey]):r.spawnedRuntimePrefetches.add(a.requestKey),2;let u=(0,i.readOrCreateSegmentCacheEntry)(t,r.fetchStrategy,a);if(F(t,r,n,u,r.key,a),null!==a.slots){if(!O(r))return 0;for(let l in a.slots)if(0===e(t,r,n,a.slots[l]))return 0}return 2}(t,r,n,u)))return 0}return 2}(e,t,r,t.treeAtTimeOfPrefetch,s))return 0;let o=t.spawnedRuntimePrefetches;if(null!==o){let n=new Map;j(e,t,r,n,c.FetchStrategy.PPRRuntime);let a=function e(t,r,n,a,l,u){if(l.has(a.requestKey))return M(t,r,n,a,!1,u,c.FetchStrategy.PPRRuntime);let i={},o=a.slots;if(null!==o)for(let a in o){let c=o[a];i[a]=e(t,r,n,c,l,u)}return[a.segment,i,null,null]}(e,t,r,s,o,n);n.size>0&&w((0,i.fetchSegmentPrefetchesUsingDynamicRequest)(t,r,c.FetchStrategy.PPRRuntime,a,n))}return 2}case c.FetchStrategy.Full:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.LoadingBoundary:{let n=new Map;j(e,t,r,n,o);let a=function e(t,r,n,a,u,o,s){let f=a[1],d=u.slots,h={};if(null!==d)for(let a in d){let u=d[a],p=u.segment,y=f[a],g=y?.[0];if(void 0!==g&&L(n,p,g)){let l=e(t,r,n,y,u,o,s);h[a]=l}else switch(s){case c.FetchStrategy.LoadingBoundary:{let e=(u.prefetchHints&(l.PrefetchHint.SegmentHasLoadingBoundary|l.PrefetchHint.SubtreeHasLoadingBoundary))!=0?function e(t,r,n,a,u,o){let s=null===u?"inside-shared-layout":null,f=(0,i.readOrCreateSegmentCacheEntry)(t,r.fetchStrategy,a);switch(f.status){case i.EntryStatus.Empty:o.set(a.requestKey,(0,i.upgradeToPendingSegment)(f,c.FetchStrategy.LoadingBoundary)),"refetch"!==u&&(s=u="refetch");break;case i.EntryStatus.Fulfilled:if((a.prefetchHints&l.PrefetchHint.SegmentHasLoadingBoundary)!=0)return(0,i.convertRouteTreeToFlightRouterState)(a);case i.EntryStatus.Pending:case i.EntryStatus.Rejected:}let d={};if(null!==a.slots)for(let l in a.slots){let i=a.slots[l];d[l]=e(t,r,n,i,u,o)}return[a.segment,d,null,s]}(t,r,n,u,null,o):(0,i.convertRouteTreeToFlightRouterState)(u);h[a]=e;break}case c.FetchStrategy.PPRRuntime:{let e=M(t,r,n,u,!1,o,s);h[a]=e;break}case c.FetchStrategy.Full:{let e=M(t,r,n,u,!1,o,s);h[a]=e}}}return[u.segment,h,null,null]}(e,t,r,t.treeAtTimeOfPrefetch,s,n,o);return n.size>0&&w((0,i.fetchSegmentPrefetchesUsingDynamicRequest)(t,r,o,a,n)),2}}}}return 2}(e,t,n);if(0!==a&&""!==r.search){let n=new URL(r.pathname,location.origin),a=(0,o.createCacheKey)(n.href,r.nextUrl),l=(0,i.readOrCreateRouteCacheEntry)(e,t,a);switch(l.status){case i.EntryStatus.Empty:I(t)&&(l.status=i.EntryStatus.Pending,w((0,i.fetchRouteOnCacheMiss)(l,a)));case i.EntryStatus.Pending:case i.EntryStatus.Fulfilled:case i.EntryStatus.Rejected:}}return a}(e,t),n=t.hasBackgroundWork;switch(t.hasBackgroundWork=!1,t.spawnedRuntimePrefetches=null,r){case 0:return;case 1:V(h),t=H(h);continue;case 2:1===t.phase?(t.phase=0,B(h,t)):n?(t.priority=c.PrefetchPriority.Background,B(h,t)):V(h),t=H(h);continue}}null===t&&0===p&&(0,f.cleanup)()}function I(e){return e.priority===c.PrefetchPriority.Background||(e.hasBackgroundWork=!0,!1)}function j(e,t,r,n,a){M(e,t,r,r.metadata,!1,n,a===c.FetchStrategy.LoadingBoundary?c.FetchStrategy.Full:a)}function M(e,t,r,n,a,l,u){let o=(0,i.readOrCreateSegmentCacheEntry)(e,u,n),s=null;switch(o.status){case i.EntryStatus.Empty:if(u===c.FetchStrategy.Full&&null!==(0,i.attemptToFulfillDynamicSegmentFromBFCache)(e,o,n))break;s=(0,i.upgradeToPendingSegment)(o,u);break;case i.EntryStatus.Fulfilled:if(o.isPartial&&(0,i.canNewFetchStrategyProvideMoreContent)(o.fetchStrategy,u)){if(u===c.FetchStrategy.Full&&null!==(0,i.attemptToUpgradeSegmentFromBFCache)(e,n))break;s=U(e,n,u)}break;case i.EntryStatus.Pending:case i.EntryStatus.Rejected:(0,i.canNewFetchStrategyProvideMoreContent)(o.fetchStrategy,u)&&(s=U(e,n,u))}let f={};if(null!==n.slots)for(let i in n.slots){let o=n.slots[i];f[i]=M(e,t,r,o,a||null!==s,l,u)}null!==s&&l.set(n.requestKey,s);let d=a||null===s?null:"refetch";return[n.segment,f,null,d]}function F(e,t,r,n,a,l){switch(n.status){case i.EntryStatus.Empty:w((0,i.fetchSegmentOnCacheMiss)(r,(0,i.upgradeToPendingSegment)(n,c.FetchStrategy.PPR),a,l));break;case i.EntryStatus.Pending:switch(n.fetchStrategy){case c.FetchStrategy.PPR:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.Full:break;case c.FetchStrategy.LoadingBoundary:I(t)&&D(e,r,a,l);break;default:n.fetchStrategy}break;case i.EntryStatus.Rejected:switch(n.fetchStrategy){case c.FetchStrategy.PPR:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.Full:break;case c.FetchStrategy.LoadingBoundary:D(e,r,a,l);break;default:n.fetchStrategy}case i.EntryStatus.Fulfilled:}}function D(e,t,r,n){let a=(0,i.readOrCreateRevalidatingSegmentEntry)(e,c.FetchStrategy.PPR,n);switch(a.status){case i.EntryStatus.Empty:w((0,i.fetchSegmentOnCacheMiss)(t,(0,i.upgradeToPendingSegment)(a,c.FetchStrategy.PPR),r,n));case i.EntryStatus.Pending:case i.EntryStatus.Fulfilled:case i.EntryStatus.Rejected:}}function U(e,t,r){let n=(0,i.readOrCreateRevalidatingSegmentEntry)(e,r,t);if(n.status===i.EntryStatus.Empty)return(0,i.upgradeToPendingSegment)(n,r);if((0,i.canNewFetchStrategyProvideMoreContent)(n.fetchStrategy,r)){let n=(0,i.overwriteRevalidatingSegmentCacheEntry)(e,r,t);return(0,i.upgradeToPendingSegment)(n,r)}switch(n.status){case i.EntryStatus.Pending:case i.EntryStatus.Fulfilled:case i.EntryStatus.Rejected:default:return null}}function L(e,t,r){return r===s.PAGE_SEGMENT_KEY?t===(0,s.addSearchParamsIfPageSegment)(s.PAGE_SEGMENT_KEY,Object.fromEntries(new URLSearchParams(e.renderedSearch))):(0,u.matchSegment)(r,t)}function k(e,t){let r=t.priority-e.priority;if(0!==r)return r;let n=t.phase-e.phase;return 0!==n?n:t.sortId-e.sortId}function x(e,t){let r=e.length;e.push(t),t._heapIndex=r,$(e,t,r)}function H(e){return 0===e.length?null:e[0]}function V(e){if(0===e.length)return null;let t=e[0];t._heapIndex=-1;let r=e.pop();return r!==t&&(e[0]=r,r._heapIndex=0,K(e,r,0)),t}function B(e,t){let r=t._heapIndex;-1!==r&&(0===r?K(e,t,0):k(e[r-1>>>1],t)>0?$(e,t,r):K(e,t,r))}function $(e,t,r){let n=r;for(;n>0;){let r=n-1>>>1,a=e[r];if(!(k(a,t)>0))return;e[r]=t,t._heapIndex=r,e[n]=a,a._heapIndex=n,n=r}}function K(e,t,r){let n=r,a=e.length,l=a>>>1;for(;nk(l,t))uk(i,l)?(e[n]=i,i._heapIndex=n,e[u]=t,t._heapIndex=u,n=u):(e[n]=l,l._heapIndex=n,e[r]=t,t._heapIndex=r,n=r);else{if(!(uk(i,t)))return;e[n]=i,i._heapIndex=n,e[u]=t,t._heapIndex=u,n=u}}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},856655,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={appendLayoutVaryPath:function(){return s},clonePageVaryPathWithNewSearchParams:function(){return _},finalizeLayoutVaryPath:function(){return f},finalizeMetadataVaryPath:function(){return y},finalizePageVaryPath:function(){return h},getFulfilledRouteVaryPath:function(){return c},getFulfilledSegmentVaryPath:function(){return function e(t,r){return{id:t.id,value:null===t.id||r.has(t.id)?t.value:u.Fallback,parent:null===t.parent?null:e(t.parent,r)}}},getPartialLayoutVaryPath:function(){return d},getPartialPageVaryPath:function(){return p},getRenderedSearchFromVaryPath:function(){return v},getRouteVaryPath:function(){return o},getSegmentVaryPathForRequest:function(){return g}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(509396),u=e.r(511),i=e.r(767764);function o(e,t,r){return{id:null,value:e,parent:{id:"?",value:t,parent:{id:null,value:r,parent:null}}}}function c(e,t,r,n){return{id:null,value:e,parent:{id:"?",value:t,parent:{id:null,value:n?r:u.Fallback,parent:null}}}}function s(e,t,r){return{id:r,value:t,parent:e}}function f(e,t){return{id:null,value:e,parent:t}}function d(e){return e.parent}function h(e,t,r){return{id:null,value:e,parent:{id:"?",value:t,parent:r}}}function p(e){return e.parent.parent}function y(e,t,r){return{id:null,value:e+i.HEAD_REQUEST_KEY,parent:{id:"?",value:t,parent:r}}}function g(e,t){let r=t.varyPath;if(t.isPage&&e!==l.FetchStrategy.Full&&e!==l.FetchStrategy.PPRRuntime){let e=r.parent.parent;return{id:null,value:r.value,parent:{id:"?",value:u.Fallback,parent:e}}}return r}function _(e,t){let r=e.parent;return{id:null,value:e.value,parent:{id:"?",value:t,parent:r.parent}}}function v(e){let t=e.parent.value;return"string"==typeof t?t:null}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},572463,(e,t,r)=>{"use strict";function n(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"parsePath",{enumerable:!0,get:function(){return n}})},541858,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(572463);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:l}=(0,n.parsePath)(e);return`${t}${r}${a}${l}`}},938281,(e,t,r)=>{"use strict";function n(e){return e.replace(/\/$/,"")||"/"}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removeTrailingSlash",{enumerable:!0,get:function(){return n}})},82823,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizePathTrailingSlash",{enumerable:!0,get:function(){return l}});let n=e.r(938281),a=e.r(572463),l=e=>{if(!e.startsWith("/"))return e;let{pathname:t,query:r,hash:l}=(0,a.parsePath)(e);return/\.[^/]+\/?$/.test(t)?`${(0,n.removeTrailingSlash)(t)}${r}${l}`:t.endsWith("/")?`${t}${r}${l}`:`${t}/${r}${l}`};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},405550,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addBasePath",{enumerable:!0,get:function(){return l}});let n=e.r(541858),a=e.r(82823);function l(e,t){return(0,a.normalizePathTrailingSlash)((0,n.addPathPrefix)(e,""))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},657630,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createPrefetchURL:function(){return o},isExternalURL:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(82604),u=e.r(405550);function i(e){return e.origin!==window.location.origin}function o(e){let t;if((0,l.isBot)(window.navigator.userAgent))return null;try{t=new URL((0,u.addBasePath)(e),window.location.href)}catch(t){throw Object.defineProperty(Error(`Cannot prefetch '${e}' because it cannot be converted to a URL.`),"__NEXT_ERROR_CODE",{value:"E234",enumerable:!1,configurable:!0})}return i(t)?null:t}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},91949,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={IDLE_LINK_STATUS:function(){return f},PENDING_LINK_STATUS:function(){return s},getLinkForCurrentNavigation:function(){return p},mountFormInstance:function(){return E},mountLinkInstance:function(){return R},onLinkVisibilityChanged:function(){return S},onNavigationIntent:function(){return b},pingVisibleLinks:function(){return O},setLinkForCurrentNavigation:function(){return d},unmountLinkForCurrentNavigation:function(){return h},unmountPrefetchableInstance:function(){return P}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(509396),u=e.r(477048),i=e.r(777709),o=e.r(271645),c=null,s={pending:!0},f={pending:!1};function d(e){(0,o.startTransition)(()=>{c?.setOptimisticLinkStatus(f),e?.setOptimisticLinkStatus(s),c=e})}function h(e){c===e&&(c=null)}function p(){return c}let y="function"==typeof WeakMap?new WeakMap:new Map,g=new Set,_="function"==typeof IntersectionObserver?new IntersectionObserver(function(e){for(let t of e){let e=t.intersectionRatio>0;S(t.target,e)}},{rootMargin:"200px"}):null;function v(e,t){void 0!==y.get(e)&&P(e),y.set(e,t),null!==_&&_.observe(e)}function m(t){if(!("u">typeof window))return null;{let{createPrefetchURL:r}=e.r(657630);try{return r(t)}catch{return("function"==typeof reportError?reportError:console.error)(`Cannot prefetch '${t}' because it cannot be converted to a URL.`),null}}}function R(e,t,r,n,a,l){if(a){let a=m(t);if(null!==a){let t={router:r,fetchStrategy:n,isVisible:!1,prefetchTask:null,prefetchHref:a.href,setOptimisticLinkStatus:l};return v(e,t),t}}return{router:r,fetchStrategy:n,isVisible:!1,prefetchTask:null,prefetchHref:null,setOptimisticLinkStatus:l}}function E(e,t,r,n){let a=m(t);null===a||v(e,{router:r,fetchStrategy:n,isVisible:!1,prefetchTask:null,prefetchHref:a.href,setOptimisticLinkStatus:null})}function P(e){let t=y.get(e);if(void 0!==t){y.delete(e),g.delete(t);let r=t.prefetchTask;null!==r&&(0,i.cancelPrefetchTask)(r)}null!==_&&_.unobserve(e)}function S(e,t){let r=y.get(e);void 0!==r&&(r.isVisible=t,t?g.add(r):g.delete(r),T(r,l.PrefetchPriority.Default))}function b(e,t){let r=y.get(e);void 0!==r&&void 0!==r&&T(r,l.PrefetchPriority.Intent)}function T(t,r){if("u">typeof window){let n=t.prefetchTask;if(!t.isVisible){null!==n&&(0,i.cancelPrefetchTask)(n);return}let{getCurrentAppRouterState:a}=e.r(699781),l=a();if(null!==l){let e=l.tree;if(null===n){let n=l.nextUrl,a=(0,u.createCacheKey)(t.prefetchHref,n);t.prefetchTask=(0,i.schedulePrefetchTask)(a,e,t.fetchStrategy,r,null)}else(0,i.reschedulePrefetchTask)(n,e,t.fetchStrategy,r)}}}function O(e,t){for(let r of g){let n=r.prefetchTask;if(null!==n&&!(0,i.isPrefetchTaskDirty)(n,e,t))continue;null!==n&&(0,i.cancelPrefetchTask)(n);let a=(0,u.createCacheKey)(r.prefetchHref,e);r.prefetchTask=(0,i.schedulePrefetchTask)(a,t,r.fetchStrategy,l.PrefetchPriority.Default,null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},179027,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={UnknownDynamicStaleTime:function(){return i},computeDynamicStaleAt:function(){return o},invalidateBfCache:function(){return f},readFromBFCache:function(){return y},readFromBFCacheDuringRegularNavigation:function(){return g},updateBFCacheEntryStaleAt:function(){return p},writeHeadToBFCache:function(){return h},writeToBFCache:function(){return d}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(754069),u=e.r(511),i=-1;function o(e,t){return t!==i?e+1e3*t:e+l.DYNAMIC_STALETIME_MS}let c=(0,u.createCacheMap)(),s=0;function f(){"u">typeof window&&s++}function d(e,t,r,n,a,l,i){if("u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={discoverKnownRoute:function(){return s},matchKnownRoute:function(){return d},resetKnownRoutes:function(){return h}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(620896),u=e.r(33906),i=e.r(856655);function o(){return{staticChildren:null,dynamicChild:null,dynamicChildParamName:null,dynamicChildParamType:null,pattern:null}}let c=o();function s(e,t,r,n,a,u,i,o,s,d){let h=t.split("/").filter(e=>""!==e),p=h.length>0?h[0]:null,y=h.length>0?h.slice(1):[];if(null!==n){let h=(0,l.fulfillRouteCacheEntry)(e,n,a,u,i,o,s);return d&&(h.hasDynamicRewrite=!0),f(c,a,p,y,h,e,t,r,a,u,i,o,s,d),h}return f(c,a,p,y,null,e,t,r,a,u,i,o,s,d)}function f(e,t,r,n,a,i,c,s,d,h,p,y,g,_){let v,m,R=t.segment,E=null,P=null,S=null;"string"==typeof R?v=(0,u.doesStaticSegmentAppearInURL)(R):(E=R[0],P=R[2],S=R[3],v=!0);let b=e,T=r,O=n;if(v){if(null===E&&r!==R)return null!==a?a:(0,l.writeRouteIntoCache)(i,c,s,d,h,p,y,g);if(null!==E&&null!==P){if(b=function(e,t,r){if(null!==e.dynamicChild)return e.dynamicChild;let n=o();return e.dynamicChild=n,e.dynamicChildParamName=t,e.dynamicChildParamType=r,n}(e,E,P),null!==S)for(let t of(null===e.staticChildren&&(e.staticChildren=new Map),S))e.staticChildren.has(t)||e.staticChildren.set(t,o())}else{null===e.staticChildren&&(e.staticChildren=new Map);let t=e.staticChildren.get(r);void 0===t&&(t=o(),e.staticChildren.set(r,t)),b=t}T=n.length>0?n[0]:null,O=n.length>0?n.slice(1):[]}let w=t.slots,A=null;if(null!==w){for(let e in w){let t=w[e];null===t.refreshState&&(A=f(b,t,T,O,a,i,c,s,d,h,p,y,g,_))}return null!==A?A:null!==a?a:(0,l.writeRouteIntoCache)(i,c,s,d,h,p,y,g)}return null!==b.pattern?(_&&(b.pattern.hasDynamicRewrite=!0),b.pattern):(m=null!==a?a:(0,l.writeRouteIntoCache)(i,c,s,d,h,p,y,g),_&&(m.hasDynamicRewrite=!0),b.pattern=m,m)}function d(e,t){let r=e.split("/").filter(e=>""!==e),n=new Map,a=function e(t,r,n,a){let l=n{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={EntryStatus:function(){return A},attemptToFulfillDynamicSegmentFromBFCache:function(){return ee},attemptToUpgradeSegmentFromBFCache:function(){return et},canNewFetchStrategyProvideMoreContent:function(){return eS},convertReusedFlightRouterStateToRouteTree:function(){return ef},convertRootFlightRouterStateToRouteTree:function(){return es},convertRouteTreeToFlightRouterState:function(){return function e(t){let r={};if(null!==t.slots)for(let n in t.slots)r[n]=e(t.slots[n]);return[t.segment,r,null,null]}},createDetachedSegmentCacheEntry:function(){return J},createMetadataRouteTree:function(){return en},deprecated_requestOptimisticRouteCacheEntry:function(){return G},fetchInlinedSegmentsOnCacheMiss:function(){return ey},fetchRouteOnCacheMiss:function(){return eh},fetchSegmentOnCacheMiss:function(){return ep},fetchSegmentPrefetchesUsingDynamicRequest:function(){return eg},fulfillRouteCacheEntry:function(){return ea},getCurrentRouteCacheVersion:function(){return D},getCurrentSegmentCacheVersion:function(){return U},getStaleAt:function(){return eT},getStaleTimeMs:function(){return w},invalidateEntirePrefetchCache:function(){return L},invalidateRouteCacheEntries:function(){return k},invalidateSegmentCacheEntries:function(){return x},markRouteEntryAsDynamicRewrite:function(){return eu},overwriteRevalidatingSegmentCacheEntry:function(){return z},pingInvalidationListeners:function(){return H},processRuntimePrefetchStream:function(){return ew},readOrCreateRevalidatingSegmentEntry:function(){return W},readOrCreateRouteCacheEntry:function(){return X},readOrCreateSegmentCacheEntry:function(){return Y},readRouteCacheEntry:function(){return V},readSegmentCacheEntry:function(){return B},stripIsPartialByte:function(){return eA},upgradeToPendingSegment:function(){return Z},upsertSegmentEntry:function(){return Q},waitForSegmentCacheEntry:function(){return $},writeDynamicRenderResponseIntoCache:function(){return ev},writeRouteIntoCache:function(){return el},writeStaticStageResponseIntoCache:function(){return eO}};for(var l in a)Object.defineProperty(r,l,{enumerable:!0,get:a[l]});let u=e.r(606372),i=e.r(621768),o=e.r(787288),c=e.r(777709),s=e.r(856655),f=e.r(451191),d=e.r(477048),h=e.r(33906),p=e.r(511),y=e.r(767764),g=e.r(450590),_=e.r(754069),v=e.r(91949),m=e.r(813258),R=e.r(509396),E=e.r(839470),P=e.r(179027),S=e.r(496167),b=e.r(760355),T=e.r(732992),O=e.r(663416);function w(e){return 1e3*Math.max(e,30)}var A=((n={})[n.Empty=0]="Empty",n[n.Pending=1]="Pending",n[n.Fulfilled=2]="Fulfilled",n[n.Rejected=3]="Rejected",n);let C=["",{},null,"metadata-only"],N=(0,p.createCacheMap)(),I=(0,p.createCacheMap)(),j=null,M=0,F=0;function D(){return M}function U(){return F}function L(e,t){M++,F++,(0,v.pingVisibleLinks)(e,t),H(e,t)}function k(e,t){M++,(0,v.pingVisibleLinks)(e,t),H(e,t)}function x(e,t){F++,(0,v.pingVisibleLinks)(e,t),H(e,t)}function H(e,t){if(null!==j){let r=j;for(let n of(j=null,r))(0,c.isPrefetchTaskDirty)(n,e,t)&&function(e){let t=e.onInvalidate;if(null!==t){e.onInvalidate=null;try{t()}catch(e){"function"==typeof reportError?reportError(e):console.error(e)}}}(n)}}function V(e,t){let r=(0,s.getRouteVaryPath)(t.pathname,t.search,t.nextUrl),n=(0,p.getFromCacheMap)(e,M,N,r,!1);return null!==n?n:null}function B(e,t){return(0,p.getFromCacheMap)(e,F,I,t,!1)}function $(e){let t=e.promise;return null===t&&(t=e.promise=(0,E.createPromiseWithResolvers)()),t.promise}function K(){return{canonicalUrl:null,status:0,blockedTasks:null,tree:null,metadata:null,couldBeIntercepted:!0,supportsPerSegmentPrefetching:!1,renderedSearch:null,ref:null,size:0,staleAt:1/0,version:M}}function X(e,t,r){null!==t.onInvalidate&&(null===j?j=new Set([t]):j.add(t));let n=V(e,r);if(null!==n)return n;let a=K(),l=(0,s.getRouteVaryPath)(r.pathname,r.search,r.nextUrl);return(0,p.setInCacheMap)(N,l,a,!1),a}function G(e,t,r){let n=t.search;if(""===n)return null;let a=new URL(t);a.search="";let l=V(e,(0,d.createCacheKey)(a.href,r));if(null===l||2!==l.status)return null;let u=new URL(l.canonicalUrl,t.origin),i=""!==u.search?u.search:n,o=""!==l.renderedSearch?l.renderedSearch:n,c=new URL(l.canonicalUrl,location.origin);return c.search=i,{canonicalUrl:(0,f.createHrefFromUrl)(c),status:2,blockedTasks:null,tree:q(l.tree,o),metadata:q(l.metadata,o),couldBeIntercepted:l.couldBeIntercepted,supportsPerSegmentPrefetching:l.supportsPerSegmentPrefetching,hasDynamicRewrite:l.hasDynamicRewrite,renderedSearch:o,ref:null,size:0,staleAt:l.staleAt,version:l.version}}function q(e,t){let r=null,n=e.slots;if(null!==n)for(let e in r={},n){let a=n[e];r[e]=q(a,t)}return e.isPage?{requestKey:e.requestKey,segment:e.segment,refreshState:e.refreshState,varyPath:(0,s.clonePageVaryPathWithNewSearchParams)(e.varyPath,t),isPage:!0,slots:r,prefetchHints:e.prefetchHints}:{requestKey:e.requestKey,segment:e.segment,refreshState:e.refreshState,varyPath:e.varyPath,isPage:!1,slots:r,prefetchHints:e.prefetchHints}}function Y(e,t,r){let n=B(e,r.varyPath);if(null!==n)return n;let a=(0,s.getSegmentVaryPathForRequest)(t,r),l=J(e);return(0,p.setInCacheMap)(I,a,l,!1),l}function W(e,t,r){var n;let a=(n=r.varyPath,(0,p.getFromCacheMap)(e,F,I,n,!0));if(null!==a)return a;let l=(0,s.getSegmentVaryPathForRequest)(t,r),u=J(e);return(0,p.setInCacheMap)(I,l,u,!0),u}function z(e,t,r){let n=(0,s.getSegmentVaryPathForRequest)(t,r),a=J(e);return(0,p.setInCacheMap)(I,n,a,!0),a}function Q(e,t,r){if((0,p.isValueExpired)(e,F,r))return null;let n=B(e,t);if(null!==n){var a;if(r.fetchStrategy!==n.fetchStrategy&&(a=n.fetchStrategy,!(ar?null:ei(Z(t,R.FetchStrategy.Full),a.rsc,r,!1)}return null}function et(e,t){let r=t.varyPath,n=(0,P.readFromBFCache)(r);if(null!==n){let r=n.navigatedAt+_.STATIC_STALETIME_MS;if(e>r)return null;let a=ei(Z(J(e),R.FetchStrategy.Full),n.rsc,r,!1),l=Q(e,(0,s.getSegmentVaryPathForRequest)(R.FetchStrategy.Full,t),a);if(null!==l&&2===l.status)return l}return null}function er(e){let t=e.blockedTasks;if(null!==t){for(let e of t)(0,c.pingPrefetchTask)(e);e.blockedTasks=null}}function en(e){return{requestKey:y.HEAD_REQUEST_KEY,segment:y.HEAD_REQUEST_KEY,refreshState:null,varyPath:e,isPage:!0,slots:null,prefetchHints:0}}function ea(e,t,r,n,a,l,u){let i=(0,s.getRenderedSearchFromVaryPath)(n)??"";return t.status=2,t.tree=r,t.metadata=en(n),t.staleAt=e+_.STATIC_STALETIME_MS,t.couldBeIntercepted=a,t.canonicalUrl=l,t.renderedSearch=i,t.supportsPerSegmentPrefetching=u,t.hasDynamicRewrite=!1,er(t),t}function el(e,t,r,n,a,l,u,i){let o=ea(e,K(),n,a,l,u,i),c=o.renderedSearch,f=(0,s.getFulfilledRouteVaryPath)(t,c,r,l);return(0,p.setInCacheMap)(N,f,o,!1),o}function eu(e){e.hasDynamicRewrite=!0}function ei(e,t,r,n){return e.status=2,e.rsc=t,e.staleAt=r,e.isPartial=n,null!==e.promise&&(e.promise.resolve(e),e.promise=null),e}function eo(e,t){e.status=3,e.staleAt=t,er(e)}function ec(e,t){e.status=3,e.staleAt=t,null!==e.promise&&(e.promise.resolve(null),e.promise=null)}function es(e,t,r){return ed(e,y.ROOT_SEGMENT_REQUEST_KEY,null,t,r)}function ef(e,t,r,n,a){let l=e.isPage?(0,s.getPartialPageVaryPath)(e.varyPath):(0,s.getPartialLayoutVaryPath)(e.varyPath),u=r[0],i=e.requestKey,o=(0,y.createSegmentRequestKeyPart)(u);return ed(r,(0,y.appendSegmentRequestKeyPart)(i,t,o),l,n,a)}function ed(e,t,r,n,a){let l,u,i,o,c=e[0],f=e[2]??null,d=null!==f?{canonicalUrl:f[0],renderedSearch:f[1]}:null,h=null!==d?d.renderedSearch:n;if(Array.isArray(c)){i=!1;let e=c[1],n=c[0];u=(0,s.appendLayoutVaryPath)(r,e,n),o=(0,s.finalizeLayoutVaryPath)(t,u),l=c}else u=r,t.endsWith(m.PAGE_SEGMENT_KEY)?(i=!0,l=m.PAGE_SEGMENT_KEY,o=(0,s.finalizePageVaryPath)(t,h,u),null===a.metadataVaryPath&&(a.metadataVaryPath=(0,s.finalizeMetadataVaryPath)(t,h,u))):(i=!1,l=c,o=(0,s.finalizeLayoutVaryPath)(t,u));let p=null,g=e[1];for(let e in g){let r=g[e],n=r[0],l=(0,y.createSegmentRequestKeyPart)(n),i=ed(r,(0,y.appendSegmentRequestKeyPart)(t,e,l),u,h,a);null===p?p={[e]:i}:p[e]=i}return{requestKey:t,segment:l,refreshState:d,varyPath:o,isPage:i,slots:p,prefetchHints:e[4]??0}}async function eh(e,t){let r=t.pathname,n=t.search,a=t.nextUrl,l="/_tree",u={[i.RSC_HEADER]:"1",[i.NEXT_ROUTER_PREFETCH_HEADER]:"1",[i.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]:l};null!==a&&(u[i.NEXT_URL]=a),eb(u);try{let t,c,d=new URL(r+n,location.origin);{let r=await fetch(d,{method:"HEAD"});if(r.status<200||r.status>=400)return eo(e,Date.now()+1e4),null;c=r.redirected?new URL(r.url):d,t=await eR(eP(c,l),u)}if(!t||!t.ok||204===t.status||!t.body)return eo(e,Date.now()+1e4),null;let g=(0,f.createHrefFromUrl)(c),_=t.headers.get("vary"),v=null!==_&&_.includes(i.NEXT_URL),R=(0,E.createPromiseWithResolvers)(),P="2"===t.headers.get(i.NEXT_DID_POSTPONE_HEADER)||!0;{let n,l,{stream:i,size:c}=await eE(t.body);R.resolve(),(0,p.setSizeInCacheMap)(e,c);let f=await (0,o.createFromNextReadableStream)(i,u,{allowPartialStream:!0});if((t.headers.get(O.NEXT_NAV_DEPLOYMENT_ID_HEADER)??f.buildId)!==(0,T.getNavigationBuildId)())return eo(e,Date.now()+1e4),null;let d=(0,h.getRenderedPathname)(t),_=(0,h.getRenderedSearch)(t),E={metadataVaryPath:null},b=(n=d.split("/").filter(e=>""!==e),l=y.ROOT_SEGMENT_REQUEST_KEY,function e(t,r,n,a,l,u,i,o){let c,f,d=null,p=t.slots;if(null!==p)for(let t in c=!1,f=(0,s.finalizeLayoutVaryPath)(a,n),d={},p){let r,c,f,g=p[t],_=g.name,v=g.param;if(null!==v){let e=(0,h.parseDynamicParamFromURLPart)(v.type,l,u),t=null!==v.key?v.key:(0,h.getCacheKeyForDynamicParam)(e,"");f=(0,s.appendLayoutVaryPath)(n,t,_),c=[_,t,v.type,v.siblings],r=!0}else f=n,c=_,r=(0,h.doesStaticSegmentAppearInURL)(_);let m=r?u+1:u,R=(0,y.createSegmentRequestKeyPart)(c),E=(0,y.appendSegmentRequestKeyPart)(a,t,R);d[t]=e(g,c,f,E,l,m,i,o)}else a.endsWith(m.PAGE_SEGMENT_KEY)?(c=!0,f=(0,s.finalizePageVaryPath)(a,i,n),null===o.metadataVaryPath&&(o.metadataVaryPath=(0,s.finalizeMetadataVaryPath)(a,i,n))):(c=!1,f=(0,s.finalizeLayoutVaryPath)(a,n));return{requestKey:a,segment:r,refreshState:null,varyPath:f,isPage:c,slots:d,prefetchHints:t.prefetchHints}}(f.tree,l,null,y.ROOT_SEGMENT_REQUEST_KEY,n,0,_,E)),w=E.metadataVaryPath;if(null===w)return eo(e,Date.now()+1e4),null;(0,S.discoverKnownRoute)(Date.now(),r,a,e,b,w,v,g,P,!1)}if(!v){let t=(0,s.getFulfilledRouteVaryPath)(r,n,a,v);(0,p.setInCacheMap)(N,t,e,!1)}return{value:null,closed:R.promise}}catch(t){return eo(e,Date.now()+1e4),null}}async function ep(e,t,r,n){let a=new URL(e.canonicalUrl,location.origin),l=r.nextUrl,u=n.requestKey,c=u===y.ROOT_SEGMENT_REQUEST_KEY?"/_index":u,f={[i.RSC_HEADER]:"1",[i.NEXT_ROUTER_PREFETCH_HEADER]:"1",[i.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]:c};null!==l&&(f[i.NEXT_URL]=l),eb(f);let d=eP(a,c);try{let e=await eR(d,f);if(!e||!e.ok||204===e.status||"2"!==e.headers.get(i.NEXT_DID_POSTPONE_HEADER)&&0||!e.body)return ec(t,Date.now()+1e4),null;let r=(0,E.createPromiseWithResolvers)(),{stream:a,size:l}=await eE(e.body);r.resolve(),(0,p.setSizeInCacheMap)(t,l);let u=await (0,o.createFromNextReadableStream)(a,f,{allowPartialStream:!0});if((e.headers.get(O.NEXT_NAV_DEPLOYMENT_ID_HEADER)??u.buildId)!==(0,T.getNavigationBuildId)())return ec(t,Date.now()+1e4),null;let c=Date.now(),h=c+w(u.staleTime),y=ei(t,u.rsc,h,u.isPartial);u.varyParams;let g=(0,s.getSegmentVaryPathForRequest)(t.fetchStrategy,n);return Q(c,g,y),{value:y,closed:r.promise}}catch(e){return ec(t,Date.now()+1e4),null}}async function ey(e,t,r,n){let a=new URL(e.canonicalUrl,location.origin),l=t.nextUrl,u={[i.RSC_HEADER]:"1",[i.NEXT_ROUTER_PREFETCH_HEADER]:"1",[i.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]:"/"+m.PAGE_SEGMENT_KEY};null!==l&&(u[i.NEXT_URL]=l),eb(u);try{let t=await eR(a,u);if(!t||!t.ok||204===t.status||"2"!==t.headers.get(i.NEXT_DID_POSTPONE_HEADER)&&0||!t.body)return e_(n,Date.now()+1e4),null;let l=(0,E.createPromiseWithResolvers)(),{stream:c}=await eE(t.body);l.resolve();let s=await (0,o.createFromNextReadableStream)(c,u,{allowPartialStream:!0});if((t.headers.get(O.NEXT_NAV_DEPLOYMENT_ID_HEADER)??s.tree.segment.buildId)!==(0,T.getNavigationBuildId)())return e_(n,Date.now()+1e4),null;let f=Date.now();!function e(t,r,n,a,l){let u=a.segment,i=t+w(u.staleTime),o=l.get(n.requestKey);if(void 0!==o)ei(o,u.rsc,i,u.isPartial);else{let e=Y(t,R.FetchStrategy.PPR,n);0===e.status&&ei(Z(e,R.FetchStrategy.PPR),u.rsc,i,u.isPartial)}if(null!==n.slots&&null!==a.slots)for(let u in n.slots){let i=n.slots[u],o=a.slots[u];void 0!==o&&e(t,r,i,o,l)}}(f,e,r,s.tree,n);let d=f+w(s.head.staleTime),h=e.metadata.requestKey,p=n.get(h);if(void 0!==p)ei(p,s.head.rsc,d,s.head.isPartial);else{let t=Y(f,R.FetchStrategy.PPR,e.metadata);0===t.status&&ei(Z(t,R.FetchStrategy.PPR),s.head.rsc,d,s.head.isPartial)}return e_(n,Date.now()+1e4),{value:null,closed:l.promise}}catch(e){return e_(n,Date.now()+1e4),null}}async function eg(e,t,r,n,a){let l=e.key,c=new URL(t.canonicalUrl,location.origin),s=l.nextUrl;1===a.size&&a.has(t.metadata.requestKey)&&(n=C);let f={[i.RSC_HEADER]:"1",[i.NEXT_ROUTER_STATE_TREE_HEADER]:(0,g.prepareFlightRouterStateForRequest)(n)};switch(null!==s&&(f[i.NEXT_URL]=s),r){case R.FetchStrategy.Full:break;case R.FetchStrategy.PPRRuntime:f[i.NEXT_ROUTER_PREFETCH_HEADER]="2";break;case R.FetchStrategy.LoadingBoundary:f[i.NEXT_ROUTER_PREFETCH_HEADER]="1"}try{let e,l=await eR(c,f);if(!l||!l.ok||!l.body)return e_(a,Date.now()+1e4),null;let i=(0,h.getRenderedSearch)(l);if(i!==t.renderedSearch)return e_(a,Date.now()+1e4),null;let s=(0,E.createPromiseWithResolvers)(),v=null,m=null;if(r===R.FetchStrategy.Full){var d,y,_;let t,r;d=l.body,y=s.resolve,_=function(e){if(null===v)return;let t=e/v.length;for(let e of v)(0,p.setSizeInCacheMap)(e,t)},t=0,r=d.getReader(),e=new ReadableStream({async pull(e){for(;;){let{done:n,value:a}=await r.read();if(!n){e.enqueue(a),_(t+=a.byteLength);continue}e.close(),y();return}}})}else{let{stream:t,size:r}=await eE(l.body);s.resolve(),e=t,m=r}let[S,T]=await Promise.all([(0,o.createFromNextReadableStream)(e,f,{allowPartialStream:!0}),l.cacheData]),w=S.h,A=null!==w?(0,u.readVaryParams)(w):null,C=Date.now(),N=await eT(C,S.s,l),I=r===R.FetchStrategy.PPRRuntime&&(T?.isResponsePartial??!1),j=l.headers.get(O.NEXT_NAV_DEPLOYMENT_ID_HEADER)??S.b,M=(0,g.normalizeFlightData)(S.f);if("string"==typeof M)return e_(a,Date.now()+1e4),null;let F=(0,b.convertServerPatchToFullTree)(C,n,M,i,P.UnknownDynamicStaleTime);if(v=ev(C,r,M,j,I,A,N,F,a),null!==m&&null!==v&&v.length>0){let e=m/v.length;for(let t of v)(0,p.setSizeInCacheMap)(t,e)}return{value:null,closed:s.promise}}catch(e){return e_(a,Date.now()+1e4),null}}function e_(e,t){let r=[];for(let n of e.values())1===n.status?ec(n,t):2===n.status&&r.push(n);return r}function ev(e,t,r,n,a,l,i,o,c){if(n&&n!==(0,T.getNavigationBuildId)())return null!==c&&e_(c,e+1e4),null;let s=o.routeTree,f=null!==o.metadataVaryPath?en(o.metadataVaryPath):null;for(let n of r){let r=n.seedData;if(null!==r){let l=n.segmentPath,o=s;for(let t=0;t1){t=new Uint8Array(a);let e=0;for(let r of n)t.set(r,e),e+=r.byteLength}else t=new Uint8Array(0);return{stream:new ReadableStream({start(e){e.enqueue(t),e.close()}}),size:a}}function eP(e,t){{let r=new URL(e),n=r.pathname.endsWith("/")?r.pathname.slice(0,-1):r.pathname,a=(0,y.convertSegmentPathToStaticExportFilename)(t);return r.pathname=`${n}/${a}`,r}}function eS(e,t){return ee.close()}),isPartial:!1};let a=n[0],l=35===a||126===a,u=l?n.byteLength>1?n.subarray(1):null:n;return{isPartial:!!l&&126===a,stream:new ReadableStream({start(e){u&&e.enqueue(u)},async pull(e){let r=await t.read();r.done?e.close():e.enqueue(r.value)}})}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},787288,(e,t,r)=>{"use strict";let n;Object.defineProperty(r,"__esModule",{value:!0});var a={createFetch:function(){return T},createFromNextReadableStream:function(){return O},decodeStaticStage:function(){return b},fetchServerResponse:function(){return E},processFetch:function(){return P},resolveStaticStageData:function(){return S}};for(var l in a)Object.defineProperty(r,l,{enumerable:!0,get:a[l]});let u=e.r(235326);e.r(312718);let i=e.r(621768),o=e.r(132120),c=e.r(92245),s=e.r(450590),f=e.r(288093),d=e.r(33906),h=e.r(543369),p=e.r(732992),y=e.r(663416);e.r(620896);let g=e.r(179027),_=u.createFromReadableStream,v=u.createFromFetch;function m(e){return(0,d.urlToUrlWithoutFlightMarker)(new URL(e,location.origin)).toString()}let R=!1;async function E(e,t){let{flightRouterState:r,nextUrl:n}=t,a={[i.RSC_HEADER]:"1",[i.NEXT_ROUTER_STATE_TREE_HEADER]:(0,s.prepareFlightRouterStateForRequest)(r,t.isHmrRefresh)};n&&(a[i.NEXT_URL]=n);let l=e;try{(e=new URL(e)).pathname.endsWith("/")?e.pathname+="index.txt":e.pathname+=".txt";let t=await T(e,a,"auto",!0),r=(0,d.urlToUrlWithoutFlightMarker)(new URL(t.url)),n=t.redirected?r:l,u=t.headers.get("content-type")||"",o=!!t.headers.get("vary")?.includes(i.NEXT_URL),c=!!t.headers.get(i.NEXT_DID_POSTPONE_HEADER),f=u.startsWith(i.RSC_CONTENT_TYPE_HEADER);if(f||(f=u.startsWith("text/plain")),!f||!t.ok||!t.body)return e.hash&&(r.hash=e.hash),m(r.toString());let h=t.flightResponsePromise;null===h&&(h=O(t.body,a,{allowPartialStream:c}));let[_,v]=await Promise.all([h,t.cacheData]);if((t.headers.get(y.NEXT_NAV_DEPLOYMENT_ID_HEADER)??_.b)!==(0,p.getNavigationBuildId)())return m(t.url);let R=(0,s.normalizeFlightData)(_.f);if("string"==typeof R)return m(R);let E=null!==v?await S(v,_,a):null;return{flightData:R,canonicalUrl:n,renderedSearch:_.q,couldBeIntercepted:o,supportsPerSegmentPrefetching:_.S,postponed:c,dynamicStaleTime:_.d??g.UnknownDynamicStaleTime,staticStageData:E,runtimePrefetchStream:_.p??null,responseHeaders:t.headers,debugInfo:h._debugInfo??null}}catch(e){return R||console.error(`Failed to fetch RSC payload for ${l}. Falling back to browser navigation.`,e),l.toString()}}async function P(e){return{response:e,cacheData:null}}async function S(e,t,r){let{isResponsePartial:n,responseBodyClone:a}=e;if(a){if(!n)return a.cancel(),{response:t,isResponsePartial:!1};if(void 0!==t.l)return{response:await b(a,t.l,r),isResponsePartial:!0};a.cancel()}return null}async function b(e,t,r){var n,a;let l,u;return O((n=e,a=await t,l=n.getReader(),u=a,new ReadableStream({async pull(e){if(u<=0){l.cancel(),e.close();return}let{done:t,value:r}=await l.read();t?e.close():r.byteLength<=u?(e.enqueue(r),u-=r.byteLength):(e.enqueue(r.subarray(0,u)),u=0,l.cancel(),e.close())},cancel(){l.cancel()}})),r,{allowPartialStream:!0})}async function T(e,t,r,a,l){var u,s;let d=(0,h.getDeploymentId)();d&&(t["x-deployment-id"]=d);let p=new URL(e);(0,f.setCacheBustingSearchParam)(p,t);let y=fetch(p,{credentials:"same-origin",headers:t,priority:r||void 0,signal:l}).then(P),g=y.then(({response:e})=>e),_=a?(u=g,s=t,v(u,{callServer:o.callServer,findSourceMapURL:c.findSourceMapURL,debugChannel:n&&n(s)})):null,m=await g,R=m.redirected,E=new URL(m.url,p);return E.searchParams.delete(i.NEXT_RSC_UNION_QUERY),{url:E.href,redirected:R,ok:m.ok,headers:m.headers,body:m.body,status:m.status,flightResponsePromise:_,cacheData:y.then(({cacheData:e})=>e)}}function O(e,t,r){return _(e,{callServer:o.callServer,findSourceMapURL:c.findSourceMapURL,debugChannel:n&&n(t),unstable_allowPartialStream:r?.allowPartialStream})}"u">typeof window&&(window.addEventListener("pagehide",()=>{R=!0}),window.addEventListener("pageshow",()=>{R=!1})),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},548919,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isNavigatingToNewRootLayout",{enumerable:!0,get:function(){return function e(t,r){let a=t[0],l=r.segment;if(Array.isArray(a)&&Array.isArray(l)){if(a[0]!==l[0]||a[2]!==l[2])return!0}else if(a!==l)return!0;let u=((t[4]??0)&n.PrefetchHint.IsRootLayout)!=0,i=(r.prefetchHints&n.PrefetchHint.IsRootLayout)!=0;if(u)return!i;if(i)return!0;let o=r.slots,c=t[1];if(null!==o)for(let t in o){let r=o[t],n=c[t];if(void 0===n||e(n,r))return!0}return!1}}});let n=e.r(522744);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},494272,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getLastCommittedTree:function(){return u},setLastCommittedTree:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=null;function u(){return l}function i(e){l=e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},595871,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={FreshnessPolicy:function(){return P},createInitialCacheNodeForHydration:function(){return b},isDeferredRsc:function(){return k},spawnDynamicRequests:function(){return M},startPPRNavigation:function(){return T}};for(var l in a)Object.defineProperty(r,l,{enumerable:!0,get:a[l]});let u=e.r(522744),i=e.r(813258),o=e.r(756019),c=e.r(451191),s=e.r(787288),f=e.r(941538),d=e.r(388540),h=e.r(548919),p=e.r(494272),y=e.r(760355),g=e.r(620896),_=e.r(509396),v=e.r(496167),m=e.r(663416),R=e.r(856655),E=e.r(179027);var P=((n={})[n.Default=0]="Default",n[n.Hydration=1]="Hydration",n[n.HistoryTraversal=2]="HistoryTraversal",n[n.RefreshAll=3]="RefreshAll",n[n.HMRRefresh=4]="HMRRefresh",n[n.Gesture=5]="Gesture",n);let S=()=>{};function b(e,t,r,n,a){return O(e,t,null,1,r,n,a,!1,{separateRefreshUrls:null,scrollRef:null})}function T(e,t,r,n,a,l,s,f,d,p,y,_,v){let m={canonicalUrl:(0,c.createHrefFromUrl)(t),renderedSearch:r};return function e(t,r,n,a,l,c,s,f,d,p,y,_,v,m,R,E){var P,S,b;let T,A,j,M,F=a[0],D=w(l);if(!(0,o.matchSegment)(D,F))return!f&&(0,h.isNavigatingToNewRootLayout)(a,l)||D===i.NOT_FOUND_SEGMENT_KEY?null:O(t,l,c,s,d,p,y,v,E);let U=l.slots,L=a[1],k=null!==d?d[1]:null,x=f||(l.prefetchHints&u.PrefetchHint.IsRootLayout)!=0,H=!1;switch(s){case 0:case 2:case 1:case 5:H=!1;break;case 3:case 4:H=!0}let V=null===U;if(void 0===n||H||V&&_){let e=N(t,l,null!==d?d[0]:null,c,p,s,y);j=e.cacheNode,M=e.needsDynamicRequest,void 0!==n&&(j.scrollRef=n.scrollRef)}else{P=!1,j=I((S=n).rsc,P?null:S.prefetchRsc,S.head,P?null:S.prefetchHead,S.scrollRef),M=!1}let B=l.refreshState,$=null!=B?B:R;M&&null!==$&&(b=E,T=$.canonicalUrl,null===(A=b.separateRefreshUrls)?b.separateRefreshUrls=new Set([T]):A.add(T));let K={},X=null,G=!1,q={},Y=null;if(null!==U){let a=void 0!==n?n.slots:null;for(let n in j.slots=Y={},X=new Map,U){let u=U[n],o=L[n];if(void 0===o)return null;let f=null!==k?k[n]:null,d=o[0],h=w(u),R=p;2!==s&&h===i.DEFAULT_SEGMENT_KEY&&d!==i.DEFAULT_SEGMENT_KEY&&(h=w(u=function(e,t,r,n){let a,l,u=n[2];null!=u?(a=u[0],l=u[1]):(a=r.canonicalUrl,l=r.renderedSearch);let i=(0,g.convertReusedFlightRouterStateToRouteTree)(e,t,n,l,{metadataVaryPath:null});return i.refreshState={canonicalUrl:a,renderedSearch:l},i}(l,n,m,o)),f=null,R=null);let P=e(t,r,null!==a?a[n]:void 0,o,u,c,s,x,f??null,R,y,_,v||M,m,$,E);if(null===P)return null;X.set(n,P),Y[n]=P.node;let S=P.route;K[n]=S;let b=P.dynamicRequestTree;null!==b?(G=!0,q[n]=b):q[n]=S}}let W=[w(l),K,null!==$?[$.canonicalUrl,$.renderedSearch]:null,null,l.prefetchHints];return{status:+!M,route:W,node:j,dynamicRequestTree:C(W,q,M,G,v),refreshState:$,children:X}}(e,t,null!==n?n:void 0,a,l,s,f,!1,d,p,y,_,!1,m,null,v)}function O(e,t,r,n,a,l,u,i,o){let c=w(t),s=t.slots,f=null!==a?a[1]:null,d=N(e,t,null!==a?a[0]:null,r,l,n,u),h=d.cacheNode,p=d.needsDynamicRequest;null===s&&function(e,t,r){switch(e){case 0:case 5:case 3:case 4:null===r.scrollRef&&(r.scrollRef={current:!0}),t.scrollRef=r.scrollRef}}(n,h,o);let y={},g=null,_=!1,v={},m=null;if(null!==s)for(let t in h.slots=m={},g=new Map,s){let a=O(e,s[t],r,n,(null!==f?f[t]:null)??null,l,u,i||p,o);g.set(t,a),m[t]=a.node;let c=a.route;y[t]=c;let d=a.dynamicRequestTree;null!==d?(_=!0,v[t]=d):v[t]=c}let R=[c,y,null,null,t.prefetchHints];return{status:+!p,route:R,node:h,dynamicRequestTree:C(R,v,p,_,i),refreshState:null,children:g}}function w(e){if(e.isPage){let t=(0,R.getRenderedSearchFromVaryPath)(e.varyPath);if(null===t)return i.PAGE_SEGMENT_KEY;let r=JSON.stringify(Object.fromEntries(new URLSearchParams(t)));return"{}"!==r?i.PAGE_SEGMENT_KEY+"?"+r:i.PAGE_SEGMENT_KEY}return e.segment}function A(e,t){let r=[e[0],t];return 2 in e&&(r[2]=e[2]),3 in e&&(r[3]=e[3]),4 in e&&(r[4]=e[4]),r}function C(e,t,r,n,a){let l=null;return r?(l=A(e,t),a||(l[3]="refetch")):l=n?A(e,t):null,l}function N(e,t,r,n,a,l,u){let i,o,c,s=t.isPage;switch(l){case 0:{let r=(0,E.readFromBFCacheDuringRegularNavigation)(e,t.varyPath);if(null!==r)return{cacheNode:I(r.rsc,r.prefetchRsc,r.head,r.prefetchHead),needsDynamicRequest:!1};break}case 1:{let l=s?a:null;return(0,E.writeToBFCache)(e,t.varyPath,r,null,l,null,u),s&&null!==n&&(0,E.writeHeadToBFCache)(e,n,l,null,u),{cacheNode:I(r,null,l,null),needsDynamicRequest:!1}}case 2:let f=(0,E.readFromBFCache)(t.varyPath);if(null!==f){let e=f.rsc,t=!k(e)||"pending"!==e.status;return{cacheNode:I(f.rsc,t?null:f.prefetchRsc,f.head,t?null:f.prefetchHead),needsDynamicRequest:!1}}}let d=null,h=!0,p=(0,g.readSegmentCacheEntry)(e,t.varyPath);if(null!==p)switch(p.status){case g.EntryStatus.Fulfilled:d=p.rsc,h=p.isPartial;break;case g.EntryStatus.Pending:d=(0,g.waitForSegmentCacheEntry)(p).then(e=>null!==e?e.rsc:null),h=p.isPartial;case g.EntryStatus.Empty:case g.EntryStatus.Rejected:}null!==r?(h?(i=d,o=r):(i=null,o=d),c=!1):(h?(i=d,o=x()):(i=null,o=d),c=h);let y=null,_=null,v=s;if(s){let t=null,r=!0;if(null!==n){let a=(0,g.readSegmentCacheEntry)(e,n);if(null!==a)switch(a.status){case g.EntryStatus.Fulfilled:t=a.rsc,r=a.isPartial;break;case g.EntryStatus.Pending:t=(0,g.waitForSegmentCacheEntry)(a).then(e=>null!==e?e.rsc:null),r=a.isPartial;case g.EntryStatus.Empty:case g.EntryStatus.Rejected:}}null!==a?(r?(y=t,_=a):(y=null,_=t),v=!1):(r?(y=t,_=x()):(y=null,_=t),v=r)}return 5!==l&&((0,E.writeToBFCache)(e,t.varyPath,o,i,_,y,u),s&&null!==n&&(0,E.writeHeadToBFCache)(e,n,_,y,u)),{cacheNode:I(o,i,_,y),needsDynamicRequest:c||v}}function I(e,t,r,n,a=null){return{rsc:e,prefetchRsc:t,head:r,prefetchHead:n,slots:null,scrollRef:a}}let j=!1;function M(e,t,r,n,a,l,u){let i=e.dynamicRequestTree;if(null===i){j=!1;return}let o=U(e,i,t,r,n,l),s=a.separateRefreshUrls,f=null;if(null!==s){f=[];let a=(0,c.createHrefFromUrl)(t);for(let t of s)t!==a&&null!==i&&f.push(U(e,i,new URL(t,location.origin),r,n,l))}F(e,r,o,f,l,u).then(S,S)}async function F(e,t,r,n,a,l){var u,i;let o=await (u=r,i=n,new Promise(e=>{let t=t=>{0===t.exitStatus?0==--n&&e(0):e(t.exitStatus)},r=()=>e(2),n=1;u.then(t,r),null!==i&&(n+=i.length,i.forEach(e=>e.then(t,r)))}));switch(0===o&&(o=function e(t,r,n){var a,l,u;let i,o,c;0===t.status?(t.status=2,a=t.node,l=r,u=n,k(o=a.rsc)&&(null===l?o.resolve(null,u):o.reject(l,u)),k(c=a.head)&&c.resolve(null,u),i=null===t.refreshState?1:2):i=0;let s=t.children;if(null!==s)for(let[,t]of s){let a=e(t,r,n);a>i&&(i=a)}return i}(e,null,null)),o){case 0:j=!1;return;case 1:{let n=await r;D(!1,n.url,t,n.seed,e.route,a,l);return}case 2:{let n=await r;D(!0,n.url,t,n.seed,e.route,a,l);return}default:return o}}function D(e,t,r,n,a,l,u){if(null!==l)(0,g.markRouteEntryAsDynamicRewrite)(l);else if(null!==n){let e=n.metadataVaryPath;if(null!==e){let a=Date.now();(0,v.discoverKnownRoute)(a,t.pathname,r,null,n.routeTree,e,!1,(0,c.createHrefFromUrl)(t),!1,!0)}}(0,g.invalidateRouteCacheEntries)(r,a),e=e||j,j=!0;let i=(0,p.getLastCommittedTree)(),o=null!==i&&a!==i?u:"replace",s={type:d.ACTION_SERVER_PATCH,previousTree:a,url:t,nextUrl:r,seed:n,mpa:e,navigateType:o};(0,f.dispatchAppRouterAction)(s)}async function U(e,t,r,n,a,l){try{let u=await (0,s.fetchServerResponse)(r,{flightRouterState:t,nextUrl:n,isHmrRefresh:4===a});if("string"==typeof u)return{exitStatus:2,url:new URL(u,location.origin),seed:null};let i=Date.now(),c=(0,y.convertServerPatchToFullTree)(i,e.route,u.flightData,u.renderedSearch,u.dynamicStaleTime);if(null!==l&&null!==u.staticStageData){let{response:e,isResponsePartial:r}=u.staticStageData;(0,g.getStaleAt)(i,e.s).then(n=>{let a=u.responseHeaders.get(m.NEXT_NAV_DEPLOYMENT_ID_HEADER)??e.b;(0,g.writeStaticStageResponseIntoCache)(i,e.f,a,e.h,n,t,u.renderedSearch,r)}).catch(()=>{})}null!==l&&null!==u.runtimePrefetchStream&&(0,g.processRuntimePrefetchStream)(i,u.runtimePrefetchStream,t,u.renderedSearch).then(e=>{null!==e&&(0,g.writeDynamicRenderResponseIntoCache)(i,_.FetchStrategy.PPRRuntime,e.flightDatas,e.buildId,e.isResponsePartial,e.headVaryParams,e.staleAt,e.navigationSeed,null)}).catch(()=>{});let f=(0,E.computeDynamicStaleAt)(i,u.dynamicStaleTime);return{exitStatus:+!!function e(t,r,n,a,l,u){0===t.status&&null!==n&&(t.status=1,function(e,t,r,n){let a=e.rsc,l=t[0];if(null===l)return;null===a?e.rsc=l:k(a)&&a.resolve(l,n);let u=e.head;k(u)&&u.resolve(r,n)}(t.node,n,a,u),(0,E.updateBFCacheEntryStaleAt)(r.varyPath,l));let i=t.children,c=r.slots,s=null!==n?n[1]:null,f=!1;if(null!==i)if(null!==c)for(let t in c){let r=c[t],n=null!==s?s[t]:null,d=i.get(t);if(void 0===d)f=!0;else{let t=d.route[0],i=w(r);(0,o.matchSegment)(i,t)&&null!=n&&e(d,r,n,a,l,u)&&(f=!0)}}else null!==c&&(f=!0);return f}(e,c.routeTree,c.data,c.head,f,u.debugInfo),url:new URL(u.canonicalUrl,location.origin),seed:c}}catch{return{exitStatus:2,url:r,seed:null}}}let L=Symbol();function k(e){return e&&"object"==typeof e&&e.tag===L}function x(){let e,t,r=[],n=new Promise((r,n)=>{e=r,t=n});return n.status="pending",n.resolve=(t,a)=>{"pending"===n.status&&(n.status="fulfilled",n.value=t,null!==a&&r.push.apply(r,a),e(t))},n.reject=(e,a)=>{"pending"===n.status&&(n.status="rejected",n.reason=e,null!==a&&r.push.apply(r,a),t(e))},n.tag=L,n._debugInfo=r,n}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},203372,(e,t,r)=>{"use strict";function n(e){return e.startsWith("/")?e:`/${e}`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureLeadingSlash",{enumerable:!0,get:function(){return n}})},174180,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={compareAppPaths:function(){return o},normalizeAppPath:function(){return i},normalizeRscURL:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(203372),u=e.r(813258);function i(e){return(0,l.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,u.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:`${e}/${t}`,""))}function o(e,t){let r=e.includes("/@"),n=t.includes("/@");return r&&!n?-1:!r&&n?1:e.localeCompare(t)}function c(e){return e.replace(/\.rsc($|\?)/,"$1")}},591463,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={INTERCEPTION_ROUTE_MARKERS:function(){return u},extractInterceptionRouteInformation:function(){return o},isInterceptionRouteAppPath:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(174180),u=["(..)(..)","(.)","(..)","(...)"];function i(e){return void 0!==e.split("/").find(e=>u.find(t=>e.startsWith(t)))}function o(e){let t,r,n;for(let a of e.split("/"))if(r=u.find(e=>a.startsWith(e))){[t,n]=e.split(r,2);break}if(!t||!r||!n)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Must be in the format //(..|...|..)(..)/`),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(t=(0,l.normalizeAppPath)(t),r){case"(.)":n="/"===t?`/${n}`:t+"/"+n;break;case"(..)":if("/"===t)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});n=t.split("/").slice(0,-1).concat(n).join("/");break;case"(...)":n="/"+n;break;case"(..)(..)":let a=t.split("/");if(a.length<=2)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});n=a.slice(0,-2).concat(n).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:t,interceptedRoute:n}}},734727,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={computeChangedPath:function(){return h},extractPathFromFlightRouterState:function(){return f},extractSourcePageFromFlightRouterState:function(){return d},getSelectedParams:function(){return function e(t,r={}){for(let n of Object.values(t[1])){let t=n[0],a=Array.isArray(t),l=a?t[1]:t;!l||l.startsWith(u.PAGE_SEGMENT_KEY)||(a&&("c"===t[2]||"oc"===t[2])?r[t[0]]=t[1].split("/"):a&&(r[t[0]]=t[1]),r=e(n,r))}return r}}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(591463),u=e.r(813258),i=e.r(756019),o=e=>"/"===e[0]?e.slice(1):e,c=e=>"string"==typeof e?"children"===e?"":e:e[1];function s(e){return e.reduce((e,t)=>""===(t=o(t))||(0,u.isGroupSegment)(t)?e:`${e}/${t}`,"")||"/"}function f(e){let t=Array.isArray(e[0])?e[0][1]:e[0];if(t===u.DEFAULT_SEGMENT_KEY||l.INTERCEPTION_ROUTE_MARKERS.some(e=>t.startsWith(e)))return;if(t.startsWith(u.PAGE_SEGMENT_KEY))return"";let r=[c(t)],n=e[1]??{},a=n.children?f(n.children):void 0;if(void 0!==a)r.push(a);else for(let[e,t]of Object.entries(n)){if("children"===e)continue;let n=f(t);void 0!==n&&r.push(n)}return s(r)}function d(e){let t=function e(t){let r=(e=>{if("string"==typeof e)return"children"===e?"":e.startsWith(u.PAGE_SEGMENT_KEY)?"page":e;let[t,,r]=e;switch(r){case"c":return`[...${t}]`;case"ci(..)(..)":return`(..)(..)[...${t}]`;case"ci(.)":return`(.)[...${t}]`;case"ci(..)":return`(..)[...${t}]`;case"ci(...)":return`(...)[...${t}]`;case"oc":return`[[...${t}]]`;case"d":default:return`[${t}]`;case"di(..)(..)":return`(..)(..)[${t}]`;case"di(.)":return`(.)[${t}]`;case"di(..)":return`(..)[${t}]`;case"di(...)":return`(...)[${t}]`}})(t[0]);if(r===u.DEFAULT_SEGMENT_KEY)return;if("page"===r)return[r];let n=t[1]??{},a=n.children?e(n.children):void 0;if(void 0!==a)return""===r?a:[o(r),...a];for(let[t,a]of Object.entries(n)){if("children"===t)continue;let n=e(a);if(void 0!==n)return""===r?n:[o(r),...n]}}(e);return t?`/${t.join("/")}`:void 0}function h(e,t){let r=function e(t,r){let[n,a]=t,[u,o]=r,s=c(n),d=c(u);if(l.INTERCEPTION_ROUTE_MARKERS.some(e=>s.startsWith(e)||d.startsWith(e)))return"";if(!(0,i.matchSegment)(n,u))return f(r)??"";for(let t in a)if(o[t]){let r=e(a[t],o[t]);if(null!==r)return`${c(u)}/${r}`}return null}(e,t);return null==r||"/"===r?r:s(r.split("/"))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},948277,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isJavaScriptURLString",{enumerable:!0,get:function(){return a}});let n=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function a(e){return n.test(""+e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},381400,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isNavigationLocked:function(){return o},startListeningForInstantNavigationCookie:function(){return l},transitionToCapturedSPA:function(){return u},updateCapturedSPAToTree:function(){return i},waitForNavigationLockIfActive:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function l(){}function u(e,t){}function i(e,t){}function o(){return!1}async function c(){}e.r(621768),e.r(941538),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},760355,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={completeHardNavigation:function(){return P},completeSoftNavigation:function(){return S},completeTraverseNavigation:function(){return b},convertServerPatchToFullTree:function(){return T},navigate:function(){return _},navigateToKnownRoute:function(){return v}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(787288),u=e.r(595871),i=e.r(451191),o=e.r(663416),c=e.r(620896),s=e.r(496167),f=e.r(477048);e.r(777709);let d=e.r(509396);e.r(91949);let h=e.r(388540),p=e.r(734727),y=e.r(948277),g=e.r(179027);function _(e,t,r,n,a,l,u,i,o,s){return function(e,t,r,n,a,l,u,i,o,s){let d=Date.now(),h=t.href,p=(0,f.createCacheKey)(h,u),y=(0,c.readRouteCacheEntry)(d,p);if(null!==y&&y.status===c.EntryStatus.Fulfilled)return m(d,e,t,r,n,u,a,l,i,o,s,y);if(null===y||y.status!==c.EntryStatus.Rejected){let f=(0,c.deprecated_requestOptimisticRouteCacheEntry)(d,t,u);if(null!==f)return m(d,e,t,r,n,u,a,l,i,o,s,f)}return E(d,e,t,r,n,u,a,l,i,o,s).catch(()=>e)}(e,t,r,n,a,l,u,i,o,s)}function v(e,t,r,n,a,l,i,o,c,s,f,d,h,p,y){let g={separateRefreshUrls:null,scrollRef:null},_=r.href===l.href,v=(0,u.startPPRNavigation)(e,l,i,o,c,a.routeTree,a.metadataVaryPath,s,a.data,a.head,a.dynamicStaleAt,_,g);return null!==v?(s!==u.FreshnessPolicy.Gesture&&(0,u.spawnDynamicRequests)(v,r,f,s,g,y,h),S(t,r,f,v.route,v.node,a.renderedSearch,n,h,d,g.scrollRef,p)):P(t,r,h)}function m(e,t,r,n,a,l,u,i,o,c,s,f){let d=f.tree,h=f.canonicalUrl+r.hash,p={renderedSearch:f.renderedSearch,routeTree:d,metadataVaryPath:f.metadata.varyPath,data:null,head:null,dynamicStaleAt:(0,g.computeDynamicStaleAt)(e,g.UnknownDynamicStaleTime)};return v(e,t,r,h,p,n,a,u,i,o,l,c,s,null,f)}let R=["",{},null,"refetch"];async function E(e,t,r,n,a,f,h,p,y,g,_){let m;switch(y){case u.FreshnessPolicy.Default:case u.FreshnessPolicy.HistoryTraversal:case u.FreshnessPolicy.Gesture:m=p;break;case u.FreshnessPolicy.Hydration:case u.FreshnessPolicy.RefreshAll:case u.FreshnessPolicy.HMRRefresh:m=R;break;default:m=p}let E=(0,l.fetchServerResponse)(r,{flightRouterState:m,nextUrl:f}),S=await E;if("string"==typeof S)return P(t,new URL(S,location.origin),_);let{flightData:b,canonicalUrl:O,renderedSearch:w,couldBeIntercepted:A,supportsPerSegmentPrefetching:C,dynamicStaleTime:N,staticStageData:I,runtimePrefetchStream:j,responseHeaders:M,debugInfo:F}=S,D=T(e,p,b,w,N),U=D.metadataVaryPath;if(null!==U){if((0,s.discoverKnownRoute)(e,r.pathname,f,null,D.routeTree,U,A,(0,i.createHrefFromUrl)(O),C,!1),null!==I){let{response:t,isResponsePartial:r}=I;(0,c.getStaleAt)(e,t.s).then(n=>{let a=M.get(o.NEXT_NAV_DEPLOYMENT_ID_HEADER)??t.b;(0,c.writeStaticStageResponseIntoCache)(e,t.f,a,t.h,n,p,w,r)}).catch(()=>{})}null!==j&&(0,c.processRuntimePrefetchStream)(e,j,p,w).then(t=>{null!==t&&(0,c.writeDynamicRenderResponseIntoCache)(e,d.FetchStrategy.PPRRuntime,t.flightDatas,t.buildId,t.isResponsePartial,t.headVaryParams,t.staleAt,t.navigationSeed,null)}).catch(()=>{})}return v(e,t,r,(0,i.createHrefFromUrl)(O),D,n,a,h,p,y,f,g,_,F,null)}function P(e,t,r){return(0,y.isJavaScriptURLString)(t.href)?(console.error("Next.js has blocked a javascript: URL as a security precaution."),e):{canonicalUrl:t.origin===location.origin?(0,i.createHrefFromUrl)(t):t.href,pushRef:{pendingPush:"push"===r,mpaNavigation:!0,preserveCustomHistoryState:!1},renderedSearch:e.renderedSearch,focusAndScrollRef:e.focusAndScrollRef,cache:e.cache,tree:e.tree,nextUrl:e.nextUrl,previousNextUrl:e.previousNextUrl,debugInfo:null}}function S(e,t,r,n,a,l,u,i,o,c,s){let f,d,y=(0,p.computeChangedPath)(e.tree,n)||e.nextUrl,g=new URL(e.canonicalUrl,t),_=t.pathname===g.pathname&&t.search===g.search&&t.hash!==g.hash;if(o===h.ScrollBehavior.NoScroll)null!==c&&(c.current=!1),f=e.focusAndScrollRef.scrollRef,d=!1;else if(_){let t=e.focusAndScrollRef.scrollRef;null!==t&&(t.current=!1),null!==c&&(c.current=!1),f={current:!0},d=!0}else{if(f=c,null!==c){let t=e.focusAndScrollRef.scrollRef;null!==t&&(t.current=!1)}d=!1}return{canonicalUrl:u,renderedSearch:l,pushRef:{pendingPush:"push"===i,mpaNavigation:!1,preserveCustomHistoryState:!1},focusAndScrollRef:{scrollRef:f,forceScroll:d,onlyHashChange:_,hashFragment:o!==h.ScrollBehavior.NoScroll&&""!==t.hash?decodeURIComponent(t.hash.slice(1)):e.focusAndScrollRef.hashFragment},cache:a,tree:n,nextUrl:y,previousNextUrl:r,debugInfo:s}}function b(e,t,r,n,a,l){return{canonicalUrl:(0,i.createHrefFromUrl)(t),renderedSearch:r,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:e.focusAndScrollRef,cache:n,tree:a,nextUrl:l,previousNextUrl:null,debugInfo:null}}function T(e,t,r,n,a){let l=t,u=null,i=null;if(null!==r)for(let{segmentPath:e,tree:t,seedData:a,head:o}of r){let r=function e(t,r,n,a,l,u,i){let o;if(i===l.length)return{tree:n,data:a};let c=l[i],s=t[1],f=null!==r?r[1]:null,d={},h={};for(let t in s){let r=s[t],o=null!==f?f[t]??null:null;if(t===c){let c=e(r,o,n,a,l,u,i+2);d[t]=c.tree,h[t]=c.data}else d[t]=r,h[t]=o}if(o=[t[0],d],2 in t){let e=t[2];null!=e&&(o[2]=[e[0],u])}return 3 in t&&(o[3]=t[3]),4 in t&&(o[4]=t[4]),{tree:o,data:[null,h,null,!0,null]}}(l,u,t,a,e,n,0);l=r.tree,u=r.data,i=o}let o=l,s={metadataVaryPath:null};return{routeTree:(0,c.convertRootFlightRouterStateToRouteTree)(o,n,s),metadataVaryPath:s.metadataVaryPath,data:u,renderedSearch:n,head:i,dynamicStaleAt:(0,g.computeDynamicStaleAt)(e,a)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},754069,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DYNAMIC_STALETIME_MS:function(){return o},STATIC_STALETIME_MS:function(){return c},navigateReducer:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(760355),u=e.r(620896),i=e.r(595871),o=1e3*Number("0"),c=(0,u.getStaleTimeMs)(Number("300"));function s(e,t){let{url:r,isExternalUrl:n,navigateType:a,scrollBehavior:u}=t;if(n||document.getElementById("__next-page-redirect"))return(0,l.completeHardNavigation)(e,r,a);let o=new URL(e.canonicalUrl,location.origin),c=e.renderedSearch;return(0,l.navigate)(e,r,o,c,e.cache,e.tree,e.nextUrl,i.FreshnessPolicy.Default,u,a)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},284356,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"hasInterceptionRouteInCurrentTree",{enumerable:!0,get:function(){return function e([t,r]){if(Array.isArray(t)&&("di(..)(..)"===t[2]||"ci(..)(..)"===t[2]||"di(.)"===t[2]||"ci(.)"===t[2]||"di(..)"===t[2]||"ci(..)"===t[2]||"di(...)"===t[2]||"ci(...)"===t[2])||"string"==typeof t&&(0,n.isInterceptionRouteAppPath)(t))return!0;if(r){for(let t in r)if(e(r[t]))return!0}return!1}}});let n=e.r(591463);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},269845,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={refreshDynamicData:function(){return d},refreshReducer:function(){return f}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(388540),u=e.r(760355),i=e.r(620896),o=e.r(284356),c=e.r(595871),s=e.r(179027);function f(e,t){{let t=e.nextUrl,r=e.tree;(0,i.invalidateSegmentCacheEntries)(t,r)}return d(e,c.FreshnessPolicy.RefreshAll)}function d(e,t){(0,s.invalidateBfCache)();let r=e.nextUrl,n=(0,o.hasInterceptionRouteInCurrentTree)(e.tree)?e.previousNextUrl||r:null,a=e.canonicalUrl,i=new URL(a,location.origin),c=e.renderedSearch,f=e.tree,d=l.ScrollBehavior.NoScroll,h=Date.now(),p=(0,u.convertServerPatchToFullTree)(h,f,null,c,s.UnknownDynamicStaleTime);return(0,u.navigateToKnownRoute)(h,e,i,a,p,i,c,e.cache,f,t,n,d,"replace",null,null)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},891668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"serverPatchReducer",{enumerable:!0,get:function(){return o}});let n=e.r(451191),a=e.r(388540),l=e.r(760355),u=e.r(269845),i=e.r(595871);function o(e,t){let r=t.mpa,o=new URL(t.url,location.origin),c=t.seed,s=t.navigateType;if(r||null===c)return(0,l.completeHardNavigation)(e,o,s);let f=new URL(e.canonicalUrl,location.origin),d=e.renderedSearch;if(t.previousTree!==e.tree)return(0,u.refreshReducer)(e,{type:a.ACTION_REFRESH});let h=(0,n.createHrefFromUrl)(o),p=t.nextUrl,y=a.ScrollBehavior.Default,g=Date.now();return(0,l.navigateToKnownRoute)(g,e,o,h,c,f,d,e.cache,e.tree,i.FreshnessPolicy.RefreshAll,p,y,s,null,null)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},73790,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"restoreReducer",{enumerable:!0,get:function(){return i}});let n=e.r(734727),a=e.r(595871),l=e.r(760355),u=e.r(179027);function i(e,t){let r,i,o=t.historyState;o?(r=o.tree,i=o.renderedSearch):(r=e.tree,i=e.renderedSearch);let c=new URL(e.canonicalUrl,location.origin),s=t.url,f=(0,n.extractPathFromFlightRouterState)(r)??s.pathname,d=Date.now(),h={separateRefreshUrls:null,scrollRef:null},p=(0,l.convertServerPatchToFullTree)(d,r,null,i,u.UnknownDynamicStaleTime),y=(0,a.startPPRNavigation)(d,c,e.renderedSearch,e.cache,e.tree,p.routeTree,p.metadataVaryPath,a.FreshnessPolicy.HistoryTraversal,null,null,p.dynamicStaleAt,!1,h);return null===y?(0,l.completeHardNavigation)(e,s,"replace"):((0,a.spawnDynamicRequests)(y,s,f,a.FreshnessPolicy.HistoryTraversal,h,null,"replace"),(0,l.completeTraverseNavigation)(e,s,i,y.node,y.route,f))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},486720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"hmrRefreshReducer",{enumerable:!0,get:function(){return l}});let n=e.r(269845),a=e.r(595871);function l(e){return(0,n.refreshDynamicData)(e,a.FreshnessPolicy.HMRRefresh)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},627801,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"assignLocation",{enumerable:!0,get:function(){return a}});let n=e.r(405550);function a(e,t){if(e.startsWith(".")){let r=t.origin+t.pathname;return new URL((r.endsWith("/")?r:r+"/")+e)}return new URL((0,n.addBasePath)(e),t.href)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},59084,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"pathHasPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(572463);function a(e,t){if("string"!=typeof e)return!1;let{pathname:r}=(0,n.parsePath)(e);return r===t||r.startsWith(t+"/")}},652817,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"hasBasePath",{enumerable:!0,get:function(){return a}});let n=e.r(59084);function a(e){return(0,n.pathHasPrefix)(e,"")}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},387250,(e,t,r)=>{"use strict";function n(e){return e}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removeBasePath",{enumerable:!0,get:function(){return n}}),e.r(652817),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},239747,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={extractInfoFromServerReferenceId:function(){return l},omitUnusedArgs:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function l(e){let t=parseInt(e.slice(0,2),16),r=t>>1&63,n=Array(6);for(let e=0;e<6;e++){let t=r>>5-e&1;n[e]=1===t}return{type:1==(t>>7&1)?"use-cache":"server-action",usedArgs:n,hasRestArgs:1==(1&t)}}function u(e,t){let r=Array(e.length),n=0;for(let a=0;a=6&&t.hasRestArgs)&&(r[a]=e[a],n=a+1);return r.length=n,r}},339146,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ActionDidNotRevalidate:function(){return l},ActionDidRevalidateDynamicOnly:function(){return i},ActionDidRevalidateStaticAndDynamic:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=0,u=1,i=2},745794,(e,t,r)=>{"use strict";let n;Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"serverActionReducer",{enumerable:!0,get:function(){return j}});let a=e.r(132120),l=e.r(92245),u=e.r(621768),i=e.r(292838),o=e.r(235326),c=e.r(388540),s=e.r(627801),f=e.r(451191),d=e.r(284356),h=e.r(450590),p=e.r(124063),y=e.r(387250),g=e.r(652817),_=e.r(239747),v=e.r(620896),m=e.r(777709),R=e.r(543369),E=e.r(732992),P=e.r(663416),S=e.r(760355),b=e.r(496167),T=e.r(339146),O=e.r(657630),w=e.r(595871),A=e.r(787288),C=e.r(179027),N=o.createFromFetch;async function I(e,t,{actionId:r,actionArgs:c}){let f,d,p,y,g=(0,o.createTemporaryReferenceSet)(),v=(0,_.extractInfoFromServerReferenceId)(r),m=(0,_.omitUnusedArgs)(c,v),S=await (0,o.encodeReply)(m,{temporaryReferences:g}),b={Accept:u.RSC_CONTENT_TYPE_HEADER,[u.ACTION_HEADER]:r,[u.NEXT_ROUTER_STATE_TREE_HEADER]:(0,h.prepareFlightRouterStateForRequest)(e.tree)},O=(0,R.getDeploymentId)();O&&(b["x-deployment-id"]=O),t&&(b[u.NEXT_URL]=t);let w=await fetch(e.canonicalUrl,{method:"POST",headers:b,body:S});if("1"===w.headers.get(u.NEXT_ACTION_NOT_FOUND_HEADER))throw Object.defineProperty(new i.UnrecognizedActionError(`Server Action "${r}" was not found on the server. -Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`),"__NEXT_ERROR_CODE",{value:"E715",enumerable:!1,configurable:!0});let C=w.headers.get("x-action-redirect"),[j,M]=C?.split(";")||[];switch(M){case"push":f="push";break;case"replace":f="replace";break;default:f=void 0}let F=!!w.headers.get(u.NEXT_IS_PRERENDER_HEADER),D=T.ActionDidNotRevalidate;try{let e=w.headers.get("x-action-revalidated");if(e){let t=JSON.parse(e);(t===T.ActionDidRevalidateStaticAndDynamic||t===T.ActionDidRevalidateDynamicOnly)&&(D=t)}}catch{}let U=j?(0,s.assignLocation)(j,new URL(e.canonicalUrl,window.location.href)):void 0,L=w.headers.get("content-type"),k=!!(L&&L.startsWith(u.RSC_CONTENT_TYPE_HEADER));if(!k&&!U)throw Object.defineProperty(Error(w.status>=400&&"text/plain"===L?await w.text():"An unexpected response was received from the server."),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});let x=!1;if(k){let e=U?(0,A.processFetch)(w).then(({response:e})=>e):Promise.resolve(w),t=await N(e,{callServer:a.callServer,findSourceMapURL:l.findSourceMapURL,temporaryReferences:g,debugChannel:n&&n(b)});d=U?void 0:t.a,x=t.i;let r=w.headers.get(P.NEXT_NAV_DEPLOYMENT_ID_HEADER)??t.b;if(void 0!==r&&r!==(0,E.getNavigationBuildId)());else{let e=(0,h.normalizeFlightData)(t.f);""!==e&&(p=e,y=t.q)}}else d=void 0,p=void 0,y=void 0;return{actionResult:d,actionFlightData:p,actionFlightDataRenderedSearch:y,redirectLocation:U,redirectType:f,revalidationKind:D,isPrerender:F,couldBeIntercepted:x}}function j(e,t){let{resolve:r,reject:n}=t,a=(e.previousNextUrl||e.nextUrl)&&(0,d.hasInterceptionRouteInCurrentTree)(e.tree)?e.previousNextUrl||e.nextUrl:null;return I(e,a,t).then(async({revalidationKind:l,actionResult:u,actionFlightData:i,actionFlightDataRenderedSearch:o,redirectLocation:s,redirectType:d,isPrerender:h,couldBeIntercepted:p})=>{l!==T.ActionDidNotRevalidate&&((0,C.invalidateBfCache)(),t.didRevalidate=!0,l===T.ActionDidRevalidateStaticAndDynamic&&(0,v.invalidateEntirePrefetchCache)(a,e.tree),(0,m.startRevalidationCooldown)());let _=d||"push";if(void 0!==s)if((0,O.isExternalURL)(s))return n(M(s.href,_)),(0,S.completeHardNavigation)(e,s,_);else{let e=(0,f.createHrefFromUrl)(s,!1);n(M((0,g.hasBasePath)(e)?(0,y.removeBasePath)(e):e,_))}else r(u);if(void 0===s&&l===T.ActionDidNotRevalidate&&void 0===i)return e;if(void 0===i&&void 0!==s)return(0,S.completeHardNavigation)(e,s,_);if("string"==typeof i)return(0,S.completeHardNavigation)(e,new URL(i,location.origin),_);let R=new URL(e.canonicalUrl,location.origin),E=e.renderedSearch,P=void 0!==s?s:R,A=e.tree,N=c.ScrollBehavior.Default,I=l===T.ActionDidNotRevalidate?w.FreshnessPolicy.Default:w.FreshnessPolicy.RefreshAll;if(void 0!==i&&void 0!==o){let t=(0,f.createHrefFromUrl)(P),r=Date.now(),n=(0,S.convertServerPatchToFullTree)(r,A,i,o,C.UnknownDynamicStaleTime),l=n.metadataVaryPath;return null!==l&&(0,b.discoverKnownRoute)(r,P.pathname,a,null,n.routeTree,l,p,t,h,!1),(0,S.navigateToKnownRoute)(r,e,P,t,n,R,E,e.cache,A,I,a,N,_,null,null)}return(0,S.navigate)(e,P,R,E,e.cache,A,a,I,N,_)},t=>(n(t),e))}function M(e,t){let r=(0,p.getRedirectError)(e,t);return r.handled=!0,r}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},804924,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"reducer",{enumerable:!0,get:function(){return s}});let n=e.r(388540),a=e.r(754069),l=e.r(891668),u=e.r(73790),i=e.r(269845),o=e.r(486720),c=e.r(745794),s="u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"prefetch",{enumerable:!0,get:function(){return i}});let n=e.r(657630),a=e.r(477048),l=e.r(777709),u=e.r(509396);function i(e,t,r,i,o){let c=(0,n.createPrefetchURL)(e);if(null===c)return;let s=(0,a.createCacheKey)(c.href,t);(0,l.schedulePrefetchTask)(s,r,i,u.PrefetchPriority.Default,o)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},699781,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createMutableActionQueue:function(){return m},dispatchNavigateAction:function(){return P},dispatchTraverseAction:function(){return S},getCurrentAppRouterState:function(){return R},publicAppRouterInstance:function(){return b}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(388540),u=e.r(804924),i=e.r(271645),o=e.r(564245),c=e.r(509396),s=e.r(401411);e.r(760355);let f=e.r(941538);e.r(496167),e.r(595871);let d=e.r(405550),h=e.r(657630),p=e.r(91949),y=e.r(948277);function g(e,t){null!==e.pending?(e.pending=e.pending.next,null!==e.pending&&_({actionQueue:e,action:e.pending,setState:t})):e.needsRefresh&&(e.needsRefresh=!1,e.dispatch({type:l.ACTION_REFRESH},t))}async function _({actionQueue:e,action:t,setState:r}){let n=e.state;e.pending=t;let a=t.payload,u=e.action(n,a);function i(n){if(t.discarded){t.payload.type===l.ACTION_SERVER_ACTION&&t.payload.didRevalidate&&(e.needsRefresh=!0),g(e,r);return}e.state=n,g(e,r),t.resolve(n)}(0,o.isThenable)(u)?u.then(i,n=>{g(e,r),t.reject(n)}):i(u)}let v=null;function m(e,t){let r={state:e,dispatch:(e,t)=>(function(e,t,r){let n={resolve:r,reject:()=>{}};if(t.type!==l.ACTION_RESTORE){let e=new Promise((e,t)=>{n={resolve:e,reject:t}});(0,i.startTransition)(()=>{r(e)})}let a={payload:t,next:null,resolve:n.resolve,reject:n.reject};null===e.pending?(e.last=a,_({actionQueue:e,action:a,setState:r})):t.type===l.ACTION_NAVIGATE||t.type===l.ACTION_RESTORE?(e.pending.discarded=!0,a.next=e.pending.next,_({actionQueue:e,action:a,setState:r})):(null!==e.last&&(e.last.next=a),e.last=a)})(r,e,t),action:async(e,t)=>(0,u.reducer)(e,t),pending:null,last:null,onRouterTransitionStart:null!==t&&"function"==typeof t.onRouterTransitionStart?t.onRouterTransitionStart:null};if("u">typeof window){if(null!==v)throw Object.defineProperty(Error("Internal Next.js Error: createMutableActionQueue was called more than once"),"__NEXT_ERROR_CODE",{value:"E624",enumerable:!1,configurable:!0});v=r}return r}function R(){return null!==v?v.state:null}function E(){return null!==v?v.onRouterTransitionStart:null}function P(e,t,r,n,a){if(a)for(let e of a)(0,i.addTransitionType)(e);let u=new URL((0,d.addBasePath)(e),location.href);(0,p.setLinkForCurrentNavigation)(n);let o=E();null!==o&&o(e,t),(0,f.dispatchAppRouterAction)({type:l.ACTION_NAVIGATE,url:u,isExternalUrl:(0,h.isExternalURL)(u),locationSearch:location.search,scrollBehavior:r,navigateType:t})}function S(e,t){let r=E();null!==r&&r(e,"traverse"),(0,f.dispatchAppRouterAction)({type:l.ACTION_RESTORE,url:new URL(e),historyState:t})}let b={back:()=>window.history.back(),forward:()=>window.history.forward(),prefetch:(e,t)=>{let r;if((0,y.isJavaScriptURLString)(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});let n=function(){if(null===v)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});return v}();switch(t?.kind??l.PrefetchKind.AUTO){case l.PrefetchKind.AUTO:r=c.FetchStrategy.PPR;break;case l.PrefetchKind.FULL:r=c.FetchStrategy.Full;break;default:r=c.FetchStrategy.PPR}(0,s.prefetch)(e,n.state.nextUrl,n.state.tree,r,t?.onInvalidate??null)},replace:(e,t)=>{if((0,y.isJavaScriptURLString)(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});(0,i.startTransition)(()=>{P(e,"replace",t?.scroll===!1?l.ScrollBehavior.NoScroll:l.ScrollBehavior.Default,null,t?.transitionTypes)})},push:(e,t)=>{if((0,y.isJavaScriptURLString)(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});(0,i.startTransition)(()=>{P(e,"push",t?.scroll===!1?l.ScrollBehavior.NoScroll:l.ScrollBehavior.Default,null,t?.transitionTypes)})},refresh:()=>{(0,i.startTransition)(()=>{(0,f.dispatchAppRouterAction)({type:l.ACTION_REFRESH})})},hmrRefresh:()=>{throw Object.defineProperty(Error("hmrRefresh can only be used in development mode. Please use refresh instead."),"__NEXT_ERROR_CODE",{value:"E485",enumerable:!1,configurable:!0})}};"u">typeof window&&window.next&&(window.next.router=b),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0z9bnun-zovqc.js b/litellm/proxy/_experimental/out/_next/static/chunks/04jvxoid~vpxj.js similarity index 99% rename from litellm/proxy/_experimental/out/_next/static/chunks/0z9bnun-zovqc.js rename to litellm/proxy/_experimental/out/_next/static/chunks/04jvxoid~vpxj.js index 26153edbd3a..9dc1fe4ed21 100644 --- a/litellm/proxy/_experimental/out/_next/static/chunks/0z9bnun-zovqc.js +++ b/litellm/proxy/_experimental/out/_next/static/chunks/04jvxoid~vpxj.js @@ -1 +1 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,423755,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});let r=(0,e.r(543369).getDeploymentId)();globalThis.NEXT_DEPLOYMENT_ID=r,("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},974575,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"getAssetPrefix",{enumerable:!0,get:function(){return l}});let r=e.r(312718);function l(){let e=document.currentScript;if(!(e instanceof HTMLScriptElement))throw Object.defineProperty(new r.InvariantError(`Expected document.currentScript to be a ",a=a.removeChild(a.firstChild);break;case"select":a="string"==typeof r.is?o.createElement("select",{is:r.is}):o.createElement("select"),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a="string"==typeof r.is?o.createElement(l,{is:r.is}):o.createElement(l)}}a[eW]=t,a[eq]=r;e:for(o=t.child;null!==o;){if(5===o.tag||6===o.tag)a.appendChild(o.stateNode);else if(4!==o.tag&&27!==o.tag&&null!==o.child){o.child.return=o,o=o.child;continue}if(o===t)break;for(;null===o.sibling;){if(null===o.return||o.return===t)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}switch(t.stateNode=a,ca(a,l,r),l){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break;case"img":r=!0;break;default:r=!1}r&&is(t)}}return ih(t),t.subtreeFlags&=-0x2000001,ic(t,t.type,null===e?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&is(t);else{if("string"!=typeof r&&null===t.stateNode)throw Error(u(166));if(e=en.current,rJ(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(l=rH))switch(l.tag){case 27:case 5:r=l.memoizedProps}e[eW]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||cn(e.nodeValue,n)))||rX(t,!0)}else(e=cs(e).createTextNode(r))[eW]=t,t.stateNode=e}return ih(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=rJ(t),null!==n){if(null===e){if(!r)throw Error(u(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(u(557));e[eW]=t}else rZ(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;ih(t),e=!1}else n=r0(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e){if(256&t.flags)return ae(t),t;return ae(t),null}if(0!=(128&t.flags))throw Error(u(558))}return ih(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(l=rJ(t),null!==r&&null!==r.dehydrated){if(null===e){if(!l)throw Error(u(318));if(!(l=null!==(l=t.memoizedState)?l.dehydrated:null))throw Error(u(317));l[eW]=t}else rZ(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;ih(t),l=!1}else l=r0(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l){if(256&t.flags)return ae(t),t;return ae(t),null}}if(ae(t),0!=(128&t.flags))return t.lanes=n,t;return n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(r=t.child,l=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(l=r.alternate.memoizedState.cachePool.pool),a=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(a=r.memoizedState.cachePool.pool),a!==l&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),ip(t,t.updateQueue),ih(t),null;case 4:return ea(),null===e&&s2(t.stateNode.containerInfo),t.flags|=0x4000000,ih(t),null;case 10:return r5(t.type),ih(t),null;case 19:if(ar(t),null===(r=t.memoizedState))return ih(t),null;if(l=0!=(128&t.flags),null===(a=r.rendering))if(l)im(r,!1);else{if(0!==uM||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(a=al(e))){for(t.flags|=128,im(r,!1),t.updateQueue=e=a.updateQueue,ip(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)rS(n,e),n=n.sibling;return an(t,1&at.current|2),rQ&&rA(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&ev()>uQ&&(t.flags|=128,l=!0,im(r,!1),t.lanes=4194304)}else{if(!l)if(null!==(e=al(a))){if(t.flags|=128,l=!0,t.updateQueue=e=e.updateQueue,ip(t,e),im(r,!0),null===r.tail&&"collapsed"!==r.tailMode&&"visible"!==r.tailMode&&!a.alternate&&!rQ)return ih(t),null}else 2*ev()-r.renderingStartTime>uQ&&0x20000000!==n&&(t.flags|=128,l=!0,im(r,!1),t.lanes=4194304);r.isBackwards?(a.sibling=t.child,t.child=a):(null!==(e=r.last)?e.sibling=a:t.child=a,r.last=a)}if(null!==r.tail){e=r.tail;e:{for(n=e;null!==n;){if(null!==n.alternate){n=!1;break e}n=n.sibling}n=!0}return r.rendering=e,r.tail=e.sibling,r.renderingStartTime=ev(),e.sibling=null,a=at.current,a=l?1&a|2:1&a,"visible"===r.tailMode||"collapsed"===r.tailMode||!n||rQ?an(t,a):(n=a,Z(l4,t),Z(at,n),null===l6&&(l6=t)),rQ&&rA(t,r.treeForkCount),e}return ih(t),null;case 22:case 23:return ae(t),l3(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?0!=(0x20000000&n)&&0==(128&t.flags)&&(ih(t),6&t.subtreeFlags&&(t.flags|=8192)):ih(t),null!==(n=t.updateQueue)&&ip(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&J(lb),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),r5(lu),ih(t),null;case 25:return null;case 30:return t.flags|=0x2000000,ih(t),null}throw Error(u(156,t.tag))}(t.alternate,t,uR);if(null!==n){uP=n;return}if(null!==(t=t.sibling)){uP=t;return}uP=t=e}while(null!==t)0===uM&&(uM=5)}function sg(e,t){do{var n=function(e,t){switch(rB(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return r5(lu),ea(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return ei(t),null;case 31:if(null!==t.memoizedState){if(ae(t),null===t.alternate)throw Error(u(340));rZ()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(ae(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(u(340));rZ()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return ar(t),65536&(e=t.flags)?(t.flags=-65537&e|128,null!==(e=t.memoizedState)&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return ea(),null;case 10:return r5(t.type),null;case 22:case 23:return ae(t),l3(),null!==e&&J(lb),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return r5(lu),null;default:return null}}(e.alternate,e);if(null!==n){n.flags&=32767,uP=n;return}if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling)){uP=e;return}uP=e=n}while(null!==e)uM=6,uP=null}function sv(e,t,n,r,l,a,o,i,s,c,f,d){e.cancelPendingCommit=null;do s_();while(0!==uK)if(0!=(6&u_))throw Error(u(327));if(null!==t){if(t===e.current)throw Error(u(177));e===ux&&(uP=ux=null,uN=0),uY=t,uX=e,uG=n,uZ=l,u0=r,function(e,t,n,r,l,a,o){var i,u=t.lanes|t.childLanes;if(uJ=u,!function(e,t,n,r,l,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var i=e.entanglements,u=e.expirationTimes,s=e.hiddenUpdates;for(n=o&~n;0fp){i.length=o;break}d=new Promise(cN.bind(d)),i.push(d)}}}return 0g&&(o=g,g=h,h=o);var v=nV(i,h),y=nV(i,g);if(v&&y&&(1!==p.rangeCount||p.anchorNode!==v.node||p.anchorOffset!==v.offset||p.focusNode!==y.node||p.focusOffset!==y.offset)){var b=f.createRange();b.setStart(v.node,v.offset),p.removeAllRanges(),h>g?(p.addRange(b),p.extend(y.node,y.offset)):(b.setEnd(y.node,y.offset),p.addRange(b))}}}}for(f=[],p=i;p=p.parentNode;)1===p.nodeType&&f.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"==typeof i.focus&&i.focus(),i=0;in?32:n,W.T=null,n=uZ,uZ=null;var a=uX,o=uG;if(uK=0,uY=uX=null,uG=0,0!=(6&u_))throw Error(u(331));var i=u_;if(u_|=4,uw(a.current),up(a,a.current,o,n),u_=i,sU(0,!1),ex&&"function"==typeof ex.onPostCommitFiberRoot)try{ex.onPostCommitFiberRoot(e_,a)}catch(e){}return!0}finally{q.p=l,W.T=r,sE(e,t)}}function sP(e,t,n){t=rC(n,t),t=oF(e.stateNode,t,2),null!==(e=lQ(e,t,2))&&(eF(e,2),sj(e))}function sN(e,t,n){if(3===e.tag)sP(e,e,n);else for(;null!==t;){if(3===t.tag){sP(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===uq||!uq.has(r))){e=rC(n,e),null!==(r=lQ(t,n=oA(2),2))&&(oj(n,r,t,e),eF(r,2),sj(r));break}}t=t.return}}function sC(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new uE;var l=new Set;r.set(t,l)}else void 0===(l=r.get(t))&&(l=new Set,r.set(t,l));l.has(n)||(uL=!0,l.add(n),e=sT.bind(null,e,t,n),t.then(e,e))}function sT(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,ux===e&&(uN&n)===n&&(4===uM||3===uM&&(0x3c00000&uN)===uN&&300>ev()-uH?0==(2&u_)&&sa(e,0):uF|=n,uj===uN&&(uj=0)),sj(e)}function sO(e,t){0===t&&(t=eI()),null!==(e=rp(e,t))&&(eF(e,t),sj(e))}function sz(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),sO(e,n)}function sL(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,l=e.memoizedState;null!==l&&(n=l.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(u(314))}null!==r&&r.delete(t),sO(e,n)}var sR=null,sM=null,sI=!1,sD=!1,sF=!1,sA=0;function sj(e){e!==sM&&null===e.next&&(null===sM?sR=sM=e:sM=sM.next=e),sD=!0,sI||(sI=!0,cv(function(){0!=(6&u_)?ep(eb,sB):sV()}))}function sU(e,t){if(!sF&&sD){sF=!0;do for(var n=!1,r=sR;null!==r;){if(!t)if(0!==e){var l=r.pendingLanes;if(0===l)var a=0;else{var o=r.suspendedLanes,i=r.pingedLanes;a=0xc000095&(a=(1<<31-eP(42|e)+1)-1&(l&~(o&~i)))?0xc000095&a|1:a?2|a:0}0!==a&&(n=!0,sQ(r,a))}else a=uN,0==(3&(a=eR(r,r===ux?a:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||eM(r,a)||(n=!0,sQ(r,a));r=r.next}while(n)sF=!1}}function sB(){sV()}function sV(){sD=sI=!1;var e,t=0;0===sA||((e=window.event)&&"popstate"===e.type?e===cp||(cp=e,0):(cp=null,1))||(t=sA);for(var n=ev(),r=null,l=sR;null!==l;){var a=l.next,o=sH(l,n);0===o?(l.next=null,null===r?sR=a:r.next=a,null===a&&(sM=r)):(r=l,(0!==t||0!=(3&o))&&(sD=!0)),l=a}0!==uK&&5!==uK||sU(t,!1),0!==sA&&(sA=0)}function sH(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,l=e.expirationTimes,a=-0x3c00001&e.pendingLanes;0 title"):null)}function fs(e,t){return"img"===e&&null!=t.src&&""!==t.src&&null==t.onLoad&&"lazy"!==t.loading}function fc(e){return"stylesheet"!==e.type||0!=(3&e.state.loading)}function ff(e){return(e.width||100)*(e.height||100)*("number"==typeof devicePixelRatio?devicePixelRatio:1)*.25}function fd(e,t){"function"==typeof t.decode&&(e.imgCount++,t.complete||(e.imgBytes+=ff(t),e.suspenseyImages.push(t)),e=fg.bind(e),t.decode().then(e,e))}var fp=0;function fm(e){if(0===e.count&&(0===e.imgCount||!e.waitingForImages)){if(e.stylesheets)fy(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function fh(){this.count--,fm(this)}function fg(){this.imgCount--,fm(this)}var fv=null;function fy(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,fv=new Map,t.forEach(fb,e),fv=null,fh.call(e))}function fb(e,t){if(!(4&t.state.loading)){var n=fv.get(e);if(n)var r=n.get(null);else{n=new Map,fv.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;atypeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var f4=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!f4.isDisabled&&f4.supportsFiber)try{e_=f4.inject({bundleType:0,version:"19.3.0-canary-3f0b9e61-20260317",rendererPackageName:"react-dom",currentDispatcherRef:W,reconcilerVersion:"19.3.0-canary-3f0b9e61-20260317"}),ex=f4}catch(e){}}n.createRoot=function(e,t){if(!s(e))throw Error(u(299));var n=!1,r="",l=oL,a=oR,o=oM;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onUncaughtError&&(l=t.onUncaughtError),void 0!==t.onCaughtError&&(a=t.onCaughtError),void 0!==t.onRecoverableError&&(o=t.onRecoverableError)),t=fk(e,1,!1,null,null,n,r,null,l,a,o,f0),e[eK]=t.current,s2(e),new f1(t)},n.hydrateRoot=function(e,t,n){if(!s(e))throw Error(u(299));var r,l=!1,a="",o=oL,i=oR,c=oM,f=null;return null!=n&&(!0===n.unstable_strictMode&&(l=!0),void 0!==n.identifierPrefix&&(a=n.identifierPrefix),void 0!==n.onUncaughtError&&(o=n.onUncaughtError),void 0!==n.onCaughtError&&(i=n.onCaughtError),void 0!==n.onRecoverableError&&(c=n.onRecoverableError),void 0!==n.formState&&(f=n.formState)),(t=fk(e,1,!0,t,null!=n?n:null,l,a,f,o,i,c,f0)).context=(r=null,rg),n=t.current,(a=l$(l=eB(l=u5()))).callback=null,lQ(n,a,l),n=l,t.current.lanes=n,eF(t,n),sj(t),e[eK]=t.current,s2(e),new f2(t)},n.version="19.3.0-canary-3f0b9e61-20260317"},88014,(e,t,n)=>{"use strict";!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),t.exports=e.r(146480)},851323,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={onCaughtError:function(){return d},onUncaughtError:function(){return p}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(563141),o=e.r(265713),i=e.r(132061),u=e.r(528279),s=e.r(972383),c=a._(e.r(168027)),f={decorateDevError:e=>e,handleClientError:()=>{},originConsoleError:console.error.bind(console)};function d(e,t){let n,r=t.errorBoundary?.constructor;if(n=n||r===s.ErrorBoundaryHandler&&t.errorBoundary.props.errorComponent===c.default)return p(e);(0,i.isBailoutToCSRError)(e)||(0,o.isNextRouterError)(e)||f.originConsoleError(e)}function p(e){(0,i.isBailoutToCSRError)(e)||(0,o.isNextRouterError)(e)||(0,u.reportGlobalError)(e)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},762634,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"AppRouterAnnouncer",{enumerable:!0,get:function(){return o}});let r=e.r(271645),l=e.r(174080),a="next-route-announcer";function o({tree:e}){let[t,n]=(0,r.useState)(null);(0,r.useEffect)(()=>(n(function(){let e=document.getElementsByName(a)[0];if(e?.shadowRoot?.childNodes[0])return e.shadowRoot.childNodes[0];{let e=document.createElement(a);e.style.cssText="position:absolute";let t=document.createElement("div");return t.ariaLive="assertive",t.id="__next-route-announcer__",t.role="alert",t.style.cssText="position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal",e.attachShadow({mode:"open"}).appendChild(t),document.body.appendChild(e),t}}()),()=>{let e=document.getElementsByTagName(a)[0];e?.isConnected&&document.body.removeChild(e)}),[]);let[i,u]=(0,r.useState)(""),s=(0,r.useRef)(void 0);return(0,r.useEffect)(()=>{let e="";if(document.title)e=document.title;else{let t=document.querySelector("h1");t&&(e=t.innerText||t.textContent||"")}void 0!==s.current&&s.current!==e&&u(e),s.current=e},[e]),t?(0,l.createPortal)(i,t):null}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},425018,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"findHeadInCache",{enumerable:!0,get:function(){return a}});let r=e.r(813258),l=e.r(270725);function a(e,t){return function e(t,n,a,o){if(0===Object.keys(n).length)return[t,a,o];let i=Object.keys(n).filter(e=>"children"!==e);"children"in n&&i.unshift("children");let u=t.slots;if(null!==u)for(let t of i){let[o,i]=n[t];if(o===r.DEFAULT_SEGMENT_KEY)continue;let s=u[t];if(!s)continue;let c=e(s,i,a+"/"+(0,l.createRouterCacheKey)(o),a+"/"+(0,l.createRouterCacheKey)(o,!0));if(c)return c}return null}(e,t,"","")}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},241624,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={GracefulDegradeBoundary:function(){return i},default:function(){return u}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(843476),o=e.r(271645);class i extends o.Component{constructor(e){super(e),this.state={hasError:!1},this.rootHtml="",this.htmlAttributes={},this.htmlRef=(0,o.createRef)()}static getDerivedStateFromError(e){return{hasError:!0}}componentDidMount(){let e=this.htmlRef.current;this.state.hasError&&e&&Object.entries(this.htmlAttributes).forEach(([t,n])=>{e.setAttribute(t,n)})}render(){let{hasError:e}=this.state;return("u">typeof window&&!this.rootHtml&&(this.rootHtml=document.documentElement.innerHTML,this.htmlAttributes=function(e){let t={};for(let n=0;n{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return s}});let r=e.r(563141),l=e.r(843476);e.r(271645);let a=r._(e.r(241624)),o=e.r(972383),i=e.r(82604),u="u">typeof window&&(0,i.isBot)(window.navigator.userAgent);function s({children:e,errorComponent:t,errorStyles:n,errorScripts:r}){return u?(0,l.jsx)(a.default,{children:e}):(0,l.jsx)(o.ErrorBoundary,{errorComponent:t,errorStyles:n,errorScripts:r,children:e})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},875530,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return R}});let r=e.r(563141),l=e.r(151836),a=e.r(843476),o=l._(e.r(271645)),i=e.r(8372),u=e.r(388540),s=e.r(451191),c=e.r(261994),f=e.r(941538),d=e.r(494272),p=e.r(762634),m=e.r(358442),h=e.r(425018),g=e.r(201244),v=e.r(387250),y=e.r(652817),b=e.r(734727),w=e.r(178377),S=e.r(699781),k=e.r(124063),E=e.r(968391),_=e.r(91949),x=r._(e.r(794109)),P=r._(e.r(168027)),N=e.r(897367);e.r(543369);let C={};function T({appRouterState:e}){return(0,o.useInsertionEffect)(()=>{let{tree:t,pushRef:n,canonicalUrl:r,renderedSearch:l}=e,a={...n.preserveCustomHistoryState?window.history.state:{},__NA:!0,__PRIVATE_NEXTJS_INTERNALS_TREE:{tree:t,renderedSearch:l}};n.pendingPush&&(0,s.createHrefFromUrl)(new URL(window.location.href))!==r?(n.pendingPush=!1,window.history.pushState(a,"",r)):window.history.replaceState(a,"",r),(0,d.setLastCommittedTree)(t)},[e]),(0,o.useEffect)(()=>{(0,_.pingVisibleLinks)(e.nextUrl,e.tree)},[e.nextUrl,e.tree]),null}function O(e){null==e&&(e={});let t=window.history.state,n=t?.__NA;n&&(e.__NA=n);let r=t?.__PRIVATE_NEXTJS_INTERNALS_TREE;return r&&(e.__PRIVATE_NEXTJS_INTERNALS_TREE=r),e}function z({headCacheNode:e}){let t=null!==e?e.head:null,n=null!==e?e.prefetchHead:null,r=null!==n?n:t;return(0,o.useDeferredValue)(t,r)}function L({actionQueue:e,globalError:t,webSocket:n,staticIndicatorState:r}){let l,s=(0,f.useActionQueue)(e),{canonicalUrl:d}=s,{searchParams:w,pathname:_}=(0,o.useMemo)(()=>{let e=new URL(d,"u"{let e=(0,b.extractSourcePageFromFlightRouterState)(s.tree);void 0!==e?window.next.__internal_src_page=e:delete window.next.__internal_src_page},[s.tree]),(0,o.useEffect)(()=>{function e(e){e.persisted&&window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE&&(C.pendingMpaPath=void 0,(0,f.dispatchAppRouterAction)({type:u.ACTION_RESTORE,url:new URL(window.location.href),historyState:window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE}))}return window.addEventListener("pageshow",e),()=>{window.removeEventListener("pageshow",e)}},[]),(0,o.useEffect)(()=>{function e(e){let t="reason"in e?e.reason:e.error;if((0,E.isRedirectError)(t)){e.preventDefault();let n=(0,k.getURLFromRedirectError)(t);"push"===(0,k.getRedirectTypeFromError)(t)?S.publicAppRouterInstance.push(n,{}):S.publicAppRouterInstance.replace(n,{})}}return window.addEventListener("error",e),window.addEventListener("unhandledrejection",e),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",e)}},[]);let{pushRef:P}=s;if(P.mpaNavigation){if(C.pendingMpaPath!==d){let e=window.location;P.pendingPush?e.assign(d):e.replace(d),C.pendingMpaPath=d}throw g.unresolvedThenable}(0,o.useEffect)(()=>{let e=window.history.pushState.bind(window.history),t=window.history.replaceState.bind(window.history),n=e=>{let t=window.location.href,n=window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE;(0,o.startTransition)(()=>{(0,f.dispatchAppRouterAction)({type:u.ACTION_RESTORE,url:new URL(e??t,t),historyState:n})})};window.history.pushState=function(t,r,l){return t?.__NA||t?._N||(t=O(t),l&&n(l)),e(t,r,l)},window.history.replaceState=function(e,r,l){return e?.__NA||e?._N||(e=O(e),l&&n(l)),t(e,r,l)};let r=e=>{if(e.state){if(!e.state.__NA)return void window.location.reload();(0,o.startTransition)(()=>{(0,S.dispatchTraverseAction)(window.location.href,e.state.__PRIVATE_NEXTJS_INTERNALS_TREE)})}};return window.addEventListener("popstate",r),()=>{window.history.pushState=e,window.history.replaceState=t,window.removeEventListener("popstate",r)}},[]);let{cache:R,tree:M,nextUrl:I,focusAndScrollRef:D,previousNextUrl:F}=s,A=(0,o.useMemo)(()=>(0,h.findHeadInCache)(R,M[1]),[R,M]),j=(0,o.useMemo)(()=>(0,b.getSelectedParams)(M),[M]),U=(0,o.useMemo)(()=>({parentTree:M,parentCacheNode:R,parentSegmentPath:null,parentParams:{},parentLoadingData:null,debugNameContext:"/",url:d,isActive:!0}),[M,R,d]),B=(0,o.useMemo)(()=>({tree:M,focusAndScrollRef:D,nextUrl:I,previousNextUrl:F}),[M,D,I,F]);if(null!==A){let[e,t,n]=A;l=(0,a.jsx)(z,{headCacheNode:e},"u"{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"createInitialRouterState",{enumerable:!0,get:function(){return d}});let r=e.r(451191),l=e.r(734727),a=e.r(450590),o=e.r(595871),i=e.r(620896),u=e.r(509396),s=e.r(179027),c=e.r(787288),f=e.r(496167);function d({navigatedAt:e,initialRSCPayload:t,initialFlightStreamForCache:n,location:p}){let{c:m,f:h,q:g,i:v,S:y,s:b,l:w,h:S,p:k,d:E}=t,_=m.join("/"),{tree:x,seedData:P,head:N}=(0,a.getFlightDataPartsFromPath)(h[0]),C=p?(0,r.createHrefFromUrl)(p):_,T={metadataVaryPath:null},O=(0,i.convertRootFlightRouterStateToRouteTree)(x,g,T),z=T.metadataVaryPath,L=(0,o.createInitialCacheNodeForHydration)(e,O,P,N,(0,s.computeDynamicStaleAt)(e,E??s.UnknownDynamicStaleTime));if(null!==p&&null!==z){if((0,f.discoverKnownRoute)(Date.now(),p.pathname,null,null,O,z,v,C,y,!1),null!==P&&void 0!==b)if(void 0!==w&&null!=n)(0,c.decodeStaticStage)(n,w,void 0).then(async e=>{let t=Date.now(),n=await (0,i.getStaleAt)(t,e.s);(0,i.writeStaticStageResponseIntoCache)(t,e.f,void 0,e.h,n,x,g,!0)}).catch(()=>{});else{let e=Date.now();(0,i.getStaleAt)(e,b).then(t=>{(0,i.writeStaticStageResponseIntoCache)(e,h,void 0,S,t,x,g,!1)}).catch(()=>{}),n?.cancel()}else n?.cancel();null!=k&&(0,i.processRuntimePrefetchStream)(Date.now(),k,x,g).then(e=>{null!==e&&(0,i.writeDynamicRenderResponseIntoCache)(Date.now(),u.FetchStrategy.PPRRuntime,e.flightDatas,e.buildId,e.isResponsePartial,e.headVaryParams,e.staleAt,e.navigationSeed,null)}).catch(()=>{})}return{tree:L.route,cache:L.node,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:{scrollRef:null,forceScroll:!1,onlyHashChange:!1,hashFragment:null},canonicalUrl:C,renderedSearch:g,nextUrl:((0,l.extractPathFromFlightRouterState)(x)||p?.pathname)??null,previousNextUrl:null,debugInfo:null}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},198569,(e,t,n)=>{"use strict";let r,l,a,o;Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"hydrate",{enumerable:!0,get:function(){return j}});let i=e.r(563141),u=e.r(843476);e.r(523911);let s=i._(e.r(88014)),c=i._(e.r(271645)),f=e.r(235326),d=e.r(742732),p=e.r(597238),m=e.r(851323),h=e.r(132120),g=e.r(92245),v=e.r(699781),y=i._(e.r(875530)),b=e.r(665716);e.r(8372);let w=e.r(450590),S=e.r(543369),k=e.r(732992),E=f.createFromReadableStream,_=f.createFromFetch,x=document,P=self.__next_instant_test?self.__next_instant_test:void 0,N=new TextEncoder,C=!1,T=!1,O=null;function z(e){if(0===e[0])a=[];else if(1===e[0]){if(!a)throw Object.defineProperty(Error("Unexpected server data: missing bootstrap script."),"__NEXT_ERROR_CODE",{value:"E18",enumerable:!1,configurable:!0});o?o.enqueue(N.encode(e[1])):a.push(e[1])}else if(2===e[0])O=e[1];else if(3===e[0]){if(!a)throw Object.defineProperty(Error("Unexpected server data: missing bootstrap script."),"__NEXT_ERROR_CODE",{value:"E18",enumerable:!1,configurable:!0});let n=atob(e[1]),r=new Uint8Array(n.length);for(var t=0;t{e.enqueue("string"==typeof t?N.encode(t):t)}),C&&!T)&&(null===e.desiredSize||e.desiredSize<0?P||e.error(Object.defineProperty(Error("The connection to the page was unexpectedly closed, possibly due to the stop button being clicked, loss of Wi-Fi, or an unstable internet connection."),"__NEXT_ERROR_CODE",{value:"E117",enumerable:!1,configurable:!0})):e.close(),T=!0,a=void 0),o=e}});if(P)l=Promise.resolve(_(P,{callServer:h.callServer,findSourceMapURL:g.findSourceMapURL,debugChannel:r,unstable_allowPartialStream:!0})).then(async e=>(0,w.createInitialRSCPayloadFromFallbackPrerender)(await P,e));else if(window.__NEXT_CLIENT_RESUME){let e=window.__NEXT_CLIENT_RESUME;l=Promise.resolve(_(e,{callServer:h.callServer,findSourceMapURL:g.findSourceMapURL,debugChannel:r})).then(async t=>(0,w.createInitialRSCPayloadFromFallbackPrerender)(await e,t))}else l=E(M,{callServer:h.callServer,findSourceMapURL:g.findSourceMapURL,debugChannel:r,startTime:0});function I({initialRSCPayload:e,actionQueue:t,webSocket:n,staticIndicatorState:r}){return(0,u.jsx)(y.default,{actionQueue:t,globalErrorState:e.G,webSocket:n,staticIndicatorState:r})}let D=c.default.StrictMode;function F({children:e}){return e}let A={onDefaultTransitionIndicator:function(){return()=>{}},onRecoverableError:p.onRecoverableError,onCaughtError:m.onCaughtError,onUncaughtError:m.onUncaughtError};async function j(e,t){let n,r,a=await l;a.b?(0,k.setNavigationBuildId)(a.b):(0,k.setNavigationBuildId)((0,S.getDeploymentId)());let o=Date.now(),i=(0,v.createMutableActionQueue)((0,b.createInitialRouterState)({navigatedAt:o,initialRSCPayload:a,initialFlightStreamForCache:null,location:window.location}),e),f=(0,u.jsx)(D,{children:(0,u.jsx)(d.HeadManagerContext.Provider,{value:{appDir:!0},children:(0,u.jsx)(F,{children:(0,u.jsx)(I,{initialRSCPayload:a,actionQueue:i,webSocket:r,staticIndicatorState:n})})})});"__next_error__"===document.documentElement.id?s.default.createRoot(x,A).render(f):c.default.startTransition(()=>{s.default.hydrateRoot(x,f,{...A,formState:O})})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},494553,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),e.r(423755);let r=e.r(396517);e.r(597238),window.next.turbopack=!0,self.__webpack_hash__="";let l=e.r(5526);(0,r.appBootstrap)(t=>{let{hydrate:n}=e.r(198569);n(l,t)}),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)}]); \ No newline at end of file +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,423755,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});let r=(0,e.r(543369).getDeploymentId)();globalThis.NEXT_DEPLOYMENT_ID=r,("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},974575,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"getAssetPrefix",{enumerable:!0,get:function(){return l}});let r=e.r(312718);function l(){let e=document.currentScript;if(!(e instanceof HTMLScriptElement))throw Object.defineProperty(new r.InvariantError(`Expected document.currentScript to be a ",a=a.removeChild(a.firstChild);break;case"select":a="string"==typeof r.is?o.createElement("select",{is:r.is}):o.createElement("select"),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a="string"==typeof r.is?o.createElement(l,{is:r.is}):o.createElement(l)}}a[eW]=t,a[eq]=r;e:for(o=t.child;null!==o;){if(5===o.tag||6===o.tag)a.appendChild(o.stateNode);else if(4!==o.tag&&27!==o.tag&&null!==o.child){o.child.return=o,o=o.child;continue}if(o===t)break;for(;null===o.sibling;){if(null===o.return||o.return===t)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}switch(t.stateNode=a,ca(a,l,r),l){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break;case"img":r=!0;break;default:r=!1}r&&is(t)}}return ih(t),t.subtreeFlags&=-0x2000001,ic(t,t.type,null===e?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&is(t);else{if("string"!=typeof r&&null===t.stateNode)throw Error(u(166));if(e=en.current,rJ(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(l=rH))switch(l.tag){case 27:case 5:r=l.memoizedProps}e[eW]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||cn(e.nodeValue,n)))||rX(t,!0)}else(e=cs(e).createTextNode(r))[eW]=t,t.stateNode=e}return ih(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=rJ(t),null!==n){if(null===e){if(!r)throw Error(u(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(u(557));e[eW]=t}else rZ(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;ih(t),e=!1}else n=r0(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e){if(256&t.flags)return ae(t),t;return ae(t),null}if(0!=(128&t.flags))throw Error(u(558))}return ih(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(l=rJ(t),null!==r&&null!==r.dehydrated){if(null===e){if(!l)throw Error(u(318));if(!(l=null!==(l=t.memoizedState)?l.dehydrated:null))throw Error(u(317));l[eW]=t}else rZ(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;ih(t),l=!1}else l=r0(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l){if(256&t.flags)return ae(t),t;return ae(t),null}}if(ae(t),0!=(128&t.flags))return t.lanes=n,t;return n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(r=t.child,l=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(l=r.alternate.memoizedState.cachePool.pool),a=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(a=r.memoizedState.cachePool.pool),a!==l&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),ip(t,t.updateQueue),ih(t),null;case 4:return ea(),null===e&&s2(t.stateNode.containerInfo),t.flags|=0x4000000,ih(t),null;case 10:return r5(t.type),ih(t),null;case 19:if(ar(t),null===(r=t.memoizedState))return ih(t),null;if(l=0!=(128&t.flags),null===(a=r.rendering))if(l)im(r,!1);else{if(0!==uM||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(a=al(e))){for(t.flags|=128,im(r,!1),t.updateQueue=e=a.updateQueue,ip(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)rS(n,e),n=n.sibling;return an(t,1&at.current|2),rQ&&rA(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&ev()>uQ&&(t.flags|=128,l=!0,im(r,!1),t.lanes=4194304)}else{if(!l)if(null!==(e=al(a))){if(t.flags|=128,l=!0,t.updateQueue=e=e.updateQueue,ip(t,e),im(r,!0),null===r.tail&&"collapsed"!==r.tailMode&&"visible"!==r.tailMode&&!a.alternate&&!rQ)return ih(t),null}else 2*ev()-r.renderingStartTime>uQ&&0x20000000!==n&&(t.flags|=128,l=!0,im(r,!1),t.lanes=4194304);r.isBackwards?(a.sibling=t.child,t.child=a):(null!==(e=r.last)?e.sibling=a:t.child=a,r.last=a)}if(null!==r.tail){e=r.tail;e:{for(n=e;null!==n;){if(null!==n.alternate){n=!1;break e}n=n.sibling}n=!0}return r.rendering=e,r.tail=e.sibling,r.renderingStartTime=ev(),e.sibling=null,a=at.current,a=l?1&a|2:1&a,"visible"===r.tailMode||"collapsed"===r.tailMode||!n||rQ?an(t,a):(n=a,Z(l4,t),Z(at,n),null===l6&&(l6=t)),rQ&&rA(t,r.treeForkCount),e}return ih(t),null;case 22:case 23:return ae(t),l3(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?0!=(0x20000000&n)&&0==(128&t.flags)&&(ih(t),6&t.subtreeFlags&&(t.flags|=8192)):ih(t),null!==(n=t.updateQueue)&&ip(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&J(lb),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),r5(lu),ih(t),null;case 25:return null;case 30:return t.flags|=0x2000000,ih(t),null}throw Error(u(156,t.tag))}(t.alternate,t,uR);if(null!==n){uP=n;return}if(null!==(t=t.sibling)){uP=t;return}uP=t=e}while(null!==t)0===uM&&(uM=5)}function sg(e,t){do{var n=function(e,t){switch(rB(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return r5(lu),ea(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return ei(t),null;case 31:if(null!==t.memoizedState){if(ae(t),null===t.alternate)throw Error(u(340));rZ()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(ae(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(u(340));rZ()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return ar(t),65536&(e=t.flags)?(t.flags=-65537&e|128,null!==(e=t.memoizedState)&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return ea(),null;case 10:return r5(t.type),null;case 22:case 23:return ae(t),l3(),null!==e&&J(lb),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return r5(lu),null;default:return null}}(e.alternate,e);if(null!==n){n.flags&=32767,uP=n;return}if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling)){uP=e;return}uP=e=n}while(null!==e)uM=6,uP=null}function sv(e,t,n,r,l,a,o,i,s,c,f,d){e.cancelPendingCommit=null;do s_();while(0!==uK)if(0!=(6&u_))throw Error(u(327));if(null!==t){if(t===e.current)throw Error(u(177));e===ux&&(uP=ux=null,uN=0),uY=t,uX=e,uG=n,uZ=l,u0=r,function(e,t,n,r,l,a,o){var i,u=t.lanes|t.childLanes;if(uJ=u,!function(e,t,n,r,l,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var i=e.entanglements,u=e.expirationTimes,s=e.hiddenUpdates;for(n=o&~n;0fp){i.length=o;break}d=new Promise(cN.bind(d)),i.push(d)}}}return 0g&&(o=g,g=h,h=o);var v=nV(i,h),y=nV(i,g);if(v&&y&&(1!==p.rangeCount||p.anchorNode!==v.node||p.anchorOffset!==v.offset||p.focusNode!==y.node||p.focusOffset!==y.offset)){var b=f.createRange();b.setStart(v.node,v.offset),p.removeAllRanges(),h>g?(p.addRange(b),p.extend(y.node,y.offset)):(b.setEnd(y.node,y.offset),p.addRange(b))}}}}for(f=[],p=i;p=p.parentNode;)1===p.nodeType&&f.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"==typeof i.focus&&i.focus(),i=0;in?32:n,W.T=null,n=uZ,uZ=null;var a=uX,o=uG;if(uK=0,uY=uX=null,uG=0,0!=(6&u_))throw Error(u(331));var i=u_;if(u_|=4,uw(a.current),up(a,a.current,o,n),u_=i,sU(0,!1),ex&&"function"==typeof ex.onPostCommitFiberRoot)try{ex.onPostCommitFiberRoot(e_,a)}catch(e){}return!0}finally{q.p=l,W.T=r,sE(e,t)}}function sP(e,t,n){t=rC(n,t),t=oF(e.stateNode,t,2),null!==(e=lQ(e,t,2))&&(eF(e,2),sj(e))}function sN(e,t,n){if(3===e.tag)sP(e,e,n);else for(;null!==t;){if(3===t.tag){sP(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===uq||!uq.has(r))){e=rC(n,e),null!==(r=lQ(t,n=oA(2),2))&&(oj(n,r,t,e),eF(r,2),sj(r));break}}t=t.return}}function sC(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new uE;var l=new Set;r.set(t,l)}else void 0===(l=r.get(t))&&(l=new Set,r.set(t,l));l.has(n)||(uL=!0,l.add(n),e=sT.bind(null,e,t,n),t.then(e,e))}function sT(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,ux===e&&(uN&n)===n&&(4===uM||3===uM&&(0x3c00000&uN)===uN&&300>ev()-uH?0==(2&u_)&&sa(e,0):uF|=n,uj===uN&&(uj=0)),sj(e)}function sO(e,t){0===t&&(t=eI()),null!==(e=rp(e,t))&&(eF(e,t),sj(e))}function sz(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),sO(e,n)}function sL(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,l=e.memoizedState;null!==l&&(n=l.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(u(314))}null!==r&&r.delete(t),sO(e,n)}var sR=null,sM=null,sI=!1,sD=!1,sF=!1,sA=0;function sj(e){e!==sM&&null===e.next&&(null===sM?sR=sM=e:sM=sM.next=e),sD=!0,sI||(sI=!0,cv(function(){0!=(6&u_)?ep(eb,sB):sV()}))}function sU(e,t){if(!sF&&sD){sF=!0;do for(var n=!1,r=sR;null!==r;){if(!t)if(0!==e){var l=r.pendingLanes;if(0===l)var a=0;else{var o=r.suspendedLanes,i=r.pingedLanes;a=0xc000095&(a=(1<<31-eP(42|e)+1)-1&(l&~(o&~i)))?0xc000095&a|1:a?2|a:0}0!==a&&(n=!0,sQ(r,a))}else a=uN,0==(3&(a=eR(r,r===ux?a:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||eM(r,a)||(n=!0,sQ(r,a));r=r.next}while(n)sF=!1}}function sB(){sV()}function sV(){sD=sI=!1;var e,t=0;0===sA||((e=window.event)&&"popstate"===e.type?e===cp||(cp=e,0):(cp=null,1))||(t=sA);for(var n=ev(),r=null,l=sR;null!==l;){var a=l.next,o=sH(l,n);0===o?(l.next=null,null===r?sR=a:r.next=a,null===a&&(sM=r)):(r=l,(0!==t||0!=(3&o))&&(sD=!0)),l=a}0!==uK&&5!==uK||sU(t,!1),0!==sA&&(sA=0)}function sH(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,l=e.expirationTimes,a=-0x3c00001&e.pendingLanes;0 title"):null)}function fs(e,t){return"img"===e&&null!=t.src&&""!==t.src&&null==t.onLoad&&"lazy"!==t.loading}function fc(e){return"stylesheet"!==e.type||0!=(3&e.state.loading)}function ff(e){return(e.width||100)*(e.height||100)*("number"==typeof devicePixelRatio?devicePixelRatio:1)*.25}function fd(e,t){"function"==typeof t.decode&&(e.imgCount++,t.complete||(e.imgBytes+=ff(t),e.suspenseyImages.push(t)),e=fg.bind(e),t.decode().then(e,e))}var fp=0;function fm(e){if(0===e.count&&(0===e.imgCount||!e.waitingForImages)){if(e.stylesheets)fy(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function fh(){this.count--,fm(this)}function fg(){this.imgCount--,fm(this)}var fv=null;function fy(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,fv=new Map,t.forEach(fb,e),fv=null,fh.call(e))}function fb(e,t){if(!(4&t.state.loading)){var n=fv.get(e);if(n)var r=n.get(null);else{n=new Map,fv.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;atypeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var f4=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!f4.isDisabled&&f4.supportsFiber)try{e_=f4.inject({bundleType:0,version:"19.3.0-canary-3f0b9e61-20260317",rendererPackageName:"react-dom",currentDispatcherRef:W,reconcilerVersion:"19.3.0-canary-3f0b9e61-20260317"}),ex=f4}catch(e){}}n.createRoot=function(e,t){if(!s(e))throw Error(u(299));var n=!1,r="",l=oL,a=oR,o=oM;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onUncaughtError&&(l=t.onUncaughtError),void 0!==t.onCaughtError&&(a=t.onCaughtError),void 0!==t.onRecoverableError&&(o=t.onRecoverableError)),t=fk(e,1,!1,null,null,n,r,null,l,a,o,f0),e[eK]=t.current,s2(e),new f1(t)},n.hydrateRoot=function(e,t,n){if(!s(e))throw Error(u(299));var r,l=!1,a="",o=oL,i=oR,c=oM,f=null;return null!=n&&(!0===n.unstable_strictMode&&(l=!0),void 0!==n.identifierPrefix&&(a=n.identifierPrefix),void 0!==n.onUncaughtError&&(o=n.onUncaughtError),void 0!==n.onCaughtError&&(i=n.onCaughtError),void 0!==n.onRecoverableError&&(c=n.onRecoverableError),void 0!==n.formState&&(f=n.formState)),(t=fk(e,1,!0,t,null!=n?n:null,l,a,f,o,i,c,f0)).context=(r=null,rg),n=t.current,(a=l$(l=eB(l=u5()))).callback=null,lQ(n,a,l),n=l,t.current.lanes=n,eF(t,n),sj(t),e[eK]=t.current,s2(e),new f2(t)},n.version="19.3.0-canary-3f0b9e61-20260317"},88014,(e,t,n)=>{"use strict";!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),t.exports=e.r(146480)},851323,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={onCaughtError:function(){return d},onUncaughtError:function(){return p}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(563141),o=e.r(265713),i=e.r(132061),u=e.r(528279),s=e.r(972383),c=a._(e.r(168027)),f={decorateDevError:e=>e,handleClientError:()=>{},originConsoleError:console.error.bind(console)};function d(e,t){let n,r=t.errorBoundary?.constructor;if(n=n||r===s.ErrorBoundaryHandler&&t.errorBoundary.props.errorComponent===c.default)return p(e);(0,i.isBailoutToCSRError)(e)||(0,o.isNextRouterError)(e)||f.originConsoleError(e)}function p(e){(0,i.isBailoutToCSRError)(e)||(0,o.isNextRouterError)(e)||(0,u.reportGlobalError)(e)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},762634,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"AppRouterAnnouncer",{enumerable:!0,get:function(){return o}});let r=e.r(271645),l=e.r(174080),a="next-route-announcer";function o({tree:e}){let[t,n]=(0,r.useState)(null);(0,r.useEffect)(()=>(n(function(){let e=document.getElementsByName(a)[0];if(e?.shadowRoot?.childNodes[0])return e.shadowRoot.childNodes[0];{let e=document.createElement(a);e.style.cssText="position:absolute";let t=document.createElement("div");return t.ariaLive="assertive",t.id="__next-route-announcer__",t.role="alert",t.style.cssText="position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal",e.attachShadow({mode:"open"}).appendChild(t),document.body.appendChild(e),t}}()),()=>{let e=document.getElementsByTagName(a)[0];e?.isConnected&&document.body.removeChild(e)}),[]);let[i,u]=(0,r.useState)(""),s=(0,r.useRef)(void 0);return(0,r.useEffect)(()=>{let e="";if(document.title)e=document.title;else{let t=document.querySelector("h1");t&&(e=t.innerText||t.textContent||"")}void 0!==s.current&&s.current!==e&&u(e),s.current=e},[e]),t?(0,l.createPortal)(i,t):null}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},425018,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"findHeadInCache",{enumerable:!0,get:function(){return a}});let r=e.r(813258),l=e.r(270725);function a(e,t){return function e(t,n,a,o){if(0===Object.keys(n).length)return[t,a,o];let i=Object.keys(n).filter(e=>"children"!==e);"children"in n&&i.unshift("children");let u=t.slots;if(null!==u)for(let t of i){let[o,i]=n[t];if(o===r.DEFAULT_SEGMENT_KEY)continue;let s=u[t];if(!s)continue;let c=e(s,i,a+"/"+(0,l.createRouterCacheKey)(o),a+"/"+(0,l.createRouterCacheKey)(o,!0));if(c)return c}return null}(e,t,"","")}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},241624,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={GracefulDegradeBoundary:function(){return i},default:function(){return u}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(843476),o=e.r(271645);class i extends o.Component{constructor(e){super(e),this.state={hasError:!1},this.rootHtml="",this.htmlAttributes={},this.htmlRef=(0,o.createRef)()}static getDerivedStateFromError(e){return{hasError:!0}}componentDidMount(){let e=this.htmlRef.current;this.state.hasError&&e&&Object.entries(this.htmlAttributes).forEach(([t,n])=>{e.setAttribute(t,n)})}render(){let{hasError:e}=this.state;return("u">typeof window&&!this.rootHtml&&(this.rootHtml=document.documentElement.innerHTML,this.htmlAttributes=function(e){let t={};for(let n=0;n{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return s}});let r=e.r(563141),l=e.r(843476);e.r(271645);let a=r._(e.r(241624)),o=e.r(972383),i=e.r(82604),u="u">typeof window&&(0,i.isBot)(window.navigator.userAgent);function s({children:e,errorComponent:t,errorStyles:n,errorScripts:r}){return u?(0,l.jsx)(a.default,{children:e}):(0,l.jsx)(o.ErrorBoundary,{errorComponent:t,errorStyles:n,errorScripts:r,children:e})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},875530,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return R}});let r=e.r(563141),l=e.r(151836),a=e.r(843476),o=l._(e.r(271645)),i=e.r(8372),u=e.r(388540),s=e.r(451191),c=e.r(261994),f=e.r(941538),d=e.r(494272),p=e.r(762634),m=e.r(358442),h=e.r(425018),g=e.r(201244),v=e.r(387250),y=e.r(652817),b=e.r(734727),w=e.r(178377),S=e.r(699781),k=e.r(124063),E=e.r(968391),_=e.r(91949),x=r._(e.r(794109)),P=r._(e.r(168027)),N=e.r(897367);e.r(543369);let C={};function T({appRouterState:e}){return(0,o.useInsertionEffect)(()=>{let{tree:t,pushRef:n,canonicalUrl:r,renderedSearch:l}=e,a={...n.preserveCustomHistoryState?window.history.state:{},__NA:!0,__PRIVATE_NEXTJS_INTERNALS_TREE:{tree:t,renderedSearch:l}};n.pendingPush&&(0,s.createHrefFromUrl)(new URL(window.location.href))!==r?(n.pendingPush=!1,window.history.pushState(a,"",r)):window.history.replaceState(a,"",r),(0,d.setLastCommittedTree)(t)},[e]),(0,o.useEffect)(()=>{(0,_.pingVisibleLinks)(e.nextUrl,e.tree)},[e.nextUrl,e.tree]),null}function O(e){null==e&&(e={});let t=window.history.state,n=t?.__NA;n&&(e.__NA=n);let r=t?.__PRIVATE_NEXTJS_INTERNALS_TREE;return r&&(e.__PRIVATE_NEXTJS_INTERNALS_TREE=r),e}function z({headCacheNode:e}){let t=null!==e?e.head:null,n=null!==e?e.prefetchHead:null,r=null!==n?n:t;return(0,o.useDeferredValue)(t,r)}function L({actionQueue:e,globalError:t,webSocket:n,staticIndicatorState:r}){let l,s=(0,f.useActionQueue)(e),{canonicalUrl:d}=s,{searchParams:w,pathname:_}=(0,o.useMemo)(()=>{let e=new URL(d,"u"{let e=(0,b.extractSourcePageFromFlightRouterState)(s.tree);void 0!==e?window.next.__internal_src_page=e:delete window.next.__internal_src_page},[s.tree]),(0,o.useEffect)(()=>{function e(e){e.persisted&&window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE&&(C.pendingMpaPath=void 0,(0,f.dispatchAppRouterAction)({type:u.ACTION_RESTORE,url:new URL(window.location.href),historyState:window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE}))}return window.addEventListener("pageshow",e),()=>{window.removeEventListener("pageshow",e)}},[]),(0,o.useEffect)(()=>{function e(e){let t="reason"in e?e.reason:e.error;if((0,E.isRedirectError)(t)){e.preventDefault();let n=(0,k.getURLFromRedirectError)(t);"push"===(0,k.getRedirectTypeFromError)(t)?S.publicAppRouterInstance.push(n,{}):S.publicAppRouterInstance.replace(n,{})}}return window.addEventListener("error",e),window.addEventListener("unhandledrejection",e),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",e)}},[]);let{pushRef:P}=s;if(P.mpaNavigation){if(C.pendingMpaPath!==d){let e=window.location;P.pendingPush?e.assign(d):e.replace(d),C.pendingMpaPath=d}throw g.unresolvedThenable}(0,o.useEffect)(()=>{let e=window.history.pushState.bind(window.history),t=window.history.replaceState.bind(window.history),n=e=>{let t=window.location.href,n=window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE;(0,o.startTransition)(()=>{(0,f.dispatchAppRouterAction)({type:u.ACTION_RESTORE,url:new URL(e??t,t),historyState:n})})};window.history.pushState=function(t,r,l){return t?.__NA||t?._N||(t=O(t),l&&n(l)),e(t,r,l)},window.history.replaceState=function(e,r,l){return e?.__NA||e?._N||(e=O(e),l&&n(l)),t(e,r,l)};let r=e=>{if(e.state){if(!e.state.__NA)return void window.location.reload();(0,o.startTransition)(()=>{(0,S.dispatchTraverseAction)(window.location.href,e.state.__PRIVATE_NEXTJS_INTERNALS_TREE)})}};return window.addEventListener("popstate",r),()=>{window.history.pushState=e,window.history.replaceState=t,window.removeEventListener("popstate",r)}},[]);let{cache:R,tree:M,nextUrl:I,focusAndScrollRef:D,previousNextUrl:F}=s,A=(0,o.useMemo)(()=>(0,h.findHeadInCache)(R,M[1]),[R,M]),j=(0,o.useMemo)(()=>(0,b.getSelectedParams)(M),[M]),U=(0,o.useMemo)(()=>({parentTree:M,parentCacheNode:R,parentSegmentPath:null,parentParams:{},parentLoadingData:null,debugNameContext:"/",url:d,isActive:!0}),[M,R,d]),B=(0,o.useMemo)(()=>({tree:M,focusAndScrollRef:D,nextUrl:I,previousNextUrl:F}),[M,D,I,F]);if(null!==A){let[e,t,n]=A;l=(0,a.jsx)(z,{headCacheNode:e},"u"{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"createInitialRouterState",{enumerable:!0,get:function(){return d}});let r=e.r(451191),l=e.r(734727),a=e.r(450590),o=e.r(595871),i=e.r(620896),u=e.r(509396),s=e.r(179027),c=e.r(787288),f=e.r(496167);function d({navigatedAt:e,initialRSCPayload:t,initialFlightStreamForCache:n,location:p}){let{c:m,f:h,q:g,i:v,S:y,s:b,l:w,h:S,p:k,d:E}=t,_=m.join("/"),{tree:x,seedData:P,head:N}=(0,a.getFlightDataPartsFromPath)(h[0]),C=p?(0,r.createHrefFromUrl)(p):_,T={metadataVaryPath:null},O=(0,i.convertRootFlightRouterStateToRouteTree)(x,g,T),z=T.metadataVaryPath,L=(0,o.createInitialCacheNodeForHydration)(e,O,P,N,(0,s.computeDynamicStaleAt)(e,E??s.UnknownDynamicStaleTime));if(null!==p&&null!==z){if((0,f.discoverKnownRoute)(Date.now(),p.pathname,null,null,O,z,v,C,y,!1),null!==P&&void 0!==b)if(void 0!==w&&null!=n)(0,c.decodeStaticStage)(n,w,void 0).then(async e=>{let t=Date.now(),n=await (0,i.getStaleAt)(t,e.s);(0,i.writeStaticStageResponseIntoCache)(t,e.f,void 0,e.h,n,x,g,!0)}).catch(()=>{});else{let e=Date.now();(0,i.getStaleAt)(e,b).then(t=>{(0,i.writeStaticStageResponseIntoCache)(e,h,void 0,S,t,x,g,!1)}).catch(()=>{}),n?.cancel()}else n?.cancel();null!=k&&(0,i.processRuntimePrefetchStream)(Date.now(),k,x,g).then(e=>{null!==e&&(0,i.writeDynamicRenderResponseIntoCache)(Date.now(),u.FetchStrategy.PPRRuntime,e.flightDatas,e.buildId,e.isResponsePartial,e.headVaryParams,e.staleAt,e.navigationSeed,null)}).catch(()=>{})}return{tree:L.route,cache:L.node,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:{scrollRef:null,forceScroll:!1,onlyHashChange:!1,hashFragment:null},canonicalUrl:C,renderedSearch:g,nextUrl:((0,l.extractPathFromFlightRouterState)(x)||p?.pathname)??null,previousNextUrl:null,debugInfo:null}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},198569,(e,t,n)=>{"use strict";let r,l,a,o;Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"hydrate",{enumerable:!0,get:function(){return j}});let i=e.r(563141),u=e.r(843476);e.r(523911);let s=i._(e.r(88014)),c=i._(e.r(271645)),f=e.r(235326),d=e.r(742732),p=e.r(597238),m=e.r(851323),h=e.r(132120),g=e.r(92245),v=e.r(699781),y=i._(e.r(875530)),b=e.r(665716);e.r(8372);let w=e.r(450590),S=e.r(543369),k=e.r(732992),E=f.createFromReadableStream,_=f.createFromFetch,x=document,P=self.__next_instant_test?self.__next_instant_test:void 0,N=new TextEncoder,C=!1,T=!1,O=null;function z(e){if(0===e[0])a=[];else if(1===e[0]){if(!a)throw Object.defineProperty(Error("Unexpected server data: missing bootstrap script."),"__NEXT_ERROR_CODE",{value:"E18",enumerable:!1,configurable:!0});o?o.enqueue(N.encode(e[1])):a.push(e[1])}else if(2===e[0])O=e[1];else if(3===e[0]){if(!a)throw Object.defineProperty(Error("Unexpected server data: missing bootstrap script."),"__NEXT_ERROR_CODE",{value:"E18",enumerable:!1,configurable:!0});let n=atob(e[1]),r=new Uint8Array(n.length);for(var t=0;t{e.enqueue("string"==typeof t?N.encode(t):t)}),C&&!T)&&(null===e.desiredSize||e.desiredSize<0?P||e.error(Object.defineProperty(Error("The connection to the page was unexpectedly closed, possibly due to the stop button being clicked, loss of Wi-Fi, or an unstable internet connection."),"__NEXT_ERROR_CODE",{value:"E117",enumerable:!1,configurable:!0})):e.close(),T=!0,a=void 0),o=e}});if(P)l=Promise.resolve(_(P,{callServer:h.callServer,findSourceMapURL:g.findSourceMapURL,debugChannel:r,unstable_allowPartialStream:!0})).then(async e=>(0,w.createInitialRSCPayloadFromFallbackPrerender)(await P,e));else if(window.__NEXT_CLIENT_RESUME){let e=window.__NEXT_CLIENT_RESUME;l=Promise.resolve(_(e,{callServer:h.callServer,findSourceMapURL:g.findSourceMapURL,debugChannel:r})).then(async t=>(0,w.createInitialRSCPayloadFromFallbackPrerender)(await e,t))}else l=E(M,{callServer:h.callServer,findSourceMapURL:g.findSourceMapURL,debugChannel:r,startTime:0});function I({initialRSCPayload:e,actionQueue:t,webSocket:n,staticIndicatorState:r}){return(0,u.jsx)(y.default,{actionQueue:t,globalErrorState:e.G,webSocket:n,staticIndicatorState:r})}let D=c.default.StrictMode;function F({children:e}){return e}let A={onDefaultTransitionIndicator:function(){return()=>{}},onRecoverableError:p.onRecoverableError,onCaughtError:m.onCaughtError,onUncaughtError:m.onUncaughtError};async function j(e,t){let n,r,a=await l;a.b?(0,k.setNavigationBuildId)(a.b):(0,k.setNavigationBuildId)((0,S.getDeploymentId)());let o=Date.now(),i=(0,v.createMutableActionQueue)((0,b.createInitialRouterState)({navigatedAt:o,initialRSCPayload:a,initialFlightStreamForCache:null,location:window.location}),e),f=(0,u.jsx)(D,{children:(0,u.jsx)(d.HeadManagerContext.Provider,{value:{appDir:!0},children:(0,u.jsx)(F,{children:(0,u.jsx)(I,{initialRSCPayload:a,actionQueue:i,webSocket:r,staticIndicatorState:n})})})});"__next_error__"===document.documentElement.id?s.default.createRoot(x,A).render(f):c.default.startTransition(()=>{s.default.hydrateRoot(x,f,{...A,formState:O})})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},494553,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),e.r(423755);let r=e.r(396517);e.r(597238),window.next.turbopack=!0,self.__webpack_hash__="";let l=e.r(5526);(0,r.appBootstrap)(t=>{let{hydrate:n}=e.r(198569);n(l,t)}),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/04wseaxm9brdm.js b/litellm/proxy/_experimental/out/_next/static/chunks/04wseaxm9brdm.js new file mode 100644 index 00000000000..785dfb0a084 --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/04wseaxm9brdm.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,991124,e=>{"use strict";let t=(0,e.i(475254).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["default",0,t])},678784,678745,e=>{"use strict";let t=(0,e.i(475254).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",0,t],678745),e.s(["CheckIcon",0,t],678784)},118366,e=>{"use strict";var t=e.i(991124);e.s(["CopyIcon",()=>t.default])},166406,e=>{"use strict";var t=e.i(190144);e.s(["CopyOutlined",()=>t.default])},94629,e=>{"use strict";var t=e.i(271645);let a=t.forwardRef(function(e,a){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4"}))});e.s(["SwitchVerticalIcon",0,a],94629)},916925,e=>{"use strict";var t,a=((t={}).A2A_Agent="A2A Agent",t.AI21="Ai21",t.AI21_CHAT="Ai21 Chat",t.AIML="AI/ML API",t.AIOHTTP_OPENAI="Aiohttp Openai",t.Anthropic="Anthropic",t.ANTHROPIC_TEXT="Anthropic Text",t.AssemblyAI="AssemblyAI",t.AUTO_ROUTER="Auto Router",t.Bedrock="Amazon Bedrock",t.BedrockMantle="Amazon Bedrock Mantle",t.SageMaker="AWS SageMaker",t.Azure="Azure",t.Azure_AI_Studio="Azure AI Foundry (Studio)",t.AZURE_TEXT="Azure Text",t.BASETEN="Baseten",t.BYTEZ="Bytez",t.Cerebras="Cerebras",t.CLARIFAI="Clarifai",t.CLOUDFLARE="Cloudflare",t.CODESTRAL="Codestral",t.Cohere="Cohere",t.COHERE_CHAT="Cohere Chat",t.COMETAPI="Cometapi",t.COMPACTIFAI="Compactifai",t.Cursor="Cursor",t.Dashscope="Dashscope",t.Databricks="Databricks (Qwen API)",t.DATAROBOT="Datarobot",t.DeepInfra="DeepInfra",t.Deepgram="Deepgram",t.Deepseek="Deepseek",t.DOCKER_MODEL_RUNNER="Docker Model Runner",t.DOTPROMPT="Dotprompt",t.ElevenLabs="ElevenLabs",t.EMPOWER="Empower",t.FalAI="Fal AI",t.FEATHERLESS_AI="Featherless Ai",t.FireworksAI="Fireworks AI",t.FRIENDLIAI="Friendliai",t.GALADRIEL="Galadriel",t.GITHUB_COPILOT="Github Copilot",t.Google_AI_Studio="Google AI Studio",t.GradientAI="GradientAI",t.Groq="Groq",t.HEROKU="Heroku",t.Hosted_Vllm="vllm",t.HUGGINGFACE="Huggingface",t.HYPERBOLIC="Hyperbolic",t.Infinity="Infinity",t.JinaAI="Jina AI",t.LAMBDA_AI="Lambda Ai",t.LEMONADE="Lemonade",t.LLAMAFILE="Llamafile",t.LM_STUDIO="Lm Studio",t.LLAMA="Meta Llama",t.MARITALK="Maritalk",t.MiniMax="MiniMax",t.MistralAI="Mistral AI",t.MOONSHOT="Moonshot",t.MORPH="Morph",t.NEBIUS="Nebius",t.NLP_CLOUD="Nlp Cloud",t.NOVITA="Novita",t.NSCALE="Nscale",t.NVIDIA_NIM="Nvidia Nim",t.Ollama="Ollama",t.OLLAMA_CHAT="Ollama Chat",t.OOBABOOGA="Oobabooga",t.OpenAI="OpenAI",t.OPENAI_LIKE="Openai Like",t.OpenAI_Compatible="OpenAI-Compatible Endpoints (Together AI, etc.)",t.OpenAI_Text="OpenAI Text Completion",t.OpenAI_Text_Compatible="OpenAI-Compatible Text Completion Models (Together AI, etc.)",t.Openrouter="Openrouter",t.Oracle="Oracle Cloud Infrastructure (OCI)",t.OVHCLOUD="Ovhcloud",t.Perplexity="Perplexity",t.PETALS="Petals",t.PG_VECTOR="Pg Vector",t.PREDIBASE="Predibase",t.RECRAFT="Recraft",t.REPLICATE="Replicate",t.RunwayML="RunwayML",t.SAGEMAKER_LEGACY="Sagemaker",t.Sambanova="Sambanova",t.SAP="SAP Generative AI Hub",t.Snowflake="Snowflake",t.TEXT_COMPLETION_CODESTRAL="Text-Completion-Codestral",t.TogetherAI="TogetherAI",t.TOPAZ="Topaz",t.Triton="Triton",t.V0="V0",t.VERCEL_AI_GATEWAY="Vercel Ai Gateway",t.Vertex_AI="Vertex AI (Anthropic, Gemini, etc.)",t.VERTEX_AI_BETA="Vertex Ai Beta",t.VLLM="Vllm",t.VolcEngine="VolcEngine",t.Voyage="Voyage AI",t.WANDB="Wandb",t.WATSONX="Watsonx",t.WATSONX_TEXT="Watsonx Text",t.xAI="xAI",t.XINFERENCE="Xinference",t.ZAI="Z.AI (Zhipu AI)",t);let n={A2A_Agent:"a2a_agent",AI21:"ai21",AI21_CHAT:"ai21_chat",AIML:"aiml",AIOHTTP_OPENAI:"aiohttp_openai",Anthropic:"anthropic",ANTHROPIC_TEXT:"anthropic_text",AssemblyAI:"assemblyai",AUTO_ROUTER:"auto_router",Azure:"azure",Azure_AI_Studio:"azure_ai",AZURE_TEXT:"azure_text",BASETEN:"baseten",Bedrock:"bedrock",BedrockMantle:"bedrock_mantle",BYTEZ:"bytez",Cerebras:"cerebras",CLARIFAI:"clarifai",CLOUDFLARE:"cloudflare",CODESTRAL:"codestral",Cohere:"cohere",COHERE_CHAT:"cohere_chat",COMETAPI:"cometapi",COMPACTIFAI:"compactifai",Cursor:"cursor",Dashscope:"dashscope",Databricks:"databricks",DATAROBOT:"datarobot",DeepInfra:"deepinfra",Deepgram:"deepgram",Deepseek:"deepseek",DOCKER_MODEL_RUNNER:"docker_model_runner",DOTPROMPT:"dotprompt",ElevenLabs:"elevenlabs",EMPOWER:"empower",FalAI:"fal_ai",FEATHERLESS_AI:"featherless_ai",FireworksAI:"fireworks_ai",FRIENDLIAI:"friendliai",GALADRIEL:"galadriel",GITHUB_COPILOT:"github_copilot",Google_AI_Studio:"gemini",GradientAI:"gradient_ai",Groq:"groq",HEROKU:"heroku",Hosted_Vllm:"hosted_vllm",HUGGINGFACE:"huggingface",HYPERBOLIC:"hyperbolic",Infinity:"infinity",JinaAI:"jina_ai",LAMBDA_AI:"lambda_ai",LEMONADE:"lemonade",LLAMAFILE:"llamafile",LLAMA:"meta_llama",LM_STUDIO:"lm_studio",MARITALK:"maritalk",MiniMax:"minimax",MistralAI:"mistral",MOONSHOT:"moonshot",MORPH:"morph",NEBIUS:"nebius",NLP_CLOUD:"nlp_cloud",NOVITA:"novita",NSCALE:"nscale",NVIDIA_NIM:"nvidia_nim",Ollama:"ollama",OLLAMA_CHAT:"ollama_chat",OOBABOOGA:"oobabooga",OpenAI:"openai",OPENAI_LIKE:"openai_like",OpenAI_Compatible:"openai",OpenAI_Text:"text-completion-openai",OpenAI_Text_Compatible:"text-completion-openai",Openrouter:"openrouter",Oracle:"oci",OVHCLOUD:"ovhcloud",Perplexity:"perplexity",PETALS:"petals",PG_VECTOR:"pg_vector",PREDIBASE:"predibase",RECRAFT:"recraft",REPLICATE:"replicate",RunwayML:"runwayml",SAGEMAKER_LEGACY:"sagemaker",SageMaker:"sagemaker_chat",Sambanova:"sambanova",SAP:"sap",Snowflake:"snowflake",TEXT_COMPLETION_CODESTRAL:"text-completion-codestral",TogetherAI:"together_ai",TOPAZ:"topaz",Triton:"triton",V0:"v0",VERCEL_AI_GATEWAY:"vercel_ai_gateway",Vertex_AI:"vertex_ai",VERTEX_AI_BETA:"vertex_ai_beta",VLLM:"vllm",VolcEngine:"volcengine",Voyage:"voyage",WANDB:"wandb",WATSONX:"watsonx",WATSONX_TEXT:"watsonx_text",xAI:"xai",XINFERENCE:"xinference",ZAI:"zai"},o="../ui/assets/logos/",i={"A2A Agent":`${o}a2a_agent.png`,Ai21:`${o}ai21.svg`,"Ai21 Chat":`${o}ai21.svg`,"AI/ML API":`${o}aiml_api.svg`,"Aiohttp Openai":`${o}openai_small.svg`,Anthropic:`${o}anthropic.svg`,"Anthropic Text":`${o}anthropic.svg`,AssemblyAI:`${o}assemblyai_small.png`,Azure:`${o}microsoft_azure.svg`,"Azure AI Foundry (Studio)":`${o}microsoft_azure.svg`,"Azure Text":`${o}microsoft_azure.svg`,Baseten:`${o}baseten.svg`,"Amazon Bedrock":`${o}bedrock.svg`,"Amazon Bedrock Mantle":`${o}bedrock.svg`,"AWS SageMaker":`${o}bedrock.svg`,Cerebras:`${o}cerebras.svg`,Cloudflare:`${o}cloudflare.svg`,Codestral:`${o}mistral.svg`,Cohere:`${o}cohere.svg`,"Cohere Chat":`${o}cohere.svg`,Cometapi:`${o}cometapi.svg`,Cursor:`${o}cursor.svg`,"Databricks (Qwen API)":`${o}databricks.svg`,Dashscope:`${o}dashscope.svg`,Deepseek:`${o}deepseek.svg`,Deepgram:`${o}deepgram.png`,DeepInfra:`${o}deepinfra.png`,ElevenLabs:`${o}elevenlabs.png`,"Fal AI":`${o}fal_ai.jpg`,"Featherless Ai":`${o}featherless.svg`,"Fireworks AI":`${o}fireworks.svg`,Friendliai:`${o}friendli.svg`,"Github Copilot":`${o}github_copilot.svg`,"Google AI Studio":`${o}google.svg`,GradientAI:`${o}gradientai.svg`,Groq:`${o}groq.svg`,vllm:`${o}vllm.png`,Huggingface:`${o}huggingface.svg`,Hyperbolic:`${o}hyperbolic.svg`,Infinity:`${o}infinity.png`,"Jina AI":`${o}jina.png`,"Lambda Ai":`${o}lambda.svg`,"Lm Studio":`${o}lmstudio.svg`,"Meta Llama":`${o}meta_llama.svg`,MiniMax:`${o}minimax.svg`,"Mistral AI":`${o}mistral.svg`,Moonshot:`${o}moonshot.svg`,Morph:`${o}morph.svg`,Nebius:`${o}nebius.svg`,Novita:`${o}novita.svg`,"Nvidia Nim":`${o}nvidia_nim.svg`,Ollama:`${o}ollama.svg`,"Ollama Chat":`${o}ollama.svg`,Oobabooga:`${o}openai_small.svg`,OpenAI:`${o}openai_small.svg`,"Openai Like":`${o}openai_small.svg`,"OpenAI Text Completion":`${o}openai_small.svg`,"OpenAI-Compatible Text Completion Models (Together AI, etc.)":`${o}openai_small.svg`,"OpenAI-Compatible Endpoints (Together AI, etc.)":`${o}openai_small.svg`,Openrouter:`${o}openrouter.svg`,"Oracle Cloud Infrastructure (OCI)":`${o}oracle.svg`,Perplexity:`${o}perplexity-ai.svg`,Recraft:`${o}recraft.svg`,Replicate:`${o}replicate.svg`,RunwayML:`${o}runwayml.png`,Sagemaker:`${o}bedrock.svg`,Sambanova:`${o}sambanova.svg`,"SAP Generative AI Hub":`${o}sap.png`,Snowflake:`${o}snowflake.svg`,"Text-Completion-Codestral":`${o}mistral.svg`,TogetherAI:`${o}togetherai.svg`,Topaz:`${o}topaz.svg`,Triton:`${o}nvidia_triton.png`,V0:`${o}v0.svg`,"Vercel Ai Gateway":`${o}vercel.svg`,"Vertex AI (Anthropic, Gemini, etc.)":`${o}google.svg`,"Vertex Ai Beta":`${o}google.svg`,Vllm:`${o}vllm.png`,VolcEngine:`${o}volcengine.png`,"Voyage AI":`${o}voyage.webp`,Watsonx:`${o}watsonx.svg`,"Watsonx Text":`${o}watsonx.svg`,xAI:`${o}xai.svg`,Xinference:`${o}xinference.svg`};e.s(["Providers",()=>a,"getPlaceholder",0,e=>{if("AI/ML API"===e)return"aiml/flux-pro/v1.1";if("Vertex AI (Anthropic, Gemini, etc.)"===e)return"gemini-pro";if("Anthropic"==e)return"claude-3-opus";if("Amazon Bedrock"==e)return"claude-3-opus";if("AWS SageMaker"==e)return"sagemaker/jumpstart-dft-meta-textgeneration-llama-2-7b";else if("Google AI Studio"==e)return"gemini-pro";else if("Azure AI Foundry (Studio)"==e)return"azure_ai/command-r-plus";else if("Azure"==e)return"my-deployment";else if("Oracle Cloud Infrastructure (OCI)"==e)return"oci/xai.grok-4";else if("Snowflake"==e)return"snowflake/mistral-7b";else if("Voyage AI"==e)return"voyage/";else if("Jina AI"==e)return"jina_ai/";else if("VolcEngine"==e)return"volcengine/";else if("DeepInfra"==e)return"deepinfra/";else if("Fal AI"==e)return"fal_ai/fal-ai/flux-pro/v1.1-ultra";else if("RunwayML"==e)return"runwayml/gen4_turbo";else if("Watsonx"===e)return"watsonx/ibm/granite-3-3-8b-instruct";else if("Cursor"===e)return"cursor/claude-4-sonnet";else if("Z.AI (Zhipu AI)"===e)return"zai/glm-4.5";else return"gpt-3.5-turbo"},"getProviderLogoAndName",0,e=>{if(!e)return{logo:"",displayName:"-"};if("gemini"===e.toLowerCase()){let e="Google AI Studio";return{logo:i[e],displayName:e}}let t=Object.keys(n).find(t=>n[t].toLowerCase()===e.toLowerCase());if(!t)return{logo:"",displayName:e};let o=a[t];return{logo:i[o],displayName:o}},"getProviderModels",0,(e,t)=>{console.log(`Provider key: ${e}`);let a=n[e];console.log(`Provider mapped to: ${a}`);let o=[];return e&&"object"==typeof t&&(Object.entries(t).forEach(([e,t])=>{if(null!==t&&"object"==typeof t&&"litellm_provider"in t){let n=t.litellm_provider;(n===a||"string"==typeof n&&(n.startsWith(`${a}_`)||n.startsWith(`${a}-`)))&&o.push(e)}}),"Cohere"==e&&(console.log("Adding cohere chat models"),Object.entries(t).forEach(([e,t])=>{null!==t&&"object"==typeof t&&"litellm_provider"in t&&"cohere_chat"===t.litellm_provider&&o.push(e)})),"AWS SageMaker"==e&&(console.log("Adding sagemaker chat models"),Object.entries(t).forEach(([e,t])=>{null!==t&&"object"==typeof t&&"litellm_provider"in t&&"sagemaker_chat"===t.litellm_provider&&o.push(e)}))),o},"providerLogoMap",0,i,"provider_map",0,n])},751904,e=>{"use strict";var t=e.i(401361);e.s(["EditOutlined",()=>t.default])},219470,812618,e=>{"use strict";e.s(["coy",0,{'code[class*="language-"]':{color:"black",background:"none",fontFamily:"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace",fontSize:"1em",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",wordWrap:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",maxHeight:"inherit",height:"inherit",padding:"0 1em",display:"block",overflow:"auto"},'pre[class*="language-"]':{color:"black",background:"none",fontFamily:"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace",fontSize:"1em",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",wordWrap:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",position:"relative",margin:".5em 0",overflow:"visible",padding:"1px",backgroundColor:"#fdfdfd",WebkitBoxSizing:"border-box",MozBoxSizing:"border-box",boxSizing:"border-box",marginBottom:"1em"},'pre[class*="language-"] > code':{position:"relative",zIndex:"1",borderLeft:"10px solid #358ccb",boxShadow:"-1px 0px 0px 0px #358ccb, 0px 0px 0px 1px #dfdfdf",backgroundColor:"#fdfdfd",backgroundImage:"linear-gradient(transparent 50%, rgba(69, 142, 209, 0.04) 50%)",backgroundSize:"3em 3em",backgroundOrigin:"content-box",backgroundAttachment:"local"},':not(pre) > code[class*="language-"]':{backgroundColor:"#fdfdfd",WebkitBoxSizing:"border-box",MozBoxSizing:"border-box",boxSizing:"border-box",marginBottom:"1em",position:"relative",padding:".2em",borderRadius:"0.3em",color:"#c92c2c",border:"1px solid rgba(0, 0, 0, 0.1)",display:"inline",whiteSpace:"normal"},'pre[class*="language-"]:before':{content:"''",display:"block",position:"absolute",bottom:"0.75em",left:"0.18em",width:"40%",height:"20%",maxHeight:"13em",boxShadow:"0px 13px 8px #979797",WebkitTransform:"rotate(-2deg)",MozTransform:"rotate(-2deg)",msTransform:"rotate(-2deg)",OTransform:"rotate(-2deg)",transform:"rotate(-2deg)"},'pre[class*="language-"]:after':{content:"''",display:"block",position:"absolute",bottom:"0.75em",left:"auto",width:"40%",height:"20%",maxHeight:"13em",boxShadow:"0px 13px 8px #979797",WebkitTransform:"rotate(2deg)",MozTransform:"rotate(2deg)",msTransform:"rotate(2deg)",OTransform:"rotate(2deg)",transform:"rotate(2deg)",right:"0.75em"},comment:{color:"#7D8B99"},"block-comment":{color:"#7D8B99"},prolog:{color:"#7D8B99"},doctype:{color:"#7D8B99"},cdata:{color:"#7D8B99"},punctuation:{color:"#5F6364"},property:{color:"#c92c2c"},tag:{color:"#c92c2c"},boolean:{color:"#c92c2c"},number:{color:"#c92c2c"},"function-name":{color:"#c92c2c"},constant:{color:"#c92c2c"},symbol:{color:"#c92c2c"},deleted:{color:"#c92c2c"},selector:{color:"#2f9c0a"},"attr-name":{color:"#2f9c0a"},string:{color:"#2f9c0a"},char:{color:"#2f9c0a"},function:{color:"#2f9c0a"},builtin:{color:"#2f9c0a"},inserted:{color:"#2f9c0a"},operator:{color:"#a67f59",background:"rgba(255, 255, 255, 0.5)"},entity:{color:"#a67f59",background:"rgba(255, 255, 255, 0.5)",cursor:"help"},url:{color:"#a67f59",background:"rgba(255, 255, 255, 0.5)"},variable:{color:"#a67f59",background:"rgba(255, 255, 255, 0.5)"},atrule:{color:"#1990b8"},"attr-value":{color:"#1990b8"},keyword:{color:"#1990b8"},"class-name":{color:"#1990b8"},regex:{color:"#e90"},important:{color:"#e90",fontWeight:"normal"},".language-css .token.string":{color:"#a67f59",background:"rgba(255, 255, 255, 0.5)"},".style .token.string":{color:"#a67f59",background:"rgba(255, 255, 255, 0.5)"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"},namespace:{Opacity:".7"},'pre[class*="language-"].line-numbers.line-numbers':{paddingLeft:"0"},'pre[class*="language-"].line-numbers.line-numbers code':{paddingLeft:"3.8em"},'pre[class*="language-"].line-numbers.line-numbers .line-numbers-rows':{left:"0"},'pre[class*="language-"][data-line]':{paddingTop:"0",paddingBottom:"0",paddingLeft:"0"},"pre[data-line] code":{position:"relative",paddingLeft:"4em"},"pre .line-highlight":{marginTop:"0"}}],219470),e.i(247167);var t=e.i(931067),a=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z"}}]},name:"bulb",theme:"outlined"};var o=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(o.default,(0,t.default)({},e,{ref:i,icon:n}))});e.s(["BulbOutlined",0,i],812618)},447593,989022,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645),n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M899.1 869.6l-53-305.6H864c14.4 0 26-11.6 26-26V346c0-14.4-11.6-26-26-26H618V138c0-14.4-11.6-26-26-26H432c-14.4 0-26 11.6-26 26v182H160c-14.4 0-26 11.6-26 26v192c0 14.4 11.6 26 26 26h17.9l-53 305.6a25.95 25.95 0 0025.6 30.4h723c1.5 0 3-.1 4.4-.4a25.88 25.88 0 0021.2-30zM204 390h272V182h72v208h272v104H204V390zm468 440V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H416V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H202.8l45.1-260H776l45.1 260H672z"}}]},name:"clear",theme:"outlined"},o=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(o.default,(0,t.default)({},e,{ref:i,icon:n}))});e.s(["ClearOutlined",0,i],447593);var l=e.i(843476),r=e.i(592968),s=e.i(637235);let c={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M872 394c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H708V152c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v166H400V152c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v166H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h168v236H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h168v166c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V706h228v166c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V706h164c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H708V394h164zM628 630H400V394h228v236z"}}]},name:"number",theme:"outlined"};var d=a.forwardRef(function(e,n){return a.createElement(o.default,(0,t.default)({},e,{ref:n,icon:c}))});let u={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880 912H144c-17.7 0-32-14.3-32-32V144c0-17.7 14.3-32 32-32h360c4.4 0 8 3.6 8 8v56c0 4.4-3.6 8-8 8H184v656h656V520c0-4.4 3.6-8 8-8h56c4.4 0 8 3.6 8 8v360c0 17.7-14.3 32-32 32zM653.3 424.6l52.2 52.2a8.01 8.01 0 01-4.7 13.6l-179.4 21c-5.1.6-9.5-3.7-8.9-8.9l21-179.4c.8-6.6 8.9-9.4 13.6-4.7l52.4 52.4 256.2-256.2c3.1-3.1 8.2-3.1 11.3 0l42.4 42.4c3.1 3.1 3.1 8.2 0 11.3L653.3 424.6z"}}]},name:"import",theme:"outlined"};var m=a.forwardRef(function(e,n){return a.createElement(o.default,(0,t.default)({},e,{ref:n,icon:u}))}),p=e.i(872934),g=e.i(812618),f=e.i(366308),h=e.i(458505);e.s(["default",0,({timeToFirstToken:e,totalLatency:t,usage:a,toolName:n})=>e||t||a?(0,l.jsxs)("div",{className:"response-metrics mt-2 pt-2 border-t border-gray-100 text-xs text-gray-500 flex flex-wrap gap-3",children:[void 0!==e&&(0,l.jsx)(r.Tooltip,{title:"Time to first token",children:(0,l.jsxs)("div",{className:"flex items-center",children:[(0,l.jsx)(s.ClockCircleOutlined,{className:"mr-1"}),(0,l.jsxs)("span",{children:["TTFT: ",(e/1e3).toFixed(2),"s"]})]})}),void 0!==t&&(0,l.jsx)(r.Tooltip,{title:"Total latency",children:(0,l.jsxs)("div",{className:"flex items-center",children:[(0,l.jsx)(s.ClockCircleOutlined,{className:"mr-1"}),(0,l.jsxs)("span",{children:["Total Latency: ",(t/1e3).toFixed(2),"s"]})]})}),a?.promptTokens!==void 0&&(0,l.jsx)(r.Tooltip,{title:"Prompt tokens",children:(0,l.jsxs)("div",{className:"flex items-center",children:[(0,l.jsx)(m,{className:"mr-1"}),(0,l.jsxs)("span",{children:["In: ",a.promptTokens]})]})}),a?.completionTokens!==void 0&&(0,l.jsx)(r.Tooltip,{title:"Completion tokens",children:(0,l.jsxs)("div",{className:"flex items-center",children:[(0,l.jsx)(p.ExportOutlined,{className:"mr-1"}),(0,l.jsxs)("span",{children:["Out: ",a.completionTokens]})]})}),a?.reasoningTokens!==void 0&&(0,l.jsx)(r.Tooltip,{title:"Reasoning tokens",children:(0,l.jsxs)("div",{className:"flex items-center",children:[(0,l.jsx)(g.BulbOutlined,{className:"mr-1"}),(0,l.jsxs)("span",{children:["Reasoning: ",a.reasoningTokens]})]})}),a?.totalTokens!==void 0&&(0,l.jsx)(r.Tooltip,{title:"Total tokens",children:(0,l.jsxs)("div",{className:"flex items-center",children:[(0,l.jsx)(d,{className:"mr-1"}),(0,l.jsxs)("span",{children:["Total: ",a.totalTokens]})]})}),a?.cost!==void 0&&(0,l.jsx)(r.Tooltip,{title:"Cost",children:(0,l.jsxs)("div",{className:"flex items-center",children:[(0,l.jsx)(h.DollarOutlined,{className:"mr-1"}),(0,l.jsxs)("span",{children:["$",a.cost.toFixed(6)]})]})}),n&&(0,l.jsx)(r.Tooltip,{title:"Tool used",children:(0,l.jsxs)("div",{className:"flex items-center",children:[(0,l.jsx)(f.ToolOutlined,{className:"mr-1"}),(0,l.jsxs)("span",{children:["Tool: ",n]})]})})]}):null],989022)},132104,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M868 545.5L536.1 163a31.96 31.96 0 00-48.3 0L156 545.5a7.97 7.97 0 006 13.2h81c4.6 0 9-2 12.1-5.5L474 300.9V864c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V300.9l218.9 252.3c3 3.5 7.4 5.5 12.1 5.5h81c6.8 0 10.5-8 6-13.2z"}}]},name:"arrow-up",theme:"outlined"};var o=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(o.default,(0,t.default)({},e,{ref:i,icon:n}))});e.s(["ArrowUpOutlined",0,i],132104)},245094,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48zm-194.9 6.1l192-161c3.8-3.2 3.8-9.1 0-12.3l-192-160.9A7.95 7.95 0 00308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 00-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"code",theme:"outlined"};var o=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(o.default,(0,t.default)({},e,{ref:i,icon:n}))});e.s(["CodeOutlined",0,i],245094)},458505,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z"}}]},name:"dollar",theme:"outlined"};var o=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(o.default,(0,t.default)({},e,{ref:i,icon:n}))});e.s(["DollarOutlined",0,i],458505)},903446,e=>{"use strict";let t=(0,e.i(475254).default)("settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["default",0,t])},440987,e=>{"use strict";var t=e.i(903446);e.s(["SettingsIcon",()=>t.default])},837007,e=>{"use strict";var t=e.i(603908);e.s(["PlusIcon",()=>t.default])},573421,e=>{"use strict";e.i(247167);var t=e.i(8211),a=e.i(271645),n=e.i(343794),o=e.i(887719),i=e.i(908206),l=e.i(242064),r=e.i(721132),s=e.i(517455),c=e.i(264042),d=e.i(150073),u=e.i(165370),m=e.i(244451);let p=a.default.createContext({});p.Consumer;var g=e.i(763731),f=e.i(211576),h=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(a[n[o]]=e[n[o]]);return a};let v=a.default.forwardRef((e,t)=>{let o,{prefixCls:i,children:r,actions:s,extra:c,styles:d,className:u,classNames:m,colStyle:v}=e,b=h(e,["prefixCls","children","actions","extra","styles","className","classNames","colStyle"]),{grid:x,itemLayout:A}=(0,a.useContext)(p),{getPrefixCls:$,list:y}=(0,a.useContext)(l.ConfigContext),O=e=>{var t,a;return(0,n.default)(null==(a=null==(t=null==y?void 0:y.item)?void 0:t.classNames)?void 0:a[e],null==m?void 0:m[e])},C=e=>{var t,a;return Object.assign(Object.assign({},null==(a=null==(t=null==y?void 0:y.item)?void 0:t.styles)?void 0:a[e]),null==d?void 0:d[e])},I=$("list",i),E=s&&s.length>0&&a.default.createElement("ul",{className:(0,n.default)(`${I}-item-action`,O("actions")),key:"actions",style:C("actions")},s.map((e,t)=>a.default.createElement("li",{key:`${I}-item-action-${t}`},e,t!==s.length-1&&a.default.createElement("em",{className:`${I}-item-action-split`})))),k=a.default.createElement(x?"div":"li",Object.assign({},b,x?{}:{ref:t},{className:(0,n.default)(`${I}-item`,{[`${I}-item-no-flex`]:!("vertical"===A?!!c:(o=!1,a.Children.forEach(r,e=>{"string"==typeof e&&(o=!0)}),!(o&&a.Children.count(r)>1)))},u)}),"vertical"===A&&c?[a.default.createElement("div",{className:`${I}-item-main`,key:"content"},r,E),a.default.createElement("div",{className:(0,n.default)(`${I}-item-extra`,O("extra")),key:"extra",style:C("extra")},c)]:[r,E,(0,g.cloneElement)(c,{key:"extra"})]);return x?a.default.createElement(f.Col,{ref:t,flex:1,style:v},k):k});v.Meta=e=>{var{prefixCls:t,className:o,avatar:i,title:r,description:s}=e,c=h(e,["prefixCls","className","avatar","title","description"]);let{getPrefixCls:d}=(0,a.useContext)(l.ConfigContext),u=d("list",t),m=(0,n.default)(`${u}-item-meta`,o),p=a.default.createElement("div",{className:`${u}-item-meta-content`},r&&a.default.createElement("h4",{className:`${u}-item-meta-title`},r),s&&a.default.createElement("div",{className:`${u}-item-meta-description`},s));return a.default.createElement("div",Object.assign({},c,{className:m}),i&&a.default.createElement("div",{className:`${u}-item-meta-avatar`},i),(r||s)&&p)},e.i(296059);var b=e.i(915654),x=e.i(183293),A=e.i(246422),$=e.i(838378);let y=(0,A.genStyleHooks)("List",e=>{let t=(0,$.mergeToken)(e,{listBorderedCls:`${e.componentCls}-bordered`,minHeight:e.controlHeightLG});return[(e=>{let{componentCls:t,antCls:a,controlHeight:n,minHeight:o,paddingSM:i,marginLG:l,padding:r,itemPadding:s,colorPrimary:c,itemPaddingSM:d,itemPaddingLG:u,paddingXS:m,margin:p,colorText:g,colorTextDescription:f,motionDurationSlow:h,lineWidth:v,headerBg:A,footerBg:$,emptyTextPadding:y,metaMarginBottom:O,avatarMarginRight:C,titleMarginBottom:I,descriptionFontSize:E}=e;return{[t]:Object.assign(Object.assign({},(0,x.resetComponent)(e)),{position:"relative","--rc-virtual-list-scrollbar-bg":e.colorSplit,"*":{outline:"none"},[`${t}-header`]:{background:A},[`${t}-footer`]:{background:$},[`${t}-header, ${t}-footer`]:{paddingBlock:i},[`${t}-pagination`]:{marginBlockStart:l,[`${a}-pagination-options`]:{textAlign:"start"}},[`${t}-spin`]:{minHeight:o,textAlign:"center"},[`${t}-items`]:{margin:0,padding:0,listStyle:"none"},[`${t}-item`]:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:s,color:g,[`${t}-item-meta`]:{display:"flex",flex:1,alignItems:"flex-start",maxWidth:"100%",[`${t}-item-meta-avatar`]:{marginInlineEnd:C},[`${t}-item-meta-content`]:{flex:"1 0",width:0,color:g},[`${t}-item-meta-title`]:{margin:`0 0 ${(0,b.unit)(e.marginXXS)} 0`,color:g,fontSize:e.fontSize,lineHeight:e.lineHeight,"> a":{color:g,transition:`all ${h}`,"&:hover":{color:c}}},[`${t}-item-meta-description`]:{color:f,fontSize:E,lineHeight:e.lineHeight}},[`${t}-item-action`]:{flex:"0 0 auto",marginInlineStart:e.marginXXL,padding:0,fontSize:0,listStyle:"none","& > li":{position:"relative",display:"inline-block",padding:`0 ${(0,b.unit)(m)}`,color:f,fontSize:e.fontSize,lineHeight:e.lineHeight,textAlign:"center","&:first-child":{paddingInlineStart:0}},[`${t}-item-action-split`]:{position:"absolute",insetBlockStart:"50%",insetInlineEnd:0,width:v,height:e.calc(e.fontHeight).sub(e.calc(e.marginXXS).mul(2)).equal(),transform:"translateY(-50%)",backgroundColor:e.colorSplit}}},[`${t}-empty`]:{padding:`${(0,b.unit)(r)} 0`,color:f,fontSize:e.fontSizeSM,textAlign:"center"},[`${t}-empty-text`]:{padding:y,color:e.colorTextDisabled,fontSize:e.fontSize,textAlign:"center"},[`${t}-item-no-flex`]:{display:"block"}}),[`${t}-grid ${a}-col > ${t}-item`]:{display:"block",maxWidth:"100%",marginBlockEnd:p,paddingBlock:0,borderBlockEnd:"none"},[`${t}-vertical ${t}-item`]:{alignItems:"initial",[`${t}-item-main`]:{display:"block",flex:1},[`${t}-item-extra`]:{marginInlineStart:l},[`${t}-item-meta`]:{marginBlockEnd:O,[`${t}-item-meta-title`]:{marginBlockStart:0,marginBlockEnd:I,color:g,fontSize:e.fontSizeLG,lineHeight:e.lineHeightLG}},[`${t}-item-action`]:{marginBlockStart:r,marginInlineStart:"auto","> li":{padding:`0 ${(0,b.unit)(r)}`,"&:first-child":{paddingInlineStart:0}}}},[`${t}-split ${t}-item`]:{borderBlockEnd:`${(0,b.unit)(e.lineWidth)} ${e.lineType} ${e.colorSplit}`,"&:last-child":{borderBlockEnd:"none"}},[`${t}-split ${t}-header`]:{borderBlockEnd:`${(0,b.unit)(e.lineWidth)} ${e.lineType} ${e.colorSplit}`},[`${t}-split${t}-empty ${t}-footer`]:{borderTop:`${(0,b.unit)(e.lineWidth)} ${e.lineType} ${e.colorSplit}`},[`${t}-loading ${t}-spin-nested-loading`]:{minHeight:n},[`${t}-split${t}-something-after-last-item ${a}-spin-container > ${t}-items > ${t}-item:last-child`]:{borderBlockEnd:`${(0,b.unit)(e.lineWidth)} ${e.lineType} ${e.colorSplit}`},[`${t}-lg ${t}-item`]:{padding:u},[`${t}-sm ${t}-item`]:{padding:d},[`${t}:not(${t}-vertical)`]:{[`${t}-item-no-flex`]:{[`${t}-item-action`]:{float:"right"}}}}})(t),(e=>{let{listBorderedCls:t,componentCls:a,paddingLG:n,margin:o,itemPaddingSM:i,itemPaddingLG:l,marginLG:r,borderRadiusLG:s}=e,c=(0,b.unit)(e.calc(s).sub(e.lineWidth).equal());return{[t]:{border:`${(0,b.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderRadius:s,[`${a}-header`]:{borderRadius:`${c} ${c} 0 0`},[`${a}-footer`]:{borderRadius:`0 0 ${c} ${c}`},[`${a}-header,${a}-footer,${a}-item`]:{paddingInline:n},[`${a}-pagination`]:{margin:`${(0,b.unit)(o)} ${(0,b.unit)(r)}`}},[`${t}${a}-sm`]:{[`${a}-item,${a}-header,${a}-footer`]:{padding:i}},[`${t}${a}-lg`]:{[`${a}-item,${a}-header,${a}-footer`]:{padding:l}}}})(t),(e=>{let{componentCls:t,screenSM:a,screenMD:n,marginLG:o,marginSM:i,margin:l}=e;return{[`@media screen and (max-width:${n}px)`]:{[t]:{[`${t}-item`]:{[`${t}-item-action`]:{marginInlineStart:o}}},[`${t}-vertical`]:{[`${t}-item`]:{[`${t}-item-extra`]:{marginInlineStart:o}}}},[`@media screen and (max-width: ${a}px)`]:{[t]:{[`${t}-item`]:{flexWrap:"wrap",[`${t}-action`]:{marginInlineStart:i}}},[`${t}-vertical`]:{[`${t}-item`]:{flexWrap:"wrap-reverse",[`${t}-item-main`]:{minWidth:e.contentWidth},[`${t}-item-extra`]:{margin:`auto auto ${(0,b.unit)(l)}`}}}}}})(t)]},e=>({contentWidth:220,itemPadding:`${(0,b.unit)(e.paddingContentVertical)} 0`,itemPaddingSM:`${(0,b.unit)(e.paddingContentVerticalSM)} ${(0,b.unit)(e.paddingContentHorizontal)}`,itemPaddingLG:`${(0,b.unit)(e.paddingContentVerticalLG)} ${(0,b.unit)(e.paddingContentHorizontalLG)}`,headerBg:"transparent",footerBg:"transparent",emptyTextPadding:e.padding,metaMarginBottom:e.padding,avatarMarginRight:e.padding,titleMarginBottom:e.paddingSM,descriptionFontSize:e.fontSize}));var O=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(a[n[o]]=e[n[o]]);return a};let C=a.forwardRef(function(e,g){let{pagination:f=!1,prefixCls:h,bordered:v=!1,split:b=!0,className:x,rootClassName:A,style:$,children:C,itemLayout:I,loadMore:E,grid:k,dataSource:S=[],size:T,header:w,footer:_,loading:N=!1,rowKey:M,renderItem:L,locale:z}=e,R=O(e,["pagination","prefixCls","bordered","split","className","rootClassName","style","children","itemLayout","loadMore","grid","dataSource","size","header","footer","loading","rowKey","renderItem","locale"]),j=f&&"object"==typeof f?f:{},[D,H]=a.useState(j.defaultCurrent||1),[B,P]=a.useState(j.defaultPageSize||10),{getPrefixCls:V,direction:W,className:G,style:F}=(0,l.useComponentConfig)("list"),{renderEmpty:U}=a.useContext(l.ConfigContext),X=e=>(t,a)=>{var n;H(t),P(a),f&&(null==(n=null==f?void 0:f[e])||n.call(f,t,a))},K=X("onChange"),Y=X("onShowSizeChange"),Z=!!(E||f||_),q=V("list",h),[J,Q,ee]=y(q),et=N;"boolean"==typeof et&&(et={spinning:et});let ea=!!(null==et?void 0:et.spinning),en=(0,s.default)(T),eo="";switch(en){case"large":eo="lg";break;case"small":eo="sm"}let ei=(0,n.default)(q,{[`${q}-vertical`]:"vertical"===I,[`${q}-${eo}`]:eo,[`${q}-split`]:b,[`${q}-bordered`]:v,[`${q}-loading`]:ea,[`${q}-grid`]:!!k,[`${q}-something-after-last-item`]:Z,[`${q}-rtl`]:"rtl"===W},G,x,A,Q,ee),el=(0,o.default)({current:1,total:0,position:"bottom"},{total:S.length,current:D,pageSize:B},f||{}),er=Math.ceil(el.total/el.pageSize);el.current=Math.min(el.current,er);let es=f&&a.createElement("div",{className:(0,n.default)(`${q}-pagination`)},a.createElement(u.default,Object.assign({align:"end"},el,{onChange:K,onShowSizeChange:Y}))),ec=(0,t.default)(S);f&&S.length>(el.current-1)*el.pageSize&&(ec=(0,t.default)(S).splice((el.current-1)*el.pageSize,el.pageSize));let ed=Object.keys(k||{}).some(e=>["xs","sm","md","lg","xl","xxl"].includes(e)),eu=(0,d.default)(ed),em=a.useMemo(()=>{for(let e=0;e{if(!k)return;let e=em&&k[em]?k[em]:k.column;if(e)return{width:`${100/e}%`,maxWidth:`${100/e}%`}},[JSON.stringify(k),em]),eg=ea&&a.createElement("div",{style:{minHeight:53}});if(ec.length>0){let e=ec.map((e,t)=>{let n;return L?((n="function"==typeof M?M(e):M?e[M]:e.key)||(n=`list-item-${t}`),a.createElement(a.Fragment,{key:n},L(e,t))):null});eg=k?a.createElement(c.Row,{gutter:k.gutter},a.Children.map(e,e=>a.createElement("div",{key:null==e?void 0:e.key,style:ep},e))):a.createElement("ul",{className:`${q}-items`},e)}else C||ea||(eg=a.createElement("div",{className:`${q}-empty-text`},(null==z?void 0:z.emptyText)||(null==U?void 0:U("List"))||a.createElement(r.default,{componentName:"List"})));let ef=el.position,eh=a.useMemo(()=>({grid:k,itemLayout:I}),[JSON.stringify(k),I]);return J(a.createElement(p.Provider,{value:eh},a.createElement("div",Object.assign({ref:g,style:Object.assign(Object.assign({},F),$),className:ei},R),("top"===ef||"both"===ef)&&es,w&&a.createElement("div",{className:`${q}-header`},w),a.createElement(m.default,Object.assign({},et),eg,C),_&&a.createElement("div",{className:`${q}-footer`},_),E||("bottom"===ef||"both"===ef)&&es)))});C.Item=v,e.s(["List",0,C],573421)},608856,e=>{"use strict";e.i(247167);var t=e.i(271645),a=e.i(343794),n=e.i(209428),o=e.i(392221),i=e.i(951160),l=e.i(174428),r=t.createContext(null),s=t.createContext({}),c=e.i(211577),d=e.i(931067),u=e.i(361275),m=e.i(404948),p=e.i(244009),g=e.i(703923),f=e.i(611935),h=["prefixCls","className","containerRef"];let v=function(e){var n=e.prefixCls,o=e.className,i=e.containerRef,l=(0,g.default)(e,h),r=t.useContext(s).panel,c=(0,f.useComposeRef)(r,i);return t.createElement("div",(0,d.default)({className:(0,a.default)("".concat(n,"-content"),o),role:"dialog",ref:c},(0,p.default)(e,{aria:!0}),{"aria-modal":"true"},l))};var b=e.i(883110);function x(e){return"string"==typeof e&&String(Number(e))===e?((0,b.default)(!1,"Invalid value type of `width` or `height` which should be number type instead."),Number(e)):e}var A={width:0,height:0,overflow:"hidden",outline:"none",position:"absolute"},$=t.forwardRef(function(e,i){var l,s,g,f=e.prefixCls,h=e.open,b=e.placement,$=e.inline,y=e.push,O=e.forceRender,C=e.autoFocus,I=e.keyboard,E=e.classNames,k=e.rootClassName,S=e.rootStyle,T=e.zIndex,w=e.className,_=e.id,N=e.style,M=e.motion,L=e.width,z=e.height,R=e.children,j=e.mask,D=e.maskClosable,H=e.maskMotion,B=e.maskClassName,P=e.maskStyle,V=e.afterOpenChange,W=e.onClose,G=e.onMouseEnter,F=e.onMouseOver,U=e.onMouseLeave,X=e.onClick,K=e.onKeyDown,Y=e.onKeyUp,Z=e.styles,q=e.drawerRender,J=t.useRef(),Q=t.useRef(),ee=t.useRef();t.useImperativeHandle(i,function(){return J.current}),t.useEffect(function(){if(h&&C){var e;null==(e=J.current)||e.focus({preventScroll:!0})}},[h]);var et=t.useState(!1),ea=(0,o.default)(et,2),en=ea[0],eo=ea[1],ei=t.useContext(r),el=null!=(l=null!=(s=null==(g="boolean"==typeof y?y?{}:{distance:0}:y||{})?void 0:g.distance)?s:null==ei?void 0:ei.pushDistance)?l:180,er=t.useMemo(function(){return{pushDistance:el,push:function(){eo(!0)},pull:function(){eo(!1)}}},[el]);t.useEffect(function(){var e,t;h?null==ei||null==(e=ei.push)||e.call(ei):null==ei||null==(t=ei.pull)||t.call(ei)},[h]),t.useEffect(function(){return function(){var e;null==ei||null==(e=ei.pull)||e.call(ei)}},[]);var es=t.createElement(u.default,(0,d.default)({key:"mask"},H,{visible:j&&h}),function(e,o){var i=e.className,l=e.style;return t.createElement("div",{className:(0,a.default)("".concat(f,"-mask"),i,null==E?void 0:E.mask,B),style:(0,n.default)((0,n.default)((0,n.default)({},l),P),null==Z?void 0:Z.mask),onClick:D&&h?W:void 0,ref:o})}),ec="function"==typeof M?M(b):M,ed={};if(en&&el)switch(b){case"top":ed.transform="translateY(".concat(el,"px)");break;case"bottom":ed.transform="translateY(".concat(-el,"px)");break;case"left":ed.transform="translateX(".concat(el,"px)");break;default:ed.transform="translateX(".concat(-el,"px)")}"left"===b||"right"===b?ed.width=x(L):ed.height=x(z);var eu={onMouseEnter:G,onMouseOver:F,onMouseLeave:U,onClick:X,onKeyDown:K,onKeyUp:Y},em=t.createElement(u.default,(0,d.default)({key:"panel"},ec,{visible:h,forceRender:O,onVisibleChanged:function(e){null==V||V(e)},removeOnLeave:!1,leavedClassName:"".concat(f,"-content-wrapper-hidden")}),function(o,i){var l=o.className,r=o.style,s=t.createElement(v,(0,d.default)({id:_,containerRef:i,prefixCls:f,className:(0,a.default)(w,null==E?void 0:E.content),style:(0,n.default)((0,n.default)({},N),null==Z?void 0:Z.content)},(0,p.default)(e,{aria:!0}),eu),R);return t.createElement("div",(0,d.default)({className:(0,a.default)("".concat(f,"-content-wrapper"),null==E?void 0:E.wrapper,l),style:(0,n.default)((0,n.default)((0,n.default)({},ed),r),null==Z?void 0:Z.wrapper)},(0,p.default)(e,{data:!0})),q?q(s):s)}),ep=(0,n.default)({},S);return T&&(ep.zIndex=T),t.createElement(r.Provider,{value:er},t.createElement("div",{className:(0,a.default)(f,"".concat(f,"-").concat(b),k,(0,c.default)((0,c.default)({},"".concat(f,"-open"),h),"".concat(f,"-inline"),$)),style:ep,tabIndex:-1,ref:J,onKeyDown:function(e){var t,a,n=e.keyCode,o=e.shiftKey;switch(n){case m.default.TAB:n===m.default.TAB&&(o||document.activeElement!==ee.current?o&&document.activeElement===Q.current&&(null==(a=ee.current)||a.focus({preventScroll:!0})):null==(t=Q.current)||t.focus({preventScroll:!0}));break;case m.default.ESC:W&&I&&(e.stopPropagation(),W(e))}}},es,t.createElement("div",{tabIndex:0,ref:Q,style:A,"aria-hidden":"true","data-sentinel":"start"}),em,t.createElement("div",{tabIndex:0,ref:ee,style:A,"aria-hidden":"true","data-sentinel":"end"})))});let y=function(e){var a=e.open,r=e.prefixCls,c=e.placement,d=e.autoFocus,u=e.keyboard,m=e.width,p=e.mask,g=void 0===p||p,f=e.maskClosable,h=e.getContainer,v=e.forceRender,b=e.afterOpenChange,x=e.destroyOnClose,A=e.onMouseEnter,y=e.onMouseOver,O=e.onMouseLeave,C=e.onClick,I=e.onKeyDown,E=e.onKeyUp,k=e.panelRef,S=t.useState(!1),T=(0,o.default)(S,2),w=T[0],_=T[1],N=t.useState(!1),M=(0,o.default)(N,2),L=M[0],z=M[1];(0,l.default)(function(){z(!0)},[]);var R=!!L&&void 0!==a&&a,j=t.useRef(),D=t.useRef();(0,l.default)(function(){R&&(D.current=document.activeElement)},[R]);var H=t.useMemo(function(){return{panel:k}},[k]);if(!v&&!w&&!R&&x)return null;var B=(0,n.default)((0,n.default)({},e),{},{open:R,prefixCls:void 0===r?"rc-drawer":r,placement:void 0===c?"right":c,autoFocus:void 0===d||d,keyboard:void 0===u||u,width:void 0===m?378:m,mask:g,maskClosable:void 0===f||f,inline:!1===h,afterOpenChange:function(e){var t,a;_(e),null==b||b(e),e||!D.current||null!=(t=j.current)&&t.contains(D.current)||null==(a=D.current)||a.focus({preventScroll:!0})},ref:j},{onMouseEnter:A,onMouseOver:y,onMouseLeave:O,onClick:C,onKeyDown:I,onKeyUp:E});return t.createElement(s.Provider,{value:H},t.createElement(i.default,{open:R||v||w,autoDestroy:!1,getContainer:h,autoLock:g&&(R||w)},t.createElement($,B)))};var O=e.i(981444),C=e.i(617206),I=e.i(122767),E=e.i(613541),k=e.i(340010),S=e.i(242064),T=e.i(922611),w=e.i(563113),_=e.i(185793);let N=e=>{var n,o,i,l;let r,{prefixCls:s,ariaId:c,title:d,footer:u,extra:m,closable:p,loading:g,onClose:f,headerStyle:h,bodyStyle:v,footerStyle:b,children:x,classNames:A,styles:$}=e,y=(0,S.useComponentConfig)("drawer");r=!1===p?void 0:void 0===p||!0===p?"start":(null==p?void 0:p.placement)==="end"?"end":"start";let O=t.useCallback(e=>t.createElement("button",{type:"button",onClick:f,className:(0,a.default)(`${s}-close`,{[`${s}-close-${r}`]:"end"===r})},e),[f,s,r]),[C,I]=(0,w.useClosable)((0,w.pickClosable)(e),(0,w.pickClosable)(y),{closable:!0,closeIconRender:O});return t.createElement(t.Fragment,null,d||C?t.createElement("div",{style:Object.assign(Object.assign(Object.assign({},null==(i=y.styles)?void 0:i.header),h),null==$?void 0:$.header),className:(0,a.default)(`${s}-header`,{[`${s}-header-close-only`]:C&&!d&&!m},null==(l=y.classNames)?void 0:l.header,null==A?void 0:A.header)},t.createElement("div",{className:`${s}-header-title`},"start"===r&&I,d&&t.createElement("div",{className:`${s}-title`,id:c},d)),m&&t.createElement("div",{className:`${s}-extra`},m),"end"===r&&I):null,t.createElement("div",{className:(0,a.default)(`${s}-body`,null==A?void 0:A.body,null==(n=y.classNames)?void 0:n.body),style:Object.assign(Object.assign(Object.assign({},null==(o=y.styles)?void 0:o.body),v),null==$?void 0:$.body)},g?t.createElement(_.default,{active:!0,title:!1,paragraph:{rows:5},className:`${s}-body-skeleton`}):x),(()=>{var e,n;if(!u)return null;let o=`${s}-footer`;return t.createElement("div",{className:(0,a.default)(o,null==(e=y.classNames)?void 0:e.footer,null==A?void 0:A.footer),style:Object.assign(Object.assign(Object.assign({},null==(n=y.styles)?void 0:n.footer),b),null==$?void 0:$.footer)},u)})())};e.i(296059);var M=e.i(915654),L=e.i(183293),z=e.i(246422),R=e.i(838378);let j=(e,t)=>({"&-enter, &-appear":Object.assign(Object.assign({},e),{"&-active":t}),"&-leave":Object.assign(Object.assign({},t),{"&-active":e})}),D=(e,t)=>Object.assign({"&-enter, &-appear, &-leave":{"&-start":{transition:"none"},"&-active":{transition:`all ${t}`}}},j({opacity:e},{opacity:1})),H=(0,z.genStyleHooks)("Drawer",e=>{let t=(0,R.mergeToken)(e,{});return[(e=>{let{borderRadiusSM:t,componentCls:a,zIndexPopup:n,colorBgMask:o,colorBgElevated:i,motionDurationSlow:l,motionDurationMid:r,paddingXS:s,padding:c,paddingLG:d,fontSizeLG:u,lineHeightLG:m,lineWidth:p,lineType:g,colorSplit:f,marginXS:h,colorIcon:v,colorIconHover:b,colorBgTextHover:x,colorBgTextActive:A,colorText:$,fontWeightStrong:y,footerPaddingBlock:O,footerPaddingInline:C,calc:I}=e,E=`${a}-content-wrapper`;return{[a]:{position:"fixed",inset:0,zIndex:n,pointerEvents:"none",color:$,"&-pure":{position:"relative",background:i,display:"flex",flexDirection:"column",[`&${a}-left`]:{boxShadow:e.boxShadowDrawerLeft},[`&${a}-right`]:{boxShadow:e.boxShadowDrawerRight},[`&${a}-top`]:{boxShadow:e.boxShadowDrawerUp},[`&${a}-bottom`]:{boxShadow:e.boxShadowDrawerDown}},"&-inline":{position:"absolute"},[`${a}-mask`]:{position:"absolute",inset:0,zIndex:n,background:o,pointerEvents:"auto"},[E]:{position:"absolute",zIndex:n,maxWidth:"100vw",transition:`all ${l}`,"&-hidden":{display:"none"}},[`&-left > ${E}`]:{top:0,bottom:0,left:{_skip_check_:!0,value:0},boxShadow:e.boxShadowDrawerLeft},[`&-right > ${E}`]:{top:0,right:{_skip_check_:!0,value:0},bottom:0,boxShadow:e.boxShadowDrawerRight},[`&-top > ${E}`]:{top:0,insetInline:0,boxShadow:e.boxShadowDrawerUp},[`&-bottom > ${E}`]:{bottom:0,insetInline:0,boxShadow:e.boxShadowDrawerDown},[`${a}-content`]:{display:"flex",flexDirection:"column",width:"100%",height:"100%",overflow:"auto",background:i,pointerEvents:"auto"},[`${a}-header`]:{display:"flex",flex:0,alignItems:"center",padding:`${(0,M.unit)(c)} ${(0,M.unit)(d)}`,fontSize:u,lineHeight:m,borderBottom:`${(0,M.unit)(p)} ${g} ${f}`,"&-title":{display:"flex",flex:1,alignItems:"center",minWidth:0,minHeight:0}},[`${a}-extra`]:{flex:"none"},[`${a}-close`]:Object.assign({display:"inline-flex",width:I(u).add(s).equal(),height:I(u).add(s).equal(),borderRadius:t,justifyContent:"center",alignItems:"center",color:v,fontWeight:y,fontSize:u,fontStyle:"normal",lineHeight:1,textAlign:"center",textTransform:"none",textDecoration:"none",background:"transparent",border:0,cursor:"pointer",transition:`all ${r}`,textRendering:"auto",[`&${a}-close-end`]:{marginInlineStart:h},[`&:not(${a}-close-end)`]:{marginInlineEnd:h},"&:hover":{color:b,backgroundColor:x,textDecoration:"none"},"&:active":{backgroundColor:A}},(0,L.genFocusStyle)(e)),[`${a}-title`]:{flex:1,margin:0,fontWeight:e.fontWeightStrong,fontSize:u,lineHeight:m},[`${a}-body`]:{flex:1,minWidth:0,minHeight:0,padding:d,overflow:"auto",[`${a}-body-skeleton`]:{width:"100%",height:"100%",display:"flex",justifyContent:"center"}},[`${a}-footer`]:{flexShrink:0,padding:`${(0,M.unit)(O)} ${(0,M.unit)(C)}`,borderTop:`${(0,M.unit)(p)} ${g} ${f}`},"&-rtl":{direction:"rtl"}}}})(t),(e=>{let{componentCls:t,motionDurationSlow:a}=e;return{[t]:{[`${t}-mask-motion`]:D(0,a),[`${t}-panel-motion`]:["left","right","top","bottom"].reduce((e,t)=>{let n;return Object.assign(Object.assign({},e),{[`&-${t}`]:[D(.7,a),j({transform:(n="100%",({left:`translateX(-${n})`,right:`translateX(${n})`,top:`translateY(-${n})`,bottom:`translateY(${n})`})[t])},{transform:"none"})]})},{})}}})(t)]},e=>({zIndexPopup:e.zIndexPopupBase,footerPaddingBlock:e.paddingXS,footerPaddingInline:e.padding}));var B=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(a[n[o]]=e[n[o]]);return a};let P={distance:180},V=e=>{let{rootClassName:n,width:o,height:i,size:l="default",mask:r=!0,push:s=P,open:c,afterOpenChange:d,onClose:u,prefixCls:m,getContainer:p,panelRef:g=null,style:h,className:v,"aria-labelledby":b,visible:x,afterVisibleChange:A,maskStyle:$,drawerStyle:w,contentWrapperStyle:_,destroyOnClose:M,destroyOnHidden:L}=e,z=B(e,["rootClassName","width","height","size","mask","push","open","afterOpenChange","onClose","prefixCls","getContainer","panelRef","style","className","aria-labelledby","visible","afterVisibleChange","maskStyle","drawerStyle","contentWrapperStyle","destroyOnClose","destroyOnHidden"]),R=(0,O.default)(),j=z.title?R:void 0,{getPopupContainer:D,getPrefixCls:V,direction:W,className:G,style:F,classNames:U,styles:X}=(0,S.useComponentConfig)("drawer"),K=V("drawer",m),[Y,Z,q]=H(K),J=void 0===p&&D?()=>D(document.body):p,Q=(0,a.default)({"no-mask":!r,[`${K}-rtl`]:"rtl"===W},n,Z,q),ee=t.useMemo(()=>null!=o?o:"large"===l?736:378,[o,l]),et=t.useMemo(()=>null!=i?i:"large"===l?736:378,[i,l]),ea={motionName:(0,E.getTransitionName)(K,"mask-motion"),motionAppear:!0,motionEnter:!0,motionLeave:!0,motionDeadline:500},en=(0,T.usePanelRef)(),eo=(0,f.composeRef)(g,en),[ei,el]=(0,I.useZIndex)("Drawer",z.zIndex),{classNames:er={},styles:es={}}=z;return Y(t.createElement(C.default,{form:!0,space:!0},t.createElement(k.default.Provider,{value:el},t.createElement(y,Object.assign({prefixCls:K,onClose:u,maskMotion:ea,motion:e=>({motionName:(0,E.getTransitionName)(K,`panel-motion-${e}`),motionAppear:!0,motionEnter:!0,motionLeave:!0,motionDeadline:500})},z,{classNames:{mask:(0,a.default)(er.mask,U.mask),content:(0,a.default)(er.content,U.content),wrapper:(0,a.default)(er.wrapper,U.wrapper)},styles:{mask:Object.assign(Object.assign(Object.assign({},es.mask),$),X.mask),content:Object.assign(Object.assign(Object.assign({},es.content),w),X.content),wrapper:Object.assign(Object.assign(Object.assign({},es.wrapper),_),X.wrapper)},open:null!=c?c:x,mask:r,push:s,width:ee,height:et,style:Object.assign(Object.assign({},F),h),className:(0,a.default)(G,v),rootClassName:Q,getContainer:J,afterOpenChange:null!=d?d:A,panelRef:eo,zIndex:ei,"aria-labelledby":null!=b?b:j,destroyOnClose:null!=L?L:M}),t.createElement(N,Object.assign({prefixCls:K},z,{ariaId:j,onClose:u}))))))};V._InternalPanelDoNotUseOrYouWillBeFired=e=>{let{prefixCls:n,style:o,className:i,placement:l="right"}=e,r=B(e,["prefixCls","style","className","placement"]),{getPrefixCls:s}=t.useContext(S.ConfigContext),c=s("drawer",n),[d,u,m]=H(c),p=(0,a.default)(c,`${c}-pure`,`${c}-${l}`,u,m,i);return d(t.createElement("div",{className:p,style:o},t.createElement(N,Object.assign({prefixCls:c},r))))},e.s(["Drawer",0,V],608856)},675879,e=>{"use strict";var t=e.i(843476),a=e.i(191403),n=e.i(135214);e.s(["default",0,()=>{let{accessToken:e}=(0,n.default)();return(0,t.jsx)(a.default,{accessToken:e})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0634irnh4hmq6.js b/litellm/proxy/_experimental/out/_next/static/chunks/0634irnh4hmq6.js new file mode 100644 index 00000000000..b845f9863cf --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/0634irnh4hmq6.js @@ -0,0 +1,98 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,268004,909119,e=>{"use strict";let t="mcp-session-token:";function r(e,r){let o=r?.trim()||"_anonymous";return`${t}${o}:${e}`}function o(e,t){try{let o=window.sessionStorage.getItem(r(e,t));if(!o)return null;return JSON.parse(o)}catch{return null}}function n(){try{let e=[];for(let r=0;rwindow.sessionStorage.removeItem(e))}catch{}}function a(){let e=window.location.pathname.match(/\/ui(?=\/|$)/);return e&&void 0!==e.index?window.location.pathname.substring(0,e.index+3):"/ui"}e.s(["clearAllMcpTokens",0,n,"getToken",0,o,"isTokenValid",0,function(e,t){let r=o(e,t);return!!r&&r.expires_at>Date.now()},"removeToken",0,function(e,t){try{window.sessionStorage.removeItem(r(e,t))}catch{}},"setToken",0,function(e,t,o){let n={access_token:t.access_token,expires_at:Date.now()+(null!=t.expires_in?1e3*t.expires_in:36e5),token_type:t.token_type??"bearer",...t.refresh_token?{refresh_token:t.refresh_token}:{}};try{window.sessionStorage.setItem(r(e,o),JSON.stringify(n))}catch{}}],909119),e.s(["clearTokenCookies",0,function(){if("u"{document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t};`,document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${e};`,o.forEach(r=>{let o="None"===r?" Secure;":"";document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; SameSite=${r};${o}`,document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${e}; SameSite=${r};${o}`})});try{sessionStorage.removeItem("token")}catch{}n()},"getCookie",0,function(e){if("u"t.startsWith(e+"="));if(t){let e=t.split("=").slice(1).join("=");try{return decodeURIComponent(e)}catch{return e}}if("token"===e)try{return sessionStorage.getItem(e)}catch{}return null},"storeLoginToken",0,function(e){if(e&&e.trim()){try{let t="https:"===window.location.protocol?"; Secure":"",r=a();document.cookie=`token=${encodeURIComponent(e)}; path=${r}; SameSite=Lax${t}`}catch{}try{sessionStorage.setItem("token",e)}catch{}}}],268004)},876556,e=>{"use strict";var t=e.i(565924),r=e.i(271645);e.s(["default",0,function e(o){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=[];return r.default.Children.forEach(o,function(r){(null!=r||n.keepEmpty)&&(Array.isArray(r)?a=a.concat(e(r)):(0,t.default)(r)&&r.props?a=a.concat(e(r.props.children,n)):a.push(r))}),a}])},495347,177886,786944,162129,197091,787894,696752,621796,e=>{"use strict";var t,r=e.i(271645);e.i(247167);var o=e.i(931067),n=e.i(703923),a=e.i(31575),i=e.i(33968),l=e.i(209428),s=e.i(8211),c=e.i(278409),u=e.i(233848),d=e.i(971151),f=e.i(868917),p=e.i(674813),h=e.i(211577),m=e.i(876556),g=e.i(929123),v=e.i(883110),y="RC_FORM_INTERNAL_HOOKS",b=function(){(0,v.default)(!1,"Can not find FormContext. Please make sure you wrap Field under Form.")},w=r.createContext({getFieldValue:b,getFieldsValue:b,getFieldError:b,getFieldWarning:b,getFieldsError:b,isFieldsTouched:b,isFieldTouched:b,isFieldValidating:b,isFieldsValidating:b,resetFields:b,setFields:b,setFieldValue:b,setFieldsValue:b,validateFields:b,submit:b,getInternalHooks:function(){return b(),{dispatch:b,initEntityValue:b,registerField:b,useSubscribe:b,setInitialValues:b,destroyForm:b,setCallbacks:b,registerWatch:b,getFields:b,setValidateMessages:b,setPreserve:b,getInitialValue:b}}});e.s(["HOOK_MARK",0,y,"default",0,w],177886);var $=r.createContext(null);function C(e){return null==e?[]:Array.isArray(e)?e:[e]}e.s(["default",0,$],786944);var x=e.i(410160);function E(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",tel:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var S=E(),k=e.i(487806),j=e.i(885963),O=e.i(479671);function T(e){var t="function"==typeof Map?new Map:void 0;return(T=function(e){if(null===e||!function(e){try{return -1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if((0,O.default)())return Reflect.construct.apply(null,arguments);var o=[null];o.push.apply(o,t);var n=new(e.bind.apply(e,o));return r&&(0,j.default)(n,r.prototype),n}(e,arguments,(0,k.default)(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),(0,j.default)(r,e)})(e)}var I=/%[sdj%]/g;function _(e){if(!e||!e.length)return null;var t={};return e.forEach(function(e){var r=e.field;t[r]=t[r]||[],t[r].push(e)}),t}function F(e){for(var t=arguments.length,r=Array(t>1?t-1:0),o=1;o=a)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}}):e}function P(e,t){return!!(null==e||"array"===t&&Array.isArray(e)&&!e.length)||("string"===t||"url"===t||"hex"===t||"email"===t||"date"===t||"pattern"===t||"tel"===t)&&"string"==typeof e&&!e||!1}function R(e,t,r){var o=0,n=e.length;!function a(i){if(i&&i.length)return void r(i);var l=o;o+=1,l()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,H=/^(\+[0-9]{1,3}[-\s\u2011]?)?(\([0-9]{1,4}\)[-\s\u2011]?)?([0-9]+[-\s\u2011]?)*[0-9]+$/,V=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,W={integer:function(e){return W.number(e)&&parseInt(e,10)===e},float:function(e){return W.number(e)&&!W.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return new RegExp(e),!0}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime())},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"===(0,x.default)(e)&&!W.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&e.length<=320&&!!e.match(D)},tel:function(e){return"string"==typeof e&&e.length<=32&&!!e.match(H)},url:function(e){return"string"==typeof e&&e.length<=2048&&!!e.match(L())},hex:function(e){return"string"==typeof e&&!!e.match(V)}};let U=z,G=function(e,t,r,o,n){(/^\s+$/.test(t)||""===t)&&o.push(F(n.messages.whitespace,e.fullField))},q=function(e,t,r,o,n){if(e.required&&void 0===t)return void z(e,t,r,o,n);var a=e.type;["integer","float","array","regexp","object","method","email","tel","number","date","url","hex"].indexOf(a)>-1?W[a](t)||o.push(F(n.messages.types[a],e.fullField,e.type)):a&&(0,x.default)(t)!==e.type&&o.push(F(n.messages.types[a],e.fullField,e.type))},J=function(e,t,r,o,n){var a="number"==typeof e.len,i="number"==typeof e.min,l="number"==typeof e.max,s=t,c=null,u="number"==typeof t,d="string"==typeof t,f=Array.isArray(t);if(u?c="number":d?c="string":f&&(c="array"),!c)return!1;f&&(s=t.length),d&&(s=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),a?s!==e.len&&o.push(F(n.messages[c].len,e.fullField,e.len)):i&&!l&&se.max?o.push(F(n.messages[c].max,e.fullField,e.max)):i&&l&&(se.max)&&o.push(F(n.messages[c].range,e.fullField,e.min,e.max))},K=function(e,t,r,o,n){e[A]=Array.isArray(e[A])?e[A]:[],-1===e[A].indexOf(t)&&o.push(F(n.messages[A],e.fullField,e[A].join(", ")))},X=function(e,t,r,o,n){e.pattern&&(e.pattern instanceof RegExp?(e.pattern.lastIndex=0,e.pattern.test(t)||o.push(F(n.messages.pattern.mismatch,e.fullField,t,e.pattern))):"string"==typeof e.pattern&&(new RegExp(e.pattern).test(t)||o.push(F(n.messages.pattern.mismatch,e.fullField,t,e.pattern))))},Q=function(e,t,r,o,n){var a=e.type,i=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,a)&&!e.required)return r();U(e,t,o,i,n,a),P(t,a)||q(e,t,o,i,n)}r(i)},Y={string:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,"string")&&!e.required)return r();U(e,t,o,a,n,"string"),P(t,"string")||(q(e,t,o,a,n),J(e,t,o,a,n),X(e,t,o,a,n),!0===e.whitespace&&G(e,t,o,a,n))}r(a)},method:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&q(e,t,o,a,n)}r(a)},number:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(""===t&&(t=void 0),P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},boolean:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&q(e,t,o,a,n)}r(a)},regexp:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),P(t)||q(e,t,o,a,n)}r(a)},integer:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},float:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},array:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();U(e,t,o,a,n,"array"),null!=t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},object:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&q(e,t,o,a,n)}r(a)},enum:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&K(e,t,o,a,n)}r(a)},pattern:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,"string")&&!e.required)return r();U(e,t,o,a,n),P(t,"string")||X(e,t,o,a,n)}r(a)},date:function(e,t,r,o,n){var a,i=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,"date")&&!e.required)return r();U(e,t,o,i,n),!P(t,"date")&&(a=t instanceof Date?t:new Date(t),q(e,a,o,i,n),a&&J(e,a.getTime(),o,i,n))}r(i)},url:Q,hex:Q,email:Q,tel:Q,required:function(e,t,r,o,n){var a=[],i=Array.isArray(t)?"array":(0,x.default)(t);U(e,t,o,a,n,i),r(a)},any:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n)}r(a)}};var Z=function(){function e(t){(0,c.default)(this,e),(0,h.default)(this,"rules",null),(0,h.default)(this,"_messages",S),this.define(t)}return(0,u.default)(e,[{key:"define",value:function(e){var t=this;if(!e)throw Error("Cannot configure a schema with no rules");if("object"!==(0,x.default)(e)||Array.isArray(e))throw Error("Rules must be an object");this.rules={},Object.keys(e).forEach(function(r){var o=e[r];t.rules[r]=Array.isArray(o)?o:[o]})}},{key:"messages",value:function(e){return e&&(this._messages=B(E(),e)),this._messages}},{key:"validate",value:function(t){var r=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},a=t,i=o,c=n;if("function"==typeof i&&(c=i,i={}),!this.rules||0===Object.keys(this.rules).length)return c&&c(null,a),Promise.resolve(a);if(i.messages){var u=this.messages();u===S&&(u=E()),B(u,i.messages),i.messages=u}else i.messages=this.messages();var d={};(i.keys||Object.keys(this.rules)).forEach(function(e){var o=r.rules[e],n=a[e];o.forEach(function(o){var i=o;"function"==typeof i.transform&&(a===t&&(a=(0,l.default)({},a)),null!=(n=a[e]=i.transform(n))&&(i.type=i.type||(Array.isArray(n)?"array":(0,x.default)(n)))),(i="function"==typeof i?{validator:i}:(0,l.default)({},i)).validator=r.getValidationMethod(i),i.validator&&(i.field=e,i.fullField=i.fullField||e,i.type=r.getType(i),d[e]=d[e]||[],d[e].push({rule:i,value:n,source:a,field:e}))})});var f={};return function(e,t,r,o,n){if(t.first){var a=new Promise(function(t,a){var i;R((i=[],Object.keys(e).forEach(function(t){i.push.apply(i,(0,s.default)(e[t]||[]))}),i),r,function(e){return o(e),e.length?a(new N(e,_(e))):t(n)})});return a.catch(function(e){return e}),a}var i=!0===t.firstFields?Object.keys(e):t.firstFields||[],l=Object.keys(e),c=l.length,u=0,d=[],f=new Promise(function(t,a){var f=function(e){if(d.push.apply(d,e),++u===c)return o(d),d.length?a(new N(d,_(d))):t(n)};l.length||(o(d),t(n)),l.forEach(function(t){var o=e[t];if(-1!==i.indexOf(t))R(o,r,f);else{var n=[],a=0,l=o.length;function c(e){n.push.apply(n,(0,s.default)(e||[])),++a===l&&f(n)}o.forEach(function(e){r(e,c)})}})});return f.catch(function(e){return e}),f}(d,i,function(t,r){var o,n,c,u=t.rule,d=("object"===u.type||"array"===u.type)&&("object"===(0,x.default)(u.fields)||"object"===(0,x.default)(u.defaultField));function p(e,t){return(0,l.default)((0,l.default)({},t),{},{fullField:"".concat(u.fullField,".").concat(e),fullFields:u.fullFields?[].concat((0,s.default)(u.fullFields),[e]):[e]})}function h(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=Array.isArray(o)?o:[o];!i.suppressWarning&&n.length&&e.warning("async-validator:",n),n.length&&void 0!==u.message&&null!==u.message&&(n=[].concat(u.message));var c=n.map(M(u,a));if(i.first&&c.length)return f[u.field]=1,r(c);if(d){if(u.required&&!t.value)return void 0!==u.message?c=[].concat(u.message).map(M(u,a)):i.error&&(c=[i.error(u,F(i.messages.required,u.field))]),r(c);var h={};u.defaultField&&Object.keys(t.value).map(function(e){h[e]=u.defaultField});var m={};Object.keys(h=(0,l.default)((0,l.default)({},h),t.rule.fields)).forEach(function(e){var t=h[e],r=Array.isArray(t)?t:[t];m[e]=r.map(p.bind(null,e))});var g=new e(m);g.messages(i.messages),t.rule.options&&(t.rule.options.messages=i.messages,t.rule.options.error=i.error),g.validate(t.value,t.rule.options||i,function(e){var t=[];c&&c.length&&t.push.apply(t,(0,s.default)(c)),e&&e.length&&t.push.apply(t,(0,s.default)(e)),r(t.length?t:null)})}else r(c)}if(d=d&&(u.required||!u.required&&t.value),u.field=t.field,u.asyncValidator)o=u.asyncValidator(u,t.value,h,t.source,i);else if(u.validator){try{o=u.validator(u,t.value,h,t.source,i)}catch(e){null==(n=(c=console).error)||n.call(c,e),i.suppressValidatorError||setTimeout(function(){throw e},0),h(e.message)}!0===o?h():!1===o?h("function"==typeof u.message?u.message(u.fullField||u.field):u.message||"".concat(u.fullField||u.field," fails")):o instanceof Array?h(o):o instanceof Error&&h(o.message)}o&&o.then&&o.then(function(){return h()},function(e){return h(e)})},function(e){for(var t=[],r={},o=0;o0)){e.next=23;break}return e.next=21,Promise.all(o.map(function(e,r){return en("".concat(t,".").concat(r),e,f,i,c)}));case 21:return v=e.sent,e.abrupt("return",v.reduce(function(e,t){return[].concat((0,s.default)(e),(0,s.default)(t))},[]));case 23:return y=(0,l.default)((0,l.default)({},n),{},{name:t,enum:(n.enum||[]).join(", ")},c),b=g.map(function(e){return"string"==typeof e?function(e,t){return e.replace(/\\?\$\{\w+\}/g,function(e){return e.startsWith("\\")?e.slice(1):t[e.slice(2,-1)]})}(e,y):e}),e.abrupt("return",b);case 26:case"end":return e.stop()}},e,null,[[10,15]])}))).apply(this,arguments)}function ei(){return(ei=(0,i.default)((0,a.default)().mark(function e(t){return(0,a.default)().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(t).then(function(e){var t;return(t=[]).concat.apply(t,(0,s.default)(e))}));case 1:case"end":return e.stop()}},e)}))).apply(this,arguments)}function el(){return(el=(0,i.default)((0,a.default)().mark(function e(t){var r;return(0,a.default)().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=0,e.abrupt("return",new Promise(function(e){t.forEach(function(o){o.then(function(o){o.errors.length&&e([o]),(r+=1)===t.length&&e([])})})}));case 2:case"end":return e.stop()}},e)}))).apply(this,arguments)}var es=e.i(657791);function ec(e){return C(e)}function eu(e,t){var r={};return t.forEach(function(t){var o=(0,es.default)(e,t);r=(0,er.default)(r,t,o)}),r}function ed(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return e&&e.some(function(e){return ef(t,e,r)})}function ef(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return!!e&&!!t&&(!!r||e.length===t.length)&&t.every(function(t,r){return e[r]===t})}function ep(e){var t=arguments.length<=1?void 0:arguments[1];return t&&t.target&&"object"===(0,x.default)(t.target)&&e in t.target?t.target[e]:t}function eh(e,t,r){var o=e.length;if(t<0||t>=o||r<0||r>=o)return e;var n=e[t],a=t-r;return a>0?[].concat((0,s.default)(e.slice(0,r)),[n],(0,s.default)(e.slice(r,t)),(0,s.default)(e.slice(t+1,o))):a<0?[].concat((0,s.default)(e.slice(0,t)),(0,s.default)(e.slice(t+1,r+1)),[n],(0,s.default)(e.slice(r+1,o))):e}var em=es,eg=["name"],ev=[];function ey(e,t,r,o,n,a){return"function"==typeof e?e(t,r,"source"in a?{source:a.source}:{}):o!==n}var eb=function(e){(0,f.default)(o,e);var t=(0,p.default)(o);function o(e){var n;return(0,c.default)(this,o),n=t.call(this,e),(0,h.default)((0,d.default)(n),"state",{resetCount:0}),(0,h.default)((0,d.default)(n),"cancelRegisterFunc",null),(0,h.default)((0,d.default)(n),"mounted",!1),(0,h.default)((0,d.default)(n),"touched",!1),(0,h.default)((0,d.default)(n),"dirty",!1),(0,h.default)((0,d.default)(n),"validatePromise",void 0),(0,h.default)((0,d.default)(n),"prevValidating",void 0),(0,h.default)((0,d.default)(n),"errors",ev),(0,h.default)((0,d.default)(n),"warnings",ev),(0,h.default)((0,d.default)(n),"cancelRegister",function(){var e=n.props,t=e.preserve,r=e.isListField,o=e.name;n.cancelRegisterFunc&&n.cancelRegisterFunc(r,t,ec(o)),n.cancelRegisterFunc=null}),(0,h.default)((0,d.default)(n),"getNamePath",function(){var e=n.props,t=e.name,r=e.fieldContext.prefixName;return void 0!==t?[].concat((0,s.default)(void 0===r?[]:r),(0,s.default)(t)):[]}),(0,h.default)((0,d.default)(n),"getRules",function(){var e=n.props,t=e.rules,r=e.fieldContext;return(void 0===t?[]:t).map(function(e){return"function"==typeof e?e(r):e})}),(0,h.default)((0,d.default)(n),"refresh",function(){n.mounted&&n.setState(function(e){return{resetCount:e.resetCount+1}})}),(0,h.default)((0,d.default)(n),"metaCache",null),(0,h.default)((0,d.default)(n),"triggerMetaEvent",function(e){var t=n.props.onMetaChange;if(t){var r=(0,l.default)((0,l.default)({},n.getMeta()),{},{destroy:e});(0,g.default)(n.metaCache,r)||t(r),n.metaCache=r}else n.metaCache=null}),(0,h.default)((0,d.default)(n),"onStoreChange",function(e,t,r){var o=n.props,a=o.shouldUpdate,i=o.dependencies,l=void 0===i?[]:i,s=o.onReset,c=r.store,u=n.getNamePath(),d=n.getValue(e),f=n.getValue(c),p=t&&ed(t,u);switch("valueUpdate"===r.type&&"external"===r.source&&!(0,g.default)(d,f)&&(n.touched=!0,n.dirty=!0,n.validatePromise=null,n.errors=ev,n.warnings=ev,n.triggerMetaEvent()),r.type){case"reset":if(!t||p){n.touched=!1,n.dirty=!1,n.validatePromise=void 0,n.errors=ev,n.warnings=ev,n.triggerMetaEvent(),null==s||s(),n.refresh();return}break;case"remove":if(a&&ey(a,e,c,d,f,r))return void n.reRender();break;case"setField":var h=r.data;if(p){"touched"in h&&(n.touched=h.touched),"validating"in h&&!("originRCField"in h)&&(n.validatePromise=h.validating?Promise.resolve([]):null),"errors"in h&&(n.errors=h.errors||ev),"warnings"in h&&(n.warnings=h.warnings||ev),n.dirty=!0,n.triggerMetaEvent(),n.reRender();return}if("value"in h&&ed(t,u,!0)||a&&!u.length&&ey(a,e,c,d,f,r))return void n.reRender();break;case"dependenciesUpdate":if(l.map(ec).some(function(e){return ed(r.relatedFields,e)}))return void n.reRender();break;default:if(p||(!l.length||u.length||a)&&ey(a,e,c,d,f,r))return void n.reRender()}!0===a&&n.reRender()}),(0,h.default)((0,d.default)(n),"validateRules",function(e){var t=n.getNamePath(),r=n.getValue(),o=e||{},c=o.triggerName,u=o.validateOnly,d=Promise.resolve().then((0,i.default)((0,a.default)().mark(function o(){var u,f,p,h,m,g,y;return(0,a.default)().wrap(function(o){for(;;)switch(o.prev=o.next){case 0:if(n.mounted){o.next=2;break}return o.abrupt("return",[]);case 2:if(p=void 0!==(f=(u=n.props).validateFirst)&&f,h=u.messageVariables,m=u.validateDebounce,g=n.getRules(),c&&(g=g.filter(function(e){return e}).filter(function(e){var t=e.validateTrigger;return!t||C(t).includes(c)})),!(m&&c)){o.next=10;break}return o.next=8,new Promise(function(e){setTimeout(e,m)});case 8:if(n.validatePromise===d){o.next=10;break}return o.abrupt("return",[]);case 10:return(y=function(e,t,r,o,n,s){var c,u,d=e.join("."),f=r.map(function(e,t){var r=e.validator,o=(0,l.default)((0,l.default)({},e),{},{ruleIndex:t});return r&&(o.validator=function(e,t,o){var n=!1,a=r(e,t,function(){for(var e=arguments.length,t=Array(e),r=0;r0&&void 0!==arguments[0]?arguments[0]:ev;if(n.validatePromise===d){n.validatePromise=null;var t,r=[],o=[];null==(t=e.forEach)||t.call(e,function(e){var t=e.rule.warningOnly,n=e.errors,a=void 0===n?ev:n;t?o.push.apply(o,(0,s.default)(a)):r.push.apply(r,(0,s.default)(a))}),n.errors=r,n.warnings=o,n.triggerMetaEvent(),n.reRender()}}),o.abrupt("return",y);case 13:case"end":return o.stop()}},o)})));return void 0!==u&&u||(n.validatePromise=d,n.dirty=!0,n.errors=ev,n.warnings=ev,n.triggerMetaEvent(),n.reRender()),d}),(0,h.default)((0,d.default)(n),"isFieldValidating",function(){return!!n.validatePromise}),(0,h.default)((0,d.default)(n),"isFieldTouched",function(){return n.touched}),(0,h.default)((0,d.default)(n),"isFieldDirty",function(){return!!n.dirty||void 0!==n.props.initialValue||void 0!==(0,n.props.fieldContext.getInternalHooks(y).getInitialValue)(n.getNamePath())}),(0,h.default)((0,d.default)(n),"getErrors",function(){return n.errors}),(0,h.default)((0,d.default)(n),"getWarnings",function(){return n.warnings}),(0,h.default)((0,d.default)(n),"isListField",function(){return n.props.isListField}),(0,h.default)((0,d.default)(n),"isList",function(){return n.props.isList}),(0,h.default)((0,d.default)(n),"isPreserve",function(){return n.props.preserve}),(0,h.default)((0,d.default)(n),"getMeta",function(){return n.prevValidating=n.isFieldValidating(),{touched:n.isFieldTouched(),validating:n.prevValidating,errors:n.errors,warnings:n.warnings,name:n.getNamePath(),validated:null===n.validatePromise}}),(0,h.default)((0,d.default)(n),"getOnlyChild",function(e){if("function"==typeof e){var t=n.getMeta();return(0,l.default)((0,l.default)({},n.getOnlyChild(e(n.getControlled(),t,n.props.fieldContext))),{},{isFunction:!0})}var o=(0,m.default)(e);return 1===o.length&&r.isValidElement(o[0])?{child:o[0],isFunction:!1}:{child:o,isFunction:!1}}),(0,h.default)((0,d.default)(n),"getValue",function(e){var t=n.props.fieldContext.getFieldsValue,r=n.getNamePath();return(0,em.default)(e||t(!0),r)}),(0,h.default)((0,d.default)(n),"getControlled",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=n.props,r=t.name,o=t.trigger,a=t.validateTrigger,i=t.getValueFromEvent,s=t.normalize,c=t.valuePropName,u=t.getValueProps,d=t.fieldContext,f=void 0!==a?a:d.validateTrigger,p=n.getNamePath(),m=d.getInternalHooks,g=d.getFieldsValue,v=m(y).dispatch,b=n.getValue(),w=u||function(e){return(0,h.default)({},c,e)},$=e[o],x=void 0!==r?w(b):{},E=(0,l.default)((0,l.default)({},e),x);return E[o]=function(){n.touched=!0,n.dirty=!0,n.triggerMetaEvent();for(var e,t=arguments.length,r=Array(t),o=0;o=0&&t<=r.length?(f.keys=[].concat((0,s.default)(f.keys.slice(0,t)),[f.id],(0,s.default)(f.keys.slice(t))),o([].concat((0,s.default)(r.slice(0,t)),[e],(0,s.default)(r.slice(t))))):(f.keys=[].concat((0,s.default)(f.keys),[f.id]),o([].concat((0,s.default)(r),[e]))),f.id+=1},remove:function(e){var t=i(),r=new Set(Array.isArray(e)?e:[e]);r.size<=0||(f.keys=f.keys.filter(function(e,t){return!r.has(t)}),o(t.filter(function(e,t){return!r.has(t)})))},move:function(e,t){if(e!==t){var r=i();e<0||e>=r.length||t<0||t>=r.length||(f.keys=eh(f.keys,e,t),o(eh(r,e,t)))}}},t)})))};e.s(["default",0,e$],197091);var eC=e.i(392221),ex="__@field_split__";function eE(e){return e.map(function(e){return"".concat((0,x.default)(e),":").concat(e)}).join(ex)}var eS=function(){function e(){(0,c.default)(this,e),(0,h.default)(this,"kvs",new Map)}return(0,u.default)(e,[{key:"set",value:function(e,t){this.kvs.set(eE(e),t)}},{key:"get",value:function(e){return this.kvs.get(eE(e))}},{key:"update",value:function(e,t){var r=t(this.get(e));r?this.set(e,r):this.delete(e)}},{key:"delete",value:function(e){this.kvs.delete(eE(e))}},{key:"map",value:function(e){return(0,s.default)(this.kvs.entries()).map(function(t){var r=(0,eC.default)(t,2),o=r[0],n=r[1];return e({key:o.split(ex).map(function(e){var t=e.match(/^([^:]*):(.*)$/),r=(0,eC.default)(t,3),o=r[1],n=r[2];return"number"===o?Number(n):n}),value:n})})}},{key:"toJSON",value:function(){var e={};return this.map(function(t){var r=t.key,o=t.value;return e[r.join(".")]=o,null}),e}}]),e}(),em=es,ek=["name"],ej=(0,u.default)(function e(t){var r=this;(0,c.default)(this,e),(0,h.default)(this,"formHooked",!1),(0,h.default)(this,"forceRootUpdate",void 0),(0,h.default)(this,"subscribable",!0),(0,h.default)(this,"store",{}),(0,h.default)(this,"fieldEntities",[]),(0,h.default)(this,"initialValues",{}),(0,h.default)(this,"callbacks",{}),(0,h.default)(this,"validateMessages",null),(0,h.default)(this,"preserve",null),(0,h.default)(this,"lastValidatePromise",null),(0,h.default)(this,"getForm",function(){return{getFieldValue:r.getFieldValue,getFieldsValue:r.getFieldsValue,getFieldError:r.getFieldError,getFieldWarning:r.getFieldWarning,getFieldsError:r.getFieldsError,isFieldsTouched:r.isFieldsTouched,isFieldTouched:r.isFieldTouched,isFieldValidating:r.isFieldValidating,isFieldsValidating:r.isFieldsValidating,resetFields:r.resetFields,setFields:r.setFields,setFieldValue:r.setFieldValue,setFieldsValue:r.setFieldsValue,validateFields:r.validateFields,submit:r.submit,_init:!0,getInternalHooks:r.getInternalHooks}}),(0,h.default)(this,"getInternalHooks",function(e){return e===y?(r.formHooked=!0,{dispatch:r.dispatch,initEntityValue:r.initEntityValue,registerField:r.registerField,useSubscribe:r.useSubscribe,setInitialValues:r.setInitialValues,destroyForm:r.destroyForm,setCallbacks:r.setCallbacks,setValidateMessages:r.setValidateMessages,getFields:r.getFields,setPreserve:r.setPreserve,getInitialValue:r.getInitialValue,registerWatch:r.registerWatch}):((0,v.default)(!1,"`getInternalHooks` is internal usage. Should not call directly."),null)}),(0,h.default)(this,"useSubscribe",function(e){r.subscribable=e}),(0,h.default)(this,"prevWithoutPreserves",null),(0,h.default)(this,"setInitialValues",function(e,t){if(r.initialValues=e||{},t){var o,n=(0,er.merge)(e,r.store);null==(o=r.prevWithoutPreserves)||o.map(function(t){var r=t.key;n=(0,er.default)(n,r,(0,em.default)(e,r))}),r.prevWithoutPreserves=null,r.updateStore(n)}}),(0,h.default)(this,"destroyForm",function(e){if(e)r.updateStore({});else{var t=new eS;r.getFieldEntities(!0).forEach(function(e){r.isMergedPreserve(e.isPreserve())||t.set(e.getNamePath(),!0)}),r.prevWithoutPreserves=t}}),(0,h.default)(this,"getInitialValue",function(e){var t=(0,em.default)(r.initialValues,e);return e.length?(0,er.merge)(t):t}),(0,h.default)(this,"setCallbacks",function(e){r.callbacks=e}),(0,h.default)(this,"setValidateMessages",function(e){r.validateMessages=e}),(0,h.default)(this,"setPreserve",function(e){r.preserve=e}),(0,h.default)(this,"watchList",[]),(0,h.default)(this,"registerWatch",function(e){return r.watchList.push(e),function(){r.watchList=r.watchList.filter(function(t){return t!==e})}}),(0,h.default)(this,"notifyWatch",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(r.watchList.length){var t=r.getFieldsValue(),o=r.getFieldsValue(!0);r.watchList.forEach(function(r){r(t,o,e)})}}),(0,h.default)(this,"timeoutId",null),(0,h.default)(this,"warningUnhooked",function(){}),(0,h.default)(this,"updateStore",function(e){r.store=e}),(0,h.default)(this,"getFieldEntities",function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return e?r.fieldEntities.filter(function(e){return e.getNamePath().length}):r.fieldEntities}),(0,h.default)(this,"getFieldsMap",function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=new eS;return r.getFieldEntities(e).forEach(function(e){var r=e.getNamePath();t.set(r,e)}),t}),(0,h.default)(this,"getFieldEntitiesForNamePathList",function(e){if(!e)return r.getFieldEntities(!0);var t=r.getFieldsMap(!0);return e.map(function(e){var r=ec(e);return t.get(r)||{INVALIDATE_NAME_PATH:ec(e)}})}),(0,h.default)(this,"getFieldsValue",function(e,t){if(r.warningUnhooked(),!0===e||Array.isArray(e)?(o=e,n=t):e&&"object"===(0,x.default)(e)&&(a=e.strict,n=e.filter),!0===o&&!n)return r.store;var o,n,a,i=r.getFieldEntitiesForNamePathList(Array.isArray(o)?o:null),l=[];return i.forEach(function(e){var t,r,i,s="INVALIDATE_NAME_PATH"in e?e.INVALIDATE_NAME_PATH:e.getNamePath();if(a){if(null!=(i=e.isList)&&i.call(e))return}else if(!o&&null!=(t=(r=e).isListField)&&t.call(r))return;if(n){var c="getMeta"in e?e.getMeta():null;n(c)&&l.push(s)}else l.push(s)}),eu(r.store,l.map(ec))}),(0,h.default)(this,"getFieldValue",function(e){r.warningUnhooked();var t=ec(e);return(0,em.default)(r.store,t)}),(0,h.default)(this,"getFieldsError",function(e){return r.warningUnhooked(),r.getFieldEntitiesForNamePathList(e).map(function(t,r){return!t||"INVALIDATE_NAME_PATH"in t?{name:ec(e[r]),errors:[],warnings:[]}:{name:t.getNamePath(),errors:t.getErrors(),warnings:t.getWarnings()}})}),(0,h.default)(this,"getFieldError",function(e){r.warningUnhooked();var t=ec(e);return r.getFieldsError([t])[0].errors}),(0,h.default)(this,"getFieldWarning",function(e){r.warningUnhooked();var t=ec(e);return r.getFieldsError([t])[0].warnings}),(0,h.default)(this,"isFieldsTouched",function(){r.warningUnhooked();for(var e,t=arguments.length,o=Array(t),n=0;n0&&void 0!==arguments[0]?arguments[0]:{},o=new eS,n=r.getFieldEntities(!0);n.forEach(function(e){var t=e.props.initialValue,r=e.getNamePath();if(void 0!==t){var n=o.get(r)||new Set;n.add({entity:e,value:t}),o.set(r,n)}}),t.entities?e=t.entities:t.namePathList?(e=[],t.namePathList.forEach(function(t){var r,n=o.get(t);n&&(r=e).push.apply(r,(0,s.default)((0,s.default)(n).map(function(e){return e.entity})))})):e=n,e.forEach(function(e){if(void 0!==e.props.initialValue){var n=e.getNamePath();if(void 0!==r.getInitialValue(n))(0,v.default)(!1,"Form already set 'initialValues' with path '".concat(n.join("."),"'. Field can not overwrite it."));else{var a=o.get(n);if(a&&a.size>1)(0,v.default)(!1,"Multiple Field with path '".concat(n.join("."),"' set 'initialValue'. Can not decide which one to pick."));else if(a){var i=r.getFieldValue(n);e.isListField()||t.skipExist&&void 0!==i||r.updateStore((0,er.default)(r.store,n,(0,s.default)(a)[0].value))}}}})}),(0,h.default)(this,"resetFields",function(e){r.warningUnhooked();var t=r.store;if(!e){r.updateStore((0,er.merge)(r.initialValues)),r.resetWithFieldInitialValue(),r.notifyObservers(t,null,{type:"reset"}),r.notifyWatch();return}var o=e.map(ec);o.forEach(function(e){var t=r.getInitialValue(e);r.updateStore((0,er.default)(r.store,e,t))}),r.resetWithFieldInitialValue({namePathList:o}),r.notifyObservers(t,o,{type:"reset"}),r.notifyWatch(o)}),(0,h.default)(this,"setFields",function(e){r.warningUnhooked();var t=r.store,o=[];e.forEach(function(e){var a=e.name,i=(0,n.default)(e,ek),l=ec(a);o.push(l),"value"in i&&r.updateStore((0,er.default)(r.store,l,i.value)),r.notifyObservers(t,[l],{type:"setField",data:e})}),r.notifyWatch(o)}),(0,h.default)(this,"getFields",function(){return r.getFieldEntities(!0).map(function(e){var t=e.getNamePath(),o=e.getMeta(),n=(0,l.default)((0,l.default)({},o),{},{name:t,value:r.getFieldValue(t)});return Object.defineProperty(n,"originRCField",{value:!0}),n})}),(0,h.default)(this,"initEntityValue",function(e){var t=e.props.initialValue;if(void 0!==t){var o=e.getNamePath();void 0===(0,em.default)(r.store,o)&&r.updateStore((0,er.default)(r.store,o,t))}}),(0,h.default)(this,"isMergedPreserve",function(e){var t=void 0!==e?e:r.preserve;return null==t||t}),(0,h.default)(this,"registerField",function(e){r.fieldEntities.push(e);var t=e.getNamePath();if(r.notifyWatch([t]),void 0!==e.props.initialValue){var o=r.store;r.resetWithFieldInitialValue({entities:[e],skipExist:!0}),r.notifyObservers(o,[e.getNamePath()],{type:"valueUpdate",source:"internal"})}return function(o,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(r.fieldEntities=r.fieldEntities.filter(function(t){return t!==e}),!r.isMergedPreserve(n)&&(!o||a.length>1)){var i=o?void 0:r.getInitialValue(t);if(t.length&&r.getFieldValue(t)!==i&&r.fieldEntities.every(function(e){return!ef(e.getNamePath(),t)})){var l=r.store;r.updateStore((0,er.default)(l,t,i,!0)),r.notifyObservers(l,[t],{type:"remove"}),r.triggerDependenciesUpdate(l,t)}}r.notifyWatch([t])}}),(0,h.default)(this,"dispatch",function(e){switch(e.type){case"updateValue":var t=e.namePath,o=e.value;r.updateValue(t,o);break;case"validateField":var n=e.namePath,a=e.triggerName;r.validateFields([n],{triggerName:a})}}),(0,h.default)(this,"notifyObservers",function(e,t,o){if(r.subscribable){var n=(0,l.default)((0,l.default)({},o),{},{store:r.getFieldsValue(!0)});r.getFieldEntities().forEach(function(r){(0,r.onStoreChange)(e,t,n)})}else r.forceRootUpdate()}),(0,h.default)(this,"triggerDependenciesUpdate",function(e,t){var o=r.getDependencyChildrenFields(t);return o.length&&r.validateFields(o),r.notifyObservers(e,o,{type:"dependenciesUpdate",relatedFields:[t].concat((0,s.default)(o))}),o}),(0,h.default)(this,"updateValue",function(e,t){var o=ec(e),n=r.store;r.updateStore((0,er.default)(r.store,o,t)),r.notifyObservers(n,[o],{type:"valueUpdate",source:"internal"}),r.notifyWatch([o]);var a=r.triggerDependenciesUpdate(n,o),i=r.callbacks.onValuesChange;i&&i(eu(r.store,[o]),r.getFieldsValue()),r.triggerOnFieldsChange([o].concat((0,s.default)(a)))}),(0,h.default)(this,"setFieldsValue",function(e){r.warningUnhooked();var t=r.store;if(e){var o=(0,er.merge)(r.store,e);r.updateStore(o)}r.notifyObservers(t,null,{type:"valueUpdate",source:"external"}),r.notifyWatch()}),(0,h.default)(this,"setFieldValue",function(e,t){r.setFields([{name:e,value:t,errors:[],warnings:[]}])}),(0,h.default)(this,"getDependencyChildrenFields",function(e){var t=new Set,o=[],n=new eS;return r.getFieldEntities().forEach(function(e){(e.props.dependencies||[]).forEach(function(t){var r=ec(t);n.update(r,function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Set;return t.add(e),t})})}),!function e(r){(n.get(r)||new Set).forEach(function(r){if(!t.has(r)){t.add(r);var n=r.getNamePath();r.isFieldDirty()&&n.length&&(o.push(n),e(n))}})}(e),o}),(0,h.default)(this,"triggerOnFieldsChange",function(e,t){var o=r.callbacks.onFieldsChange;if(o){var n=r.getFields();if(t){var a=new eS;t.forEach(function(e){var t=e.name,r=e.errors;a.set(t,r)}),n.forEach(function(e){e.errors=a.get(e.name)||e.errors})}var i=n.filter(function(t){return ed(e,t.name)});i.length&&o(i,n)}}),(0,h.default)(this,"validateFields",function(e,t){r.warningUnhooked(),Array.isArray(e)||"string"==typeof e||"string"==typeof t?(i=e,c=t):c=e;var o,n,a,i,c,u=!!i,d=u?i.map(ec):[],f=[],p=String(Date.now()),h=new Set,m=c||{},g=m.recursive,v=m.dirty;r.getFieldEntities(!0).forEach(function(e){if((u||d.push(e.getNamePath()),e.props.rules&&e.props.rules.length)&&(!v||e.isFieldDirty())){var t=e.getNamePath();if(h.add(t.join(p)),!u||ed(d,t,g)){var o=e.validateRules((0,l.default)({validateMessages:(0,l.default)((0,l.default)({},et),r.validateMessages)},c));f.push(o.then(function(){return{name:t,errors:[],warnings:[]}}).catch(function(e){var r,o=[],n=[];return(null==(r=e.forEach)||r.call(e,function(e){var t=e.rule.warningOnly,r=e.errors;t?n.push.apply(n,(0,s.default)(r)):o.push.apply(o,(0,s.default)(r))}),o.length)?Promise.reject({name:t,errors:o,warnings:n}):{name:t,errors:o,warnings:n}}))}}});var y=(o=!1,n=f.length,a=[],f.length?new Promise(function(e,t){f.forEach(function(r,i){r.catch(function(e){return o=!0,e}).then(function(r){n-=1,a[i]=r,n>0||(o&&t(a),e(a))})})}):Promise.resolve([]));r.lastValidatePromise=y,y.catch(function(e){return e}).then(function(e){var t=e.map(function(e){return e.name});r.notifyObservers(r.store,t,{type:"validateFinish"}),r.triggerOnFieldsChange(t,e)});var b=y.then(function(){return r.lastValidatePromise===y?Promise.resolve(r.getFieldsValue(d)):Promise.reject([])}).catch(function(e){var t=e.filter(function(e){return e&&e.errors.length});return Promise.reject({values:r.getFieldsValue(d),errorFields:t,outOfDate:r.lastValidatePromise!==y})});b.catch(function(e){return e});var w=d.filter(function(e){return h.has(e.join(p))});return r.triggerOnFieldsChange(w),b}),(0,h.default)(this,"submit",function(){r.warningUnhooked(),r.validateFields().then(function(e){var t=r.callbacks.onFinish;if(t)try{t(e)}catch(e){console.error(e)}}).catch(function(e){var t=r.callbacks.onFinishFailed;t&&t(e)})}),this.forceRootUpdate=t});let eO=function(e){var t=r.useRef(),o=r.useState({}),n=(0,eC.default)(o,2)[1];return t.current||(e?t.current=e:t.current=new ej(function(){n({})}).getForm()),[t.current]};e.s(["default",0,eO],787894);var eT=r.createContext({triggerFormChange:function(){},triggerFormFinish:function(){},registerForm:function(){},unregisterForm:function(){}}),eI=function(e){var t=e.validateMessages,o=e.onFormChange,n=e.onFormFinish,a=e.children,i=r.useContext(eT),s=r.useRef({});return r.createElement(eT.Provider,{value:(0,l.default)((0,l.default)({},i),{},{validateMessages:(0,l.default)((0,l.default)({},i.validateMessages),t),triggerFormChange:function(e,t){o&&o(e,{changedFields:t,forms:s.current}),i.triggerFormChange(e,t)},triggerFormFinish:function(e,t){n&&n(e,{values:t,forms:s.current}),i.triggerFormFinish(e,t)},registerForm:function(e,t){e&&(s.current=(0,l.default)((0,l.default)({},s.current),{},(0,h.default)({},e,t))),i.registerForm(e,t)},unregisterForm:function(e){var t=(0,l.default)({},s.current);delete t[e],s.current=t,i.unregisterForm(e)}})},a)};e.s(["FormProvider",0,eI,"default",0,eT],696752);var e_=["name","initialValues","fields","form","preserve","children","component","validateMessages","validateTrigger","onValuesChange","onFieldsChange","onFinish","onFinishFailed","clearOnDestroy"],em=es;function eF(e){try{return JSON.stringify(e)}catch(e){return Math.random()}}var eP=function(){};let eR=function(){for(var e=arguments.length,t=Array(e),o=0;o1?t-1:0),o=1;o{"use strict";e.s(["default",0,function(e,t){var r=Object.assign({},e);return Array.isArray(t)&&t.forEach(function(e){delete r[e]}),r}])},62139,e=>{"use strict";var t=e.i(271645);e.i(495347);var r=e.i(696752),o=e.i(529681);let n=t.createContext({labelAlign:"right",layout:"horizontal",itemRef:()=>{}}),a=t.createContext(null),i=t.createContext({prefixCls:""}),l=t.createContext({}),s=t.createContext(void 0);e.s(["FormContext",0,n,"FormItemInputContext",0,l,"FormItemPrefixContext",0,i,"FormProvider",0,e=>{let n=(0,o.default)(e,["prefixCls"]);return t.createElement(r.FormProvider,Object.assign({},n))},"NoFormStyle",0,({children:e,status:r,override:o})=>{let n=t.useContext(l),a=t.useMemo(()=>{let e=Object.assign({},n);return o&&delete e.isFormItemInput,r&&(delete e.status,delete e.hasFeedback,delete e.feedbackIcon),e},[r,o,n]);return t.createElement(l.Provider,{value:a},e)},"NoStyleItemContext",0,a,"VariantContext",0,s])},613541,e=>{"use strict";var t=e.i(242064);let r=()=>({height:0,opacity:0}),o=e=>{let{scrollHeight:t}=e;return{height:t,opacity:1}},n=e=>({height:e?e.offsetHeight:0}),a=(e,t)=>(null==t?void 0:t.deadline)===!0||"height"===t.propertyName;e.s(["default",0,(e=t.defaultPrefixCls)=>({motionName:`${e}-motion-collapse`,onAppearStart:r,onEnterStart:r,onAppearActive:o,onEnterActive:o,onLeaveStart:n,onLeaveActive:r,onAppearEnd:a,onEnterEnd:a,onLeaveEnd:a,motionDeadline:500}),"getTransitionName",0,(e,t,r)=>void 0!==r?r:`${e}-${t}`])},830919,e=>{"use strict";var t=e.i(271645);e.s(["default",0,function(e){let[r,o]=t.useState(e);return t.useEffect(()=>{let t=setTimeout(()=>{o(e)},10*!e.length);return()=>{clearTimeout(t)}},[e]),r}])},447580,e=>{"use strict";e.s(["genCollapseMotion",0,e=>({[e.componentCls]:{[`${e.antCls}-motion-collapse-legacy`]:{overflow:"hidden","&-active":{transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, + opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}},[`${e.antCls}-motion-collapse`]:{overflow:"hidden",transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, + opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}}})],447580)},402366,e=>{"use strict";e.s(["initMotion",0,(e,t,r,o,n=!1)=>{let a=n?"&":"";return{[` + ${a}${e}-enter, + ${a}${e}-appear + `]:Object.assign(Object.assign({},{animationDuration:o,animationFillMode:"both"}),{animationPlayState:"paused"}),[`${a}${e}-leave`]:Object.assign(Object.assign({},{animationDuration:o,animationFillMode:"both"}),{animationPlayState:"paused"}),[` + ${a}${e}-enter${e}-enter-active, + ${a}${e}-appear${e}-appear-active + `]:{animationName:t,animationPlayState:"running"},[`${a}${e}-leave${e}-leave-active`]:{animationName:r,animationPlayState:"running",pointerEvents:"none"}}}])},717356,e=>{"use strict";e.i(296059);var t=e.i(694758),r=e.i(402366);let o=new t.Keyframes("antZoomIn",{"0%":{transform:"scale(0.2)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),n=new t.Keyframes("antZoomOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.2)",opacity:0}}),a=new t.Keyframes("antZoomBigIn",{"0%":{transform:"scale(0.8)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),i=new t.Keyframes("antZoomBigOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.8)",opacity:0}}),l=new t.Keyframes("antZoomUpIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 0%"}}),s=new t.Keyframes("antZoomUpOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 0%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0}}),c={zoom:{inKeyframes:o,outKeyframes:n},"zoom-big":{inKeyframes:a,outKeyframes:i},"zoom-big-fast":{inKeyframes:a,outKeyframes:i},"zoom-left":{inKeyframes:new t.Keyframes("antZoomLeftIn",{"0%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"0% 50%"}}),outKeyframes:new t.Keyframes("antZoomLeftOut",{"0%":{transform:"scale(1)",transformOrigin:"0% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0}})},"zoom-right":{inKeyframes:new t.Keyframes("antZoomRightIn",{"0%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"100% 50%"}}),outKeyframes:new t.Keyframes("antZoomRightOut",{"0%":{transform:"scale(1)",transformOrigin:"100% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0}})},"zoom-up":{inKeyframes:l,outKeyframes:s},"zoom-down":{inKeyframes:new t.Keyframes("antZoomDownIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 100%"}}),outKeyframes:new t.Keyframes("antZoomDownOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 100%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0}})}};e.s(["initZoomMotion",0,(e,t)=>{let{antCls:o}=e,n=`${o}-${t}`,{inKeyframes:a,outKeyframes:i}=c[t];return[(0,r.initMotion)(n,a,i,"zoom-big-fast"===t?e.motionDurationFast:e.motionDurationMid),{[` + ${n}-enter, + ${n}-appear + `]:{transform:"scale(0)",opacity:0,animationTimingFunction:e.motionEaseOutCirc,"&-prepare":{transform:"none"}},[`${n}-leave`]:{animationTimingFunction:e.motionEaseInOutCirc}}]},"zoomIn",0,o])},782074,908709,53058,923624,e=>{"use strict";var t=e.i(8211),r=e.i(271645),o=e.i(343794),n=e.i(361275),a=e.i(629587),i=e.i(613541),l=e.i(321883),s=e.i(62139),c=e.i(830919);e.i(296059);var u=e.i(915654),d=e.i(183293),f=e.i(447580),p=e.i(717356),h=e.i(246422),m=e.i(838378);let g=(e,t)=>{let{formItemCls:r}=e;return{[r]:{[`${r}-label > label`]:{height:t},[`${r}-control-input`]:{minHeight:t}}}},v=e=>({padding:e.verticalLabelPadding,margin:e.verticalLabelMargin,whiteSpace:"initial",textAlign:"start","> label":{margin:0,"&::after":{visibility:"hidden"}}}),y=(e,t)=>(0,m.mergeToken)(e,{formItemCls:`${e.componentCls}-item`,rootPrefixCls:t}),b=(0,h.genStyleHooks)("Form",(e,{rootPrefixCls:t})=>{let r=y(e,t);return[(e=>{let{componentCls:t}=e;return{[e.componentCls]:Object.assign(Object.assign(Object.assign({},(0,d.resetComponent)(e)),{legend:{display:"block",width:"100%",marginBottom:e.marginLG,padding:0,color:e.colorTextDescription,fontSize:e.fontSizeLG,lineHeight:"inherit",border:0,borderBottom:`${(0,u.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},'input[type="search"]':{boxSizing:"border-box"},'input[type="radio"], input[type="checkbox"]':{lineHeight:"normal"},'input[type="file"]':{display:"block"},'input[type="range"]':{display:"block",width:"100%"},"select[multiple], select[size]":{height:"auto"},[`input[type='file']:focus, + input[type='radio']:focus, + input[type='checkbox']:focus`]:{outline:0,boxShadow:`0 0 0 ${(0,u.unit)(e.controlOutlineWidth)} ${e.controlOutline}`},output:{display:"block",paddingTop:15,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight}}),{[`${t}-text`]:{display:"inline-block",paddingInlineEnd:e.paddingSM},"&-small":Object.assign({},g(e,e.controlHeightSM)),"&-large":Object.assign({},g(e,e.controlHeightLG))})}})(r),(e=>{let{formItemCls:t,iconCls:r,rootPrefixCls:o,antCls:n,labelRequiredMarkColor:a,labelColor:i,labelFontSize:l,labelHeight:s,labelColonMarginInlineStart:c,labelColonMarginInlineEnd:u,itemMarginBottom:f}=e;return{[t]:Object.assign(Object.assign({},(0,d.resetComponent)(e)),{marginBottom:f,verticalAlign:"top","&-with-help":{transition:"none"},[`&-hidden, + &-hidden${n}-row`]:{display:"none"},"&-has-warning":{[`${t}-split`]:{color:e.colorError}},"&-has-error":{[`${t}-split`]:{color:e.colorWarning}},[`${t}-label`]:{flexGrow:0,overflow:"hidden",whiteSpace:"nowrap",textAlign:"end",verticalAlign:"middle","&-left":{textAlign:"start"},"&-wrap":{overflow:"unset",lineHeight:e.lineHeight,whiteSpace:"unset","> label":{verticalAlign:"middle",textWrap:"balance"}},"> label":{position:"relative",display:"inline-flex",alignItems:"center",maxWidth:"100%",height:s,color:i,fontSize:l,[`> ${r}`]:{fontSize:e.fontSize,verticalAlign:"top"},[`&${t}-required`]:{"&::before":{display:"inline-block",marginInlineEnd:e.marginXXS,color:a,fontSize:e.fontSize,fontFamily:"SimSun, sans-serif",lineHeight:1,content:'"*"'},[`&${t}-required-mark-hidden, &${t}-required-mark-optional`]:{"&::before":{display:"none"}}},[`${t}-optional`]:{display:"inline-block",marginInlineStart:e.marginXXS,color:e.colorTextDescription,[`&${t}-required-mark-hidden`]:{display:"none"}},[`${t}-tooltip`]:{color:e.colorTextDescription,cursor:"help",writingMode:"horizontal-tb",marginInlineStart:e.marginXXS},"&::after":{content:'":"',position:"relative",marginBlock:0,marginInlineStart:c,marginInlineEnd:u},[`&${t}-no-colon::after`]:{content:'"\\a0"'}}},[`${t}-control`]:{"--ant-display":"flex",flexDirection:"column",flexGrow:1,[`&:first-child:not([class^="'${o}-col-'"]):not([class*="' ${o}-col-'"])`]:{width:"100%"},"&-input":{position:"relative",display:"flex",alignItems:"center",minHeight:e.controlHeight,"&-content":{flex:"auto",maxWidth:"100%",[`&:has(> ${n}-switch:only-child, > ${n}-rate:only-child)`]:{display:"flex",alignItems:"center"}}}},[t]:{"&-additional":{display:"flex",flexDirection:"column"},"&-explain, &-extra":{clear:"both",color:e.colorTextDescription,fontSize:e.fontSize,lineHeight:e.lineHeight},"&-explain-connected":{width:"100%"},"&-extra":{minHeight:e.controlHeightSM,transition:`color ${e.motionDurationMid} ${e.motionEaseOut}`},"&-explain":{"&-error":{color:e.colorError},"&-warning":{color:e.colorWarning}}},[`&-with-help ${t}-explain`]:{height:"auto",opacity:1},[`${t}-feedback-icon`]:{fontSize:e.fontSize,textAlign:"center",visibility:"visible",animationName:p.zoomIn,animationDuration:e.motionDurationMid,animationTimingFunction:e.motionEaseOutBack,pointerEvents:"none","&-success":{color:e.colorSuccess},"&-error":{color:e.colorError},"&-warning":{color:e.colorWarning},"&-validating":{color:e.colorPrimary}}})}})(r),(e=>{let{componentCls:t}=e,r=`${t}-show-help`,o=`${t}-show-help-item`;return{[r]:{transition:`opacity ${e.motionDurationFast} ${e.motionEaseInOut}`,"&-appear, &-enter":{opacity:0,"&-active":{opacity:1}},"&-leave":{opacity:1,"&-active":{opacity:0}},[o]:{overflow:"hidden",transition:`height ${e.motionDurationFast} ${e.motionEaseInOut}, + opacity ${e.motionDurationFast} ${e.motionEaseInOut}, + transform ${e.motionDurationFast} ${e.motionEaseInOut} !important`,[`&${o}-appear, &${o}-enter`]:{transform:"translateY(-5px)",opacity:0,"&-active":{transform:"translateY(0)",opacity:1}},[`&${o}-leave-active`]:{transform:"translateY(-5px)"}}}}})(r),(e=>{let{antCls:t,formItemCls:r}=e;return{[`${r}-horizontal`]:{[`${r}-label`]:{flexGrow:0},[`${r}-control`]:{flex:"1 1 0",minWidth:0},[`${r}-label[class$='-24'], ${r}-label[class*='-24 ']`]:{[`& + ${r}-control`]:{minWidth:"unset"}},[`${t}-col-24${r}-label, + ${t}-col-xl-24${r}-label`]:v(e)}}})(r),(e=>{let{componentCls:t,formItemCls:r,inlineItemMarginBottom:o}=e;return{[`${t}-inline`]:{display:"flex",flexWrap:"wrap",[`${r}-inline`]:{flex:"none",marginInlineEnd:e.margin,marginBottom:o,"&-row":{flexWrap:"nowrap"},[`> ${r}-label, + > ${r}-control`]:{display:"inline-block",verticalAlign:"top"},[`> ${r}-label`]:{flex:"none"},[`${t}-text`]:{display:"inline-block"},[`${r}-has-feedback`]:{display:"inline-block"}}}}})(r),(e=>{let{componentCls:t,formItemCls:r,antCls:o}=e;return{[`${r}-vertical`]:{[`${r}-row`]:{flexDirection:"column"},[`${r}-label > label`]:{height:"auto"},[`${r}-control`]:{width:"100%"},[`${r}-label, + ${o}-col-24${r}-label, + ${o}-col-xl-24${r}-label`]:v(e)},[`@media (max-width: ${(0,u.unit)(e.screenXSMax)})`]:[(e=>{let{componentCls:t,formItemCls:r,rootPrefixCls:o}=e;return{[`${r} ${r}-label`]:v(e),[`${t}:not(${t}-inline)`]:{[r]:{flexWrap:"wrap",[`${r}-label, ${r}-control`]:{[`&:not([class*=" ${o}-col-xs"])`]:{flex:"0 0 100%",maxWidth:"100%"}}}}}})(e),{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${o}-col-xs-24${r}-label`]:v(e)}}}],[`@media (max-width: ${(0,u.unit)(e.screenSMMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${o}-col-sm-24${r}-label`]:v(e)}}},[`@media (max-width: ${(0,u.unit)(e.screenMDMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${o}-col-md-24${r}-label`]:v(e)}}},[`@media (max-width: ${(0,u.unit)(e.screenLGMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${o}-col-lg-24${r}-label`]:v(e)}}}}})(r),(0,f.genCollapseMotion)(r),p.zoomIn]},e=>({labelRequiredMarkColor:e.colorError,labelColor:e.colorTextHeading,labelFontSize:e.fontSize,labelHeight:e.controlHeight,labelColonMarginInlineStart:e.marginXXS/2,labelColonMarginInlineEnd:e.marginXS,itemMarginBottom:e.marginLG,verticalLabelPadding:`0 0 ${e.paddingXS}px`,verticalLabelMargin:0,inlineItemMarginBottom:0}),{order:-1e3});e.s(["default",0,b,"prepareToken",0,y],908709);let w=[];function $(e,t,r,o=0){return{key:"string"==typeof e?e:`${t}-${o}`,error:e,errorStatus:r}}e.s(["default",0,({help:e,helpStatus:u,errors:d=w,warnings:f=w,className:p,fieldId:h,onVisibleChanged:m})=>{let{prefixCls:g}=r.useContext(s.FormItemPrefixContext),v=`${g}-item-explain`,y=(0,l.default)(g),[C,x,E]=b(g,y),S=r.useMemo(()=>(0,i.default)(g),[g]),k=(0,c.default)(d),j=(0,c.default)(f),O=r.useMemo(()=>null!=e?[$(e,"help",u)]:[].concat((0,t.default)(k.map((e,t)=>$(e,"error","error",t))),(0,t.default)(j.map((e,t)=>$(e,"warning","warning",t)))),[e,u,k,j]),T=r.useMemo(()=>{let e={};return O.forEach(({key:t})=>{e[t]=(e[t]||0)+1}),O.map((t,r)=>Object.assign(Object.assign({},t),{key:e[t.key]>1?`${t.key}-fallback-${r}`:t.key}))},[O]),I={};return h&&(I.id=`${h}_help`),C(r.createElement(n.default,{motionDeadline:S.motionDeadline,motionName:`${g}-show-help`,visible:!!T.length,onVisibleChanged:m},e=>{let{className:t,style:n}=e;return r.createElement("div",Object.assign({},I,{className:(0,o.default)(v,t,E,y,p,x),style:n}),r.createElement(a.CSSMotionList,Object.assign({keys:T},(0,i.default)(g),{motionName:`${g}-show-help-item`,component:!1}),e=>{let{key:t,error:n,errorStatus:a,className:i,style:l}=e;return r.createElement("div",{key:t,className:(0,o.default)(i,{[`${v}-${a}`]:a}),style:l},n)}))}))}],782074);var C=e.i(197091);e.s(["List",()=>C.default],53058);var x=e.i(621796);e.s(["useWatch",()=>x.default],923624)},517455,e=>{"use strict";var t=e.i(271645),r=e.i(666365);e.s(["default",0,e=>{let o=t.default.useContext(r.default);return t.default.useMemo(()=>e?"string"==typeof e?null!=e?e:o:"function"==typeof e?e(o):o:o,[e,o])}])},286039,531880,e=>{"use strict";var t=e.i(271645);e.i(495347);var r=e.i(787894),r=r,o=e.i(279697);let n=e=>"object"==typeof e&&null!=e&&1===e.nodeType,a=(e,t)=>(!t||"hidden"!==e)&&"visible"!==e&&"clip"!==e,i=(e,t)=>{if(e.clientHeight{if(!e.ownerDocument||!e.ownerDocument.defaultView)return null;try{return e.ownerDocument.defaultView.frameElement}catch(e){return null}})(e))&&(r.clientHeightat||a>e&&i=t&&l>=r?a-e-o:i>t&&lr?i-t+n:0,s=e=>{let t=e.parentElement;return null==t?e.getRootNode().host||null:t},c=(e,t)=>{var r,o,a,c;let u;if("u"e!==h;if(!n(e))throw TypeError("Invalid target");let v=document.scrollingElement||document.documentElement,y=[],b=e;for(;n(b)&&g(b);){if((b=s(b))===v){y.push(b);break}null!=b&&b===document.body&&i(b)&&!i(document.documentElement)||null!=b&&i(b,m)&&y.push(b)}let w=null!=(o=null==(r=window.visualViewport)?void 0:r.width)?o:innerWidth,$=null!=(c=null==(a=window.visualViewport)?void 0:a.height)?c:innerHeight,{scrollX:C,scrollY:x}=window,{height:E,width:S,top:k,right:j,bottom:O,left:T}=e.getBoundingClientRect(),{top:I,right:_,bottom:F,left:P}={top:parseFloat((u=window.getComputedStyle(e)).scrollMarginTop)||0,right:parseFloat(u.scrollMarginRight)||0,bottom:parseFloat(u.scrollMarginBottom)||0,left:parseFloat(u.scrollMarginLeft)||0},R="start"===f||"nearest"===f?k-I:"end"===f?O+F:k+E/2-I+F,N="center"===p?T+S/2-P+_:"end"===p?j+_:T-P,M=[];for(let e=0;e=0&&T>=0&&O<=$&&j<=w&&(t===v&&!i(t)||k>=n&&O<=s&&T>=c&&j<=a))break;let u=getComputedStyle(t),h=parseInt(u.borderLeftWidth,10),m=parseInt(u.borderTopWidth,10),g=parseInt(u.borderRightWidth,10),b=parseInt(u.borderBottomWidth,10),I=0,_=0,F="offsetWidth"in t?t.offsetWidth-t.clientWidth-h-g:0,P="offsetHeight"in t?t.offsetHeight-t.clientHeight-m-b:0,B="offsetWidth"in t?0===t.offsetWidth?0:o/t.offsetWidth:0,A="offsetHeight"in t?0===t.offsetHeight?0:r/t.offsetHeight:0;if(v===t)I="start"===f?R:"end"===f?R-$:"nearest"===f?l(x,x+$,$,m,b,x+R,x+R+E,E):R-$/2,_="start"===p?N:"center"===p?N-w/2:"end"===p?N-w:l(C,C+w,w,h,g,C+N,C+N+S,S),I=Math.max(0,I+x),_=Math.max(0,_+C);else{I="start"===f?R-n-m:"end"===f?R-s+b+P:"nearest"===f?l(n,s,r,m,b+P,R,R+E,E):R-(n+r/2)+P/2,_="start"===p?N-c-h:"center"===p?N-(c+o/2)+F/2:"end"===p?N-a+g+F:l(c,a,o,h,g+F,N,N+S,S);let{scrollLeft:e,scrollTop:i}=t;I=0===A?0:Math.max(0,Math.min(i+I/A,t.scrollHeight-r/A+P)),_=0===B?0:Math.max(0,Math.min(e+_/B,t.scrollWidth-o/B+F)),R+=i-I,N+=e-_}M.push({el:t,top:I,left:_})}return M},u=["parentNode"];function d(e){return void 0===e||!1===e?[]:Array.isArray(e)?e:[e]}function f(e,t){if(!e.length)return;let r=e.join("_");return t?`${t}_${r}`:u.includes(r)?`form_item_${r}`:r}e.s(["getFieldId",0,f,"getStatus",0,function(e,t,r,o,n,a){let i=o;return void 0!==a?i=a:r.validating?i="validating":e.length?i="error":t.length?i="warning":(r.touched||n&&r.validated)&&(i="success"),i},"toArray",0,d],531880);var p=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};function h(e){return d(e).join("_")}function m(e,t){let r=t.getFieldInstance(e),n=(0,o.getDOM)(r);if(n)return n;let a=f(d(e),t.__INTERNAL__.name);if(a)return document.getElementById(a)}e.s(["default",0,function(e){let[o]=(0,r.default)(),n=t.useRef({}),a=t.useMemo(()=>null!=e?e:Object.assign(Object.assign({},o),{__INTERNAL__:{itemRef:e=>t=>{let r=h(e);t?n.current[r]=t:delete n.current[r]}},scrollToField:(e,t={})=>{let{focus:r}=t,o=p(t,["focus"]),n=m(e,a);n&&(!function(e,t){let r;if(!e.isConnected||!(e=>{let t=e;for(;t&&t.parentNode;){if(t.parentNode===document)return!0;t=t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentNode}return!1})(e))return;let o={top:parseFloat((r=window.getComputedStyle(e)).scrollMarginTop)||0,right:parseFloat(r.scrollMarginRight)||0,bottom:parseFloat(r.scrollMarginBottom)||0,left:parseFloat(r.scrollMarginLeft)||0};if("object"==typeof t&&"function"==typeof t.behavior)return t.behavior(c(e,t));let n="boolean"==typeof t||null==t?void 0:t.behavior;for(let{el:r,top:a,left:i}of c(e,!1===t?{block:"end",inline:"nearest"}:t===Object(t)&&0!==Object.keys(t).length?t:{block:"start",inline:"nearest"})){let e=a-o.top+o.bottom,t=i-o.left+o.right;r.scroll({top:e,left:t,behavior:n})}}(n,Object.assign({scrollMode:"if-needed",block:"nearest"},o)),r&&a.focusField(e))},focusField:e=>{var t,r;let o=a.getFieldInstance(e);"function"==typeof(null==o?void 0:o.focus)?o.focus():null==(r=null==(t=m(e,a))?void 0:t.focus)||r.call(t)},getFieldInstance:e=>{let t=h(e);return n.current[t]}}),[e,o]);return[a]},"toNamePathStr",0,h],286039)},56117,411412,420422,355268,220489,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(495347);e.i(53058),e.i(923624);var n=e.i(242064),a=e.i(937328),i=e.i(321883),l=e.i(517455),s=e.i(666365),c=e.i(62139),u=e.i(286039),d=e.i(908709),f=e.i(819828),p=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let h=t.forwardRef((e,h)=>{let m=t.useContext(a.default),{getPrefixCls:g,direction:v,requiredMark:y,colon:b,scrollToFirstError:w,className:$,style:C}=(0,n.useComponentConfig)("form"),{prefixCls:x,className:E,rootClassName:S,size:k,disabled:j=m,form:O,colon:T,labelAlign:I,labelWrap:_,labelCol:F,wrapperCol:P,hideRequiredMark:R,layout:N="horizontal",scrollToFirstError:M,requiredMark:B,onFinishFailed:A,name:z,style:L,feedbackIcons:D,variant:H}=e,V=p(e,["prefixCls","className","rootClassName","size","disabled","form","colon","labelAlign","labelWrap","labelCol","wrapperCol","hideRequiredMark","layout","scrollToFirstError","requiredMark","onFinishFailed","name","style","feedbackIcons","variant"]),W=(0,l.default)(k),U=t.useContext(f.default),G=t.useMemo(()=>void 0!==B?B:!R&&(void 0===y||y),[R,B,y]),q=null!=T?T:b,J=g("form",x),K=(0,i.default)(J),[X,Q,Y]=(0,d.default)(J,K),Z=(0,r.default)(J,`${J}-${N}`,{[`${J}-hide-required-mark`]:!1===G,[`${J}-rtl`]:"rtl"===v,[`${J}-${W}`]:W},Y,K,Q,$,E,S),[ee]=(0,u.default)(O),{__INTERNAL__:et}=ee;et.name=z;let er=t.useMemo(()=>({name:z,labelAlign:I,labelCol:F,labelWrap:_,wrapperCol:P,layout:N,colon:q,requiredMark:G,itemRef:et.itemRef,form:ee,feedbackIcons:D}),[z,I,F,P,N,q,G,ee,D]),eo=t.useRef(null);t.useImperativeHandle(h,()=>{var e;return Object.assign(Object.assign({},ee),{nativeElement:null==(e=eo.current)?void 0:e.nativeElement})});let en=(e,t)=>{if(e){let r={block:"nearest"};"object"==typeof e&&(r=Object.assign(Object.assign({},r),e)),ee.scrollToField(t,r)}};return X(t.createElement(c.VariantContext.Provider,{value:H},t.createElement(a.DisabledContextProvider,{disabled:j},t.createElement(s.default.Provider,{value:W},t.createElement(c.FormProvider,{validateMessages:U},t.createElement(c.FormContext.Provider,{value:er},t.createElement(c.NoFormStyle,{status:!0},t.createElement(o.default,Object.assign({id:z},V,{name:z,onFinishFailed:e=>{if(null==A||A(e),e.errorFields.length){let t=e.errorFields[0].name;if(void 0!==M)return void en(M,t);void 0!==w&&en(w,t)}},form:ee,ref:eo,style:Object.assign(Object.assign({},C),L),className:Z})))))))))});e.s(["default",0,h],56117),e.s(["useForm",()=>u.default],411412);var m=e.i(162129);e.s(["Field",()=>m.default],420422);var g=e.i(177886);e.s(["FieldContext",()=>g.default],355268);var v=e.i(786944);e.s(["ListContext",()=>v.default],220489)},763731,e=>{"use strict";var t=e.i(271645);let r=(e,r,o)=>t.default.isValidElement(e)?t.default.cloneElement(e,"function"==typeof o?o(e.props||{}):o):r;e.s(["cloneElement",0,function(e,t){return r(e,e,t)},"isFragment",0,function(e){return e&&t.default.isValidElement(e)&&e.type===t.default.Fragment},"replaceElement",0,r])},522228,893872,857034,606836,e=>{"use strict";var t=e.i(876556);e.s(["default",0,function(e){if("function"==typeof e)return e;let r=(0,t.default)(e);return r.length<=1?r[0]:r}],522228),e.i(247167);var r=e.i(271645),o=e.i(62139);let n=()=>{let{status:e,errors:t=[],warnings:n=[]}=r.useContext(o.FormItemInputContext);return{status:e,errors:t,warnings:n}};n.Context=o.FormItemInputContext,e.s(["default",0,n],893872);var a=e.i(963188);e.s(["default",0,function(e){let[t,o]=r.useState(e),n=r.useRef(null),i=r.useRef([]),l=r.useRef(!1);return r.useEffect(()=>(l.current=!1,()=>{l.current=!0,a.default.cancel(n.current),n.current=null}),[]),[t,function(e){l.current||(null===n.current&&(i.current=[],n.current=(0,a.default)(()=>{n.current=null,o(e=>{let t=e;return i.current.forEach(e=>{t=e(t)}),t})})),i.current.push(e))}]}],857034);var i=e.i(611935);e.s(["default",0,function(){let{itemRef:e}=r.useContext(o.FormContext),t=r.useRef({});return function(r,o){let n=o&&"object"==typeof o&&(0,i.getNodeRef)(o),a=r.join("_");return(t.current.name!==a||t.current.originRef!==n)&&(t.current.name=a,t.current.originRef=n,t.current.ref=(0,i.composeRef)(e(r),n)),t.current.ref}}],606836)},606262,e=>{"use strict";e.s(["default",0,function(e){if(!e)return!1;if(e instanceof Element){if(e.offsetParent)return!0;if(e.getBBox){var t=e.getBBox(),r=t.width,o=t.height;if(r||o)return!0}if(e.getBoundingClientRect){var n=e.getBoundingClientRect(),a=n.width,i=n.height;if(a||i)return!0}}return!1}])},958503,e=>{"use strict";e.s(["addMediaQueryListener",0,(e,t)=>{void 0!==(null==e?void 0:e.addEventListener)?e.addEventListener("change",t):void 0!==(null==e?void 0:e.addListener)&&e.addListener(t)},"removeMediaQueryListener",0,(e,t)=>{void 0!==(null==e?void 0:e.removeEventListener)?e.removeEventListener("change",t):void 0!==(null==e?void 0:e.removeListener)&&e.removeListener(t)}])},908206,e=>{"use strict";var t=e.i(271645),r=e.i(104458),o=e.i(958503);let n=["xxl","xl","lg","md","sm","xs"];e.s(["default",0,()=>{let e,[,a]=(0,r.useToken)(),i=((e=[].concat(n).reverse()).forEach((t,r)=>{let o=t.toUpperCase(),n=`screen${o}Min`,i=`screen${o}`;if(!(a[n]<=a[i]))throw Error(`${n}<=${i} fails : !(${a[n]}<=${a[i]})`);if(r{let e=new Map,t=-1,r={};return{responsiveMap:i,matchHandlers:{},dispatch:t=>(r=t,e.forEach(e=>e(r)),e.size>=1),subscribe(o){return e.size||this.register(),t+=1,e.set(t,o),o(r),t},unsubscribe(t){e.delete(t),e.size||this.unregister()},register(){Object.entries(i).forEach(([e,t])=>{let n=({matches:t})=>{this.dispatch(Object.assign(Object.assign({},r),{[e]:t}))},a=window.matchMedia(t);(0,o.addMediaQueryListener)(a,n),this.matchHandlers[t]={mql:a,listener:n},n(a)})},unregister(){Object.values(i).forEach(e=>{let t=this.matchHandlers[e];(0,o.removeMediaQueryListener)(null==t?void 0:t.mql,null==t?void 0:t.listener)}),e.clear()}}},[i])},"matchScreen",0,(e,t)=>{if(t){for(let r of n)if(e[r]&&(null==t?void 0:t[r])!==void 0)return t[r]}},"responsiveArray",0,n])},149809,e=>{"use strict";var t=e.i(271645);e.s(["useForceUpdate",0,()=>t.default.useReducer(e=>e+1,0)])},150073,e=>{"use strict";var t=e.i(271645),r=e.i(174428),o=e.i(149809),n=e.i(908206);e.s(["default",0,function(e=!0,a={}){let i=(0,t.useRef)(a),[,l]=(0,o.useForceUpdate)(),s=(0,n.default)();return(0,r.default)(()=>{let t=s.subscribe(t=>{i.current=t,e&&l()});return()=>s.unsubscribe(t)},[]),i.current}])},39874,559442,e=>{"use strict";var t=e.i(908206);e.s(["default",0,function(e,r){let o=[void 0,void 0],n=Array.isArray(e)?e:[e,void 0],a=r||{xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0};return n.forEach((e,r)=>{if("object"==typeof e&&null!==e)for(let n=0;n{"use strict";e.i(296059);var t=e.i(915654),r=e.i(246422),o=e.i(838378);let n=(e,t)=>((e,t)=>{let{prefixCls:r,componentCls:o,gridColumns:n}=e,a={};for(let e=n;e>=0;e--)0===e?(a[`${o}${t}-${e}`]={display:"none"},a[`${o}-push-${e}`]={insetInlineStart:"auto"},a[`${o}-pull-${e}`]={insetInlineEnd:"auto"},a[`${o}${t}-push-${e}`]={insetInlineStart:"auto"},a[`${o}${t}-pull-${e}`]={insetInlineEnd:"auto"},a[`${o}${t}-offset-${e}`]={marginInlineStart:0},a[`${o}${t}-order-${e}`]={order:0}):(a[`${o}${t}-${e}`]=[{"--ant-display":"block",display:"block"},{display:"var(--ant-display)",flex:`0 0 ${e/n*100}%`,maxWidth:`${e/n*100}%`}],a[`${o}${t}-push-${e}`]={insetInlineStart:`${e/n*100}%`},a[`${o}${t}-pull-${e}`]={insetInlineEnd:`${e/n*100}%`},a[`${o}${t}-offset-${e}`]={marginInlineStart:`${e/n*100}%`},a[`${o}${t}-order-${e}`]={order:e});return a[`${o}${t}-flex`]={flex:`var(--${r}${t}-flex)`},a})(e,t),a=(0,r.genStyleHooks)("Grid",e=>{let{componentCls:t}=e;return{[t]:{display:"flex",flexFlow:"row wrap",minWidth:0,"&::before, &::after":{display:"flex"},"&-no-wrap":{flexWrap:"nowrap"},"&-start":{justifyContent:"flex-start"},"&-center":{justifyContent:"center"},"&-end":{justifyContent:"flex-end"},"&-space-between":{justifyContent:"space-between"},"&-space-around":{justifyContent:"space-around"},"&-space-evenly":{justifyContent:"space-evenly"},"&-top":{alignItems:"flex-start"},"&-middle":{alignItems:"center"},"&-bottom":{alignItems:"flex-end"}}}},()=>({})),i=e=>({xs:e.screenXSMin,sm:e.screenSMMin,md:e.screenMDMin,lg:e.screenLGMin,xl:e.screenXLMin,xxl:e.screenXXLMin}),l=(0,r.genStyleHooks)("Grid",e=>{let r=(0,o.mergeToken)(e,{gridColumns:24}),a=i(r);return delete a.xs,[(e=>{let{componentCls:t}=e;return{[t]:{position:"relative",maxWidth:"100%",minHeight:1}}})(r),n(r,""),n(r,"-xs"),Object.keys(a).map(e=>{let o,i;return o=a[e],i=`-${e}`,{[`@media (min-width: ${(0,t.unit)(o)})`]:Object.assign({},n(r,i))}}).reduce((e,t)=>Object.assign(Object.assign({},e),t),{})]},()=>({}));e.s(["getMediaSize",0,i,"useColStyle",0,l,"useRowStyle",0,a])},264042,131757,292169,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(908206),n=e.i(242064),a=e.i(150073),i=e.i(39874),l=e.i(559442),s=e.i(756570),c=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};function u(e,r){let[n,a]=t.useState("string"==typeof e?e:"");return t.useEffect(()=>{(()=>{if("string"==typeof e&&a(e),"object"==typeof e)for(let t=0;t{let{prefixCls:d,justify:f,align:p,className:h,style:m,children:g,gutter:v=0,wrap:y}=e,b=c(e,["prefixCls","justify","align","className","style","children","gutter","wrap"]),{getPrefixCls:w,direction:$}=t.useContext(n.ConfigContext),C=(0,a.default)(!0,null),x=u(p,C),E=u(f,C),S=w("row",d),[k,j,O]=(0,s.useRowStyle)(S),T=(0,i.default)(v,C),I=(0,r.default)(S,{[`${S}-no-wrap`]:!1===y,[`${S}-${E}`]:E,[`${S}-${x}`]:x,[`${S}-rtl`]:"rtl"===$},h,j,O),_={};if(null==T?void 0:T[0]){let e="number"==typeof T[0]?`${-(T[0]/2)}px`:`calc(${T[0]} / -2)`;_.marginLeft=e,_.marginRight=e}let[F,P]=T;_.rowGap=P;let R=t.useMemo(()=>({gutter:[F,P],wrap:y}),[F,P,y]);return k(t.createElement(l.default.Provider,{value:R},t.createElement("div",Object.assign({},b,{className:I,style:Object.assign(Object.assign({},_),m),ref:o}),g)))});e.s(["Row",0,d],264042),e.i(62664);var f=e.i(657791),f=f,p=e.i(349057),p=p,h=e.i(174428),m=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};function g(e){return"auto"===e?"1 1 auto":"number"==typeof e?`${e} ${e} auto`:/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?`0 0 ${e}`:e}let v=["xs","sm","md","lg","xl","xxl"],y=t.forwardRef((e,o)=>{let{getPrefixCls:a,direction:i}=t.useContext(n.ConfigContext),{gutter:c,wrap:u}=t.useContext(l.default),{prefixCls:d,span:f,order:p,offset:h,push:y,pull:b,className:w,children:$,flex:C,style:x}=e,E=m(e,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),S=a("col",d),[k,j,O]=(0,s.useColStyle)(S),T={},I={};v.forEach(t=>{let r={},o=e[t];"number"==typeof o?r.span=o:"object"==typeof o&&(r=o||{}),delete E[t],I=Object.assign(Object.assign({},I),{[`${S}-${t}-${r.span}`]:void 0!==r.span,[`${S}-${t}-order-${r.order}`]:r.order||0===r.order,[`${S}-${t}-offset-${r.offset}`]:r.offset||0===r.offset,[`${S}-${t}-push-${r.push}`]:r.push||0===r.push,[`${S}-${t}-pull-${r.pull}`]:r.pull||0===r.pull,[`${S}-rtl`]:"rtl"===i}),r.flex&&(I[`${S}-${t}-flex`]=!0,T[`--${S}-${t}-flex`]=g(r.flex))});let _=(0,r.default)(S,{[`${S}-${f}`]:void 0!==f,[`${S}-order-${p}`]:p,[`${S}-offset-${h}`]:h,[`${S}-push-${y}`]:y,[`${S}-pull-${b}`]:b},w,I,j,O),F={};if(null==c?void 0:c[0]){let e="number"==typeof c[0]?`${c[0]/2}px`:`calc(${c[0]} / 2)`;F.paddingLeft=e,F.paddingRight=e}return C&&(F.flex=g(C),!1!==u||F.minWidth||(F.minWidth=0)),k(t.createElement("div",Object.assign({},E,{style:Object.assign(Object.assign(Object.assign({},F),x),T),className:_,ref:o}),$))});e.s(["default",0,y],131757);var b=e.i(62139),w=e.i(782074),$=e.i(908709);let C=(0,e.i(246422).genSubStyleComponent)(["Form","item-item"],(e,{rootPrefixCls:t})=>(e=>{let{formItemCls:t}=e;return{"@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none)":{[`${t}-control`]:{display:"flex"}}}})((0,$.prepareToken)(e,t)));var x=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};e.s(["default",0,e=>{let{prefixCls:o,status:n,labelCol:a,wrapperCol:i,children:l,errors:s,warnings:c,_internalItemRender:u,extra:d,help:m,fieldId:g,marginBottom:v,onErrorVisibleChanged:$,label:E}=e,S=`${o}-item`,k=t.useContext(b.FormContext),j=t.useMemo(()=>{let e=Object.assign({},i||k.wrapperCol||{});return null!==E||a||i||!k.labelCol||[void 0,"xs","sm","md","lg","xl","xxl"].forEach(t=>{let r=t?[t]:[],o=(0,f.default)(k.labelCol,r),n="object"==typeof o?o:{},a=(0,f.default)(e,r);"span"in n&&!("offset"in("object"==typeof a?a:{}))&&n.span<24&&(e=(0,p.default)(e,[].concat(r,["offset"]),n.span))}),e},[i,k.wrapperCol,k.labelCol,E,a]),O=(0,r.default)(`${S}-control`,j.className),T=t.useMemo(()=>{let{labelCol:e,wrapperCol:t}=k;return x(k,["labelCol","wrapperCol"])},[k]),I=t.useRef(null),[_,F]=t.useState(0);(0,h.default)(()=>{d&&I.current?F(I.current.clientHeight):F(0)},[d]);let P=t.createElement("div",{className:`${S}-control-input`},t.createElement("div",{className:`${S}-control-input-content`},l)),R=t.useMemo(()=>({prefixCls:o,status:n}),[o,n]),N=null!==v||s.length||c.length?t.createElement(b.FormItemPrefixContext.Provider,{value:R},t.createElement(w.default,{fieldId:g,errors:s,warnings:c,help:m,helpStatus:n,className:`${S}-explain-connected`,onVisibleChanged:$})):null,M={};g&&(M.id=`${g}_extra`);let B=d?t.createElement("div",Object.assign({},M,{className:`${S}-extra`,ref:I}),d):null,A=N||B?t.createElement("div",{className:`${S}-additional`,style:v?{minHeight:v+_}:{}},N,B):null,z=u&&"pro_table_render"===u.mark&&u.render?u.render(e,{input:P,errorList:N,extra:B}):t.createElement(t.Fragment,null,P,A);return t.createElement(b.FormContext.Provider,{value:T},t.createElement(y,Object.assign({},j,{className:O}),z),t.createElement(C,{prefixCls:o}))}],292169)},684024,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"question-circle",theme:"outlined"};var n=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(n.default,(0,t.default)({},e,{ref:a,icon:o}))});e.s(["default",0,a],684024)},995144,e=>{"use strict";var t=e.i(271645);e.s(["default",0,function(e){return null==e?null:"object"!=typeof e||(0,t.isValidElement)(e)?{title:e}:e}])},408850,929447,e=>{"use strict";var t=e.i(271645),r=e.i(595575),o=e.i(87414);let n=(e,n)=>{let a=t.useContext(r.default);return[t.useMemo(()=>{var t;let r=n||o.default[e],i=null!=(t=null==a?void 0:a[e])?t:{};return Object.assign(Object.assign({},"function"==typeof r?r():r),i||{})},[e,n,a]),t.useMemo(()=>{let e=null==a?void 0:a.locale;return(null==a?void 0:a.exist)&&!e?o.default.locale:e},[a])]};e.s(["default",0,n],929447),e.s(["useLocale",0,n],408850)},552821,e=>{"use strict";var t=e.i(343794),r=e.i(271645);e.s(["default",0,function(e){var o=e.children,n=e.prefixCls,a=e.id,i=e.overlayInnerStyle,l=e.bodyClassName,s=e.className,c=e.style;return r.createElement("div",{className:(0,t.default)("".concat(n,"-content"),s),style:c},r.createElement("div",{className:(0,t.default)("".concat(n,"-inner"),l),id:a,role:"tooltip",style:i},"function"==typeof o?o():o))}])},951160,815289,e=>{"use strict";e.i(247167);var t,r=e.i(392221),o=e.i(271645),n=e.i(174080),a=e.i(654310);e.i(883110);var i=e.i(611935),l=o.createContext(null),s=e.i(8211),c=e.i(174428),u=[],d=e.i(575943);function f(e){var t,r,o="rc-scrollbar-measure-".concat(Math.random().toString(36).substring(7)),n=document.createElement("div");n.id=o;var a=n.style;if(a.position="absolute",a.left="0",a.top="0",a.width="100px",a.height="100px",a.overflow="scroll",e){var i=getComputedStyle(e);a.scrollbarColor=i.scrollbarColor,a.scrollbarWidth=i.scrollbarWidth;var l=getComputedStyle(e,"::-webkit-scrollbar"),s=parseInt(l.width,10),c=parseInt(l.height,10);try{var u=s?"width: ".concat(l.width,";"):"",f=c?"height: ".concat(l.height,";"):"";(0,d.updateCSS)("\n#".concat(o,"::-webkit-scrollbar {\n").concat(u,"\n").concat(f,"\n}"),o)}catch(e){console.error(e),t=s,r=c}}document.body.appendChild(n);var p=e&&t&&!isNaN(t)?t:n.offsetWidth-n.clientWidth,h=e&&r&&!isNaN(r)?r:n.offsetHeight-n.clientHeight;return document.body.removeChild(n),(0,d.removeCSS)(o),{width:p,height:h}}function p(e){return!("u"(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth;(0,d.updateCSS)("\nhtml body {\n overflow-y: hidden;\n ".concat(t?"width: calc(100% - ".concat(e,"px);"):"","\n}"),y)}else(0,d.removeCSS)(y);return function(){(0,d.removeCSS)(y)}},[f,y]);var z=null;E&&(0,i.supportRef)(E)&&t&&(z=E.ref);var L=(0,i.useComposeRef)(z,t);if(!T||!(0,a.default)()||void 0===F)return null;var D=!1===A,H=E;return t&&(H=o.cloneElement(E,{ref:L})),o.createElement(l.Provider,{value:B},D?H:(0,n.createPortal)(H,A))});e.s(["default",0,v],951160)},430073,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645),o=e.i(876556);e.i(883110);var n=e.i(209428),a=e.i(410160),i=e.i(279697),l=e.i(611935),s=r.createContext(null),c=function(){if("u">typeof Map)return Map;function e(e,t){var r=-1;return e.some(function(e,o){return e[0]===t&&(r=o,!0)}),r}function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var r=e(this.__entries__,t),o=this.__entries__[r];return o&&o[1]},t.prototype.set=function(t,r){var o=e(this.__entries__,t);~o?this.__entries__[o][1]=r:this.__entries__.push([t,r])},t.prototype.delete=function(t){var r=this.__entries__,o=e(r,t);~o&&r.splice(o,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var r=0,o=this.__entries__;rtypeof window&&"u">typeof document&&window.document===document,d=e.g.Math===Math?e.g:"u">typeof self&&self.Math===Math?self:"u">typeof window&&window.Math===Math?window:Function("return this")(),f="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(d):function(e){return setTimeout(function(){return e(Date.now())},1e3/60)},p=["top","right","bottom","left","width","height","size","weight"],h="u">typeof MutationObserver,m=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e){var t=!1,r=!1,o=0;function n(){t&&(t=!1,e()),r&&i()}function a(){f(n)}function i(){var e=Date.now();if(t){if(e-o<2)return;r=!0}else t=!0,r=!1,setTimeout(a,20);o=e}return i}(this.refresh.bind(this))}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,r=t.indexOf(e);~r&&t.splice(r,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter(function(e){return e.gatherActive(),e.hasActive()});return e.forEach(function(e){return e.broadcastActive()}),e.length>0},e.prototype.connect_=function(){u&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),h?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){u&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,r=void 0===t?"":t;p.some(function(e){return!!~r.indexOf(e)})&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),g=function(e,t){for(var r=0,o=Object.keys(t);rtypeof SVGGraphicsElement?function(e){return e instanceof v(e).SVGGraphicsElement}:function(e){return e instanceof v(e).SVGElement&&"function"==typeof e.getBBox};function C(e,t,r,o){return{x:e,y:t,width:r,height:o}}var x=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=C(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=function(e){if(!u)return y;if($(e)){var t;return C(0,0,(t=e.getBBox()).width,t.height)}return function(e){var t,r=e.clientWidth,o=e.clientHeight;if(!r&&!o)return y;var n=v(e).getComputedStyle(e),a=function(e){for(var t={},r=0,o=["top","right","bottom","left"];rtypeof DOMRectReadOnly?DOMRectReadOnly:Object).prototype),{x:r,y:o,width:n,height:a,top:o,right:r+n,bottom:a+o,left:r}),i);g(this,{target:e,contentRect:l})},S=function(){function e(e,t,r){if(this.activeObservations_=[],this.observations_=new c,"function"!=typeof e)throw TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=r}return e.prototype.observe=function(e){if(!arguments.length)throw TypeError("1 argument required, but only 0 present.");if(!("u"0},e}(),k="u">typeof WeakMap?new WeakMap:new c,j=function e(t){if(!(this instanceof e))throw TypeError("Cannot call a class as a function.");if(!arguments.length)throw TypeError("1 argument required, but only 0 present.");var r=new S(t,m.getInstance(),this);k.set(this,r)};["observe","unobserve","disconnect"].forEach(function(e){j.prototype[e]=function(){var t;return(t=k.get(this))[e].apply(t,arguments)}});var O=void 0!==d.ResizeObserver?d.ResizeObserver:j,T=new Map,I=new O(function(e){e.forEach(function(e){var t,r=e.target;null==(t=T.get(r))||t.forEach(function(e){return e(r)})})}),_=e.i(278409),F=e.i(233848),P=e.i(868917),R=e.i(674813),N=function(e){(0,P.default)(r,e);var t=(0,R.default)(r);function r(){return(0,_.default)(this,r),t.apply(this,arguments)}return(0,F.default)(r,[{key:"render",value:function(){return this.props.children}}]),r}(r.Component),M=r.forwardRef(function(e,t){var o=e.children,c=e.disabled,u=r.useRef(null),d=r.useRef(null),f=r.useContext(s),p="function"==typeof o,h=p?o(u):o,m=r.useRef({width:-1,height:-1,offsetWidth:-1,offsetHeight:-1}),g=!p&&r.isValidElement(h)&&(0,l.supportRef)(h),v=g?(0,l.getNodeRef)(h):null,y=(0,l.useComposeRef)(v,u),b=function(){var e;return(0,i.default)(u.current)||(u.current&&"object"===(0,a.default)(u.current)?(0,i.default)(null==(e=u.current)?void 0:e.nativeElement):null)||(0,i.default)(d.current)};r.useImperativeHandle(t,function(){return b()});var w=r.useRef(e);w.current=e;var $=r.useCallback(function(e){var t=w.current,r=t.onResize,o=t.data,a=e.getBoundingClientRect(),i=a.width,l=a.height,s=e.offsetWidth,c=e.offsetHeight,u=Math.floor(i),d=Math.floor(l);if(m.current.width!==u||m.current.height!==d||m.current.offsetWidth!==s||m.current.offsetHeight!==c){var p={width:u,height:d,offsetWidth:s,offsetHeight:c};m.current=p;var h=s===Math.round(i)?i:s,g=c===Math.round(l)?l:c,v=(0,n.default)((0,n.default)({},p),{},{offsetWidth:h,offsetHeight:g});null==f||f(v,e,o),r&&Promise.resolve().then(function(){r(v,e)})}},[]);return r.useEffect(function(){var e=b();return e&&!c&&(T.has(e)||(T.set(e,new Set),I.observe(e)),T.get(e).add($)),function(){T.has(e)&&(T.get(e).delete($),!T.get(e).size&&(I.unobserve(e),T.delete(e)))}},[u.current,c]),r.createElement(N,{ref:d},g?r.cloneElement(h,{ref:y}):h)}),B=r.forwardRef(function(e,n){var a=e.children;return("function"==typeof a?[a]:(0,o.default)(a)).map(function(o,a){var i=(null==o?void 0:o.key)||"".concat("rc-observer-key","-").concat(a);return r.createElement(M,(0,t.default)({},e,{key:i,ref:0===a?n:void 0}),o)})});B.Collection=function(e){var t=e.children,o=e.onBatchResize,n=r.useRef(0),a=r.useRef([]),i=r.useContext(s),l=r.useCallback(function(e,t,r){n.current+=1;var l=n.current;a.current.push({size:e,element:t,data:r}),Promise.resolve().then(function(){l===n.current&&(null==o||o(a.current),a.current=[])}),null==i||i(e,t,r)},[o,i]);return r.createElement(s.Provider,{value:l},t)},e.s(["default",0,B],430073)},981444,e=>{"use strict";var t=e.i(392221),r=e.i(209428),o=e.i(271645),n=0,a=(0,r.default)({},o).useId;let i=a?function(e){var t=a();return e||t}:function(e){var r=o.useState("ssr-id"),a=(0,t.default)(r,2),i=a[0],l=a[1];return(o.useEffect(function(){var e=n;n+=1,l("rc_unique_".concat(e))},[]),e)?e:i};e.s(["default",0,i])},614761,e=>{"use strict";e.s(["default",0,function(){if("u"{"use strict";e.i(247167);var t=e.i(931067),r=e.i(209428),o=e.i(392221),n=e.i(343794),a=e.i(361275),i=e.i(430073),l=e.i(174428),s=e.i(611935),c=e.i(271645);function u(e){var t=e.prefixCls,r=e.align,o=e.arrow,a=e.arrowPos,i=o||{},l=i.className,s=i.content,u=a.x,d=a.y,f=c.useRef();if(!r||!r.points)return null;var p={position:"absolute"};if(!1!==r.autoArrow){var h=r.points[0],m=r.points[1],g=h[0],v=h[1],y=m[0],b=m[1];g!==y&&["t","b"].includes(g)?"t"===g?p.top=0:p.bottom=0:p.top=void 0===d?0:d,v!==b&&["l","r"].includes(v)?"l"===v?p.left=0:p.right=0:p.left=void 0===u?0:u}return c.createElement("div",{ref:f,className:(0,n.default)("".concat(t,"-arrow"),l),style:p},s)}function d(e){var r=e.prefixCls,o=e.open,i=e.zIndex,l=e.mask,s=e.motion;return l?c.createElement(a.default,(0,t.default)({},s,{motionAppear:!0,visible:o,removeOnLeave:!0}),function(e){var t=e.className;return c.createElement("div",{style:{zIndex:i},className:(0,n.default)("".concat(r,"-mask"),t)})}):null}var f=c.memo(function(e){return e.children},function(e,t){return t.cache}),p=c.forwardRef(function(e,p){var h=e.popup,m=e.className,g=e.prefixCls,v=e.style,y=e.target,b=e.onVisibleChanged,w=e.open,$=e.keepDom,C=e.fresh,x=e.onClick,E=e.mask,S=e.arrow,k=e.arrowPos,j=e.align,O=e.motion,T=e.maskMotion,I=e.forceRender,_=e.getPopupContainer,F=e.autoDestroy,P=e.portal,R=e.zIndex,N=e.onMouseEnter,M=e.onMouseLeave,B=e.onPointerEnter,A=e.onPointerDownCapture,z=e.ready,L=e.offsetX,D=e.offsetY,H=e.offsetR,V=e.offsetB,W=e.onAlign,U=e.onPrepare,G=e.stretch,q=e.targetWidth,J=e.targetHeight,K="function"==typeof h?h():h,X=w||$,Q=(null==_?void 0:_.length)>0,Y=c.useState(!_||!Q),Z=(0,o.default)(Y,2),ee=Z[0],et=Z[1];if((0,l.default)(function(){!ee&&Q&&y&&et(!0)},[ee,Q,y]),!ee)return null;var er="auto",eo={left:"-1000vw",top:"-1000vh",right:er,bottom:er};if(z||!w){var en,ea=j.points,ei=j.dynamicInset||(null==(en=j._experimental)?void 0:en.dynamicInset),el=ei&&"r"===ea[0][1],es=ei&&"b"===ea[0][0];el?(eo.right=H,eo.left=er):(eo.left=L,eo.right=er),es?(eo.bottom=V,eo.top=er):(eo.top=D,eo.bottom=er)}var ec={};return G&&(G.includes("height")&&J?ec.height=J:G.includes("minHeight")&&J&&(ec.minHeight=J),G.includes("width")&&q?ec.width=q:G.includes("minWidth")&&q&&(ec.minWidth=q)),w||(ec.pointerEvents="none"),c.createElement(P,{open:I||X,getContainer:_&&function(){return _(y)},autoDestroy:F},c.createElement(d,{prefixCls:g,open:w,zIndex:R,mask:E,motion:T}),c.createElement(i.default,{onResize:W,disabled:!w},function(e){return c.createElement(a.default,(0,t.default)({motionAppear:!0,motionEnter:!0,motionLeave:!0,removeOnLeave:!1,forceRender:I,leavedClassName:"".concat(g,"-hidden")},O,{onAppearPrepare:U,onEnterPrepare:U,visible:w,onVisibleChanged:function(e){var t;null==O||null==(t=O.onVisibleChanged)||t.call(O,e),b(e)}}),function(t,o){var a=t.className,i=t.style,l=(0,n.default)(g,a,m);return c.createElement("div",{ref:(0,s.composeRef)(e,p,o),className:l,style:(0,r.default)((0,r.default)((0,r.default)((0,r.default)({"--arrow-x":"".concat(k.x||0,"px"),"--arrow-y":"".concat(k.y||0,"px")},eo),ec),i),{},{boxSizing:"border-box",zIndex:R},v),onMouseEnter:N,onMouseLeave:M,onPointerEnter:B,onClick:x,onPointerDownCapture:A},S&&c.createElement(u,{prefixCls:g,arrow:S,arrowPos:k,align:j}),c.createElement(f,{cache:!w&&!C},K))})}))});e.s(["default",0,p],546004);var h=c.forwardRef(function(e,t){var r=e.children,o=e.getTriggerDOMNode,n=(0,s.supportRef)(r),a=c.useCallback(function(e){(0,s.fillRef)(t,o?o(e):e)},[o]),i=(0,s.useComposeRef)(a,(0,s.getNodeRef)(r));return n?c.cloneElement(r,{ref:i}):r});e.s(["default",0,h],508811);var m=c.createContext(null);function g(e){return e?Array.isArray(e)?e:[e]:[]}e.s(["default",0,m],976637),e.s(["default",0,function(e,t,r,o){return c.useMemo(function(){var n=g(null!=r?r:t),a=g(null!=o?o:t),i=new Set(n),l=new Set(a);return e&&(i.has("hover")&&(i.delete("hover"),i.add("click")),l.has("hover")&&(l.delete("hover"),l.add("click"))),[i,l]},[e,t,r,o])}],920)},707067,e=>{"use strict";e.i(247167);var t=e.i(209428),r=e.i(392221),o=e.i(703923),n=e.i(951160),a=e.i(343794),i=e.i(430073),l=e.i(279697),s=e.i(909887),c=e.i(175066),u=e.i(981444),d=e.i(174428),f=e.i(614761),p=e.i(271645),h=e.i(546004),m=e.i(508811),g=e.i(976637),v=e.i(920),y=e.i(606262);function b(e,t,r,o){return t||(r?{motionName:"".concat(e,"-").concat(r)}:o?{motionName:o}:null)}function w(e){return e.ownerDocument.defaultView}function $(e){for(var t=[],r=null==e?void 0:e.parentElement,o=["hidden","scroll","clip","auto"];r;){var n=w(r).getComputedStyle(r);[n.overflowX,n.overflowY,n.overflow].some(function(e){return o.includes(e)})&&t.push(r),r=r.parentElement}return t}function C(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return Number.isNaN(e)?t:e}function x(e){return C(parseFloat(e),0)}function E(e,r){var o=(0,t.default)({},e);return(r||[]).forEach(function(e){if(!(e instanceof HTMLBodyElement||e instanceof HTMLHtmlElement)){var t=w(e).getComputedStyle(e),r=t.overflow,n=t.overflowClipMargin,a=t.borderTopWidth,i=t.borderBottomWidth,l=t.borderLeftWidth,s=t.borderRightWidth,c=e.getBoundingClientRect(),u=e.offsetHeight,d=e.clientHeight,f=e.offsetWidth,p=e.clientWidth,h=x(a),m=x(i),g=x(l),v=x(s),y=C(Math.round(c.width/f*1e3)/1e3),b=C(Math.round(c.height/u*1e3)/1e3),$=h*b,E=g*y,S=0,k=0;if("clip"===r){var j=x(n);S=j*y,k=j*b}var O=c.x+E-S,T=c.y+$-k,I=O+c.width+2*S-E-v*y-(f-p-g-v)*y,_=T+c.height+2*k-$-m*b-(u-d-h-m)*b;o.left=Math.max(o.left,O),o.top=Math.max(o.top,T),o.right=Math.min(o.right,I),o.bottom=Math.min(o.bottom,_)}}),o}function S(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r="".concat(t),o=r.match(/^(.*)\%$/);return o?e*(parseFloat(o[1])/100):parseFloat(r)}function k(e,t){var o=(0,r.default)(t||[],2),n=o[0],a=o[1];return[S(e.width,n),S(e.height,a)]}function j(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return[e[0],e[1]]}function O(e,t){var r,o=t[0],n=t[1];return r="t"===o?e.y:"b"===o?e.y+e.height:e.y+e.height/2,{x:"l"===n?e.x:"r"===n?e.x+e.width:e.x+e.width/2,y:r}}function T(e,t){var r={t:"b",b:"t",l:"r",r:"l"};return e.map(function(e,o){return o===t?r[e]||"c":e}).join("")}var I=e.i(8211);e.i(883110);var _=["prefixCls","children","action","showAction","hideAction","popupVisible","defaultPopupVisible","onPopupVisibleChange","afterPopupVisibleChange","mouseEnterDelay","mouseLeaveDelay","focusDelay","blurDelay","mask","maskClosable","getPopupContainer","forceRender","autoDestroy","destroyPopupOnHide","popup","popupClassName","popupStyle","popupPlacement","builtinPlacements","popupAlign","zIndex","stretch","getPopupClassNameFromAlign","fresh","alignPoint","onPopupClick","onPopupAlign","arrow","popupMotion","maskMotion","popupTransitionName","popupAnimation","maskTransitionName","maskAnimation","className","getTriggerDOMNode"];let F=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n.default;return p.forwardRef(function(n,x){var S,F,P,R,N,M,B,A,z,L,D,H,V,W,U,G,q=n.prefixCls,J=void 0===q?"rc-trigger-popup":q,K=n.children,X=n.action,Q=n.showAction,Y=n.hideAction,Z=n.popupVisible,ee=n.defaultPopupVisible,et=n.onPopupVisibleChange,er=n.afterPopupVisibleChange,eo=n.mouseEnterDelay,en=n.mouseLeaveDelay,ea=void 0===en?.1:en,ei=n.focusDelay,el=n.blurDelay,es=n.mask,ec=n.maskClosable,eu=n.getPopupContainer,ed=n.forceRender,ef=n.autoDestroy,ep=n.destroyPopupOnHide,eh=n.popup,em=n.popupClassName,eg=n.popupStyle,ev=n.popupPlacement,ey=n.builtinPlacements,eb=void 0===ey?{}:ey,ew=n.popupAlign,e$=n.zIndex,eC=n.stretch,ex=n.getPopupClassNameFromAlign,eE=n.fresh,eS=n.alignPoint,ek=n.onPopupClick,ej=n.onPopupAlign,eO=n.arrow,eT=n.popupMotion,eI=n.maskMotion,e_=n.popupTransitionName,eF=n.popupAnimation,eP=n.maskTransitionName,eR=n.maskAnimation,eN=n.className,eM=n.getTriggerDOMNode,eB=(0,o.default)(n,_),eA=p.useState(!1),ez=(0,r.default)(eA,2),eL=ez[0],eD=ez[1];(0,d.default)(function(){eD((0,f.default)())},[]);var eH=p.useRef({}),eV=p.useContext(g.default),eW=p.useMemo(function(){return{registerSubPopup:function(e,t){eH.current[e]=t,null==eV||eV.registerSubPopup(e,t)}}},[eV]),eU=(0,u.default)(),eG=p.useState(null),eq=(0,r.default)(eG,2),eJ=eq[0],eK=eq[1],eX=p.useRef(null),eQ=(0,c.default)(function(e){eX.current=e,(0,l.isDOM)(e)&&eJ!==e&&eK(e),null==eV||eV.registerSubPopup(eU,e)}),eY=p.useState(null),eZ=(0,r.default)(eY,2),e0=eZ[0],e1=eZ[1],e2=p.useRef(null),e4=(0,c.default)(function(e){(0,l.isDOM)(e)&&e0!==e&&(e1(e),e2.current=e)}),e6=p.Children.only(K),e3=(null==e6?void 0:e6.props)||{},e7={},e5=(0,c.default)(function(e){var t,r;return(null==e0?void 0:e0.contains(e))||(null==(t=(0,s.getShadowRoot)(e0))?void 0:t.host)===e||e===e0||(null==eJ?void 0:eJ.contains(e))||(null==(r=(0,s.getShadowRoot)(eJ))?void 0:r.host)===e||e===eJ||Object.values(eH.current).some(function(t){return(null==t?void 0:t.contains(e))||e===t})}),e9=b(J,eT,eF,e_),e8=b(J,eI,eR,eP),te=p.useState(ee||!1),tt=(0,r.default)(te,2),tr=tt[0],to=tt[1],tn=null!=Z?Z:tr,ta=(0,c.default)(function(e){void 0===Z&&to(e)});(0,d.default)(function(){to(Z||!1)},[Z]);var ti=p.useRef(tn);ti.current=tn;var tl=p.useRef([]);tl.current=[];var ts=(0,c.default)(function(e){var t;ta(e),(null!=(t=tl.current[tl.current.length-1])?t:tn)!==e&&(tl.current.push(e),null==et||et(e))}),tc=p.useRef(),tu=function(){clearTimeout(tc.current)},td=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;tu(),0===t?ts(e):tc.current=setTimeout(function(){ts(e)},1e3*t)};p.useEffect(function(){return tu},[]);var tf=p.useState(!1),tp=(0,r.default)(tf,2),th=tp[0],tm=tp[1];(0,d.default)(function(e){(!e||tn)&&tm(!0)},[tn]);var tg=p.useState(null),tv=(0,r.default)(tg,2),ty=tv[0],tb=tv[1],tw=p.useState(null),t$=(0,r.default)(tw,2),tC=t$[0],tx=t$[1],tE=function(e){tx([e.clientX,e.clientY])},tS=(S=eS&&null!==tC?tC:e0,F=p.useState({ready:!1,offsetX:0,offsetY:0,offsetR:0,offsetB:0,arrowX:0,arrowY:0,scaleX:1,scaleY:1,align:eb[ev]||{}}),R=(P=(0,r.default)(F,2))[0],N=P[1],M=p.useRef(0),B=p.useMemo(function(){return eJ?$(eJ):[]},[eJ]),A=p.useRef({}),tn||(A.current={}),z=(0,c.default)(function(){if(eJ&&S&&tn){var e=eJ.ownerDocument,o=w(eJ),n=o.getComputedStyle(eJ).position,a=eJ.style.left,i=eJ.style.top,s=eJ.style.right,c=eJ.style.bottom,u=eJ.style.overflow,d=(0,t.default)((0,t.default)({},eb[ev]),ew),f=e.createElement("div");if(null==(v=eJ.parentElement)||v.appendChild(f),f.style.left="".concat(eJ.offsetLeft,"px"),f.style.top="".concat(eJ.offsetTop,"px"),f.style.position=n,f.style.height="".concat(eJ.offsetHeight,"px"),f.style.width="".concat(eJ.offsetWidth,"px"),eJ.style.left="0",eJ.style.top="0",eJ.style.right="auto",eJ.style.bottom="auto",eJ.style.overflow="hidden",Array.isArray(S))I={x:S[0],y:S[1],width:0,height:0};else{var p,h,m,g,v,b,$,x,I,_,F,P=S.getBoundingClientRect();P.x=null!=(_=P.x)?_:P.left,P.y=null!=(F=P.y)?F:P.top,I={x:P.x,y:P.y,width:P.width,height:P.height}}var R=eJ.getBoundingClientRect(),M=o.getComputedStyle(eJ),z=M.height,L=M.width;R.x=null!=(b=R.x)?b:R.left,R.y=null!=($=R.y)?$:R.top;var D=e.documentElement,H=D.clientWidth,V=D.clientHeight,W=D.scrollWidth,U=D.scrollHeight,G=D.scrollTop,q=D.scrollLeft,J=R.height,K=R.width,X=I.height,Q=I.width,Y=d.htmlRegion,Z="visible",ee="visibleFirst";"scroll"!==Y&&Y!==ee&&(Y=Z);var et=Y===ee,er=E({left:-q,top:-G,right:W-q,bottom:U-G},B),eo=E({left:0,top:0,right:H,bottom:V},B),en=Y===Z?eo:er,ea=et?eo:en;eJ.style.left="auto",eJ.style.top="auto",eJ.style.right="0",eJ.style.bottom="0";var ei=eJ.getBoundingClientRect();eJ.style.left=a,eJ.style.top=i,eJ.style.right=s,eJ.style.bottom=c,eJ.style.overflow=u,null==(x=eJ.parentElement)||x.removeChild(f);var el=C(Math.round(K/parseFloat(L)*1e3)/1e3),es=C(Math.round(J/parseFloat(z)*1e3)/1e3);if(!(0===el||0===es||(0,l.isDOM)(S)&&!(0,y.default)(S))){var ec=d.offset,eu=d.targetOffset,ed=k(R,ec),ef=(0,r.default)(ed,2),ep=ef[0],eh=ef[1],em=k(I,eu),eg=(0,r.default)(em,2),ey=eg[0],e$=eg[1];I.x-=ey,I.y-=e$;var eC=d.points||[],ex=(0,r.default)(eC,2),eE=ex[0],eS=j(ex[1]),ek=j(eE),eO=O(I,eS),eT=O(R,ek),eI=(0,t.default)({},d),e_=eO.x-eT.x+ep,eF=eO.y-eT.y+eh,eP=td(e_,eF),eR=td(e_,eF,eo),eN=O(I,["t","l"]),eM=O(R,["t","l"]),eB=O(I,["b","r"]),eA=O(R,["b","r"]),ez=d.overflow||{},eL=ez.adjustX,eD=ez.adjustY,eH=ez.shiftX,eV=ez.shiftY,eW=function(e){return"boolean"==typeof e?e:e>=0};tf();var eU=eW(eD),eG=ek[0]===eS[0];if(eU&&"t"===ek[0]&&(h>ea.bottom||A.current.bt)){var eq=eF;eG?eq-=J-X:eq=eN.y-eA.y-eh;var eK=td(e_,eq),eX=td(e_,eq,eo);eK>eP||eK===eP&&(!et||eX>=eR)?(A.current.bt=!0,eF=eq,eh=-eh,eI.points=[T(ek,0),T(eS,0)]):A.current.bt=!1}if(eU&&"b"===ek[0]&&(peP||eY===eP&&(!et||eZ>=eR)?(A.current.tb=!0,eF=eQ,eh=-eh,eI.points=[T(ek,0),T(eS,0)]):A.current.tb=!1}var e0=eW(eL),e1=ek[1]===eS[1];if(e0&&"l"===ek[1]&&(g>ea.right||A.current.rl)){var e2=e_;e1?e2-=K-Q:e2=eN.x-eA.x-ep;var e4=td(e2,eF),e6=td(e2,eF,eo);e4>eP||e4===eP&&(!et||e6>=eR)?(A.current.rl=!0,e_=e2,ep=-ep,eI.points=[T(ek,1),T(eS,1)]):A.current.rl=!1}if(e0&&"r"===ek[1]&&(meP||e7===eP&&(!et||e5>=eR)?(A.current.lr=!0,e_=e3,ep=-ep,eI.points=[T(ek,1),T(eS,1)]):A.current.lr=!1}tf();var e9=!0===eH?0:eH;"number"==typeof e9&&(meo.right&&(e_-=g-eo.right-ep,I.x>eo.right-e9&&(e_+=I.x-eo.right+e9)));var e8=!0===eV?0:eV;"number"==typeof e8&&(peo.bottom&&(eF-=h-eo.bottom-eh,I.y>eo.bottom-e8&&(eF+=I.y-eo.bottom+e8)));var te=R.x+e_,tt=R.y+eF,tr=I.x,to=I.y,ta=Math.max(te,tr),ti=Math.min(te+K,tr+Q),tl=Math.max(tt,to),ts=Math.min(tt+J,to+X);null==ej||ej(eJ,eI);var tc=ei.right-R.x-(e_+R.width),tu=ei.bottom-R.y-(eF+R.height);1===el&&(e_=Math.floor(e_),tc=Math.floor(tc)),1===es&&(eF=Math.floor(eF),tu=Math.floor(tu)),N({ready:!0,offsetX:e_/el,offsetY:eF/es,offsetR:tc/el,offsetB:tu/es,arrowX:((ta+ti)/2-te)/el,arrowY:((tl+ts)/2-tt)/es,scaleX:el,scaleY:es,align:eI})}function td(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:en,o=R.x+e,n=R.y+t,a=Math.max(o,r.left),i=Math.max(n,r.top);return Math.max(0,(Math.min(o+K,r.right)-a)*(Math.min(n+J,r.bottom)-i))}function tf(){h=(p=R.y+eF)+J,g=(m=R.x+e_)+K}}}),L=function(){N(function(e){return(0,t.default)((0,t.default)({},e),{},{ready:!1})})},(0,d.default)(L,[ev]),(0,d.default)(function(){tn||L()},[tn]),[R.ready,R.offsetX,R.offsetY,R.offsetR,R.offsetB,R.arrowX,R.arrowY,R.scaleX,R.scaleY,R.align,function(){M.current+=1;var e=M.current;Promise.resolve().then(function(){M.current===e&&z()})}]),tk=(0,r.default)(tS,11),tj=tk[0],tO=tk[1],tT=tk[2],tI=tk[3],t_=tk[4],tF=tk[5],tP=tk[6],tR=tk[7],tN=tk[8],tM=tk[9],tB=tk[10],tA=(0,v.default)(eL,void 0===X?"hover":X,Q,Y),tz=(0,r.default)(tA,2),tL=tz[0],tD=tz[1],tH=tL.has("click"),tV=tD.has("click")||tD.has("contextMenu"),tW=(0,c.default)(function(){th||tB()});D=function(){ti.current&&eS&&tV&&td(!1)},(0,d.default)(function(){if(tn&&e0&&eJ){var e=$(e0),t=$(eJ),r=w(eJ),o=new Set([r].concat((0,I.default)(e),(0,I.default)(t)));function n(){tW(),D()}return o.forEach(function(e){e.addEventListener("scroll",n,{passive:!0})}),r.addEventListener("resize",n,{passive:!0}),tW(),function(){o.forEach(function(e){e.removeEventListener("scroll",n),r.removeEventListener("resize",n)})}}},[tn,e0,eJ]),(0,d.default)(function(){tW()},[tC,ev]),(0,d.default)(function(){tn&&!(null!=eb&&eb[ev])&&tW()},[JSON.stringify(ew)]);var tU=p.useMemo(function(){var e=function(e,t,r,o){for(var n=r.points,a=Object.keys(e),i=0;i0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0;return r?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}(null==(l=e[s])?void 0:l.points,n,o))return"".concat(t,"-placement-").concat(s)}return""}(eb,J,tM,eS);return(0,a.default)(e,null==ex?void 0:ex(tM))},[tM,ex,eb,J,eS]);p.useImperativeHandle(x,function(){return{nativeElement:e2.current,popupElement:eX.current,forceAlign:tW}});var tG=p.useState(0),tq=(0,r.default)(tG,2),tJ=tq[0],tK=tq[1],tX=p.useState(0),tQ=(0,r.default)(tX,2),tY=tQ[0],tZ=tQ[1],t0=function(){if(eC&&e0){var e=e0.getBoundingClientRect();tK(e.width),tZ(e.height)}};function t1(e,t,r,o){e7[e]=function(n){var a;null==o||o(n),td(t,r);for(var i=arguments.length,l=Array(i>1?i-1:0),s=1;s1?r-1:0),n=1;n1?r-1:0),n=1;n{"use strict";var t=e.i(552821),r=e.i(931067),o=e.i(209428),n=e.i(703923),a=e.i(707067),i=e.i(343794),l=e.i(271645),s={shiftX:64,adjustY:1},c={adjustX:1,shiftY:!0},u=[0,0],d={left:{points:["cr","cl"],overflow:c,offset:[-4,0],targetOffset:u},right:{points:["cl","cr"],overflow:c,offset:[4,0],targetOffset:u},top:{points:["bc","tc"],overflow:s,offset:[0,-4],targetOffset:u},bottom:{points:["tc","bc"],overflow:s,offset:[0,4],targetOffset:u},topLeft:{points:["bl","tl"],overflow:s,offset:[0,-4],targetOffset:u},leftTop:{points:["tr","tl"],overflow:c,offset:[-4,0],targetOffset:u},topRight:{points:["br","tr"],overflow:s,offset:[0,-4],targetOffset:u},rightTop:{points:["tl","tr"],overflow:c,offset:[4,0],targetOffset:u},bottomRight:{points:["tr","br"],overflow:s,offset:[0,4],targetOffset:u},rightBottom:{points:["bl","br"],overflow:c,offset:[4,0],targetOffset:u},bottomLeft:{points:["tl","bl"],overflow:s,offset:[0,4],targetOffset:u},leftBottom:{points:["br","bl"],overflow:c,offset:[-4,0],targetOffset:u}},f=e.i(981444),p=["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","motion","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer","overlayInnerStyle","arrowContent","overlay","id","showArrow","classNames","styles"];let h=(0,l.forwardRef)(function(e,s){var c,u,h,m=e.overlayClassName,g=e.trigger,v=e.mouseEnterDelay,y=e.mouseLeaveDelay,b=e.overlayStyle,w=e.prefixCls,$=void 0===w?"rc-tooltip":w,C=e.children,x=e.onVisibleChange,E=e.afterVisibleChange,S=e.transitionName,k=e.animation,j=e.motion,O=e.placement,T=e.align,I=e.destroyTooltipOnHide,_=e.defaultVisible,F=e.getTooltipContainer,P=e.overlayInnerStyle,R=(e.arrowContent,e.overlay),N=e.id,M=e.showArrow,B=e.classNames,A=e.styles,z=(0,n.default)(e,p),L=(0,f.default)(N),D=(0,l.useRef)(null);(0,l.useImperativeHandle)(s,function(){return D.current});var H=(0,o.default)({},z);return"visible"in e&&(H.popupVisible=e.visible),l.createElement(a.default,(0,r.default)({popupClassName:(0,i.default)(m,null==B?void 0:B.root),prefixCls:$,popup:function(){return l.createElement(t.default,{key:"content",prefixCls:$,id:L,bodyClassName:null==B?void 0:B.body,overlayInnerStyle:(0,o.default)((0,o.default)({},P),null==A?void 0:A.body)},R)},action:void 0===g?["hover"]:g,builtinPlacements:d,popupPlacement:void 0===O?"right":O,ref:D,popupAlign:void 0===T?{}:T,getPopupContainer:F,onPopupVisibleChange:x,afterPopupVisibleChange:E,popupTransitionName:S,popupAnimation:k,popupMotion:j,defaultPopupVisible:_,autoDestroy:void 0!==I&&I,mouseLeaveDelay:void 0===y?.1:y,popupStyle:(0,o.default)((0,o.default)({},b),null==A?void 0:A.root),mouseEnterDelay:void 0===v?0:v,arrow:void 0===M||M},H),(u=(null==(c=l.Children.only(C))?void 0:c.props)||{},h=(0,o.default)((0,o.default)({},u),{},{"aria-describedby":R?L:null}),l.cloneElement(C,h)))});e.s(["default",0,h],793154)},249616,e=>{"use strict";var t=e.i(271645),r=e.i(343794),o=e.i(876556),n=e.i(242064),a=e.i(517455);let i=(0,e.i(246422).genStyleHooks)(["Space","Compact"],e=>[(e=>{let{componentCls:t}=e;return{[t]:{display:"inline-flex","&-block":{display:"flex",width:"100%"},"&-vertical":{flexDirection:"column"},"&-rtl":{direction:"rtl"}}}})(e)],()=>({}),{resetStyle:!1});var l=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let s=t.createContext(null),c=e=>{let{children:r}=e,o=l(e,["children"]);return t.createElement(s.Provider,{value:t.useMemo(()=>o,[o])},r)};e.s(["NoCompactStyle",0,e=>{let{children:r}=e;return t.createElement(s.Provider,{value:null},r)},"default",0,e=>{let{getPrefixCls:u,direction:d}=t.useContext(n.ConfigContext),{size:f,direction:p,block:h,prefixCls:m,className:g,rootClassName:v,children:y}=e,b=l(e,["size","direction","block","prefixCls","className","rootClassName","children"]),w=(0,a.default)(e=>null!=f?f:e),$=u("space-compact",m),[C,x]=i($),E=(0,r.default)($,x,{[`${$}-rtl`]:"rtl"===d,[`${$}-block`]:h,[`${$}-vertical`]:"vertical"===p},g,v),S=t.useContext(s),k=(0,o.default)(y),j=t.useMemo(()=>k.map((e,r)=>{let o=(null==e?void 0:e.key)||`${$}-item-${r}`;return t.createElement(c,{key:o,compactSize:w,compactDirection:p,isFirstItem:0===r&&(!S||(null==S?void 0:S.isFirstItem)),isLastItem:r===k.length-1&&(!S||(null==S?void 0:S.isLastItem))},e)}),[k,S,p,w,$]);return 0===k.length?null:C(t.createElement("div",Object.assign({className:E},b),j))},"useCompactItemContext",0,(e,o)=>{let n=t.useContext(s),a=t.useMemo(()=>{if(!n)return"";let{compactDirection:t,isFirstItem:a,isLastItem:i}=n,l="vertical"===t?"-vertical-":"-";return(0,r.default)(`${e}-compact${l}item`,{[`${e}-compact${l}first-item`]:a,[`${e}-compact${l}last-item`]:i,[`${e}-compact${l}item-rtl`]:"rtl"===o})},[e,o,n]);return{compactSize:null==n?void 0:n.compactSize,compactDirection:null==n?void 0:n.compactDirection,compactItemClassnames:a}}],249616)},617206,e=>{"use strict";var t=e.i(271645),r=e.i(62139),o=e.i(249616);e.s(["default",0,e=>{let{space:n,form:a,children:i}=e;if(null==i)return null;let l=i;return a&&(l=t.default.createElement(r.NoFormStyle,{override:!0,status:!0},l)),n&&(l=t.default.createElement(o.NoCompactStyle,null,l)),l}])},805984,307358,320560,e=>{"use strict";e.i(296059);var t=e.i(915654);let r=(e,r,o)=>{let{sizePopupArrow:n,arrowPolygon:a,arrowPath:i,arrowShadowWidth:l,borderRadiusXS:s,calc:c}=e;return{pointerEvents:"none",width:n,height:n,overflow:"hidden","&::before":{position:"absolute",bottom:0,insetInlineStart:0,width:n,height:c(n).div(2).equal(),background:r,clipPath:{_multi_value_:!0,value:[a,i]},content:'""'},"&::after":{content:'""',position:"absolute",width:l,height:l,bottom:0,insetInline:0,margin:"auto",borderRadius:{_skip_check_:!0,value:`0 0 ${(0,t.unit)(s)} 0`},transform:"translateY(50%) rotate(-135deg)",boxShadow:o,zIndex:0,background:"transparent"}}};function o(e){let{contentRadius:t,limitVerticalRadius:r}=e,o=t>12?t+2:12;return{arrowOffsetHorizontal:o,arrowOffsetVertical:r?8:o}}e.s(["genRoundedArrow",0,r,"getArrowToken",0,function(e){let{sizePopupArrow:t,borderRadiusXS:r,borderRadiusOuter:o}=e,n=t/2,a=o/Math.sqrt(2),i=n-o*(1-1/Math.sqrt(2)),l=n-1/Math.sqrt(2)*r,s=o*(Math.sqrt(2)-1)+1/Math.sqrt(2)*r,c=n*Math.sqrt(2)+o*(Math.sqrt(2)-2),u=o*(Math.sqrt(2)-1),d=`polygon(${u}px 100%, 50% ${u}px, ${2*n-u}px 100%, ${u}px 100%)`;return{arrowShadowWidth:c,arrowPath:`path('M 0 ${n} A ${o} ${o} 0 0 0 ${a} ${i} L ${l} ${s} A ${r} ${r} 0 0 1 ${2*n-l} ${s} L ${2*n-a} ${i} A ${o} ${o} 0 0 0 ${2*n-0} ${n} Z')`,arrowPolygon:d}}],307358),e.s(["MAX_VERTICAL_CONTENT_RADIUS",0,8,"default",0,function(e,o,n){var a,i,l,s,c,u,d,f;let{componentCls:p,boxShadowPopoverArrow:h,arrowOffsetVertical:m,arrowOffsetHorizontal:g}=e,{arrowDistance:v=0,arrowPlacement:y={left:!0,right:!0,top:!0,bottom:!0}}=n||{};return{[p]:Object.assign(Object.assign(Object.assign(Object.assign({[`${p}-arrow`]:[Object.assign(Object.assign({position:"absolute",zIndex:1,display:"block"},r(e,o,h)),{"&:before":{background:o}})]},(a=!!y.top,i={[`&-placement-top > ${p}-arrow,&-placement-topLeft > ${p}-arrow,&-placement-topRight > ${p}-arrow`]:{bottom:v,transform:"translateY(100%) rotate(180deg)"},[`&-placement-top > ${p}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(100%) rotate(180deg)"},"&-placement-topLeft":{"--arrow-offset-horizontal":g,[`> ${p}-arrow`]:{left:{_skip_check_:!0,value:g}}},"&-placement-topRight":{"--arrow-offset-horizontal":`calc(100% - ${(0,t.unit)(g)})`,[`> ${p}-arrow`]:{right:{_skip_check_:!0,value:g}}}},a?i:{})),(l=!!y.bottom,s={[`&-placement-bottom > ${p}-arrow,&-placement-bottomLeft > ${p}-arrow,&-placement-bottomRight > ${p}-arrow`]:{top:v,transform:"translateY(-100%)"},[`&-placement-bottom > ${p}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(-100%)"},"&-placement-bottomLeft":{"--arrow-offset-horizontal":g,[`> ${p}-arrow`]:{left:{_skip_check_:!0,value:g}}},"&-placement-bottomRight":{"--arrow-offset-horizontal":`calc(100% - ${(0,t.unit)(g)})`,[`> ${p}-arrow`]:{right:{_skip_check_:!0,value:g}}}},l?s:{})),(c=!!y.left,u={[`&-placement-left > ${p}-arrow,&-placement-leftTop > ${p}-arrow,&-placement-leftBottom > ${p}-arrow`]:{right:{_skip_check_:!0,value:v},transform:"translateX(100%) rotate(90deg)"},[`&-placement-left > ${p}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(100%) rotate(90deg)"},[`&-placement-leftTop > ${p}-arrow`]:{top:m},[`&-placement-leftBottom > ${p}-arrow`]:{bottom:m}},c?u:{})),(d=!!y.right,f={[`&-placement-right > ${p}-arrow,&-placement-rightTop > ${p}-arrow,&-placement-rightBottom > ${p}-arrow`]:{left:{_skip_check_:!0,value:v},transform:"translateX(-100%) rotate(-90deg)"},[`&-placement-right > ${p}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(-100%) rotate(-90deg)"},[`&-placement-rightTop > ${p}-arrow`]:{top:m},[`&-placement-rightBottom > ${p}-arrow`]:{bottom:m}},d?f:{}))}},"getArrowOffsetToken",0,o],320560);let n={left:{points:["cr","cl"]},right:{points:["cl","cr"]},top:{points:["bc","tc"]},bottom:{points:["tc","bc"]},topLeft:{points:["bl","tl"]},leftTop:{points:["tr","tl"]},topRight:{points:["br","tr"]},rightTop:{points:["tl","tr"]},bottomRight:{points:["tr","br"]},rightBottom:{points:["bl","br"]},bottomLeft:{points:["tl","bl"]},leftBottom:{points:["br","bl"]}},a={topLeft:{points:["bl","tc"]},leftTop:{points:["tr","cl"]},topRight:{points:["br","tc"]},rightTop:{points:["tl","cr"]},bottomRight:{points:["tr","bc"]},rightBottom:{points:["bl","cr"]},bottomLeft:{points:["tl","bc"]},leftBottom:{points:["br","cl"]}},i=new Set(["topLeft","topRight","bottomLeft","bottomRight","leftTop","leftBottom","rightTop","rightBottom"]);e.s(["default",0,function(e){let{arrowWidth:t,autoAdjustOverflow:r,arrowPointAtCenter:l,offset:s,borderRadius:c,visibleFirst:u}=e,d=t/2,f={},p=o({contentRadius:c,limitVerticalRadius:!0});return Object.keys(n).forEach(e=>{let o=Object.assign(Object.assign({},l&&a[e]||n[e]),{offset:[0,0],dynamicInset:!0});switch(f[e]=o,i.has(e)&&(o.autoArrow=!1),e){case"top":case"topLeft":case"topRight":o.offset[1]=-d-s;break;case"bottom":case"bottomLeft":case"bottomRight":o.offset[1]=d+s;break;case"left":case"leftTop":case"leftBottom":o.offset[0]=-d-s;break;case"right":case"rightTop":case"rightBottom":o.offset[0]=d+s}if(l)switch(e){case"topLeft":case"bottomLeft":o.offset[0]=-p.arrowOffsetHorizontal-d;break;case"topRight":case"bottomRight":o.offset[0]=p.arrowOffsetHorizontal+d;break;case"leftTop":case"rightTop":o.offset[1]=-(2*p.arrowOffsetHorizontal)+d;break;case"leftBottom":case"rightBottom":o.offset[1]=2*p.arrowOffsetHorizontal-d}o.overflow=function(e,t,r,o){if(!1===o)return{adjustX:!1,adjustY:!1};let n={};switch(e){case"top":case"bottom":n.shiftX=2*t.arrowOffsetHorizontal+r,n.shiftY=!0,n.adjustY=!0;break;case"left":case"right":n.shiftY=2*t.arrowOffsetVertical+r,n.shiftX=!0,n.adjustX=!0}let a=Object.assign(Object.assign({},n),o&&"object"==typeof o?o:{});return a.shiftX||(a.adjustX=!0),a.shiftY||(a.adjustY=!0),a}(e,p,t,r),u&&(o.htmlRegion="visibleFirst")}),f}],805984)},880476,e=>{"use strict";var t=e.i(552821);e.s(["Popup",()=>t.default])},617933,e=>{"use strict";e.s(["PresetColors",0,["blue","purple","cyan","green","magenta","pink","red","orange","yellow","volcano","geekblue","lime","gold"]])},403541,e=>{"use strict";var t=e.i(617933);e.s(["genPresetColor",0,function(e,r){return t.PresetColors.reduce((t,o)=>{let n=e[`${o}1`],a=e[`${o}3`],i=e[`${o}6`],l=e[`${o}7`];return Object.assign(Object.assign({},t),r(o,{lightColor:n,lightBorderColor:a,darkColor:i,textColor:l}))},{})}],403541)},57667,e=>{"use strict";e.i(296059);var t=e.i(915654),r=e.i(183293),o=e.i(717356),n=e.i(320560),a=e.i(307358),i=e.i(403541),l=e.i(246422),s=e.i(838378);let c=e=>Object.assign(Object.assign({zIndexPopup:e.zIndexPopupBase+70},(0,n.getArrowOffsetToken)({contentRadius:e.borderRadius,limitVerticalRadius:!0})),(0,a.getArrowToken)((0,s.mergeToken)(e,{borderRadiusOuter:Math.min(e.borderRadiusOuter,4)})));e.s(["default",0,(e,a=!0)=>(0,l.genStyleHooks)("Tooltip",e=>{let{borderRadius:a,colorTextLightSolid:l,colorBgSpotlight:c}=e;return[(e=>{let{calc:o,componentCls:a,tooltipMaxWidth:l,tooltipColor:s,tooltipBg:c,tooltipBorderRadius:u,zIndexPopup:d,controlHeight:f,boxShadowSecondary:p,paddingSM:h,paddingXS:m,arrowOffsetHorizontal:g,sizePopupArrow:v}=e,y=o(u).add(v).add(g).equal(),b=o(u).mul(2).add(v).equal();return[{[a]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,r.resetComponent)(e)),{position:"absolute",zIndex:d,display:"block",width:"max-content",maxWidth:l,visibility:"visible","--valid-offset-x":"var(--arrow-offset-horizontal, var(--arrow-x))",transformOrigin:"var(--valid-offset-x, 50%) var(--arrow-y, 50%)","&-hidden":{display:"none"},"--antd-arrow-background-color":c,[`${a}-inner`]:{minWidth:b,minHeight:f,padding:`${(0,t.unit)(e.calc(h).div(2).equal())} ${(0,t.unit)(m)}`,color:`var(--ant-tooltip-color, ${s})`,textAlign:"start",textDecoration:"none",wordWrap:"break-word",backgroundColor:c,borderRadius:u,boxShadow:p,boxSizing:"border-box"},"&-placement-topLeft,&-placement-topRight,&-placement-bottomLeft,&-placement-bottomRight":{minWidth:y},"&-placement-left,&-placement-leftTop,&-placement-leftBottom,&-placement-right,&-placement-rightTop,&-placement-rightBottom":{[`${a}-inner`]:{borderRadius:e.min(u,n.MAX_VERTICAL_CONTENT_RADIUS)}},[`${a}-content`]:{position:"relative"}}),(0,i.genPresetColor)(e,(e,{darkColor:t})=>({[`&${a}-${e}`]:{[`${a}-inner`]:{backgroundColor:t},[`${a}-arrow`]:{"--antd-arrow-background-color":t}}}))),{"&-rtl":{direction:"rtl"}})},(0,n.default)(e,"var(--antd-arrow-background-color)"),{[`${a}-pure`]:{position:"relative",maxWidth:"none",margin:e.sizePopupArrow}}]})((0,s.mergeToken)(e,{tooltipMaxWidth:250,tooltipColor:l,tooltipBorderRadius:a,tooltipBg:c})),(0,o.initZoomMotion)(e,"zoom-big-fast")]},c,{resetStyle:!1,injectStyle:a})(e)])},702779,e=>{"use strict";var t=e.i(8211),r=e.i(617933);let o=r.PresetColors.map(e=>`${e}-inverse`),n=["success","processing","error","default","warning"];e.s(["isPresetColor",0,function(e,n=!0){return n?[].concat((0,t.default)(o),(0,t.default)(r.PresetColors)).includes(e):r.PresetColors.includes(e)},"isPresetStatusColor",0,function(e){return n.includes(e)}])},571070,814690,162464,509808,e=>{"use strict";var t=e.i(278409),r=e.i(233848);e.i(247167),e.i(931067);var o=e.i(211577),n=e.i(392221),a=e.i(271645),i=e.i(209428),l=e.i(868917),s=e.i(674813),c=e.i(703923),u=e.i(410160),d=e.i(135551),f=["b"],p=["v"],h=function(e){return Math.round(Number(e||0))},m=function(e){if(e instanceof d.FastColor)return e;if(e&&"object"===(0,u.default)(e)&&"h"in e&&"b"in e){var t=e.b,r=(0,c.default)(e,f);return(0,i.default)((0,i.default)({},r),{},{v:t})}return"string"==typeof e&&/hsb/.test(e)?e.replace(/hsb/,"hsv"):e},g=function(e){(0,l.default)(n,e);var o=(0,s.default)(n);function n(e){return(0,t.default)(this,n),o.call(this,m(e))}return(0,r.default)(n,[{key:"toHsbString",value:function(){var e=this.toHsb(),t=h(100*e.s),r=h(100*e.b),o=h(e.h),n=e.a,a="hsb(".concat(o,", ").concat(t,"%, ").concat(r,"%)"),i="hsba(".concat(o,", ").concat(t,"%, ").concat(r,"%, ").concat(n.toFixed(2*(0!==n)),")");return 1===n?a:i}},{key:"toHsb",value:function(){var e=this.toHsv(),t=e.v,r=(0,c.default)(e,p);return(0,i.default)((0,i.default)({},r),{},{b:t,a:this.a})}}]),n}(d.FastColor);e.s(["Color",0,g],814690);var v=function(e){return e instanceof g?e:new g(e)};v("#1677ff");var y=e.i(343794);e.s(["default",0,function(e){var t=e.color,r=e.prefixCls,o=e.className,n=e.style,i=e.onClick,l="".concat(r,"-color-block");return a.default.createElement("div",{className:(0,y.default)(l,o),style:n,onClick:i},a.default.createElement("div",{className:"".concat(l,"-inner"),style:{background:t}}))}],162464);e.i(62664);e.i(697539);e.i(914949);e.s([],509808);let b=(0,r.default)(function e(r){var o;if((0,t.default)(this,e),this.cleared=!1,r instanceof e){this.metaColor=r.metaColor.clone(),this.colors=null==(o=r.colors)?void 0:o.map(t=>({color:new e(t.color),percent:t.percent})),this.cleared=r.cleared;return}let n=Array.isArray(r);n&&r.length?(this.colors=r.map(({color:t,percent:r})=>({color:new e(t),percent:r})),this.metaColor=new g(this.colors[0].color.metaColor)):this.metaColor=new g(n?"":r),r&&(!n||this.colors)||(this.metaColor=this.metaColor.setA(0),this.cleared=!0)},[{key:"toHsb",value:function(){return this.metaColor.toHsb()}},{key:"toHsbString",value:function(){return this.metaColor.toHsbString()}},{key:"toHex",value:function(){var e,t;return e=this.toHexString(),t=this.metaColor.a<1,e&&(null==e?void 0:e.replace(/[^\w/]/g,"").slice(0,t?8:6))||""}},{key:"toHexString",value:function(){return this.metaColor.toHexString()}},{key:"toRgb",value:function(){return this.metaColor.toRgb()}},{key:"toRgbString",value:function(){return this.metaColor.toRgbString()}},{key:"isGradient",value:function(){return!!this.colors&&!this.cleared}},{key:"getColors",value:function(){return this.colors||[{color:this,percent:0}]}},{key:"toCssString",value:function(){let{colors:e}=this;if(e){let t=e.map(e=>`${e.color.toRgbString()} ${e.percent}%`).join(", ");return`linear-gradient(90deg, ${t})`}return this.metaColor.toRgbString()}},{key:"equals",value:function(e){return!!e&&this.isGradient()===e.isGradient()&&(this.isGradient()?this.colors.length===e.colors.length&&this.colors.every((t,r)=>{let o=e.colors[r];return t.percent===o.percent&&t.color.equals(o.color)}):this.toHexString()===e.toHexString())}}]);e.s(["AggregationColor",0,b],571070)},656449,e=>{"use strict";e.i(8211),e.i(509808),e.i(814690);var t=e.i(571070);e.s(["generateColor",0,e=>e instanceof t.AggregationColor?e:new t.AggregationColor(e)])},491816,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(793154),n=e.i(914949),a=e.i(617206),i=e.i(122767),l=e.i(613541),s=e.i(805984),c=e.i(763731),u=e.i(747656),d=e.i(340010),f=e.i(242064),p=e.i(104458),h=e.i(880476),m=e.i(57667),g=e.i(702779),v=e.i(656449);function y(e,t){let o=(0,g.isPresetColor)(t),n=(0,r.default)({[`${e}-${t}`]:t&&o}),a={},i={},l=(0,v.generateColor)(t).toRgb(),s=(.299*l.r+.587*l.g+.114*l.b)/255;return t&&!o&&(a.background=t,a["--ant-tooltip-color"]=s<.5?"#FFF":"#000",i["--antd-arrow-background-color"]=t),{className:n,overlayStyle:a,arrowStyle:i}}var b=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let w=t.forwardRef((e,h)=>{var g,v;let{prefixCls:w,openClassName:$,getTooltipContainer:C,color:x,overlayInnerStyle:E,children:S,afterOpenChange:k,afterVisibleChange:j,destroyTooltipOnHide:O,destroyOnHidden:T,arrow:I=!0,title:_,overlay:F,builtinPlacements:P,arrowPointAtCenter:R=!1,autoAdjustOverflow:N=!0,motion:M,getPopupContainer:B,placement:A="top",mouseEnterDelay:z=.1,mouseLeaveDelay:L=.1,overlayStyle:D,rootClassName:H,overlayClassName:V,styles:W,classNames:U}=e,G=b(e,["prefixCls","openClassName","getTooltipContainer","color","overlayInnerStyle","children","afterOpenChange","afterVisibleChange","destroyTooltipOnHide","destroyOnHidden","arrow","title","overlay","builtinPlacements","arrowPointAtCenter","autoAdjustOverflow","motion","getPopupContainer","placement","mouseEnterDelay","mouseLeaveDelay","overlayStyle","rootClassName","overlayClassName","styles","classNames"]),q=!!I,[,J]=(0,p.useToken)(),{getPopupContainer:K,getPrefixCls:X,direction:Q,className:Y,style:Z,classNames:ee,styles:et}=(0,f.useComponentConfig)("tooltip"),er=(0,u.devUseWarning)("Tooltip"),eo=t.useRef(null),en=()=>{var e;null==(e=eo.current)||e.forceAlign()};t.useImperativeHandle(h,()=>{var e,t;return{forceAlign:en,forcePopupAlign:()=>{er.deprecated(!1,"forcePopupAlign","forceAlign"),en()},nativeElement:null==(e=eo.current)?void 0:e.nativeElement,popupElement:null==(t=eo.current)?void 0:t.popupElement}});let[ea,ei]=(0,n.default)(!1,{value:null!=(g=e.open)?g:e.visible,defaultValue:null!=(v=e.defaultOpen)?v:e.defaultVisible}),el=!_&&!F&&0!==_,es=t.useMemo(()=>{var e,t;let r=R;return"object"==typeof I&&(r=null!=(t=null!=(e=I.pointAtCenter)?e:I.arrowPointAtCenter)?t:R),P||(0,s.default)({arrowPointAtCenter:r,autoAdjustOverflow:N,arrowWidth:q?J.sizePopupArrow:0,borderRadius:J.borderRadius,offset:J.marginXXS,visibleFirst:!0})},[R,I,P,J]),ec=t.useMemo(()=>0===_?_:F||_||"",[F,_]),eu=t.createElement(a.default,{space:!0},"function"==typeof ec?ec():ec),ed=X("tooltip",w),ef=X(),ep=e["data-popover-inject"],eh=ea;"open"in e||"visible"in e||!el||(eh=!1);let em=t.isValidElement(S)&&!(0,c.isFragment)(S)?S:t.createElement("span",null,S),eg=em.props,ev=eg.className&&"string"!=typeof eg.className?eg.className:(0,r.default)(eg.className,$||`${ed}-open`),[ey,eb,ew]=(0,m.default)(ed,!ep),e$=y(ed,x),eC=e$.arrowStyle,ex=(0,r.default)(V,{[`${ed}-rtl`]:"rtl"===Q},e$.className,H,eb,ew,Y,ee.root,null==U?void 0:U.root),eE=(0,r.default)(ee.body,null==U?void 0:U.body),[eS,ek]=(0,i.useZIndex)("Tooltip",G.zIndex),ej=t.createElement(o.default,Object.assign({},G,{zIndex:eS,showArrow:q,placement:A,mouseEnterDelay:z,mouseLeaveDelay:L,prefixCls:ed,classNames:{root:ex,body:eE},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},eC),et.root),Z),D),null==W?void 0:W.root),body:Object.assign(Object.assign(Object.assign(Object.assign({},et.body),E),null==W?void 0:W.body),e$.overlayStyle)},getTooltipContainer:B||C||K,ref:eo,builtinPlacements:es,overlay:eu,visible:eh,onVisibleChange:t=>{var r,o;ei(!el&&t),el||(null==(r=e.onOpenChange)||r.call(e,t),null==(o=e.onVisibleChange)||o.call(e,t))},afterVisibleChange:null!=k?k:j,arrowContent:t.createElement("span",{className:`${ed}-arrow-content`}),motion:{motionName:(0,l.getTransitionName)(ef,"zoom-big-fast",e.transitionName),motionDeadline:1e3},destroyTooltipOnHide:null!=T?T:!!O}),eh?(0,c.cloneElement)(em,{className:ev}):em);return ey(t.createElement(d.default.Provider,{value:ek},ej))});w._InternalPanelDoNotUseOrYouWillBeFired=e=>{let{prefixCls:o,className:n,placement:a="top",title:i,color:l,overlayInnerStyle:s}=e,{getPrefixCls:c}=t.useContext(f.ConfigContext),u=c("tooltip",o),[d,p,g]=(0,m.default)(u),v=y(u,l),b=v.arrowStyle,w=Object.assign(Object.assign({},s),v.overlayStyle),$=(0,r.default)(p,g,u,`${u}-pure`,`${u}-placement-${a}`,n,v.className);return d(t.createElement("div",{className:$,style:b},t.createElement("div",{className:`${u}-arrow`}),t.createElement(h.Popup,Object.assign({},e,{className:p,prefixCls:u,overlayInnerStyle:w}),i)))},e.s(["default",0,w],491816)},808613,905536,e=>{"use strict";e.i(247167);var t=e.i(62139),r=e.i(782074),o=e.i(56117),n=e.i(411412),a=e.i(923624),i=e.i(8211),l=e.i(271645),s=e.i(343794);e.i(495347);var c=e.i(420422),u=e.i(355268),d=e.i(220489),f=e.i(290967),p=e.i(611935),h=e.i(763731),m=e.i(747656),g=e.i(242064),v=e.i(321883),y=e.i(522228),b=e.i(893872),w=e.i(857034),$=e.i(606836),C=e.i(908709),x=e.i(531880),E=e.i(606262),S=e.i(174428),k=e.i(529681),j=e.i(264042),O=e.i(292169),T=e.i(684024),I=e.i(995144),_=e.i(131757),F=e.i(408850),P=e.i(87414),R=e.i(491816),N=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let M=({prefixCls:e,label:r,htmlFor:o,labelCol:n,labelAlign:a,colon:i,required:c,requiredMark:u,tooltip:d,vertical:f})=>{var p;let h,[m]=(0,F.useLocale)("Form"),{labelAlign:g,labelCol:v,labelWrap:y,colon:b}=l.useContext(t.FormContext);if(!r)return null;let w=n||v||{},$=`${e}-item-label`,C=(0,s.default)($,"left"===(a||g)&&`${$}-left`,w.className,{[`${$}-wrap`]:!!y}),x=r,E=!0===i||!1!==b&&!1!==i;E&&!f&&"string"==typeof r&&r.trim()&&(x=r.replace(/[:|:]\s*$/,""));let S=(0,I.default)(d);if(S){let{icon:t=l.createElement(T.default,null)}=S,r=N(S,["icon"]),o=l.createElement(R.default,Object.assign({},r),l.cloneElement(t,{className:`${e}-item-tooltip`,title:"",onClick:e=>{e.preventDefault()},tabIndex:null}));x=l.createElement(l.Fragment,null,x,o)}let k="optional"===u,j="function"==typeof u;j?x=u(x,{required:!!c}):k&&!c&&(x=l.createElement(l.Fragment,null,x,l.createElement("span",{className:`${e}-item-optional`,title:""},(null==m?void 0:m.optional)||(null==(p=P.default.Form)?void 0:p.optional)))),!1===u?h="hidden":(k||j)&&(h="optional");let O=(0,s.default)({[`${e}-item-required`]:c,[`${e}-item-required-mark-${h}`]:h,[`${e}-item-no-colon`]:!E});return l.createElement(_.default,Object.assign({},w,{className:C}),l.createElement("label",{htmlFor:o,className:O,title:"string"==typeof r?r:""},x))};var B=e.i(830919),A=e.i(201072),z=e.i(726289),L=e.i(562901),D=e.i(739295);let H={success:A.default,warning:L.default,error:z.default,validating:D.default};function V({children:e,errors:r,warnings:o,hasFeedback:n,validateStatus:a,prefixCls:i,meta:c,noStyle:u,name:d}){let f=`${i}-item`,{feedbackIcons:p}=l.useContext(t.FormContext),h=(0,x.getStatus)(r,o,c,null,!!n,a),{isFormItemInput:m,status:g,hasFeedback:v,feedbackIcon:y,name:b}=l.useContext(t.FormItemInputContext),w=l.useMemo(()=>{var e;let t;if(n){let a=!0!==n&&n.icons||p,i=h&&(null==(e=null==a?void 0:a({status:h,errors:r,warnings:o}))?void 0:e[h]),c=h?H[h]:null;t=!1!==i&&c?l.createElement("span",{className:(0,s.default)(`${f}-feedback-icon`,`${f}-feedback-icon-${h}`)},i||l.createElement(c,null)):null}let a={status:h||"",errors:r,warnings:o,hasFeedback:!!n,feedbackIcon:t,isFormItemInput:!0,name:d};return u&&(a.status=(null!=h?h:g)||"",a.isFormItemInput=m,a.hasFeedback=!!(null!=n?n:v),a.feedbackIcon=void 0!==n?a.feedbackIcon:y,a.name=null!=d?d:b),a},[h,n,u,m,g]);return l.createElement(t.FormItemInputContext.Provider,{value:w},e)}var W=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};function U(e){let{prefixCls:r,className:o,rootClassName:n,style:a,help:i,errors:c,warnings:u,validateStatus:d,meta:f,hasFeedback:p,hidden:h,children:m,fieldId:g,required:v,isRequired:y,onSubItemMetaChange:b,layout:w,name:$}=e,C=W(e,["prefixCls","className","rootClassName","style","help","errors","warnings","validateStatus","meta","hasFeedback","hidden","children","fieldId","required","isRequired","onSubItemMetaChange","layout","name"]),T=`${r}-item`,{requiredMark:I,layout:_}=l.useContext(t.FormContext),F=w||_,P="vertical"===F,R=l.useRef(null),N=(0,B.default)(c),A=(0,B.default)(u),z=null!=i,L=!!(z||c.length||u.length),D=!!R.current&&(0,E.default)(R.current),[H,U]=l.useState(null);(0,S.default)(()=>{L&&R.current&&U(Number.parseInt(getComputedStyle(R.current).marginBottom,10))},[L,D]);let G=((e=!1)=>{let t=e?N:f.errors,r=e?A:f.warnings;return(0,x.getStatus)(t,r,f,"",!!p,d)})(),q=(0,s.default)(T,o,n,{[`${T}-with-help`]:z||N.length||A.length,[`${T}-has-feedback`]:G&&p,[`${T}-has-success`]:"success"===G,[`${T}-has-warning`]:"warning"===G,[`${T}-has-error`]:"error"===G,[`${T}-is-validating`]:"validating"===G,[`${T}-hidden`]:h,[`${T}-${F}`]:F});return l.createElement("div",{className:q,style:a,ref:R},l.createElement(j.Row,Object.assign({className:`${T}-row`},(0,k.default)(C,["_internalItemRender","colon","dependencies","extra","fieldKey","getValueFromEvent","getValueProps","htmlFor","id","initialValue","isListField","label","labelAlign","labelCol","labelWrap","messageVariables","name","normalize","noStyle","preserve","requiredMark","rules","shouldUpdate","trigger","tooltip","validateFirst","validateTrigger","valuePropName","wrapperCol","validateDebounce"])),l.createElement(M,Object.assign({htmlFor:g},e,{requiredMark:I,required:null!=v?v:y,prefixCls:r,vertical:P})),l.createElement(O.default,Object.assign({},e,f,{errors:N,warnings:A,prefixCls:r,status:G,help:i,marginBottom:H,onErrorVisibleChanged:e=>{e||U(null)}}),l.createElement(t.NoStyleItemContext.Provider,{value:b},l.createElement(V,{prefixCls:r,meta:f,errors:f.errors,warnings:f.warnings,hasFeedback:p,validateStatus:G,name:$},m)))),!!H&&l.createElement("div",{className:`${T}-margin-offset`,style:{marginBottom:-H}}))}let G=l.memo(({children:e})=>e,(e,t)=>{var r,o;let n,a;return r=e.control,o=t.control,n=Object.keys(r),a=Object.keys(o),n.length===a.length&&n.every(e=>{let t=r[e],n=o[e];return t===n||"function"==typeof t||"function"==typeof n})&&e.update===t.update&&e.childProps.length===t.childProps.length&&e.childProps.every((e,r)=>e===t.childProps[r])});function q(){return{errors:[],warnings:[],touched:!1,validating:!1,name:[],validated:!1}}let J=function(e){let{name:r,noStyle:o,className:n,dependencies:a,prefixCls:b,shouldUpdate:E,rules:S,children:k,required:j,label:O,messageVariables:T,trigger:I="onChange",validateTrigger:_,hidden:F,help:P,layout:R}=e,{getPrefixCls:N}=l.useContext(g.ConfigContext),{name:M}=l.useContext(t.FormContext),B=(0,y.default)(k),A="function"==typeof B,z=l.useContext(t.NoStyleItemContext),{validateTrigger:L}=l.useContext(u.FieldContext),D=void 0!==_?_:L,H=null!=r,W=N("form",b),J=(0,v.default)(W),[K,X,Q]=(0,C.default)(W,J);(0,m.devUseWarning)("Form.Item");let Y=l.useContext(d.ListContext),Z=l.useRef(null),[ee,et]=(0,w.default)({}),[er,eo]=(0,f.default)(()=>q()),en=(e,t)=>{et(r=>{let o=Object.assign({},r),n=[].concat((0,i.default)(e.name.slice(0,-1)),(0,i.default)(t)).join("__SPLIT__");return e.destroy?delete o[n]:o[n]=e,o})},[ea,ei]=l.useMemo(()=>{let e=(0,i.default)(er.errors),t=(0,i.default)(er.warnings);return Object.values(ee).forEach(r=>{e.push.apply(e,(0,i.default)(r.errors||[])),t.push.apply(t,(0,i.default)(r.warnings||[]))}),[e,t]},[ee,er.errors,er.warnings]),el=(0,$.default)();function es(t,a,i){return o&&!F?l.createElement(V,{prefixCls:W,hasFeedback:e.hasFeedback,validateStatus:e.validateStatus,meta:er,errors:ea,warnings:ei,noStyle:!0,name:r},t):l.createElement(U,Object.assign({key:"row"},e,{className:(0,s.default)(n,Q,J,X),prefixCls:W,fieldId:a,isRequired:i,errors:ea,warnings:ei,meta:er,onSubItemMetaChange:en,layout:R,name:r}),t)}if(!H&&!A&&!a)return K(es(B));let ec={};return"string"==typeof O?ec.label=O:r&&(ec.label=String(r)),T&&(ec=Object.assign(Object.assign({},ec),T)),K(l.createElement(c.Field,Object.assign({},e,{messageVariables:ec,trigger:I,validateTrigger:D,onMetaChange:e=>{let t=null==Y?void 0:Y.getKey(e.name);if(eo(e.destroy?q():e,!0),o&&!1!==P&&z){let r=e.name;if(e.destroy)r=Z.current||r;else if(void 0!==t){let[e,o]=t;Z.current=r=[e].concat((0,i.default)(o))}z(e,r)}}}),(t,o,n)=>{let s=(0,x.toArray)(r).length&&o?o.name:[],c=(0,x.getFieldId)(s,M),u=void 0!==j?j:!!(null==S?void 0:S.some(e=>{if(e&&"object"==typeof e&&e.required&&!e.warningOnly)return!0;if("function"==typeof e){let t=e(n);return(null==t?void 0:t.required)&&!(null==t?void 0:t.warningOnly)}return!1})),d=Object.assign({},t),f=null;if(Array.isArray(B)&&H)f=B;else if(A&&(!(E||a)||H));else if(!a||A||H)if(l.isValidElement(B)){let t=Object.assign(Object.assign({},B.props),d);if(t.id||(t.id=c),P||ea.length>0||ei.length>0||e.extra){let r=[];(P||ea.length>0)&&r.push(`${c}_help`),e.extra&&r.push(`${c}_extra`),t["aria-describedby"]=r.join(" ")}ea.length>0&&(t["aria-invalid"]="true"),u&&(t["aria-required"]="true"),(0,p.supportRef)(B)&&(t.ref=el(s,B)),new Set([].concat((0,i.default)((0,x.toArray)(I)),(0,i.default)((0,x.toArray)(D)))).forEach(e=>{t[e]=(...t)=>{var r,o,n;null==(r=d[e])||r.call.apply(r,[d].concat(t)),null==(n=(o=B.props)[e])||n.call.apply(n,[o].concat(t))}});let r=[t["aria-required"],t["aria-invalid"],t["aria-describedby"]];f=l.createElement(G,{control:d,update:B,childProps:r},(0,h.cloneElement)(B,t))}else f=A&&(E||a)&&!H?B(n):B;return es(f,c,u)}))};J.useStatus=b.default,e.s(["default",0,J],905536);var K=e.i(53058),X=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let Q=o.default;Q.Item=J,Q.List=e=>{var{prefixCls:r,children:o}=e,n=X(e,["prefixCls","children"]);let{getPrefixCls:a}=l.useContext(g.ConfigContext),i=a("form",r),s=l.useMemo(()=>({prefixCls:i,status:"error"}),[i]);return l.createElement(K.List,Object.assign({},n),(e,r,n)=>l.createElement(t.FormItemPrefixContext.Provider,{value:s},o(e.map(e=>Object.assign(Object.assign({},e),{fieldKey:e.key})),r,{errors:n.errors,warnings:n.warnings})))},Q.ErrorList=r.default,Q.useForm=n.useForm,Q.useFormInstance=function(){let{form:e}=l.useContext(t.FormContext);return e},Q.useWatch=a.useWatch,Q.Provider=t.FormProvider,Q.create=()=>{},e.s(["Form",0,Q],808613)},372409,e=>{"use strict";e.s(["genCompactItemStyle",0,function(e,t={focus:!0}){let{componentCls:r}=e,{componentCls:o}=t,n=o||r,a=`${n}-compact`;return{[a]:Object.assign(Object.assign({},function(e,t,r,o){let{focusElCls:n,focus:a,borderElCls:i}=r,l=i?"> *":"",s=["hover",a?"focus":null,"active"].filter(Boolean).map(e=>`&:${e} ${l}`).join(",");return{[`&-item:not(${t}-last-item)`]:{marginInlineEnd:e.calc(e.lineWidth).mul(-1).equal()},[`&-item:not(${o}-status-success)`]:{zIndex:2},"&-item":Object.assign(Object.assign({[s]:{zIndex:3}},n?{[`&${n}`]:{zIndex:3}}:{}),{[`&[disabled] ${l}`]:{zIndex:0}})}}(e,a,t,n)),function(e,t,r){let{borderElCls:o}=r,n=o?`> ${o}`:"";return{[`&-item:not(${t}-first-item):not(${t}-last-item) ${n}`]:{borderRadius:0},[`&-item:not(${t}-last-item)${t}-first-item`]:{[`& ${n}, &${e}-sm ${n}, &${e}-lg ${n}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&-item:not(${t}-first-item)${t}-last-item`]:{[`& ${n}, &${e}-sm ${n}, &${e}-lg ${n}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}}}(n,a,t))}}])},349942,517458,889943,e=>{"use strict";e.i(296059);var t=e.i(915654),r=e.i(183293),o=e.i(372409),n=e.i(246422),a=e.i(838378);function i(e){return(0,a.mergeToken)(e,{inputAffixPadding:e.paddingXXS})}let l=e=>{let{controlHeight:t,fontSize:r,lineHeight:o,lineWidth:n,controlHeightSM:a,controlHeightLG:i,fontSizeLG:l,lineHeightLG:s,paddingSM:c,controlPaddingHorizontalSM:u,controlPaddingHorizontal:d,colorFillAlter:f,colorPrimaryHover:p,colorPrimary:h,controlOutlineWidth:m,controlOutline:g,colorErrorOutline:v,colorWarningOutline:y,colorBgContainer:b,inputFontSize:w,inputFontSizeLG:$,inputFontSizeSM:C}=e,x=w||r,E=C||x,S=$||l;return{paddingBlock:Math.max(Math.round((t-x*o)/2*10)/10-n,0),paddingBlockSM:Math.max(Math.round((a-E*o)/2*10)/10-n,0),paddingBlockLG:Math.max(Math.ceil((i-S*s)/2*10)/10-n,0),paddingInline:c-n,paddingInlineSM:u-n,paddingInlineLG:d-n,addonBg:f,activeBorderColor:h,hoverBorderColor:p,activeShadow:`0 0 0 ${m}px ${g}`,errorActiveShadow:`0 0 0 ${m}px ${v}`,warningActiveShadow:`0 0 0 ${m}px ${y}`,hoverBg:b,activeBg:b,inputFontSize:x,inputFontSizeLG:S,inputFontSizeSM:E}};e.s(["initComponentToken",0,l,"initInputToken",0,i],517458);let s=e=>{let t;return{color:e.colorTextDisabled,backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,boxShadow:"none",cursor:"not-allowed",opacity:1,"input[disabled], textarea[disabled]":{cursor:"not-allowed"},"&:hover:not([disabled])":Object.assign({},{borderColor:(t=(0,a.mergeToken)(e,{hoverBorderColor:e.colorBorder,hoverBg:e.colorBgContainerDisabled})).hoverBorderColor,backgroundColor:t.hoverBg})}},c=(e,t)=>({background:e.colorBgContainer,borderWidth:e.lineWidth,borderStyle:e.lineType,borderColor:t.borderColor,"&:hover":{borderColor:t.hoverBorderColor,backgroundColor:e.hoverBg},"&:focus, &:focus-within":{borderColor:t.activeBorderColor,boxShadow:t.activeShadow,outline:0,backgroundColor:e.activeBg}}),u=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},c(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}}),[`&${e.componentCls}-status-${t.status}${e.componentCls}-disabled`]:{borderColor:t.borderColor}}),d=(e,t)=>({"&-outlined":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},c(e,{borderColor:e.colorBorder,hoverBorderColor:e.hoverBorderColor,activeBorderColor:e.activeBorderColor,activeShadow:e.activeShadow})),{[`&${e.componentCls}-disabled, &[disabled]`]:Object.assign({},s(e))}),u(e,{status:"error",borderColor:e.colorError,hoverBorderColor:e.colorErrorBorderHover,activeBorderColor:e.colorError,activeShadow:e.errorActiveShadow,affixColor:e.colorError})),u(e,{status:"warning",borderColor:e.colorWarning,hoverBorderColor:e.colorWarningBorderHover,activeBorderColor:e.colorWarning,activeShadow:e.warningActiveShadow,affixColor:e.colorWarning})),t)}),f=(e,t)=>({[`&${e.componentCls}-group-wrapper-status-${t.status}`]:{[`${e.componentCls}-group-addon`]:{borderColor:t.addonBorderColor,color:t.addonColor}}}),p=e=>({"&-outlined":Object.assign(Object.assign(Object.assign({[`${e.componentCls}-group`]:{"&-addon":{background:e.addonBg,border:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},"&-addon:first-child":{borderInlineEnd:0},"&-addon:last-child":{borderInlineStart:0}}},f(e,{status:"error",addonBorderColor:e.colorError,addonColor:e.colorErrorText})),f(e,{status:"warning",addonBorderColor:e.colorWarning,addonColor:e.colorWarningText})),{[`&${e.componentCls}-group-wrapper-disabled`]:{[`${e.componentCls}-group-addon`]:Object.assign({},s(e))}})}),h=(e,t)=>{let{componentCls:r}=e;return{"&-borderless":Object.assign({background:"transparent",border:"none","&:focus, &:focus-within":{outline:"none"},[`&${r}-disabled, &[disabled]`]:{color:e.colorTextDisabled,cursor:"not-allowed"},[`&${r}-status-error`]:{"&, & input, & textarea":{color:e.colorError}},[`&${r}-status-warning`]:{"&, & input, & textarea":{color:e.colorWarning}}},t)}},m=(e,t)=>{var r;return{background:t.bg,borderWidth:e.lineWidth,borderStyle:e.lineType,borderColor:"transparent","input&, & input, textarea&, & textarea":{color:null!=(r=null==t?void 0:t.inputColor)?r:"unset"},"&:hover":{background:t.hoverBg},"&:focus, &:focus-within":{outline:0,borderColor:t.activeBorderColor,backgroundColor:e.activeBg}}},g=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},m(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}})}),v=(e,t)=>({"&-filled":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},m(e,{bg:e.colorFillTertiary,hoverBg:e.colorFillSecondary,activeBorderColor:e.activeBorderColor})),{[`&${e.componentCls}-disabled, &[disabled]`]:Object.assign({},s(e))}),g(e,{status:"error",bg:e.colorErrorBg,hoverBg:e.colorErrorBgHover,activeBorderColor:e.colorError,inputColor:e.colorErrorText,affixColor:e.colorError})),g(e,{status:"warning",bg:e.colorWarningBg,hoverBg:e.colorWarningBgHover,activeBorderColor:e.colorWarning,inputColor:e.colorWarningText,affixColor:e.colorWarning})),t)}),y=(e,t)=>({[`&${e.componentCls}-group-wrapper-status-${t.status}`]:{[`${e.componentCls}-group-addon`]:{background:t.addonBg,color:t.addonColor}}}),b=e=>({"&-filled":Object.assign(Object.assign(Object.assign({[`${e.componentCls}-group-addon`]:{background:e.colorFillTertiary,"&:last-child":{position:"static"}}},y(e,{status:"error",addonBg:e.colorErrorBg,addonColor:e.colorErrorText})),y(e,{status:"warning",addonBg:e.colorWarningBg,addonColor:e.colorWarningText})),{[`&${e.componentCls}-group-wrapper-disabled`]:{[`${e.componentCls}-group`]:{"&-addon":{background:e.colorFillTertiary,color:e.colorTextDisabled},"&-addon:first-child":{borderInlineStart:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderTop:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderBottom:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},"&-addon:last-child":{borderInlineEnd:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderTop:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderBottom:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`}}}})}),w=(e,r)=>({background:e.colorBgContainer,borderWidth:`${(0,t.unit)(e.lineWidth)} 0`,borderStyle:`${e.lineType} none`,borderColor:`transparent transparent ${r.borderColor} transparent`,borderRadius:0,"&:hover":{borderColor:`transparent transparent ${r.hoverBorderColor} transparent`,backgroundColor:e.hoverBg},"&:focus, &:focus-within":{borderColor:`transparent transparent ${r.activeBorderColor} transparent`,outline:0,backgroundColor:e.activeBg}}),$=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},w(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}}),[`&${e.componentCls}-status-${t.status}${e.componentCls}-disabled`]:{borderColor:`transparent transparent ${t.borderColor} transparent`}}),C=(e,t)=>({"&-underlined":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},w(e,{borderColor:e.colorBorder,hoverBorderColor:e.hoverBorderColor,activeBorderColor:e.activeBorderColor,activeShadow:e.activeShadow})),{[`&${e.componentCls}-disabled, &[disabled]`]:{color:e.colorTextDisabled,boxShadow:"none",cursor:"not-allowed","&:hover":{borderColor:`transparent transparent ${e.colorBorder} transparent`}},"input[disabled], textarea[disabled]":{cursor:"not-allowed"}}),$(e,{status:"error",borderColor:e.colorError,hoverBorderColor:e.colorErrorBorderHover,activeBorderColor:e.colorError,activeShadow:e.errorActiveShadow,affixColor:e.colorError})),$(e,{status:"warning",borderColor:e.colorWarning,hoverBorderColor:e.colorWarningBorderHover,activeBorderColor:e.colorWarning,activeShadow:e.warningActiveShadow,affixColor:e.colorWarning})),t)});e.s(["genBaseOutlinedStyle",0,c,"genBorderlessStyle",0,h,"genDisabledStyle",0,s,"genFilledGroupStyle",0,b,"genFilledStyle",0,v,"genOutlinedGroupStyle",0,p,"genOutlinedStyle",0,d,"genUnderlinedStyle",0,C],889943);let x=e=>({"&::-moz-placeholder":{opacity:1},"&::placeholder":{color:e,userSelect:"none"},"&:placeholder-shown":{textOverflow:"ellipsis"}}),E=e=>{let{paddingBlockLG:r,lineHeightLG:o,borderRadiusLG:n,paddingInlineLG:a}=e;return{padding:`${(0,t.unit)(r)} ${(0,t.unit)(a)}`,fontSize:e.inputFontSizeLG,lineHeight:o,borderRadius:n}},S=e=>({padding:`${(0,t.unit)(e.paddingBlockSM)} ${(0,t.unit)(e.paddingInlineSM)}`,fontSize:e.inputFontSizeSM,borderRadius:e.borderRadiusSM}),k=e=>Object.assign(Object.assign({position:"relative",display:"inline-block",width:"100%",minWidth:0,padding:`${(0,t.unit)(e.paddingBlock)} ${(0,t.unit)(e.paddingInline)}`,color:e.colorText,fontSize:e.inputFontSize,lineHeight:e.lineHeight,borderRadius:e.borderRadius,transition:`all ${e.motionDurationMid}`},x(e.colorTextPlaceholder)),{"&-lg":Object.assign({},E(e)),"&-sm":Object.assign({},S(e)),"&-rtl, &-textarea-rtl":{direction:"rtl"}}),j=e=>{let{componentCls:o,antCls:n}=e;return{position:"relative",display:"table",width:"100%",borderCollapse:"separate",borderSpacing:0,"&[class*='col-']":{paddingInlineEnd:e.paddingXS,"&:last-child":{paddingInlineEnd:0}},[`&-lg ${o}, &-lg > ${o}-group-addon`]:Object.assign({},E(e)),[`&-sm ${o}, &-sm > ${o}-group-addon`]:Object.assign({},S(e)),[`&-lg ${n}-select-single ${n}-select-selector`]:{height:e.controlHeightLG},[`&-sm ${n}-select-single ${n}-select-selector`]:{height:e.controlHeightSM},[`> ${o}`]:{display:"table-cell","&:not(:first-child):not(:last-child)":{borderRadius:0}},[`${o}-group`]:{"&-addon, &-wrap":{display:"table-cell",width:1,whiteSpace:"nowrap",verticalAlign:"middle","&:not(:first-child):not(:last-child)":{borderRadius:0}},"&-wrap > *":{display:"block !important"},"&-addon":{position:"relative",padding:`0 ${(0,t.unit)(e.paddingInline)}`,color:e.colorText,fontWeight:"normal",fontSize:e.inputFontSize,textAlign:"center",borderRadius:e.borderRadius,transition:`all ${e.motionDurationSlow}`,lineHeight:1,[`${n}-select`]:{margin:`${(0,t.unit)(e.calc(e.paddingBlock).add(1).mul(-1).equal())} ${(0,t.unit)(e.calc(e.paddingInline).mul(-1).equal())}`,[`&${n}-select-single:not(${n}-select-customize-input):not(${n}-pagination-size-changer)`]:{[`${n}-select-selector`]:{backgroundColor:"inherit",border:`${(0,t.unit)(e.lineWidth)} ${e.lineType} transparent`,boxShadow:"none"}}},[`${n}-cascader-picker`]:{margin:`-9px ${(0,t.unit)(e.calc(e.paddingInline).mul(-1).equal())}`,backgroundColor:"transparent",[`${n}-cascader-input`]:{textAlign:"start",border:0,boxShadow:"none"}}}},[o]:{width:"100%",marginBottom:0,textAlign:"inherit","&:focus":{zIndex:1,borderInlineEndWidth:1},"&:hover":{zIndex:1,borderInlineEndWidth:1,[`${o}-search-with-button &`]:{zIndex:0}}},[`> ${o}:first-child, ${o}-group-addon:first-child`]:{borderStartEndRadius:0,borderEndEndRadius:0,[`${n}-select ${n}-select-selector`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${o}-affix-wrapper`]:{[`&:not(:first-child) ${o}`]:{borderStartStartRadius:0,borderEndStartRadius:0},[`&:not(:last-child) ${o}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${o}:last-child, ${o}-group-addon:last-child`]:{borderStartStartRadius:0,borderEndStartRadius:0,[`${n}-select ${n}-select-selector`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`${o}-affix-wrapper`]:{"&:not(:last-child)":{borderStartEndRadius:0,borderEndEndRadius:0,[`${o}-search &`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius}},[`&:not(:first-child), ${o}-search &:not(:first-child)`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&${o}-group-compact`]:Object.assign(Object.assign({display:"block"},(0,r.clearFix)()),{[`${o}-group-addon, ${o}-group-wrap, > ${o}`]:{"&:not(:first-child):not(:last-child)":{borderInlineEndWidth:e.lineWidth,"&:hover, &:focus":{zIndex:1}}},"& > *":{display:"inline-flex",float:"none",verticalAlign:"top",borderRadius:0},[` + & > ${o}-affix-wrapper, + & > ${o}-number-affix-wrapper, + & > ${n}-picker-range + `]:{display:"inline-flex"},"& > *:not(:last-child)":{marginInlineEnd:e.calc(e.lineWidth).mul(-1).equal(),borderInlineEndWidth:e.lineWidth},[o]:{float:"none"},[`& > ${n}-select > ${n}-select-selector, + & > ${n}-select-auto-complete ${o}, + & > ${n}-cascader-picker ${o}, + & > ${o}-group-wrapper ${o}`]:{borderInlineEndWidth:e.lineWidth,borderRadius:0,"&:hover, &:focus":{zIndex:1}},[`& > ${n}-select-focused`]:{zIndex:1},[`& > ${n}-select > ${n}-select-arrow`]:{zIndex:1},[`& > *:first-child, + & > ${n}-select:first-child > ${n}-select-selector, + & > ${n}-select-auto-complete:first-child ${o}, + & > ${n}-cascader-picker:first-child ${o}`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius},[`& > *:last-child, + & > ${n}-select:last-child > ${n}-select-selector, + & > ${n}-cascader-picker:last-child ${o}, + & > ${n}-cascader-picker-focused:last-child ${o}`]:{borderInlineEndWidth:e.lineWidth,borderStartEndRadius:e.borderRadius,borderEndEndRadius:e.borderRadius},[`& > ${n}-select-auto-complete ${o}`]:{verticalAlign:"top"},[`${o}-group-wrapper + ${o}-group-wrapper`]:{marginInlineStart:e.calc(e.lineWidth).mul(-1).equal(),[`${o}-affix-wrapper`]:{borderRadius:0}},[`${o}-group-wrapper:not(:last-child)`]:{[`&${o}-search > ${o}-group`]:{[`& > ${o}-group-addon > ${o}-search-button`]:{borderRadius:0},[`& > ${o}`]:{borderStartStartRadius:e.borderRadius,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:e.borderRadius}}}})}},O=(0,n.genStyleHooks)(["Input","Shared"],e=>{let o=(0,a.mergeToken)(e,i(e));return[(e=>{let{componentCls:t,controlHeightSM:o,lineWidth:n,calc:a}=e,i=a(o).sub(a(n).mul(2)).sub(16).div(2).equal();return{[t]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},(0,r.resetComponent)(e)),k(e)),d(e)),v(e)),h(e)),C(e)),{'&[type="color"]':{height:e.controlHeight,[`&${t}-lg`]:{height:e.controlHeightLG},[`&${t}-sm`]:{height:o,paddingTop:i,paddingBottom:i}},'&[type="search"]::-webkit-search-cancel-button, &[type="search"]::-webkit-search-decoration':{appearance:"none"}})}})(o),(e=>{let{componentCls:r,inputAffixPadding:o,colorTextDescription:n,motionDurationSlow:a,colorIcon:i,colorIconHover:l,iconCls:s}=e,c=`${r}-affix-wrapper`,u=`${r}-affix-wrapper-disabled`;return{[c]:Object.assign(Object.assign(Object.assign(Object.assign({},k(e)),{display:"inline-flex",[`&:not(${r}-disabled):hover`]:{zIndex:1,[`${r}-search-with-button &`]:{zIndex:0}},"&-focused, &:focus":{zIndex:1},[`> input${r}`]:{padding:0},[`> input${r}, > textarea${r}`]:{fontSize:"inherit",border:"none",borderRadius:0,outline:"none",background:"transparent",color:"inherit","&::-ms-reveal":{display:"none"},"&:focus":{boxShadow:"none !important"}},"&::before":{display:"inline-block",width:0,visibility:"hidden",content:'"\\a0"'},[r]:{"&-prefix, &-suffix":{display:"flex",flex:"none",alignItems:"center","> *:not(:last-child)":{marginInlineEnd:e.paddingXS}},"&-show-count-suffix":{color:n,direction:"ltr"},"&-show-count-has-suffix":{marginInlineEnd:e.paddingXXS},"&-prefix":{marginInlineEnd:o},"&-suffix":{marginInlineStart:o}}}),(e=>{let{componentCls:r}=e;return{[`${r}-clear-icon`]:{margin:0,padding:0,lineHeight:0,color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,verticalAlign:-1,cursor:"pointer",transition:`color ${e.motionDurationSlow}`,border:"none",outline:"none",backgroundColor:"transparent","&:hover":{color:e.colorIcon},"&:active":{color:e.colorText},"&-hidden":{visibility:"hidden"},"&-has-suffix":{margin:`0 ${(0,t.unit)(e.inputAffixPadding)}`}}}})(e)),{[`${s}${r}-password-icon`]:{color:i,cursor:"pointer",transition:`all ${a}`,"&:hover":{color:l}}}),[`${r}-underlined`]:{borderRadius:0},[u]:{[`${s}${r}-password-icon`]:{color:i,cursor:"not-allowed","&:hover":{color:i}}}}})(o)]},l,{resetFont:!1}),T=(0,n.genStyleHooks)(["Input","Component"],e=>{let t=(0,a.mergeToken)(e,i(e));return[(e=>{let{componentCls:t,borderRadiusLG:o,borderRadiusSM:n}=e;return{[`${t}-group`]:Object.assign(Object.assign(Object.assign({},(0,r.resetComponent)(e)),j(e)),{"&-rtl":{direction:"rtl"},"&-wrapper":Object.assign(Object.assign(Object.assign({display:"inline-block",width:"100%",textAlign:"start",verticalAlign:"top","&-rtl":{direction:"rtl"},"&-lg":{[`${t}-group-addon`]:{borderRadius:o,fontSize:e.inputFontSizeLG}},"&-sm":{[`${t}-group-addon`]:{borderRadius:n}}},p(e)),b(e)),{[`&:not(${t}-compact-first-item):not(${t}-compact-last-item)${t}-compact-item`]:{[`${t}, ${t}-group-addon`]:{borderRadius:0}},[`&:not(${t}-compact-last-item)${t}-compact-first-item`]:{[`${t}, ${t}-group-addon`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:not(${t}-compact-first-item)${t}-compact-last-item`]:{[`${t}, ${t}-group-addon`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&:not(${t}-compact-last-item)${t}-compact-item`]:{[`${t}-affix-wrapper`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:not(${t}-compact-first-item)${t}-compact-item`]:{[`${t}-affix-wrapper`]:{borderStartStartRadius:0,borderEndStartRadius:0}}})})}})(t),(e=>{let{componentCls:t,antCls:r}=e,o=`${t}-search`;return{[o]:{[t]:{"&:not([disabled]):hover, &:not([disabled]):focus":{[`+ ${t}-group-addon ${o}-button:not(${r}-btn-color-primary):not(${r}-btn-variant-text)`]:{borderInlineStartColor:e.colorPrimaryHover}}},[`${t}-affix-wrapper`]:{height:e.controlHeight,borderRadius:0},[`${t}-lg`]:{lineHeight:e.calc(e.lineHeightLG).sub(2e-4).equal()},[`> ${t}-group`]:{[`> ${t}-group-addon:last-child`]:{insetInlineStart:-1,padding:0,border:0,[`${o}-button`]:{marginInlineEnd:-1,borderStartStartRadius:0,borderEndStartRadius:0,boxShadow:"none"},[`${o}-button:not(${r}-btn-color-primary)`]:{color:e.colorTextDescription,"&:not([disabled]):hover":{color:e.colorPrimaryHover},"&:active":{color:e.colorPrimaryActive},[`&${r}-btn-loading::before`]:{inset:0}}}},[`${o}-button`]:{height:e.controlHeight,"&:hover, &:focus":{zIndex:1}},"&-large":{[`${t}-affix-wrapper, ${o}-button`]:{height:e.controlHeightLG}},"&-small":{[`${t}-affix-wrapper, ${o}-button`]:{height:e.controlHeightSM}},"&-rtl":{direction:"rtl"},[`&${t}-compact-item`]:{[`&:not(${t}-compact-last-item)`]:{[`${t}-group-addon`]:{[`${t}-search-button`]:{marginInlineEnd:e.calc(e.lineWidth).mul(-1).equal(),borderRadius:0}}},[`&:not(${t}-compact-first-item)`]:{[`${t},${t}-affix-wrapper`]:{borderRadius:0}},[`> ${t}-group-addon ${t}-search-button, + > ${t}, + ${t}-affix-wrapper`]:{"&:hover, &:focus, &:active":{zIndex:2}},[`> ${t}-affix-wrapper-focused`]:{zIndex:2}}}}})(t),(e=>{let{componentCls:t}=e;return{[`${t}-out-of-range`]:{[`&, & input, & textarea, ${t}-show-count-suffix, ${t}-data-count`]:{color:e.colorError}}}})(t),(0,o.genCompactItemStyle)(t)]},l,{resetFont:!1});e.s(["default",0,T,"genBasicInputStyle",0,k,"genInputGroupStyle",0,j,"genInputSmallStyle",0,S,"genPlaceholderStyle",0,x,"useSharedStyle",0,O],349942)},831357,e=>{"use strict";var t=e.i(271645),r=e.i(343794),o=e.i(242064),n=e.i(62139),a=e.i(349942);e.s(["default",0,e=>{let{getPrefixCls:i,direction:l}=(0,t.useContext)(o.ConfigContext),{prefixCls:s,className:c}=e,u=i("input-group",s),d=i("input"),[f,p,h]=(0,a.default)(d),m=(0,r.default)(u,h,{[`${u}-lg`]:"large"===e.size,[`${u}-sm`]:"small"===e.size,[`${u}-compact`]:e.compact,[`${u}-rtl`]:"rtl"===l},p,c),g=(0,t.useContext)(n.FormItemInputContext),v=(0,t.useMemo)(()=>Object.assign(Object.assign({},g),{isFormItemInput:!1}),[g]);return f(t.createElement("span",{className:m,style:e.style,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,onFocus:e.onFocus,onBlur:e.onBlur},t.createElement(n.FormItemInputContext.Provider,{value:v},e.children)))}])},175636,131299,367397,874460,e=>{"use strict";var t=e.i(209428),r=e.i(931067),o=e.i(211577),n=e.i(410160),a=e.i(343794),i=e.i(271645);function l(e){return!!(e.addonBefore||e.addonAfter)}function s(e){return!!(e.prefix||e.suffix||e.allowClear)}function c(e,t,r){var o=t.cloneNode(!0),n=Object.create(e,{target:{value:o},currentTarget:{value:o}});return o.value=r,"number"==typeof t.selectionStart&&"number"==typeof t.selectionEnd&&(o.selectionStart=t.selectionStart,o.selectionEnd=t.selectionEnd),o.setSelectionRange=function(){t.setSelectionRange.apply(t,arguments)},n}function u(e,t,r,o){if(r){var n=t;if("click"===t.type)return void r(n=c(t,e,""));if("file"!==e.type&&void 0!==o)return void r(n=c(t,e,o));r(n)}}function d(e,t){if(e){e.focus(t);var r=(t||{}).cursor;if(r){var o=e.value.length;switch(r){case"start":e.setSelectionRange(0,0);break;case"end":e.setSelectionRange(o,o);break;default:e.setSelectionRange(0,o)}}}}e.s(["hasAddon",0,l,"hasPrefixSuffix",0,s,"resolveOnChange",0,u,"triggerFocus",0,d],131299);var f=i.default.forwardRef(function(e,c){var u,d,f,p=e.inputElement,h=e.children,m=e.prefixCls,g=e.prefix,v=e.suffix,y=e.addonBefore,b=e.addonAfter,w=e.className,$=e.style,C=e.disabled,x=e.readOnly,E=e.focused,S=e.triggerFocus,k=e.allowClear,j=e.value,O=e.handleReset,T=e.hidden,I=e.classes,_=e.classNames,F=e.dataAttrs,P=e.styles,R=e.components,N=e.onClear,M=null!=h?h:p,B=(null==R?void 0:R.affixWrapper)||"span",A=(null==R?void 0:R.groupWrapper)||"span",z=(null==R?void 0:R.wrapper)||"span",L=(null==R?void 0:R.groupAddon)||"span",D=(0,i.useRef)(null),H=s(e),V=(0,i.cloneElement)(M,{value:j,className:(0,a.default)(null==(u=M.props)?void 0:u.className,!H&&(null==_?void 0:_.variant))||null}),W=(0,i.useRef)(null);if(i.default.useImperativeHandle(c,function(){return{nativeElement:W.current||D.current}}),H){var U=null;if(k){var G=!C&&!x&&j,q="".concat(m,"-clear-icon"),J="object"===(0,n.default)(k)&&null!=k&&k.clearIcon?k.clearIcon:"✖";U=i.default.createElement("button",{type:"button",tabIndex:-1,onClick:function(e){null==O||O(e),null==N||N()},onMouseDown:function(e){return e.preventDefault()},className:(0,a.default)(q,(0,o.default)((0,o.default)({},"".concat(q,"-hidden"),!G),"".concat(q,"-has-suffix"),!!v))},J)}var K="".concat(m,"-affix-wrapper"),X=(0,a.default)(K,(0,o.default)((0,o.default)((0,o.default)((0,o.default)((0,o.default)({},"".concat(m,"-disabled"),C),"".concat(K,"-disabled"),C),"".concat(K,"-focused"),E),"".concat(K,"-readonly"),x),"".concat(K,"-input-with-clear-btn"),v&&k&&j),null==I?void 0:I.affixWrapper,null==_?void 0:_.affixWrapper,null==_?void 0:_.variant),Q=(v||k)&&i.default.createElement("span",{className:(0,a.default)("".concat(m,"-suffix"),null==_?void 0:_.suffix),style:null==P?void 0:P.suffix},U,v);V=i.default.createElement(B,(0,r.default)({className:X,style:null==P?void 0:P.affixWrapper,onClick:function(e){var t;null!=(t=D.current)&&t.contains(e.target)&&(null==S||S())}},null==F?void 0:F.affixWrapper,{ref:D}),g&&i.default.createElement("span",{className:(0,a.default)("".concat(m,"-prefix"),null==_?void 0:_.prefix),style:null==P?void 0:P.prefix},g),V,Q)}if(l(e)){var Y="".concat(m,"-group"),Z="".concat(Y,"-addon"),ee="".concat(Y,"-wrapper"),et=(0,a.default)("".concat(m,"-wrapper"),Y,null==I?void 0:I.wrapper,null==_?void 0:_.wrapper),er=(0,a.default)(ee,(0,o.default)({},"".concat(ee,"-disabled"),C),null==I?void 0:I.group,null==_?void 0:_.groupWrapper);V=i.default.createElement(A,{className:er,ref:W},i.default.createElement(z,{className:et},y&&i.default.createElement(L,{className:Z},y),V,b&&i.default.createElement(L,{className:Z},b)))}return i.default.cloneElement(V,{className:(0,a.default)(null==(d=V.props)?void 0:d.className,w)||null,style:(0,t.default)((0,t.default)({},null==(f=V.props)?void 0:f.style),$),hidden:T})});e.s(["default",0,f],367397);var p=e.i(8211),h=e.i(392221),m=e.i(703923),g=e.i(914949),v=e.i(529681),y=["show"];function b(e,r){return i.useMemo(function(){var o={};r&&(o.show="object"===(0,n.default)(r)&&r.formatter?r.formatter:!!r);var a=o=(0,t.default)((0,t.default)({},o),e),i=a.show,l=(0,m.default)(a,y);return(0,t.default)((0,t.default)({},l),{},{show:!!i,showFormatter:"function"==typeof i?i:void 0,strategy:l.strategy||function(e){return e.length}})},[e,r])}e.s(["default",0,b],874460);var w=["autoComplete","onChange","onFocus","onBlur","onPressEnter","onKeyDown","onKeyUp","prefixCls","disabled","htmlSize","className","maxLength","suffix","showCount","count","type","classes","classNames","styles","onCompositionStart","onCompositionEnd"],$=(0,i.forwardRef)(function(e,n){var l,s=e.autoComplete,c=e.onChange,y=e.onFocus,$=e.onBlur,C=e.onPressEnter,x=e.onKeyDown,E=e.onKeyUp,S=e.prefixCls,k=void 0===S?"rc-input":S,j=e.disabled,O=e.htmlSize,T=e.className,I=e.maxLength,_=e.suffix,F=e.showCount,P=e.count,R=e.type,N=e.classes,M=e.classNames,B=e.styles,A=e.onCompositionStart,z=e.onCompositionEnd,L=(0,m.default)(e,w),D=(0,i.useState)(!1),H=(0,h.default)(D,2),V=H[0],W=H[1],U=(0,i.useRef)(!1),G=(0,i.useRef)(!1),q=(0,i.useRef)(null),J=(0,i.useRef)(null),K=function(e){q.current&&d(q.current,e)},X=(0,g.default)(e.defaultValue,{value:e.value}),Q=(0,h.default)(X,2),Y=Q[0],Z=Q[1],ee=null==Y?"":String(Y),et=(0,i.useState)(null),er=(0,h.default)(et,2),eo=er[0],en=er[1],ea=b(P,F),ei=ea.max||I,el=ea.strategy(ee),es=!!ei&&el>ei;(0,i.useImperativeHandle)(n,function(){var e;return{focus:K,blur:function(){var e;null==(e=q.current)||e.blur()},setSelectionRange:function(e,t,r){var o;null==(o=q.current)||o.setSelectionRange(e,t,r)},select:function(){var e;null==(e=q.current)||e.select()},input:q.current,nativeElement:(null==(e=J.current)?void 0:e.nativeElement)||q.current}}),(0,i.useEffect)(function(){G.current&&(G.current=!1),W(function(e){return(!e||!j)&&e})},[j]);var ec=function(e,t,r){var o,n,a=t;if(!U.current&&ea.exceedFormatter&&ea.max&&ea.strategy(t)>ea.max)a=ea.exceedFormatter(t,{max:ea.max}),t!==a&&en([(null==(o=q.current)?void 0:o.selectionStart)||0,(null==(n=q.current)?void 0:n.selectionEnd)||0]);else if("compositionEnd"===r.source)return;Z(a),q.current&&u(q.current,e,c,a)};(0,i.useEffect)(function(){if(eo){var e;null==(e=q.current)||e.setSelectionRange.apply(e,(0,p.default)(eo))}},[eo]);var eu=es&&"".concat(k,"-out-of-range");return i.default.createElement(f,(0,r.default)({},L,{prefixCls:k,className:(0,a.default)(T,eu),handleReset:function(e){Z(""),K(),q.current&&u(q.current,e,c)},value:ee,focused:V,triggerFocus:K,suffix:function(){var e=Number(ei)>0;if(_||ea.show){var r=ea.showFormatter?ea.showFormatter({value:ee,count:el,maxLength:ei}):"".concat(el).concat(e?" / ".concat(ei):"");return i.default.createElement(i.default.Fragment,null,ea.show&&i.default.createElement("span",{className:(0,a.default)("".concat(k,"-show-count-suffix"),(0,o.default)({},"".concat(k,"-show-count-has-suffix"),!!_),null==M?void 0:M.count),style:(0,t.default)({},null==B?void 0:B.count)},r),_)}return null}(),disabled:j,classes:N,classNames:M,styles:B,ref:J}),(l=(0,v.default)(e,["prefixCls","onPressEnter","addonBefore","addonAfter","prefix","suffix","allowClear","defaultValue","showCount","count","classes","htmlSize","styles","classNames","onClear"]),i.default.createElement("input",(0,r.default)({autoComplete:s},l,{onChange:function(e){ec(e,e.target.value,{source:"change"})},onFocus:function(e){W(!0),null==y||y(e)},onBlur:function(e){G.current&&(G.current=!1),W(!1),null==$||$(e)},onKeyDown:function(e){C&&"Enter"===e.key&&!G.current&&(G.current=!0,C(e)),null==x||x(e)},onKeyUp:function(e){"Enter"===e.key&&(G.current=!1),null==E||E(e)},className:(0,a.default)(k,(0,o.default)({},"".concat(k,"-disabled"),j),null==M?void 0:M.input),style:null==B?void 0:B.input,ref:q,size:O,type:void 0===R?"text":R,onCompositionStart:function(e){U.current=!0,null==A||A(e)},onCompositionEnd:function(e){U.current=!1,ec(e,e.currentTarget.value,{source:"compositionEnd"}),null==z||z(e)}}))))});e.s(["default",0,$],175636)},330683,e=>{"use strict";var t=e.i(271645),r=e.i(726289);e.s(["default",0,e=>{let o;return"object"==typeof e&&(null==e?void 0:e.clearIcon)?o=e:e&&(o={clearIcon:t.default.createElement(r.default,null)}),o}])},52956,e=>{"use strict";var t=e.i(343794);e.s(["getMergedStatus",0,(e,t)=>t||e,"getStatusClassNames",0,function(e,r,o){return(0,t.default)({[`${e}-status-success`]:"success"===r,[`${e}-status-warning`]:"warning"===r,[`${e}-status-error`]:"error"===r,[`${e}-status-validating`]:"validating"===r,[`${e}-has-feedback`]:o})}])},792812,e=>{"use strict";var t=e.i(271645),r=e.i(242064),o=e.i(62139);e.s(["default",0,(e,n,a)=>{var i,l;let s,{variant:c,[e]:u}=t.useContext(r.ConfigContext),d=t.useContext(o.VariantContext),f=null==u?void 0:u.variant;s=void 0!==n?n:!1===a?"borderless":null!=(l=null!=(i=null!=d?d:f)?i:c)?l:"outlined";let p=r.Variants.includes(s);return[s,p]}])},90635,545719,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(175636);e.i(131299);var n=e.i(611935),a=e.i(617206),i=e.i(330683),l=e.i(52956),s=e.i(242064),c=e.i(937328),u=e.i(321883),d=e.i(517455),f=e.i(62139),p=e.i(792812),h=e.i(249616);function m(e,r){let o=(0,t.useRef)([]),n=()=>{o.current.push(setTimeout(()=>{var t,r,o,n;(null==(t=e.current)?void 0:t.input)&&(null==(r=e.current)?void 0:r.input.getAttribute("type"))==="password"&&(null==(o=e.current)?void 0:o.input.hasAttribute("value"))&&(null==(n=e.current)||n.input.removeAttribute("value"))}))};return(0,t.useEffect)(()=>(r&&n(),()=>o.current.forEach(e=>{e&&clearTimeout(e)})),[]),n}e.s(["default",0,m],545719);var g=e.i(349942),v=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let y=(0,t.forwardRef)((e,y)=>{let{prefixCls:b,bordered:w=!0,status:$,size:C,disabled:x,onBlur:E,onFocus:S,suffix:k,allowClear:j,addonAfter:O,addonBefore:T,className:I,style:_,styles:F,rootClassName:P,onChange:R,classNames:N,variant:M,_skipAddonWarning:B}=e,A=v(e,["prefixCls","bordered","status","size","disabled","onBlur","onFocus","suffix","allowClear","addonAfter","addonBefore","className","style","styles","rootClassName","onChange","classNames","variant","_skipAddonWarning"]),{getPrefixCls:z,direction:L,allowClear:D,autoComplete:H,className:V,style:W,classNames:U,styles:G}=(0,s.useComponentConfig)("input"),q=z("input",b),J=(0,t.useRef)(null),K=(0,u.default)(q),[X,Q,Y]=(0,g.useSharedStyle)(q,P),[Z]=(0,g.default)(q,K),{compactSize:ee,compactItemClassnames:et}=(0,h.useCompactItemContext)(q,L),er=(0,d.default)(e=>{var t;return null!=(t=null!=C?C:ee)?t:e}),eo=t.default.useContext(c.default),{status:en,hasFeedback:ea,feedbackIcon:ei}=(0,t.useContext)(f.FormItemInputContext),el=(0,l.getMergedStatus)(en,$),es=!!(e.prefix||e.suffix||e.allowClear||e.showCount)||!!ea;(0,t.useRef)(es);let ec=m(J,!0),eu=(ea||k)&&t.default.createElement(t.default.Fragment,null,k,ea&&ei),ed=(0,i.default)(null!=j?j:D),[ef,ep]=(0,p.default)("input",M,w);return X(Z(t.default.createElement(o.default,Object.assign({ref:(0,n.composeRef)(y,J),prefixCls:q,autoComplete:H},A,{disabled:null!=x?x:eo,onBlur:e=>{ec(),null==E||E(e)},onFocus:e=>{ec(),null==S||S(e)},style:Object.assign(Object.assign({},W),_),styles:Object.assign(Object.assign({},G),F),suffix:eu,allowClear:ed,className:(0,r.default)(I,P,Y,K,et,V),onChange:e=>{ec(),null==R||R(e)},addonBefore:T&&t.default.createElement(a.default,{form:!0,space:!0},T),addonAfter:O&&t.default.createElement(a.default,{form:!0,space:!0},O),classNames:Object.assign(Object.assign(Object.assign({},N),U),{input:(0,r.default)({[`${q}-sm`]:"small"===er,[`${q}-lg`]:"large"===er,[`${q}-rtl`]:"rtl"===L},null==N?void 0:N.input,U.input,Q),variant:(0,r.default)({[`${q}-${ef}`]:ep},(0,l.getStatusClassNames)(q,el)),affixWrapper:(0,r.default)({[`${q}-affix-wrapper-sm`]:"small"===er,[`${q}-affix-wrapper-lg`]:"large"===er,[`${q}-affix-wrapper-rtl`]:"rtl"===L},Q),wrapper:(0,r.default)({[`${q}-group-rtl`]:"rtl"===L},Q),groupWrapper:(0,r.default)({[`${q}-group-wrapper-sm`]:"small"===er,[`${q}-group-wrapper-lg`]:"large"===er,[`${q}-group-wrapper-rtl`]:"rtl"===L,[`${q}-group-wrapper-${ef}`]:ep},(0,l.getStatusClassNames)(`${q}-group-wrapper`,el,ea),Q)})}))))});e.s(["default",0,y],90635)},932399,741585,984125,236798,e=>{"use strict";e.i(247167);var t=e.i(8211),r=e.i(271645),o=e.i(343794),n=e.i(175066),a=e.i(244009),i=e.i(52956),l=e.i(242064),s=e.i(517455),c=e.i(62139),u=e.i(246422),d=e.i(838378),f=e.i(517458);let p=(0,u.genStyleHooks)(["Input","OTP"],e=>(e=>{let{componentCls:t,paddingXS:r}=e;return{[t]:{display:"inline-flex",alignItems:"center",flexWrap:"nowrap",columnGap:r,[`${t}-input-wrapper`]:{position:"relative",[`${t}-mask-icon`]:{position:"absolute",zIndex:"1",top:"50%",right:"50%",transform:"translate(50%, -50%)",pointerEvents:"none"},[`${t}-mask-input`]:{color:"transparent",caretColor:e.colorText},[`${t}-mask-input[type=number]::-webkit-inner-spin-button`]:{"-webkit-appearance":"none",margin:0},[`${t}-mask-input[type=number]`]:{"-moz-appearance":"textfield"}},"&-rtl":{direction:"rtl"},[`${t}-input`]:{textAlign:"center",paddingInline:e.paddingXXS},[`&${t}-sm ${t}-input`]:{paddingInline:e.calc(e.paddingXXS).div(2).equal()},[`&${t}-lg ${t}-input`]:{paddingInline:e.paddingXS}}}})((0,d.mergeToken)(e,(0,f.initInputToken)(e))),f.initComponentToken);var h=e.i(963188),m=e.i(90635),g=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let v=r.forwardRef((e,t)=>{let{className:n,value:a,onChange:i,onActiveChange:s,index:c,mask:u}=e,d=g(e,["className","value","onChange","onActiveChange","index","mask"]),{getPrefixCls:f}=r.useContext(l.ConfigContext),p=f("otp"),v="string"==typeof u?u:a,y=r.useRef(null);r.useImperativeHandle(t,()=>y.current);let b=()=>{(0,h.default)(()=>{var e;let t=null==(e=y.current)?void 0:e.input;document.activeElement===t&&t&&t.select()})};return r.createElement("span",{className:`${p}-input-wrapper`,role:"presentation"},u&&""!==a&&void 0!==a&&r.createElement("span",{className:`${p}-mask-icon`,"aria-hidden":"true"},v),r.createElement(m.default,Object.assign({"aria-label":`OTP Input ${c+1}`,type:!0===u?"password":"text"},d,{ref:y,value:a,onInput:e=>{i(c,e.target.value)},onFocus:b,onKeyDown:e=>{let{key:t,ctrlKey:r,metaKey:o}=e;"ArrowLeft"===t?s(c-1):"ArrowRight"===t?s(c+1):"z"===t&&(r||o)?e.preventDefault():"Backspace"!==t||a||s(c-1),b()},onMouseDown:b,onMouseUp:b,className:(0,o.default)(n,{[`${p}-mask-input`]:u})})))});var y=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};function b(e){return(e||"").split("")}let w=e=>{let{index:t,prefixCls:o,separator:n}=e,a="function"==typeof n?n(t):n;return a?r.createElement("span",{className:`${o}-separator`},a):null},$=r.forwardRef((e,u)=>{let{prefixCls:d,length:f=6,size:h,defaultValue:m,value:g,onChange:$,formatter:C,separator:x,variant:E,disabled:S,status:k,autoFocus:j,mask:O,type:T,onInput:I,inputMode:_}=e,F=y(e,["prefixCls","length","size","defaultValue","value","onChange","formatter","separator","variant","disabled","status","autoFocus","mask","type","onInput","inputMode"]),{getPrefixCls:P,direction:R}=r.useContext(l.ConfigContext),N=P("otp",d),M=(0,a.default)(F,{aria:!0,data:!0,attr:!0}),[B,A,z]=p(N),L=(0,s.default)(e=>null!=h?h:e),D=r.useContext(c.FormItemInputContext),H=(0,i.getMergedStatus)(D.status,k),V=r.useMemo(()=>Object.assign(Object.assign({},D),{status:H,hasFeedback:!1,feedbackIcon:null}),[D,H]),W=r.useRef(null),U=r.useRef({});r.useImperativeHandle(u,()=>({focus:()=>{var e;null==(e=U.current[0])||e.focus()},blur:()=>{var e;for(let t=0;tC?C(e):e,[q,J]=r.useState(()=>b(G(m||"")));r.useEffect(()=>{void 0!==g&&J(b(g))},[g]);let K=(0,n.default)(e=>{J(e),I&&I(e),$&&e.length===f&&e.every(e=>e)&&e.some((e,t)=>q[t]!==e)&&$(e.join(""))}),X=(0,n.default)((e,r)=>{let o=(0,t.default)(q);for(let t=0;t=0&&!o[e];e-=1)o.pop();return o=b(G(o.map(e=>e||" ").join(""))).map((e,t)=>" "!==e||o[t]?e:o[t])}),Q=(e,t)=>{var r;let o=X(e,t),n=Math.min(e+t.length,f-1);n!==e&&void 0!==o[e]&&(null==(r=U.current[n])||r.focus()),K(o)},Y=e=>{var t;null==(t=U.current[e])||t.focus()},Z={variant:E,disabled:S,status:H,mask:O,type:T,inputMode:_};return B(r.createElement("div",Object.assign({},M,{ref:W,className:(0,o.default)(N,{[`${N}-sm`]:"small"===L,[`${N}-lg`]:"large"===L,[`${N}-rtl`]:"rtl"===R},z,A),role:"group"}),r.createElement(c.FormItemInputContext.Provider,{value:V},Array.from({length:f}).map((e,t)=>{let o=`otp-${t}`,n=q[t]||"";return r.createElement(r.Fragment,{key:o},r.createElement(v,Object.assign({ref:e=>{U.current[t]=e},index:t,size:L,htmlSize:1,className:`${N}-input`,onChange:Q,value:n,onActiveChange:Y,autoFocus:0===t&&j},Z)),tt.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let P=e=>e?r.createElement(j,null):r.createElement(S,null),R={click:"onClick",hover:"onMouseOver"},N=r.forwardRef((e,t)=>{let n,a,i,{disabled:s,action:c="click",visibilityToggle:u=!0,iconRender:d=P,suffix:f}=e,p=r.useContext(I.default),h=null!=s?s:p,g="object"==typeof u&&void 0!==u.visible,[v,y]=(0,r.useState)(()=>!!g&&u.visible),b=(0,r.useRef)(null);r.useEffect(()=>{g&&y(u.visible)},[g,u]);let w=(0,_.default)(b),{className:$,prefixCls:C,inputPrefixCls:x,size:E}=e,S=F(e,["className","prefixCls","inputPrefixCls","size"]),{getPrefixCls:k}=r.useContext(l.ConfigContext),j=k("input",x),N=k("input-password",C),M=u&&(n=R[c]||"",a=d(v),i={[n]:()=>{var e;if(h)return;v&&w();let t=!v;y(t),"object"==typeof u&&(null==(e=u.onVisibleChange)||e.call(u,t))},className:`${N}-icon`,key:"passwordIcon",onMouseDown:e=>{e.preventDefault()},onMouseUp:e=>{e.preventDefault()}},r.cloneElement(r.isValidElement(a)?a:r.createElement("span",null,a),i)),B=(0,o.default)(N,$,{[`${N}-${E}`]:!!E}),A=Object.assign(Object.assign({},(0,O.default)(S,["suffix","iconRender","visibilityToggle"])),{type:v?"text":"password",className:B,prefixCls:j,suffix:r.createElement(r.Fragment,null,M,f)});return E&&(A.size=E),r.createElement(m.default,Object.assign({ref:(0,T.composeRef)(t,b)},A))});e.s(["default",0,N],236798)},38953,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z"}}]},name:"search",theme:"outlined"};var n=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(n.default,(0,t.default)({},e,{ref:a,icon:o}))});e.s(["default",0,a],38953)},121872,26905,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(606262),n=e.i(611935),a=e.i(242064),i=e.i(763731);let l=(0,e.i(246422).genComponentStyleHook)("Wave",e=>{let{componentCls:t,colorPrimary:r}=e;return{[t]:{position:"absolute",background:"transparent",pointerEvents:"none",boxSizing:"border-box",color:`var(--wave-color, ${r})`,boxShadow:"0 0 0 0 currentcolor",opacity:.2,"&.wave-motion-appear":{transition:`box-shadow 0.4s ${e.motionEaseOutCirc},opacity 2s ${e.motionEaseOutCirc}`,"&-active":{boxShadow:"0 0 0 6px currentcolor",opacity:0},"&.wave-quick":{transition:`box-shadow ${e.motionDurationSlow} ${e.motionEaseInOut},opacity ${e.motionDurationSlow} ${e.motionEaseInOut}`}}}}});var s=e.i(175066),c=e.i(963188),u=e.i(719581);let d=`${a.defaultPrefixCls}-wave-target`;e.s(["TARGET_CLS",0,d],26905);var f=e.i(361275),p=e.i(783164);function h(e){return e&&"#fff"!==e&&"#ffffff"!==e&&"rgb(255, 255, 255)"!==e&&"rgba(255, 255, 255, 1)"!==e&&!/rgba\((?:\d*, ){3}0\)/.test(e)&&"transparent"!==e&&"canvastext"!==e}function m(e){return Number.isNaN(e)?0:e}let g=e=>{let{className:o,target:a,component:i,registerUnmount:l}=e,s=t.useRef(null),u=t.useRef(null);t.useEffect(()=>{u.current=l()},[]);let[p,g]=t.useState(null),[v,y]=t.useState([]),[b,w]=t.useState(0),[$,C]=t.useState(0),[x,E]=t.useState(0),[S,k]=t.useState(0),[j,O]=t.useState(!1),T={left:b,top:$,width:x,height:S,borderRadius:v.map(e=>`${e}px`).join(" ")};function I(){let e=getComputedStyle(a);g(function(e){var t;let{borderTopColor:r,borderColor:o,backgroundColor:n}=getComputedStyle(e);return null!=(t=[r,o,n].find(h))?t:null}(a));let t="static"===e.position,{borderLeftWidth:r,borderTopWidth:o}=e;w(t?a.offsetLeft:m(-Number.parseFloat(r))),C(t?a.offsetTop:m(-Number.parseFloat(o))),E(a.offsetWidth),k(a.offsetHeight);let{borderTopLeftRadius:n,borderTopRightRadius:i,borderBottomLeftRadius:l,borderBottomRightRadius:s}=e;y([n,i,s,l].map(e=>m(Number.parseFloat(e))))}if(p&&(T["--wave-color"]=p),t.useEffect(()=>{if(a){let e,t=(0,c.default)(()=>{I(),O(!0)});return"u">typeof ResizeObserver&&(e=new ResizeObserver(I)).observe(a),()=>{c.default.cancel(t),null==e||e.disconnect()}}},[a]),!j)return null;let _=("Checkbox"===i||"Radio"===i)&&(null==a?void 0:a.classList.contains(d));return t.createElement(f.default,{visible:!0,motionAppear:!0,motionName:"wave-motion",motionDeadline:5e3,onAppearEnd:(e,t)=>{var r,o;if(t.deadline||"opacity"===t.propertyName){let e=null==(r=s.current)?void 0:r.parentElement;null==(o=u.current)||o.call(u).then(()=>{null==e||e.remove()})}return!1}},({className:e},a)=>t.createElement("div",{ref:(0,n.composeRef)(s,a),className:(0,r.default)(o,e,{"wave-quick":_}),style:T}))};e.s(["default",0,e=>{let{children:f,disabled:h,component:m}=e,{getPrefixCls:v}=(0,t.useContext)(a.ConfigContext),y=(0,t.useRef)(null),b=v("wave"),[,w]=l(b),$=((e,r,o)=>{let{wave:n}=t.useContext(a.ConfigContext),[,i,l]=(0,u.default)(),f=(0,s.default)(a=>{let s=e.current;if((null==n?void 0:n.disabled)||!s)return;let c=s.querySelector(`.${d}`)||s,{showEffect:u}=n||{};(u||((e,r)=>{var o;let{component:n}=r;if("Checkbox"===n&&!(null==(o=e.querySelector("input"))?void 0:o.checked))return;let a=document.createElement("div");a.style.position="absolute",a.style.left="0px",a.style.top="0px",null==e||e.insertBefore(a,null==e?void 0:e.firstChild);let i=(0,p.unstableSetRender)(),l=null;l=i(t.createElement(g,Object.assign({},r,{target:e,registerUnmount:function(){return l}})),a)}))(c,{className:r,token:i,component:o,event:a,hashId:l})}),h=t.useRef(null);return e=>{c.default.cancel(h.current),h.current=(0,c.default)(()=>{f(e)})}})(y,(0,r.default)(b,w),m);if(t.default.useEffect(()=>{let e=y.current;if(!e||e.nodeType!==window.Node.ELEMENT_NODE||h)return;let t=t=>{!(0,o.default)(t.target)||!e.getAttribute||e.getAttribute("disabled")||e.disabled||e.className.includes("disabled")&&!e.className.includes("disabled:")||"true"===e.getAttribute("aria-disabled")||e.className.includes("-leave")||$(t)};return e.addEventListener("click",t,!0),()=>{e.removeEventListener("click",t,!0)}},[h]),!t.default.isValidElement(f))return null!=f?f:null;let C=(0,n.supportRef)(f)?(0,n.composeRef)((0,n.getNodeRef)(f),y):y;return(0,i.cloneElement)(f,{ref:C})}],121872)},735996,e=>{"use strict";var t=e.i(271645),r=e.i(343794),o=e.i(242064),n=e.i(104458),a=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let i=t.createContext(void 0);e.s(["GroupSizeContext",0,i,"default",0,e=>{let{getPrefixCls:l,direction:s}=t.useContext(o.ConfigContext),{prefixCls:c,size:u,className:d}=e,f=a(e,["prefixCls","size","className"]),p=l("btn-group",c),[,,h]=(0,n.useToken)(),m=t.useMemo(()=>{switch(u){case"large":return"lg";case"small":return"sm";default:return""}},[u]),g=(0,r.default)(p,{[`${p}-${m}`]:m,[`${p}-rtl`]:"rtl"===s},d,h);return t.createElement(i.Provider,{value:u},t.createElement("div",Object.assign({},f,{className:g})))}])},62405,869693,868004,470977,e=>{"use strict";var t=e.i(8211),r=e.i(271645),o=e.i(763731),n=e.i(617933);let a=/^[\u4E00-\u9FA5]{2}$/,i=a.test.bind(a);function l(e){return"string"==typeof e}["default","primary","danger"].concat((0,t.default)(n.PresetColors)),e.s(["convertLegacyProps",0,function(e){return"danger"===e?{danger:!0}:{type:e}},"isTwoCNChar",0,i,"isUnBorderedButtonVariant",0,function(e){return"text"===e||"link"===e},"spaceChildren",0,function(e,t){let n=!1,a=[];return r.default.Children.forEach(e,e=>{let t=typeof e,r="string"===t||"number"===t;if(n&&r){let t=a.length-1,r=a[t];a[t]=`${r}${e}`}else a.push(e);n=r}),r.default.Children.map(a,e=>(function(e,t){if(null==e)return;let n=t?" ":"";return"string"!=typeof e&&"number"!=typeof e&&l(e.type)&&i(e.props.children)?(0,o.cloneElement)(e,{children:e.props.children.split("").join(n)}):l(e)?i(e)?r.default.createElement("span",null,e.split("").join(n)):r.default.createElement("span",null,e):(0,o.isFragment)(e)?r.default.createElement("span",null,e):e})(e,t))}],62405);var s=e.i(739295),c=e.i(343794),u=e.i(361275);let d=(0,r.forwardRef)((e,t)=>{let{className:o,style:n,children:a,prefixCls:i}=e,l=(0,c.default)(`${i}-icon`,o);return r.default.createElement("span",{ref:t,className:l,style:n},a)});e.s(["default",0,d],869693);let f=(0,r.forwardRef)((e,t)=>{let{prefixCls:o,className:n,style:a,iconClassName:i}=e,l=(0,c.default)(`${o}-loading-icon`,n);return r.default.createElement(d,{prefixCls:o,className:l,style:a,ref:t},r.default.createElement(s.default,{className:i}))}),p=()=>({width:0,opacity:0,transform:"scale(0)"}),h=e=>({width:e.scrollWidth,opacity:1,transform:"scale(1)"});e.s(["default",0,e=>{let{prefixCls:t,loading:o,existIcon:n,className:a,style:i,mount:l}=e;return n?r.default.createElement(f,{prefixCls:t,className:a,style:i}):r.default.createElement(u.default,{visible:!!o,motionName:`${t}-loading-icon-motion`,motionAppear:!l,motionEnter:!l,motionLeave:!l,removeOnLeave:!0,onAppearStart:p,onAppearActive:h,onEnterStart:p,onEnterActive:h,onLeaveStart:h,onLeaveActive:p},({className:e,style:o},n)=>{let l=Object.assign(Object.assign({},i),o);return r.default.createElement(f,{prefixCls:t,className:(0,c.default)(a,e),style:l,ref:n})})}],868004);let m=(e,t)=>({[`> span, > ${e}`]:{"&:not(:last-child)":{[`&, & > ${e}`]:{"&:not(:disabled)":{borderInlineEndColor:t}}},"&:not(:first-child)":{[`&, & > ${e}`]:{"&:not(:disabled)":{borderInlineStartColor:t}}}}});e.s(["default",0,e=>{let{componentCls:t,fontSize:r,lineWidth:o,groupBorderColor:n,colorErrorHover:a}=e;return{[`${t}-group`]:[{position:"relative",display:"inline-flex",[`> span, > ${t}`]:{"&:not(:last-child)":{[`&, & > ${t}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},"&:not(:first-child)":{marginInlineStart:e.calc(o).mul(-1).equal(),[`&, & > ${t}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}},[t]:{position:"relative",zIndex:1,"&:hover, &:focus, &:active":{zIndex:2},"&[disabled]":{zIndex:0}},[`${t}-icon-only`]:{fontSize:r}},m(`${t}-primary`,n),m(`${t}-danger`,a)]}}],470977)},202599,e=>{"use strict";var t=e.i(162464);e.s(["ColorBlock",()=>t.default])},286612,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"}}]},name:"right",theme:"outlined"};var n=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(n.default,(0,t.default)({},e,{ref:a,icon:o}))});e.s(["default",0,a],286612)},301092,e=>{"use strict";var t=e.i(931067),r=e.i(8211),o=e.i(392221),n=e.i(410160),a=e.i(343794),i=e.i(914949),l=e.i(883110),s=e.i(271645),c=e.i(703923),u=e.i(876556),d=e.i(209428),f=e.i(211577),p=e.i(361275),h=e.i(404948),m=s.default.forwardRef(function(e,t){var r=e.prefixCls,n=e.forceRender,i=e.className,l=e.style,c=e.children,u=e.isActive,d=e.role,p=e.classNames,h=e.styles,m=s.default.useState(u||n),g=(0,o.default)(m,2),v=g[0],y=g[1];return(s.default.useEffect(function(){(n||u)&&y(!0)},[n,u]),v)?s.default.createElement("div",{ref:t,className:(0,a.default)("".concat(r,"-content"),(0,f.default)((0,f.default)({},"".concat(r,"-content-active"),u),"".concat(r,"-content-inactive"),!u),i),style:l,role:d},s.default.createElement("div",{className:(0,a.default)("".concat(r,"-content-box"),null==p?void 0:p.body),style:null==h?void 0:h.body},c)):null});m.displayName="PanelContent";var g=["showArrow","headerClass","isActive","onItemClick","forceRender","className","classNames","styles","prefixCls","collapsible","accordion","panelKey","extra","header","expandIcon","openMotion","destroyInactivePanel","children"],v=s.default.forwardRef(function(e,r){var o=e.showArrow,n=e.headerClass,i=e.isActive,l=e.onItemClick,u=e.forceRender,v=e.className,y=e.classNames,b=void 0===y?{}:y,w=e.styles,$=void 0===w?{}:w,C=e.prefixCls,x=e.collapsible,E=e.accordion,S=e.panelKey,k=e.extra,j=e.header,O=e.expandIcon,T=e.openMotion,I=e.destroyInactivePanel,_=e.children,F=(0,c.default)(e,g),P="disabled"===x,R=(0,f.default)((0,f.default)((0,f.default)({onClick:function(){null==l||l(S)},onKeyDown:function(e){("Enter"===e.key||e.keyCode===h.default.ENTER||e.which===h.default.ENTER)&&(null==l||l(S))},role:E?"tab":"button"},"aria-expanded",i),"aria-disabled",P),"tabIndex",P?-1:0),N="function"==typeof O?O(e):s.default.createElement("i",{className:"arrow"}),M=N&&s.default.createElement("div",(0,t.default)({className:"".concat(C,"-expand-icon")},["header","icon"].includes(x)?R:{}),N),B=(0,a.default)("".concat(C,"-item"),(0,f.default)((0,f.default)({},"".concat(C,"-item-active"),i),"".concat(C,"-item-disabled"),P),v),A=(0,a.default)(n,"".concat(C,"-header"),(0,f.default)({},"".concat(C,"-collapsible-").concat(x),!!x),b.header),z=(0,d.default)({className:A,style:$.header},["header","icon"].includes(x)?{}:R);return s.default.createElement("div",(0,t.default)({},F,{ref:r,className:B}),s.default.createElement("div",z,(void 0===o||o)&&M,s.default.createElement("span",(0,t.default)({className:"".concat(C,"-header-text")},"header"===x?R:{}),j),null!=k&&"boolean"!=typeof k&&s.default.createElement("div",{className:"".concat(C,"-extra")},k)),s.default.createElement(p.default,(0,t.default)({visible:i,leavedClassName:"".concat(C,"-content-hidden")},T,{forceRender:u,removeOnLeave:I}),function(e,t){var r=e.className,o=e.style;return s.default.createElement(m,{ref:t,prefixCls:C,className:r,classNames:b,style:o,styles:$,isActive:i,forceRender:u,role:E?"tabpanel":void 0},_)}))}),y=["children","label","key","collapsible","onItemClick","destroyInactivePanel"],b=function(e,r){var o=r.prefixCls,n=r.accordion,a=r.collapsible,i=r.destroyInactivePanel,l=r.onItemClick,u=r.activeKey,d=r.openMotion,f=r.expandIcon;return e.map(function(e,r){var p=e.children,h=e.label,m=e.key,g=e.collapsible,b=e.onItemClick,w=e.destroyInactivePanel,$=(0,c.default)(e,y),C=String(null!=m?m:r),x=null!=g?g:a,E=!1;return E=n?u[0]===C:u.indexOf(C)>-1,s.default.createElement(v,(0,t.default)({},$,{prefixCls:o,key:C,panelKey:C,isActive:E,accordion:n,openMotion:d,expandIcon:f,header:h,collapsible:x,onItemClick:function(e){"disabled"!==x&&(l(e),null==b||b(e))},destroyInactivePanel:null!=w?w:i}),p)})},w=function(e,t,r){if(!e)return null;var o=r.prefixCls,n=r.accordion,a=r.collapsible,i=r.destroyInactivePanel,l=r.onItemClick,c=r.activeKey,u=r.openMotion,d=r.expandIcon,f=e.key||String(t),p=e.props,h=p.header,m=p.headerClass,g=p.destroyInactivePanel,v=p.collapsible,y=p.onItemClick,b=!1;b=n?c[0]===f:c.indexOf(f)>-1;var w=null!=v?v:a,$={key:f,panelKey:f,header:h,headerClass:m,isActive:b,prefixCls:o,destroyInactivePanel:null!=g?g:i,openMotion:u,accordion:n,children:e.props.children,onItemClick:function(e){"disabled"!==w&&(l(e),null==y||y(e))},expandIcon:d,collapsible:w};return"string"==typeof e.type?e:(Object.keys($).forEach(function(e){void 0===$[e]&&delete $[e]}),s.default.cloneElement(e,$))},$=e.i(244009);function C(e){var t=e;if(!Array.isArray(t)){var r=(0,n.default)(t);t="number"===r||"string"===r?[t]:[]}return t.map(function(e){return String(e)})}let x=Object.assign(s.default.forwardRef(function(e,n){var c,d=e.prefixCls,f=void 0===d?"rc-collapse":d,p=e.destroyInactivePanel,h=e.style,m=e.accordion,g=e.className,v=e.children,y=e.collapsible,x=e.openMotion,E=e.expandIcon,S=e.activeKey,k=e.defaultActiveKey,j=e.onChange,O=e.items,T=(0,a.default)(f,g),I=(0,i.default)([],{value:S,onChange:function(e){return null==j?void 0:j(e)},defaultValue:k,postState:C}),_=(0,o.default)(I,2),F=_[0],P=_[1];(0,l.default)(!v,"[rc-collapse] `children` will be removed in next major version. Please use `items` instead.");var R=(c={prefixCls:f,accordion:m,openMotion:x,expandIcon:E,collapsible:y,destroyInactivePanel:void 0!==p&&p,onItemClick:function(e){return P(function(){return m?F[0]===e?[]:[e]:F.indexOf(e)>-1?F.filter(function(t){return t!==e}):[].concat((0,r.default)(F),[e])})},activeKey:F},Array.isArray(O)?b(O,c):(0,u.default)(v).map(function(e,t){return w(e,t,c)}));return s.default.createElement("div",(0,t.default)({ref:n,className:T,style:h,role:m?"tablist":void 0},(0,$.default)(e,{aria:!0,data:!0})),R)}),{Panel:v});x.Panel,e.s(["default",0,x],301092)},125234,e=>{"use strict";var t=e.i(271645),r=e.i(343794),o=e.i(301092),n=e.i(242064);let a=t.forwardRef((e,a)=>{let{getPrefixCls:i}=t.useContext(n.ConfigContext),{prefixCls:l,className:s,showArrow:c=!0}=e,u=i("collapse",l),d=(0,r.default)({[`${u}-no-arrow`]:!c},s);return t.createElement(o.default.Panel,Object.assign({ref:a},e,{prefixCls:u,className:d}))});e.s(["default",0,a])},988122,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(286612),o=e.i(343794),n=e.i(301092),a=e.i(876556),i=e.i(529681),l=e.i(613541),s=e.i(763731),c=e.i(242064),u=e.i(517455),d=e.i(125234);e.i(296059);var f=e.i(915654),p=e.i(183293),h=e.i(447580),m=e.i(246422),g=e.i(838378);let v=(0,m.genStyleHooks)("Collapse",e=>{let t=(0,g.mergeToken)(e,{collapseHeaderPaddingSM:`${(0,f.unit)(e.paddingXS)} ${(0,f.unit)(e.paddingSM)}`,collapseHeaderPaddingLG:`${(0,f.unit)(e.padding)} ${(0,f.unit)(e.paddingLG)}`,collapsePanelBorderRadius:e.borderRadiusLG});return[(e=>{let{componentCls:t,contentBg:r,padding:o,headerBg:n,headerPadding:a,collapseHeaderPaddingSM:i,collapseHeaderPaddingLG:l,collapsePanelBorderRadius:s,lineWidth:c,lineType:u,colorBorder:d,colorText:h,colorTextHeading:m,colorTextDisabled:g,fontSizeLG:v,lineHeight:y,lineHeightLG:b,marginSM:w,paddingSM:$,paddingLG:C,paddingXS:x,motionDurationSlow:E,fontSizeIcon:S,contentPadding:k,fontHeight:j,fontHeightLG:O}=e,T=`${(0,f.unit)(c)} ${u} ${d}`;return{[t]:Object.assign(Object.assign({},(0,p.resetComponent)(e)),{backgroundColor:n,border:T,borderRadius:s,"&-rtl":{direction:"rtl"},[`& > ${t}-item`]:{borderBottom:T,"&:first-child":{[` + &, + & > ${t}-header`]:{borderRadius:`${(0,f.unit)(s)} ${(0,f.unit)(s)} 0 0`}},"&:last-child":{[` + &, + & > ${t}-header`]:{borderRadius:`0 0 ${(0,f.unit)(s)} ${(0,f.unit)(s)}`}},[`> ${t}-header`]:Object.assign(Object.assign({position:"relative",display:"flex",flexWrap:"nowrap",alignItems:"flex-start",padding:a,color:m,lineHeight:y,cursor:"pointer",transition:`all ${E}, visibility 0s`},(0,p.genFocusStyle)(e)),{[`> ${t}-header-text`]:{flex:"auto"},[`${t}-expand-icon`]:{height:j,display:"flex",alignItems:"center",paddingInlineEnd:w},[`${t}-arrow`]:Object.assign(Object.assign({},(0,p.resetIcon)()),{fontSize:S,transition:`transform ${E}`,svg:{transition:`transform ${E}`}}),[`${t}-header-text`]:{marginInlineEnd:"auto"}}),[`${t}-collapsible-header`]:{cursor:"default",[`${t}-header-text`]:{flex:"none",cursor:"pointer"},[`${t}-expand-icon`]:{cursor:"pointer"}},[`${t}-collapsible-icon`]:{cursor:"unset",[`${t}-expand-icon`]:{cursor:"pointer"}}},[`${t}-content`]:{color:h,backgroundColor:r,borderTop:T,[`& > ${t}-content-box`]:{padding:k},"&-hidden":{display:"none"}},"&-small":{[`> ${t}-item`]:{[`> ${t}-header`]:{padding:i,paddingInlineStart:x,[`> ${t}-expand-icon`]:{marginInlineStart:e.calc($).sub(x).equal()}},[`> ${t}-content > ${t}-content-box`]:{padding:$}}},"&-large":{[`> ${t}-item`]:{fontSize:v,lineHeight:b,[`> ${t}-header`]:{padding:l,paddingInlineStart:o,[`> ${t}-expand-icon`]:{height:O,marginInlineStart:e.calc(C).sub(o).equal()}},[`> ${t}-content > ${t}-content-box`]:{padding:C}}},[`${t}-item:last-child`]:{borderBottom:0,[`> ${t}-content`]:{borderRadius:`0 0 ${(0,f.unit)(s)} ${(0,f.unit)(s)}`}},[`& ${t}-item-disabled > ${t}-header`]:{[` + &, + & > .arrow + `]:{color:g,cursor:"not-allowed"}},[`&${t}-icon-position-end`]:{[`& > ${t}-item`]:{[`> ${t}-header`]:{[`${t}-expand-icon`]:{order:1,paddingInlineEnd:0,paddingInlineStart:w}}}}})}})(t),(e=>{let{componentCls:t,headerBg:r,borderlessContentPadding:o,borderlessContentBg:n,colorBorder:a}=e;return{[`${t}-borderless`]:{backgroundColor:r,border:0,[`> ${t}-item`]:{borderBottom:`1px solid ${a}`},[` + > ${t}-item:last-child, + > ${t}-item:last-child ${t}-header + `]:{borderRadius:0},[`> ${t}-item:last-child`]:{borderBottom:0},[`> ${t}-item > ${t}-content`]:{backgroundColor:n,borderTop:0},[`> ${t}-item > ${t}-content > ${t}-content-box`]:{padding:o}}}})(t),(e=>{let{componentCls:t,paddingSM:r}=e;return{[`${t}-ghost`]:{backgroundColor:"transparent",border:0,[`> ${t}-item`]:{borderBottom:0,[`> ${t}-content`]:{backgroundColor:"transparent",border:0,[`> ${t}-content-box`]:{paddingBlock:r}}}}}})(t),(e=>{let{componentCls:t}=e,r=`> ${t}-item > ${t}-header ${t}-arrow`;return{[`${t}-rtl`]:{[r]:{transform:"rotate(180deg)"}}}})(t),(0,h.genCollapseMotion)(t)]},e=>({headerPadding:`${e.paddingSM}px ${e.padding}px`,headerBg:e.colorFillAlter,contentPadding:`${e.padding}px 16px`,contentBg:e.colorBgContainer,borderlessContentPadding:`${e.paddingXXS}px 16px ${e.padding}px`,borderlessContentBg:"transparent"})),y=Object.assign(t.forwardRef((e,d)=>{let{getPrefixCls:f,direction:p,expandIcon:h,className:m,style:g}=(0,c.useComponentConfig)("collapse"),{prefixCls:y,className:b,rootClassName:w,style:$,bordered:C=!0,ghost:x,size:E,expandIconPosition:S="start",children:k,destroyInactivePanel:j,destroyOnHidden:O,expandIcon:T}=e,I=(0,u.default)(e=>{var t;return null!=(t=null!=E?E:e)?t:"middle"}),_=f("collapse",y),F=f(),[P,R,N]=v(_),M=t.useMemo(()=>"left"===S?"start":"right"===S?"end":S,[S]),B=null!=T?T:h,A=t.useCallback((e={})=>{let n="function"==typeof B?B(e):t.createElement(r.default,{rotate:e.isActive?"rtl"===p?-90:90:void 0,"aria-label":e.isActive?"expanded":"collapsed"});return(0,s.cloneElement)(n,()=>{var e;return{className:(0,o.default)(null==(e=n.props)?void 0:e.className,`${_}-arrow`)}})},[B,_,p]),z=(0,o.default)(`${_}-icon-position-${M}`,{[`${_}-borderless`]:!C,[`${_}-rtl`]:"rtl"===p,[`${_}-ghost`]:!!x,[`${_}-${I}`]:"middle"!==I},m,b,w,R,N),L=t.useMemo(()=>Object.assign(Object.assign({},(0,l.default)(F)),{motionAppear:!1,leavedClassName:`${_}-content-hidden`}),[F,_]),D=t.useMemo(()=>k?(0,a.default)(k).map((e,t)=>{var r,o;let n=e.props;if(null==n?void 0:n.disabled){let a=null!=(r=e.key)?r:String(t),l=Object.assign(Object.assign({},(0,i.default)(e.props,["disabled"])),{key:a,collapsible:null!=(o=n.collapsible)?o:"disabled"});return(0,s.cloneElement)(e,l)}return e}):null,[k]);return P(t.createElement(n.default,Object.assign({ref:d,openMotion:L},(0,i.default)(e,["rootClassName"]),{expandIcon:A,prefixCls:_,className:z,style:Object.assign(Object.assign({},g),$),destroyInactivePanel:null!=O?O:j}),D))}),{Panel:d.default});e.s(["default",0,y],988122)},432231,327174,e=>{"use strict";e.i(296059);var t=e.i(915654),r=e.i(183293),o=e.i(617933),n=e.i(246422),a=e.i(838378),i=e.i(470977),l=e.i(571070);e.i(271645),e.i(509808),e.i(202599);var s=e.i(814690);e.i(343794),e.i(914949),e.i(988122),e.i(408850),e.i(104458),e.i(656449);var c=e.i(988317),u=e.i(745978);let d=e=>{let{paddingInline:t,onlyIconSize:r}=e;return(0,a.mergeToken)(e,{buttonPaddingHorizontal:t,buttonPaddingVertical:0,buttonIconOnlyFontSize:r})},f=e=>{var r,n,a,i,d,f;let p=null!=(r=e.contentFontSize)?r:e.fontSize,h=null!=(n=e.contentFontSizeSM)?n:e.fontSize,m=null!=(a=e.contentFontSizeLG)?a:e.fontSizeLG,g=null!=(i=e.contentLineHeight)?i:(0,c.getLineHeight)(p),v=null!=(d=e.contentLineHeightSM)?d:(0,c.getLineHeight)(h),y=null!=(f=e.contentLineHeightLG)?f:(0,c.getLineHeight)(m),b=((e,t)=>{let{r,g:o,b:n,a}=e.toRgb(),i=new s.Color(e.toRgbString()).onBackground(t).toHsv();return a<=.5?i.v>.5:.299*r+.587*o+.114*n>192})(new l.AggregationColor(e.colorBgSolid),"#fff")?"#000":"#fff";return Object.assign(Object.assign({},o.PresetColors.reduce((r,o)=>Object.assign(Object.assign({},r),{[`${o}ShadowColor`]:`0 ${(0,t.unit)(e.controlOutlineWidth)} 0 ${(0,u.default)(e[`${o}1`],e.colorBgContainer)}`}),{})),{fontWeight:400,iconGap:e.marginXS,defaultShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlTmpOutline}`,primaryShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlOutline}`,dangerShadow:`0 ${e.controlOutlineWidth}px 0 ${e.colorErrorOutline}`,primaryColor:e.colorTextLightSolid,dangerColor:e.colorTextLightSolid,borderColorDisabled:e.colorBorder,defaultGhostColor:e.colorBgContainer,ghostBg:"transparent",defaultGhostBorderColor:e.colorBgContainer,paddingInline:e.paddingContentHorizontal-e.lineWidth,paddingInlineLG:e.paddingContentHorizontal-e.lineWidth,paddingInlineSM:8-e.lineWidth,onlyIconSize:"inherit",onlyIconSizeSM:"inherit",onlyIconSizeLG:"inherit",groupBorderColor:e.colorPrimaryHover,linkHoverBg:"transparent",textTextColor:e.colorText,textTextHoverColor:e.colorText,textTextActiveColor:e.colorText,textHoverBg:e.colorFillTertiary,defaultColor:e.colorText,defaultBg:e.colorBgContainer,defaultBorderColor:e.colorBorder,defaultBorderColorDisabled:e.colorBorder,defaultHoverBg:e.colorBgContainer,defaultHoverColor:e.colorPrimaryHover,defaultHoverBorderColor:e.colorPrimaryHover,defaultActiveBg:e.colorBgContainer,defaultActiveColor:e.colorPrimaryActive,defaultActiveBorderColor:e.colorPrimaryActive,solidTextColor:b,contentFontSize:p,contentFontSizeSM:h,contentFontSizeLG:m,contentLineHeight:g,contentLineHeightSM:v,contentLineHeightLG:y,paddingBlock:Math.max((e.controlHeight-p*g)/2-e.lineWidth,0),paddingBlockSM:Math.max((e.controlHeightSM-h*v)/2-e.lineWidth,0),paddingBlockLG:Math.max((e.controlHeightLG-m*y)/2-e.lineWidth,0)})};e.s(["prepareComponentToken",0,f,"prepareToken",0,d],327174);let p=(e,t,r)=>({[`&:not(:disabled):not(${e}-disabled)`]:{"&:hover":t,"&:active":r}}),h=(e,t,r,o,n,a,i,l)=>({[`&${e}-background-ghost`]:Object.assign(Object.assign({color:r||void 0,background:t,borderColor:o||void 0,boxShadow:"none"},p(e,Object.assign({background:t},i),Object.assign({background:t},l))),{"&:disabled":{cursor:"not-allowed",color:n||void 0,borderColor:a||void 0}})}),m=(e,t,r,o)=>Object.assign(Object.assign({},(o&&["link","text"].includes(o)?e=>({[`&:disabled, &${e.componentCls}-disabled`]:{cursor:"not-allowed",color:e.colorTextDisabled}}):e=>({[`&:disabled, &${e.componentCls}-disabled`]:Object.assign({},{cursor:"not-allowed",borderColor:e.borderColorDisabled,color:e.colorTextDisabled,background:e.colorBgContainerDisabled,boxShadow:"none"})}))(e)),p(e.componentCls,t,r)),g=(e,t,r,o,n)=>({[`&${e.componentCls}-variant-solid`]:Object.assign({color:t,background:r},m(e,o,n))}),v=(e,t,r,o,n)=>({[`&${e.componentCls}-variant-outlined, &${e.componentCls}-variant-dashed`]:Object.assign({borderColor:t,background:r},m(e,o,n))}),y=e=>({[`&${e.componentCls}-variant-dashed`]:{borderStyle:"dashed"}}),b=(e,t,r,o)=>({[`&${e.componentCls}-variant-filled`]:Object.assign({boxShadow:"none",background:t},m(e,r,o))}),w=(e,t,r,o,n)=>({[`&${e.componentCls}-variant-${r}`]:Object.assign({color:t,boxShadow:"none"},m(e,o,n,r))}),$=(e,r="")=>{let{componentCls:o,controlHeight:n,fontSize:a,borderRadius:i,buttonPaddingHorizontal:l,iconCls:s,buttonPaddingVertical:c,buttonIconOnlyFontSize:u}=e;return[{[r]:{fontSize:a,height:n,padding:`${(0,t.unit)(c)} ${(0,t.unit)(l)}`,borderRadius:i,[`&${o}-icon-only`]:{width:n,[s]:{fontSize:u}}}},{[`${o}${o}-circle${r}`]:{minWidth:e.controlHeight,paddingInline:0,borderRadius:"50%"}},{[`${o}${o}-round${r}`]:{borderRadius:e.controlHeight,[`&:not(${o}-icon-only)`]:{paddingInline:e.buttonPaddingHorizontal}}}]},C=(0,n.genStyleHooks)("Button",e=>{let n=d(e);return[(e=>{let{componentCls:o,iconCls:n,fontWeight:a,opacityLoading:i,motionDurationSlow:l,motionEaseInOut:s,iconGap:c,calc:u}=e;return{[o]:{outline:"none",position:"relative",display:"inline-flex",gap:c,alignItems:"center",justifyContent:"center",fontWeight:a,whiteSpace:"nowrap",textAlign:"center",backgroundImage:"none",background:"transparent",border:`${(0,t.unit)(e.lineWidth)} ${e.lineType} transparent`,cursor:"pointer",transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,userSelect:"none",touchAction:"manipulation",color:e.colorText,"&:disabled > *":{pointerEvents:"none"},[`${o}-icon > svg`]:(0,r.resetIcon)(),"> a":{color:"currentColor"},"&:not(:disabled)":(0,r.genFocusStyle)(e),[`&${o}-two-chinese-chars::first-letter`]:{letterSpacing:"0.34em"},[`&${o}-two-chinese-chars > *:not(${n})`]:{marginInlineEnd:"-0.34em",letterSpacing:"0.34em"},[`&${o}-icon-only`]:{paddingInline:0,[`&${o}-compact-item`]:{flex:"none"}},[`&${o}-loading`]:{opacity:i,cursor:"default"},[`${o}-loading-icon`]:{transition:["width","opacity","margin"].map(e=>`${e} ${l} ${s}`).join(",")},[`&:not(${o}-icon-end)`]:{[`${o}-loading-icon-motion`]:{"&-appear-start, &-enter-start":{marginInlineEnd:u(c).mul(-1).equal()},"&-appear-active, &-enter-active":{marginInlineEnd:0},"&-leave-start":{marginInlineEnd:0},"&-leave-active":{marginInlineEnd:u(c).mul(-1).equal()}}},"&-icon-end":{flexDirection:"row-reverse",[`${o}-loading-icon-motion`]:{"&-appear-start, &-enter-start":{marginInlineStart:u(c).mul(-1).equal()},"&-appear-active, &-enter-active":{marginInlineStart:0},"&-leave-start":{marginInlineStart:0},"&-leave-active":{marginInlineStart:u(c).mul(-1).equal()}}}}}})(n),$((0,a.mergeToken)(n,{fontSize:n.contentFontSize}),n.componentCls),$((0,a.mergeToken)(n,{controlHeight:n.controlHeightSM,fontSize:n.contentFontSizeSM,padding:n.paddingXS,buttonPaddingHorizontal:n.paddingInlineSM,buttonPaddingVertical:0,borderRadius:n.borderRadiusSM,buttonIconOnlyFontSize:n.onlyIconSizeSM}),`${n.componentCls}-sm`),$((0,a.mergeToken)(n,{controlHeight:n.controlHeightLG,fontSize:n.contentFontSizeLG,buttonPaddingHorizontal:n.paddingInlineLG,buttonPaddingVertical:0,borderRadius:n.borderRadiusLG,buttonIconOnlyFontSize:n.onlyIconSizeLG}),`${n.componentCls}-lg`),(e=>{let{componentCls:t}=e;return{[t]:{[`&${t}-block`]:{width:"100%"}}}})(n),(e=>{let{componentCls:t}=e;return Object.assign({[`${t}-color-default`]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:e.defaultColor,boxShadow:e.defaultShadow},g(e,e.solidTextColor,e.colorBgSolid,{color:e.solidTextColor,background:e.colorBgSolidHover},{color:e.solidTextColor,background:e.colorBgSolidActive})),y(e)),b(e,e.colorFillTertiary,{color:e.defaultColor,background:e.colorFillSecondary},{color:e.defaultColor,background:e.colorFill})),h(e.componentCls,e.ghostBg,e.defaultGhostColor,e.defaultGhostBorderColor,e.colorTextDisabled,e.colorBorder)),w(e,e.textTextColor,"link",{color:e.colorLinkHover,background:e.linkHoverBg},{color:e.colorLinkActive})),[`${t}-color-primary`]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:e.colorPrimary,boxShadow:e.primaryShadow},v(e,e.colorPrimary,e.colorBgContainer,{color:e.colorPrimaryTextHover,borderColor:e.colorPrimaryHover,background:e.colorBgContainer},{color:e.colorPrimaryTextActive,borderColor:e.colorPrimaryActive,background:e.colorBgContainer})),y(e)),b(e,e.colorPrimaryBg,{color:e.colorPrimary,background:e.colorPrimaryBgHover},{color:e.colorPrimary,background:e.colorPrimaryBorder})),w(e,e.colorPrimaryText,"text",{color:e.colorPrimaryTextHover,background:e.colorPrimaryBg},{color:e.colorPrimaryTextActive,background:e.colorPrimaryBorder})),w(e,e.colorPrimaryText,"link",{color:e.colorPrimaryTextHover,background:e.linkHoverBg},{color:e.colorPrimaryTextActive})),h(e.componentCls,e.ghostBg,e.colorPrimary,e.colorPrimary,e.colorTextDisabled,e.colorBorder,{color:e.colorPrimaryHover,borderColor:e.colorPrimaryHover},{color:e.colorPrimaryActive,borderColor:e.colorPrimaryActive})),[`${t}-color-dangerous`]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:e.colorError,boxShadow:e.dangerShadow},g(e,e.dangerColor,e.colorError,{background:e.colorErrorHover},{background:e.colorErrorActive})),v(e,e.colorError,e.colorBgContainer,{color:e.colorErrorHover,borderColor:e.colorErrorBorderHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),y(e)),b(e,e.colorErrorBg,{color:e.colorError,background:e.colorErrorBgFilledHover},{color:e.colorError,background:e.colorErrorBgActive})),w(e,e.colorError,"text",{color:e.colorErrorHover,background:e.colorErrorBg},{color:e.colorErrorHover,background:e.colorErrorBgActive})),w(e,e.colorError,"link",{color:e.colorErrorHover},{color:e.colorErrorActive})),h(e.componentCls,e.ghostBg,e.colorError,e.colorError,e.colorTextDisabled,e.colorBorder,{color:e.colorErrorHover,borderColor:e.colorErrorHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),[`${t}-color-link`]:Object.assign(Object.assign({},w(e,e.colorLink,"link",{color:e.colorLinkHover},{color:e.colorLinkActive})),h(e.componentCls,e.ghostBg,e.colorInfo,e.colorInfo,e.colorTextDisabled,e.colorBorder,{color:e.colorInfoHover,borderColor:e.colorInfoHover},{color:e.colorInfoActive,borderColor:e.colorInfoActive}))},(e=>{let{componentCls:t}=e;return o.PresetColors.reduce((r,o)=>{let n=e[`${o}6`],a=e[`${o}1`],i=e[`${o}5`],l=e[`${o}2`],s=e[`${o}3`],c=e[`${o}7`];return Object.assign(Object.assign({},r),{[`&${t}-color-${o}`]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:n,boxShadow:e[`${o}ShadowColor`]},g(e,e.colorTextLightSolid,n,{background:i},{background:c})),v(e,n,e.colorBgContainer,{color:i,borderColor:i,background:e.colorBgContainer},{color:c,borderColor:c,background:e.colorBgContainer})),y(e)),b(e,a,{color:n,background:l},{color:n,background:s})),w(e,n,"link",{color:i},{color:c})),w(e,n,"text",{color:i,background:a},{color:c,background:s}))})},{})})(e))})(n),Object.assign(Object.assign(Object.assign(Object.assign({},v(n,n.defaultBorderColor,n.defaultBg,{color:n.defaultHoverColor,borderColor:n.defaultHoverBorderColor,background:n.defaultHoverBg},{color:n.defaultActiveColor,borderColor:n.defaultActiveBorderColor,background:n.defaultActiveBg})),w(n,n.textTextColor,"text",{color:n.textTextHoverColor,background:n.textHoverBg},{color:n.textTextActiveColor,background:n.colorBgTextActive})),g(n,n.primaryColor,n.colorPrimary,{background:n.colorPrimaryHover,color:n.primaryColor},{background:n.colorPrimaryActive,color:n.primaryColor})),w(n,n.colorLink,"link",{color:n.colorLinkHover,background:n.linkHoverBg},{color:n.colorLinkActive})),(0,i.default)(n)]},f,{unitless:{fontWeight:!0,contentLineHeight:!0,contentLineHeightSM:!0,contentLineHeightLG:!0}});e.s(["default",0,C],432231)},920228,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(174428),n=e.i(529681),a=e.i(611935),i=e.i(121872),l=e.i(242064),s=e.i(937328),c=e.i(517455),u=e.i(249616),d=e.i(735996),f=e.i(62405),p=e.i(868004),h=e.i(869693),m=e.i(432231),g=e.i(372409),v=e.i(246422),y=e.i(327174);let b=(0,v.genSubStyleComponent)(["Button","compact"],e=>{var t,r;let o,n=(0,y.prepareToken)(e);return[(0,g.genCompactItemStyle)(n),{[o=`${n.componentCls}-compact-vertical`]:Object.assign(Object.assign({},(t=n.componentCls,{[`&-item:not(${o}-last-item)`]:{marginBottom:n.calc(n.lineWidth).mul(-1).equal()},[`&-item:not(${t}-status-success)`]:{zIndex:2},"&-item":{"&:hover,&:focus,&:active":{zIndex:3},"&[disabled]":{zIndex:0}}})),(r=n.componentCls,{[`&-item:not(${o}-first-item):not(${o}-last-item)`]:{borderRadius:0},[`&-item${o}-first-item:not(${o}-last-item)`]:{[`&, &${r}-sm, &${r}-lg`]:{borderEndEndRadius:0,borderEndStartRadius:0}},[`&-item${o}-last-item:not(${o}-first-item)`]:{[`&, &${r}-sm, &${r}-lg`]:{borderStartStartRadius:0,borderStartEndRadius:0}}}))},(e=>{let{componentCls:t,colorPrimaryHover:r,lineWidth:o,calc:n}=e,a=n(o).mul(-1).equal(),i=e=>{let n=`${t}-compact${e?"-vertical":""}-item${t}-primary:not([disabled])`;return{[`${n} + ${n}::before`]:{position:"absolute",top:e?a:0,insetInlineStart:e?0:a,backgroundColor:r,content:'""',width:e?"100%":o,height:e?o:"100%"}}};return Object.assign(Object.assign({},i()),i(!0))})(n)]},y.prepareComponentToken);var w=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let $={default:["default","outlined"],primary:["primary","solid"],dashed:["default","dashed"],link:["link","link"],text:["default","text"]},C=t.default.forwardRef((e,g)=>{var v,y;let C,{loading:x=!1,prefixCls:E,color:S,variant:k,type:j,danger:O=!1,shape:T,size:I,styles:_,disabled:F,className:P,rootClassName:R,children:N,icon:M,iconPosition:B="start",ghost:A=!1,block:z=!1,htmlType:L="button",classNames:D,style:H={},autoInsertSpace:V,autoFocus:W}=e,U=w(e,["loading","prefixCls","color","variant","type","danger","shape","size","styles","disabled","className","rootClassName","children","icon","iconPosition","ghost","block","htmlType","classNames","style","autoInsertSpace","autoFocus"]),G=j||"default",{button:q}=t.default.useContext(l.ConfigContext),J=T||(null==q?void 0:q.shape)||"default",[K,X]=(0,t.useMemo)(()=>{if(S&&k)return[S,k];if(j||O){let e=$[G]||[];return O?["danger",e[1]]:e}return(null==q?void 0:q.color)&&(null==q?void 0:q.variant)?[q.color,q.variant]:["default","outlined"]},[S,k,j,O,null==q?void 0:q.color,null==q?void 0:q.variant,G]),Q="danger"===K?"dangerous":K,{getPrefixCls:Y,direction:Z,autoInsertSpace:ee,className:et,style:er,classNames:eo,styles:en}=(0,l.useComponentConfig)("button"),ea=null==(v=null!=V?V:ee)||v,ei=Y("btn",E),[el,es,ec]=(0,m.default)(ei),eu=(0,t.useContext)(s.default),ed=null!=F?F:eu,ef=(0,t.useContext)(d.GroupSizeContext),ep=(0,t.useMemo)(()=>(function(e){if("object"==typeof e&&e){let t=null==e?void 0:e.delay;return{loading:(t=Number.isNaN(t)||"number"!=typeof t?0:t)<=0,delay:t}}return{loading:!!e,delay:0}})(x),[x]),[eh,em]=(0,t.useState)(ep.loading),[eg,ev]=(0,t.useState)(!1),ey=(0,t.useRef)(null),eb=(0,a.useComposeRef)(g,ey),ew=1===t.Children.count(N)&&!M&&!(0,f.isUnBorderedButtonVariant)(X),e$=(0,t.useRef)(!0);t.default.useEffect(()=>(e$.current=!1,()=>{e$.current=!0}),[]),(0,o.default)(()=>{let e=null;return ep.delay>0?e=setTimeout(()=>{e=null,em(!0)},ep.delay):em(ep.loading),function(){e&&(clearTimeout(e),e=null)}},[ep.delay,ep.loading]),(0,t.useEffect)(()=>{if(!ey.current||!ea)return;let e=ey.current.textContent||"";ew&&(0,f.isTwoCNChar)(e)?eg||ev(!0):eg&&ev(!1)}),(0,t.useEffect)(()=>{W&&ey.current&&ey.current.focus()},[]);let eC=t.default.useCallback(t=>{var r;eh||ed?t.preventDefault():null==(r=e.onClick)||r.call(e,("href"in e,t))},[e.onClick,eh,ed]),{compactSize:ex,compactItemClassnames:eE}=(0,u.useCompactItemContext)(ei,Z),eS=(0,c.default)(e=>{var t,r;return null!=(r=null!=(t=null!=I?I:ex)?t:ef)?r:e}),ek=eS&&null!=(y=({large:"lg",small:"sm",middle:void 0})[eS])?y:"",ej=eh?"loading":M,eO=(0,n.default)(U,["navigate"]),eT=(0,r.default)(ei,es,ec,{[`${ei}-${J}`]:"default"!==J&&J,[`${ei}-${G}`]:G,[`${ei}-dangerous`]:O,[`${ei}-color-${Q}`]:Q,[`${ei}-variant-${X}`]:X,[`${ei}-${ek}`]:ek,[`${ei}-icon-only`]:!N&&0!==N&&!!ej,[`${ei}-background-ghost`]:A&&!(0,f.isUnBorderedButtonVariant)(X),[`${ei}-loading`]:eh,[`${ei}-two-chinese-chars`]:eg&&ea&&!eh,[`${ei}-block`]:z,[`${ei}-rtl`]:"rtl"===Z,[`${ei}-icon-end`]:"end"===B},eE,P,R,et),eI=Object.assign(Object.assign({},er),H),e_=(0,r.default)(null==D?void 0:D.icon,eo.icon),eF=Object.assign(Object.assign({},(null==_?void 0:_.icon)||{}),en.icon||{}),eP=e=>t.default.createElement(h.default,{prefixCls:ei,className:e_,style:eF},e);C=M&&!eh?eP(M):x&&"object"==typeof x&&x.icon?eP(x.icon):t.default.createElement(p.default,{existIcon:!!M,prefixCls:ei,loading:eh,mount:e$.current});let eR=N||0===N?(0,f.spaceChildren)(N,ew&&ea):null;if(void 0!==eO.href)return el(t.default.createElement("a",Object.assign({},eO,{className:(0,r.default)(eT,{[`${ei}-disabled`]:ed}),href:ed?void 0:eO.href,style:eI,onClick:eC,ref:eb,tabIndex:ed?-1:0,"aria-disabled":ed}),C,eR));let eN=t.default.createElement("button",Object.assign({},U,{type:L,className:eT,style:eI,onClick:eC,disabled:ed,ref:eb}),C,eR,eE&&t.default.createElement(b,{prefixCls:ei}));return(0,f.isUnBorderedButtonVariant)(X)||(eN=t.default.createElement(i.default,{component:"Button",disabled:eh},eN)),el(eN)});C.Group=d.default,C.__ANT_BUTTON=!0,e.s(["default",0,C],920228)},995387,e=>{"use strict";var t=e.i(271645),r=e.i(38953),o=e.i(343794),n=e.i(611935),a=e.i(763731),i=e.i(920228),l=e.i(242064),s=e.i(517455),c=e.i(249616),u=e.i(90635),d=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let f=t.forwardRef((e,f)=>{let p,{prefixCls:h,inputPrefixCls:m,className:g,size:v,suffix:y,enterButton:b=!1,addonAfter:w,loading:$,disabled:C,onSearch:x,onChange:E,onCompositionStart:S,onCompositionEnd:k,variant:j,onPressEnter:O}=e,T=d(e,["prefixCls","inputPrefixCls","className","size","suffix","enterButton","addonAfter","loading","disabled","onSearch","onChange","onCompositionStart","onCompositionEnd","variant","onPressEnter"]),{getPrefixCls:I,direction:_}=t.useContext(l.ConfigContext),F=t.useRef(!1),P=I("input-search",h),R=I("input",m),{compactSize:N}=(0,c.useCompactItemContext)(P,_),M=(0,s.default)(e=>{var t;return null!=(t=null!=v?v:N)?t:e}),B=t.useRef(null),A=e=>{var t;document.activeElement===(null==(t=B.current)?void 0:t.input)&&e.preventDefault()},z=e=>{var t,r;x&&x(null==(r=null==(t=B.current)?void 0:t.input)?void 0:r.value,e,{source:"input"})},L="boolean"==typeof b?t.createElement(r.default,null):null,D=`${P}-button`,H=b||{},V=H.type&&!0===H.type.__ANT_BUTTON;p=V||"button"===H.type?(0,a.cloneElement)(H,Object.assign({onMouseDown:A,onClick:e=>{var t,r;null==(r=null==(t=null==H?void 0:H.props)?void 0:t.onClick)||r.call(t,e),z(e)},key:"enterButton"},V?{className:D,size:M}:{})):t.createElement(i.default,{className:D,color:b?"primary":"default",size:M,disabled:C,key:"enterButton",onMouseDown:A,onClick:z,loading:$,icon:L,variant:"borderless"===j||"filled"===j||"underlined"===j?"text":b?"solid":void 0},b),w&&(p=[p,(0,a.cloneElement)(w,{key:"addonAfter"})]);let W=(0,o.default)(P,{[`${P}-rtl`]:"rtl"===_,[`${P}-${M}`]:!!M,[`${P}-with-button`]:!!b},g),U=Object.assign(Object.assign({},T),{className:W,prefixCls:R,type:"search",size:M,variant:j,onPressEnter:e=>{F.current||$||(null==O||O(e),z(e))},onCompositionStart:e=>{F.current=!0,null==S||S(e)},onCompositionEnd:e=>{F.current=!1,null==k||k(e)},addonAfter:p,suffix:y,onChange:e=>{(null==e?void 0:e.target)&&"click"===e.type&&x&&x(e.target.value,e,{source:"clear"}),null==E||E(e)},disabled:C,_skipAddonWarning:!0});return t.createElement(u.default,Object.assign({ref:(0,n.composeRef)(B,f)},U))});e.s(["default",0,f])},302384,e=>{"use strict";var t=e.i(367397);e.s(["BaseInput",()=>t.default])},598030,e=>{"use strict";var t,r=e.i(931067),o=e.i(211577),n=e.i(209428),a=e.i(8211),i=e.i(392221),l=e.i(703923),s=e.i(343794);e.i(175636);var c=e.i(302384),u=e.i(874460),d=e.i(131299),f=e.i(914949),p=e.i(271645);e.i(247167);var h=e.i(410160),m=e.i(430073),g=e.i(174428),v=e.i(963188),y=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","font-variant","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing","word-break","white-space"],b={},w=["prefixCls","defaultValue","value","autoSize","onResize","className","style","disabled","onChange","onInternalAutoSize"],$=p.forwardRef(function(e,a){var c=e.prefixCls,u=e.defaultValue,d=e.value,$=e.autoSize,C=e.onResize,x=e.className,E=e.style,S=e.disabled,k=e.onChange,j=(e.onInternalAutoSize,(0,l.default)(e,w)),O=(0,f.default)(u,{value:d,postState:function(e){return null!=e?e:""}}),T=(0,i.default)(O,2),I=T[0],_=T[1],F=p.useRef();p.useImperativeHandle(a,function(){return{textArea:F.current}});var P=p.useMemo(function(){return $&&"object"===(0,h.default)($)?[$.minRows,$.maxRows]:[]},[$]),R=(0,i.default)(P,2),N=R[0],M=R[1],B=!!$,A=p.useState(2),z=(0,i.default)(A,2),L=z[0],D=z[1],H=p.useState(),V=(0,i.default)(H,2),W=V[0],U=V[1],G=function(){D(0)};(0,g.default)(function(){B&&G()},[d,N,M,B]),(0,g.default)(function(){if(0===L)D(1);else if(1===L){var e=function(e){var r,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;t||((t=document.createElement("textarea")).setAttribute("tab-index","-1"),t.setAttribute("aria-hidden","true"),t.setAttribute("name","hiddenTextarea"),document.body.appendChild(t)),e.getAttribute("wrap")?t.setAttribute("wrap",e.getAttribute("wrap")):t.removeAttribute("wrap");var i=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=e.getAttribute("id")||e.getAttribute("data-reactid")||e.getAttribute("name");if(t&&b[r])return b[r];var o=window.getComputedStyle(e),n=o.getPropertyValue("box-sizing")||o.getPropertyValue("-moz-box-sizing")||o.getPropertyValue("-webkit-box-sizing"),a=parseFloat(o.getPropertyValue("padding-bottom"))+parseFloat(o.getPropertyValue("padding-top")),i=parseFloat(o.getPropertyValue("border-bottom-width"))+parseFloat(o.getPropertyValue("border-top-width")),l={sizingStyle:y.map(function(e){return"".concat(e,":").concat(o.getPropertyValue(e))}).join(";"),paddingSize:a,borderSize:i,boxSizing:n};return t&&r&&(b[r]=l),l}(e,o),l=i.paddingSize,s=i.borderSize,c=i.boxSizing,u=i.sizingStyle;t.setAttribute("style","".concat(u,";").concat("\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important;\n pointer-events: none !important;\n")),t.value=e.value||e.placeholder||"";var d=void 0,f=void 0,p=t.scrollHeight;if("border-box"===c?p+=s:"content-box"===c&&(p-=l),null!==n||null!==a){t.value=" ";var h=t.scrollHeight-l;null!==n&&(d=h*n,"border-box"===c&&(d=d+l+s),p=Math.max(d,p)),null!==a&&(f=h*a,"border-box"===c&&(f=f+l+s),r=p>f?"":"hidden",p=Math.min(f,p))}var m={height:p,overflowY:r,resize:"none"};return d&&(m.minHeight=d),f&&(m.maxHeight=f),m}(F.current,!1,N,M);D(2),U(e)}},[L]);var q=p.useRef(),J=function(){v.default.cancel(q.current)};p.useEffect(function(){return J},[]);var K=(0,n.default)((0,n.default)({},E),B?W:null);return(0===L||1===L)&&(K.overflowY="hidden",K.overflowX="hidden"),p.createElement(m.default,{onResize:function(e){2===L&&(null==C||C(e),$&&(J(),q.current=(0,v.default)(function(){G()})))},disabled:!($||C)},p.createElement("textarea",(0,r.default)({},j,{ref:F,style:K,className:(0,s.default)(c,x,(0,o.default)({},"".concat(c,"-disabled"),S)),disabled:S,value:I,onChange:function(e){_(e.target.value),null==k||k(e)}})))}),C=["defaultValue","value","onFocus","onBlur","onChange","allowClear","maxLength","onCompositionStart","onCompositionEnd","suffix","prefixCls","showCount","count","className","style","disabled","hidden","classNames","styles","onResize","onClear","onPressEnter","readOnly","autoSize","onKeyDown"],x=p.default.forwardRef(function(e,t){var h,m,g=e.defaultValue,v=e.value,y=e.onFocus,b=e.onBlur,w=e.onChange,x=e.allowClear,E=e.maxLength,S=e.onCompositionStart,k=e.onCompositionEnd,j=e.suffix,O=e.prefixCls,T=void 0===O?"rc-textarea":O,I=e.showCount,_=e.count,F=e.className,P=e.style,R=e.disabled,N=e.hidden,M=e.classNames,B=e.styles,A=e.onResize,z=e.onClear,L=e.onPressEnter,D=e.readOnly,H=e.autoSize,V=e.onKeyDown,W=(0,l.default)(e,C),U=(0,f.default)(g,{value:v,defaultValue:g}),G=(0,i.default)(U,2),q=G[0],J=G[1],K=null==q?"":String(q),X=p.default.useState(!1),Q=(0,i.default)(X,2),Y=Q[0],Z=Q[1],ee=p.default.useRef(!1),et=p.default.useState(null),er=(0,i.default)(et,2),eo=er[0],en=er[1],ea=(0,p.useRef)(null),ei=(0,p.useRef)(null),el=function(){var e;return null==(e=ei.current)?void 0:e.textArea},es=function(){el().focus()};(0,p.useImperativeHandle)(t,function(){var e;return{resizableTextArea:ei.current,focus:es,blur:function(){el().blur()},nativeElement:(null==(e=ea.current)?void 0:e.nativeElement)||el()}}),(0,p.useEffect)(function(){Z(function(e){return!R&&e})},[R]);var ec=p.default.useState(null),eu=(0,i.default)(ec,2),ed=eu[0],ef=eu[1];p.default.useEffect(function(){if(ed){var e;(e=el()).setSelectionRange.apply(e,(0,a.default)(ed))}},[ed]);var ep=(0,u.default)(_,I),eh=null!=(h=ep.max)?h:E,em=Number(eh)>0,eg=ep.strategy(K),ev=!!eh&&eg>eh,ey=function(e,t){var r=t;!ee.current&&ep.exceedFormatter&&ep.max&&ep.strategy(t)>ep.max&&(r=ep.exceedFormatter(t,{max:ep.max}),t!==r&&ef([el().selectionStart||0,el().selectionEnd||0])),J(r),(0,d.resolveOnChange)(e.currentTarget,e,w,r)},eb=j;ep.show&&(m=ep.showFormatter?ep.showFormatter({value:K,count:eg,maxLength:eh}):"".concat(eg).concat(em?" / ".concat(eh):""),eb=p.default.createElement(p.default.Fragment,null,eb,p.default.createElement("span",{className:(0,s.default)("".concat(T,"-data-count"),null==M?void 0:M.count),style:null==B?void 0:B.count},m)));var ew=!H&&!I&&!x;return p.default.createElement(c.BaseInput,{ref:ea,value:K,allowClear:x,handleReset:function(e){J(""),es(),(0,d.resolveOnChange)(el(),e,w)},suffix:eb,prefixCls:T,classNames:(0,n.default)((0,n.default)({},M),{},{affixWrapper:(0,s.default)(null==M?void 0:M.affixWrapper,(0,o.default)((0,o.default)({},"".concat(T,"-show-count"),I),"".concat(T,"-textarea-allow-clear"),x))}),disabled:R,focused:Y,className:(0,s.default)(F,ev&&"".concat(T,"-out-of-range")),style:(0,n.default)((0,n.default)({},P),eo&&!ew?{height:"auto"}:{}),dataAttrs:{affixWrapper:{"data-count":"string"==typeof m?m:void 0}},hidden:N,readOnly:D,onClear:z},p.default.createElement($,(0,r.default)({},W,{autoSize:H,maxLength:E,onKeyDown:function(e){"Enter"===e.key&&L&&L(e),null==V||V(e)},onChange:function(e){ey(e,e.target.value)},onFocus:function(e){Z(!0),null==y||y(e)},onBlur:function(e){Z(!1),null==b||b(e)},onCompositionStart:function(e){ee.current=!0,null==S||S(e)},onCompositionEnd:function(e){ee.current=!1,ey(e,e.currentTarget.value),null==k||k(e)},className:(0,s.default)(null==M?void 0:M.textarea),style:(0,n.default)((0,n.default)({},null==B?void 0:B.textarea),{},{resize:null==P?void 0:P.resize}),disabled:R,prefixCls:T,onResize:function(e){var t;null==A||A(e),null!=(t=el())&&t.style.height&&en(!0)},ref:ei,readOnly:D})))});e.s(["default",0,x],598030)},635432,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(598030),n=e.i(330683),a=e.i(52956),i=e.i(242064),l=e.i(937328),s=e.i(321883),c=e.i(517455),u=e.i(62139),d=e.i(792812),f=e.i(249616),p=e.i(131299),h=e.i(349942),m=e.i(246422),g=e.i(838378),v=e.i(517458);let y=(0,m.genStyleHooks)(["Input","TextArea"],e=>(e=>{let{componentCls:t,paddingLG:r}=e,o=`${t}-textarea`;return{[`textarea${t}`]:{maxWidth:"100%",height:"auto",minHeight:e.controlHeight,lineHeight:e.lineHeight,verticalAlign:"bottom",transition:`all ${e.motionDurationSlow}`,resize:"vertical",[`&${t}-mouse-active`]:{transition:`all ${e.motionDurationSlow}, height 0s, width 0s`}},[`${t}-textarea-affix-wrapper-resize-dirty`]:{width:"auto"},[o]:{position:"relative","&-show-count":{[`${t}-data-count`]:{position:"absolute",bottom:e.calc(e.fontSize).mul(e.lineHeight).mul(-1).equal(),insetInlineEnd:0,color:e.colorTextDescription,whiteSpace:"nowrap",pointerEvents:"none"}},[` + &-allow-clear > ${t}, + &-affix-wrapper${o}-has-feedback ${t} + `]:{paddingInlineEnd:r},[`&-affix-wrapper${t}-affix-wrapper`]:{padding:0,[`> textarea${t}`]:{fontSize:"inherit",border:"none",outline:"none",background:"transparent",minHeight:e.calc(e.controlHeight).sub(e.calc(e.lineWidth).mul(2)).equal(),"&:focus":{boxShadow:"none !important"}},[`${t}-suffix`]:{margin:0,"> *:not(:last-child)":{marginInline:0},[`${t}-clear-icon`]:{position:"absolute",insetInlineEnd:e.paddingInline,insetBlockStart:e.paddingXS},[`${o}-suffix`]:{position:"absolute",top:0,insetInlineEnd:e.paddingInline,bottom:0,zIndex:1,display:"inline-flex",alignItems:"center",margin:"auto",pointerEvents:"none"}}},[`&-affix-wrapper${t}-affix-wrapper-rtl`]:{[`${t}-suffix`]:{[`${t}-data-count`]:{direction:"ltr",insetInlineStart:0}}},[`&-affix-wrapper${t}-affix-wrapper-sm`]:{[`${t}-suffix`]:{[`${t}-clear-icon`]:{insetInlineEnd:e.paddingInlineSM}}}}}})((0,g.mergeToken)(e,(0,v.initInputToken)(e))),v.initComponentToken,{resetFont:!1});var b=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let w=(0,t.forwardRef)((e,m)=>{var g;let{prefixCls:v,bordered:w=!0,size:$,disabled:C,status:x,allowClear:E,classNames:S,rootClassName:k,className:j,style:O,styles:T,variant:I,showCount:_,onMouseDown:F,onResize:P}=e,R=b(e,["prefixCls","bordered","size","disabled","status","allowClear","classNames","rootClassName","className","style","styles","variant","showCount","onMouseDown","onResize"]),{getPrefixCls:N,direction:M,allowClear:B,autoComplete:A,className:z,style:L,classNames:D,styles:H}=(0,i.useComponentConfig)("textArea"),V=t.useContext(l.default),{status:W,hasFeedback:U,feedbackIcon:G}=t.useContext(u.FormItemInputContext),q=(0,a.getMergedStatus)(W,x),J=t.useRef(null);t.useImperativeHandle(m,()=>{var e;return{resizableTextArea:null==(e=J.current)?void 0:e.resizableTextArea,focus:e=>{var t,r;(0,p.triggerFocus)(null==(r=null==(t=J.current)?void 0:t.resizableTextArea)?void 0:r.textArea,e)},blur:()=>{var e;return null==(e=J.current)?void 0:e.blur()}}});let K=N("input",v),X=(0,s.default)(K),[Q,Y,Z]=(0,h.useSharedStyle)(K,k),[ee]=y(K,X),{compactSize:et,compactItemClassnames:er}=(0,f.useCompactItemContext)(K,M),eo=(0,c.default)(e=>{var t;return null!=(t=null!=$?$:et)?t:e}),[en,ea]=(0,d.default)("textArea",I,w),ei=(0,n.default)(null!=E?E:B),[el,es]=t.useState(!1),[ec,eu]=t.useState(!1);return Q(ee(t.createElement(o.default,Object.assign({autoComplete:A},R,{style:Object.assign(Object.assign({},L),O),styles:Object.assign(Object.assign({},H),T),disabled:null!=C?C:V,allowClear:ei,className:(0,r.default)(Z,X,j,k,er,z,ec&&`${K}-textarea-affix-wrapper-resize-dirty`),classNames:Object.assign(Object.assign(Object.assign({},S),D),{textarea:(0,r.default)({[`${K}-sm`]:"small"===eo,[`${K}-lg`]:"large"===eo},Y,null==S?void 0:S.textarea,D.textarea,el&&`${K}-mouse-active`),variant:(0,r.default)({[`${K}-${en}`]:ea},(0,a.getStatusClassNames)(K,q)),affixWrapper:(0,r.default)(`${K}-textarea-affix-wrapper`,{[`${K}-affix-wrapper-rtl`]:"rtl"===M,[`${K}-affix-wrapper-sm`]:"small"===eo,[`${K}-affix-wrapper-lg`]:"large"===eo,[`${K}-textarea-show-count`]:_||(null==(g=e.count)?void 0:g.show)},Y)}),prefixCls:K,suffix:U&&t.createElement("span",{className:`${K}-textarea-suffix`},G),showCount:_,ref:J,onResize:e=>{var t,r;if(null==P||P(e),el&&"function"==typeof getComputedStyle){let e=null==(r=null==(t=J.current)?void 0:t.nativeElement)?void 0:r.querySelector("textarea");e&&"both"===getComputedStyle(e).resize&&eu(!0)}},onMouseDown:e=>{es(!0),null==F||F(e);let t=()=>{es(!1),document.removeEventListener("mouseup",t)};document.addEventListener("mouseup",t)}}))))});e.s(["default",0,w],635432)},311451,e=>{"use strict";var t=e.i(831357),r=e.i(90635),o=e.i(932399),n=e.i(236798),a=e.i(995387),i=e.i(635432);let l=r.default;l.Group=t.default,l.Search=a.default,l.TextArea=i.default,l.Password=n.default,l.OTP=o.default,e.s(["Input",0,l],311451)},247153,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"}}]},name:"down",theme:"outlined"};var n=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(n.default,(0,t.default)({},e,{ref:a,icon:o}))});e.s(["default",0,a],247153)},28651,536591,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(247153),o=e.i(931067);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z"}}]},name:"up",theme:"outlined"};var a=e.i(9583),i=t.forwardRef(function(e,r){return t.createElement(a.default,(0,o.default)({},e,{ref:r,icon:n}))});e.s(["default",0,i],536591);var l=e.i(343794),s=e.i(211577),c=e.i(410160),u=e.i(392221),d=e.i(703923),f=e.i(278409),p=e.i(233848);function h(){return"function"==typeof BigInt}function m(e){return!e&&0!==e&&!Number.isNaN(e)||!String(e).trim()}function g(e){var t=e.trim(),r=t.startsWith("-");r&&(t=t.slice(1)),(t=t.replace(/(\.\d*[^0])0*$/,"$1").replace(/\.0*$/,"").replace(/^0+/,"")).startsWith(".")&&(t="0".concat(t));var o=t||"0",n=o.split("."),a=n[0]||"0",i=n[1]||"0";"0"===a&&"0"===i&&(r=!1);var l=r?"-":"";return{negative:r,negativeStr:l,trimStr:o,integerStr:a,decimalStr:i,fullStr:"".concat(l).concat(o)}}function v(e){var t=String(e);return!Number.isNaN(Number(t))&&t.includes("e")}function y(e){var t=e.toLowerCase().split("e"),r=(0,u.default)(t,2),o=r[0],n=r[1],a=o.startsWith("-"),i=(a?o.slice(1):o).split("."),l=(0,u.default)(i,2),s=l[0],c=void 0===s?"0":s,d=l[1],f=void 0===d?"":d,p="".concat(c).concat(f).replace(/^0+/,"")||"0";return{decimal:f,digits:p,exponent:Number(void 0===n?"0":n),integer:c,negative:a}}function b(e){return e.exponent>=0?Math.max(0,e.decimal.length-e.exponent):Math.abs(e.exponent)+e.decimal.length}function w(e){var t=String(e);return v(e)?b(y(t)):t.includes(".")&&C(t)?t.length-t.indexOf(".")-1:0}function $(e){var t=String(e);if(v(e)){if(e>Number.MAX_SAFE_INTEGER)return String(h()?BigInt(e).toString():Number.MAX_SAFE_INTEGER);if(e100?function(e){var t=e.decimal,r=e.digits,o=e.exponent,n=e.integer,a=e.negative;if("0"===r)return"0";var i=n.replace(/^0+/,"").length,l=(t.match(/^0*/)||[""])[0].length,s=(i||-l)+o,c="";return c=s<=0?"0.".concat("0".repeat(-s)).concat(r):s>=r.length?"".concat(r).concat("0".repeat(s-r.length)):"".concat(r.slice(0,s),".").concat(r.slice(s)),"".concat(a?"-":"").concat(c)}(r):e.toFixed(o)}return g(t).fullStr}function C(e){return"number"==typeof e?!Number.isNaN(e):!!e&&(/^\s*-?\d+(\.\d+)?\s*$/.test(e)||/^\s*-?\d+\.\s*$/.test(e)||/^\s*-?\.\d+\s*$/.test(e))}var x=function(){function e(t){if((0,f.default)(this,e),(0,s.default)(this,"origin",""),(0,s.default)(this,"negative",void 0),(0,s.default)(this,"integer",void 0),(0,s.default)(this,"decimal",void 0),(0,s.default)(this,"decimalLen",void 0),(0,s.default)(this,"empty",void 0),(0,s.default)(this,"nan",void 0),m(t)){this.empty=!0;return}if(this.origin=String(t),"-"===t||Number.isNaN(t)){this.nan=!0;return}var r=t;if(v(r)&&(r=Number(r)),C(r="string"==typeof r?r:$(r))){var o=g(r);this.negative=o.negative;var n=o.trimStr.split(".");this.integer=BigInt(n[0]);var a=n[1]||"0";this.decimal=BigInt(a),this.decimalLen=a.length}else this.nan=!0}return(0,p.default)(e,[{key:"getMark",value:function(){return this.negative?"-":""}},{key:"getIntegerStr",value:function(){return this.integer.toString()}},{key:"getDecimalStr",value:function(){return this.decimal.toString().padStart(this.decimalLen,"0")}},{key:"alignDecimal",value:function(e){return BigInt("".concat(this.getMark()).concat(this.getIntegerStr()).concat(this.getDecimalStr().padEnd(e,"0")))}},{key:"negate",value:function(){var t=new e(this.toString());return t.negative=!t.negative,t}},{key:"cal",value:function(t,r,o){var n=Math.max(this.getDecimalStr().length,t.getDecimalStr().length),a=r(this.alignDecimal(n),t.alignDecimal(n)).toString(),i=o(n),l=g(a),s=l.negativeStr,c=l.trimStr,u="".concat(s).concat(c.padStart(i+1,"0"));return new e("".concat(u.slice(0,-i),".").concat(u.slice(-i)))}},{key:"add",value:function(t){if(this.isInvalidate())return new e(t);var r=new e(t);return r.isInvalidate()?this:this.cal(r,function(e,t){return e+t},function(e){return e})}},{key:"multi",value:function(t){var r=new e(t);return this.isInvalidate()||r.isInvalidate()?new e(NaN):this.cal(r,function(e,t){return e*t},function(e){return 2*e})}},{key:"isEmpty",value:function(){return this.empty}},{key:"isNaN",value:function(){return this.nan}},{key:"isInvalidate",value:function(){return this.isEmpty()||this.isNaN()}},{key:"equals",value:function(e){return this.toString()===(null==e?void 0:e.toString())}},{key:"lessEquals",value:function(e){return 0>=this.add(e.negate().toString()).toNumber()}},{key:"toNumber",value:function(){return this.isNaN()?NaN:Number(this.toString())}},{key:"toString",value:function(){var e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return e?this.isInvalidate()?"":g("".concat(this.getMark()).concat(this.getIntegerStr(),".").concat(this.getDecimalStr())).fullStr:this.origin}}]),e}(),E=function(){function e(t){if((0,f.default)(this,e),(0,s.default)(this,"origin",""),(0,s.default)(this,"number",void 0),(0,s.default)(this,"empty",void 0),m(t)){this.empty=!0;return}this.origin=String(t),this.number=Number(t)}return(0,p.default)(e,[{key:"negate",value:function(){return new e(-this.toNumber())}},{key:"add",value:function(t){if(this.isInvalidate())return new e(t);var r=Number(t);if(Number.isNaN(r))return this;var o=this.number+r;if(o>Number.MAX_SAFE_INTEGER)return new e(Number.MAX_SAFE_INTEGER);if(oNumber.MAX_SAFE_INTEGER)return new e(Number.MAX_SAFE_INTEGER);if(o=this.add(e.negate().toString()).toNumber()}},{key:"toNumber",value:function(){return this.number}},{key:"toString",value:function(){var e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return e?this.isInvalidate()?"":v(this.number)&&w(this.number)>100?String(this.number):$(this.number):this.origin}}]),e}();function S(e){return h()?new x(e):new E(e)}function k(e,t,r){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(""===e)return"";var n=g(e),a=n.negativeStr,i=n.integerStr,l=n.decimalStr,s="".concat(t).concat(l),c="".concat(a).concat(i);if(r>=0){var u=Number(l[r]);return u>=5&&!o?k(S(e).add("".concat(a,"0.").concat("0".repeat(r)).concat(10-u)).toString(),t,r,o):0===r?c:"".concat(c).concat(t).concat(l.padEnd(r,"0").slice(0,r))}return".0"===s?c:"".concat(c).concat(s)}e.i(175636);var j=e.i(302384),O=e.i(174428),T=e.i(611935),I=e.i(883110),_=e.i(614761);let F=function(){var e=(0,t.useState)(!1),r=(0,u.default)(e,2),o=r[0],n=r[1];return(0,O.default)(function(){n((0,_.default)())},[]),o};var P=e.i(963188);function R(e){var r=e.prefixCls,n=e.upNode,a=e.downNode,i=e.upDisabled,c=e.downDisabled,u=e.onStep,d=t.useRef(),f=t.useRef([]),p=t.useRef();p.current=u;var h=function(){clearTimeout(d.current)},m=function(e,t){e.preventDefault(),h(),p.current(t),d.current=setTimeout(function e(){p.current(t),d.current=setTimeout(e,200)},600)};if(t.useEffect(function(){return function(){h(),f.current.forEach(function(e){return P.default.cancel(e)})}},[]),F())return null;var g="".concat(r,"-handler"),v=(0,l.default)(g,"".concat(g,"-up"),(0,s.default)({},"".concat(g,"-up-disabled"),i)),y=(0,l.default)(g,"".concat(g,"-down"),(0,s.default)({},"".concat(g,"-down-disabled"),c)),b=function(){return f.current.push((0,P.default)(h))},w={unselectable:"on",role:"button",onMouseUp:b,onMouseLeave:b};return t.createElement("div",{className:"".concat(g,"-wrap")},t.createElement("span",(0,o.default)({},w,{onMouseDown:function(e){m(e,!0)},"aria-label":"Increase Value","aria-disabled":i,className:v}),n||t.createElement("span",{unselectable:"on",className:"".concat(r,"-handler-up-inner")})),t.createElement("span",(0,o.default)({},w,{onMouseDown:function(e){m(e,!1)},"aria-label":"Decrease Value","aria-disabled":c,className:y}),a||t.createElement("span",{unselectable:"on",className:"".concat(r,"-handler-down-inner")})))}function N(e){var t="number"==typeof e?$(e):g(e).fullStr;return t.includes(".")?g(t.replace(/(\d)\.(\d)/g,"$1$2.")).fullStr:e+"0"}var M=e.i(131299);let B=function(){var e=(0,t.useRef)(0),r=function(){P.default.cancel(e.current)};return(0,t.useEffect)(function(){return r},[]),function(t){r(),e.current=(0,P.default)(function(){t()})}};var A=["prefixCls","className","style","min","max","step","defaultValue","value","disabled","readOnly","upHandler","downHandler","keyboard","changeOnWheel","controls","classNames","stringMode","parser","formatter","precision","decimalSeparator","onChange","onInput","onPressEnter","onStep","changeOnBlur","domRef"],z=["disabled","style","prefixCls","value","prefix","suffix","addonBefore","addonAfter","className","classNames"],L=function(e,t){return e||t.isEmpty()?t.toString():t.toNumber()},D=function(e){var t=S(e);return t.isInvalidate()?null:t},H=t.forwardRef(function(e,r){var n,a,i=e.prefixCls,f=e.className,p=e.style,h=e.min,m=e.max,g=e.step,v=void 0===g?1:g,y=e.defaultValue,b=e.value,x=e.disabled,E=e.readOnly,j=e.upHandler,_=e.downHandler,F=e.keyboard,P=e.changeOnWheel,M=void 0!==P&&P,z=e.controls,H=(e.classNames,e.stringMode),V=e.parser,W=e.formatter,U=e.precision,G=e.decimalSeparator,q=e.onChange,J=e.onInput,K=e.onPressEnter,X=e.onStep,Q=e.changeOnBlur,Y=void 0===Q||Q,Z=e.domRef,ee=(0,d.default)(e,A),et="".concat(i,"-input"),er=t.useRef(null),eo=t.useState(!1),en=(0,u.default)(eo,2),ea=en[0],ei=en[1],el=t.useRef(!1),es=t.useRef(!1),ec=t.useRef(!1),eu=t.useState(function(){return S(null!=b?b:y)}),ed=(0,u.default)(eu,2),ef=ed[0],ep=ed[1],eh=t.useCallback(function(e,t){if(!t)return U>=0?U:Math.max(w(e),w(v))},[U,v]),em=t.useCallback(function(e){var t=String(e);if(V)return V(t);var r=t;return G&&(r=r.replace(G,".")),r.replace(/[^\w.-]+/g,"")},[V,G]),eg=t.useRef(""),ev=t.useCallback(function(e,t){if(W)return W(e,{userTyping:t,input:String(eg.current)});var r="number"==typeof e?$(e):e;if(!t){var o=eh(r,t);C(r)&&(G||o>=0)&&(r=k(r,G||".",o))}return r},[W,eh,G]),ey=t.useState(function(){var e=null!=y?y:b;return ef.isInvalidate()&&["string","number"].includes((0,c.default)(e))?Number.isNaN(e)?"":e:ev(ef.toString(),!1)}),eb=(0,u.default)(ey,2),ew=eb[0],e$=eb[1];function eC(e,t){e$(ev(e.isInvalidate()?e.toString(!1):e.toString(!t),t))}eg.current=ew;var ex=t.useMemo(function(){return D(m)},[m,U]),eE=t.useMemo(function(){return D(h)},[h,U]),eS=t.useMemo(function(){return!(!ex||!ef||ef.isInvalidate())&&ex.lessEquals(ef)},[ex,ef]),ek=t.useMemo(function(){return!(!eE||!ef||ef.isInvalidate())&&ef.lessEquals(eE)},[eE,ef]),ej=(n=er.current,a=(0,t.useRef)(null),[function(){try{var e=n.selectionStart,t=n.selectionEnd,r=n.value,o=r.substring(0,e),i=r.substring(t);a.current={start:e,end:t,value:r,beforeTxt:o,afterTxt:i}}catch(e){}},function(){if(n&&a.current&&ea)try{var e=n.value,t=a.current,r=t.beforeTxt,o=t.afterTxt,i=t.start,l=e.length;if(e.startsWith(r))l=r.length;else if(e.endsWith(o))l=e.length-a.current.afterTxt.length;else{var s=r[i-1],c=e.indexOf(s,i-1);-1!==c&&(l=c+1)}n.setSelectionRange(l,l)}catch(e){(0,I.default)(!1,"Something warning of cursor restore. Please fire issue about this: ".concat(e.message))}}]),eO=(0,u.default)(ej,2),eT=eO[0],eI=eO[1],e_=function(e){return ex&&!e.lessEquals(ex)?ex:eE&&!eE.lessEquals(e)?eE:null},eF=function(e){return!e_(e)},eP=function(e,t){var r=e,o=eF(r)||r.isEmpty();if(r.isEmpty()||t||(r=e_(r)||r,o=!0),!E&&!x&&o){var n,a=r.toString(),i=eh(a,t);return i>=0&&(eF(r=S(k(a,".",i)))||(r=S(k(a,".",i,!0)))),r.equals(ef)||(n=r,void 0===b&&ep(n),null==q||q(r.isEmpty()?null:L(H,r)),void 0===b&&eC(r,t)),r}return ef},eR=B(),eN=function e(t){if(eT(),eg.current=t,e$(t),!es.current){var r=S(em(t));r.isNaN()||eP(r,!0)}null==J||J(t),eR(function(){var r=t;V||(r=t.replace(/。/g,".")),r!==t&&e(r)})},eM=function(e){if((!e||!eS)&&(e||!ek)){el.current=!1;var t,r=S(ec.current?N(v):v);e||(r=r.negate());var o=eP((ef||S(0)).add(r.toString()),!1);null==X||X(L(H,o),{offset:ec.current?N(v):v,type:e?"up":"down"}),null==(t=er.current)||t.focus()}},eB=function(e){var t,r=S(em(ew));t=r.isNaN()?eP(ef,e):eP(r,e),void 0!==b?eC(ef,!1):t.isNaN()||eC(t,!1)};return t.useEffect(function(){if(M&&ea){var e=function(e){eM(e.deltaY<0),e.preventDefault()},t=er.current;if(t)return t.addEventListener("wheel",e,{passive:!1}),function(){return t.removeEventListener("wheel",e)}}}),(0,O.useLayoutUpdateEffect)(function(){ef.isInvalidate()||eC(ef,!1)},[U,W]),(0,O.useLayoutUpdateEffect)(function(){var e=S(b);ep(e);var t=S(em(ew));e.equals(t)&&el.current&&!W||eC(e,el.current)},[b]),(0,O.useLayoutUpdateEffect)(function(){W&&eI()},[ew]),t.createElement("div",{ref:Z,className:(0,l.default)(i,f,(0,s.default)((0,s.default)((0,s.default)((0,s.default)((0,s.default)({},"".concat(i,"-focused"),ea),"".concat(i,"-disabled"),x),"".concat(i,"-readonly"),E),"".concat(i,"-not-a-number"),ef.isNaN()),"".concat(i,"-out-of-range"),!ef.isInvalidate()&&!eF(ef))),style:p,onFocus:function(){ei(!0)},onBlur:function(){Y&&eB(!1),ei(!1),el.current=!1},onKeyDown:function(e){var t=e.key,r=e.shiftKey;el.current=!0,ec.current=r,"Enter"===t&&(es.current||(el.current=!1),eB(!1),null==K||K(e)),!1!==F&&!es.current&&["Up","ArrowUp","Down","ArrowDown"].includes(t)&&(eM("Up"===t||"ArrowUp"===t),e.preventDefault())},onKeyUp:function(){el.current=!1,ec.current=!1},onCompositionStart:function(){es.current=!0},onCompositionEnd:function(){es.current=!1,eN(er.current.value)},onBeforeInput:function(){el.current=!0}},(void 0===z||z)&&t.createElement(R,{prefixCls:i,upNode:j,downNode:_,upDisabled:eS,downDisabled:ek,onStep:eM}),t.createElement("div",{className:"".concat(et,"-wrap")},t.createElement("input",(0,o.default)({autoComplete:"off",role:"spinbutton","aria-valuemin":h,"aria-valuemax":m,"aria-valuenow":ef.isInvalidate()?null:ef.toString(),step:v},ee,{ref:(0,T.composeRef)(er,r),className:et,value:ew,onChange:function(e){eN(e.target.value)},disabled:x,readOnly:E}))))}),V=t.forwardRef(function(e,r){var n=e.disabled,a=e.style,i=e.prefixCls,l=void 0===i?"rc-input-number":i,s=e.value,c=e.prefix,u=e.suffix,f=e.addonBefore,p=e.addonAfter,h=e.className,m=e.classNames,g=(0,d.default)(e,z),v=t.useRef(null),y=t.useRef(null),b=t.useRef(null),w=function(e){b.current&&(0,M.triggerFocus)(b.current,e)};return t.useImperativeHandle(r,function(){var e,t;return e=b.current,t={focus:w,nativeElement:v.current.nativeElement||y.current},"u">typeof Proxy&&e?new Proxy(e,{get:function(e,r){if(t[r])return t[r];var o=e[r];return"function"==typeof o?o.bind(e):o}}):e}),t.createElement(j.BaseInput,{className:h,triggerFocus:w,prefixCls:l,value:s,disabled:n,style:a,prefix:c,suffix:u,addonAfter:p,addonBefore:f,classNames:m,components:{affixWrapper:"div",groupWrapper:"div",wrapper:"div",groupAddon:"div"},ref:v},t.createElement(H,(0,o.default)({prefixCls:l,disabled:n,ref:b,domRef:y,className:null==m?void 0:m.input},g)))}),W=e.i(617206),U=e.i(52956),G=e.i(609587),q=e.i(242064),J=e.i(937328),K=e.i(321883),X=e.i(517455),Q=e.i(62139),Y=e.i(792812),Z=e.i(249616);e.i(296059);var ee=e.i(915654),et=e.i(349942),er=e.i(517458),eo=e.i(889943),en=e.i(183293),ea=e.i(372409),ei=e.i(246422),el=e.i(838378),es=e.i(135551);let ec=({componentCls:e,borderRadiusSM:t,borderRadiusLG:r},o)=>{let n="lg"===o?r:t;return{[`&-${o}`]:{[`${e}-handler-wrap`]:{borderStartEndRadius:n,borderEndEndRadius:n},[`${e}-handler-up`]:{borderStartEndRadius:n},[`${e}-handler-down`]:{borderEndEndRadius:n}}}},eu=(0,ei.genStyleHooks)("InputNumber",e=>{let t=(0,el.mergeToken)(e,(0,er.initInputToken)(e));return[(e=>{let{componentCls:t,lineWidth:r,lineType:o,borderRadius:n,inputFontSizeSM:a,inputFontSizeLG:i,controlHeightLG:l,controlHeightSM:s,colorError:c,paddingInlineSM:u,paddingBlockSM:d,paddingBlockLG:f,paddingInlineLG:p,colorIcon:h,motionDurationMid:m,handleHoverColor:g,handleOpacity:v,paddingInline:y,paddingBlock:b,handleBg:w,handleActiveBg:$,colorTextDisabled:C,borderRadiusSM:x,borderRadiusLG:E,controlWidth:S,handleBorderColor:k,filledHandleBg:j,lineHeightLG:O,calc:T}=e;return[{[t]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},(0,en.resetComponent)(e)),(0,et.genBasicInputStyle)(e)),{display:"inline-block",width:S,margin:0,padding:0,borderRadius:n}),(0,eo.genOutlinedStyle)(e,{[`${t}-handler-wrap`]:{background:w,[`${t}-handler-down`]:{borderBlockStart:`${(0,ee.unit)(r)} ${o} ${k}`}}})),(0,eo.genFilledStyle)(e,{[`${t}-handler-wrap`]:{background:j,[`${t}-handler-down`]:{borderBlockStart:`${(0,ee.unit)(r)} ${o} ${k}`}},"&:focus-within":{[`${t}-handler-wrap`]:{background:w}}})),(0,eo.genUnderlinedStyle)(e,{[`${t}-handler-wrap`]:{background:w,[`${t}-handler-down`]:{borderBlockStart:`${(0,ee.unit)(r)} ${o} ${k}`}}})),(0,eo.genBorderlessStyle)(e)),{"&-rtl":{direction:"rtl",[`${t}-input`]:{direction:"rtl"}},"&-lg":{padding:0,fontSize:i,lineHeight:O,borderRadius:E,[`input${t}-input`]:{height:T(l).sub(T(r).mul(2)).equal(),padding:`${(0,ee.unit)(f)} ${(0,ee.unit)(p)}`}},"&-sm":{padding:0,fontSize:a,borderRadius:x,[`input${t}-input`]:{height:T(s).sub(T(r).mul(2)).equal(),padding:`${(0,ee.unit)(d)} ${(0,ee.unit)(u)}`}},"&-out-of-range":{[`${t}-input-wrap`]:{input:{color:c}}},"&-group":Object.assign(Object.assign(Object.assign({},(0,en.resetComponent)(e)),(0,et.genInputGroupStyle)(e)),{"&-wrapper":Object.assign(Object.assign(Object.assign({display:"inline-block",textAlign:"start",verticalAlign:"top",[`${t}-affix-wrapper`]:{width:"100%"},"&-lg":{[`${t}-group-addon`]:{borderRadius:E,fontSize:e.fontSizeLG}},"&-sm":{[`${t}-group-addon`]:{borderRadius:x}}},(0,eo.genOutlinedGroupStyle)(e)),(0,eo.genFilledGroupStyle)(e)),{[`&:not(${t}-compact-first-item):not(${t}-compact-last-item)${t}-compact-item`]:{[`${t}, ${t}-group-addon`]:{borderRadius:0}},[`&:not(${t}-compact-last-item)${t}-compact-first-item`]:{[`${t}, ${t}-group-addon`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:not(${t}-compact-first-item)${t}-compact-last-item`]:{[`${t}, ${t}-group-addon`]:{borderStartStartRadius:0,borderEndStartRadius:0}}})}),[`&-disabled ${t}-input`]:{cursor:"not-allowed"},[t]:{"&-input":Object.assign(Object.assign(Object.assign(Object.assign({},(0,en.resetComponent)(e)),{width:"100%",padding:`${(0,ee.unit)(b)} ${(0,ee.unit)(y)}`,textAlign:"start",backgroundColor:"transparent",border:0,borderRadius:n,outline:0,transition:`all ${m} linear`,appearance:"textfield",fontSize:"inherit"}),(0,et.genPlaceholderStyle)(e.colorTextPlaceholder)),{'&[type="number"]::-webkit-inner-spin-button, &[type="number"]::-webkit-outer-spin-button':{margin:0,appearance:"none"}})},[`&:hover ${t}-handler-wrap, &-focused ${t}-handler-wrap`]:{width:e.handleWidth,opacity:1}})},{[t]:Object.assign(Object.assign(Object.assign({[`${t}-handler-wrap`]:{position:"absolute",insetBlockStart:0,insetInlineEnd:0,width:e.handleVisibleWidth,opacity:v,height:"100%",borderStartStartRadius:0,borderStartEndRadius:n,borderEndEndRadius:n,borderEndStartRadius:0,display:"flex",flexDirection:"column",alignItems:"stretch",transition:`all ${m}`,overflow:"hidden",[`${t}-handler`]:{display:"flex",alignItems:"center",justifyContent:"center",flex:"auto",height:"40%",[` + ${t}-handler-up-inner, + ${t}-handler-down-inner + `]:{marginInlineEnd:0,fontSize:e.handleFontSize}}},[`${t}-handler`]:{height:"50%",overflow:"hidden",color:h,fontWeight:"bold",lineHeight:0,textAlign:"center",cursor:"pointer",borderInlineStart:`${(0,ee.unit)(r)} ${o} ${k}`,transition:`all ${m} linear`,"&:active":{background:$},"&:hover":{height:"60%",[` + ${t}-handler-up-inner, + ${t}-handler-down-inner + `]:{color:g}},"&-up-inner, &-down-inner":Object.assign(Object.assign({},(0,en.resetIcon)()),{color:h,transition:`all ${m} linear`,userSelect:"none"})},[`${t}-handler-up`]:{borderStartEndRadius:n},[`${t}-handler-down`]:{borderEndEndRadius:n}},ec(e,"lg")),ec(e,"sm")),{"&-disabled, &-readonly":{[`${t}-handler-wrap`]:{display:"none"},[`${t}-input`]:{color:"inherit"}},[` + ${t}-handler-up-disabled, + ${t}-handler-down-disabled + `]:{cursor:"not-allowed"},[` + ${t}-handler-up-disabled:hover &-handler-up-inner, + ${t}-handler-down-disabled:hover &-handler-down-inner + `]:{color:C}})}]})(t),(e=>{let{componentCls:t,paddingBlock:r,paddingInline:o,inputAffixPadding:n,controlWidth:a,borderRadiusLG:i,borderRadiusSM:l,paddingInlineLG:s,paddingInlineSM:c,paddingBlockLG:u,paddingBlockSM:d,motionDurationMid:f}=e;return{[`${t}-affix-wrapper`]:Object.assign(Object.assign({[`input${t}-input`]:{padding:`${(0,ee.unit)(r)} 0`}},(0,et.genBasicInputStyle)(e)),{position:"relative",display:"inline-flex",alignItems:"center",width:a,padding:0,paddingInlineStart:o,"&-lg":{borderRadius:i,paddingInlineStart:s,[`input${t}-input`]:{padding:`${(0,ee.unit)(u)} 0`}},"&-sm":{borderRadius:l,paddingInlineStart:c,[`input${t}-input`]:{padding:`${(0,ee.unit)(d)} 0`}},[`&:not(${t}-disabled):hover`]:{zIndex:1},"&-focused, &:focus":{zIndex:1},[`&-disabled > ${t}-disabled`]:{background:"transparent"},[`> div${t}`]:{width:"100%",border:"none",outline:"none",[`&${t}-focused`]:{boxShadow:"none !important"}},"&::before":{display:"inline-block",width:0,visibility:"hidden",content:'"\\a0"'},[`${t}-handler-wrap`]:{zIndex:2},[t]:{position:"static",color:"inherit","&-prefix, &-suffix":{display:"flex",flex:"none",alignItems:"center",pointerEvents:"none"},"&-prefix":{marginInlineEnd:n},"&-suffix":{insetBlockStart:0,insetInlineEnd:0,height:"100%",marginInlineEnd:o,marginInlineStart:n,transition:`margin ${f}`}},[`&:hover ${t}-handler-wrap, &-focused ${t}-handler-wrap`]:{width:e.handleWidth,opacity:1},[`&:not(${t}-affix-wrapper-without-controls):hover ${t}-suffix`]:{marginInlineEnd:e.calc(e.handleWidth).add(o).equal()}}),[`${t}-underlined`]:{borderRadius:0}}})(t),(0,ea.genCompactItemStyle)(t)]},e=>{var t;let r=null!=(t=e.handleVisible)?t:"auto",o=e.controlHeightSM-2*e.lineWidth;return Object.assign(Object.assign({},(0,er.initComponentToken)(e)),{controlWidth:90,handleWidth:o,handleFontSize:e.fontSize/2,handleVisible:r,handleActiveBg:e.colorFillAlter,handleBg:e.colorBgContainer,filledHandleBg:new es.FastColor(e.colorFillSecondary).onBackground(e.colorBgContainer).toHexString(),handleHoverColor:e.colorPrimary,handleBorderColor:e.colorBorder,handleOpacity:+(!0===r),handleVisibleWidth:!0===r?o:0})},{unitless:{handleOpacity:!0},resetFont:!1});var ed=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let ef=t.forwardRef((e,o)=>{let{getPrefixCls:n,direction:a}=t.useContext(q.ConfigContext),s=t.useRef(null);t.useImperativeHandle(o,()=>s.current);let{className:c,rootClassName:u,size:d,disabled:f,prefixCls:p,addonBefore:h,addonAfter:m,prefix:g,suffix:v,bordered:y,readOnly:b,status:w,controls:$,variant:C}=e,x=ed(e,["className","rootClassName","size","disabled","prefixCls","addonBefore","addonAfter","prefix","suffix","bordered","readOnly","status","controls","variant"]),E=n("input-number",p),S=(0,K.default)(E),[k,j,O]=eu(E,S),{compactSize:T,compactItemClassnames:I}=(0,Z.useCompactItemContext)(E,a),_=t.createElement(i,{className:`${E}-handler-up-inner`}),F=t.createElement(r.default,{className:`${E}-handler-down-inner`}),P="boolean"==typeof $?$:void 0;"object"==typeof $&&(_=void 0===$.upIcon?_:t.createElement("span",{className:`${E}-handler-up-inner`},$.upIcon),F=void 0===$.downIcon?F:t.createElement("span",{className:`${E}-handler-down-inner`},$.downIcon));let{hasFeedback:R,status:N,isFormItemInput:M,feedbackIcon:B}=t.useContext(Q.FormItemInputContext),A=(0,U.getMergedStatus)(N,w),z=(0,X.default)(e=>{var t;return null!=(t=null!=d?d:T)?t:e}),L=t.useContext(J.default),D=null!=f?f:L,[H,G]=(0,Y.default)("inputNumber",C,y),ee=R&&t.createElement(t.Fragment,null,B),et=(0,l.default)({[`${E}-lg`]:"large"===z,[`${E}-sm`]:"small"===z,[`${E}-rtl`]:"rtl"===a,[`${E}-in-form-item`]:M},j),er=`${E}-group`;return k(t.createElement(V,Object.assign({ref:s,disabled:D,className:(0,l.default)(O,S,c,u,I),upHandler:_,downHandler:F,prefixCls:E,readOnly:b,controls:P,prefix:g,suffix:ee||v,addonBefore:h&&t.createElement(W.default,{form:!0,space:!0},h),addonAfter:m&&t.createElement(W.default,{form:!0,space:!0},m),classNames:{input:et,variant:(0,l.default)({[`${E}-${H}`]:G},(0,U.getStatusClassNames)(E,A,R)),affixWrapper:(0,l.default)({[`${E}-affix-wrapper-sm`]:"small"===z,[`${E}-affix-wrapper-lg`]:"large"===z,[`${E}-affix-wrapper-rtl`]:"rtl"===a,[`${E}-affix-wrapper-without-controls`]:!1===$||D||b},j),wrapper:(0,l.default)({[`${er}-rtl`]:"rtl"===a},j),groupWrapper:(0,l.default)({[`${E}-group-wrapper-sm`]:"small"===z,[`${E}-group-wrapper-lg`]:"large"===z,[`${E}-group-wrapper-rtl`]:"rtl"===a,[`${E}-group-wrapper-${H}`]:G},(0,U.getStatusClassNames)(`${E}-group-wrapper`,A,R),j)}},x)))});ef._InternalPanelDoNotUseOrYouWillBeFired=e=>t.createElement(G.default,{theme:{components:{InputNumber:{handleVisible:!0}}}},t.createElement(ef,Object.assign({},e))),e.s(["InputNumber",0,ef],28651)},147138,210803,266623,794721,232176,843375,229548,e=>{"use strict";var t=e.i(410160),r=e.i(271645),o=e.i(343794);let n=function(e){var t=e.className,n=e.customizeIcon,a=e.customizeIconProps,i=e.children,l=e.onMouseDown,s=e.onClick,c="function"==typeof n?n(a):n;return r.createElement("span",{className:t,onMouseDown:function(e){e.preventDefault(),null==l||l(e)},style:{userSelect:"none",WebkitUserSelect:"none"},unselectable:"on",onClick:s,"aria-hidden":!0},void 0!==c?c:r.createElement("span",{className:(0,o.default)(t.split(/\s+/).map(function(e){return"".concat(e,"-icon")}))},i))};e.s(["default",0,n],210803),e.s(["useAllowClear",0,function(e,o,a,i,l){var s=arguments.length>5&&void 0!==arguments[5]&&arguments[5],c=arguments.length>6?arguments[6]:void 0,u=arguments.length>7?arguments[7]:void 0,d=r.default.useMemo(function(){return"object"===(0,t.default)(i)?i.clearIcon:l||void 0},[i,l]);return{allowClear:r.default.useMemo(function(){return!s&&!!i&&(!!a.length||!!c)&&("combobox"!==u||""!==c)},[i,s,a.length,c,u]),clearIcon:r.default.createElement(n,{className:"".concat(e,"-clear"),onMouseDown:o,customizeIcon:d},"×")}}],147138);var a=r.createContext(null);e.s(["BaseSelectContext",0,a,"default",0,function(){return r.useContext(a)}],266623);var i=e.i(392221);e.s(["default",0,function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=r.useState(!1),o=(0,i.default)(t,2),n=o[0],a=o[1],l=r.useRef(null),s=function(){window.clearTimeout(l.current)};return r.useEffect(function(){return s},[]),[n,function(t,r){s(),l.current=window.setTimeout(function(){a(t),r&&r()},e)},s]}],794721),e.s(["default",0,function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:250,t=r.useRef(null),o=r.useRef(null);return r.useEffect(function(){return function(){window.clearTimeout(o.current)}},[]),[function(){return t.current},function(r){(r||null===t.current)&&(t.current=r),window.clearTimeout(o.current),o.current=window.setTimeout(function(){t.current=null},e)}]}],232176),e.s(["default",0,function(e,t,o,n){var a=r.useRef(null);a.current={open:t,triggerOpen:o,customizedTrigger:n},r.useEffect(function(){function t(t){if(null==(r=a.current)||!r.customizedTrigger){var r,o=t.target;o.shadowRoot&&t.composed&&(o=t.composedPath()[0]||o),a.current.open&&e().filter(function(e){return e}).every(function(e){return!e.contains(o)&&e!==o})&&a.current.triggerOpen(!1)}}return window.addEventListener("mousedown",t),function(){return window.removeEventListener("mousedown",t)}},[])}],843375);var l=e.i(404948);e.s(["isValidateOpenKey",0,function(e){return e&&![l.default.ESC,l.default.SHIFT,l.default.BACKSPACE,l.default.TAB,l.default.WIN_KEY,l.default.ALT,l.default.META,l.default.WIN_KEY_RIGHT,l.default.CTRL,l.default.SEMICOLON,l.default.EQUALS,l.default.CAPS_LOCK,l.default.CONTEXT_MENU,l.default.F1,l.default.F2,l.default.F3,l.default.F4,l.default.F5,l.default.F6,l.default.F7,l.default.F8,l.default.F9,l.default.F10,l.default.F11,l.default.F12].includes(e)}],229548)},658315,e=>{"use strict";var t=e.i(931067),r=e.i(209428),o=e.i(392221),n=e.i(703923),a=e.i(271645),i=e.i(343794),l=e.i(430073),s=e.i(174428),c=["prefixCls","invalidate","item","renderItem","responsive","responsiveDisabled","registerSize","itemKey","className","style","children","display","order","component"],u=void 0,d=a.forwardRef(function(e,o){var s,d=e.prefixCls,f=e.invalidate,p=e.item,h=e.renderItem,m=e.responsive,g=e.responsiveDisabled,v=e.registerSize,y=e.itemKey,b=e.className,w=e.style,$=e.children,C=e.display,x=e.order,E=e.component,S=(0,n.default)(e,c),k=m&&!C;a.useEffect(function(){return function(){v(y,null)}},[]);var j=h&&p!==u?h(p,{index:x}):$;f||(s={opacity:+!k,height:k?0:u,overflowY:k?"hidden":u,order:m?x:u,pointerEvents:k?"none":u,position:k?"absolute":u});var O={};k&&(O["aria-hidden"]=!0);var T=a.createElement(void 0===E?"div":E,(0,t.default)({className:(0,i.default)(!f&&d,b),style:(0,r.default)((0,r.default)({},s),w)},O,S,{ref:o}),j);return m&&(T=a.createElement(l.default,{onResize:function(e){v(y,e.offsetWidth)},disabled:g},T)),T});d.displayName="Item";var f=e.i(175066),p=e.i(174080),h=e.i(963188);function m(e,t){var r=a.useState(t),n=(0,o.default)(r,2),i=n[0],l=n[1];return[i,(0,f.default)(function(t){e(function(){l(t)})})]}var g=a.default.createContext(null),v=["component"],y=["className"],b=["className"],w=a.forwardRef(function(e,r){var o=a.useContext(g);if(!o){var l=e.component,s=(0,n.default)(e,v);return a.createElement(void 0===l?"div":l,(0,t.default)({},s,{ref:r}))}var c=o.className,u=(0,n.default)(o,y),f=e.className,p=(0,n.default)(e,b);return a.createElement(g.Provider,{value:null},a.createElement(d,(0,t.default)({ref:r,className:(0,i.default)(c,f)},u,p)))});w.displayName="RawItem";var $=["prefixCls","data","renderItem","renderRawItem","itemKey","itemWidth","ssr","style","className","maxCount","renderRest","renderRawRest","prefix","suffix","component","itemComponent","onVisibleChange"],C="responsive",x="invalidate";function E(e){return"+ ".concat(e.length," ...")}var S=a.forwardRef(function(e,c){var u,f=e.prefixCls,v=void 0===f?"rc-overflow":f,y=e.data,b=void 0===y?[]:y,w=e.renderItem,S=e.renderRawItem,k=e.itemKey,j=e.itemWidth,O=void 0===j?10:j,T=e.ssr,I=e.style,_=e.className,F=e.maxCount,P=e.renderRest,R=e.renderRawRest,N=e.prefix,M=e.suffix,B=e.component,A=e.itemComponent,z=e.onVisibleChange,L=(0,n.default)(e,$),D="full"===T,H=(u=a.useRef(null),function(e){if(!u.current){u.current=[];var t=function(){(0,p.unstable_batchedUpdates)(function(){u.current.forEach(function(e){e()}),u.current=null})};if("u"F,eP=(0,a.useMemo)(function(){var e=b;return eI?e=null===U&&D?b:b.slice(0,Math.min(b.length,q/O)):"number"==typeof F&&(e=b.slice(0,F)),e},[b,O,U,F,eI]),eR=(0,a.useMemo)(function(){return eI?b.slice(eC+1):b.slice(eP.length)},[b,eP,eI,eC]),eN=(0,a.useCallback)(function(e,t){var r;return"function"==typeof k?k(e):null!=(r=k&&(null==e?void 0:e[k]))?r:t},[k]),eM=(0,a.useCallback)(w||function(e){return e},[w]);function eB(e,t,r){(ew!==e||void 0!==t&&t!==eg)&&(e$(e),r||(ek(eq){eB(o-1,e-n-ef+en);break}}M&&ez(0)+ef>q&&ev(null)}},[q,X,en,es,ef,eN,eP]);var eL=eS&&!!eR.length,eD={};null!==eg&&eI&&(eD={position:"absolute",left:eg,top:0});var eH={prefixCls:ej,responsive:eI,component:A,invalidate:e_},eV=S?function(e,t){var o=eN(e,t);return a.createElement(g.Provider,{key:o,value:(0,r.default)((0,r.default)({},eH),{},{order:t,item:e,itemKey:o,registerSize:eA,display:t<=eC})},S(e,t))}:function(e,r){var o=eN(e,r);return a.createElement(d,(0,t.default)({},eH,{order:r,key:o,item:e,renderItem:eM,itemKey:o,registerSize:eA,display:r<=eC}))},eW={order:eL?eC:Number.MAX_SAFE_INTEGER,className:"".concat(ej,"-rest"),registerSize:function(e,t){ea(t),et(en)},display:eL},eU=P||E,eG=R?a.createElement(g.Provider,{value:(0,r.default)((0,r.default)({},eH),eW)},R(eR)):a.createElement(d,(0,t.default)({},eH,eW),"function"==typeof eU?eU(eR):eU),eq=a.createElement(void 0===B?"div":B,(0,t.default)({className:(0,i.default)(!e_&&v,_),style:I,ref:c},L),N&&a.createElement(d,(0,t.default)({},eH,{responsive:eT,responsiveDisabled:!eI,order:-1,className:"".concat(ej,"-prefix"),registerSize:function(e,t){ec(t)},display:!0}),N),eP.map(eV),eF?eG:null,M&&a.createElement(d,(0,t.default)({},eH,{responsive:eT,responsiveDisabled:!eI,order:eC,className:"".concat(ej,"-suffix"),registerSize:function(e,t){ep(t)},display:!0,style:eD}),M));return eT?a.createElement(l.default,{onResize:function(e,t){G(t.clientWidth)},disabled:!eI},eq):eq});S.displayName="Overflow",S.Item=w,S.RESPONSIVE=C,S.INVALIDATE=x,e.s(["default",0,S],658315)},823744,207427,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(392221),o=e.i(404948),n=e.i(271645),a=e.i(232176),i=e.i(229548),l=e.i(211577),s=e.i(343794),c=e.i(244009),u=e.i(658315),d=e.i(210803),f=e.i(209428),p=e.i(703923),h=e.i(611935),m=e.i(883110);let g=function(e,t,r){var o=(0,f.default)((0,f.default)({},e),r?t:{});return Object.keys(t).forEach(function(r){var n=t[r];"function"==typeof n&&(o[r]=function(){for(var t,o=arguments.length,a=Array(o),i=0;itypeof window&&window.document&&window.document.documentElement;function $(e){return["string","number"].includes((0,b.default)(e))}function C(e){var t=void 0;return e&&($(e.title)?t=e.title.toString():$(e.label)&&(t=e.label.toString())),t}function x(e){var t;return null!=(t=e.key)?t:e.value}e.s(["getTitle",0,C,"hasValue",0,function(e){return null!=e},"isBrowserClient",0,w,"isComboNoValue",0,function(e){return!e&&0!==e},"toArray",0,function(e){return Array.isArray(e)?e:void 0!==e?[e]:[]}],207427);var E=function(e){e.preventDefault(),e.stopPropagation()};let S=function(e){var t,o,a=e.id,i=e.prefixCls,f=e.values,p=e.open,h=e.searchValue,m=e.autoClearSearchValue,g=e.inputRef,v=e.placeholder,b=e.disabled,$=e.mode,S=e.showSearch,k=e.autoFocus,j=e.autoComplete,O=e.activeDescendantId,T=e.tabIndex,I=e.removeIcon,_=e.maxTagCount,F=e.maxTagTextLength,P=e.maxTagPlaceholder,R=void 0===P?function(e){return"+ ".concat(e.length," ...")}:P,N=e.tagRender,M=e.onToggleOpen,B=e.onRemove,A=e.onInputChange,z=e.onInputPaste,L=e.onInputKeyDown,D=e.onInputMouseDown,H=e.onInputCompositionStart,V=e.onInputCompositionEnd,W=e.onInputBlur,U=n.useRef(null),G=(0,n.useState)(0),q=(0,r.default)(G,2),J=q[0],K=q[1],X=(0,n.useState)(!1),Q=(0,r.default)(X,2),Y=Q[0],Z=Q[1],ee="".concat(i,"-selection"),et=p||"multiple"===$&&!1===m||"tags"===$?h:"",er="tags"===$||"multiple"===$&&!1===m||S&&(p||Y);t=function(){K(U.current.scrollWidth)},o=[et],w?n.useLayoutEffect(t,o):n.useEffect(t,o);var eo=function(e,t,r,o,a){return n.createElement("span",{title:C(e),className:(0,s.default)("".concat(ee,"-item"),(0,l.default)({},"".concat(ee,"-item-disabled"),r))},n.createElement("span",{className:"".concat(ee,"-item-content")},t),o&&n.createElement(d.default,{className:"".concat(ee,"-item-remove"),onMouseDown:E,onClick:a,customizeIcon:I},"×"))},en=function(e,t,r,o,a,i){return n.createElement("span",{onMouseDown:function(e){E(e),M(!p)}},N({label:t,value:e,disabled:r,closable:o,onClose:a,isMaxTag:!!i}))},ea=n.createElement("div",{className:"".concat(ee,"-search"),style:{width:J},onFocus:function(){Z(!0)},onBlur:function(){Z(!1)}},n.createElement(y,{ref:g,open:p,prefixCls:i,id:a,inputElement:null,disabled:b,autoFocus:k,autoComplete:j,editable:er,activeDescendantId:O,value:et,onKeyDown:L,onMouseDown:D,onChange:A,onPaste:z,onCompositionStart:H,onCompositionEnd:V,onBlur:W,tabIndex:T,attrs:(0,c.default)(e,!0)}),n.createElement("span",{ref:U,className:"".concat(ee,"-search-mirror"),"aria-hidden":!0},et," ")),ei=n.createElement(u.default,{prefixCls:"".concat(ee,"-overflow"),data:f,renderItem:function(e){var t=e.disabled,r=e.label,o=e.value,n=!b&&!t,a=r;if("number"==typeof F&&("string"==typeof r||"number"==typeof r)){var i=String(a);i.length>F&&(a="".concat(i.slice(0,F),"..."))}var l=function(t){t&&t.stopPropagation(),B(e)};return"function"==typeof N?en(o,a,t,n,l):eo(e,a,t,n,l)},renderRest:function(e){if(!f.length)return null;var t="function"==typeof R?R(e):R;return"function"==typeof N?en(void 0,t,!1,!1,void 0,!0):eo({title:t},t,!1)},suffix:ea,itemKey:x,maxCount:_});return n.createElement("span",{className:"".concat(ee,"-wrap")},ei,!f.length&&!et&&n.createElement("span",{className:"".concat(ee,"-placeholder")},v))},k=function(e){var t=e.inputElement,o=e.prefixCls,a=e.id,i=e.inputRef,l=e.disabled,s=e.autoFocus,u=e.autoComplete,d=e.activeDescendantId,f=e.mode,p=e.open,h=e.values,m=e.placeholder,g=e.tabIndex,v=e.showSearch,b=e.searchValue,w=e.activeValue,$=e.maxLength,x=e.onInputKeyDown,E=e.onInputMouseDown,S=e.onInputChange,k=e.onInputPaste,j=e.onInputCompositionStart,O=e.onInputCompositionEnd,T=e.onInputBlur,I=e.title,_=n.useState(!1),F=(0,r.default)(_,2),P=F[0],R=F[1],N="combobox"===f,M=N||v,B=h[0],A=b||"";N&&w&&!P&&(A=w),n.useEffect(function(){N&&R(!1)},[N,w]);var z=("combobox"===f||!!p||!!v)&&!!A,L=void 0===I?C(B):I,D=n.useMemo(function(){return B?null:n.createElement("span",{className:"".concat(o,"-selection-placeholder"),style:z?{visibility:"hidden"}:void 0},m)},[B,z,m,o]);return n.createElement("span",{className:"".concat(o,"-selection-wrap")},n.createElement("span",{className:"".concat(o,"-selection-search")},n.createElement(y,{ref:i,prefixCls:o,id:a,open:p,inputElement:t,disabled:l,autoFocus:s,autoComplete:u,editable:M,activeDescendantId:d,value:A,onKeyDown:x,onMouseDown:E,onChange:function(e){R(!0),S(e)},onPaste:k,onCompositionStart:j,onCompositionEnd:O,onBlur:T,tabIndex:g,attrs:(0,c.default)(e,!0),maxLength:N?$:void 0})),!N&&B?n.createElement("span",{className:"".concat(o,"-selection-item"),title:L,style:z?{visibility:"hidden"}:void 0},B.label):null,D)};var j=n.forwardRef(function(e,l){var s=(0,n.useRef)(null),c=(0,n.useRef)(!1),u=e.prefixCls,d=e.open,f=e.mode,p=e.showSearch,h=e.tokenWithEnter,m=e.disabled,g=e.prefix,v=e.autoClearSearchValue,y=e.onSearch,b=e.onSearchSubmit,w=e.onToggleOpen,$=e.onInputKeyDown,C=e.onInputBlur,x=e.domRef;n.useImperativeHandle(l,function(){return{focus:function(e){s.current.focus(e)},blur:function(){s.current.blur()}}});var E=(0,a.default)(0),j=(0,r.default)(E,2),O=j[0],T=j[1],I=(0,n.useRef)(null),_=function(e){!1!==y(e,!0,c.current)&&w(!0)},F={inputRef:s,onInputKeyDown:function(e){var t=e.which,r=s.current instanceof HTMLTextAreaElement;!r&&d&&(t===o.default.UP||t===o.default.DOWN)&&e.preventDefault(),$&&$(e),t!==o.default.ENTER||"tags"!==f||c.current||d||null==b||b(e.target.value),!(r&&!d&&~[o.default.UP,o.default.DOWN,o.default.LEFT,o.default.RIGHT].indexOf(t))&&(0,i.isValidateOpenKey)(t)&&w(!0)},onInputMouseDown:function(){T(!0)},onInputChange:function(e){var t=e.target.value;if(h&&I.current&&/[\r\n]/.test(I.current)){var r=I.current.replace(/[\r\n]+$/,"").replace(/\r\n/g," ").replace(/[\r\n]/g," ");t=t.replace(r,I.current)}I.current=null,_(t)},onInputPaste:function(e){var t=e.clipboardData;I.current=(null==t?void 0:t.getData("text"))||""},onInputCompositionStart:function(){c.current=!0},onInputCompositionEnd:function(e){c.current=!1,"combobox"!==f&&_(e.target.value)},onInputBlur:C},P="multiple"===f||"tags"===f?n.createElement(S,(0,t.default)({},e,F)):n.createElement(k,(0,t.default)({},e,F));return n.createElement("div",{ref:x,className:"".concat(u,"-selector"),onClick:function(e){e.target!==s.current&&(void 0!==document.body.style.msTouchAction?setTimeout(function(){s.current.focus()}):s.current.focus())},onMouseDown:function(e){var t=O();e.target===s.current||t||"combobox"===f&&m||e.preventDefault(),("combobox"===f||p&&t)&&d||(d&&!1!==v&&y("",!0,!1),w())}},g&&n.createElement("div",{className:"".concat(u,"-prefix")},g),P)});e.s(["default",0,j],823744)},331290,670532,300877,567770,750756,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(211577),o=e.i(8211),n=e.i(392221),a=e.i(209428),i=e.i(703923),l=e.i(343794),s=e.i(174428),c=e.i(914949),u=e.i(614761),d=e.i(611935),f=e.i(271645),p=e.i(147138),h=e.i(266623),m=e.i(794721),g=e.i(232176),v=e.i(843375),y=e.i(823744),b=e.i(707067),w=["prefixCls","disabled","visible","children","popupElement","animation","transitionName","dropdownStyle","dropdownClassName","direction","placement","builtinPlacements","dropdownMatchSelectWidth","dropdownRender","dropdownAlign","getPopupContainer","empty","getTriggerDOMNode","onPopupVisibleChange","onPopupMouseEnter"],$=function(e){var t=+(!0!==e);return{bottomLeft:{points:["tl","bl"],offset:[0,4],overflow:{adjustX:t,adjustY:1},htmlRegion:"scroll"},bottomRight:{points:["tr","br"],offset:[0,4],overflow:{adjustX:t,adjustY:1},htmlRegion:"scroll"},topLeft:{points:["bl","tl"],offset:[0,-4],overflow:{adjustX:t,adjustY:1},htmlRegion:"scroll"},topRight:{points:["br","tr"],offset:[0,-4],overflow:{adjustX:t,adjustY:1},htmlRegion:"scroll"}}},C=f.forwardRef(function(e,o){var n=e.prefixCls,s=(e.disabled,e.visible),c=e.children,u=e.popupElement,d=e.animation,p=e.transitionName,h=e.dropdownStyle,m=e.dropdownClassName,g=e.direction,v=e.placement,y=e.builtinPlacements,C=e.dropdownMatchSelectWidth,x=e.dropdownRender,E=e.dropdownAlign,S=e.getPopupContainer,k=e.empty,j=e.getTriggerDOMNode,O=e.onPopupVisibleChange,T=e.onPopupMouseEnter,I=(0,i.default)(e,w),_="".concat(n,"-dropdown"),F=u;x&&(F=x(u));var P=f.useMemo(function(){return y||$(C)},[y,C]),R=d?"".concat(_,"-").concat(d):p,N="number"==typeof C,M=f.useMemo(function(){return N?null:!1===C?"minWidth":"width"},[C,N]),B=h;N&&(B=(0,a.default)((0,a.default)({},B),{},{width:C}));var A=f.useRef(null);return f.useImperativeHandle(o,function(){return{getPopupElement:function(){var e;return null==(e=A.current)?void 0:e.popupElement}}}),f.createElement(b.default,(0,t.default)({},I,{showAction:O?["click"]:[],hideAction:O?["click"]:[],popupPlacement:v||("rtl"===(void 0===g?"ltr":g)?"bottomRight":"bottomLeft"),builtinPlacements:P,prefixCls:_,popupTransitionName:R,popup:f.createElement("div",{onMouseEnter:T},F),ref:A,stretch:M,popupAlign:E,popupVisible:s,getPopupContainer:S,popupClassName:(0,l.default)(m,(0,r.default)({},"".concat(_,"-empty"),k)),popupStyle:B,getTriggerDOMNode:j,onPopupVisibleChange:O}),c)}),x=e.i(210803),E=e.i(865610),S=e.i(883110);function k(e,t){var r,o=e.key;return("value"in e&&(r=e.value),null!=o)?o:void 0!==r?r:"rc-index-key-".concat(t)}function j(e){return void 0!==e&&!Number.isNaN(e)}function O(e,t){var r=e||{},o=r.label,n=r.value,a=r.options,i=r.groupLabel,l=o||(t?"children":"label");return{label:l,value:n||"value",options:a||"options",groupLabel:i||l}}var T=function(e,t,r){if(!t||!t.length)return null;var n=!1,a=function e(t,r){var a=(0,E.default)(r),i=a[0],l=a.slice(1);if(!i)return[t];var s=t.split(i);return n=n||s.length>1,s.reduce(function(t,r){return[].concat((0,o.default)(t),(0,o.default)(e(r,l)))},[]).filter(Boolean)}(e,t);return n?void 0!==r?a.slice(0,r):a:null};e.s(["fillFieldNames",0,O,"flattenOptions",0,function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.fieldNames,o=t.childrenAsData,n=[],a=O(r,!1),i=a.label,l=a.value,s=a.options,c=a.groupLabel;return!function e(t,r){Array.isArray(t)&&t.forEach(function(t){if(!r&&s in t){var a=t[c];void 0===a&&o&&(a=t.label),n.push({key:k(t,n.length),group:!0,data:t,label:a}),e(t[s],!0)}else{var u=t[l];n.push({key:k(t,n.length),groupOption:r,data:t,label:t[i],value:u})}})}(e,!1),n},"getSeparatedContent",0,T,"injectPropsWithOption",0,function(e){var t=(0,a.default)({},e);return"props"in t||Object.defineProperty(t,"props",{get:function(){return(0,S.default)(!1,"Return type is option instead of Option instance. Please read value directly instead of reading from `props`."),t}}),t},"isValidCount",0,j],670532);var I=f.createContext(null);e.s(["default",0,I],300877);var _=e.i(410160);function F(e){var t=e.visible,r=e.values;return t?f.createElement("span",{"aria-live":"polite",style:{width:0,height:0,position:"absolute",overflow:"hidden",opacity:0}},"".concat(r.slice(0,50).map(function(e){var t=e.label,r=e.value;return["number","string"].includes((0,_.default)(t))?t:r}).join(", ")),r.length>50?", ...":null):null}var P=["id","prefixCls","className","showSearch","tagRender","direction","omitDomProps","displayValues","onDisplayValuesChange","emptyOptions","notFoundContent","onClear","mode","disabled","loading","getInputElement","getRawInputElement","open","defaultOpen","onDropdownVisibleChange","activeValue","onActiveValueChange","activeDescendantId","searchValue","autoClearSearchValue","onSearch","onSearchSplit","tokenSeparators","allowClear","prefix","suffixIcon","clearIcon","OptionList","animation","transitionName","dropdownStyle","dropdownClassName","dropdownMatchSelectWidth","dropdownRender","dropdownAlign","placement","builtinPlacements","getPopupContainer","showAction","onFocus","onBlur","onKeyUp","onKeyDown","onMouseDown"],R=["value","onChange","removeIcon","placeholder","autoFocus","maxTagCount","maxTagTextLength","maxTagPlaceholder","choiceTransitionName","onInputKeyDown","onPopupScroll","tabIndex"],N=function(e){return"tags"===e||"multiple"===e},M=f.forwardRef(function(e,b){var w,$,E,S,k=e.id,O=e.prefixCls,_=e.className,M=e.showSearch,B=e.tagRender,A=e.direction,z=e.omitDomProps,L=e.displayValues,D=e.onDisplayValuesChange,H=e.emptyOptions,V=e.notFoundContent,W=void 0===V?"Not Found":V,U=e.onClear,G=e.mode,q=e.disabled,J=e.loading,K=e.getInputElement,X=e.getRawInputElement,Q=e.open,Y=e.defaultOpen,Z=e.onDropdownVisibleChange,ee=e.activeValue,et=e.onActiveValueChange,er=e.activeDescendantId,eo=e.searchValue,en=e.autoClearSearchValue,ea=e.onSearch,ei=e.onSearchSplit,el=e.tokenSeparators,es=e.allowClear,ec=e.prefix,eu=e.suffixIcon,ed=e.clearIcon,ef=e.OptionList,ep=e.animation,eh=e.transitionName,em=e.dropdownStyle,eg=e.dropdownClassName,ev=e.dropdownMatchSelectWidth,ey=e.dropdownRender,eb=e.dropdownAlign,ew=e.placement,e$=e.builtinPlacements,eC=e.getPopupContainer,ex=e.showAction,eE=void 0===ex?[]:ex,eS=e.onFocus,ek=e.onBlur,ej=e.onKeyUp,eO=e.onKeyDown,eT=e.onMouseDown,eI=(0,i.default)(e,P),e_=N(G),eF=(void 0!==M?M:e_)||"combobox"===G,eP=(0,a.default)({},eI);R.forEach(function(e){delete eP[e]}),null==z||z.forEach(function(e){delete eP[e]});var eR=f.useState(!1),eN=(0,n.default)(eR,2),eM=eN[0],eB=eN[1];f.useEffect(function(){eB((0,u.default)())},[]);var eA=f.useRef(null),ez=f.useRef(null),eL=f.useRef(null),eD=f.useRef(null),eH=f.useRef(null),eV=f.useRef(!1),eW=(0,m.default)(),eU=(0,n.default)(eW,3),eG=eU[0],eq=eU[1],eJ=eU[2];f.useImperativeHandle(b,function(){var e,t;return{focus:null==(e=eD.current)?void 0:e.focus,blur:null==(t=eD.current)?void 0:t.blur,scrollTo:function(e){var t;return null==(t=eH.current)?void 0:t.scrollTo(e)},nativeElement:eA.current||ez.current}});var eK=f.useMemo(function(){if("combobox"!==G)return eo;var e,t=null==(e=L[0])?void 0:e.value;return"string"==typeof t||"number"==typeof t?String(t):""},[eo,G,L]),eX="combobox"===G&&"function"==typeof K&&K()||null,eQ="function"==typeof X&&X(),eY=(0,d.useComposeRef)(ez,null==eQ||null==(w=eQ.props)?void 0:w.ref),eZ=f.useState(!1),e0=(0,n.default)(eZ,2),e1=e0[0],e2=e0[1];(0,s.default)(function(){e2(!0)},[]);var e4=(0,c.default)(!1,{defaultValue:Y,value:Q}),e6=(0,n.default)(e4,2),e3=e6[0],e7=e6[1],e5=!!e1&&e3,e9=!W&&H;(q||e9&&e5&&"combobox"===G)&&(e5=!1);var e8=!e9&&e5,te=f.useCallback(function(e){var t=void 0!==e?e:!e5;q||(e7(t),e5!==t&&(null==Z||Z(t)))},[q,e5,e7,Z]),tt=f.useMemo(function(){return(el||[]).some(function(e){return["\n","\r\n"].includes(e)})},[el]),tr=f.useContext(I)||{},to=tr.maxCount,tn=tr.rawValues,ta=function(e,t,r){if(!(e_&&j(to))||!((null==tn?void 0:tn.size)>=to)){var o=!0,n=e;null==et||et(null);var a=T(e,el,j(to)?to-tn.size:void 0),i=r?null:a;return"combobox"!==G&&i&&(n="",null==ei||ei(i),te(!1),o=!1),ea&&eK!==n&&ea(n,{source:t?"typing":"effect"}),o}};f.useEffect(function(){e5||e_||"combobox"===G||ta("",!1,!1)},[e5]),f.useEffect(function(){e3&&q&&e7(!1),q&&!eV.current&&eq(!1)},[q]);var ti=(0,g.default)(),tl=(0,n.default)(ti,2),ts=tl[0],tc=tl[1],tu=f.useRef(!1),td=f.useRef(!1),tf=[];f.useEffect(function(){return function(){tf.forEach(function(e){return clearTimeout(e)}),tf.splice(0,tf.length)}},[]);var tp=f.useState({}),th=(0,n.default)(tp,2)[1];eQ&&($=function(e){te(e)}),(0,v.default)(function(){var e;return[eA.current,null==(e=eL.current)?void 0:e.getPopupElement()]},e8,te,!!eQ);var tm=f.useMemo(function(){return(0,a.default)((0,a.default)({},e),{},{notFoundContent:W,open:e5,triggerOpen:e8,id:k,showSearch:eF,multiple:e_,toggleOpen:te})},[e,W,e8,e5,k,eF,e_,te]),tg=!!eu||J;tg&&(E=f.createElement(x.default,{className:(0,l.default)("".concat(O,"-arrow"),(0,r.default)({},"".concat(O,"-arrow-loading"),J)),customizeIcon:eu,customizeIconProps:{loading:J,searchValue:eK,open:e5,focused:eG,showSearch:eF}}));var tv=(0,p.useAllowClear)(O,function(){var e;null==U||U(),null==(e=eD.current)||e.focus(),D([],{type:"clear",values:L}),ta("",!1,!1)},L,es,ed,q,eK,G),ty=tv.allowClear,tb=tv.clearIcon,tw=f.createElement(ef,{ref:eH}),t$=(0,l.default)(O,_,(0,r.default)((0,r.default)((0,r.default)((0,r.default)((0,r.default)((0,r.default)((0,r.default)((0,r.default)((0,r.default)((0,r.default)({},"".concat(O,"-focused"),eG),"".concat(O,"-multiple"),e_),"".concat(O,"-single"),!e_),"".concat(O,"-allow-clear"),es),"".concat(O,"-show-arrow"),tg),"".concat(O,"-disabled"),q),"".concat(O,"-loading"),J),"".concat(O,"-open"),e5),"".concat(O,"-customize-input"),eX),"".concat(O,"-show-search"),eF)),tC=f.createElement(C,{ref:eL,disabled:q,prefixCls:O,visible:e8,popupElement:tw,animation:ep,transitionName:eh,dropdownStyle:em,dropdownClassName:eg,direction:A,dropdownMatchSelectWidth:ev,dropdownRender:ey,dropdownAlign:eb,placement:ew,builtinPlacements:e$,getPopupContainer:eC,empty:H,getTriggerDOMNode:function(e){return ez.current||e},onPopupVisibleChange:$,onPopupMouseEnter:function(){th({})}},eQ?f.cloneElement(eQ,{ref:eY}):f.createElement(y.default,(0,t.default)({},e,{domRef:ez,prefixCls:O,inputElement:eX,ref:eD,id:k,prefix:ec,showSearch:eF,autoClearSearchValue:en,mode:G,activeDescendantId:er,tagRender:B,values:L,open:e5,onToggleOpen:te,activeValue:ee,searchValue:eK,onSearch:ta,onSearchSubmit:function(e){e&&e.trim()&&ea(e,{source:"submit"})},onRemove:function(e){D(L.filter(function(t){return t!==e}),{type:"remove",values:[e]})},tokenWithEnter:tt,onInputBlur:function(){tu.current=!1}})));return S=eQ?tC:f.createElement("div",(0,t.default)({className:t$},eP,{ref:eA,onMouseDown:function(e){var t,r=e.target,o=null==(t=eL.current)?void 0:t.getPopupElement();if(o&&o.contains(r)){var n=setTimeout(function(){var e,t=tf.indexOf(n);-1!==t&&tf.splice(t,1),eJ(),eM||o.contains(document.activeElement)||null==(e=eD.current)||e.focus()});tf.push(n)}for(var a=arguments.length,i=Array(a>1?a-1:0),l=1;l=0;s-=1){var c=i[s];if(!c.disabled){i.splice(s,1),l=c;break}}l&&D(i,{type:"remove",values:[l]})}for(var u=arguments.length,d=Array(u>1?u-1:0),f=1;f1?r-1:0),n=1;n{"use strict";var t=e.i(931067),r=e.i(410160),o=e.i(209428),n=e.i(211577),a=e.i(392221),i=e.i(703923),l=e.i(343794),s=e.i(430073);e.i(62664);var c=e.i(697539),u=e.i(174428),d=e.i(271645),f=e.i(174080),p=d.forwardRef(function(e,r){var a=e.height,i=e.offsetY,c=e.offsetX,u=e.children,f=e.prefixCls,p=e.onInnerResize,h=e.innerProps,m=e.rtl,g=e.extra,v={},y={display:"flex",flexDirection:"column"};return void 0!==i&&(v={height:a,position:"relative",overflow:"hidden"},y=(0,o.default)((0,o.default)({},y),{},(0,n.default)((0,n.default)((0,n.default)((0,n.default)((0,n.default)({transform:"translateY(".concat(i,"px)")},m?"marginRight":"marginLeft",-c),"position","absolute"),"left",0),"right",0),"top",0))),d.createElement("div",{style:v},d.createElement(s.default,{onResize:function(e){e.offsetHeight&&p&&p()}},d.createElement("div",(0,t.default)({style:y,className:(0,l.default)((0,n.default)({},"".concat(f,"-holder-inner"),f)),ref:r},h),u,g)))});function h(e){var t=e.children,r=e.setRef,o=d.useCallback(function(e){r(e)},[]);return d.cloneElement(t,{ref:o})}p.displayName="Filler";var m=e.i(963188),g=("u"2&&void 0!==arguments[2]&&arguments[2],o=e?t<0&&i.current.left||t>0&&i.current.right:t<0&&i.current.top||t>0&&i.current.bottom;return r&&o?(clearTimeout(a.current),n.current=!1):(!o||n.current)&&(clearTimeout(a.current),n.current=!0,a.current=setTimeout(function(){n.current=!1},50)),!n.current&&o}};var y=e.i(278409),b=e.i(233848),w=function(){function e(){(0,y.default)(this,e),(0,n.default)(this,"maps",void 0),(0,n.default)(this,"id",0),(0,n.default)(this,"diffRecords",new Map),this.maps=Object.create(null)}return(0,b.default)(e,[{key:"set",value:function(e,t){this.diffRecords.set(e,this.maps[e]),this.maps[e]=t,this.id+=1}},{key:"get",value:function(e){return this.maps[e]}},{key:"resetRecord",value:function(){this.diffRecords.clear()}},{key:"getRecord",value:function(){return this.diffRecords}}]),e}();function $(e){var t=parseFloat(e);return isNaN(t)?0:t}var C=14/15;function x(e){return Math.floor(Math.pow(e,.5))}function E(e,t){return("touches"in e?e.touches[0]:e)[t?"pageX":"pageY"]-window[t?"scrollX":"scrollY"]}e.i(247167);var S=d.forwardRef(function(e,t){var r=e.prefixCls,i=e.rtl,s=e.scrollOffset,c=e.scrollRange,u=e.onStartMove,f=e.onStopMove,p=e.onScroll,h=e.horizontal,g=e.spinSize,v=e.containerSize,y=e.style,b=e.thumbStyle,w=e.showScrollBar,$=d.useState(!1),C=(0,a.default)($,2),x=C[0],S=C[1],k=d.useState(null),j=(0,a.default)(k,2),O=j[0],T=j[1],I=d.useState(null),_=(0,a.default)(I,2),F=_[0],P=_[1],R=!i,N=d.useRef(),M=d.useRef(),B=d.useState(w),A=(0,a.default)(B,2),z=A[0],L=A[1],D=d.useRef(),H=function(){!0!==w&&!1!==w&&(clearTimeout(D.current),L(!0),D.current=setTimeout(function(){L(!1)},3e3))},V=c-v||0,W=v-g||0,U=d.useMemo(function(){return 0===s||0===V?0:s/V*W},[s,V,W]),G=d.useRef({top:U,dragging:x,pageY:O,startTop:F});G.current={top:U,dragging:x,pageY:O,startTop:F};var q=function(e){S(!0),T(E(e,h)),P(G.current.top),u(),e.stopPropagation(),e.preventDefault()};d.useEffect(function(){var e=function(e){e.preventDefault()},t=N.current,r=M.current;return t.addEventListener("touchstart",e,{passive:!1}),r.addEventListener("touchstart",q,{passive:!1}),function(){t.removeEventListener("touchstart",e),r.removeEventListener("touchstart",q)}},[]);var J=d.useRef();J.current=V;var K=d.useRef();K.current=W,d.useEffect(function(){if(x){var e,t=function(t){var r=G.current,o=r.dragging,n=r.pageY,a=r.startTop;m.default.cancel(e);var i=N.current.getBoundingClientRect(),l=v/(h?i.width:i.height);if(o){var s=(E(t,h)-n)*l,c=a;!R&&h?c-=s:c+=s;var u=J.current,d=K.current,f=Math.ceil((d?c/d:0)*u);f=Math.min(f=Math.max(f,0),u),e=(0,m.default)(function(){p(f,h)})}},r=function(){S(!1),f()};return window.addEventListener("mousemove",t,{passive:!0}),window.addEventListener("touchmove",t,{passive:!0}),window.addEventListener("mouseup",r,{passive:!0}),window.addEventListener("touchend",r,{passive:!0}),function(){window.removeEventListener("mousemove",t),window.removeEventListener("touchmove",t),window.removeEventListener("mouseup",r),window.removeEventListener("touchend",r),m.default.cancel(e)}}},[x]),d.useEffect(function(){return H(),function(){clearTimeout(D.current)}},[s]),d.useImperativeHandle(t,function(){return{delayHidden:H}});var X="".concat(r,"-scrollbar"),Q={position:"absolute",visibility:z?null:"hidden"},Y={position:"absolute",borderRadius:99,background:"var(--rc-virtual-list-scrollbar-bg, rgba(0, 0, 0, 0.5))",cursor:"pointer",userSelect:"none"};return h?(Object.assign(Q,{height:8,left:0,right:0,bottom:0}),Object.assign(Y,(0,n.default)({height:"100%",width:g},R?"left":"right",U))):(Object.assign(Q,(0,n.default)({width:8,top:0,bottom:0},R?"right":"left",0)),Object.assign(Y,{width:"100%",height:g,top:U})),d.createElement("div",{ref:N,className:(0,l.default)(X,(0,n.default)((0,n.default)((0,n.default)({},"".concat(X,"-horizontal"),h),"".concat(X,"-vertical"),!h),"".concat(X,"-visible"),z)),style:(0,o.default)((0,o.default)({},Q),y),onMouseDown:function(e){e.stopPropagation(),e.preventDefault()},onMouseMove:H},d.createElement("div",{ref:M,className:(0,l.default)("".concat(X,"-thumb"),(0,n.default)({},"".concat(X,"-thumb-moving"),x)),style:(0,o.default)((0,o.default)({},Y),b),onMouseDown:q}))});function k(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=e/t*e;return isNaN(r)&&(r=0),Math.floor(r=Math.max(r,20))}var j=["prefixCls","className","height","itemHeight","fullHeight","style","data","children","itemKey","virtual","direction","scrollWidth","component","onScroll","onVirtualScroll","onVisibleChange","innerProps","extraRender","styles","showScrollBar"],O=[],T={overflowY:"auto",overflowAnchor:"none"},I=d.forwardRef(function(e,y){var b,I,_,F,P,R,N,M,B,A,z,L,D,H,V,W,U,G,q,J,K,X,Q,Y,Z,ee,et,er,eo,en,ea,ei,el,es,ec,eu,ed,ef=e.prefixCls,ep=void 0===ef?"rc-virtual-list":ef,eh=e.className,em=e.height,eg=e.itemHeight,ev=e.fullHeight,ey=e.style,eb=e.data,ew=e.children,e$=e.itemKey,eC=e.virtual,ex=e.direction,eE=e.scrollWidth,eS=e.component,ek=e.onScroll,ej=e.onVirtualScroll,eO=e.onVisibleChange,eT=e.innerProps,eI=e.extraRender,e_=e.styles,eF=e.showScrollBar,eP=void 0===eF?"optional":eF,eR=(0,i.default)(e,j),eN=d.useCallback(function(e){return"function"==typeof e$?e$(e):null==e?void 0:e[e$]},[e$]),eM=function(e,t,r){var o=d.useState(0),n=(0,a.default)(o,2),i=n[0],l=n[1],s=(0,d.useRef)(new Map),c=(0,d.useRef)(new w),u=(0,d.useRef)(0);function f(){u.current+=1}function p(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];f();var t=function(){var e=!1;s.current.forEach(function(t,r){if(t&&t.offsetParent){var o=t.offsetHeight,n=getComputedStyle(t),a=n.marginTop,i=n.marginBottom,l=o+$(a)+$(i);c.current.get(r)!==l&&(c.current.set(r,l),e=!0)}}),e&&l(function(e){return e+1})};if(e)t();else{u.current+=1;var r=u.current;Promise.resolve().then(function(){r===u.current&&t()})}}return(0,d.useEffect)(function(){return f},[]),[function(o,n){var a=e(o),i=s.current.get(a);n?(s.current.set(a,n),p()):s.current.delete(a),!i!=!n&&(n?null==t||t(o):null==r||r(o))},p,c.current,i]}(eN,null,null),eB=(0,a.default)(eM,4),eA=eB[0],ez=eB[1],eL=eB[2],eD=eB[3],eH=!!(!1!==eC&&em&&eg),eV=d.useMemo(function(){return Object.values(eL.maps).reduce(function(e,t){return e+t},0)},[eL.id,eL.maps]),eW=eH&&eb&&(Math.max(eg*eb.length,eV)>em||!!eE),eU="rtl"===ex,eG=(0,l.default)(ep,(0,n.default)({},"".concat(ep,"-rtl"),eU),eh),eq=eb||O,eJ=(0,d.useRef)(),eK=(0,d.useRef)(),eX=(0,d.useRef)(),eQ=(0,d.useState)(0),eY=(0,a.default)(eQ,2),eZ=eY[0],e0=eY[1],e1=(0,d.useState)(0),e2=(0,a.default)(e1,2),e4=e2[0],e6=e2[1],e3=(0,d.useState)(!1),e7=(0,a.default)(e3,2),e5=e7[0],e9=e7[1],e8=function(){e9(!0)},te=function(){e9(!1)};function tt(e){e0(function(t){var r,o=(r="function"==typeof e?e(t):e,Number.isNaN(tb.current)||(r=Math.min(r,tb.current)),r=Math.max(r,0));return eJ.current.scrollTop=o,o})}var tr=(0,d.useRef)({start:0,end:eq.length}),to=(0,d.useRef)(),tn=(b=d.useState(eq),_=(I=(0,a.default)(b,2))[0],F=I[1],P=d.useState(null),N=(R=(0,a.default)(P,2))[0],M=R[1],d.useEffect(function(){var e=function(e,t,r){var o,n,a=e.length,i=t.length;if(0===a&&0===i)return null;a=eZ&&void 0===t&&(t=i,r=n),c>eZ+em&&void 0===o&&(o=i),n=c}return void 0===t&&(t=0,r=0,o=Math.ceil(em/eg)),void 0===o&&(o=eq.length-1),{scrollHeight:n,start:t,end:o=Math.min(o+1,eq.length-1),offset:r}},[eW,eH,eZ,eq,eD,em]),ti=ta.scrollHeight,tl=ta.start,ts=ta.end,tc=ta.offset;tr.current.start=tl,tr.current.end=ts,d.useLayoutEffect(function(){var e=eL.getRecord();if(1===e.size){var t=Array.from(e.keys())[0],r=e.get(t),o=eq[tl];if(o&&void 0===r&&eN(o)===t){var n=eL.get(t)-eg;tt(function(e){return e+n})}}eL.resetRecord()},[ti]);var tu=d.useState({width:0,height:em}),td=(0,a.default)(tu,2),tf=td[0],tp=td[1],th=(0,d.useRef)(),tm=(0,d.useRef)(),tg=d.useMemo(function(){return k(tf.width,eE)},[tf.width,eE]),tv=d.useMemo(function(){return k(tf.height,ti)},[tf.height,ti]),ty=ti-em,tb=(0,d.useRef)(ty);tb.current=ty;var tw=eZ<=0,t$=eZ>=ty,tC=e4<=0,tx=e4>=eE,tE=v(tw,t$,tC,tx),tS=function(){return{x:eU?-e4:e4,y:eZ}},tk=(0,d.useRef)(tS()),tj=(0,c.useEvent)(function(e){if(ej){var t=(0,o.default)((0,o.default)({},tS()),e);(tk.current.x!==t.x||tk.current.y!==t.y)&&(ej(t),tk.current=t)}});function tO(e,t){t?((0,f.flushSync)(function(){e6(e)}),tj()):tt(e)}var tT=function(e){var t=e,r=eE?eE-tf.width:0;return Math.min(t=Math.max(t,0),r)},tI=(0,c.useEvent)(function(e,t){t?((0,f.flushSync)(function(){e6(function(t){return tT(t+(eU?-e:e))})}),tj()):tt(function(t){return t+e})}),t_=(B=!!eE,A=(0,d.useRef)(0),z=(0,d.useRef)(null),L=(0,d.useRef)(null),D=(0,d.useRef)(!1),H=v(tw,t$,tC,tx),V=(0,d.useRef)(null),W=(0,d.useRef)(null),[function(e){if(eH){m.default.cancel(W.current),W.current=(0,m.default)(function(){V.current=null},2);var t,r,o=e.deltaX,n=e.deltaY,a=e.shiftKey,i=o,l=n;("sx"===V.current||!V.current&&a&&n&&!o)&&(i=n,l=0,V.current="sx");var s=Math.abs(i),c=Math.abs(l);if(null===V.current&&(V.current=B&&s>c?"x":"y"),"y"===V.current){t=e,r=l,m.default.cancel(z.current),!H(!1,r)&&(t._virtualHandled||(t._virtualHandled=!0,A.current+=r,L.current=r,g||t.preventDefault(),z.current=(0,m.default)(function(){var e=D.current?10:1;tI(A.current*e,!1),A.current=0})))}else tI(i,!0),g||e.preventDefault()}},function(e){eH&&(D.current=e.detail===L.current)}]),tF=(0,a.default)(t_,2),tP=tF[0],tR=tF[1];U=function(e,t,r,o){return!tE(e,t,r)&&(!o||!o._virtualHandled)&&(o&&(o._virtualHandled=!0),tP({preventDefault:function(){},deltaX:e?t:0,deltaY:e?0:t}),!0)},q=(0,d.useRef)(!1),J=(0,d.useRef)(0),K=(0,d.useRef)(0),X=(0,d.useRef)(null),Q=(0,d.useRef)(null),Y=function(e){if(q.current){var t=Math.ceil(e.touches[0].pageX),r=Math.ceil(e.touches[0].pageY),o=J.current-t,n=K.current-r,a=Math.abs(o)>Math.abs(n);a?J.current=t:K.current=r;var i=U(a,a?o:n,!1,e);i&&e.preventDefault(),clearInterval(Q.current),i&&(Q.current=setInterval(function(){a?o*=C:n*=C;var e=Math.floor(a?o:n);(!U(a,e,!0)||.1>=Math.abs(e))&&clearInterval(Q.current)},16))}},Z=function(){q.current=!1,G()},ee=function(e){G(),1!==e.touches.length||q.current||(q.current=!0,J.current=Math.ceil(e.touches[0].pageX),K.current=Math.ceil(e.touches[0].pageY),X.current=e.target,X.current.addEventListener("touchmove",Y,{passive:!1}),X.current.addEventListener("touchend",Z,{passive:!0}))},G=function(){X.current&&(X.current.removeEventListener("touchmove",Y),X.current.removeEventListener("touchend",Z))},(0,u.default)(function(){return eH&&eJ.current.addEventListener("touchstart",ee,{passive:!0}),function(){var e;null==(e=eJ.current)||e.removeEventListener("touchstart",ee),G(),clearInterval(Q.current)}},[eH]),et=function(e){tt(function(t){return t+e})},d.useEffect(function(){var e=eJ.current;if(eW&&e){var t,r,o=!1,n=function(){m.default.cancel(t)},a=function e(){n(),t=(0,m.default)(function(){et(r),e()})},i=function(){o=!1,n()},l=function(e){!e.target.draggable&&0===e.button&&(e._virtualHandled||(e._virtualHandled=!0,o=!0))},s=function(t){if(o){var i=E(t,!1),l=e.getBoundingClientRect(),s=l.top,c=l.bottom;i<=s?(r=-x(s-i),a()):i>=c?(r=x(i-c),a()):n()}};return e.addEventListener("mousedown",l),e.ownerDocument.addEventListener("mouseup",i),e.ownerDocument.addEventListener("mousemove",s),e.ownerDocument.addEventListener("dragend",i),function(){e.removeEventListener("mousedown",l),e.ownerDocument.removeEventListener("mouseup",i),e.ownerDocument.removeEventListener("mousemove",s),e.ownerDocument.removeEventListener("dragend",i),n()}}},[eW]),(0,u.default)(function(){function e(e){var t=tw&&e.detail<0,r=t$&&e.detail>0;!eH||t||r||e.preventDefault()}var t=eJ.current;return t.addEventListener("wheel",tP,{passive:!1}),t.addEventListener("DOMMouseScroll",tR,{passive:!0}),t.addEventListener("MozMousePixelScroll",e,{passive:!1}),function(){t.removeEventListener("wheel",tP),t.removeEventListener("DOMMouseScroll",tR),t.removeEventListener("MozMousePixelScroll",e)}},[eH,tw,t$]),(0,u.default)(function(){if(eE){var e=tT(e4);e6(e),tj({x:e})}},[tf.width,eE]);var tN=function(){var e,t;null==(e=th.current)||e.delayHidden(),null==(t=tm.current)||t.delayHidden()},tM=(er=function(){return ez(!0)},eo=d.useRef(),en=d.useState(null),ei=(ea=(0,a.default)(en,2))[0],el=ea[1],(0,u.default)(function(){if(ei&&ei.times<10){if(!eJ.current)return void el(function(e){return(0,o.default)({},e)});er();var e=ei.targetAlign,t=ei.originAlign,r=ei.index,n=ei.offset,a=eJ.current.clientHeight,i=!1,l=e,s=null;if(a){for(var c=e||t,u=0,d=0,f=0,p=Math.min(eq.length-1,r),h=0;h<=p;h+=1){var m=eN(eq[h]);d=u;var g=eL.get(m);u=f=d+(void 0===g?eg:g)}for(var v="top"===c?n:a-n,y=p;y>=0;y-=1){var b=eN(eq[y]),w=eL.get(b);if(void 0===w){i=!0;break}if((v-=w)<=0)break}switch(c){case"top":s=d-n;break;case"bottom":s=f-a+n;break;default:var $=eJ.current.scrollTop;d<$?l="top":f>$+a&&(l="bottom")}null!==s&&tt(s),s!==ei.lastTop&&(i=!0)}i&&el((0,o.default)((0,o.default)({},ei),{},{times:ei.times+1,targetAlign:l,lastTop:s}))}},[ei,eJ.current]),function(e){if(null==e)return void tN();if(m.default.cancel(eo.current),"number"==typeof e)tt(e);else if(e&&"object"===(0,r.default)(e)){var t,o=e.align;t="index"in e?e.index:eq.findIndex(function(t){return eN(t)===e.key});var n=e.offset;el({times:0,index:t,offset:void 0===n?0:n,originAlign:o})}});d.useImperativeHandle(y,function(){return{nativeElement:eX.current,getScrollInfo:tS,scrollTo:function(e){e&&"object"===(0,r.default)(e)&&("left"in e||"top"in e)?(void 0!==e.left&&e6(tT(e.left)),tM(e.top)):tM(e)}}}),(0,u.default)(function(){eO&&eO(eq.slice(tl,ts+1),eq)},[tl,ts,eq]);var tB=(es=d.useMemo(function(){return[new Map,[]]},[eq,eL.id,eg]),eu=(ec=(0,a.default)(es,2))[0],ed=ec[1],function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,r=eu.get(e),o=eu.get(t);if(void 0===r||void 0===o)for(var n=eq.length,a=ed.length;aem&&d.createElement(S,{ref:th,prefixCls:ep,scrollOffset:eZ,scrollRange:ti,rtl:eU,onScroll:tO,onStartMove:e8,onStopMove:te,spinSize:tv,containerSize:tf.height,style:null==e_?void 0:e_.verticalScrollBar,thumbStyle:null==e_?void 0:e_.verticalScrollBarThumb,showScrollBar:eP}),eW&&eE>tf.width&&d.createElement(S,{ref:tm,prefixCls:ep,scrollOffset:e4,scrollRange:eE,rtl:eU,onScroll:tO,onStartMove:e8,onStopMove:te,spinSize:tg,containerSize:tf.width,horizontal:!0,style:null==e_?void 0:e_.horizontalScrollBar,thumbStyle:null==e_?void 0:e_.horizontalScrollBarThumb,showScrollBar:eP}))});I.displayName="List",e.s(["default",0,I],323002)},123829,955492,869301,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(8211),o=e.i(211577),n=e.i(209428),a=e.i(392221),i=e.i(703923),l=e.i(410160),s=e.i(914949);e.i(883110);var c=e.i(271645),u=e.i(331290),d=e.i(567770),f=e.i(750756),p=e.i(343794),h=e.i(404948),m=e.i(182585),g=e.i(529681),v=e.i(244009),y=e.i(323002),b=e.i(300877),w=e.i(210803),$=e.i(266623),C=e.i(670532),x=["disabled","title","children","style","className"];function E(e){return"string"==typeof e||"number"==typeof e}var S=c.forwardRef(function(e,n){var l=(0,$.default)(),s=l.prefixCls,u=l.id,d=l.open,f=l.multiple,S=l.mode,k=l.searchValue,j=l.toggleOpen,O=l.notFoundContent,T=l.onPopupScroll,I=c.useContext(b.default),_=I.maxCount,F=I.flattenOptions,P=I.onActiveValue,R=I.defaultActiveFirstOption,N=I.onSelect,M=I.menuItemSelectedIcon,B=I.rawValues,A=I.fieldNames,z=I.virtual,L=I.direction,D=I.listHeight,H=I.listItemHeight,V=I.optionRender,W="".concat(s,"-item"),U=(0,m.default)(function(){return F},[d,F],function(e,t){return t[0]&&e[1]!==t[1]}),G=c.useRef(null),q=c.useMemo(function(){return f&&(0,C.isValidCount)(_)&&(null==B?void 0:B.size)>=_},[f,_,null==B?void 0:B.size]),J=function(e){e.preventDefault()},K=function(e){var t;null==(t=G.current)||t.scrollTo("number"==typeof e?{index:e}:e)},X=c.useCallback(function(e){return"combobox"!==S&&B.has(e)},[S,(0,r.default)(B).toString(),B.size]),Q=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=U.length,o=0;o1&&void 0!==arguments[1]&&arguments[1];et(e);var r={source:t?"keyboard":"mouse"},o=U[e];o?P(o.value,e,r):P(null,-1,r)};(0,c.useEffect)(function(){er(!1!==R?Q(0):-1)},[U.length,k]);var eo=c.useCallback(function(e){return"combobox"===S?String(e).toLowerCase()===k.toLowerCase():B.has(e)},[S,k,(0,r.default)(B).toString(),B.size]);(0,c.useEffect)(function(){var e,t=setTimeout(function(){if(!f&&d&&1===B.size){var e=Array.from(B)[0],t=U.findIndex(function(t){var r=t.data;return k?String(r.value).startsWith(k):r.value===e});-1!==t&&(er(t),K(t))}});return d&&(null==(e=G.current)||e.scrollTo(void 0)),function(){return clearTimeout(t)}},[d,k]);var en=function(e){void 0!==e&&N(e,{selected:!B.has(e)}),f||j(!1)};if(c.useImperativeHandle(n,function(){return{onKeyDown:function(e){var t=e.which,r=e.ctrlKey;switch(t){case h.default.N:case h.default.P:case h.default.UP:case h.default.DOWN:var o=0;if(t===h.default.UP?o=-1:t===h.default.DOWN?o=1:/(mac\sos|macintosh)/i.test(navigator.appVersion)&&r&&(t===h.default.N?o=1:t===h.default.P&&(o=-1)),0!==o){var n=Q(ee+o,o);K(n),er(n,!0)}break;case h.default.TAB:case h.default.ENTER:var a,i=U[ee];!i||null!=i&&null!=(a=i.data)&&a.disabled||q?en(void 0):en(i.value),d&&e.preventDefault();break;case h.default.ESC:j(!1),d&&e.stopPropagation()}},onKeyUp:function(){},scrollTo:function(e){K(e)}}}),0===U.length)return c.createElement("div",{role:"listbox",id:"".concat(u,"_list"),className:"".concat(W,"-empty"),onMouseDown:J},O);var ea=Object.keys(A).map(function(e){return A[e]}),ei=function(e){return e.label};function el(e,t){return{role:e.group?"presentation":"option",id:"".concat(u,"_list_").concat(t)}}var es=function(e){var r=U[e];if(!r)return null;var o=r.data||{},n=o.value,a=r.group,i=(0,v.default)(o,!0),l=ei(r);return r?c.createElement("div",(0,t.default)({"aria-label":"string"!=typeof l||a?null:l},i,{key:e},el(r,e),{"aria-selected":eo(n)}),n):null},ec={role:"listbox",id:"".concat(u,"_list")};return c.createElement(c.Fragment,null,z&&c.createElement("div",(0,t.default)({},ec,{style:{height:0,width:0,overflow:"hidden"}}),es(ee-1),es(ee),es(ee+1)),c.createElement(y.default,{itemKey:"key",ref:G,data:U,height:D,itemHeight:H,fullHeight:!1,onMouseDown:J,onScroll:T,virtual:z,direction:L,innerProps:z?null:ec},function(e,r){var n=e.group,a=e.groupOption,l=e.data,s=e.label,u=e.value,d=l.key;if(n){var f,h=null!=(f=l.title)?f:E(s)?s.toString():void 0;return c.createElement("div",{className:(0,p.default)(W,"".concat(W,"-group"),l.className),title:h},void 0!==s?s:d)}var m=l.disabled,y=l.title,b=(l.children,l.style),$=l.className,C=(0,i.default)(l,x),S=(0,g.default)(C,ea),k=X(u),j=m||!k&&q,O="".concat(W,"-option"),T=(0,p.default)(W,O,$,(0,o.default)((0,o.default)((0,o.default)((0,o.default)({},"".concat(O,"-grouped"),a),"".concat(O,"-active"),ee===r&&!j),"".concat(O,"-disabled"),j),"".concat(O,"-selected"),k)),I=ei(e),_=!M||"function"==typeof M||k,F="number"==typeof I?I:I||u,P=E(F)?F.toString():void 0;return void 0!==y&&(P=y),c.createElement("div",(0,t.default)({},(0,v.default)(S),z?{}:el(e,r),{"aria-selected":eo(u),className:T,title:P,onMouseMove:function(){ee===r||j||er(r)},onClick:function(){j||en(u)},style:b}),c.createElement("div",{className:"".concat(O,"-content")},"function"==typeof V?V(e,{index:r}):F),c.isValidElement(M)||k,_&&c.createElement(w.default,{className:"".concat(W,"-option-state"),customizeIcon:M,customizeIconProps:{value:u,disabled:j,isSelected:k}},k?"✓":null))}))});let k=function(e,t){var r=c.useRef({values:new Map,options:new Map});return[c.useMemo(function(){var o=r.current,a=o.values,i=o.options,l=e.map(function(e){if(void 0===e.label){var t;return(0,n.default)((0,n.default)({},e),{},{label:null==(t=a.get(e.value))?void 0:t.label})}return e}),s=new Map,c=new Map;return l.forEach(function(e){s.set(e.value,e),c.set(e.value,t.get(e.value)||i.get(e.value))}),r.current.values=s,r.current.options=c,l},[e,t]),c.useCallback(function(e){return t.get(e)||r.current.options.get(e)},[t])]};var j=e.i(207427);function O(e,t){return(0,j.toArray)(e).join("").toUpperCase().includes(t)}var T=e.i(654310),I=0,_=(0,T.default)(),F=e.i(876556),P=["children","value"],R=["children"];function N(e){var t=c.useRef();return t.current=e,c.useCallback(function(){return t.current.apply(t,arguments)},[])}var M=["id","mode","prefixCls","backfill","fieldNames","inputValue","searchValue","onSearch","autoClearSearchValue","onSelect","onDeselect","dropdownMatchSelectWidth","filterOption","filterSort","optionFilterProp","optionLabelProp","options","optionRender","children","defaultActiveFirstOption","menuItemSelectedIcon","virtual","direction","listHeight","listItemHeight","labelRender","value","defaultValue","labelInValue","onChange","maxCount"],B=["inputValue"],A=c.forwardRef(function(e,d){var f,p,h,m,g,v=e.id,y=e.mode,w=e.prefixCls,$=e.backfill,x=e.fieldNames,E=e.inputValue,T=e.searchValue,A=e.onSearch,z=e.autoClearSearchValue,L=void 0===z||z,D=e.onSelect,H=e.onDeselect,V=e.dropdownMatchSelectWidth,W=void 0===V||V,U=e.filterOption,G=e.filterSort,q=e.optionFilterProp,J=e.optionLabelProp,K=e.options,X=e.optionRender,Q=e.children,Y=e.defaultActiveFirstOption,Z=e.menuItemSelectedIcon,ee=e.virtual,et=e.direction,er=e.listHeight,eo=void 0===er?200:er,en=e.listItemHeight,ea=void 0===en?20:en,ei=e.labelRender,el=e.value,es=e.defaultValue,ec=e.labelInValue,eu=e.onChange,ed=e.maxCount,ef=(0,i.default)(e,M),ep=(f=c.useState(),h=(p=(0,a.default)(f,2))[0],m=p[1],c.useEffect(function(){var e;m("rc_select_".concat((_?(e=I,I+=1):e="TEST_OR_SSR",e)))},[]),v||h),eh=(0,u.isMultiple)(y),em=!!(!K&&Q),eg=c.useMemo(function(){return(void 0!==U||"combobox"!==y)&&U},[U,y]),ev=c.useMemo(function(){return(0,C.fillFieldNames)(x,em)},[JSON.stringify(x),em]),ey=(0,s.default)("",{value:void 0!==T?T:E,postState:function(e){return e||""}}),eb=(0,a.default)(ey,2),ew=eb[0],e$=eb[1],eC=c.useMemo(function(){var e=K;K||(e=function e(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return(0,F.default)(t).map(function(t,o){if(!c.isValidElement(t)||!t.type)return null;var a,l,s,u,d,f=t.type.isSelectOptGroup,p=t.key,h=t.props,m=h.children,g=(0,i.default)(h,R);return r||!f?(a=t.key,s=(l=t.props).children,u=l.value,d=(0,i.default)(l,P),(0,n.default)({key:a,value:void 0!==u?u:a,children:s},d)):(0,n.default)((0,n.default)({key:"__RC_SELECT_GRP__".concat(null===p?o:p,"__"),label:p},g),{},{options:e(m)})}).filter(function(e){return e})}(Q));var t=new Map,r=new Map,o=function(e,t,r){r&&"string"==typeof r&&e.set(t[r],t)};return!function e(n){for(var a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=0;i0?e(t.options):t.options}):t})}(ez):ez},[ez,G,ew]),eD=c.useMemo(function(){return(0,C.flattenOptions)(eL,{fieldNames:ev,childrenAsData:em})},[eL,ev,em]),eH=function(e){var t=ek(e);if(eI(t),eu&&(t.length!==eP.length||t.some(function(e,t){var r;return(null==(r=eP[t])?void 0:r.value)!==(null==e?void 0:e.value)}))){var r=ec?t:t.map(function(e){return e.value}),o=t.map(function(e){return(0,C.injectPropsWithOption)(eR(e.value))});eu(eh?r:r[0],eh?o:o[0])}},eV=c.useState(null),eW=(0,a.default)(eV,2),eU=eW[0],eG=eW[1],eq=c.useState(0),eJ=(0,a.default)(eq,2),eK=eJ[0],eX=eJ[1],eQ=void 0!==Y?Y:"combobox"!==y,eY=c.useCallback(function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=r.source;eX(t),$&&"combobox"===y&&null!==e&&"keyboard"===(void 0===o?"keyboard":o)&&eG(String(e))},[$,y]),eZ=function(e,t,r){var o=function(){var t,r=eR(e);return[ec?{label:null==r?void 0:r[ev.label],value:e,key:null!=(t=null==r?void 0:r.key)?t:e}:e,(0,C.injectPropsWithOption)(r)]};if(t&&D){var n=o(),i=(0,a.default)(n,2);D(i[0],i[1])}else if(!t&&H&&"clear"!==r){var l=o(),s=(0,a.default)(l,2);H(s[0],s[1])}},e0=N(function(e,t){var o=!eh||t.selected;eH(o?eh?[].concat((0,r.default)(eP),[e]):[e]:eP.filter(function(t){return t.value!==e})),eZ(e,o),"combobox"===y?eG(""):(!u.isMultiple||L)&&(e$(""),eG(""))}),e1=c.useMemo(function(){var e=!1!==ee&&!1!==W;return(0,n.default)((0,n.default)({},eC),{},{flattenOptions:eD,onActiveValue:eY,defaultActiveFirstOption:eQ,onSelect:e0,menuItemSelectedIcon:Z,rawValues:eM,fieldNames:ev,virtual:e,direction:et,listHeight:eo,listItemHeight:ea,childrenAsData:em,maxCount:ed,optionRender:X})},[ed,eC,eD,eY,eQ,e0,Z,eM,ev,ee,W,et,eo,ea,em,X]);return c.createElement(b.default.Provider,{value:e1},c.createElement(u.default,(0,t.default)({},ef,{id:ep,prefixCls:void 0===w?"rc-select":w,ref:d,omitDomProps:B,mode:y,displayValues:eN,onDisplayValuesChange:function(e,t){eH(e);var r=t.type,o=t.values;("remove"===r||"clear"===r)&&o.forEach(function(e){eZ(e.value,!1,r)})},direction:et,searchValue:ew,onSearch:function(e,t){if(e$(e),eG(null),"submit"===t.source){var o=(e||"").trim();o&&(eH(Array.from(new Set([].concat((0,r.default)(eM),[o])))),eZ(o,!0),e$(""));return}"blur"!==t.source&&("combobox"===y&&eH(e),null==A||A(e))},autoClearSearchValue:L,onSearchSplit:function(e){var t=e;"tags"!==y&&(t=e.map(function(e){var t=eE.get(e);return null==t?void 0:t.value}).filter(function(e){return void 0!==e}));var o=Array.from(new Set([].concat((0,r.default)(eM),(0,r.default)(t))));eH(o),o.forEach(function(e){eZ(e,!0)})},dropdownMatchSelectWidth:W,OptionList:S,emptyOptions:!eD.length,activeValue:eU,activeDescendantId:"".concat(ep,"_list_").concat(eK)})))});A.Option=f.default,A.OptGroup=d.default,e.s(["default",0,A],123829),e.s(["OptGroup",()=>d.default],955492),e.s(["Option",()=>f.default],869301)},805484,e=>{"use strict";var t=e.i(271645),r=e.i(914949),o=e.i(609587),n=e.i(242064);function a(e){return r=>t.createElement(o.default,{theme:{token:{motion:!1,zIndexPopupBase:0}}},t.createElement(e,Object.assign({},r)))}e.s(["default",0,(e,o,i,l,s)=>a(a=>{let{prefixCls:c,style:u}=a,d=t.useRef(null),[f,p]=t.useState(0),[h,m]=t.useState(0),[g,v]=(0,r.default)(!1,{value:a.open}),{getPrefixCls:y}=t.useContext(n.ConfigContext),b=y(l||"select",c);t.useEffect(()=>{if(v(!0),"u">typeof ResizeObserver){let e=new ResizeObserver(e=>{let t=e[0].target;p(t.offsetHeight+8),m(t.offsetWidth)}),t=setInterval(()=>{var r;let o=s?`.${s(b)}`:`.${b}-dropdown`,n=null==(r=d.current)?void 0:r.querySelector(o);n&&(clearInterval(t),e.observe(n))},10);return()=>{clearInterval(t),e.disconnect()}}},[b]);let w=Object.assign(Object.assign({},a),{style:Object.assign(Object.assign({},u),{margin:0}),open:g,visible:g,getPopupContainer:()=>d.current});return i&&(w=i(w)),o&&Object.assign(w,{[o]:{overflow:{adjustX:!1,adjustY:!1}}}),t.createElement("div",{ref:d,style:{paddingBottom:f,position:"relative",minWidth:h}},t.createElement(e,Object.assign({},w)))}),"withPureRenderTheme",0,a])},721132,616303,e=>{"use strict";var t=e.i(271645),r=e.i(242064);e.i(247167);var o=e.i(343794),n=e.i(408850),a=e.i(135551),i=e.i(104458),l=e.i(246422),s=e.i(838378);let c=(0,l.genStyleHooks)("Empty",e=>{let{componentCls:t,controlHeightLG:r,calc:o}=e;return(e=>{let{componentCls:t,margin:r,marginXS:o,marginXL:n,fontSize:a,lineHeight:i}=e;return{[t]:{marginInline:o,fontSize:a,lineHeight:i,textAlign:"center",[`${t}-image`]:{height:e.emptyImgHeight,marginBottom:o,opacity:e.opacityImage,img:{height:"100%"},svg:{maxWidth:"100%",height:"100%",margin:"auto"}},[`${t}-description`]:{color:e.colorTextDescription},[`${t}-footer`]:{marginTop:r},"&-normal":{marginBlock:n,color:e.colorTextDescription,[`${t}-description`]:{color:e.colorTextDescription},[`${t}-image`]:{height:e.emptyImgHeightMD}},"&-small":{marginBlock:o,color:e.colorTextDescription,[`${t}-image`]:{height:e.emptyImgHeightSM}}}}})((0,s.mergeToken)(e,{emptyImgCls:`${t}-img`,emptyImgHeight:o(r).mul(2.5).equal(),emptyImgHeightMD:r,emptyImgHeightSM:o(r).mul(.875).equal()}))});var u=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let d=t.createElement(()=>{let[,e]=(0,i.useToken)(),[r]=(0,n.useLocale)("Empty"),o=new a.FastColor(e.colorBgBase).toHsl().l<.5?{opacity:.65}:{};return t.createElement("svg",{style:o,width:"184",height:"152",viewBox:"0 0 184 152",xmlns:"http://www.w3.org/2000/svg"},t.createElement("title",null,(null==r?void 0:r.description)||"Empty"),t.createElement("g",{fill:"none",fillRule:"evenodd"},t.createElement("g",{transform:"translate(24 31.67)"},t.createElement("ellipse",{fillOpacity:".8",fill:"#F5F5F7",cx:"67.797",cy:"106.89",rx:"67.797",ry:"12.668"}),t.createElement("path",{d:"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z",fill:"#AEB8C2"}),t.createElement("path",{d:"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z",fill:"url(#linearGradient-1)",transform:"translate(13.56)"}),t.createElement("path",{d:"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z",fill:"#F5F5F7"}),t.createElement("path",{d:"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z",fill:"#DCE0E6"})),t.createElement("path",{d:"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z",fill:"#DCE0E6"}),t.createElement("g",{transform:"translate(149.65 15.383)",fill:"#FFF"},t.createElement("ellipse",{cx:"20.654",cy:"3.167",rx:"2.849",ry:"2.815"}),t.createElement("path",{d:"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"}))))},null),f=t.createElement(()=>{let[,e]=(0,i.useToken)(),[r]=(0,n.useLocale)("Empty"),{colorFill:o,colorFillTertiary:l,colorFillQuaternary:s,colorBgContainer:c}=e,{borderColor:u,shadowColor:d,contentColor:f}=(0,t.useMemo)(()=>({borderColor:new a.FastColor(o).onBackground(c).toHexString(),shadowColor:new a.FastColor(l).onBackground(c).toHexString(),contentColor:new a.FastColor(s).onBackground(c).toHexString()}),[o,l,s,c]);return t.createElement("svg",{width:"64",height:"41",viewBox:"0 0 64 41",xmlns:"http://www.w3.org/2000/svg"},t.createElement("title",null,(null==r?void 0:r.description)||"Empty"),t.createElement("g",{transform:"translate(0 1)",fill:"none",fillRule:"evenodd"},t.createElement("ellipse",{fill:d,cx:"32",cy:"33",rx:"32",ry:"7"}),t.createElement("g",{fillRule:"nonzero",stroke:u},t.createElement("path",{d:"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"}),t.createElement("path",{d:"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",fill:f}))))},null),p=e=>{var a;let{className:i,rootClassName:l,prefixCls:s,image:p,description:h,children:m,imageStyle:g,style:v,classNames:y,styles:b}=e,w=u(e,["className","rootClassName","prefixCls","image","description","children","imageStyle","style","classNames","styles"]),{getPrefixCls:$,direction:C,className:x,style:E,classNames:S,styles:k,image:j}=(0,r.useComponentConfig)("empty"),O=$("empty",s),[T,I,_]=c(O),[F]=(0,n.useLocale)("Empty"),P=void 0!==h?h:null==F?void 0:F.description,R="string"==typeof P?P:"empty",N=null!=(a=null!=p?p:j)?a:d,M=null;return M="string"==typeof N?t.createElement("img",{draggable:!1,alt:R,src:N}):N,T(t.createElement("div",Object.assign({className:(0,o.default)(I,_,O,x,{[`${O}-normal`]:N===f,[`${O}-rtl`]:"rtl"===C},i,l,S.root,null==y?void 0:y.root),style:Object.assign(Object.assign(Object.assign(Object.assign({},k.root),E),null==b?void 0:b.root),v)},w),t.createElement("div",{className:(0,o.default)(`${O}-image`,S.image,null==y?void 0:y.image),style:Object.assign(Object.assign(Object.assign({},g),k.image),null==b?void 0:b.image)},M),P&&t.createElement("div",{className:(0,o.default)(`${O}-description`,S.description,null==y?void 0:y.description),style:Object.assign(Object.assign({},k.description),null==b?void 0:b.description)},P),m&&t.createElement("div",{className:(0,o.default)(`${O}-footer`,S.footer,null==y?void 0:y.footer),style:Object.assign(Object.assign({},k.footer),null==b?void 0:b.footer)},m)))};p.PRESENTED_IMAGE_DEFAULT=d,p.PRESENTED_IMAGE_SIMPLE=f,e.s(["default",0,p],616303),e.s(["default",0,e=>{let{componentName:o}=e,{getPrefixCls:n}=(0,t.useContext)(r.ConfigContext),a=n("empty");switch(o){case"Table":case"List":return t.default.createElement(p,{image:p.PRESENTED_IMAGE_SIMPLE});case"Select":case"TreeSelect":case"Cascader":case"Transfer":case"Mentions":return t.default.createElement(p,{image:p.PRESENTED_IMAGE_SIMPLE,className:`${a}-small`});case"Table.filter":return null;default:return t.default.createElement(p,null)}}],721132)},85566,e=>{"use strict";e.s(["default",0,function(e,t){let r;return e||{bottomLeft:Object.assign(Object.assign({},r={overflow:{adjustX:!0,adjustY:!0,shiftY:!0},htmlRegion:"scroll"===t?"scroll":"visible",dynamicInset:!0}),{points:["tl","bl"],offset:[0,4]}),bottomRight:Object.assign(Object.assign({},r),{points:["tr","br"],offset:[0,4]}),topLeft:Object.assign(Object.assign({},r),{points:["bl","tl"],offset:[0,-4]}),topRight:Object.assign(Object.assign({},r),{points:["br","tr"],offset:[0,-4]})}}])},777489,e=>{"use strict";e.i(296059);var t=e.i(694758),r=e.i(402366);let o=new t.Keyframes("antMoveDownIn",{"0%":{transform:"translate3d(0, 100%, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),n=new t.Keyframes("antMoveDownOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(0, 100%, 0)",transformOrigin:"0 0",opacity:0}}),a=new t.Keyframes("antMoveLeftIn",{"0%":{transform:"translate3d(-100%, 0, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),i=new t.Keyframes("antMoveLeftOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(-100%, 0, 0)",transformOrigin:"0 0",opacity:0}}),l=new t.Keyframes("antMoveRightIn",{"0%":{transform:"translate3d(100%, 0, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),s=new t.Keyframes("antMoveRightOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(100%, 0, 0)",transformOrigin:"0 0",opacity:0}}),c={"move-up":{inKeyframes:new t.Keyframes("antMoveUpIn",{"0%":{transform:"translate3d(0, -100%, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),outKeyframes:new t.Keyframes("antMoveUpOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(0, -100%, 0)",transformOrigin:"0 0",opacity:0}})},"move-down":{inKeyframes:o,outKeyframes:n},"move-left":{inKeyframes:a,outKeyframes:i},"move-right":{inKeyframes:l,outKeyframes:s}};e.s(["initMoveMotion",0,(e,t)=>{let{antCls:o}=e,n=`${o}-${t}`,{inKeyframes:a,outKeyframes:i}=c[t];return[(0,r.initMotion)(n,a,i,e.motionDurationMid),{[` + ${n}-enter, + ${n}-appear + `]:{opacity:0,animationTimingFunction:e.motionEaseOutCirc},[`${n}-leave`]:{animationTimingFunction:e.motionEaseInOutCirc}}]}])},664142,e=>{"use strict";e.i(296059);var t=e.i(694758),r=e.i(402366);let o=new t.Keyframes("antSlideUpIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1}}),n=new t.Keyframes("antSlideUpOut",{"0%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0}}),a=new t.Keyframes("antSlideDownIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1}}),i=new t.Keyframes("antSlideDownOut",{"0%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0}}),l={"slide-up":{inKeyframes:o,outKeyframes:n},"slide-down":{inKeyframes:a,outKeyframes:i},"slide-left":{inKeyframes:new t.Keyframes("antSlideLeftIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1}}),outKeyframes:new t.Keyframes("antSlideLeftOut",{"0%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0}})},"slide-right":{inKeyframes:new t.Keyframes("antSlideRightIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1}}),outKeyframes:new t.Keyframes("antSlideRightOut",{"0%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0}})}};e.s(["initSlideMotion",0,(e,t)=>{let{antCls:o}=e,n=`${o}-${t}`,{inKeyframes:a,outKeyframes:i}=l[t];return[(0,r.initMotion)(n,a,i,e.motionDurationMid),{[` + ${n}-enter, + ${n}-appear + `]:{transform:"scale(0)",transformOrigin:"0% 0%",opacity:0,animationTimingFunction:e.motionEaseOutQuint,"&-prepare":{transform:"scale(1)"}},[`${n}-leave`]:{animationTimingFunction:e.motionEaseInQuint}}]},"slideDownIn",0,a,"slideDownOut",0,i,"slideUpIn",0,o,"slideUpOut",0,n])},950302,e=>{"use strict";var t=e.i(183293),r=e.i(372409),o=e.i(246422),n=e.i(838378),a=e.i(777489),i=e.i(664142);let l=e=>{let{optionHeight:t,optionFontSize:r,optionLineHeight:o,optionPadding:n}=e;return{position:"relative",display:"block",minHeight:t,padding:n,color:e.colorText,fontWeight:"normal",fontSize:r,lineHeight:o,boxSizing:"border-box"}};e.i(296059);var s=e.i(915654);function c(e,r){let{componentCls:o}=e,n=r?`${o}-${r}`:"",a={[`${o}-multiple${n}`]:{fontSize:e.fontSize,[`${o}-selector`]:{[`${o}-show-search&`]:{cursor:"text"}},[` + &${o}-show-arrow ${o}-selector, + &${o}-allow-clear ${o}-selector + `]:{paddingInlineEnd:e.calc(e.fontSizeIcon).add(e.controlPaddingHorizontal).equal()}}};return[((e,r)=>{let{componentCls:o,INTERNAL_FIXED_ITEM_MARGIN:n}=e,a=`${o}-selection-overflow`,i=e.multipleSelectItemHeight,l=(e=>{let{multipleSelectItemHeight:t,selectHeight:r,lineWidth:o}=e;return e.calc(r).sub(t).div(2).sub(o).equal()})(e),c=r?`${o}-${r}`:"",u=(e=>{let{multipleSelectItemHeight:t,paddingXXS:r,lineWidth:o,INTERNAL_FIXED_ITEM_MARGIN:n}=e,a=e.max(e.calc(r).sub(o).equal(),0),i=e.max(e.calc(a).sub(n).equal(),0);return{basePadding:a,containerPadding:i,itemHeight:(0,s.unit)(t),itemLineHeight:(0,s.unit)(e.calc(t).sub(e.calc(e.lineWidth).mul(2)).equal())}})(e);return{[`${o}-multiple${c}`]:Object.assign(Object.assign({},(e=>{let{componentCls:r,iconCls:o,borderRadiusSM:n,motionDurationSlow:a,paddingXS:i,multipleItemColorDisabled:l,multipleItemBorderColorDisabled:s,colorIcon:c,colorIconHover:u,INTERNAL_FIXED_ITEM_MARGIN:d}=e;return{[`${r}-selection-overflow`]:{position:"relative",display:"flex",flex:"auto",flexWrap:"wrap",maxWidth:"100%","&-item":{flex:"none",alignSelf:"center",maxWidth:"calc(100% - 4px)",display:"inline-flex"},[`${r}-selection-item`]:{display:"flex",alignSelf:"center",flex:"none",boxSizing:"border-box",maxWidth:"100%",marginBlock:d,borderRadius:n,cursor:"default",transition:`font-size ${a}, line-height ${a}, height ${a}`,marginInlineEnd:e.calc(d).mul(2).equal(),paddingInlineStart:i,paddingInlineEnd:e.calc(i).div(2).equal(),[`${r}-disabled&`]:{color:l,borderColor:s,cursor:"not-allowed"},"&-content":{display:"inline-block",marginInlineEnd:e.calc(i).div(2).equal(),overflow:"hidden",whiteSpace:"pre",textOverflow:"ellipsis"},"&-remove":Object.assign(Object.assign({},(0,t.resetIcon)()),{display:"inline-flex",alignItems:"center",color:c,fontWeight:"bold",fontSize:10,lineHeight:"inherit",cursor:"pointer",[`> ${o}`]:{verticalAlign:"-0.2em"},"&:hover":{color:u}})}}}})(e)),{[`${o}-selector`]:{display:"flex",alignItems:"center",width:"100%",height:"100%",paddingInline:u.basePadding,paddingBlock:u.containerPadding,borderRadius:e.borderRadius,[`${o}-disabled&`]:{background:e.multipleSelectorBgDisabled,cursor:"not-allowed"},"&:after":{display:"inline-block",width:0,margin:`${(0,s.unit)(n)} 0`,lineHeight:(0,s.unit)(i),visibility:"hidden",content:'"\\a0"'}},[`${o}-selection-item`]:{height:u.itemHeight,lineHeight:(0,s.unit)(u.itemLineHeight)},[`${o}-selection-wrap`]:{alignSelf:"flex-start","&:after":{lineHeight:(0,s.unit)(i),marginBlock:n}},[`${o}-prefix`]:{marginInlineStart:e.calc(e.inputPaddingHorizontalBase).sub(u.basePadding).equal()},[`${a}-item + ${a}-item, + ${o}-prefix + ${o}-selection-wrap + `]:{[`${o}-selection-search`]:{marginInlineStart:0},[`${o}-selection-placeholder`]:{insetInlineStart:0}},[`${a}-item-suffix`]:{minHeight:u.itemHeight,marginBlock:n},[`${o}-selection-search`]:{display:"inline-flex",position:"relative",maxWidth:"100%",marginInlineStart:e.calc(e.inputPaddingHorizontalBase).sub(l).equal(),[` + &-input, + &-mirror + `]:{height:i,fontFamily:e.fontFamily,lineHeight:(0,s.unit)(i),transition:`all ${e.motionDurationSlow}`},"&-input":{width:"100%",minWidth:4.1},"&-mirror":{position:"absolute",top:0,insetInlineStart:0,insetInlineEnd:"auto",zIndex:999,whiteSpace:"pre",visibility:"hidden"}},[`${o}-selection-placeholder`]:{position:"absolute",top:"50%",insetInlineStart:e.calc(e.inputPaddingHorizontalBase).sub(u.basePadding).equal(),insetInlineEnd:e.inputPaddingHorizontalBase,transform:"translateY(-50%)",transition:`all ${e.motionDurationSlow}`}})}})(e,r),a]}function u(e,r){let{componentCls:o,inputPaddingHorizontalBase:n,borderRadius:a}=e,i=e.calc(e.controlHeight).sub(e.calc(e.lineWidth).mul(2)).equal(),l=r?`${o}-${r}`:"";return{[`${o}-single${l}`]:{fontSize:e.fontSize,height:e.controlHeight,[`${o}-selector`]:Object.assign(Object.assign({},(0,t.resetComponent)(e,!0)),{display:"flex",borderRadius:a,flex:"1 1 auto",[`${o}-selection-wrap:after`]:{lineHeight:(0,s.unit)(i)},[`${o}-selection-search`]:{position:"absolute",inset:0,width:"100%","&-input":{width:"100%",WebkitAppearance:"textfield"}},[` + ${o}-selection-item, + ${o}-selection-placeholder + `]:{display:"block",padding:0,lineHeight:(0,s.unit)(i),transition:`all ${e.motionDurationSlow}, visibility 0s`,alignSelf:"center"},[`${o}-selection-placeholder`]:{transition:"none",pointerEvents:"none"},[`&:after,${o}-selection-item:empty:after,${o}-selection-placeholder:empty:after`]:{display:"inline-block",width:0,visibility:"hidden",content:'"\\a0"'}}),[` + &${o}-show-arrow ${o}-selection-item, + &${o}-show-arrow ${o}-selection-search, + &${o}-show-arrow ${o}-selection-placeholder + `]:{paddingInlineEnd:e.showArrowPaddingInlineEnd},[`&${o}-open ${o}-selection-item`]:{color:e.colorTextPlaceholder},[`&:not(${o}-customize-input)`]:{[`${o}-selector`]:{width:"100%",height:"100%",alignItems:"center",padding:`0 ${(0,s.unit)(n)}`,[`${o}-selection-search-input`]:{height:i,fontSize:e.fontSize},"&:after":{lineHeight:(0,s.unit)(i)}}},[`&${o}-customize-input`]:{[`${o}-selector`]:{"&:after":{display:"none"},[`${o}-selection-search`]:{position:"static",width:"100%"},[`${o}-selection-placeholder`]:{position:"absolute",insetInlineStart:0,insetInlineEnd:0,padding:`0 ${(0,s.unit)(n)}`,"&:after":{display:"none"}}}}}}}let d=(e,t)=>{let{componentCls:r,antCls:o,controlOutlineWidth:n}=e;return{[`&:not(${r}-customize-input) ${r}-selector`]:{border:`${(0,s.unit)(e.lineWidth)} ${e.lineType} ${t.borderColor}`,background:e.selectorBg},[`&:not(${r}-disabled):not(${r}-customize-input):not(${o}-pagination-size-changer)`]:{[`&:hover ${r}-selector`]:{borderColor:t.hoverBorderHover},[`${r}-focused& ${r}-selector`]:{borderColor:t.activeBorderColor,boxShadow:`0 0 0 ${(0,s.unit)(n)} ${t.activeOutlineColor}`,outline:0},[`${r}-prefix`]:{color:t.color}}}},f=(e,t)=>({[`&${e.componentCls}-status-${t.status}`]:Object.assign({},d(e,t))}),p=(e,t)=>{let{componentCls:r,antCls:o}=e;return{[`&:not(${r}-customize-input) ${r}-selector`]:{background:t.bg,border:`${(0,s.unit)(e.lineWidth)} ${e.lineType} transparent`,color:t.color},[`&:not(${r}-disabled):not(${r}-customize-input):not(${o}-pagination-size-changer)`]:{[`&:hover ${r}-selector`]:{background:t.hoverBg},[`${r}-focused& ${r}-selector`]:{background:e.selectorBg,borderColor:t.activeBorderColor,outline:0}}}},h=(e,t)=>({[`&${e.componentCls}-status-${t.status}`]:Object.assign({},p(e,t))}),m=(e,t)=>{let{componentCls:r,antCls:o}=e;return{[`&:not(${r}-customize-input) ${r}-selector`]:{borderWidth:`${(0,s.unit)(e.lineWidth)} 0`,borderStyle:`${e.lineType} none`,borderColor:`transparent transparent ${t.borderColor} transparent`,background:e.selectorBg,borderRadius:0},[`&:not(${r}-disabled):not(${r}-customize-input):not(${o}-pagination-size-changer)`]:{[`&:hover ${r}-selector`]:{borderColor:`transparent transparent ${t.hoverBorderHover} transparent`},[`${r}-focused& ${r}-selector`]:{borderColor:`transparent transparent ${t.activeBorderColor} transparent`,outline:0},[`${r}-prefix`]:{color:t.color}}}},g=(e,t)=>({[`&${e.componentCls}-status-${t.status}`]:Object.assign({},m(e,t))}),v=(0,o.genStyleHooks)("Select",(e,{rootPrefixCls:o})=>{let v=(0,n.mergeToken)(e,{rootPrefixCls:o,inputPaddingHorizontalBase:e.calc(e.paddingSM).sub(1).equal(),multipleSelectItemHeight:e.multipleItemHeight,selectHeight:e.controlHeight});return[(e=>{let{componentCls:o}=e;return[{[o]:{[`&${o}-in-form-item`]:{width:"100%"}}},(e=>{let{antCls:r,componentCls:o,inputPaddingHorizontalBase:n,iconCls:a}=e,i={[`${o}-clear`]:{opacity:1,background:e.colorBgBase,borderRadius:"50%"}};return{[o]:Object.assign(Object.assign({},(0,t.resetComponent)(e)),{position:"relative",display:"inline-flex",cursor:"pointer",[`&:not(${o}-customize-input) ${o}-selector`]:Object.assign(Object.assign({},(e=>{let{componentCls:t}=e;return{position:"relative",transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,input:{cursor:"pointer"},[`${t}-show-search&`]:{cursor:"text",input:{cursor:"auto",color:"inherit",height:"100%"}},[`${t}-disabled&`]:{cursor:"not-allowed",input:{cursor:"not-allowed"}}}})(e)),(e=>{let{componentCls:t}=e;return{[`${t}-selection-search-input`]:{margin:0,padding:0,background:"transparent",border:"none",outline:"none",appearance:"none",fontFamily:"inherit","&::-webkit-search-cancel-button":{display:"none",appearance:"none"}}}})(e)),[`${o}-selection-item`]:Object.assign(Object.assign({flex:1,fontWeight:"normal",position:"relative",userSelect:"none"},t.textEllipsis),{[`> ${r}-typography`]:{display:"inline"}}),[`${o}-selection-placeholder`]:Object.assign(Object.assign({},t.textEllipsis),{flex:1,color:e.colorTextPlaceholder,pointerEvents:"none"}),[`${o}-arrow`]:Object.assign(Object.assign({},(0,t.resetIcon)()),{position:"absolute",top:"50%",insetInlineStart:"auto",insetInlineEnd:n,height:e.fontSizeIcon,marginTop:e.calc(e.fontSizeIcon).mul(-1).div(2).equal(),color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,lineHeight:1,textAlign:"center",pointerEvents:"none",display:"flex",alignItems:"center",transition:`opacity ${e.motionDurationSlow} ease`,[a]:{verticalAlign:"top",transition:`transform ${e.motionDurationSlow}`,"> svg":{verticalAlign:"top"},[`&:not(${o}-suffix)`]:{pointerEvents:"auto"}},[`${o}-disabled &`]:{cursor:"not-allowed"},"> *:not(:last-child)":{marginInlineEnd:8}}),[`${o}-selection-wrap`]:{display:"flex",width:"100%",position:"relative",minWidth:0,"&:after":{content:'"\\a0"',width:0,overflow:"hidden"}},[`${o}-prefix`]:{flex:"none",marginInlineEnd:e.selectAffixPadding},[`${o}-clear`]:{position:"absolute",top:"50%",insetInlineStart:"auto",insetInlineEnd:n,zIndex:1,display:"inline-block",width:e.fontSizeIcon,height:e.fontSizeIcon,marginTop:e.calc(e.fontSizeIcon).mul(-1).div(2).equal(),color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,fontStyle:"normal",lineHeight:1,textAlign:"center",textTransform:"none",cursor:"pointer",opacity:0,transition:`color ${e.motionDurationMid} ease, opacity ${e.motionDurationSlow} ease`,textRendering:"auto",transform:"translateZ(0)","&:before":{display:"block"},"&:hover":{color:e.colorIcon}},"@media(hover:none)":i,"&:hover":i}),[`${o}-status`]:{"&-error, &-warning, &-success, &-validating":{[`&${o}-has-feedback`]:{[`${o}-clear`]:{insetInlineEnd:e.calc(n).add(e.fontSize).add(e.paddingXS).equal()}}}}}})(e),function(e){let{componentCls:t}=e,r=e.calc(e.controlPaddingHorizontalSM).sub(e.lineWidth).equal();return[u(e),u((0,n.mergeToken)(e,{controlHeight:e.controlHeightSM,borderRadius:e.borderRadiusSM}),"sm"),{[`${t}-single${t}-sm`]:{[`&:not(${t}-customize-input)`]:{[`${t}-selector`]:{padding:`0 ${(0,s.unit)(r)}`},[`&${t}-show-arrow ${t}-selection-search`]:{insetInlineEnd:e.calc(r).add(e.calc(e.fontSize).mul(1.5)).equal()},[` + &${t}-show-arrow ${t}-selection-item, + &${t}-show-arrow ${t}-selection-placeholder + `]:{paddingInlineEnd:e.calc(e.fontSize).mul(1.5).equal()}}}},u((0,n.mergeToken)(e,{controlHeight:e.singleItemHeightLG,fontSize:e.fontSizeLG,borderRadius:e.borderRadiusLG}),"lg")]}(e),(e=>{let{componentCls:t}=e,r=(0,n.mergeToken)(e,{selectHeight:e.controlHeightSM,multipleSelectItemHeight:e.multipleItemHeightSM,borderRadius:e.borderRadiusSM,borderRadiusSM:e.borderRadiusXS}),o=(0,n.mergeToken)(e,{fontSize:e.fontSizeLG,selectHeight:e.controlHeightLG,multipleSelectItemHeight:e.multipleItemHeightLG,borderRadius:e.borderRadiusLG,borderRadiusSM:e.borderRadius});return[c(e),c(r,"sm"),{[`${t}-multiple${t}-sm`]:{[`${t}-selection-placeholder`]:{insetInline:e.calc(e.controlPaddingHorizontalSM).sub(e.lineWidth).equal()},[`${t}-selection-search`]:{marginInlineStart:2}}},c(o,"lg")]})(e),(e=>{let{antCls:r,componentCls:o}=e,n=`${o}-item`,s=`&${r}-slide-up-enter${r}-slide-up-enter-active`,c=`&${r}-slide-up-appear${r}-slide-up-appear-active`,u=`&${r}-slide-up-leave${r}-slide-up-leave-active`,d=`${o}-dropdown-placement-`,f=`${n}-option-selected`;return[{[`${o}-dropdown`]:Object.assign(Object.assign({},(0,t.resetComponent)(e)),{position:"absolute",top:-9999,zIndex:e.zIndexPopup,boxSizing:"border-box",padding:e.paddingXXS,overflow:"hidden",fontSize:e.fontSize,fontVariant:"initial",backgroundColor:e.colorBgElevated,borderRadius:e.borderRadiusLG,outline:"none",boxShadow:e.boxShadowSecondary,[` + ${s}${d}bottomLeft, + ${c}${d}bottomLeft + `]:{animationName:i.slideUpIn},[` + ${s}${d}topLeft, + ${c}${d}topLeft, + ${s}${d}topRight, + ${c}${d}topRight + `]:{animationName:i.slideDownIn},[`${u}${d}bottomLeft`]:{animationName:i.slideUpOut},[` + ${u}${d}topLeft, + ${u}${d}topRight + `]:{animationName:i.slideDownOut},"&-hidden":{display:"none"},[n]:Object.assign(Object.assign({},l(e)),{cursor:"pointer",transition:`background ${e.motionDurationSlow} ease`,borderRadius:e.borderRadiusSM,"&-group":{color:e.colorTextDescription,fontSize:e.fontSizeSM,cursor:"default"},"&-option":{display:"flex","&-content":Object.assign({flex:"auto"},t.textEllipsis),"&-state":{flex:"none",display:"flex",alignItems:"center"},[`&-active:not(${n}-option-disabled)`]:{backgroundColor:e.optionActiveBg},[`&-selected:not(${n}-option-disabled)`]:{color:e.optionSelectedColor,fontWeight:e.optionSelectedFontWeight,backgroundColor:e.optionSelectedBg,[`${n}-option-state`]:{color:e.colorPrimary}},"&-disabled":{[`&${n}-option-selected`]:{backgroundColor:e.colorBgContainerDisabled},color:e.colorTextDisabled,cursor:"not-allowed"},"&-grouped":{paddingInlineStart:e.calc(e.controlPaddingHorizontal).mul(2).equal()}},"&-empty":Object.assign(Object.assign({},l(e)),{color:e.colorTextDisabled})}),[`${f}:has(+ ${f})`]:{borderEndStartRadius:0,borderEndEndRadius:0,[`& + ${f}`]:{borderStartStartRadius:0,borderStartEndRadius:0}},"&-rtl":{direction:"rtl"}})},(0,i.initSlideMotion)(e,"slide-up"),(0,i.initSlideMotion)(e,"slide-down"),(0,a.initMoveMotion)(e,"move-up"),(0,a.initMoveMotion)(e,"move-down")]})(e),{[`${o}-rtl`]:{direction:"rtl"}},(0,r.genCompactItemStyle)(e,{borderElCls:`${o}-selector`,focusElCls:`${o}-focused`})]})(v),{[v.componentCls]:Object.assign(Object.assign(Object.assign(Object.assign({},{"&-outlined":Object.assign(Object.assign(Object.assign(Object.assign({},d(v,{borderColor:v.colorBorder,hoverBorderHover:v.hoverBorderColor,activeBorderColor:v.activeBorderColor,activeOutlineColor:v.activeOutlineColor,color:v.colorText})),f(v,{status:"error",borderColor:v.colorError,hoverBorderHover:v.colorErrorHover,activeBorderColor:v.colorError,activeOutlineColor:v.colorErrorOutline,color:v.colorError})),f(v,{status:"warning",borderColor:v.colorWarning,hoverBorderHover:v.colorWarningHover,activeBorderColor:v.colorWarning,activeOutlineColor:v.colorWarningOutline,color:v.colorWarning})),{[`&${v.componentCls}-disabled`]:{[`&:not(${v.componentCls}-customize-input) ${v.componentCls}-selector`]:{background:v.colorBgContainerDisabled,color:v.colorTextDisabled}},[`&${v.componentCls}-multiple ${v.componentCls}-selection-item`]:{background:v.multipleItemBg,border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} ${v.multipleItemBorderColor}`}})}),{"&-filled":Object.assign(Object.assign(Object.assign(Object.assign({},p(v,{bg:v.colorFillTertiary,hoverBg:v.colorFillSecondary,activeBorderColor:v.activeBorderColor,color:v.colorText})),h(v,{status:"error",bg:v.colorErrorBg,hoverBg:v.colorErrorBgHover,activeBorderColor:v.colorError,color:v.colorError})),h(v,{status:"warning",bg:v.colorWarningBg,hoverBg:v.colorWarningBgHover,activeBorderColor:v.colorWarning,color:v.colorWarning})),{[`&${v.componentCls}-disabled`]:{[`&:not(${v.componentCls}-customize-input) ${v.componentCls}-selector`]:{borderColor:v.colorBorder,background:v.colorBgContainerDisabled,color:v.colorTextDisabled}},[`&${v.componentCls}-multiple ${v.componentCls}-selection-item`]:{background:v.colorBgContainer,border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} ${v.colorSplit}`}})}),{"&-borderless":{[`${v.componentCls}-selector`]:{background:"transparent",border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} transparent`},[`&${v.componentCls}-disabled`]:{[`&:not(${v.componentCls}-customize-input) ${v.componentCls}-selector`]:{color:v.colorTextDisabled}},[`&${v.componentCls}-multiple ${v.componentCls}-selection-item`]:{background:v.multipleItemBg,border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} ${v.multipleItemBorderColor}`},[`&${v.componentCls}-status-error`]:{[`${v.componentCls}-prefix, ${v.componentCls}-selection-item`]:{color:v.colorError}},[`&${v.componentCls}-status-warning`]:{[`${v.componentCls}-prefix, ${v.componentCls}-selection-item`]:{color:v.colorWarning}}}}),{"&-underlined":Object.assign(Object.assign(Object.assign(Object.assign({},m(v,{borderColor:v.colorBorder,hoverBorderHover:v.hoverBorderColor,activeBorderColor:v.activeBorderColor,activeOutlineColor:v.activeOutlineColor,color:v.colorText})),g(v,{status:"error",borderColor:v.colorError,hoverBorderHover:v.colorErrorHover,activeBorderColor:v.colorError,activeOutlineColor:v.colorErrorOutline,color:v.colorError})),g(v,{status:"warning",borderColor:v.colorWarning,hoverBorderHover:v.colorWarningHover,activeBorderColor:v.colorWarning,activeOutlineColor:v.colorWarningOutline,color:v.colorWarning})),{[`&${v.componentCls}-disabled`]:{[`&:not(${v.componentCls}-customize-input) ${v.componentCls}-selector`]:{color:v.colorTextDisabled}},[`&${v.componentCls}-multiple ${v.componentCls}-selection-item`]:{background:v.multipleItemBg,border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} ${v.multipleItemBorderColor}`}})})}]},e=>{let{fontSize:t,lineHeight:r,lineWidth:o,controlHeight:n,controlHeightSM:a,controlHeightLG:i,paddingXXS:l,controlPaddingHorizontal:s,zIndexPopupBase:c,colorText:u,fontWeightStrong:d,controlItemBgActive:f,controlItemBgHover:p,colorBgContainer:h,colorFillSecondary:m,colorBgContainerDisabled:g,colorTextDisabled:v,colorPrimaryHover:y,colorPrimary:b,controlOutline:w}=e,$=2*l,C=2*o,x=Math.min(n-$,n-C),E=Math.min(a-$,a-C),S=Math.min(i-$,i-C);return{INTERNAL_FIXED_ITEM_MARGIN:Math.floor(l/2),zIndexPopup:c+50,optionSelectedColor:u,optionSelectedFontWeight:d,optionSelectedBg:f,optionActiveBg:p,optionPadding:`${(n-t*r)/2}px ${s}px`,optionFontSize:t,optionLineHeight:r,optionHeight:n,selectorBg:h,clearBg:h,singleItemHeightLG:i,multipleItemBg:m,multipleItemBorderColor:"transparent",multipleItemHeight:x,multipleItemHeightSM:E,multipleItemHeightLG:S,multipleSelectorBgDisabled:g,multipleItemColorDisabled:v,multipleItemBorderColorDisabled:"transparent",showArrowPaddingInlineEnd:Math.ceil(1.25*e.fontSize),hoverBorderColor:y,activeBorderColor:b,activeOutlineColor:w,selectAffixPadding:l}},{unitless:{optionLineHeight:!0,optionSelectedFontWeight:!0}});e.s(["default",0,v],950302)},121229,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"}}]},name:"check",theme:"outlined"};var n=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(n.default,(0,t.default)({},e,{ref:a,icon:o}))});e.s(["default",0,a],121229)},729151,e=>{"use strict";var t=e.i(271645),r=e.i(121229),o=e.i(726289),n=e.i(864517),a=e.i(247153),i=e.i(739295),l=e.i(38953);e.s(["default",0,function({suffixIcon:e,clearIcon:s,menuItemSelectedIcon:c,removeIcon:u,loading:d,multiple:f,hasFeedback:p,prefixCls:h,showSuffixIcon:m,feedbackIcon:g,showArrow:v,componentName:y}){let b=null!=s?s:t.createElement(o.default,null),w=r=>null!==e||p||v?t.createElement(t.Fragment,null,!1!==m&&r,p&&g):null,$=null;if(void 0!==e)$=w(e);else if(d)$=w(t.createElement(i.default,{spin:!0}));else{let e=`${h}-suffix`;$=({open:r,showSearch:o})=>r&&o?w(t.createElement(l.default,{className:e})):w(t.createElement(a.default,{className:e}))}let C=null;C=void 0!==c?c:f?t.createElement(r.default,null):null;return{clearIcon:b,suffixIcon:$,itemIcon:C,removeIcon:void 0!==u?u:t.createElement(n.default,null)}}])},327494,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(123829),n=e.i(955492),a=e.i(869301),i=e.i(529681),l=e.i(122767),s=e.i(613541),c=e.i(805484),u=e.i(52956),d=e.i(242064),f=e.i(721132),p=e.i(937328),h=e.i(321883),m=e.i(517455),g=e.i(62139),v=e.i(792812),y=e.i(249616),b=e.i(104458),w=e.i(85566),$=e.i(950302),C=e.i(729151),x=e.i(617206),E=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let S="SECRET_COMBOBOX_MODE_DO_NOT_USE",k=t.forwardRef((e,n)=>{var a,c,k,j,O,T,I,_;let F,{prefixCls:P,bordered:R,className:N,rootClassName:M,getPopupContainer:B,popupClassName:A,dropdownClassName:z,listHeight:L=256,placement:D,listItemHeight:H,size:V,disabled:W,notFoundContent:U,status:G,builtinPlacements:q,dropdownMatchSelectWidth:J,popupMatchSelectWidth:K,direction:X,style:Q,allowClear:Y,variant:Z,dropdownStyle:ee,transitionName:et,tagRender:er,maxCount:eo,prefix:en,dropdownRender:ea,popupRender:ei,onDropdownVisibleChange:el,onOpenChange:es,styles:ec,classNames:eu}=e,ed=E(e,["prefixCls","bordered","className","rootClassName","getPopupContainer","popupClassName","dropdownClassName","listHeight","placement","listItemHeight","size","disabled","notFoundContent","status","builtinPlacements","dropdownMatchSelectWidth","popupMatchSelectWidth","direction","style","allowClear","variant","dropdownStyle","transitionName","tagRender","maxCount","prefix","dropdownRender","popupRender","onDropdownVisibleChange","onOpenChange","styles","classNames"]),{getPopupContainer:ef,getPrefixCls:ep,renderEmpty:eh,direction:em,virtual:eg,popupMatchSelectWidth:ev,popupOverflow:ey}=t.useContext(d.ConfigContext),{showSearch:eb,style:ew,styles:e$,className:eC,classNames:ex}=(0,d.useComponentConfig)("select"),[,eE]=(0,b.useToken)(),eS=null!=H?H:null==eE?void 0:eE.controlHeight,ek=ep("select",P),ej=ep(),eO=null!=X?X:em,{compactSize:eT,compactItemClassnames:eI}=(0,y.useCompactItemContext)(ek,eO),[e_,eF]=(0,v.default)("select",Z,R),eP=(0,h.default)(ek),[eR,eN,eM]=(0,$.default)(ek,eP),eB=t.useMemo(()=>{let{mode:t}=e;if("combobox"!==t)return t===S?"combobox":t},[e.mode]),eA="multiple"===eB||"tags"===eB,ez=(T=e.suffixIcon,void 0!==(I=e.showArrow)?I:null!==T),eL=null!=(a=null!=K?K:J)?a:ev,eD=(null==(c=null==ec?void 0:ec.popup)?void 0:c.root)||(null==(k=e$.popup)?void 0:k.root)||ee,eH=(_=ei||ea,t.default.useMemo(()=>{if(_)return(...e)=>t.default.createElement(x.default,{space:!0},_.apply(void 0,e))},[_])),{status:eV,hasFeedback:eW,isFormItemInput:eU,feedbackIcon:eG}=t.useContext(g.FormItemInputContext),eq=(0,u.getMergedStatus)(eV,G);F=void 0!==U?U:"combobox"===eB?null:(null==eh?void 0:eh("Select"))||t.createElement(f.default,{componentName:"Select"});let{suffixIcon:eJ,itemIcon:eK,removeIcon:eX,clearIcon:eQ}=(0,C.default)(Object.assign(Object.assign({},ed),{multiple:eA,hasFeedback:eW,feedbackIcon:eG,showSuffixIcon:ez,prefixCls:ek,componentName:"Select"})),eY=(0,i.default)(ed,["suffixIcon","itemIcon"]),eZ=(0,r.default)((null==(j=null==eu?void 0:eu.popup)?void 0:j.root)||(null==(O=null==ex?void 0:ex.popup)?void 0:O.root)||A||z,{[`${ek}-dropdown-${eO}`]:"rtl"===eO},M,ex.root,null==eu?void 0:eu.root,eM,eP,eN),e0=(0,m.default)(e=>{var t;return null!=(t=null!=V?V:eT)?t:e}),e1=t.useContext(p.default),e2=(0,r.default)({[`${ek}-lg`]:"large"===e0,[`${ek}-sm`]:"small"===e0,[`${ek}-rtl`]:"rtl"===eO,[`${ek}-${e_}`]:eF,[`${ek}-in-form-item`]:eU},(0,u.getStatusClassNames)(ek,eq,eW),eI,eC,N,ex.root,null==eu?void 0:eu.root,M,eM,eP,eN),e4=t.useMemo(()=>void 0!==D?D:"rtl"===eO?"bottomRight":"bottomLeft",[D,eO]),[e6]=(0,l.useZIndex)("SelectLike",null==eD?void 0:eD.zIndex);return eR(t.createElement(o.default,Object.assign({ref:n,virtual:eg,showSearch:eb},eY,{style:Object.assign(Object.assign(Object.assign(Object.assign({},e$.root),null==ec?void 0:ec.root),ew),Q),dropdownMatchSelectWidth:eL,transitionName:(0,s.getTransitionName)(ej,"slide-up",et),builtinPlacements:(0,w.default)(q,ey),listHeight:L,listItemHeight:eS,mode:eB,prefixCls:ek,placement:e4,direction:eO,prefix:en,suffixIcon:eJ,menuItemSelectedIcon:eK,removeIcon:eX,allowClear:!0===Y?{clearIcon:eQ}:Y,notFoundContent:F,className:e2,getPopupContainer:B||ef,dropdownClassName:eZ,disabled:null!=W?W:e1,dropdownStyle:Object.assign(Object.assign({},eD),{zIndex:e6}),maxCount:eA?eo:void 0,tagRender:eA?er:void 0,dropdownRender:eH,onDropdownVisibleChange:es||el})))}),j=(0,c.default)(k,"dropdownAlign");k.SECRET_COMBOBOX_MODE_DO_NOT_USE=S,k.Option=a.Option,k.OptGroup=n.OptGroup,k._InternalPanelDoNotUseOrYouWillBeFired=j,e.s(["default",0,k],327494)},199133,e=>{"use strict";var t=e.i(327494);e.s(["Select",()=>t.default])},290571,e=>{"use strict";"function"==typeof SuppressedError&&SuppressedError,e.s(["__rest",0,function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r}])},480731,e=>{"use strict";e.s(["BaseColors",0,{Slate:"slate",Gray:"gray",Zinc:"zinc",Neutral:"neutral",Stone:"stone",Red:"red",Orange:"orange",Amber:"amber",Yellow:"yellow",Lime:"lime",Green:"green",Emerald:"emerald",Teal:"teal",Cyan:"cyan",Sky:"sky",Blue:"blue",Indigo:"indigo",Violet:"violet",Purple:"purple",Fuchsia:"fuchsia",Pink:"pink",Rose:"rose"},"DeltaTypes",0,{Increase:"increase",ModerateIncrease:"moderateIncrease",Decrease:"decrease",ModerateDecrease:"moderateDecrease",Unchanged:"unchanged"},"HorizontalPositions",0,{Left:"left",Right:"right"},"Sizes",0,{XS:"xs",SM:"sm",MD:"md",LG:"lg",XL:"xl"},"VerticalPositions",0,{Top:"top",Bottom:"bottom"}])},673706,e=>{"use strict";e.i(480731);let t=["slate","gray","zinc","neutral","stone","red","orange","amber","yellow","lime","green","emerald","teal","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose"];e.s(["defaultValueFormatter",0,e=>e.toString(),"getColorClassNames",0,function(e,r){let o=t.includes(e);if("white"===e||"black"===e||"transparent"===e||!r||!o){let t=e.includes("#")||e.includes("--")||e.includes("rgb")?`[${e}]`:e;return{bgColor:`bg-${t} dark:bg-${t}`,hoverBgColor:`hover:bg-${t} dark:hover:bg-${t}`,selectBgColor:`data-[selected]:bg-${t} dark:data-[selected]:bg-${t}`,textColor:`text-${t} dark:text-${t}`,selectTextColor:`data-[selected]:text-${t} dark:data-[selected]:text-${t}`,hoverTextColor:`hover:text-${t} dark:hover:text-${t}`,borderColor:`border-${t} dark:border-${t}`,selectBorderColor:`data-[selected]:border-${t} dark:data-[selected]:border-${t}`,hoverBorderColor:`hover:border-${t} dark:hover:border-${t}`,ringColor:`ring-${t} dark:ring-${t}`,strokeColor:`stroke-${t} dark:stroke-${t}`,fillColor:`fill-${t} dark:fill-${t}`}}return{bgColor:`bg-${e}-${r} dark:bg-${e}-${r}`,selectBgColor:`data-[selected]:bg-${e}-${r} dark:data-[selected]:bg-${e}-${r}`,hoverBgColor:`hover:bg-${e}-${r} dark:hover:bg-${e}-${r}`,textColor:`text-${e}-${r} dark:text-${e}-${r}`,selectTextColor:`data-[selected]:text-${e}-${r} dark:data-[selected]:text-${e}-${r}`,hoverTextColor:`hover:text-${e}-${r} dark:hover:text-${e}-${r}`,borderColor:`border-${e}-${r} dark:border-${e}-${r}`,selectBorderColor:`data-[selected]:border-${e}-${r} dark:data-[selected]:border-${e}-${r}`,hoverBorderColor:`hover:border-${e}-${r} dark:hover:border-${e}-${r}`,ringColor:`ring-${e}-${r} dark:ring-${e}-${r}`,strokeColor:`stroke-${e}-${r} dark:stroke-${e}-${r}`,fillColor:`fill-${e}-${r} dark:fill-${e}-${r}`}},"isValueInArray",0,(e,t)=>{for(let r=0;r`tremor-${e}-${t}`},"mergeRefs",0,function(e){return t=>{e.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}},"sumNumericArray",0,e=>e.reduce((e,t)=>e+t,0)],673706)},689074,21243,98801,e=>{"use strict";var t=e.i(290571),r=e.i(271645);e.s(["default",0,e=>{var o=(0,t.__rest)(e,[]);return r.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},o),r.default.createElement("path",{d:"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM11 15V17H13V15H11ZM11 7V13H13V7H11Z"}))}],689074),e.s(["default",0,e=>{var o=(0,t.__rest)(e,[]);return r.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},o),r.default.createElement("path",{d:"M1.18164 12C2.12215 6.87976 6.60812 3 12.0003 3C17.3924 3 21.8784 6.87976 22.8189 12C21.8784 17.1202 17.3924 21 12.0003 21C6.60812 21 2.12215 17.1202 1.18164 12ZM12.0003 17C14.7617 17 17.0003 14.7614 17.0003 12C17.0003 9.23858 14.7617 7 12.0003 7C9.23884 7 7.00026 9.23858 7.00026 12C7.00026 14.7614 9.23884 17 12.0003 17ZM12.0003 15C10.3434 15 9.00026 13.6569 9.00026 12C9.00026 10.3431 10.3434 9 12.0003 9C13.6571 9 15.0003 10.3431 15.0003 12C15.0003 13.6569 13.6571 15 12.0003 15Z"}))}],21243),e.s(["default",0,e=>{var o=(0,t.__rest)(e,[]);return r.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},o),r.default.createElement("path",{d:"M4.52047 5.93457L1.39366 2.80777L2.80788 1.39355L22.6069 21.1925L21.1927 22.6068L17.8827 19.2968C16.1814 20.3755 14.1638 21.0002 12.0003 21.0002C6.60812 21.0002 2.12215 17.1204 1.18164 12.0002C1.61832 9.62282 2.81932 7.5129 4.52047 5.93457ZM14.7577 16.1718L13.2937 14.7078C12.902 14.8952 12.4634 15.0002 12.0003 15.0002C10.3434 15.0002 9.00026 13.657 9.00026 12.0002C9.00026 11.537 9.10522 11.0984 9.29263 10.7067L7.82866 9.24277C7.30514 10.0332 7.00026 10.9811 7.00026 12.0002C7.00026 14.7616 9.23884 17.0002 12.0003 17.0002C13.0193 17.0002 13.9672 16.6953 14.7577 16.1718ZM7.97446 3.76015C9.22127 3.26959 10.5793 3.00016 12.0003 3.00016C17.3924 3.00016 21.8784 6.87992 22.8189 12.0002C22.5067 13.6998 21.8038 15.2628 20.8068 16.5925L16.947 12.7327C16.9821 12.4936 17.0003 12.249 17.0003 12.0002C17.0003 9.23873 14.7617 7.00016 12.0003 7.00016C11.7514 7.00016 11.5068 7.01833 11.2677 7.05343L7.97446 3.76015Z"}))}],98801)},444755,e=>{"use strict";let t=(e,r)=>{if(0===e.length)return r.classGroupId;let o=e[0],n=r.nextPart.get(o),a=n?t(e.slice(1),n):void 0;if(a)return a;if(0===r.validators.length)return;let i=e.join("-");return r.validators.find(({validator:e})=>e(i))?.classGroupId},r=/^\[(.+)\]$/,o=(e,t,r,i)=>{e.forEach(e=>{if("string"==typeof e){(""===e?t:n(t,e)).classGroupId=r;return}"function"==typeof e?a(e)?o(e(i),t,r,i):t.validators.push({validator:e,classGroupId:r}):Object.entries(e).forEach(([e,a])=>{o(a,n(t,e),r,i)})})},n=(e,t)=>{let r=e;return t.split("-").forEach(e=>{r.nextPart.has(e)||r.nextPart.set(e,{nextPart:new Map,validators:[]}),r=r.nextPart.get(e)}),r},a=e=>e.isThemeGetter,i=(e,t)=>t?e.map(([e,r])=>[e,r.map(e=>"string"==typeof e?t+e:"object"==typeof e?Object.fromEntries(Object.entries(e).map(([e,r])=>[t+e,r])):e)]):e,l=e=>{if(e.length<=1)return e;let t=[],r=[];return e.forEach(e=>{"["===e[0]?(t.push(...r.sort(),e),r=[]):r.push(e)}),t.push(...r.sort()),t},s=/\s+/;function c(){let e,t,r=0,o="";for(;r{let t;if("string"==typeof e)return e;let r="";for(let o=0;o{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,r=new Map,o=new Map,n=(n,a)=>{r.set(n,a),++t>e&&(t=0,o=r,r=new Map)};return{get(e){let t=r.get(e);return void 0!==t?t:void 0!==(t=o.get(e))?(n(e,t),t):void 0},set(e,t){r.has(e)?r.set(e,t):n(e,t)}}})((s=n.reduce((e,t)=>t(e),e())).cacheSize),parseClassName:(e=>{let{separator:t,experimentalParseClassName:r}=e,o=1===t.length,n=t[0],a=t.length,i=e=>{let r,i=[],l=0,s=0;for(let c=0;cs?r-s:void 0}};return r?e=>r({className:e,parseClassName:i}):i})(s),...(e=>{let n=(e=>{let{theme:t,prefix:r}=e,n={nextPart:new Map,validators:[]};return i(Object.entries(e.classGroups),r).forEach(([e,r])=>{o(r,n,e,t)}),n})(e),{conflictingClassGroups:a,conflictingClassGroupModifiers:l}=e;return{getClassGroupId:e=>{let o=e.split("-");return""===o[0]&&1!==o.length&&o.shift(),t(o,n)||(e=>{if(r.test(e)){let t=r.exec(e)[1],o=t?.substring(0,t.indexOf(":"));if(o)return"arbitrary.."+o}})(e)},getConflictingClassGroupIds:(e,t)=>{let r=a[e]||[];return t&&l[e]?[...r,...l[e]]:r}}})(s)}).cache.get,f=a.cache.set,p=h,h(l)};function h(e){let t=u(e);if(t)return t;let r=((e,t)=>{let{parseClassName:r,getClassGroupId:o,getConflictingClassGroupIds:n}=t,a=[],i=e.trim().split(s),c="";for(let e=i.length-1;e>=0;e-=1){let t=i[e],{modifiers:s,hasImportantModifier:u,baseClassName:d,maybePostfixModifierPosition:f}=r(t),p=!!f,h=o(p?d.substring(0,f):d);if(!h){if(!p||!(h=o(d))){c=t+(c.length>0?" "+c:c);continue}p=!1}let m=l(s).join(":"),g=u?m+"!":m,v=g+h;if(a.includes(v))continue;a.push(v);let y=n(h,p);for(let e=0;e0?" "+c:c)}return c})(e,a);return f(e,r),r}return function(){return p(c.apply(null,arguments))}}let f=e=>{let t=t=>t[e]||[];return t.isThemeGetter=!0,t},p=/^\[(?:([a-z-]+):)?(.+)\]$/i,h=/^\d+\/\d+$/,m=new Set(["px","full","screen"]),g=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,v=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,y=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,b=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,w=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,$=e=>x(e)||m.has(e)||h.test(e),C=e=>M(e,"length",B),x=e=>!!e&&!Number.isNaN(Number(e)),E=e=>M(e,"number",x),S=e=>!!e&&Number.isInteger(Number(e)),k=e=>e.endsWith("%")&&x(e.slice(0,-1)),j=e=>p.test(e),O=e=>g.test(e),T=new Set(["length","size","percentage"]),I=e=>M(e,T,A),_=e=>M(e,"position",A),F=new Set(["image","url"]),P=e=>M(e,F,L),R=e=>M(e,"",z),N=()=>!0,M=(e,t,r)=>{let o=p.exec(e);return!!o&&(o[1]?"string"==typeof t?o[1]===t:t.has(o[1]):r(o[2]))},B=e=>v.test(e)&&!y.test(e),A=()=>!1,z=e=>b.test(e),L=e=>w.test(e),D=()=>{let e=f("colors"),t=f("spacing"),r=f("blur"),o=f("brightness"),n=f("borderColor"),a=f("borderRadius"),i=f("borderSpacing"),l=f("borderWidth"),s=f("contrast"),c=f("grayscale"),u=f("hueRotate"),d=f("invert"),p=f("gap"),h=f("gradientColorStops"),m=f("gradientColorStopPositions"),g=f("inset"),v=f("margin"),y=f("opacity"),b=f("padding"),w=f("saturate"),T=f("scale"),F=f("sepia"),M=f("skew"),B=f("space"),A=f("translate"),z=()=>["auto","contain","none"],L=()=>["auto","hidden","clip","visible","scroll"],D=()=>["auto",j,t],H=()=>[j,t],V=()=>["",$,C],W=()=>["auto",x,j],U=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],G=()=>["solid","dashed","dotted","double","none"],q=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],J=()=>["start","end","center","between","around","evenly","stretch"],K=()=>["","0",j],X=()=>["auto","avoid","all","avoid-page","page","left","right","column"],Q=()=>[x,j];return{cacheSize:500,separator:":",theme:{colors:[N],spacing:[$,C],blur:["none","",O,j],brightness:Q(),borderColor:[e],borderRadius:["none","","full",O,j],borderSpacing:H(),borderWidth:V(),contrast:Q(),grayscale:K(),hueRotate:Q(),invert:K(),gap:H(),gradientColorStops:[e],gradientColorStopPositions:[k,C],inset:D(),margin:D(),opacity:Q(),padding:H(),saturate:Q(),scale:Q(),sepia:K(),skew:Q(),space:H(),translate:H()},classGroups:{aspect:[{aspect:["auto","square","video",j]}],container:["container"],columns:[{columns:[O]}],"break-after":[{"break-after":X()}],"break-before":[{"break-before":X()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...U(),j]}],overflow:[{overflow:L()}],"overflow-x":[{"overflow-x":L()}],"overflow-y":[{"overflow-y":L()}],overscroll:[{overscroll:z()}],"overscroll-x":[{"overscroll-x":z()}],"overscroll-y":[{"overscroll-y":z()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[g]}],"inset-x":[{"inset-x":[g]}],"inset-y":[{"inset-y":[g]}],start:[{start:[g]}],end:[{end:[g]}],top:[{top:[g]}],right:[{right:[g]}],bottom:[{bottom:[g]}],left:[{left:[g]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",S,j]}],basis:[{basis:D()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",j]}],grow:[{grow:K()}],shrink:[{shrink:K()}],order:[{order:["first","last","none",S,j]}],"grid-cols":[{"grid-cols":[N]}],"col-start-end":[{col:["auto",{span:["full",S,j]},j]}],"col-start":[{"col-start":W()}],"col-end":[{"col-end":W()}],"grid-rows":[{"grid-rows":[N]}],"row-start-end":[{row:["auto",{span:[S,j]},j]}],"row-start":[{"row-start":W()}],"row-end":[{"row-end":W()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",j]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",j]}],gap:[{gap:[p]}],"gap-x":[{"gap-x":[p]}],"gap-y":[{"gap-y":[p]}],"justify-content":[{justify:["normal",...J()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...J(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...J(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[b]}],px:[{px:[b]}],py:[{py:[b]}],ps:[{ps:[b]}],pe:[{pe:[b]}],pt:[{pt:[b]}],pr:[{pr:[b]}],pb:[{pb:[b]}],pl:[{pl:[b]}],m:[{m:[v]}],mx:[{mx:[v]}],my:[{my:[v]}],ms:[{ms:[v]}],me:[{me:[v]}],mt:[{mt:[v]}],mr:[{mr:[v]}],mb:[{mb:[v]}],ml:[{ml:[v]}],"space-x":[{"space-x":[B]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[B]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",j,t]}],"min-w":[{"min-w":[j,t,"min","max","fit"]}],"max-w":[{"max-w":[j,t,"none","full","min","max","fit","prose",{screen:[O]},O]}],h:[{h:[j,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[j,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[j,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[j,t,"auto","min","max","fit"]}],"font-size":[{text:["base",O,C]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",E]}],"font-family":[{font:[N]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",j]}],"line-clamp":[{"line-clamp":["none",x,E]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",$,j]}],"list-image":[{"list-image":["none",j]}],"list-style-type":[{list:["none","disc","decimal",j]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[y]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[y]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...G(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",$,C]}],"underline-offset":[{"underline-offset":["auto",$,j]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:H()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",j]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",j]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[y]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...U(),_]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",I]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},P]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[h]}],"gradient-via":[{via:[h]}],"gradient-to":[{to:[h]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[l]}],"border-w-x":[{"border-x":[l]}],"border-w-y":[{"border-y":[l]}],"border-w-s":[{"border-s":[l]}],"border-w-e":[{"border-e":[l]}],"border-w-t":[{"border-t":[l]}],"border-w-r":[{"border-r":[l]}],"border-w-b":[{"border-b":[l]}],"border-w-l":[{"border-l":[l]}],"border-opacity":[{"border-opacity":[y]}],"border-style":[{border:[...G(),"hidden"]}],"divide-x":[{"divide-x":[l]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[l]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[y]}],"divide-style":[{divide:G()}],"border-color":[{border:[n]}],"border-color-x":[{"border-x":[n]}],"border-color-y":[{"border-y":[n]}],"border-color-s":[{"border-s":[n]}],"border-color-e":[{"border-e":[n]}],"border-color-t":[{"border-t":[n]}],"border-color-r":[{"border-r":[n]}],"border-color-b":[{"border-b":[n]}],"border-color-l":[{"border-l":[n]}],"divide-color":[{divide:[n]}],"outline-style":[{outline:["",...G()]}],"outline-offset":[{"outline-offset":[$,j]}],"outline-w":[{outline:[$,C]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:V()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[y]}],"ring-offset-w":[{"ring-offset":[$,C]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",O,R]}],"shadow-color":[{shadow:[N]}],opacity:[{opacity:[y]}],"mix-blend":[{"mix-blend":[...q(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":q()}],filter:[{filter:["","none"]}],blur:[{blur:[r]}],brightness:[{brightness:[o]}],contrast:[{contrast:[s]}],"drop-shadow":[{"drop-shadow":["","none",O,j]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[d]}],saturate:[{saturate:[w]}],sepia:[{sepia:[F]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[r]}],"backdrop-brightness":[{"backdrop-brightness":[o]}],"backdrop-contrast":[{"backdrop-contrast":[s]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u]}],"backdrop-invert":[{"backdrop-invert":[d]}],"backdrop-opacity":[{"backdrop-opacity":[y]}],"backdrop-saturate":[{"backdrop-saturate":[w]}],"backdrop-sepia":[{"backdrop-sepia":[F]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[i]}],"border-spacing-x":[{"border-spacing-x":[i]}],"border-spacing-y":[{"border-spacing-y":[i]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",j]}],duration:[{duration:Q()}],ease:[{ease:["linear","in","out","in-out",j]}],delay:[{delay:Q()}],animate:[{animate:["none","spin","ping","pulse","bounce",j]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[T]}],"scale-x":[{"scale-x":[T]}],"scale-y":[{"scale-y":[T]}],rotate:[{rotate:[S,j]}],"translate-x":[{"translate-x":[A]}],"translate-y":[{"translate-y":[A]}],"skew-x":[{"skew-x":[M]}],"skew-y":[{"skew-y":[M]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",j]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",j]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":H()}],"scroll-mx":[{"scroll-mx":H()}],"scroll-my":[{"scroll-my":H()}],"scroll-ms":[{"scroll-ms":H()}],"scroll-me":[{"scroll-me":H()}],"scroll-mt":[{"scroll-mt":H()}],"scroll-mr":[{"scroll-mr":H()}],"scroll-mb":[{"scroll-mb":H()}],"scroll-ml":[{"scroll-ml":H()}],"scroll-p":[{"scroll-p":H()}],"scroll-px":[{"scroll-px":H()}],"scroll-py":[{"scroll-py":H()}],"scroll-ps":[{"scroll-ps":H()}],"scroll-pe":[{"scroll-pe":H()}],"scroll-pt":[{"scroll-pt":H()}],"scroll-pr":[{"scroll-pr":H()}],"scroll-pb":[{"scroll-pb":H()}],"scroll-pl":[{"scroll-pl":H()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",j]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[$,C,E]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},H=(e,t,r)=>{void 0!==r&&(e[t]=r)},V=(e,t)=>{if(t)for(let r in t)H(e,r,t[r])},W=(e,t)=>{if(t)for(let r in t){let o=t[r];void 0!==o&&(e[r]=(e[r]||[]).concat(o))}},U=((e,...t)=>"function"==typeof e?d(D,e,...t):d(()=>((e,{cacheSize:t,prefix:r,separator:o,experimentalParseClassName:n,extend:a={},override:i={}})=>{for(let a in H(e,"cacheSize",t),H(e,"prefix",r),H(e,"separator",o),H(e,"experimentalParseClassName",n),i)V(e[a],i[a]);for(let t in a)W(e[t],a[t]);return e})(D(),e),...t))({extend:{classGroups:{shadow:[{shadow:[{tremor:["input","card","dropdown"],"dark-tremor":["input","card","dropdown"]}]}],rounded:[{rounded:[{tremor:["small","default","full"],"dark-tremor":["small","default","full"]}]}],"font-size":[{text:[{tremor:["default","title","metric"],"dark-tremor":["default","title","metric"]}]}]}}});e.s(["tremorTwMerge",0,U],444755)},103471,e=>{"use strict";var t=e.i(444755),r=e.i(271645);let o=e=>["string","number"].includes(typeof e)?e:e instanceof Array?e.map(o).join(""):"object"==typeof e&&e?o(e.props.children):void 0;e.s(["constructValueToNameMapping",0,function(e){let t=new Map;return r.default.Children.map(e,e=>{var r;t.set(e.props.value,null!=(r=o(e))?r:e.props.value)}),t},"getFilteredOptions",0,function(e,t){return r.default.Children.map(t,t=>{var r;if((null!=(r=o(t))?r:t.props.value).toLowerCase().includes(e.toLowerCase()))return t})},"getNodeText",0,o,"getSelectButtonColors",0,(e,r,o=!1)=>(0,t.tremorTwMerge)(r?"bg-tremor-background-subtle dark:bg-dark-tremor-background-subtle":"bg-tremor-background dark:bg-dark-tremor-background",!r&&"hover:bg-tremor-background-muted dark:hover:bg-dark-tremor-background-muted",e?"text-tremor-content-emphasis dark:text-dark-tremor-content-emphasis":"text-tremor-content dark:text-dark-tremor-content",r&&"text-tremor-content-subtle dark:text-dark-tremor-content-subtle",o&&"text-red-500 placeholder:text-red-500 dark:text-red-500 dark:placeholder:text-red-500",o?"border-red-500 dark:border-red-500":"border-tremor-border dark:border-dark-tremor-border"),"hasValue",0,function(e){return null!=e&&""!==e}])},779241,677955,e=>{"use strict";var t=e.i(290571),r=e.i(271645),o=e.i(673706),n=e.i(689074),a=e.i(21243),i=e.i(98801),l=e.i(103471),s=e.i(444755);let c=r.default.forwardRef((e,c)=>{let{value:u,defaultValue:d,type:f,placeholder:p="Type...",icon:h,error:m=!1,errorMessage:g,disabled:v=!1,stepper:y,makeInputClassName:b,className:w,onChange:$,onValueChange:C,autoFocus:x,pattern:E}=e,S=(0,t.__rest)(e,["value","defaultValue","type","placeholder","icon","error","errorMessage","disabled","stepper","makeInputClassName","className","onChange","onValueChange","autoFocus","pattern"]),[k,j]=(0,r.useState)(x||!1),[O,T]=(0,r.useState)(!1),I=(0,r.useCallback)(()=>T(!O),[O,T]),_=(0,r.useRef)(null),F=(0,l.hasValue)(u||d);return r.default.useEffect(()=>{let e=()=>j(!0),t=()=>j(!1),r=_.current;return r&&(r.addEventListener("focus",e),r.addEventListener("blur",t),x&&r.focus()),()=>{r&&(r.removeEventListener("focus",e),r.removeEventListener("blur",t))}},[x]),r.default.createElement(r.default.Fragment,null,r.default.createElement("div",{className:(0,s.tremorTwMerge)(b("root"),"relative w-full flex items-center min-w-[10rem] outline-none rounded-tremor-default transition duration-100 border","shadow-tremor-input","dark:shadow-dark-tremor-input",(0,l.getSelectButtonColors)(F,v,m),k&&(0,s.tremorTwMerge)("ring-2","border-tremor-brand-subtle ring-tremor-brand-muted","dark:border-dark-tremor-brand-subtle dark:ring-dark-tremor-brand-muted"),w)},h?r.default.createElement(h,{className:(0,s.tremorTwMerge)(b("icon"),"shrink-0 h-5 w-5 mx-2.5 absolute left-0 flex items-center","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")}):null,r.default.createElement("input",Object.assign({ref:(0,o.mergeRefs)([_,c]),defaultValue:d,value:u,type:O?"text":f,className:(0,s.tremorTwMerge)(b("input"),"w-full bg-transparent focus:outline-none focus:ring-0 border-none text-tremor-default rounded-tremor-default transition duration-100 py-2","text-tremor-content-emphasis","dark:text-dark-tremor-content-emphasis","[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none","password"===f?m?"pr-16":"pr-12":m?"pr-8":"pr-3",h?"pl-10":"pl-3",v?"placeholder:text-tremor-content-subtle dark:placeholder:text-dark-tremor-content-subtle":"placeholder:text-tremor-content dark:placeholder:text-dark-tremor-content"),placeholder:p,disabled:v,"data-testid":"base-input",onChange:e=>{null==$||$(e),null==C||C(e.target.value)},pattern:E},S)),"password"!==f||v?null:r.default.createElement("button",{className:(0,s.tremorTwMerge)(b("toggleButton"),"absolute inset-y-0 right-0 flex items-center px-2.5 rounded-lg"),type:"button",onClick:()=>I(),"aria-label":O?"Hide password":"Show Password"},O?r.default.createElement(i.default,{className:(0,s.tremorTwMerge)("flex-none h-5 w-5 transition","text-tremor-content-subtle hover:text-tremor-content","dark:text-dark-tremor-content-subtle hover:dark:text-dark-tremor-content"),"aria-hidden":!0}):r.default.createElement(a.default,{className:(0,s.tremorTwMerge)("flex-none h-5 w-5 transition","text-tremor-content-subtle hover:text-tremor-content","dark:text-dark-tremor-content-subtle hover:dark:text-dark-tremor-content"),"aria-hidden":!0})),m?r.default.createElement(n.default,{className:(0,s.tremorTwMerge)(b("errorIcon"),"text-red-500 shrink-0 h-5 w-5 absolute right-0 flex items-center","password"===f?"mr-10":"number"===f?y?"mr-20":"mr-3":"mx-2.5")}):null,null!=y?y:null),m&&g?r.default.createElement("p",{className:(0,s.tremorTwMerge)(b("errorMessage"),"text-sm text-red-500 mt-1")},g):null)});c.displayName="BaseInput",e.s(["default",0,c],677955);let u=(0,o.makeClassName)("TextInput"),d=r.default.forwardRef((e,o)=>{let{type:n="text"}=e,a=(0,t.__rest)(e,["type"]);return r.default.createElement(c,Object.assign({ref:o,type:n,makeInputClassName:u},a))});d.displayName="TextInput",e.s(["TextInput",0,d],779241)},827252,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z"}}]},name:"info-circle",theme:"outlined"};var n=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(n.default,(0,t.default)({},e,{ref:a,icon:o}))});e.s(["InfoCircleOutlined",0,a],827252)},592968,e=>{"use strict";var t=e.i(491816);e.s(["Tooltip",()=>t.default])},764205,122550,82946,e=>{"use strict";e.s(["addAllowedIP",()=>ez,"adminGlobalActivity",()=>eZ,"adminGlobalActivityPerModel",()=>e1,"adminGlobalCacheActivity",()=>e0,"adminSpendLogsCall",()=>eK,"adminTopEndUsersCall",()=>eQ,"adminTopKeysCall",()=>eX,"adminTopModelsCall",()=>e2,"adminspendByProvider",()=>eY,"agentDailyActivityCall",()=>eS,"agentHubPublicModelsCall",()=>eR,"alertingSettingsCall",()=>Z,"allEndUsersCall",()=>eG,"allTagNamesCall",()=>eU,"applyGuardrail",()=>op,"approveGuardrailSubmission",()=>tV,"approveMCPServer",()=>rR,"availableTeamListCall",()=>ef,"budgetCreateCall",()=>X,"budgetDeleteCall",()=>K,"budgetUpdateCall",()=>Q,"buildMcpOAuthAuthorizeUrl",()=>ok,"cacheTemporaryMcpServer",()=>oE,"cachingHealthCheckCall",()=>tR,"callMCPTool",()=>rV,"cancelModelCostMapReload",()=>W,"checkEuAiActCompliance",()=>oG,"checkGdprCompliance",()=>oq,"claimOnboardingToken",()=>ej,"convertPromptFileToJson",()=>rp,"createAgentCall",()=>rh,"createGuardrailCall",()=>rm,"createMCPServer",()=>rS,"createMCPToolset",()=>rT,"createMemory",()=>o7,"createPassThroughEndpoint",()=>tO,"createPolicyAttachmentCall",()=>rt,"createPolicyCall",()=>t4,"createPolicyVersion",()=>t7,"createPromptCall",()=>ru,"createSearchTool",()=>rB,"credentialCreateCall",()=>tt,"credentialDeleteCall",()=>tn,"credentialGetCall",()=>to,"credentialListCall",()=>tr,"credentialUpdateCall",()=>ta,"customerDailyActivityCall",()=>eE,"deleteAgentCall",()=>oe,"deleteAllowedIP",()=>eL,"deleteCallback",()=>oC,"deleteClaudeCodePlugin",()=>oU,"deleteConfigFieldSetting",()=>tI,"deleteGuardrailCall",()=>oo,"deleteMCPOAuthUserCredential",()=>o1,"deleteMCPServer",()=>rj,"deleteMCPToolset",()=>r_,"deleteMemory",()=>o9,"deletePassThroughEndpointsCall",()=>t_,"deletePolicyAttachmentCall",()=>rr,"deletePolicyCall",()=>t9,"deletePromptCall",()=>rf,"deleteSearchTool",()=>rz,"deleteToolPolicyOverride",()=>oZ,"deriveErrorMessage",()=>oM,"disableClaudeCodePlugin",()=>oW,"enableClaudeCodePlugin",()=>oV,"enrichPolicyTemplate",()=>tY,"enrichPolicyTemplateStream",()=>t1,"estimateAttachmentImpactCall",()=>ri,"exchangeLoginCode",()=>oA,"exchangeMcpOAuthToken",()=>oj,"fetchAvailableSearchProviders",()=>rL,"fetchDiscoverableMCPServers",()=>rw,"fetchMCPAccessGroups",()=>rx,"fetchMCPClientIp",()=>rE,"fetchMCPServerHealth",()=>rC,"fetchMCPServers",()=>r$,"fetchMCPSubmissions",()=>rP,"fetchMCPToolsets",()=>rO,"fetchMemoryList",()=>o3,"fetchOpenAPIRegistry",()=>rb,"fetchSearchTools",()=>rM,"fetchToolDetail",()=>oQ,"fetchToolPolicyOptions",()=>oJ,"fetchToolsList",()=>oK,"formatDate",()=>y,"getAgentCreateMetadata",()=>P,"getAgentInfo",()=>oc,"getAgentsList",()=>os,"getAllowedIPs",()=>eA,"getBudgetList",()=>tb,"getCacheSettingsCall",()=>tx,"getCallbackConfigsCall",()=>b,"getCallbacksCall",()=>tw,"getCategoryYaml",()=>oi,"getClaudeCodePluginsList",()=>oD,"getConfigFieldSetting",()=>tj,"getDefaultTeamSettings",()=>rX,"getEmailEventSettings",()=>r5,"getGeneralSettingsCall",()=>t$,"getGlobalLitellmHeaderName",()=>M,"getGuardrailInfo",()=>ou,"getGuardrailProviderSpecificParams",()=>oa,"getGuardrailUISettings",()=>on,"getGuardrailsList",()=>tD,"getGuardrailsUsageDetail",()=>tG,"getGuardrailsUsageLogs",()=>tq,"getGuardrailsUsageOverview",()=>tU,"getInProductNudgesCall",()=>w,"getInternalUserSettings",()=>rv,"getLicenseInfo",()=>ow,"getMCPOAuthUserCredentialStatus",()=>o2,"getMCPSemanticFilterSettings",()=>tA,"getMajorAirlines",()=>ol,"getModelCostMapReloadStatus",()=>G,"getModelCostMapSource",()=>U,"getOnboardingCredentials",()=>ek,"getOpenAPISchema",()=>L,"getPassThroughEndpointsCall",()=>tk,"getPoliciesList",()=>tJ,"getPolicyAttachmentsList",()=>re,"getPolicyInfo",()=>t8,"getPolicyInfoWithGuardrails",()=>tX,"getPolicyTemplates",()=>tQ,"getPossibleUserRoles",()=>e8,"getPromptInfo",()=>rs,"getPromptVersions",()=>rc,"getPromptsList",()=>rl,"getProviderCreateMetadata",()=>F,"getProxyBaseUrl",()=>k,"getProxyUISettings",()=>tM,"getPublicModelHubInfo",()=>z,"getRemainingUsers",()=>ob,"getResolvedGuardrails",()=>rn,"getRouterSettingsCall",()=>tC,"getSSOSettings",()=>og,"getTeamPermissionsCall",()=>rY,"getToolUsageLogs",()=>oX,"getUISettings",()=>tB,"getUiConfig",()=>A,"getUiSettings",()=>oz,"handleError",()=>_,"individualModelHealthCheckCall",()=>tP,"invitationCreateCall",()=>Y,"keyAliasesCall",()=>e5,"keyCreateCall",()=>et,"keyCreateForAgentCall",()=>er,"keyCreateServiceAccountCall",()=>ee,"keyDeleteCall",()=>en,"keyInfoCall",()=>e4,"keyInfoV1Call",()=>e3,"keyListCall",()=>e7,"keyUpdateCall",()=>ti,"latestHealthChecksCall",()=>tN,"listGuardrailSubmissions",()=>tH,"listMCPTools",()=>rH,"listMCPUserCredentials",()=>o4,"listPolicyVersions",()=>t3,"loginCall",()=>oB,"makeAgentsPublicCall",()=>ot,"makeMCPPublicCall",()=>or,"makeModelGroupPublic",()=>B,"mcpHubPublicServersCall",()=>eN,"modelAvailableCall",()=>eH,"modelCostMap",()=>D,"modelCreateCall",()=>q,"modelDeleteCall",()=>J,"modelHubCall",()=>eB,"modelHubPublicModelsCall",()=>eP,"modelInfoCall",()=>e_,"modelInfoV1Call",()=>eF,"modelPatchUpdateCall",()=>ts,"organizationCreateCall",()=>em,"organizationDailyActivityCall",()=>ex,"organizationDeleteCall",()=>ev,"organizationInfoCall",()=>eh,"organizationListCall",()=>ep,"organizationMemberAddCall",()=>tp,"organizationMemberDeleteCall",()=>th,"organizationMemberUpdateCall",()=>tm,"organizationUpdateCall",()=>eg,"patchAgentCall",()=>od,"perUserAnalyticsCall",()=>oN,"proxyBaseUrl",()=>S,"ragIngestCall",()=>r7,"regenerateKeyCall",()=>eO,"registerClaudeCodePlugin",()=>oH,"registerMCPServer",()=>rF,"registerMcpOAuthClient",()=>oS,"rejectGuardrailSubmission",()=>tW,"rejectMCPServer",()=>rN,"reloadModelCostMap",()=>H,"resetEmailEventSettings",()=>r8,"resolvePoliciesCall",()=>ra,"scheduleModelCostMapReload",()=>V,"searchToolQueryCall",()=>oT,"serverRootPath",()=>C,"serviceHealthCheck",()=>ty,"sessionSpendLogsCall",()=>r0,"setCallbacksCall",()=>tF,"setGlobalLitellmHeaderName",()=>N,"skillHubPublicCall",()=>eM,"storeMCPOAuthUserCredential",()=>o0,"suggestPolicyTemplates",()=>tZ,"switchToWorkerUrl",()=>j,"tagCreateCall",()=>rW,"tagDailyActivityCall",()=>e$,"tagDauCall",()=>oI,"tagDeleteCall",()=>rK,"tagDistinctCall",()=>oP,"tagInfoCall",()=>rG,"tagListCall",()=>rJ,"tagMauCall",()=>oF,"tagUpdateCall",()=>rU,"tagWauCall",()=>o_,"tagsSpendLogsCall",()=>eW,"teamBulkMemberAddCall",()=>tu,"teamCreateCall",()=>te,"teamDailyActivityCall",()=>eC,"teamDeleteCall",()=>ei,"teamInfoCall",()=>ec,"teamListCall",()=>ed,"teamMemberAddCall",()=>tc,"teamMemberDeleteCall",()=>tf,"teamMemberUpdateCall",()=>td,"teamPermissionsUpdateCall",()=>rZ,"teamSpendLogsCall",()=>eV,"teamUpdateCall",()=>tl,"testCacheConnectionCall",()=>tE,"testConnectionRequest",()=>e6,"testCustomCodeGuardrail",()=>oh,"testMCPSemanticFilter",()=>tL,"testMCPToolsListRequest",()=>ox,"testPipelineCall",()=>ro,"testPoliciesAndGuardrails",()=>tK,"testPolicyTemplate",()=>t0,"testSearchToolConnection",()=>rD,"transformRequestCall",()=>ey,"uiAuditLogsCall",()=>oy,"uiSpendLogDetailsCall",()=>rg,"uiSpendLogsCall",()=>eJ,"updateCacheSettingsCall",()=>tS,"updateConfigFieldSetting",()=>tT,"updateDefaultTeamSettings",()=>rQ,"updateEmailEventSettings",()=>r9,"updateGuardrailCall",()=>of,"updateInternalUserSettings",()=>ry,"updateMCPSemanticFilterSettings",()=>tz,"updateMCPServer",()=>rk,"updateMCPToolset",()=>rI,"updateMemory",()=>o5,"updatePassThroughEndpoint",()=>o$,"updatePolicyCall",()=>t6,"updatePolicyVersionStatus",()=>t5,"updatePromptCall",()=>rd,"updateSSOSettings",()=>ov,"updateSearchTool",()=>rA,"updateToolPolicy",()=>oY,"updateUiSettings",()=>oL,"updateUsefulLinksCall",()=>eD,"usageAiChatStream",()=>t2,"userAgentSummaryCall",()=>oR,"userBulkUpdateUserCall",()=>tv,"userCreateCall",()=>eo,"userDailyActivityAggregatedCall",()=>e9,"userDailyActivityCall",()=>ew,"userDeleteCall",()=>ea,"userFilterUICall",()=>eq,"userGetInfoV2",()=>es,"userListCall",()=>el,"userUpdateUserCall",()=>tg,"v2TeamListCall",()=>eu,"validateBlockedWordsFile",()=>om,"vectorStoreCreateCall",()=>r1,"vectorStoreDeleteCall",()=>r4,"vectorStoreInfoCall",()=>r6,"vectorStoreListCall",()=>r2,"vectorStoreSearchCall",()=>oO,"vectorStoreUpdateCall",()=>r3],764205);var t=e.i(247167),r=e.i(888259),o=e.i(268004);e.s(["default",()=>g,"jsonFields",()=>h],82946);var n=e.i(843476),a=e.i(271645),i=e.i(808613),l=e.i(311451),s=e.i(28651),c=e.i(199133),u=e.i(779241),d=e.i(827252),f=e.i(592968);let p=e=>e?e.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase()):e;e.s(["formItemValidateJSON",0,(e,t)=>{if(!t)return Promise.resolve();try{return JSON.parse(t),Promise.resolve()}catch(e){return Promise.reject("Please enter valid JSON")}},"formatLabel",0,p,"truncateString",0,function(e,t){return e.length>t?e.substring(0,t)+"...":e}],122550);let h=["metadata","config","enforced_params","aliases"],m=(e,t)=>h.includes(e)||"json"===t.format,g=({schemaComponent:e,excludedFields:t=[],form:r,overrideLabels:o={},overrideTooltips:h={},customValidation:g={},defaultValues:v={}})=>{let[y,b]=(0,a.useState)(null),[w,$]=(0,a.useState)(null);return((0,a.useEffect)(()=>{(async()=>{try{let o=(await L()).components.schemas[e];if(!o)throw Error(`Schema component "${e}" not found`);b(o);let n={};Object.keys(o.properties).filter(e=>!t.includes(e)&&void 0!==v[e]).forEach(e=>{n[e]=v[e]}),r.setFieldsValue(n)}catch(e){console.error("Schema fetch error:",e),$(e instanceof Error?e.message:"Failed to fetch schema")}})()},[e,r,t]),w)?(0,n.jsxs)("div",{className:"text-red-500",children:["Error: ",w]}):y?.properties?(0,n.jsx)("div",{children:Object.entries(y.properties).filter(([e])=>!t.includes(e)).map(([e,t])=>{let r,a,b,w,$,C,x,E;return a=(e=>{if(e.type)return e.type;if(e.anyOf){let t=e.anyOf.map(e=>e.type);if(t.includes("number")||t.includes("integer"))return"number";t.includes("string")}return"string"})(t),b=y?.required?.includes(e),w=o[e]||t.title||p(e),$=h[e]||t.description,C=[],b&&C.push({required:!0,message:`${w} is required`}),g[e]&&C.push({validator:g[e]}),m(e,t)&&C.push({validator:async(e,t)=>{if(t&&!(e=>{if(!e)return!0;try{return JSON.parse(e),!0}catch{return!1}})(t))throw Error("Please enter valid JSON")}}),x=$?(0,n.jsxs)("span",{children:[w," ",(0,n.jsx)(f.Tooltip,{title:$,children:(0,n.jsx)(d.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}):w,r=m(e,t)?(0,n.jsx)(l.Input.TextArea,{rows:4,placeholder:"Enter as JSON",className:"font-mono"}):t.enum?(0,n.jsx)(c.Select,{children:t.enum.map(e=>(0,n.jsx)(c.Select.Option,{value:e,children:e},e))}):"number"===a||"integer"===a?(0,n.jsx)(s.InputNumber,{style:{width:"100%"},precision:"integer"===a?0:void 0}):"duration"===e?(0,n.jsx)(u.TextInput,{placeholder:"eg: 30s, 30h, 30d"}):(0,n.jsx)(u.TextInput,{placeholder:$||""}),(0,n.jsx)(i.Form.Item,{label:x,name:e,className:"mt-8",rules:C,initialValue:v[e],help:(0,n.jsx)("div",{className:"text-xs text-gray-500",children:(E=({max_budget:"Enter maximum budget in USD (e.g., 100.50)",budget_duration:"Select a time period for budget reset",tpm_limit:"Enter maximum tokens per minute (whole number)",rpm_limit:"Enter maximum requests per minute (whole number)",duration:"Enter duration (e.g., 30s, 24h, 7d)",metadata:'Enter JSON object with key-value pairs\nExample: {"team": "research", "project": "nlp"}',config:'Enter configuration as JSON object\nExample: {"setting": "value"}',permissions:"Enter comma-separated permission strings",enforced_params:'Enter parameters as JSON object\nExample: {"param": "value"}',blocked:"Enter true/false or specific block conditions",aliases:'Enter aliases as JSON object\nExample: {"alias1": "value1", "alias2": "value2"}',models:"Select one or more model names",key_alias:"Enter a unique identifier for this key",tags:"Enter comma-separated tag strings"})[e]||({string:"Text input",number:"Numeric input",integer:"Whole number input",boolean:"True/False value"})[a]||"Text input",m(e,t)?`${E} +Must be valid JSON format`:t.enum?`Select from available options +Allowed values: ${t.enum.join(", ")}`:E)}),children:r},e)})}):null};var v=e.i(727749);let y=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`},b=async e=>{try{let t=S?`${S}/callbacks/configs`:"/callbacks/configs",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},w=async e=>{try{let t=S?`${S}/in_product_nudges`:"/in_product_nudges",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get in-product nudges:",e),e}},$=t.default.env.NEXT_PUBLIC_BASE_URL?t.default.env.NEXT_PUBLIC_BASE_URL:null,C="/",x="litellm_worker_url",E=window.localStorage.getItem(x),S=(()=>{if(!E)return null;try{let e=new URL(E);if("http:"===e.protocol||"https:"===e.protocol)return E}catch{}return window.localStorage.removeItem(x),null})()??$;console.log=function(){};let k=()=>{if(S)return S;let e=window.location;return e?.origin??""};function j(e){(!e||function(e){try{let t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch{return!1}}(e))&&(e?window.localStorage.setItem(x,e):window.localStorage.removeItem(x),S=e??$)}let O="POST",T="DELETE",I=0,_=async e=>{let t=Date.now();if(t-I>6e4){if(("string"==typeof e?e:JSON.stringify(e)).includes("Authentication Error - Expired Key")){v.default.info("UI Session Expired. Logging out."),I=t,(0,o.clearTokenCookies)();let e=window.location;e&&(window.location.href=e.pathname)}I=t}else console.log("Error suppressed to prevent spam:",e)},F=async()=>{let e=S?`${S}/public/providers/fields`:"/public/providers/fields",t=await fetch(e,{method:"GET"});if(!t.ok){let e=await t.text();throw console.error("Failed to fetch provider create metadata:",t.status,e),Error("Failed to load provider configuration")}return await t.json()},P=async()=>{let e=S?`${S}/public/agents/fields`:"/public/agents/fields",t=await fetch(e,{method:"GET"});if(!t.ok){let e=await t.text();throw console.error("Failed to fetch agent create metadata:",t.status,e),Error("Failed to load agent configuration")}return await t.json()},R="Authorization";function N(e="Authorization"){console.log(`setGlobalLitellmHeaderName: ${e}`),R=e}function M(){return R}let B=async(e,t)=>{let r=S?`${S}/model_group/make_public`:"/model_group/make_public";return(await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({model_groups:t})})).json()},A=async()=>{console.log("Getting UI config");let e=$?`${$}/litellm/.well-known/litellm-ui-config`:"/litellm/.well-known/litellm-ui-config",r=await fetch(e),o=await r.json();return console.log("jsonData in getUiConfig:",o),((e,r=null)=>{if(window.localStorage.getItem(x))return;let o=window.location,n=t.default.env.NEXT_PUBLIC_BASE_URL?t.default.env.NEXT_PUBLIC_BASE_URL:o?.origin??null,a=r||n;if(console.log("proxyBaseUrl:",S),console.log("serverRootPath:",e),!a)return console.log("Updated proxyBaseUrl:",S=S??null);e.length>0&&!a.endsWith(e)&&"/"!=e&&(a+=e),console.log("Updated proxyBaseUrl:",S=a)})(o.server_root_path,o.proxy_base_url),o},z=async()=>{let e=S?`${S}/public/model_hub/info`:"/public/model_hub/info",t=await fetch(e);return await t.json()},L=async()=>{let e=S?`${S}/openapi.json`:"/openapi.json",t=await fetch(e);return await t.json()},D=async()=>{try{let e=S?`${S}/public/litellm_model_cost_map`:"/public/litellm_model_cost_map",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}}),r=await t.json();return console.log(`received litellm model cost data: ${r}`),r}catch(e){throw console.error("Failed to get model cost map:",e),e}},H=async e=>{try{let t=S?`${S}/reload/model_cost_map`:"/reload/model_cost_map",r=await fetch(t,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),o=await r.json();return console.log(`Model cost map reload response: ${o}`),o}catch(e){throw console.error("Failed to reload model cost map:",e),e}},V=async(e,t)=>{try{let r=S?`${S}/schedule/model_cost_map_reload?hours=${t}`:`/schedule/model_cost_map_reload?hours=${t}`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),n=await o.json();return console.log(`Schedule model cost map reload response: ${n}`),n}catch(e){throw console.error("Failed to schedule model cost map reload:",e),e}},W=async e=>{try{let t=S?`${S}/schedule/model_cost_map_reload`:"/schedule/model_cost_map_reload",r=await fetch(t,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),o=await r.json();return console.log(`Cancel model cost map reload response: ${o}`),o}catch(e){throw console.error("Failed to cancel model cost map reload:",e),e}},U=async e=>{try{let t=S?`${S}/model/cost_map/source`:"/model/cost_map/source",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw Error(`HTTP ${r.status}: ${e}`)}let o=await r.json();return console.log("Model cost map source info:",o),o}catch(e){throw console.error("Failed to get model cost map source info:",e),e}},G=async e=>{try{let t=S?`${S}/schedule/model_cost_map_reload/status`:"/schedule/model_cost_map_reload/status";console.log("Fetching status from URL:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){console.error(`Status request failed with status: ${r.status}`);let e=await r.text();throw console.error("Error response:",e),Error(`HTTP ${r.status}: ${e}`)}let o=await r.json();return console.log("Model cost map reload status:",o),o}catch(e){throw console.error("Failed to get model cost map reload status:",e),e}},q=async(e,t)=>{try{let o=S?`${S}/model/new`:"/model/new",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),r.default.destroy(),v.default.success(`Model ${t.model_name} created successfully`),a}catch(e){throw console.error("Failed to create key:",e),e}},J=async(e,t)=>{console.log(`model_id in model delete call: ${t}`);try{let r=S?`${S}/model/delete`:"/model/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},K=async(e,t)=>{if(console.log(`budget_id in budget delete call: ${t}`),null!=e)try{let r=S?`${S}/budget/delete`:"/budget/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},X=async(e,t)=>{try{console.log("Form Values in budgetCreateCall:",t),console.log("Form Values after check:",t);let r=S?`${S}/budget/new`:"/budget/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Q=async(e,t)=>{try{console.log("Form Values in budgetUpdateCall:",t),console.log("Form Values after check:",t);let r=S?`${S}/budget/update`:"/budget/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Y=async(e,t)=>{try{let r=S?`${S}/invitation/new`:"/invitation/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Z=async e=>{try{let t=S?`${S}/alerting/settings`:"/alerting/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},ee=async(e,t)=>{try{for(let e of(console.log("Form Values in keyCreateServiceAccountCall:",t),t.description&&(t.metadata||(t.metadata={}),t.metadata.description=t.description,delete t.description,t.metadata=JSON.stringify(t.metadata)),h))if(t[e]){console.log(`formValues.${e}:`,t[e]);try{t[e]=JSON.parse(t[e])}catch(t){throw Error(`Failed to parse ${e}: `+t)}}console.log("Form Values after check:",t);let r=S?`${S}/key/service-account/generate`:"/key/service-account/generate",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},et=async(e,t,r)=>{try{for(let e of(console.log("Form Values in keyCreateCall:",r),r.description&&(r.metadata||(r.metadata={}),r.metadata.description=r.description,delete r.description,r.metadata=JSON.stringify(r.metadata)),h))if(r[e]){console.log(`formValues.${e}:`,r[e]);try{r[e]=JSON.parse(r[e])}catch(t){throw Error(`Failed to parse ${e}: `+t)}}console.log("Form Values after check:",r);let o=S?`${S}/key/generate`:"/key/generate",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t,...r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},er=async(e,t,r,o,n,a)=>{let i=S?`${S}/key/generate`:"/key/generate",l={agent_id:t,key_alias:r,models:o.length>0?o:[]};a&&(l.team_id=a),n&&Object.keys(n).length>0&&(l.metadata=n);let s=await fetch(i,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(l)});if(!s.ok)throw _(await s.text()),Error("Failed to create key for agent");return s.json()},eo=async(e,t,r)=>{try{if(console.log("Form Values in keyCreateCall:",r),r.description&&(r.metadata||(r.metadata={}),r.metadata.description=r.description,delete r.description,r.metadata=JSON.stringify(r.metadata)),r.auto_create_key=!1,r.metadata){console.log("formValues.metadata:",r.metadata);try{r.metadata=JSON.parse(r.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}console.log("Form Values after check:",r);let o=S?`${S}/user/new`:"/user/new",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t,...r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},en=async(e,t)=>{try{let r=S?`${S}/key/delete`:"/key/delete";console.log("in keyDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({keys:[t]})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to create key:",e),e}},ea=async(e,t)=>{try{let r=S?`${S}/user/delete`:"/user/delete";console.log("in userDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_ids:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete user(s):",e),e}},ei=async(e,t)=>{try{let r=S?`${S}/team/delete`:"/team/delete";console.log("in teamDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_ids:[t]})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete key:",e),e}},el=async(e,t=null,r=null,o=null,n=null,a=null,i=null,l=null,s=null,c=null,u=null)=>{try{let d=S?`${S}/user/list`:"/user/list";console.log("in userListCall");let f=new URLSearchParams;if(t&&t.length>0){let e=t.join(",");f.append("user_ids",e)}r&&f.append("page",r.toString()),o&&f.append("page_size",o.toString()),n&&f.append("user_email",n),a&&f.append("role",a),i&&f.append("team",i),l&&f.append("sso_user_ids",l),s&&f.append("sort_by",s),c&&f.append("sort_order",c),u&&u.length>0&&f.append("organization_ids",u.join(","));let p=f.toString();p&&(d+=`?${p}`);let h=await fetch(d,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!h.ok){let e=await h.json(),t=oM(e);throw _(t),Error(t)}let m=await h.json();return console.log("/user/list API Response:",m),m}catch(e){throw console.error("Failed to create key:",e),e}},es=async(e,t)=>{try{let r=S?`${S}/v2/user/info`:"/v2/user/info";t&&(r+=`?user_id=${encodeURIComponent(t)}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to fetch user info v2:",e),e}},ec=async(e,t)=>{try{let r=S?`${S}/team/info`:"/team/info";t&&(r=`${r}?team_id=${encodeURIComponent(t)}`),console.log("in teamInfoCall");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eu=async(e,t,r=null,o=null,n=null,a=1,i=10,l=null,s=null)=>{try{let a=S?`${S}/v2/team/list`:"/v2/team/list";console.log("in teamInfoCall");let i=new URLSearchParams;r&&i.append("user_id",r.toString()),t&&i.append("organization_id",t.toString()),o&&i.append("team_id",o.toString()),n&&i.append("team_alias",n.toString());let l=i.toString();l&&(a+=`?${l}`);let s=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}let c=await s.json();return console.log("/v2/team/list API Response:",c),c}catch(e){throw console.error("Failed to create key:",e),e}},ed=async(e,t,r=null,o=null,n=null)=>{try{let a=S?`${S}/team/list`:"/team/list";console.log("in teamInfoCall");let i=new URLSearchParams;r&&i.append("user_id",r.toString()),t&&i.append("organization_id",t.toString()),o&&i.append("team_id",o.toString()),n&&i.append("team_alias",n.toString());let l=i.toString();l&&(a+=`?${l}`);let s=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}let c=await s.json();return console.log("/team/list API Response:",c),c}catch(e){throw console.error("Failed to create key:",e),e}},ef=async e=>{try{let t=S?`${S}/team/available`:"/team/available";console.log("in availableTeamListCall");let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("/team/available_teams API Response:",o),o}catch(e){throw e}},ep=async(e,t=null,r=null)=>{try{let o=S?`${S}/organization/list`:"/organization/list",n=new URLSearchParams;t&&n.append("org_id",t.toString()),r&&n.append("org_alias",r.toString());let a=n.toString();a&&(o+=`?${a}`);let i=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to create key:",e),e}},eh=async(e,t)=>{try{let r=S?`${S}/organization/info`:"/organization/info";t&&(r=`${r}?organization_id=${t}`),console.log("in teamInfoCall");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},em=async(e,t)=>{try{if(console.log("Form Values in organizationCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw console.error("Failed to parse metadata:",e),Error("Failed to parse metadata: "+e)}}let r=S?`${S}/organization/new`:"/organization/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eg=async(e,t)=>{try{console.log("Form Values in organizationUpdateCall:",t);let r=S?`${S}/organization/update`:"/organization/update",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Update Team Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},ev=async(e,t)=>{try{let r=S?`${S}/organization/delete`:"/organization/delete",o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_ids:[t]})});if(!o.ok){let e=await o.text();throw _(e),Error(`Error deleting organization: ${e}`)}return await o.json()}catch(e){throw console.error("Failed to delete organization:",e),e}},ey=async(e,t)=>{try{let r=S?`${S}/utils/transform_request`:"/utils/transform_request",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create key:",e),e}},eb=async({accessToken:e,endpoint:t,startTime:r,endTime:o,page:n=1,extraQueryParams:a})=>{try{let i,l,s,c,u=(i=t.startsWith("/")?t:`/${t}`,l=S?`${S}${i}`:i,(s=new URLSearchParams).append("start_date",y(r)),s.append("end_date",y(o)),s.append("page_size","1000"),s.append("page",n.toString()),s.append("timezone",new Date().getTimezoneOffset().toString()),a&&Object.entries(a).forEach(([e,t])=>{((e,t,r)=>{if(null!=r){if(Array.isArray(r)){r.length>0&&e.append(t,r.join(","));return}e.append(t,`${r}`)}})(s,e,t)}),(c=s.toString())?`${l}?${c}`:l),d=await fetch(u,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!d.ok){let e=await d.json(),t=oM(e);throw _(t),Error(t)}return await d.json()}catch(e){throw console.error(`Failed to fetch daily activity (${t}):`,e),e}},ew=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/user/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{user_id:n}}),e$=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/tag/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{tags:n}}),eC=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/team/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{team_ids:n,exclude_team_ids:"litellm-dashboard"}}),ex=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/organization/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{organization_ids:n}}),eE=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/customer/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{end_user_ids:n}}),eS=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/agent/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{agent_ids:n}}),ek=async e=>{try{let t=S?`${S}/onboarding/get_token`:"/onboarding/get_token";t+=`?invite_link=${e}`;let r=await fetch(t,{method:"GET",headers:{"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to create key:",e),e}},ej=async(e,t,r,o)=>{let n=S?`${S}/onboarding/claim_token`:"/onboarding/claim_token";try{let a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({invitation_link:t,user_id:r,password:o})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to delete key:",e),e}},eO=async(e,t,r)=>{try{let o=S?`${S}/key/${t}/regenerate`:`/key/${t}/regenerate`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Regenerate key Response:",a),a}catch(e){throw console.error("Failed to regenerate key:",e),e}},eT=!1,eI=null,e_=async(e,t,r,o=1,n=50,a,i,l,s,c)=>{try{console.log("modelInfoCall:",e,t,r,o,n,a,i,l,s,c);let u=S?`${S}/v2/model/info`:"/v2/model/info",d=new URLSearchParams;d.append("include_team_models","true"),d.append("page",o.toString()),d.append("size",n.toString()),a&&a.trim()&&d.append("search",a.trim()),i&&i.trim()&&d.append("modelId",i.trim()),l&&l.trim()&&d.append("teamId",l.trim()),s&&s.trim()&&d.append("sortBy",s.trim()),c&&c.trim()&&d.append("sortOrder",c.trim()),d.toString()&&(u+=`?${d.toString()}`);let f=await fetch(u,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!f.ok){let e=await f.text();throw e+=`error shown=${eT}`,eT||(e.includes("No model list passed")&&(e="No Models Exist. Click Add Model to get started."),v.default.info(e),eT=!0,eI&&clearTimeout(eI),eI=setTimeout(()=>{eT=!1},1e4)),Error("Network response was not ok")}let p=await f.json();return console.log("modelInfoCall:",p),p}catch(e){throw console.error("Failed to create key:",e),e}},eF=async(e,t)=>{try{let r=S?`${S}/v1/model/info`:"/v1/model/info";r+=`?litellm_model_id=${t}`;let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("modelInfoV1Call:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eP=async()=>{let e=S?`${S}/public/model_hub`:"/public/model_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`modelHubPublicModelsCall failed with status ${t.status}`),[])},eR=async()=>{let e=S?`${S}/public/agent_hub`:"/public/agent_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`agentHubPublicModelsCall failed with status ${t.status}`),[])},eN=async()=>{let e=S?`${S}/public/mcp_hub`:"/public/mcp_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`mcpHubPublicServersCall failed with status ${t.status}`),[])},eM=async()=>{let e=S?`${S}/public/skill_hub`:"/public/skill_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`skillHubPublicCall failed with status ${t.status}`),{plugins:[]})},eB=async e=>{try{let t=S?`${S}/model_group/info`:"/model_group/info",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("modelHubCall:",o),o}catch(e){throw console.error("Failed to create key:",e),e}},eA=async e=>{try{let t=S?`${S}/get/allowed_ips`:"/get/allowed_ips",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("getAllowedIPs:",o),o.data}catch(e){throw console.error("Failed to get allowed IPs:",e),e}},ez=async(e,t)=>{try{let r=S?`${S}/add/allowed_ip`:"/add/allowed_ip",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({ip:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("addAllowedIP:",n),n}catch(e){throw console.error("Failed to add allowed IP:",e),e}},eL=async(e,t)=>{try{let r=S?`${S}/delete/allowed_ip`:"/delete/allowed_ip",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({ip:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("deleteAllowedIP:",n),n}catch(e){throw console.error("Failed to delete allowed IP:",e),e}},eD=async(e,t)=>{try{let r=S?`${S}/model_hub/update_useful_links`:"/model_hub/update_useful_links",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({useful_links:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create key:",e),e}},eH=async(e,t,r,o=!1,n=null,a=!1,i=!1,l)=>{console.log("in /models calls, globalLitellmHeaderName",R);try{let t=S?`${S}/models`:"/models",r=new URLSearchParams;r.append("include_model_access_groups","True"),!0===o&&r.append("return_wildcard_routes","True"),!0===i&&r.append("only_model_access_groups","True"),n&&r.append("team_id",n.toString()),l&&r.append("scope",l),r.toString()&&(t+=`?${r.toString()}`);let a=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return await a.json()}catch(e){throw console.error("Failed to create key:",e),e}},eV=async e=>{try{let t=S?`${S}/global/spend/teams`:"/global/spend/teams";console.log("in teamSpendLogsCall:",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eW=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/tags`:"/global/spend/tags";t&&r&&(n=`${n}?start_date=${t}&end_date=${r}`),o&&(n+=`&tags=${o.join(",")}`),console.log("in tagsSpendLogsCall:",n);let a=await fetch(`${n}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to create key:",e),e}},eU=async e=>{try{let t=S?`${S}/global/spend/all_tag_names`:"/global/spend/all_tag_names";console.log("in global/spend/all_tag_names call",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eG=async e=>{try{let t=S?`${S}/customer/list`:"/customer/list";console.log("in customer/list",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to fetch end users:",e),e}},eq=async(e,t)=>{try{let r=S?`${S}/user/filter/ui`:"/user/filter/ui",o=new URLSearchParams;t.get("user_email")&&o.append("user_email",t.get("user_email")),t.get("user_id")&&o.append("user_id",t.get("user_id")),t.get("team_id")&&o.append("team_id",t.get("team_id"));let n=o.toString(),a=n?`${r}?${n}`:r,i=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to create key:",e),e}},eJ=async({accessToken:e,start_date:t,end_date:r,page:o=1,page_size:n=50,params:a={}})=>{try{let i=S?`${S}/spend/logs/ui`:"/spend/logs/ui",l=new URLSearchParams;for(let[e,i]of(l.append("start_date",t),l.append("end_date",r),l.append("page",o.toString()),l.append("page_size",n.toString()),Object.entries(a)))null!=i&&("min_spend"===e||"max_spend"===e?l.append(e,i.toString()):"string"==typeof i&&""!==i&&l.append(e,String(i)));let s=l.toString();s&&(i+=`?${s}`);let c=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!c.ok){let e=await c.json(),t=oM(e);throw _(t),Error(t)}let u=await c.json();return console.log("Spend Logs Response:",u),u}catch(e){throw console.error("Failed to fetch spend logs:",e),e}},eK=async e=>{try{let t=S?`${S}/global/spend/logs`:"/global/spend/logs",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eX=async e=>{try{let t=S?`${S}/global/spend/keys?limit=5`:"/global/spend/keys?limit=5",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eQ=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/end_users`:"/global/spend/end_users",a="";a=t?JSON.stringify({api_key:t,startTime:r,endTime:o}):JSON.stringify({startTime:r,endTime:o});let i={method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:a},l=await fetch(n,i);if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}let s=await l.json();return console.log(s),s}catch(e){throw console.error("Failed to create key:",e),e}},eY=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/provider`:"/global/spend/provider";r&&o&&(n+=`?start_date=${r}&end_date=${o}`),t&&(n+=`&api_key=${t}`);let a={method:"GET",headers:{[R]:`Bearer ${e}`}},i=await fetch(n,a);if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}let l=await i.json();return console.log(l),l}catch(e){throw console.error("Failed to fetch spend data:",e),e}},eZ=async(e,t,r)=>{try{let o=S?`${S}/global/activity`:"/global/activity";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e0=async(e,t,r)=>{try{let o=S?`${S}/global/activity/cache_hits`:"/global/activity/cache_hits";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e1=async(e,t,r)=>{try{let o=S?`${S}/global/activity/model`:"/global/activity/model";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e2=async e=>{try{let t=S?`${S}/global/spend/models?limit=5`:"/global/spend/models?limit=5",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},e4=async(e,t)=>{try{let r=S?`${S}/v2/key/info`:"/v2/key/info",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({keys:t})});if(!o.ok){let e=await o.text();if(e.includes("Invalid proxy server token passed"))throw Error("Invalid proxy server token passed");throw _(e),Error("Network response was not ok")}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to create key:",e),e}},e6=async(e,t,r,o)=>{try{console.log("Sending model connection test request:",JSON.stringify(t));let n=S?`${S}/health/test_connection`:"/health/test_connection",a=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({litellm_params:t,model_info:r,mode:o})}),i=a.headers.get("content-type");if(!i||!i.includes("application/json")){let e=await a.text();throw console.error("Received non-JSON response:",e),Error(`Received non-JSON response (${a.status}: ${a.statusText}). Check network tab for details.`)}let l=await a.json();if((!a.ok||"error"===l.status)&&"error"!==l.status)return{status:"error",message:l.error?.message||`Connection test failed: ${a.status} ${a.statusText}`};return l}catch(e){throw console.error("Model connection test error:",e),e}},e3=async(e,t)=>{try{console.log("entering keyInfoV1Call");let r=S?`${S}/key/info`:"/key/info";r=`${r}?key=${t}`;let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(console.log("response",o),!o.ok){let e=await o.text();_(e),v.default.fromBackend("Failed to fetch key info - "+e)}let n=await o.json();return console.log("data",n),n}catch(e){throw console.error("Failed to fetch key info:",e),e}},e7=async(e,t,r,o,n,a,i,l,s=null,c=null,u=null,d=null)=>{try{let f=S?`${S}/key/list`:"/key/list";console.log("in keyListCall");let p=new URLSearchParams;r&&p.append("team_id",r.toString()),t&&p.append("organization_id",t.toString()),o&&p.append("key_alias",o),a&&p.append("key_hash",a),n&&p.append("user_id",n.toString()),i&&p.append("page",i.toString()),l&&p.append("size",l.toString()),s&&p.append("sort_by",s),c&&p.append("sort_order",c),u&&p.append("expand",u),d&&p.append("status",d),p.append("return_full_object","true"),p.append("include_team_keys","true"),p.append("include_created_by_keys","true");let h=p.toString();h&&(f+=`?${h}`);let m=await fetch(f,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!m.ok){let e=await m.json(),t=oM(e);throw _(t),Error(t)}let g=await m.json();return console.log("/team/list API Response:",g),g}catch(e){throw console.error("Failed to create key:",e),e}},e5=async(e,t=1,r=50,o,n)=>{try{let a=new URLSearchParams(Object.entries({page:String(t),size:String(r),...o?{search:o}:{},...n?{team_id:n}:{}})),i=S?`${S}/key/aliases`:"/key/aliases";i=`${i}?${a}`;let l=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}let s=await l.json();return console.log("/key/aliases API Response:",s),s}catch(e){throw console.error("Failed to fetch key aliases:",e),e}},e9=async(e,t,r,o=null)=>{try{let n=S?`${S}/user/daily/activity/aggregated`:"/user/daily/activity/aggregated",a=new URLSearchParams,i=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`};a.append("start_date",i(t)),a.append("end_date",i(r)),a.append("timezone",new Date().getTimezoneOffset().toString()),o&&a.append("user_id",o);let l=a.toString();l&&(n+=`?${l}`);let s=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}return await s.json()}catch(e){throw console.error("Failed to fetch aggregated user daily activity:",e),e}},e8=async e=>{try{let t=S?`${S}/user/available_roles`:"/user/available_roles",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("response from user/available_role",o),o}catch(e){throw e}},te=async(e,t)=>{try{if(console.log("Form Values in teamCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let r=S?`${S}/team/new`:"/team/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tt=async(e,t)=>{try{if(console.log("Form Values in credentialCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let r=S?`${S}/credentials`:"/credentials",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tr=async e=>{try{let t=S?`${S}/credentials`:"/credentials";console.log("in credentialListCall");let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("/credentials API Response:",o),o}catch(e){throw console.error("Failed to create key:",e),e}},to=async(e,t,r)=>{try{let o=S?`${S}/credentials`:"/credentials";t?o+=`/by_name/${t}`:r&&(o+=`/by_model/${r}`),console.log("in credentialListCall");let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("/credentials API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tn=async(e,t)=>{try{let r=S?`${S}/credentials/${t}`:`/credentials/${t}`;console.log("in credentialDeleteCall:",t);let o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete key:",e),e}},ta=async(e,t,r)=>{try{if(console.log("Form Values in credentialUpdateCall:",r),r.metadata){console.log("formValues.metadata:",r.metadata);try{r.metadata=JSON.parse(r.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let o=S?`${S}/credentials/${t}`:`/credentials/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},ti=async(e,t)=>{try{if(console.log("Form Values in keyUpdateCall:",t),t.model_tpm_limit){console.log("formValues.model_tpm_limit:",t.model_tpm_limit);try{t.model_tpm_limit=JSON.parse(t.model_tpm_limit)}catch(e){throw Error("Failed to parse model_tpm_limit: "+e)}}if(t.model_rpm_limit){console.log("formValues.model_rpm_limit:",t.model_rpm_limit);try{t.model_rpm_limit=JSON.parse(t.model_rpm_limit)}catch(e){throw Error("Failed to parse model_rpm_limit: "+e)}}let r=S?`${S}/key/update`:"/key/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let n=await o.json();return console.log("Update key Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tl=async(e,t)=>{try{console.log("Form Values in teamUpateCall:",t);let r=S?`${S}/team/update`:"/team/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),v.default.fromBackend("Failed to update team settings: "+e),Error(e)}let n=await o.json();return console.log("Update Team Response:",n),n}catch(e){throw console.error("Failed to update team:",e),e}},ts=async(e,t,r)=>{try{console.log("Form Values in modelUpateCall:",t);let o=S?`${S}/model/${r}/update`:`/model/${r}/update`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error update from the server:",e),Error("Network response was not ok")}let a=await n.json();return console.log("Update model Response:",a),a}catch(e){throw console.error("Failed to update model:",e),e}},tc=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/team/member_add`:"/team/member_add",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_id:t,member:r})});if(!n.ok){let e=await n.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to add team member",o=Error(r);throw o.raw=t,o}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tu=async(e,t,r,o,n)=>{try{console.log("Bulk add team members:",{teamId:t,members:r,maxBudgetInTeam:o});let a=S?`${S}/team/bulk_member_add`:"/team/bulk_member_add",i={team_id:t};n?i.all_users=!0:i.members=r,null!=o&&(i.max_budget_in_team=o);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to bulk add team members",o=Error(r);throw o.raw=t,o}let s=await l.json();return console.log("Bulk team member add API Response:",s),s}catch(e){throw console.error("Failed to bulk add team members:",e),e}},td=async(e,t,r)=>{try{console.log("Form Values in teamMemberUpdateCall:",r),console.log("Budget value:",r.max_budget_in_team),console.log("TPM limit:",r.tpm_limit),console.log("RPM limit:",r.rpm_limit);let o=S?`${S}/team/member_update`:"/team/member_update",n={team_id:t,role:r.role,user_id:r.user_id};void 0!==r.user_email&&(n.user_email=r.user_email),void 0!==r.max_budget_in_team&&null!==r.max_budget_in_team&&(n.max_budget_in_team=r.max_budget_in_team),void 0!==r.tpm_limit&&null!==r.tpm_limit&&(n.tpm_limit=r.tpm_limit),void 0!==r.rpm_limit&&null!==r.rpm_limit&&(n.rpm_limit=r.rpm_limit),void 0!==r.allowed_models&&(n.allowed_models=r.allowed_models),console.log("Final request body:",n);let a=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(n)});if(!a.ok){let e=await a.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to add team member",o=Error(r);throw o.raw=t,o}let i=await a.json();return console.log("API Response:",i),i}catch(e){throw console.error("Failed to update team member:",e),e}},tf=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/team/member_delete`:"/team/member_delete",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_id:t,...void 0!==r.user_email&&{user_email:r.user_email},...void 0!==r.user_id&&{user_id:r.user_id}})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tp=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/organization/member_add`:"/organization/member_add",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,member:r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create organization member:",e),e}},th=async(e,t,r)=>{try{console.log("Form Values in organizationMemberDeleteCall:",r);let o=S?`${S}/organization/member_delete`:"/organization/member_delete",n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,user_id:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to delete organization member:",e),e}},tm=async(e,t,r)=>{try{console.log("Form Values in organizationMemberUpdateCall:",r);let o=S?`${S}/organization/member_update`:"/organization/member_update",n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,...r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to update organization member:",e),e}},tg=async(e,t,r)=>{try{console.log("Form Values in userUpdateUserCall:",t);let o=S?`${S}/user/update`:"/user/update",n={...t};null!==r&&(n.user_role=r),n=JSON.stringify(n);let a=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:n});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log("API Response:",i),i}catch(e){throw console.error("Failed to create key:",e),e}},tv=async(e,t,r,o=!1)=>{try{let n;console.log("Form Values in userUpdateUserCall:",t);let a=S?`${S}/user/bulk_update`:"/user/bulk_update";if(o)n=JSON.stringify({all_users:!0,user_updates:t});else if(r&&r.length>0){let e=[];for(let o of r)e.push({user_id:o,...t});n=JSON.stringify({users:e})}else throw Error("Must provide either userIds or set allUsers=true");let i=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:n});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}let l=await i.json();return console.log("API Response:",l),l}catch(e){throw console.error("Failed to create key:",e),e}},ty=async(e,t)=>{try{let r=S?`${S}/health/services?service=${t}`:`/health/services?service=${t}`;console.log("Checking Slack Budget Alerts service health");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}return await o.json()}catch(e){throw console.error("Failed to perform health check:",e),e}},tb=async e=>{try{let t=S?`${S}/budget/list`:"/budget/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tw=async(e,t,r)=>{try{let t=S?`${S}/get/config/callbacks`:"/get/config/callbacks",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},t$=async e=>{try{let t=S?`${S}/config/list?config_type=general_settings`:"/config/list?config_type=general_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tC=async e=>{try{let t=S?`${S}/router/settings`:"/router/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get router settings:",e),e}},tx=async e=>{try{let t=S?`${S}/cache/settings`:"/cache/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get cache settings:",e),e}},tE=async(e,t)=>{try{let r=S?`${S}/cache/settings/test`:"/cache/settings/test",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({cache_settings:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to test cache connection:",e),e}},tS=async(e,t)=>{try{let r=S?`${S}/cache/settings`:"/cache/settings",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({cache_settings:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update cache settings:",e),e}},tk=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint`:"/config/pass_through_endpoint";t&&(r+=`/team/${t}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tj=async(e,t)=>{try{let r=S?`${S}/config/field/info?field_name=${t}`:`/config/field/info?field_name=${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tO=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint`:"/config/pass_through_endpoint",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tT=async(e,t,r)=>{try{let o=S?`${S}/config/field/update`:"/config/field/update",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({field_name:t,field_value:r,config_type:"general_settings"})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return v.default.success("Successfully updated value!"),a}catch(e){throw console.error("Failed to set callbacks:",e),e}},tI=async(e,t)=>{try{let r=S?`${S}/config/field/delete`:"/config/field/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({field_name:t,config_type:"general_settings"})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return v.default.success("Field reset on proxy"),n}catch(e){throw console.error("Failed to get callbacks:",e),e}},t_=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint?endpoint_id=${t}`:`/config/pass_through_endpoint?endpoint_id=${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tF=async(e,t)=>{try{let r=S?`${S}/config/update`:"/config/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tP=async(e,t)=>{try{let r=S?`${S}/health?model_id=${encodeURIComponent(t)}`:`/health?model_id=${encodeURIComponent(t)}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error(`Failed to call /health for model id ${t}:`,e),e}},tR=async e=>{try{let t=S?`${S}/cache/ping`:"/cache/ping",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error(e)}return await r.json()}catch(e){throw console.error("Failed to call /cache/ping:",e),e}},tN=async e=>{try{let t=S?`${S}/health/latest`:"/health/latest",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error(e)}return await r.json()}catch(e){throw console.error("Failed to call /health/latest:",e),e}},tM=async e=>{try{console.log("Getting proxy UI settings"),console.log("proxyBaseUrl in getProxyUISettings:",S);let t=S?`${S}/sso/get/ui_settings`:"/sso/get/ui_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tB=async e=>{try{let t=S?`${S}/get/ui_settings`:"/get/ui_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);return console.error("Failed to get UI settings:",t),null}return await r.json()}catch(e){return console.error("Failed to get UI settings:",e),null}},tA=async e=>{try{let t=S?`${S}/get/mcp_semantic_filter_settings`:"/get/mcp_semantic_filter_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get MCP semantic filter settings:",e),e}},tz=async(e,t)=>{try{let r=S?`${S}/update/mcp_semantic_filter_settings`:"/update/mcp_semantic_filter_settings",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP semantic filter settings:",e),e}},tL=async(e,t,r)=>{try{let o=S?`${S}/v1/responses`:"/v1/responses",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({model:t,input:[{role:"user",content:r,type:"message"}],tools:[{type:"mcp",server_url:"litellm_proxy",require_approval:"never"}],tool_choice:"required"})}),a=n.headers.get("x-litellm-semantic-filter"),i=n.headers.get("x-litellm-semantic-filter-tools");if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return{data:await n.json(),headers:{filter:a,tools:i}}}catch(e){throw console.error("Failed to test MCP semantic filter:",e),e}},tD=async e=>{try{let t=S?`${S}/v2/guardrails/list`:"/v2/guardrails/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(`v2 guardrails/list returned ${r.status}`);return await r.json()}catch(t){console.log("v2/guardrails/list failed, falling back to v1:",t);try{let t=S?`${S}/guardrails/list`:"/guardrails/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get guardrails list:",e),e}}},tH=async(e,t)=>{let r=S?`${S}/guardrails/submissions`:"/guardrails/submissions",o=new URLSearchParams;t?.status&&o.set("status",t.status),t?.team_id&&o.set("team_id",t.team_id),t?.team_guardrail!==void 0&&o.set("team_guardrail",String(t.team_guardrail)),t?.search&&o.set("search",t.search);let n=o.toString()?`${r}?${o.toString()}`:r,a=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=oM(await a.json().catch(()=>({})));throw _(e),Error(e)}return a.json()},tV=async(e,t)=>{let r=S?`${S}/guardrails/submissions/${encodeURIComponent(t)}/approve`:`/guardrails/submissions/${encodeURIComponent(t)}/approve`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=oM(await o.json().catch(()=>({})));throw _(e),Error(e)}return o.json()},tW=async(e,t)=>{let r=S?`${S}/guardrails/submissions/${encodeURIComponent(t)}/reject`:`/guardrails/submissions/${encodeURIComponent(t)}/reject`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=oM(await o.json().catch(()=>({})));throw _(e),Error(e)}return o.json()},tU=async(e,t,r)=>{try{let o=S?`${S}/guardrails/usage/overview`:"/guardrails/usage/overview",n=new URLSearchParams;t&&n.append("start_date",t),r&&n.append("end_date",r),n.toString()&&(o+=`?${n.toString()}`);let a=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json();throw Error(oM(e))}return a.json()}catch(e){throw console.error("Failed to get guardrails usage overview:",e),e}},tG=async(e,t,r,o)=>{try{let n=S?`${S}/guardrails/usage/detail/${encodeURIComponent(t)}`:`/guardrails/usage/detail/${encodeURIComponent(t)}`,a=new URLSearchParams;r&&a.append("start_date",r),o&&a.append("end_date",o),a.toString()&&(n+=`?${a.toString()}`);let i=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json();throw Error(oM(e))}return i.json()}catch(e){throw console.error("Failed to get guardrails usage detail:",e),e}},tq=async(e,t)=>{try{let r=S?`${S}/guardrails/usage/logs`:"/guardrails/usage/logs",o=new URLSearchParams;t.guardrailId&&o.append("guardrail_id",t.guardrailId),t.policyId&&o.append("policy_id",t.policyId),null!=t.page&&o.append("page",String(t.page)),null!=t.pageSize&&o.append("page_size",String(t.pageSize)),t.action&&o.append("action",t.action),t.startDate&&o.append("start_date",t.startDate),t.endDate&&o.append("end_date",t.endDate),o.toString()&&(r+=`?${o.toString()}`);let n=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json();throw Error(oM(e))}return n.json()}catch(e){throw console.error("Failed to get guardrails usage logs:",e),e}},tJ=async e=>{try{let t=S?`${S}/policies/list`:"/policies/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policies list:",e),e}},tK=async(e,t,r)=>{try{let o=S?`${S}/utils/test_policies_and_guardrails`:"/utils/test_policies_and_guardrails",n=await fetch(o,{method:"POST",signal:r,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({policy_names:t.policy_names??null,guardrail_names:t.guardrail_names??null,inputs:t.inputs??null,inputs_list:t.inputs_list??null,request_data:t.request_data??{},input_type:t.input_type??"request",agent_id:t.agent_id??null})});if(!n.ok){let e=await n.text(),t="Failed to test policies and guardrails";try{let r=JSON.parse(e);r.detail?t="string"==typeof r.detail?r.detail:JSON.stringify(r.detail):r.message&&(t=r.message)}catch{t=e||t}throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to test policies and guardrails:",e),e}},tX=async(e,t)=>{try{let r=S?`${S}/policy/info/${t}`:`/policy/info/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error(`Failed to get policy info for ${t}:`,e),e}},tQ=async e=>{try{let t=S?`${S}/policy/templates`:"/policy/templates",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policy templates:",e),e}},tY=async(e,t,r,o,n)=>{try{let a=S?`${S}/policy/templates/enrich`:"/policy/templates/enrich",i={template_id:t,parameters:r};o&&(i.model=o),n&&(i.competitors=n);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}return await l.json()}catch(e){throw console.error("Failed to enrich policy template:",e),e}},tZ=async(e,t,r,o)=>{try{let n=S?`${S}/policy/templates/suggest`:"/policy/templates/suggest",a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({attack_examples:t.filter(e=>e.trim()),description:r,model:o})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return a.json()}catch(e){throw console.error("Failed to suggest policy templates:",e),e}},t0=async(e,t,r)=>{try{let o=S?`${S}/policy/templates/test`:"/policy/templates/test",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({guardrail_definitions:t,text:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return n.json()}catch(e){throw console.error("Failed to test policy template:",e),e}},t1=async(e,t,r,o,n,a,i,l,s)=>{let c=S?`${S}/policy/templates/enrich/stream`:"/policy/templates/enrich/stream",u={template_id:t,parameters:r,model:o};l?.instruction&&(u.instruction=l.instruction),l?.existingCompetitors&&(u.competitors=l.existingCompetitors);let d=await fetch(c,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(u)});if(!d.ok){let e=oM(await d.json());throw _(e),Error(e)}let f=d.body?.getReader();if(!f)throw Error("No response body");let p=new TextDecoder,h="";for(;;){let{done:e,value:t}=await f.read();if(e)break;let r=(h+=p.decode(t,{stream:!0})).split("\n");for(let e of(h=r.pop()||"",r))if(e.startsWith("data: "))try{let t=JSON.parse(e.slice(6));"competitor"===t.type?n(t.name):"status"===t.type?s?.(t.message):"done"===t.type?a(t):"error"===t.type&&i?.(t.message)}catch{}}},t2=async(e,t,r,o,n,a,i,l,s)=>{let c=S?`${S}/usage/ai/chat`:"/usage/ai/chat",u=await fetch(c,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({messages:t,model:r}),signal:s});if(!u.ok){let e=oM(await u.json());throw _(e),Error(e)}let d=u.body?.getReader();if(!d)throw Error("No response body");let f=new TextDecoder,p="";for(;;){let{done:e,value:t}=await d.read();if(e)break;let r=(p+=f.decode(t,{stream:!0})).split("\n");for(let e of(p=r.pop()||"",r))if(e.startsWith("data: "))try{let t=JSON.parse(e.slice(6));"chunk"===t.type?o(t.content):"status"===t.type?i?.(t.message):"tool_call"===t.type?l?.(t):"done"===t.type?n():"error"===t.type&&a?.(t.message)}catch{}}},t4=async(e,t)=>{try{let r=S?`${S}/policies`:"/policies",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create policy:",e),e}},t6=async(e,t,r)=>{try{let o=S?`${S}/policies/${t}`:`/policies/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update policy:",e),e}},t3=async(e,t)=>{try{let r=encodeURIComponent(t),o=S?`${S}/policies/name/${r}/versions`:`/policies/name/${r}/versions`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to list policy versions:",e),e}},t7=async(e,t,r)=>{try{let o=encodeURIComponent(t),n=S?`${S}/policies/name/${o}/versions`:`/policies/name/${o}/versions`,a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({source_policy_id:r??void 0})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return await a.json()}catch(e){throw console.error("Failed to create policy version:",e),e}},t5=async(e,t,r)=>{try{let o=S?`${S}/policies/${t}/status`:`/policies/${t}/status`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({version_status:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update policy version status:",e),e}},t9=async(e,t)=>{try{let r=S?`${S}/policies/${t}`:`/policies/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete policy:",e),e}},t8=async(e,t)=>{try{let r=S?`${S}/policies/${t}`:`/policies/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get policy info:",e),e}},re=async e=>{try{let t=S?`${S}/policies/attachments/list`:"/policies/attachments/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policy attachments list:",e),e}},rt=async(e,t)=>{try{let r=S?`${S}/policies/attachments`:"/policies/attachments",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create policy attachment:",e),e}},rr=async(e,t)=>{try{let r=S?`${S}/policies/attachments/${t}`:`/policies/attachments/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete policy attachment:",e),e}},ro=async(e,t,r)=>{try{let o=S?`${S}/policies/test-pipeline`:"/policies/test-pipeline",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({pipeline:t,test_messages:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to test pipeline:",e),e}},rn=async(e,t)=>{try{let r=S?`${S}/policies/${t}/resolved-guardrails`:`/policies/${t}/resolved-guardrails`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get resolved guardrails:",e),e}},ra=async(e,t)=>{try{let r=S?`${S}/policies/resolve`:"/policies/resolve",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to resolve policies:",e),e}},ri=async(e,t)=>{try{let r=S?`${S}/policies/attachments/estimate-impact`:"/policies/attachments/estimate-impact",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to estimate attachment impact:",e),e}},rl=async(e,t)=>{try{let r=S?`${S}/prompts/list`:"/prompts/list";t&&(r+=`?environment=${encodeURIComponent(t)}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get prompts list:",e),e}},rs=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}/info`:`/prompts/${t}/info`;r&&(o+=`?environment=${encodeURIComponent(r)}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to get prompt info:",e),e}},rc=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}/versions`:`/prompts/${t}/versions`;r&&(o+=`?environment=${encodeURIComponent(r)}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw 404!==n.status&&_(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to get prompt versions:",e),e}},ru=async(e,t)=>{try{let r=S?`${S}/prompts`:"/prompts",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create prompt:",e),e}},rd=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}`:`/prompts/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update prompt:",e),e}},rf=async(e,t)=>{try{let r=S?`${S}/prompts/${t}`:`/prompts/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete prompt:",e),e}},rp=async(e,t)=>{try{let r=new FormData;r.append("file",t);let o=S?`${S}/utils/dotprompt_json_converter`:"/utils/dotprompt_json_converter",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`},body:r});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to convert prompt file:",e),e}},rh=async(e,t)=>{try{let r=S?`${S}/v1/agents`:"/v1/agents",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Create agent response:",n),n}catch(e){throw console.error("Failed to create agent:",e),e}},rm=async(e,t)=>{try{let r=S?`${S}/guardrails`:"/guardrails",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({guardrail:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Create guardrail response:",n),n}catch(e){throw console.error("Failed to create guardrail:",e),e}},rg=async(e,t,r)=>{try{let o=S?`${S}/spend/logs/ui/${t}?start_date=${encodeURIComponent(r)}`:`/spend/logs/ui/${t}?start_date=${encodeURIComponent(r)}`;console.log("Fetching log details from:",o);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Fetched log details:",a),a}catch(e){throw console.error("Failed to fetch log details:",e),e}},rv=async e=>{try{let t=S?`${S}/get/internal_user_settings`:"/get/internal_user_settings";console.log("Fetching SSO settings from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched SSO settings:",o),o}catch(e){throw console.error("Failed to fetch SSO settings:",e),e}},ry=async(e,t)=>{try{let r=S?`${S}/update/internal_user_settings`:"/update/internal_user_settings";console.log("Updating internal user settings:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Updated internal user settings:",n),v.default.success("Internal user settings updated successfully"),n}catch(e){throw console.error("Failed to update internal user settings:",e),e}},rb=async e=>{try{let t=S?`${S}/v1/mcp/openapi-registry`:"/v1/mcp/openapi-registry",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json();throw Error(oM(e))}return await r.json()}catch(e){throw console.error("Failed to fetch OpenAPI registry:",e),e}},rw=async e=>{try{let t=S?`${S}/v1/mcp/discover`:"/v1/mcp/discover",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch discoverable MCP servers:",e),e}},r$=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server";if(t){let e=new URLSearchParams;e.append("team_id",t),r=`${r}?${e.toString()}`}console.log("Fetching MCP servers from:",r);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Fetched MCP servers:",n),n}catch(e){throw console.error("Failed to fetch MCP servers:",e),e}},rC=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server/health`:"/v1/mcp/server/health";if(t&&t.length>0){let e=new URLSearchParams;t.forEach(t=>e.append("server_ids",t)),r=`${r}?${e.toString()}`}console.log("Fetching MCP server health from:",r);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Fetched MCP server health:",n),n}catch(e){throw console.error("Failed to fetch MCP server health:",e),e}},rx=async e=>{try{let t=S?`${S}/v1/mcp/access_groups`:"/v1/mcp/access_groups";console.log("Fetching MCP access groups from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched MCP access groups:",o),o.access_groups||[]}catch(e){throw console.error("Failed to fetch MCP access groups:",e),e}},rE=async e=>{try{let t=S?`${S}/v1/mcp/network/client-ip`:"/v1/mcp/network/client-ip",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok)return null;return(await r.json()).ip||null}catch{return null}},rS=async(e,t)=>{try{console.log("Form Values in createMCPServer:",t);let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},rk=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server",o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP server:",e),e}},rj=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/server/${t}`;console.log("in deleteMCPServer:",t);let o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}}catch(e){throw console.error("Failed to delete key:",e),e}},rO=async e=>{try{let t=(S?`${S}`:"")+"/v1/mcp/toolset",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch MCP toolsets:",e),e}},rT=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/toolset",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create MCP toolset:",e),e}},rI=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/toolset",o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP toolset:",e),e}},r_=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/toolset/${t}`,o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}}catch(e){throw console.error("Failed to delete MCP toolset:",e),e}},rF=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/server/register",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return o.json()}catch(e){throw console.error("Failed to register MCP server:",e),e}},rP=async e=>{try{let t=(S?`${S}`:"")+"/v1/mcp/server/submissions",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return r.json()}catch(e){throw console.error("Failed to fetch MCP submissions:",e),e}},rR=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/server/${encodeURIComponent(t)}/approve`,o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return o.json()}catch(e){throw console.error("Failed to approve MCP server:",e),e}},rN=async(e,t,r)=>{try{let o=(S?`${S}`:"")+`/v1/mcp/server/${encodeURIComponent(t)}/reject`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({review_notes:r??null})});if(!n.ok){let e=await n.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return n.json()}catch(e){throw console.error("Failed to reject MCP server:",e),e}},rM=async e=>{try{let t=S?`${S}/search_tools/list`:"/search_tools/list";console.log("Fetching search tools from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched search tools:",o),o}catch(e){throw console.error("Failed to fetch search tools:",e),e}},rB=async(e,t)=>{try{console.log("Creating search tool with values:",t);let r=S?`${S}/search_tools`:"/search_tools",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({search_tool:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Created search tool:",n),n}catch(e){throw console.error("Failed to create search tool:",e),e}},rA=async(e,t,r)=>{try{console.log("Updating search tool with ID:",t,"values:",r);let o=S?`${S}/search_tools/${t}`:`/search_tools/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({search_tool:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Updated search tool:",a),a}catch(e){throw console.error("Failed to update search tool:",e),e}},rz=async(e,t)=>{try{let r=(S?`${S}`:"")+`/search_tools/${t}`;console.log("Deleting search tool:",t);let o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Deleted search tool:",n),n}catch(e){throw console.error("Failed to delete search tool:",e),e}},rL=async e=>{try{let t=S?`${S}/search_tools/ui/available_providers`:"/search_tools/ui/available_providers";console.log("Fetching available search providers from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched available search providers:",o),o}catch(e){throw console.error("Failed to fetch available search providers:",e),e}},rD=async(e,t)=>{try{let r=S?`${S}/search_tools/test_connection`:"/search_tools/test_connection";console.log("Testing search tool connection:",r);let o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({litellm_params:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Test connection response:",n),n}catch(e){throw console.error("Failed to test search tool connection:",e),e}},rH=async(e,t,r)=>{let o,n=S?`${S}/mcp-rest/tools/list?server_id=${t}`:`/mcp-rest/tools/list?server_id=${t}`;console.log("Fetching MCP tools from:",n);let a={[R]:`Bearer ${e}`,"Content-Type":"application/json",...r};try{o=await fetch(n,{method:"GET",headers:a})}catch(e){return console.error("Failed to fetch MCP tools (network error):",e),{tools:[],error:"network_error",message:e instanceof Error?e.message:"Failed to fetch MCP tools",stack_trace:null}}let i=null;try{i=await o.json()}catch(e){return console.error("Failed to parse MCP tools response:",e),{tools:[],error:"parse_error",message:"Failed to parse MCP tools response",status:o.status,statusText:o.statusText,stack_trace:null}}if(console.log("Fetched MCP tools response:",i),!o.ok){let e=i&&(i.message||i.error)||"Failed to fetch MCP tools";return{tools:[],error:i&&i.error||`http_${o.status}`,message:e,status:o.status,statusText:o.statusText,details:i,stack_trace:null}}return i},rV=async(e,t,r,o,n)=>{try{let a=S?`${S}/mcp-rest/tools/call`:"/mcp-rest/tools/call";console.log("Calling MCP tool:",r,"with arguments:",o,"for server:",t);let i={[R]:`Bearer ${e}`,"Content-Type":"application/json",...n?.customHeaders||{}},l={server_id:t,name:r,arguments:o};n?.guardrails&&n.guardrails.length>0&&(l.litellm_metadata={guardrails:n.guardrails});let s=await fetch(a,{method:"POST",headers:i,body:JSON.stringify(l)});if(!s.ok){let e="Network response was not ok",t=null,r=await s.text();try{let o=JSON.parse(r);o.detail?"string"==typeof o.detail?e=o.detail:"object"==typeof o.detail&&(e=o.detail.message||o.detail.error||"An error occurred",t=o.detail):e=o.message||o.error||e}catch(t){console.error("Failed to parse JSON error response:",t),r&&(e=r)}let o=Error(e);throw o.status=s.status,o.statusText=s.statusText,o.details=t,_(e),o}let c=await s.json();return console.log("MCP tool call response:",c),c}catch(e){throw console.error("Failed to call MCP tool:",e),console.error("Error type:",typeof e),e instanceof Error&&(console.error("Error message:",e.message),console.error("Error stack:",e.stack)),e}},rW=async(e,t)=>{try{let r=S?`${S}/tag/new`:"/tag/new",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error creating tag:",e),e}},rU=async(e,t)=>{try{let r=S?`${S}/tag/update`:"/tag/update",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error updating tag:",e),e}},rG=async(e,t)=>{try{let r=S?`${S}/tag/info`:"/tag/info",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({names:t})});if(!o.ok){let e=await o.text();return await _(e),{}}return await o.json()}catch(e){throw console.error("Error getting tag info:",e),e}},rq=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`},rJ=async(e,t,r)=>{try{let o=S?`${S}/tag/list`:"/tag/list";if(t&&r){let e=new URLSearchParams({start_date:rq(t),end_date:rq(r)});o=`${o}?${e.toString()}`}let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!n.ok){let e=await n.text();return await _(e),{}}return await n.json()}catch(e){throw console.error("Error listing tags:",e),e}},rK=async(e,t)=>{try{let r=S?`${S}/tag/delete`:"/tag/delete",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({name:t})});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error deleting tag:",e),e}},rX=async e=>{try{let t=S?`${S}/get/default_team_settings`:"/get/default_team_settings";console.log("Fetching default team settings from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched default team settings:",o),o}catch(e){throw console.error("Failed to fetch default team settings:",e),e}},rQ=async(e,t)=>{try{let r=S?`${S}/update/default_team_settings`:"/update/default_team_settings";console.log("Updating default team settings:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Updated default team settings:",n),n}catch(e){throw console.error("Failed to update default team settings:",e),e}},rY=async(e,t)=>{try{let r=S?`${S}/team/permissions_list?team_id=${t}`:`/team/permissions_list?team_id=${t}`,o=await fetch(r,{method:"GET",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json(),t=oM(e);return console.error("Available permissions fetch failed:",t),{all_available_permissions:[],team_member_permissions:[]}}return await o.json()}catch(e){throw console.error("Failed to get team permissions:",e),e}},rZ=async(e,t,r)=>{try{let o=S?`${S}/team/permissions_update`:"/team/permissions_update",n=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({team_id:t,team_member_permissions:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Team permissions response:",a),a}catch(e){throw console.error("Failed to update team permissions:",e),e}},r0=async(e,t)=>{try{let r=S?`${S}/spend/logs/session/ui?session_id=${encodeURIComponent(t)}`:`/spend/logs/session/ui?session_id=${encodeURIComponent(t)}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to fetch session logs:",e),e}},r1=async(e,t)=>{try{let r=S?`${S}/vector_store/new`:"/vector_store/new",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to create vector store")}return await o.json()}catch(e){throw console.error("Error creating vector store:",e),e}},r2=async(e,t=1,r=100)=>{try{let t=S?`${S}/vector_store/list`:"/vector_store/list",r=await fetch(t,{method:"GET",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`}});if(!r.ok){let e=await r.json();throw Error(e.detail||"Failed to list vector stores")}return await r.json()}catch(e){throw console.error("Error listing vector stores:",e),e}},r4=async(e,t)=>{try{let r=S?`${S}/vector_store/delete`:"/vector_store/delete",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({vector_store_id:t})});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to delete vector store")}return await o.json()}catch(e){throw console.error("Error deleting vector store:",e),e}},r6=async(e,t)=>{try{let r=S?`${S}/vector_store/info`:"/vector_store/info",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({vector_store_id:t})});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to get vector store info")}return await o.json()}catch(e){throw console.error("Error getting vector store info:",e),e}},r3=async(e,t)=>{try{let r=S?`${S}/vector_store/update`:"/vector_store/update",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to update vector store")}return await o.json()}catch(e){throw console.error("Error updating vector store:",e),e}},r7=async(e,t,r,o,n,a,i)=>{try{let l=S?`${S}/rag/ingest`:"/rag/ingest",s=new FormData;s.append("file",t);let c={ingest_options:{vector_store:{custom_llm_provider:r,...o&&{vector_store_id:o},...i&&i}}};(n||a)&&(c.ingest_options.litellm_vector_store_params={},n&&(c.ingest_options.litellm_vector_store_params.vector_store_name=n),a&&(c.ingest_options.litellm_vector_store_params.vector_store_description=a)),s.append("request",JSON.stringify(c));let u=await fetch(l,{method:"POST",headers:{[R]:`Bearer ${e}`},body:s});if(!u.ok){let e=await u.json();throw Error(e.error?.message||e.detail||"Failed to ingest document")}return await u.json()}catch(e){throw console.error("Error ingesting document:",e),e}},r5=async e=>{try{let t=S?`${S}/email/event_settings`:"/email/event_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get email event settings")}let o=await r.json();return console.log("Email event settings response:",o),o}catch(e){throw console.error("Failed to get email event settings:",e),e}},r9=async(e,t)=>{try{let r=S?`${S}/email/event_settings`:"/email/event_settings",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to update email event settings")}let n=await o.json();return console.log("Update email event settings response:",n),n}catch(e){throw console.error("Failed to update email event settings:",e),e}},r8=async e=>{try{let t=S?`${S}/email/event_settings/reset`:"/email/event_settings/reset",r=await fetch(t,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to reset email event settings")}let o=await r.json();return console.log("Reset email event settings response:",o),o}catch(e){throw console.error("Failed to reset email event settings:",e),e}},oe=async(e,t)=>{try{let r=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Delete agent response:",n),n}catch(e){throw console.error("Failed to delete agent:",e),e}},ot=async(e,t)=>{try{let r=S?`${S}/v1/agents/make_public`:"/v1/agents/make_public",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({agent_ids:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Make agents public response:",n),n}catch(e){throw console.error("Failed to make agents public:",e),e}},or=async(e,t)=>{try{let r=S?`${S}/v1/mcp/make_public`:"/v1/mcp/make_public",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({mcp_server_ids:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Make agents public response:",n),n}catch(e){throw console.error("Failed to make agents public:",e),e}},oo=async(e,t)=>{try{let r=S?`${S}/guardrails/${t}`:`/guardrails/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Delete guardrail response:",n),n}catch(e){throw console.error("Failed to delete guardrail:",e),e}},on=async e=>{try{let t=S?`${S}/guardrails/ui/add_guardrail_settings`:"/guardrails/ui/add_guardrail_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get guardrail UI settings")}let o=await r.json();return console.log("Guardrail UI settings response:",o),o}catch(e){throw console.error("Failed to get guardrail UI settings:",e),e}},oa=async e=>{try{let t=S?`${S}/guardrails/ui/provider_specific_params`:"/guardrails/ui/provider_specific_params",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get guardrail provider specific parameters")}let o=await r.json();return console.log("Guardrail provider specific params response:",o),o}catch(e){throw console.error("Failed to get guardrail provider specific parameters:",e),e}},oi=async(e,t)=>{try{let r=encodeURIComponent(t),o=S?`${S}/guardrails/ui/category_yaml/${r}`:`/guardrails/ui/category_yaml/${r}`;console.log(`Fetching category YAML from: ${o}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text();throw console.error(`Failed to get category YAML. Status: ${n.status}, Error:`,e),_(e),Error(`Failed to get category YAML: ${n.status} ${e}`)}let a=await n.json();return console.log("Category YAML response:",a),a}catch(e){throw console.error("Failed to get category YAML:",e),e}},ol=async e=>{try{let t=S?`${S}/guardrails/ui/major_airlines`:"/guardrails/ui/major_airlines",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw console.error(`Failed to get major airlines. Status: ${r.status}, Error:`,e),_(e),Error(`Failed to get major airlines: ${r.status} ${e}`)}return await r.json()}catch(e){throw console.error("Failed to get major airlines:",e),e}},os=async(e,t=!1)=>{try{let r=t?"?health_check=true":"",o=S?`${S}/v1/agents${r}`:`/v1/agents${r}`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to get agents list")}let a=await n.json();return console.log("Agents list response:",a),{agents:a}}catch(e){throw console.error("Failed to get agents list:",e),e}},oc=async(e,t)=>{try{let r=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to get agent info")}let n=await o.json();return console.log("Agent info response:",n),n}catch(e){throw console.error("Failed to get agent info:",e),e}},ou=async(e,t)=>{try{let r=S?`${S}/guardrails/${t}/info`:`/guardrails/${t}/info`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to get guardrail info")}let n=await o.json();return console.log("Guardrail info response:",n),n}catch(e){throw console.error("Failed to get guardrail info:",e),e}},od=async(e,t,r)=>{try{let o=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to patch agent")}let a=await n.json();return console.log("Patch agent response:",a),a}catch(e){throw console.error("Failed to update guardrail:",e),e}},of=async(e,t,r)=>{try{let o=S?`${S}/guardrails/${t}`:`/guardrails/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to update guardrail")}let a=await n.json();return console.log("Update guardrail response:",a),a}catch(e){throw console.error("Failed to update guardrail:",e),e}},op=async(e,t,r,o,n)=>{try{let a=S?`${S}/guardrails/apply_guardrail`:"/guardrails/apply_guardrail",i={guardrail_name:t,text:r};o&&(i.language=o),n&&n.length>0&&(i.entities=n);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.text(),t="Failed to apply guardrail";try{let r=JSON.parse(e);r.error?.message?t=r.error.message:r.detail?t=r.detail:r.message&&(t=r.message)}catch(r){t=e||t}throw _(e),Error(t)}let s=await l.json();return console.log("Apply guardrail response:",s),s}catch(e){throw console.error("Failed to apply guardrail:",e),e}},oh=async(e,t)=>{try{let r=S?`${S}/guardrails/test_custom_code`:"/guardrails/test_custom_code",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text(),t="Failed to test custom code guardrail";try{let r=JSON.parse(e);r.error?.message?t=r.error.message:r.detail?t=r.detail:r.message&&(t=r.message)}catch(r){t=e||t}throw _(e),Error(t)}let n=await o.json();return console.log("Test custom code guardrail response:",n),n}catch(e){throw console.error("Failed to test custom code guardrail:",e),e}},om=async(e,t)=>{try{let r=S?`${S}/guardrails/validate_blocked_words_file`:"/guardrails/validate_blocked_words_file",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({file_content:t})});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to validate blocked words file")}let n=await o.json();return console.log("Validate blocked words file response:",n),n}catch(e){throw console.error("Failed to validate blocked words file:",e),e}},og=async e=>{try{let t=S?`${S}/get/sso_settings`:"/get/sso_settings";console.log("Fetching SSO configuration from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched SSO configuration:",o),o}catch(e){throw console.error("Failed to fetch SSO configuration:",e),e}},ov=async(e,t)=>{try{let r=S?`${S}/update/sso_settings`:"/update/sso_settings";console.log("Updating SSO configuration:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t="object"==typeof e?.detail?e.detail?.error||e.detail?.message:e?.detail,r="string"==typeof t&&t.length>0?t:oM(e);_(r);let n=Error(r);throw e?.detail!==void 0&&(n.detail=e.detail),n.rawError=e,n}let n=await o.json();return console.log("Updated SSO configuration:",n),n}catch(e){throw console.error("Failed to update SSO configuration:",e),e}},oy=async({accessToken:e,page:t=1,page_size:r=50,params:o={}})=>{try{let n=S?`${S}/audit`:"/audit",a=new URLSearchParams;for(let[e,n]of(a.append("page",t.toString()),a.append("page_size",r.toString()),Object.entries(o)))null!=n&&""!==n&&a.append(e,String(n));n+=`?${a.toString()}`;let i=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to fetch audit logs:",e),e}},ob=async e=>{try{let t=S?`${S}/user/available_users`:"/user/available_users",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok){if(404===r.status)return null;let e=await r.text();throw _(e),Error("Network response was not ok")}return await r.json()}catch(e){throw console.error("Failed to fetch remaining users:",e),e}},ow=async e=>{try{let t=S?`${S}/health/license`:"/health/license",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok){if(404===r.status)return null;let e=await r.text();throw _(e),Error("Network response was not ok")}return await r.json()}catch(e){throw console.error("Failed to fetch license info:",e),e}},o$=async(e,t,r)=>{try{let o=S?`${S}/config/pass_through_endpoint/${encodeURIComponent(t)}`:`/config/pass_through_endpoint/${encodeURIComponent(t)}`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return v.default.success("Pass through endpoint updated successfully"),a}catch(e){throw console.error("Failed to update pass through endpoint:",e),e}},oC=async(e,t)=>{try{let r=S?`${S}/config/callback/delete`:"/config/callback/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({callback_name:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete specific callback:",e),e}},ox=async(e,t,r)=>{try{console.log("Testing MCP tools list with config:",JSON.stringify(t));let o=S?`${S}/mcp-rest/test/tools/list`:"/mcp-rest/test/tools/list",n={"Content-Type":"application/json"};e&&(n["x-litellm-api-key"]=e),r?n.Authorization=`Bearer ${r}`:e&&(n[R]=`Bearer ${e}`);let a=await fetch(o,{method:"POST",headers:n,body:JSON.stringify(t)}),i=a.headers.get("content-type");if(!i||!i.includes("application/json")){let e=await a.text();throw console.error("Received non-JSON response:",e),Error(`Received non-JSON response (${a.status}: ${a.statusText}). Check network tab for details.`)}let l=await a.json();if((!a.ok||l.error)&&!l.error)return{tools:[],error:"request_failed",message:l.message||`MCP tools list failed: ${a.status} ${a.statusText}`};return l}catch(e){throw console.error("MCP tools list test error:",e),e}},oE=async(e,t)=>{let r=S?`${S}/v1/mcp/server/oauth/session`:"/v1/mcp/server/oauth/session",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)}),n=await o.json();if(!o.ok)throw Error(oM(n)||n?.error||"Failed to cache MCP server");return n},oS=async(e,t,r)=>{let o=k(),n=encodeURIComponent(t.trim()),a=`${o}/v1/mcp/server/oauth/${n}/register`,i=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json, text/event-stream"},body:JSON.stringify(r)}),l=await i.json();if(!i.ok)throw Error(oM(l)||l?.detail||"Failed to register OAuth client");return l},ok=({serverId:e,clientId:t,redirectUri:r,state:o,codeChallenge:n,scope:a})=>{let i=k(),l=encodeURIComponent(e.trim()),s=`${i}/v1/mcp/server/oauth/${l}/authorize`,c=new URLSearchParams({redirect_uri:r,state:o,response_type:"code",code_challenge:n,code_challenge_method:"S256"});return t&&t.trim().length>0&&c.set("client_id",t),a&&a.trim().length>0&&c.set("scope",a),`${s}?${c.toString()}`},oj=async({serverId:e,code:t,clientId:r,clientSecret:o,codeVerifier:n,redirectUri:a,accessToken:i})=>{let l=k(),s=encodeURIComponent(e.trim()),c=`${l}/v1/mcp/server/oauth/${s}/token`,u=new URLSearchParams;u.set("grant_type","authorization_code"),u.set("code",t),r&&r.trim().length>0&&u.set("client_id",r),o&&o.trim().length>0&&u.set("client_secret",o),u.set("code_verifier",n),u.set("redirect_uri",a);let d={"Content-Type":"application/x-www-form-urlencoded"};i&&(d.Authorization=`Bearer ${i}`);let f=await fetch(c,{method:"POST",headers:d,body:u.toString()}),p=await f.json();if(!f.ok)throw Error(oM(p)||p?.detail||"OAuth token exchange failed");return p},oO=async(e,t,r)=>{try{let o=`${k()}/v1/vector_stores/${t}/search`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({query:r})});if(!n.ok){let e=await n.text();return await _(e),null}return await n.json()}catch(e){throw console.error("Error testing vector store search:",e),e}},oT=async(e,t,r,o)=>{try{let n=`${k()}/v1/search/${t}`,a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({query:r,max_results:o||5})});if(!a.ok){let e=await a.text();return await _(e),null}return await a.json()}catch(e){throw console.error("Error querying search tool:",e),e}},oI=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/dau`:"/tag/dau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch DAU:",e),e}},o_=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/wau`:"/tag/wau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch WAU:",e),e}},oF=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/mau`:"/tag/mau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch MAU:",e),e}},oP=async e=>{try{let t=S?`${S}/tag/distinct`:"/tag/distinct",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch distinct tags:",e),e}},oR=async(e,t,r,o)=>{try{let n=S?`${S}/tag/summary`:"/tag/summary",a=new URLSearchParams,i=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`};a.append("start_date",i(t)),a.append("end_date",i(r)),o&&o.length>0&&o.forEach(e=>{a.append("tag_filters",e)});let l=a.toString();l&&(n+=`?${l}`);let s=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}return await s.json()}catch(e){throw console.error("Failed to fetch user agent summary:",e),e}},oN=async(e,t=1,r=50,o)=>{try{let n=S?`${S}/tag/user-agent/per-user-analytics`:"/tag/user-agent/per-user-analytics",a=new URLSearchParams;a.append("page",t.toString()),a.append("page_size",r.toString()),o&&o.length>0&&o.forEach(e=>{a.append("tag_filters",e)});let i=a.toString();i&&(n+=`?${i}`);let l=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}return await l.json()}catch(e){throw console.error("Failed to fetch per-user analytics:",e),e}},oM=e=>{let t=e?.detail,r=Array.isArray(t)?t.map(e=>e?.msg||JSON.stringify(e)).join("; "):"string"==typeof t?t:void 0;return e?.error&&(e.error.message||("string"==typeof e.error?e.error:void 0))||e?.message||r||JSON.stringify(e)},oB=async(e,t,r)=>{let n=k(),a=r?"/v3/login":"/v2/login",i=n?`${n}${a}`:a,l=JSON.stringify({username:e,password:t}),s=await fetch(i,{method:"POST",body:l,credentials:"include",headers:{"Content-Type":"application/json"}});if(!s.ok)throw Error(oM(await s.json()));let c=await s.json();if(r&&c.code){let e=n?`${n}/v3/login/exchange`:"/v3/login/exchange",t=await fetch(e,{method:"POST",body:JSON.stringify({code:c.code}),credentials:"include",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error(oM(await t.json()));let r=await t.json();return r.token&&(0,o.storeLoginToken)(r.token),r}return c.token&&(0,o.storeLoginToken)(c.token),c},oA=async(e,t)=>{let r=t||k(),o=await fetch(`${r}/v3/login/exchange`,{method:"POST",body:JSON.stringify({code:e}),headers:{"Content-Type":"application/json"}});if(!o.ok)throw Error(oM(await o.json()));let n=await o.json();return n.token&&(document.cookie=`token=${n.token}; path=/; SameSite=Lax`),n.token},oz=async()=>{let e=k(),t=e?`${e}/get/ui_settings`:"/get/ui_settings",r=await fetch(t,{method:"GET"});if(!r.ok)throw Error(oM(await r.json()));return await r.json()},oL=async(e,t)=>{let r=k(),o=r?`${r}/update/ui_settings`:"/update/ui_settings",n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok)throw Error(oM(await n.json()));return await n.json()},oD=async(e,t=!1)=>{try{let r=k(),o=r?`${r}/claude-code/plugins?enabled_only=${t}`:`/claude-code/plugins?enabled_only=${t}`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to fetch Claude Code plugins list:",e),e}},oH=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins`:"/claude-code/plugins",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to register Claude Code plugin:",e),e}},oV=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}/enable`:`/claude-code/plugins/${t}/enable`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to enable plugin "${t}":`,e),e}},oW=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}/disable`:`/claude-code/plugins/${t}/disable`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to disable plugin "${t}":`,e),e}},oU=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}`:`/claude-code/plugins/${t}`,n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to delete plugin "${t}":`,e),e}},oG=async(e,t)=>{let r=S?`${S}/compliance/eu-ai-act`:"/compliance/eu-ai-act",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok)throw Error(await o.text());return o.json()},oq=async(e,t)=>{let r=S?`${S}/compliance/gdpr`:"/compliance/gdpr",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok)throw Error(await o.text());return o.json()},oJ=async e=>{let t=S?`${S}/v1/tool/policy/options`:"/v1/tool/policy/options",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(await r.text());return r.json()},oK=async e=>{let t=S?`${S}/v1/tool/list`:"/v1/tool/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(await r.text());return(await r.json()).tools??[]},oX=async(e,t,r)=>{let o=encodeURIComponent(t),n=S?`${S}/v1/tool/${o}/logs`:`/v1/tool/${o}/logs`,a=new URLSearchParams;null!=r.page&&a.append("page",String(r.page)),null!=r.pageSize&&a.append("page_size",String(r.pageSize)),r.startDate&&a.append("start_date",r.startDate),r.endDate&&a.append("end_date",r.endDate);let i=a.toString()?`${n}?${a.toString()}`:n,l=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok)throw Error(oM(await l.json().catch(()=>({}))));return l.json()},oQ=async(e,t)=>{let r=encodeURIComponent(t),o=S?`${S}/v1/tool/${r}/detail`:`/v1/tool/${r}/detail`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok)throw Error(await n.text());return n.json()},oY=async(e,t,r,o)=>{let n=S?`${S}/v1/tool/policy`:"/v1/tool/policy",a={tool_name:t};null!=r.input_policy&&(a.input_policy=r.input_policy),null!=r.output_policy&&(a.output_policy=r.output_policy),o?.team_id!=null&&(a.team_id=o.team_id||void 0),o?.key_hash!=null&&(a.key_hash=o.key_hash||void 0),o?.key_alias!=null&&(a.key_alias=o.key_alias||void 0);let i=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(a)});if(!i.ok)throw Error(await i.text());return i.json()},oZ=async(e,t,r)=>{let o=encodeURIComponent(t),n=new URLSearchParams;null!=r.team_id&&""!==r.team_id&&n.set("team_id",r.team_id),null!=r.key_hash&&""!==r.key_hash&&n.set("key_hash",r.key_hash);let a=n.toString(),i=S?`${S}/v1/tool/${o}/overrides${a?`?${a}`:""}`:`/v1/tool/${o}/overrides${a?`?${a}`:""}`,l=await fetch(i,{method:"DELETE",headers:{[R]:`Bearer ${e}`}});if(!l.ok)throw Error(await l.text());return l.json()},o0=async(e,t,r)=>{let o=S?`${S}/v1/mcp/server/${t}/oauth-user-credential`:`/v1/mcp/server/${t}/oauth-user-credential`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json().catch(()=>({})),t=e?.detail;throw Error((Array.isArray(t)?t.map(e=>e&&"object"==typeof e?e.msg??JSON.stringify(e):String(e)).join("; "):"string"==typeof t?t:t&&"string"==typeof t.error?t.error:void 0)||"Failed to store OAuth credential")}return n.json()},o1=async(e,t)=>{let r=S?`${S}/v1/mcp/server/${t}/oauth-user-credential`:`/v1/mcp/server/${t}/oauth-user-credential`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json().catch(()=>({})),t=e?.detail;throw Error((Array.isArray(t)?t.map(e=>e&&"object"==typeof e?e.msg??JSON.stringify(e):String(e)).join("; "):"string"==typeof t?t:t&&"string"==typeof t.error?t.error:void 0)||"Failed to revoke OAuth credential")}return o.json()},o2=async(e,t)=>{let r=S?`${S}/v1/mcp/server/${t}/oauth-user-credential/status`:`/v1/mcp/server/${t}/oauth-user-credential/status`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`}});return o.ok?o.json():{server_id:t,has_credential:!1,is_expired:!1}},o4=async e=>{let t=S?`${S}/v1/mcp/user-credentials`:"/v1/mcp/user-credentials",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});return r.ok?r.json():[]},o6=e=>e.split("/").map(encodeURIComponent).join("/"),o3=async(e,t={})=>{let r=S?`${S}/v1/memory`:"/v1/memory",o=new URLSearchParams;t.keyPrefix?o.append("key_prefix",t.keyPrefix):t.key&&o.append("key",t.key),null!=t.page&&o.append("page",String(t.page)),null!=t.pageSize&&o.append("page_size",String(t.pageSize));let n=o.toString()?`${r}?${o.toString()}`:r,a=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok)throw Error(await a.text());return a.json()},o7=async(e,t)=>{let r=S?`${S}/v1/memory`:"/v1/memory",o={key:t.key,value:t.value};void 0!==t.metadata&&(o.metadata=t.metadata);let n=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(o)});if(!n.ok)throw Error(await n.text());return n.json()},o5=async(e,t,r)=>{let o=o6(t),n=S?`${S}/v1/memory/${o}`:`/v1/memory/${o}`,a=await fetch(n,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!a.ok)throw Error(await a.text());return a.json()},o9=async(e,t)=>{let r=o6(t),o=S?`${S}/v1/memory/${r}`:`/v1/memory/${r}`,n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok)throw Error(await n.text())}},947293,e=>{"use strict";class t extends Error{}t.prototype.name="InvalidTokenError",e.s(["jwtDecode",0,function(e,r){let o;if("string"!=typeof e)throw new t("Invalid token specified: must be a string");r||(r={});let n=+(!0!==r.header),a=e.split(".")[n];if("string"!=typeof a)throw new t(`Invalid token specified: missing part #${n+1}`);try{o=function(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw Error("base64 string is not of the correct length")}try{var r;return r=t,decodeURIComponent(atob(r).replace(/(.)/g,(e,t)=>{let r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r}))}catch(e){return atob(t)}}(a)}catch(e){throw new t(`Invalid token specified: invalid base64 for part #${n+1} (${e.message})`)}try{return JSON.parse(o)}catch(e){throw new t(`Invalid token specified: invalid json for part #${n+1} (${e.message})`)}}])},266027,869230,469637,e=>{"use strict";let t;var r=e.i(175555),o=e.i(273911),n=e.i(540143),a=e.i(286491),i=e.i(915823),l=e.i(793803),s=e.i(619273),c=e.i(180166),u=class extends i.Subscribable{constructor(e,t){super(),this.options=t,this.#e=e,this.#t=null,this.#r=(0,l.pendingThenable)(),this.bindMethods(),this.setOptions(t)}#e;#o=void 0;#n=void 0;#a=void 0;#i;#l;#r;#t;#s;#c;#u;#d;#f;#p;#h=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#o.addObserver(this),d(this.#o,this.options)?this.#m():this.updateResult(),this.#g())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return f(this.#o,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return f(this.#o,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#v(),this.#y(),this.#o.removeObserver(this)}setOptions(e){let t=this.options,r=this.#o;if(this.options=this.#e.defaultQueryOptions(e),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,s.resolveQueryBoolean)(this.options.enabled,this.#o))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#b(),this.#o.setOptions(this.options),t._defaulted&&!(0,s.shallowEqualObjects)(this.options,t)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#o,observer:this});let o=this.hasListeners();o&&p(this.#o,r,this.options,t)&&this.#m(),this.updateResult(),o&&(this.#o!==r||(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)!==(0,s.resolveQueryBoolean)(t.enabled,this.#o)||(0,s.resolveStaleTime)(this.options.staleTime,this.#o)!==(0,s.resolveStaleTime)(t.staleTime,this.#o))&&this.#w();let n=this.#$();o&&(this.#o!==r||(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)!==(0,s.resolveQueryBoolean)(t.enabled,this.#o)||n!==this.#p)&&this.#C(n)}getOptimisticResult(e){var t,r;let o=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(o,e);return t=this,r=n,(0,s.shallowEqualObjects)(t.getCurrentResult(),r)||(this.#a=n,this.#l=this.options,this.#i=this.#o.state),n}getCurrentResult(){return this.#a}trackResult(e,t){return new Proxy(e,{get:(e,r)=>(this.trackProp(r),t?.(r),"promise"===r&&(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#r.status||this.#r.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(e,r))})}trackProp(e){this.#h.add(e)}getCurrentQuery(){return this.#o}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),r=this.#e.getQueryCache().build(this.#e,t);return r.fetch().then(()=>this.createResult(r,t))}fetch(e){return this.#m({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#a))}#m(e){this.#b();let t=this.#o.fetch(this.options,e);return e?.throwOnError||(t=t.catch(s.noop)),t}#w(){this.#v();let e=(0,s.resolveStaleTime)(this.options.staleTime,this.#o);if(o.environmentManager.isServer()||this.#a.isStale||!(0,s.isValidTimeout)(e))return;let t=(0,s.timeUntilStale)(this.#a.dataUpdatedAt,e);this.#d=c.timeoutManager.setTimeout(()=>{this.#a.isStale||this.updateResult()},t+1)}#$(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#o):this.options.refetchInterval)??!1}#C(e){this.#y(),this.#p=e,!o.environmentManager.isServer()&&!1!==(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)&&(0,s.isValidTimeout)(this.#p)&&0!==this.#p&&(this.#f=c.timeoutManager.setInterval(()=>{(this.options.refetchIntervalInBackground||r.focusManager.isFocused())&&this.#m()},this.#p))}#g(){this.#w(),this.#C(this.#$())}#v(){void 0!==this.#d&&(c.timeoutManager.clearTimeout(this.#d),this.#d=void 0)}#y(){void 0!==this.#f&&(c.timeoutManager.clearInterval(this.#f),this.#f=void 0)}createResult(e,t){let r,o=this.#o,n=this.options,i=this.#a,c=this.#i,u=this.#l,f=e!==o?e.state:this.#n,{state:m}=e,g={...m},v=!1;if(t._optimisticResults){let r=this.hasListeners(),i=!r&&d(e,t),l=r&&p(e,o,t,n);(i||l)&&(g={...g,...(0,a.fetchState)(m.data,e.options)}),"isRestoring"===t._optimisticResults&&(g.fetchStatus="idle")}let{error:y,errorUpdatedAt:b,status:w}=g;r=g.data;let $=!1;if(void 0!==t.placeholderData&&void 0===r&&"pending"===w){let e;i?.isPlaceholderData&&t.placeholderData===u?.placeholderData?(e=i.data,$=!0):e="function"==typeof t.placeholderData?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,void 0!==e&&(w="success",r=(0,s.replaceData)(i?.data,e,t),v=!0)}if(t.select&&void 0!==r&&!$)if(i&&r===c?.data&&t.select===this.#s)r=this.#c;else try{this.#s=t.select,r=t.select(r),r=(0,s.replaceData)(i?.data,r,t),this.#c=r,this.#t=null}catch(e){this.#t=e}this.#t&&(y=this.#t,r=this.#c,b=Date.now(),w="error");let C="fetching"===g.fetchStatus,x="pending"===w,E="error"===w,S=x&&C,k=void 0!==r,j={status:w,fetchStatus:g.fetchStatus,isPending:x,isSuccess:"success"===w,isError:E,isInitialLoading:S,isLoading:S,data:r,dataUpdatedAt:g.dataUpdatedAt,error:y,errorUpdatedAt:b,failureCount:g.fetchFailureCount,failureReason:g.fetchFailureReason,errorUpdateCount:g.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:g.dataUpdateCount>f.dataUpdateCount||g.errorUpdateCount>f.errorUpdateCount,isFetching:C,isRefetching:C&&!x,isLoadingError:E&&!k,isPaused:"paused"===g.fetchStatus,isPlaceholderData:v,isRefetchError:E&&k,isStale:h(e,t),refetch:this.refetch,promise:this.#r,isEnabled:!1!==(0,s.resolveQueryBoolean)(t.enabled,e)};if(this.options.experimental_prefetchInRender){let t=void 0!==j.data,r="error"===j.status&&!t,n=e=>{r?e.reject(j.error):t&&e.resolve(j.data)},a=()=>{n(this.#r=j.promise=(0,l.pendingThenable)())},i=this.#r;switch(i.status){case"pending":e.queryHash===o.queryHash&&n(i);break;case"fulfilled":(r||j.data!==i.value)&&a();break;case"rejected":r&&j.error===i.reason||a()}}return j}updateResult(){let e=this.#a,t=this.createResult(this.#o,this.options);if(this.#i=this.#o.state,this.#l=this.options,void 0!==this.#i.data&&(this.#u=this.#o),(0,s.shallowEqualObjects)(t,e))return;this.#a=t;let r=()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,r="function"==typeof t?t():t;if("all"===r||!r&&!this.#h.size)return!0;let o=new Set(r??this.#h);return this.options.throwOnError&&o.add("error"),Object.keys(this.#a).some(t=>this.#a[t]!==e[t]&&o.has(t))};this.#x({listeners:r()})}#b(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#o)return;let t=this.#o;this.#o=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#g()}#x(e){n.notifyManager.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#a)}),this.#e.getQueryCache().notify({query:this.#o,type:"observerResultsUpdated"})})}};function d(e,t){return!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&void 0===e.state.data&&("error"!==e.state.status||!1!==(0,s.resolveQueryBoolean)(t.retryOnMount,e))||void 0!==e.state.data&&f(e,t,t.refetchOnMount)}function f(e,t,r){if(!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&"static"!==(0,s.resolveStaleTime)(t.staleTime,e)){let o="function"==typeof r?r(e):r;return"always"===o||!1!==o&&h(e,t)}return!1}function p(e,t,r,o){return(e!==t||!1===(0,s.resolveQueryBoolean)(o.enabled,e))&&(!r.suspense||"error"!==e.state.status)&&h(e,r)}function h(e,t){return!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&e.isStaleByTime((0,s.resolveStaleTime)(t.staleTime,e))}e.s(["QueryObserver",0,u],869230),e.i(247167);var m=e.i(271645),g=e.i(912598);e.i(843476);var v=m.createContext((t=!1,{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t})),y=m.createContext(!1);y.Provider;var b=(e,t,r)=>t.fetchOptimistic(e).catch(()=>{r.clearReset()});function w(e,t,r){let a,i=m.useContext(y),l=m.useContext(v),c=(0,g.useQueryClient)(r),u=c.defaultQueryOptions(e);c.getDefaultOptions().queries?._experimental_beforeQuery?.(u);let d=c.getQueryCache().get(u.queryHash);if(u._optimisticResults=i?"isRestoring":"optimistic",u.suspense){let e=e=>"static"===e?e:Math.max(e??1e3,1e3),t=u.staleTime;u.staleTime="function"==typeof t?(...r)=>e(t(...r)):e(t),"number"==typeof u.gcTime&&(u.gcTime=Math.max(u.gcTime,1e3))}a=d?.state.error&&"function"==typeof u.throwOnError?(0,s.shouldThrowError)(u.throwOnError,[d.state.error,d]):u.throwOnError,(u.suspense||u.experimental_prefetchInRender||a)&&!l.isReset()&&(u.retryOnMount=!1),m.useEffect(()=>{l.clearReset()},[l]);let f=!c.getQueryCache().get(u.queryHash),[p]=m.useState(()=>new t(c,u)),h=p.getOptimisticResult(u),w=!i&&!1!==e.subscribed;if(m.useSyncExternalStore(m.useCallback(e=>{let t=w?p.subscribe(n.notifyManager.batchCalls(e)):s.noop;return p.updateResult(),t},[p,w]),()=>p.getCurrentResult(),()=>p.getCurrentResult()),m.useEffect(()=>{p.setOptions(u)},[u,p]),u?.suspense&&h.isPending)throw b(u,p,l);if((({result:e,errorResetBoundary:t,throwOnError:r,query:o,suspense:n})=>e.isError&&!t.isReset()&&!e.isFetching&&o&&(n&&void 0===e.data||(0,s.shouldThrowError)(r,[e.error,o])))({result:h,errorResetBoundary:l,throwOnError:u.throwOnError,query:d,suspense:u.suspense}))throw h.error;if(c.getDefaultOptions().queries?._experimental_afterQuery?.(u,h),u.experimental_prefetchInRender&&!o.environmentManager.isServer()&&h.isLoading&&h.isFetching&&!i){let e=f?b(u,p,l):d?.promise;e?.catch(s.noop).finally(()=>{p.updateResult()})}return u.notifyOnChangeProps?h:p.trackResult(h)}e.s(["useBaseQuery",0,w],469637),e.s(["useQuery",0,function(e,t){return w(e,u,t)}],266027)},243652,e=>{"use strict";e.s(["createQueryKeys",0,function(e){let t=[e];return{all:t,lists:()=>[...t,"list"],list:e=>[...t,"list",{params:e}],details:()=>[...t,"detail"],detail:e=>[...t,"detail",e]}}])},612256,e=>{"use strict";var t=e.i(764205),r=e.i(266027);let o=(0,e.i(243652).createQueryKeys)("uiConfig");e.s(["useUIConfig",0,()=>(0,r.useQuery)({queryKey:o.list({}),queryFn:async()=>await (0,t.getUiConfig)(),staleTime:864e5,gcTime:864e5})])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/06kpwf4i0qv9q.js b/litellm/proxy/_experimental/out/_next/static/chunks/06kpwf4i0qv9q.js deleted file mode 100644 index 8876a195f97..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/06kpwf4i0qv9q.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,56567,838932,471145,e=>{"use strict";var t=e.i(843476),l=e.i(135214),a=e.i(109799),s=e.i(912598),i=e.i(907308),r=e.i(764205),n=e.i(266027);let o=(0,e.i(243652).createQueryKeys)("guardrails"),d=()=>{let{accessToken:e,userId:t,userRole:a}=(0,l.default)();return(0,n.useQuery)({queryKey:o.list({}),queryFn:async()=>(0,r.getGuardrailsList)(e),enabled:!!(e&&t&&a),select:e=>{let t=e?.guardrails??[],l=new Set,a=new Set;for(let e of t)e.litellm_params?.default_on?l.add(e.guardrail_name):a.add(e.guardrail_name);return{guardrails:t,globalGuardrailNames:l,optionalGuardrailNames:a}}})};e.s(["useGuardrails",0,d],838932);var m=e.i(500330),c=e.i(11751),u=e.i(708347),g=e.i(751904),h=e.i(160818),p=e.i(827252),x=e.i(564897),_=e.i(646563),b=e.i(987432),y=e.i(530212),j=e.i(677667),f=e.i(130643),v=e.i(898667),T=e.i(389083),S=e.i(304967),w=e.i(350967),N=e.i(599724),C=e.i(779241),k=e.i(629569),I=e.i(464571),M=e.i(808613),z=e.i(311451),A=e.i(28651),F=e.i(199133),P=e.i(770914),O=e.i(790848),D=e.i(653496),L=e.i(262218),R=e.i(592968),B=e.i(888259),U=e.i(678784),V=e.i(118366),E=e.i(271645),$=e.i(9314),K=e.i(552130),G=e.i(127952);function W({className:e,value:l,onChange:a}){return(0,t.jsxs)(F.Select,{className:e,value:l,onChange:a,children:[(0,t.jsx)(F.Select.Option,{value:"24h",children:"Daily"}),(0,t.jsx)(F.Select.Option,{value:"7d",children:"Weekly"}),(0,t.jsx)(F.Select.Option,{value:"30d",children:"Monthly"})]})}var q=e.i(844565),H=e.i(355619);let J=function({globalGuardrailNames:e,teamGuardrails:l=[],optedOutGlobalGuardrails:a=[],killSwitchOn:s=!1,variant:i="card",className:r=""}){let n=new Set(a),o=Array.from(e).filter(e=>!n.has(e)),d=l.filter(t=>!e.has(t)),m=s||0!==o.length||0!==d.length?(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("span",{className:"block text-sm font-medium text-gray-700 mb-2",children:[(0,t.jsx)(h.GlobalOutlined,{style:{marginInlineEnd:4},"aria-label":"Global guardrail"}),"Global"]}),s?(0,t.jsx)(L.Tag,{color:"gold",children:"Bypassed for this team"}):o.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:o.map(e=>(0,t.jsx)(L.Tag,{color:"blue",children:e},e))}):(0,t.jsx)("span",{className:"block text-sm text-gray-500",children:"None configured"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Team-specific"}),d.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:d.map(e=>(0,t.jsx)(L.Tag,{color:"blue",children:e},e))}):(0,t.jsx)("span",{className:"block text-sm text-gray-500",children:"None configured"})]})]}):(0,t.jsx)("span",{className:"block text-gray-500",children:"No guardrails configured"});return"card"===i?(0,t.jsxs)("div",{className:`bg-white border border-gray-200 rounded-lg p-6 ${r}`,children:[(0,t.jsx)("div",{className:"flex items-center gap-2 mb-6",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"block font-semibold text-gray-900",children:"Guardrails Settings"}),(0,t.jsx)("span",{className:"block text-xs text-gray-500",children:"Global and team-specific guardrails applied to this team"})]})}),m]}):(0,t.jsxs)("div",{className:`${r}`,children:[(0,t.jsx)("span",{className:"block font-medium text-gray-900 mb-3",children:"Guardrails Settings"}),m]})};var Q=e.i(643449),Y=e.i(75921),X=e.i(390605),Z=e.i(162386),ee=e.i(727749),et=e.i(384767),el=e.i(435451),ea=e.i(916940);let es=({onChange:e,value:l,className:a,accessToken:s,placeholder:i="Select search tools (optional)",disabled:n=!1})=>{let[o,d]=(0,E.useState)([]),[m,c]=(0,E.useState)(!1);return(0,E.useEffect)(()=>{(async()=>{if(s){c(!0);try{let e=await (0,r.fetchSearchTools)(s),t=Array.isArray(e?.search_tools)?e.search_tools:Array.isArray(e?.data)?e.data:[];d(t.map(e=>e?.search_tool_name).filter(e=>"string"==typeof e&&e.length>0).map(e=>({label:e,value:e})))}catch(e){console.error("Failed to load search tools:",e)}finally{c(!1)}}})()},[s]),(0,t.jsx)(F.Select,{mode:"multiple",allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:i,onChange:e,value:l,loading:m,className:a,options:o,style:{width:"100%"},disabled:n})};e.s(["default",0,es],471145);var ei=e.i(183588),er=e.i(460285),en=e.i(276173),eo=e.i(91979),ed=e.i(269200),em=e.i(942232),ec=e.i(977572),eu=e.i(427612),eg=e.i(64848),eh=e.i(496020),ep=e.i(536916),ex=e.i(21548);let e_={"/key/generate":"Member can generate a virtual key for this team","/key/service-account/generate":"Member can generate a service account key (not belonging to any user) for this team","/key/update":"Member can update a virtual key belonging to this team","/key/delete":"Member can delete a virtual key belonging to this team","/key/info":"Member can get info about a virtual key belonging to this team","/key/regenerate":"Member can regenerate a virtual key belonging to this team","/key/{key_id}/regenerate":"Member can regenerate a virtual key belonging to this team","/key/list":"Member can list virtual keys belonging to this team","/key/block":"Member can block a virtual key belonging to this team","/key/unblock":"Member can unblock a virtual key belonging to this team","/team/daily/activity":"Member can view all team usage data (not just their own)","/spend/logs":"Member can view spend logs for the entire team (not just their own)"},eb=({teamId:e,accessToken:l,canEditTeam:a})=>{let[s,i]=(0,E.useState)([]),[n,o]=(0,E.useState)([]),[d,m]=(0,E.useState)(!0),[c,u]=(0,E.useState)(!1),[g,h]=(0,E.useState)(!1),p=async()=>{try{if(m(!0),!l)return;let t=await (0,r.getTeamPermissionsCall)(l,e),a=t.all_available_permissions||[];i(a);let s=t.team_member_permissions||[];o(s),h(!1)}catch(e){ee.default.fromBackend("Failed to load permissions"),console.error("Error fetching permissions:",e)}finally{m(!1)}};(0,E.useEffect)(()=>{p()},[e,l]);let x=async()=>{try{if(!l)return;u(!0),await (0,r.teamPermissionsUpdateCall)(l,e,n),ee.default.success("Permissions updated successfully"),h(!1)}catch(e){ee.default.fromBackend("Failed to update permissions"),console.error("Error updating permissions:",e)}finally{u(!1)}};if(d)return(0,t.jsx)("div",{className:"p-6 text-center",children:"Loading permissions..."});let _=s.length>0;return(0,t.jsxs)(S.Card,{className:"bg-white shadow-md rounded-md p-6",children:[(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center border-b pb-4 mb-6",children:[(0,t.jsx)(k.Title,{className:"mb-2 sm:mb-0",children:"Member Permissions"}),a&&g&&(0,t.jsxs)("div",{className:"flex gap-3",children:[(0,t.jsx)(I.Button,{icon:(0,t.jsx)(eo.ReloadOutlined,{}),onClick:()=>{p()},children:"Reset"}),(0,t.jsx)(I.Button,{onClick:x,loading:c,type:"primary",icon:(0,t.jsx)(b.SaveOutlined,{}),children:"Save Changes"})]})]}),(0,t.jsx)(N.Text,{className:"mb-6 text-gray-600",children:"Control what team members can do when they are not team admins."}),_?(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(ed.Table,{className:" min-w-full",children:[(0,t.jsx)(eu.TableHead,{children:(0,t.jsxs)(eh.TableRow,{children:[(0,t.jsx)(eg.TableHeaderCell,{children:"Method"}),(0,t.jsx)(eg.TableHeaderCell,{children:"Endpoint"}),(0,t.jsx)(eg.TableHeaderCell,{children:"Description"}),(0,t.jsx)(eg.TableHeaderCell,{className:"sticky right-0 bg-white shadow-[-4px_0_4px_-4px_rgba(0,0,0,0.1)] text-center",children:"Allow Access"})]})}),(0,t.jsx)(em.TableBody,{children:s.map(e=>{let l=(e=>{let t=e.includes("/info")||e.includes("/list")||e.includes("/activity")||"/spend/logs"===e?"GET":"POST",l=e_[e];if(!l){for(let[t,a]of Object.entries(e_))if(e.includes(t)){l=a;break}}return l||(l=`Access ${e}`),{method:t,endpoint:e,description:l,route:e}})(e);return(0,t.jsxs)(eh.TableRow,{className:"hover:bg-gray-50 transition-colors",children:[(0,t.jsx)(ec.TableCell,{children:(0,t.jsx)("span",{className:`px-2 py-1 rounded text-xs font-medium ${"GET"===l.method?"bg-blue-100 text-blue-800":"bg-green-100 text-green-800"}`,children:l.method})}),(0,t.jsx)(ec.TableCell,{children:(0,t.jsx)("span",{className:"font-mono text-sm text-gray-800",children:l.endpoint})}),(0,t.jsx)(ec.TableCell,{className:"text-gray-700",children:l.description}),(0,t.jsx)(ec.TableCell,{className:"sticky right-0 bg-white shadow-[-4px_0_4px_-4px_rgba(0,0,0,0.1)] text-center",children:(0,t.jsx)(ep.Checkbox,{checked:n.includes(e),onChange:t=>{o(t.target.checked?[...n,e]:n.filter(t=>t!==e)),h(!0)},disabled:!a})})]},e)})})]})}):(0,t.jsx)("div",{className:"py-12",children:(0,t.jsx)(ex.Empty,{description:"No permissions available"})})]})};var ey=e.i(822315);function ej(e){if(!e)return null;let t=(0,ey.default)(e);return t.isValid()?t.format("MMM D, YYYY"):null}var ef=e.i(175712),ev=e.i(178654),eT=e.i(621192),eS=e.i(898586);let ew=async(e,t)=>{let l=(0,r.getProxyBaseUrl)(),a=l?`${l}/team/${encodeURIComponent(t)}/members/me`:`/team/${encodeURIComponent(t)}/members/me`,s=await fetch(a,{method:"GET",headers:{[(0,r.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"}});if(404===s.status)return null;if(!s.ok){let e=await s.json().catch(()=>({}));throw Error((0,r.deriveErrorMessage)(e))}return await s.json()},eN=(e,l)=>(0,t.jsxs)(P.Space,{size:4,children:[(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:e}),(0,t.jsx)(R.Tooltip,{title:l,children:(0,t.jsx)(p.InfoCircleOutlined,{style:{color:"#8c8c8c"}})})]}),eC=(e,t=4)=>null==e?"0":(0,m.formatNumberWithCommas)(e,t),ek=e=>null==e?"Unlimited":(0,m.formatNumberWithCommas)(e,0);function eI({teamId:e}){let{data:a,isLoading:s,error:i}=(e=>{let{accessToken:t}=(0,l.default)();return(0,n.useQuery)({queryKey:["team",e,"members","me"],queryFn:()=>ew(t,e),enabled:!!(t&&e)})})(e);if(s)return(0,t.jsx)(ef.Card,{children:(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"Loading your membership info…"})});if(i)return(0,t.jsx)(ef.Card,{children:(0,t.jsx)(eS.Typography.Text,{type:"danger",children:i instanceof Error?i.message:"Failed to load your membership info for this team."})});if(!a)return(0,t.jsx)(ef.Card,{children:(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"No membership info available for the current user in this team."})});let r=a.litellm_budget_table??null,o=r?.max_budget??null,d=a.spend??0,m=a.total_spend??0,c=r?.tpm_limit??null,u=r?.rpm_limit??null,g=ej(r?.budget_reset_at),h=r?.allowed_models??null;return(0,t.jsxs)(P.Space,{direction:"vertical",size:"middle",style:{width:"100%"},children:[(0,t.jsx)(ef.Card,{children:(0,t.jsxs)(eT.Row,{gutter:[24,16],children:[(0,t.jsxs)(ev.Col,{xs:24,sm:12,md:8,children:[(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"User"}),(0,t.jsx)("div",{style:{marginTop:4},children:(0,t.jsx)(eS.Typography.Text,{strong:!0,children:a.user_email||a.user_id})}),(0,t.jsx)(eS.Typography.Text,{type:"secondary",style:{fontSize:12,fontFamily:"monospace"},children:a.user_id})]}),(0,t.jsxs)(ev.Col,{xs:24,sm:12,md:8,children:[(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"Team Role"}),(0,t.jsx)("div",{style:{marginTop:4},children:(0,t.jsx)(L.Tag,{color:"admin"===a.role?"blue":"default",children:a.role||"user"})})]})]})}),(0,t.jsxs)(eT.Row,{gutter:[16,16],children:[(0,t.jsx)(ev.Col,{xs:24,md:12,children:(0,t.jsxs)(ef.Card,{children:[eN("Current Cycle Spend (USD)","Spend for the current budget cycle. Resets to $0 when the budget window rolls over."),(0,t.jsxs)("div",{style:{marginTop:8},children:[(0,t.jsxs)(eS.Typography.Title,{level:3,style:{margin:0},children:["$",eC(d,4)]}),(0,t.jsxs)(eS.Typography.Text,{type:"secondary",children:["of ",null===o?"Unlimited":`$${eC(o,4)}`]})]}),g&&(0,t.jsx)("div",{style:{marginTop:4},children:(0,t.jsxs)(eS.Typography.Text,{type:"secondary",children:["Resets ",g]})})]})}),(0,t.jsx)(ev.Col,{xs:24,md:12,children:(0,t.jsxs)(ef.Card,{children:[eN("Rate Limits","Your per-member rate limits within this team."),(0,t.jsxs)("div",{style:{marginTop:8},children:[(0,t.jsxs)(eS.Typography.Text,{children:["TPM: ",ek(c)]}),(0,t.jsx)("br",{}),(0,t.jsxs)(eS.Typography.Text,{children:["RPM: ",ek(u)]})]})]})}),(0,t.jsx)(ev.Col,{xs:24,md:12,children:(0,t.jsxs)(ef.Card,{children:[eN("Total Spend (USD)","Cumulative spend across all budget cycles within this team."),(0,t.jsx)("div",{style:{marginTop:8},children:(0,t.jsxs)(eS.Typography.Title,{level:4,style:{margin:0},children:["$",eC(m,4)]})})]})}),(0,t.jsx)(ev.Col,{xs:24,md:12,children:(0,t.jsxs)(ef.Card,{children:[eN("Model Scope","Models you can access within this team."),(0,t.jsx)("div",{style:{marginTop:8},children:h&&h.length>0?(0,t.jsx)(P.Space,{wrap:!0,children:h.map(e=>(0,t.jsx)(L.Tag,{children:e},e))}):(0,t.jsx)(eS.Typography.Text,{children:"All Team Models"})})]})})]})]})}let eM="overview",ez="my-user",eA="virtual-keys",eF="members",eP="member-permissions",eO="settings",eD={[eM]:"Overview",[ez]:"My User",[eA]:"Virtual Keys",[eF]:"Members",[eP]:"Member Permissions",[eO]:"Settings"};var eL=e.i(292639),eR=e.i(294612);function eB({teamData:e,canEditTeam:a,handleMemberDelete:s,setSelectedEditMember:i,setIsEditMemberModalVisible:r,setIsAddMemberModalVisible:n}){let o=e=>{if(null==e)return"0";if("number"==typeof e){let t=Number(e);return t===Math.floor(t)?t.toString():(0,m.formatNumberWithCommas)(t,8).replace(/\.?0+$/,"")}return"0"},{data:d}=(0,eL.useUISettings)(),{userId:c,userRole:g}=(0,l.default)(),h=!!d?.values?.disable_team_admin_delete_team_user,x=(0,u.isUserTeamAdminForSingleTeam)(e.team_info.members_with_roles,c||""),_=(0,u.isProxyAdminRole)(g||""),b=[{title:(0,t.jsxs)(P.Space,{direction:"horizontal",children:["Model Scope",(0,t.jsx)(R.Tooltip,{title:"Models this member can access. Empty means they inherit all team models.",children:(0,t.jsx)(p.InfoCircleOutlined,{})})]}),key:"model_scope",render:(l,a)=>{let s=(t=>{if(!t)return null;let l=e.team_memberships.find(e=>e.user_id===t),a=l?.litellm_budget_table?.allowed_models;return a&&a.length>0?a:null})(a.user_id);if(!s)return(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"(all team models)"});let i=s.slice(0,2),r=s.length-i.length;return(0,t.jsxs)(P.Space,{wrap:!0,children:[i.map(e=>(0,t.jsx)(eS.Typography.Text,{code:!0,style:{fontSize:"12px"},children:e},e)),r>0&&(0,t.jsx)(R.Tooltip,{title:s.slice(2).join(", "),children:(0,t.jsxs)(eS.Typography.Text,{type:"secondary",children:["+",r," more"]})})]})}},{title:(0,t.jsxs)(P.Space,{direction:"horizontal",children:["Current Cycle Spend (USD)",(0,t.jsx)(R.Tooltip,{title:"Spend for the current budget cycle. Resets to $0 when the member's budget window rolls over. This is the value checked against the member's budget.",children:(0,t.jsx)(p.InfoCircleOutlined,{})})]}),key:"spend",render:(l,a)=>(0,t.jsxs)(eS.Typography.Text,{children:["$",(0,m.formatNumberWithCommas)((t=>{if(!t)return 0;let l=e.team_memberships.find(e=>e.user_id===t);return l?.spend??0})(a.user_id),4)]})},{title:(0,t.jsxs)(P.Space,{direction:"horizontal",children:["Total Spend (USD)",(0,t.jsx)(R.Tooltip,{title:"Cumulative spend by this member within this team, across all budget cycles. Tracking began 2026-04-21; spend from before that date is not included.",children:(0,t.jsx)(p.InfoCircleOutlined,{})})]}),key:"total_spend",render:(l,a)=>(0,t.jsxs)(eS.Typography.Text,{children:["$",(0,m.formatNumberWithCommas)((t=>{if(!t)return 0;let l=e.team_memberships.find(e=>e.user_id===t);return l?.total_spend??0})(a.user_id),4)]})},{title:"Team Member Budget (USD)",key:"budget",render:(l,a)=>{let s=(t=>{if(!t)return null;let l=e.team_memberships.find(e=>e.user_id===t),a=l?.litellm_budget_table?.max_budget;return null==a?null:o(a)})(a.user_id);return(0,t.jsx)(eS.Typography.Text,{children:s?`$${(0,m.formatNumberWithCommas)(Number(s),4)}`:"No Limit"})}},{title:"Budget Reset",key:"budget_reset",render:(l,a)=>{let s=(t=>{if(!t)return null;let l=e.team_memberships.find(e=>e.user_id===t);return ej(l?.litellm_budget_table?.budget_reset_at)})(a.user_id);return s?(0,t.jsx)(eS.Typography.Text,{children:s}):(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"—"})}},{title:(0,t.jsxs)(P.Space,{direction:"horizontal",children:["Team Member Rate Limits",(0,t.jsx)(R.Tooltip,{title:"Rate limits for this member's usage within this team.",children:(0,t.jsx)(p.InfoCircleOutlined,{})})]}),key:"rate_limits",render:(l,a)=>(0,t.jsx)(eS.Typography.Text,{children:(t=>{if(!t)return"No Limits";let l=e.team_memberships.find(e=>e.user_id===t),a=l?.litellm_budget_table?.rpm_limit,s=l?.litellm_budget_table?.tpm_limit,i=[a?`${o(a)} RPM`:null,s?`${o(s)} TPM`:null].filter(Boolean);return i.length>0?i.join(" / "):"No Limits"})(a.user_id)})}];return(0,t.jsx)(eR.default,{members:e.team_info.members_with_roles,canEdit:a,onEdit:t=>{let l=e.team_memberships.find(e=>e.user_id===t.user_id);i({...t,max_budget_in_team:l?.litellm_budget_table?.max_budget||null,tpm_limit:l?.litellm_budget_table?.tpm_limit||null,rpm_limit:l?.litellm_budget_table?.rpm_limit||null,allowed_models:l?.litellm_budget_table?.allowed_models||[]}),r(!0)},onDelete:s,onAddMember:()=>n(!0),roleColumnTitle:"Team Role",roleTooltip:"This role applies only to this team and is independent from the user's proxy-level role.",extraColumns:b,showDeleteForMember:()=>_||a&&!x||x&&!h})}var eU=e.i(207082),eV=e.i(871943),eE=e.i(502547),e$=e.i(360820),eK=e.i(94629),eG=e.i(152990),eW=e.i(682830),eq=e.i(994388),eH=e.i(752978),eJ=e.i(282786),eQ=e.i(981339),eY=e.i(304911),eX=e.i(969550),eZ=e.i(20147),e0=e.i(633627);function e1({teamId:e,teamAlias:a,organization:s}){let{accessToken:i}=(0,l.default)(),[r,o]=(0,E.useState)(null),[d,c]=(0,E.useState)([{id:"created_at",desc:!0}]),[u,g]=(0,E.useState)({pageIndex:0,pageSize:50}),[h,x]=(0,E.useState)({"Organization ID":"","Key Alias":"","User ID":"","Sort By":"created_at","Sort Order":"desc"}),_=d.length>0?d[0].id:"created_at",b=d.length>0?d[0].desc?"desc":"asc":"desc",y=u.pageIndex,j=u.pageSize,{data:f,isPending:v,isFetching:S,refetch:w}=(0,eU.useKeys)(y+1,j,{teamID:e,organizationID:h["Organization ID"]?.trim()||void 0,selectedKeyAlias:h["Key Alias"]?.trim()||void 0,userID:h["User ID"]?.trim()||void 0,sortBy:_||void 0,sortOrder:b||void 0,expand:"user"}),C=(0,E.useMemo)(()=>{let e=f?.keys||[],t=s?.organization_id;return t?e.map(e=>({...e,organization_id:(e.organization_id??e.org_id)||t})):e},[f?.keys,s?.organization_id]),k=f?.total_pages??0,[I,M]=(0,E.useState)({}),z=(0,E.useMemo)(()=>({team_id:e,team_alias:a||e,models:[],max_budget:null,budget_duration:null,tpm_limit:null,rpm_limit:null,organization_id:s?.organization_id||"",created_at:"",keys:[],members_with_roles:[],spend:0}),[e,a,s]),A=(0,n.useQuery)({queryKey:["teamFilterOptions",e,i],queryFn:async()=>(0,e0.fetchTeamFilterOptions)(i,e),enabled:!!i&&!!e,staleTime:3e4}).data||{keyAliases:[],organizationIds:[],userIds:[]},F=(0,E.useCallback)(()=>{w?.()},[w]);(0,E.useEffect)(()=>(window.addEventListener("storage",F),()=>window.removeEventListener("storage",F)),[F]);let P=(0,E.useCallback)((e,t=!1)=>{x(t=>({...t,"Organization ID":e["Organization ID"]??t["Organization ID"],"Key Alias":e["Key Alias"]??t["Key Alias"],"User ID":e["User ID"]??t["User ID"],"Sort By":e["Sort By"]??t["Sort By"]??"created_at","Sort Order":e["Sort Order"]??t["Sort Order"]??"desc"})),t||g(e=>({...e,pageIndex:0}))},[]),O=(0,E.useCallback)(()=>{x({"Organization ID":"","Key Alias":"","User ID":"","Sort By":"created_at","Sort Order":"desc"}),g(e=>({...e,pageIndex:0}))},[]),D=(0,E.useMemo)(()=>[{name:"Organization ID",label:"Organization ID",isSearchable:!0,searchFn:async e=>{let{organizationIds:t}=A;if(!t.length)return[];let l=e.toLowerCase();return(l?t.filter(e=>e.toLowerCase().includes(l)):t).map(e=>({label:e,value:e}))}},{name:"Key Alias",label:"Key Alias",isSearchable:!0,searchFn:async e=>{let{keyAliases:t}=A,l=e.toLowerCase();return(l?t.filter(e=>e.toLowerCase().includes(l)):t).map(e=>({label:e,value:e}))}},{name:"User ID",label:"User ID",isSearchable:!0,searchFn:async e=>{let{userIds:t}=A,l=e.toLowerCase();return(l?t.filter(e=>e.id.toLowerCase().includes(l)||e.email.toLowerCase().includes(l)):t).map(e=>({label:e.email?`${e.id} (${e.email})`:e.id,value:e.id}))}}],[A]),L=(0,E.useMemo)(()=>[{id:"token",accessorKey:"token",header:"Key ID",size:100,enableSorting:!0,cell:e=>{let l=e.getValue(),a=e.cell.column.getSize();return(0,t.jsx)(R.Tooltip,{title:l,children:(0,t.jsx)(eq.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left overflow-hidden truncate block",style:{maxWidth:a,overflow:"hidden"},onClick:()=>o(e.row.original),children:l??"-"})})}},{id:"key_alias",accessorKey:"key_alias",header:"Key Alias",size:150,enableSorting:!0,cell:e=>{let l=e.getValue(),a=e.cell.column.getSize();return(0,t.jsx)(R.Tooltip,{title:l,children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block",style:{maxWidth:a,overflow:"hidden"},children:l??"-"})})}},{id:"key_name",accessorKey:"key_name",header:"Secret Key",size:120,enableSorting:!1,cell:e=>(0,t.jsx)("span",{className:"font-mono text-xs",children:e.getValue()})},{id:"organization_id",accessorKey:"organization_id",header:"Organization ID",size:140,enableSorting:!1,cell:e=>e.getValue()?e.renderValue():"-"},{id:"user_email",accessorKey:"user",header:"User Email",size:160,enableSorting:!1,cell:e=>{let l=e.getValue(),a=l?.user_email,s=e.cell.column.getSize();return(0,t.jsx)(R.Tooltip,{title:a,children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block",style:{maxWidth:s,overflow:"hidden"},children:a??"-"})})}},{id:"user_id",accessorKey:"user_id",header:"User ID",size:70,enableSorting:!1,cell:e=>{let l=e.getValue(),a="default_user_id"===l?"Default Proxy Admin":l,s=e.cell.column.getSize();return(0,t.jsx)(R.Tooltip,{title:a,children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block",style:{maxWidth:s,overflow:"hidden"},children:a??"-"})})}},{id:"created_at",accessorKey:"created_at",header:"Created At",size:120,enableSorting:!0,cell:e=>{let t=e.getValue();return t?new Date(t).toLocaleDateString():"-"}},{id:"created_by",accessorKey:"created_by",header:"Created By",size:70,enableSorting:!1,cell:e=>{let l=e.getValue();if(!l)return"-";let{created_by_user:a}=e.row.original,s=a?.user_alias??null,i=a?.user_email??null,r="default_user_id"===l,n=s||i||l,o=e.cell.column.getSize(),d=(0,t.jsx)("div",{className:"flex flex-col gap-2 text-xs min-w-[200px] max-w-[300px]",children:[{label:"User Alias",value:s},{label:"User Email",value:i},{label:"User ID",value:l}].map(({label:e,value:l})=>(0,t.jsxs)("div",{className:"flex flex-col min-w-0",children:[(0,t.jsx)("span",{className:"text-gray-400",children:e}),l?(0,t.jsx)(eS.Typography.Text,{className:"font-mono text-xs",ellipsis:{tooltip:l},copyable:!0,children:l}):(0,t.jsx)("span",{className:"font-mono",children:"-"})]},e))});return!r||s||i?(0,t.jsx)(eJ.Popover,{content:d,trigger:"hover",placement:"bottomLeft",children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block cursor-default",style:{maxWidth:o,overflow:"hidden"},children:n})}):(0,t.jsx)(eJ.Popover,{content:d,trigger:"hover",placement:"bottomLeft",children:(0,t.jsx)("span",{className:"cursor-default",children:(0,t.jsx)(eY.default,{userId:l})})})}},{id:"updated_at",accessorKey:"updated_at",header:"Updated At",size:120,enableSorting:!0,cell:e=>{let t=e.getValue();return t?new Date(t).toLocaleDateString():"Never"}},{id:"last_active",accessorKey:"last_active",header:()=>(0,t.jsxs)("span",{className:"flex items-center gap-1",children:["Last Active",(0,t.jsx)(eJ.Popover,{content:"This is a new field and is not backfilled. Only new key usage will update this value.",trigger:"hover",children:(0,t.jsx)(p.InfoCircleOutlined,{className:"text-gray-400 text-xs cursor-help"})})]}),size:130,enableSorting:!1,cell:e=>{let l=e.getValue();if(!l)return"Unknown";let a=new Date(l);return(0,t.jsx)(R.Tooltip,{title:a.toLocaleString(void 0,{dateStyle:"medium",timeStyle:"long"}),children:(0,t.jsx)("span",{children:a.toLocaleDateString()})})}},{id:"expires",accessorKey:"expires",header:"Expires",size:120,enableSorting:!1,cell:e=>{let t=e.getValue();return t?new Date(t).toLocaleDateString():"Never"}},{id:"spend",accessorKey:"spend",header:"Spend (USD)",size:100,enableSorting:!0,cell:e=>(0,m.formatNumberWithCommas)(e.getValue(),4)},{id:"max_budget",accessorKey:"max_budget",header:"Budget (USD)",size:110,enableSorting:!0,cell:e=>{let t=e.getValue();return null===t?"Unlimited":`$${(0,m.formatNumberWithCommas)(t)}`}},{id:"budget_reset_at",accessorKey:"budget_reset_at",header:"Budget Reset",size:130,enableSorting:!1,cell:e=>{let t=e.getValue();return t?new Date(t).toLocaleString():"Never"}},{id:"models",accessorKey:"models",header:"Models",size:200,enableSorting:!1,cell:e=>{let l=e.getValue();return(0,t.jsx)("div",{className:"flex flex-col py-2",children:Array.isArray(l)?(0,t.jsx)("div",{className:"flex flex-col",children:0===l.length?(0,t.jsx)(T.Badge,{size:"xs",className:"mb-1",color:"red",children:(0,t.jsx)(N.Text,{children:"All Proxy Models"})}):(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)("div",{className:"flex items-start",children:[l.length>3&&(0,t.jsx)("div",{children:(0,t.jsx)(eH.Icon,{icon:I[e.row.id]?eV.ChevronDownIcon:eE.ChevronRightIcon,className:"cursor-pointer",size:"xs",onClick:()=>M(t=>({...t,[e.row.id]:!t[e.row.id]}))})}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-1",children:[l.slice(0,3).map((e,l)=>"all-proxy-models"===e?(0,t.jsx)(T.Badge,{size:"xs",color:"red",children:(0,t.jsx)(N.Text,{children:"All Proxy Models"})},l):(0,t.jsx)(T.Badge,{size:"xs",color:"blue",children:(0,t.jsx)(N.Text,{children:e.length>30?`${(0,H.getModelDisplayName)(e).slice(0,30)}...`:(0,H.getModelDisplayName)(e)})},l)),l.length>3&&!I[e.row.id]&&(0,t.jsx)(T.Badge,{size:"xs",color:"gray",className:"cursor-pointer",children:(0,t.jsxs)(N.Text,{children:["+",l.length-3," ",l.length-3==1?"more model":"more models"]})}),I[e.row.id]&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:l.slice(3).map((e,l)=>"all-proxy-models"===e?(0,t.jsx)(T.Badge,{size:"xs",color:"red",children:(0,t.jsx)(N.Text,{children:"All Proxy Models"})},l+3):(0,t.jsx)(T.Badge,{size:"xs",color:"blue",children:(0,t.jsx)(N.Text,{children:e.length>30?`${(0,H.getModelDisplayName)(e).slice(0,30)}...`:(0,H.getModelDisplayName)(e)})},l+3))})]})]})})}):null})}},{id:"rate_limits",header:"Rate Limits",size:140,enableSorting:!1,cell:({row:e})=>{let l=e.original;return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{children:["TPM: ",null!==l.tpm_limit?l.tpm_limit:"Unlimited"]}),(0,t.jsxs)("div",{children:["RPM: ",null!==l.rpm_limit?l.rpm_limit:"Unlimited"]})]})}}],[I]),B=(0,E.useCallback)(e=>{let t="function"==typeof e?e(d):e;if(c(t),t?.length>0){let e=t[0];P({"Sort By":e.id,"Sort Order":e.desc?"desc":"asc"},!0)}},[d,P]),U=(0,eG.useReactTable)({data:C,columns:L,columnResizeMode:"onChange",columnResizeDirection:"ltr",state:{sorting:d,pagination:u},onSortingChange:B,onPaginationChange:g,getCoreRowModel:(0,eW.getCoreRowModel)(),enableSorting:!0,manualSorting:!0,manualPagination:!0,pageCount:k});return(0,t.jsx)("div",{className:"w-full h-full overflow-hidden",children:r?(0,t.jsx)(eZ.default,{keyId:r.token,onClose:()=>o(null),keyData:r,teams:[z],onDelete:w}):(0,t.jsxs)("div",{className:"border-b py-4 flex-1 overflow-hidden",children:[(0,t.jsx)("div",{className:"w-full mb-6",children:(0,t.jsx)(eX.default,{options:D,onApplyFilters:P,initialValues:h,onResetFilters:O})}),(0,t.jsx)("div",{className:"flex items-center justify-end w-full mb-4",children:(0,t.jsxs)("div",{className:"inline-flex items-center gap-2",children:[v||S?(0,t.jsx)(eQ.Skeleton.Node,{active:!0,style:{width:74,height:20}}):(0,t.jsxs)("span",{className:"text-sm text-gray-700",children:["Page ",y+1," of ",U.getPageCount()]}),v||S?(0,t.jsx)(eQ.Skeleton.Button,{active:!0,size:"small",style:{width:84,height:30}}):(0,t.jsx)("button",{onClick:()=>U.previousPage(),disabled:v||S||!U.getCanPreviousPage(),className:"px-3 py-1 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Previous"}),v||S?(0,t.jsx)(eQ.Skeleton.Button,{active:!0,size:"small",style:{width:58,height:30}}):(0,t.jsx)("button",{onClick:()=>U.nextPage(),disabled:v||S||!U.getCanNextPage(),className:"px-3 py-1 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Next"})]})}),(0,t.jsx)("div",{className:"h-[75vh] overflow-auto",children:(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(ed.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",style:{width:U.getCenterTotalSize()},children:[(0,t.jsx)(eu.TableHead,{children:U.getHeaderGroups().map(e=>(0,t.jsx)(eh.TableRow,{children:e.headers.map(e=>(0,t.jsx)(eg.TableHeaderCell,{"data-header-id":e.id,className:`py-1 h-8 relative hover:bg-gray-50 ${"actions"===e.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)]":""}`,style:{width:e.getSize(),position:"relative",cursor:e.column.getCanSort()?"pointer":"default"},onMouseEnter:()=>{let t=document.querySelector(`[data-header-id="${e.id}"] .resizer`);t&&(t.style.opacity="0.5")},onMouseLeave:()=>{let t=document.querySelector(`[data-header-id="${e.id}"] .resizer`);t&&!e.column.getIsResizing()&&(t.style.opacity="0")},onClick:e.column.getCanSort()?e.column.getToggleSortingHandler():void 0,children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,eG.flexRender)(e.column.columnDef.header,e.getContext())}),"actions"!==e.id&&e.column.getCanSort()&&(0,t.jsx)("div",{className:"w-4",children:e.column.getIsSorted()?({asc:(0,t.jsx)(e$.ChevronUpIcon,{className:"h-4 w-4 text-blue-500"}),desc:(0,t.jsx)(eV.ChevronDownIcon,{className:"h-4 w-4 text-blue-500"})})[e.column.getIsSorted()]:(0,t.jsx)(eK.SwitchVerticalIcon,{className:"h-4 w-4 text-gray-400"})}),(0,t.jsx)("div",{onDoubleClick:()=>e.column.resetSize(),onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:`resizer ${U.options.columnResizeDirection} ${e.column.getIsResizing()?"isResizing":""}`,style:{position:"absolute",right:0,top:0,height:"100%",width:"5px",background:e.column.getIsResizing()?"#3b82f6":"transparent",cursor:"col-resize",userSelect:"none",touchAction:"none",opacity:+!!e.column.getIsResizing()}})]})},e.id))},e.id))}),(0,t.jsx)(em.TableBody,{children:v||S?(0,t.jsx)(eh.TableRow,{children:(0,t.jsx)(ec.TableCell,{colSpan:L.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"Loading keys..."})})})}):C.length>0?U.getRowModel().rows.map(e=>(0,t.jsx)(eh.TableRow,{className:"h-8",children:e.getVisibleCells().map(e=>(0,t.jsx)(ec.TableCell,{style:{width:e.column.getSize(),maxWidth:"8-x",whiteSpace:"pre-wrap",overflow:"hidden"},className:`py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap ${"models"===e.column.id&&Array.isArray(e.getValue())&&e.getValue().length>3?"px-0":""}`,children:(0,eG.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(eh.TableRow,{children:(0,t.jsx)(ec.TableCell,{colSpan:L.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No keys found"})})})})})]})})})})]})})}e.s(["default",0,({teamId:e,onClose:n,accessToken:o,is_team_admin:eo,is_proxy_admin:ed,is_org_admin:em=!1,userModels:ec,editTeam:eu,premiumUser:eg=!1,onUpdate:eh})=>{let ep,ex,e_,ey,ej,ef,[ev,eT]=(0,E.useState)(null),[eS,ew]=(0,E.useState)(!0),[eN,eC]=(0,E.useState)(!1),[ek]=M.Form.useForm(),[eL,eR]=(0,E.useState)(!1),[eU,eV]=(0,E.useState)(null),[eE,e$]=(0,E.useState)(!1),[eK,eG]=(0,E.useState)([]),[eW,eq]=(0,E.useState)(!1),[eH,eJ]=(0,E.useState)({}),{data:eQ,isLoading:eY}=d(),eX=eQ?.globalGuardrailNames??new Set,[eZ,e0]=(0,E.useState)([]),[e4,e2]=(0,E.useState)({}),[e5,e3]=(0,E.useState)(!1),[e6,e8]=(0,E.useState)(null),[e7,e9]=(0,E.useState)(!1),[te,tt]=(0,E.useState)(!1),[tl,ta]=(0,E.useState)(!1),ts=E.default.useRef(null),[ti,tr]=(0,E.useState)(null),{userRole:tn,userId:to}=(0,l.default)(),{data:td=[]}=(0,a.useOrganizations)(),tm=(0,s.useQueryClient)(),tc=(0,E.useMemo)(()=>{let e=ev?.team_info?.organization_id;if(!e||!to)return!1;let t=td.find(t=>t.organization_id===e);return t?.members?.some(e=>e.user_id===to&&"org_admin"===e.user_role)??!1},[ev,td,to]),tu=M.Form.useWatch("models",ek),tg=M.Form.useWatch("disable_global_guardrails",ek),th=(0,E.useMemo)(()=>{let e=tu??ev?.team_info?.models??[];return e.includes("all-proxy-models")||e.includes("all-team-models")?ec:(0,H.unfurlWildcardModelsInList)(e,ec)},[tu,ev,ec]),tp=eo||ed||em||tc,tx=(0,E.useMemo)(()=>{let e;return e=[eM,ez,eA],tp?[...e,eF,eP,eO]:e},[tp]),t_=(0,E.useMemo)(()=>eu&&tp?eO:eM,[eu,tp]),tb=async()=>{try{if(ew(!0),!o)return;let t=await (0,r.teamInfoCall)(o,e);eT(t)}catch(e){ee.default.fromBackend("Failed to load team information"),console.error("Error fetching team info:",e)}finally{ew(!1)}};(0,E.useEffect)(()=>{tb()},[e,o]),(0,E.useEffect)(()=>{(async()=>{if(!o||!ev?.team_info?.organization_id)return tr(null);try{let e=await (0,r.organizationInfoCall)(o,ev.team_info.organization_id);tr(e)}catch(e){console.error("Error fetching organization info:",e),tr(null)}})()},[o,ev?.team_info?.organization_id]),(0,E.useMemo)(()=>{let e;return e=[],e=ti?ti.models.includes("all-proxy-models")?ec:ti.models.length>0?ti.models:ec:ec,(0,H.unfurlWildcardModelsInList)(e,ec)},[ti,ec]),(0,E.useEffect)(()=>{(async()=>{try{if(!o)return;let e=(await (0,r.getPoliciesList)(o)).policies.map(e=>e.policy_name);e0(e)}catch(e){console.error("Failed to fetch policies:",e)}})()},[o]),(0,E.useEffect)(()=>{(async()=>{if(!o||!ev?.team_info?.policies||0===ev.team_info.policies.length)return;e3(!0);let e={};try{await Promise.all(ev.team_info.policies.map(async t=>{try{let l=await (0,r.getPolicyInfoWithGuardrails)(o,t);e[t]=l.resolved_guardrails||[]}catch(l){console.error(`Failed to fetch guardrails for policy ${t}:`,l),e[t]=[]}})),e2(e)}catch(e){console.error("Failed to fetch policy guardrails:",e)}finally{e3(!1)}})()},[o,ev?.team_info?.policies]);let ty=async t=>{try{if(null==o)return;let l={user_email:t.user_email,user_id:t.user_id,role:t.role};await (0,r.teamMemberAddCall)(o,e,l),ee.default.success("Team member added successfully"),eC(!1),ek.resetFields();let a=await (0,r.teamInfoCall)(o,e);eT(a),eh(a)}catch(t){let e="Failed to add team member";t?.raw?.detail?.error?.includes("Assigning team admins is a premium feature")?e="Assigning admins is an enterprise-only feature. Please upgrade your LiteLLM plan to enable this.":t?.message&&(e=t.message),ee.default.fromBackend(e),console.error("Error adding team member:",t)}},tj=async t=>{try{if(null==o)return;let l={user_email:t.user_email,user_id:t.user_id,role:t.role,max_budget_in_team:t.max_budget_in_team,tpm_limit:t.tpm_limit,rpm_limit:t.rpm_limit,allowed_models:t.allowed_models};B.default.destroy(),await (0,r.teamMemberUpdateCall)(o,e,l),ee.default.success("Team member updated successfully"),eR(!1);let a=await (0,r.teamInfoCall)(o,e);eT(a),eh(a)}catch(t){let e="Failed to update team member";t?.raw?.detail?.includes("Assigning team admins is a premium feature")?e="Assigning admins is an enterprise-only feature. Please upgrade your LiteLLM plan to enable this.":t?.message&&(e=t.message),eR(!1),B.default.destroy(),ee.default.fromBackend(e),console.error("Error updating team member:",t)}},tf=async()=>{if(e6&&o){tt(!0);try{await (0,r.teamMemberDeleteCall)(o,e,e6),ee.default.success("Team member removed successfully");let t=await (0,r.teamInfoCall)(o,e);eT(t),eh(t)}catch(e){ee.default.fromBackend("Failed to remove team member"),console.error("Error removing team member:",e)}finally{tt(!1),e9(!1),e8(null)}}},tv=async t=>{try{let l;if(!o)return;ta(!0);let s={};try{let{soft_budget_alerting_emails:e,...l}=t.metadata?JSON.parse(t.metadata):{};s=l}catch(e){ee.default.fromBackend("Invalid JSON in metadata field");return}if("string"==typeof t.secret_manager_settings&&t.secret_manager_settings.trim().length>0)try{l=JSON.parse(t.secret_manager_settings)}catch(e){ee.default.fromBackend("Invalid JSON in secret manager settings");return}let i=e=>null==e||"string"==typeof e&&""===e.trim()||"number"==typeof e&&Number.isNaN(e)?null:e,n={},d={};for(let e of t.modelLimits??[])e?.model&&(null!=e.tpm&&(n[e.model]=e.tpm),null!=e.rpm&&(d[e.model]=e.rpm));let m=!0===t.disable_global_guardrails,u=m?Array.from(eX):Array.from(eX).filter(e=>!(t.guardrails||[]).includes(e)),g={team_id:e,team_alias:t.team_alias,models:t.models,tpm_limit:i(t.tpm_limit),rpm_limit:i(t.rpm_limit),model_tpm_limit:n,model_rpm_limit:d,max_budget:t.max_budget,soft_budget:i(t.soft_budget),budget_duration:t.budget_duration,metadata:{...s,guardrails:(t.guardrails||[]).filter(e=>!eX.has(e)),opted_out_global_guardrails:u,...t.logging_settings?.length>0?{logging:t.logging_settings}:{},disable_global_guardrails:m,soft_budget_alerting_emails:"string"==typeof t.soft_budget_alerting_emails?t.soft_budget_alerting_emails.split(",").map(e=>e.trim()).filter(e=>e.length>0):t.soft_budget_alerting_emails||[],...void 0!==l?{secret_manager_settings:l}:{}},...t.policies?.length>0?{policies:t.policies}:{},...t.organization_id!==tT.organization_id?{organization_id:t.organization_id??null}:{}};g.max_budget=(0,c.mapEmptyStringToNull)(g.max_budget),g.team_member_budget_duration=t.team_member_budget_duration,void 0!==t.team_member_budget&&(g.team_member_budget=Number(t.team_member_budget)),void 0!==t.team_member_key_duration&&(g.team_member_key_duration=t.team_member_key_duration),(void 0!==t.team_member_tpm_limit||void 0!==t.team_member_rpm_limit)&&(g.team_member_tpm_limit=i(t.team_member_tpm_limit),g.team_member_rpm_limit=i(t.team_member_rpm_limit));let{servers:h,accessGroups:p,toolsets:x}=t.mcp_servers_and_groups||{servers:[],accessGroups:[],toolsets:[]},_=new Set(h||[]),b=Object.fromEntries(Object.entries(t.mcp_tool_permissions||{}).filter(([e])=>_.has(e)));g.object_permission={},h&&(g.object_permission.mcp_servers=h),p&&(g.object_permission.mcp_access_groups=p),b&&(g.object_permission.mcp_tool_permissions=b),x&&(g.object_permission.mcp_toolsets=x),delete t.mcp_servers_and_groups,delete t.mcp_tool_permissions;let{agents:y,accessGroups:j}=t.agents_and_groups||{agents:[],accessGroups:[]};y&&y.length>0&&(g.object_permission.agents=y),j&&j.length>0&&(g.object_permission.agent_access_groups=j),delete t.agents_and_groups,t.vector_stores&&t.vector_stores.length>0&&(g.object_permission.vector_stores=t.vector_stores),Array.isArray(t.object_permission_search_tools)&&(g.object_permission.search_tools=t.object_permission_search_tools),void 0!==t.access_group_ids&&(g.access_group_ids=t.access_group_ids),void 0!==t.default_team_member_models&&(g.default_team_member_models=t.default_team_member_models);let f=ts.current?.getValue();if(f?.router_settings){let e=e=>null!=e&&""!==e&&!1!==e&&!(Array.isArray(e)&&0===e.length),t=Object.values(f.router_settings).some(e),l=tT.router_settings&&Object.values(tT.router_settings).some(e);(t||l)&&(g.router_settings=f.router_settings)}await (0,r.teamUpdateCall)(o,g),tm.invalidateQueries({queryKey:a.organizationKeys.all}),ee.default.success("Team settings updated successfully"),e$(!1),tb()}catch(e){console.error("Error updating team:",e)}finally{ta(!1)}};if(eS)return(0,t.jsx)("div",{className:"p-4",children:"Loading..."});if(!ev?.team_info)return(0,t.jsx)("div",{className:"p-4",children:"Team not found"});let{team_info:tT}=ev,tS=tT.metadata?.disable_global_guardrails===!0,tw=new Set(Array.isArray(tT.metadata?.opted_out_global_guardrails)?tT.metadata.opted_out_global_guardrails:[]),tN=(Array.isArray(tT.metadata?.guardrails)?tT.metadata.guardrails:[]).filter(e=>!eX.has(e)),tC=tS?tN:[...Array.from(eX).filter(e=>!tw.has(e)),...tN],tk=e=>{e.preventDefault(),e.stopPropagation()},tI=async(e,t)=>{await (0,m.copyToClipboard)(e)&&(eJ(e=>({...e,[t]:!0})),setTimeout(()=>{eJ(e=>({...e,[t]:!1}))},2e3))};return(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsx)("div",{className:"flex justify-between items-center mb-6",children:(0,t.jsxs)("div",{children:[(0,t.jsx)(I.Button,{type:"text",icon:(0,t.jsx)(y.ArrowLeftIcon,{className:"h-4 w-4"}),onClick:n,className:"mb-4",children:"Back to Teams"}),(0,t.jsx)(k.Title,{children:tT.team_alias}),(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(N.Text,{className:"text-gray-500 font-mono",children:tT.team_id}),(0,t.jsx)(I.Button,{type:"text",size:"small",icon:eH["team-id"]?(0,t.jsx)(U.CheckIcon,{size:12}):(0,t.jsx)(V.CopyIcon,{size:12}),onClick:()=>tI(tT.team_id,"team-id"),className:`left-2 z-10 transition-all duration-200 ${eH["team-id"]?"text-green-600 bg-green-50 border-green-200":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"}`})]})]})}),(0,t.jsx)(D.Tabs,{defaultActiveKey:t_,className:"mb-4",items:[{key:eM,label:eD[eM],children:(0,t.jsxs)(w.Grid,{numItems:1,numItemsSm:2,numItemsLg:3,className:"gap-6",children:[(0,t.jsxs)(S.Card,{children:[(0,t.jsx)(N.Text,{children:"Budget Status"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(k.Title,{children:["$",(0,m.formatNumberWithCommas)(tT.spend,4)]}),(0,t.jsxs)(N.Text,{children:["of ",null===tT.max_budget?"Unlimited":`$${(0,m.formatNumberWithCommas)(tT.max_budget,4)}`]}),tT.budget_duration&&(0,t.jsxs)(N.Text,{className:"text-gray-500",children:["Reset: ",tT.budget_duration]}),(0,t.jsx)("br",{}),tT.team_member_budget_table&&(0,t.jsxs)(N.Text,{className:"text-gray-500",children:["Team Member Budget: $",(0,m.formatNumberWithCommas)(tT.team_member_budget_table.max_budget,4)]})]})]}),(0,t.jsxs)(S.Card,{children:[(0,t.jsx)(N.Text,{children:"Rate Limits"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(N.Text,{children:["TPM: ",tT.tpm_limit||"Unlimited"]}),(0,t.jsxs)(N.Text,{children:["RPM: ",tT.rpm_limit||"Unlimited"]}),tT.max_parallel_requests&&(0,t.jsxs)(N.Text,{children:["Max Parallel Requests: ",tT.max_parallel_requests]}),(ep=tT.metadata?.model_tpm_limit??{},ex=tT.metadata?.model_rpm_limit??{},0===(e_=Array.from(new Set([...Object.keys(ep),...Object.keys(ex)]))).length?null:(0,t.jsxs)("div",{className:"mt-3",children:[(0,t.jsx)(N.Text,{className:"text-gray-500",children:"Per-model limits:"}),e_.map(e=>(0,t.jsxs)(N.Text,{className:"text-xs",children:[e,": TPM ",ep[e]??"—",", RPM ",ex[e]??"—"]},e))]}))]})]}),(0,t.jsxs)(S.Card,{children:[(0,t.jsx)(N.Text,{children:"Models"}),(0,t.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:0===tT.models.length||tT.models.includes("all-proxy-models")?(0,t.jsx)(T.Badge,{color:"red",children:"All proxy models"}):(0,t.jsxs)(t.Fragment,{children:[tT.models.map((e,l)=>(0,t.jsx)(T.Badge,{color:"blue",children:e},`direct-${l}`)),(tT.access_group_models||[]).map((e,l)=>(0,t.jsx)(T.Badge,{color:"green",title:"From access group",children:e},`ag-${l}`))]})})]}),(0,t.jsxs)(S.Card,{children:[(0,t.jsx)(N.Text,{className:"font-semibold text-gray-900",children:"Virtual Keys"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(N.Text,{children:["User Keys: ",ev.keys.filter(e=>e.user_id).length]}),(0,t.jsxs)(N.Text,{children:["Service Account Keys: ",ev.keys.filter(e=>!e.user_id).length]}),(0,t.jsxs)(N.Text,{className:"text-gray-500",children:["Total: ",ev.keys.length]})]})]}),(0,t.jsx)(et.default,{objectPermission:tT.object_permission,variant:"card",accessToken:o}),(0,t.jsx)(S.Card,{children:(0,t.jsx)(J,{globalGuardrailNames:eX,teamGuardrails:Array.isArray(tT.metadata?.guardrails)?tT.metadata.guardrails:[],optedOutGlobalGuardrails:Array.isArray(tT.metadata?.opted_out_global_guardrails)?tT.metadata.opted_out_global_guardrails:[],killSwitchOn:tS,variant:"inline"})}),(0,t.jsxs)(S.Card,{children:[(0,t.jsx)(N.Text,{className:"font-semibold text-gray-900 mb-3",children:"Policies"}),tT.policies&&tT.policies.length>0?(0,t.jsx)("div",{className:"space-y-4",children:tT.policies.map((e,l)=>(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(T.Badge,{color:"purple",children:e}),e5&&(0,t.jsx)(N.Text,{className:"text-xs text-gray-400",children:"Loading guardrails..."})]}),!e5&&e4[e]&&e4[e].length>0&&(0,t.jsxs)("div",{className:"ml-4 pl-3 border-l-2 border-gray-200",children:[(0,t.jsx)(N.Text,{className:"text-xs text-gray-500 mb-1",children:"Resolved Guardrails:"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:e4[e].map((e,l)=>(0,t.jsx)(T.Badge,{color:"blue",size:"xs",children:e},l))})]})]},l))}):(0,t.jsx)(N.Text,{className:"text-gray-500",children:"No policies configured"})]}),(0,t.jsx)(Q.default,{loggingConfigs:tT.metadata?.logging||[],disabledCallbacks:[],variant:"card"})]})},{key:ez,label:eD[ez],children:(0,t.jsx)(eI,{teamId:e})},{key:eA,label:eD[eA],children:(0,t.jsx)(e1,{teamId:e,teamAlias:tT.team_alias,organization:ti})},{key:eF,label:eD[eF],children:(0,t.jsx)(eB,{teamData:ev,canEditTeam:tp,handleMemberDelete:e=>{e8(e),e9(!0)},setSelectedEditMember:eV,setIsEditMemberModalVisible:eR,setIsAddMemberModalVisible:eC})},{key:eP,label:eD[eP],children:(0,t.jsx)(eb,{teamId:e,accessToken:o,canEditTeam:tp})},{key:eO,label:eD[eO],children:(0,t.jsxs)(S.Card,{className:"overflow-y-auto max-h-[65vh]",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(k.Title,{children:"Team Settings"}),tp&&!eE&&(0,t.jsx)(I.Button,{icon:(0,t.jsx)(g.EditOutlined,{className:"h-4 w-4"}),onClick:()=>e$(!0),children:"Edit Settings"})]}),eE&&eY?(0,t.jsx)("div",{className:"p-4",children:"Loading..."}):eE?(0,t.jsxs)(M.Form,{form:ek,onFinish:tv,onValuesChange:e=>{if("disable_global_guardrails"in e){let t=!0===e.disable_global_guardrails,l=(ek.getFieldValue("guardrails")||[]).filter(e=>!eX.has(e));ek.setFieldValue("guardrails",t?l:[...Array.from(eX),...l])}},initialValues:{...tT,team_alias:tT.team_alias,models:tT.models,tpm_limit:tT.tpm_limit,rpm_limit:tT.rpm_limit,object_permission_search_tools:tT.object_permission?.search_tools||[],modelLimits:Array.from(new Set([...Object.keys(tT.metadata?.model_tpm_limit??{}),...Object.keys(tT.metadata?.model_rpm_limit??{})])).map(e=>({model:e,tpm:tT.metadata?.model_tpm_limit?.[e],rpm:tT.metadata?.model_rpm_limit?.[e]})),max_budget:tT.max_budget,soft_budget:tT.soft_budget,budget_duration:tT.budget_duration,team_member_tpm_limit:tT.team_member_budget_table?.tpm_limit,team_member_rpm_limit:tT.team_member_budget_table?.rpm_limit,team_member_budget:tT.team_member_budget_table?.max_budget,team_member_budget_duration:tT.team_member_budget_table?.budget_duration,guardrails:tC,policies:tT.policies||[],disable_global_guardrails:tT.metadata?.disable_global_guardrails||!1,soft_budget_alerting_emails:Array.isArray(tT.metadata?.soft_budget_alerting_emails)?tT.metadata.soft_budget_alerting_emails.join(", "):"",metadata:tT.metadata?JSON.stringify((({logging:e,secret_manager_settings:t,soft_budget_alerting_emails:l,model_tpm_limit:a,model_rpm_limit:s,...i})=>i)(tT.metadata),null,2):"",logging_settings:tT.metadata?.logging||[],secret_manager_settings:tT.metadata?.secret_manager_settings?JSON.stringify(tT.metadata.secret_manager_settings,null,2):"",organization_id:tT.organization_id,vector_stores:tT.object_permission?.vector_stores||[],mcp_servers:tT.object_permission?.mcp_servers||[],mcp_access_groups:tT.object_permission?.mcp_access_groups||[],mcp_servers_and_groups:{servers:tT.object_permission?.mcp_servers||[],accessGroups:tT.object_permission?.mcp_access_groups||[],toolsets:tT.object_permission?.mcp_toolsets||[]},mcp_tool_permissions:tT.object_permission?.mcp_tool_permissions||{},agents_and_groups:{agents:tT.object_permission?.agents||[],accessGroups:tT.object_permission?.agent_access_groups||[]},access_group_ids:tT.access_group_ids||[],default_team_member_models:tT.default_team_member_models||[]},layout:"vertical",children:[(0,t.jsx)(M.Form.Item,{label:"Team Name",name:"team_alias",rules:[{required:!0,message:"Please input a team name"}],children:(0,t.jsx)(z.Input,{type:""})}),(0,t.jsx)(M.Form.Item,{label:"Models",name:"models",rules:[{required:!0,message:"Please select at least one model"}],children:(0,t.jsx)(Z.ModelSelect,{value:ek.getFieldValue("models")||[],onChange:e=>ek.setFieldValue("models",e),teamID:e,organizationID:ev?.team_info?.organization_id||void 0,options:{includeSpecialOptions:!0,includeUserModels:!ev?.team_info?.organization_id,showAllProxyModelsOverride:(0,u.isProxyAdminRole)(tn)&&!ev?.team_info?.organization_id},context:"team",dataTestId:"models-select"})}),(0,t.jsx)(M.Form.Item,{label:"Max Budget (USD)",name:"max_budget",children:(0,t.jsx)(el.default,{step:.01,precision:2,style:{width:"100%"}})}),(0,t.jsx)(M.Form.Item,{label:"Soft Budget (USD)",name:"soft_budget",children:(0,t.jsx)(el.default,{step:.01,precision:2,style:{width:"100%"}})}),(0,t.jsx)(M.Form.Item,{label:"Soft Budget Alerting Emails",name:"soft_budget_alerting_emails",tooltip:"Comma-separated email addresses to receive alerts when the soft budget is reached",children:(0,t.jsx)(z.Input,{placeholder:"example1@test.com, example2@test.com"})}),(0,t.jsxs)(j.Accordion,{className:"mt-4 mb-4",children:[(0,t.jsx)(v.AccordionHeader,{children:(0,t.jsx)("b",{children:"Team Member Settings"})}),(0,t.jsxs)(f.AccordionBody,{children:[(0,t.jsx)(N.Text,{className:"text-xs text-gray-500 mb-4",children:"Optional defaults applied when members join this team. All fields can be overridden per member."}),(0,t.jsx)(M.Form.Item,{label:(0,t.jsxs)("span",{children:["Default Model Access"," ",(0,t.jsx)(R.Tooltip,{title:"Optional. If set, new members can only access these models by default. Must be a subset of the team's models above. Leave empty to give all members access to all team models.",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"default_team_member_models",children:(0,t.jsx)(M.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.models!==t.models,children:({getFieldValue:e})=>{let l=e("models")||tT.models||[];return(0,t.jsx)(F.Select,{mode:"multiple",placeholder:"Leave empty — all team models accessible to every member",value:ek.getFieldValue("default_team_member_models")||[],onChange:e=>ek.setFieldValue("default_team_member_models",e),options:l.map(e=>({label:e,value:e}))})}})}),(0,t.jsx)(M.Form.Item,{label:"Default Budget (USD)",name:"team_member_budget",tooltip:"Default spend budget for each member in this team.",children:(0,t.jsx)(el.default,{step:.01,precision:2,style:{width:"100%"}})}),(0,t.jsx)(M.Form.Item,{label:"Default Budget Duration",name:"team_member_budget_duration",children:(0,t.jsx)(W,{onChange:e=>ek.setFieldValue("team_member_budget_duration",e),value:ek.getFieldValue("team_member_budget_duration")})}),(0,t.jsx)(M.Form.Item,{label:"Default Key Duration (eg: 1d, 1mo)",name:"team_member_key_duration",tooltip:"Set a limit to the duration of a team member's key. Format: 30s (seconds), 30m (minutes), 30h (hours), 30d (days), 1mo (month)",children:(0,t.jsx)(C.TextInput,{placeholder:"e.g., 30d"})}),(0,t.jsx)(M.Form.Item,{label:"Default TPM Limit",name:"team_member_tpm_limit",tooltip:"Default tokens per minute limit for each member. Can be overridden per member.",children:(0,t.jsx)(el.default,{step:1,style:{width:"100%"},placeholder:"e.g., 1000"})}),(0,t.jsx)(M.Form.Item,{label:"Default RPM Limit",name:"team_member_rpm_limit",tooltip:"Default requests per minute limit for each member. Can be overridden per member.",children:(0,t.jsx)(el.default,{step:1,style:{width:"100%"},placeholder:"e.g., 100"})})]})]}),(0,t.jsx)(M.Form.Item,{label:"Reset Budget",name:"budget_duration",children:(0,t.jsxs)(F.Select,{placeholder:"n/a",children:[(0,t.jsx)(F.Select.Option,{value:"24h",children:"daily"}),(0,t.jsx)(F.Select.Option,{value:"7d",children:"weekly"}),(0,t.jsx)(F.Select.Option,{value:"30d",children:"monthly"})]})}),(0,t.jsx)(M.Form.Item,{label:"Tokens per minute Limit (TPM)",name:"tpm_limit",children:(0,t.jsx)(el.default,{step:1,style:{width:"100%"}})}),(0,t.jsx)(M.Form.Item,{label:"Requests per minute Limit (RPM)",name:"rpm_limit",children:(0,t.jsx)(el.default,{step:1,style:{width:"100%"}})}),(0,t.jsx)(M.Form.Item,{label:"Model-Specific Rate Limits",tooltip:"Set per-model TPM/RPM limits that apply across the whole team.",children:(0,t.jsx)(M.Form.List,{name:"modelLimits",children:(e,{add:l,remove:a})=>(0,t.jsxs)(t.Fragment,{children:[e.map(({key:e,name:l,...s})=>(0,t.jsxs)(P.Space,{style:{display:"flex",marginBottom:8},align:"baseline",children:[(0,t.jsx)(M.Form.Item,{...s,name:[l,"model"],rules:[{required:!0,message:"Missing model"},{validator:(e,t)=>t&&(ek.getFieldValue("modelLimits")??[]).filter(e=>e?.model===t).length>1?Promise.reject(Error("Duplicate model")):Promise.resolve()}],style:{minWidth:240},children:(0,t.jsx)(F.Select,{showSearch:!0,placeholder:"Select model",allowClear:!0,options:th.map(e=>({value:e,label:e}))})}),(0,t.jsx)(M.Form.Item,{...s,name:[l,"tpm"],rules:[{validator:async(e,t)=>{let a=(ek.getFieldValue("modelLimits")??[])[l]??{};return a.model&&null==t&&null==a.rpm?Promise.reject(Error("Set at least one of TPM or RPM")):Promise.resolve()}}],children:(0,t.jsx)(A.InputNumber,{placeholder:"TPM Limit",min:0})}),(0,t.jsx)(M.Form.Item,{...s,name:[l,"rpm"],children:(0,t.jsx)(A.InputNumber,{placeholder:"RPM Limit",min:0})}),(0,t.jsx)(x.MinusCircleOutlined,{onClick:()=>a(l),style:{color:"#ef4444"}})]},e)),(0,t.jsx)(M.Form.Item,{children:(0,t.jsx)(I.Button,{type:"dashed",onClick:()=>l(),block:!0,icon:(0,t.jsx)(_.PlusOutlined,{}),children:"Add Model Limit"})})]})})}),(0,t.jsx)(M.Form.Item,{label:"Router Settings",children:(0,t.jsx)(er.default,{ref:ts,accessToken:o||"",value:tT.router_settings?{router_settings:tT.router_settings}:void 0})}),(0,t.jsx)(M.Form.Item,{label:(0,t.jsxs)("span",{children:["Guardrails"," ",(0,t.jsx)(R.Tooltip,{title:"Select which guardrails apply to this team. Global guardrails are enabled by default — uncheck to opt out. Other guardrails are opt-in.",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/guardrails/quick_start",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),name:"guardrails",children:(0,t.jsxs)(F.Select,{mode:"multiple",placeholder:"Select guardrails",optionLabelProp:"label",tagRender:({label:e,value:l,closable:a,onClose:s})=>{let i=eX.has(l);return(0,t.jsxs)(L.Tag,{color:"blue",closable:a,onClose:s,onMouseDown:tk,style:{marginInlineEnd:4},children:[i&&(0,t.jsx)(h.GlobalOutlined,{style:{marginInlineEnd:4},"aria-label":"Global guardrail"}),e]})},children:[(0,t.jsx)(F.Select.OptGroup,{label:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(h.GlobalOutlined,{style:{marginInlineEnd:4}}),"Global"]}),children:(eQ?.guardrails??[]).filter(e=>e.litellm_params?.default_on).map(e=>(0,t.jsx)(F.Select.Option,{value:e.guardrail_name,label:e.guardrail_name,disabled:tg,children:e.guardrail_name},e.guardrail_name))}),(0,t.jsx)(F.Select.OptGroup,{label:"Other",children:(eQ?.guardrails??[]).filter(e=>!e.litellm_params?.default_on).map(e=>(0,t.jsx)(F.Select.Option,{value:e.guardrail_name,label:e.guardrail_name,children:e.guardrail_name},e.guardrail_name))})]})}),(0,t.jsx)(M.Form.Item,{label:(0,t.jsxs)("span",{children:["Disable all global guardrails"," ",(0,t.jsx)(R.Tooltip,{title:"Kill switch: bypass every global guardrail for this team, including any added in the future. For per-guardrail opt-out instead, use the Guardrails dropdown above.",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"disable_global_guardrails",valuePropName:"checked",children:(0,t.jsx)(O.Switch,{checkedChildren:"Yes",unCheckedChildren:"No"})}),(0,t.jsx)(M.Form.Item,{label:(0,t.jsxs)("span",{children:["Policies"," ",(0,t.jsx)(R.Tooltip,{title:"Apply policies to this team to control guardrails and other settings",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),name:"policies",children:(0,t.jsx)(F.Select,{mode:"tags",placeholder:"Select or enter policies",options:eZ.map(e=>({value:e,label:e}))})}),(0,t.jsx)(M.Form.Item,{label:(0,t.jsxs)("span",{children:["Access Groups"," ",(0,t.jsx)(R.Tooltip,{title:"Assign access groups to this team. Access groups control which models, MCP servers, and agents this team can use",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"access_group_ids",children:(0,t.jsx)($.default,{placeholder:"Select access groups (optional)"})}),(0,t.jsx)(M.Form.Item,{label:"Vector Stores",name:"vector_stores","aria-label":"Vector Stores",children:(0,t.jsx)(ea.default,{onChange:e=>ek.setFieldValue("vector_stores",e),value:ek.getFieldValue("vector_stores"),accessToken:o||"",placeholder:"Select vector stores"})}),(0,t.jsx)(M.Form.Item,{label:"Allowed Pass Through Routes",name:"allowed_passthrough_routes",children:(0,t.jsx)(q.default,{onChange:e=>ek.setFieldValue("allowed_passthrough_routes",e),value:ek.getFieldValue("allowed_passthrough_routes"),accessToken:o||"",placeholder:"Select pass through routes"})}),(0,t.jsx)(M.Form.Item,{label:"MCP Servers / Access Groups",name:"mcp_servers_and_groups",children:(0,t.jsx)(Y.default,{onChange:e=>ek.setFieldValue("mcp_servers_and_groups",e),value:ek.getFieldValue("mcp_servers_and_groups"),accessToken:o||"",placeholder:"Select MCP servers or access groups (optional)"})}),(0,t.jsx)(M.Form.Item,{name:"mcp_tool_permissions",initialValue:{},hidden:!0,children:(0,t.jsx)(z.Input,{type:"hidden"})}),(0,t.jsx)(M.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.mcp_servers_and_groups!==t.mcp_servers_and_groups||e.mcp_tool_permissions!==t.mcp_tool_permissions,children:()=>(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsx)(X.default,{accessToken:o||"",selectedServers:ek.getFieldValue("mcp_servers_and_groups")?.servers||[],toolPermissions:ek.getFieldValue("mcp_tool_permissions")||{},onChange:e=>ek.setFieldsValue({mcp_tool_permissions:e})})})}),(0,t.jsx)(M.Form.Item,{label:"Agents / Access Groups",name:"agents_and_groups",children:(0,t.jsx)(K.default,{onChange:e=>ek.setFieldValue("agents_and_groups",e),value:ek.getFieldValue("agents_and_groups"),accessToken:o||"",placeholder:"Select agents or access groups (optional)"})}),(0,t.jsxs)(j.Accordion,{className:"mt-4 mb-4",children:[(0,t.jsx)(v.AccordionHeader,{children:(0,t.jsx)("b",{children:"Search Tool Settings"})}),(0,t.jsx)(f.AccordionBody,{children:(0,t.jsx)(M.Form.Item,{label:"Allowed Search Tools",name:"object_permission_search_tools",tooltip:"Select which search tools this team can access. Leave empty to allow all search tools.",children:(0,t.jsx)(es,{onChange:e=>ek.setFieldValue("object_permission_search_tools",e),value:ek.getFieldValue("object_permission_search_tools"),accessToken:o||"",placeholder:"Select search tools (optional, empty = all allowed)"})})})]}),(0,t.jsx)(M.Form.Item,{label:"Organization",name:"organization_id",children:(0,t.jsx)(F.Select,{allowClear:!0,placeholder:"Select an organization",showSearch:!0,optionFilterProp:"label",options:td.map(e=>({value:e.organization_id,label:e.organization_alias||e.organization_id}))})}),(0,t.jsx)(M.Form.Item,{label:"Logging Settings",name:"logging_settings",children:(0,t.jsx)(ei.default,{value:ek.getFieldValue("logging_settings"),onChange:e=>ek.setFieldValue("logging_settings",e)})}),(0,t.jsx)(M.Form.Item,{label:"Secret Manager Settings",name:"secret_manager_settings",help:eg?"Enter secret manager configuration as a JSON object.":"Premium feature - Upgrade to manage secret manager settings.",rules:[{validator:async(e,t)=>{if(!t)return Promise.resolve();try{return JSON.parse(t),Promise.resolve()}catch(e){return Promise.reject(Error("Please enter valid JSON"))}}}],children:(0,t.jsx)(z.Input.TextArea,{rows:6,placeholder:'{"namespace": "admin", "mount": "secret", "path_prefix": "litellm"}',disabled:!eg})}),(0,t.jsx)(M.Form.Item,{label:"Metadata",name:"metadata",children:(0,t.jsx)(z.Input.TextArea,{rows:10})}),(0,t.jsx)("div",{className:"sticky z-10 bg-white p-4 pr-0 border-t border-gray-200 bottom-[-1.5rem] inset-x-[-1.5rem]",children:(0,t.jsxs)("div",{className:"flex justify-end items-center gap-2",children:[(0,t.jsx)(I.Button,{onClick:()=>e$(!1),disabled:tl,children:"Cancel"}),(0,t.jsx)(I.Button,{icon:(0,t.jsx)(b.SaveOutlined,{className:"h-4 w-4"}),type:"primary",htmlType:"submit",loading:tl,children:"Save Changes"})]})})]}):(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Team Name"}),(0,t.jsx)("div",{children:tT.team_alias})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Team ID"}),(0,t.jsx)("div",{className:"font-mono",children:tT.team_id})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Created At"}),(0,t.jsx)("div",{children:new Date(tT.created_at).toLocaleString()})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Models"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2 mt-1",children:tT.models.map((e,l)=>(0,t.jsx)(T.Badge,{color:"red",children:e},l))})]}),tT.default_team_member_models&&tT.default_team_member_models.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Default Member Models"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2 mt-1",children:tT.default_team_member_models.map((e,l)=>(0,t.jsx)(T.Badge,{color:"blue",children:e},l))})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Rate Limits"}),(0,t.jsxs)("div",{children:["TPM: ",tT.tpm_limit||"Unlimited"]}),(0,t.jsxs)("div",{children:["RPM: ",tT.rpm_limit||"Unlimited"]}),(ey=tT.metadata?.model_tpm_limit??{},ej=tT.metadata?.model_rpm_limit??{},0===(ef=Array.from(new Set([...Object.keys(ey),...Object.keys(ej)]))).length?null:(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsx)(N.Text,{className:"text-gray-500",children:"Per-model limits:"}),ef.map(e=>(0,t.jsxs)("div",{className:"text-xs ml-2",children:[e,": TPM ",ey[e]??"—",", RPM ",ej[e]??"—"]},e))]}))]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Team Budget"}),(0,t.jsxs)("div",{children:["Max Budget:"," ",null!==tT.max_budget?`$${(0,m.formatNumberWithCommas)(tT.max_budget,4)}`:"No Limit"]}),(0,t.jsxs)("div",{children:["Soft Budget:"," ",null!==tT.soft_budget&&void 0!==tT.soft_budget?`$${(0,m.formatNumberWithCommas)(tT.soft_budget,4)}`:"No Limit"]}),(0,t.jsxs)("div",{children:["Budget Reset: ",tT.budget_duration||"Never"]}),tT.metadata?.soft_budget_alerting_emails&&Array.isArray(tT.metadata.soft_budget_alerting_emails)&&tT.metadata.soft_budget_alerting_emails.length>0&&(0,t.jsxs)("div",{children:["Soft Budget Alerting Emails: ",tT.metadata.soft_budget_alerting_emails.join(", ")]})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(N.Text,{className:"font-medium",children:["Team Member Settings"," ",(0,t.jsx)(R.Tooltip,{title:"These are limits on individual team members",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),(0,t.jsxs)("div",{children:["Max Budget: ",tT.team_member_budget_table?.max_budget||"No Limit"]}),(0,t.jsxs)("div",{children:["Budget Duration: ",tT.team_member_budget_table?.budget_duration||"No Limit"]}),(0,t.jsxs)("div",{children:["Key Duration: ",tT.metadata?.team_member_key_duration||"No Limit"]}),(0,t.jsxs)("div",{children:["TPM Limit: ",tT.team_member_budget_table?.tpm_limit||"No Limit"]}),(0,t.jsxs)("div",{children:["RPM Limit: ",tT.team_member_budget_table?.rpm_limit||"No Limit"]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Router Settings"}),tT.router_settings&&Object.values(tT.router_settings).some(e=>null!=e&&""!==e&&!(Array.isArray(e)&&0===e.length))?(0,t.jsxs)("div",{className:"mt-1 space-y-1",children:[tT.router_settings.routing_strategy&&(0,t.jsxs)("div",{children:["Routing Strategy:"," ",(0,t.jsx)(T.Badge,{color:"blue",children:tT.router_settings.routing_strategy})]}),null!=tT.router_settings.num_retries&&(0,t.jsxs)("div",{children:["Number of Retries: ",tT.router_settings.num_retries]}),null!=tT.router_settings.allowed_fails&&(0,t.jsxs)("div",{children:["Allowed Failures: ",tT.router_settings.allowed_fails]}),null!=tT.router_settings.cooldown_time&&(0,t.jsxs)("div",{children:["Cooldown Time: ",tT.router_settings.cooldown_time,"s"]}),null!=tT.router_settings.timeout&&(0,t.jsxs)("div",{children:["Timeout: ",tT.router_settings.timeout,"s"]}),null!=tT.router_settings.retry_after&&(0,t.jsxs)("div",{children:["Retry After: ",tT.router_settings.retry_after,"s"]}),tT.router_settings.fallbacks&&Array.isArray(tT.router_settings.fallbacks)&&tT.router_settings.fallbacks.length>0&&(0,t.jsxs)("div",{children:["Fallbacks: ",tT.router_settings.fallbacks.length," configured"]}),tT.router_settings.enable_tag_filtering&&(0,t.jsx)("div",{children:"Tag Filtering: Enabled"})]}):(0,t.jsx)("div",{className:"text-gray-400",children:"No router settings configured"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Organization ID"}),(0,t.jsx)("div",{children:tT.organization_id})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Status"}),(0,t.jsx)(T.Badge,{color:tT.blocked?"red":"green",children:tT.blocked?"Blocked":"Active"})]}),(0,t.jsx)(et.default,{objectPermission:tT.object_permission,variant:"inline",className:"pt-4 border-t border-gray-200",accessToken:o}),(0,t.jsx)(J,{globalGuardrailNames:eX,teamGuardrails:Array.isArray(tT.metadata?.guardrails)?tT.metadata.guardrails:[],optedOutGlobalGuardrails:Array.isArray(tT.metadata?.opted_out_global_guardrails)?tT.metadata.opted_out_global_guardrails:[],killSwitchOn:tS,variant:"inline",className:"pt-4 border-t border-gray-200"}),(0,t.jsx)(Q.default,{loggingConfigs:tT.metadata?.logging||[],disabledCallbacks:[],variant:"inline",className:"pt-4 border-t border-gray-200"}),tT.metadata?.secret_manager_settings&&(0,t.jsxs)("div",{className:"pt-4 border-t border-gray-200",children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Secret Manager Settings"}),(0,t.jsx)("pre",{className:"mt-2 bg-gray-50 p-3 rounded text-xs overflow-x-auto",children:JSON.stringify(tT.metadata.secret_manager_settings,null,2)})]})]})]})}].filter(e=>tx.includes(e.key))}),(0,t.jsx)(en.default,{visible:eL,onCancel:()=>eR(!1),onSubmit:tj,initialData:eU,mode:"edit",config:{title:"Edit Member",showEmail:!0,showUserId:!0,roleOptions:[{label:"Admin",value:"admin"},{label:"User",value:"user"}],additionalFields:[{name:"max_budget_in_team",label:(0,t.jsxs)("span",{children:["Team Member Budget (USD)"," ",(0,t.jsx)(R.Tooltip,{title:"Maximum amount in USD this member can spend within this team. This is separate from any global user budget limits",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),type:"numerical",step:.01,min:0,placeholder:"Budget limit for this member within this team"},{name:"tpm_limit",label:(0,t.jsxs)("span",{children:["Team Member TPM Limit"," ",(0,t.jsx)(R.Tooltip,{title:"Maximum tokens per minute this member can use within this team. This is separate from any global user TPM limit",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),type:"numerical",step:1,min:0,placeholder:"Tokens per minute limit for this member in this team"},{name:"rpm_limit",label:(0,t.jsxs)("span",{children:["Team Member RPM Limit"," ",(0,t.jsx)(R.Tooltip,{title:"Maximum requests per minute this member can make within this team. This is separate from any global user RPM limit",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),type:"numerical",step:1,min:0,placeholder:"Requests per minute limit for this member in this team"},{name:"allowed_models",label:(0,t.jsxs)("span",{children:["Allowed Models"," ",(0,t.jsx)(R.Tooltip,{title:"Models this member can access within this team. Leave empty to inherit all team models.",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),type:"multi-select",options:(tT.models||[]).map(e=>({label:e,value:e})),placeholder:"Leave empty to inherit all team models"}]}}),(0,t.jsx)(i.default,{isVisible:eN,onCancel:()=>eC(!1),onSubmit:ty,accessToken:o,teamId:e}),(0,t.jsx)(G.default,{isOpen:e7,title:"Delete Team Member",alertMessage:"Removing team members will also delete any keys created by or created for this member.",message:"Are you sure you want to remove this member from the team? This action cannot be undone.",resourceInformationTitle:"Team Member Information",resourceInformation:[{label:"User ID",value:e6?.user_id,code:!0},{label:"Email",value:e6?.user_email},{label:"Role",value:e6?.role}],onCancel:()=>{e9(!1),e8(null)},onOk:tf,confirmLoading:te})]})}],56567)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/06oag4x9~8vif.js b/litellm/proxy/_experimental/out/_next/static/chunks/06oag4x9~8vif.js deleted file mode 100644 index 94062d0104a..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/06oag4x9~8vif.js +++ /dev/null @@ -1,98 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,268004,e=>{"use strict";function t(){let e=window.location.pathname.match(/\/ui(?=\/|$)/);return e&&void 0!==e.index?window.location.pathname.substring(0,e.index+3):"/ui"}e.s(["clearTokenCookies",0,function(){if("u"{document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t};`,document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${e};`,n.forEach(r=>{let o="None"===r?" Secure;":"";document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; SameSite=${r};${o}`,document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${e}; SameSite=${r};${o}`})});try{sessionStorage.removeItem("token")}catch{}},"getCookie",0,function(e){if("u"t.startsWith(e+"="));if(t){let e=t.split("=").slice(1).join("=");try{return decodeURIComponent(e)}catch{return e}}if("token"===e)try{return sessionStorage.getItem(e)}catch{}return null},"storeLoginToken",0,function(e){if(e&&e.trim()){try{let r="https:"===window.location.protocol?"; Secure":"",o=t();document.cookie=`token=${encodeURIComponent(e)}; path=${o}; SameSite=Lax${r}`}catch{}try{sessionStorage.setItem("token",e)}catch{}}}])},876556,e=>{"use strict";var t=e.i(565924),r=e.i(271645);e.s(["default",0,function e(o){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=[];return r.default.Children.forEach(o,function(r){(null!=r||n.keepEmpty)&&(Array.isArray(r)?a=a.concat(e(r)):(0,t.default)(r)&&r.props?a=a.concat(e(r.props.children,n)):a.push(r))}),a}])},495347,177886,786944,162129,197091,787894,696752,621796,e=>{"use strict";var t,r=e.i(271645);e.i(247167);var o=e.i(931067),n=e.i(703923),a=e.i(31575),i=e.i(33968),l=e.i(209428),s=e.i(8211),c=e.i(278409),u=e.i(233848),d=e.i(971151),f=e.i(868917),p=e.i(674813),h=e.i(211577),m=e.i(876556),g=e.i(929123),v=e.i(883110),y="RC_FORM_INTERNAL_HOOKS",b=function(){(0,v.default)(!1,"Can not find FormContext. Please make sure you wrap Field under Form.")},w=r.createContext({getFieldValue:b,getFieldsValue:b,getFieldError:b,getFieldWarning:b,getFieldsError:b,isFieldsTouched:b,isFieldTouched:b,isFieldValidating:b,isFieldsValidating:b,resetFields:b,setFields:b,setFieldValue:b,setFieldsValue:b,validateFields:b,submit:b,getInternalHooks:function(){return b(),{dispatch:b,initEntityValue:b,registerField:b,useSubscribe:b,setInitialValues:b,destroyForm:b,setCallbacks:b,registerWatch:b,getFields:b,setValidateMessages:b,setPreserve:b,getInitialValue:b}}});e.s(["HOOK_MARK",0,y,"default",0,w],177886);var $=r.createContext(null);function C(e){return null==e?[]:Array.isArray(e)?e:[e]}e.s(["default",0,$],786944);var x=e.i(410160);function E(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",tel:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var S=E(),k=e.i(487806),j=e.i(885963),O=e.i(479671);function T(e){var t="function"==typeof Map?new Map:void 0;return(T=function(e){if(null===e||!function(e){try{return -1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if((0,O.default)())return Reflect.construct.apply(null,arguments);var o=[null];o.push.apply(o,t);var n=new(e.bind.apply(e,o));return r&&(0,j.default)(n,r.prototype),n}(e,arguments,(0,k.default)(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),(0,j.default)(r,e)})(e)}var I=/%[sdj%]/g;function _(e){if(!e||!e.length)return null;var t={};return e.forEach(function(e){var r=e.field;t[r]=t[r]||[],t[r].push(e)}),t}function F(e){for(var t=arguments.length,r=Array(t>1?t-1:0),o=1;o=a)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}}):e}function P(e,t){return!!(null==e||"array"===t&&Array.isArray(e)&&!e.length)||("string"===t||"url"===t||"hex"===t||"email"===t||"date"===t||"pattern"===t||"tel"===t)&&"string"==typeof e&&!e||!1}function R(e,t,r){var o=0,n=e.length;!function a(i){if(i&&i.length)return void r(i);var l=o;o+=1,l()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,H=/^(\+[0-9]{1,3}[-\s\u2011]?)?(\([0-9]{1,4}\)[-\s\u2011]?)?([0-9]+[-\s\u2011]?)*[0-9]+$/,V=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,W={integer:function(e){return W.number(e)&&parseInt(e,10)===e},float:function(e){return W.number(e)&&!W.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return new RegExp(e),!0}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime())},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"===(0,x.default)(e)&&!W.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&e.length<=320&&!!e.match(D)},tel:function(e){return"string"==typeof e&&e.length<=32&&!!e.match(H)},url:function(e){return"string"==typeof e&&e.length<=2048&&!!e.match(L())},hex:function(e){return"string"==typeof e&&!!e.match(V)}};let U=z,G=function(e,t,r,o,n){(/^\s+$/.test(t)||""===t)&&o.push(F(n.messages.whitespace,e.fullField))},q=function(e,t,r,o,n){if(e.required&&void 0===t)return void z(e,t,r,o,n);var a=e.type;["integer","float","array","regexp","object","method","email","tel","number","date","url","hex"].indexOf(a)>-1?W[a](t)||o.push(F(n.messages.types[a],e.fullField,e.type)):a&&(0,x.default)(t)!==e.type&&o.push(F(n.messages.types[a],e.fullField,e.type))},J=function(e,t,r,o,n){var a="number"==typeof e.len,i="number"==typeof e.min,l="number"==typeof e.max,s=t,c=null,u="number"==typeof t,d="string"==typeof t,f=Array.isArray(t);if(u?c="number":d?c="string":f&&(c="array"),!c)return!1;f&&(s=t.length),d&&(s=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),a?s!==e.len&&o.push(F(n.messages[c].len,e.fullField,e.len)):i&&!l&&se.max?o.push(F(n.messages[c].max,e.fullField,e.max)):i&&l&&(se.max)&&o.push(F(n.messages[c].range,e.fullField,e.min,e.max))},K=function(e,t,r,o,n){e[A]=Array.isArray(e[A])?e[A]:[],-1===e[A].indexOf(t)&&o.push(F(n.messages[A],e.fullField,e[A].join(", ")))},X=function(e,t,r,o,n){e.pattern&&(e.pattern instanceof RegExp?(e.pattern.lastIndex=0,e.pattern.test(t)||o.push(F(n.messages.pattern.mismatch,e.fullField,t,e.pattern))):"string"==typeof e.pattern&&(new RegExp(e.pattern).test(t)||o.push(F(n.messages.pattern.mismatch,e.fullField,t,e.pattern))))},Q=function(e,t,r,o,n){var a=e.type,i=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,a)&&!e.required)return r();U(e,t,o,i,n,a),P(t,a)||q(e,t,o,i,n)}r(i)},Y={string:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,"string")&&!e.required)return r();U(e,t,o,a,n,"string"),P(t,"string")||(q(e,t,o,a,n),J(e,t,o,a,n),X(e,t,o,a,n),!0===e.whitespace&&G(e,t,o,a,n))}r(a)},method:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&q(e,t,o,a,n)}r(a)},number:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(""===t&&(t=void 0),P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},boolean:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&q(e,t,o,a,n)}r(a)},regexp:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),P(t)||q(e,t,o,a,n)}r(a)},integer:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},float:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},array:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();U(e,t,o,a,n,"array"),null!=t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},object:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&q(e,t,o,a,n)}r(a)},enum:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&K(e,t,o,a,n)}r(a)},pattern:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,"string")&&!e.required)return r();U(e,t,o,a,n),P(t,"string")||X(e,t,o,a,n)}r(a)},date:function(e,t,r,o,n){var a,i=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,"date")&&!e.required)return r();U(e,t,o,i,n),!P(t,"date")&&(a=t instanceof Date?t:new Date(t),q(e,a,o,i,n),a&&J(e,a.getTime(),o,i,n))}r(i)},url:Q,hex:Q,email:Q,tel:Q,required:function(e,t,r,o,n){var a=[],i=Array.isArray(t)?"array":(0,x.default)(t);U(e,t,o,a,n,i),r(a)},any:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n)}r(a)}};var Z=function(){function e(t){(0,c.default)(this,e),(0,h.default)(this,"rules",null),(0,h.default)(this,"_messages",S),this.define(t)}return(0,u.default)(e,[{key:"define",value:function(e){var t=this;if(!e)throw Error("Cannot configure a schema with no rules");if("object"!==(0,x.default)(e)||Array.isArray(e))throw Error("Rules must be an object");this.rules={},Object.keys(e).forEach(function(r){var o=e[r];t.rules[r]=Array.isArray(o)?o:[o]})}},{key:"messages",value:function(e){return e&&(this._messages=B(E(),e)),this._messages}},{key:"validate",value:function(t){var r=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},a=t,i=o,c=n;if("function"==typeof i&&(c=i,i={}),!this.rules||0===Object.keys(this.rules).length)return c&&c(null,a),Promise.resolve(a);if(i.messages){var u=this.messages();u===S&&(u=E()),B(u,i.messages),i.messages=u}else i.messages=this.messages();var d={};(i.keys||Object.keys(this.rules)).forEach(function(e){var o=r.rules[e],n=a[e];o.forEach(function(o){var i=o;"function"==typeof i.transform&&(a===t&&(a=(0,l.default)({},a)),null!=(n=a[e]=i.transform(n))&&(i.type=i.type||(Array.isArray(n)?"array":(0,x.default)(n)))),(i="function"==typeof i?{validator:i}:(0,l.default)({},i)).validator=r.getValidationMethod(i),i.validator&&(i.field=e,i.fullField=i.fullField||e,i.type=r.getType(i),d[e]=d[e]||[],d[e].push({rule:i,value:n,source:a,field:e}))})});var f={};return function(e,t,r,o,n){if(t.first){var a=new Promise(function(t,a){var i;R((i=[],Object.keys(e).forEach(function(t){i.push.apply(i,(0,s.default)(e[t]||[]))}),i),r,function(e){return o(e),e.length?a(new N(e,_(e))):t(n)})});return a.catch(function(e){return e}),a}var i=!0===t.firstFields?Object.keys(e):t.firstFields||[],l=Object.keys(e),c=l.length,u=0,d=[],f=new Promise(function(t,a){var f=function(e){if(d.push.apply(d,e),++u===c)return o(d),d.length?a(new N(d,_(d))):t(n)};l.length||(o(d),t(n)),l.forEach(function(t){var o=e[t];if(-1!==i.indexOf(t))R(o,r,f);else{var n=[],a=0,l=o.length;function c(e){n.push.apply(n,(0,s.default)(e||[])),++a===l&&f(n)}o.forEach(function(e){r(e,c)})}})});return f.catch(function(e){return e}),f}(d,i,function(t,r){var o,n,c,u=t.rule,d=("object"===u.type||"array"===u.type)&&("object"===(0,x.default)(u.fields)||"object"===(0,x.default)(u.defaultField));function p(e,t){return(0,l.default)((0,l.default)({},t),{},{fullField:"".concat(u.fullField,".").concat(e),fullFields:u.fullFields?[].concat((0,s.default)(u.fullFields),[e]):[e]})}function h(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=Array.isArray(o)?o:[o];!i.suppressWarning&&n.length&&e.warning("async-validator:",n),n.length&&void 0!==u.message&&null!==u.message&&(n=[].concat(u.message));var c=n.map(M(u,a));if(i.first&&c.length)return f[u.field]=1,r(c);if(d){if(u.required&&!t.value)return void 0!==u.message?c=[].concat(u.message).map(M(u,a)):i.error&&(c=[i.error(u,F(i.messages.required,u.field))]),r(c);var h={};u.defaultField&&Object.keys(t.value).map(function(e){h[e]=u.defaultField});var m={};Object.keys(h=(0,l.default)((0,l.default)({},h),t.rule.fields)).forEach(function(e){var t=h[e],r=Array.isArray(t)?t:[t];m[e]=r.map(p.bind(null,e))});var g=new e(m);g.messages(i.messages),t.rule.options&&(t.rule.options.messages=i.messages,t.rule.options.error=i.error),g.validate(t.value,t.rule.options||i,function(e){var t=[];c&&c.length&&t.push.apply(t,(0,s.default)(c)),e&&e.length&&t.push.apply(t,(0,s.default)(e)),r(t.length?t:null)})}else r(c)}if(d=d&&(u.required||!u.required&&t.value),u.field=t.field,u.asyncValidator)o=u.asyncValidator(u,t.value,h,t.source,i);else if(u.validator){try{o=u.validator(u,t.value,h,t.source,i)}catch(e){null==(n=(c=console).error)||n.call(c,e),i.suppressValidatorError||setTimeout(function(){throw e},0),h(e.message)}!0===o?h():!1===o?h("function"==typeof u.message?u.message(u.fullField||u.field):u.message||"".concat(u.fullField||u.field," fails")):o instanceof Array?h(o):o instanceof Error&&h(o.message)}o&&o.then&&o.then(function(){return h()},function(e){return h(e)})},function(e){for(var t=[],r={},o=0;o0)){e.next=23;break}return e.next=21,Promise.all(o.map(function(e,r){return en("".concat(t,".").concat(r),e,f,i,c)}));case 21:return v=e.sent,e.abrupt("return",v.reduce(function(e,t){return[].concat((0,s.default)(e),(0,s.default)(t))},[]));case 23:return y=(0,l.default)((0,l.default)({},n),{},{name:t,enum:(n.enum||[]).join(", ")},c),b=g.map(function(e){return"string"==typeof e?function(e,t){return e.replace(/\\?\$\{\w+\}/g,function(e){return e.startsWith("\\")?e.slice(1):t[e.slice(2,-1)]})}(e,y):e}),e.abrupt("return",b);case 26:case"end":return e.stop()}},e,null,[[10,15]])}))).apply(this,arguments)}function ei(){return(ei=(0,i.default)((0,a.default)().mark(function e(t){return(0,a.default)().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(t).then(function(e){var t;return(t=[]).concat.apply(t,(0,s.default)(e))}));case 1:case"end":return e.stop()}},e)}))).apply(this,arguments)}function el(){return(el=(0,i.default)((0,a.default)().mark(function e(t){var r;return(0,a.default)().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=0,e.abrupt("return",new Promise(function(e){t.forEach(function(o){o.then(function(o){o.errors.length&&e([o]),(r+=1)===t.length&&e([])})})}));case 2:case"end":return e.stop()}},e)}))).apply(this,arguments)}var es=e.i(657791);function ec(e){return C(e)}function eu(e,t){var r={};return t.forEach(function(t){var o=(0,es.default)(e,t);r=(0,er.default)(r,t,o)}),r}function ed(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return e&&e.some(function(e){return ef(t,e,r)})}function ef(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return!!e&&!!t&&(!!r||e.length===t.length)&&t.every(function(t,r){return e[r]===t})}function ep(e){var t=arguments.length<=1?void 0:arguments[1];return t&&t.target&&"object"===(0,x.default)(t.target)&&e in t.target?t.target[e]:t}function eh(e,t,r){var o=e.length;if(t<0||t>=o||r<0||r>=o)return e;var n=e[t],a=t-r;return a>0?[].concat((0,s.default)(e.slice(0,r)),[n],(0,s.default)(e.slice(r,t)),(0,s.default)(e.slice(t+1,o))):a<0?[].concat((0,s.default)(e.slice(0,t)),(0,s.default)(e.slice(t+1,r+1)),[n],(0,s.default)(e.slice(r+1,o))):e}var em=es,eg=["name"],ev=[];function ey(e,t,r,o,n,a){return"function"==typeof e?e(t,r,"source"in a?{source:a.source}:{}):o!==n}var eb=function(e){(0,f.default)(o,e);var t=(0,p.default)(o);function o(e){var n;return(0,c.default)(this,o),n=t.call(this,e),(0,h.default)((0,d.default)(n),"state",{resetCount:0}),(0,h.default)((0,d.default)(n),"cancelRegisterFunc",null),(0,h.default)((0,d.default)(n),"mounted",!1),(0,h.default)((0,d.default)(n),"touched",!1),(0,h.default)((0,d.default)(n),"dirty",!1),(0,h.default)((0,d.default)(n),"validatePromise",void 0),(0,h.default)((0,d.default)(n),"prevValidating",void 0),(0,h.default)((0,d.default)(n),"errors",ev),(0,h.default)((0,d.default)(n),"warnings",ev),(0,h.default)((0,d.default)(n),"cancelRegister",function(){var e=n.props,t=e.preserve,r=e.isListField,o=e.name;n.cancelRegisterFunc&&n.cancelRegisterFunc(r,t,ec(o)),n.cancelRegisterFunc=null}),(0,h.default)((0,d.default)(n),"getNamePath",function(){var e=n.props,t=e.name,r=e.fieldContext.prefixName;return void 0!==t?[].concat((0,s.default)(void 0===r?[]:r),(0,s.default)(t)):[]}),(0,h.default)((0,d.default)(n),"getRules",function(){var e=n.props,t=e.rules,r=e.fieldContext;return(void 0===t?[]:t).map(function(e){return"function"==typeof e?e(r):e})}),(0,h.default)((0,d.default)(n),"refresh",function(){n.mounted&&n.setState(function(e){return{resetCount:e.resetCount+1}})}),(0,h.default)((0,d.default)(n),"metaCache",null),(0,h.default)((0,d.default)(n),"triggerMetaEvent",function(e){var t=n.props.onMetaChange;if(t){var r=(0,l.default)((0,l.default)({},n.getMeta()),{},{destroy:e});(0,g.default)(n.metaCache,r)||t(r),n.metaCache=r}else n.metaCache=null}),(0,h.default)((0,d.default)(n),"onStoreChange",function(e,t,r){var o=n.props,a=o.shouldUpdate,i=o.dependencies,l=void 0===i?[]:i,s=o.onReset,c=r.store,u=n.getNamePath(),d=n.getValue(e),f=n.getValue(c),p=t&&ed(t,u);switch("valueUpdate"===r.type&&"external"===r.source&&!(0,g.default)(d,f)&&(n.touched=!0,n.dirty=!0,n.validatePromise=null,n.errors=ev,n.warnings=ev,n.triggerMetaEvent()),r.type){case"reset":if(!t||p){n.touched=!1,n.dirty=!1,n.validatePromise=void 0,n.errors=ev,n.warnings=ev,n.triggerMetaEvent(),null==s||s(),n.refresh();return}break;case"remove":if(a&&ey(a,e,c,d,f,r))return void n.reRender();break;case"setField":var h=r.data;if(p){"touched"in h&&(n.touched=h.touched),"validating"in h&&!("originRCField"in h)&&(n.validatePromise=h.validating?Promise.resolve([]):null),"errors"in h&&(n.errors=h.errors||ev),"warnings"in h&&(n.warnings=h.warnings||ev),n.dirty=!0,n.triggerMetaEvent(),n.reRender();return}if("value"in h&&ed(t,u,!0)||a&&!u.length&&ey(a,e,c,d,f,r))return void n.reRender();break;case"dependenciesUpdate":if(l.map(ec).some(function(e){return ed(r.relatedFields,e)}))return void n.reRender();break;default:if(p||(!l.length||u.length||a)&&ey(a,e,c,d,f,r))return void n.reRender()}!0===a&&n.reRender()}),(0,h.default)((0,d.default)(n),"validateRules",function(e){var t=n.getNamePath(),r=n.getValue(),o=e||{},c=o.triggerName,u=o.validateOnly,d=Promise.resolve().then((0,i.default)((0,a.default)().mark(function o(){var u,f,p,h,m,g,y;return(0,a.default)().wrap(function(o){for(;;)switch(o.prev=o.next){case 0:if(n.mounted){o.next=2;break}return o.abrupt("return",[]);case 2:if(p=void 0!==(f=(u=n.props).validateFirst)&&f,h=u.messageVariables,m=u.validateDebounce,g=n.getRules(),c&&(g=g.filter(function(e){return e}).filter(function(e){var t=e.validateTrigger;return!t||C(t).includes(c)})),!(m&&c)){o.next=10;break}return o.next=8,new Promise(function(e){setTimeout(e,m)});case 8:if(n.validatePromise===d){o.next=10;break}return o.abrupt("return",[]);case 10:return(y=function(e,t,r,o,n,s){var c,u,d=e.join("."),f=r.map(function(e,t){var r=e.validator,o=(0,l.default)((0,l.default)({},e),{},{ruleIndex:t});return r&&(o.validator=function(e,t,o){var n=!1,a=r(e,t,function(){for(var e=arguments.length,t=Array(e),r=0;r0&&void 0!==arguments[0]?arguments[0]:ev;if(n.validatePromise===d){n.validatePromise=null;var t,r=[],o=[];null==(t=e.forEach)||t.call(e,function(e){var t=e.rule.warningOnly,n=e.errors,a=void 0===n?ev:n;t?o.push.apply(o,(0,s.default)(a)):r.push.apply(r,(0,s.default)(a))}),n.errors=r,n.warnings=o,n.triggerMetaEvent(),n.reRender()}}),o.abrupt("return",y);case 13:case"end":return o.stop()}},o)})));return void 0!==u&&u||(n.validatePromise=d,n.dirty=!0,n.errors=ev,n.warnings=ev,n.triggerMetaEvent(),n.reRender()),d}),(0,h.default)((0,d.default)(n),"isFieldValidating",function(){return!!n.validatePromise}),(0,h.default)((0,d.default)(n),"isFieldTouched",function(){return n.touched}),(0,h.default)((0,d.default)(n),"isFieldDirty",function(){return!!n.dirty||void 0!==n.props.initialValue||void 0!==(0,n.props.fieldContext.getInternalHooks(y).getInitialValue)(n.getNamePath())}),(0,h.default)((0,d.default)(n),"getErrors",function(){return n.errors}),(0,h.default)((0,d.default)(n),"getWarnings",function(){return n.warnings}),(0,h.default)((0,d.default)(n),"isListField",function(){return n.props.isListField}),(0,h.default)((0,d.default)(n),"isList",function(){return n.props.isList}),(0,h.default)((0,d.default)(n),"isPreserve",function(){return n.props.preserve}),(0,h.default)((0,d.default)(n),"getMeta",function(){return n.prevValidating=n.isFieldValidating(),{touched:n.isFieldTouched(),validating:n.prevValidating,errors:n.errors,warnings:n.warnings,name:n.getNamePath(),validated:null===n.validatePromise}}),(0,h.default)((0,d.default)(n),"getOnlyChild",function(e){if("function"==typeof e){var t=n.getMeta();return(0,l.default)((0,l.default)({},n.getOnlyChild(e(n.getControlled(),t,n.props.fieldContext))),{},{isFunction:!0})}var o=(0,m.default)(e);return 1===o.length&&r.isValidElement(o[0])?{child:o[0],isFunction:!1}:{child:o,isFunction:!1}}),(0,h.default)((0,d.default)(n),"getValue",function(e){var t=n.props.fieldContext.getFieldsValue,r=n.getNamePath();return(0,em.default)(e||t(!0),r)}),(0,h.default)((0,d.default)(n),"getControlled",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=n.props,r=t.name,o=t.trigger,a=t.validateTrigger,i=t.getValueFromEvent,s=t.normalize,c=t.valuePropName,u=t.getValueProps,d=t.fieldContext,f=void 0!==a?a:d.validateTrigger,p=n.getNamePath(),m=d.getInternalHooks,g=d.getFieldsValue,v=m(y).dispatch,b=n.getValue(),w=u||function(e){return(0,h.default)({},c,e)},$=e[o],x=void 0!==r?w(b):{},E=(0,l.default)((0,l.default)({},e),x);return E[o]=function(){n.touched=!0,n.dirty=!0,n.triggerMetaEvent();for(var e,t=arguments.length,r=Array(t),o=0;o=0&&t<=r.length?(f.keys=[].concat((0,s.default)(f.keys.slice(0,t)),[f.id],(0,s.default)(f.keys.slice(t))),o([].concat((0,s.default)(r.slice(0,t)),[e],(0,s.default)(r.slice(t))))):(f.keys=[].concat((0,s.default)(f.keys),[f.id]),o([].concat((0,s.default)(r),[e]))),f.id+=1},remove:function(e){var t=i(),r=new Set(Array.isArray(e)?e:[e]);r.size<=0||(f.keys=f.keys.filter(function(e,t){return!r.has(t)}),o(t.filter(function(e,t){return!r.has(t)})))},move:function(e,t){if(e!==t){var r=i();e<0||e>=r.length||t<0||t>=r.length||(f.keys=eh(f.keys,e,t),o(eh(r,e,t)))}}},t)})))};e.s(["default",0,e$],197091);var eC=e.i(392221),ex="__@field_split__";function eE(e){return e.map(function(e){return"".concat((0,x.default)(e),":").concat(e)}).join(ex)}var eS=function(){function e(){(0,c.default)(this,e),(0,h.default)(this,"kvs",new Map)}return(0,u.default)(e,[{key:"set",value:function(e,t){this.kvs.set(eE(e),t)}},{key:"get",value:function(e){return this.kvs.get(eE(e))}},{key:"update",value:function(e,t){var r=t(this.get(e));r?this.set(e,r):this.delete(e)}},{key:"delete",value:function(e){this.kvs.delete(eE(e))}},{key:"map",value:function(e){return(0,s.default)(this.kvs.entries()).map(function(t){var r=(0,eC.default)(t,2),o=r[0],n=r[1];return e({key:o.split(ex).map(function(e){var t=e.match(/^([^:]*):(.*)$/),r=(0,eC.default)(t,3),o=r[1],n=r[2];return"number"===o?Number(n):n}),value:n})})}},{key:"toJSON",value:function(){var e={};return this.map(function(t){var r=t.key,o=t.value;return e[r.join(".")]=o,null}),e}}]),e}(),em=es,ek=["name"],ej=(0,u.default)(function e(t){var r=this;(0,c.default)(this,e),(0,h.default)(this,"formHooked",!1),(0,h.default)(this,"forceRootUpdate",void 0),(0,h.default)(this,"subscribable",!0),(0,h.default)(this,"store",{}),(0,h.default)(this,"fieldEntities",[]),(0,h.default)(this,"initialValues",{}),(0,h.default)(this,"callbacks",{}),(0,h.default)(this,"validateMessages",null),(0,h.default)(this,"preserve",null),(0,h.default)(this,"lastValidatePromise",null),(0,h.default)(this,"getForm",function(){return{getFieldValue:r.getFieldValue,getFieldsValue:r.getFieldsValue,getFieldError:r.getFieldError,getFieldWarning:r.getFieldWarning,getFieldsError:r.getFieldsError,isFieldsTouched:r.isFieldsTouched,isFieldTouched:r.isFieldTouched,isFieldValidating:r.isFieldValidating,isFieldsValidating:r.isFieldsValidating,resetFields:r.resetFields,setFields:r.setFields,setFieldValue:r.setFieldValue,setFieldsValue:r.setFieldsValue,validateFields:r.validateFields,submit:r.submit,_init:!0,getInternalHooks:r.getInternalHooks}}),(0,h.default)(this,"getInternalHooks",function(e){return e===y?(r.formHooked=!0,{dispatch:r.dispatch,initEntityValue:r.initEntityValue,registerField:r.registerField,useSubscribe:r.useSubscribe,setInitialValues:r.setInitialValues,destroyForm:r.destroyForm,setCallbacks:r.setCallbacks,setValidateMessages:r.setValidateMessages,getFields:r.getFields,setPreserve:r.setPreserve,getInitialValue:r.getInitialValue,registerWatch:r.registerWatch}):((0,v.default)(!1,"`getInternalHooks` is internal usage. Should not call directly."),null)}),(0,h.default)(this,"useSubscribe",function(e){r.subscribable=e}),(0,h.default)(this,"prevWithoutPreserves",null),(0,h.default)(this,"setInitialValues",function(e,t){if(r.initialValues=e||{},t){var o,n=(0,er.merge)(e,r.store);null==(o=r.prevWithoutPreserves)||o.map(function(t){var r=t.key;n=(0,er.default)(n,r,(0,em.default)(e,r))}),r.prevWithoutPreserves=null,r.updateStore(n)}}),(0,h.default)(this,"destroyForm",function(e){if(e)r.updateStore({});else{var t=new eS;r.getFieldEntities(!0).forEach(function(e){r.isMergedPreserve(e.isPreserve())||t.set(e.getNamePath(),!0)}),r.prevWithoutPreserves=t}}),(0,h.default)(this,"getInitialValue",function(e){var t=(0,em.default)(r.initialValues,e);return e.length?(0,er.merge)(t):t}),(0,h.default)(this,"setCallbacks",function(e){r.callbacks=e}),(0,h.default)(this,"setValidateMessages",function(e){r.validateMessages=e}),(0,h.default)(this,"setPreserve",function(e){r.preserve=e}),(0,h.default)(this,"watchList",[]),(0,h.default)(this,"registerWatch",function(e){return r.watchList.push(e),function(){r.watchList=r.watchList.filter(function(t){return t!==e})}}),(0,h.default)(this,"notifyWatch",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(r.watchList.length){var t=r.getFieldsValue(),o=r.getFieldsValue(!0);r.watchList.forEach(function(r){r(t,o,e)})}}),(0,h.default)(this,"timeoutId",null),(0,h.default)(this,"warningUnhooked",function(){}),(0,h.default)(this,"updateStore",function(e){r.store=e}),(0,h.default)(this,"getFieldEntities",function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return e?r.fieldEntities.filter(function(e){return e.getNamePath().length}):r.fieldEntities}),(0,h.default)(this,"getFieldsMap",function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=new eS;return r.getFieldEntities(e).forEach(function(e){var r=e.getNamePath();t.set(r,e)}),t}),(0,h.default)(this,"getFieldEntitiesForNamePathList",function(e){if(!e)return r.getFieldEntities(!0);var t=r.getFieldsMap(!0);return e.map(function(e){var r=ec(e);return t.get(r)||{INVALIDATE_NAME_PATH:ec(e)}})}),(0,h.default)(this,"getFieldsValue",function(e,t){if(r.warningUnhooked(),!0===e||Array.isArray(e)?(o=e,n=t):e&&"object"===(0,x.default)(e)&&(a=e.strict,n=e.filter),!0===o&&!n)return r.store;var o,n,a,i=r.getFieldEntitiesForNamePathList(Array.isArray(o)?o:null),l=[];return i.forEach(function(e){var t,r,i,s="INVALIDATE_NAME_PATH"in e?e.INVALIDATE_NAME_PATH:e.getNamePath();if(a){if(null!=(i=e.isList)&&i.call(e))return}else if(!o&&null!=(t=(r=e).isListField)&&t.call(r))return;if(n){var c="getMeta"in e?e.getMeta():null;n(c)&&l.push(s)}else l.push(s)}),eu(r.store,l.map(ec))}),(0,h.default)(this,"getFieldValue",function(e){r.warningUnhooked();var t=ec(e);return(0,em.default)(r.store,t)}),(0,h.default)(this,"getFieldsError",function(e){return r.warningUnhooked(),r.getFieldEntitiesForNamePathList(e).map(function(t,r){return!t||"INVALIDATE_NAME_PATH"in t?{name:ec(e[r]),errors:[],warnings:[]}:{name:t.getNamePath(),errors:t.getErrors(),warnings:t.getWarnings()}})}),(0,h.default)(this,"getFieldError",function(e){r.warningUnhooked();var t=ec(e);return r.getFieldsError([t])[0].errors}),(0,h.default)(this,"getFieldWarning",function(e){r.warningUnhooked();var t=ec(e);return r.getFieldsError([t])[0].warnings}),(0,h.default)(this,"isFieldsTouched",function(){r.warningUnhooked();for(var e,t=arguments.length,o=Array(t),n=0;n0&&void 0!==arguments[0]?arguments[0]:{},o=new eS,n=r.getFieldEntities(!0);n.forEach(function(e){var t=e.props.initialValue,r=e.getNamePath();if(void 0!==t){var n=o.get(r)||new Set;n.add({entity:e,value:t}),o.set(r,n)}}),t.entities?e=t.entities:t.namePathList?(e=[],t.namePathList.forEach(function(t){var r,n=o.get(t);n&&(r=e).push.apply(r,(0,s.default)((0,s.default)(n).map(function(e){return e.entity})))})):e=n,e.forEach(function(e){if(void 0!==e.props.initialValue){var n=e.getNamePath();if(void 0!==r.getInitialValue(n))(0,v.default)(!1,"Form already set 'initialValues' with path '".concat(n.join("."),"'. Field can not overwrite it."));else{var a=o.get(n);if(a&&a.size>1)(0,v.default)(!1,"Multiple Field with path '".concat(n.join("."),"' set 'initialValue'. Can not decide which one to pick."));else if(a){var i=r.getFieldValue(n);e.isListField()||t.skipExist&&void 0!==i||r.updateStore((0,er.default)(r.store,n,(0,s.default)(a)[0].value))}}}})}),(0,h.default)(this,"resetFields",function(e){r.warningUnhooked();var t=r.store;if(!e){r.updateStore((0,er.merge)(r.initialValues)),r.resetWithFieldInitialValue(),r.notifyObservers(t,null,{type:"reset"}),r.notifyWatch();return}var o=e.map(ec);o.forEach(function(e){var t=r.getInitialValue(e);r.updateStore((0,er.default)(r.store,e,t))}),r.resetWithFieldInitialValue({namePathList:o}),r.notifyObservers(t,o,{type:"reset"}),r.notifyWatch(o)}),(0,h.default)(this,"setFields",function(e){r.warningUnhooked();var t=r.store,o=[];e.forEach(function(e){var a=e.name,i=(0,n.default)(e,ek),l=ec(a);o.push(l),"value"in i&&r.updateStore((0,er.default)(r.store,l,i.value)),r.notifyObservers(t,[l],{type:"setField",data:e})}),r.notifyWatch(o)}),(0,h.default)(this,"getFields",function(){return r.getFieldEntities(!0).map(function(e){var t=e.getNamePath(),o=e.getMeta(),n=(0,l.default)((0,l.default)({},o),{},{name:t,value:r.getFieldValue(t)});return Object.defineProperty(n,"originRCField",{value:!0}),n})}),(0,h.default)(this,"initEntityValue",function(e){var t=e.props.initialValue;if(void 0!==t){var o=e.getNamePath();void 0===(0,em.default)(r.store,o)&&r.updateStore((0,er.default)(r.store,o,t))}}),(0,h.default)(this,"isMergedPreserve",function(e){var t=void 0!==e?e:r.preserve;return null==t||t}),(0,h.default)(this,"registerField",function(e){r.fieldEntities.push(e);var t=e.getNamePath();if(r.notifyWatch([t]),void 0!==e.props.initialValue){var o=r.store;r.resetWithFieldInitialValue({entities:[e],skipExist:!0}),r.notifyObservers(o,[e.getNamePath()],{type:"valueUpdate",source:"internal"})}return function(o,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(r.fieldEntities=r.fieldEntities.filter(function(t){return t!==e}),!r.isMergedPreserve(n)&&(!o||a.length>1)){var i=o?void 0:r.getInitialValue(t);if(t.length&&r.getFieldValue(t)!==i&&r.fieldEntities.every(function(e){return!ef(e.getNamePath(),t)})){var l=r.store;r.updateStore((0,er.default)(l,t,i,!0)),r.notifyObservers(l,[t],{type:"remove"}),r.triggerDependenciesUpdate(l,t)}}r.notifyWatch([t])}}),(0,h.default)(this,"dispatch",function(e){switch(e.type){case"updateValue":var t=e.namePath,o=e.value;r.updateValue(t,o);break;case"validateField":var n=e.namePath,a=e.triggerName;r.validateFields([n],{triggerName:a})}}),(0,h.default)(this,"notifyObservers",function(e,t,o){if(r.subscribable){var n=(0,l.default)((0,l.default)({},o),{},{store:r.getFieldsValue(!0)});r.getFieldEntities().forEach(function(r){(0,r.onStoreChange)(e,t,n)})}else r.forceRootUpdate()}),(0,h.default)(this,"triggerDependenciesUpdate",function(e,t){var o=r.getDependencyChildrenFields(t);return o.length&&r.validateFields(o),r.notifyObservers(e,o,{type:"dependenciesUpdate",relatedFields:[t].concat((0,s.default)(o))}),o}),(0,h.default)(this,"updateValue",function(e,t){var o=ec(e),n=r.store;r.updateStore((0,er.default)(r.store,o,t)),r.notifyObservers(n,[o],{type:"valueUpdate",source:"internal"}),r.notifyWatch([o]);var a=r.triggerDependenciesUpdate(n,o),i=r.callbacks.onValuesChange;i&&i(eu(r.store,[o]),r.getFieldsValue()),r.triggerOnFieldsChange([o].concat((0,s.default)(a)))}),(0,h.default)(this,"setFieldsValue",function(e){r.warningUnhooked();var t=r.store;if(e){var o=(0,er.merge)(r.store,e);r.updateStore(o)}r.notifyObservers(t,null,{type:"valueUpdate",source:"external"}),r.notifyWatch()}),(0,h.default)(this,"setFieldValue",function(e,t){r.setFields([{name:e,value:t,errors:[],warnings:[]}])}),(0,h.default)(this,"getDependencyChildrenFields",function(e){var t=new Set,o=[],n=new eS;return r.getFieldEntities().forEach(function(e){(e.props.dependencies||[]).forEach(function(t){var r=ec(t);n.update(r,function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Set;return t.add(e),t})})}),!function e(r){(n.get(r)||new Set).forEach(function(r){if(!t.has(r)){t.add(r);var n=r.getNamePath();r.isFieldDirty()&&n.length&&(o.push(n),e(n))}})}(e),o}),(0,h.default)(this,"triggerOnFieldsChange",function(e,t){var o=r.callbacks.onFieldsChange;if(o){var n=r.getFields();if(t){var a=new eS;t.forEach(function(e){var t=e.name,r=e.errors;a.set(t,r)}),n.forEach(function(e){e.errors=a.get(e.name)||e.errors})}var i=n.filter(function(t){return ed(e,t.name)});i.length&&o(i,n)}}),(0,h.default)(this,"validateFields",function(e,t){r.warningUnhooked(),Array.isArray(e)||"string"==typeof e||"string"==typeof t?(i=e,c=t):c=e;var o,n,a,i,c,u=!!i,d=u?i.map(ec):[],f=[],p=String(Date.now()),h=new Set,m=c||{},g=m.recursive,v=m.dirty;r.getFieldEntities(!0).forEach(function(e){if((u||d.push(e.getNamePath()),e.props.rules&&e.props.rules.length)&&(!v||e.isFieldDirty())){var t=e.getNamePath();if(h.add(t.join(p)),!u||ed(d,t,g)){var o=e.validateRules((0,l.default)({validateMessages:(0,l.default)((0,l.default)({},et),r.validateMessages)},c));f.push(o.then(function(){return{name:t,errors:[],warnings:[]}}).catch(function(e){var r,o=[],n=[];return(null==(r=e.forEach)||r.call(e,function(e){var t=e.rule.warningOnly,r=e.errors;t?n.push.apply(n,(0,s.default)(r)):o.push.apply(o,(0,s.default)(r))}),o.length)?Promise.reject({name:t,errors:o,warnings:n}):{name:t,errors:o,warnings:n}}))}}});var y=(o=!1,n=f.length,a=[],f.length?new Promise(function(e,t){f.forEach(function(r,i){r.catch(function(e){return o=!0,e}).then(function(r){n-=1,a[i]=r,n>0||(o&&t(a),e(a))})})}):Promise.resolve([]));r.lastValidatePromise=y,y.catch(function(e){return e}).then(function(e){var t=e.map(function(e){return e.name});r.notifyObservers(r.store,t,{type:"validateFinish"}),r.triggerOnFieldsChange(t,e)});var b=y.then(function(){return r.lastValidatePromise===y?Promise.resolve(r.getFieldsValue(d)):Promise.reject([])}).catch(function(e){var t=e.filter(function(e){return e&&e.errors.length});return Promise.reject({values:r.getFieldsValue(d),errorFields:t,outOfDate:r.lastValidatePromise!==y})});b.catch(function(e){return e});var w=d.filter(function(e){return h.has(e.join(p))});return r.triggerOnFieldsChange(w),b}),(0,h.default)(this,"submit",function(){r.warningUnhooked(),r.validateFields().then(function(e){var t=r.callbacks.onFinish;if(t)try{t(e)}catch(e){console.error(e)}}).catch(function(e){var t=r.callbacks.onFinishFailed;t&&t(e)})}),this.forceRootUpdate=t});let eO=function(e){var t=r.useRef(),o=r.useState({}),n=(0,eC.default)(o,2)[1];return t.current||(e?t.current=e:t.current=new ej(function(){n({})}).getForm()),[t.current]};e.s(["default",0,eO],787894);var eT=r.createContext({triggerFormChange:function(){},triggerFormFinish:function(){},registerForm:function(){},unregisterForm:function(){}}),eI=function(e){var t=e.validateMessages,o=e.onFormChange,n=e.onFormFinish,a=e.children,i=r.useContext(eT),s=r.useRef({});return r.createElement(eT.Provider,{value:(0,l.default)((0,l.default)({},i),{},{validateMessages:(0,l.default)((0,l.default)({},i.validateMessages),t),triggerFormChange:function(e,t){o&&o(e,{changedFields:t,forms:s.current}),i.triggerFormChange(e,t)},triggerFormFinish:function(e,t){n&&n(e,{values:t,forms:s.current}),i.triggerFormFinish(e,t)},registerForm:function(e,t){e&&(s.current=(0,l.default)((0,l.default)({},s.current),{},(0,h.default)({},e,t))),i.registerForm(e,t)},unregisterForm:function(e){var t=(0,l.default)({},s.current);delete t[e],s.current=t,i.unregisterForm(e)}})},a)};e.s(["FormProvider",0,eI,"default",0,eT],696752);var e_=["name","initialValues","fields","form","preserve","children","component","validateMessages","validateTrigger","onValuesChange","onFieldsChange","onFinish","onFinishFailed","clearOnDestroy"],em=es;function eF(e){try{return JSON.stringify(e)}catch(e){return Math.random()}}var eP=function(){};let eR=function(){for(var e=arguments.length,t=Array(e),o=0;o1?t-1:0),o=1;o{"use strict";e.s(["default",0,function(e,t){var r=Object.assign({},e);return Array.isArray(t)&&t.forEach(function(e){delete r[e]}),r}])},62139,e=>{"use strict";var t=e.i(271645);e.i(495347);var r=e.i(696752),o=e.i(529681);let n=t.createContext({labelAlign:"right",layout:"horizontal",itemRef:()=>{}}),a=t.createContext(null),i=t.createContext({prefixCls:""}),l=t.createContext({}),s=t.createContext(void 0);e.s(["FormContext",0,n,"FormItemInputContext",0,l,"FormItemPrefixContext",0,i,"FormProvider",0,e=>{let n=(0,o.default)(e,["prefixCls"]);return t.createElement(r.FormProvider,Object.assign({},n))},"NoFormStyle",0,({children:e,status:r,override:o})=>{let n=t.useContext(l),a=t.useMemo(()=>{let e=Object.assign({},n);return o&&delete e.isFormItemInput,r&&(delete e.status,delete e.hasFeedback,delete e.feedbackIcon),e},[r,o,n]);return t.createElement(l.Provider,{value:a},e)},"NoStyleItemContext",0,a,"VariantContext",0,s])},613541,e=>{"use strict";var t=e.i(242064);let r=()=>({height:0,opacity:0}),o=e=>{let{scrollHeight:t}=e;return{height:t,opacity:1}},n=e=>({height:e?e.offsetHeight:0}),a=(e,t)=>(null==t?void 0:t.deadline)===!0||"height"===t.propertyName;e.s(["default",0,(e=t.defaultPrefixCls)=>({motionName:`${e}-motion-collapse`,onAppearStart:r,onEnterStart:r,onAppearActive:o,onEnterActive:o,onLeaveStart:n,onLeaveActive:r,onAppearEnd:a,onEnterEnd:a,onLeaveEnd:a,motionDeadline:500}),"getTransitionName",0,(e,t,r)=>void 0!==r?r:`${e}-${t}`])},830919,e=>{"use strict";var t=e.i(271645);e.s(["default",0,function(e){let[r,o]=t.useState(e);return t.useEffect(()=>{let t=setTimeout(()=>{o(e)},10*!e.length);return()=>{clearTimeout(t)}},[e]),r}])},447580,e=>{"use strict";e.s(["genCollapseMotion",0,e=>({[e.componentCls]:{[`${e.antCls}-motion-collapse-legacy`]:{overflow:"hidden","&-active":{transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, - opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}},[`${e.antCls}-motion-collapse`]:{overflow:"hidden",transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, - opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}}})],447580)},402366,e=>{"use strict";e.s(["initMotion",0,(e,t,r,o,n=!1)=>{let a=n?"&":"";return{[` - ${a}${e}-enter, - ${a}${e}-appear - `]:Object.assign(Object.assign({},{animationDuration:o,animationFillMode:"both"}),{animationPlayState:"paused"}),[`${a}${e}-leave`]:Object.assign(Object.assign({},{animationDuration:o,animationFillMode:"both"}),{animationPlayState:"paused"}),[` - ${a}${e}-enter${e}-enter-active, - ${a}${e}-appear${e}-appear-active - `]:{animationName:t,animationPlayState:"running"},[`${a}${e}-leave${e}-leave-active`]:{animationName:r,animationPlayState:"running",pointerEvents:"none"}}}])},717356,e=>{"use strict";e.i(296059);var t=e.i(694758),r=e.i(402366);let o=new t.Keyframes("antZoomIn",{"0%":{transform:"scale(0.2)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),n=new t.Keyframes("antZoomOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.2)",opacity:0}}),a=new t.Keyframes("antZoomBigIn",{"0%":{transform:"scale(0.8)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),i=new t.Keyframes("antZoomBigOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.8)",opacity:0}}),l=new t.Keyframes("antZoomUpIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 0%"}}),s=new t.Keyframes("antZoomUpOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 0%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0}}),c={zoom:{inKeyframes:o,outKeyframes:n},"zoom-big":{inKeyframes:a,outKeyframes:i},"zoom-big-fast":{inKeyframes:a,outKeyframes:i},"zoom-left":{inKeyframes:new t.Keyframes("antZoomLeftIn",{"0%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"0% 50%"}}),outKeyframes:new t.Keyframes("antZoomLeftOut",{"0%":{transform:"scale(1)",transformOrigin:"0% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0}})},"zoom-right":{inKeyframes:new t.Keyframes("antZoomRightIn",{"0%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"100% 50%"}}),outKeyframes:new t.Keyframes("antZoomRightOut",{"0%":{transform:"scale(1)",transformOrigin:"100% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0}})},"zoom-up":{inKeyframes:l,outKeyframes:s},"zoom-down":{inKeyframes:new t.Keyframes("antZoomDownIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 100%"}}),outKeyframes:new t.Keyframes("antZoomDownOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 100%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0}})}};e.s(["initZoomMotion",0,(e,t)=>{let{antCls:o}=e,n=`${o}-${t}`,{inKeyframes:a,outKeyframes:i}=c[t];return[(0,r.initMotion)(n,a,i,"zoom-big-fast"===t?e.motionDurationFast:e.motionDurationMid),{[` - ${n}-enter, - ${n}-appear - `]:{transform:"scale(0)",opacity:0,animationTimingFunction:e.motionEaseOutCirc,"&-prepare":{transform:"none"}},[`${n}-leave`]:{animationTimingFunction:e.motionEaseInOutCirc}}]},"zoomIn",0,o])},782074,908709,53058,923624,e=>{"use strict";var t=e.i(8211),r=e.i(271645),o=e.i(343794),n=e.i(361275),a=e.i(629587),i=e.i(613541),l=e.i(321883),s=e.i(62139),c=e.i(830919);e.i(296059);var u=e.i(915654),d=e.i(183293),f=e.i(447580),p=e.i(717356),h=e.i(246422),m=e.i(838378);let g=(e,t)=>{let{formItemCls:r}=e;return{[r]:{[`${r}-label > label`]:{height:t},[`${r}-control-input`]:{minHeight:t}}}},v=e=>({padding:e.verticalLabelPadding,margin:e.verticalLabelMargin,whiteSpace:"initial",textAlign:"start","> label":{margin:0,"&::after":{visibility:"hidden"}}}),y=(e,t)=>(0,m.mergeToken)(e,{formItemCls:`${e.componentCls}-item`,rootPrefixCls:t}),b=(0,h.genStyleHooks)("Form",(e,{rootPrefixCls:t})=>{let r=y(e,t);return[(e=>{let{componentCls:t}=e;return{[e.componentCls]:Object.assign(Object.assign(Object.assign({},(0,d.resetComponent)(e)),{legend:{display:"block",width:"100%",marginBottom:e.marginLG,padding:0,color:e.colorTextDescription,fontSize:e.fontSizeLG,lineHeight:"inherit",border:0,borderBottom:`${(0,u.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},'input[type="search"]':{boxSizing:"border-box"},'input[type="radio"], input[type="checkbox"]':{lineHeight:"normal"},'input[type="file"]':{display:"block"},'input[type="range"]':{display:"block",width:"100%"},"select[multiple], select[size]":{height:"auto"},[`input[type='file']:focus, - input[type='radio']:focus, - input[type='checkbox']:focus`]:{outline:0,boxShadow:`0 0 0 ${(0,u.unit)(e.controlOutlineWidth)} ${e.controlOutline}`},output:{display:"block",paddingTop:15,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight}}),{[`${t}-text`]:{display:"inline-block",paddingInlineEnd:e.paddingSM},"&-small":Object.assign({},g(e,e.controlHeightSM)),"&-large":Object.assign({},g(e,e.controlHeightLG))})}})(r),(e=>{let{formItemCls:t,iconCls:r,rootPrefixCls:o,antCls:n,labelRequiredMarkColor:a,labelColor:i,labelFontSize:l,labelHeight:s,labelColonMarginInlineStart:c,labelColonMarginInlineEnd:u,itemMarginBottom:f}=e;return{[t]:Object.assign(Object.assign({},(0,d.resetComponent)(e)),{marginBottom:f,verticalAlign:"top","&-with-help":{transition:"none"},[`&-hidden, - &-hidden${n}-row`]:{display:"none"},"&-has-warning":{[`${t}-split`]:{color:e.colorError}},"&-has-error":{[`${t}-split`]:{color:e.colorWarning}},[`${t}-label`]:{flexGrow:0,overflow:"hidden",whiteSpace:"nowrap",textAlign:"end",verticalAlign:"middle","&-left":{textAlign:"start"},"&-wrap":{overflow:"unset",lineHeight:e.lineHeight,whiteSpace:"unset","> label":{verticalAlign:"middle",textWrap:"balance"}},"> label":{position:"relative",display:"inline-flex",alignItems:"center",maxWidth:"100%",height:s,color:i,fontSize:l,[`> ${r}`]:{fontSize:e.fontSize,verticalAlign:"top"},[`&${t}-required`]:{"&::before":{display:"inline-block",marginInlineEnd:e.marginXXS,color:a,fontSize:e.fontSize,fontFamily:"SimSun, sans-serif",lineHeight:1,content:'"*"'},[`&${t}-required-mark-hidden, &${t}-required-mark-optional`]:{"&::before":{display:"none"}}},[`${t}-optional`]:{display:"inline-block",marginInlineStart:e.marginXXS,color:e.colorTextDescription,[`&${t}-required-mark-hidden`]:{display:"none"}},[`${t}-tooltip`]:{color:e.colorTextDescription,cursor:"help",writingMode:"horizontal-tb",marginInlineStart:e.marginXXS},"&::after":{content:'":"',position:"relative",marginBlock:0,marginInlineStart:c,marginInlineEnd:u},[`&${t}-no-colon::after`]:{content:'"\\a0"'}}},[`${t}-control`]:{"--ant-display":"flex",flexDirection:"column",flexGrow:1,[`&:first-child:not([class^="'${o}-col-'"]):not([class*="' ${o}-col-'"])`]:{width:"100%"},"&-input":{position:"relative",display:"flex",alignItems:"center",minHeight:e.controlHeight,"&-content":{flex:"auto",maxWidth:"100%",[`&:has(> ${n}-switch:only-child, > ${n}-rate:only-child)`]:{display:"flex",alignItems:"center"}}}},[t]:{"&-additional":{display:"flex",flexDirection:"column"},"&-explain, &-extra":{clear:"both",color:e.colorTextDescription,fontSize:e.fontSize,lineHeight:e.lineHeight},"&-explain-connected":{width:"100%"},"&-extra":{minHeight:e.controlHeightSM,transition:`color ${e.motionDurationMid} ${e.motionEaseOut}`},"&-explain":{"&-error":{color:e.colorError},"&-warning":{color:e.colorWarning}}},[`&-with-help ${t}-explain`]:{height:"auto",opacity:1},[`${t}-feedback-icon`]:{fontSize:e.fontSize,textAlign:"center",visibility:"visible",animationName:p.zoomIn,animationDuration:e.motionDurationMid,animationTimingFunction:e.motionEaseOutBack,pointerEvents:"none","&-success":{color:e.colorSuccess},"&-error":{color:e.colorError},"&-warning":{color:e.colorWarning},"&-validating":{color:e.colorPrimary}}})}})(r),(e=>{let{componentCls:t}=e,r=`${t}-show-help`,o=`${t}-show-help-item`;return{[r]:{transition:`opacity ${e.motionDurationFast} ${e.motionEaseInOut}`,"&-appear, &-enter":{opacity:0,"&-active":{opacity:1}},"&-leave":{opacity:1,"&-active":{opacity:0}},[o]:{overflow:"hidden",transition:`height ${e.motionDurationFast} ${e.motionEaseInOut}, - opacity ${e.motionDurationFast} ${e.motionEaseInOut}, - transform ${e.motionDurationFast} ${e.motionEaseInOut} !important`,[`&${o}-appear, &${o}-enter`]:{transform:"translateY(-5px)",opacity:0,"&-active":{transform:"translateY(0)",opacity:1}},[`&${o}-leave-active`]:{transform:"translateY(-5px)"}}}}})(r),(e=>{let{antCls:t,formItemCls:r}=e;return{[`${r}-horizontal`]:{[`${r}-label`]:{flexGrow:0},[`${r}-control`]:{flex:"1 1 0",minWidth:0},[`${r}-label[class$='-24'], ${r}-label[class*='-24 ']`]:{[`& + ${r}-control`]:{minWidth:"unset"}},[`${t}-col-24${r}-label, - ${t}-col-xl-24${r}-label`]:v(e)}}})(r),(e=>{let{componentCls:t,formItemCls:r,inlineItemMarginBottom:o}=e;return{[`${t}-inline`]:{display:"flex",flexWrap:"wrap",[`${r}-inline`]:{flex:"none",marginInlineEnd:e.margin,marginBottom:o,"&-row":{flexWrap:"nowrap"},[`> ${r}-label, - > ${r}-control`]:{display:"inline-block",verticalAlign:"top"},[`> ${r}-label`]:{flex:"none"},[`${t}-text`]:{display:"inline-block"},[`${r}-has-feedback`]:{display:"inline-block"}}}}})(r),(e=>{let{componentCls:t,formItemCls:r,antCls:o}=e;return{[`${r}-vertical`]:{[`${r}-row`]:{flexDirection:"column"},[`${r}-label > label`]:{height:"auto"},[`${r}-control`]:{width:"100%"},[`${r}-label, - ${o}-col-24${r}-label, - ${o}-col-xl-24${r}-label`]:v(e)},[`@media (max-width: ${(0,u.unit)(e.screenXSMax)})`]:[(e=>{let{componentCls:t,formItemCls:r,rootPrefixCls:o}=e;return{[`${r} ${r}-label`]:v(e),[`${t}:not(${t}-inline)`]:{[r]:{flexWrap:"wrap",[`${r}-label, ${r}-control`]:{[`&:not([class*=" ${o}-col-xs"])`]:{flex:"0 0 100%",maxWidth:"100%"}}}}}})(e),{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${o}-col-xs-24${r}-label`]:v(e)}}}],[`@media (max-width: ${(0,u.unit)(e.screenSMMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${o}-col-sm-24${r}-label`]:v(e)}}},[`@media (max-width: ${(0,u.unit)(e.screenMDMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${o}-col-md-24${r}-label`]:v(e)}}},[`@media (max-width: ${(0,u.unit)(e.screenLGMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${o}-col-lg-24${r}-label`]:v(e)}}}}})(r),(0,f.genCollapseMotion)(r),p.zoomIn]},e=>({labelRequiredMarkColor:e.colorError,labelColor:e.colorTextHeading,labelFontSize:e.fontSize,labelHeight:e.controlHeight,labelColonMarginInlineStart:e.marginXXS/2,labelColonMarginInlineEnd:e.marginXS,itemMarginBottom:e.marginLG,verticalLabelPadding:`0 0 ${e.paddingXS}px`,verticalLabelMargin:0,inlineItemMarginBottom:0}),{order:-1e3});e.s(["default",0,b,"prepareToken",0,y],908709);let w=[];function $(e,t,r,o=0){return{key:"string"==typeof e?e:`${t}-${o}`,error:e,errorStatus:r}}e.s(["default",0,({help:e,helpStatus:u,errors:d=w,warnings:f=w,className:p,fieldId:h,onVisibleChanged:m})=>{let{prefixCls:g}=r.useContext(s.FormItemPrefixContext),v=`${g}-item-explain`,y=(0,l.default)(g),[C,x,E]=b(g,y),S=r.useMemo(()=>(0,i.default)(g),[g]),k=(0,c.default)(d),j=(0,c.default)(f),O=r.useMemo(()=>null!=e?[$(e,"help",u)]:[].concat((0,t.default)(k.map((e,t)=>$(e,"error","error",t))),(0,t.default)(j.map((e,t)=>$(e,"warning","warning",t)))),[e,u,k,j]),T=r.useMemo(()=>{let e={};return O.forEach(({key:t})=>{e[t]=(e[t]||0)+1}),O.map((t,r)=>Object.assign(Object.assign({},t),{key:e[t.key]>1?`${t.key}-fallback-${r}`:t.key}))},[O]),I={};return h&&(I.id=`${h}_help`),C(r.createElement(n.default,{motionDeadline:S.motionDeadline,motionName:`${g}-show-help`,visible:!!T.length,onVisibleChanged:m},e=>{let{className:t,style:n}=e;return r.createElement("div",Object.assign({},I,{className:(0,o.default)(v,t,E,y,p,x),style:n}),r.createElement(a.CSSMotionList,Object.assign({keys:T},(0,i.default)(g),{motionName:`${g}-show-help-item`,component:!1}),e=>{let{key:t,error:n,errorStatus:a,className:i,style:l}=e;return r.createElement("div",{key:t,className:(0,o.default)(i,{[`${v}-${a}`]:a}),style:l},n)}))}))}],782074);var C=e.i(197091);e.s(["List",()=>C.default],53058);var x=e.i(621796);e.s(["useWatch",()=>x.default],923624)},517455,e=>{"use strict";var t=e.i(271645),r=e.i(666365);e.s(["default",0,e=>{let o=t.default.useContext(r.default);return t.default.useMemo(()=>e?"string"==typeof e?null!=e?e:o:"function"==typeof e?e(o):o:o,[e,o])}])},286039,531880,e=>{"use strict";var t=e.i(271645);e.i(495347);var r=e.i(787894),r=r,o=e.i(279697);let n=e=>"object"==typeof e&&null!=e&&1===e.nodeType,a=(e,t)=>(!t||"hidden"!==e)&&"visible"!==e&&"clip"!==e,i=(e,t)=>{if(e.clientHeight{if(!e.ownerDocument||!e.ownerDocument.defaultView)return null;try{return e.ownerDocument.defaultView.frameElement}catch(e){return null}})(e))&&(r.clientHeightat||a>e&&i=t&&l>=r?a-e-o:i>t&&lr?i-t+n:0,s=e=>{let t=e.parentElement;return null==t?e.getRootNode().host||null:t},c=(e,t)=>{var r,o,a,c;let u;if("u"e!==h;if(!n(e))throw TypeError("Invalid target");let v=document.scrollingElement||document.documentElement,y=[],b=e;for(;n(b)&&g(b);){if((b=s(b))===v){y.push(b);break}null!=b&&b===document.body&&i(b)&&!i(document.documentElement)||null!=b&&i(b,m)&&y.push(b)}let w=null!=(o=null==(r=window.visualViewport)?void 0:r.width)?o:innerWidth,$=null!=(c=null==(a=window.visualViewport)?void 0:a.height)?c:innerHeight,{scrollX:C,scrollY:x}=window,{height:E,width:S,top:k,right:j,bottom:O,left:T}=e.getBoundingClientRect(),{top:I,right:_,bottom:F,left:P}={top:parseFloat((u=window.getComputedStyle(e)).scrollMarginTop)||0,right:parseFloat(u.scrollMarginRight)||0,bottom:parseFloat(u.scrollMarginBottom)||0,left:parseFloat(u.scrollMarginLeft)||0},R="start"===f||"nearest"===f?k-I:"end"===f?O+F:k+E/2-I+F,N="center"===p?T+S/2-P+_:"end"===p?j+_:T-P,M=[];for(let e=0;e=0&&T>=0&&O<=$&&j<=w&&(t===v&&!i(t)||k>=n&&O<=s&&T>=c&&j<=a))break;let u=getComputedStyle(t),h=parseInt(u.borderLeftWidth,10),m=parseInt(u.borderTopWidth,10),g=parseInt(u.borderRightWidth,10),b=parseInt(u.borderBottomWidth,10),I=0,_=0,F="offsetWidth"in t?t.offsetWidth-t.clientWidth-h-g:0,P="offsetHeight"in t?t.offsetHeight-t.clientHeight-m-b:0,B="offsetWidth"in t?0===t.offsetWidth?0:o/t.offsetWidth:0,A="offsetHeight"in t?0===t.offsetHeight?0:r/t.offsetHeight:0;if(v===t)I="start"===f?R:"end"===f?R-$:"nearest"===f?l(x,x+$,$,m,b,x+R,x+R+E,E):R-$/2,_="start"===p?N:"center"===p?N-w/2:"end"===p?N-w:l(C,C+w,w,h,g,C+N,C+N+S,S),I=Math.max(0,I+x),_=Math.max(0,_+C);else{I="start"===f?R-n-m:"end"===f?R-s+b+P:"nearest"===f?l(n,s,r,m,b+P,R,R+E,E):R-(n+r/2)+P/2,_="start"===p?N-c-h:"center"===p?N-(c+o/2)+F/2:"end"===p?N-a+g+F:l(c,a,o,h,g+F,N,N+S,S);let{scrollLeft:e,scrollTop:i}=t;I=0===A?0:Math.max(0,Math.min(i+I/A,t.scrollHeight-r/A+P)),_=0===B?0:Math.max(0,Math.min(e+_/B,t.scrollWidth-o/B+F)),R+=i-I,N+=e-_}M.push({el:t,top:I,left:_})}return M},u=["parentNode"];function d(e){return void 0===e||!1===e?[]:Array.isArray(e)?e:[e]}function f(e,t){if(!e.length)return;let r=e.join("_");return t?`${t}_${r}`:u.includes(r)?`form_item_${r}`:r}e.s(["getFieldId",0,f,"getStatus",0,function(e,t,r,o,n,a){let i=o;return void 0!==a?i=a:r.validating?i="validating":e.length?i="error":t.length?i="warning":(r.touched||n&&r.validated)&&(i="success"),i},"toArray",0,d],531880);var p=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};function h(e){return d(e).join("_")}function m(e,t){let r=t.getFieldInstance(e),n=(0,o.getDOM)(r);if(n)return n;let a=f(d(e),t.__INTERNAL__.name);if(a)return document.getElementById(a)}e.s(["default",0,function(e){let[o]=(0,r.default)(),n=t.useRef({}),a=t.useMemo(()=>null!=e?e:Object.assign(Object.assign({},o),{__INTERNAL__:{itemRef:e=>t=>{let r=h(e);t?n.current[r]=t:delete n.current[r]}},scrollToField:(e,t={})=>{let{focus:r}=t,o=p(t,["focus"]),n=m(e,a);n&&(!function(e,t){let r;if(!e.isConnected||!(e=>{let t=e;for(;t&&t.parentNode;){if(t.parentNode===document)return!0;t=t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentNode}return!1})(e))return;let o={top:parseFloat((r=window.getComputedStyle(e)).scrollMarginTop)||0,right:parseFloat(r.scrollMarginRight)||0,bottom:parseFloat(r.scrollMarginBottom)||0,left:parseFloat(r.scrollMarginLeft)||0};if("object"==typeof t&&"function"==typeof t.behavior)return t.behavior(c(e,t));let n="boolean"==typeof t||null==t?void 0:t.behavior;for(let{el:r,top:a,left:i}of c(e,!1===t?{block:"end",inline:"nearest"}:t===Object(t)&&0!==Object.keys(t).length?t:{block:"start",inline:"nearest"})){let e=a-o.top+o.bottom,t=i-o.left+o.right;r.scroll({top:e,left:t,behavior:n})}}(n,Object.assign({scrollMode:"if-needed",block:"nearest"},o)),r&&a.focusField(e))},focusField:e=>{var t,r;let o=a.getFieldInstance(e);"function"==typeof(null==o?void 0:o.focus)?o.focus():null==(r=null==(t=m(e,a))?void 0:t.focus)||r.call(t)},getFieldInstance:e=>{let t=h(e);return n.current[t]}}),[e,o]);return[a]},"toNamePathStr",0,h],286039)},56117,411412,420422,355268,220489,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(495347);e.i(53058),e.i(923624);var n=e.i(242064),a=e.i(937328),i=e.i(321883),l=e.i(517455),s=e.i(666365),c=e.i(62139),u=e.i(286039),d=e.i(908709),f=e.i(819828),p=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let h=t.forwardRef((e,h)=>{let m=t.useContext(a.default),{getPrefixCls:g,direction:v,requiredMark:y,colon:b,scrollToFirstError:w,className:$,style:C}=(0,n.useComponentConfig)("form"),{prefixCls:x,className:E,rootClassName:S,size:k,disabled:j=m,form:O,colon:T,labelAlign:I,labelWrap:_,labelCol:F,wrapperCol:P,hideRequiredMark:R,layout:N="horizontal",scrollToFirstError:M,requiredMark:B,onFinishFailed:A,name:z,style:L,feedbackIcons:D,variant:H}=e,V=p(e,["prefixCls","className","rootClassName","size","disabled","form","colon","labelAlign","labelWrap","labelCol","wrapperCol","hideRequiredMark","layout","scrollToFirstError","requiredMark","onFinishFailed","name","style","feedbackIcons","variant"]),W=(0,l.default)(k),U=t.useContext(f.default),G=t.useMemo(()=>void 0!==B?B:!R&&(void 0===y||y),[R,B,y]),q=null!=T?T:b,J=g("form",x),K=(0,i.default)(J),[X,Q,Y]=(0,d.default)(J,K),Z=(0,r.default)(J,`${J}-${N}`,{[`${J}-hide-required-mark`]:!1===G,[`${J}-rtl`]:"rtl"===v,[`${J}-${W}`]:W},Y,K,Q,$,E,S),[ee]=(0,u.default)(O),{__INTERNAL__:et}=ee;et.name=z;let er=t.useMemo(()=>({name:z,labelAlign:I,labelCol:F,labelWrap:_,wrapperCol:P,layout:N,colon:q,requiredMark:G,itemRef:et.itemRef,form:ee,feedbackIcons:D}),[z,I,F,P,N,q,G,ee,D]),eo=t.useRef(null);t.useImperativeHandle(h,()=>{var e;return Object.assign(Object.assign({},ee),{nativeElement:null==(e=eo.current)?void 0:e.nativeElement})});let en=(e,t)=>{if(e){let r={block:"nearest"};"object"==typeof e&&(r=Object.assign(Object.assign({},r),e)),ee.scrollToField(t,r)}};return X(t.createElement(c.VariantContext.Provider,{value:H},t.createElement(a.DisabledContextProvider,{disabled:j},t.createElement(s.default.Provider,{value:W},t.createElement(c.FormProvider,{validateMessages:U},t.createElement(c.FormContext.Provider,{value:er},t.createElement(c.NoFormStyle,{status:!0},t.createElement(o.default,Object.assign({id:z},V,{name:z,onFinishFailed:e=>{if(null==A||A(e),e.errorFields.length){let t=e.errorFields[0].name;if(void 0!==M)return void en(M,t);void 0!==w&&en(w,t)}},form:ee,ref:eo,style:Object.assign(Object.assign({},C),L),className:Z})))))))))});e.s(["default",0,h],56117),e.s(["useForm",()=>u.default],411412);var m=e.i(162129);e.s(["Field",()=>m.default],420422);var g=e.i(177886);e.s(["FieldContext",()=>g.default],355268);var v=e.i(786944);e.s(["ListContext",()=>v.default],220489)},763731,e=>{"use strict";var t=e.i(271645);let r=(e,r,o)=>t.default.isValidElement(e)?t.default.cloneElement(e,"function"==typeof o?o(e.props||{}):o):r;e.s(["cloneElement",0,function(e,t){return r(e,e,t)},"isFragment",0,function(e){return e&&t.default.isValidElement(e)&&e.type===t.default.Fragment},"replaceElement",0,r])},522228,893872,857034,606836,e=>{"use strict";var t=e.i(876556);e.s(["default",0,function(e){if("function"==typeof e)return e;let r=(0,t.default)(e);return r.length<=1?r[0]:r}],522228),e.i(247167);var r=e.i(271645),o=e.i(62139);let n=()=>{let{status:e,errors:t=[],warnings:n=[]}=r.useContext(o.FormItemInputContext);return{status:e,errors:t,warnings:n}};n.Context=o.FormItemInputContext,e.s(["default",0,n],893872);var a=e.i(963188);e.s(["default",0,function(e){let[t,o]=r.useState(e),n=r.useRef(null),i=r.useRef([]),l=r.useRef(!1);return r.useEffect(()=>(l.current=!1,()=>{l.current=!0,a.default.cancel(n.current),n.current=null}),[]),[t,function(e){l.current||(null===n.current&&(i.current=[],n.current=(0,a.default)(()=>{n.current=null,o(e=>{let t=e;return i.current.forEach(e=>{t=e(t)}),t})})),i.current.push(e))}]}],857034);var i=e.i(611935);e.s(["default",0,function(){let{itemRef:e}=r.useContext(o.FormContext),t=r.useRef({});return function(r,o){let n=o&&"object"==typeof o&&(0,i.getNodeRef)(o),a=r.join("_");return(t.current.name!==a||t.current.originRef!==n)&&(t.current.name=a,t.current.originRef=n,t.current.ref=(0,i.composeRef)(e(r),n)),t.current.ref}}],606836)},606262,e=>{"use strict";e.s(["default",0,function(e){if(!e)return!1;if(e instanceof Element){if(e.offsetParent)return!0;if(e.getBBox){var t=e.getBBox(),r=t.width,o=t.height;if(r||o)return!0}if(e.getBoundingClientRect){var n=e.getBoundingClientRect(),a=n.width,i=n.height;if(a||i)return!0}}return!1}])},958503,e=>{"use strict";e.s(["addMediaQueryListener",0,(e,t)=>{void 0!==(null==e?void 0:e.addEventListener)?e.addEventListener("change",t):void 0!==(null==e?void 0:e.addListener)&&e.addListener(t)},"removeMediaQueryListener",0,(e,t)=>{void 0!==(null==e?void 0:e.removeEventListener)?e.removeEventListener("change",t):void 0!==(null==e?void 0:e.removeListener)&&e.removeListener(t)}])},908206,e=>{"use strict";var t=e.i(271645),r=e.i(104458),o=e.i(958503);let n=["xxl","xl","lg","md","sm","xs"];e.s(["default",0,()=>{let e,[,a]=(0,r.useToken)(),i=((e=[].concat(n).reverse()).forEach((t,r)=>{let o=t.toUpperCase(),n=`screen${o}Min`,i=`screen${o}`;if(!(a[n]<=a[i]))throw Error(`${n}<=${i} fails : !(${a[n]}<=${a[i]})`);if(r{let e=new Map,t=-1,r={};return{responsiveMap:i,matchHandlers:{},dispatch:t=>(r=t,e.forEach(e=>e(r)),e.size>=1),subscribe(o){return e.size||this.register(),t+=1,e.set(t,o),o(r),t},unsubscribe(t){e.delete(t),e.size||this.unregister()},register(){Object.entries(i).forEach(([e,t])=>{let n=({matches:t})=>{this.dispatch(Object.assign(Object.assign({},r),{[e]:t}))},a=window.matchMedia(t);(0,o.addMediaQueryListener)(a,n),this.matchHandlers[t]={mql:a,listener:n},n(a)})},unregister(){Object.values(i).forEach(e=>{let t=this.matchHandlers[e];(0,o.removeMediaQueryListener)(null==t?void 0:t.mql,null==t?void 0:t.listener)}),e.clear()}}},[i])},"matchScreen",0,(e,t)=>{if(t){for(let r of n)if(e[r]&&(null==t?void 0:t[r])!==void 0)return t[r]}},"responsiveArray",0,n])},149809,e=>{"use strict";var t=e.i(271645);e.s(["useForceUpdate",0,()=>t.default.useReducer(e=>e+1,0)])},150073,e=>{"use strict";var t=e.i(271645),r=e.i(174428),o=e.i(149809),n=e.i(908206);e.s(["default",0,function(e=!0,a={}){let i=(0,t.useRef)(a),[,l]=(0,o.useForceUpdate)(),s=(0,n.default)();return(0,r.default)(()=>{let t=s.subscribe(t=>{i.current=t,e&&l()});return()=>s.unsubscribe(t)},[]),i.current}])},39874,559442,e=>{"use strict";var t=e.i(908206);e.s(["default",0,function(e,r){let o=[void 0,void 0],n=Array.isArray(e)?e:[e,void 0],a=r||{xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0};return n.forEach((e,r)=>{if("object"==typeof e&&null!==e)for(let n=0;n{"use strict";e.i(296059);var t=e.i(915654),r=e.i(246422),o=e.i(838378);let n=(e,t)=>((e,t)=>{let{prefixCls:r,componentCls:o,gridColumns:n}=e,a={};for(let e=n;e>=0;e--)0===e?(a[`${o}${t}-${e}`]={display:"none"},a[`${o}-push-${e}`]={insetInlineStart:"auto"},a[`${o}-pull-${e}`]={insetInlineEnd:"auto"},a[`${o}${t}-push-${e}`]={insetInlineStart:"auto"},a[`${o}${t}-pull-${e}`]={insetInlineEnd:"auto"},a[`${o}${t}-offset-${e}`]={marginInlineStart:0},a[`${o}${t}-order-${e}`]={order:0}):(a[`${o}${t}-${e}`]=[{"--ant-display":"block",display:"block"},{display:"var(--ant-display)",flex:`0 0 ${e/n*100}%`,maxWidth:`${e/n*100}%`}],a[`${o}${t}-push-${e}`]={insetInlineStart:`${e/n*100}%`},a[`${o}${t}-pull-${e}`]={insetInlineEnd:`${e/n*100}%`},a[`${o}${t}-offset-${e}`]={marginInlineStart:`${e/n*100}%`},a[`${o}${t}-order-${e}`]={order:e});return a[`${o}${t}-flex`]={flex:`var(--${r}${t}-flex)`},a})(e,t),a=(0,r.genStyleHooks)("Grid",e=>{let{componentCls:t}=e;return{[t]:{display:"flex",flexFlow:"row wrap",minWidth:0,"&::before, &::after":{display:"flex"},"&-no-wrap":{flexWrap:"nowrap"},"&-start":{justifyContent:"flex-start"},"&-center":{justifyContent:"center"},"&-end":{justifyContent:"flex-end"},"&-space-between":{justifyContent:"space-between"},"&-space-around":{justifyContent:"space-around"},"&-space-evenly":{justifyContent:"space-evenly"},"&-top":{alignItems:"flex-start"},"&-middle":{alignItems:"center"},"&-bottom":{alignItems:"flex-end"}}}},()=>({})),i=e=>({xs:e.screenXSMin,sm:e.screenSMMin,md:e.screenMDMin,lg:e.screenLGMin,xl:e.screenXLMin,xxl:e.screenXXLMin}),l=(0,r.genStyleHooks)("Grid",e=>{let r=(0,o.mergeToken)(e,{gridColumns:24}),a=i(r);return delete a.xs,[(e=>{let{componentCls:t}=e;return{[t]:{position:"relative",maxWidth:"100%",minHeight:1}}})(r),n(r,""),n(r,"-xs"),Object.keys(a).map(e=>{let o,i;return o=a[e],i=`-${e}`,{[`@media (min-width: ${(0,t.unit)(o)})`]:Object.assign({},n(r,i))}}).reduce((e,t)=>Object.assign(Object.assign({},e),t),{})]},()=>({}));e.s(["getMediaSize",0,i,"useColStyle",0,l,"useRowStyle",0,a])},264042,131757,292169,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(908206),n=e.i(242064),a=e.i(150073),i=e.i(39874),l=e.i(559442),s=e.i(756570),c=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};function u(e,r){let[n,a]=t.useState("string"==typeof e?e:"");return t.useEffect(()=>{(()=>{if("string"==typeof e&&a(e),"object"==typeof e)for(let t=0;t{let{prefixCls:d,justify:f,align:p,className:h,style:m,children:g,gutter:v=0,wrap:y}=e,b=c(e,["prefixCls","justify","align","className","style","children","gutter","wrap"]),{getPrefixCls:w,direction:$}=t.useContext(n.ConfigContext),C=(0,a.default)(!0,null),x=u(p,C),E=u(f,C),S=w("row",d),[k,j,O]=(0,s.useRowStyle)(S),T=(0,i.default)(v,C),I=(0,r.default)(S,{[`${S}-no-wrap`]:!1===y,[`${S}-${E}`]:E,[`${S}-${x}`]:x,[`${S}-rtl`]:"rtl"===$},h,j,O),_={};if(null==T?void 0:T[0]){let e="number"==typeof T[0]?`${-(T[0]/2)}px`:`calc(${T[0]} / -2)`;_.marginLeft=e,_.marginRight=e}let[F,P]=T;_.rowGap=P;let R=t.useMemo(()=>({gutter:[F,P],wrap:y}),[F,P,y]);return k(t.createElement(l.default.Provider,{value:R},t.createElement("div",Object.assign({},b,{className:I,style:Object.assign(Object.assign({},_),m),ref:o}),g)))});e.s(["Row",0,d],264042),e.i(62664);var f=e.i(657791),f=f,p=e.i(349057),p=p,h=e.i(174428),m=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};function g(e){return"auto"===e?"1 1 auto":"number"==typeof e?`${e} ${e} auto`:/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?`0 0 ${e}`:e}let v=["xs","sm","md","lg","xl","xxl"],y=t.forwardRef((e,o)=>{let{getPrefixCls:a,direction:i}=t.useContext(n.ConfigContext),{gutter:c,wrap:u}=t.useContext(l.default),{prefixCls:d,span:f,order:p,offset:h,push:y,pull:b,className:w,children:$,flex:C,style:x}=e,E=m(e,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),S=a("col",d),[k,j,O]=(0,s.useColStyle)(S),T={},I={};v.forEach(t=>{let r={},o=e[t];"number"==typeof o?r.span=o:"object"==typeof o&&(r=o||{}),delete E[t],I=Object.assign(Object.assign({},I),{[`${S}-${t}-${r.span}`]:void 0!==r.span,[`${S}-${t}-order-${r.order}`]:r.order||0===r.order,[`${S}-${t}-offset-${r.offset}`]:r.offset||0===r.offset,[`${S}-${t}-push-${r.push}`]:r.push||0===r.push,[`${S}-${t}-pull-${r.pull}`]:r.pull||0===r.pull,[`${S}-rtl`]:"rtl"===i}),r.flex&&(I[`${S}-${t}-flex`]=!0,T[`--${S}-${t}-flex`]=g(r.flex))});let _=(0,r.default)(S,{[`${S}-${f}`]:void 0!==f,[`${S}-order-${p}`]:p,[`${S}-offset-${h}`]:h,[`${S}-push-${y}`]:y,[`${S}-pull-${b}`]:b},w,I,j,O),F={};if(null==c?void 0:c[0]){let e="number"==typeof c[0]?`${c[0]/2}px`:`calc(${c[0]} / 2)`;F.paddingLeft=e,F.paddingRight=e}return C&&(F.flex=g(C),!1!==u||F.minWidth||(F.minWidth=0)),k(t.createElement("div",Object.assign({},E,{style:Object.assign(Object.assign(Object.assign({},F),x),T),className:_,ref:o}),$))});e.s(["default",0,y],131757);var b=e.i(62139),w=e.i(782074),$=e.i(908709);let C=(0,e.i(246422).genSubStyleComponent)(["Form","item-item"],(e,{rootPrefixCls:t})=>(e=>{let{formItemCls:t}=e;return{"@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none)":{[`${t}-control`]:{display:"flex"}}}})((0,$.prepareToken)(e,t)));var x=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};e.s(["default",0,e=>{let{prefixCls:o,status:n,labelCol:a,wrapperCol:i,children:l,errors:s,warnings:c,_internalItemRender:u,extra:d,help:m,fieldId:g,marginBottom:v,onErrorVisibleChanged:$,label:E}=e,S=`${o}-item`,k=t.useContext(b.FormContext),j=t.useMemo(()=>{let e=Object.assign({},i||k.wrapperCol||{});return null!==E||a||i||!k.labelCol||[void 0,"xs","sm","md","lg","xl","xxl"].forEach(t=>{let r=t?[t]:[],o=(0,f.default)(k.labelCol,r),n="object"==typeof o?o:{},a=(0,f.default)(e,r);"span"in n&&!("offset"in("object"==typeof a?a:{}))&&n.span<24&&(e=(0,p.default)(e,[].concat(r,["offset"]),n.span))}),e},[i,k.wrapperCol,k.labelCol,E,a]),O=(0,r.default)(`${S}-control`,j.className),T=t.useMemo(()=>{let{labelCol:e,wrapperCol:t}=k;return x(k,["labelCol","wrapperCol"])},[k]),I=t.useRef(null),[_,F]=t.useState(0);(0,h.default)(()=>{d&&I.current?F(I.current.clientHeight):F(0)},[d]);let P=t.createElement("div",{className:`${S}-control-input`},t.createElement("div",{className:`${S}-control-input-content`},l)),R=t.useMemo(()=>({prefixCls:o,status:n}),[o,n]),N=null!==v||s.length||c.length?t.createElement(b.FormItemPrefixContext.Provider,{value:R},t.createElement(w.default,{fieldId:g,errors:s,warnings:c,help:m,helpStatus:n,className:`${S}-explain-connected`,onVisibleChanged:$})):null,M={};g&&(M.id=`${g}_extra`);let B=d?t.createElement("div",Object.assign({},M,{className:`${S}-extra`,ref:I}),d):null,A=N||B?t.createElement("div",{className:`${S}-additional`,style:v?{minHeight:v+_}:{}},N,B):null,z=u&&"pro_table_render"===u.mark&&u.render?u.render(e,{input:P,errorList:N,extra:B}):t.createElement(t.Fragment,null,P,A);return t.createElement(b.FormContext.Provider,{value:T},t.createElement(y,Object.assign({},j,{className:O}),z),t.createElement(C,{prefixCls:o}))}],292169)},684024,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"question-circle",theme:"outlined"};var n=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(n.default,(0,t.default)({},e,{ref:a,icon:o}))});e.s(["default",0,a],684024)},995144,e=>{"use strict";var t=e.i(271645);e.s(["default",0,function(e){return null==e?null:"object"!=typeof e||(0,t.isValidElement)(e)?{title:e}:e}])},408850,929447,e=>{"use strict";var t=e.i(271645),r=e.i(595575),o=e.i(87414);let n=(e,n)=>{let a=t.useContext(r.default);return[t.useMemo(()=>{var t;let r=n||o.default[e],i=null!=(t=null==a?void 0:a[e])?t:{};return Object.assign(Object.assign({},"function"==typeof r?r():r),i||{})},[e,n,a]),t.useMemo(()=>{let e=null==a?void 0:a.locale;return(null==a?void 0:a.exist)&&!e?o.default.locale:e},[a])]};e.s(["default",0,n],929447),e.s(["useLocale",0,n],408850)},552821,e=>{"use strict";var t=e.i(343794),r=e.i(271645);e.s(["default",0,function(e){var o=e.children,n=e.prefixCls,a=e.id,i=e.overlayInnerStyle,l=e.bodyClassName,s=e.className,c=e.style;return r.createElement("div",{className:(0,t.default)("".concat(n,"-content"),s),style:c},r.createElement("div",{className:(0,t.default)("".concat(n,"-inner"),l),id:a,role:"tooltip",style:i},"function"==typeof o?o():o))}])},951160,815289,e=>{"use strict";e.i(247167);var t,r=e.i(392221),o=e.i(271645),n=e.i(174080),a=e.i(654310);e.i(883110);var i=e.i(611935),l=o.createContext(null),s=e.i(8211),c=e.i(174428),u=[],d=e.i(575943);function f(e){var t,r,o="rc-scrollbar-measure-".concat(Math.random().toString(36).substring(7)),n=document.createElement("div");n.id=o;var a=n.style;if(a.position="absolute",a.left="0",a.top="0",a.width="100px",a.height="100px",a.overflow="scroll",e){var i=getComputedStyle(e);a.scrollbarColor=i.scrollbarColor,a.scrollbarWidth=i.scrollbarWidth;var l=getComputedStyle(e,"::-webkit-scrollbar"),s=parseInt(l.width,10),c=parseInt(l.height,10);try{var u=s?"width: ".concat(l.width,";"):"",f=c?"height: ".concat(l.height,";"):"";(0,d.updateCSS)("\n#".concat(o,"::-webkit-scrollbar {\n").concat(u,"\n").concat(f,"\n}"),o)}catch(e){console.error(e),t=s,r=c}}document.body.appendChild(n);var p=e&&t&&!isNaN(t)?t:n.offsetWidth-n.clientWidth,h=e&&r&&!isNaN(r)?r:n.offsetHeight-n.clientHeight;return document.body.removeChild(n),(0,d.removeCSS)(o),{width:p,height:h}}function p(e){return!("u"(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth;(0,d.updateCSS)("\nhtml body {\n overflow-y: hidden;\n ".concat(t?"width: calc(100% - ".concat(e,"px);"):"","\n}"),y)}else(0,d.removeCSS)(y);return function(){(0,d.removeCSS)(y)}},[f,y]);var z=null;E&&(0,i.supportRef)(E)&&t&&(z=E.ref);var L=(0,i.useComposeRef)(z,t);if(!T||!(0,a.default)()||void 0===F)return null;var D=!1===A,H=E;return t&&(H=o.cloneElement(E,{ref:L})),o.createElement(l.Provider,{value:B},D?H:(0,n.createPortal)(H,A))});e.s(["default",0,v],951160)},430073,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645),o=e.i(876556);e.i(883110);var n=e.i(209428),a=e.i(410160),i=e.i(279697),l=e.i(611935),s=r.createContext(null),c=function(){if("u">typeof Map)return Map;function e(e,t){var r=-1;return e.some(function(e,o){return e[0]===t&&(r=o,!0)}),r}function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var r=e(this.__entries__,t),o=this.__entries__[r];return o&&o[1]},t.prototype.set=function(t,r){var o=e(this.__entries__,t);~o?this.__entries__[o][1]=r:this.__entries__.push([t,r])},t.prototype.delete=function(t){var r=this.__entries__,o=e(r,t);~o&&r.splice(o,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var r=0,o=this.__entries__;rtypeof window&&"u">typeof document&&window.document===document,d=e.g.Math===Math?e.g:"u">typeof self&&self.Math===Math?self:"u">typeof window&&window.Math===Math?window:Function("return this")(),f="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(d):function(e){return setTimeout(function(){return e(Date.now())},1e3/60)},p=["top","right","bottom","left","width","height","size","weight"],h="u">typeof MutationObserver,m=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e){var t=!1,r=!1,o=0;function n(){t&&(t=!1,e()),r&&i()}function a(){f(n)}function i(){var e=Date.now();if(t){if(e-o<2)return;r=!0}else t=!0,r=!1,setTimeout(a,20);o=e}return i}(this.refresh.bind(this))}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,r=t.indexOf(e);~r&&t.splice(r,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter(function(e){return e.gatherActive(),e.hasActive()});return e.forEach(function(e){return e.broadcastActive()}),e.length>0},e.prototype.connect_=function(){u&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),h?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){u&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,r=void 0===t?"":t;p.some(function(e){return!!~r.indexOf(e)})&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),g=function(e,t){for(var r=0,o=Object.keys(t);rtypeof SVGGraphicsElement?function(e){return e instanceof v(e).SVGGraphicsElement}:function(e){return e instanceof v(e).SVGElement&&"function"==typeof e.getBBox};function C(e,t,r,o){return{x:e,y:t,width:r,height:o}}var x=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=C(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=function(e){if(!u)return y;if($(e)){var t;return C(0,0,(t=e.getBBox()).width,t.height)}return function(e){var t,r=e.clientWidth,o=e.clientHeight;if(!r&&!o)return y;var n=v(e).getComputedStyle(e),a=function(e){for(var t={},r=0,o=["top","right","bottom","left"];rtypeof DOMRectReadOnly?DOMRectReadOnly:Object).prototype),{x:r,y:o,width:n,height:a,top:o,right:r+n,bottom:a+o,left:r}),i);g(this,{target:e,contentRect:l})},S=function(){function e(e,t,r){if(this.activeObservations_=[],this.observations_=new c,"function"!=typeof e)throw TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=r}return e.prototype.observe=function(e){if(!arguments.length)throw TypeError("1 argument required, but only 0 present.");if(!("u"0},e}(),k="u">typeof WeakMap?new WeakMap:new c,j=function e(t){if(!(this instanceof e))throw TypeError("Cannot call a class as a function.");if(!arguments.length)throw TypeError("1 argument required, but only 0 present.");var r=new S(t,m.getInstance(),this);k.set(this,r)};["observe","unobserve","disconnect"].forEach(function(e){j.prototype[e]=function(){var t;return(t=k.get(this))[e].apply(t,arguments)}});var O=void 0!==d.ResizeObserver?d.ResizeObserver:j,T=new Map,I=new O(function(e){e.forEach(function(e){var t,r=e.target;null==(t=T.get(r))||t.forEach(function(e){return e(r)})})}),_=e.i(278409),F=e.i(233848),P=e.i(868917),R=e.i(674813),N=function(e){(0,P.default)(r,e);var t=(0,R.default)(r);function r(){return(0,_.default)(this,r),t.apply(this,arguments)}return(0,F.default)(r,[{key:"render",value:function(){return this.props.children}}]),r}(r.Component),M=r.forwardRef(function(e,t){var o=e.children,c=e.disabled,u=r.useRef(null),d=r.useRef(null),f=r.useContext(s),p="function"==typeof o,h=p?o(u):o,m=r.useRef({width:-1,height:-1,offsetWidth:-1,offsetHeight:-1}),g=!p&&r.isValidElement(h)&&(0,l.supportRef)(h),v=g?(0,l.getNodeRef)(h):null,y=(0,l.useComposeRef)(v,u),b=function(){var e;return(0,i.default)(u.current)||(u.current&&"object"===(0,a.default)(u.current)?(0,i.default)(null==(e=u.current)?void 0:e.nativeElement):null)||(0,i.default)(d.current)};r.useImperativeHandle(t,function(){return b()});var w=r.useRef(e);w.current=e;var $=r.useCallback(function(e){var t=w.current,r=t.onResize,o=t.data,a=e.getBoundingClientRect(),i=a.width,l=a.height,s=e.offsetWidth,c=e.offsetHeight,u=Math.floor(i),d=Math.floor(l);if(m.current.width!==u||m.current.height!==d||m.current.offsetWidth!==s||m.current.offsetHeight!==c){var p={width:u,height:d,offsetWidth:s,offsetHeight:c};m.current=p;var h=s===Math.round(i)?i:s,g=c===Math.round(l)?l:c,v=(0,n.default)((0,n.default)({},p),{},{offsetWidth:h,offsetHeight:g});null==f||f(v,e,o),r&&Promise.resolve().then(function(){r(v,e)})}},[]);return r.useEffect(function(){var e=b();return e&&!c&&(T.has(e)||(T.set(e,new Set),I.observe(e)),T.get(e).add($)),function(){T.has(e)&&(T.get(e).delete($),!T.get(e).size&&(I.unobserve(e),T.delete(e)))}},[u.current,c]),r.createElement(N,{ref:d},g?r.cloneElement(h,{ref:y}):h)}),B=r.forwardRef(function(e,n){var a=e.children;return("function"==typeof a?[a]:(0,o.default)(a)).map(function(o,a){var i=(null==o?void 0:o.key)||"".concat("rc-observer-key","-").concat(a);return r.createElement(M,(0,t.default)({},e,{key:i,ref:0===a?n:void 0}),o)})});B.Collection=function(e){var t=e.children,o=e.onBatchResize,n=r.useRef(0),a=r.useRef([]),i=r.useContext(s),l=r.useCallback(function(e,t,r){n.current+=1;var l=n.current;a.current.push({size:e,element:t,data:r}),Promise.resolve().then(function(){l===n.current&&(null==o||o(a.current),a.current=[])}),null==i||i(e,t,r)},[o,i]);return r.createElement(s.Provider,{value:l},t)},e.s(["default",0,B],430073)},981444,e=>{"use strict";var t=e.i(392221),r=e.i(209428),o=e.i(271645),n=0,a=(0,r.default)({},o).useId;let i=a?function(e){var t=a();return e||t}:function(e){var r=o.useState("ssr-id"),a=(0,t.default)(r,2),i=a[0],l=a[1];return(o.useEffect(function(){var e=n;n+=1,l("rc_unique_".concat(e))},[]),e)?e:i};e.s(["default",0,i])},614761,e=>{"use strict";e.s(["default",0,function(){if("u"{"use strict";e.i(247167);var t=e.i(931067),r=e.i(209428),o=e.i(392221),n=e.i(343794),a=e.i(361275),i=e.i(430073),l=e.i(174428),s=e.i(611935),c=e.i(271645);function u(e){var t=e.prefixCls,r=e.align,o=e.arrow,a=e.arrowPos,i=o||{},l=i.className,s=i.content,u=a.x,d=a.y,f=c.useRef();if(!r||!r.points)return null;var p={position:"absolute"};if(!1!==r.autoArrow){var h=r.points[0],m=r.points[1],g=h[0],v=h[1],y=m[0],b=m[1];g!==y&&["t","b"].includes(g)?"t"===g?p.top=0:p.bottom=0:p.top=void 0===d?0:d,v!==b&&["l","r"].includes(v)?"l"===v?p.left=0:p.right=0:p.left=void 0===u?0:u}return c.createElement("div",{ref:f,className:(0,n.default)("".concat(t,"-arrow"),l),style:p},s)}function d(e){var r=e.prefixCls,o=e.open,i=e.zIndex,l=e.mask,s=e.motion;return l?c.createElement(a.default,(0,t.default)({},s,{motionAppear:!0,visible:o,removeOnLeave:!0}),function(e){var t=e.className;return c.createElement("div",{style:{zIndex:i},className:(0,n.default)("".concat(r,"-mask"),t)})}):null}var f=c.memo(function(e){return e.children},function(e,t){return t.cache}),p=c.forwardRef(function(e,p){var h=e.popup,m=e.className,g=e.prefixCls,v=e.style,y=e.target,b=e.onVisibleChanged,w=e.open,$=e.keepDom,C=e.fresh,x=e.onClick,E=e.mask,S=e.arrow,k=e.arrowPos,j=e.align,O=e.motion,T=e.maskMotion,I=e.forceRender,_=e.getPopupContainer,F=e.autoDestroy,P=e.portal,R=e.zIndex,N=e.onMouseEnter,M=e.onMouseLeave,B=e.onPointerEnter,A=e.onPointerDownCapture,z=e.ready,L=e.offsetX,D=e.offsetY,H=e.offsetR,V=e.offsetB,W=e.onAlign,U=e.onPrepare,G=e.stretch,q=e.targetWidth,J=e.targetHeight,K="function"==typeof h?h():h,X=w||$,Q=(null==_?void 0:_.length)>0,Y=c.useState(!_||!Q),Z=(0,o.default)(Y,2),ee=Z[0],et=Z[1];if((0,l.default)(function(){!ee&&Q&&y&&et(!0)},[ee,Q,y]),!ee)return null;var er="auto",eo={left:"-1000vw",top:"-1000vh",right:er,bottom:er};if(z||!w){var en,ea=j.points,ei=j.dynamicInset||(null==(en=j._experimental)?void 0:en.dynamicInset),el=ei&&"r"===ea[0][1],es=ei&&"b"===ea[0][0];el?(eo.right=H,eo.left=er):(eo.left=L,eo.right=er),es?(eo.bottom=V,eo.top=er):(eo.top=D,eo.bottom=er)}var ec={};return G&&(G.includes("height")&&J?ec.height=J:G.includes("minHeight")&&J&&(ec.minHeight=J),G.includes("width")&&q?ec.width=q:G.includes("minWidth")&&q&&(ec.minWidth=q)),w||(ec.pointerEvents="none"),c.createElement(P,{open:I||X,getContainer:_&&function(){return _(y)},autoDestroy:F},c.createElement(d,{prefixCls:g,open:w,zIndex:R,mask:E,motion:T}),c.createElement(i.default,{onResize:W,disabled:!w},function(e){return c.createElement(a.default,(0,t.default)({motionAppear:!0,motionEnter:!0,motionLeave:!0,removeOnLeave:!1,forceRender:I,leavedClassName:"".concat(g,"-hidden")},O,{onAppearPrepare:U,onEnterPrepare:U,visible:w,onVisibleChanged:function(e){var t;null==O||null==(t=O.onVisibleChanged)||t.call(O,e),b(e)}}),function(t,o){var a=t.className,i=t.style,l=(0,n.default)(g,a,m);return c.createElement("div",{ref:(0,s.composeRef)(e,p,o),className:l,style:(0,r.default)((0,r.default)((0,r.default)((0,r.default)({"--arrow-x":"".concat(k.x||0,"px"),"--arrow-y":"".concat(k.y||0,"px")},eo),ec),i),{},{boxSizing:"border-box",zIndex:R},v),onMouseEnter:N,onMouseLeave:M,onPointerEnter:B,onClick:x,onPointerDownCapture:A},S&&c.createElement(u,{prefixCls:g,arrow:S,arrowPos:k,align:j}),c.createElement(f,{cache:!w&&!C},K))})}))});e.s(["default",0,p],546004);var h=c.forwardRef(function(e,t){var r=e.children,o=e.getTriggerDOMNode,n=(0,s.supportRef)(r),a=c.useCallback(function(e){(0,s.fillRef)(t,o?o(e):e)},[o]),i=(0,s.useComposeRef)(a,(0,s.getNodeRef)(r));return n?c.cloneElement(r,{ref:i}):r});e.s(["default",0,h],508811);var m=c.createContext(null);function g(e){return e?Array.isArray(e)?e:[e]:[]}e.s(["default",0,m],976637),e.s(["default",0,function(e,t,r,o){return c.useMemo(function(){var n=g(null!=r?r:t),a=g(null!=o?o:t),i=new Set(n),l=new Set(a);return e&&(i.has("hover")&&(i.delete("hover"),i.add("click")),l.has("hover")&&(l.delete("hover"),l.add("click"))),[i,l]},[e,t,r,o])}],920)},707067,e=>{"use strict";e.i(247167);var t=e.i(209428),r=e.i(392221),o=e.i(703923),n=e.i(951160),a=e.i(343794),i=e.i(430073),l=e.i(279697),s=e.i(909887),c=e.i(175066),u=e.i(981444),d=e.i(174428),f=e.i(614761),p=e.i(271645),h=e.i(546004),m=e.i(508811),g=e.i(976637),v=e.i(920),y=e.i(606262);function b(e,t,r,o){return t||(r?{motionName:"".concat(e,"-").concat(r)}:o?{motionName:o}:null)}function w(e){return e.ownerDocument.defaultView}function $(e){for(var t=[],r=null==e?void 0:e.parentElement,o=["hidden","scroll","clip","auto"];r;){var n=w(r).getComputedStyle(r);[n.overflowX,n.overflowY,n.overflow].some(function(e){return o.includes(e)})&&t.push(r),r=r.parentElement}return t}function C(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return Number.isNaN(e)?t:e}function x(e){return C(parseFloat(e),0)}function E(e,r){var o=(0,t.default)({},e);return(r||[]).forEach(function(e){if(!(e instanceof HTMLBodyElement||e instanceof HTMLHtmlElement)){var t=w(e).getComputedStyle(e),r=t.overflow,n=t.overflowClipMargin,a=t.borderTopWidth,i=t.borderBottomWidth,l=t.borderLeftWidth,s=t.borderRightWidth,c=e.getBoundingClientRect(),u=e.offsetHeight,d=e.clientHeight,f=e.offsetWidth,p=e.clientWidth,h=x(a),m=x(i),g=x(l),v=x(s),y=C(Math.round(c.width/f*1e3)/1e3),b=C(Math.round(c.height/u*1e3)/1e3),$=h*b,E=g*y,S=0,k=0;if("clip"===r){var j=x(n);S=j*y,k=j*b}var O=c.x+E-S,T=c.y+$-k,I=O+c.width+2*S-E-v*y-(f-p-g-v)*y,_=T+c.height+2*k-$-m*b-(u-d-h-m)*b;o.left=Math.max(o.left,O),o.top=Math.max(o.top,T),o.right=Math.min(o.right,I),o.bottom=Math.min(o.bottom,_)}}),o}function S(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r="".concat(t),o=r.match(/^(.*)\%$/);return o?e*(parseFloat(o[1])/100):parseFloat(r)}function k(e,t){var o=(0,r.default)(t||[],2),n=o[0],a=o[1];return[S(e.width,n),S(e.height,a)]}function j(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return[e[0],e[1]]}function O(e,t){var r,o=t[0],n=t[1];return r="t"===o?e.y:"b"===o?e.y+e.height:e.y+e.height/2,{x:"l"===n?e.x:"r"===n?e.x+e.width:e.x+e.width/2,y:r}}function T(e,t){var r={t:"b",b:"t",l:"r",r:"l"};return e.map(function(e,o){return o===t?r[e]||"c":e}).join("")}var I=e.i(8211);e.i(883110);var _=["prefixCls","children","action","showAction","hideAction","popupVisible","defaultPopupVisible","onPopupVisibleChange","afterPopupVisibleChange","mouseEnterDelay","mouseLeaveDelay","focusDelay","blurDelay","mask","maskClosable","getPopupContainer","forceRender","autoDestroy","destroyPopupOnHide","popup","popupClassName","popupStyle","popupPlacement","builtinPlacements","popupAlign","zIndex","stretch","getPopupClassNameFromAlign","fresh","alignPoint","onPopupClick","onPopupAlign","arrow","popupMotion","maskMotion","popupTransitionName","popupAnimation","maskTransitionName","maskAnimation","className","getTriggerDOMNode"];let F=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n.default;return p.forwardRef(function(n,x){var S,F,P,R,N,M,B,A,z,L,D,H,V,W,U,G,q=n.prefixCls,J=void 0===q?"rc-trigger-popup":q,K=n.children,X=n.action,Q=n.showAction,Y=n.hideAction,Z=n.popupVisible,ee=n.defaultPopupVisible,et=n.onPopupVisibleChange,er=n.afterPopupVisibleChange,eo=n.mouseEnterDelay,en=n.mouseLeaveDelay,ea=void 0===en?.1:en,ei=n.focusDelay,el=n.blurDelay,es=n.mask,ec=n.maskClosable,eu=n.getPopupContainer,ed=n.forceRender,ef=n.autoDestroy,ep=n.destroyPopupOnHide,eh=n.popup,em=n.popupClassName,eg=n.popupStyle,ev=n.popupPlacement,ey=n.builtinPlacements,eb=void 0===ey?{}:ey,ew=n.popupAlign,e$=n.zIndex,eC=n.stretch,ex=n.getPopupClassNameFromAlign,eE=n.fresh,eS=n.alignPoint,ek=n.onPopupClick,ej=n.onPopupAlign,eO=n.arrow,eT=n.popupMotion,eI=n.maskMotion,e_=n.popupTransitionName,eF=n.popupAnimation,eP=n.maskTransitionName,eR=n.maskAnimation,eN=n.className,eM=n.getTriggerDOMNode,eB=(0,o.default)(n,_),eA=p.useState(!1),ez=(0,r.default)(eA,2),eL=ez[0],eD=ez[1];(0,d.default)(function(){eD((0,f.default)())},[]);var eH=p.useRef({}),eV=p.useContext(g.default),eW=p.useMemo(function(){return{registerSubPopup:function(e,t){eH.current[e]=t,null==eV||eV.registerSubPopup(e,t)}}},[eV]),eU=(0,u.default)(),eG=p.useState(null),eq=(0,r.default)(eG,2),eJ=eq[0],eK=eq[1],eX=p.useRef(null),eQ=(0,c.default)(function(e){eX.current=e,(0,l.isDOM)(e)&&eJ!==e&&eK(e),null==eV||eV.registerSubPopup(eU,e)}),eY=p.useState(null),eZ=(0,r.default)(eY,2),e0=eZ[0],e1=eZ[1],e2=p.useRef(null),e4=(0,c.default)(function(e){(0,l.isDOM)(e)&&e0!==e&&(e1(e),e2.current=e)}),e6=p.Children.only(K),e3=(null==e6?void 0:e6.props)||{},e7={},e5=(0,c.default)(function(e){var t,r;return(null==e0?void 0:e0.contains(e))||(null==(t=(0,s.getShadowRoot)(e0))?void 0:t.host)===e||e===e0||(null==eJ?void 0:eJ.contains(e))||(null==(r=(0,s.getShadowRoot)(eJ))?void 0:r.host)===e||e===eJ||Object.values(eH.current).some(function(t){return(null==t?void 0:t.contains(e))||e===t})}),e9=b(J,eT,eF,e_),e8=b(J,eI,eR,eP),te=p.useState(ee||!1),tt=(0,r.default)(te,2),tr=tt[0],to=tt[1],tn=null!=Z?Z:tr,ta=(0,c.default)(function(e){void 0===Z&&to(e)});(0,d.default)(function(){to(Z||!1)},[Z]);var ti=p.useRef(tn);ti.current=tn;var tl=p.useRef([]);tl.current=[];var ts=(0,c.default)(function(e){var t;ta(e),(null!=(t=tl.current[tl.current.length-1])?t:tn)!==e&&(tl.current.push(e),null==et||et(e))}),tc=p.useRef(),tu=function(){clearTimeout(tc.current)},td=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;tu(),0===t?ts(e):tc.current=setTimeout(function(){ts(e)},1e3*t)};p.useEffect(function(){return tu},[]);var tf=p.useState(!1),tp=(0,r.default)(tf,2),th=tp[0],tm=tp[1];(0,d.default)(function(e){(!e||tn)&&tm(!0)},[tn]);var tg=p.useState(null),tv=(0,r.default)(tg,2),ty=tv[0],tb=tv[1],tw=p.useState(null),t$=(0,r.default)(tw,2),tC=t$[0],tx=t$[1],tE=function(e){tx([e.clientX,e.clientY])},tS=(S=eS&&null!==tC?tC:e0,F=p.useState({ready:!1,offsetX:0,offsetY:0,offsetR:0,offsetB:0,arrowX:0,arrowY:0,scaleX:1,scaleY:1,align:eb[ev]||{}}),R=(P=(0,r.default)(F,2))[0],N=P[1],M=p.useRef(0),B=p.useMemo(function(){return eJ?$(eJ):[]},[eJ]),A=p.useRef({}),tn||(A.current={}),z=(0,c.default)(function(){if(eJ&&S&&tn){var e=eJ.ownerDocument,o=w(eJ),n=o.getComputedStyle(eJ).position,a=eJ.style.left,i=eJ.style.top,s=eJ.style.right,c=eJ.style.bottom,u=eJ.style.overflow,d=(0,t.default)((0,t.default)({},eb[ev]),ew),f=e.createElement("div");if(null==(v=eJ.parentElement)||v.appendChild(f),f.style.left="".concat(eJ.offsetLeft,"px"),f.style.top="".concat(eJ.offsetTop,"px"),f.style.position=n,f.style.height="".concat(eJ.offsetHeight,"px"),f.style.width="".concat(eJ.offsetWidth,"px"),eJ.style.left="0",eJ.style.top="0",eJ.style.right="auto",eJ.style.bottom="auto",eJ.style.overflow="hidden",Array.isArray(S))I={x:S[0],y:S[1],width:0,height:0};else{var p,h,m,g,v,b,$,x,I,_,F,P=S.getBoundingClientRect();P.x=null!=(_=P.x)?_:P.left,P.y=null!=(F=P.y)?F:P.top,I={x:P.x,y:P.y,width:P.width,height:P.height}}var R=eJ.getBoundingClientRect(),M=o.getComputedStyle(eJ),z=M.height,L=M.width;R.x=null!=(b=R.x)?b:R.left,R.y=null!=($=R.y)?$:R.top;var D=e.documentElement,H=D.clientWidth,V=D.clientHeight,W=D.scrollWidth,U=D.scrollHeight,G=D.scrollTop,q=D.scrollLeft,J=R.height,K=R.width,X=I.height,Q=I.width,Y=d.htmlRegion,Z="visible",ee="visibleFirst";"scroll"!==Y&&Y!==ee&&(Y=Z);var et=Y===ee,er=E({left:-q,top:-G,right:W-q,bottom:U-G},B),eo=E({left:0,top:0,right:H,bottom:V},B),en=Y===Z?eo:er,ea=et?eo:en;eJ.style.left="auto",eJ.style.top="auto",eJ.style.right="0",eJ.style.bottom="0";var ei=eJ.getBoundingClientRect();eJ.style.left=a,eJ.style.top=i,eJ.style.right=s,eJ.style.bottom=c,eJ.style.overflow=u,null==(x=eJ.parentElement)||x.removeChild(f);var el=C(Math.round(K/parseFloat(L)*1e3)/1e3),es=C(Math.round(J/parseFloat(z)*1e3)/1e3);if(!(0===el||0===es||(0,l.isDOM)(S)&&!(0,y.default)(S))){var ec=d.offset,eu=d.targetOffset,ed=k(R,ec),ef=(0,r.default)(ed,2),ep=ef[0],eh=ef[1],em=k(I,eu),eg=(0,r.default)(em,2),ey=eg[0],e$=eg[1];I.x-=ey,I.y-=e$;var eC=d.points||[],ex=(0,r.default)(eC,2),eE=ex[0],eS=j(ex[1]),ek=j(eE),eO=O(I,eS),eT=O(R,ek),eI=(0,t.default)({},d),e_=eO.x-eT.x+ep,eF=eO.y-eT.y+eh,eP=td(e_,eF),eR=td(e_,eF,eo),eN=O(I,["t","l"]),eM=O(R,["t","l"]),eB=O(I,["b","r"]),eA=O(R,["b","r"]),ez=d.overflow||{},eL=ez.adjustX,eD=ez.adjustY,eH=ez.shiftX,eV=ez.shiftY,eW=function(e){return"boolean"==typeof e?e:e>=0};tf();var eU=eW(eD),eG=ek[0]===eS[0];if(eU&&"t"===ek[0]&&(h>ea.bottom||A.current.bt)){var eq=eF;eG?eq-=J-X:eq=eN.y-eA.y-eh;var eK=td(e_,eq),eX=td(e_,eq,eo);eK>eP||eK===eP&&(!et||eX>=eR)?(A.current.bt=!0,eF=eq,eh=-eh,eI.points=[T(ek,0),T(eS,0)]):A.current.bt=!1}if(eU&&"b"===ek[0]&&(peP||eY===eP&&(!et||eZ>=eR)?(A.current.tb=!0,eF=eQ,eh=-eh,eI.points=[T(ek,0),T(eS,0)]):A.current.tb=!1}var e0=eW(eL),e1=ek[1]===eS[1];if(e0&&"l"===ek[1]&&(g>ea.right||A.current.rl)){var e2=e_;e1?e2-=K-Q:e2=eN.x-eA.x-ep;var e4=td(e2,eF),e6=td(e2,eF,eo);e4>eP||e4===eP&&(!et||e6>=eR)?(A.current.rl=!0,e_=e2,ep=-ep,eI.points=[T(ek,1),T(eS,1)]):A.current.rl=!1}if(e0&&"r"===ek[1]&&(meP||e7===eP&&(!et||e5>=eR)?(A.current.lr=!0,e_=e3,ep=-ep,eI.points=[T(ek,1),T(eS,1)]):A.current.lr=!1}tf();var e9=!0===eH?0:eH;"number"==typeof e9&&(meo.right&&(e_-=g-eo.right-ep,I.x>eo.right-e9&&(e_+=I.x-eo.right+e9)));var e8=!0===eV?0:eV;"number"==typeof e8&&(peo.bottom&&(eF-=h-eo.bottom-eh,I.y>eo.bottom-e8&&(eF+=I.y-eo.bottom+e8)));var te=R.x+e_,tt=R.y+eF,tr=I.x,to=I.y,ta=Math.max(te,tr),ti=Math.min(te+K,tr+Q),tl=Math.max(tt,to),ts=Math.min(tt+J,to+X);null==ej||ej(eJ,eI);var tc=ei.right-R.x-(e_+R.width),tu=ei.bottom-R.y-(eF+R.height);1===el&&(e_=Math.floor(e_),tc=Math.floor(tc)),1===es&&(eF=Math.floor(eF),tu=Math.floor(tu)),N({ready:!0,offsetX:e_/el,offsetY:eF/es,offsetR:tc/el,offsetB:tu/es,arrowX:((ta+ti)/2-te)/el,arrowY:((tl+ts)/2-tt)/es,scaleX:el,scaleY:es,align:eI})}function td(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:en,o=R.x+e,n=R.y+t,a=Math.max(o,r.left),i=Math.max(n,r.top);return Math.max(0,(Math.min(o+K,r.right)-a)*(Math.min(n+J,r.bottom)-i))}function tf(){h=(p=R.y+eF)+J,g=(m=R.x+e_)+K}}}),L=function(){N(function(e){return(0,t.default)((0,t.default)({},e),{},{ready:!1})})},(0,d.default)(L,[ev]),(0,d.default)(function(){tn||L()},[tn]),[R.ready,R.offsetX,R.offsetY,R.offsetR,R.offsetB,R.arrowX,R.arrowY,R.scaleX,R.scaleY,R.align,function(){M.current+=1;var e=M.current;Promise.resolve().then(function(){M.current===e&&z()})}]),tk=(0,r.default)(tS,11),tj=tk[0],tO=tk[1],tT=tk[2],tI=tk[3],t_=tk[4],tF=tk[5],tP=tk[6],tR=tk[7],tN=tk[8],tM=tk[9],tB=tk[10],tA=(0,v.default)(eL,void 0===X?"hover":X,Q,Y),tz=(0,r.default)(tA,2),tL=tz[0],tD=tz[1],tH=tL.has("click"),tV=tD.has("click")||tD.has("contextMenu"),tW=(0,c.default)(function(){th||tB()});D=function(){ti.current&&eS&&tV&&td(!1)},(0,d.default)(function(){if(tn&&e0&&eJ){var e=$(e0),t=$(eJ),r=w(eJ),o=new Set([r].concat((0,I.default)(e),(0,I.default)(t)));function n(){tW(),D()}return o.forEach(function(e){e.addEventListener("scroll",n,{passive:!0})}),r.addEventListener("resize",n,{passive:!0}),tW(),function(){o.forEach(function(e){e.removeEventListener("scroll",n),r.removeEventListener("resize",n)})}}},[tn,e0,eJ]),(0,d.default)(function(){tW()},[tC,ev]),(0,d.default)(function(){tn&&!(null!=eb&&eb[ev])&&tW()},[JSON.stringify(ew)]);var tU=p.useMemo(function(){var e=function(e,t,r,o){for(var n=r.points,a=Object.keys(e),i=0;i0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0;return r?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}(null==(l=e[s])?void 0:l.points,n,o))return"".concat(t,"-placement-").concat(s)}return""}(eb,J,tM,eS);return(0,a.default)(e,null==ex?void 0:ex(tM))},[tM,ex,eb,J,eS]);p.useImperativeHandle(x,function(){return{nativeElement:e2.current,popupElement:eX.current,forceAlign:tW}});var tG=p.useState(0),tq=(0,r.default)(tG,2),tJ=tq[0],tK=tq[1],tX=p.useState(0),tQ=(0,r.default)(tX,2),tY=tQ[0],tZ=tQ[1],t0=function(){if(eC&&e0){var e=e0.getBoundingClientRect();tK(e.width),tZ(e.height)}};function t1(e,t,r,o){e7[e]=function(n){var a;null==o||o(n),td(t,r);for(var i=arguments.length,l=Array(i>1?i-1:0),s=1;s1?r-1:0),n=1;n1?r-1:0),n=1;n{"use strict";var t=e.i(552821),r=e.i(931067),o=e.i(209428),n=e.i(703923),a=e.i(707067),i=e.i(343794),l=e.i(271645),s={shiftX:64,adjustY:1},c={adjustX:1,shiftY:!0},u=[0,0],d={left:{points:["cr","cl"],overflow:c,offset:[-4,0],targetOffset:u},right:{points:["cl","cr"],overflow:c,offset:[4,0],targetOffset:u},top:{points:["bc","tc"],overflow:s,offset:[0,-4],targetOffset:u},bottom:{points:["tc","bc"],overflow:s,offset:[0,4],targetOffset:u},topLeft:{points:["bl","tl"],overflow:s,offset:[0,-4],targetOffset:u},leftTop:{points:["tr","tl"],overflow:c,offset:[-4,0],targetOffset:u},topRight:{points:["br","tr"],overflow:s,offset:[0,-4],targetOffset:u},rightTop:{points:["tl","tr"],overflow:c,offset:[4,0],targetOffset:u},bottomRight:{points:["tr","br"],overflow:s,offset:[0,4],targetOffset:u},rightBottom:{points:["bl","br"],overflow:c,offset:[4,0],targetOffset:u},bottomLeft:{points:["tl","bl"],overflow:s,offset:[0,4],targetOffset:u},leftBottom:{points:["br","bl"],overflow:c,offset:[-4,0],targetOffset:u}},f=e.i(981444),p=["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","motion","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer","overlayInnerStyle","arrowContent","overlay","id","showArrow","classNames","styles"];let h=(0,l.forwardRef)(function(e,s){var c,u,h,m=e.overlayClassName,g=e.trigger,v=e.mouseEnterDelay,y=e.mouseLeaveDelay,b=e.overlayStyle,w=e.prefixCls,$=void 0===w?"rc-tooltip":w,C=e.children,x=e.onVisibleChange,E=e.afterVisibleChange,S=e.transitionName,k=e.animation,j=e.motion,O=e.placement,T=e.align,I=e.destroyTooltipOnHide,_=e.defaultVisible,F=e.getTooltipContainer,P=e.overlayInnerStyle,R=(e.arrowContent,e.overlay),N=e.id,M=e.showArrow,B=e.classNames,A=e.styles,z=(0,n.default)(e,p),L=(0,f.default)(N),D=(0,l.useRef)(null);(0,l.useImperativeHandle)(s,function(){return D.current});var H=(0,o.default)({},z);return"visible"in e&&(H.popupVisible=e.visible),l.createElement(a.default,(0,r.default)({popupClassName:(0,i.default)(m,null==B?void 0:B.root),prefixCls:$,popup:function(){return l.createElement(t.default,{key:"content",prefixCls:$,id:L,bodyClassName:null==B?void 0:B.body,overlayInnerStyle:(0,o.default)((0,o.default)({},P),null==A?void 0:A.body)},R)},action:void 0===g?["hover"]:g,builtinPlacements:d,popupPlacement:void 0===O?"right":O,ref:D,popupAlign:void 0===T?{}:T,getPopupContainer:F,onPopupVisibleChange:x,afterPopupVisibleChange:E,popupTransitionName:S,popupAnimation:k,popupMotion:j,defaultPopupVisible:_,autoDestroy:void 0!==I&&I,mouseLeaveDelay:void 0===y?.1:y,popupStyle:(0,o.default)((0,o.default)({},b),null==A?void 0:A.root),mouseEnterDelay:void 0===v?0:v,arrow:void 0===M||M},H),(u=(null==(c=l.Children.only(C))?void 0:c.props)||{},h=(0,o.default)((0,o.default)({},u),{},{"aria-describedby":R?L:null}),l.cloneElement(C,h)))});e.s(["default",0,h],793154)},249616,e=>{"use strict";var t=e.i(271645),r=e.i(343794),o=e.i(876556),n=e.i(242064),a=e.i(517455);let i=(0,e.i(246422).genStyleHooks)(["Space","Compact"],e=>[(e=>{let{componentCls:t}=e;return{[t]:{display:"inline-flex","&-block":{display:"flex",width:"100%"},"&-vertical":{flexDirection:"column"},"&-rtl":{direction:"rtl"}}}})(e)],()=>({}),{resetStyle:!1});var l=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let s=t.createContext(null),c=e=>{let{children:r}=e,o=l(e,["children"]);return t.createElement(s.Provider,{value:t.useMemo(()=>o,[o])},r)};e.s(["NoCompactStyle",0,e=>{let{children:r}=e;return t.createElement(s.Provider,{value:null},r)},"default",0,e=>{let{getPrefixCls:u,direction:d}=t.useContext(n.ConfigContext),{size:f,direction:p,block:h,prefixCls:m,className:g,rootClassName:v,children:y}=e,b=l(e,["size","direction","block","prefixCls","className","rootClassName","children"]),w=(0,a.default)(e=>null!=f?f:e),$=u("space-compact",m),[C,x]=i($),E=(0,r.default)($,x,{[`${$}-rtl`]:"rtl"===d,[`${$}-block`]:h,[`${$}-vertical`]:"vertical"===p},g,v),S=t.useContext(s),k=(0,o.default)(y),j=t.useMemo(()=>k.map((e,r)=>{let o=(null==e?void 0:e.key)||`${$}-item-${r}`;return t.createElement(c,{key:o,compactSize:w,compactDirection:p,isFirstItem:0===r&&(!S||(null==S?void 0:S.isFirstItem)),isLastItem:r===k.length-1&&(!S||(null==S?void 0:S.isLastItem))},e)}),[k,S,p,w,$]);return 0===k.length?null:C(t.createElement("div",Object.assign({className:E},b),j))},"useCompactItemContext",0,(e,o)=>{let n=t.useContext(s),a=t.useMemo(()=>{if(!n)return"";let{compactDirection:t,isFirstItem:a,isLastItem:i}=n,l="vertical"===t?"-vertical-":"-";return(0,r.default)(`${e}-compact${l}item`,{[`${e}-compact${l}first-item`]:a,[`${e}-compact${l}last-item`]:i,[`${e}-compact${l}item-rtl`]:"rtl"===o})},[e,o,n]);return{compactSize:null==n?void 0:n.compactSize,compactDirection:null==n?void 0:n.compactDirection,compactItemClassnames:a}}],249616)},617206,e=>{"use strict";var t=e.i(271645),r=e.i(62139),o=e.i(249616);e.s(["default",0,e=>{let{space:n,form:a,children:i}=e;if(null==i)return null;let l=i;return a&&(l=t.default.createElement(r.NoFormStyle,{override:!0,status:!0},l)),n&&(l=t.default.createElement(o.NoCompactStyle,null,l)),l}])},805984,307358,320560,e=>{"use strict";e.i(296059);var t=e.i(915654);let r=(e,r,o)=>{let{sizePopupArrow:n,arrowPolygon:a,arrowPath:i,arrowShadowWidth:l,borderRadiusXS:s,calc:c}=e;return{pointerEvents:"none",width:n,height:n,overflow:"hidden","&::before":{position:"absolute",bottom:0,insetInlineStart:0,width:n,height:c(n).div(2).equal(),background:r,clipPath:{_multi_value_:!0,value:[a,i]},content:'""'},"&::after":{content:'""',position:"absolute",width:l,height:l,bottom:0,insetInline:0,margin:"auto",borderRadius:{_skip_check_:!0,value:`0 0 ${(0,t.unit)(s)} 0`},transform:"translateY(50%) rotate(-135deg)",boxShadow:o,zIndex:0,background:"transparent"}}};function o(e){let{contentRadius:t,limitVerticalRadius:r}=e,o=t>12?t+2:12;return{arrowOffsetHorizontal:o,arrowOffsetVertical:r?8:o}}e.s(["genRoundedArrow",0,r,"getArrowToken",0,function(e){let{sizePopupArrow:t,borderRadiusXS:r,borderRadiusOuter:o}=e,n=t/2,a=o/Math.sqrt(2),i=n-o*(1-1/Math.sqrt(2)),l=n-1/Math.sqrt(2)*r,s=o*(Math.sqrt(2)-1)+1/Math.sqrt(2)*r,c=n*Math.sqrt(2)+o*(Math.sqrt(2)-2),u=o*(Math.sqrt(2)-1),d=`polygon(${u}px 100%, 50% ${u}px, ${2*n-u}px 100%, ${u}px 100%)`;return{arrowShadowWidth:c,arrowPath:`path('M 0 ${n} A ${o} ${o} 0 0 0 ${a} ${i} L ${l} ${s} A ${r} ${r} 0 0 1 ${2*n-l} ${s} L ${2*n-a} ${i} A ${o} ${o} 0 0 0 ${2*n-0} ${n} Z')`,arrowPolygon:d}}],307358),e.s(["MAX_VERTICAL_CONTENT_RADIUS",0,8,"default",0,function(e,o,n){var a,i,l,s,c,u,d,f;let{componentCls:p,boxShadowPopoverArrow:h,arrowOffsetVertical:m,arrowOffsetHorizontal:g}=e,{arrowDistance:v=0,arrowPlacement:y={left:!0,right:!0,top:!0,bottom:!0}}=n||{};return{[p]:Object.assign(Object.assign(Object.assign(Object.assign({[`${p}-arrow`]:[Object.assign(Object.assign({position:"absolute",zIndex:1,display:"block"},r(e,o,h)),{"&:before":{background:o}})]},(a=!!y.top,i={[`&-placement-top > ${p}-arrow,&-placement-topLeft > ${p}-arrow,&-placement-topRight > ${p}-arrow`]:{bottom:v,transform:"translateY(100%) rotate(180deg)"},[`&-placement-top > ${p}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(100%) rotate(180deg)"},"&-placement-topLeft":{"--arrow-offset-horizontal":g,[`> ${p}-arrow`]:{left:{_skip_check_:!0,value:g}}},"&-placement-topRight":{"--arrow-offset-horizontal":`calc(100% - ${(0,t.unit)(g)})`,[`> ${p}-arrow`]:{right:{_skip_check_:!0,value:g}}}},a?i:{})),(l=!!y.bottom,s={[`&-placement-bottom > ${p}-arrow,&-placement-bottomLeft > ${p}-arrow,&-placement-bottomRight > ${p}-arrow`]:{top:v,transform:"translateY(-100%)"},[`&-placement-bottom > ${p}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(-100%)"},"&-placement-bottomLeft":{"--arrow-offset-horizontal":g,[`> ${p}-arrow`]:{left:{_skip_check_:!0,value:g}}},"&-placement-bottomRight":{"--arrow-offset-horizontal":`calc(100% - ${(0,t.unit)(g)})`,[`> ${p}-arrow`]:{right:{_skip_check_:!0,value:g}}}},l?s:{})),(c=!!y.left,u={[`&-placement-left > ${p}-arrow,&-placement-leftTop > ${p}-arrow,&-placement-leftBottom > ${p}-arrow`]:{right:{_skip_check_:!0,value:v},transform:"translateX(100%) rotate(90deg)"},[`&-placement-left > ${p}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(100%) rotate(90deg)"},[`&-placement-leftTop > ${p}-arrow`]:{top:m},[`&-placement-leftBottom > ${p}-arrow`]:{bottom:m}},c?u:{})),(d=!!y.right,f={[`&-placement-right > ${p}-arrow,&-placement-rightTop > ${p}-arrow,&-placement-rightBottom > ${p}-arrow`]:{left:{_skip_check_:!0,value:v},transform:"translateX(-100%) rotate(-90deg)"},[`&-placement-right > ${p}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(-100%) rotate(-90deg)"},[`&-placement-rightTop > ${p}-arrow`]:{top:m},[`&-placement-rightBottom > ${p}-arrow`]:{bottom:m}},d?f:{}))}},"getArrowOffsetToken",0,o],320560);let n={left:{points:["cr","cl"]},right:{points:["cl","cr"]},top:{points:["bc","tc"]},bottom:{points:["tc","bc"]},topLeft:{points:["bl","tl"]},leftTop:{points:["tr","tl"]},topRight:{points:["br","tr"]},rightTop:{points:["tl","tr"]},bottomRight:{points:["tr","br"]},rightBottom:{points:["bl","br"]},bottomLeft:{points:["tl","bl"]},leftBottom:{points:["br","bl"]}},a={topLeft:{points:["bl","tc"]},leftTop:{points:["tr","cl"]},topRight:{points:["br","tc"]},rightTop:{points:["tl","cr"]},bottomRight:{points:["tr","bc"]},rightBottom:{points:["bl","cr"]},bottomLeft:{points:["tl","bc"]},leftBottom:{points:["br","cl"]}},i=new Set(["topLeft","topRight","bottomLeft","bottomRight","leftTop","leftBottom","rightTop","rightBottom"]);e.s(["default",0,function(e){let{arrowWidth:t,autoAdjustOverflow:r,arrowPointAtCenter:l,offset:s,borderRadius:c,visibleFirst:u}=e,d=t/2,f={},p=o({contentRadius:c,limitVerticalRadius:!0});return Object.keys(n).forEach(e=>{let o=Object.assign(Object.assign({},l&&a[e]||n[e]),{offset:[0,0],dynamicInset:!0});switch(f[e]=o,i.has(e)&&(o.autoArrow=!1),e){case"top":case"topLeft":case"topRight":o.offset[1]=-d-s;break;case"bottom":case"bottomLeft":case"bottomRight":o.offset[1]=d+s;break;case"left":case"leftTop":case"leftBottom":o.offset[0]=-d-s;break;case"right":case"rightTop":case"rightBottom":o.offset[0]=d+s}if(l)switch(e){case"topLeft":case"bottomLeft":o.offset[0]=-p.arrowOffsetHorizontal-d;break;case"topRight":case"bottomRight":o.offset[0]=p.arrowOffsetHorizontal+d;break;case"leftTop":case"rightTop":o.offset[1]=-(2*p.arrowOffsetHorizontal)+d;break;case"leftBottom":case"rightBottom":o.offset[1]=2*p.arrowOffsetHorizontal-d}o.overflow=function(e,t,r,o){if(!1===o)return{adjustX:!1,adjustY:!1};let n={};switch(e){case"top":case"bottom":n.shiftX=2*t.arrowOffsetHorizontal+r,n.shiftY=!0,n.adjustY=!0;break;case"left":case"right":n.shiftY=2*t.arrowOffsetVertical+r,n.shiftX=!0,n.adjustX=!0}let a=Object.assign(Object.assign({},n),o&&"object"==typeof o?o:{});return a.shiftX||(a.adjustX=!0),a.shiftY||(a.adjustY=!0),a}(e,p,t,r),u&&(o.htmlRegion="visibleFirst")}),f}],805984)},880476,e=>{"use strict";var t=e.i(552821);e.s(["Popup",()=>t.default])},617933,e=>{"use strict";e.s(["PresetColors",0,["blue","purple","cyan","green","magenta","pink","red","orange","yellow","volcano","geekblue","lime","gold"]])},403541,e=>{"use strict";var t=e.i(617933);e.s(["genPresetColor",0,function(e,r){return t.PresetColors.reduce((t,o)=>{let n=e[`${o}1`],a=e[`${o}3`],i=e[`${o}6`],l=e[`${o}7`];return Object.assign(Object.assign({},t),r(o,{lightColor:n,lightBorderColor:a,darkColor:i,textColor:l}))},{})}],403541)},57667,e=>{"use strict";e.i(296059);var t=e.i(915654),r=e.i(183293),o=e.i(717356),n=e.i(320560),a=e.i(307358),i=e.i(403541),l=e.i(246422),s=e.i(838378);let c=e=>Object.assign(Object.assign({zIndexPopup:e.zIndexPopupBase+70},(0,n.getArrowOffsetToken)({contentRadius:e.borderRadius,limitVerticalRadius:!0})),(0,a.getArrowToken)((0,s.mergeToken)(e,{borderRadiusOuter:Math.min(e.borderRadiusOuter,4)})));e.s(["default",0,(e,a=!0)=>(0,l.genStyleHooks)("Tooltip",e=>{let{borderRadius:a,colorTextLightSolid:l,colorBgSpotlight:c}=e;return[(e=>{let{calc:o,componentCls:a,tooltipMaxWidth:l,tooltipColor:s,tooltipBg:c,tooltipBorderRadius:u,zIndexPopup:d,controlHeight:f,boxShadowSecondary:p,paddingSM:h,paddingXS:m,arrowOffsetHorizontal:g,sizePopupArrow:v}=e,y=o(u).add(v).add(g).equal(),b=o(u).mul(2).add(v).equal();return[{[a]:Object.assign(Object.assign(Object.assign(Object.assign({},(0,r.resetComponent)(e)),{position:"absolute",zIndex:d,display:"block",width:"max-content",maxWidth:l,visibility:"visible","--valid-offset-x":"var(--arrow-offset-horizontal, var(--arrow-x))",transformOrigin:"var(--valid-offset-x, 50%) var(--arrow-y, 50%)","&-hidden":{display:"none"},"--antd-arrow-background-color":c,[`${a}-inner`]:{minWidth:b,minHeight:f,padding:`${(0,t.unit)(e.calc(h).div(2).equal())} ${(0,t.unit)(m)}`,color:`var(--ant-tooltip-color, ${s})`,textAlign:"start",textDecoration:"none",wordWrap:"break-word",backgroundColor:c,borderRadius:u,boxShadow:p,boxSizing:"border-box"},"&-placement-topLeft,&-placement-topRight,&-placement-bottomLeft,&-placement-bottomRight":{minWidth:y},"&-placement-left,&-placement-leftTop,&-placement-leftBottom,&-placement-right,&-placement-rightTop,&-placement-rightBottom":{[`${a}-inner`]:{borderRadius:e.min(u,n.MAX_VERTICAL_CONTENT_RADIUS)}},[`${a}-content`]:{position:"relative"}}),(0,i.genPresetColor)(e,(e,{darkColor:t})=>({[`&${a}-${e}`]:{[`${a}-inner`]:{backgroundColor:t},[`${a}-arrow`]:{"--antd-arrow-background-color":t}}}))),{"&-rtl":{direction:"rtl"}})},(0,n.default)(e,"var(--antd-arrow-background-color)"),{[`${a}-pure`]:{position:"relative",maxWidth:"none",margin:e.sizePopupArrow}}]})((0,s.mergeToken)(e,{tooltipMaxWidth:250,tooltipColor:l,tooltipBorderRadius:a,tooltipBg:c})),(0,o.initZoomMotion)(e,"zoom-big-fast")]},c,{resetStyle:!1,injectStyle:a})(e)])},702779,e=>{"use strict";var t=e.i(8211),r=e.i(617933);let o=r.PresetColors.map(e=>`${e}-inverse`),n=["success","processing","error","default","warning"];e.s(["isPresetColor",0,function(e,n=!0){return n?[].concat((0,t.default)(o),(0,t.default)(r.PresetColors)).includes(e):r.PresetColors.includes(e)},"isPresetStatusColor",0,function(e){return n.includes(e)}])},571070,814690,162464,509808,e=>{"use strict";var t=e.i(278409),r=e.i(233848);e.i(247167),e.i(931067);var o=e.i(211577),n=e.i(392221),a=e.i(271645),i=e.i(209428),l=e.i(868917),s=e.i(674813),c=e.i(703923),u=e.i(410160),d=e.i(135551),f=["b"],p=["v"],h=function(e){return Math.round(Number(e||0))},m=function(e){if(e instanceof d.FastColor)return e;if(e&&"object"===(0,u.default)(e)&&"h"in e&&"b"in e){var t=e.b,r=(0,c.default)(e,f);return(0,i.default)((0,i.default)({},r),{},{v:t})}return"string"==typeof e&&/hsb/.test(e)?e.replace(/hsb/,"hsv"):e},g=function(e){(0,l.default)(n,e);var o=(0,s.default)(n);function n(e){return(0,t.default)(this,n),o.call(this,m(e))}return(0,r.default)(n,[{key:"toHsbString",value:function(){var e=this.toHsb(),t=h(100*e.s),r=h(100*e.b),o=h(e.h),n=e.a,a="hsb(".concat(o,", ").concat(t,"%, ").concat(r,"%)"),i="hsba(".concat(o,", ").concat(t,"%, ").concat(r,"%, ").concat(n.toFixed(2*(0!==n)),")");return 1===n?a:i}},{key:"toHsb",value:function(){var e=this.toHsv(),t=e.v,r=(0,c.default)(e,p);return(0,i.default)((0,i.default)({},r),{},{b:t,a:this.a})}}]),n}(d.FastColor);e.s(["Color",0,g],814690);var v=function(e){return e instanceof g?e:new g(e)};v("#1677ff");var y=e.i(343794);e.s(["default",0,function(e){var t=e.color,r=e.prefixCls,o=e.className,n=e.style,i=e.onClick,l="".concat(r,"-color-block");return a.default.createElement("div",{className:(0,y.default)(l,o),style:n,onClick:i},a.default.createElement("div",{className:"".concat(l,"-inner"),style:{background:t}}))}],162464);e.i(62664);e.i(697539);e.i(914949);e.s([],509808);let b=(0,r.default)(function e(r){var o;if((0,t.default)(this,e),this.cleared=!1,r instanceof e){this.metaColor=r.metaColor.clone(),this.colors=null==(o=r.colors)?void 0:o.map(t=>({color:new e(t.color),percent:t.percent})),this.cleared=r.cleared;return}let n=Array.isArray(r);n&&r.length?(this.colors=r.map(({color:t,percent:r})=>({color:new e(t),percent:r})),this.metaColor=new g(this.colors[0].color.metaColor)):this.metaColor=new g(n?"":r),r&&(!n||this.colors)||(this.metaColor=this.metaColor.setA(0),this.cleared=!0)},[{key:"toHsb",value:function(){return this.metaColor.toHsb()}},{key:"toHsbString",value:function(){return this.metaColor.toHsbString()}},{key:"toHex",value:function(){var e,t;return e=this.toHexString(),t=this.metaColor.a<1,e&&(null==e?void 0:e.replace(/[^\w/]/g,"").slice(0,t?8:6))||""}},{key:"toHexString",value:function(){return this.metaColor.toHexString()}},{key:"toRgb",value:function(){return this.metaColor.toRgb()}},{key:"toRgbString",value:function(){return this.metaColor.toRgbString()}},{key:"isGradient",value:function(){return!!this.colors&&!this.cleared}},{key:"getColors",value:function(){return this.colors||[{color:this,percent:0}]}},{key:"toCssString",value:function(){let{colors:e}=this;if(e){let t=e.map(e=>`${e.color.toRgbString()} ${e.percent}%`).join(", ");return`linear-gradient(90deg, ${t})`}return this.metaColor.toRgbString()}},{key:"equals",value:function(e){return!!e&&this.isGradient()===e.isGradient()&&(this.isGradient()?this.colors.length===e.colors.length&&this.colors.every((t,r)=>{let o=e.colors[r];return t.percent===o.percent&&t.color.equals(o.color)}):this.toHexString()===e.toHexString())}}]);e.s(["AggregationColor",0,b],571070)},656449,e=>{"use strict";e.i(8211),e.i(509808),e.i(814690);var t=e.i(571070);e.s(["generateColor",0,e=>e instanceof t.AggregationColor?e:new t.AggregationColor(e)])},491816,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(793154),n=e.i(914949),a=e.i(617206),i=e.i(122767),l=e.i(613541),s=e.i(805984),c=e.i(763731),u=e.i(747656),d=e.i(340010),f=e.i(242064),p=e.i(104458),h=e.i(880476),m=e.i(57667),g=e.i(702779),v=e.i(656449);function y(e,t){let o=(0,g.isPresetColor)(t),n=(0,r.default)({[`${e}-${t}`]:t&&o}),a={},i={},l=(0,v.generateColor)(t).toRgb(),s=(.299*l.r+.587*l.g+.114*l.b)/255;return t&&!o&&(a.background=t,a["--ant-tooltip-color"]=s<.5?"#FFF":"#000",i["--antd-arrow-background-color"]=t),{className:n,overlayStyle:a,arrowStyle:i}}var b=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let w=t.forwardRef((e,h)=>{var g,v;let{prefixCls:w,openClassName:$,getTooltipContainer:C,color:x,overlayInnerStyle:E,children:S,afterOpenChange:k,afterVisibleChange:j,destroyTooltipOnHide:O,destroyOnHidden:T,arrow:I=!0,title:_,overlay:F,builtinPlacements:P,arrowPointAtCenter:R=!1,autoAdjustOverflow:N=!0,motion:M,getPopupContainer:B,placement:A="top",mouseEnterDelay:z=.1,mouseLeaveDelay:L=.1,overlayStyle:D,rootClassName:H,overlayClassName:V,styles:W,classNames:U}=e,G=b(e,["prefixCls","openClassName","getTooltipContainer","color","overlayInnerStyle","children","afterOpenChange","afterVisibleChange","destroyTooltipOnHide","destroyOnHidden","arrow","title","overlay","builtinPlacements","arrowPointAtCenter","autoAdjustOverflow","motion","getPopupContainer","placement","mouseEnterDelay","mouseLeaveDelay","overlayStyle","rootClassName","overlayClassName","styles","classNames"]),q=!!I,[,J]=(0,p.useToken)(),{getPopupContainer:K,getPrefixCls:X,direction:Q,className:Y,style:Z,classNames:ee,styles:et}=(0,f.useComponentConfig)("tooltip"),er=(0,u.devUseWarning)("Tooltip"),eo=t.useRef(null),en=()=>{var e;null==(e=eo.current)||e.forceAlign()};t.useImperativeHandle(h,()=>{var e,t;return{forceAlign:en,forcePopupAlign:()=>{er.deprecated(!1,"forcePopupAlign","forceAlign"),en()},nativeElement:null==(e=eo.current)?void 0:e.nativeElement,popupElement:null==(t=eo.current)?void 0:t.popupElement}});let[ea,ei]=(0,n.default)(!1,{value:null!=(g=e.open)?g:e.visible,defaultValue:null!=(v=e.defaultOpen)?v:e.defaultVisible}),el=!_&&!F&&0!==_,es=t.useMemo(()=>{var e,t;let r=R;return"object"==typeof I&&(r=null!=(t=null!=(e=I.pointAtCenter)?e:I.arrowPointAtCenter)?t:R),P||(0,s.default)({arrowPointAtCenter:r,autoAdjustOverflow:N,arrowWidth:q?J.sizePopupArrow:0,borderRadius:J.borderRadius,offset:J.marginXXS,visibleFirst:!0})},[R,I,P,J]),ec=t.useMemo(()=>0===_?_:F||_||"",[F,_]),eu=t.createElement(a.default,{space:!0},"function"==typeof ec?ec():ec),ed=X("tooltip",w),ef=X(),ep=e["data-popover-inject"],eh=ea;"open"in e||"visible"in e||!el||(eh=!1);let em=t.isValidElement(S)&&!(0,c.isFragment)(S)?S:t.createElement("span",null,S),eg=em.props,ev=eg.className&&"string"!=typeof eg.className?eg.className:(0,r.default)(eg.className,$||`${ed}-open`),[ey,eb,ew]=(0,m.default)(ed,!ep),e$=y(ed,x),eC=e$.arrowStyle,ex=(0,r.default)(V,{[`${ed}-rtl`]:"rtl"===Q},e$.className,H,eb,ew,Y,ee.root,null==U?void 0:U.root),eE=(0,r.default)(ee.body,null==U?void 0:U.body),[eS,ek]=(0,i.useZIndex)("Tooltip",G.zIndex),ej=t.createElement(o.default,Object.assign({},G,{zIndex:eS,showArrow:q,placement:A,mouseEnterDelay:z,mouseLeaveDelay:L,prefixCls:ed,classNames:{root:ex,body:eE},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},eC),et.root),Z),D),null==W?void 0:W.root),body:Object.assign(Object.assign(Object.assign(Object.assign({},et.body),E),null==W?void 0:W.body),e$.overlayStyle)},getTooltipContainer:B||C||K,ref:eo,builtinPlacements:es,overlay:eu,visible:eh,onVisibleChange:t=>{var r,o;ei(!el&&t),el||(null==(r=e.onOpenChange)||r.call(e,t),null==(o=e.onVisibleChange)||o.call(e,t))},afterVisibleChange:null!=k?k:j,arrowContent:t.createElement("span",{className:`${ed}-arrow-content`}),motion:{motionName:(0,l.getTransitionName)(ef,"zoom-big-fast",e.transitionName),motionDeadline:1e3},destroyTooltipOnHide:null!=T?T:!!O}),eh?(0,c.cloneElement)(em,{className:ev}):em);return ey(t.createElement(d.default.Provider,{value:ek},ej))});w._InternalPanelDoNotUseOrYouWillBeFired=e=>{let{prefixCls:o,className:n,placement:a="top",title:i,color:l,overlayInnerStyle:s}=e,{getPrefixCls:c}=t.useContext(f.ConfigContext),u=c("tooltip",o),[d,p,g]=(0,m.default)(u),v=y(u,l),b=v.arrowStyle,w=Object.assign(Object.assign({},s),v.overlayStyle),$=(0,r.default)(p,g,u,`${u}-pure`,`${u}-placement-${a}`,n,v.className);return d(t.createElement("div",{className:$,style:b},t.createElement("div",{className:`${u}-arrow`}),t.createElement(h.Popup,Object.assign({},e,{className:p,prefixCls:u,overlayInnerStyle:w}),i)))},e.s(["default",0,w],491816)},808613,905536,e=>{"use strict";e.i(247167);var t=e.i(62139),r=e.i(782074),o=e.i(56117),n=e.i(411412),a=e.i(923624),i=e.i(8211),l=e.i(271645),s=e.i(343794);e.i(495347);var c=e.i(420422),u=e.i(355268),d=e.i(220489),f=e.i(290967),p=e.i(611935),h=e.i(763731),m=e.i(747656),g=e.i(242064),v=e.i(321883),y=e.i(522228),b=e.i(893872),w=e.i(857034),$=e.i(606836),C=e.i(908709),x=e.i(531880),E=e.i(606262),S=e.i(174428),k=e.i(529681),j=e.i(264042),O=e.i(292169),T=e.i(684024),I=e.i(995144),_=e.i(131757),F=e.i(408850),P=e.i(87414),R=e.i(491816),N=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let M=({prefixCls:e,label:r,htmlFor:o,labelCol:n,labelAlign:a,colon:i,required:c,requiredMark:u,tooltip:d,vertical:f})=>{var p;let h,[m]=(0,F.useLocale)("Form"),{labelAlign:g,labelCol:v,labelWrap:y,colon:b}=l.useContext(t.FormContext);if(!r)return null;let w=n||v||{},$=`${e}-item-label`,C=(0,s.default)($,"left"===(a||g)&&`${$}-left`,w.className,{[`${$}-wrap`]:!!y}),x=r,E=!0===i||!1!==b&&!1!==i;E&&!f&&"string"==typeof r&&r.trim()&&(x=r.replace(/[:|:]\s*$/,""));let S=(0,I.default)(d);if(S){let{icon:t=l.createElement(T.default,null)}=S,r=N(S,["icon"]),o=l.createElement(R.default,Object.assign({},r),l.cloneElement(t,{className:`${e}-item-tooltip`,title:"",onClick:e=>{e.preventDefault()},tabIndex:null}));x=l.createElement(l.Fragment,null,x,o)}let k="optional"===u,j="function"==typeof u;j?x=u(x,{required:!!c}):k&&!c&&(x=l.createElement(l.Fragment,null,x,l.createElement("span",{className:`${e}-item-optional`,title:""},(null==m?void 0:m.optional)||(null==(p=P.default.Form)?void 0:p.optional)))),!1===u?h="hidden":(k||j)&&(h="optional");let O=(0,s.default)({[`${e}-item-required`]:c,[`${e}-item-required-mark-${h}`]:h,[`${e}-item-no-colon`]:!E});return l.createElement(_.default,Object.assign({},w,{className:C}),l.createElement("label",{htmlFor:o,className:O,title:"string"==typeof r?r:""},x))};var B=e.i(830919),A=e.i(201072),z=e.i(726289),L=e.i(562901),D=e.i(739295);let H={success:A.default,warning:L.default,error:z.default,validating:D.default};function V({children:e,errors:r,warnings:o,hasFeedback:n,validateStatus:a,prefixCls:i,meta:c,noStyle:u,name:d}){let f=`${i}-item`,{feedbackIcons:p}=l.useContext(t.FormContext),h=(0,x.getStatus)(r,o,c,null,!!n,a),{isFormItemInput:m,status:g,hasFeedback:v,feedbackIcon:y,name:b}=l.useContext(t.FormItemInputContext),w=l.useMemo(()=>{var e;let t;if(n){let a=!0!==n&&n.icons||p,i=h&&(null==(e=null==a?void 0:a({status:h,errors:r,warnings:o}))?void 0:e[h]),c=h?H[h]:null;t=!1!==i&&c?l.createElement("span",{className:(0,s.default)(`${f}-feedback-icon`,`${f}-feedback-icon-${h}`)},i||l.createElement(c,null)):null}let a={status:h||"",errors:r,warnings:o,hasFeedback:!!n,feedbackIcon:t,isFormItemInput:!0,name:d};return u&&(a.status=(null!=h?h:g)||"",a.isFormItemInput=m,a.hasFeedback=!!(null!=n?n:v),a.feedbackIcon=void 0!==n?a.feedbackIcon:y,a.name=null!=d?d:b),a},[h,n,u,m,g]);return l.createElement(t.FormItemInputContext.Provider,{value:w},e)}var W=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};function U(e){let{prefixCls:r,className:o,rootClassName:n,style:a,help:i,errors:c,warnings:u,validateStatus:d,meta:f,hasFeedback:p,hidden:h,children:m,fieldId:g,required:v,isRequired:y,onSubItemMetaChange:b,layout:w,name:$}=e,C=W(e,["prefixCls","className","rootClassName","style","help","errors","warnings","validateStatus","meta","hasFeedback","hidden","children","fieldId","required","isRequired","onSubItemMetaChange","layout","name"]),T=`${r}-item`,{requiredMark:I,layout:_}=l.useContext(t.FormContext),F=w||_,P="vertical"===F,R=l.useRef(null),N=(0,B.default)(c),A=(0,B.default)(u),z=null!=i,L=!!(z||c.length||u.length),D=!!R.current&&(0,E.default)(R.current),[H,U]=l.useState(null);(0,S.default)(()=>{L&&R.current&&U(Number.parseInt(getComputedStyle(R.current).marginBottom,10))},[L,D]);let G=((e=!1)=>{let t=e?N:f.errors,r=e?A:f.warnings;return(0,x.getStatus)(t,r,f,"",!!p,d)})(),q=(0,s.default)(T,o,n,{[`${T}-with-help`]:z||N.length||A.length,[`${T}-has-feedback`]:G&&p,[`${T}-has-success`]:"success"===G,[`${T}-has-warning`]:"warning"===G,[`${T}-has-error`]:"error"===G,[`${T}-is-validating`]:"validating"===G,[`${T}-hidden`]:h,[`${T}-${F}`]:F});return l.createElement("div",{className:q,style:a,ref:R},l.createElement(j.Row,Object.assign({className:`${T}-row`},(0,k.default)(C,["_internalItemRender","colon","dependencies","extra","fieldKey","getValueFromEvent","getValueProps","htmlFor","id","initialValue","isListField","label","labelAlign","labelCol","labelWrap","messageVariables","name","normalize","noStyle","preserve","requiredMark","rules","shouldUpdate","trigger","tooltip","validateFirst","validateTrigger","valuePropName","wrapperCol","validateDebounce"])),l.createElement(M,Object.assign({htmlFor:g},e,{requiredMark:I,required:null!=v?v:y,prefixCls:r,vertical:P})),l.createElement(O.default,Object.assign({},e,f,{errors:N,warnings:A,prefixCls:r,status:G,help:i,marginBottom:H,onErrorVisibleChanged:e=>{e||U(null)}}),l.createElement(t.NoStyleItemContext.Provider,{value:b},l.createElement(V,{prefixCls:r,meta:f,errors:f.errors,warnings:f.warnings,hasFeedback:p,validateStatus:G,name:$},m)))),!!H&&l.createElement("div",{className:`${T}-margin-offset`,style:{marginBottom:-H}}))}let G=l.memo(({children:e})=>e,(e,t)=>{var r,o;let n,a;return r=e.control,o=t.control,n=Object.keys(r),a=Object.keys(o),n.length===a.length&&n.every(e=>{let t=r[e],n=o[e];return t===n||"function"==typeof t||"function"==typeof n})&&e.update===t.update&&e.childProps.length===t.childProps.length&&e.childProps.every((e,r)=>e===t.childProps[r])});function q(){return{errors:[],warnings:[],touched:!1,validating:!1,name:[],validated:!1}}let J=function(e){let{name:r,noStyle:o,className:n,dependencies:a,prefixCls:b,shouldUpdate:E,rules:S,children:k,required:j,label:O,messageVariables:T,trigger:I="onChange",validateTrigger:_,hidden:F,help:P,layout:R}=e,{getPrefixCls:N}=l.useContext(g.ConfigContext),{name:M}=l.useContext(t.FormContext),B=(0,y.default)(k),A="function"==typeof B,z=l.useContext(t.NoStyleItemContext),{validateTrigger:L}=l.useContext(u.FieldContext),D=void 0!==_?_:L,H=null!=r,W=N("form",b),J=(0,v.default)(W),[K,X,Q]=(0,C.default)(W,J);(0,m.devUseWarning)("Form.Item");let Y=l.useContext(d.ListContext),Z=l.useRef(null),[ee,et]=(0,w.default)({}),[er,eo]=(0,f.default)(()=>q()),en=(e,t)=>{et(r=>{let o=Object.assign({},r),n=[].concat((0,i.default)(e.name.slice(0,-1)),(0,i.default)(t)).join("__SPLIT__");return e.destroy?delete o[n]:o[n]=e,o})},[ea,ei]=l.useMemo(()=>{let e=(0,i.default)(er.errors),t=(0,i.default)(er.warnings);return Object.values(ee).forEach(r=>{e.push.apply(e,(0,i.default)(r.errors||[])),t.push.apply(t,(0,i.default)(r.warnings||[]))}),[e,t]},[ee,er.errors,er.warnings]),el=(0,$.default)();function es(t,a,i){return o&&!F?l.createElement(V,{prefixCls:W,hasFeedback:e.hasFeedback,validateStatus:e.validateStatus,meta:er,errors:ea,warnings:ei,noStyle:!0,name:r},t):l.createElement(U,Object.assign({key:"row"},e,{className:(0,s.default)(n,Q,J,X),prefixCls:W,fieldId:a,isRequired:i,errors:ea,warnings:ei,meta:er,onSubItemMetaChange:en,layout:R,name:r}),t)}if(!H&&!A&&!a)return K(es(B));let ec={};return"string"==typeof O?ec.label=O:r&&(ec.label=String(r)),T&&(ec=Object.assign(Object.assign({},ec),T)),K(l.createElement(c.Field,Object.assign({},e,{messageVariables:ec,trigger:I,validateTrigger:D,onMetaChange:e=>{let t=null==Y?void 0:Y.getKey(e.name);if(eo(e.destroy?q():e,!0),o&&!1!==P&&z){let r=e.name;if(e.destroy)r=Z.current||r;else if(void 0!==t){let[e,o]=t;Z.current=r=[e].concat((0,i.default)(o))}z(e,r)}}}),(t,o,n)=>{let s=(0,x.toArray)(r).length&&o?o.name:[],c=(0,x.getFieldId)(s,M),u=void 0!==j?j:!!(null==S?void 0:S.some(e=>{if(e&&"object"==typeof e&&e.required&&!e.warningOnly)return!0;if("function"==typeof e){let t=e(n);return(null==t?void 0:t.required)&&!(null==t?void 0:t.warningOnly)}return!1})),d=Object.assign({},t),f=null;if(Array.isArray(B)&&H)f=B;else if(A&&(!(E||a)||H));else if(!a||A||H)if(l.isValidElement(B)){let t=Object.assign(Object.assign({},B.props),d);if(t.id||(t.id=c),P||ea.length>0||ei.length>0||e.extra){let r=[];(P||ea.length>0)&&r.push(`${c}_help`),e.extra&&r.push(`${c}_extra`),t["aria-describedby"]=r.join(" ")}ea.length>0&&(t["aria-invalid"]="true"),u&&(t["aria-required"]="true"),(0,p.supportRef)(B)&&(t.ref=el(s,B)),new Set([].concat((0,i.default)((0,x.toArray)(I)),(0,i.default)((0,x.toArray)(D)))).forEach(e=>{t[e]=(...t)=>{var r,o,n;null==(r=d[e])||r.call.apply(r,[d].concat(t)),null==(n=(o=B.props)[e])||n.call.apply(n,[o].concat(t))}});let r=[t["aria-required"],t["aria-invalid"],t["aria-describedby"]];f=l.createElement(G,{control:d,update:B,childProps:r},(0,h.cloneElement)(B,t))}else f=A&&(E||a)&&!H?B(n):B;return es(f,c,u)}))};J.useStatus=b.default,e.s(["default",0,J],905536);var K=e.i(53058),X=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let Q=o.default;Q.Item=J,Q.List=e=>{var{prefixCls:r,children:o}=e,n=X(e,["prefixCls","children"]);let{getPrefixCls:a}=l.useContext(g.ConfigContext),i=a("form",r),s=l.useMemo(()=>({prefixCls:i,status:"error"}),[i]);return l.createElement(K.List,Object.assign({},n),(e,r,n)=>l.createElement(t.FormItemPrefixContext.Provider,{value:s},o(e.map(e=>Object.assign(Object.assign({},e),{fieldKey:e.key})),r,{errors:n.errors,warnings:n.warnings})))},Q.ErrorList=r.default,Q.useForm=n.useForm,Q.useFormInstance=function(){let{form:e}=l.useContext(t.FormContext);return e},Q.useWatch=a.useWatch,Q.Provider=t.FormProvider,Q.create=()=>{},e.s(["Form",0,Q],808613)},372409,e=>{"use strict";e.s(["genCompactItemStyle",0,function(e,t={focus:!0}){let{componentCls:r}=e,{componentCls:o}=t,n=o||r,a=`${n}-compact`;return{[a]:Object.assign(Object.assign({},function(e,t,r,o){let{focusElCls:n,focus:a,borderElCls:i}=r,l=i?"> *":"",s=["hover",a?"focus":null,"active"].filter(Boolean).map(e=>`&:${e} ${l}`).join(",");return{[`&-item:not(${t}-last-item)`]:{marginInlineEnd:e.calc(e.lineWidth).mul(-1).equal()},[`&-item:not(${o}-status-success)`]:{zIndex:2},"&-item":Object.assign(Object.assign({[s]:{zIndex:3}},n?{[`&${n}`]:{zIndex:3}}:{}),{[`&[disabled] ${l}`]:{zIndex:0}})}}(e,a,t,n)),function(e,t,r){let{borderElCls:o}=r,n=o?`> ${o}`:"";return{[`&-item:not(${t}-first-item):not(${t}-last-item) ${n}`]:{borderRadius:0},[`&-item:not(${t}-last-item)${t}-first-item`]:{[`& ${n}, &${e}-sm ${n}, &${e}-lg ${n}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&-item:not(${t}-first-item)${t}-last-item`]:{[`& ${n}, &${e}-sm ${n}, &${e}-lg ${n}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}}}(n,a,t))}}])},349942,517458,889943,e=>{"use strict";e.i(296059);var t=e.i(915654),r=e.i(183293),o=e.i(372409),n=e.i(246422),a=e.i(838378);function i(e){return(0,a.mergeToken)(e,{inputAffixPadding:e.paddingXXS})}let l=e=>{let{controlHeight:t,fontSize:r,lineHeight:o,lineWidth:n,controlHeightSM:a,controlHeightLG:i,fontSizeLG:l,lineHeightLG:s,paddingSM:c,controlPaddingHorizontalSM:u,controlPaddingHorizontal:d,colorFillAlter:f,colorPrimaryHover:p,colorPrimary:h,controlOutlineWidth:m,controlOutline:g,colorErrorOutline:v,colorWarningOutline:y,colorBgContainer:b,inputFontSize:w,inputFontSizeLG:$,inputFontSizeSM:C}=e,x=w||r,E=C||x,S=$||l;return{paddingBlock:Math.max(Math.round((t-x*o)/2*10)/10-n,0),paddingBlockSM:Math.max(Math.round((a-E*o)/2*10)/10-n,0),paddingBlockLG:Math.max(Math.ceil((i-S*s)/2*10)/10-n,0),paddingInline:c-n,paddingInlineSM:u-n,paddingInlineLG:d-n,addonBg:f,activeBorderColor:h,hoverBorderColor:p,activeShadow:`0 0 0 ${m}px ${g}`,errorActiveShadow:`0 0 0 ${m}px ${v}`,warningActiveShadow:`0 0 0 ${m}px ${y}`,hoverBg:b,activeBg:b,inputFontSize:x,inputFontSizeLG:S,inputFontSizeSM:E}};e.s(["initComponentToken",0,l,"initInputToken",0,i],517458);let s=e=>{let t;return{color:e.colorTextDisabled,backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,boxShadow:"none",cursor:"not-allowed",opacity:1,"input[disabled], textarea[disabled]":{cursor:"not-allowed"},"&:hover:not([disabled])":Object.assign({},{borderColor:(t=(0,a.mergeToken)(e,{hoverBorderColor:e.colorBorder,hoverBg:e.colorBgContainerDisabled})).hoverBorderColor,backgroundColor:t.hoverBg})}},c=(e,t)=>({background:e.colorBgContainer,borderWidth:e.lineWidth,borderStyle:e.lineType,borderColor:t.borderColor,"&:hover":{borderColor:t.hoverBorderColor,backgroundColor:e.hoverBg},"&:focus, &:focus-within":{borderColor:t.activeBorderColor,boxShadow:t.activeShadow,outline:0,backgroundColor:e.activeBg}}),u=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},c(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}}),[`&${e.componentCls}-status-${t.status}${e.componentCls}-disabled`]:{borderColor:t.borderColor}}),d=(e,t)=>({"&-outlined":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},c(e,{borderColor:e.colorBorder,hoverBorderColor:e.hoverBorderColor,activeBorderColor:e.activeBorderColor,activeShadow:e.activeShadow})),{[`&${e.componentCls}-disabled, &[disabled]`]:Object.assign({},s(e))}),u(e,{status:"error",borderColor:e.colorError,hoverBorderColor:e.colorErrorBorderHover,activeBorderColor:e.colorError,activeShadow:e.errorActiveShadow,affixColor:e.colorError})),u(e,{status:"warning",borderColor:e.colorWarning,hoverBorderColor:e.colorWarningBorderHover,activeBorderColor:e.colorWarning,activeShadow:e.warningActiveShadow,affixColor:e.colorWarning})),t)}),f=(e,t)=>({[`&${e.componentCls}-group-wrapper-status-${t.status}`]:{[`${e.componentCls}-group-addon`]:{borderColor:t.addonBorderColor,color:t.addonColor}}}),p=e=>({"&-outlined":Object.assign(Object.assign(Object.assign({[`${e.componentCls}-group`]:{"&-addon":{background:e.addonBg,border:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},"&-addon:first-child":{borderInlineEnd:0},"&-addon:last-child":{borderInlineStart:0}}},f(e,{status:"error",addonBorderColor:e.colorError,addonColor:e.colorErrorText})),f(e,{status:"warning",addonBorderColor:e.colorWarning,addonColor:e.colorWarningText})),{[`&${e.componentCls}-group-wrapper-disabled`]:{[`${e.componentCls}-group-addon`]:Object.assign({},s(e))}})}),h=(e,t)=>{let{componentCls:r}=e;return{"&-borderless":Object.assign({background:"transparent",border:"none","&:focus, &:focus-within":{outline:"none"},[`&${r}-disabled, &[disabled]`]:{color:e.colorTextDisabled,cursor:"not-allowed"},[`&${r}-status-error`]:{"&, & input, & textarea":{color:e.colorError}},[`&${r}-status-warning`]:{"&, & input, & textarea":{color:e.colorWarning}}},t)}},m=(e,t)=>{var r;return{background:t.bg,borderWidth:e.lineWidth,borderStyle:e.lineType,borderColor:"transparent","input&, & input, textarea&, & textarea":{color:null!=(r=null==t?void 0:t.inputColor)?r:"unset"},"&:hover":{background:t.hoverBg},"&:focus, &:focus-within":{outline:0,borderColor:t.activeBorderColor,backgroundColor:e.activeBg}}},g=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},m(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}})}),v=(e,t)=>({"&-filled":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},m(e,{bg:e.colorFillTertiary,hoverBg:e.colorFillSecondary,activeBorderColor:e.activeBorderColor})),{[`&${e.componentCls}-disabled, &[disabled]`]:Object.assign({},s(e))}),g(e,{status:"error",bg:e.colorErrorBg,hoverBg:e.colorErrorBgHover,activeBorderColor:e.colorError,inputColor:e.colorErrorText,affixColor:e.colorError})),g(e,{status:"warning",bg:e.colorWarningBg,hoverBg:e.colorWarningBgHover,activeBorderColor:e.colorWarning,inputColor:e.colorWarningText,affixColor:e.colorWarning})),t)}),y=(e,t)=>({[`&${e.componentCls}-group-wrapper-status-${t.status}`]:{[`${e.componentCls}-group-addon`]:{background:t.addonBg,color:t.addonColor}}}),b=e=>({"&-filled":Object.assign(Object.assign(Object.assign({[`${e.componentCls}-group-addon`]:{background:e.colorFillTertiary,"&:last-child":{position:"static"}}},y(e,{status:"error",addonBg:e.colorErrorBg,addonColor:e.colorErrorText})),y(e,{status:"warning",addonBg:e.colorWarningBg,addonColor:e.colorWarningText})),{[`&${e.componentCls}-group-wrapper-disabled`]:{[`${e.componentCls}-group`]:{"&-addon":{background:e.colorFillTertiary,color:e.colorTextDisabled},"&-addon:first-child":{borderInlineStart:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderTop:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderBottom:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},"&-addon:last-child":{borderInlineEnd:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderTop:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderBottom:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`}}}})}),w=(e,r)=>({background:e.colorBgContainer,borderWidth:`${(0,t.unit)(e.lineWidth)} 0`,borderStyle:`${e.lineType} none`,borderColor:`transparent transparent ${r.borderColor} transparent`,borderRadius:0,"&:hover":{borderColor:`transparent transparent ${r.hoverBorderColor} transparent`,backgroundColor:e.hoverBg},"&:focus, &:focus-within":{borderColor:`transparent transparent ${r.activeBorderColor} transparent`,outline:0,backgroundColor:e.activeBg}}),$=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},w(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}}),[`&${e.componentCls}-status-${t.status}${e.componentCls}-disabled`]:{borderColor:`transparent transparent ${t.borderColor} transparent`}}),C=(e,t)=>({"&-underlined":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},w(e,{borderColor:e.colorBorder,hoverBorderColor:e.hoverBorderColor,activeBorderColor:e.activeBorderColor,activeShadow:e.activeShadow})),{[`&${e.componentCls}-disabled, &[disabled]`]:{color:e.colorTextDisabled,boxShadow:"none",cursor:"not-allowed","&:hover":{borderColor:`transparent transparent ${e.colorBorder} transparent`}},"input[disabled], textarea[disabled]":{cursor:"not-allowed"}}),$(e,{status:"error",borderColor:e.colorError,hoverBorderColor:e.colorErrorBorderHover,activeBorderColor:e.colorError,activeShadow:e.errorActiveShadow,affixColor:e.colorError})),$(e,{status:"warning",borderColor:e.colorWarning,hoverBorderColor:e.colorWarningBorderHover,activeBorderColor:e.colorWarning,activeShadow:e.warningActiveShadow,affixColor:e.colorWarning})),t)});e.s(["genBaseOutlinedStyle",0,c,"genBorderlessStyle",0,h,"genDisabledStyle",0,s,"genFilledGroupStyle",0,b,"genFilledStyle",0,v,"genOutlinedGroupStyle",0,p,"genOutlinedStyle",0,d,"genUnderlinedStyle",0,C],889943);let x=e=>({"&::-moz-placeholder":{opacity:1},"&::placeholder":{color:e,userSelect:"none"},"&:placeholder-shown":{textOverflow:"ellipsis"}}),E=e=>{let{paddingBlockLG:r,lineHeightLG:o,borderRadiusLG:n,paddingInlineLG:a}=e;return{padding:`${(0,t.unit)(r)} ${(0,t.unit)(a)}`,fontSize:e.inputFontSizeLG,lineHeight:o,borderRadius:n}},S=e=>({padding:`${(0,t.unit)(e.paddingBlockSM)} ${(0,t.unit)(e.paddingInlineSM)}`,fontSize:e.inputFontSizeSM,borderRadius:e.borderRadiusSM}),k=e=>Object.assign(Object.assign({position:"relative",display:"inline-block",width:"100%",minWidth:0,padding:`${(0,t.unit)(e.paddingBlock)} ${(0,t.unit)(e.paddingInline)}`,color:e.colorText,fontSize:e.inputFontSize,lineHeight:e.lineHeight,borderRadius:e.borderRadius,transition:`all ${e.motionDurationMid}`},x(e.colorTextPlaceholder)),{"&-lg":Object.assign({},E(e)),"&-sm":Object.assign({},S(e)),"&-rtl, &-textarea-rtl":{direction:"rtl"}}),j=e=>{let{componentCls:o,antCls:n}=e;return{position:"relative",display:"table",width:"100%",borderCollapse:"separate",borderSpacing:0,"&[class*='col-']":{paddingInlineEnd:e.paddingXS,"&:last-child":{paddingInlineEnd:0}},[`&-lg ${o}, &-lg > ${o}-group-addon`]:Object.assign({},E(e)),[`&-sm ${o}, &-sm > ${o}-group-addon`]:Object.assign({},S(e)),[`&-lg ${n}-select-single ${n}-select-selector`]:{height:e.controlHeightLG},[`&-sm ${n}-select-single ${n}-select-selector`]:{height:e.controlHeightSM},[`> ${o}`]:{display:"table-cell","&:not(:first-child):not(:last-child)":{borderRadius:0}},[`${o}-group`]:{"&-addon, &-wrap":{display:"table-cell",width:1,whiteSpace:"nowrap",verticalAlign:"middle","&:not(:first-child):not(:last-child)":{borderRadius:0}},"&-wrap > *":{display:"block !important"},"&-addon":{position:"relative",padding:`0 ${(0,t.unit)(e.paddingInline)}`,color:e.colorText,fontWeight:"normal",fontSize:e.inputFontSize,textAlign:"center",borderRadius:e.borderRadius,transition:`all ${e.motionDurationSlow}`,lineHeight:1,[`${n}-select`]:{margin:`${(0,t.unit)(e.calc(e.paddingBlock).add(1).mul(-1).equal())} ${(0,t.unit)(e.calc(e.paddingInline).mul(-1).equal())}`,[`&${n}-select-single:not(${n}-select-customize-input):not(${n}-pagination-size-changer)`]:{[`${n}-select-selector`]:{backgroundColor:"inherit",border:`${(0,t.unit)(e.lineWidth)} ${e.lineType} transparent`,boxShadow:"none"}}},[`${n}-cascader-picker`]:{margin:`-9px ${(0,t.unit)(e.calc(e.paddingInline).mul(-1).equal())}`,backgroundColor:"transparent",[`${n}-cascader-input`]:{textAlign:"start",border:0,boxShadow:"none"}}}},[o]:{width:"100%",marginBottom:0,textAlign:"inherit","&:focus":{zIndex:1,borderInlineEndWidth:1},"&:hover":{zIndex:1,borderInlineEndWidth:1,[`${o}-search-with-button &`]:{zIndex:0}}},[`> ${o}:first-child, ${o}-group-addon:first-child`]:{borderStartEndRadius:0,borderEndEndRadius:0,[`${n}-select ${n}-select-selector`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${o}-affix-wrapper`]:{[`&:not(:first-child) ${o}`]:{borderStartStartRadius:0,borderEndStartRadius:0},[`&:not(:last-child) ${o}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${o}:last-child, ${o}-group-addon:last-child`]:{borderStartStartRadius:0,borderEndStartRadius:0,[`${n}-select ${n}-select-selector`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`${o}-affix-wrapper`]:{"&:not(:last-child)":{borderStartEndRadius:0,borderEndEndRadius:0,[`${o}-search &`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius}},[`&:not(:first-child), ${o}-search &:not(:first-child)`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&${o}-group-compact`]:Object.assign(Object.assign({display:"block"},(0,r.clearFix)()),{[`${o}-group-addon, ${o}-group-wrap, > ${o}`]:{"&:not(:first-child):not(:last-child)":{borderInlineEndWidth:e.lineWidth,"&:hover, &:focus":{zIndex:1}}},"& > *":{display:"inline-flex",float:"none",verticalAlign:"top",borderRadius:0},[` - & > ${o}-affix-wrapper, - & > ${o}-number-affix-wrapper, - & > ${n}-picker-range - `]:{display:"inline-flex"},"& > *:not(:last-child)":{marginInlineEnd:e.calc(e.lineWidth).mul(-1).equal(),borderInlineEndWidth:e.lineWidth},[o]:{float:"none"},[`& > ${n}-select > ${n}-select-selector, - & > ${n}-select-auto-complete ${o}, - & > ${n}-cascader-picker ${o}, - & > ${o}-group-wrapper ${o}`]:{borderInlineEndWidth:e.lineWidth,borderRadius:0,"&:hover, &:focus":{zIndex:1}},[`& > ${n}-select-focused`]:{zIndex:1},[`& > ${n}-select > ${n}-select-arrow`]:{zIndex:1},[`& > *:first-child, - & > ${n}-select:first-child > ${n}-select-selector, - & > ${n}-select-auto-complete:first-child ${o}, - & > ${n}-cascader-picker:first-child ${o}`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius},[`& > *:last-child, - & > ${n}-select:last-child > ${n}-select-selector, - & > ${n}-cascader-picker:last-child ${o}, - & > ${n}-cascader-picker-focused:last-child ${o}`]:{borderInlineEndWidth:e.lineWidth,borderStartEndRadius:e.borderRadius,borderEndEndRadius:e.borderRadius},[`& > ${n}-select-auto-complete ${o}`]:{verticalAlign:"top"},[`${o}-group-wrapper + ${o}-group-wrapper`]:{marginInlineStart:e.calc(e.lineWidth).mul(-1).equal(),[`${o}-affix-wrapper`]:{borderRadius:0}},[`${o}-group-wrapper:not(:last-child)`]:{[`&${o}-search > ${o}-group`]:{[`& > ${o}-group-addon > ${o}-search-button`]:{borderRadius:0},[`& > ${o}`]:{borderStartStartRadius:e.borderRadius,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:e.borderRadius}}}})}},O=(0,n.genStyleHooks)(["Input","Shared"],e=>{let o=(0,a.mergeToken)(e,i(e));return[(e=>{let{componentCls:t,controlHeightSM:o,lineWidth:n,calc:a}=e,i=a(o).sub(a(n).mul(2)).sub(16).div(2).equal();return{[t]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},(0,r.resetComponent)(e)),k(e)),d(e)),v(e)),h(e)),C(e)),{'&[type="color"]':{height:e.controlHeight,[`&${t}-lg`]:{height:e.controlHeightLG},[`&${t}-sm`]:{height:o,paddingTop:i,paddingBottom:i}},'&[type="search"]::-webkit-search-cancel-button, &[type="search"]::-webkit-search-decoration':{appearance:"none"}})}})(o),(e=>{let{componentCls:r,inputAffixPadding:o,colorTextDescription:n,motionDurationSlow:a,colorIcon:i,colorIconHover:l,iconCls:s}=e,c=`${r}-affix-wrapper`,u=`${r}-affix-wrapper-disabled`;return{[c]:Object.assign(Object.assign(Object.assign(Object.assign({},k(e)),{display:"inline-flex",[`&:not(${r}-disabled):hover`]:{zIndex:1,[`${r}-search-with-button &`]:{zIndex:0}},"&-focused, &:focus":{zIndex:1},[`> input${r}`]:{padding:0},[`> input${r}, > textarea${r}`]:{fontSize:"inherit",border:"none",borderRadius:0,outline:"none",background:"transparent",color:"inherit","&::-ms-reveal":{display:"none"},"&:focus":{boxShadow:"none !important"}},"&::before":{display:"inline-block",width:0,visibility:"hidden",content:'"\\a0"'},[r]:{"&-prefix, &-suffix":{display:"flex",flex:"none",alignItems:"center","> *:not(:last-child)":{marginInlineEnd:e.paddingXS}},"&-show-count-suffix":{color:n,direction:"ltr"},"&-show-count-has-suffix":{marginInlineEnd:e.paddingXXS},"&-prefix":{marginInlineEnd:o},"&-suffix":{marginInlineStart:o}}}),(e=>{let{componentCls:r}=e;return{[`${r}-clear-icon`]:{margin:0,padding:0,lineHeight:0,color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,verticalAlign:-1,cursor:"pointer",transition:`color ${e.motionDurationSlow}`,border:"none",outline:"none",backgroundColor:"transparent","&:hover":{color:e.colorIcon},"&:active":{color:e.colorText},"&-hidden":{visibility:"hidden"},"&-has-suffix":{margin:`0 ${(0,t.unit)(e.inputAffixPadding)}`}}}})(e)),{[`${s}${r}-password-icon`]:{color:i,cursor:"pointer",transition:`all ${a}`,"&:hover":{color:l}}}),[`${r}-underlined`]:{borderRadius:0},[u]:{[`${s}${r}-password-icon`]:{color:i,cursor:"not-allowed","&:hover":{color:i}}}}})(o)]},l,{resetFont:!1}),T=(0,n.genStyleHooks)(["Input","Component"],e=>{let t=(0,a.mergeToken)(e,i(e));return[(e=>{let{componentCls:t,borderRadiusLG:o,borderRadiusSM:n}=e;return{[`${t}-group`]:Object.assign(Object.assign(Object.assign({},(0,r.resetComponent)(e)),j(e)),{"&-rtl":{direction:"rtl"},"&-wrapper":Object.assign(Object.assign(Object.assign({display:"inline-block",width:"100%",textAlign:"start",verticalAlign:"top","&-rtl":{direction:"rtl"},"&-lg":{[`${t}-group-addon`]:{borderRadius:o,fontSize:e.inputFontSizeLG}},"&-sm":{[`${t}-group-addon`]:{borderRadius:n}}},p(e)),b(e)),{[`&:not(${t}-compact-first-item):not(${t}-compact-last-item)${t}-compact-item`]:{[`${t}, ${t}-group-addon`]:{borderRadius:0}},[`&:not(${t}-compact-last-item)${t}-compact-first-item`]:{[`${t}, ${t}-group-addon`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:not(${t}-compact-first-item)${t}-compact-last-item`]:{[`${t}, ${t}-group-addon`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&:not(${t}-compact-last-item)${t}-compact-item`]:{[`${t}-affix-wrapper`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:not(${t}-compact-first-item)${t}-compact-item`]:{[`${t}-affix-wrapper`]:{borderStartStartRadius:0,borderEndStartRadius:0}}})})}})(t),(e=>{let{componentCls:t,antCls:r}=e,o=`${t}-search`;return{[o]:{[t]:{"&:not([disabled]):hover, &:not([disabled]):focus":{[`+ ${t}-group-addon ${o}-button:not(${r}-btn-color-primary):not(${r}-btn-variant-text)`]:{borderInlineStartColor:e.colorPrimaryHover}}},[`${t}-affix-wrapper`]:{height:e.controlHeight,borderRadius:0},[`${t}-lg`]:{lineHeight:e.calc(e.lineHeightLG).sub(2e-4).equal()},[`> ${t}-group`]:{[`> ${t}-group-addon:last-child`]:{insetInlineStart:-1,padding:0,border:0,[`${o}-button`]:{marginInlineEnd:-1,borderStartStartRadius:0,borderEndStartRadius:0,boxShadow:"none"},[`${o}-button:not(${r}-btn-color-primary)`]:{color:e.colorTextDescription,"&:not([disabled]):hover":{color:e.colorPrimaryHover},"&:active":{color:e.colorPrimaryActive},[`&${r}-btn-loading::before`]:{inset:0}}}},[`${o}-button`]:{height:e.controlHeight,"&:hover, &:focus":{zIndex:1}},"&-large":{[`${t}-affix-wrapper, ${o}-button`]:{height:e.controlHeightLG}},"&-small":{[`${t}-affix-wrapper, ${o}-button`]:{height:e.controlHeightSM}},"&-rtl":{direction:"rtl"},[`&${t}-compact-item`]:{[`&:not(${t}-compact-last-item)`]:{[`${t}-group-addon`]:{[`${t}-search-button`]:{marginInlineEnd:e.calc(e.lineWidth).mul(-1).equal(),borderRadius:0}}},[`&:not(${t}-compact-first-item)`]:{[`${t},${t}-affix-wrapper`]:{borderRadius:0}},[`> ${t}-group-addon ${t}-search-button, - > ${t}, - ${t}-affix-wrapper`]:{"&:hover, &:focus, &:active":{zIndex:2}},[`> ${t}-affix-wrapper-focused`]:{zIndex:2}}}}})(t),(e=>{let{componentCls:t}=e;return{[`${t}-out-of-range`]:{[`&, & input, & textarea, ${t}-show-count-suffix, ${t}-data-count`]:{color:e.colorError}}}})(t),(0,o.genCompactItemStyle)(t)]},l,{resetFont:!1});e.s(["default",0,T,"genBasicInputStyle",0,k,"genInputGroupStyle",0,j,"genInputSmallStyle",0,S,"genPlaceholderStyle",0,x,"useSharedStyle",0,O],349942)},831357,e=>{"use strict";var t=e.i(271645),r=e.i(343794),o=e.i(242064),n=e.i(62139),a=e.i(349942);e.s(["default",0,e=>{let{getPrefixCls:i,direction:l}=(0,t.useContext)(o.ConfigContext),{prefixCls:s,className:c}=e,u=i("input-group",s),d=i("input"),[f,p,h]=(0,a.default)(d),m=(0,r.default)(u,h,{[`${u}-lg`]:"large"===e.size,[`${u}-sm`]:"small"===e.size,[`${u}-compact`]:e.compact,[`${u}-rtl`]:"rtl"===l},p,c),g=(0,t.useContext)(n.FormItemInputContext),v=(0,t.useMemo)(()=>Object.assign(Object.assign({},g),{isFormItemInput:!1}),[g]);return f(t.createElement("span",{className:m,style:e.style,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,onFocus:e.onFocus,onBlur:e.onBlur},t.createElement(n.FormItemInputContext.Provider,{value:v},e.children)))}])},175636,131299,367397,874460,e=>{"use strict";var t=e.i(209428),r=e.i(931067),o=e.i(211577),n=e.i(410160),a=e.i(343794),i=e.i(271645);function l(e){return!!(e.addonBefore||e.addonAfter)}function s(e){return!!(e.prefix||e.suffix||e.allowClear)}function c(e,t,r){var o=t.cloneNode(!0),n=Object.create(e,{target:{value:o},currentTarget:{value:o}});return o.value=r,"number"==typeof t.selectionStart&&"number"==typeof t.selectionEnd&&(o.selectionStart=t.selectionStart,o.selectionEnd=t.selectionEnd),o.setSelectionRange=function(){t.setSelectionRange.apply(t,arguments)},n}function u(e,t,r,o){if(r){var n=t;if("click"===t.type)return void r(n=c(t,e,""));if("file"!==e.type&&void 0!==o)return void r(n=c(t,e,o));r(n)}}function d(e,t){if(e){e.focus(t);var r=(t||{}).cursor;if(r){var o=e.value.length;switch(r){case"start":e.setSelectionRange(0,0);break;case"end":e.setSelectionRange(o,o);break;default:e.setSelectionRange(0,o)}}}}e.s(["hasAddon",0,l,"hasPrefixSuffix",0,s,"resolveOnChange",0,u,"triggerFocus",0,d],131299);var f=i.default.forwardRef(function(e,c){var u,d,f,p=e.inputElement,h=e.children,m=e.prefixCls,g=e.prefix,v=e.suffix,y=e.addonBefore,b=e.addonAfter,w=e.className,$=e.style,C=e.disabled,x=e.readOnly,E=e.focused,S=e.triggerFocus,k=e.allowClear,j=e.value,O=e.handleReset,T=e.hidden,I=e.classes,_=e.classNames,F=e.dataAttrs,P=e.styles,R=e.components,N=e.onClear,M=null!=h?h:p,B=(null==R?void 0:R.affixWrapper)||"span",A=(null==R?void 0:R.groupWrapper)||"span",z=(null==R?void 0:R.wrapper)||"span",L=(null==R?void 0:R.groupAddon)||"span",D=(0,i.useRef)(null),H=s(e),V=(0,i.cloneElement)(M,{value:j,className:(0,a.default)(null==(u=M.props)?void 0:u.className,!H&&(null==_?void 0:_.variant))||null}),W=(0,i.useRef)(null);if(i.default.useImperativeHandle(c,function(){return{nativeElement:W.current||D.current}}),H){var U=null;if(k){var G=!C&&!x&&j,q="".concat(m,"-clear-icon"),J="object"===(0,n.default)(k)&&null!=k&&k.clearIcon?k.clearIcon:"✖";U=i.default.createElement("button",{type:"button",tabIndex:-1,onClick:function(e){null==O||O(e),null==N||N()},onMouseDown:function(e){return e.preventDefault()},className:(0,a.default)(q,(0,o.default)((0,o.default)({},"".concat(q,"-hidden"),!G),"".concat(q,"-has-suffix"),!!v))},J)}var K="".concat(m,"-affix-wrapper"),X=(0,a.default)(K,(0,o.default)((0,o.default)((0,o.default)((0,o.default)((0,o.default)({},"".concat(m,"-disabled"),C),"".concat(K,"-disabled"),C),"".concat(K,"-focused"),E),"".concat(K,"-readonly"),x),"".concat(K,"-input-with-clear-btn"),v&&k&&j),null==I?void 0:I.affixWrapper,null==_?void 0:_.affixWrapper,null==_?void 0:_.variant),Q=(v||k)&&i.default.createElement("span",{className:(0,a.default)("".concat(m,"-suffix"),null==_?void 0:_.suffix),style:null==P?void 0:P.suffix},U,v);V=i.default.createElement(B,(0,r.default)({className:X,style:null==P?void 0:P.affixWrapper,onClick:function(e){var t;null!=(t=D.current)&&t.contains(e.target)&&(null==S||S())}},null==F?void 0:F.affixWrapper,{ref:D}),g&&i.default.createElement("span",{className:(0,a.default)("".concat(m,"-prefix"),null==_?void 0:_.prefix),style:null==P?void 0:P.prefix},g),V,Q)}if(l(e)){var Y="".concat(m,"-group"),Z="".concat(Y,"-addon"),ee="".concat(Y,"-wrapper"),et=(0,a.default)("".concat(m,"-wrapper"),Y,null==I?void 0:I.wrapper,null==_?void 0:_.wrapper),er=(0,a.default)(ee,(0,o.default)({},"".concat(ee,"-disabled"),C),null==I?void 0:I.group,null==_?void 0:_.groupWrapper);V=i.default.createElement(A,{className:er,ref:W},i.default.createElement(z,{className:et},y&&i.default.createElement(L,{className:Z},y),V,b&&i.default.createElement(L,{className:Z},b)))}return i.default.cloneElement(V,{className:(0,a.default)(null==(d=V.props)?void 0:d.className,w)||null,style:(0,t.default)((0,t.default)({},null==(f=V.props)?void 0:f.style),$),hidden:T})});e.s(["default",0,f],367397);var p=e.i(8211),h=e.i(392221),m=e.i(703923),g=e.i(914949),v=e.i(529681),y=["show"];function b(e,r){return i.useMemo(function(){var o={};r&&(o.show="object"===(0,n.default)(r)&&r.formatter?r.formatter:!!r);var a=o=(0,t.default)((0,t.default)({},o),e),i=a.show,l=(0,m.default)(a,y);return(0,t.default)((0,t.default)({},l),{},{show:!!i,showFormatter:"function"==typeof i?i:void 0,strategy:l.strategy||function(e){return e.length}})},[e,r])}e.s(["default",0,b],874460);var w=["autoComplete","onChange","onFocus","onBlur","onPressEnter","onKeyDown","onKeyUp","prefixCls","disabled","htmlSize","className","maxLength","suffix","showCount","count","type","classes","classNames","styles","onCompositionStart","onCompositionEnd"],$=(0,i.forwardRef)(function(e,n){var l,s=e.autoComplete,c=e.onChange,y=e.onFocus,$=e.onBlur,C=e.onPressEnter,x=e.onKeyDown,E=e.onKeyUp,S=e.prefixCls,k=void 0===S?"rc-input":S,j=e.disabled,O=e.htmlSize,T=e.className,I=e.maxLength,_=e.suffix,F=e.showCount,P=e.count,R=e.type,N=e.classes,M=e.classNames,B=e.styles,A=e.onCompositionStart,z=e.onCompositionEnd,L=(0,m.default)(e,w),D=(0,i.useState)(!1),H=(0,h.default)(D,2),V=H[0],W=H[1],U=(0,i.useRef)(!1),G=(0,i.useRef)(!1),q=(0,i.useRef)(null),J=(0,i.useRef)(null),K=function(e){q.current&&d(q.current,e)},X=(0,g.default)(e.defaultValue,{value:e.value}),Q=(0,h.default)(X,2),Y=Q[0],Z=Q[1],ee=null==Y?"":String(Y),et=(0,i.useState)(null),er=(0,h.default)(et,2),eo=er[0],en=er[1],ea=b(P,F),ei=ea.max||I,el=ea.strategy(ee),es=!!ei&&el>ei;(0,i.useImperativeHandle)(n,function(){var e;return{focus:K,blur:function(){var e;null==(e=q.current)||e.blur()},setSelectionRange:function(e,t,r){var o;null==(o=q.current)||o.setSelectionRange(e,t,r)},select:function(){var e;null==(e=q.current)||e.select()},input:q.current,nativeElement:(null==(e=J.current)?void 0:e.nativeElement)||q.current}}),(0,i.useEffect)(function(){G.current&&(G.current=!1),W(function(e){return(!e||!j)&&e})},[j]);var ec=function(e,t,r){var o,n,a=t;if(!U.current&&ea.exceedFormatter&&ea.max&&ea.strategy(t)>ea.max)a=ea.exceedFormatter(t,{max:ea.max}),t!==a&&en([(null==(o=q.current)?void 0:o.selectionStart)||0,(null==(n=q.current)?void 0:n.selectionEnd)||0]);else if("compositionEnd"===r.source)return;Z(a),q.current&&u(q.current,e,c,a)};(0,i.useEffect)(function(){if(eo){var e;null==(e=q.current)||e.setSelectionRange.apply(e,(0,p.default)(eo))}},[eo]);var eu=es&&"".concat(k,"-out-of-range");return i.default.createElement(f,(0,r.default)({},L,{prefixCls:k,className:(0,a.default)(T,eu),handleReset:function(e){Z(""),K(),q.current&&u(q.current,e,c)},value:ee,focused:V,triggerFocus:K,suffix:function(){var e=Number(ei)>0;if(_||ea.show){var r=ea.showFormatter?ea.showFormatter({value:ee,count:el,maxLength:ei}):"".concat(el).concat(e?" / ".concat(ei):"");return i.default.createElement(i.default.Fragment,null,ea.show&&i.default.createElement("span",{className:(0,a.default)("".concat(k,"-show-count-suffix"),(0,o.default)({},"".concat(k,"-show-count-has-suffix"),!!_),null==M?void 0:M.count),style:(0,t.default)({},null==B?void 0:B.count)},r),_)}return null}(),disabled:j,classes:N,classNames:M,styles:B,ref:J}),(l=(0,v.default)(e,["prefixCls","onPressEnter","addonBefore","addonAfter","prefix","suffix","allowClear","defaultValue","showCount","count","classes","htmlSize","styles","classNames","onClear"]),i.default.createElement("input",(0,r.default)({autoComplete:s},l,{onChange:function(e){ec(e,e.target.value,{source:"change"})},onFocus:function(e){W(!0),null==y||y(e)},onBlur:function(e){G.current&&(G.current=!1),W(!1),null==$||$(e)},onKeyDown:function(e){C&&"Enter"===e.key&&!G.current&&(G.current=!0,C(e)),null==x||x(e)},onKeyUp:function(e){"Enter"===e.key&&(G.current=!1),null==E||E(e)},className:(0,a.default)(k,(0,o.default)({},"".concat(k,"-disabled"),j),null==M?void 0:M.input),style:null==B?void 0:B.input,ref:q,size:O,type:void 0===R?"text":R,onCompositionStart:function(e){U.current=!0,null==A||A(e)},onCompositionEnd:function(e){U.current=!1,ec(e,e.currentTarget.value,{source:"compositionEnd"}),null==z||z(e)}}))))});e.s(["default",0,$],175636)},330683,e=>{"use strict";var t=e.i(271645),r=e.i(726289);e.s(["default",0,e=>{let o;return"object"==typeof e&&(null==e?void 0:e.clearIcon)?o=e:e&&(o={clearIcon:t.default.createElement(r.default,null)}),o}])},52956,e=>{"use strict";var t=e.i(343794);e.s(["getMergedStatus",0,(e,t)=>t||e,"getStatusClassNames",0,function(e,r,o){return(0,t.default)({[`${e}-status-success`]:"success"===r,[`${e}-status-warning`]:"warning"===r,[`${e}-status-error`]:"error"===r,[`${e}-status-validating`]:"validating"===r,[`${e}-has-feedback`]:o})}])},792812,e=>{"use strict";var t=e.i(271645),r=e.i(242064),o=e.i(62139);e.s(["default",0,(e,n,a)=>{var i,l;let s,{variant:c,[e]:u}=t.useContext(r.ConfigContext),d=t.useContext(o.VariantContext),f=null==u?void 0:u.variant;s=void 0!==n?n:!1===a?"borderless":null!=(l=null!=(i=null!=d?d:f)?i:c)?l:"outlined";let p=r.Variants.includes(s);return[s,p]}])},90635,545719,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(175636);e.i(131299);var n=e.i(611935),a=e.i(617206),i=e.i(330683),l=e.i(52956),s=e.i(242064),c=e.i(937328),u=e.i(321883),d=e.i(517455),f=e.i(62139),p=e.i(792812),h=e.i(249616);function m(e,r){let o=(0,t.useRef)([]),n=()=>{o.current.push(setTimeout(()=>{var t,r,o,n;(null==(t=e.current)?void 0:t.input)&&(null==(r=e.current)?void 0:r.input.getAttribute("type"))==="password"&&(null==(o=e.current)?void 0:o.input.hasAttribute("value"))&&(null==(n=e.current)||n.input.removeAttribute("value"))}))};return(0,t.useEffect)(()=>(r&&n(),()=>o.current.forEach(e=>{e&&clearTimeout(e)})),[]),n}e.s(["default",0,m],545719);var g=e.i(349942),v=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let y=(0,t.forwardRef)((e,y)=>{let{prefixCls:b,bordered:w=!0,status:$,size:C,disabled:x,onBlur:E,onFocus:S,suffix:k,allowClear:j,addonAfter:O,addonBefore:T,className:I,style:_,styles:F,rootClassName:P,onChange:R,classNames:N,variant:M,_skipAddonWarning:B}=e,A=v(e,["prefixCls","bordered","status","size","disabled","onBlur","onFocus","suffix","allowClear","addonAfter","addonBefore","className","style","styles","rootClassName","onChange","classNames","variant","_skipAddonWarning"]),{getPrefixCls:z,direction:L,allowClear:D,autoComplete:H,className:V,style:W,classNames:U,styles:G}=(0,s.useComponentConfig)("input"),q=z("input",b),J=(0,t.useRef)(null),K=(0,u.default)(q),[X,Q,Y]=(0,g.useSharedStyle)(q,P),[Z]=(0,g.default)(q,K),{compactSize:ee,compactItemClassnames:et}=(0,h.useCompactItemContext)(q,L),er=(0,d.default)(e=>{var t;return null!=(t=null!=C?C:ee)?t:e}),eo=t.default.useContext(c.default),{status:en,hasFeedback:ea,feedbackIcon:ei}=(0,t.useContext)(f.FormItemInputContext),el=(0,l.getMergedStatus)(en,$),es=!!(e.prefix||e.suffix||e.allowClear||e.showCount)||!!ea;(0,t.useRef)(es);let ec=m(J,!0),eu=(ea||k)&&t.default.createElement(t.default.Fragment,null,k,ea&&ei),ed=(0,i.default)(null!=j?j:D),[ef,ep]=(0,p.default)("input",M,w);return X(Z(t.default.createElement(o.default,Object.assign({ref:(0,n.composeRef)(y,J),prefixCls:q,autoComplete:H},A,{disabled:null!=x?x:eo,onBlur:e=>{ec(),null==E||E(e)},onFocus:e=>{ec(),null==S||S(e)},style:Object.assign(Object.assign({},W),_),styles:Object.assign(Object.assign({},G),F),suffix:eu,allowClear:ed,className:(0,r.default)(I,P,Y,K,et,V),onChange:e=>{ec(),null==R||R(e)},addonBefore:T&&t.default.createElement(a.default,{form:!0,space:!0},T),addonAfter:O&&t.default.createElement(a.default,{form:!0,space:!0},O),classNames:Object.assign(Object.assign(Object.assign({},N),U),{input:(0,r.default)({[`${q}-sm`]:"small"===er,[`${q}-lg`]:"large"===er,[`${q}-rtl`]:"rtl"===L},null==N?void 0:N.input,U.input,Q),variant:(0,r.default)({[`${q}-${ef}`]:ep},(0,l.getStatusClassNames)(q,el)),affixWrapper:(0,r.default)({[`${q}-affix-wrapper-sm`]:"small"===er,[`${q}-affix-wrapper-lg`]:"large"===er,[`${q}-affix-wrapper-rtl`]:"rtl"===L},Q),wrapper:(0,r.default)({[`${q}-group-rtl`]:"rtl"===L},Q),groupWrapper:(0,r.default)({[`${q}-group-wrapper-sm`]:"small"===er,[`${q}-group-wrapper-lg`]:"large"===er,[`${q}-group-wrapper-rtl`]:"rtl"===L,[`${q}-group-wrapper-${ef}`]:ep},(0,l.getStatusClassNames)(`${q}-group-wrapper`,el,ea),Q)})}))))});e.s(["default",0,y],90635)},932399,741585,984125,236798,e=>{"use strict";e.i(247167);var t=e.i(8211),r=e.i(271645),o=e.i(343794),n=e.i(175066),a=e.i(244009),i=e.i(52956),l=e.i(242064),s=e.i(517455),c=e.i(62139),u=e.i(246422),d=e.i(838378),f=e.i(517458);let p=(0,u.genStyleHooks)(["Input","OTP"],e=>(e=>{let{componentCls:t,paddingXS:r}=e;return{[t]:{display:"inline-flex",alignItems:"center",flexWrap:"nowrap",columnGap:r,[`${t}-input-wrapper`]:{position:"relative",[`${t}-mask-icon`]:{position:"absolute",zIndex:"1",top:"50%",right:"50%",transform:"translate(50%, -50%)",pointerEvents:"none"},[`${t}-mask-input`]:{color:"transparent",caretColor:e.colorText},[`${t}-mask-input[type=number]::-webkit-inner-spin-button`]:{"-webkit-appearance":"none",margin:0},[`${t}-mask-input[type=number]`]:{"-moz-appearance":"textfield"}},"&-rtl":{direction:"rtl"},[`${t}-input`]:{textAlign:"center",paddingInline:e.paddingXXS},[`&${t}-sm ${t}-input`]:{paddingInline:e.calc(e.paddingXXS).div(2).equal()},[`&${t}-lg ${t}-input`]:{paddingInline:e.paddingXS}}}})((0,d.mergeToken)(e,(0,f.initInputToken)(e))),f.initComponentToken);var h=e.i(963188),m=e.i(90635),g=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let v=r.forwardRef((e,t)=>{let{className:n,value:a,onChange:i,onActiveChange:s,index:c,mask:u}=e,d=g(e,["className","value","onChange","onActiveChange","index","mask"]),{getPrefixCls:f}=r.useContext(l.ConfigContext),p=f("otp"),v="string"==typeof u?u:a,y=r.useRef(null);r.useImperativeHandle(t,()=>y.current);let b=()=>{(0,h.default)(()=>{var e;let t=null==(e=y.current)?void 0:e.input;document.activeElement===t&&t&&t.select()})};return r.createElement("span",{className:`${p}-input-wrapper`,role:"presentation"},u&&""!==a&&void 0!==a&&r.createElement("span",{className:`${p}-mask-icon`,"aria-hidden":"true"},v),r.createElement(m.default,Object.assign({"aria-label":`OTP Input ${c+1}`,type:!0===u?"password":"text"},d,{ref:y,value:a,onInput:e=>{i(c,e.target.value)},onFocus:b,onKeyDown:e=>{let{key:t,ctrlKey:r,metaKey:o}=e;"ArrowLeft"===t?s(c-1):"ArrowRight"===t?s(c+1):"z"===t&&(r||o)?e.preventDefault():"Backspace"!==t||a||s(c-1),b()},onMouseDown:b,onMouseUp:b,className:(0,o.default)(n,{[`${p}-mask-input`]:u})})))});var y=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};function b(e){return(e||"").split("")}let w=e=>{let{index:t,prefixCls:o,separator:n}=e,a="function"==typeof n?n(t):n;return a?r.createElement("span",{className:`${o}-separator`},a):null},$=r.forwardRef((e,u)=>{let{prefixCls:d,length:f=6,size:h,defaultValue:m,value:g,onChange:$,formatter:C,separator:x,variant:E,disabled:S,status:k,autoFocus:j,mask:O,type:T,onInput:I,inputMode:_}=e,F=y(e,["prefixCls","length","size","defaultValue","value","onChange","formatter","separator","variant","disabled","status","autoFocus","mask","type","onInput","inputMode"]),{getPrefixCls:P,direction:R}=r.useContext(l.ConfigContext),N=P("otp",d),M=(0,a.default)(F,{aria:!0,data:!0,attr:!0}),[B,A,z]=p(N),L=(0,s.default)(e=>null!=h?h:e),D=r.useContext(c.FormItemInputContext),H=(0,i.getMergedStatus)(D.status,k),V=r.useMemo(()=>Object.assign(Object.assign({},D),{status:H,hasFeedback:!1,feedbackIcon:null}),[D,H]),W=r.useRef(null),U=r.useRef({});r.useImperativeHandle(u,()=>({focus:()=>{var e;null==(e=U.current[0])||e.focus()},blur:()=>{var e;for(let t=0;tC?C(e):e,[q,J]=r.useState(()=>b(G(m||"")));r.useEffect(()=>{void 0!==g&&J(b(g))},[g]);let K=(0,n.default)(e=>{J(e),I&&I(e),$&&e.length===f&&e.every(e=>e)&&e.some((e,t)=>q[t]!==e)&&$(e.join(""))}),X=(0,n.default)((e,r)=>{let o=(0,t.default)(q);for(let t=0;t=0&&!o[e];e-=1)o.pop();return o=b(G(o.map(e=>e||" ").join(""))).map((e,t)=>" "!==e||o[t]?e:o[t])}),Q=(e,t)=>{var r;let o=X(e,t),n=Math.min(e+t.length,f-1);n!==e&&void 0!==o[e]&&(null==(r=U.current[n])||r.focus()),K(o)},Y=e=>{var t;null==(t=U.current[e])||t.focus()},Z={variant:E,disabled:S,status:H,mask:O,type:T,inputMode:_};return B(r.createElement("div",Object.assign({},M,{ref:W,className:(0,o.default)(N,{[`${N}-sm`]:"small"===L,[`${N}-lg`]:"large"===L,[`${N}-rtl`]:"rtl"===R},z,A),role:"group"}),r.createElement(c.FormItemInputContext.Provider,{value:V},Array.from({length:f}).map((e,t)=>{let o=`otp-${t}`,n=q[t]||"";return r.createElement(r.Fragment,{key:o},r.createElement(v,Object.assign({ref:e=>{U.current[t]=e},index:t,size:L,htmlSize:1,className:`${N}-input`,onChange:Q,value:n,onActiveChange:Y,autoFocus:0===t&&j},Z)),tt.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let P=e=>e?r.createElement(j,null):r.createElement(S,null),R={click:"onClick",hover:"onMouseOver"},N=r.forwardRef((e,t)=>{let n,a,i,{disabled:s,action:c="click",visibilityToggle:u=!0,iconRender:d=P,suffix:f}=e,p=r.useContext(I.default),h=null!=s?s:p,g="object"==typeof u&&void 0!==u.visible,[v,y]=(0,r.useState)(()=>!!g&&u.visible),b=(0,r.useRef)(null);r.useEffect(()=>{g&&y(u.visible)},[g,u]);let w=(0,_.default)(b),{className:$,prefixCls:C,inputPrefixCls:x,size:E}=e,S=F(e,["className","prefixCls","inputPrefixCls","size"]),{getPrefixCls:k}=r.useContext(l.ConfigContext),j=k("input",x),N=k("input-password",C),M=u&&(n=R[c]||"",a=d(v),i={[n]:()=>{var e;if(h)return;v&&w();let t=!v;y(t),"object"==typeof u&&(null==(e=u.onVisibleChange)||e.call(u,t))},className:`${N}-icon`,key:"passwordIcon",onMouseDown:e=>{e.preventDefault()},onMouseUp:e=>{e.preventDefault()}},r.cloneElement(r.isValidElement(a)?a:r.createElement("span",null,a),i)),B=(0,o.default)(N,$,{[`${N}-${E}`]:!!E}),A=Object.assign(Object.assign({},(0,O.default)(S,["suffix","iconRender","visibilityToggle"])),{type:v?"text":"password",className:B,prefixCls:j,suffix:r.createElement(r.Fragment,null,M,f)});return E&&(A.size=E),r.createElement(m.default,Object.assign({ref:(0,T.composeRef)(t,b)},A))});e.s(["default",0,N],236798)},38953,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z"}}]},name:"search",theme:"outlined"};var n=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(n.default,(0,t.default)({},e,{ref:a,icon:o}))});e.s(["default",0,a],38953)},121872,26905,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(606262),n=e.i(611935),a=e.i(242064),i=e.i(763731);let l=(0,e.i(246422).genComponentStyleHook)("Wave",e=>{let{componentCls:t,colorPrimary:r}=e;return{[t]:{position:"absolute",background:"transparent",pointerEvents:"none",boxSizing:"border-box",color:`var(--wave-color, ${r})`,boxShadow:"0 0 0 0 currentcolor",opacity:.2,"&.wave-motion-appear":{transition:`box-shadow 0.4s ${e.motionEaseOutCirc},opacity 2s ${e.motionEaseOutCirc}`,"&-active":{boxShadow:"0 0 0 6px currentcolor",opacity:0},"&.wave-quick":{transition:`box-shadow ${e.motionDurationSlow} ${e.motionEaseInOut},opacity ${e.motionDurationSlow} ${e.motionEaseInOut}`}}}}});var s=e.i(175066),c=e.i(963188),u=e.i(719581);let d=`${a.defaultPrefixCls}-wave-target`;e.s(["TARGET_CLS",0,d],26905);var f=e.i(361275),p=e.i(783164);function h(e){return e&&"#fff"!==e&&"#ffffff"!==e&&"rgb(255, 255, 255)"!==e&&"rgba(255, 255, 255, 1)"!==e&&!/rgba\((?:\d*, ){3}0\)/.test(e)&&"transparent"!==e&&"canvastext"!==e}function m(e){return Number.isNaN(e)?0:e}let g=e=>{let{className:o,target:a,component:i,registerUnmount:l}=e,s=t.useRef(null),u=t.useRef(null);t.useEffect(()=>{u.current=l()},[]);let[p,g]=t.useState(null),[v,y]=t.useState([]),[b,w]=t.useState(0),[$,C]=t.useState(0),[x,E]=t.useState(0),[S,k]=t.useState(0),[j,O]=t.useState(!1),T={left:b,top:$,width:x,height:S,borderRadius:v.map(e=>`${e}px`).join(" ")};function I(){let e=getComputedStyle(a);g(function(e){var t;let{borderTopColor:r,borderColor:o,backgroundColor:n}=getComputedStyle(e);return null!=(t=[r,o,n].find(h))?t:null}(a));let t="static"===e.position,{borderLeftWidth:r,borderTopWidth:o}=e;w(t?a.offsetLeft:m(-Number.parseFloat(r))),C(t?a.offsetTop:m(-Number.parseFloat(o))),E(a.offsetWidth),k(a.offsetHeight);let{borderTopLeftRadius:n,borderTopRightRadius:i,borderBottomLeftRadius:l,borderBottomRightRadius:s}=e;y([n,i,s,l].map(e=>m(Number.parseFloat(e))))}if(p&&(T["--wave-color"]=p),t.useEffect(()=>{if(a){let e,t=(0,c.default)(()=>{I(),O(!0)});return"u">typeof ResizeObserver&&(e=new ResizeObserver(I)).observe(a),()=>{c.default.cancel(t),null==e||e.disconnect()}}},[a]),!j)return null;let _=("Checkbox"===i||"Radio"===i)&&(null==a?void 0:a.classList.contains(d));return t.createElement(f.default,{visible:!0,motionAppear:!0,motionName:"wave-motion",motionDeadline:5e3,onAppearEnd:(e,t)=>{var r,o;if(t.deadline||"opacity"===t.propertyName){let e=null==(r=s.current)?void 0:r.parentElement;null==(o=u.current)||o.call(u).then(()=>{null==e||e.remove()})}return!1}},({className:e},a)=>t.createElement("div",{ref:(0,n.composeRef)(s,a),className:(0,r.default)(o,e,{"wave-quick":_}),style:T}))};e.s(["default",0,e=>{let{children:f,disabled:h,component:m}=e,{getPrefixCls:v}=(0,t.useContext)(a.ConfigContext),y=(0,t.useRef)(null),b=v("wave"),[,w]=l(b),$=((e,r,o)=>{let{wave:n}=t.useContext(a.ConfigContext),[,i,l]=(0,u.default)(),f=(0,s.default)(a=>{let s=e.current;if((null==n?void 0:n.disabled)||!s)return;let c=s.querySelector(`.${d}`)||s,{showEffect:u}=n||{};(u||((e,r)=>{var o;let{component:n}=r;if("Checkbox"===n&&!(null==(o=e.querySelector("input"))?void 0:o.checked))return;let a=document.createElement("div");a.style.position="absolute",a.style.left="0px",a.style.top="0px",null==e||e.insertBefore(a,null==e?void 0:e.firstChild);let i=(0,p.unstableSetRender)(),l=null;l=i(t.createElement(g,Object.assign({},r,{target:e,registerUnmount:function(){return l}})),a)}))(c,{className:r,token:i,component:o,event:a,hashId:l})}),h=t.useRef(null);return e=>{c.default.cancel(h.current),h.current=(0,c.default)(()=>{f(e)})}})(y,(0,r.default)(b,w),m);if(t.default.useEffect(()=>{let e=y.current;if(!e||e.nodeType!==window.Node.ELEMENT_NODE||h)return;let t=t=>{!(0,o.default)(t.target)||!e.getAttribute||e.getAttribute("disabled")||e.disabled||e.className.includes("disabled")&&!e.className.includes("disabled:")||"true"===e.getAttribute("aria-disabled")||e.className.includes("-leave")||$(t)};return e.addEventListener("click",t,!0),()=>{e.removeEventListener("click",t,!0)}},[h]),!t.default.isValidElement(f))return null!=f?f:null;let C=(0,n.supportRef)(f)?(0,n.composeRef)((0,n.getNodeRef)(f),y):y;return(0,i.cloneElement)(f,{ref:C})}],121872)},735996,e=>{"use strict";var t=e.i(271645),r=e.i(343794),o=e.i(242064),n=e.i(104458),a=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let i=t.createContext(void 0);e.s(["GroupSizeContext",0,i,"default",0,e=>{let{getPrefixCls:l,direction:s}=t.useContext(o.ConfigContext),{prefixCls:c,size:u,className:d}=e,f=a(e,["prefixCls","size","className"]),p=l("btn-group",c),[,,h]=(0,n.useToken)(),m=t.useMemo(()=>{switch(u){case"large":return"lg";case"small":return"sm";default:return""}},[u]),g=(0,r.default)(p,{[`${p}-${m}`]:m,[`${p}-rtl`]:"rtl"===s},d,h);return t.createElement(i.Provider,{value:u},t.createElement("div",Object.assign({},f,{className:g})))}])},62405,869693,868004,470977,e=>{"use strict";var t=e.i(8211),r=e.i(271645),o=e.i(763731),n=e.i(617933);let a=/^[\u4E00-\u9FA5]{2}$/,i=a.test.bind(a);function l(e){return"string"==typeof e}["default","primary","danger"].concat((0,t.default)(n.PresetColors)),e.s(["convertLegacyProps",0,function(e){return"danger"===e?{danger:!0}:{type:e}},"isTwoCNChar",0,i,"isUnBorderedButtonVariant",0,function(e){return"text"===e||"link"===e},"spaceChildren",0,function(e,t){let n=!1,a=[];return r.default.Children.forEach(e,e=>{let t=typeof e,r="string"===t||"number"===t;if(n&&r){let t=a.length-1,r=a[t];a[t]=`${r}${e}`}else a.push(e);n=r}),r.default.Children.map(a,e=>(function(e,t){if(null==e)return;let n=t?" ":"";return"string"!=typeof e&&"number"!=typeof e&&l(e.type)&&i(e.props.children)?(0,o.cloneElement)(e,{children:e.props.children.split("").join(n)}):l(e)?i(e)?r.default.createElement("span",null,e.split("").join(n)):r.default.createElement("span",null,e):(0,o.isFragment)(e)?r.default.createElement("span",null,e):e})(e,t))}],62405);var s=e.i(739295),c=e.i(343794),u=e.i(361275);let d=(0,r.forwardRef)((e,t)=>{let{className:o,style:n,children:a,prefixCls:i}=e,l=(0,c.default)(`${i}-icon`,o);return r.default.createElement("span",{ref:t,className:l,style:n},a)});e.s(["default",0,d],869693);let f=(0,r.forwardRef)((e,t)=>{let{prefixCls:o,className:n,style:a,iconClassName:i}=e,l=(0,c.default)(`${o}-loading-icon`,n);return r.default.createElement(d,{prefixCls:o,className:l,style:a,ref:t},r.default.createElement(s.default,{className:i}))}),p=()=>({width:0,opacity:0,transform:"scale(0)"}),h=e=>({width:e.scrollWidth,opacity:1,transform:"scale(1)"});e.s(["default",0,e=>{let{prefixCls:t,loading:o,existIcon:n,className:a,style:i,mount:l}=e;return n?r.default.createElement(f,{prefixCls:t,className:a,style:i}):r.default.createElement(u.default,{visible:!!o,motionName:`${t}-loading-icon-motion`,motionAppear:!l,motionEnter:!l,motionLeave:!l,removeOnLeave:!0,onAppearStart:p,onAppearActive:h,onEnterStart:p,onEnterActive:h,onLeaveStart:h,onLeaveActive:p},({className:e,style:o},n)=>{let l=Object.assign(Object.assign({},i),o);return r.default.createElement(f,{prefixCls:t,className:(0,c.default)(a,e),style:l,ref:n})})}],868004);let m=(e,t)=>({[`> span, > ${e}`]:{"&:not(:last-child)":{[`&, & > ${e}`]:{"&:not(:disabled)":{borderInlineEndColor:t}}},"&:not(:first-child)":{[`&, & > ${e}`]:{"&:not(:disabled)":{borderInlineStartColor:t}}}}});e.s(["default",0,e=>{let{componentCls:t,fontSize:r,lineWidth:o,groupBorderColor:n,colorErrorHover:a}=e;return{[`${t}-group`]:[{position:"relative",display:"inline-flex",[`> span, > ${t}`]:{"&:not(:last-child)":{[`&, & > ${t}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},"&:not(:first-child)":{marginInlineStart:e.calc(o).mul(-1).equal(),[`&, & > ${t}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}},[t]:{position:"relative",zIndex:1,"&:hover, &:focus, &:active":{zIndex:2},"&[disabled]":{zIndex:0}},[`${t}-icon-only`]:{fontSize:r}},m(`${t}-primary`,n),m(`${t}-danger`,a)]}}],470977)},202599,e=>{"use strict";var t=e.i(162464);e.s(["ColorBlock",()=>t.default])},286612,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"}}]},name:"right",theme:"outlined"};var n=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(n.default,(0,t.default)({},e,{ref:a,icon:o}))});e.s(["default",0,a],286612)},301092,e=>{"use strict";var t=e.i(931067),r=e.i(8211),o=e.i(392221),n=e.i(410160),a=e.i(343794),i=e.i(914949),l=e.i(883110),s=e.i(271645),c=e.i(703923),u=e.i(876556),d=e.i(209428),f=e.i(211577),p=e.i(361275),h=e.i(404948),m=s.default.forwardRef(function(e,t){var r=e.prefixCls,n=e.forceRender,i=e.className,l=e.style,c=e.children,u=e.isActive,d=e.role,p=e.classNames,h=e.styles,m=s.default.useState(u||n),g=(0,o.default)(m,2),v=g[0],y=g[1];return(s.default.useEffect(function(){(n||u)&&y(!0)},[n,u]),v)?s.default.createElement("div",{ref:t,className:(0,a.default)("".concat(r,"-content"),(0,f.default)((0,f.default)({},"".concat(r,"-content-active"),u),"".concat(r,"-content-inactive"),!u),i),style:l,role:d},s.default.createElement("div",{className:(0,a.default)("".concat(r,"-content-box"),null==p?void 0:p.body),style:null==h?void 0:h.body},c)):null});m.displayName="PanelContent";var g=["showArrow","headerClass","isActive","onItemClick","forceRender","className","classNames","styles","prefixCls","collapsible","accordion","panelKey","extra","header","expandIcon","openMotion","destroyInactivePanel","children"],v=s.default.forwardRef(function(e,r){var o=e.showArrow,n=e.headerClass,i=e.isActive,l=e.onItemClick,u=e.forceRender,v=e.className,y=e.classNames,b=void 0===y?{}:y,w=e.styles,$=void 0===w?{}:w,C=e.prefixCls,x=e.collapsible,E=e.accordion,S=e.panelKey,k=e.extra,j=e.header,O=e.expandIcon,T=e.openMotion,I=e.destroyInactivePanel,_=e.children,F=(0,c.default)(e,g),P="disabled"===x,R=(0,f.default)((0,f.default)((0,f.default)({onClick:function(){null==l||l(S)},onKeyDown:function(e){("Enter"===e.key||e.keyCode===h.default.ENTER||e.which===h.default.ENTER)&&(null==l||l(S))},role:E?"tab":"button"},"aria-expanded",i),"aria-disabled",P),"tabIndex",P?-1:0),N="function"==typeof O?O(e):s.default.createElement("i",{className:"arrow"}),M=N&&s.default.createElement("div",(0,t.default)({className:"".concat(C,"-expand-icon")},["header","icon"].includes(x)?R:{}),N),B=(0,a.default)("".concat(C,"-item"),(0,f.default)((0,f.default)({},"".concat(C,"-item-active"),i),"".concat(C,"-item-disabled"),P),v),A=(0,a.default)(n,"".concat(C,"-header"),(0,f.default)({},"".concat(C,"-collapsible-").concat(x),!!x),b.header),z=(0,d.default)({className:A,style:$.header},["header","icon"].includes(x)?{}:R);return s.default.createElement("div",(0,t.default)({},F,{ref:r,className:B}),s.default.createElement("div",z,(void 0===o||o)&&M,s.default.createElement("span",(0,t.default)({className:"".concat(C,"-header-text")},"header"===x?R:{}),j),null!=k&&"boolean"!=typeof k&&s.default.createElement("div",{className:"".concat(C,"-extra")},k)),s.default.createElement(p.default,(0,t.default)({visible:i,leavedClassName:"".concat(C,"-content-hidden")},T,{forceRender:u,removeOnLeave:I}),function(e,t){var r=e.className,o=e.style;return s.default.createElement(m,{ref:t,prefixCls:C,className:r,classNames:b,style:o,styles:$,isActive:i,forceRender:u,role:E?"tabpanel":void 0},_)}))}),y=["children","label","key","collapsible","onItemClick","destroyInactivePanel"],b=function(e,r){var o=r.prefixCls,n=r.accordion,a=r.collapsible,i=r.destroyInactivePanel,l=r.onItemClick,u=r.activeKey,d=r.openMotion,f=r.expandIcon;return e.map(function(e,r){var p=e.children,h=e.label,m=e.key,g=e.collapsible,b=e.onItemClick,w=e.destroyInactivePanel,$=(0,c.default)(e,y),C=String(null!=m?m:r),x=null!=g?g:a,E=!1;return E=n?u[0]===C:u.indexOf(C)>-1,s.default.createElement(v,(0,t.default)({},$,{prefixCls:o,key:C,panelKey:C,isActive:E,accordion:n,openMotion:d,expandIcon:f,header:h,collapsible:x,onItemClick:function(e){"disabled"!==x&&(l(e),null==b||b(e))},destroyInactivePanel:null!=w?w:i}),p)})},w=function(e,t,r){if(!e)return null;var o=r.prefixCls,n=r.accordion,a=r.collapsible,i=r.destroyInactivePanel,l=r.onItemClick,c=r.activeKey,u=r.openMotion,d=r.expandIcon,f=e.key||String(t),p=e.props,h=p.header,m=p.headerClass,g=p.destroyInactivePanel,v=p.collapsible,y=p.onItemClick,b=!1;b=n?c[0]===f:c.indexOf(f)>-1;var w=null!=v?v:a,$={key:f,panelKey:f,header:h,headerClass:m,isActive:b,prefixCls:o,destroyInactivePanel:null!=g?g:i,openMotion:u,accordion:n,children:e.props.children,onItemClick:function(e){"disabled"!==w&&(l(e),null==y||y(e))},expandIcon:d,collapsible:w};return"string"==typeof e.type?e:(Object.keys($).forEach(function(e){void 0===$[e]&&delete $[e]}),s.default.cloneElement(e,$))},$=e.i(244009);function C(e){var t=e;if(!Array.isArray(t)){var r=(0,n.default)(t);t="number"===r||"string"===r?[t]:[]}return t.map(function(e){return String(e)})}let x=Object.assign(s.default.forwardRef(function(e,n){var c,d=e.prefixCls,f=void 0===d?"rc-collapse":d,p=e.destroyInactivePanel,h=e.style,m=e.accordion,g=e.className,v=e.children,y=e.collapsible,x=e.openMotion,E=e.expandIcon,S=e.activeKey,k=e.defaultActiveKey,j=e.onChange,O=e.items,T=(0,a.default)(f,g),I=(0,i.default)([],{value:S,onChange:function(e){return null==j?void 0:j(e)},defaultValue:k,postState:C}),_=(0,o.default)(I,2),F=_[0],P=_[1];(0,l.default)(!v,"[rc-collapse] `children` will be removed in next major version. Please use `items` instead.");var R=(c={prefixCls:f,accordion:m,openMotion:x,expandIcon:E,collapsible:y,destroyInactivePanel:void 0!==p&&p,onItemClick:function(e){return P(function(){return m?F[0]===e?[]:[e]:F.indexOf(e)>-1?F.filter(function(t){return t!==e}):[].concat((0,r.default)(F),[e])})},activeKey:F},Array.isArray(O)?b(O,c):(0,u.default)(v).map(function(e,t){return w(e,t,c)}));return s.default.createElement("div",(0,t.default)({ref:n,className:T,style:h,role:m?"tablist":void 0},(0,$.default)(e,{aria:!0,data:!0})),R)}),{Panel:v});x.Panel,e.s(["default",0,x],301092)},125234,e=>{"use strict";var t=e.i(271645),r=e.i(343794),o=e.i(301092),n=e.i(242064);let a=t.forwardRef((e,a)=>{let{getPrefixCls:i}=t.useContext(n.ConfigContext),{prefixCls:l,className:s,showArrow:c=!0}=e,u=i("collapse",l),d=(0,r.default)({[`${u}-no-arrow`]:!c},s);return t.createElement(o.default.Panel,Object.assign({ref:a},e,{prefixCls:u,className:d}))});e.s(["default",0,a])},988122,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(286612),o=e.i(343794),n=e.i(301092),a=e.i(876556),i=e.i(529681),l=e.i(613541),s=e.i(763731),c=e.i(242064),u=e.i(517455),d=e.i(125234);e.i(296059);var f=e.i(915654),p=e.i(183293),h=e.i(447580),m=e.i(246422),g=e.i(838378);let v=(0,m.genStyleHooks)("Collapse",e=>{let t=(0,g.mergeToken)(e,{collapseHeaderPaddingSM:`${(0,f.unit)(e.paddingXS)} ${(0,f.unit)(e.paddingSM)}`,collapseHeaderPaddingLG:`${(0,f.unit)(e.padding)} ${(0,f.unit)(e.paddingLG)}`,collapsePanelBorderRadius:e.borderRadiusLG});return[(e=>{let{componentCls:t,contentBg:r,padding:o,headerBg:n,headerPadding:a,collapseHeaderPaddingSM:i,collapseHeaderPaddingLG:l,collapsePanelBorderRadius:s,lineWidth:c,lineType:u,colorBorder:d,colorText:h,colorTextHeading:m,colorTextDisabled:g,fontSizeLG:v,lineHeight:y,lineHeightLG:b,marginSM:w,paddingSM:$,paddingLG:C,paddingXS:x,motionDurationSlow:E,fontSizeIcon:S,contentPadding:k,fontHeight:j,fontHeightLG:O}=e,T=`${(0,f.unit)(c)} ${u} ${d}`;return{[t]:Object.assign(Object.assign({},(0,p.resetComponent)(e)),{backgroundColor:n,border:T,borderRadius:s,"&-rtl":{direction:"rtl"},[`& > ${t}-item`]:{borderBottom:T,"&:first-child":{[` - &, - & > ${t}-header`]:{borderRadius:`${(0,f.unit)(s)} ${(0,f.unit)(s)} 0 0`}},"&:last-child":{[` - &, - & > ${t}-header`]:{borderRadius:`0 0 ${(0,f.unit)(s)} ${(0,f.unit)(s)}`}},[`> ${t}-header`]:Object.assign(Object.assign({position:"relative",display:"flex",flexWrap:"nowrap",alignItems:"flex-start",padding:a,color:m,lineHeight:y,cursor:"pointer",transition:`all ${E}, visibility 0s`},(0,p.genFocusStyle)(e)),{[`> ${t}-header-text`]:{flex:"auto"},[`${t}-expand-icon`]:{height:j,display:"flex",alignItems:"center",paddingInlineEnd:w},[`${t}-arrow`]:Object.assign(Object.assign({},(0,p.resetIcon)()),{fontSize:S,transition:`transform ${E}`,svg:{transition:`transform ${E}`}}),[`${t}-header-text`]:{marginInlineEnd:"auto"}}),[`${t}-collapsible-header`]:{cursor:"default",[`${t}-header-text`]:{flex:"none",cursor:"pointer"},[`${t}-expand-icon`]:{cursor:"pointer"}},[`${t}-collapsible-icon`]:{cursor:"unset",[`${t}-expand-icon`]:{cursor:"pointer"}}},[`${t}-content`]:{color:h,backgroundColor:r,borderTop:T,[`& > ${t}-content-box`]:{padding:k},"&-hidden":{display:"none"}},"&-small":{[`> ${t}-item`]:{[`> ${t}-header`]:{padding:i,paddingInlineStart:x,[`> ${t}-expand-icon`]:{marginInlineStart:e.calc($).sub(x).equal()}},[`> ${t}-content > ${t}-content-box`]:{padding:$}}},"&-large":{[`> ${t}-item`]:{fontSize:v,lineHeight:b,[`> ${t}-header`]:{padding:l,paddingInlineStart:o,[`> ${t}-expand-icon`]:{height:O,marginInlineStart:e.calc(C).sub(o).equal()}},[`> ${t}-content > ${t}-content-box`]:{padding:C}}},[`${t}-item:last-child`]:{borderBottom:0,[`> ${t}-content`]:{borderRadius:`0 0 ${(0,f.unit)(s)} ${(0,f.unit)(s)}`}},[`& ${t}-item-disabled > ${t}-header`]:{[` - &, - & > .arrow - `]:{color:g,cursor:"not-allowed"}},[`&${t}-icon-position-end`]:{[`& > ${t}-item`]:{[`> ${t}-header`]:{[`${t}-expand-icon`]:{order:1,paddingInlineEnd:0,paddingInlineStart:w}}}}})}})(t),(e=>{let{componentCls:t,headerBg:r,borderlessContentPadding:o,borderlessContentBg:n,colorBorder:a}=e;return{[`${t}-borderless`]:{backgroundColor:r,border:0,[`> ${t}-item`]:{borderBottom:`1px solid ${a}`},[` - > ${t}-item:last-child, - > ${t}-item:last-child ${t}-header - `]:{borderRadius:0},[`> ${t}-item:last-child`]:{borderBottom:0},[`> ${t}-item > ${t}-content`]:{backgroundColor:n,borderTop:0},[`> ${t}-item > ${t}-content > ${t}-content-box`]:{padding:o}}}})(t),(e=>{let{componentCls:t,paddingSM:r}=e;return{[`${t}-ghost`]:{backgroundColor:"transparent",border:0,[`> ${t}-item`]:{borderBottom:0,[`> ${t}-content`]:{backgroundColor:"transparent",border:0,[`> ${t}-content-box`]:{paddingBlock:r}}}}}})(t),(e=>{let{componentCls:t}=e,r=`> ${t}-item > ${t}-header ${t}-arrow`;return{[`${t}-rtl`]:{[r]:{transform:"rotate(180deg)"}}}})(t),(0,h.genCollapseMotion)(t)]},e=>({headerPadding:`${e.paddingSM}px ${e.padding}px`,headerBg:e.colorFillAlter,contentPadding:`${e.padding}px 16px`,contentBg:e.colorBgContainer,borderlessContentPadding:`${e.paddingXXS}px 16px ${e.padding}px`,borderlessContentBg:"transparent"})),y=Object.assign(t.forwardRef((e,d)=>{let{getPrefixCls:f,direction:p,expandIcon:h,className:m,style:g}=(0,c.useComponentConfig)("collapse"),{prefixCls:y,className:b,rootClassName:w,style:$,bordered:C=!0,ghost:x,size:E,expandIconPosition:S="start",children:k,destroyInactivePanel:j,destroyOnHidden:O,expandIcon:T}=e,I=(0,u.default)(e=>{var t;return null!=(t=null!=E?E:e)?t:"middle"}),_=f("collapse",y),F=f(),[P,R,N]=v(_),M=t.useMemo(()=>"left"===S?"start":"right"===S?"end":S,[S]),B=null!=T?T:h,A=t.useCallback((e={})=>{let n="function"==typeof B?B(e):t.createElement(r.default,{rotate:e.isActive?"rtl"===p?-90:90:void 0,"aria-label":e.isActive?"expanded":"collapsed"});return(0,s.cloneElement)(n,()=>{var e;return{className:(0,o.default)(null==(e=n.props)?void 0:e.className,`${_}-arrow`)}})},[B,_,p]),z=(0,o.default)(`${_}-icon-position-${M}`,{[`${_}-borderless`]:!C,[`${_}-rtl`]:"rtl"===p,[`${_}-ghost`]:!!x,[`${_}-${I}`]:"middle"!==I},m,b,w,R,N),L=t.useMemo(()=>Object.assign(Object.assign({},(0,l.default)(F)),{motionAppear:!1,leavedClassName:`${_}-content-hidden`}),[F,_]),D=t.useMemo(()=>k?(0,a.default)(k).map((e,t)=>{var r,o;let n=e.props;if(null==n?void 0:n.disabled){let a=null!=(r=e.key)?r:String(t),l=Object.assign(Object.assign({},(0,i.default)(e.props,["disabled"])),{key:a,collapsible:null!=(o=n.collapsible)?o:"disabled"});return(0,s.cloneElement)(e,l)}return e}):null,[k]);return P(t.createElement(n.default,Object.assign({ref:d,openMotion:L},(0,i.default)(e,["rootClassName"]),{expandIcon:A,prefixCls:_,className:z,style:Object.assign(Object.assign({},g),$),destroyInactivePanel:null!=O?O:j}),D))}),{Panel:d.default});e.s(["default",0,y],988122)},432231,327174,e=>{"use strict";e.i(296059);var t=e.i(915654),r=e.i(183293),o=e.i(617933),n=e.i(246422),a=e.i(838378),i=e.i(470977),l=e.i(571070);e.i(271645),e.i(509808),e.i(202599);var s=e.i(814690);e.i(343794),e.i(914949),e.i(988122),e.i(408850),e.i(104458),e.i(656449);var c=e.i(988317),u=e.i(745978);let d=e=>{let{paddingInline:t,onlyIconSize:r}=e;return(0,a.mergeToken)(e,{buttonPaddingHorizontal:t,buttonPaddingVertical:0,buttonIconOnlyFontSize:r})},f=e=>{var r,n,a,i,d,f;let p=null!=(r=e.contentFontSize)?r:e.fontSize,h=null!=(n=e.contentFontSizeSM)?n:e.fontSize,m=null!=(a=e.contentFontSizeLG)?a:e.fontSizeLG,g=null!=(i=e.contentLineHeight)?i:(0,c.getLineHeight)(p),v=null!=(d=e.contentLineHeightSM)?d:(0,c.getLineHeight)(h),y=null!=(f=e.contentLineHeightLG)?f:(0,c.getLineHeight)(m),b=((e,t)=>{let{r,g:o,b:n,a}=e.toRgb(),i=new s.Color(e.toRgbString()).onBackground(t).toHsv();return a<=.5?i.v>.5:.299*r+.587*o+.114*n>192})(new l.AggregationColor(e.colorBgSolid),"#fff")?"#000":"#fff";return Object.assign(Object.assign({},o.PresetColors.reduce((r,o)=>Object.assign(Object.assign({},r),{[`${o}ShadowColor`]:`0 ${(0,t.unit)(e.controlOutlineWidth)} 0 ${(0,u.default)(e[`${o}1`],e.colorBgContainer)}`}),{})),{fontWeight:400,iconGap:e.marginXS,defaultShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlTmpOutline}`,primaryShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlOutline}`,dangerShadow:`0 ${e.controlOutlineWidth}px 0 ${e.colorErrorOutline}`,primaryColor:e.colorTextLightSolid,dangerColor:e.colorTextLightSolid,borderColorDisabled:e.colorBorder,defaultGhostColor:e.colorBgContainer,ghostBg:"transparent",defaultGhostBorderColor:e.colorBgContainer,paddingInline:e.paddingContentHorizontal-e.lineWidth,paddingInlineLG:e.paddingContentHorizontal-e.lineWidth,paddingInlineSM:8-e.lineWidth,onlyIconSize:"inherit",onlyIconSizeSM:"inherit",onlyIconSizeLG:"inherit",groupBorderColor:e.colorPrimaryHover,linkHoverBg:"transparent",textTextColor:e.colorText,textTextHoverColor:e.colorText,textTextActiveColor:e.colorText,textHoverBg:e.colorFillTertiary,defaultColor:e.colorText,defaultBg:e.colorBgContainer,defaultBorderColor:e.colorBorder,defaultBorderColorDisabled:e.colorBorder,defaultHoverBg:e.colorBgContainer,defaultHoverColor:e.colorPrimaryHover,defaultHoverBorderColor:e.colorPrimaryHover,defaultActiveBg:e.colorBgContainer,defaultActiveColor:e.colorPrimaryActive,defaultActiveBorderColor:e.colorPrimaryActive,solidTextColor:b,contentFontSize:p,contentFontSizeSM:h,contentFontSizeLG:m,contentLineHeight:g,contentLineHeightSM:v,contentLineHeightLG:y,paddingBlock:Math.max((e.controlHeight-p*g)/2-e.lineWidth,0),paddingBlockSM:Math.max((e.controlHeightSM-h*v)/2-e.lineWidth,0),paddingBlockLG:Math.max((e.controlHeightLG-m*y)/2-e.lineWidth,0)})};e.s(["prepareComponentToken",0,f,"prepareToken",0,d],327174);let p=(e,t,r)=>({[`&:not(:disabled):not(${e}-disabled)`]:{"&:hover":t,"&:active":r}}),h=(e,t,r,o,n,a,i,l)=>({[`&${e}-background-ghost`]:Object.assign(Object.assign({color:r||void 0,background:t,borderColor:o||void 0,boxShadow:"none"},p(e,Object.assign({background:t},i),Object.assign({background:t},l))),{"&:disabled":{cursor:"not-allowed",color:n||void 0,borderColor:a||void 0}})}),m=(e,t,r,o)=>Object.assign(Object.assign({},(o&&["link","text"].includes(o)?e=>({[`&:disabled, &${e.componentCls}-disabled`]:{cursor:"not-allowed",color:e.colorTextDisabled}}):e=>({[`&:disabled, &${e.componentCls}-disabled`]:Object.assign({},{cursor:"not-allowed",borderColor:e.borderColorDisabled,color:e.colorTextDisabled,background:e.colorBgContainerDisabled,boxShadow:"none"})}))(e)),p(e.componentCls,t,r)),g=(e,t,r,o,n)=>({[`&${e.componentCls}-variant-solid`]:Object.assign({color:t,background:r},m(e,o,n))}),v=(e,t,r,o,n)=>({[`&${e.componentCls}-variant-outlined, &${e.componentCls}-variant-dashed`]:Object.assign({borderColor:t,background:r},m(e,o,n))}),y=e=>({[`&${e.componentCls}-variant-dashed`]:{borderStyle:"dashed"}}),b=(e,t,r,o)=>({[`&${e.componentCls}-variant-filled`]:Object.assign({boxShadow:"none",background:t},m(e,r,o))}),w=(e,t,r,o,n)=>({[`&${e.componentCls}-variant-${r}`]:Object.assign({color:t,boxShadow:"none"},m(e,o,n,r))}),$=(e,r="")=>{let{componentCls:o,controlHeight:n,fontSize:a,borderRadius:i,buttonPaddingHorizontal:l,iconCls:s,buttonPaddingVertical:c,buttonIconOnlyFontSize:u}=e;return[{[r]:{fontSize:a,height:n,padding:`${(0,t.unit)(c)} ${(0,t.unit)(l)}`,borderRadius:i,[`&${o}-icon-only`]:{width:n,[s]:{fontSize:u}}}},{[`${o}${o}-circle${r}`]:{minWidth:e.controlHeight,paddingInline:0,borderRadius:"50%"}},{[`${o}${o}-round${r}`]:{borderRadius:e.controlHeight,[`&:not(${o}-icon-only)`]:{paddingInline:e.buttonPaddingHorizontal}}}]},C=(0,n.genStyleHooks)("Button",e=>{let n=d(e);return[(e=>{let{componentCls:o,iconCls:n,fontWeight:a,opacityLoading:i,motionDurationSlow:l,motionEaseInOut:s,iconGap:c,calc:u}=e;return{[o]:{outline:"none",position:"relative",display:"inline-flex",gap:c,alignItems:"center",justifyContent:"center",fontWeight:a,whiteSpace:"nowrap",textAlign:"center",backgroundImage:"none",background:"transparent",border:`${(0,t.unit)(e.lineWidth)} ${e.lineType} transparent`,cursor:"pointer",transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,userSelect:"none",touchAction:"manipulation",color:e.colorText,"&:disabled > *":{pointerEvents:"none"},[`${o}-icon > svg`]:(0,r.resetIcon)(),"> a":{color:"currentColor"},"&:not(:disabled)":(0,r.genFocusStyle)(e),[`&${o}-two-chinese-chars::first-letter`]:{letterSpacing:"0.34em"},[`&${o}-two-chinese-chars > *:not(${n})`]:{marginInlineEnd:"-0.34em",letterSpacing:"0.34em"},[`&${o}-icon-only`]:{paddingInline:0,[`&${o}-compact-item`]:{flex:"none"}},[`&${o}-loading`]:{opacity:i,cursor:"default"},[`${o}-loading-icon`]:{transition:["width","opacity","margin"].map(e=>`${e} ${l} ${s}`).join(",")},[`&:not(${o}-icon-end)`]:{[`${o}-loading-icon-motion`]:{"&-appear-start, &-enter-start":{marginInlineEnd:u(c).mul(-1).equal()},"&-appear-active, &-enter-active":{marginInlineEnd:0},"&-leave-start":{marginInlineEnd:0},"&-leave-active":{marginInlineEnd:u(c).mul(-1).equal()}}},"&-icon-end":{flexDirection:"row-reverse",[`${o}-loading-icon-motion`]:{"&-appear-start, &-enter-start":{marginInlineStart:u(c).mul(-1).equal()},"&-appear-active, &-enter-active":{marginInlineStart:0},"&-leave-start":{marginInlineStart:0},"&-leave-active":{marginInlineStart:u(c).mul(-1).equal()}}}}}})(n),$((0,a.mergeToken)(n,{fontSize:n.contentFontSize}),n.componentCls),$((0,a.mergeToken)(n,{controlHeight:n.controlHeightSM,fontSize:n.contentFontSizeSM,padding:n.paddingXS,buttonPaddingHorizontal:n.paddingInlineSM,buttonPaddingVertical:0,borderRadius:n.borderRadiusSM,buttonIconOnlyFontSize:n.onlyIconSizeSM}),`${n.componentCls}-sm`),$((0,a.mergeToken)(n,{controlHeight:n.controlHeightLG,fontSize:n.contentFontSizeLG,buttonPaddingHorizontal:n.paddingInlineLG,buttonPaddingVertical:0,borderRadius:n.borderRadiusLG,buttonIconOnlyFontSize:n.onlyIconSizeLG}),`${n.componentCls}-lg`),(e=>{let{componentCls:t}=e;return{[t]:{[`&${t}-block`]:{width:"100%"}}}})(n),(e=>{let{componentCls:t}=e;return Object.assign({[`${t}-color-default`]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:e.defaultColor,boxShadow:e.defaultShadow},g(e,e.solidTextColor,e.colorBgSolid,{color:e.solidTextColor,background:e.colorBgSolidHover},{color:e.solidTextColor,background:e.colorBgSolidActive})),y(e)),b(e,e.colorFillTertiary,{color:e.defaultColor,background:e.colorFillSecondary},{color:e.defaultColor,background:e.colorFill})),h(e.componentCls,e.ghostBg,e.defaultGhostColor,e.defaultGhostBorderColor,e.colorTextDisabled,e.colorBorder)),w(e,e.textTextColor,"link",{color:e.colorLinkHover,background:e.linkHoverBg},{color:e.colorLinkActive})),[`${t}-color-primary`]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:e.colorPrimary,boxShadow:e.primaryShadow},v(e,e.colorPrimary,e.colorBgContainer,{color:e.colorPrimaryTextHover,borderColor:e.colorPrimaryHover,background:e.colorBgContainer},{color:e.colorPrimaryTextActive,borderColor:e.colorPrimaryActive,background:e.colorBgContainer})),y(e)),b(e,e.colorPrimaryBg,{color:e.colorPrimary,background:e.colorPrimaryBgHover},{color:e.colorPrimary,background:e.colorPrimaryBorder})),w(e,e.colorPrimaryText,"text",{color:e.colorPrimaryTextHover,background:e.colorPrimaryBg},{color:e.colorPrimaryTextActive,background:e.colorPrimaryBorder})),w(e,e.colorPrimaryText,"link",{color:e.colorPrimaryTextHover,background:e.linkHoverBg},{color:e.colorPrimaryTextActive})),h(e.componentCls,e.ghostBg,e.colorPrimary,e.colorPrimary,e.colorTextDisabled,e.colorBorder,{color:e.colorPrimaryHover,borderColor:e.colorPrimaryHover},{color:e.colorPrimaryActive,borderColor:e.colorPrimaryActive})),[`${t}-color-dangerous`]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:e.colorError,boxShadow:e.dangerShadow},g(e,e.dangerColor,e.colorError,{background:e.colorErrorHover},{background:e.colorErrorActive})),v(e,e.colorError,e.colorBgContainer,{color:e.colorErrorHover,borderColor:e.colorErrorBorderHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),y(e)),b(e,e.colorErrorBg,{color:e.colorError,background:e.colorErrorBgFilledHover},{color:e.colorError,background:e.colorErrorBgActive})),w(e,e.colorError,"text",{color:e.colorErrorHover,background:e.colorErrorBg},{color:e.colorErrorHover,background:e.colorErrorBgActive})),w(e,e.colorError,"link",{color:e.colorErrorHover},{color:e.colorErrorActive})),h(e.componentCls,e.ghostBg,e.colorError,e.colorError,e.colorTextDisabled,e.colorBorder,{color:e.colorErrorHover,borderColor:e.colorErrorHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),[`${t}-color-link`]:Object.assign(Object.assign({},w(e,e.colorLink,"link",{color:e.colorLinkHover},{color:e.colorLinkActive})),h(e.componentCls,e.ghostBg,e.colorInfo,e.colorInfo,e.colorTextDisabled,e.colorBorder,{color:e.colorInfoHover,borderColor:e.colorInfoHover},{color:e.colorInfoActive,borderColor:e.colorInfoActive}))},(e=>{let{componentCls:t}=e;return o.PresetColors.reduce((r,o)=>{let n=e[`${o}6`],a=e[`${o}1`],i=e[`${o}5`],l=e[`${o}2`],s=e[`${o}3`],c=e[`${o}7`];return Object.assign(Object.assign({},r),{[`&${t}-color-${o}`]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:n,boxShadow:e[`${o}ShadowColor`]},g(e,e.colorTextLightSolid,n,{background:i},{background:c})),v(e,n,e.colorBgContainer,{color:i,borderColor:i,background:e.colorBgContainer},{color:c,borderColor:c,background:e.colorBgContainer})),y(e)),b(e,a,{color:n,background:l},{color:n,background:s})),w(e,n,"link",{color:i},{color:c})),w(e,n,"text",{color:i,background:a},{color:c,background:s}))})},{})})(e))})(n),Object.assign(Object.assign(Object.assign(Object.assign({},v(n,n.defaultBorderColor,n.defaultBg,{color:n.defaultHoverColor,borderColor:n.defaultHoverBorderColor,background:n.defaultHoverBg},{color:n.defaultActiveColor,borderColor:n.defaultActiveBorderColor,background:n.defaultActiveBg})),w(n,n.textTextColor,"text",{color:n.textTextHoverColor,background:n.textHoverBg},{color:n.textTextActiveColor,background:n.colorBgTextActive})),g(n,n.primaryColor,n.colorPrimary,{background:n.colorPrimaryHover,color:n.primaryColor},{background:n.colorPrimaryActive,color:n.primaryColor})),w(n,n.colorLink,"link",{color:n.colorLinkHover,background:n.linkHoverBg},{color:n.colorLinkActive})),(0,i.default)(n)]},f,{unitless:{fontWeight:!0,contentLineHeight:!0,contentLineHeightSM:!0,contentLineHeightLG:!0}});e.s(["default",0,C],432231)},920228,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(174428),n=e.i(529681),a=e.i(611935),i=e.i(121872),l=e.i(242064),s=e.i(937328),c=e.i(517455),u=e.i(249616),d=e.i(735996),f=e.i(62405),p=e.i(868004),h=e.i(869693),m=e.i(432231),g=e.i(372409),v=e.i(246422),y=e.i(327174);let b=(0,v.genSubStyleComponent)(["Button","compact"],e=>{var t,r;let o,n=(0,y.prepareToken)(e);return[(0,g.genCompactItemStyle)(n),{[o=`${n.componentCls}-compact-vertical`]:Object.assign(Object.assign({},(t=n.componentCls,{[`&-item:not(${o}-last-item)`]:{marginBottom:n.calc(n.lineWidth).mul(-1).equal()},[`&-item:not(${t}-status-success)`]:{zIndex:2},"&-item":{"&:hover,&:focus,&:active":{zIndex:3},"&[disabled]":{zIndex:0}}})),(r=n.componentCls,{[`&-item:not(${o}-first-item):not(${o}-last-item)`]:{borderRadius:0},[`&-item${o}-first-item:not(${o}-last-item)`]:{[`&, &${r}-sm, &${r}-lg`]:{borderEndEndRadius:0,borderEndStartRadius:0}},[`&-item${o}-last-item:not(${o}-first-item)`]:{[`&, &${r}-sm, &${r}-lg`]:{borderStartStartRadius:0,borderStartEndRadius:0}}}))},(e=>{let{componentCls:t,colorPrimaryHover:r,lineWidth:o,calc:n}=e,a=n(o).mul(-1).equal(),i=e=>{let n=`${t}-compact${e?"-vertical":""}-item${t}-primary:not([disabled])`;return{[`${n} + ${n}::before`]:{position:"absolute",top:e?a:0,insetInlineStart:e?0:a,backgroundColor:r,content:'""',width:e?"100%":o,height:e?o:"100%"}}};return Object.assign(Object.assign({},i()),i(!0))})(n)]},y.prepareComponentToken);var w=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let $={default:["default","outlined"],primary:["primary","solid"],dashed:["default","dashed"],link:["link","link"],text:["default","text"]},C=t.default.forwardRef((e,g)=>{var v,y;let C,{loading:x=!1,prefixCls:E,color:S,variant:k,type:j,danger:O=!1,shape:T,size:I,styles:_,disabled:F,className:P,rootClassName:R,children:N,icon:M,iconPosition:B="start",ghost:A=!1,block:z=!1,htmlType:L="button",classNames:D,style:H={},autoInsertSpace:V,autoFocus:W}=e,U=w(e,["loading","prefixCls","color","variant","type","danger","shape","size","styles","disabled","className","rootClassName","children","icon","iconPosition","ghost","block","htmlType","classNames","style","autoInsertSpace","autoFocus"]),G=j||"default",{button:q}=t.default.useContext(l.ConfigContext),J=T||(null==q?void 0:q.shape)||"default",[K,X]=(0,t.useMemo)(()=>{if(S&&k)return[S,k];if(j||O){let e=$[G]||[];return O?["danger",e[1]]:e}return(null==q?void 0:q.color)&&(null==q?void 0:q.variant)?[q.color,q.variant]:["default","outlined"]},[S,k,j,O,null==q?void 0:q.color,null==q?void 0:q.variant,G]),Q="danger"===K?"dangerous":K,{getPrefixCls:Y,direction:Z,autoInsertSpace:ee,className:et,style:er,classNames:eo,styles:en}=(0,l.useComponentConfig)("button"),ea=null==(v=null!=V?V:ee)||v,ei=Y("btn",E),[el,es,ec]=(0,m.default)(ei),eu=(0,t.useContext)(s.default),ed=null!=F?F:eu,ef=(0,t.useContext)(d.GroupSizeContext),ep=(0,t.useMemo)(()=>(function(e){if("object"==typeof e&&e){let t=null==e?void 0:e.delay;return{loading:(t=Number.isNaN(t)||"number"!=typeof t?0:t)<=0,delay:t}}return{loading:!!e,delay:0}})(x),[x]),[eh,em]=(0,t.useState)(ep.loading),[eg,ev]=(0,t.useState)(!1),ey=(0,t.useRef)(null),eb=(0,a.useComposeRef)(g,ey),ew=1===t.Children.count(N)&&!M&&!(0,f.isUnBorderedButtonVariant)(X),e$=(0,t.useRef)(!0);t.default.useEffect(()=>(e$.current=!1,()=>{e$.current=!0}),[]),(0,o.default)(()=>{let e=null;return ep.delay>0?e=setTimeout(()=>{e=null,em(!0)},ep.delay):em(ep.loading),function(){e&&(clearTimeout(e),e=null)}},[ep.delay,ep.loading]),(0,t.useEffect)(()=>{if(!ey.current||!ea)return;let e=ey.current.textContent||"";ew&&(0,f.isTwoCNChar)(e)?eg||ev(!0):eg&&ev(!1)}),(0,t.useEffect)(()=>{W&&ey.current&&ey.current.focus()},[]);let eC=t.default.useCallback(t=>{var r;eh||ed?t.preventDefault():null==(r=e.onClick)||r.call(e,("href"in e,t))},[e.onClick,eh,ed]),{compactSize:ex,compactItemClassnames:eE}=(0,u.useCompactItemContext)(ei,Z),eS=(0,c.default)(e=>{var t,r;return null!=(r=null!=(t=null!=I?I:ex)?t:ef)?r:e}),ek=eS&&null!=(y=({large:"lg",small:"sm",middle:void 0})[eS])?y:"",ej=eh?"loading":M,eO=(0,n.default)(U,["navigate"]),eT=(0,r.default)(ei,es,ec,{[`${ei}-${J}`]:"default"!==J&&J,[`${ei}-${G}`]:G,[`${ei}-dangerous`]:O,[`${ei}-color-${Q}`]:Q,[`${ei}-variant-${X}`]:X,[`${ei}-${ek}`]:ek,[`${ei}-icon-only`]:!N&&0!==N&&!!ej,[`${ei}-background-ghost`]:A&&!(0,f.isUnBorderedButtonVariant)(X),[`${ei}-loading`]:eh,[`${ei}-two-chinese-chars`]:eg&&ea&&!eh,[`${ei}-block`]:z,[`${ei}-rtl`]:"rtl"===Z,[`${ei}-icon-end`]:"end"===B},eE,P,R,et),eI=Object.assign(Object.assign({},er),H),e_=(0,r.default)(null==D?void 0:D.icon,eo.icon),eF=Object.assign(Object.assign({},(null==_?void 0:_.icon)||{}),en.icon||{}),eP=e=>t.default.createElement(h.default,{prefixCls:ei,className:e_,style:eF},e);C=M&&!eh?eP(M):x&&"object"==typeof x&&x.icon?eP(x.icon):t.default.createElement(p.default,{existIcon:!!M,prefixCls:ei,loading:eh,mount:e$.current});let eR=N||0===N?(0,f.spaceChildren)(N,ew&&ea):null;if(void 0!==eO.href)return el(t.default.createElement("a",Object.assign({},eO,{className:(0,r.default)(eT,{[`${ei}-disabled`]:ed}),href:ed?void 0:eO.href,style:eI,onClick:eC,ref:eb,tabIndex:ed?-1:0,"aria-disabled":ed}),C,eR));let eN=t.default.createElement("button",Object.assign({},U,{type:L,className:eT,style:eI,onClick:eC,disabled:ed,ref:eb}),C,eR,eE&&t.default.createElement(b,{prefixCls:ei}));return(0,f.isUnBorderedButtonVariant)(X)||(eN=t.default.createElement(i.default,{component:"Button",disabled:eh},eN)),el(eN)});C.Group=d.default,C.__ANT_BUTTON=!0,e.s(["default",0,C],920228)},995387,e=>{"use strict";var t=e.i(271645),r=e.i(38953),o=e.i(343794),n=e.i(611935),a=e.i(763731),i=e.i(920228),l=e.i(242064),s=e.i(517455),c=e.i(249616),u=e.i(90635),d=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let f=t.forwardRef((e,f)=>{let p,{prefixCls:h,inputPrefixCls:m,className:g,size:v,suffix:y,enterButton:b=!1,addonAfter:w,loading:$,disabled:C,onSearch:x,onChange:E,onCompositionStart:S,onCompositionEnd:k,variant:j,onPressEnter:O}=e,T=d(e,["prefixCls","inputPrefixCls","className","size","suffix","enterButton","addonAfter","loading","disabled","onSearch","onChange","onCompositionStart","onCompositionEnd","variant","onPressEnter"]),{getPrefixCls:I,direction:_}=t.useContext(l.ConfigContext),F=t.useRef(!1),P=I("input-search",h),R=I("input",m),{compactSize:N}=(0,c.useCompactItemContext)(P,_),M=(0,s.default)(e=>{var t;return null!=(t=null!=v?v:N)?t:e}),B=t.useRef(null),A=e=>{var t;document.activeElement===(null==(t=B.current)?void 0:t.input)&&e.preventDefault()},z=e=>{var t,r;x&&x(null==(r=null==(t=B.current)?void 0:t.input)?void 0:r.value,e,{source:"input"})},L="boolean"==typeof b?t.createElement(r.default,null):null,D=`${P}-button`,H=b||{},V=H.type&&!0===H.type.__ANT_BUTTON;p=V||"button"===H.type?(0,a.cloneElement)(H,Object.assign({onMouseDown:A,onClick:e=>{var t,r;null==(r=null==(t=null==H?void 0:H.props)?void 0:t.onClick)||r.call(t,e),z(e)},key:"enterButton"},V?{className:D,size:M}:{})):t.createElement(i.default,{className:D,color:b?"primary":"default",size:M,disabled:C,key:"enterButton",onMouseDown:A,onClick:z,loading:$,icon:L,variant:"borderless"===j||"filled"===j||"underlined"===j?"text":b?"solid":void 0},b),w&&(p=[p,(0,a.cloneElement)(w,{key:"addonAfter"})]);let W=(0,o.default)(P,{[`${P}-rtl`]:"rtl"===_,[`${P}-${M}`]:!!M,[`${P}-with-button`]:!!b},g),U=Object.assign(Object.assign({},T),{className:W,prefixCls:R,type:"search",size:M,variant:j,onPressEnter:e=>{F.current||$||(null==O||O(e),z(e))},onCompositionStart:e=>{F.current=!0,null==S||S(e)},onCompositionEnd:e=>{F.current=!1,null==k||k(e)},addonAfter:p,suffix:y,onChange:e=>{(null==e?void 0:e.target)&&"click"===e.type&&x&&x(e.target.value,e,{source:"clear"}),null==E||E(e)},disabled:C,_skipAddonWarning:!0});return t.createElement(u.default,Object.assign({ref:(0,n.composeRef)(B,f)},U))});e.s(["default",0,f])},302384,e=>{"use strict";var t=e.i(367397);e.s(["BaseInput",()=>t.default])},598030,e=>{"use strict";var t,r=e.i(931067),o=e.i(211577),n=e.i(209428),a=e.i(8211),i=e.i(392221),l=e.i(703923),s=e.i(343794);e.i(175636);var c=e.i(302384),u=e.i(874460),d=e.i(131299),f=e.i(914949),p=e.i(271645);e.i(247167);var h=e.i(410160),m=e.i(430073),g=e.i(174428),v=e.i(963188),y=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","font-variant","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing","word-break","white-space"],b={},w=["prefixCls","defaultValue","value","autoSize","onResize","className","style","disabled","onChange","onInternalAutoSize"],$=p.forwardRef(function(e,a){var c=e.prefixCls,u=e.defaultValue,d=e.value,$=e.autoSize,C=e.onResize,x=e.className,E=e.style,S=e.disabled,k=e.onChange,j=(e.onInternalAutoSize,(0,l.default)(e,w)),O=(0,f.default)(u,{value:d,postState:function(e){return null!=e?e:""}}),T=(0,i.default)(O,2),I=T[0],_=T[1],F=p.useRef();p.useImperativeHandle(a,function(){return{textArea:F.current}});var P=p.useMemo(function(){return $&&"object"===(0,h.default)($)?[$.minRows,$.maxRows]:[]},[$]),R=(0,i.default)(P,2),N=R[0],M=R[1],B=!!$,A=p.useState(2),z=(0,i.default)(A,2),L=z[0],D=z[1],H=p.useState(),V=(0,i.default)(H,2),W=V[0],U=V[1],G=function(){D(0)};(0,g.default)(function(){B&&G()},[d,N,M,B]),(0,g.default)(function(){if(0===L)D(1);else if(1===L){var e=function(e){var r,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;t||((t=document.createElement("textarea")).setAttribute("tab-index","-1"),t.setAttribute("aria-hidden","true"),t.setAttribute("name","hiddenTextarea"),document.body.appendChild(t)),e.getAttribute("wrap")?t.setAttribute("wrap",e.getAttribute("wrap")):t.removeAttribute("wrap");var i=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=e.getAttribute("id")||e.getAttribute("data-reactid")||e.getAttribute("name");if(t&&b[r])return b[r];var o=window.getComputedStyle(e),n=o.getPropertyValue("box-sizing")||o.getPropertyValue("-moz-box-sizing")||o.getPropertyValue("-webkit-box-sizing"),a=parseFloat(o.getPropertyValue("padding-bottom"))+parseFloat(o.getPropertyValue("padding-top")),i=parseFloat(o.getPropertyValue("border-bottom-width"))+parseFloat(o.getPropertyValue("border-top-width")),l={sizingStyle:y.map(function(e){return"".concat(e,":").concat(o.getPropertyValue(e))}).join(";"),paddingSize:a,borderSize:i,boxSizing:n};return t&&r&&(b[r]=l),l}(e,o),l=i.paddingSize,s=i.borderSize,c=i.boxSizing,u=i.sizingStyle;t.setAttribute("style","".concat(u,";").concat("\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important;\n pointer-events: none !important;\n")),t.value=e.value||e.placeholder||"";var d=void 0,f=void 0,p=t.scrollHeight;if("border-box"===c?p+=s:"content-box"===c&&(p-=l),null!==n||null!==a){t.value=" ";var h=t.scrollHeight-l;null!==n&&(d=h*n,"border-box"===c&&(d=d+l+s),p=Math.max(d,p)),null!==a&&(f=h*a,"border-box"===c&&(f=f+l+s),r=p>f?"":"hidden",p=Math.min(f,p))}var m={height:p,overflowY:r,resize:"none"};return d&&(m.minHeight=d),f&&(m.maxHeight=f),m}(F.current,!1,N,M);D(2),U(e)}},[L]);var q=p.useRef(),J=function(){v.default.cancel(q.current)};p.useEffect(function(){return J},[]);var K=(0,n.default)((0,n.default)({},E),B?W:null);return(0===L||1===L)&&(K.overflowY="hidden",K.overflowX="hidden"),p.createElement(m.default,{onResize:function(e){2===L&&(null==C||C(e),$&&(J(),q.current=(0,v.default)(function(){G()})))},disabled:!($||C)},p.createElement("textarea",(0,r.default)({},j,{ref:F,style:K,className:(0,s.default)(c,x,(0,o.default)({},"".concat(c,"-disabled"),S)),disabled:S,value:I,onChange:function(e){_(e.target.value),null==k||k(e)}})))}),C=["defaultValue","value","onFocus","onBlur","onChange","allowClear","maxLength","onCompositionStart","onCompositionEnd","suffix","prefixCls","showCount","count","className","style","disabled","hidden","classNames","styles","onResize","onClear","onPressEnter","readOnly","autoSize","onKeyDown"],x=p.default.forwardRef(function(e,t){var h,m,g=e.defaultValue,v=e.value,y=e.onFocus,b=e.onBlur,w=e.onChange,x=e.allowClear,E=e.maxLength,S=e.onCompositionStart,k=e.onCompositionEnd,j=e.suffix,O=e.prefixCls,T=void 0===O?"rc-textarea":O,I=e.showCount,_=e.count,F=e.className,P=e.style,R=e.disabled,N=e.hidden,M=e.classNames,B=e.styles,A=e.onResize,z=e.onClear,L=e.onPressEnter,D=e.readOnly,H=e.autoSize,V=e.onKeyDown,W=(0,l.default)(e,C),U=(0,f.default)(g,{value:v,defaultValue:g}),G=(0,i.default)(U,2),q=G[0],J=G[1],K=null==q?"":String(q),X=p.default.useState(!1),Q=(0,i.default)(X,2),Y=Q[0],Z=Q[1],ee=p.default.useRef(!1),et=p.default.useState(null),er=(0,i.default)(et,2),eo=er[0],en=er[1],ea=(0,p.useRef)(null),ei=(0,p.useRef)(null),el=function(){var e;return null==(e=ei.current)?void 0:e.textArea},es=function(){el().focus()};(0,p.useImperativeHandle)(t,function(){var e;return{resizableTextArea:ei.current,focus:es,blur:function(){el().blur()},nativeElement:(null==(e=ea.current)?void 0:e.nativeElement)||el()}}),(0,p.useEffect)(function(){Z(function(e){return!R&&e})},[R]);var ec=p.default.useState(null),eu=(0,i.default)(ec,2),ed=eu[0],ef=eu[1];p.default.useEffect(function(){if(ed){var e;(e=el()).setSelectionRange.apply(e,(0,a.default)(ed))}},[ed]);var ep=(0,u.default)(_,I),eh=null!=(h=ep.max)?h:E,em=Number(eh)>0,eg=ep.strategy(K),ev=!!eh&&eg>eh,ey=function(e,t){var r=t;!ee.current&&ep.exceedFormatter&&ep.max&&ep.strategy(t)>ep.max&&(r=ep.exceedFormatter(t,{max:ep.max}),t!==r&&ef([el().selectionStart||0,el().selectionEnd||0])),J(r),(0,d.resolveOnChange)(e.currentTarget,e,w,r)},eb=j;ep.show&&(m=ep.showFormatter?ep.showFormatter({value:K,count:eg,maxLength:eh}):"".concat(eg).concat(em?" / ".concat(eh):""),eb=p.default.createElement(p.default.Fragment,null,eb,p.default.createElement("span",{className:(0,s.default)("".concat(T,"-data-count"),null==M?void 0:M.count),style:null==B?void 0:B.count},m)));var ew=!H&&!I&&!x;return p.default.createElement(c.BaseInput,{ref:ea,value:K,allowClear:x,handleReset:function(e){J(""),es(),(0,d.resolveOnChange)(el(),e,w)},suffix:eb,prefixCls:T,classNames:(0,n.default)((0,n.default)({},M),{},{affixWrapper:(0,s.default)(null==M?void 0:M.affixWrapper,(0,o.default)((0,o.default)({},"".concat(T,"-show-count"),I),"".concat(T,"-textarea-allow-clear"),x))}),disabled:R,focused:Y,className:(0,s.default)(F,ev&&"".concat(T,"-out-of-range")),style:(0,n.default)((0,n.default)({},P),eo&&!ew?{height:"auto"}:{}),dataAttrs:{affixWrapper:{"data-count":"string"==typeof m?m:void 0}},hidden:N,readOnly:D,onClear:z},p.default.createElement($,(0,r.default)({},W,{autoSize:H,maxLength:E,onKeyDown:function(e){"Enter"===e.key&&L&&L(e),null==V||V(e)},onChange:function(e){ey(e,e.target.value)},onFocus:function(e){Z(!0),null==y||y(e)},onBlur:function(e){Z(!1),null==b||b(e)},onCompositionStart:function(e){ee.current=!0,null==S||S(e)},onCompositionEnd:function(e){ee.current=!1,ey(e,e.currentTarget.value),null==k||k(e)},className:(0,s.default)(null==M?void 0:M.textarea),style:(0,n.default)((0,n.default)({},null==B?void 0:B.textarea),{},{resize:null==P?void 0:P.resize}),disabled:R,prefixCls:T,onResize:function(e){var t;null==A||A(e),null!=(t=el())&&t.style.height&&en(!0)},ref:ei,readOnly:D})))});e.s(["default",0,x],598030)},635432,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(598030),n=e.i(330683),a=e.i(52956),i=e.i(242064),l=e.i(937328),s=e.i(321883),c=e.i(517455),u=e.i(62139),d=e.i(792812),f=e.i(249616),p=e.i(131299),h=e.i(349942),m=e.i(246422),g=e.i(838378),v=e.i(517458);let y=(0,m.genStyleHooks)(["Input","TextArea"],e=>(e=>{let{componentCls:t,paddingLG:r}=e,o=`${t}-textarea`;return{[`textarea${t}`]:{maxWidth:"100%",height:"auto",minHeight:e.controlHeight,lineHeight:e.lineHeight,verticalAlign:"bottom",transition:`all ${e.motionDurationSlow}`,resize:"vertical",[`&${t}-mouse-active`]:{transition:`all ${e.motionDurationSlow}, height 0s, width 0s`}},[`${t}-textarea-affix-wrapper-resize-dirty`]:{width:"auto"},[o]:{position:"relative","&-show-count":{[`${t}-data-count`]:{position:"absolute",bottom:e.calc(e.fontSize).mul(e.lineHeight).mul(-1).equal(),insetInlineEnd:0,color:e.colorTextDescription,whiteSpace:"nowrap",pointerEvents:"none"}},[` - &-allow-clear > ${t}, - &-affix-wrapper${o}-has-feedback ${t} - `]:{paddingInlineEnd:r},[`&-affix-wrapper${t}-affix-wrapper`]:{padding:0,[`> textarea${t}`]:{fontSize:"inherit",border:"none",outline:"none",background:"transparent",minHeight:e.calc(e.controlHeight).sub(e.calc(e.lineWidth).mul(2)).equal(),"&:focus":{boxShadow:"none !important"}},[`${t}-suffix`]:{margin:0,"> *:not(:last-child)":{marginInline:0},[`${t}-clear-icon`]:{position:"absolute",insetInlineEnd:e.paddingInline,insetBlockStart:e.paddingXS},[`${o}-suffix`]:{position:"absolute",top:0,insetInlineEnd:e.paddingInline,bottom:0,zIndex:1,display:"inline-flex",alignItems:"center",margin:"auto",pointerEvents:"none"}}},[`&-affix-wrapper${t}-affix-wrapper-rtl`]:{[`${t}-suffix`]:{[`${t}-data-count`]:{direction:"ltr",insetInlineStart:0}}},[`&-affix-wrapper${t}-affix-wrapper-sm`]:{[`${t}-suffix`]:{[`${t}-clear-icon`]:{insetInlineEnd:e.paddingInlineSM}}}}}})((0,g.mergeToken)(e,(0,v.initInputToken)(e))),v.initComponentToken,{resetFont:!1});var b=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let w=(0,t.forwardRef)((e,m)=>{var g;let{prefixCls:v,bordered:w=!0,size:$,disabled:C,status:x,allowClear:E,classNames:S,rootClassName:k,className:j,style:O,styles:T,variant:I,showCount:_,onMouseDown:F,onResize:P}=e,R=b(e,["prefixCls","bordered","size","disabled","status","allowClear","classNames","rootClassName","className","style","styles","variant","showCount","onMouseDown","onResize"]),{getPrefixCls:N,direction:M,allowClear:B,autoComplete:A,className:z,style:L,classNames:D,styles:H}=(0,i.useComponentConfig)("textArea"),V=t.useContext(l.default),{status:W,hasFeedback:U,feedbackIcon:G}=t.useContext(u.FormItemInputContext),q=(0,a.getMergedStatus)(W,x),J=t.useRef(null);t.useImperativeHandle(m,()=>{var e;return{resizableTextArea:null==(e=J.current)?void 0:e.resizableTextArea,focus:e=>{var t,r;(0,p.triggerFocus)(null==(r=null==(t=J.current)?void 0:t.resizableTextArea)?void 0:r.textArea,e)},blur:()=>{var e;return null==(e=J.current)?void 0:e.blur()}}});let K=N("input",v),X=(0,s.default)(K),[Q,Y,Z]=(0,h.useSharedStyle)(K,k),[ee]=y(K,X),{compactSize:et,compactItemClassnames:er}=(0,f.useCompactItemContext)(K,M),eo=(0,c.default)(e=>{var t;return null!=(t=null!=$?$:et)?t:e}),[en,ea]=(0,d.default)("textArea",I,w),ei=(0,n.default)(null!=E?E:B),[el,es]=t.useState(!1),[ec,eu]=t.useState(!1);return Q(ee(t.createElement(o.default,Object.assign({autoComplete:A},R,{style:Object.assign(Object.assign({},L),O),styles:Object.assign(Object.assign({},H),T),disabled:null!=C?C:V,allowClear:ei,className:(0,r.default)(Z,X,j,k,er,z,ec&&`${K}-textarea-affix-wrapper-resize-dirty`),classNames:Object.assign(Object.assign(Object.assign({},S),D),{textarea:(0,r.default)({[`${K}-sm`]:"small"===eo,[`${K}-lg`]:"large"===eo},Y,null==S?void 0:S.textarea,D.textarea,el&&`${K}-mouse-active`),variant:(0,r.default)({[`${K}-${en}`]:ea},(0,a.getStatusClassNames)(K,q)),affixWrapper:(0,r.default)(`${K}-textarea-affix-wrapper`,{[`${K}-affix-wrapper-rtl`]:"rtl"===M,[`${K}-affix-wrapper-sm`]:"small"===eo,[`${K}-affix-wrapper-lg`]:"large"===eo,[`${K}-textarea-show-count`]:_||(null==(g=e.count)?void 0:g.show)},Y)}),prefixCls:K,suffix:U&&t.createElement("span",{className:`${K}-textarea-suffix`},G),showCount:_,ref:J,onResize:e=>{var t,r;if(null==P||P(e),el&&"function"==typeof getComputedStyle){let e=null==(r=null==(t=J.current)?void 0:t.nativeElement)?void 0:r.querySelector("textarea");e&&"both"===getComputedStyle(e).resize&&eu(!0)}},onMouseDown:e=>{es(!0),null==F||F(e);let t=()=>{es(!1),document.removeEventListener("mouseup",t)};document.addEventListener("mouseup",t)}}))))});e.s(["default",0,w],635432)},311451,e=>{"use strict";var t=e.i(831357),r=e.i(90635),o=e.i(932399),n=e.i(236798),a=e.i(995387),i=e.i(635432);let l=r.default;l.Group=t.default,l.Search=a.default,l.TextArea=i.default,l.Password=n.default,l.OTP=o.default,e.s(["Input",0,l],311451)},247153,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"}}]},name:"down",theme:"outlined"};var n=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(n.default,(0,t.default)({},e,{ref:a,icon:o}))});e.s(["default",0,a],247153)},28651,536591,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(247153),o=e.i(931067);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z"}}]},name:"up",theme:"outlined"};var a=e.i(9583),i=t.forwardRef(function(e,r){return t.createElement(a.default,(0,o.default)({},e,{ref:r,icon:n}))});e.s(["default",0,i],536591);var l=e.i(343794),s=e.i(211577),c=e.i(410160),u=e.i(392221),d=e.i(703923),f=e.i(278409),p=e.i(233848);function h(){return"function"==typeof BigInt}function m(e){return!e&&0!==e&&!Number.isNaN(e)||!String(e).trim()}function g(e){var t=e.trim(),r=t.startsWith("-");r&&(t=t.slice(1)),(t=t.replace(/(\.\d*[^0])0*$/,"$1").replace(/\.0*$/,"").replace(/^0+/,"")).startsWith(".")&&(t="0".concat(t));var o=t||"0",n=o.split("."),a=n[0]||"0",i=n[1]||"0";"0"===a&&"0"===i&&(r=!1);var l=r?"-":"";return{negative:r,negativeStr:l,trimStr:o,integerStr:a,decimalStr:i,fullStr:"".concat(l).concat(o)}}function v(e){var t=String(e);return!Number.isNaN(Number(t))&&t.includes("e")}function y(e){var t=e.toLowerCase().split("e"),r=(0,u.default)(t,2),o=r[0],n=r[1],a=o.startsWith("-"),i=(a?o.slice(1):o).split("."),l=(0,u.default)(i,2),s=l[0],c=void 0===s?"0":s,d=l[1],f=void 0===d?"":d,p="".concat(c).concat(f).replace(/^0+/,"")||"0";return{decimal:f,digits:p,exponent:Number(void 0===n?"0":n),integer:c,negative:a}}function b(e){return e.exponent>=0?Math.max(0,e.decimal.length-e.exponent):Math.abs(e.exponent)+e.decimal.length}function w(e){var t=String(e);return v(e)?b(y(t)):t.includes(".")&&C(t)?t.length-t.indexOf(".")-1:0}function $(e){var t=String(e);if(v(e)){if(e>Number.MAX_SAFE_INTEGER)return String(h()?BigInt(e).toString():Number.MAX_SAFE_INTEGER);if(e100?function(e){var t=e.decimal,r=e.digits,o=e.exponent,n=e.integer,a=e.negative;if("0"===r)return"0";var i=n.replace(/^0+/,"").length,l=(t.match(/^0*/)||[""])[0].length,s=(i||-l)+o,c="";return c=s<=0?"0.".concat("0".repeat(-s)).concat(r):s>=r.length?"".concat(r).concat("0".repeat(s-r.length)):"".concat(r.slice(0,s),".").concat(r.slice(s)),"".concat(a?"-":"").concat(c)}(r):e.toFixed(o)}return g(t).fullStr}function C(e){return"number"==typeof e?!Number.isNaN(e):!!e&&(/^\s*-?\d+(\.\d+)?\s*$/.test(e)||/^\s*-?\d+\.\s*$/.test(e)||/^\s*-?\.\d+\s*$/.test(e))}var x=function(){function e(t){if((0,f.default)(this,e),(0,s.default)(this,"origin",""),(0,s.default)(this,"negative",void 0),(0,s.default)(this,"integer",void 0),(0,s.default)(this,"decimal",void 0),(0,s.default)(this,"decimalLen",void 0),(0,s.default)(this,"empty",void 0),(0,s.default)(this,"nan",void 0),m(t)){this.empty=!0;return}if(this.origin=String(t),"-"===t||Number.isNaN(t)){this.nan=!0;return}var r=t;if(v(r)&&(r=Number(r)),C(r="string"==typeof r?r:$(r))){var o=g(r);this.negative=o.negative;var n=o.trimStr.split(".");this.integer=BigInt(n[0]);var a=n[1]||"0";this.decimal=BigInt(a),this.decimalLen=a.length}else this.nan=!0}return(0,p.default)(e,[{key:"getMark",value:function(){return this.negative?"-":""}},{key:"getIntegerStr",value:function(){return this.integer.toString()}},{key:"getDecimalStr",value:function(){return this.decimal.toString().padStart(this.decimalLen,"0")}},{key:"alignDecimal",value:function(e){return BigInt("".concat(this.getMark()).concat(this.getIntegerStr()).concat(this.getDecimalStr().padEnd(e,"0")))}},{key:"negate",value:function(){var t=new e(this.toString());return t.negative=!t.negative,t}},{key:"cal",value:function(t,r,o){var n=Math.max(this.getDecimalStr().length,t.getDecimalStr().length),a=r(this.alignDecimal(n),t.alignDecimal(n)).toString(),i=o(n),l=g(a),s=l.negativeStr,c=l.trimStr,u="".concat(s).concat(c.padStart(i+1,"0"));return new e("".concat(u.slice(0,-i),".").concat(u.slice(-i)))}},{key:"add",value:function(t){if(this.isInvalidate())return new e(t);var r=new e(t);return r.isInvalidate()?this:this.cal(r,function(e,t){return e+t},function(e){return e})}},{key:"multi",value:function(t){var r=new e(t);return this.isInvalidate()||r.isInvalidate()?new e(NaN):this.cal(r,function(e,t){return e*t},function(e){return 2*e})}},{key:"isEmpty",value:function(){return this.empty}},{key:"isNaN",value:function(){return this.nan}},{key:"isInvalidate",value:function(){return this.isEmpty()||this.isNaN()}},{key:"equals",value:function(e){return this.toString()===(null==e?void 0:e.toString())}},{key:"lessEquals",value:function(e){return 0>=this.add(e.negate().toString()).toNumber()}},{key:"toNumber",value:function(){return this.isNaN()?NaN:Number(this.toString())}},{key:"toString",value:function(){var e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return e?this.isInvalidate()?"":g("".concat(this.getMark()).concat(this.getIntegerStr(),".").concat(this.getDecimalStr())).fullStr:this.origin}}]),e}(),E=function(){function e(t){if((0,f.default)(this,e),(0,s.default)(this,"origin",""),(0,s.default)(this,"number",void 0),(0,s.default)(this,"empty",void 0),m(t)){this.empty=!0;return}this.origin=String(t),this.number=Number(t)}return(0,p.default)(e,[{key:"negate",value:function(){return new e(-this.toNumber())}},{key:"add",value:function(t){if(this.isInvalidate())return new e(t);var r=Number(t);if(Number.isNaN(r))return this;var o=this.number+r;if(o>Number.MAX_SAFE_INTEGER)return new e(Number.MAX_SAFE_INTEGER);if(oNumber.MAX_SAFE_INTEGER)return new e(Number.MAX_SAFE_INTEGER);if(o=this.add(e.negate().toString()).toNumber()}},{key:"toNumber",value:function(){return this.number}},{key:"toString",value:function(){var e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return e?this.isInvalidate()?"":v(this.number)&&w(this.number)>100?String(this.number):$(this.number):this.origin}}]),e}();function S(e){return h()?new x(e):new E(e)}function k(e,t,r){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(""===e)return"";var n=g(e),a=n.negativeStr,i=n.integerStr,l=n.decimalStr,s="".concat(t).concat(l),c="".concat(a).concat(i);if(r>=0){var u=Number(l[r]);return u>=5&&!o?k(S(e).add("".concat(a,"0.").concat("0".repeat(r)).concat(10-u)).toString(),t,r,o):0===r?c:"".concat(c).concat(t).concat(l.padEnd(r,"0").slice(0,r))}return".0"===s?c:"".concat(c).concat(s)}e.i(175636);var j=e.i(302384),O=e.i(174428),T=e.i(611935),I=e.i(883110),_=e.i(614761);let F=function(){var e=(0,t.useState)(!1),r=(0,u.default)(e,2),o=r[0],n=r[1];return(0,O.default)(function(){n((0,_.default)())},[]),o};var P=e.i(963188);function R(e){var r=e.prefixCls,n=e.upNode,a=e.downNode,i=e.upDisabled,c=e.downDisabled,u=e.onStep,d=t.useRef(),f=t.useRef([]),p=t.useRef();p.current=u;var h=function(){clearTimeout(d.current)},m=function(e,t){e.preventDefault(),h(),p.current(t),d.current=setTimeout(function e(){p.current(t),d.current=setTimeout(e,200)},600)};if(t.useEffect(function(){return function(){h(),f.current.forEach(function(e){return P.default.cancel(e)})}},[]),F())return null;var g="".concat(r,"-handler"),v=(0,l.default)(g,"".concat(g,"-up"),(0,s.default)({},"".concat(g,"-up-disabled"),i)),y=(0,l.default)(g,"".concat(g,"-down"),(0,s.default)({},"".concat(g,"-down-disabled"),c)),b=function(){return f.current.push((0,P.default)(h))},w={unselectable:"on",role:"button",onMouseUp:b,onMouseLeave:b};return t.createElement("div",{className:"".concat(g,"-wrap")},t.createElement("span",(0,o.default)({},w,{onMouseDown:function(e){m(e,!0)},"aria-label":"Increase Value","aria-disabled":i,className:v}),n||t.createElement("span",{unselectable:"on",className:"".concat(r,"-handler-up-inner")})),t.createElement("span",(0,o.default)({},w,{onMouseDown:function(e){m(e,!1)},"aria-label":"Decrease Value","aria-disabled":c,className:y}),a||t.createElement("span",{unselectable:"on",className:"".concat(r,"-handler-down-inner")})))}function N(e){var t="number"==typeof e?$(e):g(e).fullStr;return t.includes(".")?g(t.replace(/(\d)\.(\d)/g,"$1$2.")).fullStr:e+"0"}var M=e.i(131299);let B=function(){var e=(0,t.useRef)(0),r=function(){P.default.cancel(e.current)};return(0,t.useEffect)(function(){return r},[]),function(t){r(),e.current=(0,P.default)(function(){t()})}};var A=["prefixCls","className","style","min","max","step","defaultValue","value","disabled","readOnly","upHandler","downHandler","keyboard","changeOnWheel","controls","classNames","stringMode","parser","formatter","precision","decimalSeparator","onChange","onInput","onPressEnter","onStep","changeOnBlur","domRef"],z=["disabled","style","prefixCls","value","prefix","suffix","addonBefore","addonAfter","className","classNames"],L=function(e,t){return e||t.isEmpty()?t.toString():t.toNumber()},D=function(e){var t=S(e);return t.isInvalidate()?null:t},H=t.forwardRef(function(e,r){var n,a,i=e.prefixCls,f=e.className,p=e.style,h=e.min,m=e.max,g=e.step,v=void 0===g?1:g,y=e.defaultValue,b=e.value,x=e.disabled,E=e.readOnly,j=e.upHandler,_=e.downHandler,F=e.keyboard,P=e.changeOnWheel,M=void 0!==P&&P,z=e.controls,H=(e.classNames,e.stringMode),V=e.parser,W=e.formatter,U=e.precision,G=e.decimalSeparator,q=e.onChange,J=e.onInput,K=e.onPressEnter,X=e.onStep,Q=e.changeOnBlur,Y=void 0===Q||Q,Z=e.domRef,ee=(0,d.default)(e,A),et="".concat(i,"-input"),er=t.useRef(null),eo=t.useState(!1),en=(0,u.default)(eo,2),ea=en[0],ei=en[1],el=t.useRef(!1),es=t.useRef(!1),ec=t.useRef(!1),eu=t.useState(function(){return S(null!=b?b:y)}),ed=(0,u.default)(eu,2),ef=ed[0],ep=ed[1],eh=t.useCallback(function(e,t){if(!t)return U>=0?U:Math.max(w(e),w(v))},[U,v]),em=t.useCallback(function(e){var t=String(e);if(V)return V(t);var r=t;return G&&(r=r.replace(G,".")),r.replace(/[^\w.-]+/g,"")},[V,G]),eg=t.useRef(""),ev=t.useCallback(function(e,t){if(W)return W(e,{userTyping:t,input:String(eg.current)});var r="number"==typeof e?$(e):e;if(!t){var o=eh(r,t);C(r)&&(G||o>=0)&&(r=k(r,G||".",o))}return r},[W,eh,G]),ey=t.useState(function(){var e=null!=y?y:b;return ef.isInvalidate()&&["string","number"].includes((0,c.default)(e))?Number.isNaN(e)?"":e:ev(ef.toString(),!1)}),eb=(0,u.default)(ey,2),ew=eb[0],e$=eb[1];function eC(e,t){e$(ev(e.isInvalidate()?e.toString(!1):e.toString(!t),t))}eg.current=ew;var ex=t.useMemo(function(){return D(m)},[m,U]),eE=t.useMemo(function(){return D(h)},[h,U]),eS=t.useMemo(function(){return!(!ex||!ef||ef.isInvalidate())&&ex.lessEquals(ef)},[ex,ef]),ek=t.useMemo(function(){return!(!eE||!ef||ef.isInvalidate())&&ef.lessEquals(eE)},[eE,ef]),ej=(n=er.current,a=(0,t.useRef)(null),[function(){try{var e=n.selectionStart,t=n.selectionEnd,r=n.value,o=r.substring(0,e),i=r.substring(t);a.current={start:e,end:t,value:r,beforeTxt:o,afterTxt:i}}catch(e){}},function(){if(n&&a.current&&ea)try{var e=n.value,t=a.current,r=t.beforeTxt,o=t.afterTxt,i=t.start,l=e.length;if(e.startsWith(r))l=r.length;else if(e.endsWith(o))l=e.length-a.current.afterTxt.length;else{var s=r[i-1],c=e.indexOf(s,i-1);-1!==c&&(l=c+1)}n.setSelectionRange(l,l)}catch(e){(0,I.default)(!1,"Something warning of cursor restore. Please fire issue about this: ".concat(e.message))}}]),eO=(0,u.default)(ej,2),eT=eO[0],eI=eO[1],e_=function(e){return ex&&!e.lessEquals(ex)?ex:eE&&!eE.lessEquals(e)?eE:null},eF=function(e){return!e_(e)},eP=function(e,t){var r=e,o=eF(r)||r.isEmpty();if(r.isEmpty()||t||(r=e_(r)||r,o=!0),!E&&!x&&o){var n,a=r.toString(),i=eh(a,t);return i>=0&&(eF(r=S(k(a,".",i)))||(r=S(k(a,".",i,!0)))),r.equals(ef)||(n=r,void 0===b&&ep(n),null==q||q(r.isEmpty()?null:L(H,r)),void 0===b&&eC(r,t)),r}return ef},eR=B(),eN=function e(t){if(eT(),eg.current=t,e$(t),!es.current){var r=S(em(t));r.isNaN()||eP(r,!0)}null==J||J(t),eR(function(){var r=t;V||(r=t.replace(/。/g,".")),r!==t&&e(r)})},eM=function(e){if((!e||!eS)&&(e||!ek)){el.current=!1;var t,r=S(ec.current?N(v):v);e||(r=r.negate());var o=eP((ef||S(0)).add(r.toString()),!1);null==X||X(L(H,o),{offset:ec.current?N(v):v,type:e?"up":"down"}),null==(t=er.current)||t.focus()}},eB=function(e){var t,r=S(em(ew));t=r.isNaN()?eP(ef,e):eP(r,e),void 0!==b?eC(ef,!1):t.isNaN()||eC(t,!1)};return t.useEffect(function(){if(M&&ea){var e=function(e){eM(e.deltaY<0),e.preventDefault()},t=er.current;if(t)return t.addEventListener("wheel",e,{passive:!1}),function(){return t.removeEventListener("wheel",e)}}}),(0,O.useLayoutUpdateEffect)(function(){ef.isInvalidate()||eC(ef,!1)},[U,W]),(0,O.useLayoutUpdateEffect)(function(){var e=S(b);ep(e);var t=S(em(ew));e.equals(t)&&el.current&&!W||eC(e,el.current)},[b]),(0,O.useLayoutUpdateEffect)(function(){W&&eI()},[ew]),t.createElement("div",{ref:Z,className:(0,l.default)(i,f,(0,s.default)((0,s.default)((0,s.default)((0,s.default)((0,s.default)({},"".concat(i,"-focused"),ea),"".concat(i,"-disabled"),x),"".concat(i,"-readonly"),E),"".concat(i,"-not-a-number"),ef.isNaN()),"".concat(i,"-out-of-range"),!ef.isInvalidate()&&!eF(ef))),style:p,onFocus:function(){ei(!0)},onBlur:function(){Y&&eB(!1),ei(!1),el.current=!1},onKeyDown:function(e){var t=e.key,r=e.shiftKey;el.current=!0,ec.current=r,"Enter"===t&&(es.current||(el.current=!1),eB(!1),null==K||K(e)),!1!==F&&!es.current&&["Up","ArrowUp","Down","ArrowDown"].includes(t)&&(eM("Up"===t||"ArrowUp"===t),e.preventDefault())},onKeyUp:function(){el.current=!1,ec.current=!1},onCompositionStart:function(){es.current=!0},onCompositionEnd:function(){es.current=!1,eN(er.current.value)},onBeforeInput:function(){el.current=!0}},(void 0===z||z)&&t.createElement(R,{prefixCls:i,upNode:j,downNode:_,upDisabled:eS,downDisabled:ek,onStep:eM}),t.createElement("div",{className:"".concat(et,"-wrap")},t.createElement("input",(0,o.default)({autoComplete:"off",role:"spinbutton","aria-valuemin":h,"aria-valuemax":m,"aria-valuenow":ef.isInvalidate()?null:ef.toString(),step:v},ee,{ref:(0,T.composeRef)(er,r),className:et,value:ew,onChange:function(e){eN(e.target.value)},disabled:x,readOnly:E}))))}),V=t.forwardRef(function(e,r){var n=e.disabled,a=e.style,i=e.prefixCls,l=void 0===i?"rc-input-number":i,s=e.value,c=e.prefix,u=e.suffix,f=e.addonBefore,p=e.addonAfter,h=e.className,m=e.classNames,g=(0,d.default)(e,z),v=t.useRef(null),y=t.useRef(null),b=t.useRef(null),w=function(e){b.current&&(0,M.triggerFocus)(b.current,e)};return t.useImperativeHandle(r,function(){var e,t;return e=b.current,t={focus:w,nativeElement:v.current.nativeElement||y.current},"u">typeof Proxy&&e?new Proxy(e,{get:function(e,r){if(t[r])return t[r];var o=e[r];return"function"==typeof o?o.bind(e):o}}):e}),t.createElement(j.BaseInput,{className:h,triggerFocus:w,prefixCls:l,value:s,disabled:n,style:a,prefix:c,suffix:u,addonAfter:p,addonBefore:f,classNames:m,components:{affixWrapper:"div",groupWrapper:"div",wrapper:"div",groupAddon:"div"},ref:v},t.createElement(H,(0,o.default)({prefixCls:l,disabled:n,ref:b,domRef:y,className:null==m?void 0:m.input},g)))}),W=e.i(617206),U=e.i(52956),G=e.i(609587),q=e.i(242064),J=e.i(937328),K=e.i(321883),X=e.i(517455),Q=e.i(62139),Y=e.i(792812),Z=e.i(249616);e.i(296059);var ee=e.i(915654),et=e.i(349942),er=e.i(517458),eo=e.i(889943),en=e.i(183293),ea=e.i(372409),ei=e.i(246422),el=e.i(838378),es=e.i(135551);let ec=({componentCls:e,borderRadiusSM:t,borderRadiusLG:r},o)=>{let n="lg"===o?r:t;return{[`&-${o}`]:{[`${e}-handler-wrap`]:{borderStartEndRadius:n,borderEndEndRadius:n},[`${e}-handler-up`]:{borderStartEndRadius:n},[`${e}-handler-down`]:{borderEndEndRadius:n}}}},eu=(0,ei.genStyleHooks)("InputNumber",e=>{let t=(0,el.mergeToken)(e,(0,er.initInputToken)(e));return[(e=>{let{componentCls:t,lineWidth:r,lineType:o,borderRadius:n,inputFontSizeSM:a,inputFontSizeLG:i,controlHeightLG:l,controlHeightSM:s,colorError:c,paddingInlineSM:u,paddingBlockSM:d,paddingBlockLG:f,paddingInlineLG:p,colorIcon:h,motionDurationMid:m,handleHoverColor:g,handleOpacity:v,paddingInline:y,paddingBlock:b,handleBg:w,handleActiveBg:$,colorTextDisabled:C,borderRadiusSM:x,borderRadiusLG:E,controlWidth:S,handleBorderColor:k,filledHandleBg:j,lineHeightLG:O,calc:T}=e;return[{[t]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},(0,en.resetComponent)(e)),(0,et.genBasicInputStyle)(e)),{display:"inline-block",width:S,margin:0,padding:0,borderRadius:n}),(0,eo.genOutlinedStyle)(e,{[`${t}-handler-wrap`]:{background:w,[`${t}-handler-down`]:{borderBlockStart:`${(0,ee.unit)(r)} ${o} ${k}`}}})),(0,eo.genFilledStyle)(e,{[`${t}-handler-wrap`]:{background:j,[`${t}-handler-down`]:{borderBlockStart:`${(0,ee.unit)(r)} ${o} ${k}`}},"&:focus-within":{[`${t}-handler-wrap`]:{background:w}}})),(0,eo.genUnderlinedStyle)(e,{[`${t}-handler-wrap`]:{background:w,[`${t}-handler-down`]:{borderBlockStart:`${(0,ee.unit)(r)} ${o} ${k}`}}})),(0,eo.genBorderlessStyle)(e)),{"&-rtl":{direction:"rtl",[`${t}-input`]:{direction:"rtl"}},"&-lg":{padding:0,fontSize:i,lineHeight:O,borderRadius:E,[`input${t}-input`]:{height:T(l).sub(T(r).mul(2)).equal(),padding:`${(0,ee.unit)(f)} ${(0,ee.unit)(p)}`}},"&-sm":{padding:0,fontSize:a,borderRadius:x,[`input${t}-input`]:{height:T(s).sub(T(r).mul(2)).equal(),padding:`${(0,ee.unit)(d)} ${(0,ee.unit)(u)}`}},"&-out-of-range":{[`${t}-input-wrap`]:{input:{color:c}}},"&-group":Object.assign(Object.assign(Object.assign({},(0,en.resetComponent)(e)),(0,et.genInputGroupStyle)(e)),{"&-wrapper":Object.assign(Object.assign(Object.assign({display:"inline-block",textAlign:"start",verticalAlign:"top",[`${t}-affix-wrapper`]:{width:"100%"},"&-lg":{[`${t}-group-addon`]:{borderRadius:E,fontSize:e.fontSizeLG}},"&-sm":{[`${t}-group-addon`]:{borderRadius:x}}},(0,eo.genOutlinedGroupStyle)(e)),(0,eo.genFilledGroupStyle)(e)),{[`&:not(${t}-compact-first-item):not(${t}-compact-last-item)${t}-compact-item`]:{[`${t}, ${t}-group-addon`]:{borderRadius:0}},[`&:not(${t}-compact-last-item)${t}-compact-first-item`]:{[`${t}, ${t}-group-addon`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:not(${t}-compact-first-item)${t}-compact-last-item`]:{[`${t}, ${t}-group-addon`]:{borderStartStartRadius:0,borderEndStartRadius:0}}})}),[`&-disabled ${t}-input`]:{cursor:"not-allowed"},[t]:{"&-input":Object.assign(Object.assign(Object.assign(Object.assign({},(0,en.resetComponent)(e)),{width:"100%",padding:`${(0,ee.unit)(b)} ${(0,ee.unit)(y)}`,textAlign:"start",backgroundColor:"transparent",border:0,borderRadius:n,outline:0,transition:`all ${m} linear`,appearance:"textfield",fontSize:"inherit"}),(0,et.genPlaceholderStyle)(e.colorTextPlaceholder)),{'&[type="number"]::-webkit-inner-spin-button, &[type="number"]::-webkit-outer-spin-button':{margin:0,appearance:"none"}})},[`&:hover ${t}-handler-wrap, &-focused ${t}-handler-wrap`]:{width:e.handleWidth,opacity:1}})},{[t]:Object.assign(Object.assign(Object.assign({[`${t}-handler-wrap`]:{position:"absolute",insetBlockStart:0,insetInlineEnd:0,width:e.handleVisibleWidth,opacity:v,height:"100%",borderStartStartRadius:0,borderStartEndRadius:n,borderEndEndRadius:n,borderEndStartRadius:0,display:"flex",flexDirection:"column",alignItems:"stretch",transition:`all ${m}`,overflow:"hidden",[`${t}-handler`]:{display:"flex",alignItems:"center",justifyContent:"center",flex:"auto",height:"40%",[` - ${t}-handler-up-inner, - ${t}-handler-down-inner - `]:{marginInlineEnd:0,fontSize:e.handleFontSize}}},[`${t}-handler`]:{height:"50%",overflow:"hidden",color:h,fontWeight:"bold",lineHeight:0,textAlign:"center",cursor:"pointer",borderInlineStart:`${(0,ee.unit)(r)} ${o} ${k}`,transition:`all ${m} linear`,"&:active":{background:$},"&:hover":{height:"60%",[` - ${t}-handler-up-inner, - ${t}-handler-down-inner - `]:{color:g}},"&-up-inner, &-down-inner":Object.assign(Object.assign({},(0,en.resetIcon)()),{color:h,transition:`all ${m} linear`,userSelect:"none"})},[`${t}-handler-up`]:{borderStartEndRadius:n},[`${t}-handler-down`]:{borderEndEndRadius:n}},ec(e,"lg")),ec(e,"sm")),{"&-disabled, &-readonly":{[`${t}-handler-wrap`]:{display:"none"},[`${t}-input`]:{color:"inherit"}},[` - ${t}-handler-up-disabled, - ${t}-handler-down-disabled - `]:{cursor:"not-allowed"},[` - ${t}-handler-up-disabled:hover &-handler-up-inner, - ${t}-handler-down-disabled:hover &-handler-down-inner - `]:{color:C}})}]})(t),(e=>{let{componentCls:t,paddingBlock:r,paddingInline:o,inputAffixPadding:n,controlWidth:a,borderRadiusLG:i,borderRadiusSM:l,paddingInlineLG:s,paddingInlineSM:c,paddingBlockLG:u,paddingBlockSM:d,motionDurationMid:f}=e;return{[`${t}-affix-wrapper`]:Object.assign(Object.assign({[`input${t}-input`]:{padding:`${(0,ee.unit)(r)} 0`}},(0,et.genBasicInputStyle)(e)),{position:"relative",display:"inline-flex",alignItems:"center",width:a,padding:0,paddingInlineStart:o,"&-lg":{borderRadius:i,paddingInlineStart:s,[`input${t}-input`]:{padding:`${(0,ee.unit)(u)} 0`}},"&-sm":{borderRadius:l,paddingInlineStart:c,[`input${t}-input`]:{padding:`${(0,ee.unit)(d)} 0`}},[`&:not(${t}-disabled):hover`]:{zIndex:1},"&-focused, &:focus":{zIndex:1},[`&-disabled > ${t}-disabled`]:{background:"transparent"},[`> div${t}`]:{width:"100%",border:"none",outline:"none",[`&${t}-focused`]:{boxShadow:"none !important"}},"&::before":{display:"inline-block",width:0,visibility:"hidden",content:'"\\a0"'},[`${t}-handler-wrap`]:{zIndex:2},[t]:{position:"static",color:"inherit","&-prefix, &-suffix":{display:"flex",flex:"none",alignItems:"center",pointerEvents:"none"},"&-prefix":{marginInlineEnd:n},"&-suffix":{insetBlockStart:0,insetInlineEnd:0,height:"100%",marginInlineEnd:o,marginInlineStart:n,transition:`margin ${f}`}},[`&:hover ${t}-handler-wrap, &-focused ${t}-handler-wrap`]:{width:e.handleWidth,opacity:1},[`&:not(${t}-affix-wrapper-without-controls):hover ${t}-suffix`]:{marginInlineEnd:e.calc(e.handleWidth).add(o).equal()}}),[`${t}-underlined`]:{borderRadius:0}}})(t),(0,ea.genCompactItemStyle)(t)]},e=>{var t;let r=null!=(t=e.handleVisible)?t:"auto",o=e.controlHeightSM-2*e.lineWidth;return Object.assign(Object.assign({},(0,er.initComponentToken)(e)),{controlWidth:90,handleWidth:o,handleFontSize:e.fontSize/2,handleVisible:r,handleActiveBg:e.colorFillAlter,handleBg:e.colorBgContainer,filledHandleBg:new es.FastColor(e.colorFillSecondary).onBackground(e.colorBgContainer).toHexString(),handleHoverColor:e.colorPrimary,handleBorderColor:e.colorBorder,handleOpacity:+(!0===r),handleVisibleWidth:!0===r?o:0})},{unitless:{handleOpacity:!0},resetFont:!1});var ed=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let ef=t.forwardRef((e,o)=>{let{getPrefixCls:n,direction:a}=t.useContext(q.ConfigContext),s=t.useRef(null);t.useImperativeHandle(o,()=>s.current);let{className:c,rootClassName:u,size:d,disabled:f,prefixCls:p,addonBefore:h,addonAfter:m,prefix:g,suffix:v,bordered:y,readOnly:b,status:w,controls:$,variant:C}=e,x=ed(e,["className","rootClassName","size","disabled","prefixCls","addonBefore","addonAfter","prefix","suffix","bordered","readOnly","status","controls","variant"]),E=n("input-number",p),S=(0,K.default)(E),[k,j,O]=eu(E,S),{compactSize:T,compactItemClassnames:I}=(0,Z.useCompactItemContext)(E,a),_=t.createElement(i,{className:`${E}-handler-up-inner`}),F=t.createElement(r.default,{className:`${E}-handler-down-inner`}),P="boolean"==typeof $?$:void 0;"object"==typeof $&&(_=void 0===$.upIcon?_:t.createElement("span",{className:`${E}-handler-up-inner`},$.upIcon),F=void 0===$.downIcon?F:t.createElement("span",{className:`${E}-handler-down-inner`},$.downIcon));let{hasFeedback:R,status:N,isFormItemInput:M,feedbackIcon:B}=t.useContext(Q.FormItemInputContext),A=(0,U.getMergedStatus)(N,w),z=(0,X.default)(e=>{var t;return null!=(t=null!=d?d:T)?t:e}),L=t.useContext(J.default),D=null!=f?f:L,[H,G]=(0,Y.default)("inputNumber",C,y),ee=R&&t.createElement(t.Fragment,null,B),et=(0,l.default)({[`${E}-lg`]:"large"===z,[`${E}-sm`]:"small"===z,[`${E}-rtl`]:"rtl"===a,[`${E}-in-form-item`]:M},j),er=`${E}-group`;return k(t.createElement(V,Object.assign({ref:s,disabled:D,className:(0,l.default)(O,S,c,u,I),upHandler:_,downHandler:F,prefixCls:E,readOnly:b,controls:P,prefix:g,suffix:ee||v,addonBefore:h&&t.createElement(W.default,{form:!0,space:!0},h),addonAfter:m&&t.createElement(W.default,{form:!0,space:!0},m),classNames:{input:et,variant:(0,l.default)({[`${E}-${H}`]:G},(0,U.getStatusClassNames)(E,A,R)),affixWrapper:(0,l.default)({[`${E}-affix-wrapper-sm`]:"small"===z,[`${E}-affix-wrapper-lg`]:"large"===z,[`${E}-affix-wrapper-rtl`]:"rtl"===a,[`${E}-affix-wrapper-without-controls`]:!1===$||D||b},j),wrapper:(0,l.default)({[`${er}-rtl`]:"rtl"===a},j),groupWrapper:(0,l.default)({[`${E}-group-wrapper-sm`]:"small"===z,[`${E}-group-wrapper-lg`]:"large"===z,[`${E}-group-wrapper-rtl`]:"rtl"===a,[`${E}-group-wrapper-${H}`]:G},(0,U.getStatusClassNames)(`${E}-group-wrapper`,A,R),j)}},x)))});ef._InternalPanelDoNotUseOrYouWillBeFired=e=>t.createElement(G.default,{theme:{components:{InputNumber:{handleVisible:!0}}}},t.createElement(ef,Object.assign({},e))),e.s(["InputNumber",0,ef],28651)},147138,210803,266623,794721,232176,843375,229548,e=>{"use strict";var t=e.i(410160),r=e.i(271645),o=e.i(343794);let n=function(e){var t=e.className,n=e.customizeIcon,a=e.customizeIconProps,i=e.children,l=e.onMouseDown,s=e.onClick,c="function"==typeof n?n(a):n;return r.createElement("span",{className:t,onMouseDown:function(e){e.preventDefault(),null==l||l(e)},style:{userSelect:"none",WebkitUserSelect:"none"},unselectable:"on",onClick:s,"aria-hidden":!0},void 0!==c?c:r.createElement("span",{className:(0,o.default)(t.split(/\s+/).map(function(e){return"".concat(e,"-icon")}))},i))};e.s(["default",0,n],210803),e.s(["useAllowClear",0,function(e,o,a,i,l){var s=arguments.length>5&&void 0!==arguments[5]&&arguments[5],c=arguments.length>6?arguments[6]:void 0,u=arguments.length>7?arguments[7]:void 0,d=r.default.useMemo(function(){return"object"===(0,t.default)(i)?i.clearIcon:l||void 0},[i,l]);return{allowClear:r.default.useMemo(function(){return!s&&!!i&&(!!a.length||!!c)&&("combobox"!==u||""!==c)},[i,s,a.length,c,u]),clearIcon:r.default.createElement(n,{className:"".concat(e,"-clear"),onMouseDown:o,customizeIcon:d},"×")}}],147138);var a=r.createContext(null);e.s(["BaseSelectContext",0,a,"default",0,function(){return r.useContext(a)}],266623);var i=e.i(392221);e.s(["default",0,function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=r.useState(!1),o=(0,i.default)(t,2),n=o[0],a=o[1],l=r.useRef(null),s=function(){window.clearTimeout(l.current)};return r.useEffect(function(){return s},[]),[n,function(t,r){s(),l.current=window.setTimeout(function(){a(t),r&&r()},e)},s]}],794721),e.s(["default",0,function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:250,t=r.useRef(null),o=r.useRef(null);return r.useEffect(function(){return function(){window.clearTimeout(o.current)}},[]),[function(){return t.current},function(r){(r||null===t.current)&&(t.current=r),window.clearTimeout(o.current),o.current=window.setTimeout(function(){t.current=null},e)}]}],232176),e.s(["default",0,function(e,t,o,n){var a=r.useRef(null);a.current={open:t,triggerOpen:o,customizedTrigger:n},r.useEffect(function(){function t(t){if(null==(r=a.current)||!r.customizedTrigger){var r,o=t.target;o.shadowRoot&&t.composed&&(o=t.composedPath()[0]||o),a.current.open&&e().filter(function(e){return e}).every(function(e){return!e.contains(o)&&e!==o})&&a.current.triggerOpen(!1)}}return window.addEventListener("mousedown",t),function(){return window.removeEventListener("mousedown",t)}},[])}],843375);var l=e.i(404948);e.s(["isValidateOpenKey",0,function(e){return e&&![l.default.ESC,l.default.SHIFT,l.default.BACKSPACE,l.default.TAB,l.default.WIN_KEY,l.default.ALT,l.default.META,l.default.WIN_KEY_RIGHT,l.default.CTRL,l.default.SEMICOLON,l.default.EQUALS,l.default.CAPS_LOCK,l.default.CONTEXT_MENU,l.default.F1,l.default.F2,l.default.F3,l.default.F4,l.default.F5,l.default.F6,l.default.F7,l.default.F8,l.default.F9,l.default.F10,l.default.F11,l.default.F12].includes(e)}],229548)},658315,e=>{"use strict";var t=e.i(931067),r=e.i(209428),o=e.i(392221),n=e.i(703923),a=e.i(271645),i=e.i(343794),l=e.i(430073),s=e.i(174428),c=["prefixCls","invalidate","item","renderItem","responsive","responsiveDisabled","registerSize","itemKey","className","style","children","display","order","component"],u=void 0,d=a.forwardRef(function(e,o){var s,d=e.prefixCls,f=e.invalidate,p=e.item,h=e.renderItem,m=e.responsive,g=e.responsiveDisabled,v=e.registerSize,y=e.itemKey,b=e.className,w=e.style,$=e.children,C=e.display,x=e.order,E=e.component,S=(0,n.default)(e,c),k=m&&!C;a.useEffect(function(){return function(){v(y,null)}},[]);var j=h&&p!==u?h(p,{index:x}):$;f||(s={opacity:+!k,height:k?0:u,overflowY:k?"hidden":u,order:m?x:u,pointerEvents:k?"none":u,position:k?"absolute":u});var O={};k&&(O["aria-hidden"]=!0);var T=a.createElement(void 0===E?"div":E,(0,t.default)({className:(0,i.default)(!f&&d,b),style:(0,r.default)((0,r.default)({},s),w)},O,S,{ref:o}),j);return m&&(T=a.createElement(l.default,{onResize:function(e){v(y,e.offsetWidth)},disabled:g},T)),T});d.displayName="Item";var f=e.i(175066),p=e.i(174080),h=e.i(963188);function m(e,t){var r=a.useState(t),n=(0,o.default)(r,2),i=n[0],l=n[1];return[i,(0,f.default)(function(t){e(function(){l(t)})})]}var g=a.default.createContext(null),v=["component"],y=["className"],b=["className"],w=a.forwardRef(function(e,r){var o=a.useContext(g);if(!o){var l=e.component,s=(0,n.default)(e,v);return a.createElement(void 0===l?"div":l,(0,t.default)({},s,{ref:r}))}var c=o.className,u=(0,n.default)(o,y),f=e.className,p=(0,n.default)(e,b);return a.createElement(g.Provider,{value:null},a.createElement(d,(0,t.default)({ref:r,className:(0,i.default)(c,f)},u,p)))});w.displayName="RawItem";var $=["prefixCls","data","renderItem","renderRawItem","itemKey","itemWidth","ssr","style","className","maxCount","renderRest","renderRawRest","prefix","suffix","component","itemComponent","onVisibleChange"],C="responsive",x="invalidate";function E(e){return"+ ".concat(e.length," ...")}var S=a.forwardRef(function(e,c){var u,f=e.prefixCls,v=void 0===f?"rc-overflow":f,y=e.data,b=void 0===y?[]:y,w=e.renderItem,S=e.renderRawItem,k=e.itemKey,j=e.itemWidth,O=void 0===j?10:j,T=e.ssr,I=e.style,_=e.className,F=e.maxCount,P=e.renderRest,R=e.renderRawRest,N=e.prefix,M=e.suffix,B=e.component,A=e.itemComponent,z=e.onVisibleChange,L=(0,n.default)(e,$),D="full"===T,H=(u=a.useRef(null),function(e){if(!u.current){u.current=[];var t=function(){(0,p.unstable_batchedUpdates)(function(){u.current.forEach(function(e){e()}),u.current=null})};if("u"F,eP=(0,a.useMemo)(function(){var e=b;return eI?e=null===U&&D?b:b.slice(0,Math.min(b.length,q/O)):"number"==typeof F&&(e=b.slice(0,F)),e},[b,O,U,F,eI]),eR=(0,a.useMemo)(function(){return eI?b.slice(eC+1):b.slice(eP.length)},[b,eP,eI,eC]),eN=(0,a.useCallback)(function(e,t){var r;return"function"==typeof k?k(e):null!=(r=k&&(null==e?void 0:e[k]))?r:t},[k]),eM=(0,a.useCallback)(w||function(e){return e},[w]);function eB(e,t,r){(ew!==e||void 0!==t&&t!==eg)&&(e$(e),r||(ek(eq){eB(o-1,e-n-ef+en);break}}M&&ez(0)+ef>q&&ev(null)}},[q,X,en,es,ef,eN,eP]);var eL=eS&&!!eR.length,eD={};null!==eg&&eI&&(eD={position:"absolute",left:eg,top:0});var eH={prefixCls:ej,responsive:eI,component:A,invalidate:e_},eV=S?function(e,t){var o=eN(e,t);return a.createElement(g.Provider,{key:o,value:(0,r.default)((0,r.default)({},eH),{},{order:t,item:e,itemKey:o,registerSize:eA,display:t<=eC})},S(e,t))}:function(e,r){var o=eN(e,r);return a.createElement(d,(0,t.default)({},eH,{order:r,key:o,item:e,renderItem:eM,itemKey:o,registerSize:eA,display:r<=eC}))},eW={order:eL?eC:Number.MAX_SAFE_INTEGER,className:"".concat(ej,"-rest"),registerSize:function(e,t){ea(t),et(en)},display:eL},eU=P||E,eG=R?a.createElement(g.Provider,{value:(0,r.default)((0,r.default)({},eH),eW)},R(eR)):a.createElement(d,(0,t.default)({},eH,eW),"function"==typeof eU?eU(eR):eU),eq=a.createElement(void 0===B?"div":B,(0,t.default)({className:(0,i.default)(!e_&&v,_),style:I,ref:c},L),N&&a.createElement(d,(0,t.default)({},eH,{responsive:eT,responsiveDisabled:!eI,order:-1,className:"".concat(ej,"-prefix"),registerSize:function(e,t){ec(t)},display:!0}),N),eP.map(eV),eF?eG:null,M&&a.createElement(d,(0,t.default)({},eH,{responsive:eT,responsiveDisabled:!eI,order:eC,className:"".concat(ej,"-suffix"),registerSize:function(e,t){ep(t)},display:!0,style:eD}),M));return eT?a.createElement(l.default,{onResize:function(e,t){G(t.clientWidth)},disabled:!eI},eq):eq});S.displayName="Overflow",S.Item=w,S.RESPONSIVE=C,S.INVALIDATE=x,e.s(["default",0,S],658315)},823744,207427,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(392221),o=e.i(404948),n=e.i(271645),a=e.i(232176),i=e.i(229548),l=e.i(211577),s=e.i(343794),c=e.i(244009),u=e.i(658315),d=e.i(210803),f=e.i(209428),p=e.i(703923),h=e.i(611935),m=e.i(883110);let g=function(e,t,r){var o=(0,f.default)((0,f.default)({},e),r?t:{});return Object.keys(t).forEach(function(r){var n=t[r];"function"==typeof n&&(o[r]=function(){for(var t,o=arguments.length,a=Array(o),i=0;itypeof window&&window.document&&window.document.documentElement;function $(e){return["string","number"].includes((0,b.default)(e))}function C(e){var t=void 0;return e&&($(e.title)?t=e.title.toString():$(e.label)&&(t=e.label.toString())),t}function x(e){var t;return null!=(t=e.key)?t:e.value}e.s(["getTitle",0,C,"hasValue",0,function(e){return null!=e},"isBrowserClient",0,w,"isComboNoValue",0,function(e){return!e&&0!==e},"toArray",0,function(e){return Array.isArray(e)?e:void 0!==e?[e]:[]}],207427);var E=function(e){e.preventDefault(),e.stopPropagation()};let S=function(e){var t,o,a=e.id,i=e.prefixCls,f=e.values,p=e.open,h=e.searchValue,m=e.autoClearSearchValue,g=e.inputRef,v=e.placeholder,b=e.disabled,$=e.mode,S=e.showSearch,k=e.autoFocus,j=e.autoComplete,O=e.activeDescendantId,T=e.tabIndex,I=e.removeIcon,_=e.maxTagCount,F=e.maxTagTextLength,P=e.maxTagPlaceholder,R=void 0===P?function(e){return"+ ".concat(e.length," ...")}:P,N=e.tagRender,M=e.onToggleOpen,B=e.onRemove,A=e.onInputChange,z=e.onInputPaste,L=e.onInputKeyDown,D=e.onInputMouseDown,H=e.onInputCompositionStart,V=e.onInputCompositionEnd,W=e.onInputBlur,U=n.useRef(null),G=(0,n.useState)(0),q=(0,r.default)(G,2),J=q[0],K=q[1],X=(0,n.useState)(!1),Q=(0,r.default)(X,2),Y=Q[0],Z=Q[1],ee="".concat(i,"-selection"),et=p||"multiple"===$&&!1===m||"tags"===$?h:"",er="tags"===$||"multiple"===$&&!1===m||S&&(p||Y);t=function(){K(U.current.scrollWidth)},o=[et],w?n.useLayoutEffect(t,o):n.useEffect(t,o);var eo=function(e,t,r,o,a){return n.createElement("span",{title:C(e),className:(0,s.default)("".concat(ee,"-item"),(0,l.default)({},"".concat(ee,"-item-disabled"),r))},n.createElement("span",{className:"".concat(ee,"-item-content")},t),o&&n.createElement(d.default,{className:"".concat(ee,"-item-remove"),onMouseDown:E,onClick:a,customizeIcon:I},"×"))},en=function(e,t,r,o,a,i){return n.createElement("span",{onMouseDown:function(e){E(e),M(!p)}},N({label:t,value:e,disabled:r,closable:o,onClose:a,isMaxTag:!!i}))},ea=n.createElement("div",{className:"".concat(ee,"-search"),style:{width:J},onFocus:function(){Z(!0)},onBlur:function(){Z(!1)}},n.createElement(y,{ref:g,open:p,prefixCls:i,id:a,inputElement:null,disabled:b,autoFocus:k,autoComplete:j,editable:er,activeDescendantId:O,value:et,onKeyDown:L,onMouseDown:D,onChange:A,onPaste:z,onCompositionStart:H,onCompositionEnd:V,onBlur:W,tabIndex:T,attrs:(0,c.default)(e,!0)}),n.createElement("span",{ref:U,className:"".concat(ee,"-search-mirror"),"aria-hidden":!0},et," ")),ei=n.createElement(u.default,{prefixCls:"".concat(ee,"-overflow"),data:f,renderItem:function(e){var t=e.disabled,r=e.label,o=e.value,n=!b&&!t,a=r;if("number"==typeof F&&("string"==typeof r||"number"==typeof r)){var i=String(a);i.length>F&&(a="".concat(i.slice(0,F),"..."))}var l=function(t){t&&t.stopPropagation(),B(e)};return"function"==typeof N?en(o,a,t,n,l):eo(e,a,t,n,l)},renderRest:function(e){if(!f.length)return null;var t="function"==typeof R?R(e):R;return"function"==typeof N?en(void 0,t,!1,!1,void 0,!0):eo({title:t},t,!1)},suffix:ea,itemKey:x,maxCount:_});return n.createElement("span",{className:"".concat(ee,"-wrap")},ei,!f.length&&!et&&n.createElement("span",{className:"".concat(ee,"-placeholder")},v))},k=function(e){var t=e.inputElement,o=e.prefixCls,a=e.id,i=e.inputRef,l=e.disabled,s=e.autoFocus,u=e.autoComplete,d=e.activeDescendantId,f=e.mode,p=e.open,h=e.values,m=e.placeholder,g=e.tabIndex,v=e.showSearch,b=e.searchValue,w=e.activeValue,$=e.maxLength,x=e.onInputKeyDown,E=e.onInputMouseDown,S=e.onInputChange,k=e.onInputPaste,j=e.onInputCompositionStart,O=e.onInputCompositionEnd,T=e.onInputBlur,I=e.title,_=n.useState(!1),F=(0,r.default)(_,2),P=F[0],R=F[1],N="combobox"===f,M=N||v,B=h[0],A=b||"";N&&w&&!P&&(A=w),n.useEffect(function(){N&&R(!1)},[N,w]);var z=("combobox"===f||!!p||!!v)&&!!A,L=void 0===I?C(B):I,D=n.useMemo(function(){return B?null:n.createElement("span",{className:"".concat(o,"-selection-placeholder"),style:z?{visibility:"hidden"}:void 0},m)},[B,z,m,o]);return n.createElement("span",{className:"".concat(o,"-selection-wrap")},n.createElement("span",{className:"".concat(o,"-selection-search")},n.createElement(y,{ref:i,prefixCls:o,id:a,open:p,inputElement:t,disabled:l,autoFocus:s,autoComplete:u,editable:M,activeDescendantId:d,value:A,onKeyDown:x,onMouseDown:E,onChange:function(e){R(!0),S(e)},onPaste:k,onCompositionStart:j,onCompositionEnd:O,onBlur:T,tabIndex:g,attrs:(0,c.default)(e,!0),maxLength:N?$:void 0})),!N&&B?n.createElement("span",{className:"".concat(o,"-selection-item"),title:L,style:z?{visibility:"hidden"}:void 0},B.label):null,D)};var j=n.forwardRef(function(e,l){var s=(0,n.useRef)(null),c=(0,n.useRef)(!1),u=e.prefixCls,d=e.open,f=e.mode,p=e.showSearch,h=e.tokenWithEnter,m=e.disabled,g=e.prefix,v=e.autoClearSearchValue,y=e.onSearch,b=e.onSearchSubmit,w=e.onToggleOpen,$=e.onInputKeyDown,C=e.onInputBlur,x=e.domRef;n.useImperativeHandle(l,function(){return{focus:function(e){s.current.focus(e)},blur:function(){s.current.blur()}}});var E=(0,a.default)(0),j=(0,r.default)(E,2),O=j[0],T=j[1],I=(0,n.useRef)(null),_=function(e){!1!==y(e,!0,c.current)&&w(!0)},F={inputRef:s,onInputKeyDown:function(e){var t=e.which,r=s.current instanceof HTMLTextAreaElement;!r&&d&&(t===o.default.UP||t===o.default.DOWN)&&e.preventDefault(),$&&$(e),t!==o.default.ENTER||"tags"!==f||c.current||d||null==b||b(e.target.value),!(r&&!d&&~[o.default.UP,o.default.DOWN,o.default.LEFT,o.default.RIGHT].indexOf(t))&&(0,i.isValidateOpenKey)(t)&&w(!0)},onInputMouseDown:function(){T(!0)},onInputChange:function(e){var t=e.target.value;if(h&&I.current&&/[\r\n]/.test(I.current)){var r=I.current.replace(/[\r\n]+$/,"").replace(/\r\n/g," ").replace(/[\r\n]/g," ");t=t.replace(r,I.current)}I.current=null,_(t)},onInputPaste:function(e){var t=e.clipboardData;I.current=(null==t?void 0:t.getData("text"))||""},onInputCompositionStart:function(){c.current=!0},onInputCompositionEnd:function(e){c.current=!1,"combobox"!==f&&_(e.target.value)},onInputBlur:C},P="multiple"===f||"tags"===f?n.createElement(S,(0,t.default)({},e,F)):n.createElement(k,(0,t.default)({},e,F));return n.createElement("div",{ref:x,className:"".concat(u,"-selector"),onClick:function(e){e.target!==s.current&&(void 0!==document.body.style.msTouchAction?setTimeout(function(){s.current.focus()}):s.current.focus())},onMouseDown:function(e){var t=O();e.target===s.current||t||"combobox"===f&&m||e.preventDefault(),("combobox"===f||p&&t)&&d||(d&&!1!==v&&y("",!0,!1),w())}},g&&n.createElement("div",{className:"".concat(u,"-prefix")},g),P)});e.s(["default",0,j],823744)},331290,670532,300877,567770,750756,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(211577),o=e.i(8211),n=e.i(392221),a=e.i(209428),i=e.i(703923),l=e.i(343794),s=e.i(174428),c=e.i(914949),u=e.i(614761),d=e.i(611935),f=e.i(271645),p=e.i(147138),h=e.i(266623),m=e.i(794721),g=e.i(232176),v=e.i(843375),y=e.i(823744),b=e.i(707067),w=["prefixCls","disabled","visible","children","popupElement","animation","transitionName","dropdownStyle","dropdownClassName","direction","placement","builtinPlacements","dropdownMatchSelectWidth","dropdownRender","dropdownAlign","getPopupContainer","empty","getTriggerDOMNode","onPopupVisibleChange","onPopupMouseEnter"],$=function(e){var t=+(!0!==e);return{bottomLeft:{points:["tl","bl"],offset:[0,4],overflow:{adjustX:t,adjustY:1},htmlRegion:"scroll"},bottomRight:{points:["tr","br"],offset:[0,4],overflow:{adjustX:t,adjustY:1},htmlRegion:"scroll"},topLeft:{points:["bl","tl"],offset:[0,-4],overflow:{adjustX:t,adjustY:1},htmlRegion:"scroll"},topRight:{points:["br","tr"],offset:[0,-4],overflow:{adjustX:t,adjustY:1},htmlRegion:"scroll"}}},C=f.forwardRef(function(e,o){var n=e.prefixCls,s=(e.disabled,e.visible),c=e.children,u=e.popupElement,d=e.animation,p=e.transitionName,h=e.dropdownStyle,m=e.dropdownClassName,g=e.direction,v=e.placement,y=e.builtinPlacements,C=e.dropdownMatchSelectWidth,x=e.dropdownRender,E=e.dropdownAlign,S=e.getPopupContainer,k=e.empty,j=e.getTriggerDOMNode,O=e.onPopupVisibleChange,T=e.onPopupMouseEnter,I=(0,i.default)(e,w),_="".concat(n,"-dropdown"),F=u;x&&(F=x(u));var P=f.useMemo(function(){return y||$(C)},[y,C]),R=d?"".concat(_,"-").concat(d):p,N="number"==typeof C,M=f.useMemo(function(){return N?null:!1===C?"minWidth":"width"},[C,N]),B=h;N&&(B=(0,a.default)((0,a.default)({},B),{},{width:C}));var A=f.useRef(null);return f.useImperativeHandle(o,function(){return{getPopupElement:function(){var e;return null==(e=A.current)?void 0:e.popupElement}}}),f.createElement(b.default,(0,t.default)({},I,{showAction:O?["click"]:[],hideAction:O?["click"]:[],popupPlacement:v||("rtl"===(void 0===g?"ltr":g)?"bottomRight":"bottomLeft"),builtinPlacements:P,prefixCls:_,popupTransitionName:R,popup:f.createElement("div",{onMouseEnter:T},F),ref:A,stretch:M,popupAlign:E,popupVisible:s,getPopupContainer:S,popupClassName:(0,l.default)(m,(0,r.default)({},"".concat(_,"-empty"),k)),popupStyle:B,getTriggerDOMNode:j,onPopupVisibleChange:O}),c)}),x=e.i(210803),E=e.i(865610),S=e.i(883110);function k(e,t){var r,o=e.key;return("value"in e&&(r=e.value),null!=o)?o:void 0!==r?r:"rc-index-key-".concat(t)}function j(e){return void 0!==e&&!Number.isNaN(e)}function O(e,t){var r=e||{},o=r.label,n=r.value,a=r.options,i=r.groupLabel,l=o||(t?"children":"label");return{label:l,value:n||"value",options:a||"options",groupLabel:i||l}}var T=function(e,t,r){if(!t||!t.length)return null;var n=!1,a=function e(t,r){var a=(0,E.default)(r),i=a[0],l=a.slice(1);if(!i)return[t];var s=t.split(i);return n=n||s.length>1,s.reduce(function(t,r){return[].concat((0,o.default)(t),(0,o.default)(e(r,l)))},[]).filter(Boolean)}(e,t);return n?void 0!==r?a.slice(0,r):a:null};e.s(["fillFieldNames",0,O,"flattenOptions",0,function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.fieldNames,o=t.childrenAsData,n=[],a=O(r,!1),i=a.label,l=a.value,s=a.options,c=a.groupLabel;return!function e(t,r){Array.isArray(t)&&t.forEach(function(t){if(!r&&s in t){var a=t[c];void 0===a&&o&&(a=t.label),n.push({key:k(t,n.length),group:!0,data:t,label:a}),e(t[s],!0)}else{var u=t[l];n.push({key:k(t,n.length),groupOption:r,data:t,label:t[i],value:u})}})}(e,!1),n},"getSeparatedContent",0,T,"injectPropsWithOption",0,function(e){var t=(0,a.default)({},e);return"props"in t||Object.defineProperty(t,"props",{get:function(){return(0,S.default)(!1,"Return type is option instead of Option instance. Please read value directly instead of reading from `props`."),t}}),t},"isValidCount",0,j],670532);var I=f.createContext(null);e.s(["default",0,I],300877);var _=e.i(410160);function F(e){var t=e.visible,r=e.values;return t?f.createElement("span",{"aria-live":"polite",style:{width:0,height:0,position:"absolute",overflow:"hidden",opacity:0}},"".concat(r.slice(0,50).map(function(e){var t=e.label,r=e.value;return["number","string"].includes((0,_.default)(t))?t:r}).join(", ")),r.length>50?", ...":null):null}var P=["id","prefixCls","className","showSearch","tagRender","direction","omitDomProps","displayValues","onDisplayValuesChange","emptyOptions","notFoundContent","onClear","mode","disabled","loading","getInputElement","getRawInputElement","open","defaultOpen","onDropdownVisibleChange","activeValue","onActiveValueChange","activeDescendantId","searchValue","autoClearSearchValue","onSearch","onSearchSplit","tokenSeparators","allowClear","prefix","suffixIcon","clearIcon","OptionList","animation","transitionName","dropdownStyle","dropdownClassName","dropdownMatchSelectWidth","dropdownRender","dropdownAlign","placement","builtinPlacements","getPopupContainer","showAction","onFocus","onBlur","onKeyUp","onKeyDown","onMouseDown"],R=["value","onChange","removeIcon","placeholder","autoFocus","maxTagCount","maxTagTextLength","maxTagPlaceholder","choiceTransitionName","onInputKeyDown","onPopupScroll","tabIndex"],N=function(e){return"tags"===e||"multiple"===e},M=f.forwardRef(function(e,b){var w,$,E,S,k=e.id,O=e.prefixCls,_=e.className,M=e.showSearch,B=e.tagRender,A=e.direction,z=e.omitDomProps,L=e.displayValues,D=e.onDisplayValuesChange,H=e.emptyOptions,V=e.notFoundContent,W=void 0===V?"Not Found":V,U=e.onClear,G=e.mode,q=e.disabled,J=e.loading,K=e.getInputElement,X=e.getRawInputElement,Q=e.open,Y=e.defaultOpen,Z=e.onDropdownVisibleChange,ee=e.activeValue,et=e.onActiveValueChange,er=e.activeDescendantId,eo=e.searchValue,en=e.autoClearSearchValue,ea=e.onSearch,ei=e.onSearchSplit,el=e.tokenSeparators,es=e.allowClear,ec=e.prefix,eu=e.suffixIcon,ed=e.clearIcon,ef=e.OptionList,ep=e.animation,eh=e.transitionName,em=e.dropdownStyle,eg=e.dropdownClassName,ev=e.dropdownMatchSelectWidth,ey=e.dropdownRender,eb=e.dropdownAlign,ew=e.placement,e$=e.builtinPlacements,eC=e.getPopupContainer,ex=e.showAction,eE=void 0===ex?[]:ex,eS=e.onFocus,ek=e.onBlur,ej=e.onKeyUp,eO=e.onKeyDown,eT=e.onMouseDown,eI=(0,i.default)(e,P),e_=N(G),eF=(void 0!==M?M:e_)||"combobox"===G,eP=(0,a.default)({},eI);R.forEach(function(e){delete eP[e]}),null==z||z.forEach(function(e){delete eP[e]});var eR=f.useState(!1),eN=(0,n.default)(eR,2),eM=eN[0],eB=eN[1];f.useEffect(function(){eB((0,u.default)())},[]);var eA=f.useRef(null),ez=f.useRef(null),eL=f.useRef(null),eD=f.useRef(null),eH=f.useRef(null),eV=f.useRef(!1),eW=(0,m.default)(),eU=(0,n.default)(eW,3),eG=eU[0],eq=eU[1],eJ=eU[2];f.useImperativeHandle(b,function(){var e,t;return{focus:null==(e=eD.current)?void 0:e.focus,blur:null==(t=eD.current)?void 0:t.blur,scrollTo:function(e){var t;return null==(t=eH.current)?void 0:t.scrollTo(e)},nativeElement:eA.current||ez.current}});var eK=f.useMemo(function(){if("combobox"!==G)return eo;var e,t=null==(e=L[0])?void 0:e.value;return"string"==typeof t||"number"==typeof t?String(t):""},[eo,G,L]),eX="combobox"===G&&"function"==typeof K&&K()||null,eQ="function"==typeof X&&X(),eY=(0,d.useComposeRef)(ez,null==eQ||null==(w=eQ.props)?void 0:w.ref),eZ=f.useState(!1),e0=(0,n.default)(eZ,2),e1=e0[0],e2=e0[1];(0,s.default)(function(){e2(!0)},[]);var e4=(0,c.default)(!1,{defaultValue:Y,value:Q}),e6=(0,n.default)(e4,2),e3=e6[0],e7=e6[1],e5=!!e1&&e3,e9=!W&&H;(q||e9&&e5&&"combobox"===G)&&(e5=!1);var e8=!e9&&e5,te=f.useCallback(function(e){var t=void 0!==e?e:!e5;q||(e7(t),e5!==t&&(null==Z||Z(t)))},[q,e5,e7,Z]),tt=f.useMemo(function(){return(el||[]).some(function(e){return["\n","\r\n"].includes(e)})},[el]),tr=f.useContext(I)||{},to=tr.maxCount,tn=tr.rawValues,ta=function(e,t,r){if(!(e_&&j(to))||!((null==tn?void 0:tn.size)>=to)){var o=!0,n=e;null==et||et(null);var a=T(e,el,j(to)?to-tn.size:void 0),i=r?null:a;return"combobox"!==G&&i&&(n="",null==ei||ei(i),te(!1),o=!1),ea&&eK!==n&&ea(n,{source:t?"typing":"effect"}),o}};f.useEffect(function(){e5||e_||"combobox"===G||ta("",!1,!1)},[e5]),f.useEffect(function(){e3&&q&&e7(!1),q&&!eV.current&&eq(!1)},[q]);var ti=(0,g.default)(),tl=(0,n.default)(ti,2),ts=tl[0],tc=tl[1],tu=f.useRef(!1),td=f.useRef(!1),tf=[];f.useEffect(function(){return function(){tf.forEach(function(e){return clearTimeout(e)}),tf.splice(0,tf.length)}},[]);var tp=f.useState({}),th=(0,n.default)(tp,2)[1];eQ&&($=function(e){te(e)}),(0,v.default)(function(){var e;return[eA.current,null==(e=eL.current)?void 0:e.getPopupElement()]},e8,te,!!eQ);var tm=f.useMemo(function(){return(0,a.default)((0,a.default)({},e),{},{notFoundContent:W,open:e5,triggerOpen:e8,id:k,showSearch:eF,multiple:e_,toggleOpen:te})},[e,W,e8,e5,k,eF,e_,te]),tg=!!eu||J;tg&&(E=f.createElement(x.default,{className:(0,l.default)("".concat(O,"-arrow"),(0,r.default)({},"".concat(O,"-arrow-loading"),J)),customizeIcon:eu,customizeIconProps:{loading:J,searchValue:eK,open:e5,focused:eG,showSearch:eF}}));var tv=(0,p.useAllowClear)(O,function(){var e;null==U||U(),null==(e=eD.current)||e.focus(),D([],{type:"clear",values:L}),ta("",!1,!1)},L,es,ed,q,eK,G),ty=tv.allowClear,tb=tv.clearIcon,tw=f.createElement(ef,{ref:eH}),t$=(0,l.default)(O,_,(0,r.default)((0,r.default)((0,r.default)((0,r.default)((0,r.default)((0,r.default)((0,r.default)((0,r.default)((0,r.default)((0,r.default)({},"".concat(O,"-focused"),eG),"".concat(O,"-multiple"),e_),"".concat(O,"-single"),!e_),"".concat(O,"-allow-clear"),es),"".concat(O,"-show-arrow"),tg),"".concat(O,"-disabled"),q),"".concat(O,"-loading"),J),"".concat(O,"-open"),e5),"".concat(O,"-customize-input"),eX),"".concat(O,"-show-search"),eF)),tC=f.createElement(C,{ref:eL,disabled:q,prefixCls:O,visible:e8,popupElement:tw,animation:ep,transitionName:eh,dropdownStyle:em,dropdownClassName:eg,direction:A,dropdownMatchSelectWidth:ev,dropdownRender:ey,dropdownAlign:eb,placement:ew,builtinPlacements:e$,getPopupContainer:eC,empty:H,getTriggerDOMNode:function(e){return ez.current||e},onPopupVisibleChange:$,onPopupMouseEnter:function(){th({})}},eQ?f.cloneElement(eQ,{ref:eY}):f.createElement(y.default,(0,t.default)({},e,{domRef:ez,prefixCls:O,inputElement:eX,ref:eD,id:k,prefix:ec,showSearch:eF,autoClearSearchValue:en,mode:G,activeDescendantId:er,tagRender:B,values:L,open:e5,onToggleOpen:te,activeValue:ee,searchValue:eK,onSearch:ta,onSearchSubmit:function(e){e&&e.trim()&&ea(e,{source:"submit"})},onRemove:function(e){D(L.filter(function(t){return t!==e}),{type:"remove",values:[e]})},tokenWithEnter:tt,onInputBlur:function(){tu.current=!1}})));return S=eQ?tC:f.createElement("div",(0,t.default)({className:t$},eP,{ref:eA,onMouseDown:function(e){var t,r=e.target,o=null==(t=eL.current)?void 0:t.getPopupElement();if(o&&o.contains(r)){var n=setTimeout(function(){var e,t=tf.indexOf(n);-1!==t&&tf.splice(t,1),eJ(),eM||o.contains(document.activeElement)||null==(e=eD.current)||e.focus()});tf.push(n)}for(var a=arguments.length,i=Array(a>1?a-1:0),l=1;l=0;s-=1){var c=i[s];if(!c.disabled){i.splice(s,1),l=c;break}}l&&D(i,{type:"remove",values:[l]})}for(var u=arguments.length,d=Array(u>1?u-1:0),f=1;f1?r-1:0),n=1;n{"use strict";var t=e.i(931067),r=e.i(410160),o=e.i(209428),n=e.i(211577),a=e.i(392221),i=e.i(703923),l=e.i(343794),s=e.i(430073);e.i(62664);var c=e.i(697539),u=e.i(174428),d=e.i(271645),f=e.i(174080),p=d.forwardRef(function(e,r){var a=e.height,i=e.offsetY,c=e.offsetX,u=e.children,f=e.prefixCls,p=e.onInnerResize,h=e.innerProps,m=e.rtl,g=e.extra,v={},y={display:"flex",flexDirection:"column"};return void 0!==i&&(v={height:a,position:"relative",overflow:"hidden"},y=(0,o.default)((0,o.default)({},y),{},(0,n.default)((0,n.default)((0,n.default)((0,n.default)((0,n.default)({transform:"translateY(".concat(i,"px)")},m?"marginRight":"marginLeft",-c),"position","absolute"),"left",0),"right",0),"top",0))),d.createElement("div",{style:v},d.createElement(s.default,{onResize:function(e){e.offsetHeight&&p&&p()}},d.createElement("div",(0,t.default)({style:y,className:(0,l.default)((0,n.default)({},"".concat(f,"-holder-inner"),f)),ref:r},h),u,g)))});function h(e){var t=e.children,r=e.setRef,o=d.useCallback(function(e){r(e)},[]);return d.cloneElement(t,{ref:o})}p.displayName="Filler";var m=e.i(963188),g=("u"2&&void 0!==arguments[2]&&arguments[2],o=e?t<0&&i.current.left||t>0&&i.current.right:t<0&&i.current.top||t>0&&i.current.bottom;return r&&o?(clearTimeout(a.current),n.current=!1):(!o||n.current)&&(clearTimeout(a.current),n.current=!0,a.current=setTimeout(function(){n.current=!1},50)),!n.current&&o}};var y=e.i(278409),b=e.i(233848),w=function(){function e(){(0,y.default)(this,e),(0,n.default)(this,"maps",void 0),(0,n.default)(this,"id",0),(0,n.default)(this,"diffRecords",new Map),this.maps=Object.create(null)}return(0,b.default)(e,[{key:"set",value:function(e,t){this.diffRecords.set(e,this.maps[e]),this.maps[e]=t,this.id+=1}},{key:"get",value:function(e){return this.maps[e]}},{key:"resetRecord",value:function(){this.diffRecords.clear()}},{key:"getRecord",value:function(){return this.diffRecords}}]),e}();function $(e){var t=parseFloat(e);return isNaN(t)?0:t}var C=14/15;function x(e){return Math.floor(Math.pow(e,.5))}function E(e,t){return("touches"in e?e.touches[0]:e)[t?"pageX":"pageY"]-window[t?"scrollX":"scrollY"]}e.i(247167);var S=d.forwardRef(function(e,t){var r=e.prefixCls,i=e.rtl,s=e.scrollOffset,c=e.scrollRange,u=e.onStartMove,f=e.onStopMove,p=e.onScroll,h=e.horizontal,g=e.spinSize,v=e.containerSize,y=e.style,b=e.thumbStyle,w=e.showScrollBar,$=d.useState(!1),C=(0,a.default)($,2),x=C[0],S=C[1],k=d.useState(null),j=(0,a.default)(k,2),O=j[0],T=j[1],I=d.useState(null),_=(0,a.default)(I,2),F=_[0],P=_[1],R=!i,N=d.useRef(),M=d.useRef(),B=d.useState(w),A=(0,a.default)(B,2),z=A[0],L=A[1],D=d.useRef(),H=function(){!0!==w&&!1!==w&&(clearTimeout(D.current),L(!0),D.current=setTimeout(function(){L(!1)},3e3))},V=c-v||0,W=v-g||0,U=d.useMemo(function(){return 0===s||0===V?0:s/V*W},[s,V,W]),G=d.useRef({top:U,dragging:x,pageY:O,startTop:F});G.current={top:U,dragging:x,pageY:O,startTop:F};var q=function(e){S(!0),T(E(e,h)),P(G.current.top),u(),e.stopPropagation(),e.preventDefault()};d.useEffect(function(){var e=function(e){e.preventDefault()},t=N.current,r=M.current;return t.addEventListener("touchstart",e,{passive:!1}),r.addEventListener("touchstart",q,{passive:!1}),function(){t.removeEventListener("touchstart",e),r.removeEventListener("touchstart",q)}},[]);var J=d.useRef();J.current=V;var K=d.useRef();K.current=W,d.useEffect(function(){if(x){var e,t=function(t){var r=G.current,o=r.dragging,n=r.pageY,a=r.startTop;m.default.cancel(e);var i=N.current.getBoundingClientRect(),l=v/(h?i.width:i.height);if(o){var s=(E(t,h)-n)*l,c=a;!R&&h?c-=s:c+=s;var u=J.current,d=K.current,f=Math.ceil((d?c/d:0)*u);f=Math.min(f=Math.max(f,0),u),e=(0,m.default)(function(){p(f,h)})}},r=function(){S(!1),f()};return window.addEventListener("mousemove",t,{passive:!0}),window.addEventListener("touchmove",t,{passive:!0}),window.addEventListener("mouseup",r,{passive:!0}),window.addEventListener("touchend",r,{passive:!0}),function(){window.removeEventListener("mousemove",t),window.removeEventListener("touchmove",t),window.removeEventListener("mouseup",r),window.removeEventListener("touchend",r),m.default.cancel(e)}}},[x]),d.useEffect(function(){return H(),function(){clearTimeout(D.current)}},[s]),d.useImperativeHandle(t,function(){return{delayHidden:H}});var X="".concat(r,"-scrollbar"),Q={position:"absolute",visibility:z?null:"hidden"},Y={position:"absolute",borderRadius:99,background:"var(--rc-virtual-list-scrollbar-bg, rgba(0, 0, 0, 0.5))",cursor:"pointer",userSelect:"none"};return h?(Object.assign(Q,{height:8,left:0,right:0,bottom:0}),Object.assign(Y,(0,n.default)({height:"100%",width:g},R?"left":"right",U))):(Object.assign(Q,(0,n.default)({width:8,top:0,bottom:0},R?"right":"left",0)),Object.assign(Y,{width:"100%",height:g,top:U})),d.createElement("div",{ref:N,className:(0,l.default)(X,(0,n.default)((0,n.default)((0,n.default)({},"".concat(X,"-horizontal"),h),"".concat(X,"-vertical"),!h),"".concat(X,"-visible"),z)),style:(0,o.default)((0,o.default)({},Q),y),onMouseDown:function(e){e.stopPropagation(),e.preventDefault()},onMouseMove:H},d.createElement("div",{ref:M,className:(0,l.default)("".concat(X,"-thumb"),(0,n.default)({},"".concat(X,"-thumb-moving"),x)),style:(0,o.default)((0,o.default)({},Y),b),onMouseDown:q}))});function k(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=e/t*e;return isNaN(r)&&(r=0),Math.floor(r=Math.max(r,20))}var j=["prefixCls","className","height","itemHeight","fullHeight","style","data","children","itemKey","virtual","direction","scrollWidth","component","onScroll","onVirtualScroll","onVisibleChange","innerProps","extraRender","styles","showScrollBar"],O=[],T={overflowY:"auto",overflowAnchor:"none"},I=d.forwardRef(function(e,y){var b,I,_,F,P,R,N,M,B,A,z,L,D,H,V,W,U,G,q,J,K,X,Q,Y,Z,ee,et,er,eo,en,ea,ei,el,es,ec,eu,ed,ef=e.prefixCls,ep=void 0===ef?"rc-virtual-list":ef,eh=e.className,em=e.height,eg=e.itemHeight,ev=e.fullHeight,ey=e.style,eb=e.data,ew=e.children,e$=e.itemKey,eC=e.virtual,ex=e.direction,eE=e.scrollWidth,eS=e.component,ek=e.onScroll,ej=e.onVirtualScroll,eO=e.onVisibleChange,eT=e.innerProps,eI=e.extraRender,e_=e.styles,eF=e.showScrollBar,eP=void 0===eF?"optional":eF,eR=(0,i.default)(e,j),eN=d.useCallback(function(e){return"function"==typeof e$?e$(e):null==e?void 0:e[e$]},[e$]),eM=function(e,t,r){var o=d.useState(0),n=(0,a.default)(o,2),i=n[0],l=n[1],s=(0,d.useRef)(new Map),c=(0,d.useRef)(new w),u=(0,d.useRef)(0);function f(){u.current+=1}function p(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];f();var t=function(){var e=!1;s.current.forEach(function(t,r){if(t&&t.offsetParent){var o=t.offsetHeight,n=getComputedStyle(t),a=n.marginTop,i=n.marginBottom,l=o+$(a)+$(i);c.current.get(r)!==l&&(c.current.set(r,l),e=!0)}}),e&&l(function(e){return e+1})};if(e)t();else{u.current+=1;var r=u.current;Promise.resolve().then(function(){r===u.current&&t()})}}return(0,d.useEffect)(function(){return f},[]),[function(o,n){var a=e(o),i=s.current.get(a);n?(s.current.set(a,n),p()):s.current.delete(a),!i!=!n&&(n?null==t||t(o):null==r||r(o))},p,c.current,i]}(eN,null,null),eB=(0,a.default)(eM,4),eA=eB[0],ez=eB[1],eL=eB[2],eD=eB[3],eH=!!(!1!==eC&&em&&eg),eV=d.useMemo(function(){return Object.values(eL.maps).reduce(function(e,t){return e+t},0)},[eL.id,eL.maps]),eW=eH&&eb&&(Math.max(eg*eb.length,eV)>em||!!eE),eU="rtl"===ex,eG=(0,l.default)(ep,(0,n.default)({},"".concat(ep,"-rtl"),eU),eh),eq=eb||O,eJ=(0,d.useRef)(),eK=(0,d.useRef)(),eX=(0,d.useRef)(),eQ=(0,d.useState)(0),eY=(0,a.default)(eQ,2),eZ=eY[0],e0=eY[1],e1=(0,d.useState)(0),e2=(0,a.default)(e1,2),e4=e2[0],e6=e2[1],e3=(0,d.useState)(!1),e7=(0,a.default)(e3,2),e5=e7[0],e9=e7[1],e8=function(){e9(!0)},te=function(){e9(!1)};function tt(e){e0(function(t){var r,o=(r="function"==typeof e?e(t):e,Number.isNaN(tb.current)||(r=Math.min(r,tb.current)),r=Math.max(r,0));return eJ.current.scrollTop=o,o})}var tr=(0,d.useRef)({start:0,end:eq.length}),to=(0,d.useRef)(),tn=(b=d.useState(eq),_=(I=(0,a.default)(b,2))[0],F=I[1],P=d.useState(null),N=(R=(0,a.default)(P,2))[0],M=R[1],d.useEffect(function(){var e=function(e,t,r){var o,n,a=e.length,i=t.length;if(0===a&&0===i)return null;a=eZ&&void 0===t&&(t=i,r=n),c>eZ+em&&void 0===o&&(o=i),n=c}return void 0===t&&(t=0,r=0,o=Math.ceil(em/eg)),void 0===o&&(o=eq.length-1),{scrollHeight:n,start:t,end:o=Math.min(o+1,eq.length-1),offset:r}},[eW,eH,eZ,eq,eD,em]),ti=ta.scrollHeight,tl=ta.start,ts=ta.end,tc=ta.offset;tr.current.start=tl,tr.current.end=ts,d.useLayoutEffect(function(){var e=eL.getRecord();if(1===e.size){var t=Array.from(e.keys())[0],r=e.get(t),o=eq[tl];if(o&&void 0===r&&eN(o)===t){var n=eL.get(t)-eg;tt(function(e){return e+n})}}eL.resetRecord()},[ti]);var tu=d.useState({width:0,height:em}),td=(0,a.default)(tu,2),tf=td[0],tp=td[1],th=(0,d.useRef)(),tm=(0,d.useRef)(),tg=d.useMemo(function(){return k(tf.width,eE)},[tf.width,eE]),tv=d.useMemo(function(){return k(tf.height,ti)},[tf.height,ti]),ty=ti-em,tb=(0,d.useRef)(ty);tb.current=ty;var tw=eZ<=0,t$=eZ>=ty,tC=e4<=0,tx=e4>=eE,tE=v(tw,t$,tC,tx),tS=function(){return{x:eU?-e4:e4,y:eZ}},tk=(0,d.useRef)(tS()),tj=(0,c.useEvent)(function(e){if(ej){var t=(0,o.default)((0,o.default)({},tS()),e);(tk.current.x!==t.x||tk.current.y!==t.y)&&(ej(t),tk.current=t)}});function tO(e,t){t?((0,f.flushSync)(function(){e6(e)}),tj()):tt(e)}var tT=function(e){var t=e,r=eE?eE-tf.width:0;return Math.min(t=Math.max(t,0),r)},tI=(0,c.useEvent)(function(e,t){t?((0,f.flushSync)(function(){e6(function(t){return tT(t+(eU?-e:e))})}),tj()):tt(function(t){return t+e})}),t_=(B=!!eE,A=(0,d.useRef)(0),z=(0,d.useRef)(null),L=(0,d.useRef)(null),D=(0,d.useRef)(!1),H=v(tw,t$,tC,tx),V=(0,d.useRef)(null),W=(0,d.useRef)(null),[function(e){if(eH){m.default.cancel(W.current),W.current=(0,m.default)(function(){V.current=null},2);var t,r,o=e.deltaX,n=e.deltaY,a=e.shiftKey,i=o,l=n;("sx"===V.current||!V.current&&a&&n&&!o)&&(i=n,l=0,V.current="sx");var s=Math.abs(i),c=Math.abs(l);if(null===V.current&&(V.current=B&&s>c?"x":"y"),"y"===V.current){t=e,r=l,m.default.cancel(z.current),!H(!1,r)&&(t._virtualHandled||(t._virtualHandled=!0,A.current+=r,L.current=r,g||t.preventDefault(),z.current=(0,m.default)(function(){var e=D.current?10:1;tI(A.current*e,!1),A.current=0})))}else tI(i,!0),g||e.preventDefault()}},function(e){eH&&(D.current=e.detail===L.current)}]),tF=(0,a.default)(t_,2),tP=tF[0],tR=tF[1];U=function(e,t,r,o){return!tE(e,t,r)&&(!o||!o._virtualHandled)&&(o&&(o._virtualHandled=!0),tP({preventDefault:function(){},deltaX:e?t:0,deltaY:e?0:t}),!0)},q=(0,d.useRef)(!1),J=(0,d.useRef)(0),K=(0,d.useRef)(0),X=(0,d.useRef)(null),Q=(0,d.useRef)(null),Y=function(e){if(q.current){var t=Math.ceil(e.touches[0].pageX),r=Math.ceil(e.touches[0].pageY),o=J.current-t,n=K.current-r,a=Math.abs(o)>Math.abs(n);a?J.current=t:K.current=r;var i=U(a,a?o:n,!1,e);i&&e.preventDefault(),clearInterval(Q.current),i&&(Q.current=setInterval(function(){a?o*=C:n*=C;var e=Math.floor(a?o:n);(!U(a,e,!0)||.1>=Math.abs(e))&&clearInterval(Q.current)},16))}},Z=function(){q.current=!1,G()},ee=function(e){G(),1!==e.touches.length||q.current||(q.current=!0,J.current=Math.ceil(e.touches[0].pageX),K.current=Math.ceil(e.touches[0].pageY),X.current=e.target,X.current.addEventListener("touchmove",Y,{passive:!1}),X.current.addEventListener("touchend",Z,{passive:!0}))},G=function(){X.current&&(X.current.removeEventListener("touchmove",Y),X.current.removeEventListener("touchend",Z))},(0,u.default)(function(){return eH&&eJ.current.addEventListener("touchstart",ee,{passive:!0}),function(){var e;null==(e=eJ.current)||e.removeEventListener("touchstart",ee),G(),clearInterval(Q.current)}},[eH]),et=function(e){tt(function(t){return t+e})},d.useEffect(function(){var e=eJ.current;if(eW&&e){var t,r,o=!1,n=function(){m.default.cancel(t)},a=function e(){n(),t=(0,m.default)(function(){et(r),e()})},i=function(){o=!1,n()},l=function(e){!e.target.draggable&&0===e.button&&(e._virtualHandled||(e._virtualHandled=!0,o=!0))},s=function(t){if(o){var i=E(t,!1),l=e.getBoundingClientRect(),s=l.top,c=l.bottom;i<=s?(r=-x(s-i),a()):i>=c?(r=x(i-c),a()):n()}};return e.addEventListener("mousedown",l),e.ownerDocument.addEventListener("mouseup",i),e.ownerDocument.addEventListener("mousemove",s),e.ownerDocument.addEventListener("dragend",i),function(){e.removeEventListener("mousedown",l),e.ownerDocument.removeEventListener("mouseup",i),e.ownerDocument.removeEventListener("mousemove",s),e.ownerDocument.removeEventListener("dragend",i),n()}}},[eW]),(0,u.default)(function(){function e(e){var t=tw&&e.detail<0,r=t$&&e.detail>0;!eH||t||r||e.preventDefault()}var t=eJ.current;return t.addEventListener("wheel",tP,{passive:!1}),t.addEventListener("DOMMouseScroll",tR,{passive:!0}),t.addEventListener("MozMousePixelScroll",e,{passive:!1}),function(){t.removeEventListener("wheel",tP),t.removeEventListener("DOMMouseScroll",tR),t.removeEventListener("MozMousePixelScroll",e)}},[eH,tw,t$]),(0,u.default)(function(){if(eE){var e=tT(e4);e6(e),tj({x:e})}},[tf.width,eE]);var tN=function(){var e,t;null==(e=th.current)||e.delayHidden(),null==(t=tm.current)||t.delayHidden()},tM=(er=function(){return ez(!0)},eo=d.useRef(),en=d.useState(null),ei=(ea=(0,a.default)(en,2))[0],el=ea[1],(0,u.default)(function(){if(ei&&ei.times<10){if(!eJ.current)return void el(function(e){return(0,o.default)({},e)});er();var e=ei.targetAlign,t=ei.originAlign,r=ei.index,n=ei.offset,a=eJ.current.clientHeight,i=!1,l=e,s=null;if(a){for(var c=e||t,u=0,d=0,f=0,p=Math.min(eq.length-1,r),h=0;h<=p;h+=1){var m=eN(eq[h]);d=u;var g=eL.get(m);u=f=d+(void 0===g?eg:g)}for(var v="top"===c?n:a-n,y=p;y>=0;y-=1){var b=eN(eq[y]),w=eL.get(b);if(void 0===w){i=!0;break}if((v-=w)<=0)break}switch(c){case"top":s=d-n;break;case"bottom":s=f-a+n;break;default:var $=eJ.current.scrollTop;d<$?l="top":f>$+a&&(l="bottom")}null!==s&&tt(s),s!==ei.lastTop&&(i=!0)}i&&el((0,o.default)((0,o.default)({},ei),{},{times:ei.times+1,targetAlign:l,lastTop:s}))}},[ei,eJ.current]),function(e){if(null==e)return void tN();if(m.default.cancel(eo.current),"number"==typeof e)tt(e);else if(e&&"object"===(0,r.default)(e)){var t,o=e.align;t="index"in e?e.index:eq.findIndex(function(t){return eN(t)===e.key});var n=e.offset;el({times:0,index:t,offset:void 0===n?0:n,originAlign:o})}});d.useImperativeHandle(y,function(){return{nativeElement:eX.current,getScrollInfo:tS,scrollTo:function(e){e&&"object"===(0,r.default)(e)&&("left"in e||"top"in e)?(void 0!==e.left&&e6(tT(e.left)),tM(e.top)):tM(e)}}}),(0,u.default)(function(){eO&&eO(eq.slice(tl,ts+1),eq)},[tl,ts,eq]);var tB=(es=d.useMemo(function(){return[new Map,[]]},[eq,eL.id,eg]),eu=(ec=(0,a.default)(es,2))[0],ed=ec[1],function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,r=eu.get(e),o=eu.get(t);if(void 0===r||void 0===o)for(var n=eq.length,a=ed.length;aem&&d.createElement(S,{ref:th,prefixCls:ep,scrollOffset:eZ,scrollRange:ti,rtl:eU,onScroll:tO,onStartMove:e8,onStopMove:te,spinSize:tv,containerSize:tf.height,style:null==e_?void 0:e_.verticalScrollBar,thumbStyle:null==e_?void 0:e_.verticalScrollBarThumb,showScrollBar:eP}),eW&&eE>tf.width&&d.createElement(S,{ref:tm,prefixCls:ep,scrollOffset:e4,scrollRange:eE,rtl:eU,onScroll:tO,onStartMove:e8,onStopMove:te,spinSize:tg,containerSize:tf.width,horizontal:!0,style:null==e_?void 0:e_.horizontalScrollBar,thumbStyle:null==e_?void 0:e_.horizontalScrollBarThumb,showScrollBar:eP}))});I.displayName="List",e.s(["default",0,I],323002)},123829,955492,869301,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(8211),o=e.i(211577),n=e.i(209428),a=e.i(392221),i=e.i(703923),l=e.i(410160),s=e.i(914949);e.i(883110);var c=e.i(271645),u=e.i(331290),d=e.i(567770),f=e.i(750756),p=e.i(343794),h=e.i(404948),m=e.i(182585),g=e.i(529681),v=e.i(244009),y=e.i(323002),b=e.i(300877),w=e.i(210803),$=e.i(266623),C=e.i(670532),x=["disabled","title","children","style","className"];function E(e){return"string"==typeof e||"number"==typeof e}var S=c.forwardRef(function(e,n){var l=(0,$.default)(),s=l.prefixCls,u=l.id,d=l.open,f=l.multiple,S=l.mode,k=l.searchValue,j=l.toggleOpen,O=l.notFoundContent,T=l.onPopupScroll,I=c.useContext(b.default),_=I.maxCount,F=I.flattenOptions,P=I.onActiveValue,R=I.defaultActiveFirstOption,N=I.onSelect,M=I.menuItemSelectedIcon,B=I.rawValues,A=I.fieldNames,z=I.virtual,L=I.direction,D=I.listHeight,H=I.listItemHeight,V=I.optionRender,W="".concat(s,"-item"),U=(0,m.default)(function(){return F},[d,F],function(e,t){return t[0]&&e[1]!==t[1]}),G=c.useRef(null),q=c.useMemo(function(){return f&&(0,C.isValidCount)(_)&&(null==B?void 0:B.size)>=_},[f,_,null==B?void 0:B.size]),J=function(e){e.preventDefault()},K=function(e){var t;null==(t=G.current)||t.scrollTo("number"==typeof e?{index:e}:e)},X=c.useCallback(function(e){return"combobox"!==S&&B.has(e)},[S,(0,r.default)(B).toString(),B.size]),Q=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=U.length,o=0;o1&&void 0!==arguments[1]&&arguments[1];et(e);var r={source:t?"keyboard":"mouse"},o=U[e];o?P(o.value,e,r):P(null,-1,r)};(0,c.useEffect)(function(){er(!1!==R?Q(0):-1)},[U.length,k]);var eo=c.useCallback(function(e){return"combobox"===S?String(e).toLowerCase()===k.toLowerCase():B.has(e)},[S,k,(0,r.default)(B).toString(),B.size]);(0,c.useEffect)(function(){var e,t=setTimeout(function(){if(!f&&d&&1===B.size){var e=Array.from(B)[0],t=U.findIndex(function(t){var r=t.data;return k?String(r.value).startsWith(k):r.value===e});-1!==t&&(er(t),K(t))}});return d&&(null==(e=G.current)||e.scrollTo(void 0)),function(){return clearTimeout(t)}},[d,k]);var en=function(e){void 0!==e&&N(e,{selected:!B.has(e)}),f||j(!1)};if(c.useImperativeHandle(n,function(){return{onKeyDown:function(e){var t=e.which,r=e.ctrlKey;switch(t){case h.default.N:case h.default.P:case h.default.UP:case h.default.DOWN:var o=0;if(t===h.default.UP?o=-1:t===h.default.DOWN?o=1:/(mac\sos|macintosh)/i.test(navigator.appVersion)&&r&&(t===h.default.N?o=1:t===h.default.P&&(o=-1)),0!==o){var n=Q(ee+o,o);K(n),er(n,!0)}break;case h.default.TAB:case h.default.ENTER:var a,i=U[ee];!i||null!=i&&null!=(a=i.data)&&a.disabled||q?en(void 0):en(i.value),d&&e.preventDefault();break;case h.default.ESC:j(!1),d&&e.stopPropagation()}},onKeyUp:function(){},scrollTo:function(e){K(e)}}}),0===U.length)return c.createElement("div",{role:"listbox",id:"".concat(u,"_list"),className:"".concat(W,"-empty"),onMouseDown:J},O);var ea=Object.keys(A).map(function(e){return A[e]}),ei=function(e){return e.label};function el(e,t){return{role:e.group?"presentation":"option",id:"".concat(u,"_list_").concat(t)}}var es=function(e){var r=U[e];if(!r)return null;var o=r.data||{},n=o.value,a=r.group,i=(0,v.default)(o,!0),l=ei(r);return r?c.createElement("div",(0,t.default)({"aria-label":"string"!=typeof l||a?null:l},i,{key:e},el(r,e),{"aria-selected":eo(n)}),n):null},ec={role:"listbox",id:"".concat(u,"_list")};return c.createElement(c.Fragment,null,z&&c.createElement("div",(0,t.default)({},ec,{style:{height:0,width:0,overflow:"hidden"}}),es(ee-1),es(ee),es(ee+1)),c.createElement(y.default,{itemKey:"key",ref:G,data:U,height:D,itemHeight:H,fullHeight:!1,onMouseDown:J,onScroll:T,virtual:z,direction:L,innerProps:z?null:ec},function(e,r){var n=e.group,a=e.groupOption,l=e.data,s=e.label,u=e.value,d=l.key;if(n){var f,h=null!=(f=l.title)?f:E(s)?s.toString():void 0;return c.createElement("div",{className:(0,p.default)(W,"".concat(W,"-group"),l.className),title:h},void 0!==s?s:d)}var m=l.disabled,y=l.title,b=(l.children,l.style),$=l.className,C=(0,i.default)(l,x),S=(0,g.default)(C,ea),k=X(u),j=m||!k&&q,O="".concat(W,"-option"),T=(0,p.default)(W,O,$,(0,o.default)((0,o.default)((0,o.default)((0,o.default)({},"".concat(O,"-grouped"),a),"".concat(O,"-active"),ee===r&&!j),"".concat(O,"-disabled"),j),"".concat(O,"-selected"),k)),I=ei(e),_=!M||"function"==typeof M||k,F="number"==typeof I?I:I||u,P=E(F)?F.toString():void 0;return void 0!==y&&(P=y),c.createElement("div",(0,t.default)({},(0,v.default)(S),z?{}:el(e,r),{"aria-selected":eo(u),className:T,title:P,onMouseMove:function(){ee===r||j||er(r)},onClick:function(){j||en(u)},style:b}),c.createElement("div",{className:"".concat(O,"-content")},"function"==typeof V?V(e,{index:r}):F),c.isValidElement(M)||k,_&&c.createElement(w.default,{className:"".concat(W,"-option-state"),customizeIcon:M,customizeIconProps:{value:u,disabled:j,isSelected:k}},k?"✓":null))}))});let k=function(e,t){var r=c.useRef({values:new Map,options:new Map});return[c.useMemo(function(){var o=r.current,a=o.values,i=o.options,l=e.map(function(e){if(void 0===e.label){var t;return(0,n.default)((0,n.default)({},e),{},{label:null==(t=a.get(e.value))?void 0:t.label})}return e}),s=new Map,c=new Map;return l.forEach(function(e){s.set(e.value,e),c.set(e.value,t.get(e.value)||i.get(e.value))}),r.current.values=s,r.current.options=c,l},[e,t]),c.useCallback(function(e){return t.get(e)||r.current.options.get(e)},[t])]};var j=e.i(207427);function O(e,t){return(0,j.toArray)(e).join("").toUpperCase().includes(t)}var T=e.i(654310),I=0,_=(0,T.default)(),F=e.i(876556),P=["children","value"],R=["children"];function N(e){var t=c.useRef();return t.current=e,c.useCallback(function(){return t.current.apply(t,arguments)},[])}var M=["id","mode","prefixCls","backfill","fieldNames","inputValue","searchValue","onSearch","autoClearSearchValue","onSelect","onDeselect","dropdownMatchSelectWidth","filterOption","filterSort","optionFilterProp","optionLabelProp","options","optionRender","children","defaultActiveFirstOption","menuItemSelectedIcon","virtual","direction","listHeight","listItemHeight","labelRender","value","defaultValue","labelInValue","onChange","maxCount"],B=["inputValue"],A=c.forwardRef(function(e,d){var f,p,h,m,g,v=e.id,y=e.mode,w=e.prefixCls,$=e.backfill,x=e.fieldNames,E=e.inputValue,T=e.searchValue,A=e.onSearch,z=e.autoClearSearchValue,L=void 0===z||z,D=e.onSelect,H=e.onDeselect,V=e.dropdownMatchSelectWidth,W=void 0===V||V,U=e.filterOption,G=e.filterSort,q=e.optionFilterProp,J=e.optionLabelProp,K=e.options,X=e.optionRender,Q=e.children,Y=e.defaultActiveFirstOption,Z=e.menuItemSelectedIcon,ee=e.virtual,et=e.direction,er=e.listHeight,eo=void 0===er?200:er,en=e.listItemHeight,ea=void 0===en?20:en,ei=e.labelRender,el=e.value,es=e.defaultValue,ec=e.labelInValue,eu=e.onChange,ed=e.maxCount,ef=(0,i.default)(e,M),ep=(f=c.useState(),h=(p=(0,a.default)(f,2))[0],m=p[1],c.useEffect(function(){var e;m("rc_select_".concat((_?(e=I,I+=1):e="TEST_OR_SSR",e)))},[]),v||h),eh=(0,u.isMultiple)(y),em=!!(!K&&Q),eg=c.useMemo(function(){return(void 0!==U||"combobox"!==y)&&U},[U,y]),ev=c.useMemo(function(){return(0,C.fillFieldNames)(x,em)},[JSON.stringify(x),em]),ey=(0,s.default)("",{value:void 0!==T?T:E,postState:function(e){return e||""}}),eb=(0,a.default)(ey,2),ew=eb[0],e$=eb[1],eC=c.useMemo(function(){var e=K;K||(e=function e(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return(0,F.default)(t).map(function(t,o){if(!c.isValidElement(t)||!t.type)return null;var a,l,s,u,d,f=t.type.isSelectOptGroup,p=t.key,h=t.props,m=h.children,g=(0,i.default)(h,R);return r||!f?(a=t.key,s=(l=t.props).children,u=l.value,d=(0,i.default)(l,P),(0,n.default)({key:a,value:void 0!==u?u:a,children:s},d)):(0,n.default)((0,n.default)({key:"__RC_SELECT_GRP__".concat(null===p?o:p,"__"),label:p},g),{},{options:e(m)})}).filter(function(e){return e})}(Q));var t=new Map,r=new Map,o=function(e,t,r){r&&"string"==typeof r&&e.set(t[r],t)};return!function e(n){for(var a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=0;i0?e(t.options):t.options}):t})}(ez):ez},[ez,G,ew]),eD=c.useMemo(function(){return(0,C.flattenOptions)(eL,{fieldNames:ev,childrenAsData:em})},[eL,ev,em]),eH=function(e){var t=ek(e);if(eI(t),eu&&(t.length!==eP.length||t.some(function(e,t){var r;return(null==(r=eP[t])?void 0:r.value)!==(null==e?void 0:e.value)}))){var r=ec?t:t.map(function(e){return e.value}),o=t.map(function(e){return(0,C.injectPropsWithOption)(eR(e.value))});eu(eh?r:r[0],eh?o:o[0])}},eV=c.useState(null),eW=(0,a.default)(eV,2),eU=eW[0],eG=eW[1],eq=c.useState(0),eJ=(0,a.default)(eq,2),eK=eJ[0],eX=eJ[1],eQ=void 0!==Y?Y:"combobox"!==y,eY=c.useCallback(function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=r.source;eX(t),$&&"combobox"===y&&null!==e&&"keyboard"===(void 0===o?"keyboard":o)&&eG(String(e))},[$,y]),eZ=function(e,t,r){var o=function(){var t,r=eR(e);return[ec?{label:null==r?void 0:r[ev.label],value:e,key:null!=(t=null==r?void 0:r.key)?t:e}:e,(0,C.injectPropsWithOption)(r)]};if(t&&D){var n=o(),i=(0,a.default)(n,2);D(i[0],i[1])}else if(!t&&H&&"clear"!==r){var l=o(),s=(0,a.default)(l,2);H(s[0],s[1])}},e0=N(function(e,t){var o=!eh||t.selected;eH(o?eh?[].concat((0,r.default)(eP),[e]):[e]:eP.filter(function(t){return t.value!==e})),eZ(e,o),"combobox"===y?eG(""):(!u.isMultiple||L)&&(e$(""),eG(""))}),e1=c.useMemo(function(){var e=!1!==ee&&!1!==W;return(0,n.default)((0,n.default)({},eC),{},{flattenOptions:eD,onActiveValue:eY,defaultActiveFirstOption:eQ,onSelect:e0,menuItemSelectedIcon:Z,rawValues:eM,fieldNames:ev,virtual:e,direction:et,listHeight:eo,listItemHeight:ea,childrenAsData:em,maxCount:ed,optionRender:X})},[ed,eC,eD,eY,eQ,e0,Z,eM,ev,ee,W,et,eo,ea,em,X]);return c.createElement(b.default.Provider,{value:e1},c.createElement(u.default,(0,t.default)({},ef,{id:ep,prefixCls:void 0===w?"rc-select":w,ref:d,omitDomProps:B,mode:y,displayValues:eN,onDisplayValuesChange:function(e,t){eH(e);var r=t.type,o=t.values;("remove"===r||"clear"===r)&&o.forEach(function(e){eZ(e.value,!1,r)})},direction:et,searchValue:ew,onSearch:function(e,t){if(e$(e),eG(null),"submit"===t.source){var o=(e||"").trim();o&&(eH(Array.from(new Set([].concat((0,r.default)(eM),[o])))),eZ(o,!0),e$(""));return}"blur"!==t.source&&("combobox"===y&&eH(e),null==A||A(e))},autoClearSearchValue:L,onSearchSplit:function(e){var t=e;"tags"!==y&&(t=e.map(function(e){var t=eE.get(e);return null==t?void 0:t.value}).filter(function(e){return void 0!==e}));var o=Array.from(new Set([].concat((0,r.default)(eM),(0,r.default)(t))));eH(o),o.forEach(function(e){eZ(e,!0)})},dropdownMatchSelectWidth:W,OptionList:S,emptyOptions:!eD.length,activeValue:eU,activeDescendantId:"".concat(ep,"_list_").concat(eK)})))});A.Option=f.default,A.OptGroup=d.default,e.s(["default",0,A],123829),e.s(["OptGroup",()=>d.default],955492),e.s(["Option",()=>f.default],869301)},805484,e=>{"use strict";var t=e.i(271645),r=e.i(914949),o=e.i(609587),n=e.i(242064);function a(e){return r=>t.createElement(o.default,{theme:{token:{motion:!1,zIndexPopupBase:0}}},t.createElement(e,Object.assign({},r)))}e.s(["default",0,(e,o,i,l,s)=>a(a=>{let{prefixCls:c,style:u}=a,d=t.useRef(null),[f,p]=t.useState(0),[h,m]=t.useState(0),[g,v]=(0,r.default)(!1,{value:a.open}),{getPrefixCls:y}=t.useContext(n.ConfigContext),b=y(l||"select",c);t.useEffect(()=>{if(v(!0),"u">typeof ResizeObserver){let e=new ResizeObserver(e=>{let t=e[0].target;p(t.offsetHeight+8),m(t.offsetWidth)}),t=setInterval(()=>{var r;let o=s?`.${s(b)}`:`.${b}-dropdown`,n=null==(r=d.current)?void 0:r.querySelector(o);n&&(clearInterval(t),e.observe(n))},10);return()=>{clearInterval(t),e.disconnect()}}},[b]);let w=Object.assign(Object.assign({},a),{style:Object.assign(Object.assign({},u),{margin:0}),open:g,visible:g,getPopupContainer:()=>d.current});return i&&(w=i(w)),o&&Object.assign(w,{[o]:{overflow:{adjustX:!1,adjustY:!1}}}),t.createElement("div",{ref:d,style:{paddingBottom:f,position:"relative",minWidth:h}},t.createElement(e,Object.assign({},w)))}),"withPureRenderTheme",0,a])},721132,616303,e=>{"use strict";var t=e.i(271645),r=e.i(242064);e.i(247167);var o=e.i(343794),n=e.i(408850),a=e.i(135551),i=e.i(104458),l=e.i(246422),s=e.i(838378);let c=(0,l.genStyleHooks)("Empty",e=>{let{componentCls:t,controlHeightLG:r,calc:o}=e;return(e=>{let{componentCls:t,margin:r,marginXS:o,marginXL:n,fontSize:a,lineHeight:i}=e;return{[t]:{marginInline:o,fontSize:a,lineHeight:i,textAlign:"center",[`${t}-image`]:{height:e.emptyImgHeight,marginBottom:o,opacity:e.opacityImage,img:{height:"100%"},svg:{maxWidth:"100%",height:"100%",margin:"auto"}},[`${t}-description`]:{color:e.colorTextDescription},[`${t}-footer`]:{marginTop:r},"&-normal":{marginBlock:n,color:e.colorTextDescription,[`${t}-description`]:{color:e.colorTextDescription},[`${t}-image`]:{height:e.emptyImgHeightMD}},"&-small":{marginBlock:o,color:e.colorTextDescription,[`${t}-image`]:{height:e.emptyImgHeightSM}}}}})((0,s.mergeToken)(e,{emptyImgCls:`${t}-img`,emptyImgHeight:o(r).mul(2.5).equal(),emptyImgHeightMD:r,emptyImgHeightSM:o(r).mul(.875).equal()}))});var u=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let d=t.createElement(()=>{let[,e]=(0,i.useToken)(),[r]=(0,n.useLocale)("Empty"),o=new a.FastColor(e.colorBgBase).toHsl().l<.5?{opacity:.65}:{};return t.createElement("svg",{style:o,width:"184",height:"152",viewBox:"0 0 184 152",xmlns:"http://www.w3.org/2000/svg"},t.createElement("title",null,(null==r?void 0:r.description)||"Empty"),t.createElement("g",{fill:"none",fillRule:"evenodd"},t.createElement("g",{transform:"translate(24 31.67)"},t.createElement("ellipse",{fillOpacity:".8",fill:"#F5F5F7",cx:"67.797",cy:"106.89",rx:"67.797",ry:"12.668"}),t.createElement("path",{d:"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z",fill:"#AEB8C2"}),t.createElement("path",{d:"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z",fill:"url(#linearGradient-1)",transform:"translate(13.56)"}),t.createElement("path",{d:"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z",fill:"#F5F5F7"}),t.createElement("path",{d:"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z",fill:"#DCE0E6"})),t.createElement("path",{d:"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z",fill:"#DCE0E6"}),t.createElement("g",{transform:"translate(149.65 15.383)",fill:"#FFF"},t.createElement("ellipse",{cx:"20.654",cy:"3.167",rx:"2.849",ry:"2.815"}),t.createElement("path",{d:"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"}))))},null),f=t.createElement(()=>{let[,e]=(0,i.useToken)(),[r]=(0,n.useLocale)("Empty"),{colorFill:o,colorFillTertiary:l,colorFillQuaternary:s,colorBgContainer:c}=e,{borderColor:u,shadowColor:d,contentColor:f}=(0,t.useMemo)(()=>({borderColor:new a.FastColor(o).onBackground(c).toHexString(),shadowColor:new a.FastColor(l).onBackground(c).toHexString(),contentColor:new a.FastColor(s).onBackground(c).toHexString()}),[o,l,s,c]);return t.createElement("svg",{width:"64",height:"41",viewBox:"0 0 64 41",xmlns:"http://www.w3.org/2000/svg"},t.createElement("title",null,(null==r?void 0:r.description)||"Empty"),t.createElement("g",{transform:"translate(0 1)",fill:"none",fillRule:"evenodd"},t.createElement("ellipse",{fill:d,cx:"32",cy:"33",rx:"32",ry:"7"}),t.createElement("g",{fillRule:"nonzero",stroke:u},t.createElement("path",{d:"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"}),t.createElement("path",{d:"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",fill:f}))))},null),p=e=>{var a;let{className:i,rootClassName:l,prefixCls:s,image:p,description:h,children:m,imageStyle:g,style:v,classNames:y,styles:b}=e,w=u(e,["className","rootClassName","prefixCls","image","description","children","imageStyle","style","classNames","styles"]),{getPrefixCls:$,direction:C,className:x,style:E,classNames:S,styles:k,image:j}=(0,r.useComponentConfig)("empty"),O=$("empty",s),[T,I,_]=c(O),[F]=(0,n.useLocale)("Empty"),P=void 0!==h?h:null==F?void 0:F.description,R="string"==typeof P?P:"empty",N=null!=(a=null!=p?p:j)?a:d,M=null;return M="string"==typeof N?t.createElement("img",{draggable:!1,alt:R,src:N}):N,T(t.createElement("div",Object.assign({className:(0,o.default)(I,_,O,x,{[`${O}-normal`]:N===f,[`${O}-rtl`]:"rtl"===C},i,l,S.root,null==y?void 0:y.root),style:Object.assign(Object.assign(Object.assign(Object.assign({},k.root),E),null==b?void 0:b.root),v)},w),t.createElement("div",{className:(0,o.default)(`${O}-image`,S.image,null==y?void 0:y.image),style:Object.assign(Object.assign(Object.assign({},g),k.image),null==b?void 0:b.image)},M),P&&t.createElement("div",{className:(0,o.default)(`${O}-description`,S.description,null==y?void 0:y.description),style:Object.assign(Object.assign({},k.description),null==b?void 0:b.description)},P),m&&t.createElement("div",{className:(0,o.default)(`${O}-footer`,S.footer,null==y?void 0:y.footer),style:Object.assign(Object.assign({},k.footer),null==b?void 0:b.footer)},m)))};p.PRESENTED_IMAGE_DEFAULT=d,p.PRESENTED_IMAGE_SIMPLE=f,e.s(["default",0,p],616303),e.s(["default",0,e=>{let{componentName:o}=e,{getPrefixCls:n}=(0,t.useContext)(r.ConfigContext),a=n("empty");switch(o){case"Table":case"List":return t.default.createElement(p,{image:p.PRESENTED_IMAGE_SIMPLE});case"Select":case"TreeSelect":case"Cascader":case"Transfer":case"Mentions":return t.default.createElement(p,{image:p.PRESENTED_IMAGE_SIMPLE,className:`${a}-small`});case"Table.filter":return null;default:return t.default.createElement(p,null)}}],721132)},85566,e=>{"use strict";e.s(["default",0,function(e,t){let r;return e||{bottomLeft:Object.assign(Object.assign({},r={overflow:{adjustX:!0,adjustY:!0,shiftY:!0},htmlRegion:"scroll"===t?"scroll":"visible",dynamicInset:!0}),{points:["tl","bl"],offset:[0,4]}),bottomRight:Object.assign(Object.assign({},r),{points:["tr","br"],offset:[0,4]}),topLeft:Object.assign(Object.assign({},r),{points:["bl","tl"],offset:[0,-4]}),topRight:Object.assign(Object.assign({},r),{points:["br","tr"],offset:[0,-4]})}}])},777489,e=>{"use strict";e.i(296059);var t=e.i(694758),r=e.i(402366);let o=new t.Keyframes("antMoveDownIn",{"0%":{transform:"translate3d(0, 100%, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),n=new t.Keyframes("antMoveDownOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(0, 100%, 0)",transformOrigin:"0 0",opacity:0}}),a=new t.Keyframes("antMoveLeftIn",{"0%":{transform:"translate3d(-100%, 0, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),i=new t.Keyframes("antMoveLeftOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(-100%, 0, 0)",transformOrigin:"0 0",opacity:0}}),l=new t.Keyframes("antMoveRightIn",{"0%":{transform:"translate3d(100%, 0, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),s=new t.Keyframes("antMoveRightOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(100%, 0, 0)",transformOrigin:"0 0",opacity:0}}),c={"move-up":{inKeyframes:new t.Keyframes("antMoveUpIn",{"0%":{transform:"translate3d(0, -100%, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),outKeyframes:new t.Keyframes("antMoveUpOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(0, -100%, 0)",transformOrigin:"0 0",opacity:0}})},"move-down":{inKeyframes:o,outKeyframes:n},"move-left":{inKeyframes:a,outKeyframes:i},"move-right":{inKeyframes:l,outKeyframes:s}};e.s(["initMoveMotion",0,(e,t)=>{let{antCls:o}=e,n=`${o}-${t}`,{inKeyframes:a,outKeyframes:i}=c[t];return[(0,r.initMotion)(n,a,i,e.motionDurationMid),{[` - ${n}-enter, - ${n}-appear - `]:{opacity:0,animationTimingFunction:e.motionEaseOutCirc},[`${n}-leave`]:{animationTimingFunction:e.motionEaseInOutCirc}}]}])},664142,e=>{"use strict";e.i(296059);var t=e.i(694758),r=e.i(402366);let o=new t.Keyframes("antSlideUpIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1}}),n=new t.Keyframes("antSlideUpOut",{"0%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0}}),a=new t.Keyframes("antSlideDownIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1}}),i=new t.Keyframes("antSlideDownOut",{"0%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0}}),l={"slide-up":{inKeyframes:o,outKeyframes:n},"slide-down":{inKeyframes:a,outKeyframes:i},"slide-left":{inKeyframes:new t.Keyframes("antSlideLeftIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1}}),outKeyframes:new t.Keyframes("antSlideLeftOut",{"0%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0}})},"slide-right":{inKeyframes:new t.Keyframes("antSlideRightIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1}}),outKeyframes:new t.Keyframes("antSlideRightOut",{"0%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0}})}};e.s(["initSlideMotion",0,(e,t)=>{let{antCls:o}=e,n=`${o}-${t}`,{inKeyframes:a,outKeyframes:i}=l[t];return[(0,r.initMotion)(n,a,i,e.motionDurationMid),{[` - ${n}-enter, - ${n}-appear - `]:{transform:"scale(0)",transformOrigin:"0% 0%",opacity:0,animationTimingFunction:e.motionEaseOutQuint,"&-prepare":{transform:"scale(1)"}},[`${n}-leave`]:{animationTimingFunction:e.motionEaseInQuint}}]},"slideDownIn",0,a,"slideDownOut",0,i,"slideUpIn",0,o,"slideUpOut",0,n])},950302,e=>{"use strict";var t=e.i(183293),r=e.i(372409),o=e.i(246422),n=e.i(838378),a=e.i(777489),i=e.i(664142);let l=e=>{let{optionHeight:t,optionFontSize:r,optionLineHeight:o,optionPadding:n}=e;return{position:"relative",display:"block",minHeight:t,padding:n,color:e.colorText,fontWeight:"normal",fontSize:r,lineHeight:o,boxSizing:"border-box"}};e.i(296059);var s=e.i(915654);function c(e,r){let{componentCls:o}=e,n=r?`${o}-${r}`:"",a={[`${o}-multiple${n}`]:{fontSize:e.fontSize,[`${o}-selector`]:{[`${o}-show-search&`]:{cursor:"text"}},[` - &${o}-show-arrow ${o}-selector, - &${o}-allow-clear ${o}-selector - `]:{paddingInlineEnd:e.calc(e.fontSizeIcon).add(e.controlPaddingHorizontal).equal()}}};return[((e,r)=>{let{componentCls:o,INTERNAL_FIXED_ITEM_MARGIN:n}=e,a=`${o}-selection-overflow`,i=e.multipleSelectItemHeight,l=(e=>{let{multipleSelectItemHeight:t,selectHeight:r,lineWidth:o}=e;return e.calc(r).sub(t).div(2).sub(o).equal()})(e),c=r?`${o}-${r}`:"",u=(e=>{let{multipleSelectItemHeight:t,paddingXXS:r,lineWidth:o,INTERNAL_FIXED_ITEM_MARGIN:n}=e,a=e.max(e.calc(r).sub(o).equal(),0),i=e.max(e.calc(a).sub(n).equal(),0);return{basePadding:a,containerPadding:i,itemHeight:(0,s.unit)(t),itemLineHeight:(0,s.unit)(e.calc(t).sub(e.calc(e.lineWidth).mul(2)).equal())}})(e);return{[`${o}-multiple${c}`]:Object.assign(Object.assign({},(e=>{let{componentCls:r,iconCls:o,borderRadiusSM:n,motionDurationSlow:a,paddingXS:i,multipleItemColorDisabled:l,multipleItemBorderColorDisabled:s,colorIcon:c,colorIconHover:u,INTERNAL_FIXED_ITEM_MARGIN:d}=e;return{[`${r}-selection-overflow`]:{position:"relative",display:"flex",flex:"auto",flexWrap:"wrap",maxWidth:"100%","&-item":{flex:"none",alignSelf:"center",maxWidth:"calc(100% - 4px)",display:"inline-flex"},[`${r}-selection-item`]:{display:"flex",alignSelf:"center",flex:"none",boxSizing:"border-box",maxWidth:"100%",marginBlock:d,borderRadius:n,cursor:"default",transition:`font-size ${a}, line-height ${a}, height ${a}`,marginInlineEnd:e.calc(d).mul(2).equal(),paddingInlineStart:i,paddingInlineEnd:e.calc(i).div(2).equal(),[`${r}-disabled&`]:{color:l,borderColor:s,cursor:"not-allowed"},"&-content":{display:"inline-block",marginInlineEnd:e.calc(i).div(2).equal(),overflow:"hidden",whiteSpace:"pre",textOverflow:"ellipsis"},"&-remove":Object.assign(Object.assign({},(0,t.resetIcon)()),{display:"inline-flex",alignItems:"center",color:c,fontWeight:"bold",fontSize:10,lineHeight:"inherit",cursor:"pointer",[`> ${o}`]:{verticalAlign:"-0.2em"},"&:hover":{color:u}})}}}})(e)),{[`${o}-selector`]:{display:"flex",alignItems:"center",width:"100%",height:"100%",paddingInline:u.basePadding,paddingBlock:u.containerPadding,borderRadius:e.borderRadius,[`${o}-disabled&`]:{background:e.multipleSelectorBgDisabled,cursor:"not-allowed"},"&:after":{display:"inline-block",width:0,margin:`${(0,s.unit)(n)} 0`,lineHeight:(0,s.unit)(i),visibility:"hidden",content:'"\\a0"'}},[`${o}-selection-item`]:{height:u.itemHeight,lineHeight:(0,s.unit)(u.itemLineHeight)},[`${o}-selection-wrap`]:{alignSelf:"flex-start","&:after":{lineHeight:(0,s.unit)(i),marginBlock:n}},[`${o}-prefix`]:{marginInlineStart:e.calc(e.inputPaddingHorizontalBase).sub(u.basePadding).equal()},[`${a}-item + ${a}-item, - ${o}-prefix + ${o}-selection-wrap - `]:{[`${o}-selection-search`]:{marginInlineStart:0},[`${o}-selection-placeholder`]:{insetInlineStart:0}},[`${a}-item-suffix`]:{minHeight:u.itemHeight,marginBlock:n},[`${o}-selection-search`]:{display:"inline-flex",position:"relative",maxWidth:"100%",marginInlineStart:e.calc(e.inputPaddingHorizontalBase).sub(l).equal(),[` - &-input, - &-mirror - `]:{height:i,fontFamily:e.fontFamily,lineHeight:(0,s.unit)(i),transition:`all ${e.motionDurationSlow}`},"&-input":{width:"100%",minWidth:4.1},"&-mirror":{position:"absolute",top:0,insetInlineStart:0,insetInlineEnd:"auto",zIndex:999,whiteSpace:"pre",visibility:"hidden"}},[`${o}-selection-placeholder`]:{position:"absolute",top:"50%",insetInlineStart:e.calc(e.inputPaddingHorizontalBase).sub(u.basePadding).equal(),insetInlineEnd:e.inputPaddingHorizontalBase,transform:"translateY(-50%)",transition:`all ${e.motionDurationSlow}`}})}})(e,r),a]}function u(e,r){let{componentCls:o,inputPaddingHorizontalBase:n,borderRadius:a}=e,i=e.calc(e.controlHeight).sub(e.calc(e.lineWidth).mul(2)).equal(),l=r?`${o}-${r}`:"";return{[`${o}-single${l}`]:{fontSize:e.fontSize,height:e.controlHeight,[`${o}-selector`]:Object.assign(Object.assign({},(0,t.resetComponent)(e,!0)),{display:"flex",borderRadius:a,flex:"1 1 auto",[`${o}-selection-wrap:after`]:{lineHeight:(0,s.unit)(i)},[`${o}-selection-search`]:{position:"absolute",inset:0,width:"100%","&-input":{width:"100%",WebkitAppearance:"textfield"}},[` - ${o}-selection-item, - ${o}-selection-placeholder - `]:{display:"block",padding:0,lineHeight:(0,s.unit)(i),transition:`all ${e.motionDurationSlow}, visibility 0s`,alignSelf:"center"},[`${o}-selection-placeholder`]:{transition:"none",pointerEvents:"none"},[`&:after,${o}-selection-item:empty:after,${o}-selection-placeholder:empty:after`]:{display:"inline-block",width:0,visibility:"hidden",content:'"\\a0"'}}),[` - &${o}-show-arrow ${o}-selection-item, - &${o}-show-arrow ${o}-selection-search, - &${o}-show-arrow ${o}-selection-placeholder - `]:{paddingInlineEnd:e.showArrowPaddingInlineEnd},[`&${o}-open ${o}-selection-item`]:{color:e.colorTextPlaceholder},[`&:not(${o}-customize-input)`]:{[`${o}-selector`]:{width:"100%",height:"100%",alignItems:"center",padding:`0 ${(0,s.unit)(n)}`,[`${o}-selection-search-input`]:{height:i,fontSize:e.fontSize},"&:after":{lineHeight:(0,s.unit)(i)}}},[`&${o}-customize-input`]:{[`${o}-selector`]:{"&:after":{display:"none"},[`${o}-selection-search`]:{position:"static",width:"100%"},[`${o}-selection-placeholder`]:{position:"absolute",insetInlineStart:0,insetInlineEnd:0,padding:`0 ${(0,s.unit)(n)}`,"&:after":{display:"none"}}}}}}}let d=(e,t)=>{let{componentCls:r,antCls:o,controlOutlineWidth:n}=e;return{[`&:not(${r}-customize-input) ${r}-selector`]:{border:`${(0,s.unit)(e.lineWidth)} ${e.lineType} ${t.borderColor}`,background:e.selectorBg},[`&:not(${r}-disabled):not(${r}-customize-input):not(${o}-pagination-size-changer)`]:{[`&:hover ${r}-selector`]:{borderColor:t.hoverBorderHover},[`${r}-focused& ${r}-selector`]:{borderColor:t.activeBorderColor,boxShadow:`0 0 0 ${(0,s.unit)(n)} ${t.activeOutlineColor}`,outline:0},[`${r}-prefix`]:{color:t.color}}}},f=(e,t)=>({[`&${e.componentCls}-status-${t.status}`]:Object.assign({},d(e,t))}),p=(e,t)=>{let{componentCls:r,antCls:o}=e;return{[`&:not(${r}-customize-input) ${r}-selector`]:{background:t.bg,border:`${(0,s.unit)(e.lineWidth)} ${e.lineType} transparent`,color:t.color},[`&:not(${r}-disabled):not(${r}-customize-input):not(${o}-pagination-size-changer)`]:{[`&:hover ${r}-selector`]:{background:t.hoverBg},[`${r}-focused& ${r}-selector`]:{background:e.selectorBg,borderColor:t.activeBorderColor,outline:0}}}},h=(e,t)=>({[`&${e.componentCls}-status-${t.status}`]:Object.assign({},p(e,t))}),m=(e,t)=>{let{componentCls:r,antCls:o}=e;return{[`&:not(${r}-customize-input) ${r}-selector`]:{borderWidth:`${(0,s.unit)(e.lineWidth)} 0`,borderStyle:`${e.lineType} none`,borderColor:`transparent transparent ${t.borderColor} transparent`,background:e.selectorBg,borderRadius:0},[`&:not(${r}-disabled):not(${r}-customize-input):not(${o}-pagination-size-changer)`]:{[`&:hover ${r}-selector`]:{borderColor:`transparent transparent ${t.hoverBorderHover} transparent`},[`${r}-focused& ${r}-selector`]:{borderColor:`transparent transparent ${t.activeBorderColor} transparent`,outline:0},[`${r}-prefix`]:{color:t.color}}}},g=(e,t)=>({[`&${e.componentCls}-status-${t.status}`]:Object.assign({},m(e,t))}),v=(0,o.genStyleHooks)("Select",(e,{rootPrefixCls:o})=>{let v=(0,n.mergeToken)(e,{rootPrefixCls:o,inputPaddingHorizontalBase:e.calc(e.paddingSM).sub(1).equal(),multipleSelectItemHeight:e.multipleItemHeight,selectHeight:e.controlHeight});return[(e=>{let{componentCls:o}=e;return[{[o]:{[`&${o}-in-form-item`]:{width:"100%"}}},(e=>{let{antCls:r,componentCls:o,inputPaddingHorizontalBase:n,iconCls:a}=e,i={[`${o}-clear`]:{opacity:1,background:e.colorBgBase,borderRadius:"50%"}};return{[o]:Object.assign(Object.assign({},(0,t.resetComponent)(e)),{position:"relative",display:"inline-flex",cursor:"pointer",[`&:not(${o}-customize-input) ${o}-selector`]:Object.assign(Object.assign({},(e=>{let{componentCls:t}=e;return{position:"relative",transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,input:{cursor:"pointer"},[`${t}-show-search&`]:{cursor:"text",input:{cursor:"auto",color:"inherit",height:"100%"}},[`${t}-disabled&`]:{cursor:"not-allowed",input:{cursor:"not-allowed"}}}})(e)),(e=>{let{componentCls:t}=e;return{[`${t}-selection-search-input`]:{margin:0,padding:0,background:"transparent",border:"none",outline:"none",appearance:"none",fontFamily:"inherit","&::-webkit-search-cancel-button":{display:"none",appearance:"none"}}}})(e)),[`${o}-selection-item`]:Object.assign(Object.assign({flex:1,fontWeight:"normal",position:"relative",userSelect:"none"},t.textEllipsis),{[`> ${r}-typography`]:{display:"inline"}}),[`${o}-selection-placeholder`]:Object.assign(Object.assign({},t.textEllipsis),{flex:1,color:e.colorTextPlaceholder,pointerEvents:"none"}),[`${o}-arrow`]:Object.assign(Object.assign({},(0,t.resetIcon)()),{position:"absolute",top:"50%",insetInlineStart:"auto",insetInlineEnd:n,height:e.fontSizeIcon,marginTop:e.calc(e.fontSizeIcon).mul(-1).div(2).equal(),color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,lineHeight:1,textAlign:"center",pointerEvents:"none",display:"flex",alignItems:"center",transition:`opacity ${e.motionDurationSlow} ease`,[a]:{verticalAlign:"top",transition:`transform ${e.motionDurationSlow}`,"> svg":{verticalAlign:"top"},[`&:not(${o}-suffix)`]:{pointerEvents:"auto"}},[`${o}-disabled &`]:{cursor:"not-allowed"},"> *:not(:last-child)":{marginInlineEnd:8}}),[`${o}-selection-wrap`]:{display:"flex",width:"100%",position:"relative",minWidth:0,"&:after":{content:'"\\a0"',width:0,overflow:"hidden"}},[`${o}-prefix`]:{flex:"none",marginInlineEnd:e.selectAffixPadding},[`${o}-clear`]:{position:"absolute",top:"50%",insetInlineStart:"auto",insetInlineEnd:n,zIndex:1,display:"inline-block",width:e.fontSizeIcon,height:e.fontSizeIcon,marginTop:e.calc(e.fontSizeIcon).mul(-1).div(2).equal(),color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,fontStyle:"normal",lineHeight:1,textAlign:"center",textTransform:"none",cursor:"pointer",opacity:0,transition:`color ${e.motionDurationMid} ease, opacity ${e.motionDurationSlow} ease`,textRendering:"auto",transform:"translateZ(0)","&:before":{display:"block"},"&:hover":{color:e.colorIcon}},"@media(hover:none)":i,"&:hover":i}),[`${o}-status`]:{"&-error, &-warning, &-success, &-validating":{[`&${o}-has-feedback`]:{[`${o}-clear`]:{insetInlineEnd:e.calc(n).add(e.fontSize).add(e.paddingXS).equal()}}}}}})(e),function(e){let{componentCls:t}=e,r=e.calc(e.controlPaddingHorizontalSM).sub(e.lineWidth).equal();return[u(e),u((0,n.mergeToken)(e,{controlHeight:e.controlHeightSM,borderRadius:e.borderRadiusSM}),"sm"),{[`${t}-single${t}-sm`]:{[`&:not(${t}-customize-input)`]:{[`${t}-selector`]:{padding:`0 ${(0,s.unit)(r)}`},[`&${t}-show-arrow ${t}-selection-search`]:{insetInlineEnd:e.calc(r).add(e.calc(e.fontSize).mul(1.5)).equal()},[` - &${t}-show-arrow ${t}-selection-item, - &${t}-show-arrow ${t}-selection-placeholder - `]:{paddingInlineEnd:e.calc(e.fontSize).mul(1.5).equal()}}}},u((0,n.mergeToken)(e,{controlHeight:e.singleItemHeightLG,fontSize:e.fontSizeLG,borderRadius:e.borderRadiusLG}),"lg")]}(e),(e=>{let{componentCls:t}=e,r=(0,n.mergeToken)(e,{selectHeight:e.controlHeightSM,multipleSelectItemHeight:e.multipleItemHeightSM,borderRadius:e.borderRadiusSM,borderRadiusSM:e.borderRadiusXS}),o=(0,n.mergeToken)(e,{fontSize:e.fontSizeLG,selectHeight:e.controlHeightLG,multipleSelectItemHeight:e.multipleItemHeightLG,borderRadius:e.borderRadiusLG,borderRadiusSM:e.borderRadius});return[c(e),c(r,"sm"),{[`${t}-multiple${t}-sm`]:{[`${t}-selection-placeholder`]:{insetInline:e.calc(e.controlPaddingHorizontalSM).sub(e.lineWidth).equal()},[`${t}-selection-search`]:{marginInlineStart:2}}},c(o,"lg")]})(e),(e=>{let{antCls:r,componentCls:o}=e,n=`${o}-item`,s=`&${r}-slide-up-enter${r}-slide-up-enter-active`,c=`&${r}-slide-up-appear${r}-slide-up-appear-active`,u=`&${r}-slide-up-leave${r}-slide-up-leave-active`,d=`${o}-dropdown-placement-`,f=`${n}-option-selected`;return[{[`${o}-dropdown`]:Object.assign(Object.assign({},(0,t.resetComponent)(e)),{position:"absolute",top:-9999,zIndex:e.zIndexPopup,boxSizing:"border-box",padding:e.paddingXXS,overflow:"hidden",fontSize:e.fontSize,fontVariant:"initial",backgroundColor:e.colorBgElevated,borderRadius:e.borderRadiusLG,outline:"none",boxShadow:e.boxShadowSecondary,[` - ${s}${d}bottomLeft, - ${c}${d}bottomLeft - `]:{animationName:i.slideUpIn},[` - ${s}${d}topLeft, - ${c}${d}topLeft, - ${s}${d}topRight, - ${c}${d}topRight - `]:{animationName:i.slideDownIn},[`${u}${d}bottomLeft`]:{animationName:i.slideUpOut},[` - ${u}${d}topLeft, - ${u}${d}topRight - `]:{animationName:i.slideDownOut},"&-hidden":{display:"none"},[n]:Object.assign(Object.assign({},l(e)),{cursor:"pointer",transition:`background ${e.motionDurationSlow} ease`,borderRadius:e.borderRadiusSM,"&-group":{color:e.colorTextDescription,fontSize:e.fontSizeSM,cursor:"default"},"&-option":{display:"flex","&-content":Object.assign({flex:"auto"},t.textEllipsis),"&-state":{flex:"none",display:"flex",alignItems:"center"},[`&-active:not(${n}-option-disabled)`]:{backgroundColor:e.optionActiveBg},[`&-selected:not(${n}-option-disabled)`]:{color:e.optionSelectedColor,fontWeight:e.optionSelectedFontWeight,backgroundColor:e.optionSelectedBg,[`${n}-option-state`]:{color:e.colorPrimary}},"&-disabled":{[`&${n}-option-selected`]:{backgroundColor:e.colorBgContainerDisabled},color:e.colorTextDisabled,cursor:"not-allowed"},"&-grouped":{paddingInlineStart:e.calc(e.controlPaddingHorizontal).mul(2).equal()}},"&-empty":Object.assign(Object.assign({},l(e)),{color:e.colorTextDisabled})}),[`${f}:has(+ ${f})`]:{borderEndStartRadius:0,borderEndEndRadius:0,[`& + ${f}`]:{borderStartStartRadius:0,borderStartEndRadius:0}},"&-rtl":{direction:"rtl"}})},(0,i.initSlideMotion)(e,"slide-up"),(0,i.initSlideMotion)(e,"slide-down"),(0,a.initMoveMotion)(e,"move-up"),(0,a.initMoveMotion)(e,"move-down")]})(e),{[`${o}-rtl`]:{direction:"rtl"}},(0,r.genCompactItemStyle)(e,{borderElCls:`${o}-selector`,focusElCls:`${o}-focused`})]})(v),{[v.componentCls]:Object.assign(Object.assign(Object.assign(Object.assign({},{"&-outlined":Object.assign(Object.assign(Object.assign(Object.assign({},d(v,{borderColor:v.colorBorder,hoverBorderHover:v.hoverBorderColor,activeBorderColor:v.activeBorderColor,activeOutlineColor:v.activeOutlineColor,color:v.colorText})),f(v,{status:"error",borderColor:v.colorError,hoverBorderHover:v.colorErrorHover,activeBorderColor:v.colorError,activeOutlineColor:v.colorErrorOutline,color:v.colorError})),f(v,{status:"warning",borderColor:v.colorWarning,hoverBorderHover:v.colorWarningHover,activeBorderColor:v.colorWarning,activeOutlineColor:v.colorWarningOutline,color:v.colorWarning})),{[`&${v.componentCls}-disabled`]:{[`&:not(${v.componentCls}-customize-input) ${v.componentCls}-selector`]:{background:v.colorBgContainerDisabled,color:v.colorTextDisabled}},[`&${v.componentCls}-multiple ${v.componentCls}-selection-item`]:{background:v.multipleItemBg,border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} ${v.multipleItemBorderColor}`}})}),{"&-filled":Object.assign(Object.assign(Object.assign(Object.assign({},p(v,{bg:v.colorFillTertiary,hoverBg:v.colorFillSecondary,activeBorderColor:v.activeBorderColor,color:v.colorText})),h(v,{status:"error",bg:v.colorErrorBg,hoverBg:v.colorErrorBgHover,activeBorderColor:v.colorError,color:v.colorError})),h(v,{status:"warning",bg:v.colorWarningBg,hoverBg:v.colorWarningBgHover,activeBorderColor:v.colorWarning,color:v.colorWarning})),{[`&${v.componentCls}-disabled`]:{[`&:not(${v.componentCls}-customize-input) ${v.componentCls}-selector`]:{borderColor:v.colorBorder,background:v.colorBgContainerDisabled,color:v.colorTextDisabled}},[`&${v.componentCls}-multiple ${v.componentCls}-selection-item`]:{background:v.colorBgContainer,border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} ${v.colorSplit}`}})}),{"&-borderless":{[`${v.componentCls}-selector`]:{background:"transparent",border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} transparent`},[`&${v.componentCls}-disabled`]:{[`&:not(${v.componentCls}-customize-input) ${v.componentCls}-selector`]:{color:v.colorTextDisabled}},[`&${v.componentCls}-multiple ${v.componentCls}-selection-item`]:{background:v.multipleItemBg,border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} ${v.multipleItemBorderColor}`},[`&${v.componentCls}-status-error`]:{[`${v.componentCls}-prefix, ${v.componentCls}-selection-item`]:{color:v.colorError}},[`&${v.componentCls}-status-warning`]:{[`${v.componentCls}-prefix, ${v.componentCls}-selection-item`]:{color:v.colorWarning}}}}),{"&-underlined":Object.assign(Object.assign(Object.assign(Object.assign({},m(v,{borderColor:v.colorBorder,hoverBorderHover:v.hoverBorderColor,activeBorderColor:v.activeBorderColor,activeOutlineColor:v.activeOutlineColor,color:v.colorText})),g(v,{status:"error",borderColor:v.colorError,hoverBorderHover:v.colorErrorHover,activeBorderColor:v.colorError,activeOutlineColor:v.colorErrorOutline,color:v.colorError})),g(v,{status:"warning",borderColor:v.colorWarning,hoverBorderHover:v.colorWarningHover,activeBorderColor:v.colorWarning,activeOutlineColor:v.colorWarningOutline,color:v.colorWarning})),{[`&${v.componentCls}-disabled`]:{[`&:not(${v.componentCls}-customize-input) ${v.componentCls}-selector`]:{color:v.colorTextDisabled}},[`&${v.componentCls}-multiple ${v.componentCls}-selection-item`]:{background:v.multipleItemBg,border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} ${v.multipleItemBorderColor}`}})})}]},e=>{let{fontSize:t,lineHeight:r,lineWidth:o,controlHeight:n,controlHeightSM:a,controlHeightLG:i,paddingXXS:l,controlPaddingHorizontal:s,zIndexPopupBase:c,colorText:u,fontWeightStrong:d,controlItemBgActive:f,controlItemBgHover:p,colorBgContainer:h,colorFillSecondary:m,colorBgContainerDisabled:g,colorTextDisabled:v,colorPrimaryHover:y,colorPrimary:b,controlOutline:w}=e,$=2*l,C=2*o,x=Math.min(n-$,n-C),E=Math.min(a-$,a-C),S=Math.min(i-$,i-C);return{INTERNAL_FIXED_ITEM_MARGIN:Math.floor(l/2),zIndexPopup:c+50,optionSelectedColor:u,optionSelectedFontWeight:d,optionSelectedBg:f,optionActiveBg:p,optionPadding:`${(n-t*r)/2}px ${s}px`,optionFontSize:t,optionLineHeight:r,optionHeight:n,selectorBg:h,clearBg:h,singleItemHeightLG:i,multipleItemBg:m,multipleItemBorderColor:"transparent",multipleItemHeight:x,multipleItemHeightSM:E,multipleItemHeightLG:S,multipleSelectorBgDisabled:g,multipleItemColorDisabled:v,multipleItemBorderColorDisabled:"transparent",showArrowPaddingInlineEnd:Math.ceil(1.25*e.fontSize),hoverBorderColor:y,activeBorderColor:b,activeOutlineColor:w,selectAffixPadding:l}},{unitless:{optionLineHeight:!0,optionSelectedFontWeight:!0}});e.s(["default",0,v],950302)},121229,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"}}]},name:"check",theme:"outlined"};var n=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(n.default,(0,t.default)({},e,{ref:a,icon:o}))});e.s(["default",0,a],121229)},729151,e=>{"use strict";var t=e.i(271645),r=e.i(121229),o=e.i(726289),n=e.i(864517),a=e.i(247153),i=e.i(739295),l=e.i(38953);e.s(["default",0,function({suffixIcon:e,clearIcon:s,menuItemSelectedIcon:c,removeIcon:u,loading:d,multiple:f,hasFeedback:p,prefixCls:h,showSuffixIcon:m,feedbackIcon:g,showArrow:v,componentName:y}){let b=null!=s?s:t.createElement(o.default,null),w=r=>null!==e||p||v?t.createElement(t.Fragment,null,!1!==m&&r,p&&g):null,$=null;if(void 0!==e)$=w(e);else if(d)$=w(t.createElement(i.default,{spin:!0}));else{let e=`${h}-suffix`;$=({open:r,showSearch:o})=>r&&o?w(t.createElement(l.default,{className:e})):w(t.createElement(a.default,{className:e}))}let C=null;C=void 0!==c?c:f?t.createElement(r.default,null):null;return{clearIcon:b,suffixIcon:$,itemIcon:C,removeIcon:void 0!==u?u:t.createElement(n.default,null)}}])},327494,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(123829),n=e.i(955492),a=e.i(869301),i=e.i(529681),l=e.i(122767),s=e.i(613541),c=e.i(805484),u=e.i(52956),d=e.i(242064),f=e.i(721132),p=e.i(937328),h=e.i(321883),m=e.i(517455),g=e.i(62139),v=e.i(792812),y=e.i(249616),b=e.i(104458),w=e.i(85566),$=e.i(950302),C=e.i(729151),x=e.i(617206),E=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let S="SECRET_COMBOBOX_MODE_DO_NOT_USE",k=t.forwardRef((e,n)=>{var a,c,k,j,O,T,I,_;let F,{prefixCls:P,bordered:R,className:N,rootClassName:M,getPopupContainer:B,popupClassName:A,dropdownClassName:z,listHeight:L=256,placement:D,listItemHeight:H,size:V,disabled:W,notFoundContent:U,status:G,builtinPlacements:q,dropdownMatchSelectWidth:J,popupMatchSelectWidth:K,direction:X,style:Q,allowClear:Y,variant:Z,dropdownStyle:ee,transitionName:et,tagRender:er,maxCount:eo,prefix:en,dropdownRender:ea,popupRender:ei,onDropdownVisibleChange:el,onOpenChange:es,styles:ec,classNames:eu}=e,ed=E(e,["prefixCls","bordered","className","rootClassName","getPopupContainer","popupClassName","dropdownClassName","listHeight","placement","listItemHeight","size","disabled","notFoundContent","status","builtinPlacements","dropdownMatchSelectWidth","popupMatchSelectWidth","direction","style","allowClear","variant","dropdownStyle","transitionName","tagRender","maxCount","prefix","dropdownRender","popupRender","onDropdownVisibleChange","onOpenChange","styles","classNames"]),{getPopupContainer:ef,getPrefixCls:ep,renderEmpty:eh,direction:em,virtual:eg,popupMatchSelectWidth:ev,popupOverflow:ey}=t.useContext(d.ConfigContext),{showSearch:eb,style:ew,styles:e$,className:eC,classNames:ex}=(0,d.useComponentConfig)("select"),[,eE]=(0,b.useToken)(),eS=null!=H?H:null==eE?void 0:eE.controlHeight,ek=ep("select",P),ej=ep(),eO=null!=X?X:em,{compactSize:eT,compactItemClassnames:eI}=(0,y.useCompactItemContext)(ek,eO),[e_,eF]=(0,v.default)("select",Z,R),eP=(0,h.default)(ek),[eR,eN,eM]=(0,$.default)(ek,eP),eB=t.useMemo(()=>{let{mode:t}=e;if("combobox"!==t)return t===S?"combobox":t},[e.mode]),eA="multiple"===eB||"tags"===eB,ez=(T=e.suffixIcon,void 0!==(I=e.showArrow)?I:null!==T),eL=null!=(a=null!=K?K:J)?a:ev,eD=(null==(c=null==ec?void 0:ec.popup)?void 0:c.root)||(null==(k=e$.popup)?void 0:k.root)||ee,eH=(_=ei||ea,t.default.useMemo(()=>{if(_)return(...e)=>t.default.createElement(x.default,{space:!0},_.apply(void 0,e))},[_])),{status:eV,hasFeedback:eW,isFormItemInput:eU,feedbackIcon:eG}=t.useContext(g.FormItemInputContext),eq=(0,u.getMergedStatus)(eV,G);F=void 0!==U?U:"combobox"===eB?null:(null==eh?void 0:eh("Select"))||t.createElement(f.default,{componentName:"Select"});let{suffixIcon:eJ,itemIcon:eK,removeIcon:eX,clearIcon:eQ}=(0,C.default)(Object.assign(Object.assign({},ed),{multiple:eA,hasFeedback:eW,feedbackIcon:eG,showSuffixIcon:ez,prefixCls:ek,componentName:"Select"})),eY=(0,i.default)(ed,["suffixIcon","itemIcon"]),eZ=(0,r.default)((null==(j=null==eu?void 0:eu.popup)?void 0:j.root)||(null==(O=null==ex?void 0:ex.popup)?void 0:O.root)||A||z,{[`${ek}-dropdown-${eO}`]:"rtl"===eO},M,ex.root,null==eu?void 0:eu.root,eM,eP,eN),e0=(0,m.default)(e=>{var t;return null!=(t=null!=V?V:eT)?t:e}),e1=t.useContext(p.default),e2=(0,r.default)({[`${ek}-lg`]:"large"===e0,[`${ek}-sm`]:"small"===e0,[`${ek}-rtl`]:"rtl"===eO,[`${ek}-${e_}`]:eF,[`${ek}-in-form-item`]:eU},(0,u.getStatusClassNames)(ek,eq,eW),eI,eC,N,ex.root,null==eu?void 0:eu.root,M,eM,eP,eN),e4=t.useMemo(()=>void 0!==D?D:"rtl"===eO?"bottomRight":"bottomLeft",[D,eO]),[e6]=(0,l.useZIndex)("SelectLike",null==eD?void 0:eD.zIndex);return eR(t.createElement(o.default,Object.assign({ref:n,virtual:eg,showSearch:eb},eY,{style:Object.assign(Object.assign(Object.assign(Object.assign({},e$.root),null==ec?void 0:ec.root),ew),Q),dropdownMatchSelectWidth:eL,transitionName:(0,s.getTransitionName)(ej,"slide-up",et),builtinPlacements:(0,w.default)(q,ey),listHeight:L,listItemHeight:eS,mode:eB,prefixCls:ek,placement:e4,direction:eO,prefix:en,suffixIcon:eJ,menuItemSelectedIcon:eK,removeIcon:eX,allowClear:!0===Y?{clearIcon:eQ}:Y,notFoundContent:F,className:e2,getPopupContainer:B||ef,dropdownClassName:eZ,disabled:null!=W?W:e1,dropdownStyle:Object.assign(Object.assign({},eD),{zIndex:e6}),maxCount:eA?eo:void 0,tagRender:eA?er:void 0,dropdownRender:eH,onDropdownVisibleChange:es||el})))}),j=(0,c.default)(k,"dropdownAlign");k.SECRET_COMBOBOX_MODE_DO_NOT_USE=S,k.Option=a.Option,k.OptGroup=n.OptGroup,k._InternalPanelDoNotUseOrYouWillBeFired=j,e.s(["default",0,k],327494)},199133,e=>{"use strict";var t=e.i(327494);e.s(["Select",()=>t.default])},290571,e=>{"use strict";"function"==typeof SuppressedError&&SuppressedError,e.s(["__rest",0,function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r}])},480731,e=>{"use strict";e.s(["BaseColors",0,{Slate:"slate",Gray:"gray",Zinc:"zinc",Neutral:"neutral",Stone:"stone",Red:"red",Orange:"orange",Amber:"amber",Yellow:"yellow",Lime:"lime",Green:"green",Emerald:"emerald",Teal:"teal",Cyan:"cyan",Sky:"sky",Blue:"blue",Indigo:"indigo",Violet:"violet",Purple:"purple",Fuchsia:"fuchsia",Pink:"pink",Rose:"rose"},"DeltaTypes",0,{Increase:"increase",ModerateIncrease:"moderateIncrease",Decrease:"decrease",ModerateDecrease:"moderateDecrease",Unchanged:"unchanged"},"HorizontalPositions",0,{Left:"left",Right:"right"},"Sizes",0,{XS:"xs",SM:"sm",MD:"md",LG:"lg",XL:"xl"},"VerticalPositions",0,{Top:"top",Bottom:"bottom"}])},673706,e=>{"use strict";e.i(480731);let t=["slate","gray","zinc","neutral","stone","red","orange","amber","yellow","lime","green","emerald","teal","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose"];e.s(["defaultValueFormatter",0,e=>e.toString(),"getColorClassNames",0,function(e,r){let o=t.includes(e);if("white"===e||"black"===e||"transparent"===e||!r||!o){let t=e.includes("#")||e.includes("--")||e.includes("rgb")?`[${e}]`:e;return{bgColor:`bg-${t} dark:bg-${t}`,hoverBgColor:`hover:bg-${t} dark:hover:bg-${t}`,selectBgColor:`data-[selected]:bg-${t} dark:data-[selected]:bg-${t}`,textColor:`text-${t} dark:text-${t}`,selectTextColor:`data-[selected]:text-${t} dark:data-[selected]:text-${t}`,hoverTextColor:`hover:text-${t} dark:hover:text-${t}`,borderColor:`border-${t} dark:border-${t}`,selectBorderColor:`data-[selected]:border-${t} dark:data-[selected]:border-${t}`,hoverBorderColor:`hover:border-${t} dark:hover:border-${t}`,ringColor:`ring-${t} dark:ring-${t}`,strokeColor:`stroke-${t} dark:stroke-${t}`,fillColor:`fill-${t} dark:fill-${t}`}}return{bgColor:`bg-${e}-${r} dark:bg-${e}-${r}`,selectBgColor:`data-[selected]:bg-${e}-${r} dark:data-[selected]:bg-${e}-${r}`,hoverBgColor:`hover:bg-${e}-${r} dark:hover:bg-${e}-${r}`,textColor:`text-${e}-${r} dark:text-${e}-${r}`,selectTextColor:`data-[selected]:text-${e}-${r} dark:data-[selected]:text-${e}-${r}`,hoverTextColor:`hover:text-${e}-${r} dark:hover:text-${e}-${r}`,borderColor:`border-${e}-${r} dark:border-${e}-${r}`,selectBorderColor:`data-[selected]:border-${e}-${r} dark:data-[selected]:border-${e}-${r}`,hoverBorderColor:`hover:border-${e}-${r} dark:hover:border-${e}-${r}`,ringColor:`ring-${e}-${r} dark:ring-${e}-${r}`,strokeColor:`stroke-${e}-${r} dark:stroke-${e}-${r}`,fillColor:`fill-${e}-${r} dark:fill-${e}-${r}`}},"isValueInArray",0,(e,t)=>{for(let r=0;r`tremor-${e}-${t}`},"mergeRefs",0,function(e){return t=>{e.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}},"sumNumericArray",0,e=>e.reduce((e,t)=>e+t,0)],673706)},689074,21243,98801,e=>{"use strict";var t=e.i(290571),r=e.i(271645);e.s(["default",0,e=>{var o=(0,t.__rest)(e,[]);return r.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},o),r.default.createElement("path",{d:"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM11 15V17H13V15H11ZM11 7V13H13V7H11Z"}))}],689074),e.s(["default",0,e=>{var o=(0,t.__rest)(e,[]);return r.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},o),r.default.createElement("path",{d:"M1.18164 12C2.12215 6.87976 6.60812 3 12.0003 3C17.3924 3 21.8784 6.87976 22.8189 12C21.8784 17.1202 17.3924 21 12.0003 21C6.60812 21 2.12215 17.1202 1.18164 12ZM12.0003 17C14.7617 17 17.0003 14.7614 17.0003 12C17.0003 9.23858 14.7617 7 12.0003 7C9.23884 7 7.00026 9.23858 7.00026 12C7.00026 14.7614 9.23884 17 12.0003 17ZM12.0003 15C10.3434 15 9.00026 13.6569 9.00026 12C9.00026 10.3431 10.3434 9 12.0003 9C13.6571 9 15.0003 10.3431 15.0003 12C15.0003 13.6569 13.6571 15 12.0003 15Z"}))}],21243),e.s(["default",0,e=>{var o=(0,t.__rest)(e,[]);return r.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},o),r.default.createElement("path",{d:"M4.52047 5.93457L1.39366 2.80777L2.80788 1.39355L22.6069 21.1925L21.1927 22.6068L17.8827 19.2968C16.1814 20.3755 14.1638 21.0002 12.0003 21.0002C6.60812 21.0002 2.12215 17.1204 1.18164 12.0002C1.61832 9.62282 2.81932 7.5129 4.52047 5.93457ZM14.7577 16.1718L13.2937 14.7078C12.902 14.8952 12.4634 15.0002 12.0003 15.0002C10.3434 15.0002 9.00026 13.657 9.00026 12.0002C9.00026 11.537 9.10522 11.0984 9.29263 10.7067L7.82866 9.24277C7.30514 10.0332 7.00026 10.9811 7.00026 12.0002C7.00026 14.7616 9.23884 17.0002 12.0003 17.0002C13.0193 17.0002 13.9672 16.6953 14.7577 16.1718ZM7.97446 3.76015C9.22127 3.26959 10.5793 3.00016 12.0003 3.00016C17.3924 3.00016 21.8784 6.87992 22.8189 12.0002C22.5067 13.6998 21.8038 15.2628 20.8068 16.5925L16.947 12.7327C16.9821 12.4936 17.0003 12.249 17.0003 12.0002C17.0003 9.23873 14.7617 7.00016 12.0003 7.00016C11.7514 7.00016 11.5068 7.01833 11.2677 7.05343L7.97446 3.76015Z"}))}],98801)},444755,e=>{"use strict";let t=(e,r)=>{if(0===e.length)return r.classGroupId;let o=e[0],n=r.nextPart.get(o),a=n?t(e.slice(1),n):void 0;if(a)return a;if(0===r.validators.length)return;let i=e.join("-");return r.validators.find(({validator:e})=>e(i))?.classGroupId},r=/^\[(.+)\]$/,o=(e,t,r,i)=>{e.forEach(e=>{if("string"==typeof e){(""===e?t:n(t,e)).classGroupId=r;return}"function"==typeof e?a(e)?o(e(i),t,r,i):t.validators.push({validator:e,classGroupId:r}):Object.entries(e).forEach(([e,a])=>{o(a,n(t,e),r,i)})})},n=(e,t)=>{let r=e;return t.split("-").forEach(e=>{r.nextPart.has(e)||r.nextPart.set(e,{nextPart:new Map,validators:[]}),r=r.nextPart.get(e)}),r},a=e=>e.isThemeGetter,i=(e,t)=>t?e.map(([e,r])=>[e,r.map(e=>"string"==typeof e?t+e:"object"==typeof e?Object.fromEntries(Object.entries(e).map(([e,r])=>[t+e,r])):e)]):e,l=e=>{if(e.length<=1)return e;let t=[],r=[];return e.forEach(e=>{"["===e[0]?(t.push(...r.sort(),e),r=[]):r.push(e)}),t.push(...r.sort()),t},s=/\s+/;function c(){let e,t,r=0,o="";for(;r{let t;if("string"==typeof e)return e;let r="";for(let o=0;o{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,r=new Map,o=new Map,n=(n,a)=>{r.set(n,a),++t>e&&(t=0,o=r,r=new Map)};return{get(e){let t=r.get(e);return void 0!==t?t:void 0!==(t=o.get(e))?(n(e,t),t):void 0},set(e,t){r.has(e)?r.set(e,t):n(e,t)}}})((s=n.reduce((e,t)=>t(e),e())).cacheSize),parseClassName:(e=>{let{separator:t,experimentalParseClassName:r}=e,o=1===t.length,n=t[0],a=t.length,i=e=>{let r,i=[],l=0,s=0;for(let c=0;cs?r-s:void 0}};return r?e=>r({className:e,parseClassName:i}):i})(s),...(e=>{let n=(e=>{let{theme:t,prefix:r}=e,n={nextPart:new Map,validators:[]};return i(Object.entries(e.classGroups),r).forEach(([e,r])=>{o(r,n,e,t)}),n})(e),{conflictingClassGroups:a,conflictingClassGroupModifiers:l}=e;return{getClassGroupId:e=>{let o=e.split("-");return""===o[0]&&1!==o.length&&o.shift(),t(o,n)||(e=>{if(r.test(e)){let t=r.exec(e)[1],o=t?.substring(0,t.indexOf(":"));if(o)return"arbitrary.."+o}})(e)},getConflictingClassGroupIds:(e,t)=>{let r=a[e]||[];return t&&l[e]?[...r,...l[e]]:r}}})(s)}).cache.get,f=a.cache.set,p=h,h(l)};function h(e){let t=u(e);if(t)return t;let r=((e,t)=>{let{parseClassName:r,getClassGroupId:o,getConflictingClassGroupIds:n}=t,a=[],i=e.trim().split(s),c="";for(let e=i.length-1;e>=0;e-=1){let t=i[e],{modifiers:s,hasImportantModifier:u,baseClassName:d,maybePostfixModifierPosition:f}=r(t),p=!!f,h=o(p?d.substring(0,f):d);if(!h){if(!p||!(h=o(d))){c=t+(c.length>0?" "+c:c);continue}p=!1}let m=l(s).join(":"),g=u?m+"!":m,v=g+h;if(a.includes(v))continue;a.push(v);let y=n(h,p);for(let e=0;e0?" "+c:c)}return c})(e,a);return f(e,r),r}return function(){return p(c.apply(null,arguments))}}let f=e=>{let t=t=>t[e]||[];return t.isThemeGetter=!0,t},p=/^\[(?:([a-z-]+):)?(.+)\]$/i,h=/^\d+\/\d+$/,m=new Set(["px","full","screen"]),g=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,v=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,y=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,b=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,w=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,$=e=>x(e)||m.has(e)||h.test(e),C=e=>M(e,"length",B),x=e=>!!e&&!Number.isNaN(Number(e)),E=e=>M(e,"number",x),S=e=>!!e&&Number.isInteger(Number(e)),k=e=>e.endsWith("%")&&x(e.slice(0,-1)),j=e=>p.test(e),O=e=>g.test(e),T=new Set(["length","size","percentage"]),I=e=>M(e,T,A),_=e=>M(e,"position",A),F=new Set(["image","url"]),P=e=>M(e,F,L),R=e=>M(e,"",z),N=()=>!0,M=(e,t,r)=>{let o=p.exec(e);return!!o&&(o[1]?"string"==typeof t?o[1]===t:t.has(o[1]):r(o[2]))},B=e=>v.test(e)&&!y.test(e),A=()=>!1,z=e=>b.test(e),L=e=>w.test(e),D=()=>{let e=f("colors"),t=f("spacing"),r=f("blur"),o=f("brightness"),n=f("borderColor"),a=f("borderRadius"),i=f("borderSpacing"),l=f("borderWidth"),s=f("contrast"),c=f("grayscale"),u=f("hueRotate"),d=f("invert"),p=f("gap"),h=f("gradientColorStops"),m=f("gradientColorStopPositions"),g=f("inset"),v=f("margin"),y=f("opacity"),b=f("padding"),w=f("saturate"),T=f("scale"),F=f("sepia"),M=f("skew"),B=f("space"),A=f("translate"),z=()=>["auto","contain","none"],L=()=>["auto","hidden","clip","visible","scroll"],D=()=>["auto",j,t],H=()=>[j,t],V=()=>["",$,C],W=()=>["auto",x,j],U=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],G=()=>["solid","dashed","dotted","double","none"],q=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],J=()=>["start","end","center","between","around","evenly","stretch"],K=()=>["","0",j],X=()=>["auto","avoid","all","avoid-page","page","left","right","column"],Q=()=>[x,j];return{cacheSize:500,separator:":",theme:{colors:[N],spacing:[$,C],blur:["none","",O,j],brightness:Q(),borderColor:[e],borderRadius:["none","","full",O,j],borderSpacing:H(),borderWidth:V(),contrast:Q(),grayscale:K(),hueRotate:Q(),invert:K(),gap:H(),gradientColorStops:[e],gradientColorStopPositions:[k,C],inset:D(),margin:D(),opacity:Q(),padding:H(),saturate:Q(),scale:Q(),sepia:K(),skew:Q(),space:H(),translate:H()},classGroups:{aspect:[{aspect:["auto","square","video",j]}],container:["container"],columns:[{columns:[O]}],"break-after":[{"break-after":X()}],"break-before":[{"break-before":X()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...U(),j]}],overflow:[{overflow:L()}],"overflow-x":[{"overflow-x":L()}],"overflow-y":[{"overflow-y":L()}],overscroll:[{overscroll:z()}],"overscroll-x":[{"overscroll-x":z()}],"overscroll-y":[{"overscroll-y":z()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[g]}],"inset-x":[{"inset-x":[g]}],"inset-y":[{"inset-y":[g]}],start:[{start:[g]}],end:[{end:[g]}],top:[{top:[g]}],right:[{right:[g]}],bottom:[{bottom:[g]}],left:[{left:[g]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",S,j]}],basis:[{basis:D()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",j]}],grow:[{grow:K()}],shrink:[{shrink:K()}],order:[{order:["first","last","none",S,j]}],"grid-cols":[{"grid-cols":[N]}],"col-start-end":[{col:["auto",{span:["full",S,j]},j]}],"col-start":[{"col-start":W()}],"col-end":[{"col-end":W()}],"grid-rows":[{"grid-rows":[N]}],"row-start-end":[{row:["auto",{span:[S,j]},j]}],"row-start":[{"row-start":W()}],"row-end":[{"row-end":W()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",j]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",j]}],gap:[{gap:[p]}],"gap-x":[{"gap-x":[p]}],"gap-y":[{"gap-y":[p]}],"justify-content":[{justify:["normal",...J()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...J(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...J(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[b]}],px:[{px:[b]}],py:[{py:[b]}],ps:[{ps:[b]}],pe:[{pe:[b]}],pt:[{pt:[b]}],pr:[{pr:[b]}],pb:[{pb:[b]}],pl:[{pl:[b]}],m:[{m:[v]}],mx:[{mx:[v]}],my:[{my:[v]}],ms:[{ms:[v]}],me:[{me:[v]}],mt:[{mt:[v]}],mr:[{mr:[v]}],mb:[{mb:[v]}],ml:[{ml:[v]}],"space-x":[{"space-x":[B]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[B]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",j,t]}],"min-w":[{"min-w":[j,t,"min","max","fit"]}],"max-w":[{"max-w":[j,t,"none","full","min","max","fit","prose",{screen:[O]},O]}],h:[{h:[j,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[j,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[j,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[j,t,"auto","min","max","fit"]}],"font-size":[{text:["base",O,C]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",E]}],"font-family":[{font:[N]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",j]}],"line-clamp":[{"line-clamp":["none",x,E]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",$,j]}],"list-image":[{"list-image":["none",j]}],"list-style-type":[{list:["none","disc","decimal",j]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[y]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[y]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...G(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",$,C]}],"underline-offset":[{"underline-offset":["auto",$,j]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:H()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",j]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",j]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[y]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...U(),_]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",I]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},P]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[h]}],"gradient-via":[{via:[h]}],"gradient-to":[{to:[h]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[l]}],"border-w-x":[{"border-x":[l]}],"border-w-y":[{"border-y":[l]}],"border-w-s":[{"border-s":[l]}],"border-w-e":[{"border-e":[l]}],"border-w-t":[{"border-t":[l]}],"border-w-r":[{"border-r":[l]}],"border-w-b":[{"border-b":[l]}],"border-w-l":[{"border-l":[l]}],"border-opacity":[{"border-opacity":[y]}],"border-style":[{border:[...G(),"hidden"]}],"divide-x":[{"divide-x":[l]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[l]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[y]}],"divide-style":[{divide:G()}],"border-color":[{border:[n]}],"border-color-x":[{"border-x":[n]}],"border-color-y":[{"border-y":[n]}],"border-color-s":[{"border-s":[n]}],"border-color-e":[{"border-e":[n]}],"border-color-t":[{"border-t":[n]}],"border-color-r":[{"border-r":[n]}],"border-color-b":[{"border-b":[n]}],"border-color-l":[{"border-l":[n]}],"divide-color":[{divide:[n]}],"outline-style":[{outline:["",...G()]}],"outline-offset":[{"outline-offset":[$,j]}],"outline-w":[{outline:[$,C]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:V()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[y]}],"ring-offset-w":[{"ring-offset":[$,C]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",O,R]}],"shadow-color":[{shadow:[N]}],opacity:[{opacity:[y]}],"mix-blend":[{"mix-blend":[...q(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":q()}],filter:[{filter:["","none"]}],blur:[{blur:[r]}],brightness:[{brightness:[o]}],contrast:[{contrast:[s]}],"drop-shadow":[{"drop-shadow":["","none",O,j]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[d]}],saturate:[{saturate:[w]}],sepia:[{sepia:[F]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[r]}],"backdrop-brightness":[{"backdrop-brightness":[o]}],"backdrop-contrast":[{"backdrop-contrast":[s]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u]}],"backdrop-invert":[{"backdrop-invert":[d]}],"backdrop-opacity":[{"backdrop-opacity":[y]}],"backdrop-saturate":[{"backdrop-saturate":[w]}],"backdrop-sepia":[{"backdrop-sepia":[F]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[i]}],"border-spacing-x":[{"border-spacing-x":[i]}],"border-spacing-y":[{"border-spacing-y":[i]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",j]}],duration:[{duration:Q()}],ease:[{ease:["linear","in","out","in-out",j]}],delay:[{delay:Q()}],animate:[{animate:["none","spin","ping","pulse","bounce",j]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[T]}],"scale-x":[{"scale-x":[T]}],"scale-y":[{"scale-y":[T]}],rotate:[{rotate:[S,j]}],"translate-x":[{"translate-x":[A]}],"translate-y":[{"translate-y":[A]}],"skew-x":[{"skew-x":[M]}],"skew-y":[{"skew-y":[M]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",j]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",j]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":H()}],"scroll-mx":[{"scroll-mx":H()}],"scroll-my":[{"scroll-my":H()}],"scroll-ms":[{"scroll-ms":H()}],"scroll-me":[{"scroll-me":H()}],"scroll-mt":[{"scroll-mt":H()}],"scroll-mr":[{"scroll-mr":H()}],"scroll-mb":[{"scroll-mb":H()}],"scroll-ml":[{"scroll-ml":H()}],"scroll-p":[{"scroll-p":H()}],"scroll-px":[{"scroll-px":H()}],"scroll-py":[{"scroll-py":H()}],"scroll-ps":[{"scroll-ps":H()}],"scroll-pe":[{"scroll-pe":H()}],"scroll-pt":[{"scroll-pt":H()}],"scroll-pr":[{"scroll-pr":H()}],"scroll-pb":[{"scroll-pb":H()}],"scroll-pl":[{"scroll-pl":H()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",j]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[$,C,E]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},H=(e,t,r)=>{void 0!==r&&(e[t]=r)},V=(e,t)=>{if(t)for(let r in t)H(e,r,t[r])},W=(e,t)=>{if(t)for(let r in t){let o=t[r];void 0!==o&&(e[r]=(e[r]||[]).concat(o))}},U=((e,...t)=>"function"==typeof e?d(D,e,...t):d(()=>((e,{cacheSize:t,prefix:r,separator:o,experimentalParseClassName:n,extend:a={},override:i={}})=>{for(let a in H(e,"cacheSize",t),H(e,"prefix",r),H(e,"separator",o),H(e,"experimentalParseClassName",n),i)V(e[a],i[a]);for(let t in a)W(e[t],a[t]);return e})(D(),e),...t))({extend:{classGroups:{shadow:[{shadow:[{tremor:["input","card","dropdown"],"dark-tremor":["input","card","dropdown"]}]}],rounded:[{rounded:[{tremor:["small","default","full"],"dark-tremor":["small","default","full"]}]}],"font-size":[{text:[{tremor:["default","title","metric"],"dark-tremor":["default","title","metric"]}]}]}}});e.s(["tremorTwMerge",0,U],444755)},103471,e=>{"use strict";var t=e.i(444755),r=e.i(271645);let o=e=>["string","number"].includes(typeof e)?e:e instanceof Array?e.map(o).join(""):"object"==typeof e&&e?o(e.props.children):void 0;e.s(["constructValueToNameMapping",0,function(e){let t=new Map;return r.default.Children.map(e,e=>{var r;t.set(e.props.value,null!=(r=o(e))?r:e.props.value)}),t},"getFilteredOptions",0,function(e,t){return r.default.Children.map(t,t=>{var r;if((null!=(r=o(t))?r:t.props.value).toLowerCase().includes(e.toLowerCase()))return t})},"getNodeText",0,o,"getSelectButtonColors",0,(e,r,o=!1)=>(0,t.tremorTwMerge)(r?"bg-tremor-background-subtle dark:bg-dark-tremor-background-subtle":"bg-tremor-background dark:bg-dark-tremor-background",!r&&"hover:bg-tremor-background-muted dark:hover:bg-dark-tremor-background-muted",e?"text-tremor-content-emphasis dark:text-dark-tremor-content-emphasis":"text-tremor-content dark:text-dark-tremor-content",r&&"text-tremor-content-subtle dark:text-dark-tremor-content-subtle",o&&"text-red-500 placeholder:text-red-500 dark:text-red-500 dark:placeholder:text-red-500",o?"border-red-500 dark:border-red-500":"border-tremor-border dark:border-dark-tremor-border"),"hasValue",0,function(e){return null!=e&&""!==e}])},779241,677955,e=>{"use strict";var t=e.i(290571),r=e.i(271645),o=e.i(673706),n=e.i(689074),a=e.i(21243),i=e.i(98801),l=e.i(103471),s=e.i(444755);let c=r.default.forwardRef((e,c)=>{let{value:u,defaultValue:d,type:f,placeholder:p="Type...",icon:h,error:m=!1,errorMessage:g,disabled:v=!1,stepper:y,makeInputClassName:b,className:w,onChange:$,onValueChange:C,autoFocus:x,pattern:E}=e,S=(0,t.__rest)(e,["value","defaultValue","type","placeholder","icon","error","errorMessage","disabled","stepper","makeInputClassName","className","onChange","onValueChange","autoFocus","pattern"]),[k,j]=(0,r.useState)(x||!1),[O,T]=(0,r.useState)(!1),I=(0,r.useCallback)(()=>T(!O),[O,T]),_=(0,r.useRef)(null),F=(0,l.hasValue)(u||d);return r.default.useEffect(()=>{let e=()=>j(!0),t=()=>j(!1),r=_.current;return r&&(r.addEventListener("focus",e),r.addEventListener("blur",t),x&&r.focus()),()=>{r&&(r.removeEventListener("focus",e),r.removeEventListener("blur",t))}},[x]),r.default.createElement(r.default.Fragment,null,r.default.createElement("div",{className:(0,s.tremorTwMerge)(b("root"),"relative w-full flex items-center min-w-[10rem] outline-none rounded-tremor-default transition duration-100 border","shadow-tremor-input","dark:shadow-dark-tremor-input",(0,l.getSelectButtonColors)(F,v,m),k&&(0,s.tremorTwMerge)("ring-2","border-tremor-brand-subtle ring-tremor-brand-muted","dark:border-dark-tremor-brand-subtle dark:ring-dark-tremor-brand-muted"),w)},h?r.default.createElement(h,{className:(0,s.tremorTwMerge)(b("icon"),"shrink-0 h-5 w-5 mx-2.5 absolute left-0 flex items-center","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")}):null,r.default.createElement("input",Object.assign({ref:(0,o.mergeRefs)([_,c]),defaultValue:d,value:u,type:O?"text":f,className:(0,s.tremorTwMerge)(b("input"),"w-full bg-transparent focus:outline-none focus:ring-0 border-none text-tremor-default rounded-tremor-default transition duration-100 py-2","text-tremor-content-emphasis","dark:text-dark-tremor-content-emphasis","[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none","password"===f?m?"pr-16":"pr-12":m?"pr-8":"pr-3",h?"pl-10":"pl-3",v?"placeholder:text-tremor-content-subtle dark:placeholder:text-dark-tremor-content-subtle":"placeholder:text-tremor-content dark:placeholder:text-dark-tremor-content"),placeholder:p,disabled:v,"data-testid":"base-input",onChange:e=>{null==$||$(e),null==C||C(e.target.value)},pattern:E},S)),"password"!==f||v?null:r.default.createElement("button",{className:(0,s.tremorTwMerge)(b("toggleButton"),"absolute inset-y-0 right-0 flex items-center px-2.5 rounded-lg"),type:"button",onClick:()=>I(),"aria-label":O?"Hide password":"Show Password"},O?r.default.createElement(i.default,{className:(0,s.tremorTwMerge)("flex-none h-5 w-5 transition","text-tremor-content-subtle hover:text-tremor-content","dark:text-dark-tremor-content-subtle hover:dark:text-dark-tremor-content"),"aria-hidden":!0}):r.default.createElement(a.default,{className:(0,s.tremorTwMerge)("flex-none h-5 w-5 transition","text-tremor-content-subtle hover:text-tremor-content","dark:text-dark-tremor-content-subtle hover:dark:text-dark-tremor-content"),"aria-hidden":!0})),m?r.default.createElement(n.default,{className:(0,s.tremorTwMerge)(b("errorIcon"),"text-red-500 shrink-0 h-5 w-5 absolute right-0 flex items-center","password"===f?"mr-10":"number"===f?y?"mr-20":"mr-3":"mx-2.5")}):null,null!=y?y:null),m&&g?r.default.createElement("p",{className:(0,s.tremorTwMerge)(b("errorMessage"),"text-sm text-red-500 mt-1")},g):null)});c.displayName="BaseInput",e.s(["default",0,c],677955);let u=(0,o.makeClassName)("TextInput"),d=r.default.forwardRef((e,o)=>{let{type:n="text"}=e,a=(0,t.__rest)(e,["type"]);return r.default.createElement(c,Object.assign({ref:o,type:n,makeInputClassName:u},a))});d.displayName="TextInput",e.s(["TextInput",0,d],779241)},827252,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z"}}]},name:"info-circle",theme:"outlined"};var n=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(n.default,(0,t.default)({},e,{ref:a,icon:o}))});e.s(["InfoCircleOutlined",0,a],827252)},592968,e=>{"use strict";var t=e.i(491816);e.s(["Tooltip",()=>t.default])},764205,122550,82946,e=>{"use strict";e.s(["addAllowedIP",()=>ez,"adminGlobalActivity",()=>eZ,"adminGlobalActivityPerModel",()=>e1,"adminGlobalCacheActivity",()=>e0,"adminSpendLogsCall",()=>eK,"adminTopEndUsersCall",()=>eQ,"adminTopKeysCall",()=>eX,"adminTopModelsCall",()=>e2,"adminspendByProvider",()=>eY,"agentDailyActivityCall",()=>eS,"agentHubPublicModelsCall",()=>eR,"alertingSettingsCall",()=>Z,"allEndUsersCall",()=>eG,"allTagNamesCall",()=>eU,"applyGuardrail",()=>op,"approveGuardrailSubmission",()=>tV,"approveMCPServer",()=>rR,"availableTeamListCall",()=>ef,"budgetCreateCall",()=>X,"budgetDeleteCall",()=>K,"budgetUpdateCall",()=>Q,"buildMcpOAuthAuthorizeUrl",()=>ok,"cacheTemporaryMcpServer",()=>oE,"cachingHealthCheckCall",()=>tR,"callMCPTool",()=>rV,"cancelModelCostMapReload",()=>W,"checkEuAiActCompliance",()=>oG,"checkGdprCompliance",()=>oq,"claimOnboardingToken",()=>ej,"convertPromptFileToJson",()=>rp,"createAgentCall",()=>rh,"createGuardrailCall",()=>rm,"createMCPServer",()=>rS,"createMCPToolset",()=>rT,"createMemory",()=>o7,"createPassThroughEndpoint",()=>tO,"createPolicyAttachmentCall",()=>rt,"createPolicyCall",()=>t4,"createPolicyVersion",()=>t7,"createPromptCall",()=>ru,"createSearchTool",()=>rB,"credentialCreateCall",()=>tt,"credentialDeleteCall",()=>tn,"credentialGetCall",()=>to,"credentialListCall",()=>tr,"credentialUpdateCall",()=>ta,"customerDailyActivityCall",()=>eE,"deleteAgentCall",()=>oe,"deleteAllowedIP",()=>eL,"deleteCallback",()=>oC,"deleteClaudeCodePlugin",()=>oU,"deleteConfigFieldSetting",()=>tI,"deleteGuardrailCall",()=>oo,"deleteMCPOAuthUserCredential",()=>o1,"deleteMCPServer",()=>rj,"deleteMCPToolset",()=>r_,"deleteMemory",()=>o9,"deletePassThroughEndpointsCall",()=>t_,"deletePolicyAttachmentCall",()=>rr,"deletePolicyCall",()=>t9,"deletePromptCall",()=>rf,"deleteSearchTool",()=>rz,"deleteToolPolicyOverride",()=>oZ,"deriveErrorMessage",()=>oM,"disableClaudeCodePlugin",()=>oW,"enableClaudeCodePlugin",()=>oV,"enrichPolicyTemplate",()=>tY,"enrichPolicyTemplateStream",()=>t1,"estimateAttachmentImpactCall",()=>ri,"exchangeLoginCode",()=>oA,"exchangeMcpOAuthToken",()=>oj,"fetchAvailableSearchProviders",()=>rL,"fetchDiscoverableMCPServers",()=>rw,"fetchMCPAccessGroups",()=>rx,"fetchMCPClientIp",()=>rE,"fetchMCPServerHealth",()=>rC,"fetchMCPServers",()=>r$,"fetchMCPSubmissions",()=>rP,"fetchMCPToolsets",()=>rO,"fetchMemoryList",()=>o3,"fetchOpenAPIRegistry",()=>rb,"fetchSearchTools",()=>rM,"fetchToolDetail",()=>oQ,"fetchToolPolicyOptions",()=>oJ,"fetchToolsList",()=>oK,"formatDate",()=>y,"getAgentCreateMetadata",()=>P,"getAgentInfo",()=>oc,"getAgentsList",()=>os,"getAllowedIPs",()=>eA,"getBudgetList",()=>tb,"getCacheSettingsCall",()=>tx,"getCallbackConfigsCall",()=>b,"getCallbacksCall",()=>tw,"getCategoryYaml",()=>oi,"getClaudeCodePluginsList",()=>oD,"getConfigFieldSetting",()=>tj,"getDefaultTeamSettings",()=>rX,"getEmailEventSettings",()=>r5,"getGeneralSettingsCall",()=>t$,"getGlobalLitellmHeaderName",()=>M,"getGuardrailInfo",()=>ou,"getGuardrailProviderSpecificParams",()=>oa,"getGuardrailUISettings",()=>on,"getGuardrailsList",()=>tD,"getGuardrailsUsageDetail",()=>tG,"getGuardrailsUsageLogs",()=>tq,"getGuardrailsUsageOverview",()=>tU,"getInProductNudgesCall",()=>w,"getInternalUserSettings",()=>rv,"getLicenseInfo",()=>ow,"getMCPOAuthUserCredentialStatus",()=>o2,"getMCPSemanticFilterSettings",()=>tA,"getMajorAirlines",()=>ol,"getModelCostMapReloadStatus",()=>G,"getModelCostMapSource",()=>U,"getOnboardingCredentials",()=>ek,"getOpenAPISchema",()=>L,"getPassThroughEndpointsCall",()=>tk,"getPoliciesList",()=>tJ,"getPolicyAttachmentsList",()=>re,"getPolicyInfo",()=>t8,"getPolicyInfoWithGuardrails",()=>tX,"getPolicyTemplates",()=>tQ,"getPossibleUserRoles",()=>e8,"getPromptInfo",()=>rs,"getPromptVersions",()=>rc,"getPromptsList",()=>rl,"getProviderCreateMetadata",()=>F,"getProxyBaseUrl",()=>k,"getProxyUISettings",()=>tM,"getPublicModelHubInfo",()=>z,"getRemainingUsers",()=>ob,"getResolvedGuardrails",()=>rn,"getRouterSettingsCall",()=>tC,"getSSOSettings",()=>og,"getTeamPermissionsCall",()=>rY,"getToolUsageLogs",()=>oX,"getUISettings",()=>tB,"getUiConfig",()=>A,"getUiSettings",()=>oz,"handleError",()=>_,"individualModelHealthCheckCall",()=>tP,"invitationCreateCall",()=>Y,"keyAliasesCall",()=>e5,"keyCreateCall",()=>et,"keyCreateForAgentCall",()=>er,"keyCreateServiceAccountCall",()=>ee,"keyDeleteCall",()=>en,"keyInfoCall",()=>e4,"keyInfoV1Call",()=>e3,"keyListCall",()=>e7,"keyUpdateCall",()=>ti,"latestHealthChecksCall",()=>tN,"listGuardrailSubmissions",()=>tH,"listMCPTools",()=>rH,"listMCPUserCredentials",()=>o4,"listPolicyVersions",()=>t3,"loginCall",()=>oB,"makeAgentsPublicCall",()=>ot,"makeMCPPublicCall",()=>or,"makeModelGroupPublic",()=>B,"mcpHubPublicServersCall",()=>eN,"modelAvailableCall",()=>eH,"modelCostMap",()=>D,"modelCreateCall",()=>q,"modelDeleteCall",()=>J,"modelHubCall",()=>eB,"modelHubPublicModelsCall",()=>eP,"modelInfoCall",()=>e_,"modelInfoV1Call",()=>eF,"modelPatchUpdateCall",()=>ts,"organizationCreateCall",()=>em,"organizationDailyActivityCall",()=>ex,"organizationDeleteCall",()=>ev,"organizationInfoCall",()=>eh,"organizationListCall",()=>ep,"organizationMemberAddCall",()=>tp,"organizationMemberDeleteCall",()=>th,"organizationMemberUpdateCall",()=>tm,"organizationUpdateCall",()=>eg,"patchAgentCall",()=>od,"perUserAnalyticsCall",()=>oN,"proxyBaseUrl",()=>S,"ragIngestCall",()=>r7,"regenerateKeyCall",()=>eO,"registerClaudeCodePlugin",()=>oH,"registerMCPServer",()=>rF,"registerMcpOAuthClient",()=>oS,"rejectGuardrailSubmission",()=>tW,"rejectMCPServer",()=>rN,"reloadModelCostMap",()=>H,"resetEmailEventSettings",()=>r8,"resolvePoliciesCall",()=>ra,"scheduleModelCostMapReload",()=>V,"searchToolQueryCall",()=>oT,"serverRootPath",()=>C,"serviceHealthCheck",()=>ty,"sessionSpendLogsCall",()=>r0,"setCallbacksCall",()=>tF,"setGlobalLitellmHeaderName",()=>N,"skillHubPublicCall",()=>eM,"storeMCPOAuthUserCredential",()=>o0,"suggestPolicyTemplates",()=>tZ,"switchToWorkerUrl",()=>j,"tagCreateCall",()=>rW,"tagDailyActivityCall",()=>e$,"tagDauCall",()=>oI,"tagDeleteCall",()=>rK,"tagDistinctCall",()=>oP,"tagInfoCall",()=>rG,"tagListCall",()=>rJ,"tagMauCall",()=>oF,"tagUpdateCall",()=>rU,"tagWauCall",()=>o_,"tagsSpendLogsCall",()=>eW,"teamBulkMemberAddCall",()=>tu,"teamCreateCall",()=>te,"teamDailyActivityCall",()=>eC,"teamDeleteCall",()=>ei,"teamInfoCall",()=>ec,"teamListCall",()=>ed,"teamMemberAddCall",()=>tc,"teamMemberDeleteCall",()=>tf,"teamMemberUpdateCall",()=>td,"teamPermissionsUpdateCall",()=>rZ,"teamSpendLogsCall",()=>eV,"teamUpdateCall",()=>tl,"testCacheConnectionCall",()=>tE,"testConnectionRequest",()=>e6,"testCustomCodeGuardrail",()=>oh,"testMCPSemanticFilter",()=>tL,"testMCPToolsListRequest",()=>ox,"testPipelineCall",()=>ro,"testPoliciesAndGuardrails",()=>tK,"testPolicyTemplate",()=>t0,"testSearchToolConnection",()=>rD,"transformRequestCall",()=>ey,"uiAuditLogsCall",()=>oy,"uiSpendLogDetailsCall",()=>rg,"uiSpendLogsCall",()=>eJ,"updateCacheSettingsCall",()=>tS,"updateConfigFieldSetting",()=>tT,"updateDefaultTeamSettings",()=>rQ,"updateEmailEventSettings",()=>r9,"updateGuardrailCall",()=>of,"updateInternalUserSettings",()=>ry,"updateMCPSemanticFilterSettings",()=>tz,"updateMCPServer",()=>rk,"updateMCPToolset",()=>rI,"updateMemory",()=>o5,"updatePassThroughEndpoint",()=>o$,"updatePolicyCall",()=>t6,"updatePolicyVersionStatus",()=>t5,"updatePromptCall",()=>rd,"updateSSOSettings",()=>ov,"updateSearchTool",()=>rA,"updateToolPolicy",()=>oY,"updateUiSettings",()=>oL,"updateUsefulLinksCall",()=>eD,"usageAiChatStream",()=>t2,"userAgentSummaryCall",()=>oR,"userBulkUpdateUserCall",()=>tv,"userCreateCall",()=>eo,"userDailyActivityAggregatedCall",()=>e9,"userDailyActivityCall",()=>ew,"userDeleteCall",()=>ea,"userFilterUICall",()=>eq,"userGetInfoV2",()=>es,"userListCall",()=>el,"userUpdateUserCall",()=>tg,"v2TeamListCall",()=>eu,"validateBlockedWordsFile",()=>om,"vectorStoreCreateCall",()=>r1,"vectorStoreDeleteCall",()=>r4,"vectorStoreInfoCall",()=>r6,"vectorStoreListCall",()=>r2,"vectorStoreSearchCall",()=>oO,"vectorStoreUpdateCall",()=>r3],764205);var t=e.i(247167),r=e.i(888259),o=e.i(268004);e.s(["default",()=>g,"jsonFields",()=>h],82946);var n=e.i(843476),a=e.i(271645),i=e.i(808613),l=e.i(311451),s=e.i(28651),c=e.i(199133),u=e.i(779241),d=e.i(827252),f=e.i(592968);let p=e=>e?e.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase()):e;e.s(["formItemValidateJSON",0,(e,t)=>{if(!t)return Promise.resolve();try{return JSON.parse(t),Promise.resolve()}catch(e){return Promise.reject("Please enter valid JSON")}},"formatLabel",0,p,"truncateString",0,function(e,t){return e.length>t?e.substring(0,t)+"...":e}],122550);let h=["metadata","config","enforced_params","aliases"],m=(e,t)=>h.includes(e)||"json"===t.format,g=({schemaComponent:e,excludedFields:t=[],form:r,overrideLabels:o={},overrideTooltips:h={},customValidation:g={},defaultValues:v={}})=>{let[y,b]=(0,a.useState)(null),[w,$]=(0,a.useState)(null);return((0,a.useEffect)(()=>{(async()=>{try{let o=(await L()).components.schemas[e];if(!o)throw Error(`Schema component "${e}" not found`);b(o);let n={};Object.keys(o.properties).filter(e=>!t.includes(e)&&void 0!==v[e]).forEach(e=>{n[e]=v[e]}),r.setFieldsValue(n)}catch(e){console.error("Schema fetch error:",e),$(e instanceof Error?e.message:"Failed to fetch schema")}})()},[e,r,t]),w)?(0,n.jsxs)("div",{className:"text-red-500",children:["Error: ",w]}):y?.properties?(0,n.jsx)("div",{children:Object.entries(y.properties).filter(([e])=>!t.includes(e)).map(([e,t])=>{let r,a,b,w,$,C,x,E;return a=(e=>{if(e.type)return e.type;if(e.anyOf){let t=e.anyOf.map(e=>e.type);if(t.includes("number")||t.includes("integer"))return"number";t.includes("string")}return"string"})(t),b=y?.required?.includes(e),w=o[e]||t.title||p(e),$=h[e]||t.description,C=[],b&&C.push({required:!0,message:`${w} is required`}),g[e]&&C.push({validator:g[e]}),m(e,t)&&C.push({validator:async(e,t)=>{if(t&&!(e=>{if(!e)return!0;try{return JSON.parse(e),!0}catch{return!1}})(t))throw Error("Please enter valid JSON")}}),x=$?(0,n.jsxs)("span",{children:[w," ",(0,n.jsx)(f.Tooltip,{title:$,children:(0,n.jsx)(d.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}):w,r=m(e,t)?(0,n.jsx)(l.Input.TextArea,{rows:4,placeholder:"Enter as JSON",className:"font-mono"}):t.enum?(0,n.jsx)(c.Select,{children:t.enum.map(e=>(0,n.jsx)(c.Select.Option,{value:e,children:e},e))}):"number"===a||"integer"===a?(0,n.jsx)(s.InputNumber,{style:{width:"100%"},precision:"integer"===a?0:void 0}):"duration"===e?(0,n.jsx)(u.TextInput,{placeholder:"eg: 30s, 30h, 30d"}):(0,n.jsx)(u.TextInput,{placeholder:$||""}),(0,n.jsx)(i.Form.Item,{label:x,name:e,className:"mt-8",rules:C,initialValue:v[e],help:(0,n.jsx)("div",{className:"text-xs text-gray-500",children:(E=({max_budget:"Enter maximum budget in USD (e.g., 100.50)",budget_duration:"Select a time period for budget reset",tpm_limit:"Enter maximum tokens per minute (whole number)",rpm_limit:"Enter maximum requests per minute (whole number)",duration:"Enter duration (e.g., 30s, 24h, 7d)",metadata:'Enter JSON object with key-value pairs\nExample: {"team": "research", "project": "nlp"}',config:'Enter configuration as JSON object\nExample: {"setting": "value"}',permissions:"Enter comma-separated permission strings",enforced_params:'Enter parameters as JSON object\nExample: {"param": "value"}',blocked:"Enter true/false or specific block conditions",aliases:'Enter aliases as JSON object\nExample: {"alias1": "value1", "alias2": "value2"}',models:"Select one or more model names",key_alias:"Enter a unique identifier for this key",tags:"Enter comma-separated tag strings"})[e]||({string:"Text input",number:"Numeric input",integer:"Whole number input",boolean:"True/False value"})[a]||"Text input",m(e,t)?`${E} -Must be valid JSON format`:t.enum?`Select from available options -Allowed values: ${t.enum.join(", ")}`:E)}),children:r},e)})}):null};var v=e.i(727749);let y=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`},b=async e=>{try{let t=S?`${S}/callbacks/configs`:"/callbacks/configs",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},w=async e=>{try{let t=S?`${S}/in_product_nudges`:"/in_product_nudges",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get in-product nudges:",e),e}},$=t.default.env.NEXT_PUBLIC_BASE_URL?t.default.env.NEXT_PUBLIC_BASE_URL:null,C="/",x="litellm_worker_url",E=window.localStorage.getItem(x),S=(()=>{if(!E)return null;try{let e=new URL(E);if("http:"===e.protocol||"https:"===e.protocol)return E}catch{}return window.localStorage.removeItem(x),null})()??$;console.log=function(){};let k=()=>{if(S)return S;let e=window.location;return e?.origin??""};function j(e){(!e||function(e){try{let t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch{return!1}}(e))&&(e?window.localStorage.setItem(x,e):window.localStorage.removeItem(x),S=e??$)}let O="POST",T="DELETE",I=0,_=async e=>{let t=Date.now();if(t-I>6e4){if(("string"==typeof e?e:JSON.stringify(e)).includes("Authentication Error - Expired Key")){v.default.info("UI Session Expired. Logging out."),I=t,(0,o.clearTokenCookies)();let e=window.location;e&&(window.location.href=e.pathname)}I=t}else console.log("Error suppressed to prevent spam:",e)},F=async()=>{let e=S?`${S}/public/providers/fields`:"/public/providers/fields",t=await fetch(e,{method:"GET"});if(!t.ok){let e=await t.text();throw console.error("Failed to fetch provider create metadata:",t.status,e),Error("Failed to load provider configuration")}return await t.json()},P=async()=>{let e=S?`${S}/public/agents/fields`:"/public/agents/fields",t=await fetch(e,{method:"GET"});if(!t.ok){let e=await t.text();throw console.error("Failed to fetch agent create metadata:",t.status,e),Error("Failed to load agent configuration")}return await t.json()},R="Authorization";function N(e="Authorization"){console.log(`setGlobalLitellmHeaderName: ${e}`),R=e}function M(){return R}let B=async(e,t)=>{let r=S?`${S}/model_group/make_public`:"/model_group/make_public";return(await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({model_groups:t})})).json()},A=async()=>{console.log("Getting UI config");let e=$?`${$}/litellm/.well-known/litellm-ui-config`:"/litellm/.well-known/litellm-ui-config",r=await fetch(e),o=await r.json();return console.log("jsonData in getUiConfig:",o),((e,r=null)=>{if(window.localStorage.getItem(x))return;let o=window.location,n=t.default.env.NEXT_PUBLIC_BASE_URL?t.default.env.NEXT_PUBLIC_BASE_URL:o?.origin??null,a=r||n;if(console.log("proxyBaseUrl:",S),console.log("serverRootPath:",e),!a)return console.log("Updated proxyBaseUrl:",S=S??null);e.length>0&&!a.endsWith(e)&&"/"!=e&&(a+=e),console.log("Updated proxyBaseUrl:",S=a)})(o.server_root_path,o.proxy_base_url),o},z=async()=>{let e=S?`${S}/public/model_hub/info`:"/public/model_hub/info",t=await fetch(e);return await t.json()},L=async()=>{let e=S?`${S}/openapi.json`:"/openapi.json",t=await fetch(e);return await t.json()},D=async()=>{try{let e=S?`${S}/public/litellm_model_cost_map`:"/public/litellm_model_cost_map",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}}),r=await t.json();return console.log(`received litellm model cost data: ${r}`),r}catch(e){throw console.error("Failed to get model cost map:",e),e}},H=async e=>{try{let t=S?`${S}/reload/model_cost_map`:"/reload/model_cost_map",r=await fetch(t,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),o=await r.json();return console.log(`Model cost map reload response: ${o}`),o}catch(e){throw console.error("Failed to reload model cost map:",e),e}},V=async(e,t)=>{try{let r=S?`${S}/schedule/model_cost_map_reload?hours=${t}`:`/schedule/model_cost_map_reload?hours=${t}`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),n=await o.json();return console.log(`Schedule model cost map reload response: ${n}`),n}catch(e){throw console.error("Failed to schedule model cost map reload:",e),e}},W=async e=>{try{let t=S?`${S}/schedule/model_cost_map_reload`:"/schedule/model_cost_map_reload",r=await fetch(t,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),o=await r.json();return console.log(`Cancel model cost map reload response: ${o}`),o}catch(e){throw console.error("Failed to cancel model cost map reload:",e),e}},U=async e=>{try{let t=S?`${S}/model/cost_map/source`:"/model/cost_map/source",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw Error(`HTTP ${r.status}: ${e}`)}let o=await r.json();return console.log("Model cost map source info:",o),o}catch(e){throw console.error("Failed to get model cost map source info:",e),e}},G=async e=>{try{let t=S?`${S}/schedule/model_cost_map_reload/status`:"/schedule/model_cost_map_reload/status";console.log("Fetching status from URL:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){console.error(`Status request failed with status: ${r.status}`);let e=await r.text();throw console.error("Error response:",e),Error(`HTTP ${r.status}: ${e}`)}let o=await r.json();return console.log("Model cost map reload status:",o),o}catch(e){throw console.error("Failed to get model cost map reload status:",e),e}},q=async(e,t)=>{try{let o=S?`${S}/model/new`:"/model/new",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),r.default.destroy(),v.default.success(`Model ${t.model_name} created successfully`),a}catch(e){throw console.error("Failed to create key:",e),e}},J=async(e,t)=>{console.log(`model_id in model delete call: ${t}`);try{let r=S?`${S}/model/delete`:"/model/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},K=async(e,t)=>{if(console.log(`budget_id in budget delete call: ${t}`),null!=e)try{let r=S?`${S}/budget/delete`:"/budget/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},X=async(e,t)=>{try{console.log("Form Values in budgetCreateCall:",t),console.log("Form Values after check:",t);let r=S?`${S}/budget/new`:"/budget/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Q=async(e,t)=>{try{console.log("Form Values in budgetUpdateCall:",t),console.log("Form Values after check:",t);let r=S?`${S}/budget/update`:"/budget/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Y=async(e,t)=>{try{let r=S?`${S}/invitation/new`:"/invitation/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Z=async e=>{try{let t=S?`${S}/alerting/settings`:"/alerting/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},ee=async(e,t)=>{try{for(let e of(console.log("Form Values in keyCreateServiceAccountCall:",t),t.description&&(t.metadata||(t.metadata={}),t.metadata.description=t.description,delete t.description,t.metadata=JSON.stringify(t.metadata)),h))if(t[e]){console.log(`formValues.${e}:`,t[e]);try{t[e]=JSON.parse(t[e])}catch(t){throw Error(`Failed to parse ${e}: `+t)}}console.log("Form Values after check:",t);let r=S?`${S}/key/service-account/generate`:"/key/service-account/generate",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},et=async(e,t,r)=>{try{for(let e of(console.log("Form Values in keyCreateCall:",r),r.description&&(r.metadata||(r.metadata={}),r.metadata.description=r.description,delete r.description,r.metadata=JSON.stringify(r.metadata)),h))if(r[e]){console.log(`formValues.${e}:`,r[e]);try{r[e]=JSON.parse(r[e])}catch(t){throw Error(`Failed to parse ${e}: `+t)}}console.log("Form Values after check:",r);let o=S?`${S}/key/generate`:"/key/generate",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t,...r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},er=async(e,t,r,o,n,a)=>{let i=S?`${S}/key/generate`:"/key/generate",l={agent_id:t,key_alias:r,models:o.length>0?o:[]};a&&(l.team_id=a),n&&Object.keys(n).length>0&&(l.metadata=n);let s=await fetch(i,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(l)});if(!s.ok)throw _(await s.text()),Error("Failed to create key for agent");return s.json()},eo=async(e,t,r)=>{try{if(console.log("Form Values in keyCreateCall:",r),r.description&&(r.metadata||(r.metadata={}),r.metadata.description=r.description,delete r.description,r.metadata=JSON.stringify(r.metadata)),r.auto_create_key=!1,r.metadata){console.log("formValues.metadata:",r.metadata);try{r.metadata=JSON.parse(r.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}console.log("Form Values after check:",r);let o=S?`${S}/user/new`:"/user/new",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t,...r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},en=async(e,t)=>{try{let r=S?`${S}/key/delete`:"/key/delete";console.log("in keyDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({keys:[t]})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to create key:",e),e}},ea=async(e,t)=>{try{let r=S?`${S}/user/delete`:"/user/delete";console.log("in userDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_ids:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete user(s):",e),e}},ei=async(e,t)=>{try{let r=S?`${S}/team/delete`:"/team/delete";console.log("in teamDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_ids:[t]})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete key:",e),e}},el=async(e,t=null,r=null,o=null,n=null,a=null,i=null,l=null,s=null,c=null,u=null)=>{try{let d=S?`${S}/user/list`:"/user/list";console.log("in userListCall");let f=new URLSearchParams;if(t&&t.length>0){let e=t.join(",");f.append("user_ids",e)}r&&f.append("page",r.toString()),o&&f.append("page_size",o.toString()),n&&f.append("user_email",n),a&&f.append("role",a),i&&f.append("team",i),l&&f.append("sso_user_ids",l),s&&f.append("sort_by",s),c&&f.append("sort_order",c),u&&u.length>0&&f.append("organization_ids",u.join(","));let p=f.toString();p&&(d+=`?${p}`);let h=await fetch(d,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!h.ok){let e=await h.json(),t=oM(e);throw _(t),Error(t)}let m=await h.json();return console.log("/user/list API Response:",m),m}catch(e){throw console.error("Failed to create key:",e),e}},es=async(e,t)=>{try{let r=S?`${S}/v2/user/info`:"/v2/user/info";t&&(r+=`?user_id=${encodeURIComponent(t)}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to fetch user info v2:",e),e}},ec=async(e,t)=>{try{let r=S?`${S}/team/info`:"/team/info";t&&(r=`${r}?team_id=${encodeURIComponent(t)}`),console.log("in teamInfoCall");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eu=async(e,t,r=null,o=null,n=null,a=1,i=10,l=null,s=null)=>{try{let a=S?`${S}/v2/team/list`:"/v2/team/list";console.log("in teamInfoCall");let i=new URLSearchParams;r&&i.append("user_id",r.toString()),t&&i.append("organization_id",t.toString()),o&&i.append("team_id",o.toString()),n&&i.append("team_alias",n.toString());let l=i.toString();l&&(a+=`?${l}`);let s=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}let c=await s.json();return console.log("/v2/team/list API Response:",c),c}catch(e){throw console.error("Failed to create key:",e),e}},ed=async(e,t,r=null,o=null,n=null)=>{try{let a=S?`${S}/team/list`:"/team/list";console.log("in teamInfoCall");let i=new URLSearchParams;r&&i.append("user_id",r.toString()),t&&i.append("organization_id",t.toString()),o&&i.append("team_id",o.toString()),n&&i.append("team_alias",n.toString());let l=i.toString();l&&(a+=`?${l}`);let s=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}let c=await s.json();return console.log("/team/list API Response:",c),c}catch(e){throw console.error("Failed to create key:",e),e}},ef=async e=>{try{let t=S?`${S}/team/available`:"/team/available";console.log("in availableTeamListCall");let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("/team/available_teams API Response:",o),o}catch(e){throw e}},ep=async(e,t=null,r=null)=>{try{let o=S?`${S}/organization/list`:"/organization/list",n=new URLSearchParams;t&&n.append("org_id",t.toString()),r&&n.append("org_alias",r.toString());let a=n.toString();a&&(o+=`?${a}`);let i=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to create key:",e),e}},eh=async(e,t)=>{try{let r=S?`${S}/organization/info`:"/organization/info";t&&(r=`${r}?organization_id=${t}`),console.log("in teamInfoCall");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},em=async(e,t)=>{try{if(console.log("Form Values in organizationCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw console.error("Failed to parse metadata:",e),Error("Failed to parse metadata: "+e)}}let r=S?`${S}/organization/new`:"/organization/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eg=async(e,t)=>{try{console.log("Form Values in organizationUpdateCall:",t);let r=S?`${S}/organization/update`:"/organization/update",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Update Team Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},ev=async(e,t)=>{try{let r=S?`${S}/organization/delete`:"/organization/delete",o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_ids:[t]})});if(!o.ok){let e=await o.text();throw _(e),Error(`Error deleting organization: ${e}`)}return await o.json()}catch(e){throw console.error("Failed to delete organization:",e),e}},ey=async(e,t)=>{try{let r=S?`${S}/utils/transform_request`:"/utils/transform_request",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create key:",e),e}},eb=async({accessToken:e,endpoint:t,startTime:r,endTime:o,page:n=1,extraQueryParams:a})=>{try{let i,l,s,c,u=(i=t.startsWith("/")?t:`/${t}`,l=S?`${S}${i}`:i,(s=new URLSearchParams).append("start_date",y(r)),s.append("end_date",y(o)),s.append("page_size","1000"),s.append("page",n.toString()),s.append("timezone",new Date().getTimezoneOffset().toString()),a&&Object.entries(a).forEach(([e,t])=>{((e,t,r)=>{if(null!=r){if(Array.isArray(r)){r.length>0&&e.append(t,r.join(","));return}e.append(t,`${r}`)}})(s,e,t)}),(c=s.toString())?`${l}?${c}`:l),d=await fetch(u,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!d.ok){let e=await d.json(),t=oM(e);throw _(t),Error(t)}return await d.json()}catch(e){throw console.error(`Failed to fetch daily activity (${t}):`,e),e}},ew=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/user/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{user_id:n}}),e$=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/tag/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{tags:n}}),eC=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/team/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{team_ids:n,exclude_team_ids:"litellm-dashboard"}}),ex=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/organization/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{organization_ids:n}}),eE=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/customer/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{end_user_ids:n}}),eS=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/agent/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{agent_ids:n}}),ek=async e=>{try{let t=S?`${S}/onboarding/get_token`:"/onboarding/get_token";t+=`?invite_link=${e}`;let r=await fetch(t,{method:"GET",headers:{"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to create key:",e),e}},ej=async(e,t,r,o)=>{let n=S?`${S}/onboarding/claim_token`:"/onboarding/claim_token";try{let a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({invitation_link:t,user_id:r,password:o})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to delete key:",e),e}},eO=async(e,t,r)=>{try{let o=S?`${S}/key/${t}/regenerate`:`/key/${t}/regenerate`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Regenerate key Response:",a),a}catch(e){throw console.error("Failed to regenerate key:",e),e}},eT=!1,eI=null,e_=async(e,t,r,o=1,n=50,a,i,l,s,c)=>{try{console.log("modelInfoCall:",e,t,r,o,n,a,i,l,s,c);let u=S?`${S}/v2/model/info`:"/v2/model/info",d=new URLSearchParams;d.append("include_team_models","true"),d.append("page",o.toString()),d.append("size",n.toString()),a&&a.trim()&&d.append("search",a.trim()),i&&i.trim()&&d.append("modelId",i.trim()),l&&l.trim()&&d.append("teamId",l.trim()),s&&s.trim()&&d.append("sortBy",s.trim()),c&&c.trim()&&d.append("sortOrder",c.trim()),d.toString()&&(u+=`?${d.toString()}`);let f=await fetch(u,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!f.ok){let e=await f.text();throw e+=`error shown=${eT}`,eT||(e.includes("No model list passed")&&(e="No Models Exist. Click Add Model to get started."),v.default.info(e),eT=!0,eI&&clearTimeout(eI),eI=setTimeout(()=>{eT=!1},1e4)),Error("Network response was not ok")}let p=await f.json();return console.log("modelInfoCall:",p),p}catch(e){throw console.error("Failed to create key:",e),e}},eF=async(e,t)=>{try{let r=S?`${S}/v1/model/info`:"/v1/model/info";r+=`?litellm_model_id=${t}`;let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("modelInfoV1Call:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eP=async()=>{let e=S?`${S}/public/model_hub`:"/public/model_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`modelHubPublicModelsCall failed with status ${t.status}`),[])},eR=async()=>{let e=S?`${S}/public/agent_hub`:"/public/agent_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`agentHubPublicModelsCall failed with status ${t.status}`),[])},eN=async()=>{let e=S?`${S}/public/mcp_hub`:"/public/mcp_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`mcpHubPublicServersCall failed with status ${t.status}`),[])},eM=async()=>{let e=S?`${S}/public/skill_hub`:"/public/skill_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`skillHubPublicCall failed with status ${t.status}`),{plugins:[]})},eB=async e=>{try{let t=S?`${S}/model_group/info`:"/model_group/info",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("modelHubCall:",o),o}catch(e){throw console.error("Failed to create key:",e),e}},eA=async e=>{try{let t=S?`${S}/get/allowed_ips`:"/get/allowed_ips",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("getAllowedIPs:",o),o.data}catch(e){throw console.error("Failed to get allowed IPs:",e),e}},ez=async(e,t)=>{try{let r=S?`${S}/add/allowed_ip`:"/add/allowed_ip",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({ip:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("addAllowedIP:",n),n}catch(e){throw console.error("Failed to add allowed IP:",e),e}},eL=async(e,t)=>{try{let r=S?`${S}/delete/allowed_ip`:"/delete/allowed_ip",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({ip:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("deleteAllowedIP:",n),n}catch(e){throw console.error("Failed to delete allowed IP:",e),e}},eD=async(e,t)=>{try{let r=S?`${S}/model_hub/update_useful_links`:"/model_hub/update_useful_links",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({useful_links:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create key:",e),e}},eH=async(e,t,r,o=!1,n=null,a=!1,i=!1,l)=>{console.log("in /models calls, globalLitellmHeaderName",R);try{let t=S?`${S}/models`:"/models",r=new URLSearchParams;r.append("include_model_access_groups","True"),!0===o&&r.append("return_wildcard_routes","True"),!0===i&&r.append("only_model_access_groups","True"),n&&r.append("team_id",n.toString()),l&&r.append("scope",l),r.toString()&&(t+=`?${r.toString()}`);let a=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return await a.json()}catch(e){throw console.error("Failed to create key:",e),e}},eV=async e=>{try{let t=S?`${S}/global/spend/teams`:"/global/spend/teams";console.log("in teamSpendLogsCall:",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eW=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/tags`:"/global/spend/tags";t&&r&&(n=`${n}?start_date=${t}&end_date=${r}`),o&&(n+=`&tags=${o.join(",")}`),console.log("in tagsSpendLogsCall:",n);let a=await fetch(`${n}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to create key:",e),e}},eU=async e=>{try{let t=S?`${S}/global/spend/all_tag_names`:"/global/spend/all_tag_names";console.log("in global/spend/all_tag_names call",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eG=async e=>{try{let t=S?`${S}/customer/list`:"/customer/list";console.log("in customer/list",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to fetch end users:",e),e}},eq=async(e,t)=>{try{let r=S?`${S}/user/filter/ui`:"/user/filter/ui",o=new URLSearchParams;t.get("user_email")&&o.append("user_email",t.get("user_email")),t.get("user_id")&&o.append("user_id",t.get("user_id")),t.get("team_id")&&o.append("team_id",t.get("team_id"));let n=o.toString(),a=n?`${r}?${n}`:r,i=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to create key:",e),e}},eJ=async({accessToken:e,start_date:t,end_date:r,page:o=1,page_size:n=50,params:a={}})=>{try{let i=S?`${S}/spend/logs/ui`:"/spend/logs/ui",l=new URLSearchParams;for(let[e,i]of(l.append("start_date",t),l.append("end_date",r),l.append("page",o.toString()),l.append("page_size",n.toString()),Object.entries(a)))null!=i&&("min_spend"===e||"max_spend"===e?l.append(e,i.toString()):"string"==typeof i&&""!==i&&l.append(e,String(i)));let s=l.toString();s&&(i+=`?${s}`);let c=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!c.ok){let e=await c.json(),t=oM(e);throw _(t),Error(t)}let u=await c.json();return console.log("Spend Logs Response:",u),u}catch(e){throw console.error("Failed to fetch spend logs:",e),e}},eK=async e=>{try{let t=S?`${S}/global/spend/logs`:"/global/spend/logs",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eX=async e=>{try{let t=S?`${S}/global/spend/keys?limit=5`:"/global/spend/keys?limit=5",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eQ=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/end_users`:"/global/spend/end_users",a="";a=t?JSON.stringify({api_key:t,startTime:r,endTime:o}):JSON.stringify({startTime:r,endTime:o});let i={method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:a},l=await fetch(n,i);if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}let s=await l.json();return console.log(s),s}catch(e){throw console.error("Failed to create key:",e),e}},eY=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/provider`:"/global/spend/provider";r&&o&&(n+=`?start_date=${r}&end_date=${o}`),t&&(n+=`&api_key=${t}`);let a={method:"GET",headers:{[R]:`Bearer ${e}`}},i=await fetch(n,a);if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}let l=await i.json();return console.log(l),l}catch(e){throw console.error("Failed to fetch spend data:",e),e}},eZ=async(e,t,r)=>{try{let o=S?`${S}/global/activity`:"/global/activity";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e0=async(e,t,r)=>{try{let o=S?`${S}/global/activity/cache_hits`:"/global/activity/cache_hits";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e1=async(e,t,r)=>{try{let o=S?`${S}/global/activity/model`:"/global/activity/model";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e2=async e=>{try{let t=S?`${S}/global/spend/models?limit=5`:"/global/spend/models?limit=5",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},e4=async(e,t)=>{try{let r=S?`${S}/v2/key/info`:"/v2/key/info",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({keys:t})});if(!o.ok){let e=await o.text();if(e.includes("Invalid proxy server token passed"))throw Error("Invalid proxy server token passed");throw _(e),Error("Network response was not ok")}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to create key:",e),e}},e6=async(e,t,r,o)=>{try{console.log("Sending model connection test request:",JSON.stringify(t));let n=S?`${S}/health/test_connection`:"/health/test_connection",a=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({litellm_params:t,model_info:r,mode:o})}),i=a.headers.get("content-type");if(!i||!i.includes("application/json")){let e=await a.text();throw console.error("Received non-JSON response:",e),Error(`Received non-JSON response (${a.status}: ${a.statusText}). Check network tab for details.`)}let l=await a.json();if((!a.ok||"error"===l.status)&&"error"!==l.status)return{status:"error",message:l.error?.message||`Connection test failed: ${a.status} ${a.statusText}`};return l}catch(e){throw console.error("Model connection test error:",e),e}},e3=async(e,t)=>{try{console.log("entering keyInfoV1Call");let r=S?`${S}/key/info`:"/key/info";r=`${r}?key=${t}`;let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(console.log("response",o),!o.ok){let e=await o.text();_(e),v.default.fromBackend("Failed to fetch key info - "+e)}let n=await o.json();return console.log("data",n),n}catch(e){throw console.error("Failed to fetch key info:",e),e}},e7=async(e,t,r,o,n,a,i,l,s=null,c=null,u=null,d=null)=>{try{let f=S?`${S}/key/list`:"/key/list";console.log("in keyListCall");let p=new URLSearchParams;r&&p.append("team_id",r.toString()),t&&p.append("organization_id",t.toString()),o&&p.append("key_alias",o),a&&p.append("key_hash",a),n&&p.append("user_id",n.toString()),i&&p.append("page",i.toString()),l&&p.append("size",l.toString()),s&&p.append("sort_by",s),c&&p.append("sort_order",c),u&&p.append("expand",u),d&&p.append("status",d),p.append("return_full_object","true"),p.append("include_team_keys","true"),p.append("include_created_by_keys","true");let h=p.toString();h&&(f+=`?${h}`);let m=await fetch(f,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!m.ok){let e=await m.json(),t=oM(e);throw _(t),Error(t)}let g=await m.json();return console.log("/team/list API Response:",g),g}catch(e){throw console.error("Failed to create key:",e),e}},e5=async(e,t=1,r=50,o,n)=>{try{let a=new URLSearchParams(Object.entries({page:String(t),size:String(r),...o?{search:o}:{},...n?{team_id:n}:{}})),i=S?`${S}/key/aliases`:"/key/aliases";i=`${i}?${a}`;let l=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}let s=await l.json();return console.log("/key/aliases API Response:",s),s}catch(e){throw console.error("Failed to fetch key aliases:",e),e}},e9=async(e,t,r,o=null)=>{try{let n=S?`${S}/user/daily/activity/aggregated`:"/user/daily/activity/aggregated",a=new URLSearchParams,i=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`};a.append("start_date",i(t)),a.append("end_date",i(r)),a.append("timezone",new Date().getTimezoneOffset().toString()),o&&a.append("user_id",o);let l=a.toString();l&&(n+=`?${l}`);let s=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}return await s.json()}catch(e){throw console.error("Failed to fetch aggregated user daily activity:",e),e}},e8=async e=>{try{let t=S?`${S}/user/available_roles`:"/user/available_roles",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("response from user/available_role",o),o}catch(e){throw e}},te=async(e,t)=>{try{if(console.log("Form Values in teamCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let r=S?`${S}/team/new`:"/team/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tt=async(e,t)=>{try{if(console.log("Form Values in credentialCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let r=S?`${S}/credentials`:"/credentials",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tr=async e=>{try{let t=S?`${S}/credentials`:"/credentials";console.log("in credentialListCall");let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("/credentials API Response:",o),o}catch(e){throw console.error("Failed to create key:",e),e}},to=async(e,t,r)=>{try{let o=S?`${S}/credentials`:"/credentials";t?o+=`/by_name/${t}`:r&&(o+=`/by_model/${r}`),console.log("in credentialListCall");let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("/credentials API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tn=async(e,t)=>{try{let r=S?`${S}/credentials/${t}`:`/credentials/${t}`;console.log("in credentialDeleteCall:",t);let o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete key:",e),e}},ta=async(e,t,r)=>{try{if(console.log("Form Values in credentialUpdateCall:",r),r.metadata){console.log("formValues.metadata:",r.metadata);try{r.metadata=JSON.parse(r.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let o=S?`${S}/credentials/${t}`:`/credentials/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},ti=async(e,t)=>{try{if(console.log("Form Values in keyUpdateCall:",t),t.model_tpm_limit){console.log("formValues.model_tpm_limit:",t.model_tpm_limit);try{t.model_tpm_limit=JSON.parse(t.model_tpm_limit)}catch(e){throw Error("Failed to parse model_tpm_limit: "+e)}}if(t.model_rpm_limit){console.log("formValues.model_rpm_limit:",t.model_rpm_limit);try{t.model_rpm_limit=JSON.parse(t.model_rpm_limit)}catch(e){throw Error("Failed to parse model_rpm_limit: "+e)}}let r=S?`${S}/key/update`:"/key/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let n=await o.json();return console.log("Update key Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tl=async(e,t)=>{try{console.log("Form Values in teamUpateCall:",t);let r=S?`${S}/team/update`:"/team/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),v.default.fromBackend("Failed to update team settings: "+e),Error(e)}let n=await o.json();return console.log("Update Team Response:",n),n}catch(e){throw console.error("Failed to update team:",e),e}},ts=async(e,t,r)=>{try{console.log("Form Values in modelUpateCall:",t);let o=S?`${S}/model/${r}/update`:`/model/${r}/update`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error update from the server:",e),Error("Network response was not ok")}let a=await n.json();return console.log("Update model Response:",a),a}catch(e){throw console.error("Failed to update model:",e),e}},tc=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/team/member_add`:"/team/member_add",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_id:t,member:r})});if(!n.ok){let e=await n.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to add team member",o=Error(r);throw o.raw=t,o}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tu=async(e,t,r,o,n)=>{try{console.log("Bulk add team members:",{teamId:t,members:r,maxBudgetInTeam:o});let a=S?`${S}/team/bulk_member_add`:"/team/bulk_member_add",i={team_id:t};n?i.all_users=!0:i.members=r,null!=o&&(i.max_budget_in_team=o);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to bulk add team members",o=Error(r);throw o.raw=t,o}let s=await l.json();return console.log("Bulk team member add API Response:",s),s}catch(e){throw console.error("Failed to bulk add team members:",e),e}},td=async(e,t,r)=>{try{console.log("Form Values in teamMemberUpdateCall:",r),console.log("Budget value:",r.max_budget_in_team),console.log("TPM limit:",r.tpm_limit),console.log("RPM limit:",r.rpm_limit);let o=S?`${S}/team/member_update`:"/team/member_update",n={team_id:t,role:r.role,user_id:r.user_id};void 0!==r.user_email&&(n.user_email=r.user_email),void 0!==r.max_budget_in_team&&null!==r.max_budget_in_team&&(n.max_budget_in_team=r.max_budget_in_team),void 0!==r.tpm_limit&&null!==r.tpm_limit&&(n.tpm_limit=r.tpm_limit),void 0!==r.rpm_limit&&null!==r.rpm_limit&&(n.rpm_limit=r.rpm_limit),void 0!==r.allowed_models&&(n.allowed_models=r.allowed_models),console.log("Final request body:",n);let a=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(n)});if(!a.ok){let e=await a.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to add team member",o=Error(r);throw o.raw=t,o}let i=await a.json();return console.log("API Response:",i),i}catch(e){throw console.error("Failed to update team member:",e),e}},tf=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/team/member_delete`:"/team/member_delete",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_id:t,...void 0!==r.user_email&&{user_email:r.user_email},...void 0!==r.user_id&&{user_id:r.user_id}})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tp=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/organization/member_add`:"/organization/member_add",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,member:r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create organization member:",e),e}},th=async(e,t,r)=>{try{console.log("Form Values in organizationMemberDeleteCall:",r);let o=S?`${S}/organization/member_delete`:"/organization/member_delete",n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,user_id:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to delete organization member:",e),e}},tm=async(e,t,r)=>{try{console.log("Form Values in organizationMemberUpdateCall:",r);let o=S?`${S}/organization/member_update`:"/organization/member_update",n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,...r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to update organization member:",e),e}},tg=async(e,t,r)=>{try{console.log("Form Values in userUpdateUserCall:",t);let o=S?`${S}/user/update`:"/user/update",n={...t};null!==r&&(n.user_role=r),n=JSON.stringify(n);let a=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:n});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log("API Response:",i),i}catch(e){throw console.error("Failed to create key:",e),e}},tv=async(e,t,r,o=!1)=>{try{let n;console.log("Form Values in userUpdateUserCall:",t);let a=S?`${S}/user/bulk_update`:"/user/bulk_update";if(o)n=JSON.stringify({all_users:!0,user_updates:t});else if(r&&r.length>0){let e=[];for(let o of r)e.push({user_id:o,...t});n=JSON.stringify({users:e})}else throw Error("Must provide either userIds or set allUsers=true");let i=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:n});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}let l=await i.json();return console.log("API Response:",l),l}catch(e){throw console.error("Failed to create key:",e),e}},ty=async(e,t)=>{try{let r=S?`${S}/health/services?service=${t}`:`/health/services?service=${t}`;console.log("Checking Slack Budget Alerts service health");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}return await o.json()}catch(e){throw console.error("Failed to perform health check:",e),e}},tb=async e=>{try{let t=S?`${S}/budget/list`:"/budget/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tw=async(e,t,r)=>{try{let t=S?`${S}/get/config/callbacks`:"/get/config/callbacks",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},t$=async e=>{try{let t=S?`${S}/config/list?config_type=general_settings`:"/config/list?config_type=general_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tC=async e=>{try{let t=S?`${S}/router/settings`:"/router/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get router settings:",e),e}},tx=async e=>{try{let t=S?`${S}/cache/settings`:"/cache/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get cache settings:",e),e}},tE=async(e,t)=>{try{let r=S?`${S}/cache/settings/test`:"/cache/settings/test",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({cache_settings:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to test cache connection:",e),e}},tS=async(e,t)=>{try{let r=S?`${S}/cache/settings`:"/cache/settings",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({cache_settings:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update cache settings:",e),e}},tk=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint`:"/config/pass_through_endpoint";t&&(r+=`/team/${t}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tj=async(e,t)=>{try{let r=S?`${S}/config/field/info?field_name=${t}`:`/config/field/info?field_name=${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tO=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint`:"/config/pass_through_endpoint",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tT=async(e,t,r)=>{try{let o=S?`${S}/config/field/update`:"/config/field/update",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({field_name:t,field_value:r,config_type:"general_settings"})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return v.default.success("Successfully updated value!"),a}catch(e){throw console.error("Failed to set callbacks:",e),e}},tI=async(e,t)=>{try{let r=S?`${S}/config/field/delete`:"/config/field/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({field_name:t,config_type:"general_settings"})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return v.default.success("Field reset on proxy"),n}catch(e){throw console.error("Failed to get callbacks:",e),e}},t_=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint?endpoint_id=${t}`:`/config/pass_through_endpoint?endpoint_id=${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tF=async(e,t)=>{try{let r=S?`${S}/config/update`:"/config/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tP=async(e,t)=>{try{let r=S?`${S}/health?model_id=${encodeURIComponent(t)}`:`/health?model_id=${encodeURIComponent(t)}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error(`Failed to call /health for model id ${t}:`,e),e}},tR=async e=>{try{let t=S?`${S}/cache/ping`:"/cache/ping",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error(e)}return await r.json()}catch(e){throw console.error("Failed to call /cache/ping:",e),e}},tN=async e=>{try{let t=S?`${S}/health/latest`:"/health/latest",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error(e)}return await r.json()}catch(e){throw console.error("Failed to call /health/latest:",e),e}},tM=async e=>{try{console.log("Getting proxy UI settings"),console.log("proxyBaseUrl in getProxyUISettings:",S);let t=S?`${S}/sso/get/ui_settings`:"/sso/get/ui_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tB=async e=>{try{let t=S?`${S}/get/ui_settings`:"/get/ui_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);return console.error("Failed to get UI settings:",t),null}return await r.json()}catch(e){return console.error("Failed to get UI settings:",e),null}},tA=async e=>{try{let t=S?`${S}/get/mcp_semantic_filter_settings`:"/get/mcp_semantic_filter_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get MCP semantic filter settings:",e),e}},tz=async(e,t)=>{try{let r=S?`${S}/update/mcp_semantic_filter_settings`:"/update/mcp_semantic_filter_settings",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP semantic filter settings:",e),e}},tL=async(e,t,r)=>{try{let o=S?`${S}/v1/responses`:"/v1/responses",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({model:t,input:[{role:"user",content:r,type:"message"}],tools:[{type:"mcp",server_url:"litellm_proxy",require_approval:"never"}],tool_choice:"required"})}),a=n.headers.get("x-litellm-semantic-filter"),i=n.headers.get("x-litellm-semantic-filter-tools");if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return{data:await n.json(),headers:{filter:a,tools:i}}}catch(e){throw console.error("Failed to test MCP semantic filter:",e),e}},tD=async e=>{try{let t=S?`${S}/v2/guardrails/list`:"/v2/guardrails/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(`v2 guardrails/list returned ${r.status}`);return await r.json()}catch(t){console.log("v2/guardrails/list failed, falling back to v1:",t);try{let t=S?`${S}/guardrails/list`:"/guardrails/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get guardrails list:",e),e}}},tH=async(e,t)=>{let r=S?`${S}/guardrails/submissions`:"/guardrails/submissions",o=new URLSearchParams;t?.status&&o.set("status",t.status),t?.team_id&&o.set("team_id",t.team_id),t?.team_guardrail!==void 0&&o.set("team_guardrail",String(t.team_guardrail)),t?.search&&o.set("search",t.search);let n=o.toString()?`${r}?${o.toString()}`:r,a=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=oM(await a.json().catch(()=>({})));throw _(e),Error(e)}return a.json()},tV=async(e,t)=>{let r=S?`${S}/guardrails/submissions/${encodeURIComponent(t)}/approve`:`/guardrails/submissions/${encodeURIComponent(t)}/approve`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=oM(await o.json().catch(()=>({})));throw _(e),Error(e)}return o.json()},tW=async(e,t)=>{let r=S?`${S}/guardrails/submissions/${encodeURIComponent(t)}/reject`:`/guardrails/submissions/${encodeURIComponent(t)}/reject`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=oM(await o.json().catch(()=>({})));throw _(e),Error(e)}return o.json()},tU=async(e,t,r)=>{try{let o=S?`${S}/guardrails/usage/overview`:"/guardrails/usage/overview",n=new URLSearchParams;t&&n.append("start_date",t),r&&n.append("end_date",r),n.toString()&&(o+=`?${n.toString()}`);let a=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json();throw Error(oM(e))}return a.json()}catch(e){throw console.error("Failed to get guardrails usage overview:",e),e}},tG=async(e,t,r,o)=>{try{let n=S?`${S}/guardrails/usage/detail/${encodeURIComponent(t)}`:`/guardrails/usage/detail/${encodeURIComponent(t)}`,a=new URLSearchParams;r&&a.append("start_date",r),o&&a.append("end_date",o),a.toString()&&(n+=`?${a.toString()}`);let i=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json();throw Error(oM(e))}return i.json()}catch(e){throw console.error("Failed to get guardrails usage detail:",e),e}},tq=async(e,t)=>{try{let r=S?`${S}/guardrails/usage/logs`:"/guardrails/usage/logs",o=new URLSearchParams;t.guardrailId&&o.append("guardrail_id",t.guardrailId),t.policyId&&o.append("policy_id",t.policyId),null!=t.page&&o.append("page",String(t.page)),null!=t.pageSize&&o.append("page_size",String(t.pageSize)),t.action&&o.append("action",t.action),t.startDate&&o.append("start_date",t.startDate),t.endDate&&o.append("end_date",t.endDate),o.toString()&&(r+=`?${o.toString()}`);let n=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json();throw Error(oM(e))}return n.json()}catch(e){throw console.error("Failed to get guardrails usage logs:",e),e}},tJ=async e=>{try{let t=S?`${S}/policies/list`:"/policies/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policies list:",e),e}},tK=async(e,t,r)=>{try{let o=S?`${S}/utils/test_policies_and_guardrails`:"/utils/test_policies_and_guardrails",n=await fetch(o,{method:"POST",signal:r,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({policy_names:t.policy_names??null,guardrail_names:t.guardrail_names??null,inputs:t.inputs??null,inputs_list:t.inputs_list??null,request_data:t.request_data??{},input_type:t.input_type??"request",agent_id:t.agent_id??null})});if(!n.ok){let e=await n.text(),t="Failed to test policies and guardrails";try{let r=JSON.parse(e);r.detail?t="string"==typeof r.detail?r.detail:JSON.stringify(r.detail):r.message&&(t=r.message)}catch{t=e||t}throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to test policies and guardrails:",e),e}},tX=async(e,t)=>{try{let r=S?`${S}/policy/info/${t}`:`/policy/info/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error(`Failed to get policy info for ${t}:`,e),e}},tQ=async e=>{try{let t=S?`${S}/policy/templates`:"/policy/templates",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policy templates:",e),e}},tY=async(e,t,r,o,n)=>{try{let a=S?`${S}/policy/templates/enrich`:"/policy/templates/enrich",i={template_id:t,parameters:r};o&&(i.model=o),n&&(i.competitors=n);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}return await l.json()}catch(e){throw console.error("Failed to enrich policy template:",e),e}},tZ=async(e,t,r,o)=>{try{let n=S?`${S}/policy/templates/suggest`:"/policy/templates/suggest",a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({attack_examples:t.filter(e=>e.trim()),description:r,model:o})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return a.json()}catch(e){throw console.error("Failed to suggest policy templates:",e),e}},t0=async(e,t,r)=>{try{let o=S?`${S}/policy/templates/test`:"/policy/templates/test",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({guardrail_definitions:t,text:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return n.json()}catch(e){throw console.error("Failed to test policy template:",e),e}},t1=async(e,t,r,o,n,a,i,l,s)=>{let c=S?`${S}/policy/templates/enrich/stream`:"/policy/templates/enrich/stream",u={template_id:t,parameters:r,model:o};l?.instruction&&(u.instruction=l.instruction),l?.existingCompetitors&&(u.competitors=l.existingCompetitors);let d=await fetch(c,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(u)});if(!d.ok){let e=oM(await d.json());throw _(e),Error(e)}let f=d.body?.getReader();if(!f)throw Error("No response body");let p=new TextDecoder,h="";for(;;){let{done:e,value:t}=await f.read();if(e)break;let r=(h+=p.decode(t,{stream:!0})).split("\n");for(let e of(h=r.pop()||"",r))if(e.startsWith("data: "))try{let t=JSON.parse(e.slice(6));"competitor"===t.type?n(t.name):"status"===t.type?s?.(t.message):"done"===t.type?a(t):"error"===t.type&&i?.(t.message)}catch{}}},t2=async(e,t,r,o,n,a,i,l,s)=>{let c=S?`${S}/usage/ai/chat`:"/usage/ai/chat",u=await fetch(c,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({messages:t,model:r}),signal:s});if(!u.ok){let e=oM(await u.json());throw _(e),Error(e)}let d=u.body?.getReader();if(!d)throw Error("No response body");let f=new TextDecoder,p="";for(;;){let{done:e,value:t}=await d.read();if(e)break;let r=(p+=f.decode(t,{stream:!0})).split("\n");for(let e of(p=r.pop()||"",r))if(e.startsWith("data: "))try{let t=JSON.parse(e.slice(6));"chunk"===t.type?o(t.content):"status"===t.type?i?.(t.message):"tool_call"===t.type?l?.(t):"done"===t.type?n():"error"===t.type&&a?.(t.message)}catch{}}},t4=async(e,t)=>{try{let r=S?`${S}/policies`:"/policies",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create policy:",e),e}},t6=async(e,t,r)=>{try{let o=S?`${S}/policies/${t}`:`/policies/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update policy:",e),e}},t3=async(e,t)=>{try{let r=encodeURIComponent(t),o=S?`${S}/policies/name/${r}/versions`:`/policies/name/${r}/versions`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to list policy versions:",e),e}},t7=async(e,t,r)=>{try{let o=encodeURIComponent(t),n=S?`${S}/policies/name/${o}/versions`:`/policies/name/${o}/versions`,a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({source_policy_id:r??void 0})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return await a.json()}catch(e){throw console.error("Failed to create policy version:",e),e}},t5=async(e,t,r)=>{try{let o=S?`${S}/policies/${t}/status`:`/policies/${t}/status`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({version_status:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update policy version status:",e),e}},t9=async(e,t)=>{try{let r=S?`${S}/policies/${t}`:`/policies/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete policy:",e),e}},t8=async(e,t)=>{try{let r=S?`${S}/policies/${t}`:`/policies/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get policy info:",e),e}},re=async e=>{try{let t=S?`${S}/policies/attachments/list`:"/policies/attachments/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policy attachments list:",e),e}},rt=async(e,t)=>{try{let r=S?`${S}/policies/attachments`:"/policies/attachments",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create policy attachment:",e),e}},rr=async(e,t)=>{try{let r=S?`${S}/policies/attachments/${t}`:`/policies/attachments/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete policy attachment:",e),e}},ro=async(e,t,r)=>{try{let o=S?`${S}/policies/test-pipeline`:"/policies/test-pipeline",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({pipeline:t,test_messages:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to test pipeline:",e),e}},rn=async(e,t)=>{try{let r=S?`${S}/policies/${t}/resolved-guardrails`:`/policies/${t}/resolved-guardrails`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get resolved guardrails:",e),e}},ra=async(e,t)=>{try{let r=S?`${S}/policies/resolve`:"/policies/resolve",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to resolve policies:",e),e}},ri=async(e,t)=>{try{let r=S?`${S}/policies/attachments/estimate-impact`:"/policies/attachments/estimate-impact",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to estimate attachment impact:",e),e}},rl=async(e,t)=>{try{let r=S?`${S}/prompts/list`:"/prompts/list";t&&(r+=`?environment=${encodeURIComponent(t)}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get prompts list:",e),e}},rs=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}/info`:`/prompts/${t}/info`;r&&(o+=`?environment=${encodeURIComponent(r)}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to get prompt info:",e),e}},rc=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}/versions`:`/prompts/${t}/versions`;r&&(o+=`?environment=${encodeURIComponent(r)}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw 404!==n.status&&_(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to get prompt versions:",e),e}},ru=async(e,t)=>{try{let r=S?`${S}/prompts`:"/prompts",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create prompt:",e),e}},rd=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}`:`/prompts/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update prompt:",e),e}},rf=async(e,t)=>{try{let r=S?`${S}/prompts/${t}`:`/prompts/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete prompt:",e),e}},rp=async(e,t)=>{try{let r=new FormData;r.append("file",t);let o=S?`${S}/utils/dotprompt_json_converter`:"/utils/dotprompt_json_converter",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`},body:r});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to convert prompt file:",e),e}},rh=async(e,t)=>{try{let r=S?`${S}/v1/agents`:"/v1/agents",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Create agent response:",n),n}catch(e){throw console.error("Failed to create agent:",e),e}},rm=async(e,t)=>{try{let r=S?`${S}/guardrails`:"/guardrails",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({guardrail:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Create guardrail response:",n),n}catch(e){throw console.error("Failed to create guardrail:",e),e}},rg=async(e,t,r)=>{try{let o=S?`${S}/spend/logs/ui/${t}?start_date=${encodeURIComponent(r)}`:`/spend/logs/ui/${t}?start_date=${encodeURIComponent(r)}`;console.log("Fetching log details from:",o);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Fetched log details:",a),a}catch(e){throw console.error("Failed to fetch log details:",e),e}},rv=async e=>{try{let t=S?`${S}/get/internal_user_settings`:"/get/internal_user_settings";console.log("Fetching SSO settings from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched SSO settings:",o),o}catch(e){throw console.error("Failed to fetch SSO settings:",e),e}},ry=async(e,t)=>{try{let r=S?`${S}/update/internal_user_settings`:"/update/internal_user_settings";console.log("Updating internal user settings:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Updated internal user settings:",n),v.default.success("Internal user settings updated successfully"),n}catch(e){throw console.error("Failed to update internal user settings:",e),e}},rb=async e=>{try{let t=S?`${S}/v1/mcp/openapi-registry`:"/v1/mcp/openapi-registry",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json();throw Error(oM(e))}return await r.json()}catch(e){throw console.error("Failed to fetch OpenAPI registry:",e),e}},rw=async e=>{try{let t=S?`${S}/v1/mcp/discover`:"/v1/mcp/discover",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch discoverable MCP servers:",e),e}},r$=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server";if(t){let e=new URLSearchParams;e.append("team_id",t),r=`${r}?${e.toString()}`}console.log("Fetching MCP servers from:",r);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Fetched MCP servers:",n),n}catch(e){throw console.error("Failed to fetch MCP servers:",e),e}},rC=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server/health`:"/v1/mcp/server/health";if(t&&t.length>0){let e=new URLSearchParams;t.forEach(t=>e.append("server_ids",t)),r=`${r}?${e.toString()}`}console.log("Fetching MCP server health from:",r);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Fetched MCP server health:",n),n}catch(e){throw console.error("Failed to fetch MCP server health:",e),e}},rx=async e=>{try{let t=S?`${S}/v1/mcp/access_groups`:"/v1/mcp/access_groups";console.log("Fetching MCP access groups from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched MCP access groups:",o),o.access_groups||[]}catch(e){throw console.error("Failed to fetch MCP access groups:",e),e}},rE=async e=>{try{let t=S?`${S}/v1/mcp/network/client-ip`:"/v1/mcp/network/client-ip",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok)return null;return(await r.json()).ip||null}catch{return null}},rS=async(e,t)=>{try{console.log("Form Values in createMCPServer:",t);let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},rk=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server",o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP server:",e),e}},rj=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/server/${t}`;console.log("in deleteMCPServer:",t);let o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}}catch(e){throw console.error("Failed to delete key:",e),e}},rO=async e=>{try{let t=(S?`${S}`:"")+"/v1/mcp/toolset",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch MCP toolsets:",e),e}},rT=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/toolset",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create MCP toolset:",e),e}},rI=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/toolset",o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP toolset:",e),e}},r_=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/toolset/${t}`,o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}}catch(e){throw console.error("Failed to delete MCP toolset:",e),e}},rF=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/server/register",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return o.json()}catch(e){throw console.error("Failed to register MCP server:",e),e}},rP=async e=>{try{let t=(S?`${S}`:"")+"/v1/mcp/server/submissions",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return r.json()}catch(e){throw console.error("Failed to fetch MCP submissions:",e),e}},rR=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/server/${encodeURIComponent(t)}/approve`,o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return o.json()}catch(e){throw console.error("Failed to approve MCP server:",e),e}},rN=async(e,t,r)=>{try{let o=(S?`${S}`:"")+`/v1/mcp/server/${encodeURIComponent(t)}/reject`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({review_notes:r??null})});if(!n.ok){let e=await n.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return n.json()}catch(e){throw console.error("Failed to reject MCP server:",e),e}},rM=async e=>{try{let t=S?`${S}/search_tools/list`:"/search_tools/list";console.log("Fetching search tools from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched search tools:",o),o}catch(e){throw console.error("Failed to fetch search tools:",e),e}},rB=async(e,t)=>{try{console.log("Creating search tool with values:",t);let r=S?`${S}/search_tools`:"/search_tools",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({search_tool:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Created search tool:",n),n}catch(e){throw console.error("Failed to create search tool:",e),e}},rA=async(e,t,r)=>{try{console.log("Updating search tool with ID:",t,"values:",r);let o=S?`${S}/search_tools/${t}`:`/search_tools/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({search_tool:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Updated search tool:",a),a}catch(e){throw console.error("Failed to update search tool:",e),e}},rz=async(e,t)=>{try{let r=(S?`${S}`:"")+`/search_tools/${t}`;console.log("Deleting search tool:",t);let o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Deleted search tool:",n),n}catch(e){throw console.error("Failed to delete search tool:",e),e}},rL=async e=>{try{let t=S?`${S}/search_tools/ui/available_providers`:"/search_tools/ui/available_providers";console.log("Fetching available search providers from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched available search providers:",o),o}catch(e){throw console.error("Failed to fetch available search providers:",e),e}},rD=async(e,t)=>{try{let r=S?`${S}/search_tools/test_connection`:"/search_tools/test_connection";console.log("Testing search tool connection:",r);let o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({litellm_params:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Test connection response:",n),n}catch(e){throw console.error("Failed to test search tool connection:",e),e}},rH=async(e,t,r)=>{try{let o=S?`${S}/mcp-rest/tools/list?server_id=${t}`:`/mcp-rest/tools/list?server_id=${t}`;console.log("Fetching MCP tools from:",o);let n={[R]:`Bearer ${e}`,"Content-Type":"application/json",...r},a=await fetch(o,{method:"GET",headers:n}),i=await a.json();if(console.log("Fetched MCP tools response:",i),!a.ok){if(i.error&&i.message)throw Error(i.message);throw Error("Failed to fetch MCP tools")}return i}catch(e){return console.error("Failed to fetch MCP tools:",e),{tools:[],error:"network_error",message:e instanceof Error?e.message:"Failed to fetch MCP tools",stack_trace:null}}},rV=async(e,t,r,o,n)=>{try{let a=S?`${S}/mcp-rest/tools/call`:"/mcp-rest/tools/call";console.log("Calling MCP tool:",r,"with arguments:",o,"for server:",t);let i={[R]:`Bearer ${e}`,"Content-Type":"application/json",...n?.customHeaders||{}},l={server_id:t,name:r,arguments:o};n?.guardrails&&n.guardrails.length>0&&(l.litellm_metadata={guardrails:n.guardrails});let s=await fetch(a,{method:"POST",headers:i,body:JSON.stringify(l)});if(!s.ok){let e="Network response was not ok",t=null,r=await s.text();try{let o=JSON.parse(r);o.detail?"string"==typeof o.detail?e=o.detail:"object"==typeof o.detail&&(e=o.detail.message||o.detail.error||"An error occurred",t=o.detail):e=o.message||o.error||e}catch(t){console.error("Failed to parse JSON error response:",t),r&&(e=r)}let o=Error(e);throw o.status=s.status,o.statusText=s.statusText,o.details=t,_(e),o}let c=await s.json();return console.log("MCP tool call response:",c),c}catch(e){throw console.error("Failed to call MCP tool:",e),console.error("Error type:",typeof e),e instanceof Error&&(console.error("Error message:",e.message),console.error("Error stack:",e.stack)),e}},rW=async(e,t)=>{try{let r=S?`${S}/tag/new`:"/tag/new",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error creating tag:",e),e}},rU=async(e,t)=>{try{let r=S?`${S}/tag/update`:"/tag/update",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error updating tag:",e),e}},rG=async(e,t)=>{try{let r=S?`${S}/tag/info`:"/tag/info",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({names:t})});if(!o.ok){let e=await o.text();return await _(e),{}}return await o.json()}catch(e){throw console.error("Error getting tag info:",e),e}},rq=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`},rJ=async(e,t,r)=>{try{let o=S?`${S}/tag/list`:"/tag/list";if(t&&r){let e=new URLSearchParams({start_date:rq(t),end_date:rq(r)});o=`${o}?${e.toString()}`}let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!n.ok){let e=await n.text();return await _(e),{}}return await n.json()}catch(e){throw console.error("Error listing tags:",e),e}},rK=async(e,t)=>{try{let r=S?`${S}/tag/delete`:"/tag/delete",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({name:t})});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error deleting tag:",e),e}},rX=async e=>{try{let t=S?`${S}/get/default_team_settings`:"/get/default_team_settings";console.log("Fetching default team settings from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched default team settings:",o),o}catch(e){throw console.error("Failed to fetch default team settings:",e),e}},rQ=async(e,t)=>{try{let r=S?`${S}/update/default_team_settings`:"/update/default_team_settings";console.log("Updating default team settings:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Updated default team settings:",n),n}catch(e){throw console.error("Failed to update default team settings:",e),e}},rY=async(e,t)=>{try{let r=S?`${S}/team/permissions_list?team_id=${t}`:`/team/permissions_list?team_id=${t}`,o=await fetch(r,{method:"GET",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json(),t=oM(e);return console.error("Available permissions fetch failed:",t),{all_available_permissions:[],team_member_permissions:[]}}return await o.json()}catch(e){throw console.error("Failed to get team permissions:",e),e}},rZ=async(e,t,r)=>{try{let o=S?`${S}/team/permissions_update`:"/team/permissions_update",n=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({team_id:t,team_member_permissions:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Team permissions response:",a),a}catch(e){throw console.error("Failed to update team permissions:",e),e}},r0=async(e,t)=>{try{let r=S?`${S}/spend/logs/session/ui?session_id=${encodeURIComponent(t)}`:`/spend/logs/session/ui?session_id=${encodeURIComponent(t)}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to fetch session logs:",e),e}},r1=async(e,t)=>{try{let r=S?`${S}/vector_store/new`:"/vector_store/new",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to create vector store")}return await o.json()}catch(e){throw console.error("Error creating vector store:",e),e}},r2=async(e,t=1,r=100)=>{try{let t=S?`${S}/vector_store/list`:"/vector_store/list",r=await fetch(t,{method:"GET",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`}});if(!r.ok){let e=await r.json();throw Error(e.detail||"Failed to list vector stores")}return await r.json()}catch(e){throw console.error("Error listing vector stores:",e),e}},r4=async(e,t)=>{try{let r=S?`${S}/vector_store/delete`:"/vector_store/delete",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({vector_store_id:t})});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to delete vector store")}return await o.json()}catch(e){throw console.error("Error deleting vector store:",e),e}},r6=async(e,t)=>{try{let r=S?`${S}/vector_store/info`:"/vector_store/info",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({vector_store_id:t})});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to get vector store info")}return await o.json()}catch(e){throw console.error("Error getting vector store info:",e),e}},r3=async(e,t)=>{try{let r=S?`${S}/vector_store/update`:"/vector_store/update",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to update vector store")}return await o.json()}catch(e){throw console.error("Error updating vector store:",e),e}},r7=async(e,t,r,o,n,a,i)=>{try{let l=S?`${S}/rag/ingest`:"/rag/ingest",s=new FormData;s.append("file",t);let c={ingest_options:{vector_store:{custom_llm_provider:r,...o&&{vector_store_id:o},...i&&i}}};(n||a)&&(c.ingest_options.litellm_vector_store_params={},n&&(c.ingest_options.litellm_vector_store_params.vector_store_name=n),a&&(c.ingest_options.litellm_vector_store_params.vector_store_description=a)),s.append("request",JSON.stringify(c));let u=await fetch(l,{method:"POST",headers:{[R]:`Bearer ${e}`},body:s});if(!u.ok){let e=await u.json();throw Error(e.error?.message||e.detail||"Failed to ingest document")}return await u.json()}catch(e){throw console.error("Error ingesting document:",e),e}},r5=async e=>{try{let t=S?`${S}/email/event_settings`:"/email/event_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get email event settings")}let o=await r.json();return console.log("Email event settings response:",o),o}catch(e){throw console.error("Failed to get email event settings:",e),e}},r9=async(e,t)=>{try{let r=S?`${S}/email/event_settings`:"/email/event_settings",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to update email event settings")}let n=await o.json();return console.log("Update email event settings response:",n),n}catch(e){throw console.error("Failed to update email event settings:",e),e}},r8=async e=>{try{let t=S?`${S}/email/event_settings/reset`:"/email/event_settings/reset",r=await fetch(t,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to reset email event settings")}let o=await r.json();return console.log("Reset email event settings response:",o),o}catch(e){throw console.error("Failed to reset email event settings:",e),e}},oe=async(e,t)=>{try{let r=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Delete agent response:",n),n}catch(e){throw console.error("Failed to delete agent:",e),e}},ot=async(e,t)=>{try{let r=S?`${S}/v1/agents/make_public`:"/v1/agents/make_public",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({agent_ids:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Make agents public response:",n),n}catch(e){throw console.error("Failed to make agents public:",e),e}},or=async(e,t)=>{try{let r=S?`${S}/v1/mcp/make_public`:"/v1/mcp/make_public",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({mcp_server_ids:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Make agents public response:",n),n}catch(e){throw console.error("Failed to make agents public:",e),e}},oo=async(e,t)=>{try{let r=S?`${S}/guardrails/${t}`:`/guardrails/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Delete guardrail response:",n),n}catch(e){throw console.error("Failed to delete guardrail:",e),e}},on=async e=>{try{let t=S?`${S}/guardrails/ui/add_guardrail_settings`:"/guardrails/ui/add_guardrail_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get guardrail UI settings")}let o=await r.json();return console.log("Guardrail UI settings response:",o),o}catch(e){throw console.error("Failed to get guardrail UI settings:",e),e}},oa=async e=>{try{let t=S?`${S}/guardrails/ui/provider_specific_params`:"/guardrails/ui/provider_specific_params",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get guardrail provider specific parameters")}let o=await r.json();return console.log("Guardrail provider specific params response:",o),o}catch(e){throw console.error("Failed to get guardrail provider specific parameters:",e),e}},oi=async(e,t)=>{try{let r=encodeURIComponent(t),o=S?`${S}/guardrails/ui/category_yaml/${r}`:`/guardrails/ui/category_yaml/${r}`;console.log(`Fetching category YAML from: ${o}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text();throw console.error(`Failed to get category YAML. Status: ${n.status}, Error:`,e),_(e),Error(`Failed to get category YAML: ${n.status} ${e}`)}let a=await n.json();return console.log("Category YAML response:",a),a}catch(e){throw console.error("Failed to get category YAML:",e),e}},ol=async e=>{try{let t=S?`${S}/guardrails/ui/major_airlines`:"/guardrails/ui/major_airlines",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw console.error(`Failed to get major airlines. Status: ${r.status}, Error:`,e),_(e),Error(`Failed to get major airlines: ${r.status} ${e}`)}return await r.json()}catch(e){throw console.error("Failed to get major airlines:",e),e}},os=async(e,t=!1)=>{try{let r=t?"?health_check=true":"",o=S?`${S}/v1/agents${r}`:`/v1/agents${r}`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to get agents list")}let a=await n.json();return console.log("Agents list response:",a),{agents:a}}catch(e){throw console.error("Failed to get agents list:",e),e}},oc=async(e,t)=>{try{let r=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to get agent info")}let n=await o.json();return console.log("Agent info response:",n),n}catch(e){throw console.error("Failed to get agent info:",e),e}},ou=async(e,t)=>{try{let r=S?`${S}/guardrails/${t}/info`:`/guardrails/${t}/info`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to get guardrail info")}let n=await o.json();return console.log("Guardrail info response:",n),n}catch(e){throw console.error("Failed to get guardrail info:",e),e}},od=async(e,t,r)=>{try{let o=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to patch agent")}let a=await n.json();return console.log("Patch agent response:",a),a}catch(e){throw console.error("Failed to update guardrail:",e),e}},of=async(e,t,r)=>{try{let o=S?`${S}/guardrails/${t}`:`/guardrails/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to update guardrail")}let a=await n.json();return console.log("Update guardrail response:",a),a}catch(e){throw console.error("Failed to update guardrail:",e),e}},op=async(e,t,r,o,n)=>{try{let a=S?`${S}/guardrails/apply_guardrail`:"/guardrails/apply_guardrail",i={guardrail_name:t,text:r};o&&(i.language=o),n&&n.length>0&&(i.entities=n);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.text(),t="Failed to apply guardrail";try{let r=JSON.parse(e);r.error?.message?t=r.error.message:r.detail?t=r.detail:r.message&&(t=r.message)}catch(r){t=e||t}throw _(e),Error(t)}let s=await l.json();return console.log("Apply guardrail response:",s),s}catch(e){throw console.error("Failed to apply guardrail:",e),e}},oh=async(e,t)=>{try{let r=S?`${S}/guardrails/test_custom_code`:"/guardrails/test_custom_code",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text(),t="Failed to test custom code guardrail";try{let r=JSON.parse(e);r.error?.message?t=r.error.message:r.detail?t=r.detail:r.message&&(t=r.message)}catch(r){t=e||t}throw _(e),Error(t)}let n=await o.json();return console.log("Test custom code guardrail response:",n),n}catch(e){throw console.error("Failed to test custom code guardrail:",e),e}},om=async(e,t)=>{try{let r=S?`${S}/guardrails/validate_blocked_words_file`:"/guardrails/validate_blocked_words_file",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({file_content:t})});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to validate blocked words file")}let n=await o.json();return console.log("Validate blocked words file response:",n),n}catch(e){throw console.error("Failed to validate blocked words file:",e),e}},og=async e=>{try{let t=S?`${S}/get/sso_settings`:"/get/sso_settings";console.log("Fetching SSO configuration from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched SSO configuration:",o),o}catch(e){throw console.error("Failed to fetch SSO configuration:",e),e}},ov=async(e,t)=>{try{let r=S?`${S}/update/sso_settings`:"/update/sso_settings";console.log("Updating SSO configuration:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t="object"==typeof e?.detail?e.detail?.error||e.detail?.message:e?.detail,r="string"==typeof t&&t.length>0?t:oM(e);_(r);let n=Error(r);throw e?.detail!==void 0&&(n.detail=e.detail),n.rawError=e,n}let n=await o.json();return console.log("Updated SSO configuration:",n),n}catch(e){throw console.error("Failed to update SSO configuration:",e),e}},oy=async({accessToken:e,page:t=1,page_size:r=50,params:o={}})=>{try{let n=S?`${S}/audit`:"/audit",a=new URLSearchParams;for(let[e,n]of(a.append("page",t.toString()),a.append("page_size",r.toString()),Object.entries(o)))null!=n&&""!==n&&a.append(e,String(n));n+=`?${a.toString()}`;let i=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to fetch audit logs:",e),e}},ob=async e=>{try{let t=S?`${S}/user/available_users`:"/user/available_users",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok){if(404===r.status)return null;let e=await r.text();throw _(e),Error("Network response was not ok")}return await r.json()}catch(e){throw console.error("Failed to fetch remaining users:",e),e}},ow=async e=>{try{let t=S?`${S}/health/license`:"/health/license",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok){if(404===r.status)return null;let e=await r.text();throw _(e),Error("Network response was not ok")}return await r.json()}catch(e){throw console.error("Failed to fetch license info:",e),e}},o$=async(e,t,r)=>{try{let o=S?`${S}/config/pass_through_endpoint/${encodeURIComponent(t)}`:`/config/pass_through_endpoint/${encodeURIComponent(t)}`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return v.default.success("Pass through endpoint updated successfully"),a}catch(e){throw console.error("Failed to update pass through endpoint:",e),e}},oC=async(e,t)=>{try{let r=S?`${S}/config/callback/delete`:"/config/callback/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({callback_name:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete specific callback:",e),e}},ox=async(e,t,r)=>{try{console.log("Testing MCP tools list with config:",JSON.stringify(t));let o=S?`${S}/mcp-rest/test/tools/list`:"/mcp-rest/test/tools/list",n={"Content-Type":"application/json"};e&&(n["x-litellm-api-key"]=e),r?n.Authorization=`Bearer ${r}`:e&&(n[R]=`Bearer ${e}`);let a=await fetch(o,{method:"POST",headers:n,body:JSON.stringify(t)}),i=a.headers.get("content-type");if(!i||!i.includes("application/json")){let e=await a.text();throw console.error("Received non-JSON response:",e),Error(`Received non-JSON response (${a.status}: ${a.statusText}). Check network tab for details.`)}let l=await a.json();if((!a.ok||l.error)&&!l.error)return{tools:[],error:"request_failed",message:l.message||`MCP tools list failed: ${a.status} ${a.statusText}`};return l}catch(e){throw console.error("MCP tools list test error:",e),e}},oE=async(e,t)=>{let r=S?`${S}/v1/mcp/server/oauth/session`:"/v1/mcp/server/oauth/session",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)}),n=await o.json();if(!o.ok)throw Error(oM(n)||n?.error||"Failed to cache MCP server");return n},oS=async(e,t,r)=>{let o=k(),n=encodeURIComponent(t.trim()),a=`${o}/v1/mcp/server/oauth/${n}/register`,i=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json, text/event-stream"},body:JSON.stringify(r)}),l=await i.json();if(!i.ok)throw Error(oM(l)||l?.detail||"Failed to register OAuth client");return l},ok=({serverId:e,clientId:t,redirectUri:r,state:o,codeChallenge:n,scope:a})=>{let i=k(),l=encodeURIComponent(e.trim()),s=`${i}/v1/mcp/server/oauth/${l}/authorize`,c=new URLSearchParams({redirect_uri:r,state:o,response_type:"code",code_challenge:n,code_challenge_method:"S256"});return t&&t.trim().length>0&&c.set("client_id",t),a&&a.trim().length>0&&c.set("scope",a),`${s}?${c.toString()}`},oj=async({serverId:e,code:t,clientId:r,clientSecret:o,codeVerifier:n,redirectUri:a,accessToken:i})=>{let l=k(),s=encodeURIComponent(e.trim()),c=`${l}/v1/mcp/server/oauth/${s}/token`,u=new URLSearchParams;u.set("grant_type","authorization_code"),u.set("code",t),r&&r.trim().length>0&&u.set("client_id",r),o&&o.trim().length>0&&u.set("client_secret",o),u.set("code_verifier",n),u.set("redirect_uri",a);let d={"Content-Type":"application/x-www-form-urlencoded"};i&&(d.Authorization=`Bearer ${i}`);let f=await fetch(c,{method:"POST",headers:d,body:u.toString()}),p=await f.json();if(!f.ok)throw Error(oM(p)||p?.detail||"OAuth token exchange failed");return p},oO=async(e,t,r)=>{try{let o=`${k()}/v1/vector_stores/${t}/search`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({query:r})});if(!n.ok){let e=await n.text();return await _(e),null}return await n.json()}catch(e){throw console.error("Error testing vector store search:",e),e}},oT=async(e,t,r,o)=>{try{let n=`${k()}/v1/search/${t}`,a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({query:r,max_results:o||5})});if(!a.ok){let e=await a.text();return await _(e),null}return await a.json()}catch(e){throw console.error("Error querying search tool:",e),e}},oI=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/dau`:"/tag/dau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch DAU:",e),e}},o_=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/wau`:"/tag/wau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch WAU:",e),e}},oF=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/mau`:"/tag/mau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch MAU:",e),e}},oP=async e=>{try{let t=S?`${S}/tag/distinct`:"/tag/distinct",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch distinct tags:",e),e}},oR=async(e,t,r,o)=>{try{let n=S?`${S}/tag/summary`:"/tag/summary",a=new URLSearchParams,i=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`};a.append("start_date",i(t)),a.append("end_date",i(r)),o&&o.length>0&&o.forEach(e=>{a.append("tag_filters",e)});let l=a.toString();l&&(n+=`?${l}`);let s=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}return await s.json()}catch(e){throw console.error("Failed to fetch user agent summary:",e),e}},oN=async(e,t=1,r=50,o)=>{try{let n=S?`${S}/tag/user-agent/per-user-analytics`:"/tag/user-agent/per-user-analytics",a=new URLSearchParams;a.append("page",t.toString()),a.append("page_size",r.toString()),o&&o.length>0&&o.forEach(e=>{a.append("tag_filters",e)});let i=a.toString();i&&(n+=`?${i}`);let l=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}return await l.json()}catch(e){throw console.error("Failed to fetch per-user analytics:",e),e}},oM=e=>{let t=e?.detail,r=Array.isArray(t)?t.map(e=>e?.msg||JSON.stringify(e)).join("; "):"string"==typeof t?t:void 0;return e?.error&&(e.error.message||("string"==typeof e.error?e.error:void 0))||e?.message||r||JSON.stringify(e)},oB=async(e,t,r)=>{let n=k(),a=r?"/v3/login":"/v2/login",i=n?`${n}${a}`:a,l=JSON.stringify({username:e,password:t}),s=await fetch(i,{method:"POST",body:l,credentials:"include",headers:{"Content-Type":"application/json"}});if(!s.ok)throw Error(oM(await s.json()));let c=await s.json();if(r&&c.code){let e=n?`${n}/v3/login/exchange`:"/v3/login/exchange",t=await fetch(e,{method:"POST",body:JSON.stringify({code:c.code}),credentials:"include",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error(oM(await t.json()));let r=await t.json();return r.token&&(0,o.storeLoginToken)(r.token),r}return c.token&&(0,o.storeLoginToken)(c.token),c},oA=async(e,t)=>{let r=t||k(),o=await fetch(`${r}/v3/login/exchange`,{method:"POST",body:JSON.stringify({code:e}),headers:{"Content-Type":"application/json"}});if(!o.ok)throw Error(oM(await o.json()));let n=await o.json();return n.token&&(document.cookie=`token=${n.token}; path=/; SameSite=Lax`),n.token},oz=async()=>{let e=k(),t=e?`${e}/get/ui_settings`:"/get/ui_settings",r=await fetch(t,{method:"GET"});if(!r.ok)throw Error(oM(await r.json()));return await r.json()},oL=async(e,t)=>{let r=k(),o=r?`${r}/update/ui_settings`:"/update/ui_settings",n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok)throw Error(oM(await n.json()));return await n.json()},oD=async(e,t=!1)=>{try{let r=k(),o=r?`${r}/claude-code/plugins?enabled_only=${t}`:`/claude-code/plugins?enabled_only=${t}`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to fetch Claude Code plugins list:",e),e}},oH=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins`:"/claude-code/plugins",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to register Claude Code plugin:",e),e}},oV=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}/enable`:`/claude-code/plugins/${t}/enable`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to enable plugin "${t}":`,e),e}},oW=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}/disable`:`/claude-code/plugins/${t}/disable`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to disable plugin "${t}":`,e),e}},oU=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}`:`/claude-code/plugins/${t}`,n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to delete plugin "${t}":`,e),e}},oG=async(e,t)=>{let r=S?`${S}/compliance/eu-ai-act`:"/compliance/eu-ai-act",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok)throw Error(await o.text());return o.json()},oq=async(e,t)=>{let r=S?`${S}/compliance/gdpr`:"/compliance/gdpr",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok)throw Error(await o.text());return o.json()},oJ=async e=>{let t=S?`${S}/v1/tool/policy/options`:"/v1/tool/policy/options",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(await r.text());return r.json()},oK=async e=>{let t=S?`${S}/v1/tool/list`:"/v1/tool/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(await r.text());return(await r.json()).tools??[]},oX=async(e,t,r)=>{let o=encodeURIComponent(t),n=S?`${S}/v1/tool/${o}/logs`:`/v1/tool/${o}/logs`,a=new URLSearchParams;null!=r.page&&a.append("page",String(r.page)),null!=r.pageSize&&a.append("page_size",String(r.pageSize)),r.startDate&&a.append("start_date",r.startDate),r.endDate&&a.append("end_date",r.endDate);let i=a.toString()?`${n}?${a.toString()}`:n,l=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok)throw Error(oM(await l.json().catch(()=>({}))));return l.json()},oQ=async(e,t)=>{let r=encodeURIComponent(t),o=S?`${S}/v1/tool/${r}/detail`:`/v1/tool/${r}/detail`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok)throw Error(await n.text());return n.json()},oY=async(e,t,r,o)=>{let n=S?`${S}/v1/tool/policy`:"/v1/tool/policy",a={tool_name:t};null!=r.input_policy&&(a.input_policy=r.input_policy),null!=r.output_policy&&(a.output_policy=r.output_policy),o?.team_id!=null&&(a.team_id=o.team_id||void 0),o?.key_hash!=null&&(a.key_hash=o.key_hash||void 0),o?.key_alias!=null&&(a.key_alias=o.key_alias||void 0);let i=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(a)});if(!i.ok)throw Error(await i.text());return i.json()},oZ=async(e,t,r)=>{let o=encodeURIComponent(t),n=new URLSearchParams;null!=r.team_id&&""!==r.team_id&&n.set("team_id",r.team_id),null!=r.key_hash&&""!==r.key_hash&&n.set("key_hash",r.key_hash);let a=n.toString(),i=S?`${S}/v1/tool/${o}/overrides${a?`?${a}`:""}`:`/v1/tool/${o}/overrides${a?`?${a}`:""}`,l=await fetch(i,{method:"DELETE",headers:{[R]:`Bearer ${e}`}});if(!l.ok)throw Error(await l.text());return l.json()},o0=async(e,t,r)=>{let o=S?`${S}/v1/mcp/server/${t}/oauth-user-credential`:`/v1/mcp/server/${t}/oauth-user-credential`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json().catch(()=>({})),t=e?.detail;throw Error((Array.isArray(t)?t.map(e=>e&&"object"==typeof e?e.msg??JSON.stringify(e):String(e)).join("; "):"string"==typeof t?t:t&&"string"==typeof t.error?t.error:void 0)||"Failed to store OAuth credential")}return n.json()},o1=async(e,t)=>{let r=S?`${S}/v1/mcp/server/${t}/oauth-user-credential`:`/v1/mcp/server/${t}/oauth-user-credential`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json().catch(()=>({})),t=e?.detail;throw Error((Array.isArray(t)?t.map(e=>e&&"object"==typeof e?e.msg??JSON.stringify(e):String(e)).join("; "):"string"==typeof t?t:t&&"string"==typeof t.error?t.error:void 0)||"Failed to revoke OAuth credential")}return o.json()},o2=async(e,t)=>{let r=S?`${S}/v1/mcp/server/${t}/oauth-user-credential/status`:`/v1/mcp/server/${t}/oauth-user-credential/status`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`}});return o.ok?o.json():{server_id:t,has_credential:!1,is_expired:!1}},o4=async e=>{let t=S?`${S}/v1/mcp/user-credentials`:"/v1/mcp/user-credentials",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});return r.ok?r.json():[]},o6=e=>e.split("/").map(encodeURIComponent).join("/"),o3=async(e,t={})=>{let r=S?`${S}/v1/memory`:"/v1/memory",o=new URLSearchParams;t.keyPrefix?o.append("key_prefix",t.keyPrefix):t.key&&o.append("key",t.key),null!=t.page&&o.append("page",String(t.page)),null!=t.pageSize&&o.append("page_size",String(t.pageSize));let n=o.toString()?`${r}?${o.toString()}`:r,a=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok)throw Error(await a.text());return a.json()},o7=async(e,t)=>{let r=S?`${S}/v1/memory`:"/v1/memory",o={key:t.key,value:t.value};void 0!==t.metadata&&(o.metadata=t.metadata);let n=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(o)});if(!n.ok)throw Error(await n.text());return n.json()},o5=async(e,t,r)=>{let o=o6(t),n=S?`${S}/v1/memory/${o}`:`/v1/memory/${o}`,a=await fetch(n,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!a.ok)throw Error(await a.text());return a.json()},o9=async(e,t)=>{let r=o6(t),o=S?`${S}/v1/memory/${r}`:`/v1/memory/${r}`,n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok)throw Error(await n.text())}},947293,e=>{"use strict";class t extends Error{}t.prototype.name="InvalidTokenError",e.s(["jwtDecode",0,function(e,r){let o;if("string"!=typeof e)throw new t("Invalid token specified: must be a string");r||(r={});let n=+(!0!==r.header),a=e.split(".")[n];if("string"!=typeof a)throw new t(`Invalid token specified: missing part #${n+1}`);try{o=function(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw Error("base64 string is not of the correct length")}try{var r;return r=t,decodeURIComponent(atob(r).replace(/(.)/g,(e,t)=>{let r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r}))}catch(e){return atob(t)}}(a)}catch(e){throw new t(`Invalid token specified: invalid base64 for part #${n+1} (${e.message})`)}try{return JSON.parse(o)}catch(e){throw new t(`Invalid token specified: invalid json for part #${n+1} (${e.message})`)}}])},266027,869230,469637,e=>{"use strict";let t;var r=e.i(175555),o=e.i(273911),n=e.i(540143),a=e.i(286491),i=e.i(915823),l=e.i(793803),s=e.i(619273),c=e.i(180166),u=class extends i.Subscribable{constructor(e,t){super(),this.options=t,this.#e=e,this.#t=null,this.#r=(0,l.pendingThenable)(),this.bindMethods(),this.setOptions(t)}#e;#o=void 0;#n=void 0;#a=void 0;#i;#l;#r;#t;#s;#c;#u;#d;#f;#p;#h=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#o.addObserver(this),d(this.#o,this.options)?this.#m():this.updateResult(),this.#g())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return f(this.#o,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return f(this.#o,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#v(),this.#y(),this.#o.removeObserver(this)}setOptions(e){let t=this.options,r=this.#o;if(this.options=this.#e.defaultQueryOptions(e),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,s.resolveQueryBoolean)(this.options.enabled,this.#o))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#b(),this.#o.setOptions(this.options),t._defaulted&&!(0,s.shallowEqualObjects)(this.options,t)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#o,observer:this});let o=this.hasListeners();o&&p(this.#o,r,this.options,t)&&this.#m(),this.updateResult(),o&&(this.#o!==r||(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)!==(0,s.resolveQueryBoolean)(t.enabled,this.#o)||(0,s.resolveStaleTime)(this.options.staleTime,this.#o)!==(0,s.resolveStaleTime)(t.staleTime,this.#o))&&this.#w();let n=this.#$();o&&(this.#o!==r||(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)!==(0,s.resolveQueryBoolean)(t.enabled,this.#o)||n!==this.#p)&&this.#C(n)}getOptimisticResult(e){var t,r;let o=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(o,e);return t=this,r=n,(0,s.shallowEqualObjects)(t.getCurrentResult(),r)||(this.#a=n,this.#l=this.options,this.#i=this.#o.state),n}getCurrentResult(){return this.#a}trackResult(e,t){return new Proxy(e,{get:(e,r)=>(this.trackProp(r),t?.(r),"promise"===r&&(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#r.status||this.#r.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(e,r))})}trackProp(e){this.#h.add(e)}getCurrentQuery(){return this.#o}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),r=this.#e.getQueryCache().build(this.#e,t);return r.fetch().then(()=>this.createResult(r,t))}fetch(e){return this.#m({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#a))}#m(e){this.#b();let t=this.#o.fetch(this.options,e);return e?.throwOnError||(t=t.catch(s.noop)),t}#w(){this.#v();let e=(0,s.resolveStaleTime)(this.options.staleTime,this.#o);if(o.environmentManager.isServer()||this.#a.isStale||!(0,s.isValidTimeout)(e))return;let t=(0,s.timeUntilStale)(this.#a.dataUpdatedAt,e);this.#d=c.timeoutManager.setTimeout(()=>{this.#a.isStale||this.updateResult()},t+1)}#$(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#o):this.options.refetchInterval)??!1}#C(e){this.#y(),this.#p=e,!o.environmentManager.isServer()&&!1!==(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)&&(0,s.isValidTimeout)(this.#p)&&0!==this.#p&&(this.#f=c.timeoutManager.setInterval(()=>{(this.options.refetchIntervalInBackground||r.focusManager.isFocused())&&this.#m()},this.#p))}#g(){this.#w(),this.#C(this.#$())}#v(){void 0!==this.#d&&(c.timeoutManager.clearTimeout(this.#d),this.#d=void 0)}#y(){void 0!==this.#f&&(c.timeoutManager.clearInterval(this.#f),this.#f=void 0)}createResult(e,t){let r,o=this.#o,n=this.options,i=this.#a,c=this.#i,u=this.#l,f=e!==o?e.state:this.#n,{state:m}=e,g={...m},v=!1;if(t._optimisticResults){let r=this.hasListeners(),i=!r&&d(e,t),l=r&&p(e,o,t,n);(i||l)&&(g={...g,...(0,a.fetchState)(m.data,e.options)}),"isRestoring"===t._optimisticResults&&(g.fetchStatus="idle")}let{error:y,errorUpdatedAt:b,status:w}=g;r=g.data;let $=!1;if(void 0!==t.placeholderData&&void 0===r&&"pending"===w){let e;i?.isPlaceholderData&&t.placeholderData===u?.placeholderData?(e=i.data,$=!0):e="function"==typeof t.placeholderData?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,void 0!==e&&(w="success",r=(0,s.replaceData)(i?.data,e,t),v=!0)}if(t.select&&void 0!==r&&!$)if(i&&r===c?.data&&t.select===this.#s)r=this.#c;else try{this.#s=t.select,r=t.select(r),r=(0,s.replaceData)(i?.data,r,t),this.#c=r,this.#t=null}catch(e){this.#t=e}this.#t&&(y=this.#t,r=this.#c,b=Date.now(),w="error");let C="fetching"===g.fetchStatus,x="pending"===w,E="error"===w,S=x&&C,k=void 0!==r,j={status:w,fetchStatus:g.fetchStatus,isPending:x,isSuccess:"success"===w,isError:E,isInitialLoading:S,isLoading:S,data:r,dataUpdatedAt:g.dataUpdatedAt,error:y,errorUpdatedAt:b,failureCount:g.fetchFailureCount,failureReason:g.fetchFailureReason,errorUpdateCount:g.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:g.dataUpdateCount>f.dataUpdateCount||g.errorUpdateCount>f.errorUpdateCount,isFetching:C,isRefetching:C&&!x,isLoadingError:E&&!k,isPaused:"paused"===g.fetchStatus,isPlaceholderData:v,isRefetchError:E&&k,isStale:h(e,t),refetch:this.refetch,promise:this.#r,isEnabled:!1!==(0,s.resolveQueryBoolean)(t.enabled,e)};if(this.options.experimental_prefetchInRender){let t=void 0!==j.data,r="error"===j.status&&!t,n=e=>{r?e.reject(j.error):t&&e.resolve(j.data)},a=()=>{n(this.#r=j.promise=(0,l.pendingThenable)())},i=this.#r;switch(i.status){case"pending":e.queryHash===o.queryHash&&n(i);break;case"fulfilled":(r||j.data!==i.value)&&a();break;case"rejected":r&&j.error===i.reason||a()}}return j}updateResult(){let e=this.#a,t=this.createResult(this.#o,this.options);if(this.#i=this.#o.state,this.#l=this.options,void 0!==this.#i.data&&(this.#u=this.#o),(0,s.shallowEqualObjects)(t,e))return;this.#a=t;let r=()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,r="function"==typeof t?t():t;if("all"===r||!r&&!this.#h.size)return!0;let o=new Set(r??this.#h);return this.options.throwOnError&&o.add("error"),Object.keys(this.#a).some(t=>this.#a[t]!==e[t]&&o.has(t))};this.#x({listeners:r()})}#b(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#o)return;let t=this.#o;this.#o=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#g()}#x(e){n.notifyManager.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#a)}),this.#e.getQueryCache().notify({query:this.#o,type:"observerResultsUpdated"})})}};function d(e,t){return!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&void 0===e.state.data&&("error"!==e.state.status||!1!==(0,s.resolveQueryBoolean)(t.retryOnMount,e))||void 0!==e.state.data&&f(e,t,t.refetchOnMount)}function f(e,t,r){if(!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&"static"!==(0,s.resolveStaleTime)(t.staleTime,e)){let o="function"==typeof r?r(e):r;return"always"===o||!1!==o&&h(e,t)}return!1}function p(e,t,r,o){return(e!==t||!1===(0,s.resolveQueryBoolean)(o.enabled,e))&&(!r.suspense||"error"!==e.state.status)&&h(e,r)}function h(e,t){return!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&e.isStaleByTime((0,s.resolveStaleTime)(t.staleTime,e))}e.s(["QueryObserver",0,u],869230),e.i(247167);var m=e.i(271645),g=e.i(912598);e.i(843476);var v=m.createContext((t=!1,{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t})),y=m.createContext(!1);y.Provider;var b=(e,t,r)=>t.fetchOptimistic(e).catch(()=>{r.clearReset()});function w(e,t,r){let a,i=m.useContext(y),l=m.useContext(v),c=(0,g.useQueryClient)(r),u=c.defaultQueryOptions(e);c.getDefaultOptions().queries?._experimental_beforeQuery?.(u);let d=c.getQueryCache().get(u.queryHash);if(u._optimisticResults=i?"isRestoring":"optimistic",u.suspense){let e=e=>"static"===e?e:Math.max(e??1e3,1e3),t=u.staleTime;u.staleTime="function"==typeof t?(...r)=>e(t(...r)):e(t),"number"==typeof u.gcTime&&(u.gcTime=Math.max(u.gcTime,1e3))}a=d?.state.error&&"function"==typeof u.throwOnError?(0,s.shouldThrowError)(u.throwOnError,[d.state.error,d]):u.throwOnError,(u.suspense||u.experimental_prefetchInRender||a)&&!l.isReset()&&(u.retryOnMount=!1),m.useEffect(()=>{l.clearReset()},[l]);let f=!c.getQueryCache().get(u.queryHash),[p]=m.useState(()=>new t(c,u)),h=p.getOptimisticResult(u),w=!i&&!1!==e.subscribed;if(m.useSyncExternalStore(m.useCallback(e=>{let t=w?p.subscribe(n.notifyManager.batchCalls(e)):s.noop;return p.updateResult(),t},[p,w]),()=>p.getCurrentResult(),()=>p.getCurrentResult()),m.useEffect(()=>{p.setOptions(u)},[u,p]),u?.suspense&&h.isPending)throw b(u,p,l);if((({result:e,errorResetBoundary:t,throwOnError:r,query:o,suspense:n})=>e.isError&&!t.isReset()&&!e.isFetching&&o&&(n&&void 0===e.data||(0,s.shouldThrowError)(r,[e.error,o])))({result:h,errorResetBoundary:l,throwOnError:u.throwOnError,query:d,suspense:u.suspense}))throw h.error;if(c.getDefaultOptions().queries?._experimental_afterQuery?.(u,h),u.experimental_prefetchInRender&&!o.environmentManager.isServer()&&h.isLoading&&h.isFetching&&!i){let e=f?b(u,p,l):d?.promise;e?.catch(s.noop).finally(()=>{p.updateResult()})}return u.notifyOnChangeProps?h:p.trackResult(h)}e.s(["useBaseQuery",0,w],469637),e.s(["useQuery",0,function(e,t){return w(e,u,t)}],266027)},243652,e=>{"use strict";e.s(["createQueryKeys",0,function(e){let t=[e];return{all:t,lists:()=>[...t,"list"],list:e=>[...t,"list",{params:e}],details:()=>[...t,"detail"],detail:e=>[...t,"detail",e]}}])},612256,e=>{"use strict";var t=e.i(764205),r=e.i(266027);let o=(0,e.i(243652).createQueryKeys)("uiConfig");e.s(["useUIConfig",0,()=>(0,r.useQuery)({queryKey:o.list({}),queryFn:async()=>await (0,t.getUiConfig)(),staleTime:864e5,gcTime:864e5})])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0j2g7af6k4x7m.js b/litellm/proxy/_experimental/out/_next/static/chunks/06uhwq-x7qrqc.js similarity index 75% rename from litellm/proxy/_experimental/out/_next/static/chunks/0j2g7af6k4x7m.js rename to litellm/proxy/_experimental/out/_next/static/chunks/06uhwq-x7qrqc.js index 0a34a15a2cf..da9972a3341 100644 --- a/litellm/proxy/_experimental/out/_next/static/chunks/0j2g7af6k4x7m.js +++ b/litellm/proxy/_experimental/out/_next/static/chunks/06uhwq-x7qrqc.js @@ -1,4 +1,4 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,269200,e=>{"use strict";var t=e.i(290571),l=e.i(271645),a=e.i(444755);let r=(0,e.i(673706).makeClassName)("Table"),s=l.default.forwardRef((e,s)=>{let{children:i,className:n}=e,o=(0,t.__rest)(e,["children","className"]);return l.default.createElement("div",{className:(0,a.tremorTwMerge)(r("root"),"overflow-auto",n)},l.default.createElement("table",Object.assign({ref:s,className:(0,a.tremorTwMerge)(r("table"),"w-full text-tremor-default","text-tremor-content","dark:text-dark-tremor-content")},o),i))});s.displayName="Table",e.s(["Table",0,s],269200)},427612,e=>{"use strict";var t=e.i(290571),l=e.i(271645),a=e.i(444755);let r=(0,e.i(673706).makeClassName)("TableHead"),s=l.default.forwardRef((e,s)=>{let{children:i,className:n}=e,o=(0,t.__rest)(e,["children","className"]);return l.default.createElement(l.default.Fragment,null,l.default.createElement("thead",Object.assign({ref:s,className:(0,a.tremorTwMerge)(r("root"),"text-left","text-tremor-content","dark:text-dark-tremor-content",n)},o),i))});s.displayName="TableHead",e.s(["TableHead",0,s],427612)},64848,e=>{"use strict";var t=e.i(290571),l=e.i(271645),a=e.i(444755);let r=(0,e.i(673706).makeClassName)("TableHeaderCell"),s=l.default.forwardRef((e,s)=>{let{children:i,className:n}=e,o=(0,t.__rest)(e,["children","className"]);return l.default.createElement(l.default.Fragment,null,l.default.createElement("th",Object.assign({ref:s,className:(0,a.tremorTwMerge)(r("root"),"whitespace-nowrap text-left font-semibold top-0 px-4 py-3.5","text-tremor-content-strong","dark:text-dark-tremor-content-strong",n)},o),i))});s.displayName="TableHeaderCell",e.s(["TableHeaderCell",0,s],64848)},942232,e=>{"use strict";var t=e.i(290571),l=e.i(271645),a=e.i(444755);let r=(0,e.i(673706).makeClassName)("TableBody"),s=l.default.forwardRef((e,s)=>{let{children:i,className:n}=e,o=(0,t.__rest)(e,["children","className"]);return l.default.createElement(l.default.Fragment,null,l.default.createElement("tbody",Object.assign({ref:s,className:(0,a.tremorTwMerge)(r("root"),"align-top divide-y","divide-tremor-border","dark:divide-dark-tremor-border",n)},o),i))});s.displayName="TableBody",e.s(["TableBody",0,s],942232)},496020,e=>{"use strict";var t=e.i(290571),l=e.i(271645),a=e.i(444755);let r=(0,e.i(673706).makeClassName)("TableRow"),s=l.default.forwardRef((e,s)=>{let{children:i,className:n}=e,o=(0,t.__rest)(e,["children","className"]);return l.default.createElement(l.default.Fragment,null,l.default.createElement("tr",Object.assign({ref:s,className:(0,a.tremorTwMerge)(r("row"),n)},o),i))});s.displayName="TableRow",e.s(["TableRow",0,s],496020)},977572,e=>{"use strict";var t=e.i(290571),l=e.i(271645),a=e.i(444755);let r=(0,e.i(673706).makeClassName)("TableCell"),s=l.default.forwardRef((e,s)=>{let{children:i,className:n}=e,o=(0,t.__rest)(e,["children","className"]);return l.default.createElement(l.default.Fragment,null,l.default.createElement("td",Object.assign({ref:s,className:(0,a.tremorTwMerge)(r("root"),"align-middle whitespace-nowrap text-left p-4",n)},o),i))});s.displayName="TableCell",e.s(["TableCell",0,s],977572)},389083,e=>{"use strict";var t=e.i(290571),l=e.i(271645),a=e.i(829087),r=e.i(480731),s=e.i(95779),i=e.i(444755),n=e.i(673706);let o={xs:{paddingX:"px-2",paddingY:"py-0.5",fontSize:"text-xs"},sm:{paddingX:"px-2.5",paddingY:"py-0.5",fontSize:"text-sm"},md:{paddingX:"px-3",paddingY:"py-0.5",fontSize:"text-md"},lg:{paddingX:"px-3.5",paddingY:"py-0.5",fontSize:"text-lg"},xl:{paddingX:"px-4",paddingY:"py-1",fontSize:"text-xl"}},c={xs:{height:"h-4",width:"w-4"},sm:{height:"h-4",width:"w-4"},md:{height:"h-4",width:"w-4"},lg:{height:"h-5",width:"w-5"},xl:{height:"h-6",width:"w-6"}},d=(0,n.makeClassName)("Badge"),m=l.default.forwardRef((e,m)=>{let{color:u,icon:h,size:g=r.Sizes.SM,tooltip:p,className:x,children:f}=e,b=(0,t.__rest)(e,["color","icon","size","tooltip","className","children"]),y=h||null,{tooltipProps:j,getReferenceProps:v}=(0,a.useTooltip)();return l.default.createElement("span",Object.assign({ref:(0,n.mergeRefs)([m,j.refs.setReference]),className:(0,i.tremorTwMerge)(d("root"),"w-max shrink-0 inline-flex justify-center items-center cursor-default rounded-tremor-small ring-1 ring-inset",u?(0,i.tremorTwMerge)((0,n.getColorClassNames)(u,s.colorPalette.background).bgColor,(0,n.getColorClassNames)(u,s.colorPalette.iconText).textColor,(0,n.getColorClassNames)(u,s.colorPalette.iconRing).ringColor,"bg-opacity-10 ring-opacity-20","dark:bg-opacity-5 dark:ring-opacity-60"):(0,i.tremorTwMerge)("bg-tremor-brand-faint text-tremor-brand-emphasis ring-tremor-brand/20","dark:bg-dark-tremor-brand-muted/50 dark:text-dark-tremor-brand dark:ring-dark-tremor-subtle/20"),o[g].paddingX,o[g].paddingY,o[g].fontSize,x)},v,b),l.default.createElement(a.default,Object.assign({text:p},j)),y?l.default.createElement(y,{className:(0,i.tremorTwMerge)(d("icon"),"shrink-0 -ml-1 mr-1.5",c[g].height,c[g].width)}):null,l.default.createElement("span",{className:(0,i.tremorTwMerge)(d("text"),"whitespace-nowrap")},f))});m.displayName="Badge",e.s(["Badge",0,m],389083)},68155,e=>{"use strict";var t=e.i(271645);let l=t.forwardRef(function(e,l){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:l},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"}))});e.s(["TrashIcon",0,l],68155)},360820,e=>{"use strict";var t=e.i(271645);let l=t.forwardRef(function(e,l){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:l},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"}))});e.s(["ChevronUpIcon",0,l],360820)},871943,e=>{"use strict";var t=e.i(271645);let l=t.forwardRef(function(e,l){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:l},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"}))});e.s(["ChevronDownIcon",0,l],871943)},94629,e=>{"use strict";var t=e.i(271645);let l=t.forwardRef(function(e,l){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:l},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4"}))});e.s(["SwitchVerticalIcon",0,l],94629)},21548,e=>{"use strict";var t=e.i(616303);e.s(["Empty",()=>t.default])},883552,e=>{"use strict";e.i(247167);var t=e.i(271645),l=e.i(562901),a=e.i(343794),r=e.i(914949),s=e.i(529681),i=e.i(242064),n=e.i(829672),o=e.i(285781),c=e.i(836938),d=e.i(920228),m=e.i(62405),u=e.i(408850),h=e.i(87414),g=e.i(310730);let p=(0,e.i(246422).genStyleHooks)("Popconfirm",e=>(e=>{let{componentCls:t,iconCls:l,antCls:a,zIndexPopup:r,colorText:s,colorWarning:i,marginXXS:n,marginXS:o,fontSize:c,fontWeightStrong:d,colorTextHeading:m}=e;return{[t]:{zIndex:r,[`&${a}-popover`]:{fontSize:c},[`${t}-message`]:{marginBottom:o,display:"flex",flexWrap:"nowrap",alignItems:"start",[`> ${t}-message-icon ${l}`]:{color:i,fontSize:c,lineHeight:1,marginInlineEnd:o},[`${t}-title`]:{fontWeight:d,color:m,"&:only-child":{fontWeight:"normal"}},[`${t}-description`]:{marginTop:n,color:s}},[`${t}-buttons`]:{textAlign:"end",whiteSpace:"nowrap",button:{marginInlineStart:o}}}}})(e),e=>{let{zIndexPopupBase:t}=e;return{zIndexPopup:t+60}},{resetStyle:!1});var x=function(e,t){var l={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(l[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,a=Object.getOwnPropertySymbols(e);rt.indexOf(a[r])&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(l[a[r]]=e[a[r]]);return l};let f=e=>{let{prefixCls:a,okButtonProps:r,cancelButtonProps:s,title:n,description:g,cancelText:p,okText:x,okType:f="primary",icon:b=t.createElement(l.default,null),showCancel:y=!0,close:j,onConfirm:v,onCancel:w,onPopupClick:k}=e,{getPrefixCls:_}=t.useContext(i.ConfigContext),[C]=(0,u.useLocale)("Popconfirm",h.default.Popconfirm),N=(0,c.getRenderPropValue)(n),S=(0,c.getRenderPropValue)(g);return t.createElement("div",{className:`${a}-inner-content`,onClick:k},t.createElement("div",{className:`${a}-message`},b&&t.createElement("span",{className:`${a}-message-icon`},b),t.createElement("div",{className:`${a}-message-text`},N&&t.createElement("div",{className:`${a}-title`},N),S&&t.createElement("div",{className:`${a}-description`},S))),t.createElement("div",{className:`${a}-buttons`},y&&t.createElement(d.default,Object.assign({onClick:w,size:"small"},s),p||(null==C?void 0:C.cancelText)),t.createElement(o.default,{buttonProps:Object.assign(Object.assign({size:"small"},(0,m.convertLegacyProps)(f)),r),actionFn:v,close:j,prefixCls:_("btn"),quitOnNullishReturnValue:!0,emitEvent:!0},x||(null==C?void 0:C.okText))))};var b=function(e,t){var l={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(l[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,a=Object.getOwnPropertySymbols(e);rt.indexOf(a[r])&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(l[a[r]]=e[a[r]]);return l};let y=t.forwardRef((e,o)=>{var c,d;let{prefixCls:m,placement:u="top",trigger:h="click",okType:g="primary",icon:x=t.createElement(l.default,null),children:y,overlayClassName:j,onOpenChange:v,onVisibleChange:w,overlayStyle:k,styles:_,classNames:C}=e,N=b(e,["prefixCls","placement","trigger","okType","icon","children","overlayClassName","onOpenChange","onVisibleChange","overlayStyle","styles","classNames"]),{getPrefixCls:S,className:T,style:I,classNames:E,styles:A}=(0,i.useComponentConfig)("popconfirm"),[M,B]=(0,r.default)(!1,{value:null!=(c=e.open)?c:e.visible,defaultValue:null!=(d=e.defaultOpen)?d:e.defaultVisible}),F=(e,t)=>{B(e,!0),null==w||w(e),null==v||v(e,t)},O=S("popconfirm",m),L=(0,a.default)(O,T,j,E.root,null==C?void 0:C.root),P=(0,a.default)(E.body,null==C?void 0:C.body),[R]=p(O);return R(t.createElement(n.default,Object.assign({},(0,s.default)(N,["title"]),{trigger:h,placement:u,onOpenChange:(t,l)=>{let{disabled:a=!1}=e;a||F(t,l)},open:M,ref:o,classNames:{root:L,body:P},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},A.root),I),k),null==_?void 0:_.root),body:Object.assign(Object.assign({},A.body),null==_?void 0:_.body)},content:t.createElement(f,Object.assign({okType:g,icon:x},e,{prefixCls:O,close:e=>{F(!1,e)},onConfirm:t=>{var l;return null==(l=e.onConfirm)?void 0:l.call(void 0,t)},onCancel:t=>{var l;F(!1,t),null==(l=e.onCancel)||l.call(void 0,t)}})),"data-popover-inject":!0}),y))});y._InternalPanelDoNotUseOrYouWillBeFired=e=>{let{prefixCls:l,placement:r,className:s,style:n}=e,o=x(e,["prefixCls","placement","className","style"]),{getPrefixCls:c}=t.useContext(i.ConfigContext),d=c("popconfirm",l),[m]=p(d);return m(t.createElement(g.default,{placement:r,className:(0,a.default)(d,s),style:n,content:t.createElement(f,Object.assign({prefixCls:d},o))}))},e.s(["Popconfirm",0,y],883552)},848725,e=>{"use strict";var t=e.i(271645);let l=t.forwardRef(function(e,l){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:l},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"}))});e.s(["EyeIcon",0,l],848725)},292335,122520,165615,e=>{"use strict";let t={NONE:"none",API_KEY:"api_key",BEARER_TOKEN:"bearer_token",TOKEN:"token",BASIC:"basic",OAUTH2:"oauth2",AWS_SIGV4:"aws_sigv4"},l={SSE:"sse",HTTP:"http",STDIO:"stdio",OPENAPI:"openapi"};e.s(["AUTH_TYPE",0,t,"OAUTH_FLOW",0,{INTERACTIVE:"interactive",M2M:"m2m"},"TRANSPORT",0,l,"handleAuth",0,e=>null==e?t.NONE:e,"handleTransport",0,(e,t)=>null==e?l.SSE:t&&e!==l.STDIO?l.OPENAPI:e],292335),e.s(["extractErrorMessage",0,function(e){if(e instanceof Error)return e.message;if(e&&"object"==typeof e){let t=e.detail;return"string"==typeof t?t:Array.isArray(t)?t.map(e=>e&&"object"==typeof e?"string"==typeof e.msg?e.msg:JSON.stringify(e):String(e)).join("; "):t&&"object"==typeof t&&"string"==typeof t.error?t.error:"string"==typeof e.message?e.message:JSON.stringify(e)}return String(e)}],122520);let a=e=>{let t=new Uint8Array(e),l="";return t.forEach(e=>l+=String.fromCharCode(e)),btoa(l).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")},r=async e=>{let t=new TextEncoder().encode(e);return a(await window.crypto.subtle.digest("SHA-256",t))};e.s(["generateCodeChallenge",0,r,"generateCodeVerifier",0,()=>{let e=new Uint8Array(32);return window.crypto.getRandomValues(e),a(e.buffer)}],165615)},264843,e=>{"use strict";e.i(247167);var t=e.i(931067),l=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"}}]},name:"message",theme:"outlined"};var r=e.i(9583),s=l.forwardRef(function(e,s){return l.createElement(r.default,(0,t.default)({},e,{ref:s,icon:a}))});e.s(["MessageOutlined",0,s],264843)},991124,e=>{"use strict";let t=(0,e.i(475254).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["default",0,t])},678784,678745,e=>{"use strict";let t=(0,e.i(475254).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",0,t],678745),e.s(["CheckIcon",0,t],678784)},118366,e=>{"use strict";var t=e.i(991124);e.s(["CopyIcon",()=>t.default])},54943,e=>{"use strict";let t=(0,e.i(475254).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["default",0,t])},995926,e=>{"use strict";var t=e.i(841947);e.s(["XIcon",()=>t.default])},546467,e=>{"use strict";let t=(0,e.i(475254).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["default",0,t])},988846,e=>{"use strict";var t=e.i(54943);e.s(["SearchIcon",()=>t.default])},54131,634831,438100,e=>{"use strict";var t=e.i(399219);e.s(["ChevronUpIcon",()=>t.default],54131);var l=e.i(546467);e.s(["ExternalLinkIcon",()=>l.default],634831);let a=(0,e.i(475254).default)("key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]]);e.s(["KeyIcon",0,a],438100)},302202,e=>{"use strict";let t=(0,e.i(475254).default)("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);e.s(["ServerIcon",0,t],302202)},328196,e=>{"use strict";var t=e.i(361653);e.s(["AlertCircleIcon",()=>t.default])},987432,e=>{"use strict";e.i(247167);var t=e.i(931067),l=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z"}}]},name:"save",theme:"outlined"};var r=e.i(9583),s=l.forwardRef(function(e,s){return l.createElement(r.default,(0,t.default)({},e,{ref:s,icon:a}))});e.s(["SaveOutlined",0,s],987432)},750113,e=>{"use strict";var t=e.i(684024);e.s(["QuestionCircleOutlined",()=>t.default])},724154,e=>{"use strict";e.i(247167);var t=e.i(931067),l=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372 0-89 31.3-170.8 83.5-234.8l523.3 523.3C682.8 852.7 601 884 512 884zm288.5-137.2L277.2 223.5C341.2 171.3 423 140 512 140c205.4 0 372 166.6 372 372 0 89-31.3 170.8-83.5 234.8z"}}]},name:"stop",theme:"outlined"};var r=e.i(9583),s=l.forwardRef(function(e,s){return l.createElement(r.default,(0,t.default)({},e,{ref:s,icon:a}))});e.s(["StopOutlined",0,s],724154)},91979,e=>{"use strict";e.i(247167);var t=e.i(931067),l=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z"}}]},name:"reload",theme:"outlined"};var r=e.i(9583),s=l.forwardRef(function(e,s){return l.createElement(r.default,(0,t.default)({},e,{ref:s,icon:a}))});e.s(["ReloadOutlined",0,s],91979)},625901,e=>{"use strict";var t=e.i(266027),l=e.i(621482),a=e.i(243652),r=e.i(764205),s=e.i(135214);let i=(0,a.createQueryKeys)("models"),n=(0,a.createQueryKeys)("modelHub"),o=(0,a.createQueryKeys)("allProxyModels");(0,a.createQueryKeys)("selectedTeamModels");let c=(0,a.createQueryKeys)("infiniteModels");e.s(["useAllProxyModels",0,()=>{let{accessToken:e,userId:l,userRole:a}=(0,s.default)();return(0,t.useQuery)({queryKey:o.list({}),queryFn:async()=>await (0,r.modelAvailableCall)(e,l,a,!0,null,!0,!1,"expand"),enabled:!!(e&&l&&a)})},"useInfiniteModelInfo",0,(e=50,t)=>{let{accessToken:a,userId:i,userRole:n}=(0,s.default)();return(0,l.useInfiniteQuery)({queryKey:c.list({filters:{...i&&{userId:i},...n&&{userRole:n},size:e,...t&&{search:t}}}),queryFn:async({pageParam:l})=>await (0,r.modelInfoCall)(a,i,n,l,e,t),initialPageParam:1,getNextPageParam:e=>{if(e.current_page{let{accessToken:e}=(0,s.default)();return(0,t.useQuery)({queryKey:n.list({}),queryFn:async()=>await (0,r.modelHubCall)(e),enabled:!!e})},"useModelsInfo",0,(e=1,l=50,a,n,o,c,d)=>{let{accessToken:m,userId:u,userRole:h}=(0,s.default)();return(0,t.useQuery)({queryKey:i.list({filters:{...u&&{userId:u},...h&&{userRole:h},page:e,size:l,...a&&{search:a},...n&&{modelId:n},...o&&{teamId:o},...c&&{sortBy:c},...d&&{sortOrder:d}}}),queryFn:async()=>await (0,r.modelInfoCall)(m,u,h,e,l,a,n,o,c,d),enabled:!!(m&&u&&h)})}])},969550,e=>{"use strict";var t=e.i(843476),l=e.i(271645);let a=l.forwardRef(function(e,t){return l.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),l.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"}))});var r=e.i(464571),s=e.i(311451),i=e.i(199133),n=e.i(374009);e.s(["default",0,({options:e,onApplyFilters:o,onResetFilters:c,initialValues:d={},buttonLabel:m="Filters"})=>{let[u,h]=(0,l.useState)(!1),[g,p]=(0,l.useState)(d),[x,f]=(0,l.useState)({}),[b,y]=(0,l.useState)({}),[j,v]=(0,l.useState)({}),[w,k]=(0,l.useState)({}),_=(0,l.useCallback)((0,n.default)(async(e,t)=>{if(t.isSearchable&&t.searchFn){y(e=>({...e,[t.name]:!0}));try{let l=await t.searchFn(e);f(e=>({...e,[t.name]:l}))}catch(e){console.error("Error searching:",e),f(e=>({...e,[t.name]:[]}))}finally{y(e=>({...e,[t.name]:!1}))}}},300),[]),C=(0,l.useCallback)(async e=>{if(e.isSearchable&&e.searchFn&&!w[e.name]){y(t=>({...t,[e.name]:!0})),k(t=>({...t,[e.name]:!0}));try{let t=await e.searchFn("");f(l=>({...l,[e.name]:t}))}catch(t){console.error("Error loading initial options:",t),f(t=>({...t,[e.name]:[]}))}finally{y(t=>({...t,[e.name]:!1}))}}},[w]);(0,l.useEffect)(()=>{u&&e.forEach(e=>{e.isSearchable&&!w[e.name]&&C(e)})},[u,e,C,w]);let N=(e,t)=>{let l={...g,[e]:t};p(l),o(l)};return(0,t.jsxs)("div",{className:"w-full",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-6",children:[(0,t.jsx)(r.Button,{icon:(0,t.jsx)(a,{className:"h-4 w-4"}),onClick:()=>h(!u),className:"flex items-center gap-2",children:m}),(0,t.jsx)(r.Button,{onClick:()=>{let t={};e.forEach(e=>{t[e.name]=""}),p(t),c()},children:"Reset Filters"})]}),u&&(0,t.jsx)("div",{className:"grid grid-cols-3 gap-x-6 gap-y-4 mb-6",children:["Team ID","Status","Organization ID","Key Alias","User ID","End User","Error Code","Error Message","Key Hash","Model","Public model / search tool"].map(l=>{let a,r=e.find(e=>e.label===l||e.name===l);return r?(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)("label",{className:"text-sm text-gray-600",children:r.label||r.name}),r.isSearchable?(0,t.jsx)(i.Select,{showSearch:!0,className:"w-full",placeholder:`Search ${r.label||r.name}...`,value:g[r.name]||void 0,onChange:e=>N(r.name,e),onOpenChange:e=>{e&&r.isSearchable&&!w[r.name]&&C(r)},onSearch:e=>{v(t=>({...t,[r.name]:e})),r.searchFn&&_(e,r)},filterOption:!1,loading:b[r.name],options:x[r.name]||[],allowClear:!0,notFoundContent:b[r.name]?"Loading...":"No results found"}):r.options?(0,t.jsx)(i.Select,{className:"w-full",placeholder:`Select ${r.label||r.name}...`,value:g[r.name]||void 0,onChange:e=>N(r.name,e),allowClear:!0,children:r.options.map(e=>(0,t.jsx)(i.Select.Option,{value:e.value,children:e.label},e.value))}):r.customComponent?(a=r.customComponent,(0,t.jsx)(a,{value:g[r.name]||void 0,onChange:e=>N(r.name,e??""),placeholder:`Select ${r.label||r.name}...`,allFilters:g})):(0,t.jsx)(s.Input,{className:"w-full",placeholder:`Enter ${r.label||r.name}...`,value:g[r.name]||"",onChange:e=>N(r.name,e.target.value),allowClear:!0})]},r.name):null})})]})}],969550)},633627,e=>{"use strict";var t=e.i(764205);let l=(e,t,l,a)=>{for(let r of e){let e=r?.key_alias;e&&"string"==typeof e&&t.add(e.trim());let s=r?.organization_id??r?.org_id;s&&"string"==typeof s&&l.add(s.trim());let i=r?.user_id;if(i&&"string"==typeof i){let e=r?.user?.user_email||i;a.set(i,e)}}},a=async(e,a)=>{if(!e||!a)return{keyAliases:[],organizationIds:[],userIds:[]};try{let r=new Set,s=new Set,i=new Map,n=await (0,t.keyListCall)(e,null,a,null,null,null,1,100,null,null,"user",null),o=n?.keys||[],c=n?.total_pages??1;l(o,r,s,i);let d=Math.min(c,10)-1;if(d>0){let n=Array.from({length:d},(l,r)=>(0,t.keyListCall)(e,null,a,null,null,null,r+2,100,null,null,"user",null));for(let e of(await Promise.allSettled(n)))"fulfilled"===e.status&&l(e.value?.keys||[],r,s,i)}return{keyAliases:Array.from(r).sort(),organizationIds:Array.from(s).sort(),userIds:Array.from(i.entries()).map(([e,t])=>({id:e,email:t}))}}catch(e){return console.error("Error fetching team filter options:",e),{keyAliases:[],organizationIds:[],userIds:[]}}},r=async(e,l)=>{if(!e)return[];try{let a=[],r=1,s=!0;for(;s;){let i=await (0,t.teamListCall)(e,l||null,null);a=[...a,...i],r{if(!e)return[];try{let l=[],a=1,r=!0;for(;r;){let s=await (0,t.organizationListCall)(e);l=[...l,...s],a{"use strict";var t=e.i(843476),l=e.i(464571),a=e.i(326373),r=e.i(94629),s=e.i(360820),i=e.i(871943),n=e.i(271645);let o=n.forwardRef(function(e,t){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),n.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"}))});e.s(["XIcon",0,o],836991),e.s(["TableHeaderSortDropdown",0,({sortState:e,onSortChange:n})=>{let c=[{key:"asc",label:"Ascending",icon:(0,t.jsx)(s.ChevronUpIcon,{className:"h-4 w-4"})},{key:"desc",label:"Descending",icon:(0,t.jsx)(i.ChevronDownIcon,{className:"h-4 w-4"})},{key:"reset",label:"Reset",icon:(0,t.jsx)(o,{className:"h-4 w-4"})}];return(0,t.jsx)(a.Dropdown,{menu:{items:c,onClick:({key:e})=>{"asc"===e?n("asc"):"desc"===e?n("desc"):"reset"===e&&n(!1)},selectable:!0,selectedKeys:e?[e]:[]},trigger:["click"],autoAdjustOverflow:!0,children:(0,t.jsx)(l.Button,{type:"text",onClick:e=>e.stopPropagation(),icon:"asc"===e?(0,t.jsx)(s.ChevronUpIcon,{className:"h-4 w-4"}):"desc"===e?(0,t.jsx)(i.ChevronDownIcon,{className:"h-4 w-4"}):(0,t.jsx)(r.SwitchVerticalIcon,{className:"h-4 w-4"}),className:e?"text-blue-500 hover:text-blue-600":"text-gray-400 hover:text-blue-500"})})}],446891)},704308,e=>{"use strict";var t=e.i(843476),l=e.i(271645),a=e.i(994388),r=e.i(212931),s=e.i(764205),i=e.i(808613),n=e.i(311451),o=e.i(199133),c=e.i(888259),d=e.i(209261);let{TextArea:m}=n.Input,{Option:u}=o.Select,h=["Development","Productivity","Learning","Security","Data & Analytics","Integration","Testing","Documentation"],g=({visible:e,onClose:g,accessToken:p,onSuccess:x})=>{let[f]=i.Form.useForm(),[b,y]=(0,l.useState)(!1),[j,v]=(0,l.useState)(null),w=async e=>{if(!p)return void c.default.error("No access token available");if(!j)return void c.default.error("Please enter a valid GitHub URL");if(!(0,d.validatePluginName)(e.name))return void c.default.error("Skill name must be kebab-case (lowercase letters, numbers, and hyphens only)");if(e.version&&!(0,d.isValidSemanticVersion)(e.version))return void c.default.error("Version must be in semantic versioning format (e.g., 1.0.0)");if(e.authorEmail&&!(0,d.isValidEmail)(e.authorEmail))return void c.default.error("Invalid email format");if(e.homepage&&!(0,d.isValidUrl)(e.homepage))return void c.default.error("Invalid homepage URL format");y(!0);try{let t={name:e.name.trim(),source:j.parsed};e.version&&(t.version=e.version.trim()),e.description&&(t.description=e.description.trim()),(e.authorName||e.authorEmail)&&(t.author={},e.authorName&&(t.author.name=e.authorName.trim()),e.authorEmail&&(t.author.email=e.authorEmail.trim())),e.homepage&&(t.homepage=e.homepage.trim()),e.category&&(t.category=e.category),e.keywords&&(t.keywords=(0,d.parseKeywords)(e.keywords)),e.domain&&(t.domain=e.domain.trim()),e.namespace&&(t.namespace=e.namespace.trim()),await (0,s.registerClaudeCodePlugin)(p,t),c.default.success("Skill registered successfully"),f.resetFields(),v(null),x(),g()}catch(e){console.error("Error registering skill:",e),c.default.error("Failed to register skill")}finally{y(!1)}},k=()=>{f.resetFields(),v(null),g()};return(0,t.jsx)(r.Modal,{title:"Add New Skill",open:e,onCancel:k,footer:null,width:700,className:"top-8",children:(0,t.jsxs)(i.Form,{form:f,layout:"vertical",onFinish:w,className:"mt-4",children:[(0,t.jsx)(i.Form.Item,{label:"GitHub URL",name:"skillUrl",rules:[{required:!0,message:"Please enter a GitHub URL"}],tooltip:"Paste a GitHub URL — repo, folder, or file link. E.g. github.com/org/repo or github.com/org/repo/tree/main/my-skill",children:(0,t.jsx)(n.Input,{placeholder:"https://github.com/org/repo/tree/main/my-skill",className:"rounded-lg",onChange:e=>{let t=function(e){let t=e.trim().replace(/^https?:\/\//,"").replace(/\/+$/,"");if(!t.startsWith("github.com/"))return null;let l=t.slice(11).split("/");if(l.length<2)return null;let a=l[0],r=l[1].replace(/\.git$/,"");if(2===l.length||2===l.length&&r)return{parsed:{source:"github",repo:`${a}/${r}`},label:`GitHub repo — ${a}/${r}`,suggestedName:r};if(l.length>=5&&("tree"===l[2]||"blob"===l[2])){let e=l.slice(4),t=e[e.length-1];if(t&&t.includes(".")&&e.pop(),0===e.length)return{parsed:{source:"github",repo:`${a}/${r}`},label:`GitHub repo — ${a}/${r}`,suggestedName:r};let s=e.join("/");return{parsed:{source:"git-subdir",url:`https://github.com/${a}/${r}`,path:s},label:`GitHub subdir — ${a}/${r} @ ${s}`,suggestedName:e[e.length-1]}}return null}(e.target.value);v(t),t&&(f.getFieldValue("name")||f.setFieldsValue({name:t.suggestedName}))}})}),j&&(0,t.jsxs)("div",{className:"mb-4 px-3 py-2 bg-blue-50 border border-blue-200 rounded-lg text-sm text-blue-700",children:["Detected: ",j.label]}),(0,t.jsx)(i.Form.Item,{label:"Skill Name",name:"name",rules:[{required:!0,message:"Please enter skill name"},{pattern:/^[a-z0-9-]+$/,message:"Name must be kebab-case (lowercase, numbers, hyphens only)"}],tooltip:"Unique identifier in kebab-case format (e.g., my-skill)",children:(0,t.jsx)(n.Input,{placeholder:"my-skill",className:"rounded-lg"})}),(0,t.jsxs)("div",{className:"flex gap-4",children:[(0,t.jsx)(i.Form.Item,{label:"Domain (Optional)",name:"domain",tooltip:"Top-level grouping in the Skill Hub (e.g., Productivity)",className:"flex-1",children:(0,t.jsx)(n.Input,{placeholder:"Productivity",className:"rounded-lg"})}),(0,t.jsx)(i.Form.Item,{label:"Namespace (Optional)",name:"namespace",tooltip:"Sub-grouping within domain (e.g., workflows)",className:"flex-1",children:(0,t.jsx)(n.Input,{placeholder:"workflows",className:"rounded-lg"})})]}),(0,t.jsx)(i.Form.Item,{label:"Description (Optional)",name:"description",tooltip:"Brief description of what the skill does",children:(0,t.jsx)(m,{rows:3,placeholder:"A skill that helps with...",maxLength:500,className:"rounded-lg"})}),(0,t.jsx)(i.Form.Item,{label:"Category (Optional)",name:"category",tooltip:"Select a category or enter a custom one",children:(0,t.jsx)(o.Select,{placeholder:"Select or type a category",allowClear:!0,showSearch:!0,optionFilterProp:"children",className:"rounded-lg",children:h.map(e=>(0,t.jsx)(u,{value:e,children:e},e))})}),(0,t.jsx)(i.Form.Item,{label:"Keywords (Optional)",name:"keywords",tooltip:"Comma-separated list of keywords for search",children:(0,t.jsx)(n.Input,{placeholder:"search, web, api",className:"rounded-lg"})}),(0,t.jsx)(i.Form.Item,{label:"Version (Optional)",name:"version",tooltip:"Semantic version (e.g., 1.0.0)",children:(0,t.jsx)(n.Input,{placeholder:"1.0.0",className:"rounded-lg"})}),(0,t.jsx)(i.Form.Item,{label:"Author Name (Optional)",name:"authorName",tooltip:"Name of the skill author or organization",children:(0,t.jsx)(n.Input,{placeholder:"Your Name or Organization",className:"rounded-lg"})}),(0,t.jsx)(i.Form.Item,{label:"Author Email (Optional)",name:"authorEmail",rules:[{type:"email",message:"Please enter a valid email"}],tooltip:"Contact email for the skill author",children:(0,t.jsx)(n.Input,{type:"email",placeholder:"author@example.com",className:"rounded-lg"})}),(0,t.jsx)(i.Form.Item,{className:"mb-0 mt-6",children:(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(a.Button,{variant:"secondary",onClick:k,disabled:b,children:"Cancel"}),(0,t.jsx)(a.Button,{type:"submit",loading:b,children:b?"Adding...":"Add Skill"})]})})]})})};var p=e.i(166406),x=e.i(871943),f=e.i(360820),b=e.i(94629),y=e.i(68155),j=e.i(152990),v=e.i(682830),w=e.i(389083),k=e.i(269200),_=e.i(942232),C=e.i(977572),N=e.i(427612),S=e.i(64848),T=e.i(496020),I=e.i(592968),E=e.i(727749);let A=({pluginsList:e,isLoading:r,onDeleteClick:s,accessToken:i,isAdmin:n,onPluginClick:o})=>{let[c,m]=(0,l.useState)([{id:"created_at",desc:!0}]),u=[{header:"Skill Name",accessorKey:"name",cell:({row:e})=>{let l=e.original,r=l.name||"";return(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(I.Tooltip,{title:r,children:(0,t.jsx)(a.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left overflow-hidden truncate min-w-[150px] justify-start",onClick:()=>o(l.id),children:r})}),(0,t.jsx)(I.Tooltip,{title:"Copy Plugin ID",children:(0,t.jsx)(p.CopyOutlined,{onClick:e=>{var t;e.stopPropagation(),t=l.id,navigator.clipboard.writeText(t),E.default.success("Copied to clipboard!")},className:"cursor-pointer text-gray-500 hover:text-blue-500 text-xs"})})]})}},{header:"Version",accessorKey:"version",cell:({row:e})=>{let l=e.original.version||"N/A";return(0,t.jsx)("span",{className:"text-xs text-gray-600",children:l})}},{header:"Description",accessorKey:"description",cell:({row:e})=>{let l=e.original.description||"No description";return(0,t.jsx)(I.Tooltip,{title:l,children:(0,t.jsx)("span",{className:"text-xs text-gray-600 block max-w-[300px] truncate",children:l})})}},{header:"Category",accessorKey:"category",cell:({row:e})=>{let l=e.original.category;if(!l)return(0,t.jsx)(w.Badge,{color:"gray",className:"text-xs font-normal",size:"xs",children:"Uncategorized"});let a=(0,d.getCategoryBadgeColor)(l);return(0,t.jsx)(w.Badge,{color:a,className:"text-xs font-normal",size:"xs",children:l})}},{header:"Public",accessorKey:"enabled",cell:({row:e})=>{let l=e.original;return(0,t.jsx)(w.Badge,{color:l.enabled?"green":"gray",className:"text-xs font-normal",size:"xs",children:l.enabled?"Yes":"No"})}},{header:"Created At",accessorKey:"created_at",cell:({row:e})=>{var l;let a=e.original;return(0,t.jsx)(I.Tooltip,{title:a.created_at,children:(0,t.jsx)("span",{className:"text-xs",children:(l=a.created_at)?new Date(l).toLocaleString():"-"})})}},...n?[{header:"Actions",id:"actions",enableSorting:!1,cell:({row:e})=>{let l=e.original;return(0,t.jsx)("div",{className:"flex items-center gap-1",children:(0,t.jsx)(I.Tooltip,{title:"Delete skill",children:(0,t.jsx)(a.Button,{size:"xs",variant:"light",color:"red",onClick:e=>{e.stopPropagation(),s(l.name,l.name)},icon:y.TrashIcon,className:"text-red-500 hover:text-red-700 hover:bg-red-50"})})})}}]:[]],h=(0,j.useReactTable)({data:e,columns:u,state:{sorting:c},onSortingChange:m,getCoreRowModel:(0,v.getCoreRowModel)(),getSortedRowModel:(0,v.getSortedRowModel)(),enableSorting:!0});return(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(k.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",children:[(0,t.jsx)(N.TableHead,{children:h.getHeaderGroups().map(e=>(0,t.jsx)(T.TableRow,{children:e.headers.map(e=>(0,t.jsx)(S.TableHeaderCell,{className:`py-1 h-8 ${"actions"===e.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)]":""}`,onClick:e.column.getCanSort()?e.column.getToggleSortingHandler():void 0,children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,j.flexRender)(e.column.columnDef.header,e.getContext())}),e.column.getCanSort()&&(0,t.jsx)("div",{className:"w-4",children:e.column.getIsSorted()?({asc:(0,t.jsx)(f.ChevronUpIcon,{className:"h-4 w-4 text-blue-500"}),desc:(0,t.jsx)(x.ChevronDownIcon,{className:"h-4 w-4 text-blue-500"})})[e.column.getIsSorted()]:(0,t.jsx)(b.SwitchVerticalIcon,{className:"h-4 w-4 text-gray-400"})})]})},e.id))},e.id))}),(0,t.jsx)(_.TableBody,{children:r?(0,t.jsx)(T.TableRow,{children:(0,t.jsx)(C.TableCell,{colSpan:u.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"Loading..."})})})}):e&&e.length>0?h.getRowModel().rows.map(e=>(0,t.jsx)(T.TableRow,{className:"h-8 cursor-pointer hover:bg-gray-50",onClick:()=>o(e.original.id),children:e.getVisibleCells().map(e=>(0,t.jsx)(C.TableCell,{className:`py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap ${"actions"===e.column.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)]":""}`,children:(0,j.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(T.TableRow,{children:(0,t.jsx)(C.TableCell,{colSpan:u.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No skills found. Add one to get started."})})})})})]})})})};var M=e.i(652272),B=e.i(708347);e.s(["default",0,({accessToken:e,userRole:i})=>{let[n,o]=(0,l.useState)([]),[c,d]=(0,l.useState)(!1),[m,u]=(0,l.useState)(!1),[h,p]=(0,l.useState)(!1),[x,f]=(0,l.useState)(null),[b,y]=(0,l.useState)(null),j=!!i&&(0,B.isAdminRole)(i),v=async()=>{if(e){u(!0);try{let t=await (0,s.getClaudeCodePluginsList)(e,!1);o(t.plugins)}catch(e){console.error("Error fetching skills:",e)}finally{u(!1)}}};(0,l.useEffect)(()=>{v()},[e]);let w=async()=>{if(x&&e){p(!0);try{await (0,s.deleteClaudeCodePlugin)(e,x.name),E.default.success(`Skill "${x.displayName}" deleted successfully`),v()}catch(e){console.error("Error deleting skill:",e),E.default.error("Failed to delete skill")}finally{p(!1),f(null)}}};return(0,t.jsxs)("div",{className:"w-full mx-auto flex-auto overflow-y-auto m-8 p-2",children:[b?(0,t.jsx)(M.default,{skill:b,onBack:()=>y(null),isAdmin:j,accessToken:e,onPublishClick:v}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2 mb-4",children:[(0,t.jsx)("h1",{className:"text-2xl font-bold",children:"Skills"}),(0,t.jsxs)("p",{className:"text-sm text-gray-600",children:["Register Claude Code skills. Published skills appear in the Skill Hub for all users and are served via"," ",(0,t.jsx)("code",{className:"bg-gray-100 px-1 rounded",children:"/claude-code/marketplace.json"}),"."]}),(0,t.jsx)("div",{className:"mt-2 flex gap-2",children:(0,t.jsx)(a.Button,{onClick:()=>d(!0),disabled:!e||!j,children:"+ Add Skill"})})]}),(0,t.jsx)(A,{pluginsList:n,isLoading:m,onDeleteClick:(e,t)=>{f({name:e,displayName:t})},accessToken:e,isAdmin:j,onPluginClick:e=>{let t=n.find(t=>t.id===e);t&&y(t)}})]}),(0,t.jsx)(g,{visible:c,onClose:()=>d(!1),accessToken:e,onSuccess:v}),x&&(0,t.jsxs)(r.Modal,{title:"Delete Skill",open:null!==x,onOk:w,onCancel:()=>f(null),confirmLoading:h,okText:"Delete",okButtonProps:{danger:!0},children:[(0,t.jsxs)("p",{children:["Are you sure you want to delete skill:"," ",(0,t.jsx)("strong",{children:x.displayName}),"?"]}),(0,t.jsx)("p",{children:"This action cannot be undone."})]})]})}],704308)},571303,e=>{"use strict";var t=e.i(843476),l=e.i(271645),a=e.i(115504);e.s(["UiLoadingSpinner",0,function({className:e="",...r}){var s,i;let n=(0,l.useId)();return s=()=>{let e=document.getAnimations().filter(e=>e instanceof CSSAnimation&&"spin"===e.animationName),t=e.find(e=>e.effect.target?.getAttribute("data-spinner-id")===n),l=e.find(e=>e.effect instanceof KeyframeEffect&&e.effect.target?.getAttribute("data-spinner-id")!==n);t&&l&&(t.currentTime=l.currentTime)},i=[n],(0,l.useLayoutEffect)(s,i),(0,t.jsxs)("svg",{"data-spinner-id":n,className:(0,a.cx)("pointer-events-none size-12 animate-spin text-current",e),fill:"none",viewBox:"0 0 24 24",...r,children:[(0,t.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,t.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]})}],571303)},936578,e=>{"use strict";var t=e.i(843476),l=e.i(115504),a=e.i(571303);e.s(["default",0,function(){return(0,t.jsxs)("div",{className:(0,l.cx)("h-screen","flex items-center justify-center gap-4"),children:[(0,t.jsx)("div",{className:"text-lg font-medium py-2 pr-4 border-r border-r-gray-200",children:"🚅 LiteLLM"}),(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,t.jsx)(a.UiLoadingSpinner,{className:"size-4"}),(0,t.jsx)("span",{className:"text-gray-600 text-sm",children:"Loading..."})]})]})}])},902739,e=>{"use strict";var t=e.i(843476),l=e.i(111672),a=e.i(764205),r=e.i(135214),s=e.i(271645);e.s(["default",0,({setPage:e,defaultSelectedKey:i,sidebarCollapsed:n})=>{let{accessToken:o}=(0,r.default)(),[c,d]=(0,s.useState)(null),[m,u]=(0,s.useState)(!1),[h,g]=(0,s.useState)(!1),[p,x]=(0,s.useState)(!1),[f,b]=(0,s.useState)(!1),[y,j]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{(async()=>{if(!o)return console.log("[SidebarProvider] No access token, skipping UI settings fetch");try{console.log("[SidebarProvider] Fetching UI settings from /get/ui_settings");let e=await (0,a.getUISettings)(o);console.log("[SidebarProvider] UI settings response:",e),e?.values?.enabled_ui_pages_internal_users!==void 0?(console.log("[SidebarProvider] Setting enabled pages:",e.values.enabled_ui_pages_internal_users),d(e.values.enabled_ui_pages_internal_users)):console.log("[SidebarProvider] No enabled_ui_pages_internal_users in response (all pages visible by default)"),e?.values?.enable_projects_ui!==void 0&&u(!!e.values.enable_projects_ui),e?.values?.disable_agents_for_internal_users!==void 0&&g(!!e.values.disable_agents_for_internal_users),e?.values?.allow_agents_for_team_admins!==void 0&&x(!!e.values.allow_agents_for_team_admins),e?.values?.disable_vector_stores_for_internal_users!==void 0&&b(!!e.values.disable_vector_stores_for_internal_users),e?.values?.allow_vector_stores_for_team_admins!==void 0&&j(!!e.values.allow_vector_stores_for_team_admins)}catch(e){console.error("[SidebarProvider] Failed to fetch UI settings:",e)}})()},[o]),(0,t.jsx)(l.default,{setPage:e,defaultSelectedKey:i,collapsed:n,enabledPagesInternalUsers:c,enableProjectsUI:m,disableAgentsForInternalUsers:h,allowAgentsForTeamAdmins:p,disableVectorStoresForInternalUsers:f,allowVectorStoresForTeamAdmins:y})}])},208075,e=>{"use strict";var t=e.i(843476),l=e.i(271645),a=e.i(304967),r=e.i(629569),s=e.i(599724),i=e.i(779241),n=e.i(994388),o=e.i(275144),c=e.i(764205),d=e.i(727749);e.s(["default",0,({userID:e,userRole:m,accessToken:u})=>{let{logoUrl:h,setLogoUrl:g,faviconUrl:p,setFaviconUrl:x}=(0,o.useTheme)(),[f,b]=(0,l.useState)(""),[y,j]=(0,l.useState)(""),[v,w]=(0,l.useState)(!1);(0,l.useEffect)(()=>{u&&k()},[u]);let k=async()=>{try{let e=(0,c.getProxyBaseUrl)(),t=e?`${e}/get/ui_theme_settings`:"/get/ui_theme_settings",l=await fetch(t,{method:"GET",headers:{[(0,c.getGlobalLitellmHeaderName)()]:`Bearer ${u}`,"Content-Type":"application/json"}});if(l.ok){let e=await l.json();b(e.values?.logo_url||""),j(e.values?.favicon_url||""),g(e.values?.logo_url||null),x(e.values?.favicon_url||null)}}catch(e){console.error("Error fetching theme settings:",e)}},_=async()=>{w(!0);try{let e=(0,c.getProxyBaseUrl)(),t=e?`${e}/update/ui_theme_settings`:"/update/ui_theme_settings";if((await fetch(t,{method:"PATCH",headers:{[(0,c.getGlobalLitellmHeaderName)()]:`Bearer ${u}`,"Content-Type":"application/json"},body:JSON.stringify({logo_url:f||null,favicon_url:y||null})})).ok)d.default.success("Theme settings updated successfully!"),g(f||null),x(y||null);else throw Error("Failed to update settings")}catch(e){console.error("Error updating theme settings:",e),d.default.fromBackend("Failed to update theme settings")}finally{w(!1)}},C=async()=>{b(""),j(""),g(null),x(null),w(!0);try{let e=(0,c.getProxyBaseUrl)(),t=e?`${e}/update/ui_theme_settings`:"/update/ui_theme_settings";if((await fetch(t,{method:"PATCH",headers:{[(0,c.getGlobalLitellmHeaderName)()]:`Bearer ${u}`,"Content-Type":"application/json"},body:JSON.stringify({logo_url:null,favicon_url:null})})).ok)d.default.success("Theme settings reset to default!");else throw Error("Failed to reset")}catch(e){console.error("Error resetting theme settings:",e),d.default.fromBackend("Failed to reset theme settings")}finally{w(!1)}};return u?(0,t.jsxs)("div",{className:"w-full mx-auto max-w-4xl px-6 py-8",children:[(0,t.jsxs)("div",{className:"mb-8",children:[(0,t.jsx)(r.Title,{className:"text-2xl font-bold mb-2",children:"UI Theme Customization"}),(0,t.jsx)(s.Text,{className:"text-gray-600",children:"Customize your LiteLLM admin dashboard with a custom logo and favicon."})]}),(0,t.jsx)(a.Card,{className:"shadow-sm p-6",children:(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(s.Text,{className:"text-sm font-medium text-gray-700 mb-2 block",children:"Custom Logo URL"}),(0,t.jsx)(i.TextInput,{placeholder:"https://example.com/logo.png",value:f,onValueChange:e=>{b(e),g(e||null)},className:"w-full"}),(0,t.jsx)(s.Text,{className:"text-xs text-gray-500 mt-1",children:"Enter a URL for your custom logo or leave empty for default"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(s.Text,{className:"text-sm font-medium text-gray-700 mb-2 block",children:"Custom Favicon URL"}),(0,t.jsx)(i.TextInput,{placeholder:"https://example.com/favicon.ico",value:y,onValueChange:e=>{j(e),x(e||null)},className:"w-full"}),(0,t.jsx)(s.Text,{className:"text-xs text-gray-500 mt-1",children:"Enter a URL for your custom favicon (.ico, .png, or .svg) or leave empty for default"})]}),(0,t.jsxs)("div",{className:"flex gap-3 pt-4",children:[(0,t.jsx)(n.Button,{onClick:_,loading:v,disabled:v,color:"indigo",children:"Save Changes"}),(0,t.jsx)(n.Button,{onClick:C,loading:v,disabled:v,variant:"secondary",color:"gray",children:"Reset to Default"})]})]})})]}):null}])},662316,e=>{"use strict";var t=e.i(843476),l=e.i(271645),a=e.i(464571),r=e.i(166406),s=e.i(629569),i=e.i(764205),n=e.i(727749);e.s(["default",0,({accessToken:e})=>{let[o,c]=(0,l.useState)(`{ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,269200,e=>{"use strict";var t=e.i(290571),l=e.i(271645),a=e.i(444755);let r=(0,e.i(673706).makeClassName)("Table"),s=l.default.forwardRef((e,s)=>{let{children:i,className:n}=e,o=(0,t.__rest)(e,["children","className"]);return l.default.createElement("div",{className:(0,a.tremorTwMerge)(r("root"),"overflow-auto",n)},l.default.createElement("table",Object.assign({ref:s,className:(0,a.tremorTwMerge)(r("table"),"w-full text-tremor-default","text-tremor-content","dark:text-dark-tremor-content")},o),i))});s.displayName="Table",e.s(["Table",0,s],269200)},427612,e=>{"use strict";var t=e.i(290571),l=e.i(271645),a=e.i(444755);let r=(0,e.i(673706).makeClassName)("TableHead"),s=l.default.forwardRef((e,s)=>{let{children:i,className:n}=e,o=(0,t.__rest)(e,["children","className"]);return l.default.createElement(l.default.Fragment,null,l.default.createElement("thead",Object.assign({ref:s,className:(0,a.tremorTwMerge)(r("root"),"text-left","text-tremor-content","dark:text-dark-tremor-content",n)},o),i))});s.displayName="TableHead",e.s(["TableHead",0,s],427612)},64848,e=>{"use strict";var t=e.i(290571),l=e.i(271645),a=e.i(444755);let r=(0,e.i(673706).makeClassName)("TableHeaderCell"),s=l.default.forwardRef((e,s)=>{let{children:i,className:n}=e,o=(0,t.__rest)(e,["children","className"]);return l.default.createElement(l.default.Fragment,null,l.default.createElement("th",Object.assign({ref:s,className:(0,a.tremorTwMerge)(r("root"),"whitespace-nowrap text-left font-semibold top-0 px-4 py-3.5","text-tremor-content-strong","dark:text-dark-tremor-content-strong",n)},o),i))});s.displayName="TableHeaderCell",e.s(["TableHeaderCell",0,s],64848)},942232,e=>{"use strict";var t=e.i(290571),l=e.i(271645),a=e.i(444755);let r=(0,e.i(673706).makeClassName)("TableBody"),s=l.default.forwardRef((e,s)=>{let{children:i,className:n}=e,o=(0,t.__rest)(e,["children","className"]);return l.default.createElement(l.default.Fragment,null,l.default.createElement("tbody",Object.assign({ref:s,className:(0,a.tremorTwMerge)(r("root"),"align-top divide-y","divide-tremor-border","dark:divide-dark-tremor-border",n)},o),i))});s.displayName="TableBody",e.s(["TableBody",0,s],942232)},496020,e=>{"use strict";var t=e.i(290571),l=e.i(271645),a=e.i(444755);let r=(0,e.i(673706).makeClassName)("TableRow"),s=l.default.forwardRef((e,s)=>{let{children:i,className:n}=e,o=(0,t.__rest)(e,["children","className"]);return l.default.createElement(l.default.Fragment,null,l.default.createElement("tr",Object.assign({ref:s,className:(0,a.tremorTwMerge)(r("row"),n)},o),i))});s.displayName="TableRow",e.s(["TableRow",0,s],496020)},977572,e=>{"use strict";var t=e.i(290571),l=e.i(271645),a=e.i(444755);let r=(0,e.i(673706).makeClassName)("TableCell"),s=l.default.forwardRef((e,s)=>{let{children:i,className:n}=e,o=(0,t.__rest)(e,["children","className"]);return l.default.createElement(l.default.Fragment,null,l.default.createElement("td",Object.assign({ref:s,className:(0,a.tremorTwMerge)(r("root"),"align-middle whitespace-nowrap text-left p-4",n)},o),i))});s.displayName="TableCell",e.s(["TableCell",0,s],977572)},389083,e=>{"use strict";var t=e.i(290571),l=e.i(271645),a=e.i(829087),r=e.i(480731),s=e.i(95779),i=e.i(444755),n=e.i(673706);let o={xs:{paddingX:"px-2",paddingY:"py-0.5",fontSize:"text-xs"},sm:{paddingX:"px-2.5",paddingY:"py-0.5",fontSize:"text-sm"},md:{paddingX:"px-3",paddingY:"py-0.5",fontSize:"text-md"},lg:{paddingX:"px-3.5",paddingY:"py-0.5",fontSize:"text-lg"},xl:{paddingX:"px-4",paddingY:"py-1",fontSize:"text-xl"}},c={xs:{height:"h-4",width:"w-4"},sm:{height:"h-4",width:"w-4"},md:{height:"h-4",width:"w-4"},lg:{height:"h-5",width:"w-5"},xl:{height:"h-6",width:"w-6"}},d=(0,n.makeClassName)("Badge"),m=l.default.forwardRef((e,m)=>{let{color:u,icon:h,size:g=r.Sizes.SM,tooltip:p,className:x,children:f}=e,b=(0,t.__rest)(e,["color","icon","size","tooltip","className","children"]),y=h||null,{tooltipProps:j,getReferenceProps:v}=(0,a.useTooltip)();return l.default.createElement("span",Object.assign({ref:(0,n.mergeRefs)([m,j.refs.setReference]),className:(0,i.tremorTwMerge)(d("root"),"w-max shrink-0 inline-flex justify-center items-center cursor-default rounded-tremor-small ring-1 ring-inset",u?(0,i.tremorTwMerge)((0,n.getColorClassNames)(u,s.colorPalette.background).bgColor,(0,n.getColorClassNames)(u,s.colorPalette.iconText).textColor,(0,n.getColorClassNames)(u,s.colorPalette.iconRing).ringColor,"bg-opacity-10 ring-opacity-20","dark:bg-opacity-5 dark:ring-opacity-60"):(0,i.tremorTwMerge)("bg-tremor-brand-faint text-tremor-brand-emphasis ring-tremor-brand/20","dark:bg-dark-tremor-brand-muted/50 dark:text-dark-tremor-brand dark:ring-dark-tremor-subtle/20"),o[g].paddingX,o[g].paddingY,o[g].fontSize,x)},v,b),l.default.createElement(a.default,Object.assign({text:p},j)),y?l.default.createElement(y,{className:(0,i.tremorTwMerge)(d("icon"),"shrink-0 -ml-1 mr-1.5",c[g].height,c[g].width)}):null,l.default.createElement("span",{className:(0,i.tremorTwMerge)(d("text"),"whitespace-nowrap")},f))});m.displayName="Badge",e.s(["Badge",0,m],389083)},68155,e=>{"use strict";var t=e.i(271645);let l=t.forwardRef(function(e,l){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:l},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"}))});e.s(["TrashIcon",0,l],68155)},360820,e=>{"use strict";var t=e.i(271645);let l=t.forwardRef(function(e,l){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:l},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"}))});e.s(["ChevronUpIcon",0,l],360820)},871943,e=>{"use strict";var t=e.i(271645);let l=t.forwardRef(function(e,l){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:l},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"}))});e.s(["ChevronDownIcon",0,l],871943)},94629,e=>{"use strict";var t=e.i(271645);let l=t.forwardRef(function(e,l){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:l},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4"}))});e.s(["SwitchVerticalIcon",0,l],94629)},21548,e=>{"use strict";var t=e.i(616303);e.s(["Empty",()=>t.default])},883552,e=>{"use strict";e.i(247167);var t=e.i(271645),l=e.i(562901),a=e.i(343794),r=e.i(914949),s=e.i(529681),i=e.i(242064),n=e.i(829672),o=e.i(285781),c=e.i(836938),d=e.i(920228),m=e.i(62405),u=e.i(408850),h=e.i(87414),g=e.i(310730);let p=(0,e.i(246422).genStyleHooks)("Popconfirm",e=>(e=>{let{componentCls:t,iconCls:l,antCls:a,zIndexPopup:r,colorText:s,colorWarning:i,marginXXS:n,marginXS:o,fontSize:c,fontWeightStrong:d,colorTextHeading:m}=e;return{[t]:{zIndex:r,[`&${a}-popover`]:{fontSize:c},[`${t}-message`]:{marginBottom:o,display:"flex",flexWrap:"nowrap",alignItems:"start",[`> ${t}-message-icon ${l}`]:{color:i,fontSize:c,lineHeight:1,marginInlineEnd:o},[`${t}-title`]:{fontWeight:d,color:m,"&:only-child":{fontWeight:"normal"}},[`${t}-description`]:{marginTop:n,color:s}},[`${t}-buttons`]:{textAlign:"end",whiteSpace:"nowrap",button:{marginInlineStart:o}}}}})(e),e=>{let{zIndexPopupBase:t}=e;return{zIndexPopup:t+60}},{resetStyle:!1});var x=function(e,t){var l={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(l[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,a=Object.getOwnPropertySymbols(e);rt.indexOf(a[r])&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(l[a[r]]=e[a[r]]);return l};let f=e=>{let{prefixCls:a,okButtonProps:r,cancelButtonProps:s,title:n,description:g,cancelText:p,okText:x,okType:f="primary",icon:b=t.createElement(l.default,null),showCancel:y=!0,close:j,onConfirm:v,onCancel:w,onPopupClick:k}=e,{getPrefixCls:_}=t.useContext(i.ConfigContext),[C]=(0,u.useLocale)("Popconfirm",h.default.Popconfirm),N=(0,c.getRenderPropValue)(n),S=(0,c.getRenderPropValue)(g);return t.createElement("div",{className:`${a}-inner-content`,onClick:k},t.createElement("div",{className:`${a}-message`},b&&t.createElement("span",{className:`${a}-message-icon`},b),t.createElement("div",{className:`${a}-message-text`},N&&t.createElement("div",{className:`${a}-title`},N),S&&t.createElement("div",{className:`${a}-description`},S))),t.createElement("div",{className:`${a}-buttons`},y&&t.createElement(d.default,Object.assign({onClick:w,size:"small"},s),p||(null==C?void 0:C.cancelText)),t.createElement(o.default,{buttonProps:Object.assign(Object.assign({size:"small"},(0,m.convertLegacyProps)(f)),r),actionFn:v,close:j,prefixCls:_("btn"),quitOnNullishReturnValue:!0,emitEvent:!0},x||(null==C?void 0:C.okText))))};var b=function(e,t){var l={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(l[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,a=Object.getOwnPropertySymbols(e);rt.indexOf(a[r])&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(l[a[r]]=e[a[r]]);return l};let y=t.forwardRef((e,o)=>{var c,d;let{prefixCls:m,placement:u="top",trigger:h="click",okType:g="primary",icon:x=t.createElement(l.default,null),children:y,overlayClassName:j,onOpenChange:v,onVisibleChange:w,overlayStyle:k,styles:_,classNames:C}=e,N=b(e,["prefixCls","placement","trigger","okType","icon","children","overlayClassName","onOpenChange","onVisibleChange","overlayStyle","styles","classNames"]),{getPrefixCls:S,className:T,style:I,classNames:E,styles:A}=(0,i.useComponentConfig)("popconfirm"),[M,B]=(0,r.default)(!1,{value:null!=(c=e.open)?c:e.visible,defaultValue:null!=(d=e.defaultOpen)?d:e.defaultVisible}),F=(e,t)=>{B(e,!0),null==w||w(e),null==v||v(e,t)},O=S("popconfirm",m),L=(0,a.default)(O,T,j,E.root,null==C?void 0:C.root),P=(0,a.default)(E.body,null==C?void 0:C.body),[R]=p(O);return R(t.createElement(n.default,Object.assign({},(0,s.default)(N,["title"]),{trigger:h,placement:u,onOpenChange:(t,l)=>{let{disabled:a=!1}=e;a||F(t,l)},open:M,ref:o,classNames:{root:L,body:P},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},A.root),I),k),null==_?void 0:_.root),body:Object.assign(Object.assign({},A.body),null==_?void 0:_.body)},content:t.createElement(f,Object.assign({okType:g,icon:x},e,{prefixCls:O,close:e=>{F(!1,e)},onConfirm:t=>{var l;return null==(l=e.onConfirm)?void 0:l.call(void 0,t)},onCancel:t=>{var l;F(!1,t),null==(l=e.onCancel)||l.call(void 0,t)}})),"data-popover-inject":!0}),y))});y._InternalPanelDoNotUseOrYouWillBeFired=e=>{let{prefixCls:l,placement:r,className:s,style:n}=e,o=x(e,["prefixCls","placement","className","style"]),{getPrefixCls:c}=t.useContext(i.ConfigContext),d=c("popconfirm",l),[m]=p(d);return m(t.createElement(g.default,{placement:r,className:(0,a.default)(d,s),style:n,content:t.createElement(f,Object.assign({prefixCls:d},o))}))},e.s(["Popconfirm",0,y],883552)},848725,e=>{"use strict";var t=e.i(271645);let l=t.forwardRef(function(e,l){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:l},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"}))});e.s(["EyeIcon",0,l],848725)},724154,e=>{"use strict";e.i(247167);var t=e.i(931067),l=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372 0-89 31.3-170.8 83.5-234.8l523.3 523.3C682.8 852.7 601 884 512 884zm288.5-137.2L277.2 223.5C341.2 171.3 423 140 512 140c205.4 0 372 166.6 372 372 0 89-31.3 170.8-83.5 234.8z"}}]},name:"stop",theme:"outlined"};var r=e.i(9583),s=l.forwardRef(function(e,s){return l.createElement(r.default,(0,t.default)({},e,{ref:s,icon:a}))});e.s(["StopOutlined",0,s],724154)},264843,e=>{"use strict";e.i(247167);var t=e.i(931067),l=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"}}]},name:"message",theme:"outlined"};var r=e.i(9583),s=l.forwardRef(function(e,s){return l.createElement(r.default,(0,t.default)({},e,{ref:s,icon:a}))});e.s(["MessageOutlined",0,s],264843)},292335,122520,165615,779129,e=>{"use strict";let t={NONE:"none",API_KEY:"api_key",BEARER_TOKEN:"bearer_token",TOKEN:"token",BASIC:"basic",OAUTH2:"oauth2",AWS_SIGV4:"aws_sigv4"},l={SSE:"sse",HTTP:"http",STDIO:"stdio",OPENAPI:"openapi"};e.s(["AUTH_TYPE",0,t,"OAUTH_FLOW",0,{INTERACTIVE:"interactive",M2M:"m2m"},"TRANSPORT",0,l,"handleAuth",0,e=>null==e?t.NONE:e,"handleTransport",0,(e,t)=>null==e?l.SSE:t&&e!==l.STDIO?l.OPENAPI:e],292335),e.s(["extractErrorMessage",0,function(e){if(e instanceof Error)return e.message;if(e&&"object"==typeof e){let t=e.detail;return"string"==typeof t?t:Array.isArray(t)?t.map(e=>e&&"object"==typeof e?"string"==typeof e.msg?e.msg:JSON.stringify(e):String(e)).join("; "):t&&"object"==typeof t&&"string"==typeof t.error?t.error:"string"==typeof e.message?e.message:JSON.stringify(e)}return String(e)}],122520);let a=e=>{let t=new Uint8Array(e),l="";return t.forEach(e=>l+=String.fromCharCode(e)),btoa(l).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")},r=async e=>{let t=new TextEncoder().encode(e);return a(await window.crypto.subtle.digest("SHA-256",t))};e.s(["generateCodeChallenge",0,r,"generateCodeVerifier",0,()=>{let e=new Uint8Array(32);return window.crypto.getRandomValues(e),a(e.buffer)}],165615),e.i(764205),e.s(["buildCallbackUrl",0,()=>{{let e=window.location.pathname||"",t=e.indexOf("/ui"),l=t>=0?e.slice(0,t+3).replace(/\/+$/,""):"";return`${window.location.origin}${l}/mcp/oauth/callback`}},"clearStorage",0,(...e)=>{e.forEach(e=>{try{window.sessionStorage.removeItem(e)}catch(e){}})}],779129)},546467,e=>{"use strict";let t=(0,e.i(475254).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["default",0,t])},991124,e=>{"use strict";let t=(0,e.i(475254).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["default",0,t])},678784,678745,e=>{"use strict";let t=(0,e.i(475254).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",0,t],678745),e.s(["CheckIcon",0,t],678784)},118366,e=>{"use strict";var t=e.i(991124);e.s(["CopyIcon",()=>t.default])},54943,e=>{"use strict";let t=(0,e.i(475254).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["default",0,t])},995926,e=>{"use strict";var t=e.i(841947);e.s(["XIcon",()=>t.default])},987432,e=>{"use strict";e.i(247167);var t=e.i(931067),l=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z"}}]},name:"save",theme:"outlined"};var r=e.i(9583),s=l.forwardRef(function(e,s){return l.createElement(r.default,(0,t.default)({},e,{ref:s,icon:a}))});e.s(["SaveOutlined",0,s],987432)},750113,e=>{"use strict";var t=e.i(684024);e.s(["QuestionCircleOutlined",()=>t.default])},988846,e=>{"use strict";var t=e.i(54943);e.s(["SearchIcon",()=>t.default])},54131,634831,438100,e=>{"use strict";var t=e.i(399219);e.s(["ChevronUpIcon",()=>t.default],54131);var l=e.i(546467);e.s(["ExternalLinkIcon",()=>l.default],634831);let a=(0,e.i(475254).default)("key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]]);e.s(["KeyIcon",0,a],438100)},302202,e=>{"use strict";let t=(0,e.i(475254).default)("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);e.s(["ServerIcon",0,t],302202)},328196,e=>{"use strict";var t=e.i(361653);e.s(["AlertCircleIcon",()=>t.default])},91979,e=>{"use strict";e.i(247167);var t=e.i(931067),l=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z"}}]},name:"reload",theme:"outlined"};var r=e.i(9583),s=l.forwardRef(function(e,s){return l.createElement(r.default,(0,t.default)({},e,{ref:s,icon:a}))});e.s(["ReloadOutlined",0,s],91979)},625901,e=>{"use strict";var t=e.i(266027),l=e.i(621482),a=e.i(243652),r=e.i(764205),s=e.i(135214);let i=(0,a.createQueryKeys)("models"),n=(0,a.createQueryKeys)("modelHub"),o=(0,a.createQueryKeys)("allProxyModels");(0,a.createQueryKeys)("selectedTeamModels");let c=(0,a.createQueryKeys)("infiniteModels");e.s(["useAllProxyModels",0,()=>{let{accessToken:e,userId:l,userRole:a}=(0,s.default)();return(0,t.useQuery)({queryKey:o.list({}),queryFn:async()=>await (0,r.modelAvailableCall)(e,l,a,!0,null,!0,!1,"expand"),enabled:!!(e&&l&&a)})},"useInfiniteModelInfo",0,(e=50,t)=>{let{accessToken:a,userId:i,userRole:n}=(0,s.default)();return(0,l.useInfiniteQuery)({queryKey:c.list({filters:{...i&&{userId:i},...n&&{userRole:n},size:e,...t&&{search:t}}}),queryFn:async({pageParam:l})=>await (0,r.modelInfoCall)(a,i,n,l,e,t),initialPageParam:1,getNextPageParam:e=>{if(e.current_page{let{accessToken:e}=(0,s.default)();return(0,t.useQuery)({queryKey:n.list({}),queryFn:async()=>await (0,r.modelHubCall)(e),enabled:!!e})},"useModelsInfo",0,(e=1,l=50,a,n,o,c,d)=>{let{accessToken:m,userId:u,userRole:h}=(0,s.default)();return(0,t.useQuery)({queryKey:i.list({filters:{...u&&{userId:u},...h&&{userRole:h},page:e,size:l,...a&&{search:a},...n&&{modelId:n},...o&&{teamId:o},...c&&{sortBy:c},...d&&{sortOrder:d}}}),queryFn:async()=>await (0,r.modelInfoCall)(m,u,h,e,l,a,n,o,c,d),enabled:!!(m&&u&&h)})}])},969550,e=>{"use strict";var t=e.i(843476),l=e.i(271645);let a=l.forwardRef(function(e,t){return l.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),l.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"}))});var r=e.i(464571),s=e.i(311451),i=e.i(199133),n=e.i(374009);e.s(["default",0,({options:e,onApplyFilters:o,onResetFilters:c,initialValues:d={},buttonLabel:m="Filters"})=>{let[u,h]=(0,l.useState)(!1),[g,p]=(0,l.useState)(d),[x,f]=(0,l.useState)({}),[b,y]=(0,l.useState)({}),[j,v]=(0,l.useState)({}),[w,k]=(0,l.useState)({}),_=(0,l.useCallback)((0,n.default)(async(e,t)=>{if(t.isSearchable&&t.searchFn){y(e=>({...e,[t.name]:!0}));try{let l=await t.searchFn(e);f(e=>({...e,[t.name]:l}))}catch(e){console.error("Error searching:",e),f(e=>({...e,[t.name]:[]}))}finally{y(e=>({...e,[t.name]:!1}))}}},300),[]),C=(0,l.useCallback)(async e=>{if(e.isSearchable&&e.searchFn&&!w[e.name]){y(t=>({...t,[e.name]:!0})),k(t=>({...t,[e.name]:!0}));try{let t=await e.searchFn("");f(l=>({...l,[e.name]:t}))}catch(t){console.error("Error loading initial options:",t),f(t=>({...t,[e.name]:[]}))}finally{y(t=>({...t,[e.name]:!1}))}}},[w]);(0,l.useEffect)(()=>{u&&e.forEach(e=>{e.isSearchable&&!w[e.name]&&C(e)})},[u,e,C,w]);let N=(e,t)=>{let l={...g,[e]:t};p(l),o(l)};return(0,t.jsxs)("div",{className:"w-full",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-6",children:[(0,t.jsx)(r.Button,{icon:(0,t.jsx)(a,{className:"h-4 w-4"}),onClick:()=>h(!u),className:"flex items-center gap-2",children:m}),(0,t.jsx)(r.Button,{onClick:()=>{let t={};e.forEach(e=>{t[e.name]=""}),p(t),c()},children:"Reset Filters"})]}),u&&(0,t.jsx)("div",{className:"grid grid-cols-3 gap-x-6 gap-y-4 mb-6",children:["Team ID","Status","Organization ID","Key Alias","User ID","End User","Error Code","Error Message","Key Hash","Model","Public model / search tool"].map(l=>{let a,r=e.find(e=>e.label===l||e.name===l);return r?(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)("label",{className:"text-sm text-gray-600",children:r.label||r.name}),r.isSearchable?(0,t.jsx)(i.Select,{showSearch:!0,className:"w-full",placeholder:`Search ${r.label||r.name}...`,value:g[r.name]||void 0,onChange:e=>N(r.name,e),onOpenChange:e=>{e&&r.isSearchable&&!w[r.name]&&C(r)},onSearch:e=>{v(t=>({...t,[r.name]:e})),r.searchFn&&_(e,r)},filterOption:!1,loading:b[r.name],options:x[r.name]||[],allowClear:!0,notFoundContent:b[r.name]?"Loading...":"No results found"}):r.options?(0,t.jsx)(i.Select,{className:"w-full",placeholder:`Select ${r.label||r.name}...`,value:g[r.name]||void 0,onChange:e=>N(r.name,e),allowClear:!0,children:r.options.map(e=>(0,t.jsx)(i.Select.Option,{value:e.value,children:e.label},e.value))}):r.customComponent?(a=r.customComponent,(0,t.jsx)(a,{value:g[r.name]||void 0,onChange:e=>N(r.name,e??""),placeholder:`Select ${r.label||r.name}...`,allFilters:g})):(0,t.jsx)(s.Input,{className:"w-full",placeholder:`Enter ${r.label||r.name}...`,value:g[r.name]||"",onChange:e=>N(r.name,e.target.value),allowClear:!0})]},r.name):null})})]})}],969550)},633627,e=>{"use strict";var t=e.i(764205);let l=(e,t,l,a)=>{for(let r of e){let e=r?.key_alias;e&&"string"==typeof e&&t.add(e.trim());let s=r?.organization_id??r?.org_id;s&&"string"==typeof s&&l.add(s.trim());let i=r?.user_id;if(i&&"string"==typeof i){let e=r?.user?.user_email||i;a.set(i,e)}}},a=async(e,a)=>{if(!e||!a)return{keyAliases:[],organizationIds:[],userIds:[]};try{let r=new Set,s=new Set,i=new Map,n=await (0,t.keyListCall)(e,null,a,null,null,null,1,100,null,null,"user",null),o=n?.keys||[],c=n?.total_pages??1;l(o,r,s,i);let d=Math.min(c,10)-1;if(d>0){let n=Array.from({length:d},(l,r)=>(0,t.keyListCall)(e,null,a,null,null,null,r+2,100,null,null,"user",null));for(let e of(await Promise.allSettled(n)))"fulfilled"===e.status&&l(e.value?.keys||[],r,s,i)}return{keyAliases:Array.from(r).sort(),organizationIds:Array.from(s).sort(),userIds:Array.from(i.entries()).map(([e,t])=>({id:e,email:t}))}}catch(e){return console.error("Error fetching team filter options:",e),{keyAliases:[],organizationIds:[],userIds:[]}}},r=async(e,l)=>{if(!e)return[];try{let a=[],r=1,s=!0;for(;s;){let i=await (0,t.teamListCall)(e,l||null,null);a=[...a,...i],r{if(!e)return[];try{let l=[],a=1,r=!0;for(;r;){let s=await (0,t.organizationListCall)(e);l=[...l,...s],a{"use strict";var t=e.i(843476),l=e.i(464571),a=e.i(326373),r=e.i(94629),s=e.i(360820),i=e.i(871943),n=e.i(271645);let o=n.forwardRef(function(e,t){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),n.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"}))});e.s(["XIcon",0,o],836991),e.s(["TableHeaderSortDropdown",0,({sortState:e,onSortChange:n})=>{let c=[{key:"asc",label:"Ascending",icon:(0,t.jsx)(s.ChevronUpIcon,{className:"h-4 w-4"})},{key:"desc",label:"Descending",icon:(0,t.jsx)(i.ChevronDownIcon,{className:"h-4 w-4"})},{key:"reset",label:"Reset",icon:(0,t.jsx)(o,{className:"h-4 w-4"})}];return(0,t.jsx)(a.Dropdown,{menu:{items:c,onClick:({key:e})=>{"asc"===e?n("asc"):"desc"===e?n("desc"):"reset"===e&&n(!1)},selectable:!0,selectedKeys:e?[e]:[]},trigger:["click"],autoAdjustOverflow:!0,children:(0,t.jsx)(l.Button,{type:"text",onClick:e=>e.stopPropagation(),icon:"asc"===e?(0,t.jsx)(s.ChevronUpIcon,{className:"h-4 w-4"}):"desc"===e?(0,t.jsx)(i.ChevronDownIcon,{className:"h-4 w-4"}):(0,t.jsx)(r.SwitchVerticalIcon,{className:"h-4 w-4"}),className:e?"text-blue-500 hover:text-blue-600":"text-gray-400 hover:text-blue-500"})})}],446891)},704308,e=>{"use strict";var t=e.i(843476),l=e.i(271645),a=e.i(994388),r=e.i(212931),s=e.i(764205),i=e.i(808613),n=e.i(311451),o=e.i(199133),c=e.i(888259),d=e.i(209261);let{TextArea:m}=n.Input,{Option:u}=o.Select,h=["Development","Productivity","Learning","Security","Data & Analytics","Integration","Testing","Documentation"],g=({visible:e,onClose:g,accessToken:p,onSuccess:x})=>{let[f]=i.Form.useForm(),[b,y]=(0,l.useState)(!1),[j,v]=(0,l.useState)(null),w=async e=>{if(!p)return void c.default.error("No access token available");if(!j)return void c.default.error("Please enter a valid GitHub URL");if(!(0,d.validatePluginName)(e.name))return void c.default.error("Skill name must be kebab-case (lowercase letters, numbers, and hyphens only)");if(e.version&&!(0,d.isValidSemanticVersion)(e.version))return void c.default.error("Version must be in semantic versioning format (e.g., 1.0.0)");if(e.authorEmail&&!(0,d.isValidEmail)(e.authorEmail))return void c.default.error("Invalid email format");if(e.homepage&&!(0,d.isValidUrl)(e.homepage))return void c.default.error("Invalid homepage URL format");y(!0);try{let t={name:e.name.trim(),source:j.parsed};e.version&&(t.version=e.version.trim()),e.description&&(t.description=e.description.trim()),(e.authorName||e.authorEmail)&&(t.author={},e.authorName&&(t.author.name=e.authorName.trim()),e.authorEmail&&(t.author.email=e.authorEmail.trim())),e.homepage&&(t.homepage=e.homepage.trim()),e.category&&(t.category=e.category),e.keywords&&(t.keywords=(0,d.parseKeywords)(e.keywords)),e.domain&&(t.domain=e.domain.trim()),e.namespace&&(t.namespace=e.namespace.trim()),await (0,s.registerClaudeCodePlugin)(p,t),c.default.success("Skill registered successfully"),f.resetFields(),v(null),x(),g()}catch(e){console.error("Error registering skill:",e),c.default.error("Failed to register skill")}finally{y(!1)}},k=()=>{f.resetFields(),v(null),g()};return(0,t.jsx)(r.Modal,{title:"Add New Skill",open:e,onCancel:k,footer:null,width:700,className:"top-8",children:(0,t.jsxs)(i.Form,{form:f,layout:"vertical",onFinish:w,className:"mt-4",children:[(0,t.jsx)(i.Form.Item,{label:"GitHub URL",name:"skillUrl",rules:[{required:!0,message:"Please enter a GitHub URL"}],tooltip:"Paste a GitHub URL — repo, folder, or file link. E.g. github.com/org/repo or github.com/org/repo/tree/main/my-skill",children:(0,t.jsx)(n.Input,{placeholder:"https://github.com/org/repo/tree/main/my-skill",className:"rounded-lg",onChange:e=>{let t=function(e){let t=e.trim().replace(/^https?:\/\//,"").replace(/\/+$/,"");if(!t.startsWith("github.com/"))return null;let l=t.slice(11).split("/");if(l.length<2)return null;let a=l[0],r=l[1].replace(/\.git$/,"");if(2===l.length||2===l.length&&r)return{parsed:{source:"github",repo:`${a}/${r}`},label:`GitHub repo — ${a}/${r}`,suggestedName:r};if(l.length>=5&&("tree"===l[2]||"blob"===l[2])){let e=l.slice(4),t=e[e.length-1];if(t&&t.includes(".")&&e.pop(),0===e.length)return{parsed:{source:"github",repo:`${a}/${r}`},label:`GitHub repo — ${a}/${r}`,suggestedName:r};let s=e.join("/");return{parsed:{source:"git-subdir",url:`https://github.com/${a}/${r}`,path:s},label:`GitHub subdir — ${a}/${r} @ ${s}`,suggestedName:e[e.length-1]}}return null}(e.target.value);v(t),t&&(f.getFieldValue("name")||f.setFieldsValue({name:t.suggestedName}))}})}),j&&(0,t.jsxs)("div",{className:"mb-4 px-3 py-2 bg-blue-50 border border-blue-200 rounded-lg text-sm text-blue-700",children:["Detected: ",j.label]}),(0,t.jsx)(i.Form.Item,{label:"Skill Name",name:"name",rules:[{required:!0,message:"Please enter skill name"},{pattern:/^[a-z0-9-]+$/,message:"Name must be kebab-case (lowercase, numbers, hyphens only)"}],tooltip:"Unique identifier in kebab-case format (e.g., my-skill)",children:(0,t.jsx)(n.Input,{placeholder:"my-skill",className:"rounded-lg"})}),(0,t.jsxs)("div",{className:"flex gap-4",children:[(0,t.jsx)(i.Form.Item,{label:"Domain (Optional)",name:"domain",tooltip:"Top-level grouping in the Skill Hub (e.g., Productivity)",className:"flex-1",children:(0,t.jsx)(n.Input,{placeholder:"Productivity",className:"rounded-lg"})}),(0,t.jsx)(i.Form.Item,{label:"Namespace (Optional)",name:"namespace",tooltip:"Sub-grouping within domain (e.g., workflows)",className:"flex-1",children:(0,t.jsx)(n.Input,{placeholder:"workflows",className:"rounded-lg"})})]}),(0,t.jsx)(i.Form.Item,{label:"Description (Optional)",name:"description",tooltip:"Brief description of what the skill does",children:(0,t.jsx)(m,{rows:3,placeholder:"A skill that helps with...",maxLength:500,className:"rounded-lg"})}),(0,t.jsx)(i.Form.Item,{label:"Category (Optional)",name:"category",tooltip:"Select a category or enter a custom one",children:(0,t.jsx)(o.Select,{placeholder:"Select or type a category",allowClear:!0,showSearch:!0,optionFilterProp:"children",className:"rounded-lg",children:h.map(e=>(0,t.jsx)(u,{value:e,children:e},e))})}),(0,t.jsx)(i.Form.Item,{label:"Keywords (Optional)",name:"keywords",tooltip:"Comma-separated list of keywords for search",children:(0,t.jsx)(n.Input,{placeholder:"search, web, api",className:"rounded-lg"})}),(0,t.jsx)(i.Form.Item,{label:"Version (Optional)",name:"version",tooltip:"Semantic version (e.g., 1.0.0)",children:(0,t.jsx)(n.Input,{placeholder:"1.0.0",className:"rounded-lg"})}),(0,t.jsx)(i.Form.Item,{label:"Author Name (Optional)",name:"authorName",tooltip:"Name of the skill author or organization",children:(0,t.jsx)(n.Input,{placeholder:"Your Name or Organization",className:"rounded-lg"})}),(0,t.jsx)(i.Form.Item,{label:"Author Email (Optional)",name:"authorEmail",rules:[{type:"email",message:"Please enter a valid email"}],tooltip:"Contact email for the skill author",children:(0,t.jsx)(n.Input,{type:"email",placeholder:"author@example.com",className:"rounded-lg"})}),(0,t.jsx)(i.Form.Item,{className:"mb-0 mt-6",children:(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(a.Button,{variant:"secondary",onClick:k,disabled:b,children:"Cancel"}),(0,t.jsx)(a.Button,{type:"submit",loading:b,children:b?"Adding...":"Add Skill"})]})})]})})};var p=e.i(166406),x=e.i(871943),f=e.i(360820),b=e.i(94629),y=e.i(68155),j=e.i(152990),v=e.i(682830),w=e.i(389083),k=e.i(269200),_=e.i(942232),C=e.i(977572),N=e.i(427612),S=e.i(64848),T=e.i(496020),I=e.i(592968),E=e.i(727749);let A=({pluginsList:e,isLoading:r,onDeleteClick:s,accessToken:i,isAdmin:n,onPluginClick:o})=>{let[c,m]=(0,l.useState)([{id:"created_at",desc:!0}]),u=[{header:"Skill Name",accessorKey:"name",cell:({row:e})=>{let l=e.original,r=l.name||"";return(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(I.Tooltip,{title:r,children:(0,t.jsx)(a.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left overflow-hidden truncate min-w-[150px] justify-start",onClick:()=>o(l.id),children:r})}),(0,t.jsx)(I.Tooltip,{title:"Copy Plugin ID",children:(0,t.jsx)(p.CopyOutlined,{onClick:e=>{var t;e.stopPropagation(),t=l.id,navigator.clipboard.writeText(t),E.default.success("Copied to clipboard!")},className:"cursor-pointer text-gray-500 hover:text-blue-500 text-xs"})})]})}},{header:"Version",accessorKey:"version",cell:({row:e})=>{let l=e.original.version||"N/A";return(0,t.jsx)("span",{className:"text-xs text-gray-600",children:l})}},{header:"Description",accessorKey:"description",cell:({row:e})=>{let l=e.original.description||"No description";return(0,t.jsx)(I.Tooltip,{title:l,children:(0,t.jsx)("span",{className:"text-xs text-gray-600 block max-w-[300px] truncate",children:l})})}},{header:"Category",accessorKey:"category",cell:({row:e})=>{let l=e.original.category;if(!l)return(0,t.jsx)(w.Badge,{color:"gray",className:"text-xs font-normal",size:"xs",children:"Uncategorized"});let a=(0,d.getCategoryBadgeColor)(l);return(0,t.jsx)(w.Badge,{color:a,className:"text-xs font-normal",size:"xs",children:l})}},{header:"Public",accessorKey:"enabled",cell:({row:e})=>{let l=e.original;return(0,t.jsx)(w.Badge,{color:l.enabled?"green":"gray",className:"text-xs font-normal",size:"xs",children:l.enabled?"Yes":"No"})}},{header:"Created At",accessorKey:"created_at",cell:({row:e})=>{var l;let a=e.original;return(0,t.jsx)(I.Tooltip,{title:a.created_at,children:(0,t.jsx)("span",{className:"text-xs",children:(l=a.created_at)?new Date(l).toLocaleString():"-"})})}},...n?[{header:"Actions",id:"actions",enableSorting:!1,cell:({row:e})=>{let l=e.original;return(0,t.jsx)("div",{className:"flex items-center gap-1",children:(0,t.jsx)(I.Tooltip,{title:"Delete skill",children:(0,t.jsx)(a.Button,{size:"xs",variant:"light",color:"red",onClick:e=>{e.stopPropagation(),s(l.name,l.name)},icon:y.TrashIcon,className:"text-red-500 hover:text-red-700 hover:bg-red-50"})})})}}]:[]],h=(0,j.useReactTable)({data:e,columns:u,state:{sorting:c},onSortingChange:m,getCoreRowModel:(0,v.getCoreRowModel)(),getSortedRowModel:(0,v.getSortedRowModel)(),enableSorting:!0});return(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(k.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",children:[(0,t.jsx)(N.TableHead,{children:h.getHeaderGroups().map(e=>(0,t.jsx)(T.TableRow,{children:e.headers.map(e=>(0,t.jsx)(S.TableHeaderCell,{className:`py-1 h-8 ${"actions"===e.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)]":""}`,onClick:e.column.getCanSort()?e.column.getToggleSortingHandler():void 0,children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,j.flexRender)(e.column.columnDef.header,e.getContext())}),e.column.getCanSort()&&(0,t.jsx)("div",{className:"w-4",children:e.column.getIsSorted()?({asc:(0,t.jsx)(f.ChevronUpIcon,{className:"h-4 w-4 text-blue-500"}),desc:(0,t.jsx)(x.ChevronDownIcon,{className:"h-4 w-4 text-blue-500"})})[e.column.getIsSorted()]:(0,t.jsx)(b.SwitchVerticalIcon,{className:"h-4 w-4 text-gray-400"})})]})},e.id))},e.id))}),(0,t.jsx)(_.TableBody,{children:r?(0,t.jsx)(T.TableRow,{children:(0,t.jsx)(C.TableCell,{colSpan:u.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"Loading..."})})})}):e&&e.length>0?h.getRowModel().rows.map(e=>(0,t.jsx)(T.TableRow,{className:"h-8 cursor-pointer hover:bg-gray-50",onClick:()=>o(e.original.id),children:e.getVisibleCells().map(e=>(0,t.jsx)(C.TableCell,{className:`py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap ${"actions"===e.column.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)]":""}`,children:(0,j.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(T.TableRow,{children:(0,t.jsx)(C.TableCell,{colSpan:u.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No skills found. Add one to get started."})})})})})]})})})};var M=e.i(652272),B=e.i(708347);e.s(["default",0,({accessToken:e,userRole:i})=>{let[n,o]=(0,l.useState)([]),[c,d]=(0,l.useState)(!1),[m,u]=(0,l.useState)(!1),[h,p]=(0,l.useState)(!1),[x,f]=(0,l.useState)(null),[b,y]=(0,l.useState)(null),j=!!i&&(0,B.isAdminRole)(i),v=async()=>{if(e){u(!0);try{let t=await (0,s.getClaudeCodePluginsList)(e,!1);o(t.plugins)}catch(e){console.error("Error fetching skills:",e)}finally{u(!1)}}};(0,l.useEffect)(()=>{v()},[e]);let w=async()=>{if(x&&e){p(!0);try{await (0,s.deleteClaudeCodePlugin)(e,x.name),E.default.success(`Skill "${x.displayName}" deleted successfully`),v()}catch(e){console.error("Error deleting skill:",e),E.default.error("Failed to delete skill")}finally{p(!1),f(null)}}};return(0,t.jsxs)("div",{className:"w-full mx-auto flex-auto overflow-y-auto m-8 p-2",children:[b?(0,t.jsx)(M.default,{skill:b,onBack:()=>y(null),isAdmin:j,accessToken:e,onPublishClick:v}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2 mb-4",children:[(0,t.jsx)("h1",{className:"text-2xl font-bold",children:"Skills"}),(0,t.jsxs)("p",{className:"text-sm text-gray-600",children:["Register Claude Code skills. Published skills appear in the Skill Hub for all users and are served via"," ",(0,t.jsx)("code",{className:"bg-gray-100 px-1 rounded",children:"/claude-code/marketplace.json"}),"."]}),(0,t.jsx)("div",{className:"mt-2 flex gap-2",children:(0,t.jsx)(a.Button,{onClick:()=>d(!0),disabled:!e||!j,children:"+ Add Skill"})})]}),(0,t.jsx)(A,{pluginsList:n,isLoading:m,onDeleteClick:(e,t)=>{f({name:e,displayName:t})},accessToken:e,isAdmin:j,onPluginClick:e=>{let t=n.find(t=>t.id===e);t&&y(t)}})]}),(0,t.jsx)(g,{visible:c,onClose:()=>d(!1),accessToken:e,onSuccess:v}),x&&(0,t.jsxs)(r.Modal,{title:"Delete Skill",open:null!==x,onOk:w,onCancel:()=>f(null),confirmLoading:h,okText:"Delete",okButtonProps:{danger:!0},children:[(0,t.jsxs)("p",{children:["Are you sure you want to delete skill:"," ",(0,t.jsx)("strong",{children:x.displayName}),"?"]}),(0,t.jsx)("p",{children:"This action cannot be undone."})]})]})}],704308)},571303,e=>{"use strict";var t=e.i(843476),l=e.i(271645),a=e.i(115504);e.s(["UiLoadingSpinner",0,function({className:e="",...r}){var s,i;let n=(0,l.useId)();return s=()=>{let e=document.getAnimations().filter(e=>e instanceof CSSAnimation&&"spin"===e.animationName),t=e.find(e=>e.effect.target?.getAttribute("data-spinner-id")===n),l=e.find(e=>e.effect instanceof KeyframeEffect&&e.effect.target?.getAttribute("data-spinner-id")!==n);t&&l&&(t.currentTime=l.currentTime)},i=[n],(0,l.useLayoutEffect)(s,i),(0,t.jsxs)("svg",{"data-spinner-id":n,className:(0,a.cx)("pointer-events-none size-12 animate-spin text-current",e),fill:"none",viewBox:"0 0 24 24",...r,children:[(0,t.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,t.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]})}],571303)},936578,e=>{"use strict";var t=e.i(843476),l=e.i(115504),a=e.i(571303);e.s(["default",0,function(){return(0,t.jsxs)("div",{className:(0,l.cx)("h-screen","flex items-center justify-center gap-4"),children:[(0,t.jsx)("div",{className:"text-lg font-medium py-2 pr-4 border-r border-r-gray-200",children:"🚅 LiteLLM"}),(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,t.jsx)(a.UiLoadingSpinner,{className:"size-4"}),(0,t.jsx)("span",{className:"text-gray-600 text-sm",children:"Loading..."})]})]})}])},902739,e=>{"use strict";var t=e.i(843476),l=e.i(111672),a=e.i(764205),r=e.i(135214),s=e.i(271645);e.s(["default",0,({setPage:e,defaultSelectedKey:i,sidebarCollapsed:n})=>{let{accessToken:o}=(0,r.default)(),[c,d]=(0,s.useState)(null),[m,u]=(0,s.useState)(!1),[h,g]=(0,s.useState)(!1),[p,x]=(0,s.useState)(!1),[f,b]=(0,s.useState)(!1),[y,j]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{(async()=>{if(!o)return console.log("[SidebarProvider] No access token, skipping UI settings fetch");try{console.log("[SidebarProvider] Fetching UI settings from /get/ui_settings");let e=await (0,a.getUISettings)(o);console.log("[SidebarProvider] UI settings response:",e),e?.values?.enabled_ui_pages_internal_users!==void 0?(console.log("[SidebarProvider] Setting enabled pages:",e.values.enabled_ui_pages_internal_users),d(e.values.enabled_ui_pages_internal_users)):console.log("[SidebarProvider] No enabled_ui_pages_internal_users in response (all pages visible by default)"),e?.values?.enable_projects_ui!==void 0&&u(!!e.values.enable_projects_ui),e?.values?.disable_agents_for_internal_users!==void 0&&g(!!e.values.disable_agents_for_internal_users),e?.values?.allow_agents_for_team_admins!==void 0&&x(!!e.values.allow_agents_for_team_admins),e?.values?.disable_vector_stores_for_internal_users!==void 0&&b(!!e.values.disable_vector_stores_for_internal_users),e?.values?.allow_vector_stores_for_team_admins!==void 0&&j(!!e.values.allow_vector_stores_for_team_admins)}catch(e){console.error("[SidebarProvider] Failed to fetch UI settings:",e)}})()},[o]),(0,t.jsx)(l.default,{setPage:e,defaultSelectedKey:i,collapsed:n,enabledPagesInternalUsers:c,enableProjectsUI:m,disableAgentsForInternalUsers:h,allowAgentsForTeamAdmins:p,disableVectorStoresForInternalUsers:f,allowVectorStoresForTeamAdmins:y})}])},208075,e=>{"use strict";var t=e.i(843476),l=e.i(271645),a=e.i(304967),r=e.i(629569),s=e.i(599724),i=e.i(779241),n=e.i(994388),o=e.i(275144),c=e.i(764205),d=e.i(727749);e.s(["default",0,({userID:e,userRole:m,accessToken:u})=>{let{logoUrl:h,setLogoUrl:g,faviconUrl:p,setFaviconUrl:x}=(0,o.useTheme)(),[f,b]=(0,l.useState)(""),[y,j]=(0,l.useState)(""),[v,w]=(0,l.useState)(!1);(0,l.useEffect)(()=>{u&&k()},[u]);let k=async()=>{try{let e=(0,c.getProxyBaseUrl)(),t=e?`${e}/get/ui_theme_settings`:"/get/ui_theme_settings",l=await fetch(t,{method:"GET",headers:{[(0,c.getGlobalLitellmHeaderName)()]:`Bearer ${u}`,"Content-Type":"application/json"}});if(l.ok){let e=await l.json();b(e.values?.logo_url||""),j(e.values?.favicon_url||""),g(e.values?.logo_url||null),x(e.values?.favicon_url||null)}}catch(e){console.error("Error fetching theme settings:",e)}},_=async()=>{w(!0);try{let e=(0,c.getProxyBaseUrl)(),t=e?`${e}/update/ui_theme_settings`:"/update/ui_theme_settings";if((await fetch(t,{method:"PATCH",headers:{[(0,c.getGlobalLitellmHeaderName)()]:`Bearer ${u}`,"Content-Type":"application/json"},body:JSON.stringify({logo_url:f||null,favicon_url:y||null})})).ok)d.default.success("Theme settings updated successfully!"),g(f||null),x(y||null);else throw Error("Failed to update settings")}catch(e){console.error("Error updating theme settings:",e),d.default.fromBackend("Failed to update theme settings")}finally{w(!1)}},C=async()=>{b(""),j(""),g(null),x(null),w(!0);try{let e=(0,c.getProxyBaseUrl)(),t=e?`${e}/update/ui_theme_settings`:"/update/ui_theme_settings";if((await fetch(t,{method:"PATCH",headers:{[(0,c.getGlobalLitellmHeaderName)()]:`Bearer ${u}`,"Content-Type":"application/json"},body:JSON.stringify({logo_url:null,favicon_url:null})})).ok)d.default.success("Theme settings reset to default!");else throw Error("Failed to reset")}catch(e){console.error("Error resetting theme settings:",e),d.default.fromBackend("Failed to reset theme settings")}finally{w(!1)}};return u?(0,t.jsxs)("div",{className:"w-full mx-auto max-w-4xl px-6 py-8",children:[(0,t.jsxs)("div",{className:"mb-8",children:[(0,t.jsx)(r.Title,{className:"text-2xl font-bold mb-2",children:"UI Theme Customization"}),(0,t.jsx)(s.Text,{className:"text-gray-600",children:"Customize your LiteLLM admin dashboard with a custom logo and favicon."})]}),(0,t.jsx)(a.Card,{className:"shadow-sm p-6",children:(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(s.Text,{className:"text-sm font-medium text-gray-700 mb-2 block",children:"Custom Logo URL"}),(0,t.jsx)(i.TextInput,{placeholder:"https://example.com/logo.png",value:f,onValueChange:e=>{b(e),g(e||null)},className:"w-full"}),(0,t.jsx)(s.Text,{className:"text-xs text-gray-500 mt-1",children:"Enter a URL for your custom logo or leave empty for default"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(s.Text,{className:"text-sm font-medium text-gray-700 mb-2 block",children:"Custom Favicon URL"}),(0,t.jsx)(i.TextInput,{placeholder:"https://example.com/favicon.ico",value:y,onValueChange:e=>{j(e),x(e||null)},className:"w-full"}),(0,t.jsx)(s.Text,{className:"text-xs text-gray-500 mt-1",children:"Enter a URL for your custom favicon (.ico, .png, or .svg) or leave empty for default"})]}),(0,t.jsxs)("div",{className:"flex gap-3 pt-4",children:[(0,t.jsx)(n.Button,{onClick:_,loading:v,disabled:v,color:"indigo",children:"Save Changes"}),(0,t.jsx)(n.Button,{onClick:C,loading:v,disabled:v,variant:"secondary",color:"gray",children:"Reset to Default"})]})]})})]}):null}])},662316,e=>{"use strict";var t=e.i(843476),l=e.i(271645),a=e.i(464571),r=e.i(166406),s=e.i(629569),i=e.i(764205),n=e.i(727749);e.s(["default",0,({accessToken:e})=>{let[o,c]=(0,l.useState)(`{ "model": "openai/gpt-4o", "messages": [ { diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0ur~j0twg0t4g.js b/litellm/proxy/_experimental/out/_next/static/chunks/07dccx1d3kvno.js similarity index 82% rename from litellm/proxy/_experimental/out/_next/static/chunks/0ur~j0twg0t4g.js rename to litellm/proxy/_experimental/out/_next/static/chunks/07dccx1d3kvno.js index 49dedb902a3..fd4aa9eb7ed 100644 --- a/litellm/proxy/_experimental/out/_next/static/chunks/0ur~j0twg0t4g.js +++ b/litellm/proxy/_experimental/out/_next/static/chunks/07dccx1d3kvno.js @@ -1,4 +1,4 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,947293,e=>{"use strict";class t extends Error{}t.prototype.name="InvalidTokenError",e.s(["jwtDecode",0,function(e,r){let o;if("string"!=typeof e)throw new t("Invalid token specified: must be a string");r||(r={});let n=+(!0!==r.header),a=e.split(".")[n];if("string"!=typeof a)throw new t(`Invalid token specified: missing part #${n+1}`);try{o=function(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw Error("base64 string is not of the correct length")}try{var r;return r=t,decodeURIComponent(atob(r).replace(/(.)/g,(e,t)=>{let r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r}))}catch(e){return atob(t)}}(a)}catch(e){throw new t(`Invalid token specified: invalid base64 for part #${n+1} (${e.message})`)}try{return JSON.parse(o)}catch(e){throw new t(`Invalid token specified: invalid json for part #${n+1} (${e.message})`)}}])},268004,e=>{"use strict";function t(){let e=window.location.pathname.match(/\/ui(?=\/|$)/);return e&&void 0!==e.index?window.location.pathname.substring(0,e.index+3):"/ui"}e.s(["clearTokenCookies",0,function(){if("u"{document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t};`,document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${e};`,n.forEach(r=>{let o="None"===r?" Secure;":"";document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; SameSite=${r};${o}`,document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${e}; SameSite=${r};${o}`})});try{sessionStorage.removeItem("token")}catch{}},"getCookie",0,function(e){if("u"t.startsWith(e+"="));if(t){let e=t.split("=").slice(1).join("=");try{return decodeURIComponent(e)}catch{return e}}if("token"===e)try{return sessionStorage.getItem(e)}catch{}return null},"storeLoginToken",0,function(e){if(e&&e.trim()){try{let r="https:"===window.location.protocol?"; Secure":"",o=t();document.cookie=`token=${encodeURIComponent(e)}; path=${o}; SameSite=Lax${r}`}catch{}try{sessionStorage.setItem("token",e)}catch{}}}])},876556,e=>{"use strict";var t=e.i(565924),r=e.i(271645);e.s(["default",0,function e(o){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=[];return r.default.Children.forEach(o,function(r){(null!=r||n.keepEmpty)&&(Array.isArray(r)?a=a.concat(e(r)):(0,t.default)(r)&&r.props?a=a.concat(e(r.props.children,n)):a.push(r))}),a}])},495347,177886,786944,162129,197091,787894,696752,621796,e=>{"use strict";var t,r=e.i(271645);e.i(247167);var o=e.i(931067),n=e.i(703923),a=e.i(31575),i=e.i(33968),l=e.i(209428),s=e.i(8211),c=e.i(278409),u=e.i(233848),d=e.i(971151),f=e.i(868917),p=e.i(674813),h=e.i(211577),m=e.i(876556),g=e.i(929123),v=e.i(883110),y="RC_FORM_INTERNAL_HOOKS",b=function(){(0,v.default)(!1,"Can not find FormContext. Please make sure you wrap Field under Form.")},w=r.createContext({getFieldValue:b,getFieldsValue:b,getFieldError:b,getFieldWarning:b,getFieldsError:b,isFieldsTouched:b,isFieldTouched:b,isFieldValidating:b,isFieldsValidating:b,resetFields:b,setFields:b,setFieldValue:b,setFieldsValue:b,validateFields:b,submit:b,getInternalHooks:function(){return b(),{dispatch:b,initEntityValue:b,registerField:b,useSubscribe:b,setInitialValues:b,destroyForm:b,setCallbacks:b,registerWatch:b,getFields:b,setValidateMessages:b,setPreserve:b,getInitialValue:b}}});e.s(["HOOK_MARK",0,y,"default",0,w],177886);var $=r.createContext(null);function C(e){return null==e?[]:Array.isArray(e)?e:[e]}e.s(["default",0,$],786944);var x=e.i(410160);function E(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",tel:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var S=E(),k=e.i(487806),j=e.i(885963),O=e.i(479671);function T(e){var t="function"==typeof Map?new Map:void 0;return(T=function(e){if(null===e||!function(e){try{return -1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if((0,O.default)())return Reflect.construct.apply(null,arguments);var o=[null];o.push.apply(o,t);var n=new(e.bind.apply(e,o));return r&&(0,j.default)(n,r.prototype),n}(e,arguments,(0,k.default)(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),(0,j.default)(r,e)})(e)}var I=/%[sdj%]/g;function _(e){if(!e||!e.length)return null;var t={};return e.forEach(function(e){var r=e.field;t[r]=t[r]||[],t[r].push(e)}),t}function F(e){for(var t=arguments.length,r=Array(t>1?t-1:0),o=1;o=a)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}}):e}function P(e,t){return!!(null==e||"array"===t&&Array.isArray(e)&&!e.length)||("string"===t||"url"===t||"hex"===t||"email"===t||"date"===t||"pattern"===t||"tel"===t)&&"string"==typeof e&&!e||!1}function R(e,t,r){var o=0,n=e.length;!function a(i){if(i&&i.length)return void r(i);var l=o;o+=1,l()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,H=/^(\+[0-9]{1,3}[-\s\u2011]?)?(\([0-9]{1,4}\)[-\s\u2011]?)?([0-9]+[-\s\u2011]?)*[0-9]+$/,V=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,W={integer:function(e){return W.number(e)&&parseInt(e,10)===e},float:function(e){return W.number(e)&&!W.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return new RegExp(e),!0}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime())},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"===(0,x.default)(e)&&!W.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&e.length<=320&&!!e.match(D)},tel:function(e){return"string"==typeof e&&e.length<=32&&!!e.match(H)},url:function(e){return"string"==typeof e&&e.length<=2048&&!!e.match(L())},hex:function(e){return"string"==typeof e&&!!e.match(V)}};let U=z,G=function(e,t,r,o,n){(/^\s+$/.test(t)||""===t)&&o.push(F(n.messages.whitespace,e.fullField))},q=function(e,t,r,o,n){if(e.required&&void 0===t)return void z(e,t,r,o,n);var a=e.type;["integer","float","array","regexp","object","method","email","tel","number","date","url","hex"].indexOf(a)>-1?W[a](t)||o.push(F(n.messages.types[a],e.fullField,e.type)):a&&(0,x.default)(t)!==e.type&&o.push(F(n.messages.types[a],e.fullField,e.type))},J=function(e,t,r,o,n){var a="number"==typeof e.len,i="number"==typeof e.min,l="number"==typeof e.max,s=t,c=null,u="number"==typeof t,d="string"==typeof t,f=Array.isArray(t);if(u?c="number":d?c="string":f&&(c="array"),!c)return!1;f&&(s=t.length),d&&(s=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),a?s!==e.len&&o.push(F(n.messages[c].len,e.fullField,e.len)):i&&!l&&se.max?o.push(F(n.messages[c].max,e.fullField,e.max)):i&&l&&(se.max)&&o.push(F(n.messages[c].range,e.fullField,e.min,e.max))},K=function(e,t,r,o,n){e[A]=Array.isArray(e[A])?e[A]:[],-1===e[A].indexOf(t)&&o.push(F(n.messages[A],e.fullField,e[A].join(", ")))},X=function(e,t,r,o,n){e.pattern&&(e.pattern instanceof RegExp?(e.pattern.lastIndex=0,e.pattern.test(t)||o.push(F(n.messages.pattern.mismatch,e.fullField,t,e.pattern))):"string"==typeof e.pattern&&(new RegExp(e.pattern).test(t)||o.push(F(n.messages.pattern.mismatch,e.fullField,t,e.pattern))))},Q=function(e,t,r,o,n){var a=e.type,i=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,a)&&!e.required)return r();U(e,t,o,i,n,a),P(t,a)||q(e,t,o,i,n)}r(i)},Y={string:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,"string")&&!e.required)return r();U(e,t,o,a,n,"string"),P(t,"string")||(q(e,t,o,a,n),J(e,t,o,a,n),X(e,t,o,a,n),!0===e.whitespace&&G(e,t,o,a,n))}r(a)},method:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&q(e,t,o,a,n)}r(a)},number:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(""===t&&(t=void 0),P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},boolean:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&q(e,t,o,a,n)}r(a)},regexp:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),P(t)||q(e,t,o,a,n)}r(a)},integer:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},float:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},array:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();U(e,t,o,a,n,"array"),null!=t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},object:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&q(e,t,o,a,n)}r(a)},enum:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&K(e,t,o,a,n)}r(a)},pattern:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,"string")&&!e.required)return r();U(e,t,o,a,n),P(t,"string")||X(e,t,o,a,n)}r(a)},date:function(e,t,r,o,n){var a,i=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,"date")&&!e.required)return r();U(e,t,o,i,n),!P(t,"date")&&(a=t instanceof Date?t:new Date(t),q(e,a,o,i,n),a&&J(e,a.getTime(),o,i,n))}r(i)},url:Q,hex:Q,email:Q,tel:Q,required:function(e,t,r,o,n){var a=[],i=Array.isArray(t)?"array":(0,x.default)(t);U(e,t,o,a,n,i),r(a)},any:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n)}r(a)}};var Z=function(){function e(t){(0,c.default)(this,e),(0,h.default)(this,"rules",null),(0,h.default)(this,"_messages",S),this.define(t)}return(0,u.default)(e,[{key:"define",value:function(e){var t=this;if(!e)throw Error("Cannot configure a schema with no rules");if("object"!==(0,x.default)(e)||Array.isArray(e))throw Error("Rules must be an object");this.rules={},Object.keys(e).forEach(function(r){var o=e[r];t.rules[r]=Array.isArray(o)?o:[o]})}},{key:"messages",value:function(e){return e&&(this._messages=B(E(),e)),this._messages}},{key:"validate",value:function(t){var r=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},a=t,i=o,c=n;if("function"==typeof i&&(c=i,i={}),!this.rules||0===Object.keys(this.rules).length)return c&&c(null,a),Promise.resolve(a);if(i.messages){var u=this.messages();u===S&&(u=E()),B(u,i.messages),i.messages=u}else i.messages=this.messages();var d={};(i.keys||Object.keys(this.rules)).forEach(function(e){var o=r.rules[e],n=a[e];o.forEach(function(o){var i=o;"function"==typeof i.transform&&(a===t&&(a=(0,l.default)({},a)),null!=(n=a[e]=i.transform(n))&&(i.type=i.type||(Array.isArray(n)?"array":(0,x.default)(n)))),(i="function"==typeof i?{validator:i}:(0,l.default)({},i)).validator=r.getValidationMethod(i),i.validator&&(i.field=e,i.fullField=i.fullField||e,i.type=r.getType(i),d[e]=d[e]||[],d[e].push({rule:i,value:n,source:a,field:e}))})});var f={};return function(e,t,r,o,n){if(t.first){var a=new Promise(function(t,a){var i;R((i=[],Object.keys(e).forEach(function(t){i.push.apply(i,(0,s.default)(e[t]||[]))}),i),r,function(e){return o(e),e.length?a(new N(e,_(e))):t(n)})});return a.catch(function(e){return e}),a}var i=!0===t.firstFields?Object.keys(e):t.firstFields||[],l=Object.keys(e),c=l.length,u=0,d=[],f=new Promise(function(t,a){var f=function(e){if(d.push.apply(d,e),++u===c)return o(d),d.length?a(new N(d,_(d))):t(n)};l.length||(o(d),t(n)),l.forEach(function(t){var o=e[t];if(-1!==i.indexOf(t))R(o,r,f);else{var n=[],a=0,l=o.length;function c(e){n.push.apply(n,(0,s.default)(e||[])),++a===l&&f(n)}o.forEach(function(e){r(e,c)})}})});return f.catch(function(e){return e}),f}(d,i,function(t,r){var o,n,c,u=t.rule,d=("object"===u.type||"array"===u.type)&&("object"===(0,x.default)(u.fields)||"object"===(0,x.default)(u.defaultField));function p(e,t){return(0,l.default)((0,l.default)({},t),{},{fullField:"".concat(u.fullField,".").concat(e),fullFields:u.fullFields?[].concat((0,s.default)(u.fullFields),[e]):[e]})}function h(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=Array.isArray(o)?o:[o];!i.suppressWarning&&n.length&&e.warning("async-validator:",n),n.length&&void 0!==u.message&&null!==u.message&&(n=[].concat(u.message));var c=n.map(M(u,a));if(i.first&&c.length)return f[u.field]=1,r(c);if(d){if(u.required&&!t.value)return void 0!==u.message?c=[].concat(u.message).map(M(u,a)):i.error&&(c=[i.error(u,F(i.messages.required,u.field))]),r(c);var h={};u.defaultField&&Object.keys(t.value).map(function(e){h[e]=u.defaultField});var m={};Object.keys(h=(0,l.default)((0,l.default)({},h),t.rule.fields)).forEach(function(e){var t=h[e],r=Array.isArray(t)?t:[t];m[e]=r.map(p.bind(null,e))});var g=new e(m);g.messages(i.messages),t.rule.options&&(t.rule.options.messages=i.messages,t.rule.options.error=i.error),g.validate(t.value,t.rule.options||i,function(e){var t=[];c&&c.length&&t.push.apply(t,(0,s.default)(c)),e&&e.length&&t.push.apply(t,(0,s.default)(e)),r(t.length?t:null)})}else r(c)}if(d=d&&(u.required||!u.required&&t.value),u.field=t.field,u.asyncValidator)o=u.asyncValidator(u,t.value,h,t.source,i);else if(u.validator){try{o=u.validator(u,t.value,h,t.source,i)}catch(e){null==(n=(c=console).error)||n.call(c,e),i.suppressValidatorError||setTimeout(function(){throw e},0),h(e.message)}!0===o?h():!1===o?h("function"==typeof u.message?u.message(u.fullField||u.field):u.message||"".concat(u.fullField||u.field," fails")):o instanceof Array?h(o):o instanceof Error&&h(o.message)}o&&o.then&&o.then(function(){return h()},function(e){return h(e)})},function(e){for(var t=[],r={},o=0;o0)){e.next=23;break}return e.next=21,Promise.all(o.map(function(e,r){return en("".concat(t,".").concat(r),e,f,i,c)}));case 21:return v=e.sent,e.abrupt("return",v.reduce(function(e,t){return[].concat((0,s.default)(e),(0,s.default)(t))},[]));case 23:return y=(0,l.default)((0,l.default)({},n),{},{name:t,enum:(n.enum||[]).join(", ")},c),b=g.map(function(e){return"string"==typeof e?function(e,t){return e.replace(/\\?\$\{\w+\}/g,function(e){return e.startsWith("\\")?e.slice(1):t[e.slice(2,-1)]})}(e,y):e}),e.abrupt("return",b);case 26:case"end":return e.stop()}},e,null,[[10,15]])}))).apply(this,arguments)}function ei(){return(ei=(0,i.default)((0,a.default)().mark(function e(t){return(0,a.default)().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(t).then(function(e){var t;return(t=[]).concat.apply(t,(0,s.default)(e))}));case 1:case"end":return e.stop()}},e)}))).apply(this,arguments)}function el(){return(el=(0,i.default)((0,a.default)().mark(function e(t){var r;return(0,a.default)().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=0,e.abrupt("return",new Promise(function(e){t.forEach(function(o){o.then(function(o){o.errors.length&&e([o]),(r+=1)===t.length&&e([])})})}));case 2:case"end":return e.stop()}},e)}))).apply(this,arguments)}var es=e.i(657791);function ec(e){return C(e)}function eu(e,t){var r={};return t.forEach(function(t){var o=(0,es.default)(e,t);r=(0,er.default)(r,t,o)}),r}function ed(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return e&&e.some(function(e){return ef(t,e,r)})}function ef(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return!!e&&!!t&&(!!r||e.length===t.length)&&t.every(function(t,r){return e[r]===t})}function ep(e){var t=arguments.length<=1?void 0:arguments[1];return t&&t.target&&"object"===(0,x.default)(t.target)&&e in t.target?t.target[e]:t}function eh(e,t,r){var o=e.length;if(t<0||t>=o||r<0||r>=o)return e;var n=e[t],a=t-r;return a>0?[].concat((0,s.default)(e.slice(0,r)),[n],(0,s.default)(e.slice(r,t)),(0,s.default)(e.slice(t+1,o))):a<0?[].concat((0,s.default)(e.slice(0,t)),(0,s.default)(e.slice(t+1,r+1)),[n],(0,s.default)(e.slice(r+1,o))):e}var em=es,eg=["name"],ev=[];function ey(e,t,r,o,n,a){return"function"==typeof e?e(t,r,"source"in a?{source:a.source}:{}):o!==n}var eb=function(e){(0,f.default)(o,e);var t=(0,p.default)(o);function o(e){var n;return(0,c.default)(this,o),n=t.call(this,e),(0,h.default)((0,d.default)(n),"state",{resetCount:0}),(0,h.default)((0,d.default)(n),"cancelRegisterFunc",null),(0,h.default)((0,d.default)(n),"mounted",!1),(0,h.default)((0,d.default)(n),"touched",!1),(0,h.default)((0,d.default)(n),"dirty",!1),(0,h.default)((0,d.default)(n),"validatePromise",void 0),(0,h.default)((0,d.default)(n),"prevValidating",void 0),(0,h.default)((0,d.default)(n),"errors",ev),(0,h.default)((0,d.default)(n),"warnings",ev),(0,h.default)((0,d.default)(n),"cancelRegister",function(){var e=n.props,t=e.preserve,r=e.isListField,o=e.name;n.cancelRegisterFunc&&n.cancelRegisterFunc(r,t,ec(o)),n.cancelRegisterFunc=null}),(0,h.default)((0,d.default)(n),"getNamePath",function(){var e=n.props,t=e.name,r=e.fieldContext.prefixName;return void 0!==t?[].concat((0,s.default)(void 0===r?[]:r),(0,s.default)(t)):[]}),(0,h.default)((0,d.default)(n),"getRules",function(){var e=n.props,t=e.rules,r=e.fieldContext;return(void 0===t?[]:t).map(function(e){return"function"==typeof e?e(r):e})}),(0,h.default)((0,d.default)(n),"refresh",function(){n.mounted&&n.setState(function(e){return{resetCount:e.resetCount+1}})}),(0,h.default)((0,d.default)(n),"metaCache",null),(0,h.default)((0,d.default)(n),"triggerMetaEvent",function(e){var t=n.props.onMetaChange;if(t){var r=(0,l.default)((0,l.default)({},n.getMeta()),{},{destroy:e});(0,g.default)(n.metaCache,r)||t(r),n.metaCache=r}else n.metaCache=null}),(0,h.default)((0,d.default)(n),"onStoreChange",function(e,t,r){var o=n.props,a=o.shouldUpdate,i=o.dependencies,l=void 0===i?[]:i,s=o.onReset,c=r.store,u=n.getNamePath(),d=n.getValue(e),f=n.getValue(c),p=t&&ed(t,u);switch("valueUpdate"===r.type&&"external"===r.source&&!(0,g.default)(d,f)&&(n.touched=!0,n.dirty=!0,n.validatePromise=null,n.errors=ev,n.warnings=ev,n.triggerMetaEvent()),r.type){case"reset":if(!t||p){n.touched=!1,n.dirty=!1,n.validatePromise=void 0,n.errors=ev,n.warnings=ev,n.triggerMetaEvent(),null==s||s(),n.refresh();return}break;case"remove":if(a&&ey(a,e,c,d,f,r))return void n.reRender();break;case"setField":var h=r.data;if(p){"touched"in h&&(n.touched=h.touched),"validating"in h&&!("originRCField"in h)&&(n.validatePromise=h.validating?Promise.resolve([]):null),"errors"in h&&(n.errors=h.errors||ev),"warnings"in h&&(n.warnings=h.warnings||ev),n.dirty=!0,n.triggerMetaEvent(),n.reRender();return}if("value"in h&&ed(t,u,!0)||a&&!u.length&&ey(a,e,c,d,f,r))return void n.reRender();break;case"dependenciesUpdate":if(l.map(ec).some(function(e){return ed(r.relatedFields,e)}))return void n.reRender();break;default:if(p||(!l.length||u.length||a)&&ey(a,e,c,d,f,r))return void n.reRender()}!0===a&&n.reRender()}),(0,h.default)((0,d.default)(n),"validateRules",function(e){var t=n.getNamePath(),r=n.getValue(),o=e||{},c=o.triggerName,u=o.validateOnly,d=Promise.resolve().then((0,i.default)((0,a.default)().mark(function o(){var u,f,p,h,m,g,y;return(0,a.default)().wrap(function(o){for(;;)switch(o.prev=o.next){case 0:if(n.mounted){o.next=2;break}return o.abrupt("return",[]);case 2:if(p=void 0!==(f=(u=n.props).validateFirst)&&f,h=u.messageVariables,m=u.validateDebounce,g=n.getRules(),c&&(g=g.filter(function(e){return e}).filter(function(e){var t=e.validateTrigger;return!t||C(t).includes(c)})),!(m&&c)){o.next=10;break}return o.next=8,new Promise(function(e){setTimeout(e,m)});case 8:if(n.validatePromise===d){o.next=10;break}return o.abrupt("return",[]);case 10:return(y=function(e,t,r,o,n,s){var c,u,d=e.join("."),f=r.map(function(e,t){var r=e.validator,o=(0,l.default)((0,l.default)({},e),{},{ruleIndex:t});return r&&(o.validator=function(e,t,o){var n=!1,a=r(e,t,function(){for(var e=arguments.length,t=Array(e),r=0;r0&&void 0!==arguments[0]?arguments[0]:ev;if(n.validatePromise===d){n.validatePromise=null;var t,r=[],o=[];null==(t=e.forEach)||t.call(e,function(e){var t=e.rule.warningOnly,n=e.errors,a=void 0===n?ev:n;t?o.push.apply(o,(0,s.default)(a)):r.push.apply(r,(0,s.default)(a))}),n.errors=r,n.warnings=o,n.triggerMetaEvent(),n.reRender()}}),o.abrupt("return",y);case 13:case"end":return o.stop()}},o)})));return void 0!==u&&u||(n.validatePromise=d,n.dirty=!0,n.errors=ev,n.warnings=ev,n.triggerMetaEvent(),n.reRender()),d}),(0,h.default)((0,d.default)(n),"isFieldValidating",function(){return!!n.validatePromise}),(0,h.default)((0,d.default)(n),"isFieldTouched",function(){return n.touched}),(0,h.default)((0,d.default)(n),"isFieldDirty",function(){return!!n.dirty||void 0!==n.props.initialValue||void 0!==(0,n.props.fieldContext.getInternalHooks(y).getInitialValue)(n.getNamePath())}),(0,h.default)((0,d.default)(n),"getErrors",function(){return n.errors}),(0,h.default)((0,d.default)(n),"getWarnings",function(){return n.warnings}),(0,h.default)((0,d.default)(n),"isListField",function(){return n.props.isListField}),(0,h.default)((0,d.default)(n),"isList",function(){return n.props.isList}),(0,h.default)((0,d.default)(n),"isPreserve",function(){return n.props.preserve}),(0,h.default)((0,d.default)(n),"getMeta",function(){return n.prevValidating=n.isFieldValidating(),{touched:n.isFieldTouched(),validating:n.prevValidating,errors:n.errors,warnings:n.warnings,name:n.getNamePath(),validated:null===n.validatePromise}}),(0,h.default)((0,d.default)(n),"getOnlyChild",function(e){if("function"==typeof e){var t=n.getMeta();return(0,l.default)((0,l.default)({},n.getOnlyChild(e(n.getControlled(),t,n.props.fieldContext))),{},{isFunction:!0})}var o=(0,m.default)(e);return 1===o.length&&r.isValidElement(o[0])?{child:o[0],isFunction:!1}:{child:o,isFunction:!1}}),(0,h.default)((0,d.default)(n),"getValue",function(e){var t=n.props.fieldContext.getFieldsValue,r=n.getNamePath();return(0,em.default)(e||t(!0),r)}),(0,h.default)((0,d.default)(n),"getControlled",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=n.props,r=t.name,o=t.trigger,a=t.validateTrigger,i=t.getValueFromEvent,s=t.normalize,c=t.valuePropName,u=t.getValueProps,d=t.fieldContext,f=void 0!==a?a:d.validateTrigger,p=n.getNamePath(),m=d.getInternalHooks,g=d.getFieldsValue,v=m(y).dispatch,b=n.getValue(),w=u||function(e){return(0,h.default)({},c,e)},$=e[o],x=void 0!==r?w(b):{},E=(0,l.default)((0,l.default)({},e),x);return E[o]=function(){n.touched=!0,n.dirty=!0,n.triggerMetaEvent();for(var e,t=arguments.length,r=Array(t),o=0;o=0&&t<=r.length?(f.keys=[].concat((0,s.default)(f.keys.slice(0,t)),[f.id],(0,s.default)(f.keys.slice(t))),o([].concat((0,s.default)(r.slice(0,t)),[e],(0,s.default)(r.slice(t))))):(f.keys=[].concat((0,s.default)(f.keys),[f.id]),o([].concat((0,s.default)(r),[e]))),f.id+=1},remove:function(e){var t=i(),r=new Set(Array.isArray(e)?e:[e]);r.size<=0||(f.keys=f.keys.filter(function(e,t){return!r.has(t)}),o(t.filter(function(e,t){return!r.has(t)})))},move:function(e,t){if(e!==t){var r=i();e<0||e>=r.length||t<0||t>=r.length||(f.keys=eh(f.keys,e,t),o(eh(r,e,t)))}}},t)})))};e.s(["default",0,e$],197091);var eC=e.i(392221),ex="__@field_split__";function eE(e){return e.map(function(e){return"".concat((0,x.default)(e),":").concat(e)}).join(ex)}var eS=function(){function e(){(0,c.default)(this,e),(0,h.default)(this,"kvs",new Map)}return(0,u.default)(e,[{key:"set",value:function(e,t){this.kvs.set(eE(e),t)}},{key:"get",value:function(e){return this.kvs.get(eE(e))}},{key:"update",value:function(e,t){var r=t(this.get(e));r?this.set(e,r):this.delete(e)}},{key:"delete",value:function(e){this.kvs.delete(eE(e))}},{key:"map",value:function(e){return(0,s.default)(this.kvs.entries()).map(function(t){var r=(0,eC.default)(t,2),o=r[0],n=r[1];return e({key:o.split(ex).map(function(e){var t=e.match(/^([^:]*):(.*)$/),r=(0,eC.default)(t,3),o=r[1],n=r[2];return"number"===o?Number(n):n}),value:n})})}},{key:"toJSON",value:function(){var e={};return this.map(function(t){var r=t.key,o=t.value;return e[r.join(".")]=o,null}),e}}]),e}(),em=es,ek=["name"],ej=(0,u.default)(function e(t){var r=this;(0,c.default)(this,e),(0,h.default)(this,"formHooked",!1),(0,h.default)(this,"forceRootUpdate",void 0),(0,h.default)(this,"subscribable",!0),(0,h.default)(this,"store",{}),(0,h.default)(this,"fieldEntities",[]),(0,h.default)(this,"initialValues",{}),(0,h.default)(this,"callbacks",{}),(0,h.default)(this,"validateMessages",null),(0,h.default)(this,"preserve",null),(0,h.default)(this,"lastValidatePromise",null),(0,h.default)(this,"getForm",function(){return{getFieldValue:r.getFieldValue,getFieldsValue:r.getFieldsValue,getFieldError:r.getFieldError,getFieldWarning:r.getFieldWarning,getFieldsError:r.getFieldsError,isFieldsTouched:r.isFieldsTouched,isFieldTouched:r.isFieldTouched,isFieldValidating:r.isFieldValidating,isFieldsValidating:r.isFieldsValidating,resetFields:r.resetFields,setFields:r.setFields,setFieldValue:r.setFieldValue,setFieldsValue:r.setFieldsValue,validateFields:r.validateFields,submit:r.submit,_init:!0,getInternalHooks:r.getInternalHooks}}),(0,h.default)(this,"getInternalHooks",function(e){return e===y?(r.formHooked=!0,{dispatch:r.dispatch,initEntityValue:r.initEntityValue,registerField:r.registerField,useSubscribe:r.useSubscribe,setInitialValues:r.setInitialValues,destroyForm:r.destroyForm,setCallbacks:r.setCallbacks,setValidateMessages:r.setValidateMessages,getFields:r.getFields,setPreserve:r.setPreserve,getInitialValue:r.getInitialValue,registerWatch:r.registerWatch}):((0,v.default)(!1,"`getInternalHooks` is internal usage. Should not call directly."),null)}),(0,h.default)(this,"useSubscribe",function(e){r.subscribable=e}),(0,h.default)(this,"prevWithoutPreserves",null),(0,h.default)(this,"setInitialValues",function(e,t){if(r.initialValues=e||{},t){var o,n=(0,er.merge)(e,r.store);null==(o=r.prevWithoutPreserves)||o.map(function(t){var r=t.key;n=(0,er.default)(n,r,(0,em.default)(e,r))}),r.prevWithoutPreserves=null,r.updateStore(n)}}),(0,h.default)(this,"destroyForm",function(e){if(e)r.updateStore({});else{var t=new eS;r.getFieldEntities(!0).forEach(function(e){r.isMergedPreserve(e.isPreserve())||t.set(e.getNamePath(),!0)}),r.prevWithoutPreserves=t}}),(0,h.default)(this,"getInitialValue",function(e){var t=(0,em.default)(r.initialValues,e);return e.length?(0,er.merge)(t):t}),(0,h.default)(this,"setCallbacks",function(e){r.callbacks=e}),(0,h.default)(this,"setValidateMessages",function(e){r.validateMessages=e}),(0,h.default)(this,"setPreserve",function(e){r.preserve=e}),(0,h.default)(this,"watchList",[]),(0,h.default)(this,"registerWatch",function(e){return r.watchList.push(e),function(){r.watchList=r.watchList.filter(function(t){return t!==e})}}),(0,h.default)(this,"notifyWatch",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(r.watchList.length){var t=r.getFieldsValue(),o=r.getFieldsValue(!0);r.watchList.forEach(function(r){r(t,o,e)})}}),(0,h.default)(this,"timeoutId",null),(0,h.default)(this,"warningUnhooked",function(){}),(0,h.default)(this,"updateStore",function(e){r.store=e}),(0,h.default)(this,"getFieldEntities",function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return e?r.fieldEntities.filter(function(e){return e.getNamePath().length}):r.fieldEntities}),(0,h.default)(this,"getFieldsMap",function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=new eS;return r.getFieldEntities(e).forEach(function(e){var r=e.getNamePath();t.set(r,e)}),t}),(0,h.default)(this,"getFieldEntitiesForNamePathList",function(e){if(!e)return r.getFieldEntities(!0);var t=r.getFieldsMap(!0);return e.map(function(e){var r=ec(e);return t.get(r)||{INVALIDATE_NAME_PATH:ec(e)}})}),(0,h.default)(this,"getFieldsValue",function(e,t){if(r.warningUnhooked(),!0===e||Array.isArray(e)?(o=e,n=t):e&&"object"===(0,x.default)(e)&&(a=e.strict,n=e.filter),!0===o&&!n)return r.store;var o,n,a,i=r.getFieldEntitiesForNamePathList(Array.isArray(o)?o:null),l=[];return i.forEach(function(e){var t,r,i,s="INVALIDATE_NAME_PATH"in e?e.INVALIDATE_NAME_PATH:e.getNamePath();if(a){if(null!=(i=e.isList)&&i.call(e))return}else if(!o&&null!=(t=(r=e).isListField)&&t.call(r))return;if(n){var c="getMeta"in e?e.getMeta():null;n(c)&&l.push(s)}else l.push(s)}),eu(r.store,l.map(ec))}),(0,h.default)(this,"getFieldValue",function(e){r.warningUnhooked();var t=ec(e);return(0,em.default)(r.store,t)}),(0,h.default)(this,"getFieldsError",function(e){return r.warningUnhooked(),r.getFieldEntitiesForNamePathList(e).map(function(t,r){return!t||"INVALIDATE_NAME_PATH"in t?{name:ec(e[r]),errors:[],warnings:[]}:{name:t.getNamePath(),errors:t.getErrors(),warnings:t.getWarnings()}})}),(0,h.default)(this,"getFieldError",function(e){r.warningUnhooked();var t=ec(e);return r.getFieldsError([t])[0].errors}),(0,h.default)(this,"getFieldWarning",function(e){r.warningUnhooked();var t=ec(e);return r.getFieldsError([t])[0].warnings}),(0,h.default)(this,"isFieldsTouched",function(){r.warningUnhooked();for(var e,t=arguments.length,o=Array(t),n=0;n0&&void 0!==arguments[0]?arguments[0]:{},o=new eS,n=r.getFieldEntities(!0);n.forEach(function(e){var t=e.props.initialValue,r=e.getNamePath();if(void 0!==t){var n=o.get(r)||new Set;n.add({entity:e,value:t}),o.set(r,n)}}),t.entities?e=t.entities:t.namePathList?(e=[],t.namePathList.forEach(function(t){var r,n=o.get(t);n&&(r=e).push.apply(r,(0,s.default)((0,s.default)(n).map(function(e){return e.entity})))})):e=n,e.forEach(function(e){if(void 0!==e.props.initialValue){var n=e.getNamePath();if(void 0!==r.getInitialValue(n))(0,v.default)(!1,"Form already set 'initialValues' with path '".concat(n.join("."),"'. Field can not overwrite it."));else{var a=o.get(n);if(a&&a.size>1)(0,v.default)(!1,"Multiple Field with path '".concat(n.join("."),"' set 'initialValue'. Can not decide which one to pick."));else if(a){var i=r.getFieldValue(n);e.isListField()||t.skipExist&&void 0!==i||r.updateStore((0,er.default)(r.store,n,(0,s.default)(a)[0].value))}}}})}),(0,h.default)(this,"resetFields",function(e){r.warningUnhooked();var t=r.store;if(!e){r.updateStore((0,er.merge)(r.initialValues)),r.resetWithFieldInitialValue(),r.notifyObservers(t,null,{type:"reset"}),r.notifyWatch();return}var o=e.map(ec);o.forEach(function(e){var t=r.getInitialValue(e);r.updateStore((0,er.default)(r.store,e,t))}),r.resetWithFieldInitialValue({namePathList:o}),r.notifyObservers(t,o,{type:"reset"}),r.notifyWatch(o)}),(0,h.default)(this,"setFields",function(e){r.warningUnhooked();var t=r.store,o=[];e.forEach(function(e){var a=e.name,i=(0,n.default)(e,ek),l=ec(a);o.push(l),"value"in i&&r.updateStore((0,er.default)(r.store,l,i.value)),r.notifyObservers(t,[l],{type:"setField",data:e})}),r.notifyWatch(o)}),(0,h.default)(this,"getFields",function(){return r.getFieldEntities(!0).map(function(e){var t=e.getNamePath(),o=e.getMeta(),n=(0,l.default)((0,l.default)({},o),{},{name:t,value:r.getFieldValue(t)});return Object.defineProperty(n,"originRCField",{value:!0}),n})}),(0,h.default)(this,"initEntityValue",function(e){var t=e.props.initialValue;if(void 0!==t){var o=e.getNamePath();void 0===(0,em.default)(r.store,o)&&r.updateStore((0,er.default)(r.store,o,t))}}),(0,h.default)(this,"isMergedPreserve",function(e){var t=void 0!==e?e:r.preserve;return null==t||t}),(0,h.default)(this,"registerField",function(e){r.fieldEntities.push(e);var t=e.getNamePath();if(r.notifyWatch([t]),void 0!==e.props.initialValue){var o=r.store;r.resetWithFieldInitialValue({entities:[e],skipExist:!0}),r.notifyObservers(o,[e.getNamePath()],{type:"valueUpdate",source:"internal"})}return function(o,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(r.fieldEntities=r.fieldEntities.filter(function(t){return t!==e}),!r.isMergedPreserve(n)&&(!o||a.length>1)){var i=o?void 0:r.getInitialValue(t);if(t.length&&r.getFieldValue(t)!==i&&r.fieldEntities.every(function(e){return!ef(e.getNamePath(),t)})){var l=r.store;r.updateStore((0,er.default)(l,t,i,!0)),r.notifyObservers(l,[t],{type:"remove"}),r.triggerDependenciesUpdate(l,t)}}r.notifyWatch([t])}}),(0,h.default)(this,"dispatch",function(e){switch(e.type){case"updateValue":var t=e.namePath,o=e.value;r.updateValue(t,o);break;case"validateField":var n=e.namePath,a=e.triggerName;r.validateFields([n],{triggerName:a})}}),(0,h.default)(this,"notifyObservers",function(e,t,o){if(r.subscribable){var n=(0,l.default)((0,l.default)({},o),{},{store:r.getFieldsValue(!0)});r.getFieldEntities().forEach(function(r){(0,r.onStoreChange)(e,t,n)})}else r.forceRootUpdate()}),(0,h.default)(this,"triggerDependenciesUpdate",function(e,t){var o=r.getDependencyChildrenFields(t);return o.length&&r.validateFields(o),r.notifyObservers(e,o,{type:"dependenciesUpdate",relatedFields:[t].concat((0,s.default)(o))}),o}),(0,h.default)(this,"updateValue",function(e,t){var o=ec(e),n=r.store;r.updateStore((0,er.default)(r.store,o,t)),r.notifyObservers(n,[o],{type:"valueUpdate",source:"internal"}),r.notifyWatch([o]);var a=r.triggerDependenciesUpdate(n,o),i=r.callbacks.onValuesChange;i&&i(eu(r.store,[o]),r.getFieldsValue()),r.triggerOnFieldsChange([o].concat((0,s.default)(a)))}),(0,h.default)(this,"setFieldsValue",function(e){r.warningUnhooked();var t=r.store;if(e){var o=(0,er.merge)(r.store,e);r.updateStore(o)}r.notifyObservers(t,null,{type:"valueUpdate",source:"external"}),r.notifyWatch()}),(0,h.default)(this,"setFieldValue",function(e,t){r.setFields([{name:e,value:t,errors:[],warnings:[]}])}),(0,h.default)(this,"getDependencyChildrenFields",function(e){var t=new Set,o=[],n=new eS;return r.getFieldEntities().forEach(function(e){(e.props.dependencies||[]).forEach(function(t){var r=ec(t);n.update(r,function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Set;return t.add(e),t})})}),!function e(r){(n.get(r)||new Set).forEach(function(r){if(!t.has(r)){t.add(r);var n=r.getNamePath();r.isFieldDirty()&&n.length&&(o.push(n),e(n))}})}(e),o}),(0,h.default)(this,"triggerOnFieldsChange",function(e,t){var o=r.callbacks.onFieldsChange;if(o){var n=r.getFields();if(t){var a=new eS;t.forEach(function(e){var t=e.name,r=e.errors;a.set(t,r)}),n.forEach(function(e){e.errors=a.get(e.name)||e.errors})}var i=n.filter(function(t){return ed(e,t.name)});i.length&&o(i,n)}}),(0,h.default)(this,"validateFields",function(e,t){r.warningUnhooked(),Array.isArray(e)||"string"==typeof e||"string"==typeof t?(i=e,c=t):c=e;var o,n,a,i,c,u=!!i,d=u?i.map(ec):[],f=[],p=String(Date.now()),h=new Set,m=c||{},g=m.recursive,v=m.dirty;r.getFieldEntities(!0).forEach(function(e){if((u||d.push(e.getNamePath()),e.props.rules&&e.props.rules.length)&&(!v||e.isFieldDirty())){var t=e.getNamePath();if(h.add(t.join(p)),!u||ed(d,t,g)){var o=e.validateRules((0,l.default)({validateMessages:(0,l.default)((0,l.default)({},et),r.validateMessages)},c));f.push(o.then(function(){return{name:t,errors:[],warnings:[]}}).catch(function(e){var r,o=[],n=[];return(null==(r=e.forEach)||r.call(e,function(e){var t=e.rule.warningOnly,r=e.errors;t?n.push.apply(n,(0,s.default)(r)):o.push.apply(o,(0,s.default)(r))}),o.length)?Promise.reject({name:t,errors:o,warnings:n}):{name:t,errors:o,warnings:n}}))}}});var y=(o=!1,n=f.length,a=[],f.length?new Promise(function(e,t){f.forEach(function(r,i){r.catch(function(e){return o=!0,e}).then(function(r){n-=1,a[i]=r,n>0||(o&&t(a),e(a))})})}):Promise.resolve([]));r.lastValidatePromise=y,y.catch(function(e){return e}).then(function(e){var t=e.map(function(e){return e.name});r.notifyObservers(r.store,t,{type:"validateFinish"}),r.triggerOnFieldsChange(t,e)});var b=y.then(function(){return r.lastValidatePromise===y?Promise.resolve(r.getFieldsValue(d)):Promise.reject([])}).catch(function(e){var t=e.filter(function(e){return e&&e.errors.length});return Promise.reject({values:r.getFieldsValue(d),errorFields:t,outOfDate:r.lastValidatePromise!==y})});b.catch(function(e){return e});var w=d.filter(function(e){return h.has(e.join(p))});return r.triggerOnFieldsChange(w),b}),(0,h.default)(this,"submit",function(){r.warningUnhooked(),r.validateFields().then(function(e){var t=r.callbacks.onFinish;if(t)try{t(e)}catch(e){console.error(e)}}).catch(function(e){var t=r.callbacks.onFinishFailed;t&&t(e)})}),this.forceRootUpdate=t});let eO=function(e){var t=r.useRef(),o=r.useState({}),n=(0,eC.default)(o,2)[1];return t.current||(e?t.current=e:t.current=new ej(function(){n({})}).getForm()),[t.current]};e.s(["default",0,eO],787894);var eT=r.createContext({triggerFormChange:function(){},triggerFormFinish:function(){},registerForm:function(){},unregisterForm:function(){}}),eI=function(e){var t=e.validateMessages,o=e.onFormChange,n=e.onFormFinish,a=e.children,i=r.useContext(eT),s=r.useRef({});return r.createElement(eT.Provider,{value:(0,l.default)((0,l.default)({},i),{},{validateMessages:(0,l.default)((0,l.default)({},i.validateMessages),t),triggerFormChange:function(e,t){o&&o(e,{changedFields:t,forms:s.current}),i.triggerFormChange(e,t)},triggerFormFinish:function(e,t){n&&n(e,{values:t,forms:s.current}),i.triggerFormFinish(e,t)},registerForm:function(e,t){e&&(s.current=(0,l.default)((0,l.default)({},s.current),{},(0,h.default)({},e,t))),i.registerForm(e,t)},unregisterForm:function(e){var t=(0,l.default)({},s.current);delete t[e],s.current=t,i.unregisterForm(e)}})},a)};e.s(["FormProvider",0,eI,"default",0,eT],696752);var e_=["name","initialValues","fields","form","preserve","children","component","validateMessages","validateTrigger","onValuesChange","onFieldsChange","onFinish","onFinishFailed","clearOnDestroy"],em=es;function eF(e){try{return JSON.stringify(e)}catch(e){return Math.random()}}var eP=function(){};let eR=function(){for(var e=arguments.length,t=Array(e),o=0;o1?t-1:0),o=1;o{"use strict";e.s(["default",0,function(e,t){var r=Object.assign({},e);return Array.isArray(t)&&t.forEach(function(e){delete r[e]}),r}])},62139,e=>{"use strict";var t=e.i(271645);e.i(495347);var r=e.i(696752),o=e.i(529681);let n=t.createContext({labelAlign:"right",layout:"horizontal",itemRef:()=>{}}),a=t.createContext(null),i=t.createContext({prefixCls:""}),l=t.createContext({}),s=t.createContext(void 0);e.s(["FormContext",0,n,"FormItemInputContext",0,l,"FormItemPrefixContext",0,i,"FormProvider",0,e=>{let n=(0,o.default)(e,["prefixCls"]);return t.createElement(r.FormProvider,Object.assign({},n))},"NoFormStyle",0,({children:e,status:r,override:o})=>{let n=t.useContext(l),a=t.useMemo(()=>{let e=Object.assign({},n);return o&&delete e.isFormItemInput,r&&(delete e.status,delete e.hasFeedback,delete e.feedbackIcon),e},[r,o,n]);return t.createElement(l.Provider,{value:a},e)},"NoStyleItemContext",0,a,"VariantContext",0,s])},613541,e=>{"use strict";var t=e.i(242064);let r=()=>({height:0,opacity:0}),o=e=>{let{scrollHeight:t}=e;return{height:t,opacity:1}},n=e=>({height:e?e.offsetHeight:0}),a=(e,t)=>(null==t?void 0:t.deadline)===!0||"height"===t.propertyName;e.s(["default",0,(e=t.defaultPrefixCls)=>({motionName:`${e}-motion-collapse`,onAppearStart:r,onEnterStart:r,onAppearActive:o,onEnterActive:o,onLeaveStart:n,onLeaveActive:r,onAppearEnd:a,onEnterEnd:a,onLeaveEnd:a,motionDeadline:500}),"getTransitionName",0,(e,t,r)=>void 0!==r?r:`${e}-${t}`])},830919,e=>{"use strict";var t=e.i(271645);e.s(["default",0,function(e){let[r,o]=t.useState(e);return t.useEffect(()=>{let t=setTimeout(()=>{o(e)},10*!e.length);return()=>{clearTimeout(t)}},[e]),r}])},447580,e=>{"use strict";e.s(["genCollapseMotion",0,e=>({[e.componentCls]:{[`${e.antCls}-motion-collapse-legacy`]:{overflow:"hidden","&-active":{transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,947293,e=>{"use strict";class t extends Error{}t.prototype.name="InvalidTokenError",e.s(["jwtDecode",0,function(e,r){let o;if("string"!=typeof e)throw new t("Invalid token specified: must be a string");r||(r={});let n=+(!0!==r.header),a=e.split(".")[n];if("string"!=typeof a)throw new t(`Invalid token specified: missing part #${n+1}`);try{o=function(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw Error("base64 string is not of the correct length")}try{var r;return r=t,decodeURIComponent(atob(r).replace(/(.)/g,(e,t)=>{let r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r}))}catch(e){return atob(t)}}(a)}catch(e){throw new t(`Invalid token specified: invalid base64 for part #${n+1} (${e.message})`)}try{return JSON.parse(o)}catch(e){throw new t(`Invalid token specified: invalid json for part #${n+1} (${e.message})`)}}])},268004,909119,e=>{"use strict";let t="mcp-session-token:";function r(e,r){let o=r?.trim()||"_anonymous";return`${t}${o}:${e}`}function o(e,t){try{let o=window.sessionStorage.getItem(r(e,t));if(!o)return null;return JSON.parse(o)}catch{return null}}function n(){try{let e=[];for(let r=0;rwindow.sessionStorage.removeItem(e))}catch{}}function a(){let e=window.location.pathname.match(/\/ui(?=\/|$)/);return e&&void 0!==e.index?window.location.pathname.substring(0,e.index+3):"/ui"}e.s(["clearAllMcpTokens",0,n,"getToken",0,o,"isTokenValid",0,function(e,t){let r=o(e,t);return!!r&&r.expires_at>Date.now()},"removeToken",0,function(e,t){try{window.sessionStorage.removeItem(r(e,t))}catch{}},"setToken",0,function(e,t,o){let n={access_token:t.access_token,expires_at:Date.now()+(null!=t.expires_in?1e3*t.expires_in:36e5),token_type:t.token_type??"bearer",...t.refresh_token?{refresh_token:t.refresh_token}:{}};try{window.sessionStorage.setItem(r(e,o),JSON.stringify(n))}catch{}}],909119),e.s(["clearTokenCookies",0,function(){if("u"{document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t};`,document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${e};`,o.forEach(r=>{let o="None"===r?" Secure;":"";document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; SameSite=${r};${o}`,document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${e}; SameSite=${r};${o}`})});try{sessionStorage.removeItem("token")}catch{}n()},"getCookie",0,function(e){if("u"t.startsWith(e+"="));if(t){let e=t.split("=").slice(1).join("=");try{return decodeURIComponent(e)}catch{return e}}if("token"===e)try{return sessionStorage.getItem(e)}catch{}return null},"storeLoginToken",0,function(e){if(e&&e.trim()){try{let t="https:"===window.location.protocol?"; Secure":"",r=a();document.cookie=`token=${encodeURIComponent(e)}; path=${r}; SameSite=Lax${t}`}catch{}try{sessionStorage.setItem("token",e)}catch{}}}],268004)},876556,e=>{"use strict";var t=e.i(565924),r=e.i(271645);e.s(["default",0,function e(o){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=[];return r.default.Children.forEach(o,function(r){(null!=r||n.keepEmpty)&&(Array.isArray(r)?a=a.concat(e(r)):(0,t.default)(r)&&r.props?a=a.concat(e(r.props.children,n)):a.push(r))}),a}])},495347,177886,786944,162129,197091,787894,696752,621796,e=>{"use strict";var t,r=e.i(271645);e.i(247167);var o=e.i(931067),n=e.i(703923),a=e.i(31575),i=e.i(33968),l=e.i(209428),s=e.i(8211),c=e.i(278409),u=e.i(233848),d=e.i(971151),f=e.i(868917),p=e.i(674813),h=e.i(211577),m=e.i(876556),g=e.i(929123),v=e.i(883110),y="RC_FORM_INTERNAL_HOOKS",b=function(){(0,v.default)(!1,"Can not find FormContext. Please make sure you wrap Field under Form.")},w=r.createContext({getFieldValue:b,getFieldsValue:b,getFieldError:b,getFieldWarning:b,getFieldsError:b,isFieldsTouched:b,isFieldTouched:b,isFieldValidating:b,isFieldsValidating:b,resetFields:b,setFields:b,setFieldValue:b,setFieldsValue:b,validateFields:b,submit:b,getInternalHooks:function(){return b(),{dispatch:b,initEntityValue:b,registerField:b,useSubscribe:b,setInitialValues:b,destroyForm:b,setCallbacks:b,registerWatch:b,getFields:b,setValidateMessages:b,setPreserve:b,getInitialValue:b}}});e.s(["HOOK_MARK",0,y,"default",0,w],177886);var $=r.createContext(null);function C(e){return null==e?[]:Array.isArray(e)?e:[e]}e.s(["default",0,$],786944);var x=e.i(410160);function E(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",tel:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var S=E(),k=e.i(487806),j=e.i(885963),O=e.i(479671);function T(e){var t="function"==typeof Map?new Map:void 0;return(T=function(e){if(null===e||!function(e){try{return -1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if((0,O.default)())return Reflect.construct.apply(null,arguments);var o=[null];o.push.apply(o,t);var n=new(e.bind.apply(e,o));return r&&(0,j.default)(n,r.prototype),n}(e,arguments,(0,k.default)(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),(0,j.default)(r,e)})(e)}var I=/%[sdj%]/g;function _(e){if(!e||!e.length)return null;var t={};return e.forEach(function(e){var r=e.field;t[r]=t[r]||[],t[r].push(e)}),t}function F(e){for(var t=arguments.length,r=Array(t>1?t-1:0),o=1;o=a)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}}):e}function P(e,t){return!!(null==e||"array"===t&&Array.isArray(e)&&!e.length)||("string"===t||"url"===t||"hex"===t||"email"===t||"date"===t||"pattern"===t||"tel"===t)&&"string"==typeof e&&!e||!1}function R(e,t,r){var o=0,n=e.length;!function a(i){if(i&&i.length)return void r(i);var l=o;o+=1,l()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,H=/^(\+[0-9]{1,3}[-\s\u2011]?)?(\([0-9]{1,4}\)[-\s\u2011]?)?([0-9]+[-\s\u2011]?)*[0-9]+$/,V=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,W={integer:function(e){return W.number(e)&&parseInt(e,10)===e},float:function(e){return W.number(e)&&!W.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return new RegExp(e),!0}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime())},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"===(0,x.default)(e)&&!W.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&e.length<=320&&!!e.match(D)},tel:function(e){return"string"==typeof e&&e.length<=32&&!!e.match(H)},url:function(e){return"string"==typeof e&&e.length<=2048&&!!e.match(L())},hex:function(e){return"string"==typeof e&&!!e.match(V)}};let U=z,G=function(e,t,r,o,n){(/^\s+$/.test(t)||""===t)&&o.push(F(n.messages.whitespace,e.fullField))},q=function(e,t,r,o,n){if(e.required&&void 0===t)return void z(e,t,r,o,n);var a=e.type;["integer","float","array","regexp","object","method","email","tel","number","date","url","hex"].indexOf(a)>-1?W[a](t)||o.push(F(n.messages.types[a],e.fullField,e.type)):a&&(0,x.default)(t)!==e.type&&o.push(F(n.messages.types[a],e.fullField,e.type))},J=function(e,t,r,o,n){var a="number"==typeof e.len,i="number"==typeof e.min,l="number"==typeof e.max,s=t,c=null,u="number"==typeof t,d="string"==typeof t,f=Array.isArray(t);if(u?c="number":d?c="string":f&&(c="array"),!c)return!1;f&&(s=t.length),d&&(s=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),a?s!==e.len&&o.push(F(n.messages[c].len,e.fullField,e.len)):i&&!l&&se.max?o.push(F(n.messages[c].max,e.fullField,e.max)):i&&l&&(se.max)&&o.push(F(n.messages[c].range,e.fullField,e.min,e.max))},K=function(e,t,r,o,n){e[A]=Array.isArray(e[A])?e[A]:[],-1===e[A].indexOf(t)&&o.push(F(n.messages[A],e.fullField,e[A].join(", ")))},X=function(e,t,r,o,n){e.pattern&&(e.pattern instanceof RegExp?(e.pattern.lastIndex=0,e.pattern.test(t)||o.push(F(n.messages.pattern.mismatch,e.fullField,t,e.pattern))):"string"==typeof e.pattern&&(new RegExp(e.pattern).test(t)||o.push(F(n.messages.pattern.mismatch,e.fullField,t,e.pattern))))},Q=function(e,t,r,o,n){var a=e.type,i=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,a)&&!e.required)return r();U(e,t,o,i,n,a),P(t,a)||q(e,t,o,i,n)}r(i)},Y={string:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,"string")&&!e.required)return r();U(e,t,o,a,n,"string"),P(t,"string")||(q(e,t,o,a,n),J(e,t,o,a,n),X(e,t,o,a,n),!0===e.whitespace&&G(e,t,o,a,n))}r(a)},method:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&q(e,t,o,a,n)}r(a)},number:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(""===t&&(t=void 0),P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},boolean:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&q(e,t,o,a,n)}r(a)},regexp:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),P(t)||q(e,t,o,a,n)}r(a)},integer:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},float:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},array:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();U(e,t,o,a,n,"array"),null!=t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},object:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&q(e,t,o,a,n)}r(a)},enum:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&K(e,t,o,a,n)}r(a)},pattern:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,"string")&&!e.required)return r();U(e,t,o,a,n),P(t,"string")||X(e,t,o,a,n)}r(a)},date:function(e,t,r,o,n){var a,i=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,"date")&&!e.required)return r();U(e,t,o,i,n),!P(t,"date")&&(a=t instanceof Date?t:new Date(t),q(e,a,o,i,n),a&&J(e,a.getTime(),o,i,n))}r(i)},url:Q,hex:Q,email:Q,tel:Q,required:function(e,t,r,o,n){var a=[],i=Array.isArray(t)?"array":(0,x.default)(t);U(e,t,o,a,n,i),r(a)},any:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n)}r(a)}};var Z=function(){function e(t){(0,c.default)(this,e),(0,h.default)(this,"rules",null),(0,h.default)(this,"_messages",S),this.define(t)}return(0,u.default)(e,[{key:"define",value:function(e){var t=this;if(!e)throw Error("Cannot configure a schema with no rules");if("object"!==(0,x.default)(e)||Array.isArray(e))throw Error("Rules must be an object");this.rules={},Object.keys(e).forEach(function(r){var o=e[r];t.rules[r]=Array.isArray(o)?o:[o]})}},{key:"messages",value:function(e){return e&&(this._messages=B(E(),e)),this._messages}},{key:"validate",value:function(t){var r=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},a=t,i=o,c=n;if("function"==typeof i&&(c=i,i={}),!this.rules||0===Object.keys(this.rules).length)return c&&c(null,a),Promise.resolve(a);if(i.messages){var u=this.messages();u===S&&(u=E()),B(u,i.messages),i.messages=u}else i.messages=this.messages();var d={};(i.keys||Object.keys(this.rules)).forEach(function(e){var o=r.rules[e],n=a[e];o.forEach(function(o){var i=o;"function"==typeof i.transform&&(a===t&&(a=(0,l.default)({},a)),null!=(n=a[e]=i.transform(n))&&(i.type=i.type||(Array.isArray(n)?"array":(0,x.default)(n)))),(i="function"==typeof i?{validator:i}:(0,l.default)({},i)).validator=r.getValidationMethod(i),i.validator&&(i.field=e,i.fullField=i.fullField||e,i.type=r.getType(i),d[e]=d[e]||[],d[e].push({rule:i,value:n,source:a,field:e}))})});var f={};return function(e,t,r,o,n){if(t.first){var a=new Promise(function(t,a){var i;R((i=[],Object.keys(e).forEach(function(t){i.push.apply(i,(0,s.default)(e[t]||[]))}),i),r,function(e){return o(e),e.length?a(new N(e,_(e))):t(n)})});return a.catch(function(e){return e}),a}var i=!0===t.firstFields?Object.keys(e):t.firstFields||[],l=Object.keys(e),c=l.length,u=0,d=[],f=new Promise(function(t,a){var f=function(e){if(d.push.apply(d,e),++u===c)return o(d),d.length?a(new N(d,_(d))):t(n)};l.length||(o(d),t(n)),l.forEach(function(t){var o=e[t];if(-1!==i.indexOf(t))R(o,r,f);else{var n=[],a=0,l=o.length;function c(e){n.push.apply(n,(0,s.default)(e||[])),++a===l&&f(n)}o.forEach(function(e){r(e,c)})}})});return f.catch(function(e){return e}),f}(d,i,function(t,r){var o,n,c,u=t.rule,d=("object"===u.type||"array"===u.type)&&("object"===(0,x.default)(u.fields)||"object"===(0,x.default)(u.defaultField));function p(e,t){return(0,l.default)((0,l.default)({},t),{},{fullField:"".concat(u.fullField,".").concat(e),fullFields:u.fullFields?[].concat((0,s.default)(u.fullFields),[e]):[e]})}function h(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=Array.isArray(o)?o:[o];!i.suppressWarning&&n.length&&e.warning("async-validator:",n),n.length&&void 0!==u.message&&null!==u.message&&(n=[].concat(u.message));var c=n.map(M(u,a));if(i.first&&c.length)return f[u.field]=1,r(c);if(d){if(u.required&&!t.value)return void 0!==u.message?c=[].concat(u.message).map(M(u,a)):i.error&&(c=[i.error(u,F(i.messages.required,u.field))]),r(c);var h={};u.defaultField&&Object.keys(t.value).map(function(e){h[e]=u.defaultField});var m={};Object.keys(h=(0,l.default)((0,l.default)({},h),t.rule.fields)).forEach(function(e){var t=h[e],r=Array.isArray(t)?t:[t];m[e]=r.map(p.bind(null,e))});var g=new e(m);g.messages(i.messages),t.rule.options&&(t.rule.options.messages=i.messages,t.rule.options.error=i.error),g.validate(t.value,t.rule.options||i,function(e){var t=[];c&&c.length&&t.push.apply(t,(0,s.default)(c)),e&&e.length&&t.push.apply(t,(0,s.default)(e)),r(t.length?t:null)})}else r(c)}if(d=d&&(u.required||!u.required&&t.value),u.field=t.field,u.asyncValidator)o=u.asyncValidator(u,t.value,h,t.source,i);else if(u.validator){try{o=u.validator(u,t.value,h,t.source,i)}catch(e){null==(n=(c=console).error)||n.call(c,e),i.suppressValidatorError||setTimeout(function(){throw e},0),h(e.message)}!0===o?h():!1===o?h("function"==typeof u.message?u.message(u.fullField||u.field):u.message||"".concat(u.fullField||u.field," fails")):o instanceof Array?h(o):o instanceof Error&&h(o.message)}o&&o.then&&o.then(function(){return h()},function(e){return h(e)})},function(e){for(var t=[],r={},o=0;o0)){e.next=23;break}return e.next=21,Promise.all(o.map(function(e,r){return en("".concat(t,".").concat(r),e,f,i,c)}));case 21:return v=e.sent,e.abrupt("return",v.reduce(function(e,t){return[].concat((0,s.default)(e),(0,s.default)(t))},[]));case 23:return y=(0,l.default)((0,l.default)({},n),{},{name:t,enum:(n.enum||[]).join(", ")},c),b=g.map(function(e){return"string"==typeof e?function(e,t){return e.replace(/\\?\$\{\w+\}/g,function(e){return e.startsWith("\\")?e.slice(1):t[e.slice(2,-1)]})}(e,y):e}),e.abrupt("return",b);case 26:case"end":return e.stop()}},e,null,[[10,15]])}))).apply(this,arguments)}function ei(){return(ei=(0,i.default)((0,a.default)().mark(function e(t){return(0,a.default)().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(t).then(function(e){var t;return(t=[]).concat.apply(t,(0,s.default)(e))}));case 1:case"end":return e.stop()}},e)}))).apply(this,arguments)}function el(){return(el=(0,i.default)((0,a.default)().mark(function e(t){var r;return(0,a.default)().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=0,e.abrupt("return",new Promise(function(e){t.forEach(function(o){o.then(function(o){o.errors.length&&e([o]),(r+=1)===t.length&&e([])})})}));case 2:case"end":return e.stop()}},e)}))).apply(this,arguments)}var es=e.i(657791);function ec(e){return C(e)}function eu(e,t){var r={};return t.forEach(function(t){var o=(0,es.default)(e,t);r=(0,er.default)(r,t,o)}),r}function ed(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return e&&e.some(function(e){return ef(t,e,r)})}function ef(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return!!e&&!!t&&(!!r||e.length===t.length)&&t.every(function(t,r){return e[r]===t})}function ep(e){var t=arguments.length<=1?void 0:arguments[1];return t&&t.target&&"object"===(0,x.default)(t.target)&&e in t.target?t.target[e]:t}function eh(e,t,r){var o=e.length;if(t<0||t>=o||r<0||r>=o)return e;var n=e[t],a=t-r;return a>0?[].concat((0,s.default)(e.slice(0,r)),[n],(0,s.default)(e.slice(r,t)),(0,s.default)(e.slice(t+1,o))):a<0?[].concat((0,s.default)(e.slice(0,t)),(0,s.default)(e.slice(t+1,r+1)),[n],(0,s.default)(e.slice(r+1,o))):e}var em=es,eg=["name"],ev=[];function ey(e,t,r,o,n,a){return"function"==typeof e?e(t,r,"source"in a?{source:a.source}:{}):o!==n}var eb=function(e){(0,f.default)(o,e);var t=(0,p.default)(o);function o(e){var n;return(0,c.default)(this,o),n=t.call(this,e),(0,h.default)((0,d.default)(n),"state",{resetCount:0}),(0,h.default)((0,d.default)(n),"cancelRegisterFunc",null),(0,h.default)((0,d.default)(n),"mounted",!1),(0,h.default)((0,d.default)(n),"touched",!1),(0,h.default)((0,d.default)(n),"dirty",!1),(0,h.default)((0,d.default)(n),"validatePromise",void 0),(0,h.default)((0,d.default)(n),"prevValidating",void 0),(0,h.default)((0,d.default)(n),"errors",ev),(0,h.default)((0,d.default)(n),"warnings",ev),(0,h.default)((0,d.default)(n),"cancelRegister",function(){var e=n.props,t=e.preserve,r=e.isListField,o=e.name;n.cancelRegisterFunc&&n.cancelRegisterFunc(r,t,ec(o)),n.cancelRegisterFunc=null}),(0,h.default)((0,d.default)(n),"getNamePath",function(){var e=n.props,t=e.name,r=e.fieldContext.prefixName;return void 0!==t?[].concat((0,s.default)(void 0===r?[]:r),(0,s.default)(t)):[]}),(0,h.default)((0,d.default)(n),"getRules",function(){var e=n.props,t=e.rules,r=e.fieldContext;return(void 0===t?[]:t).map(function(e){return"function"==typeof e?e(r):e})}),(0,h.default)((0,d.default)(n),"refresh",function(){n.mounted&&n.setState(function(e){return{resetCount:e.resetCount+1}})}),(0,h.default)((0,d.default)(n),"metaCache",null),(0,h.default)((0,d.default)(n),"triggerMetaEvent",function(e){var t=n.props.onMetaChange;if(t){var r=(0,l.default)((0,l.default)({},n.getMeta()),{},{destroy:e});(0,g.default)(n.metaCache,r)||t(r),n.metaCache=r}else n.metaCache=null}),(0,h.default)((0,d.default)(n),"onStoreChange",function(e,t,r){var o=n.props,a=o.shouldUpdate,i=o.dependencies,l=void 0===i?[]:i,s=o.onReset,c=r.store,u=n.getNamePath(),d=n.getValue(e),f=n.getValue(c),p=t&&ed(t,u);switch("valueUpdate"===r.type&&"external"===r.source&&!(0,g.default)(d,f)&&(n.touched=!0,n.dirty=!0,n.validatePromise=null,n.errors=ev,n.warnings=ev,n.triggerMetaEvent()),r.type){case"reset":if(!t||p){n.touched=!1,n.dirty=!1,n.validatePromise=void 0,n.errors=ev,n.warnings=ev,n.triggerMetaEvent(),null==s||s(),n.refresh();return}break;case"remove":if(a&&ey(a,e,c,d,f,r))return void n.reRender();break;case"setField":var h=r.data;if(p){"touched"in h&&(n.touched=h.touched),"validating"in h&&!("originRCField"in h)&&(n.validatePromise=h.validating?Promise.resolve([]):null),"errors"in h&&(n.errors=h.errors||ev),"warnings"in h&&(n.warnings=h.warnings||ev),n.dirty=!0,n.triggerMetaEvent(),n.reRender();return}if("value"in h&&ed(t,u,!0)||a&&!u.length&&ey(a,e,c,d,f,r))return void n.reRender();break;case"dependenciesUpdate":if(l.map(ec).some(function(e){return ed(r.relatedFields,e)}))return void n.reRender();break;default:if(p||(!l.length||u.length||a)&&ey(a,e,c,d,f,r))return void n.reRender()}!0===a&&n.reRender()}),(0,h.default)((0,d.default)(n),"validateRules",function(e){var t=n.getNamePath(),r=n.getValue(),o=e||{},c=o.triggerName,u=o.validateOnly,d=Promise.resolve().then((0,i.default)((0,a.default)().mark(function o(){var u,f,p,h,m,g,y;return(0,a.default)().wrap(function(o){for(;;)switch(o.prev=o.next){case 0:if(n.mounted){o.next=2;break}return o.abrupt("return",[]);case 2:if(p=void 0!==(f=(u=n.props).validateFirst)&&f,h=u.messageVariables,m=u.validateDebounce,g=n.getRules(),c&&(g=g.filter(function(e){return e}).filter(function(e){var t=e.validateTrigger;return!t||C(t).includes(c)})),!(m&&c)){o.next=10;break}return o.next=8,new Promise(function(e){setTimeout(e,m)});case 8:if(n.validatePromise===d){o.next=10;break}return o.abrupt("return",[]);case 10:return(y=function(e,t,r,o,n,s){var c,u,d=e.join("."),f=r.map(function(e,t){var r=e.validator,o=(0,l.default)((0,l.default)({},e),{},{ruleIndex:t});return r&&(o.validator=function(e,t,o){var n=!1,a=r(e,t,function(){for(var e=arguments.length,t=Array(e),r=0;r0&&void 0!==arguments[0]?arguments[0]:ev;if(n.validatePromise===d){n.validatePromise=null;var t,r=[],o=[];null==(t=e.forEach)||t.call(e,function(e){var t=e.rule.warningOnly,n=e.errors,a=void 0===n?ev:n;t?o.push.apply(o,(0,s.default)(a)):r.push.apply(r,(0,s.default)(a))}),n.errors=r,n.warnings=o,n.triggerMetaEvent(),n.reRender()}}),o.abrupt("return",y);case 13:case"end":return o.stop()}},o)})));return void 0!==u&&u||(n.validatePromise=d,n.dirty=!0,n.errors=ev,n.warnings=ev,n.triggerMetaEvent(),n.reRender()),d}),(0,h.default)((0,d.default)(n),"isFieldValidating",function(){return!!n.validatePromise}),(0,h.default)((0,d.default)(n),"isFieldTouched",function(){return n.touched}),(0,h.default)((0,d.default)(n),"isFieldDirty",function(){return!!n.dirty||void 0!==n.props.initialValue||void 0!==(0,n.props.fieldContext.getInternalHooks(y).getInitialValue)(n.getNamePath())}),(0,h.default)((0,d.default)(n),"getErrors",function(){return n.errors}),(0,h.default)((0,d.default)(n),"getWarnings",function(){return n.warnings}),(0,h.default)((0,d.default)(n),"isListField",function(){return n.props.isListField}),(0,h.default)((0,d.default)(n),"isList",function(){return n.props.isList}),(0,h.default)((0,d.default)(n),"isPreserve",function(){return n.props.preserve}),(0,h.default)((0,d.default)(n),"getMeta",function(){return n.prevValidating=n.isFieldValidating(),{touched:n.isFieldTouched(),validating:n.prevValidating,errors:n.errors,warnings:n.warnings,name:n.getNamePath(),validated:null===n.validatePromise}}),(0,h.default)((0,d.default)(n),"getOnlyChild",function(e){if("function"==typeof e){var t=n.getMeta();return(0,l.default)((0,l.default)({},n.getOnlyChild(e(n.getControlled(),t,n.props.fieldContext))),{},{isFunction:!0})}var o=(0,m.default)(e);return 1===o.length&&r.isValidElement(o[0])?{child:o[0],isFunction:!1}:{child:o,isFunction:!1}}),(0,h.default)((0,d.default)(n),"getValue",function(e){var t=n.props.fieldContext.getFieldsValue,r=n.getNamePath();return(0,em.default)(e||t(!0),r)}),(0,h.default)((0,d.default)(n),"getControlled",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=n.props,r=t.name,o=t.trigger,a=t.validateTrigger,i=t.getValueFromEvent,s=t.normalize,c=t.valuePropName,u=t.getValueProps,d=t.fieldContext,f=void 0!==a?a:d.validateTrigger,p=n.getNamePath(),m=d.getInternalHooks,g=d.getFieldsValue,v=m(y).dispatch,b=n.getValue(),w=u||function(e){return(0,h.default)({},c,e)},$=e[o],x=void 0!==r?w(b):{},E=(0,l.default)((0,l.default)({},e),x);return E[o]=function(){n.touched=!0,n.dirty=!0,n.triggerMetaEvent();for(var e,t=arguments.length,r=Array(t),o=0;o=0&&t<=r.length?(f.keys=[].concat((0,s.default)(f.keys.slice(0,t)),[f.id],(0,s.default)(f.keys.slice(t))),o([].concat((0,s.default)(r.slice(0,t)),[e],(0,s.default)(r.slice(t))))):(f.keys=[].concat((0,s.default)(f.keys),[f.id]),o([].concat((0,s.default)(r),[e]))),f.id+=1},remove:function(e){var t=i(),r=new Set(Array.isArray(e)?e:[e]);r.size<=0||(f.keys=f.keys.filter(function(e,t){return!r.has(t)}),o(t.filter(function(e,t){return!r.has(t)})))},move:function(e,t){if(e!==t){var r=i();e<0||e>=r.length||t<0||t>=r.length||(f.keys=eh(f.keys,e,t),o(eh(r,e,t)))}}},t)})))};e.s(["default",0,e$],197091);var eC=e.i(392221),ex="__@field_split__";function eE(e){return e.map(function(e){return"".concat((0,x.default)(e),":").concat(e)}).join(ex)}var eS=function(){function e(){(0,c.default)(this,e),(0,h.default)(this,"kvs",new Map)}return(0,u.default)(e,[{key:"set",value:function(e,t){this.kvs.set(eE(e),t)}},{key:"get",value:function(e){return this.kvs.get(eE(e))}},{key:"update",value:function(e,t){var r=t(this.get(e));r?this.set(e,r):this.delete(e)}},{key:"delete",value:function(e){this.kvs.delete(eE(e))}},{key:"map",value:function(e){return(0,s.default)(this.kvs.entries()).map(function(t){var r=(0,eC.default)(t,2),o=r[0],n=r[1];return e({key:o.split(ex).map(function(e){var t=e.match(/^([^:]*):(.*)$/),r=(0,eC.default)(t,3),o=r[1],n=r[2];return"number"===o?Number(n):n}),value:n})})}},{key:"toJSON",value:function(){var e={};return this.map(function(t){var r=t.key,o=t.value;return e[r.join(".")]=o,null}),e}}]),e}(),em=es,ek=["name"],ej=(0,u.default)(function e(t){var r=this;(0,c.default)(this,e),(0,h.default)(this,"formHooked",!1),(0,h.default)(this,"forceRootUpdate",void 0),(0,h.default)(this,"subscribable",!0),(0,h.default)(this,"store",{}),(0,h.default)(this,"fieldEntities",[]),(0,h.default)(this,"initialValues",{}),(0,h.default)(this,"callbacks",{}),(0,h.default)(this,"validateMessages",null),(0,h.default)(this,"preserve",null),(0,h.default)(this,"lastValidatePromise",null),(0,h.default)(this,"getForm",function(){return{getFieldValue:r.getFieldValue,getFieldsValue:r.getFieldsValue,getFieldError:r.getFieldError,getFieldWarning:r.getFieldWarning,getFieldsError:r.getFieldsError,isFieldsTouched:r.isFieldsTouched,isFieldTouched:r.isFieldTouched,isFieldValidating:r.isFieldValidating,isFieldsValidating:r.isFieldsValidating,resetFields:r.resetFields,setFields:r.setFields,setFieldValue:r.setFieldValue,setFieldsValue:r.setFieldsValue,validateFields:r.validateFields,submit:r.submit,_init:!0,getInternalHooks:r.getInternalHooks}}),(0,h.default)(this,"getInternalHooks",function(e){return e===y?(r.formHooked=!0,{dispatch:r.dispatch,initEntityValue:r.initEntityValue,registerField:r.registerField,useSubscribe:r.useSubscribe,setInitialValues:r.setInitialValues,destroyForm:r.destroyForm,setCallbacks:r.setCallbacks,setValidateMessages:r.setValidateMessages,getFields:r.getFields,setPreserve:r.setPreserve,getInitialValue:r.getInitialValue,registerWatch:r.registerWatch}):((0,v.default)(!1,"`getInternalHooks` is internal usage. Should not call directly."),null)}),(0,h.default)(this,"useSubscribe",function(e){r.subscribable=e}),(0,h.default)(this,"prevWithoutPreserves",null),(0,h.default)(this,"setInitialValues",function(e,t){if(r.initialValues=e||{},t){var o,n=(0,er.merge)(e,r.store);null==(o=r.prevWithoutPreserves)||o.map(function(t){var r=t.key;n=(0,er.default)(n,r,(0,em.default)(e,r))}),r.prevWithoutPreserves=null,r.updateStore(n)}}),(0,h.default)(this,"destroyForm",function(e){if(e)r.updateStore({});else{var t=new eS;r.getFieldEntities(!0).forEach(function(e){r.isMergedPreserve(e.isPreserve())||t.set(e.getNamePath(),!0)}),r.prevWithoutPreserves=t}}),(0,h.default)(this,"getInitialValue",function(e){var t=(0,em.default)(r.initialValues,e);return e.length?(0,er.merge)(t):t}),(0,h.default)(this,"setCallbacks",function(e){r.callbacks=e}),(0,h.default)(this,"setValidateMessages",function(e){r.validateMessages=e}),(0,h.default)(this,"setPreserve",function(e){r.preserve=e}),(0,h.default)(this,"watchList",[]),(0,h.default)(this,"registerWatch",function(e){return r.watchList.push(e),function(){r.watchList=r.watchList.filter(function(t){return t!==e})}}),(0,h.default)(this,"notifyWatch",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(r.watchList.length){var t=r.getFieldsValue(),o=r.getFieldsValue(!0);r.watchList.forEach(function(r){r(t,o,e)})}}),(0,h.default)(this,"timeoutId",null),(0,h.default)(this,"warningUnhooked",function(){}),(0,h.default)(this,"updateStore",function(e){r.store=e}),(0,h.default)(this,"getFieldEntities",function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return e?r.fieldEntities.filter(function(e){return e.getNamePath().length}):r.fieldEntities}),(0,h.default)(this,"getFieldsMap",function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=new eS;return r.getFieldEntities(e).forEach(function(e){var r=e.getNamePath();t.set(r,e)}),t}),(0,h.default)(this,"getFieldEntitiesForNamePathList",function(e){if(!e)return r.getFieldEntities(!0);var t=r.getFieldsMap(!0);return e.map(function(e){var r=ec(e);return t.get(r)||{INVALIDATE_NAME_PATH:ec(e)}})}),(0,h.default)(this,"getFieldsValue",function(e,t){if(r.warningUnhooked(),!0===e||Array.isArray(e)?(o=e,n=t):e&&"object"===(0,x.default)(e)&&(a=e.strict,n=e.filter),!0===o&&!n)return r.store;var o,n,a,i=r.getFieldEntitiesForNamePathList(Array.isArray(o)?o:null),l=[];return i.forEach(function(e){var t,r,i,s="INVALIDATE_NAME_PATH"in e?e.INVALIDATE_NAME_PATH:e.getNamePath();if(a){if(null!=(i=e.isList)&&i.call(e))return}else if(!o&&null!=(t=(r=e).isListField)&&t.call(r))return;if(n){var c="getMeta"in e?e.getMeta():null;n(c)&&l.push(s)}else l.push(s)}),eu(r.store,l.map(ec))}),(0,h.default)(this,"getFieldValue",function(e){r.warningUnhooked();var t=ec(e);return(0,em.default)(r.store,t)}),(0,h.default)(this,"getFieldsError",function(e){return r.warningUnhooked(),r.getFieldEntitiesForNamePathList(e).map(function(t,r){return!t||"INVALIDATE_NAME_PATH"in t?{name:ec(e[r]),errors:[],warnings:[]}:{name:t.getNamePath(),errors:t.getErrors(),warnings:t.getWarnings()}})}),(0,h.default)(this,"getFieldError",function(e){r.warningUnhooked();var t=ec(e);return r.getFieldsError([t])[0].errors}),(0,h.default)(this,"getFieldWarning",function(e){r.warningUnhooked();var t=ec(e);return r.getFieldsError([t])[0].warnings}),(0,h.default)(this,"isFieldsTouched",function(){r.warningUnhooked();for(var e,t=arguments.length,o=Array(t),n=0;n0&&void 0!==arguments[0]?arguments[0]:{},o=new eS,n=r.getFieldEntities(!0);n.forEach(function(e){var t=e.props.initialValue,r=e.getNamePath();if(void 0!==t){var n=o.get(r)||new Set;n.add({entity:e,value:t}),o.set(r,n)}}),t.entities?e=t.entities:t.namePathList?(e=[],t.namePathList.forEach(function(t){var r,n=o.get(t);n&&(r=e).push.apply(r,(0,s.default)((0,s.default)(n).map(function(e){return e.entity})))})):e=n,e.forEach(function(e){if(void 0!==e.props.initialValue){var n=e.getNamePath();if(void 0!==r.getInitialValue(n))(0,v.default)(!1,"Form already set 'initialValues' with path '".concat(n.join("."),"'. Field can not overwrite it."));else{var a=o.get(n);if(a&&a.size>1)(0,v.default)(!1,"Multiple Field with path '".concat(n.join("."),"' set 'initialValue'. Can not decide which one to pick."));else if(a){var i=r.getFieldValue(n);e.isListField()||t.skipExist&&void 0!==i||r.updateStore((0,er.default)(r.store,n,(0,s.default)(a)[0].value))}}}})}),(0,h.default)(this,"resetFields",function(e){r.warningUnhooked();var t=r.store;if(!e){r.updateStore((0,er.merge)(r.initialValues)),r.resetWithFieldInitialValue(),r.notifyObservers(t,null,{type:"reset"}),r.notifyWatch();return}var o=e.map(ec);o.forEach(function(e){var t=r.getInitialValue(e);r.updateStore((0,er.default)(r.store,e,t))}),r.resetWithFieldInitialValue({namePathList:o}),r.notifyObservers(t,o,{type:"reset"}),r.notifyWatch(o)}),(0,h.default)(this,"setFields",function(e){r.warningUnhooked();var t=r.store,o=[];e.forEach(function(e){var a=e.name,i=(0,n.default)(e,ek),l=ec(a);o.push(l),"value"in i&&r.updateStore((0,er.default)(r.store,l,i.value)),r.notifyObservers(t,[l],{type:"setField",data:e})}),r.notifyWatch(o)}),(0,h.default)(this,"getFields",function(){return r.getFieldEntities(!0).map(function(e){var t=e.getNamePath(),o=e.getMeta(),n=(0,l.default)((0,l.default)({},o),{},{name:t,value:r.getFieldValue(t)});return Object.defineProperty(n,"originRCField",{value:!0}),n})}),(0,h.default)(this,"initEntityValue",function(e){var t=e.props.initialValue;if(void 0!==t){var o=e.getNamePath();void 0===(0,em.default)(r.store,o)&&r.updateStore((0,er.default)(r.store,o,t))}}),(0,h.default)(this,"isMergedPreserve",function(e){var t=void 0!==e?e:r.preserve;return null==t||t}),(0,h.default)(this,"registerField",function(e){r.fieldEntities.push(e);var t=e.getNamePath();if(r.notifyWatch([t]),void 0!==e.props.initialValue){var o=r.store;r.resetWithFieldInitialValue({entities:[e],skipExist:!0}),r.notifyObservers(o,[e.getNamePath()],{type:"valueUpdate",source:"internal"})}return function(o,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(r.fieldEntities=r.fieldEntities.filter(function(t){return t!==e}),!r.isMergedPreserve(n)&&(!o||a.length>1)){var i=o?void 0:r.getInitialValue(t);if(t.length&&r.getFieldValue(t)!==i&&r.fieldEntities.every(function(e){return!ef(e.getNamePath(),t)})){var l=r.store;r.updateStore((0,er.default)(l,t,i,!0)),r.notifyObservers(l,[t],{type:"remove"}),r.triggerDependenciesUpdate(l,t)}}r.notifyWatch([t])}}),(0,h.default)(this,"dispatch",function(e){switch(e.type){case"updateValue":var t=e.namePath,o=e.value;r.updateValue(t,o);break;case"validateField":var n=e.namePath,a=e.triggerName;r.validateFields([n],{triggerName:a})}}),(0,h.default)(this,"notifyObservers",function(e,t,o){if(r.subscribable){var n=(0,l.default)((0,l.default)({},o),{},{store:r.getFieldsValue(!0)});r.getFieldEntities().forEach(function(r){(0,r.onStoreChange)(e,t,n)})}else r.forceRootUpdate()}),(0,h.default)(this,"triggerDependenciesUpdate",function(e,t){var o=r.getDependencyChildrenFields(t);return o.length&&r.validateFields(o),r.notifyObservers(e,o,{type:"dependenciesUpdate",relatedFields:[t].concat((0,s.default)(o))}),o}),(0,h.default)(this,"updateValue",function(e,t){var o=ec(e),n=r.store;r.updateStore((0,er.default)(r.store,o,t)),r.notifyObservers(n,[o],{type:"valueUpdate",source:"internal"}),r.notifyWatch([o]);var a=r.triggerDependenciesUpdate(n,o),i=r.callbacks.onValuesChange;i&&i(eu(r.store,[o]),r.getFieldsValue()),r.triggerOnFieldsChange([o].concat((0,s.default)(a)))}),(0,h.default)(this,"setFieldsValue",function(e){r.warningUnhooked();var t=r.store;if(e){var o=(0,er.merge)(r.store,e);r.updateStore(o)}r.notifyObservers(t,null,{type:"valueUpdate",source:"external"}),r.notifyWatch()}),(0,h.default)(this,"setFieldValue",function(e,t){r.setFields([{name:e,value:t,errors:[],warnings:[]}])}),(0,h.default)(this,"getDependencyChildrenFields",function(e){var t=new Set,o=[],n=new eS;return r.getFieldEntities().forEach(function(e){(e.props.dependencies||[]).forEach(function(t){var r=ec(t);n.update(r,function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Set;return t.add(e),t})})}),!function e(r){(n.get(r)||new Set).forEach(function(r){if(!t.has(r)){t.add(r);var n=r.getNamePath();r.isFieldDirty()&&n.length&&(o.push(n),e(n))}})}(e),o}),(0,h.default)(this,"triggerOnFieldsChange",function(e,t){var o=r.callbacks.onFieldsChange;if(o){var n=r.getFields();if(t){var a=new eS;t.forEach(function(e){var t=e.name,r=e.errors;a.set(t,r)}),n.forEach(function(e){e.errors=a.get(e.name)||e.errors})}var i=n.filter(function(t){return ed(e,t.name)});i.length&&o(i,n)}}),(0,h.default)(this,"validateFields",function(e,t){r.warningUnhooked(),Array.isArray(e)||"string"==typeof e||"string"==typeof t?(i=e,c=t):c=e;var o,n,a,i,c,u=!!i,d=u?i.map(ec):[],f=[],p=String(Date.now()),h=new Set,m=c||{},g=m.recursive,v=m.dirty;r.getFieldEntities(!0).forEach(function(e){if((u||d.push(e.getNamePath()),e.props.rules&&e.props.rules.length)&&(!v||e.isFieldDirty())){var t=e.getNamePath();if(h.add(t.join(p)),!u||ed(d,t,g)){var o=e.validateRules((0,l.default)({validateMessages:(0,l.default)((0,l.default)({},et),r.validateMessages)},c));f.push(o.then(function(){return{name:t,errors:[],warnings:[]}}).catch(function(e){var r,o=[],n=[];return(null==(r=e.forEach)||r.call(e,function(e){var t=e.rule.warningOnly,r=e.errors;t?n.push.apply(n,(0,s.default)(r)):o.push.apply(o,(0,s.default)(r))}),o.length)?Promise.reject({name:t,errors:o,warnings:n}):{name:t,errors:o,warnings:n}}))}}});var y=(o=!1,n=f.length,a=[],f.length?new Promise(function(e,t){f.forEach(function(r,i){r.catch(function(e){return o=!0,e}).then(function(r){n-=1,a[i]=r,n>0||(o&&t(a),e(a))})})}):Promise.resolve([]));r.lastValidatePromise=y,y.catch(function(e){return e}).then(function(e){var t=e.map(function(e){return e.name});r.notifyObservers(r.store,t,{type:"validateFinish"}),r.triggerOnFieldsChange(t,e)});var b=y.then(function(){return r.lastValidatePromise===y?Promise.resolve(r.getFieldsValue(d)):Promise.reject([])}).catch(function(e){var t=e.filter(function(e){return e&&e.errors.length});return Promise.reject({values:r.getFieldsValue(d),errorFields:t,outOfDate:r.lastValidatePromise!==y})});b.catch(function(e){return e});var w=d.filter(function(e){return h.has(e.join(p))});return r.triggerOnFieldsChange(w),b}),(0,h.default)(this,"submit",function(){r.warningUnhooked(),r.validateFields().then(function(e){var t=r.callbacks.onFinish;if(t)try{t(e)}catch(e){console.error(e)}}).catch(function(e){var t=r.callbacks.onFinishFailed;t&&t(e)})}),this.forceRootUpdate=t});let eO=function(e){var t=r.useRef(),o=r.useState({}),n=(0,eC.default)(o,2)[1];return t.current||(e?t.current=e:t.current=new ej(function(){n({})}).getForm()),[t.current]};e.s(["default",0,eO],787894);var eT=r.createContext({triggerFormChange:function(){},triggerFormFinish:function(){},registerForm:function(){},unregisterForm:function(){}}),eI=function(e){var t=e.validateMessages,o=e.onFormChange,n=e.onFormFinish,a=e.children,i=r.useContext(eT),s=r.useRef({});return r.createElement(eT.Provider,{value:(0,l.default)((0,l.default)({},i),{},{validateMessages:(0,l.default)((0,l.default)({},i.validateMessages),t),triggerFormChange:function(e,t){o&&o(e,{changedFields:t,forms:s.current}),i.triggerFormChange(e,t)},triggerFormFinish:function(e,t){n&&n(e,{values:t,forms:s.current}),i.triggerFormFinish(e,t)},registerForm:function(e,t){e&&(s.current=(0,l.default)((0,l.default)({},s.current),{},(0,h.default)({},e,t))),i.registerForm(e,t)},unregisterForm:function(e){var t=(0,l.default)({},s.current);delete t[e],s.current=t,i.unregisterForm(e)}})},a)};e.s(["FormProvider",0,eI,"default",0,eT],696752);var e_=["name","initialValues","fields","form","preserve","children","component","validateMessages","validateTrigger","onValuesChange","onFieldsChange","onFinish","onFinishFailed","clearOnDestroy"],em=es;function eF(e){try{return JSON.stringify(e)}catch(e){return Math.random()}}var eP=function(){};let eR=function(){for(var e=arguments.length,t=Array(e),o=0;o1?t-1:0),o=1;o{"use strict";e.s(["default",0,function(e,t){var r=Object.assign({},e);return Array.isArray(t)&&t.forEach(function(e){delete r[e]}),r}])},62139,e=>{"use strict";var t=e.i(271645);e.i(495347);var r=e.i(696752),o=e.i(529681);let n=t.createContext({labelAlign:"right",layout:"horizontal",itemRef:()=>{}}),a=t.createContext(null),i=t.createContext({prefixCls:""}),l=t.createContext({}),s=t.createContext(void 0);e.s(["FormContext",0,n,"FormItemInputContext",0,l,"FormItemPrefixContext",0,i,"FormProvider",0,e=>{let n=(0,o.default)(e,["prefixCls"]);return t.createElement(r.FormProvider,Object.assign({},n))},"NoFormStyle",0,({children:e,status:r,override:o})=>{let n=t.useContext(l),a=t.useMemo(()=>{let e=Object.assign({},n);return o&&delete e.isFormItemInput,r&&(delete e.status,delete e.hasFeedback,delete e.feedbackIcon),e},[r,o,n]);return t.createElement(l.Provider,{value:a},e)},"NoStyleItemContext",0,a,"VariantContext",0,s])},613541,e=>{"use strict";var t=e.i(242064);let r=()=>({height:0,opacity:0}),o=e=>{let{scrollHeight:t}=e;return{height:t,opacity:1}},n=e=>({height:e?e.offsetHeight:0}),a=(e,t)=>(null==t?void 0:t.deadline)===!0||"height"===t.propertyName;e.s(["default",0,(e=t.defaultPrefixCls)=>({motionName:`${e}-motion-collapse`,onAppearStart:r,onEnterStart:r,onAppearActive:o,onEnterActive:o,onLeaveStart:n,onLeaveActive:r,onAppearEnd:a,onEnterEnd:a,onLeaveEnd:a,motionDeadline:500}),"getTransitionName",0,(e,t,r)=>void 0!==r?r:`${e}-${t}`])},830919,e=>{"use strict";var t=e.i(271645);e.s(["default",0,function(e){let[r,o]=t.useState(e);return t.useEffect(()=>{let t=setTimeout(()=>{o(e)},10*!e.length);return()=>{clearTimeout(t)}},[e]),r}])},447580,e=>{"use strict";e.s(["genCollapseMotion",0,e=>({[e.componentCls]:{[`${e.antCls}-motion-collapse-legacy`]:{overflow:"hidden","&-active":{transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}},[`${e.antCls}-motion-collapse`]:{overflow:"hidden",transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}}})],447580)},402366,e=>{"use strict";e.s(["initMotion",0,(e,t,r,o,n=!1)=>{let a=n?"&":"";return{[` ${a}${e}-enter, @@ -95,4 +95,4 @@ ${u}${d}topRight `]:{animationName:i.slideDownOut},"&-hidden":{display:"none"},[n]:Object.assign(Object.assign({},l(e)),{cursor:"pointer",transition:`background ${e.motionDurationSlow} ease`,borderRadius:e.borderRadiusSM,"&-group":{color:e.colorTextDescription,fontSize:e.fontSizeSM,cursor:"default"},"&-option":{display:"flex","&-content":Object.assign({flex:"auto"},t.textEllipsis),"&-state":{flex:"none",display:"flex",alignItems:"center"},[`&-active:not(${n}-option-disabled)`]:{backgroundColor:e.optionActiveBg},[`&-selected:not(${n}-option-disabled)`]:{color:e.optionSelectedColor,fontWeight:e.optionSelectedFontWeight,backgroundColor:e.optionSelectedBg,[`${n}-option-state`]:{color:e.colorPrimary}},"&-disabled":{[`&${n}-option-selected`]:{backgroundColor:e.colorBgContainerDisabled},color:e.colorTextDisabled,cursor:"not-allowed"},"&-grouped":{paddingInlineStart:e.calc(e.controlPaddingHorizontal).mul(2).equal()}},"&-empty":Object.assign(Object.assign({},l(e)),{color:e.colorTextDisabled})}),[`${f}:has(+ ${f})`]:{borderEndStartRadius:0,borderEndEndRadius:0,[`& + ${f}`]:{borderStartStartRadius:0,borderStartEndRadius:0}},"&-rtl":{direction:"rtl"}})},(0,i.initSlideMotion)(e,"slide-up"),(0,i.initSlideMotion)(e,"slide-down"),(0,a.initMoveMotion)(e,"move-up"),(0,a.initMoveMotion)(e,"move-down")]})(e),{[`${o}-rtl`]:{direction:"rtl"}},(0,r.genCompactItemStyle)(e,{borderElCls:`${o}-selector`,focusElCls:`${o}-focused`})]})(v),{[v.componentCls]:Object.assign(Object.assign(Object.assign(Object.assign({},{"&-outlined":Object.assign(Object.assign(Object.assign(Object.assign({},d(v,{borderColor:v.colorBorder,hoverBorderHover:v.hoverBorderColor,activeBorderColor:v.activeBorderColor,activeOutlineColor:v.activeOutlineColor,color:v.colorText})),f(v,{status:"error",borderColor:v.colorError,hoverBorderHover:v.colorErrorHover,activeBorderColor:v.colorError,activeOutlineColor:v.colorErrorOutline,color:v.colorError})),f(v,{status:"warning",borderColor:v.colorWarning,hoverBorderHover:v.colorWarningHover,activeBorderColor:v.colorWarning,activeOutlineColor:v.colorWarningOutline,color:v.colorWarning})),{[`&${v.componentCls}-disabled`]:{[`&:not(${v.componentCls}-customize-input) ${v.componentCls}-selector`]:{background:v.colorBgContainerDisabled,color:v.colorTextDisabled}},[`&${v.componentCls}-multiple ${v.componentCls}-selection-item`]:{background:v.multipleItemBg,border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} ${v.multipleItemBorderColor}`}})}),{"&-filled":Object.assign(Object.assign(Object.assign(Object.assign({},p(v,{bg:v.colorFillTertiary,hoverBg:v.colorFillSecondary,activeBorderColor:v.activeBorderColor,color:v.colorText})),h(v,{status:"error",bg:v.colorErrorBg,hoverBg:v.colorErrorBgHover,activeBorderColor:v.colorError,color:v.colorError})),h(v,{status:"warning",bg:v.colorWarningBg,hoverBg:v.colorWarningBgHover,activeBorderColor:v.colorWarning,color:v.colorWarning})),{[`&${v.componentCls}-disabled`]:{[`&:not(${v.componentCls}-customize-input) ${v.componentCls}-selector`]:{borderColor:v.colorBorder,background:v.colorBgContainerDisabled,color:v.colorTextDisabled}},[`&${v.componentCls}-multiple ${v.componentCls}-selection-item`]:{background:v.colorBgContainer,border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} ${v.colorSplit}`}})}),{"&-borderless":{[`${v.componentCls}-selector`]:{background:"transparent",border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} transparent`},[`&${v.componentCls}-disabled`]:{[`&:not(${v.componentCls}-customize-input) ${v.componentCls}-selector`]:{color:v.colorTextDisabled}},[`&${v.componentCls}-multiple ${v.componentCls}-selection-item`]:{background:v.multipleItemBg,border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} ${v.multipleItemBorderColor}`},[`&${v.componentCls}-status-error`]:{[`${v.componentCls}-prefix, ${v.componentCls}-selection-item`]:{color:v.colorError}},[`&${v.componentCls}-status-warning`]:{[`${v.componentCls}-prefix, ${v.componentCls}-selection-item`]:{color:v.colorWarning}}}}),{"&-underlined":Object.assign(Object.assign(Object.assign(Object.assign({},m(v,{borderColor:v.colorBorder,hoverBorderHover:v.hoverBorderColor,activeBorderColor:v.activeBorderColor,activeOutlineColor:v.activeOutlineColor,color:v.colorText})),g(v,{status:"error",borderColor:v.colorError,hoverBorderHover:v.colorErrorHover,activeBorderColor:v.colorError,activeOutlineColor:v.colorErrorOutline,color:v.colorError})),g(v,{status:"warning",borderColor:v.colorWarning,hoverBorderHover:v.colorWarningHover,activeBorderColor:v.colorWarning,activeOutlineColor:v.colorWarningOutline,color:v.colorWarning})),{[`&${v.componentCls}-disabled`]:{[`&:not(${v.componentCls}-customize-input) ${v.componentCls}-selector`]:{color:v.colorTextDisabled}},[`&${v.componentCls}-multiple ${v.componentCls}-selection-item`]:{background:v.multipleItemBg,border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} ${v.multipleItemBorderColor}`}})})}]},e=>{let{fontSize:t,lineHeight:r,lineWidth:o,controlHeight:n,controlHeightSM:a,controlHeightLG:i,paddingXXS:l,controlPaddingHorizontal:s,zIndexPopupBase:c,colorText:u,fontWeightStrong:d,controlItemBgActive:f,controlItemBgHover:p,colorBgContainer:h,colorFillSecondary:m,colorBgContainerDisabled:g,colorTextDisabled:v,colorPrimaryHover:y,colorPrimary:b,controlOutline:w}=e,$=2*l,C=2*o,x=Math.min(n-$,n-C),E=Math.min(a-$,a-C),S=Math.min(i-$,i-C);return{INTERNAL_FIXED_ITEM_MARGIN:Math.floor(l/2),zIndexPopup:c+50,optionSelectedColor:u,optionSelectedFontWeight:d,optionSelectedBg:f,optionActiveBg:p,optionPadding:`${(n-t*r)/2}px ${s}px`,optionFontSize:t,optionLineHeight:r,optionHeight:n,selectorBg:h,clearBg:h,singleItemHeightLG:i,multipleItemBg:m,multipleItemBorderColor:"transparent",multipleItemHeight:x,multipleItemHeightSM:E,multipleItemHeightLG:S,multipleSelectorBgDisabled:g,multipleItemColorDisabled:v,multipleItemBorderColorDisabled:"transparent",showArrowPaddingInlineEnd:Math.ceil(1.25*e.fontSize),hoverBorderColor:y,activeBorderColor:b,activeOutlineColor:w,selectAffixPadding:l}},{unitless:{optionLineHeight:!0,optionSelectedFontWeight:!0}});e.s(["default",0,v],950302)},121229,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"}}]},name:"check",theme:"outlined"};var n=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(n.default,(0,t.default)({},e,{ref:a,icon:o}))});e.s(["default",0,a],121229)},729151,e=>{"use strict";var t=e.i(271645),r=e.i(121229),o=e.i(726289),n=e.i(864517),a=e.i(247153),i=e.i(739295),l=e.i(38953);e.s(["default",0,function({suffixIcon:e,clearIcon:s,menuItemSelectedIcon:c,removeIcon:u,loading:d,multiple:f,hasFeedback:p,prefixCls:h,showSuffixIcon:m,feedbackIcon:g,showArrow:v,componentName:y}){let b=null!=s?s:t.createElement(o.default,null),w=r=>null!==e||p||v?t.createElement(t.Fragment,null,!1!==m&&r,p&&g):null,$=null;if(void 0!==e)$=w(e);else if(d)$=w(t.createElement(i.default,{spin:!0}));else{let e=`${h}-suffix`;$=({open:r,showSearch:o})=>r&&o?w(t.createElement(l.default,{className:e})):w(t.createElement(a.default,{className:e}))}let C=null;C=void 0!==c?c:f?t.createElement(r.default,null):null;return{clearIcon:b,suffixIcon:$,itemIcon:C,removeIcon:void 0!==u?u:t.createElement(n.default,null)}}])},327494,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(123829),n=e.i(955492),a=e.i(869301),i=e.i(529681),l=e.i(122767),s=e.i(613541),c=e.i(805484),u=e.i(52956),d=e.i(242064),f=e.i(721132),p=e.i(937328),h=e.i(321883),m=e.i(517455),g=e.i(62139),v=e.i(792812),y=e.i(249616),b=e.i(104458),w=e.i(85566),$=e.i(950302),C=e.i(729151),x=e.i(617206),E=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let S="SECRET_COMBOBOX_MODE_DO_NOT_USE",k=t.forwardRef((e,n)=>{var a,c,k,j,O,T,I,_;let F,{prefixCls:P,bordered:R,className:N,rootClassName:M,getPopupContainer:B,popupClassName:A,dropdownClassName:z,listHeight:L=256,placement:D,listItemHeight:H,size:V,disabled:W,notFoundContent:U,status:G,builtinPlacements:q,dropdownMatchSelectWidth:J,popupMatchSelectWidth:K,direction:X,style:Q,allowClear:Y,variant:Z,dropdownStyle:ee,transitionName:et,tagRender:er,maxCount:eo,prefix:en,dropdownRender:ea,popupRender:ei,onDropdownVisibleChange:el,onOpenChange:es,styles:ec,classNames:eu}=e,ed=E(e,["prefixCls","bordered","className","rootClassName","getPopupContainer","popupClassName","dropdownClassName","listHeight","placement","listItemHeight","size","disabled","notFoundContent","status","builtinPlacements","dropdownMatchSelectWidth","popupMatchSelectWidth","direction","style","allowClear","variant","dropdownStyle","transitionName","tagRender","maxCount","prefix","dropdownRender","popupRender","onDropdownVisibleChange","onOpenChange","styles","classNames"]),{getPopupContainer:ef,getPrefixCls:ep,renderEmpty:eh,direction:em,virtual:eg,popupMatchSelectWidth:ev,popupOverflow:ey}=t.useContext(d.ConfigContext),{showSearch:eb,style:ew,styles:e$,className:eC,classNames:ex}=(0,d.useComponentConfig)("select"),[,eE]=(0,b.useToken)(),eS=null!=H?H:null==eE?void 0:eE.controlHeight,ek=ep("select",P),ej=ep(),eO=null!=X?X:em,{compactSize:eT,compactItemClassnames:eI}=(0,y.useCompactItemContext)(ek,eO),[e_,eF]=(0,v.default)("select",Z,R),eP=(0,h.default)(ek),[eR,eN,eM]=(0,$.default)(ek,eP),eB=t.useMemo(()=>{let{mode:t}=e;if("combobox"!==t)return t===S?"combobox":t},[e.mode]),eA="multiple"===eB||"tags"===eB,ez=(T=e.suffixIcon,void 0!==(I=e.showArrow)?I:null!==T),eL=null!=(a=null!=K?K:J)?a:ev,eD=(null==(c=null==ec?void 0:ec.popup)?void 0:c.root)||(null==(k=e$.popup)?void 0:k.root)||ee,eH=(_=ei||ea,t.default.useMemo(()=>{if(_)return(...e)=>t.default.createElement(x.default,{space:!0},_.apply(void 0,e))},[_])),{status:eV,hasFeedback:eW,isFormItemInput:eU,feedbackIcon:eG}=t.useContext(g.FormItemInputContext),eq=(0,u.getMergedStatus)(eV,G);F=void 0!==U?U:"combobox"===eB?null:(null==eh?void 0:eh("Select"))||t.createElement(f.default,{componentName:"Select"});let{suffixIcon:eJ,itemIcon:eK,removeIcon:eX,clearIcon:eQ}=(0,C.default)(Object.assign(Object.assign({},ed),{multiple:eA,hasFeedback:eW,feedbackIcon:eG,showSuffixIcon:ez,prefixCls:ek,componentName:"Select"})),eY=(0,i.default)(ed,["suffixIcon","itemIcon"]),eZ=(0,r.default)((null==(j=null==eu?void 0:eu.popup)?void 0:j.root)||(null==(O=null==ex?void 0:ex.popup)?void 0:O.root)||A||z,{[`${ek}-dropdown-${eO}`]:"rtl"===eO},M,ex.root,null==eu?void 0:eu.root,eM,eP,eN),e0=(0,m.default)(e=>{var t;return null!=(t=null!=V?V:eT)?t:e}),e1=t.useContext(p.default),e2=(0,r.default)({[`${ek}-lg`]:"large"===e0,[`${ek}-sm`]:"small"===e0,[`${ek}-rtl`]:"rtl"===eO,[`${ek}-${e_}`]:eF,[`${ek}-in-form-item`]:eU},(0,u.getStatusClassNames)(ek,eq,eW),eI,eC,N,ex.root,null==eu?void 0:eu.root,M,eM,eP,eN),e4=t.useMemo(()=>void 0!==D?D:"rtl"===eO?"bottomRight":"bottomLeft",[D,eO]),[e6]=(0,l.useZIndex)("SelectLike",null==eD?void 0:eD.zIndex);return eR(t.createElement(o.default,Object.assign({ref:n,virtual:eg,showSearch:eb},eY,{style:Object.assign(Object.assign(Object.assign(Object.assign({},e$.root),null==ec?void 0:ec.root),ew),Q),dropdownMatchSelectWidth:eL,transitionName:(0,s.getTransitionName)(ej,"slide-up",et),builtinPlacements:(0,w.default)(q,ey),listHeight:L,listItemHeight:eS,mode:eB,prefixCls:ek,placement:e4,direction:eO,prefix:en,suffixIcon:eJ,menuItemSelectedIcon:eK,removeIcon:eX,allowClear:!0===Y?{clearIcon:eQ}:Y,notFoundContent:F,className:e2,getPopupContainer:B||ef,dropdownClassName:eZ,disabled:null!=W?W:e1,dropdownStyle:Object.assign(Object.assign({},eD),{zIndex:e6}),maxCount:eA?eo:void 0,tagRender:eA?er:void 0,dropdownRender:eH,onDropdownVisibleChange:es||el})))}),j=(0,c.default)(k,"dropdownAlign");k.SECRET_COMBOBOX_MODE_DO_NOT_USE=S,k.Option=a.Option,k.OptGroup=n.OptGroup,k._InternalPanelDoNotUseOrYouWillBeFired=j,e.s(["default",0,k],327494)},199133,e=>{"use strict";var t=e.i(327494);e.s(["Select",()=>t.default])},290571,e=>{"use strict";"function"==typeof SuppressedError&&SuppressedError,e.s(["__rest",0,function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r}])},480731,e=>{"use strict";e.s(["BaseColors",0,{Slate:"slate",Gray:"gray",Zinc:"zinc",Neutral:"neutral",Stone:"stone",Red:"red",Orange:"orange",Amber:"amber",Yellow:"yellow",Lime:"lime",Green:"green",Emerald:"emerald",Teal:"teal",Cyan:"cyan",Sky:"sky",Blue:"blue",Indigo:"indigo",Violet:"violet",Purple:"purple",Fuchsia:"fuchsia",Pink:"pink",Rose:"rose"},"DeltaTypes",0,{Increase:"increase",ModerateIncrease:"moderateIncrease",Decrease:"decrease",ModerateDecrease:"moderateDecrease",Unchanged:"unchanged"},"HorizontalPositions",0,{Left:"left",Right:"right"},"Sizes",0,{XS:"xs",SM:"sm",MD:"md",LG:"lg",XL:"xl"},"VerticalPositions",0,{Top:"top",Bottom:"bottom"}])},673706,e=>{"use strict";e.i(480731);let t=["slate","gray","zinc","neutral","stone","red","orange","amber","yellow","lime","green","emerald","teal","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose"];e.s(["defaultValueFormatter",0,e=>e.toString(),"getColorClassNames",0,function(e,r){let o=t.includes(e);if("white"===e||"black"===e||"transparent"===e||!r||!o){let t=e.includes("#")||e.includes("--")||e.includes("rgb")?`[${e}]`:e;return{bgColor:`bg-${t} dark:bg-${t}`,hoverBgColor:`hover:bg-${t} dark:hover:bg-${t}`,selectBgColor:`data-[selected]:bg-${t} dark:data-[selected]:bg-${t}`,textColor:`text-${t} dark:text-${t}`,selectTextColor:`data-[selected]:text-${t} dark:data-[selected]:text-${t}`,hoverTextColor:`hover:text-${t} dark:hover:text-${t}`,borderColor:`border-${t} dark:border-${t}`,selectBorderColor:`data-[selected]:border-${t} dark:data-[selected]:border-${t}`,hoverBorderColor:`hover:border-${t} dark:hover:border-${t}`,ringColor:`ring-${t} dark:ring-${t}`,strokeColor:`stroke-${t} dark:stroke-${t}`,fillColor:`fill-${t} dark:fill-${t}`}}return{bgColor:`bg-${e}-${r} dark:bg-${e}-${r}`,selectBgColor:`data-[selected]:bg-${e}-${r} dark:data-[selected]:bg-${e}-${r}`,hoverBgColor:`hover:bg-${e}-${r} dark:hover:bg-${e}-${r}`,textColor:`text-${e}-${r} dark:text-${e}-${r}`,selectTextColor:`data-[selected]:text-${e}-${r} dark:data-[selected]:text-${e}-${r}`,hoverTextColor:`hover:text-${e}-${r} dark:hover:text-${e}-${r}`,borderColor:`border-${e}-${r} dark:border-${e}-${r}`,selectBorderColor:`data-[selected]:border-${e}-${r} dark:data-[selected]:border-${e}-${r}`,hoverBorderColor:`hover:border-${e}-${r} dark:hover:border-${e}-${r}`,ringColor:`ring-${e}-${r} dark:ring-${e}-${r}`,strokeColor:`stroke-${e}-${r} dark:stroke-${e}-${r}`,fillColor:`fill-${e}-${r} dark:fill-${e}-${r}`}},"isValueInArray",0,(e,t)=>{for(let r=0;r`tremor-${e}-${t}`},"mergeRefs",0,function(e){return t=>{e.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}},"sumNumericArray",0,e=>e.reduce((e,t)=>e+t,0)],673706)},689074,21243,98801,e=>{"use strict";var t=e.i(290571),r=e.i(271645);e.s(["default",0,e=>{var o=(0,t.__rest)(e,[]);return r.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},o),r.default.createElement("path",{d:"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM11 15V17H13V15H11ZM11 7V13H13V7H11Z"}))}],689074),e.s(["default",0,e=>{var o=(0,t.__rest)(e,[]);return r.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},o),r.default.createElement("path",{d:"M1.18164 12C2.12215 6.87976 6.60812 3 12.0003 3C17.3924 3 21.8784 6.87976 22.8189 12C21.8784 17.1202 17.3924 21 12.0003 21C6.60812 21 2.12215 17.1202 1.18164 12ZM12.0003 17C14.7617 17 17.0003 14.7614 17.0003 12C17.0003 9.23858 14.7617 7 12.0003 7C9.23884 7 7.00026 9.23858 7.00026 12C7.00026 14.7614 9.23884 17 12.0003 17ZM12.0003 15C10.3434 15 9.00026 13.6569 9.00026 12C9.00026 10.3431 10.3434 9 12.0003 9C13.6571 9 15.0003 10.3431 15.0003 12C15.0003 13.6569 13.6571 15 12.0003 15Z"}))}],21243),e.s(["default",0,e=>{var o=(0,t.__rest)(e,[]);return r.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},o),r.default.createElement("path",{d:"M4.52047 5.93457L1.39366 2.80777L2.80788 1.39355L22.6069 21.1925L21.1927 22.6068L17.8827 19.2968C16.1814 20.3755 14.1638 21.0002 12.0003 21.0002C6.60812 21.0002 2.12215 17.1204 1.18164 12.0002C1.61832 9.62282 2.81932 7.5129 4.52047 5.93457ZM14.7577 16.1718L13.2937 14.7078C12.902 14.8952 12.4634 15.0002 12.0003 15.0002C10.3434 15.0002 9.00026 13.657 9.00026 12.0002C9.00026 11.537 9.10522 11.0984 9.29263 10.7067L7.82866 9.24277C7.30514 10.0332 7.00026 10.9811 7.00026 12.0002C7.00026 14.7616 9.23884 17.0002 12.0003 17.0002C13.0193 17.0002 13.9672 16.6953 14.7577 16.1718ZM7.97446 3.76015C9.22127 3.26959 10.5793 3.00016 12.0003 3.00016C17.3924 3.00016 21.8784 6.87992 22.8189 12.0002C22.5067 13.6998 21.8038 15.2628 20.8068 16.5925L16.947 12.7327C16.9821 12.4936 17.0003 12.249 17.0003 12.0002C17.0003 9.23873 14.7617 7.00016 12.0003 7.00016C11.7514 7.00016 11.5068 7.01833 11.2677 7.05343L7.97446 3.76015Z"}))}],98801)},444755,e=>{"use strict";let t=(e,r)=>{if(0===e.length)return r.classGroupId;let o=e[0],n=r.nextPart.get(o),a=n?t(e.slice(1),n):void 0;if(a)return a;if(0===r.validators.length)return;let i=e.join("-");return r.validators.find(({validator:e})=>e(i))?.classGroupId},r=/^\[(.+)\]$/,o=(e,t,r,i)=>{e.forEach(e=>{if("string"==typeof e){(""===e?t:n(t,e)).classGroupId=r;return}"function"==typeof e?a(e)?o(e(i),t,r,i):t.validators.push({validator:e,classGroupId:r}):Object.entries(e).forEach(([e,a])=>{o(a,n(t,e),r,i)})})},n=(e,t)=>{let r=e;return t.split("-").forEach(e=>{r.nextPart.has(e)||r.nextPart.set(e,{nextPart:new Map,validators:[]}),r=r.nextPart.get(e)}),r},a=e=>e.isThemeGetter,i=(e,t)=>t?e.map(([e,r])=>[e,r.map(e=>"string"==typeof e?t+e:"object"==typeof e?Object.fromEntries(Object.entries(e).map(([e,r])=>[t+e,r])):e)]):e,l=e=>{if(e.length<=1)return e;let t=[],r=[];return e.forEach(e=>{"["===e[0]?(t.push(...r.sort(),e),r=[]):r.push(e)}),t.push(...r.sort()),t},s=/\s+/;function c(){let e,t,r=0,o="";for(;r{let t;if("string"==typeof e)return e;let r="";for(let o=0;o{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,r=new Map,o=new Map,n=(n,a)=>{r.set(n,a),++t>e&&(t=0,o=r,r=new Map)};return{get(e){let t=r.get(e);return void 0!==t?t:void 0!==(t=o.get(e))?(n(e,t),t):void 0},set(e,t){r.has(e)?r.set(e,t):n(e,t)}}})((s=n.reduce((e,t)=>t(e),e())).cacheSize),parseClassName:(e=>{let{separator:t,experimentalParseClassName:r}=e,o=1===t.length,n=t[0],a=t.length,i=e=>{let r,i=[],l=0,s=0;for(let c=0;cs?r-s:void 0}};return r?e=>r({className:e,parseClassName:i}):i})(s),...(e=>{let n=(e=>{let{theme:t,prefix:r}=e,n={nextPart:new Map,validators:[]};return i(Object.entries(e.classGroups),r).forEach(([e,r])=>{o(r,n,e,t)}),n})(e),{conflictingClassGroups:a,conflictingClassGroupModifiers:l}=e;return{getClassGroupId:e=>{let o=e.split("-");return""===o[0]&&1!==o.length&&o.shift(),t(o,n)||(e=>{if(r.test(e)){let t=r.exec(e)[1],o=t?.substring(0,t.indexOf(":"));if(o)return"arbitrary.."+o}})(e)},getConflictingClassGroupIds:(e,t)=>{let r=a[e]||[];return t&&l[e]?[...r,...l[e]]:r}}})(s)}).cache.get,f=a.cache.set,p=h,h(l)};function h(e){let t=u(e);if(t)return t;let r=((e,t)=>{let{parseClassName:r,getClassGroupId:o,getConflictingClassGroupIds:n}=t,a=[],i=e.trim().split(s),c="";for(let e=i.length-1;e>=0;e-=1){let t=i[e],{modifiers:s,hasImportantModifier:u,baseClassName:d,maybePostfixModifierPosition:f}=r(t),p=!!f,h=o(p?d.substring(0,f):d);if(!h){if(!p||!(h=o(d))){c=t+(c.length>0?" "+c:c);continue}p=!1}let m=l(s).join(":"),g=u?m+"!":m,v=g+h;if(a.includes(v))continue;a.push(v);let y=n(h,p);for(let e=0;e0?" "+c:c)}return c})(e,a);return f(e,r),r}return function(){return p(c.apply(null,arguments))}}let f=e=>{let t=t=>t[e]||[];return t.isThemeGetter=!0,t},p=/^\[(?:([a-z-]+):)?(.+)\]$/i,h=/^\d+\/\d+$/,m=new Set(["px","full","screen"]),g=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,v=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,y=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,b=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,w=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,$=e=>x(e)||m.has(e)||h.test(e),C=e=>M(e,"length",B),x=e=>!!e&&!Number.isNaN(Number(e)),E=e=>M(e,"number",x),S=e=>!!e&&Number.isInteger(Number(e)),k=e=>e.endsWith("%")&&x(e.slice(0,-1)),j=e=>p.test(e),O=e=>g.test(e),T=new Set(["length","size","percentage"]),I=e=>M(e,T,A),_=e=>M(e,"position",A),F=new Set(["image","url"]),P=e=>M(e,F,L),R=e=>M(e,"",z),N=()=>!0,M=(e,t,r)=>{let o=p.exec(e);return!!o&&(o[1]?"string"==typeof t?o[1]===t:t.has(o[1]):r(o[2]))},B=e=>v.test(e)&&!y.test(e),A=()=>!1,z=e=>b.test(e),L=e=>w.test(e),D=()=>{let e=f("colors"),t=f("spacing"),r=f("blur"),o=f("brightness"),n=f("borderColor"),a=f("borderRadius"),i=f("borderSpacing"),l=f("borderWidth"),s=f("contrast"),c=f("grayscale"),u=f("hueRotate"),d=f("invert"),p=f("gap"),h=f("gradientColorStops"),m=f("gradientColorStopPositions"),g=f("inset"),v=f("margin"),y=f("opacity"),b=f("padding"),w=f("saturate"),T=f("scale"),F=f("sepia"),M=f("skew"),B=f("space"),A=f("translate"),z=()=>["auto","contain","none"],L=()=>["auto","hidden","clip","visible","scroll"],D=()=>["auto",j,t],H=()=>[j,t],V=()=>["",$,C],W=()=>["auto",x,j],U=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],G=()=>["solid","dashed","dotted","double","none"],q=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],J=()=>["start","end","center","between","around","evenly","stretch"],K=()=>["","0",j],X=()=>["auto","avoid","all","avoid-page","page","left","right","column"],Q=()=>[x,j];return{cacheSize:500,separator:":",theme:{colors:[N],spacing:[$,C],blur:["none","",O,j],brightness:Q(),borderColor:[e],borderRadius:["none","","full",O,j],borderSpacing:H(),borderWidth:V(),contrast:Q(),grayscale:K(),hueRotate:Q(),invert:K(),gap:H(),gradientColorStops:[e],gradientColorStopPositions:[k,C],inset:D(),margin:D(),opacity:Q(),padding:H(),saturate:Q(),scale:Q(),sepia:K(),skew:Q(),space:H(),translate:H()},classGroups:{aspect:[{aspect:["auto","square","video",j]}],container:["container"],columns:[{columns:[O]}],"break-after":[{"break-after":X()}],"break-before":[{"break-before":X()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...U(),j]}],overflow:[{overflow:L()}],"overflow-x":[{"overflow-x":L()}],"overflow-y":[{"overflow-y":L()}],overscroll:[{overscroll:z()}],"overscroll-x":[{"overscroll-x":z()}],"overscroll-y":[{"overscroll-y":z()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[g]}],"inset-x":[{"inset-x":[g]}],"inset-y":[{"inset-y":[g]}],start:[{start:[g]}],end:[{end:[g]}],top:[{top:[g]}],right:[{right:[g]}],bottom:[{bottom:[g]}],left:[{left:[g]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",S,j]}],basis:[{basis:D()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",j]}],grow:[{grow:K()}],shrink:[{shrink:K()}],order:[{order:["first","last","none",S,j]}],"grid-cols":[{"grid-cols":[N]}],"col-start-end":[{col:["auto",{span:["full",S,j]},j]}],"col-start":[{"col-start":W()}],"col-end":[{"col-end":W()}],"grid-rows":[{"grid-rows":[N]}],"row-start-end":[{row:["auto",{span:[S,j]},j]}],"row-start":[{"row-start":W()}],"row-end":[{"row-end":W()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",j]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",j]}],gap:[{gap:[p]}],"gap-x":[{"gap-x":[p]}],"gap-y":[{"gap-y":[p]}],"justify-content":[{justify:["normal",...J()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...J(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...J(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[b]}],px:[{px:[b]}],py:[{py:[b]}],ps:[{ps:[b]}],pe:[{pe:[b]}],pt:[{pt:[b]}],pr:[{pr:[b]}],pb:[{pb:[b]}],pl:[{pl:[b]}],m:[{m:[v]}],mx:[{mx:[v]}],my:[{my:[v]}],ms:[{ms:[v]}],me:[{me:[v]}],mt:[{mt:[v]}],mr:[{mr:[v]}],mb:[{mb:[v]}],ml:[{ml:[v]}],"space-x":[{"space-x":[B]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[B]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",j,t]}],"min-w":[{"min-w":[j,t,"min","max","fit"]}],"max-w":[{"max-w":[j,t,"none","full","min","max","fit","prose",{screen:[O]},O]}],h:[{h:[j,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[j,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[j,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[j,t,"auto","min","max","fit"]}],"font-size":[{text:["base",O,C]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",E]}],"font-family":[{font:[N]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",j]}],"line-clamp":[{"line-clamp":["none",x,E]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",$,j]}],"list-image":[{"list-image":["none",j]}],"list-style-type":[{list:["none","disc","decimal",j]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[y]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[y]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...G(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",$,C]}],"underline-offset":[{"underline-offset":["auto",$,j]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:H()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",j]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",j]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[y]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...U(),_]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",I]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},P]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[h]}],"gradient-via":[{via:[h]}],"gradient-to":[{to:[h]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[l]}],"border-w-x":[{"border-x":[l]}],"border-w-y":[{"border-y":[l]}],"border-w-s":[{"border-s":[l]}],"border-w-e":[{"border-e":[l]}],"border-w-t":[{"border-t":[l]}],"border-w-r":[{"border-r":[l]}],"border-w-b":[{"border-b":[l]}],"border-w-l":[{"border-l":[l]}],"border-opacity":[{"border-opacity":[y]}],"border-style":[{border:[...G(),"hidden"]}],"divide-x":[{"divide-x":[l]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[l]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[y]}],"divide-style":[{divide:G()}],"border-color":[{border:[n]}],"border-color-x":[{"border-x":[n]}],"border-color-y":[{"border-y":[n]}],"border-color-s":[{"border-s":[n]}],"border-color-e":[{"border-e":[n]}],"border-color-t":[{"border-t":[n]}],"border-color-r":[{"border-r":[n]}],"border-color-b":[{"border-b":[n]}],"border-color-l":[{"border-l":[n]}],"divide-color":[{divide:[n]}],"outline-style":[{outline:["",...G()]}],"outline-offset":[{"outline-offset":[$,j]}],"outline-w":[{outline:[$,C]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:V()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[y]}],"ring-offset-w":[{"ring-offset":[$,C]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",O,R]}],"shadow-color":[{shadow:[N]}],opacity:[{opacity:[y]}],"mix-blend":[{"mix-blend":[...q(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":q()}],filter:[{filter:["","none"]}],blur:[{blur:[r]}],brightness:[{brightness:[o]}],contrast:[{contrast:[s]}],"drop-shadow":[{"drop-shadow":["","none",O,j]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[d]}],saturate:[{saturate:[w]}],sepia:[{sepia:[F]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[r]}],"backdrop-brightness":[{"backdrop-brightness":[o]}],"backdrop-contrast":[{"backdrop-contrast":[s]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u]}],"backdrop-invert":[{"backdrop-invert":[d]}],"backdrop-opacity":[{"backdrop-opacity":[y]}],"backdrop-saturate":[{"backdrop-saturate":[w]}],"backdrop-sepia":[{"backdrop-sepia":[F]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[i]}],"border-spacing-x":[{"border-spacing-x":[i]}],"border-spacing-y":[{"border-spacing-y":[i]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",j]}],duration:[{duration:Q()}],ease:[{ease:["linear","in","out","in-out",j]}],delay:[{delay:Q()}],animate:[{animate:["none","spin","ping","pulse","bounce",j]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[T]}],"scale-x":[{"scale-x":[T]}],"scale-y":[{"scale-y":[T]}],rotate:[{rotate:[S,j]}],"translate-x":[{"translate-x":[A]}],"translate-y":[{"translate-y":[A]}],"skew-x":[{"skew-x":[M]}],"skew-y":[{"skew-y":[M]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",j]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",j]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":H()}],"scroll-mx":[{"scroll-mx":H()}],"scroll-my":[{"scroll-my":H()}],"scroll-ms":[{"scroll-ms":H()}],"scroll-me":[{"scroll-me":H()}],"scroll-mt":[{"scroll-mt":H()}],"scroll-mr":[{"scroll-mr":H()}],"scroll-mb":[{"scroll-mb":H()}],"scroll-ml":[{"scroll-ml":H()}],"scroll-p":[{"scroll-p":H()}],"scroll-px":[{"scroll-px":H()}],"scroll-py":[{"scroll-py":H()}],"scroll-ps":[{"scroll-ps":H()}],"scroll-pe":[{"scroll-pe":H()}],"scroll-pt":[{"scroll-pt":H()}],"scroll-pr":[{"scroll-pr":H()}],"scroll-pb":[{"scroll-pb":H()}],"scroll-pl":[{"scroll-pl":H()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",j]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[$,C,E]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},H=(e,t,r)=>{void 0!==r&&(e[t]=r)},V=(e,t)=>{if(t)for(let r in t)H(e,r,t[r])},W=(e,t)=>{if(t)for(let r in t){let o=t[r];void 0!==o&&(e[r]=(e[r]||[]).concat(o))}},U=((e,...t)=>"function"==typeof e?d(D,e,...t):d(()=>((e,{cacheSize:t,prefix:r,separator:o,experimentalParseClassName:n,extend:a={},override:i={}})=>{for(let a in H(e,"cacheSize",t),H(e,"prefix",r),H(e,"separator",o),H(e,"experimentalParseClassName",n),i)V(e[a],i[a]);for(let t in a)W(e[t],a[t]);return e})(D(),e),...t))({extend:{classGroups:{shadow:[{shadow:[{tremor:["input","card","dropdown"],"dark-tremor":["input","card","dropdown"]}]}],rounded:[{rounded:[{tremor:["small","default","full"],"dark-tremor":["small","default","full"]}]}],"font-size":[{text:[{tremor:["default","title","metric"],"dark-tremor":["default","title","metric"]}]}]}}});e.s(["tremorTwMerge",0,U],444755)},103471,e=>{"use strict";var t=e.i(444755),r=e.i(271645);let o=e=>["string","number"].includes(typeof e)?e:e instanceof Array?e.map(o).join(""):"object"==typeof e&&e?o(e.props.children):void 0;e.s(["constructValueToNameMapping",0,function(e){let t=new Map;return r.default.Children.map(e,e=>{var r;t.set(e.props.value,null!=(r=o(e))?r:e.props.value)}),t},"getFilteredOptions",0,function(e,t){return r.default.Children.map(t,t=>{var r;if((null!=(r=o(t))?r:t.props.value).toLowerCase().includes(e.toLowerCase()))return t})},"getNodeText",0,o,"getSelectButtonColors",0,(e,r,o=!1)=>(0,t.tremorTwMerge)(r?"bg-tremor-background-subtle dark:bg-dark-tremor-background-subtle":"bg-tremor-background dark:bg-dark-tremor-background",!r&&"hover:bg-tremor-background-muted dark:hover:bg-dark-tremor-background-muted",e?"text-tremor-content-emphasis dark:text-dark-tremor-content-emphasis":"text-tremor-content dark:text-dark-tremor-content",r&&"text-tremor-content-subtle dark:text-dark-tremor-content-subtle",o&&"text-red-500 placeholder:text-red-500 dark:text-red-500 dark:placeholder:text-red-500",o?"border-red-500 dark:border-red-500":"border-tremor-border dark:border-dark-tremor-border"),"hasValue",0,function(e){return null!=e&&""!==e}])},779241,677955,e=>{"use strict";var t=e.i(290571),r=e.i(271645),o=e.i(673706),n=e.i(689074),a=e.i(21243),i=e.i(98801),l=e.i(103471),s=e.i(444755);let c=r.default.forwardRef((e,c)=>{let{value:u,defaultValue:d,type:f,placeholder:p="Type...",icon:h,error:m=!1,errorMessage:g,disabled:v=!1,stepper:y,makeInputClassName:b,className:w,onChange:$,onValueChange:C,autoFocus:x,pattern:E}=e,S=(0,t.__rest)(e,["value","defaultValue","type","placeholder","icon","error","errorMessage","disabled","stepper","makeInputClassName","className","onChange","onValueChange","autoFocus","pattern"]),[k,j]=(0,r.useState)(x||!1),[O,T]=(0,r.useState)(!1),I=(0,r.useCallback)(()=>T(!O),[O,T]),_=(0,r.useRef)(null),F=(0,l.hasValue)(u||d);return r.default.useEffect(()=>{let e=()=>j(!0),t=()=>j(!1),r=_.current;return r&&(r.addEventListener("focus",e),r.addEventListener("blur",t),x&&r.focus()),()=>{r&&(r.removeEventListener("focus",e),r.removeEventListener("blur",t))}},[x]),r.default.createElement(r.default.Fragment,null,r.default.createElement("div",{className:(0,s.tremorTwMerge)(b("root"),"relative w-full flex items-center min-w-[10rem] outline-none rounded-tremor-default transition duration-100 border","shadow-tremor-input","dark:shadow-dark-tremor-input",(0,l.getSelectButtonColors)(F,v,m),k&&(0,s.tremorTwMerge)("ring-2","border-tremor-brand-subtle ring-tremor-brand-muted","dark:border-dark-tremor-brand-subtle dark:ring-dark-tremor-brand-muted"),w)},h?r.default.createElement(h,{className:(0,s.tremorTwMerge)(b("icon"),"shrink-0 h-5 w-5 mx-2.5 absolute left-0 flex items-center","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")}):null,r.default.createElement("input",Object.assign({ref:(0,o.mergeRefs)([_,c]),defaultValue:d,value:u,type:O?"text":f,className:(0,s.tremorTwMerge)(b("input"),"w-full bg-transparent focus:outline-none focus:ring-0 border-none text-tremor-default rounded-tremor-default transition duration-100 py-2","text-tremor-content-emphasis","dark:text-dark-tremor-content-emphasis","[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none","password"===f?m?"pr-16":"pr-12":m?"pr-8":"pr-3",h?"pl-10":"pl-3",v?"placeholder:text-tremor-content-subtle dark:placeholder:text-dark-tremor-content-subtle":"placeholder:text-tremor-content dark:placeholder:text-dark-tremor-content"),placeholder:p,disabled:v,"data-testid":"base-input",onChange:e=>{null==$||$(e),null==C||C(e.target.value)},pattern:E},S)),"password"!==f||v?null:r.default.createElement("button",{className:(0,s.tremorTwMerge)(b("toggleButton"),"absolute inset-y-0 right-0 flex items-center px-2.5 rounded-lg"),type:"button",onClick:()=>I(),"aria-label":O?"Hide password":"Show Password"},O?r.default.createElement(i.default,{className:(0,s.tremorTwMerge)("flex-none h-5 w-5 transition","text-tremor-content-subtle hover:text-tremor-content","dark:text-dark-tremor-content-subtle hover:dark:text-dark-tremor-content"),"aria-hidden":!0}):r.default.createElement(a.default,{className:(0,s.tremorTwMerge)("flex-none h-5 w-5 transition","text-tremor-content-subtle hover:text-tremor-content","dark:text-dark-tremor-content-subtle hover:dark:text-dark-tremor-content"),"aria-hidden":!0})),m?r.default.createElement(n.default,{className:(0,s.tremorTwMerge)(b("errorIcon"),"text-red-500 shrink-0 h-5 w-5 absolute right-0 flex items-center","password"===f?"mr-10":"number"===f?y?"mr-20":"mr-3":"mx-2.5")}):null,null!=y?y:null),m&&g?r.default.createElement("p",{className:(0,s.tremorTwMerge)(b("errorMessage"),"text-sm text-red-500 mt-1")},g):null)});c.displayName="BaseInput",e.s(["default",0,c],677955);let u=(0,o.makeClassName)("TextInput"),d=r.default.forwardRef((e,o)=>{let{type:n="text"}=e,a=(0,t.__rest)(e,["type"]);return r.default.createElement(c,Object.assign({ref:o,type:n,makeInputClassName:u},a))});d.displayName="TextInput",e.s(["TextInput",0,d],779241)},827252,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z"}}]},name:"info-circle",theme:"outlined"};var n=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(n.default,(0,t.default)({},e,{ref:a,icon:o}))});e.s(["InfoCircleOutlined",0,a],827252)},592968,e=>{"use strict";var t=e.i(491816);e.s(["Tooltip",()=>t.default])},764205,122550,82946,e=>{"use strict";e.s(["addAllowedIP",()=>ez,"adminGlobalActivity",()=>eZ,"adminGlobalActivityPerModel",()=>e1,"adminGlobalCacheActivity",()=>e0,"adminSpendLogsCall",()=>eK,"adminTopEndUsersCall",()=>eQ,"adminTopKeysCall",()=>eX,"adminTopModelsCall",()=>e2,"adminspendByProvider",()=>eY,"agentDailyActivityCall",()=>eS,"agentHubPublicModelsCall",()=>eR,"alertingSettingsCall",()=>Z,"allEndUsersCall",()=>eG,"allTagNamesCall",()=>eU,"applyGuardrail",()=>op,"approveGuardrailSubmission",()=>tV,"approveMCPServer",()=>rR,"availableTeamListCall",()=>ef,"budgetCreateCall",()=>X,"budgetDeleteCall",()=>K,"budgetUpdateCall",()=>Q,"buildMcpOAuthAuthorizeUrl",()=>ok,"cacheTemporaryMcpServer",()=>oE,"cachingHealthCheckCall",()=>tR,"callMCPTool",()=>rV,"cancelModelCostMapReload",()=>W,"checkEuAiActCompliance",()=>oG,"checkGdprCompliance",()=>oq,"claimOnboardingToken",()=>ej,"convertPromptFileToJson",()=>rp,"createAgentCall",()=>rh,"createGuardrailCall",()=>rm,"createMCPServer",()=>rS,"createMCPToolset",()=>rT,"createMemory",()=>o7,"createPassThroughEndpoint",()=>tO,"createPolicyAttachmentCall",()=>rt,"createPolicyCall",()=>t4,"createPolicyVersion",()=>t7,"createPromptCall",()=>ru,"createSearchTool",()=>rB,"credentialCreateCall",()=>tt,"credentialDeleteCall",()=>tn,"credentialGetCall",()=>to,"credentialListCall",()=>tr,"credentialUpdateCall",()=>ta,"customerDailyActivityCall",()=>eE,"deleteAgentCall",()=>oe,"deleteAllowedIP",()=>eL,"deleteCallback",()=>oC,"deleteClaudeCodePlugin",()=>oU,"deleteConfigFieldSetting",()=>tI,"deleteGuardrailCall",()=>oo,"deleteMCPOAuthUserCredential",()=>o1,"deleteMCPServer",()=>rj,"deleteMCPToolset",()=>r_,"deleteMemory",()=>o9,"deletePassThroughEndpointsCall",()=>t_,"deletePolicyAttachmentCall",()=>rr,"deletePolicyCall",()=>t9,"deletePromptCall",()=>rf,"deleteSearchTool",()=>rz,"deleteToolPolicyOverride",()=>oZ,"deriveErrorMessage",()=>oM,"disableClaudeCodePlugin",()=>oW,"enableClaudeCodePlugin",()=>oV,"enrichPolicyTemplate",()=>tY,"enrichPolicyTemplateStream",()=>t1,"estimateAttachmentImpactCall",()=>ri,"exchangeLoginCode",()=>oA,"exchangeMcpOAuthToken",()=>oj,"fetchAvailableSearchProviders",()=>rL,"fetchDiscoverableMCPServers",()=>rw,"fetchMCPAccessGroups",()=>rx,"fetchMCPClientIp",()=>rE,"fetchMCPServerHealth",()=>rC,"fetchMCPServers",()=>r$,"fetchMCPSubmissions",()=>rP,"fetchMCPToolsets",()=>rO,"fetchMemoryList",()=>o3,"fetchOpenAPIRegistry",()=>rb,"fetchSearchTools",()=>rM,"fetchToolDetail",()=>oQ,"fetchToolPolicyOptions",()=>oJ,"fetchToolsList",()=>oK,"formatDate",()=>y,"getAgentCreateMetadata",()=>P,"getAgentInfo",()=>oc,"getAgentsList",()=>os,"getAllowedIPs",()=>eA,"getBudgetList",()=>tb,"getCacheSettingsCall",()=>tx,"getCallbackConfigsCall",()=>b,"getCallbacksCall",()=>tw,"getCategoryYaml",()=>oi,"getClaudeCodePluginsList",()=>oD,"getConfigFieldSetting",()=>tj,"getDefaultTeamSettings",()=>rX,"getEmailEventSettings",()=>r5,"getGeneralSettingsCall",()=>t$,"getGlobalLitellmHeaderName",()=>M,"getGuardrailInfo",()=>ou,"getGuardrailProviderSpecificParams",()=>oa,"getGuardrailUISettings",()=>on,"getGuardrailsList",()=>tD,"getGuardrailsUsageDetail",()=>tG,"getGuardrailsUsageLogs",()=>tq,"getGuardrailsUsageOverview",()=>tU,"getInProductNudgesCall",()=>w,"getInternalUserSettings",()=>rv,"getLicenseInfo",()=>ow,"getMCPOAuthUserCredentialStatus",()=>o2,"getMCPSemanticFilterSettings",()=>tA,"getMajorAirlines",()=>ol,"getModelCostMapReloadStatus",()=>G,"getModelCostMapSource",()=>U,"getOnboardingCredentials",()=>ek,"getOpenAPISchema",()=>L,"getPassThroughEndpointsCall",()=>tk,"getPoliciesList",()=>tJ,"getPolicyAttachmentsList",()=>re,"getPolicyInfo",()=>t8,"getPolicyInfoWithGuardrails",()=>tX,"getPolicyTemplates",()=>tQ,"getPossibleUserRoles",()=>e8,"getPromptInfo",()=>rs,"getPromptVersions",()=>rc,"getPromptsList",()=>rl,"getProviderCreateMetadata",()=>F,"getProxyBaseUrl",()=>k,"getProxyUISettings",()=>tM,"getPublicModelHubInfo",()=>z,"getRemainingUsers",()=>ob,"getResolvedGuardrails",()=>rn,"getRouterSettingsCall",()=>tC,"getSSOSettings",()=>og,"getTeamPermissionsCall",()=>rY,"getToolUsageLogs",()=>oX,"getUISettings",()=>tB,"getUiConfig",()=>A,"getUiSettings",()=>oz,"handleError",()=>_,"individualModelHealthCheckCall",()=>tP,"invitationCreateCall",()=>Y,"keyAliasesCall",()=>e5,"keyCreateCall",()=>et,"keyCreateForAgentCall",()=>er,"keyCreateServiceAccountCall",()=>ee,"keyDeleteCall",()=>en,"keyInfoCall",()=>e4,"keyInfoV1Call",()=>e3,"keyListCall",()=>e7,"keyUpdateCall",()=>ti,"latestHealthChecksCall",()=>tN,"listGuardrailSubmissions",()=>tH,"listMCPTools",()=>rH,"listMCPUserCredentials",()=>o4,"listPolicyVersions",()=>t3,"loginCall",()=>oB,"makeAgentsPublicCall",()=>ot,"makeMCPPublicCall",()=>or,"makeModelGroupPublic",()=>B,"mcpHubPublicServersCall",()=>eN,"modelAvailableCall",()=>eH,"modelCostMap",()=>D,"modelCreateCall",()=>q,"modelDeleteCall",()=>J,"modelHubCall",()=>eB,"modelHubPublicModelsCall",()=>eP,"modelInfoCall",()=>e_,"modelInfoV1Call",()=>eF,"modelPatchUpdateCall",()=>ts,"organizationCreateCall",()=>em,"organizationDailyActivityCall",()=>ex,"organizationDeleteCall",()=>ev,"organizationInfoCall",()=>eh,"organizationListCall",()=>ep,"organizationMemberAddCall",()=>tp,"organizationMemberDeleteCall",()=>th,"organizationMemberUpdateCall",()=>tm,"organizationUpdateCall",()=>eg,"patchAgentCall",()=>od,"perUserAnalyticsCall",()=>oN,"proxyBaseUrl",()=>S,"ragIngestCall",()=>r7,"regenerateKeyCall",()=>eO,"registerClaudeCodePlugin",()=>oH,"registerMCPServer",()=>rF,"registerMcpOAuthClient",()=>oS,"rejectGuardrailSubmission",()=>tW,"rejectMCPServer",()=>rN,"reloadModelCostMap",()=>H,"resetEmailEventSettings",()=>r8,"resolvePoliciesCall",()=>ra,"scheduleModelCostMapReload",()=>V,"searchToolQueryCall",()=>oT,"serverRootPath",()=>C,"serviceHealthCheck",()=>ty,"sessionSpendLogsCall",()=>r0,"setCallbacksCall",()=>tF,"setGlobalLitellmHeaderName",()=>N,"skillHubPublicCall",()=>eM,"storeMCPOAuthUserCredential",()=>o0,"suggestPolicyTemplates",()=>tZ,"switchToWorkerUrl",()=>j,"tagCreateCall",()=>rW,"tagDailyActivityCall",()=>e$,"tagDauCall",()=>oI,"tagDeleteCall",()=>rK,"tagDistinctCall",()=>oP,"tagInfoCall",()=>rG,"tagListCall",()=>rJ,"tagMauCall",()=>oF,"tagUpdateCall",()=>rU,"tagWauCall",()=>o_,"tagsSpendLogsCall",()=>eW,"teamBulkMemberAddCall",()=>tu,"teamCreateCall",()=>te,"teamDailyActivityCall",()=>eC,"teamDeleteCall",()=>ei,"teamInfoCall",()=>ec,"teamListCall",()=>ed,"teamMemberAddCall",()=>tc,"teamMemberDeleteCall",()=>tf,"teamMemberUpdateCall",()=>td,"teamPermissionsUpdateCall",()=>rZ,"teamSpendLogsCall",()=>eV,"teamUpdateCall",()=>tl,"testCacheConnectionCall",()=>tE,"testConnectionRequest",()=>e6,"testCustomCodeGuardrail",()=>oh,"testMCPSemanticFilter",()=>tL,"testMCPToolsListRequest",()=>ox,"testPipelineCall",()=>ro,"testPoliciesAndGuardrails",()=>tK,"testPolicyTemplate",()=>t0,"testSearchToolConnection",()=>rD,"transformRequestCall",()=>ey,"uiAuditLogsCall",()=>oy,"uiSpendLogDetailsCall",()=>rg,"uiSpendLogsCall",()=>eJ,"updateCacheSettingsCall",()=>tS,"updateConfigFieldSetting",()=>tT,"updateDefaultTeamSettings",()=>rQ,"updateEmailEventSettings",()=>r9,"updateGuardrailCall",()=>of,"updateInternalUserSettings",()=>ry,"updateMCPSemanticFilterSettings",()=>tz,"updateMCPServer",()=>rk,"updateMCPToolset",()=>rI,"updateMemory",()=>o5,"updatePassThroughEndpoint",()=>o$,"updatePolicyCall",()=>t6,"updatePolicyVersionStatus",()=>t5,"updatePromptCall",()=>rd,"updateSSOSettings",()=>ov,"updateSearchTool",()=>rA,"updateToolPolicy",()=>oY,"updateUiSettings",()=>oL,"updateUsefulLinksCall",()=>eD,"usageAiChatStream",()=>t2,"userAgentSummaryCall",()=>oR,"userBulkUpdateUserCall",()=>tv,"userCreateCall",()=>eo,"userDailyActivityAggregatedCall",()=>e9,"userDailyActivityCall",()=>ew,"userDeleteCall",()=>ea,"userFilterUICall",()=>eq,"userGetInfoV2",()=>es,"userListCall",()=>el,"userUpdateUserCall",()=>tg,"v2TeamListCall",()=>eu,"validateBlockedWordsFile",()=>om,"vectorStoreCreateCall",()=>r1,"vectorStoreDeleteCall",()=>r4,"vectorStoreInfoCall",()=>r6,"vectorStoreListCall",()=>r2,"vectorStoreSearchCall",()=>oO,"vectorStoreUpdateCall",()=>r3],764205);var t=e.i(247167),r=e.i(888259),o=e.i(268004);e.s(["default",()=>g,"jsonFields",()=>h],82946);var n=e.i(843476),a=e.i(271645),i=e.i(808613),l=e.i(311451),s=e.i(28651),c=e.i(199133),u=e.i(779241),d=e.i(827252),f=e.i(592968);let p=e=>e?e.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase()):e;e.s(["formItemValidateJSON",0,(e,t)=>{if(!t)return Promise.resolve();try{return JSON.parse(t),Promise.resolve()}catch(e){return Promise.reject("Please enter valid JSON")}},"formatLabel",0,p,"truncateString",0,function(e,t){return e.length>t?e.substring(0,t)+"...":e}],122550);let h=["metadata","config","enforced_params","aliases"],m=(e,t)=>h.includes(e)||"json"===t.format,g=({schemaComponent:e,excludedFields:t=[],form:r,overrideLabels:o={},overrideTooltips:h={},customValidation:g={},defaultValues:v={}})=>{let[y,b]=(0,a.useState)(null),[w,$]=(0,a.useState)(null);return((0,a.useEffect)(()=>{(async()=>{try{let o=(await L()).components.schemas[e];if(!o)throw Error(`Schema component "${e}" not found`);b(o);let n={};Object.keys(o.properties).filter(e=>!t.includes(e)&&void 0!==v[e]).forEach(e=>{n[e]=v[e]}),r.setFieldsValue(n)}catch(e){console.error("Schema fetch error:",e),$(e instanceof Error?e.message:"Failed to fetch schema")}})()},[e,r,t]),w)?(0,n.jsxs)("div",{className:"text-red-500",children:["Error: ",w]}):y?.properties?(0,n.jsx)("div",{children:Object.entries(y.properties).filter(([e])=>!t.includes(e)).map(([e,t])=>{let r,a,b,w,$,C,x,E;return a=(e=>{if(e.type)return e.type;if(e.anyOf){let t=e.anyOf.map(e=>e.type);if(t.includes("number")||t.includes("integer"))return"number";t.includes("string")}return"string"})(t),b=y?.required?.includes(e),w=o[e]||t.title||p(e),$=h[e]||t.description,C=[],b&&C.push({required:!0,message:`${w} is required`}),g[e]&&C.push({validator:g[e]}),m(e,t)&&C.push({validator:async(e,t)=>{if(t&&!(e=>{if(!e)return!0;try{return JSON.parse(e),!0}catch{return!1}})(t))throw Error("Please enter valid JSON")}}),x=$?(0,n.jsxs)("span",{children:[w," ",(0,n.jsx)(f.Tooltip,{title:$,children:(0,n.jsx)(d.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}):w,r=m(e,t)?(0,n.jsx)(l.Input.TextArea,{rows:4,placeholder:"Enter as JSON",className:"font-mono"}):t.enum?(0,n.jsx)(c.Select,{children:t.enum.map(e=>(0,n.jsx)(c.Select.Option,{value:e,children:e},e))}):"number"===a||"integer"===a?(0,n.jsx)(s.InputNumber,{style:{width:"100%"},precision:"integer"===a?0:void 0}):"duration"===e?(0,n.jsx)(u.TextInput,{placeholder:"eg: 30s, 30h, 30d"}):(0,n.jsx)(u.TextInput,{placeholder:$||""}),(0,n.jsx)(i.Form.Item,{label:x,name:e,className:"mt-8",rules:C,initialValue:v[e],help:(0,n.jsx)("div",{className:"text-xs text-gray-500",children:(E=({max_budget:"Enter maximum budget in USD (e.g., 100.50)",budget_duration:"Select a time period for budget reset",tpm_limit:"Enter maximum tokens per minute (whole number)",rpm_limit:"Enter maximum requests per minute (whole number)",duration:"Enter duration (e.g., 30s, 24h, 7d)",metadata:'Enter JSON object with key-value pairs\nExample: {"team": "research", "project": "nlp"}',config:'Enter configuration as JSON object\nExample: {"setting": "value"}',permissions:"Enter comma-separated permission strings",enforced_params:'Enter parameters as JSON object\nExample: {"param": "value"}',blocked:"Enter true/false or specific block conditions",aliases:'Enter aliases as JSON object\nExample: {"alias1": "value1", "alias2": "value2"}',models:"Select one or more model names",key_alias:"Enter a unique identifier for this key",tags:"Enter comma-separated tag strings"})[e]||({string:"Text input",number:"Numeric input",integer:"Whole number input",boolean:"True/False value"})[a]||"Text input",m(e,t)?`${E} Must be valid JSON format`:t.enum?`Select from available options -Allowed values: ${t.enum.join(", ")}`:E)}),children:r},e)})}):null};var v=e.i(727749);let y=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`},b=async e=>{try{let t=S?`${S}/callbacks/configs`:"/callbacks/configs",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},w=async e=>{try{let t=S?`${S}/in_product_nudges`:"/in_product_nudges",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get in-product nudges:",e),e}},$=t.default.env.NEXT_PUBLIC_BASE_URL?t.default.env.NEXT_PUBLIC_BASE_URL:null,C="/",x="litellm_worker_url",E=window.localStorage.getItem(x),S=(()=>{if(!E)return null;try{let e=new URL(E);if("http:"===e.protocol||"https:"===e.protocol)return E}catch{}return window.localStorage.removeItem(x),null})()??$;console.log=function(){};let k=()=>{if(S)return S;let e=window.location;return e?.origin??""};function j(e){(!e||function(e){try{let t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch{return!1}}(e))&&(e?window.localStorage.setItem(x,e):window.localStorage.removeItem(x),S=e??$)}let O="POST",T="DELETE",I=0,_=async e=>{let t=Date.now();if(t-I>6e4){if(("string"==typeof e?e:JSON.stringify(e)).includes("Authentication Error - Expired Key")){v.default.info("UI Session Expired. Logging out."),I=t,(0,o.clearTokenCookies)();let e=window.location;e&&(window.location.href=e.pathname)}I=t}else console.log("Error suppressed to prevent spam:",e)},F=async()=>{let e=S?`${S}/public/providers/fields`:"/public/providers/fields",t=await fetch(e,{method:"GET"});if(!t.ok){let e=await t.text();throw console.error("Failed to fetch provider create metadata:",t.status,e),Error("Failed to load provider configuration")}return await t.json()},P=async()=>{let e=S?`${S}/public/agents/fields`:"/public/agents/fields",t=await fetch(e,{method:"GET"});if(!t.ok){let e=await t.text();throw console.error("Failed to fetch agent create metadata:",t.status,e),Error("Failed to load agent configuration")}return await t.json()},R="Authorization";function N(e="Authorization"){console.log(`setGlobalLitellmHeaderName: ${e}`),R=e}function M(){return R}let B=async(e,t)=>{let r=S?`${S}/model_group/make_public`:"/model_group/make_public";return(await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({model_groups:t})})).json()},A=async()=>{console.log("Getting UI config");let e=$?`${$}/litellm/.well-known/litellm-ui-config`:"/litellm/.well-known/litellm-ui-config",r=await fetch(e),o=await r.json();return console.log("jsonData in getUiConfig:",o),((e,r=null)=>{if(window.localStorage.getItem(x))return;let o=window.location,n=t.default.env.NEXT_PUBLIC_BASE_URL?t.default.env.NEXT_PUBLIC_BASE_URL:o?.origin??null,a=r||n;if(console.log("proxyBaseUrl:",S),console.log("serverRootPath:",e),!a)return console.log("Updated proxyBaseUrl:",S=S??null);e.length>0&&!a.endsWith(e)&&"/"!=e&&(a+=e),console.log("Updated proxyBaseUrl:",S=a)})(o.server_root_path,o.proxy_base_url),o},z=async()=>{let e=S?`${S}/public/model_hub/info`:"/public/model_hub/info",t=await fetch(e);return await t.json()},L=async()=>{let e=S?`${S}/openapi.json`:"/openapi.json",t=await fetch(e);return await t.json()},D=async()=>{try{let e=S?`${S}/public/litellm_model_cost_map`:"/public/litellm_model_cost_map",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}}),r=await t.json();return console.log(`received litellm model cost data: ${r}`),r}catch(e){throw console.error("Failed to get model cost map:",e),e}},H=async e=>{try{let t=S?`${S}/reload/model_cost_map`:"/reload/model_cost_map",r=await fetch(t,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),o=await r.json();return console.log(`Model cost map reload response: ${o}`),o}catch(e){throw console.error("Failed to reload model cost map:",e),e}},V=async(e,t)=>{try{let r=S?`${S}/schedule/model_cost_map_reload?hours=${t}`:`/schedule/model_cost_map_reload?hours=${t}`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),n=await o.json();return console.log(`Schedule model cost map reload response: ${n}`),n}catch(e){throw console.error("Failed to schedule model cost map reload:",e),e}},W=async e=>{try{let t=S?`${S}/schedule/model_cost_map_reload`:"/schedule/model_cost_map_reload",r=await fetch(t,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),o=await r.json();return console.log(`Cancel model cost map reload response: ${o}`),o}catch(e){throw console.error("Failed to cancel model cost map reload:",e),e}},U=async e=>{try{let t=S?`${S}/model/cost_map/source`:"/model/cost_map/source",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw Error(`HTTP ${r.status}: ${e}`)}let o=await r.json();return console.log("Model cost map source info:",o),o}catch(e){throw console.error("Failed to get model cost map source info:",e),e}},G=async e=>{try{let t=S?`${S}/schedule/model_cost_map_reload/status`:"/schedule/model_cost_map_reload/status";console.log("Fetching status from URL:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){console.error(`Status request failed with status: ${r.status}`);let e=await r.text();throw console.error("Error response:",e),Error(`HTTP ${r.status}: ${e}`)}let o=await r.json();return console.log("Model cost map reload status:",o),o}catch(e){throw console.error("Failed to get model cost map reload status:",e),e}},q=async(e,t)=>{try{let o=S?`${S}/model/new`:"/model/new",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),r.default.destroy(),v.default.success(`Model ${t.model_name} created successfully`),a}catch(e){throw console.error("Failed to create key:",e),e}},J=async(e,t)=>{console.log(`model_id in model delete call: ${t}`);try{let r=S?`${S}/model/delete`:"/model/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},K=async(e,t)=>{if(console.log(`budget_id in budget delete call: ${t}`),null!=e)try{let r=S?`${S}/budget/delete`:"/budget/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},X=async(e,t)=>{try{console.log("Form Values in budgetCreateCall:",t),console.log("Form Values after check:",t);let r=S?`${S}/budget/new`:"/budget/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Q=async(e,t)=>{try{console.log("Form Values in budgetUpdateCall:",t),console.log("Form Values after check:",t);let r=S?`${S}/budget/update`:"/budget/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Y=async(e,t)=>{try{let r=S?`${S}/invitation/new`:"/invitation/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Z=async e=>{try{let t=S?`${S}/alerting/settings`:"/alerting/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},ee=async(e,t)=>{try{for(let e of(console.log("Form Values in keyCreateServiceAccountCall:",t),t.description&&(t.metadata||(t.metadata={}),t.metadata.description=t.description,delete t.description,t.metadata=JSON.stringify(t.metadata)),h))if(t[e]){console.log(`formValues.${e}:`,t[e]);try{t[e]=JSON.parse(t[e])}catch(t){throw Error(`Failed to parse ${e}: `+t)}}console.log("Form Values after check:",t);let r=S?`${S}/key/service-account/generate`:"/key/service-account/generate",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},et=async(e,t,r)=>{try{for(let e of(console.log("Form Values in keyCreateCall:",r),r.description&&(r.metadata||(r.metadata={}),r.metadata.description=r.description,delete r.description,r.metadata=JSON.stringify(r.metadata)),h))if(r[e]){console.log(`formValues.${e}:`,r[e]);try{r[e]=JSON.parse(r[e])}catch(t){throw Error(`Failed to parse ${e}: `+t)}}console.log("Form Values after check:",r);let o=S?`${S}/key/generate`:"/key/generate",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t,...r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},er=async(e,t,r,o,n,a)=>{let i=S?`${S}/key/generate`:"/key/generate",l={agent_id:t,key_alias:r,models:o.length>0?o:[]};a&&(l.team_id=a),n&&Object.keys(n).length>0&&(l.metadata=n);let s=await fetch(i,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(l)});if(!s.ok)throw _(await s.text()),Error("Failed to create key for agent");return s.json()},eo=async(e,t,r)=>{try{if(console.log("Form Values in keyCreateCall:",r),r.description&&(r.metadata||(r.metadata={}),r.metadata.description=r.description,delete r.description,r.metadata=JSON.stringify(r.metadata)),r.auto_create_key=!1,r.metadata){console.log("formValues.metadata:",r.metadata);try{r.metadata=JSON.parse(r.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}console.log("Form Values after check:",r);let o=S?`${S}/user/new`:"/user/new",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t,...r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},en=async(e,t)=>{try{let r=S?`${S}/key/delete`:"/key/delete";console.log("in keyDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({keys:[t]})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to create key:",e),e}},ea=async(e,t)=>{try{let r=S?`${S}/user/delete`:"/user/delete";console.log("in userDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_ids:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete user(s):",e),e}},ei=async(e,t)=>{try{let r=S?`${S}/team/delete`:"/team/delete";console.log("in teamDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_ids:[t]})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete key:",e),e}},el=async(e,t=null,r=null,o=null,n=null,a=null,i=null,l=null,s=null,c=null,u=null)=>{try{let d=S?`${S}/user/list`:"/user/list";console.log("in userListCall");let f=new URLSearchParams;if(t&&t.length>0){let e=t.join(",");f.append("user_ids",e)}r&&f.append("page",r.toString()),o&&f.append("page_size",o.toString()),n&&f.append("user_email",n),a&&f.append("role",a),i&&f.append("team",i),l&&f.append("sso_user_ids",l),s&&f.append("sort_by",s),c&&f.append("sort_order",c),u&&u.length>0&&f.append("organization_ids",u.join(","));let p=f.toString();p&&(d+=`?${p}`);let h=await fetch(d,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!h.ok){let e=await h.json(),t=oM(e);throw _(t),Error(t)}let m=await h.json();return console.log("/user/list API Response:",m),m}catch(e){throw console.error("Failed to create key:",e),e}},es=async(e,t)=>{try{let r=S?`${S}/v2/user/info`:"/v2/user/info";t&&(r+=`?user_id=${encodeURIComponent(t)}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to fetch user info v2:",e),e}},ec=async(e,t)=>{try{let r=S?`${S}/team/info`:"/team/info";t&&(r=`${r}?team_id=${encodeURIComponent(t)}`),console.log("in teamInfoCall");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eu=async(e,t,r=null,o=null,n=null,a=1,i=10,l=null,s=null)=>{try{let a=S?`${S}/v2/team/list`:"/v2/team/list";console.log("in teamInfoCall");let i=new URLSearchParams;r&&i.append("user_id",r.toString()),t&&i.append("organization_id",t.toString()),o&&i.append("team_id",o.toString()),n&&i.append("team_alias",n.toString());let l=i.toString();l&&(a+=`?${l}`);let s=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}let c=await s.json();return console.log("/v2/team/list API Response:",c),c}catch(e){throw console.error("Failed to create key:",e),e}},ed=async(e,t,r=null,o=null,n=null)=>{try{let a=S?`${S}/team/list`:"/team/list";console.log("in teamInfoCall");let i=new URLSearchParams;r&&i.append("user_id",r.toString()),t&&i.append("organization_id",t.toString()),o&&i.append("team_id",o.toString()),n&&i.append("team_alias",n.toString());let l=i.toString();l&&(a+=`?${l}`);let s=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}let c=await s.json();return console.log("/team/list API Response:",c),c}catch(e){throw console.error("Failed to create key:",e),e}},ef=async e=>{try{let t=S?`${S}/team/available`:"/team/available";console.log("in availableTeamListCall");let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("/team/available_teams API Response:",o),o}catch(e){throw e}},ep=async(e,t=null,r=null)=>{try{let o=S?`${S}/organization/list`:"/organization/list",n=new URLSearchParams;t&&n.append("org_id",t.toString()),r&&n.append("org_alias",r.toString());let a=n.toString();a&&(o+=`?${a}`);let i=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to create key:",e),e}},eh=async(e,t)=>{try{let r=S?`${S}/organization/info`:"/organization/info";t&&(r=`${r}?organization_id=${t}`),console.log("in teamInfoCall");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},em=async(e,t)=>{try{if(console.log("Form Values in organizationCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw console.error("Failed to parse metadata:",e),Error("Failed to parse metadata: "+e)}}let r=S?`${S}/organization/new`:"/organization/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eg=async(e,t)=>{try{console.log("Form Values in organizationUpdateCall:",t);let r=S?`${S}/organization/update`:"/organization/update",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Update Team Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},ev=async(e,t)=>{try{let r=S?`${S}/organization/delete`:"/organization/delete",o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_ids:[t]})});if(!o.ok){let e=await o.text();throw _(e),Error(`Error deleting organization: ${e}`)}return await o.json()}catch(e){throw console.error("Failed to delete organization:",e),e}},ey=async(e,t)=>{try{let r=S?`${S}/utils/transform_request`:"/utils/transform_request",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create key:",e),e}},eb=async({accessToken:e,endpoint:t,startTime:r,endTime:o,page:n=1,extraQueryParams:a})=>{try{let i,l,s,c,u=(i=t.startsWith("/")?t:`/${t}`,l=S?`${S}${i}`:i,(s=new URLSearchParams).append("start_date",y(r)),s.append("end_date",y(o)),s.append("page_size","1000"),s.append("page",n.toString()),s.append("timezone",new Date().getTimezoneOffset().toString()),a&&Object.entries(a).forEach(([e,t])=>{((e,t,r)=>{if(null!=r){if(Array.isArray(r)){r.length>0&&e.append(t,r.join(","));return}e.append(t,`${r}`)}})(s,e,t)}),(c=s.toString())?`${l}?${c}`:l),d=await fetch(u,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!d.ok){let e=await d.json(),t=oM(e);throw _(t),Error(t)}return await d.json()}catch(e){throw console.error(`Failed to fetch daily activity (${t}):`,e),e}},ew=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/user/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{user_id:n}}),e$=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/tag/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{tags:n}}),eC=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/team/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{team_ids:n,exclude_team_ids:"litellm-dashboard"}}),ex=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/organization/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{organization_ids:n}}),eE=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/customer/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{end_user_ids:n}}),eS=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/agent/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{agent_ids:n}}),ek=async e=>{try{let t=S?`${S}/onboarding/get_token`:"/onboarding/get_token";t+=`?invite_link=${e}`;let r=await fetch(t,{method:"GET",headers:{"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to create key:",e),e}},ej=async(e,t,r,o)=>{let n=S?`${S}/onboarding/claim_token`:"/onboarding/claim_token";try{let a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({invitation_link:t,user_id:r,password:o})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to delete key:",e),e}},eO=async(e,t,r)=>{try{let o=S?`${S}/key/${t}/regenerate`:`/key/${t}/regenerate`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Regenerate key Response:",a),a}catch(e){throw console.error("Failed to regenerate key:",e),e}},eT=!1,eI=null,e_=async(e,t,r,o=1,n=50,a,i,l,s,c)=>{try{console.log("modelInfoCall:",e,t,r,o,n,a,i,l,s,c);let u=S?`${S}/v2/model/info`:"/v2/model/info",d=new URLSearchParams;d.append("include_team_models","true"),d.append("page",o.toString()),d.append("size",n.toString()),a&&a.trim()&&d.append("search",a.trim()),i&&i.trim()&&d.append("modelId",i.trim()),l&&l.trim()&&d.append("teamId",l.trim()),s&&s.trim()&&d.append("sortBy",s.trim()),c&&c.trim()&&d.append("sortOrder",c.trim()),d.toString()&&(u+=`?${d.toString()}`);let f=await fetch(u,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!f.ok){let e=await f.text();throw e+=`error shown=${eT}`,eT||(e.includes("No model list passed")&&(e="No Models Exist. Click Add Model to get started."),v.default.info(e),eT=!0,eI&&clearTimeout(eI),eI=setTimeout(()=>{eT=!1},1e4)),Error("Network response was not ok")}let p=await f.json();return console.log("modelInfoCall:",p),p}catch(e){throw console.error("Failed to create key:",e),e}},eF=async(e,t)=>{try{let r=S?`${S}/v1/model/info`:"/v1/model/info";r+=`?litellm_model_id=${t}`;let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("modelInfoV1Call:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eP=async()=>{let e=S?`${S}/public/model_hub`:"/public/model_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`modelHubPublicModelsCall failed with status ${t.status}`),[])},eR=async()=>{let e=S?`${S}/public/agent_hub`:"/public/agent_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`agentHubPublicModelsCall failed with status ${t.status}`),[])},eN=async()=>{let e=S?`${S}/public/mcp_hub`:"/public/mcp_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`mcpHubPublicServersCall failed with status ${t.status}`),[])},eM=async()=>{let e=S?`${S}/public/skill_hub`:"/public/skill_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`skillHubPublicCall failed with status ${t.status}`),{plugins:[]})},eB=async e=>{try{let t=S?`${S}/model_group/info`:"/model_group/info",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("modelHubCall:",o),o}catch(e){throw console.error("Failed to create key:",e),e}},eA=async e=>{try{let t=S?`${S}/get/allowed_ips`:"/get/allowed_ips",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("getAllowedIPs:",o),o.data}catch(e){throw console.error("Failed to get allowed IPs:",e),e}},ez=async(e,t)=>{try{let r=S?`${S}/add/allowed_ip`:"/add/allowed_ip",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({ip:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("addAllowedIP:",n),n}catch(e){throw console.error("Failed to add allowed IP:",e),e}},eL=async(e,t)=>{try{let r=S?`${S}/delete/allowed_ip`:"/delete/allowed_ip",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({ip:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("deleteAllowedIP:",n),n}catch(e){throw console.error("Failed to delete allowed IP:",e),e}},eD=async(e,t)=>{try{let r=S?`${S}/model_hub/update_useful_links`:"/model_hub/update_useful_links",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({useful_links:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create key:",e),e}},eH=async(e,t,r,o=!1,n=null,a=!1,i=!1,l)=>{console.log("in /models calls, globalLitellmHeaderName",R);try{let t=S?`${S}/models`:"/models",r=new URLSearchParams;r.append("include_model_access_groups","True"),!0===o&&r.append("return_wildcard_routes","True"),!0===i&&r.append("only_model_access_groups","True"),n&&r.append("team_id",n.toString()),l&&r.append("scope",l),r.toString()&&(t+=`?${r.toString()}`);let a=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return await a.json()}catch(e){throw console.error("Failed to create key:",e),e}},eV=async e=>{try{let t=S?`${S}/global/spend/teams`:"/global/spend/teams";console.log("in teamSpendLogsCall:",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eW=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/tags`:"/global/spend/tags";t&&r&&(n=`${n}?start_date=${t}&end_date=${r}`),o&&(n+=`&tags=${o.join(",")}`),console.log("in tagsSpendLogsCall:",n);let a=await fetch(`${n}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to create key:",e),e}},eU=async e=>{try{let t=S?`${S}/global/spend/all_tag_names`:"/global/spend/all_tag_names";console.log("in global/spend/all_tag_names call",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eG=async e=>{try{let t=S?`${S}/customer/list`:"/customer/list";console.log("in customer/list",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to fetch end users:",e),e}},eq=async(e,t)=>{try{let r=S?`${S}/user/filter/ui`:"/user/filter/ui",o=new URLSearchParams;t.get("user_email")&&o.append("user_email",t.get("user_email")),t.get("user_id")&&o.append("user_id",t.get("user_id")),t.get("team_id")&&o.append("team_id",t.get("team_id"));let n=o.toString(),a=n?`${r}?${n}`:r,i=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to create key:",e),e}},eJ=async({accessToken:e,start_date:t,end_date:r,page:o=1,page_size:n=50,params:a={}})=>{try{let i=S?`${S}/spend/logs/ui`:"/spend/logs/ui",l=new URLSearchParams;for(let[e,i]of(l.append("start_date",t),l.append("end_date",r),l.append("page",o.toString()),l.append("page_size",n.toString()),Object.entries(a)))null!=i&&("min_spend"===e||"max_spend"===e?l.append(e,i.toString()):"string"==typeof i&&""!==i&&l.append(e,String(i)));let s=l.toString();s&&(i+=`?${s}`);let c=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!c.ok){let e=await c.json(),t=oM(e);throw _(t),Error(t)}let u=await c.json();return console.log("Spend Logs Response:",u),u}catch(e){throw console.error("Failed to fetch spend logs:",e),e}},eK=async e=>{try{let t=S?`${S}/global/spend/logs`:"/global/spend/logs",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eX=async e=>{try{let t=S?`${S}/global/spend/keys?limit=5`:"/global/spend/keys?limit=5",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eQ=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/end_users`:"/global/spend/end_users",a="";a=t?JSON.stringify({api_key:t,startTime:r,endTime:o}):JSON.stringify({startTime:r,endTime:o});let i={method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:a},l=await fetch(n,i);if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}let s=await l.json();return console.log(s),s}catch(e){throw console.error("Failed to create key:",e),e}},eY=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/provider`:"/global/spend/provider";r&&o&&(n+=`?start_date=${r}&end_date=${o}`),t&&(n+=`&api_key=${t}`);let a={method:"GET",headers:{[R]:`Bearer ${e}`}},i=await fetch(n,a);if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}let l=await i.json();return console.log(l),l}catch(e){throw console.error("Failed to fetch spend data:",e),e}},eZ=async(e,t,r)=>{try{let o=S?`${S}/global/activity`:"/global/activity";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e0=async(e,t,r)=>{try{let o=S?`${S}/global/activity/cache_hits`:"/global/activity/cache_hits";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e1=async(e,t,r)=>{try{let o=S?`${S}/global/activity/model`:"/global/activity/model";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e2=async e=>{try{let t=S?`${S}/global/spend/models?limit=5`:"/global/spend/models?limit=5",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},e4=async(e,t)=>{try{let r=S?`${S}/v2/key/info`:"/v2/key/info",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({keys:t})});if(!o.ok){let e=await o.text();if(e.includes("Invalid proxy server token passed"))throw Error("Invalid proxy server token passed");throw _(e),Error("Network response was not ok")}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to create key:",e),e}},e6=async(e,t,r,o)=>{try{console.log("Sending model connection test request:",JSON.stringify(t));let n=S?`${S}/health/test_connection`:"/health/test_connection",a=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({litellm_params:t,model_info:r,mode:o})}),i=a.headers.get("content-type");if(!i||!i.includes("application/json")){let e=await a.text();throw console.error("Received non-JSON response:",e),Error(`Received non-JSON response (${a.status}: ${a.statusText}). Check network tab for details.`)}let l=await a.json();if((!a.ok||"error"===l.status)&&"error"!==l.status)return{status:"error",message:l.error?.message||`Connection test failed: ${a.status} ${a.statusText}`};return l}catch(e){throw console.error("Model connection test error:",e),e}},e3=async(e,t)=>{try{console.log("entering keyInfoV1Call");let r=S?`${S}/key/info`:"/key/info";r=`${r}?key=${t}`;let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(console.log("response",o),!o.ok){let e=await o.text();_(e),v.default.fromBackend("Failed to fetch key info - "+e)}let n=await o.json();return console.log("data",n),n}catch(e){throw console.error("Failed to fetch key info:",e),e}},e7=async(e,t,r,o,n,a,i,l,s=null,c=null,u=null,d=null)=>{try{let f=S?`${S}/key/list`:"/key/list";console.log("in keyListCall");let p=new URLSearchParams;r&&p.append("team_id",r.toString()),t&&p.append("organization_id",t.toString()),o&&p.append("key_alias",o),a&&p.append("key_hash",a),n&&p.append("user_id",n.toString()),i&&p.append("page",i.toString()),l&&p.append("size",l.toString()),s&&p.append("sort_by",s),c&&p.append("sort_order",c),u&&p.append("expand",u),d&&p.append("status",d),p.append("return_full_object","true"),p.append("include_team_keys","true"),p.append("include_created_by_keys","true");let h=p.toString();h&&(f+=`?${h}`);let m=await fetch(f,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!m.ok){let e=await m.json(),t=oM(e);throw _(t),Error(t)}let g=await m.json();return console.log("/team/list API Response:",g),g}catch(e){throw console.error("Failed to create key:",e),e}},e5=async(e,t=1,r=50,o,n)=>{try{let a=new URLSearchParams(Object.entries({page:String(t),size:String(r),...o?{search:o}:{},...n?{team_id:n}:{}})),i=S?`${S}/key/aliases`:"/key/aliases";i=`${i}?${a}`;let l=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}let s=await l.json();return console.log("/key/aliases API Response:",s),s}catch(e){throw console.error("Failed to fetch key aliases:",e),e}},e9=async(e,t,r,o=null)=>{try{let n=S?`${S}/user/daily/activity/aggregated`:"/user/daily/activity/aggregated",a=new URLSearchParams,i=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`};a.append("start_date",i(t)),a.append("end_date",i(r)),a.append("timezone",new Date().getTimezoneOffset().toString()),o&&a.append("user_id",o);let l=a.toString();l&&(n+=`?${l}`);let s=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}return await s.json()}catch(e){throw console.error("Failed to fetch aggregated user daily activity:",e),e}},e8=async e=>{try{let t=S?`${S}/user/available_roles`:"/user/available_roles",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("response from user/available_role",o),o}catch(e){throw e}},te=async(e,t)=>{try{if(console.log("Form Values in teamCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let r=S?`${S}/team/new`:"/team/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tt=async(e,t)=>{try{if(console.log("Form Values in credentialCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let r=S?`${S}/credentials`:"/credentials",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tr=async e=>{try{let t=S?`${S}/credentials`:"/credentials";console.log("in credentialListCall");let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("/credentials API Response:",o),o}catch(e){throw console.error("Failed to create key:",e),e}},to=async(e,t,r)=>{try{let o=S?`${S}/credentials`:"/credentials";t?o+=`/by_name/${t}`:r&&(o+=`/by_model/${r}`),console.log("in credentialListCall");let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("/credentials API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tn=async(e,t)=>{try{let r=S?`${S}/credentials/${t}`:`/credentials/${t}`;console.log("in credentialDeleteCall:",t);let o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete key:",e),e}},ta=async(e,t,r)=>{try{if(console.log("Form Values in credentialUpdateCall:",r),r.metadata){console.log("formValues.metadata:",r.metadata);try{r.metadata=JSON.parse(r.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let o=S?`${S}/credentials/${t}`:`/credentials/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},ti=async(e,t)=>{try{if(console.log("Form Values in keyUpdateCall:",t),t.model_tpm_limit){console.log("formValues.model_tpm_limit:",t.model_tpm_limit);try{t.model_tpm_limit=JSON.parse(t.model_tpm_limit)}catch(e){throw Error("Failed to parse model_tpm_limit: "+e)}}if(t.model_rpm_limit){console.log("formValues.model_rpm_limit:",t.model_rpm_limit);try{t.model_rpm_limit=JSON.parse(t.model_rpm_limit)}catch(e){throw Error("Failed to parse model_rpm_limit: "+e)}}let r=S?`${S}/key/update`:"/key/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let n=await o.json();return console.log("Update key Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tl=async(e,t)=>{try{console.log("Form Values in teamUpateCall:",t);let r=S?`${S}/team/update`:"/team/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),v.default.fromBackend("Failed to update team settings: "+e),Error(e)}let n=await o.json();return console.log("Update Team Response:",n),n}catch(e){throw console.error("Failed to update team:",e),e}},ts=async(e,t,r)=>{try{console.log("Form Values in modelUpateCall:",t);let o=S?`${S}/model/${r}/update`:`/model/${r}/update`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error update from the server:",e),Error("Network response was not ok")}let a=await n.json();return console.log("Update model Response:",a),a}catch(e){throw console.error("Failed to update model:",e),e}},tc=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/team/member_add`:"/team/member_add",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_id:t,member:r})});if(!n.ok){let e=await n.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to add team member",o=Error(r);throw o.raw=t,o}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tu=async(e,t,r,o,n)=>{try{console.log("Bulk add team members:",{teamId:t,members:r,maxBudgetInTeam:o});let a=S?`${S}/team/bulk_member_add`:"/team/bulk_member_add",i={team_id:t};n?i.all_users=!0:i.members=r,null!=o&&(i.max_budget_in_team=o);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to bulk add team members",o=Error(r);throw o.raw=t,o}let s=await l.json();return console.log("Bulk team member add API Response:",s),s}catch(e){throw console.error("Failed to bulk add team members:",e),e}},td=async(e,t,r)=>{try{console.log("Form Values in teamMemberUpdateCall:",r),console.log("Budget value:",r.max_budget_in_team),console.log("TPM limit:",r.tpm_limit),console.log("RPM limit:",r.rpm_limit);let o=S?`${S}/team/member_update`:"/team/member_update",n={team_id:t,role:r.role,user_id:r.user_id};void 0!==r.user_email&&(n.user_email=r.user_email),void 0!==r.max_budget_in_team&&null!==r.max_budget_in_team&&(n.max_budget_in_team=r.max_budget_in_team),void 0!==r.tpm_limit&&null!==r.tpm_limit&&(n.tpm_limit=r.tpm_limit),void 0!==r.rpm_limit&&null!==r.rpm_limit&&(n.rpm_limit=r.rpm_limit),void 0!==r.allowed_models&&(n.allowed_models=r.allowed_models),console.log("Final request body:",n);let a=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(n)});if(!a.ok){let e=await a.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to add team member",o=Error(r);throw o.raw=t,o}let i=await a.json();return console.log("API Response:",i),i}catch(e){throw console.error("Failed to update team member:",e),e}},tf=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/team/member_delete`:"/team/member_delete",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_id:t,...void 0!==r.user_email&&{user_email:r.user_email},...void 0!==r.user_id&&{user_id:r.user_id}})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tp=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/organization/member_add`:"/organization/member_add",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,member:r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create organization member:",e),e}},th=async(e,t,r)=>{try{console.log("Form Values in organizationMemberDeleteCall:",r);let o=S?`${S}/organization/member_delete`:"/organization/member_delete",n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,user_id:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to delete organization member:",e),e}},tm=async(e,t,r)=>{try{console.log("Form Values in organizationMemberUpdateCall:",r);let o=S?`${S}/organization/member_update`:"/organization/member_update",n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,...r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to update organization member:",e),e}},tg=async(e,t,r)=>{try{console.log("Form Values in userUpdateUserCall:",t);let o=S?`${S}/user/update`:"/user/update",n={...t};null!==r&&(n.user_role=r),n=JSON.stringify(n);let a=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:n});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log("API Response:",i),i}catch(e){throw console.error("Failed to create key:",e),e}},tv=async(e,t,r,o=!1)=>{try{let n;console.log("Form Values in userUpdateUserCall:",t);let a=S?`${S}/user/bulk_update`:"/user/bulk_update";if(o)n=JSON.stringify({all_users:!0,user_updates:t});else if(r&&r.length>0){let e=[];for(let o of r)e.push({user_id:o,...t});n=JSON.stringify({users:e})}else throw Error("Must provide either userIds or set allUsers=true");let i=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:n});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}let l=await i.json();return console.log("API Response:",l),l}catch(e){throw console.error("Failed to create key:",e),e}},ty=async(e,t)=>{try{let r=S?`${S}/health/services?service=${t}`:`/health/services?service=${t}`;console.log("Checking Slack Budget Alerts service health");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}return await o.json()}catch(e){throw console.error("Failed to perform health check:",e),e}},tb=async e=>{try{let t=S?`${S}/budget/list`:"/budget/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tw=async(e,t,r)=>{try{let t=S?`${S}/get/config/callbacks`:"/get/config/callbacks",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},t$=async e=>{try{let t=S?`${S}/config/list?config_type=general_settings`:"/config/list?config_type=general_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tC=async e=>{try{let t=S?`${S}/router/settings`:"/router/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get router settings:",e),e}},tx=async e=>{try{let t=S?`${S}/cache/settings`:"/cache/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get cache settings:",e),e}},tE=async(e,t)=>{try{let r=S?`${S}/cache/settings/test`:"/cache/settings/test",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({cache_settings:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to test cache connection:",e),e}},tS=async(e,t)=>{try{let r=S?`${S}/cache/settings`:"/cache/settings",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({cache_settings:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update cache settings:",e),e}},tk=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint`:"/config/pass_through_endpoint";t&&(r+=`/team/${t}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tj=async(e,t)=>{try{let r=S?`${S}/config/field/info?field_name=${t}`:`/config/field/info?field_name=${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tO=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint`:"/config/pass_through_endpoint",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tT=async(e,t,r)=>{try{let o=S?`${S}/config/field/update`:"/config/field/update",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({field_name:t,field_value:r,config_type:"general_settings"})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return v.default.success("Successfully updated value!"),a}catch(e){throw console.error("Failed to set callbacks:",e),e}},tI=async(e,t)=>{try{let r=S?`${S}/config/field/delete`:"/config/field/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({field_name:t,config_type:"general_settings"})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return v.default.success("Field reset on proxy"),n}catch(e){throw console.error("Failed to get callbacks:",e),e}},t_=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint?endpoint_id=${t}`:`/config/pass_through_endpoint?endpoint_id=${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tF=async(e,t)=>{try{let r=S?`${S}/config/update`:"/config/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tP=async(e,t)=>{try{let r=S?`${S}/health?model_id=${encodeURIComponent(t)}`:`/health?model_id=${encodeURIComponent(t)}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error(`Failed to call /health for model id ${t}:`,e),e}},tR=async e=>{try{let t=S?`${S}/cache/ping`:"/cache/ping",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error(e)}return await r.json()}catch(e){throw console.error("Failed to call /cache/ping:",e),e}},tN=async e=>{try{let t=S?`${S}/health/latest`:"/health/latest",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error(e)}return await r.json()}catch(e){throw console.error("Failed to call /health/latest:",e),e}},tM=async e=>{try{console.log("Getting proxy UI settings"),console.log("proxyBaseUrl in getProxyUISettings:",S);let t=S?`${S}/sso/get/ui_settings`:"/sso/get/ui_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tB=async e=>{try{let t=S?`${S}/get/ui_settings`:"/get/ui_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);return console.error("Failed to get UI settings:",t),null}return await r.json()}catch(e){return console.error("Failed to get UI settings:",e),null}},tA=async e=>{try{let t=S?`${S}/get/mcp_semantic_filter_settings`:"/get/mcp_semantic_filter_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get MCP semantic filter settings:",e),e}},tz=async(e,t)=>{try{let r=S?`${S}/update/mcp_semantic_filter_settings`:"/update/mcp_semantic_filter_settings",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP semantic filter settings:",e),e}},tL=async(e,t,r)=>{try{let o=S?`${S}/v1/responses`:"/v1/responses",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({model:t,input:[{role:"user",content:r,type:"message"}],tools:[{type:"mcp",server_url:"litellm_proxy",require_approval:"never"}],tool_choice:"required"})}),a=n.headers.get("x-litellm-semantic-filter"),i=n.headers.get("x-litellm-semantic-filter-tools");if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return{data:await n.json(),headers:{filter:a,tools:i}}}catch(e){throw console.error("Failed to test MCP semantic filter:",e),e}},tD=async e=>{try{let t=S?`${S}/v2/guardrails/list`:"/v2/guardrails/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(`v2 guardrails/list returned ${r.status}`);return await r.json()}catch(t){console.log("v2/guardrails/list failed, falling back to v1:",t);try{let t=S?`${S}/guardrails/list`:"/guardrails/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get guardrails list:",e),e}}},tH=async(e,t)=>{let r=S?`${S}/guardrails/submissions`:"/guardrails/submissions",o=new URLSearchParams;t?.status&&o.set("status",t.status),t?.team_id&&o.set("team_id",t.team_id),t?.team_guardrail!==void 0&&o.set("team_guardrail",String(t.team_guardrail)),t?.search&&o.set("search",t.search);let n=o.toString()?`${r}?${o.toString()}`:r,a=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=oM(await a.json().catch(()=>({})));throw _(e),Error(e)}return a.json()},tV=async(e,t)=>{let r=S?`${S}/guardrails/submissions/${encodeURIComponent(t)}/approve`:`/guardrails/submissions/${encodeURIComponent(t)}/approve`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=oM(await o.json().catch(()=>({})));throw _(e),Error(e)}return o.json()},tW=async(e,t)=>{let r=S?`${S}/guardrails/submissions/${encodeURIComponent(t)}/reject`:`/guardrails/submissions/${encodeURIComponent(t)}/reject`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=oM(await o.json().catch(()=>({})));throw _(e),Error(e)}return o.json()},tU=async(e,t,r)=>{try{let o=S?`${S}/guardrails/usage/overview`:"/guardrails/usage/overview",n=new URLSearchParams;t&&n.append("start_date",t),r&&n.append("end_date",r),n.toString()&&(o+=`?${n.toString()}`);let a=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json();throw Error(oM(e))}return a.json()}catch(e){throw console.error("Failed to get guardrails usage overview:",e),e}},tG=async(e,t,r,o)=>{try{let n=S?`${S}/guardrails/usage/detail/${encodeURIComponent(t)}`:`/guardrails/usage/detail/${encodeURIComponent(t)}`,a=new URLSearchParams;r&&a.append("start_date",r),o&&a.append("end_date",o),a.toString()&&(n+=`?${a.toString()}`);let i=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json();throw Error(oM(e))}return i.json()}catch(e){throw console.error("Failed to get guardrails usage detail:",e),e}},tq=async(e,t)=>{try{let r=S?`${S}/guardrails/usage/logs`:"/guardrails/usage/logs",o=new URLSearchParams;t.guardrailId&&o.append("guardrail_id",t.guardrailId),t.policyId&&o.append("policy_id",t.policyId),null!=t.page&&o.append("page",String(t.page)),null!=t.pageSize&&o.append("page_size",String(t.pageSize)),t.action&&o.append("action",t.action),t.startDate&&o.append("start_date",t.startDate),t.endDate&&o.append("end_date",t.endDate),o.toString()&&(r+=`?${o.toString()}`);let n=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json();throw Error(oM(e))}return n.json()}catch(e){throw console.error("Failed to get guardrails usage logs:",e),e}},tJ=async e=>{try{let t=S?`${S}/policies/list`:"/policies/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policies list:",e),e}},tK=async(e,t,r)=>{try{let o=S?`${S}/utils/test_policies_and_guardrails`:"/utils/test_policies_and_guardrails",n=await fetch(o,{method:"POST",signal:r,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({policy_names:t.policy_names??null,guardrail_names:t.guardrail_names??null,inputs:t.inputs??null,inputs_list:t.inputs_list??null,request_data:t.request_data??{},input_type:t.input_type??"request",agent_id:t.agent_id??null})});if(!n.ok){let e=await n.text(),t="Failed to test policies and guardrails";try{let r=JSON.parse(e);r.detail?t="string"==typeof r.detail?r.detail:JSON.stringify(r.detail):r.message&&(t=r.message)}catch{t=e||t}throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to test policies and guardrails:",e),e}},tX=async(e,t)=>{try{let r=S?`${S}/policy/info/${t}`:`/policy/info/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error(`Failed to get policy info for ${t}:`,e),e}},tQ=async e=>{try{let t=S?`${S}/policy/templates`:"/policy/templates",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policy templates:",e),e}},tY=async(e,t,r,o,n)=>{try{let a=S?`${S}/policy/templates/enrich`:"/policy/templates/enrich",i={template_id:t,parameters:r};o&&(i.model=o),n&&(i.competitors=n);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}return await l.json()}catch(e){throw console.error("Failed to enrich policy template:",e),e}},tZ=async(e,t,r,o)=>{try{let n=S?`${S}/policy/templates/suggest`:"/policy/templates/suggest",a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({attack_examples:t.filter(e=>e.trim()),description:r,model:o})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return a.json()}catch(e){throw console.error("Failed to suggest policy templates:",e),e}},t0=async(e,t,r)=>{try{let o=S?`${S}/policy/templates/test`:"/policy/templates/test",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({guardrail_definitions:t,text:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return n.json()}catch(e){throw console.error("Failed to test policy template:",e),e}},t1=async(e,t,r,o,n,a,i,l,s)=>{let c=S?`${S}/policy/templates/enrich/stream`:"/policy/templates/enrich/stream",u={template_id:t,parameters:r,model:o};l?.instruction&&(u.instruction=l.instruction),l?.existingCompetitors&&(u.competitors=l.existingCompetitors);let d=await fetch(c,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(u)});if(!d.ok){let e=oM(await d.json());throw _(e),Error(e)}let f=d.body?.getReader();if(!f)throw Error("No response body");let p=new TextDecoder,h="";for(;;){let{done:e,value:t}=await f.read();if(e)break;let r=(h+=p.decode(t,{stream:!0})).split("\n");for(let e of(h=r.pop()||"",r))if(e.startsWith("data: "))try{let t=JSON.parse(e.slice(6));"competitor"===t.type?n(t.name):"status"===t.type?s?.(t.message):"done"===t.type?a(t):"error"===t.type&&i?.(t.message)}catch{}}},t2=async(e,t,r,o,n,a,i,l,s)=>{let c=S?`${S}/usage/ai/chat`:"/usage/ai/chat",u=await fetch(c,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({messages:t,model:r}),signal:s});if(!u.ok){let e=oM(await u.json());throw _(e),Error(e)}let d=u.body?.getReader();if(!d)throw Error("No response body");let f=new TextDecoder,p="";for(;;){let{done:e,value:t}=await d.read();if(e)break;let r=(p+=f.decode(t,{stream:!0})).split("\n");for(let e of(p=r.pop()||"",r))if(e.startsWith("data: "))try{let t=JSON.parse(e.slice(6));"chunk"===t.type?o(t.content):"status"===t.type?i?.(t.message):"tool_call"===t.type?l?.(t):"done"===t.type?n():"error"===t.type&&a?.(t.message)}catch{}}},t4=async(e,t)=>{try{let r=S?`${S}/policies`:"/policies",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create policy:",e),e}},t6=async(e,t,r)=>{try{let o=S?`${S}/policies/${t}`:`/policies/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update policy:",e),e}},t3=async(e,t)=>{try{let r=encodeURIComponent(t),o=S?`${S}/policies/name/${r}/versions`:`/policies/name/${r}/versions`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to list policy versions:",e),e}},t7=async(e,t,r)=>{try{let o=encodeURIComponent(t),n=S?`${S}/policies/name/${o}/versions`:`/policies/name/${o}/versions`,a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({source_policy_id:r??void 0})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return await a.json()}catch(e){throw console.error("Failed to create policy version:",e),e}},t5=async(e,t,r)=>{try{let o=S?`${S}/policies/${t}/status`:`/policies/${t}/status`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({version_status:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update policy version status:",e),e}},t9=async(e,t)=>{try{let r=S?`${S}/policies/${t}`:`/policies/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete policy:",e),e}},t8=async(e,t)=>{try{let r=S?`${S}/policies/${t}`:`/policies/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get policy info:",e),e}},re=async e=>{try{let t=S?`${S}/policies/attachments/list`:"/policies/attachments/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policy attachments list:",e),e}},rt=async(e,t)=>{try{let r=S?`${S}/policies/attachments`:"/policies/attachments",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create policy attachment:",e),e}},rr=async(e,t)=>{try{let r=S?`${S}/policies/attachments/${t}`:`/policies/attachments/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete policy attachment:",e),e}},ro=async(e,t,r)=>{try{let o=S?`${S}/policies/test-pipeline`:"/policies/test-pipeline",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({pipeline:t,test_messages:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to test pipeline:",e),e}},rn=async(e,t)=>{try{let r=S?`${S}/policies/${t}/resolved-guardrails`:`/policies/${t}/resolved-guardrails`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get resolved guardrails:",e),e}},ra=async(e,t)=>{try{let r=S?`${S}/policies/resolve`:"/policies/resolve",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to resolve policies:",e),e}},ri=async(e,t)=>{try{let r=S?`${S}/policies/attachments/estimate-impact`:"/policies/attachments/estimate-impact",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to estimate attachment impact:",e),e}},rl=async(e,t)=>{try{let r=S?`${S}/prompts/list`:"/prompts/list";t&&(r+=`?environment=${encodeURIComponent(t)}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get prompts list:",e),e}},rs=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}/info`:`/prompts/${t}/info`;r&&(o+=`?environment=${encodeURIComponent(r)}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to get prompt info:",e),e}},rc=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}/versions`:`/prompts/${t}/versions`;r&&(o+=`?environment=${encodeURIComponent(r)}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw 404!==n.status&&_(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to get prompt versions:",e),e}},ru=async(e,t)=>{try{let r=S?`${S}/prompts`:"/prompts",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create prompt:",e),e}},rd=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}`:`/prompts/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update prompt:",e),e}},rf=async(e,t)=>{try{let r=S?`${S}/prompts/${t}`:`/prompts/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete prompt:",e),e}},rp=async(e,t)=>{try{let r=new FormData;r.append("file",t);let o=S?`${S}/utils/dotprompt_json_converter`:"/utils/dotprompt_json_converter",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`},body:r});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to convert prompt file:",e),e}},rh=async(e,t)=>{try{let r=S?`${S}/v1/agents`:"/v1/agents",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Create agent response:",n),n}catch(e){throw console.error("Failed to create agent:",e),e}},rm=async(e,t)=>{try{let r=S?`${S}/guardrails`:"/guardrails",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({guardrail:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Create guardrail response:",n),n}catch(e){throw console.error("Failed to create guardrail:",e),e}},rg=async(e,t,r)=>{try{let o=S?`${S}/spend/logs/ui/${t}?start_date=${encodeURIComponent(r)}`:`/spend/logs/ui/${t}?start_date=${encodeURIComponent(r)}`;console.log("Fetching log details from:",o);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Fetched log details:",a),a}catch(e){throw console.error("Failed to fetch log details:",e),e}},rv=async e=>{try{let t=S?`${S}/get/internal_user_settings`:"/get/internal_user_settings";console.log("Fetching SSO settings from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched SSO settings:",o),o}catch(e){throw console.error("Failed to fetch SSO settings:",e),e}},ry=async(e,t)=>{try{let r=S?`${S}/update/internal_user_settings`:"/update/internal_user_settings";console.log("Updating internal user settings:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Updated internal user settings:",n),v.default.success("Internal user settings updated successfully"),n}catch(e){throw console.error("Failed to update internal user settings:",e),e}},rb=async e=>{try{let t=S?`${S}/v1/mcp/openapi-registry`:"/v1/mcp/openapi-registry",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json();throw Error(oM(e))}return await r.json()}catch(e){throw console.error("Failed to fetch OpenAPI registry:",e),e}},rw=async e=>{try{let t=S?`${S}/v1/mcp/discover`:"/v1/mcp/discover",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch discoverable MCP servers:",e),e}},r$=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server";if(t){let e=new URLSearchParams;e.append("team_id",t),r=`${r}?${e.toString()}`}console.log("Fetching MCP servers from:",r);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Fetched MCP servers:",n),n}catch(e){throw console.error("Failed to fetch MCP servers:",e),e}},rC=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server/health`:"/v1/mcp/server/health";if(t&&t.length>0){let e=new URLSearchParams;t.forEach(t=>e.append("server_ids",t)),r=`${r}?${e.toString()}`}console.log("Fetching MCP server health from:",r);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Fetched MCP server health:",n),n}catch(e){throw console.error("Failed to fetch MCP server health:",e),e}},rx=async e=>{try{let t=S?`${S}/v1/mcp/access_groups`:"/v1/mcp/access_groups";console.log("Fetching MCP access groups from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched MCP access groups:",o),o.access_groups||[]}catch(e){throw console.error("Failed to fetch MCP access groups:",e),e}},rE=async e=>{try{let t=S?`${S}/v1/mcp/network/client-ip`:"/v1/mcp/network/client-ip",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok)return null;return(await r.json()).ip||null}catch{return null}},rS=async(e,t)=>{try{console.log("Form Values in createMCPServer:",t);let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},rk=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server",o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP server:",e),e}},rj=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/server/${t}`;console.log("in deleteMCPServer:",t);let o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}}catch(e){throw console.error("Failed to delete key:",e),e}},rO=async e=>{try{let t=(S?`${S}`:"")+"/v1/mcp/toolset",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch MCP toolsets:",e),e}},rT=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/toolset",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create MCP toolset:",e),e}},rI=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/toolset",o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP toolset:",e),e}},r_=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/toolset/${t}`,o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}}catch(e){throw console.error("Failed to delete MCP toolset:",e),e}},rF=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/server/register",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return o.json()}catch(e){throw console.error("Failed to register MCP server:",e),e}},rP=async e=>{try{let t=(S?`${S}`:"")+"/v1/mcp/server/submissions",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return r.json()}catch(e){throw console.error("Failed to fetch MCP submissions:",e),e}},rR=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/server/${encodeURIComponent(t)}/approve`,o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return o.json()}catch(e){throw console.error("Failed to approve MCP server:",e),e}},rN=async(e,t,r)=>{try{let o=(S?`${S}`:"")+`/v1/mcp/server/${encodeURIComponent(t)}/reject`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({review_notes:r??null})});if(!n.ok){let e=await n.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return n.json()}catch(e){throw console.error("Failed to reject MCP server:",e),e}},rM=async e=>{try{let t=S?`${S}/search_tools/list`:"/search_tools/list";console.log("Fetching search tools from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched search tools:",o),o}catch(e){throw console.error("Failed to fetch search tools:",e),e}},rB=async(e,t)=>{try{console.log("Creating search tool with values:",t);let r=S?`${S}/search_tools`:"/search_tools",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({search_tool:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Created search tool:",n),n}catch(e){throw console.error("Failed to create search tool:",e),e}},rA=async(e,t,r)=>{try{console.log("Updating search tool with ID:",t,"values:",r);let o=S?`${S}/search_tools/${t}`:`/search_tools/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({search_tool:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Updated search tool:",a),a}catch(e){throw console.error("Failed to update search tool:",e),e}},rz=async(e,t)=>{try{let r=(S?`${S}`:"")+`/search_tools/${t}`;console.log("Deleting search tool:",t);let o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Deleted search tool:",n),n}catch(e){throw console.error("Failed to delete search tool:",e),e}},rL=async e=>{try{let t=S?`${S}/search_tools/ui/available_providers`:"/search_tools/ui/available_providers";console.log("Fetching available search providers from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched available search providers:",o),o}catch(e){throw console.error("Failed to fetch available search providers:",e),e}},rD=async(e,t)=>{try{let r=S?`${S}/search_tools/test_connection`:"/search_tools/test_connection";console.log("Testing search tool connection:",r);let o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({litellm_params:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Test connection response:",n),n}catch(e){throw console.error("Failed to test search tool connection:",e),e}},rH=async(e,t,r)=>{try{let o=S?`${S}/mcp-rest/tools/list?server_id=${t}`:`/mcp-rest/tools/list?server_id=${t}`;console.log("Fetching MCP tools from:",o);let n={[R]:`Bearer ${e}`,"Content-Type":"application/json",...r},a=await fetch(o,{method:"GET",headers:n}),i=await a.json();if(console.log("Fetched MCP tools response:",i),!a.ok){if(i.error&&i.message)throw Error(i.message);throw Error("Failed to fetch MCP tools")}return i}catch(e){return console.error("Failed to fetch MCP tools:",e),{tools:[],error:"network_error",message:e instanceof Error?e.message:"Failed to fetch MCP tools",stack_trace:null}}},rV=async(e,t,r,o,n)=>{try{let a=S?`${S}/mcp-rest/tools/call`:"/mcp-rest/tools/call";console.log("Calling MCP tool:",r,"with arguments:",o,"for server:",t);let i={[R]:`Bearer ${e}`,"Content-Type":"application/json",...n?.customHeaders||{}},l={server_id:t,name:r,arguments:o};n?.guardrails&&n.guardrails.length>0&&(l.litellm_metadata={guardrails:n.guardrails});let s=await fetch(a,{method:"POST",headers:i,body:JSON.stringify(l)});if(!s.ok){let e="Network response was not ok",t=null,r=await s.text();try{let o=JSON.parse(r);o.detail?"string"==typeof o.detail?e=o.detail:"object"==typeof o.detail&&(e=o.detail.message||o.detail.error||"An error occurred",t=o.detail):e=o.message||o.error||e}catch(t){console.error("Failed to parse JSON error response:",t),r&&(e=r)}let o=Error(e);throw o.status=s.status,o.statusText=s.statusText,o.details=t,_(e),o}let c=await s.json();return console.log("MCP tool call response:",c),c}catch(e){throw console.error("Failed to call MCP tool:",e),console.error("Error type:",typeof e),e instanceof Error&&(console.error("Error message:",e.message),console.error("Error stack:",e.stack)),e}},rW=async(e,t)=>{try{let r=S?`${S}/tag/new`:"/tag/new",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error creating tag:",e),e}},rU=async(e,t)=>{try{let r=S?`${S}/tag/update`:"/tag/update",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error updating tag:",e),e}},rG=async(e,t)=>{try{let r=S?`${S}/tag/info`:"/tag/info",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({names:t})});if(!o.ok){let e=await o.text();return await _(e),{}}return await o.json()}catch(e){throw console.error("Error getting tag info:",e),e}},rq=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`},rJ=async(e,t,r)=>{try{let o=S?`${S}/tag/list`:"/tag/list";if(t&&r){let e=new URLSearchParams({start_date:rq(t),end_date:rq(r)});o=`${o}?${e.toString()}`}let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!n.ok){let e=await n.text();return await _(e),{}}return await n.json()}catch(e){throw console.error("Error listing tags:",e),e}},rK=async(e,t)=>{try{let r=S?`${S}/tag/delete`:"/tag/delete",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({name:t})});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error deleting tag:",e),e}},rX=async e=>{try{let t=S?`${S}/get/default_team_settings`:"/get/default_team_settings";console.log("Fetching default team settings from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched default team settings:",o),o}catch(e){throw console.error("Failed to fetch default team settings:",e),e}},rQ=async(e,t)=>{try{let r=S?`${S}/update/default_team_settings`:"/update/default_team_settings";console.log("Updating default team settings:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Updated default team settings:",n),n}catch(e){throw console.error("Failed to update default team settings:",e),e}},rY=async(e,t)=>{try{let r=S?`${S}/team/permissions_list?team_id=${t}`:`/team/permissions_list?team_id=${t}`,o=await fetch(r,{method:"GET",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json(),t=oM(e);return console.error("Available permissions fetch failed:",t),{all_available_permissions:[],team_member_permissions:[]}}return await o.json()}catch(e){throw console.error("Failed to get team permissions:",e),e}},rZ=async(e,t,r)=>{try{let o=S?`${S}/team/permissions_update`:"/team/permissions_update",n=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({team_id:t,team_member_permissions:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Team permissions response:",a),a}catch(e){throw console.error("Failed to update team permissions:",e),e}},r0=async(e,t)=>{try{let r=S?`${S}/spend/logs/session/ui?session_id=${encodeURIComponent(t)}`:`/spend/logs/session/ui?session_id=${encodeURIComponent(t)}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to fetch session logs:",e),e}},r1=async(e,t)=>{try{let r=S?`${S}/vector_store/new`:"/vector_store/new",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to create vector store")}return await o.json()}catch(e){throw console.error("Error creating vector store:",e),e}},r2=async(e,t=1,r=100)=>{try{let t=S?`${S}/vector_store/list`:"/vector_store/list",r=await fetch(t,{method:"GET",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`}});if(!r.ok){let e=await r.json();throw Error(e.detail||"Failed to list vector stores")}return await r.json()}catch(e){throw console.error("Error listing vector stores:",e),e}},r4=async(e,t)=>{try{let r=S?`${S}/vector_store/delete`:"/vector_store/delete",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({vector_store_id:t})});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to delete vector store")}return await o.json()}catch(e){throw console.error("Error deleting vector store:",e),e}},r6=async(e,t)=>{try{let r=S?`${S}/vector_store/info`:"/vector_store/info",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({vector_store_id:t})});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to get vector store info")}return await o.json()}catch(e){throw console.error("Error getting vector store info:",e),e}},r3=async(e,t)=>{try{let r=S?`${S}/vector_store/update`:"/vector_store/update",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to update vector store")}return await o.json()}catch(e){throw console.error("Error updating vector store:",e),e}},r7=async(e,t,r,o,n,a,i)=>{try{let l=S?`${S}/rag/ingest`:"/rag/ingest",s=new FormData;s.append("file",t);let c={ingest_options:{vector_store:{custom_llm_provider:r,...o&&{vector_store_id:o},...i&&i}}};(n||a)&&(c.ingest_options.litellm_vector_store_params={},n&&(c.ingest_options.litellm_vector_store_params.vector_store_name=n),a&&(c.ingest_options.litellm_vector_store_params.vector_store_description=a)),s.append("request",JSON.stringify(c));let u=await fetch(l,{method:"POST",headers:{[R]:`Bearer ${e}`},body:s});if(!u.ok){let e=await u.json();throw Error(e.error?.message||e.detail||"Failed to ingest document")}return await u.json()}catch(e){throw console.error("Error ingesting document:",e),e}},r5=async e=>{try{let t=S?`${S}/email/event_settings`:"/email/event_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get email event settings")}let o=await r.json();return console.log("Email event settings response:",o),o}catch(e){throw console.error("Failed to get email event settings:",e),e}},r9=async(e,t)=>{try{let r=S?`${S}/email/event_settings`:"/email/event_settings",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to update email event settings")}let n=await o.json();return console.log("Update email event settings response:",n),n}catch(e){throw console.error("Failed to update email event settings:",e),e}},r8=async e=>{try{let t=S?`${S}/email/event_settings/reset`:"/email/event_settings/reset",r=await fetch(t,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to reset email event settings")}let o=await r.json();return console.log("Reset email event settings response:",o),o}catch(e){throw console.error("Failed to reset email event settings:",e),e}},oe=async(e,t)=>{try{let r=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Delete agent response:",n),n}catch(e){throw console.error("Failed to delete agent:",e),e}},ot=async(e,t)=>{try{let r=S?`${S}/v1/agents/make_public`:"/v1/agents/make_public",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({agent_ids:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Make agents public response:",n),n}catch(e){throw console.error("Failed to make agents public:",e),e}},or=async(e,t)=>{try{let r=S?`${S}/v1/mcp/make_public`:"/v1/mcp/make_public",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({mcp_server_ids:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Make agents public response:",n),n}catch(e){throw console.error("Failed to make agents public:",e),e}},oo=async(e,t)=>{try{let r=S?`${S}/guardrails/${t}`:`/guardrails/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Delete guardrail response:",n),n}catch(e){throw console.error("Failed to delete guardrail:",e),e}},on=async e=>{try{let t=S?`${S}/guardrails/ui/add_guardrail_settings`:"/guardrails/ui/add_guardrail_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get guardrail UI settings")}let o=await r.json();return console.log("Guardrail UI settings response:",o),o}catch(e){throw console.error("Failed to get guardrail UI settings:",e),e}},oa=async e=>{try{let t=S?`${S}/guardrails/ui/provider_specific_params`:"/guardrails/ui/provider_specific_params",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get guardrail provider specific parameters")}let o=await r.json();return console.log("Guardrail provider specific params response:",o),o}catch(e){throw console.error("Failed to get guardrail provider specific parameters:",e),e}},oi=async(e,t)=>{try{let r=encodeURIComponent(t),o=S?`${S}/guardrails/ui/category_yaml/${r}`:`/guardrails/ui/category_yaml/${r}`;console.log(`Fetching category YAML from: ${o}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text();throw console.error(`Failed to get category YAML. Status: ${n.status}, Error:`,e),_(e),Error(`Failed to get category YAML: ${n.status} ${e}`)}let a=await n.json();return console.log("Category YAML response:",a),a}catch(e){throw console.error("Failed to get category YAML:",e),e}},ol=async e=>{try{let t=S?`${S}/guardrails/ui/major_airlines`:"/guardrails/ui/major_airlines",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw console.error(`Failed to get major airlines. Status: ${r.status}, Error:`,e),_(e),Error(`Failed to get major airlines: ${r.status} ${e}`)}return await r.json()}catch(e){throw console.error("Failed to get major airlines:",e),e}},os=async(e,t=!1)=>{try{let r=t?"?health_check=true":"",o=S?`${S}/v1/agents${r}`:`/v1/agents${r}`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to get agents list")}let a=await n.json();return console.log("Agents list response:",a),{agents:a}}catch(e){throw console.error("Failed to get agents list:",e),e}},oc=async(e,t)=>{try{let r=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to get agent info")}let n=await o.json();return console.log("Agent info response:",n),n}catch(e){throw console.error("Failed to get agent info:",e),e}},ou=async(e,t)=>{try{let r=S?`${S}/guardrails/${t}/info`:`/guardrails/${t}/info`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to get guardrail info")}let n=await o.json();return console.log("Guardrail info response:",n),n}catch(e){throw console.error("Failed to get guardrail info:",e),e}},od=async(e,t,r)=>{try{let o=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to patch agent")}let a=await n.json();return console.log("Patch agent response:",a),a}catch(e){throw console.error("Failed to update guardrail:",e),e}},of=async(e,t,r)=>{try{let o=S?`${S}/guardrails/${t}`:`/guardrails/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to update guardrail")}let a=await n.json();return console.log("Update guardrail response:",a),a}catch(e){throw console.error("Failed to update guardrail:",e),e}},op=async(e,t,r,o,n)=>{try{let a=S?`${S}/guardrails/apply_guardrail`:"/guardrails/apply_guardrail",i={guardrail_name:t,text:r};o&&(i.language=o),n&&n.length>0&&(i.entities=n);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.text(),t="Failed to apply guardrail";try{let r=JSON.parse(e);r.error?.message?t=r.error.message:r.detail?t=r.detail:r.message&&(t=r.message)}catch(r){t=e||t}throw _(e),Error(t)}let s=await l.json();return console.log("Apply guardrail response:",s),s}catch(e){throw console.error("Failed to apply guardrail:",e),e}},oh=async(e,t)=>{try{let r=S?`${S}/guardrails/test_custom_code`:"/guardrails/test_custom_code",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text(),t="Failed to test custom code guardrail";try{let r=JSON.parse(e);r.error?.message?t=r.error.message:r.detail?t=r.detail:r.message&&(t=r.message)}catch(r){t=e||t}throw _(e),Error(t)}let n=await o.json();return console.log("Test custom code guardrail response:",n),n}catch(e){throw console.error("Failed to test custom code guardrail:",e),e}},om=async(e,t)=>{try{let r=S?`${S}/guardrails/validate_blocked_words_file`:"/guardrails/validate_blocked_words_file",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({file_content:t})});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to validate blocked words file")}let n=await o.json();return console.log("Validate blocked words file response:",n),n}catch(e){throw console.error("Failed to validate blocked words file:",e),e}},og=async e=>{try{let t=S?`${S}/get/sso_settings`:"/get/sso_settings";console.log("Fetching SSO configuration from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched SSO configuration:",o),o}catch(e){throw console.error("Failed to fetch SSO configuration:",e),e}},ov=async(e,t)=>{try{let r=S?`${S}/update/sso_settings`:"/update/sso_settings";console.log("Updating SSO configuration:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t="object"==typeof e?.detail?e.detail?.error||e.detail?.message:e?.detail,r="string"==typeof t&&t.length>0?t:oM(e);_(r);let n=Error(r);throw e?.detail!==void 0&&(n.detail=e.detail),n.rawError=e,n}let n=await o.json();return console.log("Updated SSO configuration:",n),n}catch(e){throw console.error("Failed to update SSO configuration:",e),e}},oy=async({accessToken:e,page:t=1,page_size:r=50,params:o={}})=>{try{let n=S?`${S}/audit`:"/audit",a=new URLSearchParams;for(let[e,n]of(a.append("page",t.toString()),a.append("page_size",r.toString()),Object.entries(o)))null!=n&&""!==n&&a.append(e,String(n));n+=`?${a.toString()}`;let i=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to fetch audit logs:",e),e}},ob=async e=>{try{let t=S?`${S}/user/available_users`:"/user/available_users",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok){if(404===r.status)return null;let e=await r.text();throw _(e),Error("Network response was not ok")}return await r.json()}catch(e){throw console.error("Failed to fetch remaining users:",e),e}},ow=async e=>{try{let t=S?`${S}/health/license`:"/health/license",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok){if(404===r.status)return null;let e=await r.text();throw _(e),Error("Network response was not ok")}return await r.json()}catch(e){throw console.error("Failed to fetch license info:",e),e}},o$=async(e,t,r)=>{try{let o=S?`${S}/config/pass_through_endpoint/${encodeURIComponent(t)}`:`/config/pass_through_endpoint/${encodeURIComponent(t)}`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return v.default.success("Pass through endpoint updated successfully"),a}catch(e){throw console.error("Failed to update pass through endpoint:",e),e}},oC=async(e,t)=>{try{let r=S?`${S}/config/callback/delete`:"/config/callback/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({callback_name:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete specific callback:",e),e}},ox=async(e,t,r)=>{try{console.log("Testing MCP tools list with config:",JSON.stringify(t));let o=S?`${S}/mcp-rest/test/tools/list`:"/mcp-rest/test/tools/list",n={"Content-Type":"application/json"};e&&(n["x-litellm-api-key"]=e),r?n.Authorization=`Bearer ${r}`:e&&(n[R]=`Bearer ${e}`);let a=await fetch(o,{method:"POST",headers:n,body:JSON.stringify(t)}),i=a.headers.get("content-type");if(!i||!i.includes("application/json")){let e=await a.text();throw console.error("Received non-JSON response:",e),Error(`Received non-JSON response (${a.status}: ${a.statusText}). Check network tab for details.`)}let l=await a.json();if((!a.ok||l.error)&&!l.error)return{tools:[],error:"request_failed",message:l.message||`MCP tools list failed: ${a.status} ${a.statusText}`};return l}catch(e){throw console.error("MCP tools list test error:",e),e}},oE=async(e,t)=>{let r=S?`${S}/v1/mcp/server/oauth/session`:"/v1/mcp/server/oauth/session",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)}),n=await o.json();if(!o.ok)throw Error(oM(n)||n?.error||"Failed to cache MCP server");return n},oS=async(e,t,r)=>{let o=k(),n=encodeURIComponent(t.trim()),a=`${o}/v1/mcp/server/oauth/${n}/register`,i=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json, text/event-stream"},body:JSON.stringify(r)}),l=await i.json();if(!i.ok)throw Error(oM(l)||l?.detail||"Failed to register OAuth client");return l},ok=({serverId:e,clientId:t,redirectUri:r,state:o,codeChallenge:n,scope:a})=>{let i=k(),l=encodeURIComponent(e.trim()),s=`${i}/v1/mcp/server/oauth/${l}/authorize`,c=new URLSearchParams({redirect_uri:r,state:o,response_type:"code",code_challenge:n,code_challenge_method:"S256"});return t&&t.trim().length>0&&c.set("client_id",t),a&&a.trim().length>0&&c.set("scope",a),`${s}?${c.toString()}`},oj=async({serverId:e,code:t,clientId:r,clientSecret:o,codeVerifier:n,redirectUri:a,accessToken:i})=>{let l=k(),s=encodeURIComponent(e.trim()),c=`${l}/v1/mcp/server/oauth/${s}/token`,u=new URLSearchParams;u.set("grant_type","authorization_code"),u.set("code",t),r&&r.trim().length>0&&u.set("client_id",r),o&&o.trim().length>0&&u.set("client_secret",o),u.set("code_verifier",n),u.set("redirect_uri",a);let d={"Content-Type":"application/x-www-form-urlencoded"};i&&(d.Authorization=`Bearer ${i}`);let f=await fetch(c,{method:"POST",headers:d,body:u.toString()}),p=await f.json();if(!f.ok)throw Error(oM(p)||p?.detail||"OAuth token exchange failed");return p},oO=async(e,t,r)=>{try{let o=`${k()}/v1/vector_stores/${t}/search`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({query:r})});if(!n.ok){let e=await n.text();return await _(e),null}return await n.json()}catch(e){throw console.error("Error testing vector store search:",e),e}},oT=async(e,t,r,o)=>{try{let n=`${k()}/v1/search/${t}`,a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({query:r,max_results:o||5})});if(!a.ok){let e=await a.text();return await _(e),null}return await a.json()}catch(e){throw console.error("Error querying search tool:",e),e}},oI=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/dau`:"/tag/dau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch DAU:",e),e}},o_=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/wau`:"/tag/wau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch WAU:",e),e}},oF=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/mau`:"/tag/mau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch MAU:",e),e}},oP=async e=>{try{let t=S?`${S}/tag/distinct`:"/tag/distinct",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch distinct tags:",e),e}},oR=async(e,t,r,o)=>{try{let n=S?`${S}/tag/summary`:"/tag/summary",a=new URLSearchParams,i=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`};a.append("start_date",i(t)),a.append("end_date",i(r)),o&&o.length>0&&o.forEach(e=>{a.append("tag_filters",e)});let l=a.toString();l&&(n+=`?${l}`);let s=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}return await s.json()}catch(e){throw console.error("Failed to fetch user agent summary:",e),e}},oN=async(e,t=1,r=50,o)=>{try{let n=S?`${S}/tag/user-agent/per-user-analytics`:"/tag/user-agent/per-user-analytics",a=new URLSearchParams;a.append("page",t.toString()),a.append("page_size",r.toString()),o&&o.length>0&&o.forEach(e=>{a.append("tag_filters",e)});let i=a.toString();i&&(n+=`?${i}`);let l=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}return await l.json()}catch(e){throw console.error("Failed to fetch per-user analytics:",e),e}},oM=e=>{let t=e?.detail,r=Array.isArray(t)?t.map(e=>e?.msg||JSON.stringify(e)).join("; "):"string"==typeof t?t:void 0;return e?.error&&(e.error.message||("string"==typeof e.error?e.error:void 0))||e?.message||r||JSON.stringify(e)},oB=async(e,t,r)=>{let n=k(),a=r?"/v3/login":"/v2/login",i=n?`${n}${a}`:a,l=JSON.stringify({username:e,password:t}),s=await fetch(i,{method:"POST",body:l,credentials:"include",headers:{"Content-Type":"application/json"}});if(!s.ok)throw Error(oM(await s.json()));let c=await s.json();if(r&&c.code){let e=n?`${n}/v3/login/exchange`:"/v3/login/exchange",t=await fetch(e,{method:"POST",body:JSON.stringify({code:c.code}),credentials:"include",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error(oM(await t.json()));let r=await t.json();return r.token&&(0,o.storeLoginToken)(r.token),r}return c.token&&(0,o.storeLoginToken)(c.token),c},oA=async(e,t)=>{let r=t||k(),o=await fetch(`${r}/v3/login/exchange`,{method:"POST",body:JSON.stringify({code:e}),headers:{"Content-Type":"application/json"}});if(!o.ok)throw Error(oM(await o.json()));let n=await o.json();return n.token&&(document.cookie=`token=${n.token}; path=/; SameSite=Lax`),n.token},oz=async()=>{let e=k(),t=e?`${e}/get/ui_settings`:"/get/ui_settings",r=await fetch(t,{method:"GET"});if(!r.ok)throw Error(oM(await r.json()));return await r.json()},oL=async(e,t)=>{let r=k(),o=r?`${r}/update/ui_settings`:"/update/ui_settings",n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok)throw Error(oM(await n.json()));return await n.json()},oD=async(e,t=!1)=>{try{let r=k(),o=r?`${r}/claude-code/plugins?enabled_only=${t}`:`/claude-code/plugins?enabled_only=${t}`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to fetch Claude Code plugins list:",e),e}},oH=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins`:"/claude-code/plugins",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to register Claude Code plugin:",e),e}},oV=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}/enable`:`/claude-code/plugins/${t}/enable`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to enable plugin "${t}":`,e),e}},oW=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}/disable`:`/claude-code/plugins/${t}/disable`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to disable plugin "${t}":`,e),e}},oU=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}`:`/claude-code/plugins/${t}`,n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to delete plugin "${t}":`,e),e}},oG=async(e,t)=>{let r=S?`${S}/compliance/eu-ai-act`:"/compliance/eu-ai-act",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok)throw Error(await o.text());return o.json()},oq=async(e,t)=>{let r=S?`${S}/compliance/gdpr`:"/compliance/gdpr",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok)throw Error(await o.text());return o.json()},oJ=async e=>{let t=S?`${S}/v1/tool/policy/options`:"/v1/tool/policy/options",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(await r.text());return r.json()},oK=async e=>{let t=S?`${S}/v1/tool/list`:"/v1/tool/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(await r.text());return(await r.json()).tools??[]},oX=async(e,t,r)=>{let o=encodeURIComponent(t),n=S?`${S}/v1/tool/${o}/logs`:`/v1/tool/${o}/logs`,a=new URLSearchParams;null!=r.page&&a.append("page",String(r.page)),null!=r.pageSize&&a.append("page_size",String(r.pageSize)),r.startDate&&a.append("start_date",r.startDate),r.endDate&&a.append("end_date",r.endDate);let i=a.toString()?`${n}?${a.toString()}`:n,l=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok)throw Error(oM(await l.json().catch(()=>({}))));return l.json()},oQ=async(e,t)=>{let r=encodeURIComponent(t),o=S?`${S}/v1/tool/${r}/detail`:`/v1/tool/${r}/detail`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok)throw Error(await n.text());return n.json()},oY=async(e,t,r,o)=>{let n=S?`${S}/v1/tool/policy`:"/v1/tool/policy",a={tool_name:t};null!=r.input_policy&&(a.input_policy=r.input_policy),null!=r.output_policy&&(a.output_policy=r.output_policy),o?.team_id!=null&&(a.team_id=o.team_id||void 0),o?.key_hash!=null&&(a.key_hash=o.key_hash||void 0),o?.key_alias!=null&&(a.key_alias=o.key_alias||void 0);let i=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(a)});if(!i.ok)throw Error(await i.text());return i.json()},oZ=async(e,t,r)=>{let o=encodeURIComponent(t),n=new URLSearchParams;null!=r.team_id&&""!==r.team_id&&n.set("team_id",r.team_id),null!=r.key_hash&&""!==r.key_hash&&n.set("key_hash",r.key_hash);let a=n.toString(),i=S?`${S}/v1/tool/${o}/overrides${a?`?${a}`:""}`:`/v1/tool/${o}/overrides${a?`?${a}`:""}`,l=await fetch(i,{method:"DELETE",headers:{[R]:`Bearer ${e}`}});if(!l.ok)throw Error(await l.text());return l.json()},o0=async(e,t,r)=>{let o=S?`${S}/v1/mcp/server/${t}/oauth-user-credential`:`/v1/mcp/server/${t}/oauth-user-credential`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json().catch(()=>({})),t=e?.detail;throw Error((Array.isArray(t)?t.map(e=>e&&"object"==typeof e?e.msg??JSON.stringify(e):String(e)).join("; "):"string"==typeof t?t:t&&"string"==typeof t.error?t.error:void 0)||"Failed to store OAuth credential")}return n.json()},o1=async(e,t)=>{let r=S?`${S}/v1/mcp/server/${t}/oauth-user-credential`:`/v1/mcp/server/${t}/oauth-user-credential`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json().catch(()=>({})),t=e?.detail;throw Error((Array.isArray(t)?t.map(e=>e&&"object"==typeof e?e.msg??JSON.stringify(e):String(e)).join("; "):"string"==typeof t?t:t&&"string"==typeof t.error?t.error:void 0)||"Failed to revoke OAuth credential")}return o.json()},o2=async(e,t)=>{let r=S?`${S}/v1/mcp/server/${t}/oauth-user-credential/status`:`/v1/mcp/server/${t}/oauth-user-credential/status`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`}});return o.ok?o.json():{server_id:t,has_credential:!1,is_expired:!1}},o4=async e=>{let t=S?`${S}/v1/mcp/user-credentials`:"/v1/mcp/user-credentials",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});return r.ok?r.json():[]},o6=e=>e.split("/").map(encodeURIComponent).join("/"),o3=async(e,t={})=>{let r=S?`${S}/v1/memory`:"/v1/memory",o=new URLSearchParams;t.keyPrefix?o.append("key_prefix",t.keyPrefix):t.key&&o.append("key",t.key),null!=t.page&&o.append("page",String(t.page)),null!=t.pageSize&&o.append("page_size",String(t.pageSize));let n=o.toString()?`${r}?${o.toString()}`:r,a=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok)throw Error(await a.text());return a.json()},o7=async(e,t)=>{let r=S?`${S}/v1/memory`:"/v1/memory",o={key:t.key,value:t.value};void 0!==t.metadata&&(o.metadata=t.metadata);let n=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(o)});if(!n.ok)throw Error(await n.text());return n.json()},o5=async(e,t,r)=>{let o=o6(t),n=S?`${S}/v1/memory/${o}`:`/v1/memory/${o}`,a=await fetch(n,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!a.ok)throw Error(await a.text());return a.json()},o9=async(e,t)=>{let r=o6(t),o=S?`${S}/v1/memory/${r}`:`/v1/memory/${r}`,n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok)throw Error(await n.text())}},266027,869230,469637,e=>{"use strict";let t;var r=e.i(175555),o=e.i(273911),n=e.i(540143),a=e.i(286491),i=e.i(915823),l=e.i(793803),s=e.i(619273),c=e.i(180166),u=class extends i.Subscribable{constructor(e,t){super(),this.options=t,this.#e=e,this.#t=null,this.#r=(0,l.pendingThenable)(),this.bindMethods(),this.setOptions(t)}#e;#o=void 0;#n=void 0;#a=void 0;#i;#l;#r;#t;#s;#c;#u;#d;#f;#p;#h=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#o.addObserver(this),d(this.#o,this.options)?this.#m():this.updateResult(),this.#g())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return f(this.#o,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return f(this.#o,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#v(),this.#y(),this.#o.removeObserver(this)}setOptions(e){let t=this.options,r=this.#o;if(this.options=this.#e.defaultQueryOptions(e),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,s.resolveQueryBoolean)(this.options.enabled,this.#o))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#b(),this.#o.setOptions(this.options),t._defaulted&&!(0,s.shallowEqualObjects)(this.options,t)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#o,observer:this});let o=this.hasListeners();o&&p(this.#o,r,this.options,t)&&this.#m(),this.updateResult(),o&&(this.#o!==r||(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)!==(0,s.resolveQueryBoolean)(t.enabled,this.#o)||(0,s.resolveStaleTime)(this.options.staleTime,this.#o)!==(0,s.resolveStaleTime)(t.staleTime,this.#o))&&this.#w();let n=this.#$();o&&(this.#o!==r||(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)!==(0,s.resolveQueryBoolean)(t.enabled,this.#o)||n!==this.#p)&&this.#C(n)}getOptimisticResult(e){var t,r;let o=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(o,e);return t=this,r=n,(0,s.shallowEqualObjects)(t.getCurrentResult(),r)||(this.#a=n,this.#l=this.options,this.#i=this.#o.state),n}getCurrentResult(){return this.#a}trackResult(e,t){return new Proxy(e,{get:(e,r)=>(this.trackProp(r),t?.(r),"promise"===r&&(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#r.status||this.#r.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(e,r))})}trackProp(e){this.#h.add(e)}getCurrentQuery(){return this.#o}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),r=this.#e.getQueryCache().build(this.#e,t);return r.fetch().then(()=>this.createResult(r,t))}fetch(e){return this.#m({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#a))}#m(e){this.#b();let t=this.#o.fetch(this.options,e);return e?.throwOnError||(t=t.catch(s.noop)),t}#w(){this.#v();let e=(0,s.resolveStaleTime)(this.options.staleTime,this.#o);if(o.environmentManager.isServer()||this.#a.isStale||!(0,s.isValidTimeout)(e))return;let t=(0,s.timeUntilStale)(this.#a.dataUpdatedAt,e);this.#d=c.timeoutManager.setTimeout(()=>{this.#a.isStale||this.updateResult()},t+1)}#$(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#o):this.options.refetchInterval)??!1}#C(e){this.#y(),this.#p=e,!o.environmentManager.isServer()&&!1!==(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)&&(0,s.isValidTimeout)(this.#p)&&0!==this.#p&&(this.#f=c.timeoutManager.setInterval(()=>{(this.options.refetchIntervalInBackground||r.focusManager.isFocused())&&this.#m()},this.#p))}#g(){this.#w(),this.#C(this.#$())}#v(){void 0!==this.#d&&(c.timeoutManager.clearTimeout(this.#d),this.#d=void 0)}#y(){void 0!==this.#f&&(c.timeoutManager.clearInterval(this.#f),this.#f=void 0)}createResult(e,t){let r,o=this.#o,n=this.options,i=this.#a,c=this.#i,u=this.#l,f=e!==o?e.state:this.#n,{state:m}=e,g={...m},v=!1;if(t._optimisticResults){let r=this.hasListeners(),i=!r&&d(e,t),l=r&&p(e,o,t,n);(i||l)&&(g={...g,...(0,a.fetchState)(m.data,e.options)}),"isRestoring"===t._optimisticResults&&(g.fetchStatus="idle")}let{error:y,errorUpdatedAt:b,status:w}=g;r=g.data;let $=!1;if(void 0!==t.placeholderData&&void 0===r&&"pending"===w){let e;i?.isPlaceholderData&&t.placeholderData===u?.placeholderData?(e=i.data,$=!0):e="function"==typeof t.placeholderData?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,void 0!==e&&(w="success",r=(0,s.replaceData)(i?.data,e,t),v=!0)}if(t.select&&void 0!==r&&!$)if(i&&r===c?.data&&t.select===this.#s)r=this.#c;else try{this.#s=t.select,r=t.select(r),r=(0,s.replaceData)(i?.data,r,t),this.#c=r,this.#t=null}catch(e){this.#t=e}this.#t&&(y=this.#t,r=this.#c,b=Date.now(),w="error");let C="fetching"===g.fetchStatus,x="pending"===w,E="error"===w,S=x&&C,k=void 0!==r,j={status:w,fetchStatus:g.fetchStatus,isPending:x,isSuccess:"success"===w,isError:E,isInitialLoading:S,isLoading:S,data:r,dataUpdatedAt:g.dataUpdatedAt,error:y,errorUpdatedAt:b,failureCount:g.fetchFailureCount,failureReason:g.fetchFailureReason,errorUpdateCount:g.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:g.dataUpdateCount>f.dataUpdateCount||g.errorUpdateCount>f.errorUpdateCount,isFetching:C,isRefetching:C&&!x,isLoadingError:E&&!k,isPaused:"paused"===g.fetchStatus,isPlaceholderData:v,isRefetchError:E&&k,isStale:h(e,t),refetch:this.refetch,promise:this.#r,isEnabled:!1!==(0,s.resolveQueryBoolean)(t.enabled,e)};if(this.options.experimental_prefetchInRender){let t=void 0!==j.data,r="error"===j.status&&!t,n=e=>{r?e.reject(j.error):t&&e.resolve(j.data)},a=()=>{n(this.#r=j.promise=(0,l.pendingThenable)())},i=this.#r;switch(i.status){case"pending":e.queryHash===o.queryHash&&n(i);break;case"fulfilled":(r||j.data!==i.value)&&a();break;case"rejected":r&&j.error===i.reason||a()}}return j}updateResult(){let e=this.#a,t=this.createResult(this.#o,this.options);if(this.#i=this.#o.state,this.#l=this.options,void 0!==this.#i.data&&(this.#u=this.#o),(0,s.shallowEqualObjects)(t,e))return;this.#a=t;let r=()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,r="function"==typeof t?t():t;if("all"===r||!r&&!this.#h.size)return!0;let o=new Set(r??this.#h);return this.options.throwOnError&&o.add("error"),Object.keys(this.#a).some(t=>this.#a[t]!==e[t]&&o.has(t))};this.#x({listeners:r()})}#b(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#o)return;let t=this.#o;this.#o=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#g()}#x(e){n.notifyManager.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#a)}),this.#e.getQueryCache().notify({query:this.#o,type:"observerResultsUpdated"})})}};function d(e,t){return!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&void 0===e.state.data&&("error"!==e.state.status||!1!==(0,s.resolveQueryBoolean)(t.retryOnMount,e))||void 0!==e.state.data&&f(e,t,t.refetchOnMount)}function f(e,t,r){if(!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&"static"!==(0,s.resolveStaleTime)(t.staleTime,e)){let o="function"==typeof r?r(e):r;return"always"===o||!1!==o&&h(e,t)}return!1}function p(e,t,r,o){return(e!==t||!1===(0,s.resolveQueryBoolean)(o.enabled,e))&&(!r.suspense||"error"!==e.state.status)&&h(e,r)}function h(e,t){return!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&e.isStaleByTime((0,s.resolveStaleTime)(t.staleTime,e))}e.s(["QueryObserver",0,u],869230),e.i(247167);var m=e.i(271645),g=e.i(912598);e.i(843476);var v=m.createContext((t=!1,{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t})),y=m.createContext(!1);y.Provider;var b=(e,t,r)=>t.fetchOptimistic(e).catch(()=>{r.clearReset()});function w(e,t,r){let a,i=m.useContext(y),l=m.useContext(v),c=(0,g.useQueryClient)(r),u=c.defaultQueryOptions(e);c.getDefaultOptions().queries?._experimental_beforeQuery?.(u);let d=c.getQueryCache().get(u.queryHash);if(u._optimisticResults=i?"isRestoring":"optimistic",u.suspense){let e=e=>"static"===e?e:Math.max(e??1e3,1e3),t=u.staleTime;u.staleTime="function"==typeof t?(...r)=>e(t(...r)):e(t),"number"==typeof u.gcTime&&(u.gcTime=Math.max(u.gcTime,1e3))}a=d?.state.error&&"function"==typeof u.throwOnError?(0,s.shouldThrowError)(u.throwOnError,[d.state.error,d]):u.throwOnError,(u.suspense||u.experimental_prefetchInRender||a)&&!l.isReset()&&(u.retryOnMount=!1),m.useEffect(()=>{l.clearReset()},[l]);let f=!c.getQueryCache().get(u.queryHash),[p]=m.useState(()=>new t(c,u)),h=p.getOptimisticResult(u),w=!i&&!1!==e.subscribed;if(m.useSyncExternalStore(m.useCallback(e=>{let t=w?p.subscribe(n.notifyManager.batchCalls(e)):s.noop;return p.updateResult(),t},[p,w]),()=>p.getCurrentResult(),()=>p.getCurrentResult()),m.useEffect(()=>{p.setOptions(u)},[u,p]),u?.suspense&&h.isPending)throw b(u,p,l);if((({result:e,errorResetBoundary:t,throwOnError:r,query:o,suspense:n})=>e.isError&&!t.isReset()&&!e.isFetching&&o&&(n&&void 0===e.data||(0,s.shouldThrowError)(r,[e.error,o])))({result:h,errorResetBoundary:l,throwOnError:u.throwOnError,query:d,suspense:u.suspense}))throw h.error;if(c.getDefaultOptions().queries?._experimental_afterQuery?.(u,h),u.experimental_prefetchInRender&&!o.environmentManager.isServer()&&h.isLoading&&h.isFetching&&!i){let e=f?b(u,p,l):d?.promise;e?.catch(s.noop).finally(()=>{p.updateResult()})}return u.notifyOnChangeProps?h:p.trackResult(h)}e.s(["useBaseQuery",0,w],469637),e.s(["useQuery",0,function(e,t){return w(e,u,t)}],266027)},243652,e=>{"use strict";e.s(["createQueryKeys",0,function(e){let t=[e];return{all:t,lists:()=>[...t,"list"],list:e=>[...t,"list",{params:e}],details:()=>[...t,"detail"],detail:e=>[...t,"detail",e]}}])},612256,e=>{"use strict";var t=e.i(764205),r=e.i(266027);let o=(0,e.i(243652).createQueryKeys)("uiConfig");e.s(["useUIConfig",0,()=>(0,r.useQuery)({queryKey:o.list({}),queryFn:async()=>await (0,t.getUiConfig)(),staleTime:864e5,gcTime:864e5})])}]); \ No newline at end of file +Allowed values: ${t.enum.join(", ")}`:E)}),children:r},e)})}):null};var v=e.i(727749);let y=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`},b=async e=>{try{let t=S?`${S}/callbacks/configs`:"/callbacks/configs",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},w=async e=>{try{let t=S?`${S}/in_product_nudges`:"/in_product_nudges",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get in-product nudges:",e),e}},$=t.default.env.NEXT_PUBLIC_BASE_URL?t.default.env.NEXT_PUBLIC_BASE_URL:null,C="/",x="litellm_worker_url",E=window.localStorage.getItem(x),S=(()=>{if(!E)return null;try{let e=new URL(E);if("http:"===e.protocol||"https:"===e.protocol)return E}catch{}return window.localStorage.removeItem(x),null})()??$;console.log=function(){};let k=()=>{if(S)return S;let e=window.location;return e?.origin??""};function j(e){(!e||function(e){try{let t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch{return!1}}(e))&&(e?window.localStorage.setItem(x,e):window.localStorage.removeItem(x),S=e??$)}let O="POST",T="DELETE",I=0,_=async e=>{let t=Date.now();if(t-I>6e4){if(("string"==typeof e?e:JSON.stringify(e)).includes("Authentication Error - Expired Key")){v.default.info("UI Session Expired. Logging out."),I=t,(0,o.clearTokenCookies)();let e=window.location;e&&(window.location.href=e.pathname)}I=t}else console.log("Error suppressed to prevent spam:",e)},F=async()=>{let e=S?`${S}/public/providers/fields`:"/public/providers/fields",t=await fetch(e,{method:"GET"});if(!t.ok){let e=await t.text();throw console.error("Failed to fetch provider create metadata:",t.status,e),Error("Failed to load provider configuration")}return await t.json()},P=async()=>{let e=S?`${S}/public/agents/fields`:"/public/agents/fields",t=await fetch(e,{method:"GET"});if(!t.ok){let e=await t.text();throw console.error("Failed to fetch agent create metadata:",t.status,e),Error("Failed to load agent configuration")}return await t.json()},R="Authorization";function N(e="Authorization"){console.log(`setGlobalLitellmHeaderName: ${e}`),R=e}function M(){return R}let B=async(e,t)=>{let r=S?`${S}/model_group/make_public`:"/model_group/make_public";return(await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({model_groups:t})})).json()},A=async()=>{console.log("Getting UI config");let e=$?`${$}/litellm/.well-known/litellm-ui-config`:"/litellm/.well-known/litellm-ui-config",r=await fetch(e),o=await r.json();return console.log("jsonData in getUiConfig:",o),((e,r=null)=>{if(window.localStorage.getItem(x))return;let o=window.location,n=t.default.env.NEXT_PUBLIC_BASE_URL?t.default.env.NEXT_PUBLIC_BASE_URL:o?.origin??null,a=r||n;if(console.log("proxyBaseUrl:",S),console.log("serverRootPath:",e),!a)return console.log("Updated proxyBaseUrl:",S=S??null);e.length>0&&!a.endsWith(e)&&"/"!=e&&(a+=e),console.log("Updated proxyBaseUrl:",S=a)})(o.server_root_path,o.proxy_base_url),o},z=async()=>{let e=S?`${S}/public/model_hub/info`:"/public/model_hub/info",t=await fetch(e);return await t.json()},L=async()=>{let e=S?`${S}/openapi.json`:"/openapi.json",t=await fetch(e);return await t.json()},D=async()=>{try{let e=S?`${S}/public/litellm_model_cost_map`:"/public/litellm_model_cost_map",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}}),r=await t.json();return console.log(`received litellm model cost data: ${r}`),r}catch(e){throw console.error("Failed to get model cost map:",e),e}},H=async e=>{try{let t=S?`${S}/reload/model_cost_map`:"/reload/model_cost_map",r=await fetch(t,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),o=await r.json();return console.log(`Model cost map reload response: ${o}`),o}catch(e){throw console.error("Failed to reload model cost map:",e),e}},V=async(e,t)=>{try{let r=S?`${S}/schedule/model_cost_map_reload?hours=${t}`:`/schedule/model_cost_map_reload?hours=${t}`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),n=await o.json();return console.log(`Schedule model cost map reload response: ${n}`),n}catch(e){throw console.error("Failed to schedule model cost map reload:",e),e}},W=async e=>{try{let t=S?`${S}/schedule/model_cost_map_reload`:"/schedule/model_cost_map_reload",r=await fetch(t,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),o=await r.json();return console.log(`Cancel model cost map reload response: ${o}`),o}catch(e){throw console.error("Failed to cancel model cost map reload:",e),e}},U=async e=>{try{let t=S?`${S}/model/cost_map/source`:"/model/cost_map/source",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw Error(`HTTP ${r.status}: ${e}`)}let o=await r.json();return console.log("Model cost map source info:",o),o}catch(e){throw console.error("Failed to get model cost map source info:",e),e}},G=async e=>{try{let t=S?`${S}/schedule/model_cost_map_reload/status`:"/schedule/model_cost_map_reload/status";console.log("Fetching status from URL:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){console.error(`Status request failed with status: ${r.status}`);let e=await r.text();throw console.error("Error response:",e),Error(`HTTP ${r.status}: ${e}`)}let o=await r.json();return console.log("Model cost map reload status:",o),o}catch(e){throw console.error("Failed to get model cost map reload status:",e),e}},q=async(e,t)=>{try{let o=S?`${S}/model/new`:"/model/new",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),r.default.destroy(),v.default.success(`Model ${t.model_name} created successfully`),a}catch(e){throw console.error("Failed to create key:",e),e}},J=async(e,t)=>{console.log(`model_id in model delete call: ${t}`);try{let r=S?`${S}/model/delete`:"/model/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},K=async(e,t)=>{if(console.log(`budget_id in budget delete call: ${t}`),null!=e)try{let r=S?`${S}/budget/delete`:"/budget/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},X=async(e,t)=>{try{console.log("Form Values in budgetCreateCall:",t),console.log("Form Values after check:",t);let r=S?`${S}/budget/new`:"/budget/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Q=async(e,t)=>{try{console.log("Form Values in budgetUpdateCall:",t),console.log("Form Values after check:",t);let r=S?`${S}/budget/update`:"/budget/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Y=async(e,t)=>{try{let r=S?`${S}/invitation/new`:"/invitation/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Z=async e=>{try{let t=S?`${S}/alerting/settings`:"/alerting/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},ee=async(e,t)=>{try{for(let e of(console.log("Form Values in keyCreateServiceAccountCall:",t),t.description&&(t.metadata||(t.metadata={}),t.metadata.description=t.description,delete t.description,t.metadata=JSON.stringify(t.metadata)),h))if(t[e]){console.log(`formValues.${e}:`,t[e]);try{t[e]=JSON.parse(t[e])}catch(t){throw Error(`Failed to parse ${e}: `+t)}}console.log("Form Values after check:",t);let r=S?`${S}/key/service-account/generate`:"/key/service-account/generate",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},et=async(e,t,r)=>{try{for(let e of(console.log("Form Values in keyCreateCall:",r),r.description&&(r.metadata||(r.metadata={}),r.metadata.description=r.description,delete r.description,r.metadata=JSON.stringify(r.metadata)),h))if(r[e]){console.log(`formValues.${e}:`,r[e]);try{r[e]=JSON.parse(r[e])}catch(t){throw Error(`Failed to parse ${e}: `+t)}}console.log("Form Values after check:",r);let o=S?`${S}/key/generate`:"/key/generate",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t,...r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},er=async(e,t,r,o,n,a)=>{let i=S?`${S}/key/generate`:"/key/generate",l={agent_id:t,key_alias:r,models:o.length>0?o:[]};a&&(l.team_id=a),n&&Object.keys(n).length>0&&(l.metadata=n);let s=await fetch(i,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(l)});if(!s.ok)throw _(await s.text()),Error("Failed to create key for agent");return s.json()},eo=async(e,t,r)=>{try{if(console.log("Form Values in keyCreateCall:",r),r.description&&(r.metadata||(r.metadata={}),r.metadata.description=r.description,delete r.description,r.metadata=JSON.stringify(r.metadata)),r.auto_create_key=!1,r.metadata){console.log("formValues.metadata:",r.metadata);try{r.metadata=JSON.parse(r.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}console.log("Form Values after check:",r);let o=S?`${S}/user/new`:"/user/new",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t,...r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},en=async(e,t)=>{try{let r=S?`${S}/key/delete`:"/key/delete";console.log("in keyDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({keys:[t]})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to create key:",e),e}},ea=async(e,t)=>{try{let r=S?`${S}/user/delete`:"/user/delete";console.log("in userDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_ids:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete user(s):",e),e}},ei=async(e,t)=>{try{let r=S?`${S}/team/delete`:"/team/delete";console.log("in teamDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_ids:[t]})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete key:",e),e}},el=async(e,t=null,r=null,o=null,n=null,a=null,i=null,l=null,s=null,c=null,u=null)=>{try{let d=S?`${S}/user/list`:"/user/list";console.log("in userListCall");let f=new URLSearchParams;if(t&&t.length>0){let e=t.join(",");f.append("user_ids",e)}r&&f.append("page",r.toString()),o&&f.append("page_size",o.toString()),n&&f.append("user_email",n),a&&f.append("role",a),i&&f.append("team",i),l&&f.append("sso_user_ids",l),s&&f.append("sort_by",s),c&&f.append("sort_order",c),u&&u.length>0&&f.append("organization_ids",u.join(","));let p=f.toString();p&&(d+=`?${p}`);let h=await fetch(d,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!h.ok){let e=await h.json(),t=oM(e);throw _(t),Error(t)}let m=await h.json();return console.log("/user/list API Response:",m),m}catch(e){throw console.error("Failed to create key:",e),e}},es=async(e,t)=>{try{let r=S?`${S}/v2/user/info`:"/v2/user/info";t&&(r+=`?user_id=${encodeURIComponent(t)}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to fetch user info v2:",e),e}},ec=async(e,t)=>{try{let r=S?`${S}/team/info`:"/team/info";t&&(r=`${r}?team_id=${encodeURIComponent(t)}`),console.log("in teamInfoCall");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eu=async(e,t,r=null,o=null,n=null,a=1,i=10,l=null,s=null)=>{try{let a=S?`${S}/v2/team/list`:"/v2/team/list";console.log("in teamInfoCall");let i=new URLSearchParams;r&&i.append("user_id",r.toString()),t&&i.append("organization_id",t.toString()),o&&i.append("team_id",o.toString()),n&&i.append("team_alias",n.toString());let l=i.toString();l&&(a+=`?${l}`);let s=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}let c=await s.json();return console.log("/v2/team/list API Response:",c),c}catch(e){throw console.error("Failed to create key:",e),e}},ed=async(e,t,r=null,o=null,n=null)=>{try{let a=S?`${S}/team/list`:"/team/list";console.log("in teamInfoCall");let i=new URLSearchParams;r&&i.append("user_id",r.toString()),t&&i.append("organization_id",t.toString()),o&&i.append("team_id",o.toString()),n&&i.append("team_alias",n.toString());let l=i.toString();l&&(a+=`?${l}`);let s=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}let c=await s.json();return console.log("/team/list API Response:",c),c}catch(e){throw console.error("Failed to create key:",e),e}},ef=async e=>{try{let t=S?`${S}/team/available`:"/team/available";console.log("in availableTeamListCall");let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("/team/available_teams API Response:",o),o}catch(e){throw e}},ep=async(e,t=null,r=null)=>{try{let o=S?`${S}/organization/list`:"/organization/list",n=new URLSearchParams;t&&n.append("org_id",t.toString()),r&&n.append("org_alias",r.toString());let a=n.toString();a&&(o+=`?${a}`);let i=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to create key:",e),e}},eh=async(e,t)=>{try{let r=S?`${S}/organization/info`:"/organization/info";t&&(r=`${r}?organization_id=${t}`),console.log("in teamInfoCall");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},em=async(e,t)=>{try{if(console.log("Form Values in organizationCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw console.error("Failed to parse metadata:",e),Error("Failed to parse metadata: "+e)}}let r=S?`${S}/organization/new`:"/organization/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eg=async(e,t)=>{try{console.log("Form Values in organizationUpdateCall:",t);let r=S?`${S}/organization/update`:"/organization/update",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Update Team Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},ev=async(e,t)=>{try{let r=S?`${S}/organization/delete`:"/organization/delete",o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_ids:[t]})});if(!o.ok){let e=await o.text();throw _(e),Error(`Error deleting organization: ${e}`)}return await o.json()}catch(e){throw console.error("Failed to delete organization:",e),e}},ey=async(e,t)=>{try{let r=S?`${S}/utils/transform_request`:"/utils/transform_request",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create key:",e),e}},eb=async({accessToken:e,endpoint:t,startTime:r,endTime:o,page:n=1,extraQueryParams:a})=>{try{let i,l,s,c,u=(i=t.startsWith("/")?t:`/${t}`,l=S?`${S}${i}`:i,(s=new URLSearchParams).append("start_date",y(r)),s.append("end_date",y(o)),s.append("page_size","1000"),s.append("page",n.toString()),s.append("timezone",new Date().getTimezoneOffset().toString()),a&&Object.entries(a).forEach(([e,t])=>{((e,t,r)=>{if(null!=r){if(Array.isArray(r)){r.length>0&&e.append(t,r.join(","));return}e.append(t,`${r}`)}})(s,e,t)}),(c=s.toString())?`${l}?${c}`:l),d=await fetch(u,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!d.ok){let e=await d.json(),t=oM(e);throw _(t),Error(t)}return await d.json()}catch(e){throw console.error(`Failed to fetch daily activity (${t}):`,e),e}},ew=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/user/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{user_id:n}}),e$=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/tag/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{tags:n}}),eC=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/team/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{team_ids:n,exclude_team_ids:"litellm-dashboard"}}),ex=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/organization/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{organization_ids:n}}),eE=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/customer/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{end_user_ids:n}}),eS=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/agent/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{agent_ids:n}}),ek=async e=>{try{let t=S?`${S}/onboarding/get_token`:"/onboarding/get_token";t+=`?invite_link=${e}`;let r=await fetch(t,{method:"GET",headers:{"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to create key:",e),e}},ej=async(e,t,r,o)=>{let n=S?`${S}/onboarding/claim_token`:"/onboarding/claim_token";try{let a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({invitation_link:t,user_id:r,password:o})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to delete key:",e),e}},eO=async(e,t,r)=>{try{let o=S?`${S}/key/${t}/regenerate`:`/key/${t}/regenerate`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Regenerate key Response:",a),a}catch(e){throw console.error("Failed to regenerate key:",e),e}},eT=!1,eI=null,e_=async(e,t,r,o=1,n=50,a,i,l,s,c)=>{try{console.log("modelInfoCall:",e,t,r,o,n,a,i,l,s,c);let u=S?`${S}/v2/model/info`:"/v2/model/info",d=new URLSearchParams;d.append("include_team_models","true"),d.append("page",o.toString()),d.append("size",n.toString()),a&&a.trim()&&d.append("search",a.trim()),i&&i.trim()&&d.append("modelId",i.trim()),l&&l.trim()&&d.append("teamId",l.trim()),s&&s.trim()&&d.append("sortBy",s.trim()),c&&c.trim()&&d.append("sortOrder",c.trim()),d.toString()&&(u+=`?${d.toString()}`);let f=await fetch(u,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!f.ok){let e=await f.text();throw e+=`error shown=${eT}`,eT||(e.includes("No model list passed")&&(e="No Models Exist. Click Add Model to get started."),v.default.info(e),eT=!0,eI&&clearTimeout(eI),eI=setTimeout(()=>{eT=!1},1e4)),Error("Network response was not ok")}let p=await f.json();return console.log("modelInfoCall:",p),p}catch(e){throw console.error("Failed to create key:",e),e}},eF=async(e,t)=>{try{let r=S?`${S}/v1/model/info`:"/v1/model/info";r+=`?litellm_model_id=${t}`;let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("modelInfoV1Call:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eP=async()=>{let e=S?`${S}/public/model_hub`:"/public/model_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`modelHubPublicModelsCall failed with status ${t.status}`),[])},eR=async()=>{let e=S?`${S}/public/agent_hub`:"/public/agent_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`agentHubPublicModelsCall failed with status ${t.status}`),[])},eN=async()=>{let e=S?`${S}/public/mcp_hub`:"/public/mcp_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`mcpHubPublicServersCall failed with status ${t.status}`),[])},eM=async()=>{let e=S?`${S}/public/skill_hub`:"/public/skill_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`skillHubPublicCall failed with status ${t.status}`),{plugins:[]})},eB=async e=>{try{let t=S?`${S}/model_group/info`:"/model_group/info",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("modelHubCall:",o),o}catch(e){throw console.error("Failed to create key:",e),e}},eA=async e=>{try{let t=S?`${S}/get/allowed_ips`:"/get/allowed_ips",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("getAllowedIPs:",o),o.data}catch(e){throw console.error("Failed to get allowed IPs:",e),e}},ez=async(e,t)=>{try{let r=S?`${S}/add/allowed_ip`:"/add/allowed_ip",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({ip:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("addAllowedIP:",n),n}catch(e){throw console.error("Failed to add allowed IP:",e),e}},eL=async(e,t)=>{try{let r=S?`${S}/delete/allowed_ip`:"/delete/allowed_ip",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({ip:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("deleteAllowedIP:",n),n}catch(e){throw console.error("Failed to delete allowed IP:",e),e}},eD=async(e,t)=>{try{let r=S?`${S}/model_hub/update_useful_links`:"/model_hub/update_useful_links",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({useful_links:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create key:",e),e}},eH=async(e,t,r,o=!1,n=null,a=!1,i=!1,l)=>{console.log("in /models calls, globalLitellmHeaderName",R);try{let t=S?`${S}/models`:"/models",r=new URLSearchParams;r.append("include_model_access_groups","True"),!0===o&&r.append("return_wildcard_routes","True"),!0===i&&r.append("only_model_access_groups","True"),n&&r.append("team_id",n.toString()),l&&r.append("scope",l),r.toString()&&(t+=`?${r.toString()}`);let a=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return await a.json()}catch(e){throw console.error("Failed to create key:",e),e}},eV=async e=>{try{let t=S?`${S}/global/spend/teams`:"/global/spend/teams";console.log("in teamSpendLogsCall:",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eW=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/tags`:"/global/spend/tags";t&&r&&(n=`${n}?start_date=${t}&end_date=${r}`),o&&(n+=`&tags=${o.join(",")}`),console.log("in tagsSpendLogsCall:",n);let a=await fetch(`${n}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to create key:",e),e}},eU=async e=>{try{let t=S?`${S}/global/spend/all_tag_names`:"/global/spend/all_tag_names";console.log("in global/spend/all_tag_names call",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eG=async e=>{try{let t=S?`${S}/customer/list`:"/customer/list";console.log("in customer/list",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to fetch end users:",e),e}},eq=async(e,t)=>{try{let r=S?`${S}/user/filter/ui`:"/user/filter/ui",o=new URLSearchParams;t.get("user_email")&&o.append("user_email",t.get("user_email")),t.get("user_id")&&o.append("user_id",t.get("user_id")),t.get("team_id")&&o.append("team_id",t.get("team_id"));let n=o.toString(),a=n?`${r}?${n}`:r,i=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to create key:",e),e}},eJ=async({accessToken:e,start_date:t,end_date:r,page:o=1,page_size:n=50,params:a={}})=>{try{let i=S?`${S}/spend/logs/ui`:"/spend/logs/ui",l=new URLSearchParams;for(let[e,i]of(l.append("start_date",t),l.append("end_date",r),l.append("page",o.toString()),l.append("page_size",n.toString()),Object.entries(a)))null!=i&&("min_spend"===e||"max_spend"===e?l.append(e,i.toString()):"string"==typeof i&&""!==i&&l.append(e,String(i)));let s=l.toString();s&&(i+=`?${s}`);let c=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!c.ok){let e=await c.json(),t=oM(e);throw _(t),Error(t)}let u=await c.json();return console.log("Spend Logs Response:",u),u}catch(e){throw console.error("Failed to fetch spend logs:",e),e}},eK=async e=>{try{let t=S?`${S}/global/spend/logs`:"/global/spend/logs",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eX=async e=>{try{let t=S?`${S}/global/spend/keys?limit=5`:"/global/spend/keys?limit=5",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eQ=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/end_users`:"/global/spend/end_users",a="";a=t?JSON.stringify({api_key:t,startTime:r,endTime:o}):JSON.stringify({startTime:r,endTime:o});let i={method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:a},l=await fetch(n,i);if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}let s=await l.json();return console.log(s),s}catch(e){throw console.error("Failed to create key:",e),e}},eY=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/provider`:"/global/spend/provider";r&&o&&(n+=`?start_date=${r}&end_date=${o}`),t&&(n+=`&api_key=${t}`);let a={method:"GET",headers:{[R]:`Bearer ${e}`}},i=await fetch(n,a);if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}let l=await i.json();return console.log(l),l}catch(e){throw console.error("Failed to fetch spend data:",e),e}},eZ=async(e,t,r)=>{try{let o=S?`${S}/global/activity`:"/global/activity";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e0=async(e,t,r)=>{try{let o=S?`${S}/global/activity/cache_hits`:"/global/activity/cache_hits";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e1=async(e,t,r)=>{try{let o=S?`${S}/global/activity/model`:"/global/activity/model";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e2=async e=>{try{let t=S?`${S}/global/spend/models?limit=5`:"/global/spend/models?limit=5",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},e4=async(e,t)=>{try{let r=S?`${S}/v2/key/info`:"/v2/key/info",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({keys:t})});if(!o.ok){let e=await o.text();if(e.includes("Invalid proxy server token passed"))throw Error("Invalid proxy server token passed");throw _(e),Error("Network response was not ok")}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to create key:",e),e}},e6=async(e,t,r,o)=>{try{console.log("Sending model connection test request:",JSON.stringify(t));let n=S?`${S}/health/test_connection`:"/health/test_connection",a=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({litellm_params:t,model_info:r,mode:o})}),i=a.headers.get("content-type");if(!i||!i.includes("application/json")){let e=await a.text();throw console.error("Received non-JSON response:",e),Error(`Received non-JSON response (${a.status}: ${a.statusText}). Check network tab for details.`)}let l=await a.json();if((!a.ok||"error"===l.status)&&"error"!==l.status)return{status:"error",message:l.error?.message||`Connection test failed: ${a.status} ${a.statusText}`};return l}catch(e){throw console.error("Model connection test error:",e),e}},e3=async(e,t)=>{try{console.log("entering keyInfoV1Call");let r=S?`${S}/key/info`:"/key/info";r=`${r}?key=${t}`;let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(console.log("response",o),!o.ok){let e=await o.text();_(e),v.default.fromBackend("Failed to fetch key info - "+e)}let n=await o.json();return console.log("data",n),n}catch(e){throw console.error("Failed to fetch key info:",e),e}},e7=async(e,t,r,o,n,a,i,l,s=null,c=null,u=null,d=null)=>{try{let f=S?`${S}/key/list`:"/key/list";console.log("in keyListCall");let p=new URLSearchParams;r&&p.append("team_id",r.toString()),t&&p.append("organization_id",t.toString()),o&&p.append("key_alias",o),a&&p.append("key_hash",a),n&&p.append("user_id",n.toString()),i&&p.append("page",i.toString()),l&&p.append("size",l.toString()),s&&p.append("sort_by",s),c&&p.append("sort_order",c),u&&p.append("expand",u),d&&p.append("status",d),p.append("return_full_object","true"),p.append("include_team_keys","true"),p.append("include_created_by_keys","true");let h=p.toString();h&&(f+=`?${h}`);let m=await fetch(f,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!m.ok){let e=await m.json(),t=oM(e);throw _(t),Error(t)}let g=await m.json();return console.log("/team/list API Response:",g),g}catch(e){throw console.error("Failed to create key:",e),e}},e5=async(e,t=1,r=50,o,n)=>{try{let a=new URLSearchParams(Object.entries({page:String(t),size:String(r),...o?{search:o}:{},...n?{team_id:n}:{}})),i=S?`${S}/key/aliases`:"/key/aliases";i=`${i}?${a}`;let l=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}let s=await l.json();return console.log("/key/aliases API Response:",s),s}catch(e){throw console.error("Failed to fetch key aliases:",e),e}},e9=async(e,t,r,o=null)=>{try{let n=S?`${S}/user/daily/activity/aggregated`:"/user/daily/activity/aggregated",a=new URLSearchParams,i=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`};a.append("start_date",i(t)),a.append("end_date",i(r)),a.append("timezone",new Date().getTimezoneOffset().toString()),o&&a.append("user_id",o);let l=a.toString();l&&(n+=`?${l}`);let s=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}return await s.json()}catch(e){throw console.error("Failed to fetch aggregated user daily activity:",e),e}},e8=async e=>{try{let t=S?`${S}/user/available_roles`:"/user/available_roles",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("response from user/available_role",o),o}catch(e){throw e}},te=async(e,t)=>{try{if(console.log("Form Values in teamCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let r=S?`${S}/team/new`:"/team/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tt=async(e,t)=>{try{if(console.log("Form Values in credentialCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let r=S?`${S}/credentials`:"/credentials",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tr=async e=>{try{let t=S?`${S}/credentials`:"/credentials";console.log("in credentialListCall");let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("/credentials API Response:",o),o}catch(e){throw console.error("Failed to create key:",e),e}},to=async(e,t,r)=>{try{let o=S?`${S}/credentials`:"/credentials";t?o+=`/by_name/${t}`:r&&(o+=`/by_model/${r}`),console.log("in credentialListCall");let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("/credentials API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tn=async(e,t)=>{try{let r=S?`${S}/credentials/${t}`:`/credentials/${t}`;console.log("in credentialDeleteCall:",t);let o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete key:",e),e}},ta=async(e,t,r)=>{try{if(console.log("Form Values in credentialUpdateCall:",r),r.metadata){console.log("formValues.metadata:",r.metadata);try{r.metadata=JSON.parse(r.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let o=S?`${S}/credentials/${t}`:`/credentials/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},ti=async(e,t)=>{try{if(console.log("Form Values in keyUpdateCall:",t),t.model_tpm_limit){console.log("formValues.model_tpm_limit:",t.model_tpm_limit);try{t.model_tpm_limit=JSON.parse(t.model_tpm_limit)}catch(e){throw Error("Failed to parse model_tpm_limit: "+e)}}if(t.model_rpm_limit){console.log("formValues.model_rpm_limit:",t.model_rpm_limit);try{t.model_rpm_limit=JSON.parse(t.model_rpm_limit)}catch(e){throw Error("Failed to parse model_rpm_limit: "+e)}}let r=S?`${S}/key/update`:"/key/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let n=await o.json();return console.log("Update key Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tl=async(e,t)=>{try{console.log("Form Values in teamUpateCall:",t);let r=S?`${S}/team/update`:"/team/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),v.default.fromBackend("Failed to update team settings: "+e),Error(e)}let n=await o.json();return console.log("Update Team Response:",n),n}catch(e){throw console.error("Failed to update team:",e),e}},ts=async(e,t,r)=>{try{console.log("Form Values in modelUpateCall:",t);let o=S?`${S}/model/${r}/update`:`/model/${r}/update`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error update from the server:",e),Error("Network response was not ok")}let a=await n.json();return console.log("Update model Response:",a),a}catch(e){throw console.error("Failed to update model:",e),e}},tc=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/team/member_add`:"/team/member_add",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_id:t,member:r})});if(!n.ok){let e=await n.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to add team member",o=Error(r);throw o.raw=t,o}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tu=async(e,t,r,o,n)=>{try{console.log("Bulk add team members:",{teamId:t,members:r,maxBudgetInTeam:o});let a=S?`${S}/team/bulk_member_add`:"/team/bulk_member_add",i={team_id:t};n?i.all_users=!0:i.members=r,null!=o&&(i.max_budget_in_team=o);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to bulk add team members",o=Error(r);throw o.raw=t,o}let s=await l.json();return console.log("Bulk team member add API Response:",s),s}catch(e){throw console.error("Failed to bulk add team members:",e),e}},td=async(e,t,r)=>{try{console.log("Form Values in teamMemberUpdateCall:",r),console.log("Budget value:",r.max_budget_in_team),console.log("TPM limit:",r.tpm_limit),console.log("RPM limit:",r.rpm_limit);let o=S?`${S}/team/member_update`:"/team/member_update",n={team_id:t,role:r.role,user_id:r.user_id};void 0!==r.user_email&&(n.user_email=r.user_email),void 0!==r.max_budget_in_team&&null!==r.max_budget_in_team&&(n.max_budget_in_team=r.max_budget_in_team),void 0!==r.tpm_limit&&null!==r.tpm_limit&&(n.tpm_limit=r.tpm_limit),void 0!==r.rpm_limit&&null!==r.rpm_limit&&(n.rpm_limit=r.rpm_limit),void 0!==r.allowed_models&&(n.allowed_models=r.allowed_models),console.log("Final request body:",n);let a=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(n)});if(!a.ok){let e=await a.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to add team member",o=Error(r);throw o.raw=t,o}let i=await a.json();return console.log("API Response:",i),i}catch(e){throw console.error("Failed to update team member:",e),e}},tf=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/team/member_delete`:"/team/member_delete",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_id:t,...void 0!==r.user_email&&{user_email:r.user_email},...void 0!==r.user_id&&{user_id:r.user_id}})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tp=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/organization/member_add`:"/organization/member_add",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,member:r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create organization member:",e),e}},th=async(e,t,r)=>{try{console.log("Form Values in organizationMemberDeleteCall:",r);let o=S?`${S}/organization/member_delete`:"/organization/member_delete",n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,user_id:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to delete organization member:",e),e}},tm=async(e,t,r)=>{try{console.log("Form Values in organizationMemberUpdateCall:",r);let o=S?`${S}/organization/member_update`:"/organization/member_update",n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,...r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to update organization member:",e),e}},tg=async(e,t,r)=>{try{console.log("Form Values in userUpdateUserCall:",t);let o=S?`${S}/user/update`:"/user/update",n={...t};null!==r&&(n.user_role=r),n=JSON.stringify(n);let a=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:n});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log("API Response:",i),i}catch(e){throw console.error("Failed to create key:",e),e}},tv=async(e,t,r,o=!1)=>{try{let n;console.log("Form Values in userUpdateUserCall:",t);let a=S?`${S}/user/bulk_update`:"/user/bulk_update";if(o)n=JSON.stringify({all_users:!0,user_updates:t});else if(r&&r.length>0){let e=[];for(let o of r)e.push({user_id:o,...t});n=JSON.stringify({users:e})}else throw Error("Must provide either userIds or set allUsers=true");let i=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:n});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}let l=await i.json();return console.log("API Response:",l),l}catch(e){throw console.error("Failed to create key:",e),e}},ty=async(e,t)=>{try{let r=S?`${S}/health/services?service=${t}`:`/health/services?service=${t}`;console.log("Checking Slack Budget Alerts service health");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}return await o.json()}catch(e){throw console.error("Failed to perform health check:",e),e}},tb=async e=>{try{let t=S?`${S}/budget/list`:"/budget/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tw=async(e,t,r)=>{try{let t=S?`${S}/get/config/callbacks`:"/get/config/callbacks",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},t$=async e=>{try{let t=S?`${S}/config/list?config_type=general_settings`:"/config/list?config_type=general_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tC=async e=>{try{let t=S?`${S}/router/settings`:"/router/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get router settings:",e),e}},tx=async e=>{try{let t=S?`${S}/cache/settings`:"/cache/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get cache settings:",e),e}},tE=async(e,t)=>{try{let r=S?`${S}/cache/settings/test`:"/cache/settings/test",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({cache_settings:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to test cache connection:",e),e}},tS=async(e,t)=>{try{let r=S?`${S}/cache/settings`:"/cache/settings",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({cache_settings:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update cache settings:",e),e}},tk=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint`:"/config/pass_through_endpoint";t&&(r+=`/team/${t}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tj=async(e,t)=>{try{let r=S?`${S}/config/field/info?field_name=${t}`:`/config/field/info?field_name=${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tO=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint`:"/config/pass_through_endpoint",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tT=async(e,t,r)=>{try{let o=S?`${S}/config/field/update`:"/config/field/update",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({field_name:t,field_value:r,config_type:"general_settings"})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return v.default.success("Successfully updated value!"),a}catch(e){throw console.error("Failed to set callbacks:",e),e}},tI=async(e,t)=>{try{let r=S?`${S}/config/field/delete`:"/config/field/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({field_name:t,config_type:"general_settings"})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return v.default.success("Field reset on proxy"),n}catch(e){throw console.error("Failed to get callbacks:",e),e}},t_=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint?endpoint_id=${t}`:`/config/pass_through_endpoint?endpoint_id=${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tF=async(e,t)=>{try{let r=S?`${S}/config/update`:"/config/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tP=async(e,t)=>{try{let r=S?`${S}/health?model_id=${encodeURIComponent(t)}`:`/health?model_id=${encodeURIComponent(t)}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error(`Failed to call /health for model id ${t}:`,e),e}},tR=async e=>{try{let t=S?`${S}/cache/ping`:"/cache/ping",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error(e)}return await r.json()}catch(e){throw console.error("Failed to call /cache/ping:",e),e}},tN=async e=>{try{let t=S?`${S}/health/latest`:"/health/latest",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error(e)}return await r.json()}catch(e){throw console.error("Failed to call /health/latest:",e),e}},tM=async e=>{try{console.log("Getting proxy UI settings"),console.log("proxyBaseUrl in getProxyUISettings:",S);let t=S?`${S}/sso/get/ui_settings`:"/sso/get/ui_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tB=async e=>{try{let t=S?`${S}/get/ui_settings`:"/get/ui_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);return console.error("Failed to get UI settings:",t),null}return await r.json()}catch(e){return console.error("Failed to get UI settings:",e),null}},tA=async e=>{try{let t=S?`${S}/get/mcp_semantic_filter_settings`:"/get/mcp_semantic_filter_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get MCP semantic filter settings:",e),e}},tz=async(e,t)=>{try{let r=S?`${S}/update/mcp_semantic_filter_settings`:"/update/mcp_semantic_filter_settings",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP semantic filter settings:",e),e}},tL=async(e,t,r)=>{try{let o=S?`${S}/v1/responses`:"/v1/responses",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({model:t,input:[{role:"user",content:r,type:"message"}],tools:[{type:"mcp",server_url:"litellm_proxy",require_approval:"never"}],tool_choice:"required"})}),a=n.headers.get("x-litellm-semantic-filter"),i=n.headers.get("x-litellm-semantic-filter-tools");if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return{data:await n.json(),headers:{filter:a,tools:i}}}catch(e){throw console.error("Failed to test MCP semantic filter:",e),e}},tD=async e=>{try{let t=S?`${S}/v2/guardrails/list`:"/v2/guardrails/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(`v2 guardrails/list returned ${r.status}`);return await r.json()}catch(t){console.log("v2/guardrails/list failed, falling back to v1:",t);try{let t=S?`${S}/guardrails/list`:"/guardrails/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get guardrails list:",e),e}}},tH=async(e,t)=>{let r=S?`${S}/guardrails/submissions`:"/guardrails/submissions",o=new URLSearchParams;t?.status&&o.set("status",t.status),t?.team_id&&o.set("team_id",t.team_id),t?.team_guardrail!==void 0&&o.set("team_guardrail",String(t.team_guardrail)),t?.search&&o.set("search",t.search);let n=o.toString()?`${r}?${o.toString()}`:r,a=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=oM(await a.json().catch(()=>({})));throw _(e),Error(e)}return a.json()},tV=async(e,t)=>{let r=S?`${S}/guardrails/submissions/${encodeURIComponent(t)}/approve`:`/guardrails/submissions/${encodeURIComponent(t)}/approve`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=oM(await o.json().catch(()=>({})));throw _(e),Error(e)}return o.json()},tW=async(e,t)=>{let r=S?`${S}/guardrails/submissions/${encodeURIComponent(t)}/reject`:`/guardrails/submissions/${encodeURIComponent(t)}/reject`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=oM(await o.json().catch(()=>({})));throw _(e),Error(e)}return o.json()},tU=async(e,t,r)=>{try{let o=S?`${S}/guardrails/usage/overview`:"/guardrails/usage/overview",n=new URLSearchParams;t&&n.append("start_date",t),r&&n.append("end_date",r),n.toString()&&(o+=`?${n.toString()}`);let a=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json();throw Error(oM(e))}return a.json()}catch(e){throw console.error("Failed to get guardrails usage overview:",e),e}},tG=async(e,t,r,o)=>{try{let n=S?`${S}/guardrails/usage/detail/${encodeURIComponent(t)}`:`/guardrails/usage/detail/${encodeURIComponent(t)}`,a=new URLSearchParams;r&&a.append("start_date",r),o&&a.append("end_date",o),a.toString()&&(n+=`?${a.toString()}`);let i=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json();throw Error(oM(e))}return i.json()}catch(e){throw console.error("Failed to get guardrails usage detail:",e),e}},tq=async(e,t)=>{try{let r=S?`${S}/guardrails/usage/logs`:"/guardrails/usage/logs",o=new URLSearchParams;t.guardrailId&&o.append("guardrail_id",t.guardrailId),t.policyId&&o.append("policy_id",t.policyId),null!=t.page&&o.append("page",String(t.page)),null!=t.pageSize&&o.append("page_size",String(t.pageSize)),t.action&&o.append("action",t.action),t.startDate&&o.append("start_date",t.startDate),t.endDate&&o.append("end_date",t.endDate),o.toString()&&(r+=`?${o.toString()}`);let n=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json();throw Error(oM(e))}return n.json()}catch(e){throw console.error("Failed to get guardrails usage logs:",e),e}},tJ=async e=>{try{let t=S?`${S}/policies/list`:"/policies/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policies list:",e),e}},tK=async(e,t,r)=>{try{let o=S?`${S}/utils/test_policies_and_guardrails`:"/utils/test_policies_and_guardrails",n=await fetch(o,{method:"POST",signal:r,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({policy_names:t.policy_names??null,guardrail_names:t.guardrail_names??null,inputs:t.inputs??null,inputs_list:t.inputs_list??null,request_data:t.request_data??{},input_type:t.input_type??"request",agent_id:t.agent_id??null})});if(!n.ok){let e=await n.text(),t="Failed to test policies and guardrails";try{let r=JSON.parse(e);r.detail?t="string"==typeof r.detail?r.detail:JSON.stringify(r.detail):r.message&&(t=r.message)}catch{t=e||t}throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to test policies and guardrails:",e),e}},tX=async(e,t)=>{try{let r=S?`${S}/policy/info/${t}`:`/policy/info/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error(`Failed to get policy info for ${t}:`,e),e}},tQ=async e=>{try{let t=S?`${S}/policy/templates`:"/policy/templates",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policy templates:",e),e}},tY=async(e,t,r,o,n)=>{try{let a=S?`${S}/policy/templates/enrich`:"/policy/templates/enrich",i={template_id:t,parameters:r};o&&(i.model=o),n&&(i.competitors=n);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}return await l.json()}catch(e){throw console.error("Failed to enrich policy template:",e),e}},tZ=async(e,t,r,o)=>{try{let n=S?`${S}/policy/templates/suggest`:"/policy/templates/suggest",a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({attack_examples:t.filter(e=>e.trim()),description:r,model:o})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return a.json()}catch(e){throw console.error("Failed to suggest policy templates:",e),e}},t0=async(e,t,r)=>{try{let o=S?`${S}/policy/templates/test`:"/policy/templates/test",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({guardrail_definitions:t,text:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return n.json()}catch(e){throw console.error("Failed to test policy template:",e),e}},t1=async(e,t,r,o,n,a,i,l,s)=>{let c=S?`${S}/policy/templates/enrich/stream`:"/policy/templates/enrich/stream",u={template_id:t,parameters:r,model:o};l?.instruction&&(u.instruction=l.instruction),l?.existingCompetitors&&(u.competitors=l.existingCompetitors);let d=await fetch(c,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(u)});if(!d.ok){let e=oM(await d.json());throw _(e),Error(e)}let f=d.body?.getReader();if(!f)throw Error("No response body");let p=new TextDecoder,h="";for(;;){let{done:e,value:t}=await f.read();if(e)break;let r=(h+=p.decode(t,{stream:!0})).split("\n");for(let e of(h=r.pop()||"",r))if(e.startsWith("data: "))try{let t=JSON.parse(e.slice(6));"competitor"===t.type?n(t.name):"status"===t.type?s?.(t.message):"done"===t.type?a(t):"error"===t.type&&i?.(t.message)}catch{}}},t2=async(e,t,r,o,n,a,i,l,s)=>{let c=S?`${S}/usage/ai/chat`:"/usage/ai/chat",u=await fetch(c,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({messages:t,model:r}),signal:s});if(!u.ok){let e=oM(await u.json());throw _(e),Error(e)}let d=u.body?.getReader();if(!d)throw Error("No response body");let f=new TextDecoder,p="";for(;;){let{done:e,value:t}=await d.read();if(e)break;let r=(p+=f.decode(t,{stream:!0})).split("\n");for(let e of(p=r.pop()||"",r))if(e.startsWith("data: "))try{let t=JSON.parse(e.slice(6));"chunk"===t.type?o(t.content):"status"===t.type?i?.(t.message):"tool_call"===t.type?l?.(t):"done"===t.type?n():"error"===t.type&&a?.(t.message)}catch{}}},t4=async(e,t)=>{try{let r=S?`${S}/policies`:"/policies",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create policy:",e),e}},t6=async(e,t,r)=>{try{let o=S?`${S}/policies/${t}`:`/policies/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update policy:",e),e}},t3=async(e,t)=>{try{let r=encodeURIComponent(t),o=S?`${S}/policies/name/${r}/versions`:`/policies/name/${r}/versions`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to list policy versions:",e),e}},t7=async(e,t,r)=>{try{let o=encodeURIComponent(t),n=S?`${S}/policies/name/${o}/versions`:`/policies/name/${o}/versions`,a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({source_policy_id:r??void 0})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return await a.json()}catch(e){throw console.error("Failed to create policy version:",e),e}},t5=async(e,t,r)=>{try{let o=S?`${S}/policies/${t}/status`:`/policies/${t}/status`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({version_status:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update policy version status:",e),e}},t9=async(e,t)=>{try{let r=S?`${S}/policies/${t}`:`/policies/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete policy:",e),e}},t8=async(e,t)=>{try{let r=S?`${S}/policies/${t}`:`/policies/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get policy info:",e),e}},re=async e=>{try{let t=S?`${S}/policies/attachments/list`:"/policies/attachments/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policy attachments list:",e),e}},rt=async(e,t)=>{try{let r=S?`${S}/policies/attachments`:"/policies/attachments",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create policy attachment:",e),e}},rr=async(e,t)=>{try{let r=S?`${S}/policies/attachments/${t}`:`/policies/attachments/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete policy attachment:",e),e}},ro=async(e,t,r)=>{try{let o=S?`${S}/policies/test-pipeline`:"/policies/test-pipeline",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({pipeline:t,test_messages:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to test pipeline:",e),e}},rn=async(e,t)=>{try{let r=S?`${S}/policies/${t}/resolved-guardrails`:`/policies/${t}/resolved-guardrails`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get resolved guardrails:",e),e}},ra=async(e,t)=>{try{let r=S?`${S}/policies/resolve`:"/policies/resolve",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to resolve policies:",e),e}},ri=async(e,t)=>{try{let r=S?`${S}/policies/attachments/estimate-impact`:"/policies/attachments/estimate-impact",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to estimate attachment impact:",e),e}},rl=async(e,t)=>{try{let r=S?`${S}/prompts/list`:"/prompts/list";t&&(r+=`?environment=${encodeURIComponent(t)}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get prompts list:",e),e}},rs=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}/info`:`/prompts/${t}/info`;r&&(o+=`?environment=${encodeURIComponent(r)}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to get prompt info:",e),e}},rc=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}/versions`:`/prompts/${t}/versions`;r&&(o+=`?environment=${encodeURIComponent(r)}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw 404!==n.status&&_(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to get prompt versions:",e),e}},ru=async(e,t)=>{try{let r=S?`${S}/prompts`:"/prompts",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create prompt:",e),e}},rd=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}`:`/prompts/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update prompt:",e),e}},rf=async(e,t)=>{try{let r=S?`${S}/prompts/${t}`:`/prompts/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete prompt:",e),e}},rp=async(e,t)=>{try{let r=new FormData;r.append("file",t);let o=S?`${S}/utils/dotprompt_json_converter`:"/utils/dotprompt_json_converter",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`},body:r});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to convert prompt file:",e),e}},rh=async(e,t)=>{try{let r=S?`${S}/v1/agents`:"/v1/agents",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Create agent response:",n),n}catch(e){throw console.error("Failed to create agent:",e),e}},rm=async(e,t)=>{try{let r=S?`${S}/guardrails`:"/guardrails",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({guardrail:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Create guardrail response:",n),n}catch(e){throw console.error("Failed to create guardrail:",e),e}},rg=async(e,t,r)=>{try{let o=S?`${S}/spend/logs/ui/${t}?start_date=${encodeURIComponent(r)}`:`/spend/logs/ui/${t}?start_date=${encodeURIComponent(r)}`;console.log("Fetching log details from:",o);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Fetched log details:",a),a}catch(e){throw console.error("Failed to fetch log details:",e),e}},rv=async e=>{try{let t=S?`${S}/get/internal_user_settings`:"/get/internal_user_settings";console.log("Fetching SSO settings from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched SSO settings:",o),o}catch(e){throw console.error("Failed to fetch SSO settings:",e),e}},ry=async(e,t)=>{try{let r=S?`${S}/update/internal_user_settings`:"/update/internal_user_settings";console.log("Updating internal user settings:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Updated internal user settings:",n),v.default.success("Internal user settings updated successfully"),n}catch(e){throw console.error("Failed to update internal user settings:",e),e}},rb=async e=>{try{let t=S?`${S}/v1/mcp/openapi-registry`:"/v1/mcp/openapi-registry",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json();throw Error(oM(e))}return await r.json()}catch(e){throw console.error("Failed to fetch OpenAPI registry:",e),e}},rw=async e=>{try{let t=S?`${S}/v1/mcp/discover`:"/v1/mcp/discover",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch discoverable MCP servers:",e),e}},r$=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server";if(t){let e=new URLSearchParams;e.append("team_id",t),r=`${r}?${e.toString()}`}console.log("Fetching MCP servers from:",r);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Fetched MCP servers:",n),n}catch(e){throw console.error("Failed to fetch MCP servers:",e),e}},rC=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server/health`:"/v1/mcp/server/health";if(t&&t.length>0){let e=new URLSearchParams;t.forEach(t=>e.append("server_ids",t)),r=`${r}?${e.toString()}`}console.log("Fetching MCP server health from:",r);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Fetched MCP server health:",n),n}catch(e){throw console.error("Failed to fetch MCP server health:",e),e}},rx=async e=>{try{let t=S?`${S}/v1/mcp/access_groups`:"/v1/mcp/access_groups";console.log("Fetching MCP access groups from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched MCP access groups:",o),o.access_groups||[]}catch(e){throw console.error("Failed to fetch MCP access groups:",e),e}},rE=async e=>{try{let t=S?`${S}/v1/mcp/network/client-ip`:"/v1/mcp/network/client-ip",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok)return null;return(await r.json()).ip||null}catch{return null}},rS=async(e,t)=>{try{console.log("Form Values in createMCPServer:",t);let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},rk=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server",o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP server:",e),e}},rj=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/server/${t}`;console.log("in deleteMCPServer:",t);let o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}}catch(e){throw console.error("Failed to delete key:",e),e}},rO=async e=>{try{let t=(S?`${S}`:"")+"/v1/mcp/toolset",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch MCP toolsets:",e),e}},rT=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/toolset",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create MCP toolset:",e),e}},rI=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/toolset",o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP toolset:",e),e}},r_=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/toolset/${t}`,o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}}catch(e){throw console.error("Failed to delete MCP toolset:",e),e}},rF=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/server/register",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return o.json()}catch(e){throw console.error("Failed to register MCP server:",e),e}},rP=async e=>{try{let t=(S?`${S}`:"")+"/v1/mcp/server/submissions",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return r.json()}catch(e){throw console.error("Failed to fetch MCP submissions:",e),e}},rR=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/server/${encodeURIComponent(t)}/approve`,o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return o.json()}catch(e){throw console.error("Failed to approve MCP server:",e),e}},rN=async(e,t,r)=>{try{let o=(S?`${S}`:"")+`/v1/mcp/server/${encodeURIComponent(t)}/reject`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({review_notes:r??null})});if(!n.ok){let e=await n.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return n.json()}catch(e){throw console.error("Failed to reject MCP server:",e),e}},rM=async e=>{try{let t=S?`${S}/search_tools/list`:"/search_tools/list";console.log("Fetching search tools from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched search tools:",o),o}catch(e){throw console.error("Failed to fetch search tools:",e),e}},rB=async(e,t)=>{try{console.log("Creating search tool with values:",t);let r=S?`${S}/search_tools`:"/search_tools",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({search_tool:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Created search tool:",n),n}catch(e){throw console.error("Failed to create search tool:",e),e}},rA=async(e,t,r)=>{try{console.log("Updating search tool with ID:",t,"values:",r);let o=S?`${S}/search_tools/${t}`:`/search_tools/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({search_tool:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Updated search tool:",a),a}catch(e){throw console.error("Failed to update search tool:",e),e}},rz=async(e,t)=>{try{let r=(S?`${S}`:"")+`/search_tools/${t}`;console.log("Deleting search tool:",t);let o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Deleted search tool:",n),n}catch(e){throw console.error("Failed to delete search tool:",e),e}},rL=async e=>{try{let t=S?`${S}/search_tools/ui/available_providers`:"/search_tools/ui/available_providers";console.log("Fetching available search providers from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched available search providers:",o),o}catch(e){throw console.error("Failed to fetch available search providers:",e),e}},rD=async(e,t)=>{try{let r=S?`${S}/search_tools/test_connection`:"/search_tools/test_connection";console.log("Testing search tool connection:",r);let o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({litellm_params:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Test connection response:",n),n}catch(e){throw console.error("Failed to test search tool connection:",e),e}},rH=async(e,t,r)=>{let o,n=S?`${S}/mcp-rest/tools/list?server_id=${t}`:`/mcp-rest/tools/list?server_id=${t}`;console.log("Fetching MCP tools from:",n);let a={[R]:`Bearer ${e}`,"Content-Type":"application/json",...r};try{o=await fetch(n,{method:"GET",headers:a})}catch(e){return console.error("Failed to fetch MCP tools (network error):",e),{tools:[],error:"network_error",message:e instanceof Error?e.message:"Failed to fetch MCP tools",stack_trace:null}}let i=null;try{i=await o.json()}catch(e){return console.error("Failed to parse MCP tools response:",e),{tools:[],error:"parse_error",message:"Failed to parse MCP tools response",status:o.status,statusText:o.statusText,stack_trace:null}}if(console.log("Fetched MCP tools response:",i),!o.ok){let e=i&&(i.message||i.error)||"Failed to fetch MCP tools";return{tools:[],error:i&&i.error||`http_${o.status}`,message:e,status:o.status,statusText:o.statusText,details:i,stack_trace:null}}return i},rV=async(e,t,r,o,n)=>{try{let a=S?`${S}/mcp-rest/tools/call`:"/mcp-rest/tools/call";console.log("Calling MCP tool:",r,"with arguments:",o,"for server:",t);let i={[R]:`Bearer ${e}`,"Content-Type":"application/json",...n?.customHeaders||{}},l={server_id:t,name:r,arguments:o};n?.guardrails&&n.guardrails.length>0&&(l.litellm_metadata={guardrails:n.guardrails});let s=await fetch(a,{method:"POST",headers:i,body:JSON.stringify(l)});if(!s.ok){let e="Network response was not ok",t=null,r=await s.text();try{let o=JSON.parse(r);o.detail?"string"==typeof o.detail?e=o.detail:"object"==typeof o.detail&&(e=o.detail.message||o.detail.error||"An error occurred",t=o.detail):e=o.message||o.error||e}catch(t){console.error("Failed to parse JSON error response:",t),r&&(e=r)}let o=Error(e);throw o.status=s.status,o.statusText=s.statusText,o.details=t,_(e),o}let c=await s.json();return console.log("MCP tool call response:",c),c}catch(e){throw console.error("Failed to call MCP tool:",e),console.error("Error type:",typeof e),e instanceof Error&&(console.error("Error message:",e.message),console.error("Error stack:",e.stack)),e}},rW=async(e,t)=>{try{let r=S?`${S}/tag/new`:"/tag/new",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error creating tag:",e),e}},rU=async(e,t)=>{try{let r=S?`${S}/tag/update`:"/tag/update",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error updating tag:",e),e}},rG=async(e,t)=>{try{let r=S?`${S}/tag/info`:"/tag/info",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({names:t})});if(!o.ok){let e=await o.text();return await _(e),{}}return await o.json()}catch(e){throw console.error("Error getting tag info:",e),e}},rq=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`},rJ=async(e,t,r)=>{try{let o=S?`${S}/tag/list`:"/tag/list";if(t&&r){let e=new URLSearchParams({start_date:rq(t),end_date:rq(r)});o=`${o}?${e.toString()}`}let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!n.ok){let e=await n.text();return await _(e),{}}return await n.json()}catch(e){throw console.error("Error listing tags:",e),e}},rK=async(e,t)=>{try{let r=S?`${S}/tag/delete`:"/tag/delete",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({name:t})});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error deleting tag:",e),e}},rX=async e=>{try{let t=S?`${S}/get/default_team_settings`:"/get/default_team_settings";console.log("Fetching default team settings from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched default team settings:",o),o}catch(e){throw console.error("Failed to fetch default team settings:",e),e}},rQ=async(e,t)=>{try{let r=S?`${S}/update/default_team_settings`:"/update/default_team_settings";console.log("Updating default team settings:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Updated default team settings:",n),n}catch(e){throw console.error("Failed to update default team settings:",e),e}},rY=async(e,t)=>{try{let r=S?`${S}/team/permissions_list?team_id=${t}`:`/team/permissions_list?team_id=${t}`,o=await fetch(r,{method:"GET",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json(),t=oM(e);return console.error("Available permissions fetch failed:",t),{all_available_permissions:[],team_member_permissions:[]}}return await o.json()}catch(e){throw console.error("Failed to get team permissions:",e),e}},rZ=async(e,t,r)=>{try{let o=S?`${S}/team/permissions_update`:"/team/permissions_update",n=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({team_id:t,team_member_permissions:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Team permissions response:",a),a}catch(e){throw console.error("Failed to update team permissions:",e),e}},r0=async(e,t)=>{try{let r=S?`${S}/spend/logs/session/ui?session_id=${encodeURIComponent(t)}`:`/spend/logs/session/ui?session_id=${encodeURIComponent(t)}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to fetch session logs:",e),e}},r1=async(e,t)=>{try{let r=S?`${S}/vector_store/new`:"/vector_store/new",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to create vector store")}return await o.json()}catch(e){throw console.error("Error creating vector store:",e),e}},r2=async(e,t=1,r=100)=>{try{let t=S?`${S}/vector_store/list`:"/vector_store/list",r=await fetch(t,{method:"GET",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`}});if(!r.ok){let e=await r.json();throw Error(e.detail||"Failed to list vector stores")}return await r.json()}catch(e){throw console.error("Error listing vector stores:",e),e}},r4=async(e,t)=>{try{let r=S?`${S}/vector_store/delete`:"/vector_store/delete",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({vector_store_id:t})});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to delete vector store")}return await o.json()}catch(e){throw console.error("Error deleting vector store:",e),e}},r6=async(e,t)=>{try{let r=S?`${S}/vector_store/info`:"/vector_store/info",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({vector_store_id:t})});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to get vector store info")}return await o.json()}catch(e){throw console.error("Error getting vector store info:",e),e}},r3=async(e,t)=>{try{let r=S?`${S}/vector_store/update`:"/vector_store/update",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to update vector store")}return await o.json()}catch(e){throw console.error("Error updating vector store:",e),e}},r7=async(e,t,r,o,n,a,i)=>{try{let l=S?`${S}/rag/ingest`:"/rag/ingest",s=new FormData;s.append("file",t);let c={ingest_options:{vector_store:{custom_llm_provider:r,...o&&{vector_store_id:o},...i&&i}}};(n||a)&&(c.ingest_options.litellm_vector_store_params={},n&&(c.ingest_options.litellm_vector_store_params.vector_store_name=n),a&&(c.ingest_options.litellm_vector_store_params.vector_store_description=a)),s.append("request",JSON.stringify(c));let u=await fetch(l,{method:"POST",headers:{[R]:`Bearer ${e}`},body:s});if(!u.ok){let e=await u.json();throw Error(e.error?.message||e.detail||"Failed to ingest document")}return await u.json()}catch(e){throw console.error("Error ingesting document:",e),e}},r5=async e=>{try{let t=S?`${S}/email/event_settings`:"/email/event_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get email event settings")}let o=await r.json();return console.log("Email event settings response:",o),o}catch(e){throw console.error("Failed to get email event settings:",e),e}},r9=async(e,t)=>{try{let r=S?`${S}/email/event_settings`:"/email/event_settings",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to update email event settings")}let n=await o.json();return console.log("Update email event settings response:",n),n}catch(e){throw console.error("Failed to update email event settings:",e),e}},r8=async e=>{try{let t=S?`${S}/email/event_settings/reset`:"/email/event_settings/reset",r=await fetch(t,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to reset email event settings")}let o=await r.json();return console.log("Reset email event settings response:",o),o}catch(e){throw console.error("Failed to reset email event settings:",e),e}},oe=async(e,t)=>{try{let r=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Delete agent response:",n),n}catch(e){throw console.error("Failed to delete agent:",e),e}},ot=async(e,t)=>{try{let r=S?`${S}/v1/agents/make_public`:"/v1/agents/make_public",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({agent_ids:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Make agents public response:",n),n}catch(e){throw console.error("Failed to make agents public:",e),e}},or=async(e,t)=>{try{let r=S?`${S}/v1/mcp/make_public`:"/v1/mcp/make_public",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({mcp_server_ids:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Make agents public response:",n),n}catch(e){throw console.error("Failed to make agents public:",e),e}},oo=async(e,t)=>{try{let r=S?`${S}/guardrails/${t}`:`/guardrails/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Delete guardrail response:",n),n}catch(e){throw console.error("Failed to delete guardrail:",e),e}},on=async e=>{try{let t=S?`${S}/guardrails/ui/add_guardrail_settings`:"/guardrails/ui/add_guardrail_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get guardrail UI settings")}let o=await r.json();return console.log("Guardrail UI settings response:",o),o}catch(e){throw console.error("Failed to get guardrail UI settings:",e),e}},oa=async e=>{try{let t=S?`${S}/guardrails/ui/provider_specific_params`:"/guardrails/ui/provider_specific_params",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get guardrail provider specific parameters")}let o=await r.json();return console.log("Guardrail provider specific params response:",o),o}catch(e){throw console.error("Failed to get guardrail provider specific parameters:",e),e}},oi=async(e,t)=>{try{let r=encodeURIComponent(t),o=S?`${S}/guardrails/ui/category_yaml/${r}`:`/guardrails/ui/category_yaml/${r}`;console.log(`Fetching category YAML from: ${o}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text();throw console.error(`Failed to get category YAML. Status: ${n.status}, Error:`,e),_(e),Error(`Failed to get category YAML: ${n.status} ${e}`)}let a=await n.json();return console.log("Category YAML response:",a),a}catch(e){throw console.error("Failed to get category YAML:",e),e}},ol=async e=>{try{let t=S?`${S}/guardrails/ui/major_airlines`:"/guardrails/ui/major_airlines",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw console.error(`Failed to get major airlines. Status: ${r.status}, Error:`,e),_(e),Error(`Failed to get major airlines: ${r.status} ${e}`)}return await r.json()}catch(e){throw console.error("Failed to get major airlines:",e),e}},os=async(e,t=!1)=>{try{let r=t?"?health_check=true":"",o=S?`${S}/v1/agents${r}`:`/v1/agents${r}`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to get agents list")}let a=await n.json();return console.log("Agents list response:",a),{agents:a}}catch(e){throw console.error("Failed to get agents list:",e),e}},oc=async(e,t)=>{try{let r=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to get agent info")}let n=await o.json();return console.log("Agent info response:",n),n}catch(e){throw console.error("Failed to get agent info:",e),e}},ou=async(e,t)=>{try{let r=S?`${S}/guardrails/${t}/info`:`/guardrails/${t}/info`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to get guardrail info")}let n=await o.json();return console.log("Guardrail info response:",n),n}catch(e){throw console.error("Failed to get guardrail info:",e),e}},od=async(e,t,r)=>{try{let o=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to patch agent")}let a=await n.json();return console.log("Patch agent response:",a),a}catch(e){throw console.error("Failed to update guardrail:",e),e}},of=async(e,t,r)=>{try{let o=S?`${S}/guardrails/${t}`:`/guardrails/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to update guardrail")}let a=await n.json();return console.log("Update guardrail response:",a),a}catch(e){throw console.error("Failed to update guardrail:",e),e}},op=async(e,t,r,o,n)=>{try{let a=S?`${S}/guardrails/apply_guardrail`:"/guardrails/apply_guardrail",i={guardrail_name:t,text:r};o&&(i.language=o),n&&n.length>0&&(i.entities=n);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.text(),t="Failed to apply guardrail";try{let r=JSON.parse(e);r.error?.message?t=r.error.message:r.detail?t=r.detail:r.message&&(t=r.message)}catch(r){t=e||t}throw _(e),Error(t)}let s=await l.json();return console.log("Apply guardrail response:",s),s}catch(e){throw console.error("Failed to apply guardrail:",e),e}},oh=async(e,t)=>{try{let r=S?`${S}/guardrails/test_custom_code`:"/guardrails/test_custom_code",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text(),t="Failed to test custom code guardrail";try{let r=JSON.parse(e);r.error?.message?t=r.error.message:r.detail?t=r.detail:r.message&&(t=r.message)}catch(r){t=e||t}throw _(e),Error(t)}let n=await o.json();return console.log("Test custom code guardrail response:",n),n}catch(e){throw console.error("Failed to test custom code guardrail:",e),e}},om=async(e,t)=>{try{let r=S?`${S}/guardrails/validate_blocked_words_file`:"/guardrails/validate_blocked_words_file",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({file_content:t})});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to validate blocked words file")}let n=await o.json();return console.log("Validate blocked words file response:",n),n}catch(e){throw console.error("Failed to validate blocked words file:",e),e}},og=async e=>{try{let t=S?`${S}/get/sso_settings`:"/get/sso_settings";console.log("Fetching SSO configuration from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched SSO configuration:",o),o}catch(e){throw console.error("Failed to fetch SSO configuration:",e),e}},ov=async(e,t)=>{try{let r=S?`${S}/update/sso_settings`:"/update/sso_settings";console.log("Updating SSO configuration:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t="object"==typeof e?.detail?e.detail?.error||e.detail?.message:e?.detail,r="string"==typeof t&&t.length>0?t:oM(e);_(r);let n=Error(r);throw e?.detail!==void 0&&(n.detail=e.detail),n.rawError=e,n}let n=await o.json();return console.log("Updated SSO configuration:",n),n}catch(e){throw console.error("Failed to update SSO configuration:",e),e}},oy=async({accessToken:e,page:t=1,page_size:r=50,params:o={}})=>{try{let n=S?`${S}/audit`:"/audit",a=new URLSearchParams;for(let[e,n]of(a.append("page",t.toString()),a.append("page_size",r.toString()),Object.entries(o)))null!=n&&""!==n&&a.append(e,String(n));n+=`?${a.toString()}`;let i=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to fetch audit logs:",e),e}},ob=async e=>{try{let t=S?`${S}/user/available_users`:"/user/available_users",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok){if(404===r.status)return null;let e=await r.text();throw _(e),Error("Network response was not ok")}return await r.json()}catch(e){throw console.error("Failed to fetch remaining users:",e),e}},ow=async e=>{try{let t=S?`${S}/health/license`:"/health/license",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok){if(404===r.status)return null;let e=await r.text();throw _(e),Error("Network response was not ok")}return await r.json()}catch(e){throw console.error("Failed to fetch license info:",e),e}},o$=async(e,t,r)=>{try{let o=S?`${S}/config/pass_through_endpoint/${encodeURIComponent(t)}`:`/config/pass_through_endpoint/${encodeURIComponent(t)}`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return v.default.success("Pass through endpoint updated successfully"),a}catch(e){throw console.error("Failed to update pass through endpoint:",e),e}},oC=async(e,t)=>{try{let r=S?`${S}/config/callback/delete`:"/config/callback/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({callback_name:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete specific callback:",e),e}},ox=async(e,t,r)=>{try{console.log("Testing MCP tools list with config:",JSON.stringify(t));let o=S?`${S}/mcp-rest/test/tools/list`:"/mcp-rest/test/tools/list",n={"Content-Type":"application/json"};e&&(n["x-litellm-api-key"]=e),r?n.Authorization=`Bearer ${r}`:e&&(n[R]=`Bearer ${e}`);let a=await fetch(o,{method:"POST",headers:n,body:JSON.stringify(t)}),i=a.headers.get("content-type");if(!i||!i.includes("application/json")){let e=await a.text();throw console.error("Received non-JSON response:",e),Error(`Received non-JSON response (${a.status}: ${a.statusText}). Check network tab for details.`)}let l=await a.json();if((!a.ok||l.error)&&!l.error)return{tools:[],error:"request_failed",message:l.message||`MCP tools list failed: ${a.status} ${a.statusText}`};return l}catch(e){throw console.error("MCP tools list test error:",e),e}},oE=async(e,t)=>{let r=S?`${S}/v1/mcp/server/oauth/session`:"/v1/mcp/server/oauth/session",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)}),n=await o.json();if(!o.ok)throw Error(oM(n)||n?.error||"Failed to cache MCP server");return n},oS=async(e,t,r)=>{let o=k(),n=encodeURIComponent(t.trim()),a=`${o}/v1/mcp/server/oauth/${n}/register`,i=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json, text/event-stream"},body:JSON.stringify(r)}),l=await i.json();if(!i.ok)throw Error(oM(l)||l?.detail||"Failed to register OAuth client");return l},ok=({serverId:e,clientId:t,redirectUri:r,state:o,codeChallenge:n,scope:a})=>{let i=k(),l=encodeURIComponent(e.trim()),s=`${i}/v1/mcp/server/oauth/${l}/authorize`,c=new URLSearchParams({redirect_uri:r,state:o,response_type:"code",code_challenge:n,code_challenge_method:"S256"});return t&&t.trim().length>0&&c.set("client_id",t),a&&a.trim().length>0&&c.set("scope",a),`${s}?${c.toString()}`},oj=async({serverId:e,code:t,clientId:r,clientSecret:o,codeVerifier:n,redirectUri:a,accessToken:i})=>{let l=k(),s=encodeURIComponent(e.trim()),c=`${l}/v1/mcp/server/oauth/${s}/token`,u=new URLSearchParams;u.set("grant_type","authorization_code"),u.set("code",t),r&&r.trim().length>0&&u.set("client_id",r),o&&o.trim().length>0&&u.set("client_secret",o),u.set("code_verifier",n),u.set("redirect_uri",a);let d={"Content-Type":"application/x-www-form-urlencoded"};i&&(d.Authorization=`Bearer ${i}`);let f=await fetch(c,{method:"POST",headers:d,body:u.toString()}),p=await f.json();if(!f.ok)throw Error(oM(p)||p?.detail||"OAuth token exchange failed");return p},oO=async(e,t,r)=>{try{let o=`${k()}/v1/vector_stores/${t}/search`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({query:r})});if(!n.ok){let e=await n.text();return await _(e),null}return await n.json()}catch(e){throw console.error("Error testing vector store search:",e),e}},oT=async(e,t,r,o)=>{try{let n=`${k()}/v1/search/${t}`,a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({query:r,max_results:o||5})});if(!a.ok){let e=await a.text();return await _(e),null}return await a.json()}catch(e){throw console.error("Error querying search tool:",e),e}},oI=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/dau`:"/tag/dau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch DAU:",e),e}},o_=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/wau`:"/tag/wau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch WAU:",e),e}},oF=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/mau`:"/tag/mau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch MAU:",e),e}},oP=async e=>{try{let t=S?`${S}/tag/distinct`:"/tag/distinct",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch distinct tags:",e),e}},oR=async(e,t,r,o)=>{try{let n=S?`${S}/tag/summary`:"/tag/summary",a=new URLSearchParams,i=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`};a.append("start_date",i(t)),a.append("end_date",i(r)),o&&o.length>0&&o.forEach(e=>{a.append("tag_filters",e)});let l=a.toString();l&&(n+=`?${l}`);let s=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}return await s.json()}catch(e){throw console.error("Failed to fetch user agent summary:",e),e}},oN=async(e,t=1,r=50,o)=>{try{let n=S?`${S}/tag/user-agent/per-user-analytics`:"/tag/user-agent/per-user-analytics",a=new URLSearchParams;a.append("page",t.toString()),a.append("page_size",r.toString()),o&&o.length>0&&o.forEach(e=>{a.append("tag_filters",e)});let i=a.toString();i&&(n+=`?${i}`);let l=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}return await l.json()}catch(e){throw console.error("Failed to fetch per-user analytics:",e),e}},oM=e=>{let t=e?.detail,r=Array.isArray(t)?t.map(e=>e?.msg||JSON.stringify(e)).join("; "):"string"==typeof t?t:void 0;return e?.error&&(e.error.message||("string"==typeof e.error?e.error:void 0))||e?.message||r||JSON.stringify(e)},oB=async(e,t,r)=>{let n=k(),a=r?"/v3/login":"/v2/login",i=n?`${n}${a}`:a,l=JSON.stringify({username:e,password:t}),s=await fetch(i,{method:"POST",body:l,credentials:"include",headers:{"Content-Type":"application/json"}});if(!s.ok)throw Error(oM(await s.json()));let c=await s.json();if(r&&c.code){let e=n?`${n}/v3/login/exchange`:"/v3/login/exchange",t=await fetch(e,{method:"POST",body:JSON.stringify({code:c.code}),credentials:"include",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error(oM(await t.json()));let r=await t.json();return r.token&&(0,o.storeLoginToken)(r.token),r}return c.token&&(0,o.storeLoginToken)(c.token),c},oA=async(e,t)=>{let r=t||k(),o=await fetch(`${r}/v3/login/exchange`,{method:"POST",body:JSON.stringify({code:e}),headers:{"Content-Type":"application/json"}});if(!o.ok)throw Error(oM(await o.json()));let n=await o.json();return n.token&&(document.cookie=`token=${n.token}; path=/; SameSite=Lax`),n.token},oz=async()=>{let e=k(),t=e?`${e}/get/ui_settings`:"/get/ui_settings",r=await fetch(t,{method:"GET"});if(!r.ok)throw Error(oM(await r.json()));return await r.json()},oL=async(e,t)=>{let r=k(),o=r?`${r}/update/ui_settings`:"/update/ui_settings",n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok)throw Error(oM(await n.json()));return await n.json()},oD=async(e,t=!1)=>{try{let r=k(),o=r?`${r}/claude-code/plugins?enabled_only=${t}`:`/claude-code/plugins?enabled_only=${t}`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to fetch Claude Code plugins list:",e),e}},oH=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins`:"/claude-code/plugins",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to register Claude Code plugin:",e),e}},oV=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}/enable`:`/claude-code/plugins/${t}/enable`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to enable plugin "${t}":`,e),e}},oW=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}/disable`:`/claude-code/plugins/${t}/disable`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to disable plugin "${t}":`,e),e}},oU=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}`:`/claude-code/plugins/${t}`,n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to delete plugin "${t}":`,e),e}},oG=async(e,t)=>{let r=S?`${S}/compliance/eu-ai-act`:"/compliance/eu-ai-act",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok)throw Error(await o.text());return o.json()},oq=async(e,t)=>{let r=S?`${S}/compliance/gdpr`:"/compliance/gdpr",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok)throw Error(await o.text());return o.json()},oJ=async e=>{let t=S?`${S}/v1/tool/policy/options`:"/v1/tool/policy/options",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(await r.text());return r.json()},oK=async e=>{let t=S?`${S}/v1/tool/list`:"/v1/tool/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(await r.text());return(await r.json()).tools??[]},oX=async(e,t,r)=>{let o=encodeURIComponent(t),n=S?`${S}/v1/tool/${o}/logs`:`/v1/tool/${o}/logs`,a=new URLSearchParams;null!=r.page&&a.append("page",String(r.page)),null!=r.pageSize&&a.append("page_size",String(r.pageSize)),r.startDate&&a.append("start_date",r.startDate),r.endDate&&a.append("end_date",r.endDate);let i=a.toString()?`${n}?${a.toString()}`:n,l=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok)throw Error(oM(await l.json().catch(()=>({}))));return l.json()},oQ=async(e,t)=>{let r=encodeURIComponent(t),o=S?`${S}/v1/tool/${r}/detail`:`/v1/tool/${r}/detail`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok)throw Error(await n.text());return n.json()},oY=async(e,t,r,o)=>{let n=S?`${S}/v1/tool/policy`:"/v1/tool/policy",a={tool_name:t};null!=r.input_policy&&(a.input_policy=r.input_policy),null!=r.output_policy&&(a.output_policy=r.output_policy),o?.team_id!=null&&(a.team_id=o.team_id||void 0),o?.key_hash!=null&&(a.key_hash=o.key_hash||void 0),o?.key_alias!=null&&(a.key_alias=o.key_alias||void 0);let i=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(a)});if(!i.ok)throw Error(await i.text());return i.json()},oZ=async(e,t,r)=>{let o=encodeURIComponent(t),n=new URLSearchParams;null!=r.team_id&&""!==r.team_id&&n.set("team_id",r.team_id),null!=r.key_hash&&""!==r.key_hash&&n.set("key_hash",r.key_hash);let a=n.toString(),i=S?`${S}/v1/tool/${o}/overrides${a?`?${a}`:""}`:`/v1/tool/${o}/overrides${a?`?${a}`:""}`,l=await fetch(i,{method:"DELETE",headers:{[R]:`Bearer ${e}`}});if(!l.ok)throw Error(await l.text());return l.json()},o0=async(e,t,r)=>{let o=S?`${S}/v1/mcp/server/${t}/oauth-user-credential`:`/v1/mcp/server/${t}/oauth-user-credential`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json().catch(()=>({})),t=e?.detail;throw Error((Array.isArray(t)?t.map(e=>e&&"object"==typeof e?e.msg??JSON.stringify(e):String(e)).join("; "):"string"==typeof t?t:t&&"string"==typeof t.error?t.error:void 0)||"Failed to store OAuth credential")}return n.json()},o1=async(e,t)=>{let r=S?`${S}/v1/mcp/server/${t}/oauth-user-credential`:`/v1/mcp/server/${t}/oauth-user-credential`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json().catch(()=>({})),t=e?.detail;throw Error((Array.isArray(t)?t.map(e=>e&&"object"==typeof e?e.msg??JSON.stringify(e):String(e)).join("; "):"string"==typeof t?t:t&&"string"==typeof t.error?t.error:void 0)||"Failed to revoke OAuth credential")}return o.json()},o2=async(e,t)=>{let r=S?`${S}/v1/mcp/server/${t}/oauth-user-credential/status`:`/v1/mcp/server/${t}/oauth-user-credential/status`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`}});return o.ok?o.json():{server_id:t,has_credential:!1,is_expired:!1}},o4=async e=>{let t=S?`${S}/v1/mcp/user-credentials`:"/v1/mcp/user-credentials",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});return r.ok?r.json():[]},o6=e=>e.split("/").map(encodeURIComponent).join("/"),o3=async(e,t={})=>{let r=S?`${S}/v1/memory`:"/v1/memory",o=new URLSearchParams;t.keyPrefix?o.append("key_prefix",t.keyPrefix):t.key&&o.append("key",t.key),null!=t.page&&o.append("page",String(t.page)),null!=t.pageSize&&o.append("page_size",String(t.pageSize));let n=o.toString()?`${r}?${o.toString()}`:r,a=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok)throw Error(await a.text());return a.json()},o7=async(e,t)=>{let r=S?`${S}/v1/memory`:"/v1/memory",o={key:t.key,value:t.value};void 0!==t.metadata&&(o.metadata=t.metadata);let n=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(o)});if(!n.ok)throw Error(await n.text());return n.json()},o5=async(e,t,r)=>{let o=o6(t),n=S?`${S}/v1/memory/${o}`:`/v1/memory/${o}`,a=await fetch(n,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!a.ok)throw Error(await a.text());return a.json()},o9=async(e,t)=>{let r=o6(t),o=S?`${S}/v1/memory/${r}`:`/v1/memory/${r}`,n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok)throw Error(await n.text())}},266027,869230,469637,e=>{"use strict";let t;var r=e.i(175555),o=e.i(273911),n=e.i(540143),a=e.i(286491),i=e.i(915823),l=e.i(793803),s=e.i(619273),c=e.i(180166),u=class extends i.Subscribable{constructor(e,t){super(),this.options=t,this.#e=e,this.#t=null,this.#r=(0,l.pendingThenable)(),this.bindMethods(),this.setOptions(t)}#e;#o=void 0;#n=void 0;#a=void 0;#i;#l;#r;#t;#s;#c;#u;#d;#f;#p;#h=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#o.addObserver(this),d(this.#o,this.options)?this.#m():this.updateResult(),this.#g())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return f(this.#o,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return f(this.#o,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#v(),this.#y(),this.#o.removeObserver(this)}setOptions(e){let t=this.options,r=this.#o;if(this.options=this.#e.defaultQueryOptions(e),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,s.resolveQueryBoolean)(this.options.enabled,this.#o))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#b(),this.#o.setOptions(this.options),t._defaulted&&!(0,s.shallowEqualObjects)(this.options,t)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#o,observer:this});let o=this.hasListeners();o&&p(this.#o,r,this.options,t)&&this.#m(),this.updateResult(),o&&(this.#o!==r||(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)!==(0,s.resolveQueryBoolean)(t.enabled,this.#o)||(0,s.resolveStaleTime)(this.options.staleTime,this.#o)!==(0,s.resolveStaleTime)(t.staleTime,this.#o))&&this.#w();let n=this.#$();o&&(this.#o!==r||(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)!==(0,s.resolveQueryBoolean)(t.enabled,this.#o)||n!==this.#p)&&this.#C(n)}getOptimisticResult(e){var t,r;let o=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(o,e);return t=this,r=n,(0,s.shallowEqualObjects)(t.getCurrentResult(),r)||(this.#a=n,this.#l=this.options,this.#i=this.#o.state),n}getCurrentResult(){return this.#a}trackResult(e,t){return new Proxy(e,{get:(e,r)=>(this.trackProp(r),t?.(r),"promise"===r&&(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#r.status||this.#r.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(e,r))})}trackProp(e){this.#h.add(e)}getCurrentQuery(){return this.#o}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),r=this.#e.getQueryCache().build(this.#e,t);return r.fetch().then(()=>this.createResult(r,t))}fetch(e){return this.#m({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#a))}#m(e){this.#b();let t=this.#o.fetch(this.options,e);return e?.throwOnError||(t=t.catch(s.noop)),t}#w(){this.#v();let e=(0,s.resolveStaleTime)(this.options.staleTime,this.#o);if(o.environmentManager.isServer()||this.#a.isStale||!(0,s.isValidTimeout)(e))return;let t=(0,s.timeUntilStale)(this.#a.dataUpdatedAt,e);this.#d=c.timeoutManager.setTimeout(()=>{this.#a.isStale||this.updateResult()},t+1)}#$(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#o):this.options.refetchInterval)??!1}#C(e){this.#y(),this.#p=e,!o.environmentManager.isServer()&&!1!==(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)&&(0,s.isValidTimeout)(this.#p)&&0!==this.#p&&(this.#f=c.timeoutManager.setInterval(()=>{(this.options.refetchIntervalInBackground||r.focusManager.isFocused())&&this.#m()},this.#p))}#g(){this.#w(),this.#C(this.#$())}#v(){void 0!==this.#d&&(c.timeoutManager.clearTimeout(this.#d),this.#d=void 0)}#y(){void 0!==this.#f&&(c.timeoutManager.clearInterval(this.#f),this.#f=void 0)}createResult(e,t){let r,o=this.#o,n=this.options,i=this.#a,c=this.#i,u=this.#l,f=e!==o?e.state:this.#n,{state:m}=e,g={...m},v=!1;if(t._optimisticResults){let r=this.hasListeners(),i=!r&&d(e,t),l=r&&p(e,o,t,n);(i||l)&&(g={...g,...(0,a.fetchState)(m.data,e.options)}),"isRestoring"===t._optimisticResults&&(g.fetchStatus="idle")}let{error:y,errorUpdatedAt:b,status:w}=g;r=g.data;let $=!1;if(void 0!==t.placeholderData&&void 0===r&&"pending"===w){let e;i?.isPlaceholderData&&t.placeholderData===u?.placeholderData?(e=i.data,$=!0):e="function"==typeof t.placeholderData?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,void 0!==e&&(w="success",r=(0,s.replaceData)(i?.data,e,t),v=!0)}if(t.select&&void 0!==r&&!$)if(i&&r===c?.data&&t.select===this.#s)r=this.#c;else try{this.#s=t.select,r=t.select(r),r=(0,s.replaceData)(i?.data,r,t),this.#c=r,this.#t=null}catch(e){this.#t=e}this.#t&&(y=this.#t,r=this.#c,b=Date.now(),w="error");let C="fetching"===g.fetchStatus,x="pending"===w,E="error"===w,S=x&&C,k=void 0!==r,j={status:w,fetchStatus:g.fetchStatus,isPending:x,isSuccess:"success"===w,isError:E,isInitialLoading:S,isLoading:S,data:r,dataUpdatedAt:g.dataUpdatedAt,error:y,errorUpdatedAt:b,failureCount:g.fetchFailureCount,failureReason:g.fetchFailureReason,errorUpdateCount:g.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:g.dataUpdateCount>f.dataUpdateCount||g.errorUpdateCount>f.errorUpdateCount,isFetching:C,isRefetching:C&&!x,isLoadingError:E&&!k,isPaused:"paused"===g.fetchStatus,isPlaceholderData:v,isRefetchError:E&&k,isStale:h(e,t),refetch:this.refetch,promise:this.#r,isEnabled:!1!==(0,s.resolveQueryBoolean)(t.enabled,e)};if(this.options.experimental_prefetchInRender){let t=void 0!==j.data,r="error"===j.status&&!t,n=e=>{r?e.reject(j.error):t&&e.resolve(j.data)},a=()=>{n(this.#r=j.promise=(0,l.pendingThenable)())},i=this.#r;switch(i.status){case"pending":e.queryHash===o.queryHash&&n(i);break;case"fulfilled":(r||j.data!==i.value)&&a();break;case"rejected":r&&j.error===i.reason||a()}}return j}updateResult(){let e=this.#a,t=this.createResult(this.#o,this.options);if(this.#i=this.#o.state,this.#l=this.options,void 0!==this.#i.data&&(this.#u=this.#o),(0,s.shallowEqualObjects)(t,e))return;this.#a=t;let r=()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,r="function"==typeof t?t():t;if("all"===r||!r&&!this.#h.size)return!0;let o=new Set(r??this.#h);return this.options.throwOnError&&o.add("error"),Object.keys(this.#a).some(t=>this.#a[t]!==e[t]&&o.has(t))};this.#x({listeners:r()})}#b(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#o)return;let t=this.#o;this.#o=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#g()}#x(e){n.notifyManager.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#a)}),this.#e.getQueryCache().notify({query:this.#o,type:"observerResultsUpdated"})})}};function d(e,t){return!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&void 0===e.state.data&&("error"!==e.state.status||!1!==(0,s.resolveQueryBoolean)(t.retryOnMount,e))||void 0!==e.state.data&&f(e,t,t.refetchOnMount)}function f(e,t,r){if(!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&"static"!==(0,s.resolveStaleTime)(t.staleTime,e)){let o="function"==typeof r?r(e):r;return"always"===o||!1!==o&&h(e,t)}return!1}function p(e,t,r,o){return(e!==t||!1===(0,s.resolveQueryBoolean)(o.enabled,e))&&(!r.suspense||"error"!==e.state.status)&&h(e,r)}function h(e,t){return!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&e.isStaleByTime((0,s.resolveStaleTime)(t.staleTime,e))}e.s(["QueryObserver",0,u],869230),e.i(247167);var m=e.i(271645),g=e.i(912598);e.i(843476);var v=m.createContext((t=!1,{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t})),y=m.createContext(!1);y.Provider;var b=(e,t,r)=>t.fetchOptimistic(e).catch(()=>{r.clearReset()});function w(e,t,r){let a,i=m.useContext(y),l=m.useContext(v),c=(0,g.useQueryClient)(r),u=c.defaultQueryOptions(e);c.getDefaultOptions().queries?._experimental_beforeQuery?.(u);let d=c.getQueryCache().get(u.queryHash);if(u._optimisticResults=i?"isRestoring":"optimistic",u.suspense){let e=e=>"static"===e?e:Math.max(e??1e3,1e3),t=u.staleTime;u.staleTime="function"==typeof t?(...r)=>e(t(...r)):e(t),"number"==typeof u.gcTime&&(u.gcTime=Math.max(u.gcTime,1e3))}a=d?.state.error&&"function"==typeof u.throwOnError?(0,s.shouldThrowError)(u.throwOnError,[d.state.error,d]):u.throwOnError,(u.suspense||u.experimental_prefetchInRender||a)&&!l.isReset()&&(u.retryOnMount=!1),m.useEffect(()=>{l.clearReset()},[l]);let f=!c.getQueryCache().get(u.queryHash),[p]=m.useState(()=>new t(c,u)),h=p.getOptimisticResult(u),w=!i&&!1!==e.subscribed;if(m.useSyncExternalStore(m.useCallback(e=>{let t=w?p.subscribe(n.notifyManager.batchCalls(e)):s.noop;return p.updateResult(),t},[p,w]),()=>p.getCurrentResult(),()=>p.getCurrentResult()),m.useEffect(()=>{p.setOptions(u)},[u,p]),u?.suspense&&h.isPending)throw b(u,p,l);if((({result:e,errorResetBoundary:t,throwOnError:r,query:o,suspense:n})=>e.isError&&!t.isReset()&&!e.isFetching&&o&&(n&&void 0===e.data||(0,s.shouldThrowError)(r,[e.error,o])))({result:h,errorResetBoundary:l,throwOnError:u.throwOnError,query:d,suspense:u.suspense}))throw h.error;if(c.getDefaultOptions().queries?._experimental_afterQuery?.(u,h),u.experimental_prefetchInRender&&!o.environmentManager.isServer()&&h.isLoading&&h.isFetching&&!i){let e=f?b(u,p,l):d?.promise;e?.catch(s.noop).finally(()=>{p.updateResult()})}return u.notifyOnChangeProps?h:p.trackResult(h)}e.s(["useBaseQuery",0,w],469637),e.s(["useQuery",0,function(e,t){return w(e,u,t)}],266027)},243652,e=>{"use strict";e.s(["createQueryKeys",0,function(e){let t=[e];return{all:t,lists:()=>[...t,"list"],list:e=>[...t,"list",{params:e}],details:()=>[...t,"detail"],detail:e=>[...t,"detail",e]}}])},612256,e=>{"use strict";var t=e.i(764205),r=e.i(266027);let o=(0,e.i(243652).createQueryKeys)("uiConfig");e.s(["useUIConfig",0,()=>(0,r.useQuery)({queryKey:o.list({}),queryFn:async()=>await (0,t.getUiConfig)(),staleTime:864e5,gcTime:864e5})])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/07mja78mwknmt.js b/litellm/proxy/_experimental/out/_next/static/chunks/07mja78mwknmt.js new file mode 100644 index 00000000000..f698f082a41 --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/07mja78mwknmt.js @@ -0,0 +1,3 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,93648,245767,e=>{"use strict";var t=e.i(843476),s=e.i(271645),l=e.i(560445),a=e.i(207082),r=e.i(135214),n=e.i(500330),i=e.i(871943),o=e.i(360820),d=e.i(94629),c=e.i(152990),x=e.i(682830),m=e.i(269200),u=e.i(942232),p=e.i(977572),h=e.i(427612),g=e.i(64848),f=e.i(496020),y=e.i(592968);function j({keys:e,totalCount:l,isLoading:a,isFetching:r,pageIndex:b,pageSize:v,onPageChange:_}){let[N,w]=(0,s.useState)([{id:"deleted_at",desc:!0}]),[S,k]=(0,s.useState)({pageIndex:b,pageSize:v});s.default.useEffect(()=>{k({pageIndex:b,pageSize:v})},[b,v]);let C=[{id:"token",accessorKey:"token",header:"Key ID",size:150,maxSize:250,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s,children:(0,t.jsx)("span",{className:"font-mono text-blue-500 text-xs truncate block max-w-[250px]",children:s||"-"})})}},{id:"key_alias",accessorKey:"key_alias",header:"Key Alias",size:150,maxSize:200,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s,children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block max-w-[200px]",children:s??"-"})})}},{id:"team_alias",accessorKey:"team_alias",header:"Team Alias",size:120,maxSize:180,cell:e=>{let s=e.getValue();return(0,t.jsx)("span",{className:"truncate block max-w-[180px]",children:s||"-"})}},{id:"spend",accessorKey:"spend",header:"Spend (USD)",size:100,maxSize:140,cell:e=>(0,t.jsx)("span",{className:"block max-w-[140px]",children:(0,n.formatNumberWithCommas)(e.getValue(),4)})},{id:"max_budget",accessorKey:"max_budget",header:"Budget (USD)",size:110,maxSize:150,cell:e=>{let s=e.getValue();return(0,t.jsx)("span",{className:"block max-w-[150px]",children:null===s?"Unlimited":`$${(0,n.formatNumberWithCommas)(s)}`})}},{id:"user_email",accessorKey:"user_email",header:"User Email",size:160,maxSize:250,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s,children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block max-w-[250px]",children:s??"-"})})}},{id:"user_id",accessorKey:"user_id",header:"User ID",size:120,maxSize:200,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s||void 0,children:(0,t.jsx)("span",{className:"truncate block max-w-[200px]",children:s||"-"})})}},{id:"created_at",accessorKey:"created_at",header:"Created At",size:120,maxSize:140,cell:e=>{let s=e.getValue();return(0,t.jsx)("span",{className:"block max-w-[140px]",children:s?new Date(s).toLocaleDateString():"-"})}},{id:"created_by",accessorKey:"created_by",header:"Created By",size:120,maxSize:180,cell:e=>{let s=e.row.original.created_by;return(0,t.jsx)(y.Tooltip,{title:s||void 0,children:(0,t.jsx)("span",{className:"truncate block max-w-[180px]",children:s||"-"})})}},{id:"deleted_at",accessorKey:"deleted_at",header:"Deleted At",size:120,maxSize:140,cell:e=>{let s=e.row.original.deleted_at;return(0,t.jsx)("span",{className:"block max-w-[140px]",children:s?new Date(s).toLocaleDateString():"-"})}},{id:"deleted_by",accessorKey:"deleted_by",header:"Deleted By",size:120,maxSize:180,cell:e=>{let s=e.row.original.deleted_by;return(0,t.jsx)(y.Tooltip,{title:s||void 0,children:(0,t.jsx)("span",{className:"truncate block max-w-[180px]",children:s||"-"})})}}],T=(0,c.useReactTable)({data:e,columns:C,columnResizeMode:"onChange",columnResizeDirection:"ltr",state:{sorting:N,pagination:S},onSortingChange:w,onPaginationChange:e=>{let t="function"==typeof e?e(S):e;k(t),_(t.pageIndex)},getCoreRowModel:(0,x.getCoreRowModel)(),getSortedRowModel:(0,x.getSortedRowModel)(),getPaginationRowModel:(0,x.getPaginationRowModel)(),enableSorting:!0,manualSorting:!1,manualPagination:!0,pageCount:Math.ceil(l/v)}),{pageIndex:L}=T.getState().pagination,M=L*v+1,D=Math.min((L+1)*v,l),E=`${M} - ${D}`;return(0,t.jsx)("div",{className:"w-full h-full overflow-hidden",children:(0,t.jsxs)("div",{className:"border-b py-4 flex-1 overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between w-full mb-4",children:[a||r?(0,t.jsx)("span",{className:"inline-flex text-sm text-gray-700",children:"Loading..."}):(0,t.jsxs)("span",{className:"inline-flex text-sm text-gray-700",children:["Showing ",E," of ",l," results"]}),(0,t.jsxs)("div",{className:"inline-flex items-center gap-2",children:[a||r?(0,t.jsx)("span",{className:"text-sm text-gray-700",children:"Loading..."}):(0,t.jsxs)("span",{className:"text-sm text-gray-700",children:["Page ",L+1," of ",T.getPageCount()]}),(0,t.jsx)("button",{onClick:()=>T.previousPage(),disabled:a||r||!T.getCanPreviousPage(),className:"px-3 py-1 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Previous"}),(0,t.jsx)("button",{onClick:()=>T.nextPage(),disabled:a||r||!T.getCanNextPage(),className:"px-3 py-1 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Next"})]})]}),(0,t.jsx)("div",{className:"h-[75vh] overflow-auto",children:(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(m.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",style:{width:T.getCenterTotalSize()},children:[(0,t.jsx)(h.TableHead,{children:T.getHeaderGroups().map(e=>(0,t.jsx)(f.TableRow,{children:e.headers.map(e=>(0,t.jsx)(g.TableHeaderCell,{"data-header-id":e.id,className:"py-1 h-8 relative hover:bg-gray-50",style:{width:e.getSize(),maxWidth:e.column.columnDef.maxSize,position:"relative"},onMouseEnter:()=>{let t=document.querySelector(`[data-header-id="${e.id}"] .resizer`);t&&(t.style.opacity="0.5")},onMouseLeave:()=>{let t=document.querySelector(`[data-header-id="${e.id}"] .resizer`);t&&!e.column.getIsResizing()&&(t.style.opacity="0")},onClick:e.column.getToggleSortingHandler(),children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,c.flexRender)(e.column.columnDef.header,e.getContext())}),(0,t.jsx)("div",{className:"w-4",children:e.column.getIsSorted()?({asc:(0,t.jsx)(o.ChevronUpIcon,{className:"h-4 w-4 text-blue-500"}),desc:(0,t.jsx)(i.ChevronDownIcon,{className:"h-4 w-4 text-blue-500"})})[e.column.getIsSorted()]:(0,t.jsx)(d.SwitchVerticalIcon,{className:"h-4 w-4 text-gray-400"})}),(0,t.jsx)("div",{onDoubleClick:()=>e.column.resetSize(),onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:`resizer ${T.options.columnResizeDirection} ${e.column.getIsResizing()?"isResizing":""}`,style:{position:"absolute",right:0,top:0,height:"100%",width:"5px",background:e.column.getIsResizing()?"#3b82f6":"transparent",cursor:"col-resize",userSelect:"none",touchAction:"none",opacity:+!!e.column.getIsResizing()}})]})},e.id))},e.id))}),(0,t.jsx)(u.TableBody,{children:a||r?(0,t.jsx)(f.TableRow,{children:(0,t.jsx)(p.TableCell,{colSpan:C.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"🚅 Loading keys..."})})})}):e.length>0?T.getRowModel().rows.map(e=>(0,t.jsx)(f.TableRow,{className:"h-8",children:e.getVisibleCells().map(e=>(0,t.jsx)(p.TableCell,{style:{width:e.column.getSize(),maxWidth:e.column.columnDef.maxSize,whiteSpace:"pre-wrap",overflow:"hidden"},className:"py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap",children:(0,c.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(f.TableRow,{children:(0,t.jsx)(p.TableCell,{colSpan:C.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No deleted keys found"})})})})})]})})})})]})})}e.s(["default",0,function(){let{premiumUser:e}=(0,r.default)(),[n,i]=(0,s.useState)(0),[o]=(0,s.useState)(50),{data:d,isPending:c,isFetching:x}=(0,a.useDeletedKeys)(n+1,o);return(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[!e&&(0,t.jsx)(l.Alert,{type:"info",banner:!0,showIcon:!0,message:"Coming soon to Enterprise",description:"Deleted key auditing is graduating from beta into our Enterprise audit & compliance suite."}),(0,t.jsx)(j,{keys:d?.keys||[],totalCount:d?.total_count||0,isLoading:c,isFetching:x,pageIndex:n,pageSize:o,onPageChange:i})]})}],93648);var b=e.i(785242),v=e.i(389083),_=e.i(599724),N=e.i(355619);function w({teams:e,isLoading:l,isFetching:a}){let[r,j]=(0,s.useState)([{id:"deleted_at",desc:!0}]),b=[{id:"team_alias",accessorKey:"team_alias",header:"Team Name",size:150,maxSize:200,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s||void 0,children:(0,t.jsx)("span",{className:"truncate block max-w-[200px]",children:s||"-"})})}},{id:"team_id",accessorKey:"team_id",header:"Team ID",size:150,maxSize:250,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s,children:(0,t.jsx)("span",{className:"font-mono text-blue-500 text-xs truncate block max-w-[250px]",children:s||"-"})})}},{id:"created_at",accessorKey:"created_at",header:"Created",size:120,maxSize:140,cell:e=>{let s=e.getValue();return(0,t.jsx)("span",{className:"block max-w-[140px]",children:s?new Date(s).toLocaleDateString():"-"})}},{id:"spend",accessorKey:"spend",header:"Spend (USD)",size:100,maxSize:140,cell:e=>{let s=e.row.original.spend;return(0,t.jsx)("span",{className:"block max-w-[140px]",children:void 0!==s?(0,n.formatNumberWithCommas)(s,4):"-"})}},{id:"max_budget",accessorKey:"max_budget",header:"Budget (USD)",size:110,maxSize:150,cell:e=>{let s=e.getValue();return(0,t.jsx)("span",{className:"block max-w-[150px]",children:null==s?"No limit":`$${(0,n.formatNumberWithCommas)(s)}`})}},{id:"models",accessorKey:"models",header:"Models",size:200,maxSize:300,cell:e=>{let s=e.getValue();return Array.isArray(s)&&0!==s.length?(0,t.jsxs)("div",{className:"flex flex-wrap gap-1 max-w-[300px]",children:[s.slice(0,3).map((e,s)=>"all-proxy-models"===e?(0,t.jsx)(v.Badge,{size:"xs",color:"red",children:(0,t.jsx)(_.Text,{children:"All Proxy Models"})},s):(0,t.jsx)(v.Badge,{size:"xs",color:"blue",children:(0,t.jsx)(_.Text,{children:e.length>30?`${(0,N.getModelDisplayName)(e).slice(0,30)}...`:(0,N.getModelDisplayName)(e)})},s)),s.length>3&&(0,t.jsx)(v.Badge,{size:"xs",color:"gray",children:(0,t.jsxs)(_.Text,{children:["+",s.length-3," ",s.length-3==1?"more model":"more models"]})})]}):(0,t.jsx)(v.Badge,{size:"xs",color:"red",children:(0,t.jsx)(_.Text,{children:"All Proxy Models"})})}},{id:"organization_id",accessorKey:"organization_id",header:"Organization",size:150,maxSize:200,cell:e=>{let s=e.getValue();return(0,t.jsx)(y.Tooltip,{title:s||void 0,children:(0,t.jsx)("span",{className:"truncate block max-w-[200px]",children:s||"-"})})}},{id:"deleted_at",accessorKey:"deleted_at",header:"Deleted At",size:120,maxSize:140,cell:e=>{let s=e.row.original.deleted_at;return(0,t.jsx)("span",{className:"block max-w-[140px]",children:s?new Date(s).toLocaleDateString():"-"})}},{id:"deleted_by",accessorKey:"deleted_by",header:"Deleted By",size:120,maxSize:180,cell:e=>{let s=e.row.original.deleted_by;return(0,t.jsx)(y.Tooltip,{title:s||void 0,children:(0,t.jsx)("span",{className:"truncate block max-w-[180px]",children:s||"-"})})}}],S=(0,c.useReactTable)({data:e,columns:b,columnResizeMode:"onChange",columnResizeDirection:"ltr",state:{sorting:r},onSortingChange:j,getCoreRowModel:(0,x.getCoreRowModel)(),getSortedRowModel:(0,x.getSortedRowModel)(),enableSorting:!0,manualSorting:!1});return(0,t.jsx)("div",{className:"w-full h-full overflow-hidden",children:(0,t.jsxs)("div",{className:"border-b py-4 flex-1 overflow-hidden",children:[(0,t.jsx)("div",{className:"flex items-center justify-between w-full mb-4",children:l||a?(0,t.jsx)("span",{className:"inline-flex text-sm text-gray-700",children:"Loading..."}):(0,t.jsxs)("span",{className:"inline-flex text-sm text-gray-700",children:["Showing ",e.length," ",1===e.length?"team":"teams"]})}),(0,t.jsx)("div",{className:"h-[75vh] overflow-auto",children:(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(m.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",style:{width:S.getCenterTotalSize()},children:[(0,t.jsx)(h.TableHead,{children:S.getHeaderGroups().map(e=>(0,t.jsx)(f.TableRow,{children:e.headers.map(e=>(0,t.jsx)(g.TableHeaderCell,{"data-header-id":e.id,className:"py-1 h-8 relative hover:bg-gray-50",style:{width:e.getSize(),maxWidth:e.column.columnDef.maxSize,position:"relative"},onMouseEnter:()=>{let t=document.querySelector(`[data-header-id="${e.id}"] .resizer`);t&&(t.style.opacity="0.5")},onMouseLeave:()=>{let t=document.querySelector(`[data-header-id="${e.id}"] .resizer`);t&&!e.column.getIsResizing()&&(t.style.opacity="0")},onClick:e.column.getToggleSortingHandler(),children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,c.flexRender)(e.column.columnDef.header,e.getContext())}),(0,t.jsx)("div",{className:"w-4",children:e.column.getIsSorted()?({asc:(0,t.jsx)(o.ChevronUpIcon,{className:"h-4 w-4 text-blue-500"}),desc:(0,t.jsx)(i.ChevronDownIcon,{className:"h-4 w-4 text-blue-500"})})[e.column.getIsSorted()]:(0,t.jsx)(d.SwitchVerticalIcon,{className:"h-4 w-4 text-gray-400"})}),(0,t.jsx)("div",{onDoubleClick:()=>e.column.resetSize(),onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:`resizer ${S.options.columnResizeDirection} ${e.column.getIsResizing()?"isResizing":""}`,style:{position:"absolute",right:0,top:0,height:"100%",width:"5px",background:e.column.getIsResizing()?"#3b82f6":"transparent",cursor:"col-resize",userSelect:"none",touchAction:"none",opacity:+!!e.column.getIsResizing()}})]})},e.id))},e.id))}),(0,t.jsx)(u.TableBody,{children:l||a?(0,t.jsx)(f.TableRow,{children:(0,t.jsx)(p.TableCell,{colSpan:b.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"🚅 Loading teams..."})})})}):e.length>0?S.getRowModel().rows.map(e=>(0,t.jsx)(f.TableRow,{className:"h-8",children:e.getVisibleCells().map(e=>(0,t.jsx)(p.TableCell,{style:{width:e.column.getSize(),maxWidth:e.column.columnDef.maxSize,whiteSpace:"pre-wrap",overflow:"hidden"},className:"py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap",children:(0,c.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(f.TableRow,{children:(0,t.jsx)(p.TableCell,{colSpan:b.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No deleted teams found"})})})})})]})})})})]})})}e.s(["default",0,function(){let{premiumUser:e}=(0,r.default)(),{data:s,isPending:a,isFetching:n}=(0,b.useDeletedTeams)(1,100);return(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[!e&&(0,t.jsx)(l.Alert,{type:"info",banner:!0,showIcon:!0,message:"Coming soon to Enterprise",description:"Deleted team auditing is graduating from beta into our Enterprise audit & compliance suite."}),(0,t.jsx)(w,{teams:s||[],isLoading:a,isFetching:n})]})}],245767)},95684,e=>{"use strict";var t=e.i(165370);e.s(["Pagination",()=>t.default])},942161,e=>{"use strict";var t=e.i(843476),s=e.i(271645),l=e.i(266027),a=e.i(619273),r=e.i(291542),n=e.i(262218),i=e.i(311451),o=e.i(199133),d=e.i(464571),c=e.i(95684),x=e.i(482725),m=e.i(91979),u=e.i(56456),p=e.i(166540),h=e.i(764205),g=e.i(608856),f=e.i(898586),y=e.i(149192),j=e.i(166406),b=e.i(492030),v=e.i(304911);let{Text:_}=f.Typography,N={LiteLLM_VerificationToken:"Keys",LiteLLM_TeamTable:"Teams",LiteLLM_UserTable:"Users",LiteLLM_OrganizationTable:"Organizations",LiteLLM_ProxyModelTable:"Models"},w={created:"green",updated:"blue",deleted:"red",rotated:"orange"};function S({label:e,value:l}){let[a,r]=(0,s.useState)(!1),n=(0,s.useCallback)(async()=>{try{let e=JSON.stringify(l,null,2);if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(e);else{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select(),document.execCommand("copy"),document.body.removeChild(t)}r(!0),setTimeout(()=>r(!1),2e3)}catch(e){console.error("Copy failed:",e)}},[l]);return(0,t.jsxs)("div",{className:"bg-white rounded border overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center px-3 py-2 border-b bg-gray-50",children:[(0,t.jsx)("span",{className:"text-xs font-semibold text-gray-600",children:e}),(0,t.jsx)("button",{onClick:n,className:"p-1 hover:bg-gray-200 rounded text-gray-500 hover:text-gray-700 transition-colors",title:"Copy JSON",children:a?(0,t.jsx)(b.CheckOutlined,{className:"text-green-600"}):(0,t.jsx)(j.CopyOutlined,{})})]}),(0,t.jsx)("pre",{className:"p-3 bg-white text-xs font-mono overflow-auto max-h-96 whitespace-pre-wrap break-all m-0",children:JSON.stringify(l,null,2)})]})}function k({label:e,value:s}){return(0,t.jsxs)("div",{className:"flex items-start gap-2 py-1.5",children:[(0,t.jsx)("span",{className:"text-xs text-gray-500 w-36 shrink-0",children:e}),(0,t.jsx)("span",{className:"text-xs text-gray-900 break-all",children:s})]})}function C({log:e}){let{action:s,table_name:l,before_value:a,updated_values:r}=e,n="LiteLLM_VerificationToken"===l,i="updated"===s||"rotated"===s,o=a,d=r;if(i&&a&&r){let e={},t={};new Set([...Object.keys(a),...Object.keys(r)]).forEach(s=>{JSON.stringify(a[s])!==JSON.stringify(r[s])&&(s in a&&(e[s]=a[s]),s in r&&(t[s]=r[s]))}),Object.keys(a).forEach(s=>{s in r||s in e||(e[s]=a[s],t[s]=void 0)}),Object.keys(r).forEach(s=>{s in a||s in t||(t[s]=r[s],e[s]=void 0)}),o=Object.keys(e).length>0?e:{note:"No differing fields detected"},d=Object.keys(t).length>0?t:{note:"No differing fields detected"}}let c=(e,s)=>{if(!s||0===Object.keys(s).length)return(0,t.jsxs)("div",{className:"bg-white rounded border overflow-hidden",children:[(0,t.jsx)("div",{className:"flex items-center px-3 py-2 border-b bg-gray-50",children:(0,t.jsx)("span",{className:"text-xs font-semibold text-gray-600",children:e})}),(0,t.jsx)("p",{className:"px-3 py-3 text-xs text-gray-400 italic m-0",children:"N/A"})]});if(n&&i){let l=["token","spend","max_budget"];if(Object.keys(s).every(e=>l.includes(e))&&!("note"in s))return(0,t.jsxs)("div",{className:"bg-white rounded border overflow-hidden",children:[(0,t.jsx)("div",{className:"flex items-center px-3 py-2 border-b bg-gray-50",children:(0,t.jsx)("span",{className:"text-xs font-semibold text-gray-600",children:e})}),(0,t.jsxs)("div",{className:"px-3 py-3 space-y-1 text-xs",children:[void 0!==s.token&&(0,t.jsxs)("p",{children:[(0,t.jsx)("span",{className:"text-gray-500",children:"Token:"})," ",s.token??"N/A"]}),void 0!==s.spend&&(0,t.jsxs)("p",{children:[(0,t.jsx)("span",{className:"text-gray-500",children:"Spend:"})," $",Number(s.spend).toFixed(6)]}),void 0!==s.max_budget&&(0,t.jsxs)("p",{children:[(0,t.jsx)("span",{className:"text-gray-500",children:"Max Budget:"})," $",Number(s.max_budget).toFixed(6)]})]})]})}return(0,t.jsx)(S,{label:e,value:s})};return(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 mt-4",children:[c("Before",o),c("After",d)]})}function T({open:e,onClose:s,log:l}){if(!l)return null;let a=N[l.table_name]??l.table_name,r=w[l.action]??"default";return(0,t.jsxs)(g.Drawer,{placement:"right",width:"60%",open:e,onClose:s,closable:!1,mask:!0,maskClosable:!0,styles:{body:{padding:0,display:"flex",flexDirection:"column"},header:{display:"none"}},children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-6 py-4 border-b bg-white shrink-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(n.Tag,{color:r,className:"capitalize m-0",children:l.action}),(0,t.jsx)("span",{className:"text-sm text-gray-500",children:p.default.utc(l.updated_at).local().format("MMM D, YYYY HH:mm:ss")})]}),(0,t.jsx)("button",{onClick:s,className:"w-8 h-8 flex items-center justify-center rounded hover:bg-gray-100 text-gray-500","aria-label":"Close",children:(0,t.jsx)(y.CloseOutlined,{})})]}),(0,t.jsxs)("div",{className:"px-6 py-5",children:[(0,t.jsxs)("div",{className:"bg-gray-50 border rounded-lg p-4 mb-5",children:[(0,t.jsx)("p",{className:"text-xs font-semibold text-gray-700 mb-2 uppercase tracking-wide",children:"Details"}),(0,t.jsx)(k,{label:"Table",value:a}),(0,t.jsx)(k,{label:"Object ID",value:(0,t.jsx)(_,{copyable:!0,className:"font-mono text-xs",children:l.object_id})}),(0,t.jsx)(k,{label:"Changed By",value:(0,t.jsx)(v.default,{userId:l.changed_by})}),(0,t.jsx)(k,{label:"API Key (Hash)",value:l.changed_by_api_key?(0,t.jsx)(_,{copyable:!0,className:"font-mono text-xs break-all",children:l.changed_by_api_key}):"—"})]}),(0,t.jsx)(C,{log:l})]})]})}let{Search:L}=i.Input,M={LiteLLM_VerificationToken:"Keys",LiteLLM_TeamTable:"Teams",LiteLLM_UserTable:"Users",LiteLLM_OrganizationTable:"Organizations",LiteLLM_ProxyModelTable:"Models"},D={created:"green",updated:"blue",deleted:"red",rotated:"orange"};e.s(["default",0,function({userID:e,userRole:i,token:g,accessToken:f,isActive:y,premiumUser:j}){let[b,_]=(0,s.useState)(1),[N,w]=(0,s.useState)(""),[S,k]=(0,s.useState)(""),[C,E]=(0,s.useState)(""),[A,z]=(0,s.useState)(""),[I,O]=(0,s.useState)(void 0),[R,P]=(0,s.useState)(void 0),[B,F]=(0,s.useState)(null),[q,$]=(0,s.useState)(!1),H=(0,l.useQuery)({queryKey:["audit_logs",b,50,N,S,C,A,I,R],queryFn:async()=>f&&g&&i&&e?(0,h.uiAuditLogsCall)({accessToken:f,page:b,page_size:50,params:{object_id:N||void 0,changed_by:S||void 0,object_key_hash:C||void 0,object_team_id:A||void 0,action:I||void 0,table_name:R||void 0,sort_by:"updated_at",sort_order:"desc"}}):{audit_logs:[],total:0,page:1,page_size:50,total_pages:0},enabled:!!f&&!!g&&!!i&&!!e&&y,placeholderData:a.keepPreviousData}),K=[{title:"Timestamp",dataIndex:"updated_at",key:"updated_at",width:200,render:e=>(0,t.jsx)("span",{className:"font-mono text-xs whitespace-nowrap",children:p.default.utc(e).local().format("MMM D, YYYY HH:mm:ss")})},{title:"Action",dataIndex:"action",key:"action",width:100,render:e=>(0,t.jsx)(n.Tag,{color:D[e]??"default",className:"capitalize",children:e})},{title:"Table",dataIndex:"table_name",key:"table_name",width:130,render:e=>M[e]??e},{title:"Object ID",dataIndex:"object_id",key:"object_id",render:e=>(0,t.jsx)("span",{className:"font-mono text-xs",children:e})},{title:"Changed By",dataIndex:"changed_by",key:"changed_by",width:200,render:e=>(0,t.jsx)(v.default,{userId:e})},{title:"API Key (Hash)",dataIndex:"changed_by_api_key",key:"changed_by_api_key",width:140,render:e=>e?(0,t.jsxs)("span",{className:"font-mono text-xs",children:[e.slice(0,12),"…"]}):"—"}];if(!j)return(0,t.jsxs)("div",{style:{textAlign:"center",marginTop:"20px"},children:[(0,t.jsx)("h1",{style:{display:"block",marginBottom:"10px"},children:"✨ Enterprise Feature."}),(0,t.jsx)("p",{style:{display:"block",marginBottom:"10px"},children:"This is a LiteLLM Enterprise feature, and requires a valid key to use."}),(0,t.jsx)("p",{style:{display:"block",marginBottom:"20px",fontStyle:"italic"},children:"Here's a preview of what Audit Logs offer:"}),(0,t.jsx)("img",{src:"../ui/assets/audit-logs-preview.png",alt:"Audit Logs Preview",style:{maxWidth:"100%",maxHeight:"700px",borderRadius:"8px",boxShadow:"0 4px 8px rgba(0,0,0,0.1)",margin:"0 auto"},onError:e=>{e.target.style.display="none"}})]});let Y=H.data?.audit_logs??[],V=H.data?.total??0;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow",children:[(0,t.jsxs)("div",{className:"border-b px-6 py-4",children:[(0,t.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,t.jsx)("h1",{className:"text-xl font-semibold",children:"Audit Logs"})}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,t.jsx)(L,{placeholder:"Object ID",allowClear:!0,style:{width:200},onSearch:e=>{w(e),_(1)},onChange:e=>{e.target.value||(w(""),_(1))}}),(0,t.jsx)(L,{placeholder:"Changed By",allowClear:!0,style:{width:180},onSearch:e=>{k(e),_(1)},onChange:e=>{e.target.value||(k(""),_(1))}}),(0,t.jsx)(L,{placeholder:"Team ID",allowClear:!0,style:{width:180},onSearch:e=>{z(e),_(1)},onChange:e=>{e.target.value||(z(""),_(1))}}),(0,t.jsx)(L,{placeholder:"Key Hash",allowClear:!0,style:{width:180},onSearch:e=>{E(e),_(1)},onChange:e=>{e.target.value||(E(""),_(1))}}),(0,t.jsx)(o.Select,{placeholder:"All Actions",allowClear:!0,style:{width:140},options:[{label:"Created",value:"created"},{label:"Updated",value:"updated"},{label:"Deleted",value:"deleted"},{label:"Rotated",value:"rotated"}],onChange:e=>{O(e),_(1)}}),(0,t.jsx)(o.Select,{placeholder:"All Tables",allowClear:!0,style:{width:150},options:[{label:"Keys",value:"LiteLLM_VerificationToken"},{label:"Teams",value:"LiteLLM_TeamTable"},{label:"Users",value:"LiteLLM_UserTable"},{label:"Organizations",value:"LiteLLM_OrganizationTable"},{label:"Models",value:"LiteLLM_ProxyModelTable"}],onChange:e=>{P(e),_(1)}}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,t.jsx)(d.Button,{icon:(0,t.jsx)(m.ReloadOutlined,{spin:H.isFetching}),onClick:()=>H.refetch(),disabled:H.isFetching}),(0,t.jsx)(c.Pagination,{current:b,pageSize:50,total:V,showTotal:e=>`${e} total`,showSizeChanger:!1,size:"small",onChange:e=>_(e)})]})]})]}),(0,t.jsx)(r.Table,{columns:K,dataSource:Y,rowKey:"id",loading:{spinning:H.isLoading,indicator:(0,t.jsx)(x.Spin,{indicator:(0,t.jsx)(u.LoadingOutlined,{spin:!0}),size:"small"})},size:"small",pagination:!1,onRow:e=>({onClick:()=>{F(e),$(!0)},style:{cursor:"pointer"}})})]}),(0,t.jsx)(T,{open:q,onClose:()=>$(!1),log:B})]})}],942161)},307582,e=>{"use strict";var t=e.i(843476);e.s(["TimeCell",0,({utcTime:e})=>(0,t.jsx)("span",{style:{fontFamily:"monospace",width:"180px",display:"inline-block"},children:(e=>{try{return new Date(e).toLocaleString("en-US",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!0}).replace(",","")}catch(e){return"Error converting time"}})(e)})])},97859,e=>{"use strict";e.s(["AGENT_CALL_TYPES",0,["asend_message"],"ERROR_CODE_OPTIONS",0,[{label:"400 - Bad Request",value:"400"},{label:"401 - Invalid Authentication",value:"401"},{label:"403 - Permission Denied",value:"403"},{label:"404 - Not Found",value:"404"},{label:"408 - Request Timeout",value:"408"},{label:"422 - Unprocessable Entity",value:"422"},{label:"429 - Rate Limited",value:"429"},{label:"500 - Internal Server Error",value:"500"},{label:"502 - Bad Gateway",value:"502"},{label:"503 - Service Unavailable",value:"503"},{label:"529 - Overloaded",value:"529"}],"MCP_CALL_TYPES",0,["call_mcp_tool","list_mcp_tools"],"QUICK_SELECT_OPTIONS",0,[{label:"Last Minute",value:1,unit:"minutes"},{label:"Last 15 Minutes",value:15,unit:"minutes"},{label:"Last Hour",value:1,unit:"hours"},{label:"Last 4 Hours",value:4,unit:"hours"},{label:"Last 24 Hours",value:24,unit:"hours"},{label:"Last 7 Days",value:7,unit:"days"}]])},245099,504809,15374,e=>{"use strict";var t=e.i(843476),s=e.i(500330),l=(e.i(389083),e.i(994388)),a=e.i(592968),r=e.i(271645),n=e.i(916925),i=e.i(446891),o=e.i(307582),d=e.i(97859);let c=({size:e=12})=>(0,t.jsx)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"flex-shrink-0 text-gray-400",children:(0,t.jsx)("path",{d:"M12 3l1.912 5.813a2 2 0 0 0 1.275 1.275L21 12l-5.813 1.912a2 2 0 0 0-1.275 1.275L12 21l-1.912-5.813a2 2 0 0 0-1.275-1.275L3 12l5.813-1.912a2 2 0 0 0 1.275-1.275L12 3z"})}),x=({size:e=10})=>(0,t.jsx)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"flex-shrink-0",children:(0,t.jsx)("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"})}),m=({size:e=12})=>(0,t.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"flex-shrink-0",children:[(0,t.jsx)("path",{d:"M12 8V4H8"}),(0,t.jsx)("rect",{width:"16",height:"12",x:"4",y:"8",rx:"2"}),(0,t.jsx)("path",{d:"M2 14h2"}),(0,t.jsx)("path",{d:"M20 14h2"}),(0,t.jsx)("path",{d:"M15 13v2"}),(0,t.jsx)("path",{d:"M9 13v2"})]}),u=({count:e})=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-blue-50 text-blue-700 border border-blue-200 rounded-full text-[11px] font-medium whitespace-nowrap",children:[(0,t.jsx)(c,{}),null!=e?e:"LLM"]}),p=({count:e})=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-amber-50 text-amber-700 border border-amber-200 rounded-full text-[11px] font-medium whitespace-nowrap",children:[(0,t.jsx)(x,{}),null!=e?e:"MCP"]}),h=({count:e})=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-violet-50 text-violet-700 border border-violet-200 rounded-full text-[11px] font-medium whitespace-nowrap",children:[(0,t.jsx)(m,{}),null!=e?e:"Agent"]}),g=({label:e,field:s,sortBy:l,sortOrder:a,onSortChange:r})=>(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{children:e}),(0,t.jsx)(i.TableHeaderSortDropdown,{sortState:l===s&&a,onSortChange:e=>{!1===e?r("startTime","desc"):r(s,e)}})]}),f=e=>[{header:e?()=>(0,t.jsx)(g,{label:"Time",field:"startTime",sortBy:e.sortBy,sortOrder:e.sortOrder,onSortChange:e.onSortChange}):"Time",accessorKey:"startTime",cell:e=>(0,t.jsx)(o.TimeCell,{utcTime:e.getValue()})},{header:"Type",id:"type",cell:e=>{let s=e.row.original,l=s.session_total_count||1,r=d.MCP_CALL_TYPES.includes(s.call_type),n=d.AGENT_CALL_TYPES.includes(s.call_type),i=s.session_llm_count??(r||n?0:l),o=s.session_agent_count??(n?l:0),g=s.session_mcp_count??(r?l:0);if(r)return(0,t.jsx)(p,{});if(n&&l<=1)return(0,t.jsx)(h,{});if(l<=1)return(0,t.jsx)(u,{});let f=(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-blue-50 text-blue-700 border border-blue-200 rounded-full text-[11px] font-medium whitespace-nowrap",children:[(0,t.jsx)(c,{}),(0,t.jsx)("span",{children:l}),o>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-blue-300",children:"·"}),(0,t.jsx)(m,{size:10})]}),g>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-blue-300",children:"·"}),(0,t.jsx)(x,{})]})]}),y=[i>0&&`${i} LLM`,o>0&&`${o} Agent`,g>0&&`${g} MCP`].filter(Boolean);return(0,t.jsx)(a.Tooltip,{title:y.join(" • "),children:f})}},{header:"Status",accessorKey:"metadata.status",cell:e=>{let s="failure"!==(e.getValue()||"Success").toLowerCase();return(0,t.jsx)("span",{className:`px-2 py-1 rounded-md text-xs font-medium inline-block text-center w-16 ${s?"bg-green-100 text-green-800":"bg-red-100 text-red-800"}`,children:s?"Success":"Failure"})}},{header:"Session ID",accessorKey:"session_id",cell:e=>{let s=String(e.getValue()||""),r=e.row.original.onSessionClick;return(0,t.jsx)(a.Tooltip,{title:String(e.getValue()||""),children:(0,t.jsx)(l.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal text-xs max-w-[15ch] truncate block",onClick:()=>r?.(s),children:String(e.getValue()||"")})})}},{header:"Request ID",accessorKey:"request_id",cell:e=>(0,t.jsx)(a.Tooltip,{title:String(e.getValue()||""),children:(0,t.jsx)("span",{className:"font-mono text-xs max-w-[15ch] truncate block",children:String(e.getValue()||"")})})},{header:e?()=>(0,t.jsx)(g,{label:"Cost",field:"spend",sortBy:e.sortBy,sortOrder:e.sortOrder,onSortChange:e.onSortChange}):"Cost",accessorKey:"spend",cell:e=>{let l=e.row.original,r=l.mcp_tool_call_count||0,n=l.mcp_tool_call_spend||0;return(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)(a.Tooltip,{title:`$${String(e.getValue()||0)}`,children:(0,t.jsx)("span",{children:(0,s.getSpendString)(e.getValue()||0)})}),r>0&&n>0&&(0,t.jsxs)("span",{className:"text-[10px] text-amber-600",children:["incl. ",(0,s.getSpendString)(n)," from ",r," MCP"]})]})}},{header:e?()=>(0,t.jsx)(g,{label:"Duration (s)",field:"request_duration_ms",sortBy:e.sortBy,sortOrder:e.sortOrder,onSortChange:e.onSortChange}):"Duration (s)",accessorKey:"request_duration_ms",cell:e=>{let s=e.getValue();if(null==s)return(0,t.jsx)("span",{children:"-"});let l=(s/1e3).toFixed(2);return(0,t.jsx)(a.Tooltip,{title:`${s}ms`,children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:l})})}},{header:e?()=>(0,t.jsx)(g,{label:"TTFT (s)",field:"ttft_ms",sortBy:e.sortBy,sortOrder:e.sortOrder,onSortChange:e.onSortChange}):"TTFT (s)",accessorKey:"completionStartTime",cell:e=>{let s=e.row.original,l=e.getValue();if(!l||l===s.endTime)return(0,t.jsx)("span",{children:"-"});let r=new Date(l).getTime()-new Date(s.startTime).getTime();if(r<=0)return(0,t.jsx)("span",{children:"-"});let n=(r/1e3).toFixed(2);return(0,t.jsx)(a.Tooltip,{title:`${r}ms`,children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:n})})}},{header:"Team Name",accessorKey:"metadata.user_api_key_team_alias",cell:e=>(0,t.jsx)(a.Tooltip,{title:String(e.getValue()||"-"),children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:String(e.getValue()||"-")})})},{header:"Key Hash",accessorKey:"metadata.user_api_key",cell:e=>{let s=String(e.getValue()||"-"),l=e.row.original.onKeyHashClick;return(0,t.jsx)(a.Tooltip,{title:s,children:(0,t.jsx)("span",{className:"font-mono max-w-[15ch] truncate block cursor-pointer hover:text-blue-600",onClick:()=>l?.(s),children:s})})}},{header:"Key Name",accessorKey:"metadata.user_api_key_alias",cell:e=>(0,t.jsx)(a.Tooltip,{title:String(e.getValue()||"-"),children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:String(e.getValue()||"-")})})},{header:e?()=>(0,t.jsx)(g,{label:"Model",field:"model",sortBy:e.sortBy,sortOrder:e.sortOrder,onSortChange:e.onSortChange}):"Model",accessorKey:"model",cell:e=>{let s=e.row.original,l=s.custom_llm_provider,r=String(e.getValue()||"");return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[l&&(0,t.jsx)("img",{src:s.metadata?.mcp_tool_call_metadata?.mcp_server_logo_url?s.metadata.mcp_tool_call_metadata.mcp_server_logo_url:l?(0,n.getProviderLogoAndName)(l).logo:"",alt:"",className:"w-4 h-4",onError:e=>{e.target.style.display="none"}}),(0,t.jsx)(a.Tooltip,{title:r,children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:r})})]})}},{header:e?()=>(0,t.jsx)(g,{label:"Tokens",field:"total_tokens",sortBy:e.sortBy,sortOrder:e.sortOrder,onSortChange:e.onSortChange}):"Tokens",accessorKey:"total_tokens",cell:e=>{let s=e.row.original;return(0,t.jsxs)("span",{className:"text-sm",children:[String(s.total_tokens||"0"),(0,t.jsxs)("span",{className:"text-gray-400 text-xs ml-1",children:["(",String(s.prompt_tokens||"0"),"+",String(s.completion_tokens||"0"),")"]})]})}},{header:"Internal User",accessorKey:"user",cell:e=>(0,t.jsx)(a.Tooltip,{title:String(e.getValue()||"-"),children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:String(e.getValue()||"-")})})},{header:"End User",accessorKey:"end_user",cell:e=>(0,t.jsx)(a.Tooltip,{title:String(e.getValue()||"-"),children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:String(e.getValue()||"-")})})},{header:"Tags",accessorKey:"request_tags",cell:e=>{let s=e.getValue();if(!s||0===Object.keys(s).length)return"-";let l=Object.entries(s),r=l[0],n=l.slice(1);return(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:(0,t.jsx)(a.Tooltip,{title:(0,t.jsx)("div",{className:"flex flex-col gap-1",children:l.map(([e,s])=>(0,t.jsxs)("span",{children:[e,": ",String(s)]},e))}),children:(0,t.jsxs)("span",{className:"px-2 py-1 bg-gray-100 rounded-full text-xs",children:[r[0],": ",String(r[1]),n.length>0&&` +${n.length}`]})})})}}];f(),e.s(["createColumns",0,f],245099);var y=e.i(663435);let j=({value:e,onChange:s})=>(0,t.jsx)(y.default,{value:e,onChange:s});var b=e.i(50882),v=e.i(625901),_=e.i(56456),N=e.i(152473),w=e.i(199133),S=e.i(770914);let{Text:k}=e.i(898586).Typography,C=({value:e,onChange:s,placeholder:l="Select a model",style:a,pageSize:n=50,allowClear:i=!0,disabled:o=!1})=>{let[d,c]=(0,r.useState)(""),[x,m]=(0,N.useDebouncedState)("",{wait:300}),{data:u,fetchNextPage:p,hasNextPage:h,isFetchingNextPage:g,isLoading:f}=(0,v.useInfiniteModelInfo)(n,x||void 0),y=(0,r.useMemo)(()=>{if(!u?.pages)return[];let e=new Set,t=[];for(let s of u.pages)for(let l of s.data){let s=l.model_info?.id??"",a=l.model_name??"";!s||e.has(s)||(e.add(s),t.push({label:a?`${a} (${s})`:s,value:s,modelName:a,modelId:s}))}return t},[u]);return(0,t.jsx)(w.Select,{value:e||void 0,onChange:e=>{let t="string"==typeof e?e:Array.isArray(e)?e[0]??"":"";s?.(t)},placeholder:l,style:{width:"100%",...a},allowClear:i,disabled:o,showSearch:!0,filterOption:!1,onSearch:e=>{c(e),m(e)},searchValue:d,onPopupScroll:e=>{let t=e.currentTarget;(t.scrollTop+t.clientHeight)/t.scrollHeight>=.8&&h&&!g&&p()},loading:f,notFoundContent:f?(0,t.jsx)(_.LoadingOutlined,{spin:!0}):"No models found",options:y,optionRender:e=>{let{modelName:s,modelId:l}=e.data;return(0,t.jsx)(t.Fragment,{children:s?(0,t.jsxs)(S.Space,{direction:"vertical",children:[(0,t.jsxs)(S.Space,{direction:"horizontal",children:[(0,t.jsx)(k,{strong:!0,children:"Model name:"}),(0,t.jsx)(k,{ellipsis:!0,children:s})]}),(0,t.jsxs)(k,{ellipsis:!0,type:"secondary",children:["Model ID: ",l]})]}):(0,t.jsxs)(k,{ellipsis:!0,type:"secondary",children:["Model ID: ",l]})})},popupRender:e=>(0,t.jsxs)(t.Fragment,{children:[e,g&&(0,t.jsx)("div",{style:{textAlign:"center",padding:8},children:(0,t.jsx)(_.LoadingOutlined,{spin:!0})})]})})};var T=e.i(764205),L=e.i(166540),M=e.i(619273),D=e.i(266027),E=e.i(633627),A=e.i(700514);let z={TEAM_ID:"Team ID",KEY_HASH:"Key Hash",REQUEST_ID:"Request ID",MODEL:"Model",PUBLIC_MODEL_OR_SEARCH_TOOL:"Public model / search tool",USER_ID:"User ID",END_USER:"End User",STATUS:"Status",KEY_ALIAS:"Key Alias",ERROR_CODE:"Error Code",ERROR_MESSAGE:"Error Message"},I=[z.KEY_HASH,z.ERROR_MESSAGE,z.REQUEST_ID,z.USER_ID,z.PUBLIC_MODEL_OR_SEARCH_TOOL],O={[z.TEAM_ID]:"",[z.KEY_HASH]:"",[z.REQUEST_ID]:"",[z.MODEL]:"",[z.PUBLIC_MODEL_OR_SEARCH_TOOL]:"",[z.USER_ID]:"",[z.END_USER]:"",[z.STATUS]:"",[z.KEY_ALIAS]:"",[z.ERROR_CODE]:"",[z.ERROR_MESSAGE]:""};e.s(["FILTER_KEYS",0,z,"defaultFilters",0,O,"useLogFilterLogic",0,function({accessToken:e,token:t,userRole:s,userID:l,filters:a,setFilters:n,filterByCurrentUser:i,activeTab:o,isLiveTail:d,startTime:c,endTime:x,pageSize:m=A.defaultPageSize,isCustomDate:u,setCurrentPage:p,sortBy:h="startTime",sortOrder:g="desc",currentPage:f=1}){let[y,j]=function(e){let[t,s]=(0,r.useState)(e);return(0,r.useEffect)(()=>{let t=setTimeout(()=>s(e),300);return()=>clearTimeout(t)},[e,300]),[t,s]}(a),b=(0,r.useMemo)(()=>{let e={...a};for(let t of I)e[t]=y[t];return e},[a,y]),v=(0,D.useQuery)({queryKey:["logs","table",f,m,c,x,u,b,i?l:null,h,g],queryFn:async()=>{if(!e||!t||!s||!l)return{data:[],total:0,page:1,page_size:m,total_pages:0};let a=(0,L.default)(c).utc().format("YYYY-MM-DD HH:mm:ss"),r=u?(0,L.default)(x).utc().format("YYYY-MM-DD HH:mm:ss"):(0,L.default)().utc().format("YYYY-MM-DD HH:mm:ss");return await (0,T.uiSpendLogsCall)({accessToken:e,start_date:a,end_date:r,page:f,page_size:m,params:{api_key:b[z.KEY_HASH]||void 0,team_id:b[z.TEAM_ID]||void 0,request_id:b[z.REQUEST_ID]||void 0,user_id:b[z.USER_ID]||(i?l??void 0:void 0),end_user:b[z.END_USER]||void 0,status_filter:b[z.STATUS]||void 0,model_id:b[z.MODEL]||void 0,model:b[z.PUBLIC_MODEL_OR_SEARCH_TOOL]||void 0,key_alias:b[z.KEY_ALIAS]||void 0,error_code:b[z.ERROR_CODE]||void 0,error_message:b[z.ERROR_MESSAGE]||void 0,sort_by:h,sort_order:g}})},enabled:!!e&&!!t&&!!s&&!!l&&"request logs"===o,refetchInterval:!!d&&1===f&&15e3,placeholderData:M.keepPreviousData,refetchIntervalInBackground:!1}),_=v.data??{data:[],total:0,page:1,page_size:m,total_pages:0},{data:N}=(0,D.useQuery)({queryKey:["allTeamsForLogFilters",e],queryFn:async()=>e&&await (0,E.fetchAllTeams)(e)||[],enabled:!!e});return{logsQuery:v,filteredLogs:_,allTeams:N,handleFilterChange:e=>{n(t=>{let s={...t,...e};for(let e of Object.keys(O))e in s||(s[e]=O[e]);return JSON.stringify(s)!==JSON.stringify(t)&&p(1),s})},handleFilterReset:()=>{n(O),j(O),p(1)}}}],504809),e.s(["getLogFilterOptions",0,function(e){return[{name:"Team ID",label:"Team ID",customComponent:j},{name:"Status",label:"Status",isSearchable:!1,options:[{label:"Success",value:"success"},{label:"Failure",value:"failure"}]},{name:"Model",label:"Model",customComponent:C},{name:z.PUBLIC_MODEL_OR_SEARCH_TOOL,label:"Public model / search tool",isSearchable:!1},{name:"Key Alias",label:"Key Alias",customComponent:b.PaginatedKeyAliasSelect},{name:"End User",label:"End User",isSearchable:!0,searchFn:async t=>{let s=await (0,T.allEndUsersCall)(e);return(s?.map(e=>e.user_id)||[]).filter(e=>e.toLowerCase().includes(t.toLowerCase())).map(e=>({label:e,value:e}))}},{name:"Error Code",label:"Error Code",isSearchable:!0,searchFn:async e=>{if(!e)return d.ERROR_CODE_OPTIONS;let t=e.toLowerCase(),s=d.ERROR_CODE_OPTIONS.filter(e=>e.label.toLowerCase().includes(t));return!d.ERROR_CODE_OPTIONS.some(t=>t.value===e.trim())&&e.trim()&&s.push({label:`Use custom code: ${e.trim()}`,value:e.trim()}),s}},{name:"Key Hash",label:"Key Hash",isSearchable:!1},{name:"Error Message",label:"Error Message",isSearchable:!1}]}],15374)},894660,283086,195116,e=>{"use strict";var t=e.i(801312);e.s(["LeftOutlined",()=>t.default],894660);var s=e.i(475254);let l=(0,s.default)("sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);e.s(["Sparkles",0,l],283086);let a=(0,s.default)("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);e.s(["Wrench",0,a],195116)},3565,502626,e=>{"use strict";var t=e.i(843476),s=e.i(271645),l=e.i(464571),a=e.i(608856),r=e.i(492030),n=e.i(166406),i=e.i(894660),o=e.i(240647),d=e.i(531245),c=e.i(283086),x=e.i(195116),m=e.i(97859),u=e.i(770914),p=e.i(262218),h=e.i(592968),g=e.i(898586),f=e.i(149192),y=e.i(536591),y=y,j=e.i(755151),b=e.i(166540),v=e.i(916925);let _="24px",N="request",w="response",S="monospace",k="#f0f0f0",{Text:C}=g.Typography;function T({log:e,onClose:s,onPrevious:l,onNext:a,statusLabel:r,statusColor:n,environment:i}){let o=e.custom_llm_provider||"",d=o?(0,v.getProviderLogoAndName)(o):null;return(0,t.jsxs)("div",{style:{padding:"16px 24px",borderBottom:`1px solid ${k}`,backgroundColor:"#fff",position:"sticky",top:0,zIndex:10},children:[(0,t.jsx)(L,{model:e.model,providerLogo:d?.logo,providerName:d?.displayName}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[(0,t.jsx)(M,{requestId:e.request_id}),(0,t.jsx)(D,{onPrevious:l,onNext:a,onClose:s})]}),(0,t.jsx)(E,{log:e,statusLabel:r,statusColor:n,environment:i})]})}function L({model:e,providerLogo:s,providerName:l}){return(0,t.jsxs)(u.Space,{size:8,style:{marginBottom:8},children:[s&&(0,t.jsx)("img",{src:s,alt:l||"Provider",style:{width:24,height:24},onError:e=>{e.target.style.display="none"}}),(0,t.jsxs)(u.Space,{size:8,direction:"horizontal",children:[(0,t.jsx)(C,{strong:!0,style:{fontSize:14},children:e}),l&&(0,t.jsx)(C,{type:"secondary",style:{fontSize:12},children:l})]})]})}function M({requestId:e}){return(0,t.jsx)("div",{style:{flex:1,minWidth:0},children:(0,t.jsx)(h.Tooltip,{title:e,children:(0,t.jsx)(C,{strong:!0,copyable:{text:e,tooltips:["Copy Request ID","Copied!"]},style:{fontSize:16,fontFamily:S,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"block"},children:e})})})}function D({onPrevious:e,onNext:s,onClose:a}){let r={border:"1px solid #d9d9d9",borderRadius:4,padding:"0 4px",fontSize:12,fontFamily:"monospace",marginLeft:4,background:"#fafafa"};return(0,t.jsxs)(u.Space,{size:4,split:(0,t.jsx)("div",{style:{width:1,height:20,background:k}}),children:[(0,t.jsxs)(l.Button,{type:"text",size:"small",onClick:e,children:[(0,t.jsx)(y.default,{}),(0,t.jsx)("span",{style:r,children:"K"})]}),(0,t.jsxs)(l.Button,{type:"text",size:"small",onClick:s,children:[(0,t.jsx)(j.DownOutlined,{}),(0,t.jsx)("span",{style:r,children:"J"})]}),(0,t.jsx)(h.Tooltip,{title:"ESC to close",children:(0,t.jsx)(l.Button,{type:"text",icon:(0,t.jsx)(f.CloseOutlined,{}),onClick:a})})]})}function E({log:e,statusLabel:s,statusColor:l,environment:a}){return(0,t.jsxs)(u.Space,{size:12,children:[(0,t.jsx)(p.Tag,{color:l,children:s}),(0,t.jsxs)(p.Tag,{children:["Env: ",a]}),(0,t.jsxs)(u.Space,{size:8,children:[(0,t.jsx)(C,{type:"secondary",style:{fontSize:13},children:(0,b.default)(e.startTime).format("MMM D, YYYY h:mm:ss A")}),(0,t.jsxs)(C,{type:"secondary",style:{fontSize:13},children:["(",(0,b.default)(e.startTime).fromNow(),")"]})]})]})}var A=e.i(869216),z=e.i(175712),I=e.i(653496),O=e.i(560445),R=e.i(362024),P=e.i(91739),B=e.i(482725),F=e.i(500330);let q=e=>e>=.8?"text-green-600":"text-yellow-600",$=({entities:e})=>{let[l,a]=(0,s.useState)(!0),[r,n]=(0,s.useState)({});return e&&0!==e.length?(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsxs)("div",{className:"flex items-center mb-2 cursor-pointer",onClick:()=>a(!l),children:[(0,t.jsx)("svg",{className:`w-5 h-5 mr-2 transition-transform ${l?"transform rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,t.jsxs)("h4",{className:"font-medium",children:["Detected Entities (",e.length,")"]})]}),l&&(0,t.jsx)("div",{className:"space-y-2",children:e.map((e,s)=>{let l=r[s]||!1;return(0,t.jsxs)("div",{className:"border rounded-lg overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between p-3 bg-gray-50 cursor-pointer hover:bg-gray-100",onClick:()=>{n(e=>({...e,[s]:!e[s]}))},children:[(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)("svg",{className:`w-5 h-5 mr-2 transition-transform ${l?"transform rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,t.jsx)("span",{className:"font-medium mr-2",children:e.entity_type}),(0,t.jsxs)("span",{className:`font-mono ${q(e.score)}`,children:["Score: ",e.score.toFixed(2)]})]}),(0,t.jsxs)("span",{className:"text-xs text-gray-500",children:["Position: ",e.start,"-",e.end]})]}),l&&(0,t.jsx)("div",{className:"p-3 border-t bg-white",children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 mb-2",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Entity Type:"}),(0,t.jsx)("span",{children:e.entity_type})]}),(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Position:"}),(0,t.jsxs)("span",{children:["Characters ",e.start,"-",e.end]})]}),(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Confidence:"}),(0,t.jsx)("span",{className:q(e.score),children:e.score.toFixed(2)})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[e.recognition_metadata&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Recognizer:"}),(0,t.jsx)("span",{children:e.recognition_metadata.recognizer_name})]}),(0,t.jsxs)("div",{className:"flex overflow-hidden",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Identifier:"}),(0,t.jsx)("span",{className:"truncate text-xs font-mono",children:e.recognition_metadata.recognizer_identifier})]})]}),e.analysis_explanation&&(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Explanation:"}),(0,t.jsx)("span",{children:e.analysis_explanation})]})]})]})})]},s)})})]}):null},H=(e,s="slate")=>(0,t.jsx)("span",{className:`px-2 py-1 rounded-md text-xs font-medium inline-block ${{green:"bg-green-100 text-green-800",red:"bg-red-100 text-red-800",blue:"bg-blue-50 text-blue-700",slate:"bg-slate-100 text-slate-800",amber:"bg-amber-100 text-amber-800"}[s]}`,children:e}),K=e=>e?H("detected","red"):H("not detected","slate"),Y=({title:e,count:l,defaultOpen:a=!0,right:r,children:n})=>{let[i,o]=(0,s.useState)(a);return(0,t.jsxs)("div",{className:"border rounded-lg overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between p-3 bg-gray-50 cursor-pointer hover:bg-gray-100",onClick:()=>o(e=>!e),children:[(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)("svg",{className:`w-5 h-5 mr-2 transition-transform ${i?"transform rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,t.jsxs)("h5",{className:"font-medium",children:[e," ","number"==typeof l&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal",children:["(",l,")"]})]})]}),(0,t.jsx)("div",{children:r})]}),i&&(0,t.jsx)("div",{className:"p-3 border-t bg-white",children:n})]})},V=({label:e,children:s,mono:l})=>(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:e}),(0,t.jsx)("span",{className:l?"font-mono text-sm break-all":"",children:s})]}),U=()=>(0,t.jsx)("div",{className:"my-3 border-t"}),W=({response:e})=>{if(!e)return null;let s=e.outputs??e.output??[],l="GUARDRAIL_INTERVENED"===e.action?"red":"green",a=(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[e.guardrailCoverage?.textCharacters&&H(`text guarded ${e.guardrailCoverage.textCharacters.guarded??0}/${e.guardrailCoverage.textCharacters.total??0}`,"blue"),e.guardrailCoverage?.images&&H(`images guarded ${e.guardrailCoverage.images.guarded??0}/${e.guardrailCoverage.images.total??0}`,"blue")]}),r=e.usage&&(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:Object.entries(e.usage).map(([e,s])=>"number"==typeof s?(0,t.jsxs)("span",{className:"px-2 py-1 bg-slate-100 text-slate-800 rounded-md text-xs font-medium",children:[e,": ",s]},e):null)});return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"border rounded-lg p-4",children:[(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(V,{label:"Action:",children:H(e.action??"N/A",l)}),e.actionReason&&(0,t.jsx)(V,{label:"Action Reason:",children:e.actionReason}),e.blockedResponse&&(0,t.jsx)(V,{label:"Blocked Response:",children:(0,t.jsx)("span",{className:"italic",children:e.blockedResponse})})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(V,{label:"Coverage:",children:a}),(0,t.jsx)(V,{label:"Usage:",children:r})]})]}),s.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(U,{}),(0,t.jsx)("h4",{className:"font-medium mb-2",children:"Outputs"}),(0,t.jsx)("div",{className:"space-y-2",children:s.map((e,s)=>(0,t.jsx)("div",{className:"p-3 bg-gray-50 rounded-md",children:(0,t.jsx)("div",{className:"text-sm whitespace-pre-wrap",children:e.text??(0,t.jsx)("em",{children:"(non-text output)"})})},s))})]})]}),e.assessments?.length?(0,t.jsx)("div",{className:"space-y-3",children:e.assessments.map((e,s)=>{let l=(0,t.jsxs)("div",{className:"flex flex-wrap gap-1",children:[e.wordPolicy&&H("word","slate"),e.contentPolicy&&H("content","slate"),e.topicPolicy&&H("topic","slate"),e.sensitiveInformationPolicy&&H("sensitive-info","slate"),e.contextualGroundingPolicy&&H("contextual-grounding","slate"),e.automatedReasoningPolicy&&H("automated-reasoning","slate")]});return(0,t.jsxs)(Y,{title:`Assessment #${s+1}`,defaultOpen:!0,right:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[e.invocationMetrics?.guardrailProcessingLatency!=null&&H(`${e.invocationMetrics.guardrailProcessingLatency} ms`,"amber"),l]}),children:[e.wordPolicy&&(0,t.jsxs)("div",{className:"mb-3",children:[(0,t.jsx)("h6",{className:"font-medium mb-2",children:"Word Policy"}),(e.wordPolicy.customWords?.length??0)>0&&(0,t.jsx)(Y,{title:"Custom Words",defaultOpen:!0,children:(0,t.jsx)("div",{className:"space-y-2",children:e.wordPolicy.customWords.map((e,s)=>(0,t.jsxs)("div",{className:"flex justify-between items-center p-2 bg-gray-50 rounded",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[H(e.action??"N/A",e.detected?"red":"slate"),(0,t.jsx)("span",{className:"font-mono text-sm break-all",children:e.match})]}),K(e.detected)]},s))})}),(e.wordPolicy.managedWordLists?.length??0)>0&&(0,t.jsx)(Y,{title:"Managed Word Lists",defaultOpen:!1,children:(0,t.jsx)("div",{className:"space-y-2",children:e.wordPolicy.managedWordLists.map((e,s)=>(0,t.jsxs)("div",{className:"flex justify-between items-center p-2 bg-gray-50 rounded",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[H(e.action??"N/A",e.detected?"red":"slate"),(0,t.jsx)("span",{className:"font-mono text-sm break-all",children:e.match}),e.type&&H(e.type,"slate")]}),K(e.detected)]},s))})})]}),e.contentPolicy?.filters?.length?(0,t.jsxs)("div",{className:"mb-3",children:[(0,t.jsx)("h6",{className:"font-medium mb-2",children:"Content Policy"}),(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"min-w-full text-sm",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"text-left text-gray-600",children:[(0,t.jsx)("th",{className:"py-1 pr-4",children:"Type"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Action"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Detected"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Strength"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Confidence"})]})}),(0,t.jsx)("tbody",{children:e.contentPolicy.filters.map((e,s)=>(0,t.jsxs)("tr",{className:"border-t",children:[(0,t.jsx)("td",{className:"py-1 pr-4",children:e.type??"—"}),(0,t.jsx)("td",{className:"py-1 pr-4",children:H(e.action??"—",e.detected?"red":"slate")}),(0,t.jsx)("td",{className:"py-1 pr-4",children:K(e.detected)}),(0,t.jsx)("td",{className:"py-1 pr-4",children:e.filterStrength??"—"}),(0,t.jsx)("td",{className:"py-1 pr-4",children:e.confidence??"—"})]},s))})]})})]}):null,e.contextualGroundingPolicy?.filters?.length?(0,t.jsxs)("div",{className:"mb-3",children:[(0,t.jsx)("h6",{className:"font-medium mb-2",children:"Contextual Grounding"}),(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"min-w-full text-sm",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"text-left text-gray-600",children:[(0,t.jsx)("th",{className:"py-1 pr-4",children:"Type"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Action"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Detected"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Score"}),(0,t.jsx)("th",{className:"py-1 pr-4",children:"Threshold"})]})}),(0,t.jsx)("tbody",{children:e.contextualGroundingPolicy.filters.map((e,s)=>(0,t.jsxs)("tr",{className:"border-t",children:[(0,t.jsx)("td",{className:"py-1 pr-4",children:e.type??"—"}),(0,t.jsx)("td",{className:"py-1 pr-4",children:H(e.action??"—",e.detected?"red":"slate")}),(0,t.jsx)("td",{className:"py-1 pr-4",children:K(e.detected)}),(0,t.jsx)("td",{className:"py-1 pr-4",children:e.score??"—"}),(0,t.jsx)("td",{className:"py-1 pr-4",children:e.threshold??"—"})]},s))})]})})]}):null,e.sensitiveInformationPolicy&&(0,t.jsxs)("div",{className:"mb-3",children:[(0,t.jsx)("h6",{className:"font-medium mb-2",children:"Sensitive Information"}),(e.sensitiveInformationPolicy.piiEntities?.length??0)>0&&(0,t.jsx)(Y,{title:"PII Entities",defaultOpen:!0,children:(0,t.jsx)("div",{className:"space-y-2",children:e.sensitiveInformationPolicy.piiEntities.map((e,s)=>(0,t.jsxs)("div",{className:"flex justify-between items-center p-2 bg-gray-50 rounded",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[H(e.action??"N/A",e.detected?"red":"slate"),e.type&&H(e.type,"slate"),(0,t.jsx)("span",{className:"font-mono text-xs break-all",children:e.match})]}),K(e.detected)]},s))})}),(e.sensitiveInformationPolicy.regexes?.length??0)>0&&(0,t.jsx)(Y,{title:"Custom Regexes",defaultOpen:!1,children:(0,t.jsx)("div",{className:"space-y-2",children:e.sensitiveInformationPolicy.regexes.map((e,s)=>(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between p-2 bg-gray-50 rounded gap-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[H(e.action??"N/A",e.detected?"red":"slate"),(0,t.jsx)("span",{className:"font-medium",children:e.name??"regex"}),(0,t.jsx)("span",{className:"font-mono text-xs break-all",children:e.regex})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[K(e.detected),e.match&&(0,t.jsx)("span",{className:"font-mono text-xs break-all",children:e.match})]})]},s))})})]}),e.topicPolicy?.topics?.length?(0,t.jsxs)("div",{className:"mb-3",children:[(0,t.jsx)("h6",{className:"font-medium mb-2",children:"Topic Policy"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:e.topicPolicy.topics.map((e,s)=>(0,t.jsx)("div",{className:"px-3 py-1.5 bg-gray-50 rounded-md text-xs",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[H(e.action??"N/A",e.detected?"red":"slate"),(0,t.jsx)("span",{className:"font-medium",children:e.name??"topic"}),e.type&&H(e.type,"slate"),K(e.detected)]})},s))})]}):null,e.invocationMetrics&&(0,t.jsx)(Y,{title:"Invocation Metrics",defaultOpen:!1,children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(V,{label:"Latency (ms)",children:e.invocationMetrics.guardrailProcessingLatency??"—"}),(0,t.jsx)(V,{label:"Coverage:",children:(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[e.invocationMetrics.guardrailCoverage?.textCharacters&&H(`text ${e.invocationMetrics.guardrailCoverage.textCharacters.guarded??0}/${e.invocationMetrics.guardrailCoverage.textCharacters.total??0}`,"blue"),e.invocationMetrics.guardrailCoverage?.images&&H(`images ${e.invocationMetrics.guardrailCoverage.images.guarded??0}/${e.invocationMetrics.guardrailCoverage.images.total??0}`,"blue")]})})]}),(0,t.jsx)("div",{className:"space-y-2",children:(0,t.jsx)(V,{label:"Usage:",children:(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:e.invocationMetrics.usage&&Object.entries(e.invocationMetrics.usage).map(([e,s])=>"number"==typeof s?(0,t.jsxs)("span",{className:"px-2 py-1 bg-slate-100 text-slate-800 rounded-md text-xs font-medium",children:[e,": ",s]},e):null)})})})]})}),e.automatedReasoningPolicy?.findings?.length?(0,t.jsx)(Y,{title:"Automated Reasoning Findings",defaultOpen:!1,children:(0,t.jsx)("div",{className:"space-y-2",children:e.automatedReasoningPolicy.findings.map((e,s)=>(0,t.jsx)("pre",{className:"bg-gray-50 rounded p-2 text-xs overflow-x-auto",children:JSON.stringify(e,null,2)},s))})}):null]},s)})}):null,(0,t.jsx)(Y,{title:"Raw Bedrock Guardrail Response",defaultOpen:!1,children:(0,t.jsx)("pre",{className:"bg-gray-50 rounded p-3 text-xs overflow-x-auto",children:JSON.stringify(e,null,2)})})]})},J=(e,s="slate")=>(0,t.jsx)("span",{className:`px-2 py-1 rounded-md text-xs font-medium inline-block ${{green:"bg-green-100 text-green-800",red:"bg-red-100 text-red-800",blue:"bg-blue-50 text-blue-700",slate:"bg-slate-100 text-slate-800",amber:"bg-amber-100 text-amber-800"}[s]}`,children:e}),G=({title:e,count:l,defaultOpen:a=!0,children:r})=>{let[n,i]=(0,s.useState)(a);return(0,t.jsxs)("div",{className:"border rounded-lg overflow-hidden",children:[(0,t.jsx)("div",{className:"flex items-center justify-between p-3 bg-gray-50 cursor-pointer hover:bg-gray-100",onClick:()=>i(e=>!e),children:(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)("svg",{className:`w-5 h-5 mr-2 transition-transform ${n?"transform rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,t.jsxs)("h5",{className:"font-medium",children:[e," ","number"==typeof l&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal",children:["(",l,")"]})]})]})}),n&&(0,t.jsx)("div",{className:"p-3 border-t bg-white",children:r})]})},Q=({label:e,children:s,mono:l})=>(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:e}),(0,t.jsx)("span",{className:l?"font-mono text-sm break-all":"",children:s})]}),X=({response:e})=>{if(!e||"string"==typeof e)return"string"==typeof e&&e?(0,t.jsx)("div",{className:"bg-white rounded-lg border border-red-200 p-4",children:(0,t.jsxs)("div",{className:"text-red-800",children:[(0,t.jsx)("h5",{className:"font-medium mb-2",children:"Error"}),(0,t.jsx)("p",{className:"text-sm",children:e})]})}):null;let s=Array.isArray(e)?e:[];if(0===s.length)return(0,t.jsx)("div",{className:"bg-white rounded-lg border border-gray-200 p-4",children:(0,t.jsx)("div",{className:"text-gray-600 text-sm",children:"No detections found"})});let l=s.filter(e=>"pattern"===e.type),a=s.filter(e=>"blocked_word"===e.type),r=s.filter(e=>"category_keyword"===e.type),n=s.filter(e=>"BLOCK"===e.action).length,i=s.filter(e=>"MASK"===e.action).length,o=s.length;return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("div",{className:"bg-white rounded-lg border border-gray-200 p-4",children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(Q,{label:"Total Detections:",children:(0,t.jsx)("span",{className:"font-semibold",children:o})}),(0,t.jsx)(Q,{label:"Actions:",children:(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[n>0&&J(`${n} blocked`,"red"),i>0&&J(`${i} masked`,"blue"),0===n&&0===i&&J("passed","green")]})})]}),(0,t.jsx)("div",{className:"space-y-2",children:(0,t.jsx)(Q,{label:"By Type:",children:(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[l.length>0&&J(`${l.length} patterns`,"slate"),a.length>0&&J(`${a.length} keywords`,"slate"),r.length>0&&J(`${r.length} categories`,"slate")]})})})]})}),l.length>0&&(0,t.jsx)(G,{title:"Patterns Matched",count:l.length,defaultOpen:!0,children:(0,t.jsx)("div",{className:"space-y-2",children:l.map((e,s)=>(0,t.jsx)("div",{className:"p-3 bg-gray-50 rounded-md",children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsx)("div",{className:"space-y-1",children:(0,t.jsx)(Q,{label:"Pattern:",children:e.pattern_name||"unknown"})}),(0,t.jsx)("div",{className:"space-y-1",children:(0,t.jsx)(Q,{label:"Action:",children:J(e.action,"BLOCK"===e.action?"red":"blue")})})]})},s))})}),a.length>0&&(0,t.jsx)(G,{title:"Blocked Words Detected",count:a.length,defaultOpen:!0,children:(0,t.jsx)("div",{className:"space-y-2",children:a.map((e,s)=>(0,t.jsx)("div",{className:"p-3 bg-gray-50 rounded-md",children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)(Q,{label:"Keyword:",mono:!0,children:e.keyword||"unknown"}),e.description&&(0,t.jsx)(Q,{label:"Description:",children:e.description})]}),(0,t.jsx)("div",{className:"space-y-1",children:(0,t.jsx)(Q,{label:"Action:",children:J(e.action,"BLOCK"===e.action?"red":"blue")})})]})},s))})}),r.length>0&&(0,t.jsx)(G,{title:"Category Keywords Detected",count:r.length,defaultOpen:!0,children:(0,t.jsx)("div",{className:"space-y-2",children:r.map((e,s)=>(0,t.jsx)("div",{className:"p-3 bg-gray-50 rounded-md",children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)(Q,{label:"Category:",children:e.category||"unknown"}),(0,t.jsx)(Q,{label:"Keyword:",mono:!0,children:e.keyword||"unknown"}),e.severity&&(0,t.jsx)(Q,{label:"Severity:",children:J(e.severity,"high"===e.severity?"red":"medium"===e.severity?"amber":"slate")})]}),(0,t.jsx)("div",{className:"space-y-1",children:(0,t.jsx)(Q,{label:"Action:",children:J(e.action,"BLOCK"===e.action?"red":"blue")})})]})},s))})}),(0,t.jsx)(G,{title:"Raw Detection Data",defaultOpen:!1,children:(0,t.jsx)("pre",{className:"bg-gray-50 rounded p-3 text-xs overflow-x-auto",children:JSON.stringify(s,null,2)})})]})};var Z=e.i(764205);let ee=()=>(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[(0,t.jsx)("circle",{cx:"8",cy:"8",r:"7",stroke:"#16A34A",strokeWidth:"1.5",fill:"#F0FDF4"}),(0,t.jsx)("path",{d:"M5 8l2 2 4-4",stroke:"#16A34A",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),et=()=>(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[(0,t.jsx)("circle",{cx:"8",cy:"8",r:"7",stroke:"#DC2626",strokeWidth:"1.5",fill:"#FEF2F2"}),(0,t.jsx)("path",{d:"M6 6l4 4M10 6l-4 4",stroke:"#DC2626",strokeWidth:"1.5",strokeLinecap:"round"})]}),es=()=>(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",className:"animate-spin",children:[(0,t.jsx)("circle",{cx:"8",cy:"8",r:"6",stroke:"#D1D5DB",strokeWidth:"2"}),(0,t.jsx)("path",{d:"M8 2a6 6 0 0 1 6 6",stroke:"#6366F1",strokeWidth:"2",strokeLinecap:"round"})]}),el=({title:e,data:l,loading:a,error:r})=>{let[n,i]=(0,s.useState)(!1);return(0,t.jsxs)("div",{className:"border border-gray-200 rounded-lg bg-white",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 cursor-pointer hover:bg-gray-50 transition-colors",onClick:()=>i(!n),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[a?(0,t.jsx)(es,{}):r?(0,t.jsx)(h.Tooltip,{title:r,children:(0,t.jsx)("span",{className:"text-gray-400 text-sm",children:"--"})}):l?.compliant?(0,t.jsx)(ee,{}):(0,t.jsx)(et,{}),(0,t.jsx)("span",{className:"font-medium text-sm text-gray-900",children:e})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[!a&&!r&&l&&(0,t.jsx)("span",{className:`px-2 py-0.5 rounded text-[11px] font-semibold uppercase ${l.compliant?"bg-green-100 text-green-700 border border-green-200":"bg-red-100 text-red-700 border border-red-200"}`,children:l.compliant?"COMPLIANT":"NON-COMPLIANT"}),r&&(0,t.jsx)("span",{className:"px-2 py-0.5 rounded text-[11px] font-medium bg-gray-100 text-gray-500 border border-gray-200",children:"UNAVAILABLE"}),(0,t.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",className:`transition-transform ${n?"rotate-180":""}`,children:(0,t.jsx)("path",{d:"M6 8l4 4 4-4",stroke:"#6B7280",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]})]}),n&&(0,t.jsxs)("div",{className:"border-t border-gray-100 px-4 py-3",children:[a&&(0,t.jsx)("p",{className:"text-sm text-gray-500",children:"Checking compliance..."}),r&&(0,t.jsx)("p",{className:"text-sm text-red-600",children:r}),l&&(0,t.jsx)("div",{className:"space-y-2",children:l.checks.map((e,s)=>(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-0.5",children:e.passed?(0,t.jsx)(ee,{}):(0,t.jsx)(et,{})}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900",children:e.check_name}),(0,t.jsx)("span",{className:"text-[10px] font-mono text-gray-400",children:e.article})]}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-0.5",children:e.detail})]})]},s))})]})]})},ea=({accessToken:e,logEntry:l})=>{let[a,r]=(0,s.useState)(null),[n,i]=(0,s.useState)(null),[o,d]=(0,s.useState)(!1),[c,x]=(0,s.useState)(!1),[m,u]=(0,s.useState)(null),[p,h]=(0,s.useState)(null);return(0,s.useEffect)(()=>{if(!e||!l.request_id)return;let t={request_id:l.request_id,user_id:l.user,model:l.model,timestamp:l.startTime,guardrail_information:l.metadata?.guardrail_information};d(!0),u(null),(0,Z.checkEuAiActCompliance)(e,t).then(r).catch(e=>u(e.message||"Failed to check EU AI Act compliance")).finally(()=>d(!1)),x(!0),h(null),(0,Z.checkGdprCompliance)(e,t).then(i).catch(e=>h(e.message||"Failed to check GDPR compliance")).finally(()=>x(!1))},[e,l]),(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider mb-4",children:"Regulatory Compliance"}),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(el,{title:"EU AI Act",data:a,loading:o,error:m}),(0,t.jsx)(el,{title:"GDPR",data:n,loading:c,error:p})]})]})},er=new Set(["presidio","bedrock","litellm_content_filter"]),en=(e,t)=>{if(null==e)return!1;if("string"==typeof e)return e===t;if(Array.isArray(e))return e.includes(t);if("object"==typeof e&&"default"in e){let s=e.default;if("string"==typeof s)return s===t;if(Array.isArray(s))return s.some(e=>"string"==typeof e&&e===t)}return!1},ei=e=>Object.values(e.masked_entity_count||{}).reduce((e,t)=>e+("number"==typeof t?t:0),0),eo=e=>"success"===(e.guardrail_status??"").toLowerCase(),ed=e=>e.policy_template||e.guardrail_name,ec=()=>(0,t.jsxs)("svg",{width:"40",height:"40",viewBox:"0 0 40 40",fill:"none",children:[(0,t.jsx)("circle",{cx:"20",cy:"20",r:"20",fill:"#EEF2FF"}),(0,t.jsx)("path",{d:"M20 10l8 4v6c0 5.25-3.4 10.15-8 11.5C15.4 30.15 12 25.25 12 20v-6l8-4z",stroke:"#6366F1",strokeWidth:"1.5",fill:"none"}),(0,t.jsx)("path",{d:"M16 20l3 3 5-6",stroke:"#6366F1",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})]}),ex=({className:e})=>(0,t.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 22 22",fill:"none",className:e,children:[(0,t.jsx)("circle",{cx:"11",cy:"11",r:"10",stroke:"#16A34A",strokeWidth:"1.5",fill:"#F0FDF4"}),(0,t.jsx)("path",{d:"M7 11l3 3 5-6",stroke:"#16A34A",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),em=({className:e})=>(0,t.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 22 22",fill:"none",className:e,children:[(0,t.jsx)("circle",{cx:"11",cy:"11",r:"10",stroke:"#DC2626",strokeWidth:"1.5",fill:"#FEF2F2"}),(0,t.jsx)("path",{d:"M8 8l6 6M14 8l-6 6",stroke:"#DC2626",strokeWidth:"1.5",strokeLinecap:"round"})]}),eu=()=>(0,t.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 22 22",fill:"none",children:[(0,t.jsx)("circle",{cx:"11",cy:"11",r:"10",stroke:"#3B82F6",strokeWidth:"1.5",fill:"#EFF6FF"}),(0,t.jsx)("path",{d:"M9 7.5l6 3.5-6 3.5V7.5z",fill:"#3B82F6"})]}),ep=()=>(0,t.jsx)("svg",{width:"22",height:"22",viewBox:"0 0 22 22",fill:"none",children:(0,t.jsx)("circle",{cx:"11",cy:"11",r:"5",fill:"#9CA3AF"})}),eh=({expanded:e})=>(0,t.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",className:`transition-transform ${e?"rotate-180":""}`,children:(0,t.jsx)("path",{d:"M6 8l4 4 4-4",stroke:"#6B7280",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),eg=()=>(0,t.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:(0,t.jsx)("path",{d:"M8 2v8m0 0l-3-3m3 3l3-3M3 12h10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),ef=({matchDetails:e})=>e&&0!==e.length?(0,t.jsxs)("div",{className:"mt-3",children:[(0,t.jsxs)("h5",{className:"text-sm font-medium mb-2 text-gray-700",children:["Match Details (",e.length,")"]}),(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"w-full text-sm",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"border-b text-left text-gray-500",children:[(0,t.jsx)("th",{className:"pb-2 pr-4 font-medium",children:"Type"}),(0,t.jsx)("th",{className:"pb-2 pr-4 font-medium",children:"Method"}),(0,t.jsx)("th",{className:"pb-2 pr-4 font-medium",children:"Action"}),(0,t.jsx)("th",{className:"pb-2 font-medium",children:"Detail"})]})}),(0,t.jsx)("tbody",{children:e.map((e,s)=>(0,t.jsxs)("tr",{className:"border-b border-gray-100",children:[(0,t.jsx)("td",{className:"py-2 pr-4",children:e.type}),(0,t.jsx)("td",{className:"py-2 pr-4",children:(0,t.jsx)("span",{className:"px-2 py-0.5 bg-slate-100 text-slate-700 rounded text-xs",children:e.detection_method??"-"})}),(0,t.jsx)("td",{className:"py-2 pr-4",children:(0,t.jsx)("span",{className:`px-2 py-0.5 rounded text-xs font-medium ${"BLOCK"===e.action_taken?"bg-red-100 text-red-800":"bg-blue-50 text-blue-700"}`,children:e.action_taken??"-"})}),(0,t.jsxs)("td",{className:"py-2 font-mono text-xs text-gray-600 break-all",children:[e.category?`[${e.category}] `:"",e.snippet??"-"]})]},s))})]})})]}):null,ey=({response:e})=>{let[l,a]=(0,s.useState)(!1);return(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsxs)("div",{className:"border rounded-lg overflow-hidden",children:[(0,t.jsx)("div",{className:"flex items-center justify-between p-3 bg-gray-50 cursor-pointer hover:bg-gray-100",onClick:()=>a(!l),children:(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(eh,{expanded:l}),(0,t.jsx)("h5",{className:"font-medium text-sm ml-1",children:"Raw Guardrail Response"})]})}),l&&(0,t.jsx)("div",{className:"p-3 border-t bg-white",children:(0,t.jsx)("pre",{className:"bg-gray-50 rounded p-3 text-xs overflow-x-auto",children:JSON.stringify(e,null,2)})})]})})},ej=({entries:e})=>{let l=(0,s.useMemo)(()=>[...e].sort((e,t)=>(e.start_time??0)-(t.start_time??0)),[e]),a=(0,s.useMemo)(()=>{if(0===l.length)return[];let e=l[0].start_time,t=[];t.push({type:"request",label:"Request received",offsetMs:0});let s=l.filter(e=>en(e.guardrail_mode,"pre_call")),a=l.filter(e=>en(e.guardrail_mode,"post_call")||en(e.guardrail_mode,"logging_only")),r=l.filter(e=>en(e.guardrail_mode,"during_call"));for(let l of s){let s=Math.round((l.end_time-e)*1e3);t.push({type:"guardrail",label:`Pre-call guardrail: ${ed(l)}`,offsetMs:s,status:eo(l)?"PASSED":"FAILED",isSuccess:eo(l)})}let n=s.length>0?Math.max(...s.map(e=>e.end_time)):e,i=Math.round((((a.length>0?Math.min(...a.map(e=>e.start_time)):void 0)??n+1)-e)*1e3);for(let s of(t.push({type:"llm",label:"LLM call",offsetMs:i}),r)){let l=Math.round((s.end_time-e)*1e3);t.push({type:"guardrail",label:`During-call guardrail: ${ed(s)}`,offsetMs:l,status:eo(s)?"PASSED":"FAILED",isSuccess:eo(s)})}for(let s of a){let l=Math.round((s.end_time-e)*1e3);t.push({type:"guardrail",label:`Post-call guardrail: ${ed(s)}`,offsetMs:l,status:eo(s)?"PASSED":"FAILED",isSuccess:eo(s)})}let o=Math.round((Math.max(...l.map(e=>e.end_time))-e)*1e3)+1;return t.push({type:"response",label:"Response returned",offsetMs:o}),t},[l]);return(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider mb-4",children:"Request Lifecycle"}),(0,t.jsx)("div",{className:"relative",children:a.map((e,s)=>(0,t.jsxs)("div",{className:"flex items-start gap-3 relative",children:[(0,t.jsxs)("div",{className:"flex flex-col items-center",children:[(0,t.jsx)("div",{className:"flex-shrink-0",children:"request"===e.type||"response"===e.type?(0,t.jsx)(ep,{}):"llm"===e.type?(0,t.jsx)(eu,{}):e.isSuccess?(0,t.jsx)(ex,{}):(0,t.jsx)(em,{})}),s{let l,a,[r,n]=(0,s.useState)(!1),i=eo(e),o=ei(e),d=ed(e),c=(l=Math.round(1e3*e.duration),`${l}ms`),x=null==(a=(e=>{if(null==e)return null;if("string"==typeof e)return e;if(Array.isArray(e)){let t=e[0];return"string"==typeof t?t:null}if("object"==typeof e&&"default"in e){let t=e.default;if("string"==typeof t)return t;if(Array.isArray(t)){let e=t[0];return"string"==typeof e?e:null}}return null})(e.guardrail_mode))||""===a?"—":a.replace(/_/g,"-").toUpperCase(),m=(e=>{if(!eo(e))return null;if(null!=e.risk_score)return e.risk_score;let t=ei(e),s=e.patterns_checked??0,l=e.confidence_score??0;if(0===s&&0===l)return 0;let a=7*(s>0?t/s:0)+3*l;return t>0&&a<2&&(a=2),Math.min(10,Math.round(10*a)/10)})(e),u=e.guardrail_provider??"presidio",p=e.guardrail_response,g=Array.isArray(p)?p:[],f="bedrock"!==u||null===p||"object"!=typeof p||Array.isArray(p)?void 0:p,y=null!=e.patterns_checked?`${o}/${e.patterns_checked} matched`:o>0?`${o} matched`:null;return(0,t.jsxs)("div",{className:"border border-gray-200 rounded-lg bg-white",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3 cursor-pointer hover:bg-gray-50 transition-colors",onClick:()=>n(!r),children:[(0,t.jsx)("div",{className:"flex-shrink-0",children:i?(0,t.jsx)(ex,{}):(0,t.jsx)(em,{})}),(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-wrap flex-1 min-w-0",children:[(0,t.jsx)("span",{className:"font-semibold text-gray-900 text-sm truncate",children:d}),(0,t.jsx)("span",{className:"px-2 py-0.5 border border-blue-200 bg-blue-50 text-blue-700 rounded text-[11px] font-semibold uppercase flex-shrink-0",children:x}),(0,t.jsx)("span",{className:`px-2 py-0.5 rounded text-[11px] font-semibold uppercase flex-shrink-0 ${i?"bg-green-100 text-green-700 border border-green-200":"bg-red-100 text-red-700 border border-red-200"}`,children:i?"PASSED":"FAILED"}),y&&(0,t.jsx)("span",{className:`px-2 py-0.5 rounded text-[11px] font-medium flex-shrink-0 ${0===o?"bg-green-50 text-green-700 border border-green-200":"bg-amber-50 text-amber-700 border border-amber-200"}`,children:y}),null!=e.confidence_score&&(0,t.jsxs)("span",{className:"px-2 py-0.5 bg-gray-100 text-gray-600 border border-gray-200 rounded text-[11px] font-medium flex-shrink-0",children:[(100*e.confidence_score).toFixed(0),"% conf"]}),null!=m&&i&&(0,t.jsx)(h.Tooltip,{title:`Risk score: ${m}/10`,children:(0,t.jsxs)("span",{className:`px-2 py-0.5 border rounded text-[11px] font-semibold flex-shrink-0 ${m<=3?"text-green-600 bg-green-50 border-green-200":m<=6?"text-amber-600 bg-amber-50 border-amber-200":"text-red-600 bg-red-50 border-red-200"}`,children:["Risk ",m,"/10"]})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-3 flex-shrink-0",children:[(0,t.jsx)("span",{className:"text-sm text-gray-500 font-mono",children:c}),e.detection_method&&(0,t.jsx)("span",{className:"px-2 py-0.5 bg-gray-100 text-gray-600 border border-gray-200 rounded text-[11px] font-medium",children:e.detection_method.split(",")[0].trim()}),(0,t.jsx)(eh,{expanded:r})]})]}),r&&(0,t.jsxs)("div",{className:"border-t border-gray-100 px-4 py-3",children:[e.classification&&(0,t.jsxs)("div",{className:"mb-3 bg-gray-50 rounded-lg p-3 space-y-1",children:[(0,t.jsx)("h5",{className:"text-sm font-medium text-gray-700 mb-2",children:"Classification"}),e.classification.category&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"font-medium w-1/3 text-gray-500",children:"Category:"}),(0,t.jsx)("span",{children:e.classification.category})]}),e.classification.article_reference&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"font-medium w-1/3 text-gray-500",children:"Reference:"}),(0,t.jsx)("span",{className:"font-mono",children:e.classification.article_reference})]}),null!=e.classification.confidence&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"font-medium w-1/3 text-gray-500",children:"Confidence:"}),(0,t.jsxs)("span",{children:[(100*e.classification.confidence).toFixed(0),"%"]})]}),e.classification.reason&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"font-medium w-1/3 text-gray-500",children:"Reason:"}),(0,t.jsx)("span",{children:e.classification.reason})]})]}),e.match_details&&e.match_details.length>0&&(0,t.jsx)(ef,{matchDetails:e.match_details}),o>0&&(0,t.jsxs)("div",{className:"mt-3",children:[(0,t.jsx)("h5",{className:"text-sm font-medium text-gray-700 mb-2",children:"Masked Entities"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:Object.entries(e.masked_entity_count||{}).map(([e,s])=>(0,t.jsxs)("span",{className:"px-2 py-1 bg-blue-50 text-blue-700 rounded text-xs font-medium",children:[e,": ",s]},e))})]}),"presidio"===u&&g.length>0&&(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)($,{entities:g})}),"bedrock"===u&&f&&(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)(W,{response:f})}),"litellm_content_filter"===u&&p&&(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)(X,{response:p})}),u&&!er.has(u)&&p&&(0,t.jsx)(ey,{response:p})]})]})},ev=({data:e,accessToken:l,logEntry:a})=>{let r=(0,s.useMemo)(()=>Array.isArray(e)?e.filter(e=>!!e):e?[e]:[],[e]),n=r.filter(eo).length,i=n===r.length,o=(0,s.useMemo)(()=>Math.round(1e3*r.reduce((e,t)=>e+(t.duration??0),0)),[r]);return((0,s.useMemo)(()=>Array.from(new Set(r.map(e=>e.policy_template).filter(Boolean))),[r]),0===r.length)?null:(0,t.jsxs)("div",{className:"bg-white rounded-xl border border-gray-200 shadow-sm w-full max-w-full overflow-hidden mb-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-6 py-4 border-b border-gray-100",children:[(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)(ec,{}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-gray-900",children:"Guardrails & Policy Compliance"}),(0,t.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,t.jsxs)("span",{className:"text-sm text-gray-500",children:[r.length," guardrail",1!==r.length?"s":""," evaluated"]}),(0,t.jsx)("span",{className:"text-gray-300",children:"|"}),(0,t.jsxs)("span",{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-semibold ${i?"bg-green-50 text-green-700 border border-green-200":"bg-red-50 text-red-700 border border-red-200"}`,children:[i?(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M3 6l2.5 2.5L9 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}):null,n," Passed"]})]})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-6",children:[(0,t.jsx)("div",{className:"text-right",children:(0,t.jsxs)("div",{className:"text-sm font-medium text-gray-900",children:["Total: ",o,"ms overhead"]})}),(0,t.jsxs)("button",{onClick:()=>{let e=new Blob([JSON.stringify(r,null,2)],{type:"application/json"}),t=URL.createObjectURL(e),s=document.createElement("a");s.href=t,s.download=`guardrail-compliance-log-${new Date().toISOString().slice(0,10)}.json`,s.click(),URL.revokeObjectURL(t)},className:"inline-flex items-center gap-2 px-4 py-2 border border-gray-300 rounded-lg text-sm font-medium text-gray-700 bg-white hover:bg-gray-50 transition-colors",children:[(0,t.jsx)(eg,{}),"Export Compliance Log"]})]})]}),l&&a&&(0,t.jsx)("div",{className:"px-6 py-4 border-b border-gray-100",children:(0,t.jsx)(ea,{accessToken:l,logEntry:a})}),(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b border-gray-100 px-6 py-5",children:(0,t.jsx)(ej,{entries:r})}),(0,t.jsxs)("div",{className:"px-6 py-5",children:[(0,t.jsx)("h4",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider mb-4",children:"Evaluation Details"}),(0,t.jsx)("div",{className:"space-y-3",children:r.map((e,s)=>(0,t.jsx)(eb,{entry:e},`${e.guardrail_name??"guardrail"}-${s}`))})]})]})]})};var e_=e.i(291542),eN=e.i(245704),ew=e.i(518617),eS=e.i(19732);let{Text:ek}=g.Typography;function eC({data:e}){let s=Array.isArray(e)?e:[e];return s.length?(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:12},children:[(0,t.jsx)(eS.ExperimentOutlined,{style:{fontSize:16,color:"#6366f1"}}),(0,t.jsx)(ek,{strong:!0,style:{fontSize:15},children:"LLM Judge Results"})]}),s.map((e,s)=>(0,t.jsx)(eT,{entry:e},e.eval_id||s))]}):null}function eT({entry:e}){let s=e.passed,l=s?"#52c41a":"#ff4d4f",a=(e.verdicts||[]).filter(e=>"overall"!==(e.criterion_name||"").toLowerCase()),r=[{title:"Criterion",dataIndex:"criterion_name",key:"criterion_name",width:160,render:e=>(0,t.jsx)(ek,{strong:!0,style:{whiteSpace:"nowrap"},children:e})},{title:"Weight",dataIndex:"weight",key:"weight",width:65,render:e=>null!=e?(0,t.jsxs)(ek,{type:"secondary",style:{fontSize:12},children:[e,"%"]}):null},{title:"Score",dataIndex:"score",key:"score",width:65,render:e=>(0,t.jsx)(ek,{style:{color:e>=70?"#52c41a":e>=50?"#faad14":"#ff4d4f",fontWeight:600},children:e})},{title:(0,t.jsx)(h.Tooltip,{title:"Score × Weight — how much each criterion contributes to the final score",children:(0,t.jsx)("span",{style:{borderBottom:"1px dashed #aaa",cursor:"help"},children:"Weighted"})}),key:"weighted",width:75,render:(e,s)=>{if(null==s.weight)return null;let l=s.score*s.weight/100;return(0,t.jsx)(ek,{type:"secondary",style:{fontSize:12},children:l%1==0?l:l.toFixed(1)})}},{title:"Comment",dataIndex:"reasoning",key:"reasoning",ellipsis:{showTitle:!1},render:e=>(0,t.jsx)(h.Tooltip,{title:e,children:(0,t.jsx)("span",{style:{fontSize:12},children:e})})}];return(0,t.jsxs)(z.Card,{size:"small",className:"mb-3",style:{borderLeft:`3px solid ${l}`},title:(0,t.jsxs)(u.Space,{children:[s?(0,t.jsx)(eN.CheckCircleOutlined,{style:{color:"#52c41a"}}):(0,t.jsx)(ew.CloseCircleOutlined,{style:{color:"#ff4d4f"}}),(0,t.jsx)(ek,{strong:!0,children:e.eval_name}),(0,t.jsx)(p.Tag,{color:s?"success":"error",children:s?"PASSED":"FAILED"}),(0,t.jsx)(h.Tooltip,{title:"Weighted average of all criterion scores. Each criterion has a weight (%) set when the eval was created — higher-weight criteria count more toward the final score.",children:(0,t.jsxs)(ek,{type:"secondary",style:{fontSize:12,cursor:"help",borderBottom:"1px dashed #aaa"},children:[e.overall_score?.toFixed(0)," / 100",null!=e.threshold&&` (threshold: ${e.threshold})`]})})]}),extra:(0,t.jsxs)(u.Space,{size:"small",children:[e.judge_model&&(0,t.jsxs)(ek,{type:"secondary",style:{fontSize:12},children:["Judge: ",e.judge_model]}),null!=e.iteration&&(0,t.jsxs)(ek,{type:"secondary",style:{fontSize:12},children:["Iter: ",e.iteration+1]})]}),children:[e.eval_error&&(0,t.jsxs)(ek,{type:"warning",style:{display:"block",marginBottom:8,fontSize:12},children:["Judge error: ",e.eval_error]}),a.length>0?(0,t.jsx)(e_.Table,{dataSource:a,columns:r,pagination:!1,size:"small",rowKey:"criterion_name",scroll:{x:!0},summary:()=>{if(!a.some(e=>null!=e.weight))return null;let e=a.reduce((e,t)=>e+(null!=t.weight?t.score*t.weight/100:0),0);return(0,t.jsxs)(e_.Table.Summary.Row,{children:[(0,t.jsx)(e_.Table.Summary.Cell,{index:0,children:(0,t.jsx)(ek,{strong:!0,style:{fontSize:12},children:"Total"})}),(0,t.jsx)(e_.Table.Summary.Cell,{index:1}),(0,t.jsx)(e_.Table.Summary.Cell,{index:2}),(0,t.jsx)(e_.Table.Summary.Cell,{index:3,children:(0,t.jsx)(ek,{strong:!0,style:{fontSize:12,color:l},children:e%1==0?e:e.toFixed(1)})}),(0,t.jsx)(e_.Table.Summary.Cell,{index:4})]})}}):(0,t.jsxs)(ek,{type:"secondary",style:{fontSize:12},children:["Score: ",e.overall_score?.toFixed(1)," — no per-criterion breakdown available."]})]})}let eL=e=>null==e?"-":`$${(0,F.formatNumberWithCommas)(e,8)}`,eM=e=>null==e?"-":`${(100*e).toFixed(2)}%`,eD=({costBreakdown:e,totalSpend:s,promptTokens:l,completionTokens:a,cacheHit:r,rawInputTokens:n,cacheReadTokens:i,cacheCreationTokens:o})=>{let d=r?.toLowerCase()==="true",c=void 0!==l||void 0!==a,x=e?.input_cost!==void 0||e?.output_cost!==void 0,m=e?.additional_costs&&Object.entries(e.additional_costs).some(([,e])=>null!=e&&0!==e);if(!(x||c||m||e&&(void 0!==e.discount_percent&&0!==e.discount_percent||void 0!==e.discount_amount&&0!==e.discount_amount||void 0!==e.margin_percent&&0!==e.margin_percent||void 0!==e.margin_fixed_amount&&0!==e.margin_fixed_amount||void 0!==e.margin_total_amount&&0!==e.margin_total_amount)))return null;let u=e&&(void 0!==e.discount_percent&&0!==e.discount_percent||void 0!==e.discount_amount&&0!==e.discount_amount),p=e&&(void 0!==e.margin_percent&&0!==e.margin_percent||void 0!==e.margin_fixed_amount&&0!==e.margin_fixed_amount||void 0!==e.margin_total_amount&&0!==e.margin_total_amount),h=d?0:e?.input_cost,g=d?0:e?.output_cost,f=d?0:e?.original_cost,y=d?0:e?.total_cost??s;return(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(R.Collapse,{expandIconPosition:"start",items:[{key:"1",label:(0,t.jsxs)("div",{className:"flex items-center justify-between w-full",children:[(0,t.jsx)("h3",{className:"text-lg font-medium text-gray-900",children:"Cost Breakdown"}),(0,t.jsxs)("div",{className:"flex items-center space-x-2 mr-4",children:[(0,t.jsx)("span",{className:"text-sm text-gray-500",children:"Total:"}),(0,t.jsxs)("span",{className:"text-sm font-semibold text-gray-900",children:[eL(s),d&&" (Cached)"]})]})]}),children:(0,t.jsxs)("div",{className:"p-6 space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2 max-w-2xl",children:[(()=>{if(e?.cache_read_cost!==void 0||e?.cache_creation_cost!==void 0){let s=d?0:(h??0)-(e?.cache_read_cost??0)-(e?.cache_creation_cost??0);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"text-gray-600 font-medium w-1/3",children:"Input Cost:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:[eL(s),null!=n&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal ml-1",children:["(",n.toLocaleString()," tokens)"]})]})]}),(e?.cache_read_cost??0)>0&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"text-gray-600 font-medium w-1/3",children:"Cache Read Cost:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:[eL(d?0:e?.cache_read_cost),(i??0)>0&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal ml-1",children:["(",(i??0).toLocaleString()," tokens)"]})]})]}),(e?.cache_creation_cost??0)>0&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"text-gray-600 font-medium w-1/3",children:"Cache Write Cost:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:[eL(d?0:e?.cache_creation_cost),(o??0)>0&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal ml-1",children:["(",(o??0).toLocaleString()," tokens)"]})]})]})]})}return(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"text-gray-600 font-medium w-1/3",children:"Input Cost:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:[eL(h),void 0!==l&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal ml-1",children:["(",l.toLocaleString()," prompt tokens)"]})]})]})})(),(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"text-gray-600 font-medium w-1/3",children:"Output Cost:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:[eL(g),void 0!==a&&(0,t.jsxs)("span",{className:"text-gray-500 font-normal ml-1",children:["(",a.toLocaleString()," completion tokens)"]})]})]}),e?.tool_usage_cost!==void 0&&e.tool_usage_cost>0&&(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsx)("span",{className:"text-gray-600 font-medium w-1/3",children:"Tool Usage Cost:"}),(0,t.jsx)("span",{className:"text-gray-900",children:eL(e.tool_usage_cost)})]}),e?.additional_costs&&Object.entries(e.additional_costs).filter(([,e])=>null!=e&&0!==e).map(([e,s])=>(0,t.jsxs)("div",{className:"flex text-sm",children:[(0,t.jsxs)("span",{className:"text-gray-600 font-medium w-1/3",children:[e,":"]}),(0,t.jsx)("span",{className:"text-gray-900",children:eL(s)})]},e))]}),!d&&(0,t.jsx)("div",{className:"pt-2 border-t border-gray-100 max-w-2xl",children:(0,t.jsxs)("div",{className:"flex text-sm font-semibold",children:[(0,t.jsx)("span",{className:"text-gray-900 w-1/3",children:"Original LLM Cost:"}),(0,t.jsx)("span",{className:"text-gray-900",children:eL(f)})]})}),(u||p)&&(0,t.jsxs)("div",{className:"pt-2 space-y-2 max-w-2xl",children:[u&&(0,t.jsxs)("div",{className:"space-y-2",children:[void 0!==e.discount_percent&&0!==e.discount_percent&&(0,t.jsxs)("div",{className:"flex text-sm text-gray-600",children:[(0,t.jsxs)("span",{className:"font-medium w-1/3",children:["Discount (",eM(e.discount_percent),"):"]}),(0,t.jsxs)("span",{className:"text-gray-900",children:["-",eL(e.discount_amount)]})]}),void 0!==e.discount_amount&&void 0===e.discount_percent&&(0,t.jsxs)("div",{className:"flex text-sm text-gray-600",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Discount Amount:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:["-",eL(e.discount_amount)]})]})]}),p&&(0,t.jsxs)("div",{className:"space-y-2",children:[void 0!==e.margin_percent&&0!==e.margin_percent&&(0,t.jsxs)("div",{className:"flex text-sm text-gray-600",children:[(0,t.jsxs)("span",{className:"font-medium w-1/3",children:["Margin (",eM(e.margin_percent),"):"]}),(0,t.jsxs)("span",{className:"text-gray-900",children:["+",eL((e.margin_total_amount||0)-(e.margin_fixed_amount||0))]})]}),void 0!==e.margin_fixed_amount&&0!==e.margin_fixed_amount&&(0,t.jsxs)("div",{className:"flex text-sm text-gray-600",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Margin:"}),(0,t.jsxs)("span",{className:"text-gray-900",children:["+",eL(e.margin_fixed_amount)]})]})]})]}),(0,t.jsx)("div",{className:"mt-4 pt-4 border-t border-gray-200 max-w-2xl",children:(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)("span",{className:"font-bold text-sm text-gray-900 w-1/3",children:"Final Calculated Cost:"}),(0,t.jsxs)("span",{className:"text-sm font-bold text-gray-900",children:[eL(y),d&&" (Cached)"]})]})})]})}]})})},eE=({show:e})=>e?(0,t.jsxs)("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-4 flex items-start",children:[(0,t.jsx)("div",{className:"text-blue-500 mr-3 flex-shrink-0 mt-0.5",children:(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,t.jsx)("line",{x1:"12",y1:"16",x2:"12",y2:"12"}),(0,t.jsx)("line",{x1:"12",y1:"8",x2:"12.01",y2:"8"})]})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"text-sm font-medium text-blue-800",children:"Request/Response Data Not Available"}),(0,t.jsxs)("p",{className:"text-sm text-blue-700 mt-1",children:["To view request and response details, enable prompt storage in your LiteLLM configuration by adding the following to your ",(0,t.jsx)("code",{className:"bg-blue-100 px-1 py-0.5 rounded",children:"proxy_config.yaml"})," file, or toggle the setting in ",(0,t.jsx)("strong",{children:"Admin Settings → Logging Settings"}),"."]}),(0,t.jsx)("pre",{className:"mt-2 bg-white p-3 rounded border border-blue-200 text-xs font-mono overflow-auto",children:`general_settings: + store_model_in_db: true + store_prompts_in_spend_logs: true`}),(0,t.jsx)("p",{className:"text-xs text-blue-700 mt-2",children:"Note: This will only affect new requests after the configuration change."})]})]}):null;function eA({data:e}){let[l,a]=(0,s.useState)({});if(!e||0===e.length)return null;let r=e=>new Date(1e3*e).toLocaleString();return(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(R.Collapse,{defaultActiveKey:["1"],expandIconPosition:"start",items:[{key:"1",label:(0,t.jsx)("h3",{className:"text-lg font-medium text-gray-900",children:"Vector Store Requests"}),children:(0,t.jsx)("div",{className:"p-4",children:e.map((e,s)=>{var n,i;return(0,t.jsxs)("div",{className:"mb-6 last:mb-0",children:[(0,t.jsx)("div",{className:"bg-white rounded-lg border p-4 mb-4",children:(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Query:"}),(0,t.jsx)("span",{className:"font-mono",children:e.query})]}),(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Vector Store ID:"}),(0,t.jsx)("span",{className:"font-mono",children:e.vector_store_id})]}),(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Provider:"}),(0,t.jsx)("span",{className:"flex items-center",children:(()=>{let{logo:s,displayName:l}=(0,v.getProviderLogoAndName)(e.custom_llm_provider);return(0,t.jsxs)(t.Fragment,{children:[s&&(0,t.jsx)("img",{src:s,alt:`${l} logo`,className:"h-5 w-5 mr-2"}),l]})})()})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Start Time:"}),(0,t.jsx)("span",{children:r(e.start_time)})]}),(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"End Time:"}),(0,t.jsx)("span",{children:r(e.end_time)})]}),(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"font-medium w-1/3",children:"Duration:"}),(0,t.jsx)("span",{children:(n=e.start_time,i=e.end_time,`${((i-n)*1e3).toFixed(2)}ms`)})]})]})]})}),(0,t.jsx)("h4",{className:"font-medium mb-2",children:"Search Results"}),(0,t.jsx)("div",{className:"space-y-2",children:e.vector_store_search_response.data.map((e,r)=>{let n=l[`${s}-${r}`]||!1;return(0,t.jsxs)("div",{className:"border rounded-lg overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center p-3 bg-gray-50 cursor-pointer",onClick:()=>{let e;return e=`${s}-${r}`,void a(t=>({...t,[e]:!t[e]}))},children:[(0,t.jsx)("svg",{className:`w-5 h-5 mr-2 transition-transform ${n?"transform rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsxs)("span",{className:"font-medium mr-2",children:["Result ",r+1]}),(0,t.jsxs)("span",{className:"text-gray-500 text-sm",children:["Score: ",(0,t.jsx)("span",{className:"font-mono",children:e.score.toFixed(4)})]})]})]}),n&&(0,t.jsx)("div",{className:"p-3 border-t bg-white",children:e.content.map((e,s)=>(0,t.jsxs)("div",{className:"mb-2 last:mb-0",children:[(0,t.jsx)("div",{className:"text-xs text-gray-500 mb-1",children:e.type}),(0,t.jsx)("pre",{className:"text-xs font-mono whitespace-pre-wrap break-all bg-gray-50 p-2 rounded",children:e.text})]},s))})]},r)})})]},s)})})}]})})}let{Text:ez}=g.Typography;function eI({value:e,maxWidth:s=180}){return e?(0,t.jsx)(h.Tooltip,{title:e,children:(0,t.jsx)(ez,{copyable:{text:e,tooltips:["Copy","Copied!"]},style:{maxWidth:s,display:"inline-block",verticalAlign:"bottom",fontFamily:S,fontSize:12},ellipsis:!0,children:e})}):(0,t.jsx)(ez,{type:"secondary",children:"-"})}let{Text:eO}=g.Typography;function eR({prompt:e=0,completion:s=0,total:l=0}){return(0,t.jsxs)(eO,{children:[l.toLocaleString()," (",e.toLocaleString()," prompt tokens + ",s.toLocaleString()," completion tokens)"]})}let eP=e=>!!e&&e instanceof Date,eB=e=>"object"==typeof e&&null!==e,eF=e=>!!e&&e instanceof Object&&"function"==typeof e;function eq(e,t){return void 0===t&&(t=!1),!e||t?`"${e}"`:e}function e$(e){let{field:t,value:l,data:a,lastElement:r,openBracket:n,closeBracket:i,level:o,style:d,shouldExpandNode:c,clickToExpandNode:x,outerRef:m,beforeExpandChange:u}=e,p=(0,s.useRef)(!1),[h,g]=(0,s.useState)(()=>c(o,l,t)),f=(0,s.useRef)(null);(0,s.useEffect)(()=>{p.current?g(c(o,l,t)):p.current=!0},[c]);let y=(0,s.useId)();if(0===a.length)return function(e){let{field:t,openBracket:l,closeBracket:a,lastElement:r,style:n}=e;return(0,s.createElement)("div",{className:n.basicChildStyle,role:"treeitem","aria-selected":void 0},(t||""===t)&&(0,s.createElement)("span",{className:n.label},eq(t,n.quotesForFieldNames),":"),(0,s.createElement)("span",{className:n.punctuation},l),(0,s.createElement)("span",{className:n.punctuation},a),!r&&(0,s.createElement)("span",{className:n.punctuation},","))}({field:t,openBracket:n,closeBracket:i,lastElement:r,style:d});let j=h?d.collapseIcon:d.expandIcon,b=h?d.ariaLables.collapseJson:d.ariaLables.expandJson,v=o+1,_=a.length-1,N=e=>{h!==e&&(!u||u({level:o,value:l,field:t,newExpandValue:e}))&&g(e)},w=e=>{if("ArrowRight"===e.key||"ArrowLeft"===e.key)e.preventDefault(),N("ArrowRight"===e.key);else if("ArrowUp"===e.key||"ArrowDown"===e.key){e.preventDefault();let t="ArrowUp"===e.key?-1:1;if(!m.current)return;let s=m.current.querySelectorAll("[role=button]"),l=-1;for(let e=0;e{var e;N(!h);let t=f.current;if(!t)return;let s=null==(e=m.current)?void 0:e.querySelector('[role=button][tabindex="0"]');s&&(s.tabIndex=-1),t.tabIndex=0,t.focus()};return(0,s.createElement)("div",{className:d.basicChildStyle,role:"treeitem","aria-expanded":h,"aria-selected":void 0},(0,s.createElement)("span",{className:j,onClick:S,onKeyDown:w,role:"button","aria-label":b,"aria-expanded":h,"aria-controls":h?y:void 0,ref:f,tabIndex:0===o?0:-1}),(t||""===t)&&(x?(0,s.createElement)("span",{className:d.clickableLabel,onClick:S,onKeyDown:w},eq(t,d.quotesForFieldNames),":"):(0,s.createElement)("span",{className:d.label},eq(t,d.quotesForFieldNames),":")),(0,s.createElement)("span",{className:d.punctuation},n),h?(0,s.createElement)("ul",{id:y,role:"group",className:d.childFieldsContainer},a.map((e,t)=>(0,s.createElement)(eV,{key:e[0]||t,field:e[0],value:e[1],style:d,lastElement:t===_,level:v,shouldExpandNode:c,clickToExpandNode:x,beforeExpandChange:u,outerRef:m}))):(0,s.createElement)("span",{className:d.collapsedContent,onClick:S,onKeyDown:w}),(0,s.createElement)("span",{className:d.punctuation},i),!r&&(0,s.createElement)("span",{className:d.punctuation},","))}function eH(e){let{field:t,value:s,style:l,lastElement:a,shouldExpandNode:r,clickToExpandNode:n,level:i,outerRef:o,beforeExpandChange:d}=e;return e$({field:t,value:s,lastElement:a||!1,level:i,openBracket:"{",closeBracket:"}",style:l,shouldExpandNode:r,clickToExpandNode:n,data:Object.keys(s).map(e=>[e,s[e]]),outerRef:o,beforeExpandChange:d})}function eK(e){let{field:t,value:s,style:l,lastElement:a,level:r,shouldExpandNode:n,clickToExpandNode:i,outerRef:o,beforeExpandChange:d}=e;return e$({field:t,value:s,lastElement:a||!1,level:r,openBracket:"[",closeBracket:"]",style:l,shouldExpandNode:n,clickToExpandNode:i,data:s.map(e=>[void 0,e]),outerRef:o,beforeExpandChange:d})}function eY(e){let t,{field:l,value:a,style:r,lastElement:n}=e,i=r.otherValue;if(null===a)t="null",i=r.nullValue;else if(void 0===a)t="undefined",i=r.undefinedValue;else if("string"==typeof a||a instanceof String){var o;o=!r.noQuotesForStringValues,t=r.stringifyStringValues?JSON.stringify(a):o?`"${a}"`:a,i=r.stringValue}else if("boolean"==typeof a||a instanceof Boolean)t=a?"true":"false",i=r.booleanValue;else if("number"==typeof a||a instanceof Number)t=a.toString(),i=r.numberValue;else"bigint"==typeof a||a instanceof BigInt?(t=`${a.toString()}n`,i=r.numberValue):t=eP(a)?a.toISOString():eF(a)?"function() { }":a.toString();return(0,s.createElement)("div",{className:r.basicChildStyle,role:"treeitem","aria-selected":void 0},(l||""===l)&&(0,s.createElement)("span",{className:r.label},eq(l,r.quotesForFieldNames),":"),(0,s.createElement)("span",{className:i},t),!n&&(0,s.createElement)("span",{className:r.punctuation},","))}function eV(e){let t=e.value;return Array.isArray(t)?(0,s.createElement)(eK,Object.assign({},e)):!eB(t)||eP(t)||eF(t)?(0,s.createElement)(eY,Object.assign({},e)):(0,s.createElement)(eH,Object.assign({},e))}let eU={container:"_2IvMF _GzYRV",basicChildStyle:"_2bkNM",childFieldsContainer:"_1BXBN",label:"_1MGIk",clickableLabel:"_2YKJg _1MGIk _1MFti",nullValue:"_2T6PJ",undefinedValue:"_1Gho6",stringValue:"_vGjyY",booleanValue:"_3zQKs",numberValue:"_1bQdo",otherValue:"_1xvuR",punctuation:"_3uHL6 _3eOF8",collapseIcon:"_oLqym _f10Tu _1MFti _1LId0",expandIcon:"_2AXVT _f10Tu _1MFti _1UmXx",collapsedContent:"_2KJWg _1pNG9 _1MFti",noQuotesForStringValues:!1,quotesForFieldNames:!1,ariaLables:{collapseJson:"collapse JSON",expandJson:"expand JSON"},stringifyStringValues:!1},eW=()=>!0,eJ=e=>{let{data:t,style:l=eU,shouldExpandNode:a=eW,clickToExpandNode:r=!1,beforeExpandChange:n,compactTopLevel:i,...o}=e,d=(0,s.useRef)(null);return(0,s.createElement)("div",Object.assign({"aria-label":"JSON view"},o,{className:l.container,ref:d,role:"tree"}),i&&eB(t)?Object.entries(t).map(e=>{let[t,i]=e;return(0,s.createElement)(eV,{key:t,field:t,value:i,style:{...eU,...l},lastElement:!0,level:1,shouldExpandNode:a,clickToExpandNode:r,beforeExpandChange:n,outerRef:d})}):(0,s.createElement)(eV,{value:t,style:{...eU,...l},lastElement:!0,level:0,shouldExpandNode:a,clickToExpandNode:r,outerRef:d,beforeExpandChange:n}))},{Text:eG}=g.Typography;function eQ({data:e}){return e?(0,t.jsx)("div",{style:{maxHeight:400,overflow:"auto",background:"#fafafa",padding:12,borderRadius:4},children:(0,t.jsx)("div",{className:"[&_[role='tree']]:bg-white [&_[role='tree']]:text-slate-900",children:(0,t.jsx)(eJ,{data:e,style:eU,clickToExpandNode:!0})})}):(0,t.jsx)(eG,{type:"secondary",children:"No data"})}function eX(e){if("string"==typeof e)try{return JSON.parse(e)}catch{}return e}function eZ(e){return Array.isArray(e)?e:e?[e]:[]}function e0(e){if("string"==typeof e)try{return JSON.parse(e)}catch{}return e}var e1=e.i(366308);let{Text:e2}=g.Typography;function e5({tool:e}){let s=Object.entries(e.parameters?.properties||{}).map(([t,s])=>({key:t,name:t,type:s.type||"any",description:s.description||"-",required:e.parameters?.required?.includes(t)||!1})),l=[{title:"Parameter",dataIndex:"name",key:"name",render:(e,s)=>(0,t.jsxs)(e2,{code:!0,children:[e,s.required&&(0,t.jsx)(e2,{type:"danger",children:"*"})]})},{title:"Type",dataIndex:"type",key:"type",render:e=>(0,t.jsx)(e2,{code:!0,style:{color:"#1890ff"},children:e})},{title:"Description",dataIndex:"description",key:"description",render:e=>(0,t.jsx)(e2,{type:"secondary",children:e})}];return(0,t.jsxs)("div",{children:[e.description&&(0,t.jsx)("div",{style:{marginBottom:16},children:(0,t.jsx)(e2,{style:{lineHeight:1.6,whiteSpace:"pre-wrap"},children:e.description})}),s.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)(e2,{type:"secondary",style:{fontSize:12,display:"block",marginBottom:8},children:"Parameters"}),(0,t.jsx)(e_.Table,{dataSource:s,columns:l,pagination:!1,size:"small",bordered:!0})]}),e.called&&e.callData&&(0,t.jsxs)("div",{style:{marginTop:16},children:[(0,t.jsx)(e2,{type:"secondary",style:{fontSize:12,display:"block",marginBottom:8},children:"Called With"}),(0,t.jsx)("div",{style:{background:"#f6ffed",border:"1px solid #b7eb8f",borderRadius:4,padding:12},children:(0,t.jsx)("pre",{style:{margin:0,fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:JSON.stringify(e.callData.arguments,null,2)})})]})]})}function e4({tool:e}){let s={type:"function",function:{name:e.name,description:e.description,parameters:e.parameters}};return(0,t.jsx)("pre",{style:{margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:12,background:"#fafafa",padding:12,borderRadius:4,maxHeight:300,overflow:"auto"},children:JSON.stringify(s,null,2)})}let{Text:e6}=g.Typography;function e3({tool:e}){let[l,a]=(0,s.useState)("formatted");return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:12},children:[(0,t.jsx)(e6,{type:"secondary",style:{fontSize:12},children:"Description"}),(0,t.jsxs)(P.Radio.Group,{size:"small",value:l,onChange:e=>a(e.target.value),children:[(0,t.jsx)(P.Radio.Button,{value:"formatted",children:"Formatted"}),(0,t.jsx)(P.Radio.Button,{value:"json",children:"JSON"})]})]}),"formatted"===l?(0,t.jsx)(e5,{tool:e}):(0,t.jsx)(e4,{tool:e})]})}let{Text:e8}=g.Typography;function e7({tool:e}){let[l,a]=(0,s.useState)(!1);return(0,t.jsxs)("div",{style:{border:"1px solid #f0f0f0",borderRadius:8,overflow:"hidden"},children:[(0,t.jsxs)("div",{onClick:()=>a(!l),style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 16px",cursor:"pointer",background:l?"#fafafa":"#fff",transition:"background 0.2s"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,t.jsx)(e1.ToolOutlined,{style:{color:"#8c8c8c",fontSize:14}}),(0,t.jsxs)(e8,{style:{fontSize:14},children:[e.index,". ",e.name]})]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,t.jsx)(p.Tag,{color:e.called?"blue":"default",children:e.called?"called":"not called"}),l?(0,t.jsx)(j.DownOutlined,{style:{fontSize:12,color:"#8c8c8c"}}):(0,t.jsx)(o.RightOutlined,{style:{fontSize:12,color:"#8c8c8c"}})]})]}),l&&(0,t.jsx)("div",{style:{padding:"16px",borderTop:"1px solid #f0f0f0",background:"#fff"},children:(0,t.jsx)(e3,{tool:e})})]})}let{Text:e9}=g.Typography;function te({log:e}){let s=function(e){let t,s=!(t=e0(e.proxy_server_request||e.messages))||Array.isArray(t)?[]:"object"==typeof t&&t.tools&&Array.isArray(t.tools)?t.tools:[];if(0===s.length)return[];let l=function(e){let t=e0(e.response);if(!t||"object"!=typeof t)return[];let s=t.choices;if(Array.isArray(s)&&s.length>0){let e=s[0].message;if(e&&Array.isArray(e.tool_calls))return e.tool_calls}if(Array.isArray(t.content)){let e=t.content.filter(e=>"tool_use"===e.type);if(e.length>0)return e.map(e=>({id:e.id,type:"function",function:{name:e.name,arguments:JSON.stringify(e.input||{})}}))}if(Array.isArray(t.tool_calls))return t.tool_calls;if(Array.isArray(t.results)){let e=[];for(let s of t.results)if("response.done"===s.type&&s.response?.output)for(let t of s.response.output)"function_call"===t.type&&e.push({id:t.call_id||"",type:"function",function:{name:t.name||"",arguments:t.arguments||"{}"}});if(e.length>0)return e}return[]}(e),a=new Set(l.map(e=>e.function?.name).filter(Boolean)),r=new Map;return l.forEach(e=>{let t=e.function?.name;t&&r.set(t,{id:e.id,name:t,arguments:function(e){try{return JSON.parse(e)}catch{return{}}}(e.function?.arguments||"{}")})}),s.map((e,t)=>{let s=e.function?.name||e.name||`Tool ${t+1}`;return{index:t+1,name:s,description:e.function?.description||e.description||"",parameters:e.function?.parameters||e.input_schema||{},called:a.has(s),callData:r.get(s)}})}(e);if(0===s.length)return null;let l=s.length,a=s.filter(e=>e.called).length,r=s.slice(0,2).map(e=>e.name).join(", "),n=s.length>2;return(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(R.Collapse,{expandIconPosition:"start",items:[{key:"1",label:(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,flexWrap:"wrap"},children:[(0,t.jsx)("h3",{className:"text-lg font-medium text-gray-900",children:"Tools"}),(0,t.jsxs)(e9,{type:"secondary",style:{fontSize:14},children:[l," provided, ",a," called"]}),(0,t.jsxs)(e9,{type:"secondary",style:{fontSize:14},children:["• ",r,n&&"..."]})]}),children:(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:s.map(e=>(0,t.jsx)(e7,{tool:e},e.name))})}]})})}let tt=e=>{if(!e)return{};if("string"==typeof e)try{return JSON.parse(e)}catch{return{raw:e}}return e};var ts=e.i(888259),tl=e.i(264843),y=y;let{Text:ta}=g.Typography;function tr({type:e,tokens:s,cost:a,onCopy:r,isCollapsed:i,onToggleCollapse:o,turnCount:d}){return(0,t.jsxs)("div",{onClick:o,style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 16px",borderBottom:i?"none":"1px solid #f0f0f0",background:"#fafafa",cursor:o?"pointer":"default",transition:"background 0.15s ease"},onMouseEnter:e=>{o&&(e.currentTarget.style.background="#f5f5f5")},onMouseLeave:e=>{e.currentTarget.style.background="#fafafa"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:16},children:[o&&(0,t.jsx)("div",{style:{display:"flex",alignItems:"center"},children:i?(0,t.jsx)(j.DownOutlined,{style:{fontSize:10,color:"#8c8c8c"}}):(0,t.jsx)(y.default,{style:{fontSize:10,color:"#8c8c8c"}})}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:["input"===e?(0,t.jsx)(tl.MessageOutlined,{style:{color:"#8c8c8c",fontSize:14}}):(0,t.jsx)("span",{style:{fontSize:14,filter:"grayscale(1)",opacity:.6},children:"✨"}),(0,t.jsx)(ta,{style:{fontWeight:500,fontSize:14},children:"input"===e?"Input":"Output"})]}),void 0!==s&&(0,t.jsxs)(ta,{type:"secondary",style:{fontSize:12},children:["Tokens: ",s.toLocaleString()]}),void 0!==a&&(0,t.jsxs)(ta,{type:"secondary",style:{fontSize:12},children:["Cost: $",a.toFixed(6)]}),void 0!==d&&d>0&&(0,t.jsxs)(ta,{type:"secondary",style:{fontSize:12},children:["Turns: ",d]})]}),(0,t.jsx)(h.Tooltip,{title:"Copy",children:(0,t.jsx)(l.Button,{type:"text",size:"small",icon:(0,t.jsx)(n.CopyOutlined,{}),onClick:e=>{e.stopPropagation(),r()}})})]})}let{Text:tn}=g.Typography;function ti({label:e,content:l,defaultExpanded:a=!1}){let[r,n]=(0,s.useState)(a),[i,d]=(0,s.useState)(!1),c=l?.length||0;return l&&0!==c?(0,t.jsxs)("div",{style:{marginBottom:8},children:[(0,t.jsxs)("div",{onClick:()=>n(!r),onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),style:{display:"flex",alignItems:"center",gap:6,cursor:"pointer",padding:"4px 0",borderRadius:4,background:i?"#f5f5f5":"transparent",transition:"background 0.15s ease",marginBottom:4*!!r},children:[r?(0,t.jsx)(j.DownOutlined,{style:{fontSize:10,color:"#8c8c8c"}}):(0,t.jsx)(o.RightOutlined,{style:{fontSize:10,color:"#8c8c8c"}}),(0,t.jsx)(tn,{type:"secondary",style:{fontSize:10,letterSpacing:"0.5px",textTransform:"uppercase"},children:e}),(0,t.jsxs)(tn,{type:"secondary",style:{fontSize:10},children:["(",c.toLocaleString()," chars)"]})]}),(0,t.jsx)("div",{style:{maxHeight:r?"2000px":"0px",overflow:"hidden",transition:"max-height 0.2s ease-out, opacity 0.2s ease-out",opacity:+!!r},children:(0,t.jsx)("div",{style:{paddingLeft:16,fontSize:13,lineHeight:1.7,color:"#262626",borderLeft:"1px solid #f0f0f0",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:l})})]}):null}let{Text:to}=g.Typography;function td({tool:e,compact:s=!1}){return(0,t.jsxs)("div",{style:{background:"#f8f9fa",border:"1px solid #e9ecef",borderRadius:6,padding:s?"6px 10px":"10px 14px",marginTop:8,fontFamily:"monospace",fontSize:12,position:"relative"},children:[(0,t.jsx)("div",{style:{position:"absolute",top:-8,left:12,background:"#fff",padding:"0 6px",fontSize:10,color:"#8c8c8c",border:"1px solid #e9ecef",borderRadius:3},children:"function"}),(0,t.jsx)(to,{strong:!0,style:{fontSize:13,display:"block",marginBottom:6},children:e.name}),Object.keys(e.arguments).length>0&&(0,t.jsx)("div",{children:Object.entries(e.arguments).map(([e,s])=>(0,t.jsxs)("div",{style:{marginBottom:2},children:[(0,t.jsxs)(to,{type:"secondary",style:{fontSize:12},children:[e,":"," "]}),(0,t.jsx)(to,{style:{fontSize:12},children:JSON.stringify(s)})]},e))})]})}let{Text:tc}=g.Typography;function tx({label:e,content:s,toolCalls:l,isCompact:a=!1}){let r=s&&"null"!==s&&s.length>0?s:null,n=l&&l.length>0;return r||n?(0,t.jsxs)("div",{style:{marginBottom:8*!!a},children:[(0,t.jsx)(tc,{type:"secondary",style:{fontSize:10,letterSpacing:"0.5px",textTransform:"uppercase",display:"block",marginBottom:3},children:e}),r&&(0,t.jsx)("div",{style:{fontSize:13,lineHeight:1.7,color:"#262626",whiteSpace:"pre-wrap",wordBreak:"break-word",marginBottom:6*!!n},children:r}),n&&(0,t.jsx)("div",{children:l.map((e,s)=>(0,t.jsx)(td,{tool:e,compact:a},e.id||s))})]}):null}let{Text:tm}=g.Typography;function tu({messages:e}){let[l,a]=(0,s.useState)(!1),[r,n]=(0,s.useState)(!1);return 0===e.length?null:(0,t.jsxs)("div",{style:{marginBottom:8},children:[(0,t.jsxs)("div",{onClick:()=>a(!l),onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),style:{display:"flex",alignItems:"center",gap:6,cursor:"pointer",padding:"4px 0",borderRadius:4,background:r?"#f5f5f5":"transparent",transition:"background 0.15s ease",marginBottom:4*!!l},children:[l?(0,t.jsx)(j.DownOutlined,{style:{fontSize:10,color:"#8c8c8c"}}):(0,t.jsx)(o.RightOutlined,{style:{fontSize:10,color:"#8c8c8c"}}),(0,t.jsxs)(tm,{type:"secondary",style:{fontSize:10,letterSpacing:"0.5px",textTransform:"uppercase"},children:["HISTORY (",e.length," message",1!==e.length?"s":"",")"]})]}),(0,t.jsx)("div",{style:{maxHeight:l?"2000px":"0px",overflow:"hidden",transition:"max-height 0.2s ease-out, opacity 0.2s ease-out",opacity:+!!l},children:(0,t.jsx)("div",{style:{paddingLeft:16,borderLeft:"1px solid #f0f0f0"},children:e.map((e,s)=>(0,t.jsx)(tx,{label:e.role.toUpperCase(),content:e.content,toolCalls:e.toolCalls,isCompact:!0},s))})})]})}function tp({messages:e,promptTokens:l,inputCost:a}){let[r,n]=(0,s.useState)(!1);if(0===e.length)return null;let i=e.find(e=>"system"===e.role),o=e.filter(e=>"system"!==e.role),d=o.length>0?o[o.length-1]:null,c=o.slice(0,-1);return(0,t.jsxs)("div",{style:{border:"1px solid #f0f0f0",borderRadius:6,marginBottom:8,overflow:"hidden"},children:[(0,t.jsx)(tr,{type:"input",tokens:l,cost:a,onCopy:()=>{let e=d?.content||"";navigator.clipboard.writeText(e),ts.default.success("Input copied")},isCollapsed:r,onToggleCollapse:()=>n(!r)}),(0,t.jsx)("div",{style:{maxHeight:r?"0px":"10000px",overflow:"hidden",transition:"max-height 0.3s ease-out, opacity 0.3s ease-out",opacity:+!r},children:(0,t.jsxs)("div",{style:{padding:"12px 16px"},children:[i&&(0,t.jsx)(ti,{label:"SYSTEM",content:i.content,defaultExpanded:!!(i.content&&i.content.length<200)}),c.length>0&&(0,t.jsx)(tu,{messages:c}),d&&(0,t.jsx)(tx,{label:d.role.toUpperCase(),content:d.content,toolCalls:d.toolCalls})]})})]})}let{Text:th}=g.Typography;function tg({message:e,completionTokens:l,outputCost:a}){let[r,n]=(0,s.useState)(!1),i=()=>{if(!e)return;let t=e.content||"";navigator.clipboard.writeText(t),ts.default.success("Output copied")};return e?(0,t.jsxs)("div",{style:{border:"1px solid #f0f0f0",borderRadius:6,overflow:"hidden"},children:[(0,t.jsx)(tr,{type:"output",tokens:l,cost:a,onCopy:i,isCollapsed:r,onToggleCollapse:()=>n(!r)}),(0,t.jsx)("div",{style:{maxHeight:r?"0px":"10000px",overflow:"hidden",transition:"max-height 0.3s ease-out, opacity 0.3s ease-out",opacity:+!r},children:(0,t.jsx)("div",{style:{padding:"12px 16px"},children:(0,t.jsx)(tx,{label:"ASSISTANT",content:e.content,toolCalls:e.toolCalls})})})]}):(0,t.jsxs)("div",{style:{border:"1px solid #f0f0f0",borderRadius:6,overflow:"hidden"},children:[(0,t.jsx)(tr,{type:"output",tokens:l,cost:a,onCopy:i,isCollapsed:r,onToggleCollapse:()=>n(!r)}),(0,t.jsx)("div",{style:{maxHeight:r?"0px":"10000px",overflow:"hidden",transition:"max-height 0.3s ease-out, opacity 0.3s ease-out",opacity:+!r},children:(0,t.jsx)("div",{style:{padding:"12px 16px"},children:(0,t.jsx)(th,{type:"secondary",style:{fontSize:13,fontStyle:"italic"},children:"No response data available"})})})]})}var tf=e.i(782273),ty=e.i(313603),tj=e.i(793916),y=y;let{Text:tb}=g.Typography;function tv({response:e,metrics:s}){let l=e?.results||[],a=e?.usage,r=l.find(e=>"session.created"===e.type||"session.updated"===e.type),n=l.filter(e=>"response.done"===e.type);return(0,t.jsxs)("div",{children:[r?.session&&(0,t.jsx)(t_,{session:r.session,turnCount:n.length}),n.length>0&&(0,t.jsx)(tN,{responses:n.map(e=>e.response).filter(Boolean),totalUsage:a,metrics:s}),!r&&0===n.length&&(0,t.jsx)("div",{style:{border:"1px solid #f0f0f0",borderRadius:6,padding:"16px",color:"#8c8c8c",fontStyle:"italic",fontSize:13},children:"No recognized realtime events found"})]})}function t_({session:e,turnCount:l}){let[a,r]=(0,s.useState)(!0);return(0,t.jsxs)("div",{style:{border:"1px solid #f0f0f0",borderRadius:6,marginBottom:8,overflow:"hidden"},children:[(0,t.jsx)("div",{onClick:()=>r(!a),style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 16px",borderBottom:a?"none":"1px solid #f0f0f0",background:"#fafafa",cursor:"pointer",transition:"background 0.15s ease"},onMouseEnter:e=>{e.currentTarget.style.background="#f5f5f5"},onMouseLeave:e=>{e.currentTarget.style.background="#fafafa"},children:(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:16},children:[(0,t.jsx)("div",{style:{display:"flex",alignItems:"center"},children:a?(0,t.jsx)(j.DownOutlined,{style:{fontSize:10,color:"#8c8c8c"}}):(0,t.jsx)(y.default,{style:{fontSize:10,color:"#8c8c8c"}})}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,t.jsx)(ty.SettingOutlined,{style:{color:"#8c8c8c",fontSize:14}}),(0,t.jsx)(tb,{style:{fontWeight:500,fontSize:14},children:"Session"})]}),(0,t.jsx)(tb,{type:"secondary",style:{fontSize:12},children:e.model}),l>0&&(0,t.jsxs)(p.Tag,{color:"purple",style:{margin:0,fontWeight:500},children:[l," ",1===l?"turn":"turns"]}),e.voice&&(0,t.jsxs)(p.Tag,{color:"blue",style:{margin:0},children:[(0,t.jsx)(tf.SoundOutlined,{})," ",e.voice]}),e.modalities&&(0,t.jsx)("div",{style:{display:"flex",gap:4},children:e.modalities.map(e=>(0,t.jsxs)(p.Tag,{style:{margin:0},children:["audio"===e?(0,t.jsx)(tj.AudioOutlined,{}):(0,t.jsx)(tl.MessageOutlined,{})," ",e]},e))})]})}),(0,t.jsx)("div",{style:{maxHeight:a?"0px":"10000px",overflow:"hidden",transition:"max-height 0.3s ease-out, opacity 0.3s ease-out",opacity:+!a},children:(0,t.jsxs)("div",{style:{padding:"12px 16px"},children:[(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"8px 24px",fontSize:13},children:[(0,t.jsx)(tC,{label:"Model",value:e.model}),(0,t.jsx)(tC,{label:"Voice",value:e.voice}),(0,t.jsx)(tC,{label:"Temperature",value:e.temperature}),(0,t.jsx)(tC,{label:"Max Output Tokens",value:e.max_response_output_tokens}),(0,t.jsx)(tC,{label:"Input Audio Format",value:e.input_audio_format}),(0,t.jsx)(tC,{label:"Output Audio Format",value:e.output_audio_format}),e.turn_detection&&(0,t.jsx)(tC,{label:"Turn Detection",value:e.turn_detection.type}),e.tools&&e.tools.length>0&&(0,t.jsx)(tC,{label:"Tools",value:`${e.tools.length} tool(s)`})]}),e.instructions&&(0,t.jsxs)("div",{style:{marginTop:12},children:[(0,t.jsx)(tb,{type:"secondary",style:{fontSize:10,letterSpacing:"0.5px",textTransform:"uppercase",display:"block",marginBottom:4},children:"Instructions"}),(0,t.jsx)("div",{style:{fontSize:12,lineHeight:1.6,color:"#595959",background:"#fafafa",padding:"8px 12px",borderRadius:4,border:"1px solid #f0f0f0",whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:120,overflowY:"auto"},children:e.instructions})]})]})})]})}function tN({responses:e,totalUsage:l,metrics:a}){let[r,n]=(0,s.useState)(!1),i=l?.total_tokens,o=e.length;return(0,t.jsxs)("div",{style:{border:"1px solid #f0f0f0",borderRadius:6,overflow:"hidden"},children:[(0,t.jsx)(tr,{type:"output",tokens:a?.completion_tokens??i,cost:a?.output_cost,onCopy:()=>{let t=e.flatMap(e=>(e.output||[]).flatMap(e=>(e.content||[]).map(t=>`${e.role}: ${t.transcript||t.text||""}`))).join("\n");navigator.clipboard.writeText(t)},isCollapsed:r,onToggleCollapse:()=>n(!r),turnCount:o}),(0,t.jsx)("div",{style:{maxHeight:r?"0px":"10000px",overflow:"hidden",transition:"max-height 0.3s ease-out, opacity 0.3s ease-out",opacity:+!r},children:(0,t.jsx)("div",{style:{padding:"12px 16px"},children:e.map((e,s)=>(0,t.jsx)(tw,{response:e,index:s},e.id||s))})})]})}function tw({response:e,index:s}){let l=e.output||[],a=e.usage;return(0,t.jsxs)("div",{style:{marginBottom:12,paddingBottom:12,borderBottom:"1px solid #f5f5f5"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[(0,t.jsx)(p.Tag,{color:"completed"===e.status?"green":"orange",style:{margin:0},children:e.status||"unknown"}),a&&(0,t.jsxs)(tb,{type:"secondary",style:{fontSize:11},children:[a.input_tokens??0," in / ",a.output_tokens??0," out tokens"]}),e.conversation_id&&(0,t.jsx)(h.Tooltip,{title:e.conversation_id,children:(0,t.jsxs)(tb,{type:"secondary",style:{fontSize:11,cursor:"help"},children:["conv: ",e.conversation_id.slice(0,12),"..."]})})]}),l.map((e,s)=>(0,t.jsx)(tS,{output:e},e.id||s)),a?.input_token_details&&(0,t.jsx)(tk,{label:"Input",details:a.input_token_details}),a?.output_token_details&&(0,t.jsx)(tk,{label:"Output",details:a.output_token_details})]})}function tS({output:e}){let s=e.content||[];return s.some(e=>e.transcript||e.text)?(0,t.jsxs)("div",{style:{marginBottom:8},children:[(0,t.jsx)(tb,{type:"secondary",style:{fontSize:10,letterSpacing:"0.5px",textTransform:"uppercase",display:"block",marginBottom:3},children:e.role?.toUpperCase()||"ASSISTANT"}),s.map((e,s)=>{let l=e.transcript||e.text;return l?(0,t.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8,marginBottom:4},children:["audio"===e.type&&(0,t.jsx)(tj.AudioOutlined,{style:{color:"#8c8c8c",fontSize:12,marginTop:3,flexShrink:0}}),"text"===e.type&&(0,t.jsx)(tl.MessageOutlined,{style:{color:"#8c8c8c",fontSize:12,marginTop:3,flexShrink:0}}),(0,t.jsx)("div",{style:{fontSize:13,lineHeight:1.7,color:"#262626",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:l})]},s):null})]}):null}function tk({label:e,details:s}){let l=Object.entries(s).filter(([,e])=>"number"==typeof e||"object"==typeof e&&null!==e);return 0===l.length?null:(0,t.jsxs)("div",{style:{marginTop:4},children:[(0,t.jsxs)(tb,{type:"secondary",style:{fontSize:10,letterSpacing:"0.5px",textTransform:"uppercase"},children:[e," Token Breakdown"]}),(0,t.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,marginTop:4},children:l.map(([e,s])=>"number"==typeof s?(0,t.jsxs)(p.Tag,{style:{margin:0},children:[e.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase()),": ",s.toLocaleString()]},e):null)})]})}function tC({label:e,value:s}){return null==s?null:(0,t.jsxs)("div",{children:[(0,t.jsx)(tb,{type:"secondary",style:{fontSize:11},children:e}),(0,t.jsx)("div",{style:{fontSize:13,color:"#262626"},children:String(s)})]})}function tT({request:e,response:s,metrics:l}){let a,r,n;if(s&&s.results&&Array.isArray(s.results)&&0!==s.results.length&&s.results.some(e=>"session.created"===e.type||"session.updated"===e.type||"response.done"===e.type))return(0,t.jsx)(tv,{response:s,metrics:l});let{requestMessages:i,responseMessage:o}=(a=[],e?.messages&&Array.isArray(e.messages)&&e.messages.forEach(e=>{let t;a.push({role:e.role||"user",content:"string"==typeof(t=e.content)?t:Array.isArray(t)?t.map(e=>"string"==typeof e?e:"text"===e.type?e.text:"image_url"===e.type?"[Image]":JSON.stringify(e)).join("\n"):JSON.stringify(t),toolCallId:e.tool_call_id})}),r=null,(n=s?.choices?.[0]?.message)&&(r={role:n.role||"assistant",content:n.content||"",toolCalls:(e=>{if(e&&Array.isArray(e))return e.map(e=>({id:e.id||"",name:e.function?.name||"unknown",arguments:tt(e.function?.arguments)}))})(n.tool_calls)}),{requestMessages:a,responseMessage:r});return(0,t.jsxs)("div",{children:[(0,t.jsx)(tp,{messages:i,promptTokens:l?.prompt_tokens,inputCost:l?.input_cost}),(0,t.jsx)(tg,{message:o,completionTokens:l?.completion_tokens,outputCost:l?.output_cost})]})}let{Text:tL}=g.Typography;function tM({logEntry:e,isLoadingDetails:s=!1,accessToken:l}){var a,r;let n=e.metadata||{},i="failure"===n.status,o=i?n.error_information:null,d=!!(a=e.messages)&&(Array.isArray(a)?a.length>0:"object"==typeof a&&Object.keys(a).length>0),c=!!(r=e.response)&&Object.keys(eX(r)).length>0,x=!d&&!c&&!i&&!s,m=n?.guardrail_information,u=eZ(m),p=u.length>0,h=u.reduce((e,t)=>{let s=t?.masked_entity_count;return s?e+Object.values(s).reduce((e,t)=>"number"==typeof t?e+t:e,0):e},0),g=0===u.length?"-":1===u.length?u[0]?.guardrail_name??"-":`${u.length} guardrails`,f=n?.eval_information,y=n.vector_store_request_metadata&&Array.isArray(n.vector_store_request_metadata)&&n.vector_store_request_metadata.length>0;return(0,t.jsxs)("div",{style:{padding:`${_} ${_} 0`},children:[i&&o&&(0,t.jsx)(O.Alert,{type:"error",showIcon:!0,message:"Request Failed",description:(0,t.jsx)(tD,{errorInfo:o}),className:"mb-6"}),e.request_tags&&Object.keys(e.request_tags).length>0&&(0,t.jsx)(tE,{tags:e.request_tags}),(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(z.Card,{title:"Request Details",size:"small",bordered:!1,style:{marginBottom:0},children:(0,t.jsxs)(A.Descriptions,{column:2,size:"small",children:[(0,t.jsx)(A.Descriptions.Item,{label:"Model",children:e.model}),(0,t.jsx)(A.Descriptions.Item,{label:"Provider",children:e.custom_llm_provider||"-"}),(0,t.jsx)(A.Descriptions.Item,{label:"Call Type",children:e.call_type}),(0,t.jsx)(A.Descriptions.Item,{label:"Model ID",children:(0,t.jsx)(eI,{value:e.model_id})}),(0,t.jsx)(A.Descriptions.Item,{label:"API Base",children:(0,t.jsx)(eI,{value:e.api_base,maxWidth:200})}),e.requester_ip_address&&(0,t.jsx)(A.Descriptions.Item,{label:"IP Address",children:e.requester_ip_address}),p&&(0,t.jsx)(A.Descriptions.Item,{label:"Guardrail",children:(0,t.jsx)(tA,{label:g,maskedCount:h})})]})})}),(0,t.jsx)(tz,{logEntry:e,metadata:n}),(0,t.jsx)(eD,{costBreakdown:n?.cost_breakdown,totalSpend:e.spend??0,promptTokens:e.prompt_tokens,completionTokens:e.completion_tokens,cacheHit:e.cache_hit,rawInputTokens:n?.additional_usage_values?.prompt_tokens_details?.text_tokens,cacheReadTokens:n?.additional_usage_values?.cache_read_input_tokens,cacheCreationTokens:n?.additional_usage_values?.cache_creation_input_tokens}),(0,t.jsx)(te,{log:e}),x&&(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsx)(eE,{show:x})}),s?(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6 p-8 text-center",children:[(0,t.jsx)(B.Spin,{size:"default"}),(0,t.jsx)("div",{style:{marginTop:8,color:"#999"},children:"Loading request & response data..."})]}):(0,t.jsx)(tI,{hasResponse:c,hasError:i,getRawRequest:()=>eX(e.proxy_server_request||e.messages),getFormattedResponse:()=>i&&o?{error:{message:o.error_message||"An error occurred",type:o.error_class||"error",code:o.error_code||"unknown",param:null}}:eX(e.response),logEntry:e}),p&&(0,t.jsx)("div",{id:"guardrail-section",children:(0,t.jsx)(ev,{data:m,accessToken:l??null,logEntry:{request_id:e.request_id,user:e.user,model:e.model,startTime:e.startTime,metadata:e.metadata}})}),null!=f&&(0,t.jsx)(eC,{data:f}),y&&(0,t.jsx)(eA,{data:n.vector_store_request_metadata}),e.metadata&&Object.keys(e.metadata).length>0&&(0,t.jsx)(tR,{metadata:e.metadata}),(0,t.jsx)("div",{style:{height:_}})]})}function tD({errorInfo:e}){return(0,t.jsxs)("div",{children:[e.error_code&&(0,t.jsxs)("div",{children:[(0,t.jsx)(tL,{strong:!0,children:"Error Code:"})," ",e.error_code]}),e.error_message&&(0,t.jsxs)("div",{children:[(0,t.jsx)(tL,{strong:!0,children:"Message:"})," ",e.error_message]})]})}function tE({tags:e}){return(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden p-4 mb-6",children:[(0,t.jsx)(tL,{strong:!0,style:{display:"block",marginBottom:8,fontSize:16},children:"Tags"}),(0,t.jsx)(u.Space,{size:8,wrap:!0,children:Object.entries(e).map(([e,s])=>(0,t.jsxs)(p.Tag,{children:[e,": ",String(s)]},e))})]})}function tA({label:e,maskedCount:s}){return(0,t.jsxs)(u.Space,{size:8,children:[(0,t.jsx)("a",{onClick:()=>{let e=document.getElementById("guardrail-section");e&&e.scrollIntoView({behavior:"smooth"})},style:{cursor:"pointer"},children:e}),s>0&&(0,t.jsxs)(p.Tag,{color:"blue",children:[s," masked"]})]})}function tz({logEntry:e,metadata:s}){let l=e.completionStartTime,a=l&&l!==e.endTime?new Date(l).getTime()-new Date(e.startTime).getTime():null,r=e.cache_hit||s?.additional_usage_values?.cache_read_input_tokens&&s.additional_usage_values.cache_read_input_tokens>0,n=String(e.cache_hit??"None"),i="true"===n.toLowerCase()?"green":"false"===n.toLowerCase()?"red":"default",o=function(e){let t=e?.additional_usage_values?.prompt_tokens_details?.text_tokens??e?.usage_object?.prompt_tokens_details?.text_tokens;if(null==t)return;let s=Number(t);return Number.isFinite(s)?s:void 0}(s),d="anthropic_messages"===e.call_type&&void 0!==o;return(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(z.Card,{title:"Metrics",size:"small",style:{marginBottom:0},children:(0,t.jsxs)(A.Descriptions,{column:2,size:"small",children:[d?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(A.Descriptions.Item,{label:"Input Tokens",children:(0,F.formatNumberWithCommas)(o)}),(0,t.jsx)(A.Descriptions.Item,{label:"Output Tokens",children:(0,F.formatNumberWithCommas)(e.completion_tokens)})]}):(0,t.jsx)(A.Descriptions.Item,{label:"Tokens",children:(0,t.jsx)(eR,{prompt:e.prompt_tokens,completion:e.completion_tokens,total:e.total_tokens})}),(0,t.jsxs)(A.Descriptions.Item,{label:"Cost",children:["$",(0,F.formatNumberWithCommas)(e.spend||0,8)]}),(0,t.jsxs)(A.Descriptions.Item,{label:"Duration",children:[null!=e.request_duration_ms?(e.request_duration_ms/1e3).toFixed(3):"-"," s"]}),null!=a&&a>0&&(0,t.jsxs)(A.Descriptions.Item,{label:"Time to First Token",children:[(a/1e3).toFixed(3)," s"]}),r&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(A.Descriptions.Item,{label:"Cache Hit",children:(0,t.jsx)(p.Tag,{color:i,children:n})}),s?.additional_usage_values?.cache_read_input_tokens>0&&(0,t.jsx)(A.Descriptions.Item,{label:"Cache Read Tokens",children:(0,F.formatNumberWithCommas)(s.additional_usage_values.cache_read_input_tokens)}),s?.additional_usage_values?.cache_creation_input_tokens>0&&(0,t.jsx)(A.Descriptions.Item,{label:"Cache Creation Tokens",children:(0,F.formatNumberWithCommas)(s.additional_usage_values.cache_creation_input_tokens)})]}),s?.litellm_overhead_time_ms!==void 0&&null!==s.litellm_overhead_time_ms&&(0,t.jsxs)(A.Descriptions.Item,{label:"LiteLLM Overhead",children:[s.litellm_overhead_time_ms.toFixed(2)," ms"]}),(0,t.jsx)(A.Descriptions.Item,{label:"Retries",children:s?.attempted_retries!==void 0&&s?.attempted_retries!==null?s.attempted_retries>0?(0,t.jsxs)(t.Fragment,{children:[s.attempted_retries,void 0!==s.max_retries&&null!==s.max_retries?` / ${s.max_retries}`:""]}):(0,t.jsx)(p.Tag,{color:"green",children:"None"}):"-"}),(0,t.jsx)(A.Descriptions.Item,{label:"Start Time",children:(0,b.default)(e.startTime).format("YYYY-MM-DDTHH:mm:ss.SSS[Z]")}),(0,t.jsx)(A.Descriptions.Item,{label:"End Time",children:(0,b.default)(e.endTime).format("YYYY-MM-DDTHH:mm:ss.SSS[Z]")})]})})})}function tI({hasResponse:e,hasError:l,getRawRequest:a,getFormattedResponse:r,logEntry:n}){let[i,o]=(0,s.useState)(N),[d,c]=(0,s.useState)("pretty"),x=n.spend??0,m=n.prompt_tokens||0,u=n.completion_tokens||0,p=m+u,h=n.metadata?.cost_breakdown,g=h?.input_cost!==void 0&&h?.output_cost!==void 0,f=g?h.input_cost??0:p>0?x*m/p:0,y=g?h.output_cost??0:p>0?x*u/p:0;return(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(R.Collapse,{defaultActiveKey:["1"],expandIconPosition:"start",items:[{key:"1",label:(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%"},onClick:e=>{e.target.closest(".ant-radio-group")&&e.stopPropagation()},children:[(0,t.jsx)("h3",{className:"text-lg font-medium text-gray-900",style:{margin:0},children:"Request & Response"}),(0,t.jsxs)(P.Radio.Group,{size:"small",value:d,onChange:e=>c(e.target.value),children:[(0,t.jsx)(P.Radio.Button,{value:"pretty",children:"Pretty"}),(0,t.jsx)(P.Radio.Button,{value:"json",children:"JSON"})]})]}),children:(0,t.jsx)("div",{children:"pretty"===d?(0,t.jsx)(tT,{request:a(),response:r(),metrics:{prompt_tokens:m,completion_tokens:u,input_cost:f,output_cost:y}}):(0,t.jsx)(I.Tabs,{activeKey:i,onChange:e=>o(e),tabBarExtraContent:(0,t.jsx)(tL,{copyable:{text:JSON.stringify(i===N?a():r(),null,2),tooltips:["Copy JSON","Copied!"]},disabled:i===w&&!e&&!l}),items:[{key:N,label:"Request",children:(0,t.jsx)("div",{style:{paddingTop:16,paddingBottom:16},children:(0,t.jsx)(eQ,{data:a(),mode:"formatted"})})},{key:w,label:"Response",children:(0,t.jsx)("div",{style:{paddingTop:16,paddingBottom:16},children:e||l?(0,t.jsx)(eQ,{data:r(),mode:"formatted"}):(0,t.jsx)("div",{style:{textAlign:"center",padding:20,color:"#999",fontStyle:"italic"},children:"Response data not available"})})}]})})}]})})}function tO({guardrailEntries:e}){let s=e.every(e=>{let t=e?.guardrail_status||e?.status;return"pass"===t||"passed"===t||"success"===t});return(0,t.jsx)("div",{style:{textAlign:"left",marginBottom:12},children:(0,t.jsxs)("div",{onClick:()=>{let e=document.getElementById("guardrail-section");e&&e.scrollIntoView({behavior:"smooth"})},style:{display:"inline-flex",alignItems:"center",gap:6,padding:"4px 12px",borderRadius:16,cursor:"pointer",fontSize:13,fontWeight:500,backgroundColor:s?"#f0fdf4":"#fef2f2",color:s?"#15803d":"#b91c1c",border:`1px solid ${s?"#bbf7d0":"#fecaca"}`},children:[s?"✓":"✗"," ",e.length," guardrail",1!==e.length?"s":""," evaluated",(0,t.jsx)("span",{style:{fontSize:11,opacity:.7},children:"↓"})]})})}function tR({metadata:e}){return(0,t.jsx)("div",{className:"bg-white rounded-lg shadow w-full max-w-full overflow-hidden mb-6",children:(0,t.jsx)(R.Collapse,{defaultActiveKey:["1"],expandIconPosition:"start",items:[{key:"1",label:(0,t.jsx)("h3",{className:"text-lg font-medium text-gray-900",children:"Metadata"}),children:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginBottom:8},children:(0,t.jsx)(tL,{copyable:{text:JSON.stringify(e,null,2),tooltips:["Copy Metadata","Copied!"]}})}),(0,t.jsx)("pre",{style:{maxHeight:300,overflowY:"auto",fontSize:12,fontFamily:S,whiteSpace:"pre-wrap",wordBreak:"break-all",margin:0},children:JSON.stringify(e,null,2)})]})}]})})}var tP=e.i(266027),tB=e.i(135214);function tF({row:e,isSelected:s,onClick:l}){let a=m.MCP_CALL_TYPES.includes(e.call_type),r=m.AGENT_CALL_TYPES.includes(e.call_type),n=null!=e.request_duration_ms?(e.request_duration_ms/1e3).toFixed(3):e.startTime&&e.endTime?((Date.parse(e.endTime)-Date.parse(e.startTime))/1e3).toFixed(3):"-";return(0,t.jsxs)("button",{type:"button",className:`w-full text-left pl-8 pr-2 py-1 transition-colors ${s?"bg-blue-50":"hover:bg-slate-100"}`,onClick:l,children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[a?(0,t.jsx)(x.Wrench,{size:12,className:"text-slate-500 flex-shrink-0"}):r?(0,t.jsx)(d.Bot,{size:12,className:"text-slate-500 flex-shrink-0"}):(0,t.jsx)(c.Sparkles,{size:12,className:"text-slate-500 flex-shrink-0"}),(0,t.jsx)("span",{className:"text-xs font-medium text-slate-900 truncate",children:function(e,t){let s=(t||"").trim();if(m.MCP_CALL_TYPES.includes(e))return s.replace(/^mcp:\s*/i,"").split("/").pop()||s||"mcp_tool";let l=(s.split("/").pop()||s).replace(/-20\d{6}.*$/i,"").replace(/:.*$/,""),a=l.match(/claude-[a-z0-9-]+/i);return a?a[0]:l||"llm_call"}(e.call_type,e.model)})]}),(0,t.jsxs)("div",{className:"text-[10px] text-slate-500 mt-0 flex items-center gap-1.5 font-mono",children:[(0,t.jsxs)("span",{children:[n,"s"]}),e.spend?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{children:"·"}),(0,t.jsx)("span",{children:(0,F.getSpendString)(e.spend)})]}):null,e.total_tokens?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{children:"·"}),(0,t.jsxs)("span",{children:[e.total_tokens," tok"]})]}):null]})]})}e.s(["LogDetailsDrawer",0,function({open:e,onClose:d,logEntry:c,sessionId:x,accessToken:u,allLogs:p=[],onSelectLog:h,startTime:g}){let f=!!x,[y,j]=(0,s.useState)(null),[b,v]=(0,s.useState)(!1),[_,N]=(0,s.useState)(!1),{data:w=[]}=(0,tP.useQuery)({queryKey:["sessionLogs",x],queryFn:async()=>{if(!x||!u)return[];let e=await (0,Z.sessionSpendLogsCall)(u,x);return(e.data||e||[]).map(e=>({...e,request_duration_ms:e.request_duration_ms??Date.parse(e.endTime)-Date.parse(e.startTime)})).sort((e,t)=>{let s=+!!m.MCP_CALL_TYPES.includes(e.call_type),l=+!!m.MCP_CALL_TYPES.includes(t.call_type);return s!==l?s-l:new Date(e.startTime).getTime()-new Date(t.startTime).getTime()})},enabled:!!(e&&f&&x&&u)}),S=(0,s.useMemo)(()=>f?w.length?y?w.find(e=>e.request_id===y)||w[0]:c?.request_id&&w.find(e=>e.request_id===c.request_id)||w[0]:null:c,[f,c,y,w]);(0,s.useEffect)(()=>{f&&w.length&&(y&&w.some(e=>e.request_id===y)||j(c?.request_id&&w.some(e=>e.request_id===c.request_id)?c.request_id:w[0].request_id))},[f,c,y,w]),(0,s.useEffect)(()=>{e?v(!1):(f&&j(null),N(!1))},[e,f]);let{selectNextLog:k,selectPreviousLog:C}=function({isOpen:e,currentLog:t,allLogs:l,onClose:a,onSelectLog:r}){(0,s.useEffect)(()=>{let t=t=>{var s;if(!((s=t.target)instanceof HTMLInputElement||s instanceof HTMLTextAreaElement)&&e)switch(t.key){case"Escape":a();break;case"j":case"J":n();break;case"k":case"K":i()}};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e,t,l]);let n=()=>{if(!t||!l.length||!r)return;let e=l.findIndex(e=>e.request_id===t.request_id);e{if(!t||!l.length||!r)return;let e=l.findIndex(e=>e.request_id===t.request_id);e>0&&r(l[e-1])};return{selectNextLog:n,selectPreviousLog:i}}({isOpen:e,currentLog:S,allLogs:f?w:p,onClose:d,onSelectLog:e=>{f&&j(e.request_id),h?.(e)}}),L=((e,t,s)=>{let{accessToken:l}=(0,tB.default)();return(0,tP.useQuery)({queryKey:["logDetails",e,t,l],queryFn:async()=>l&&e&&t?await (0,Z.uiSpendLogDetailsCall)(l,e,t):null,enabled:s&&!!l&&!!e&&!!t,staleTime:6e5,gcTime:6e5})})(S?.request_id,g,e&&!!S?.request_id),M=L.data,D=L.isLoading,E=(0,s.useMemo)(()=>S?{...S,messages:M?.messages||S.messages,response:M?.response||S.response,proxy_server_request:M?.proxy_server_request||S.proxy_server_request}:null,[S,M]),A=S?.metadata||{},z="failure"===A.status?"Failure":"Success",I="failure"===A.status?"error":"success",O=A?.user_api_key_team_alias||"default",R=w.reduce((e,t)=>e+(t.spend||0),0),P=w.length>0?new Date(Math.min(...w.map(e=>new Date(e.startTime).getTime()))):null,B=w.length>0?new Date(Math.max(...w.map(e=>new Date(e.endTime).getTime()))):null,q=P&&B?((B.getTime()-P.getTime())/1e3).toFixed(2):"0.00",$=w.filter(e=>!m.MCP_CALL_TYPES.includes(e.call_type)&&!m.AGENT_CALL_TYPES.includes(e.call_type)).length,H=w.filter(e=>m.AGENT_CALL_TYPES.includes(e.call_type)).length,K=w.filter(e=>m.MCP_CALL_TYPES.includes(e.call_type)).length,Y=f?w:S?[S]:[],V=f?x||"":S?.request_id||"",U=V.length>14?`${V.slice(0,11)}...`:V,W=async()=>{if(V)try{await navigator.clipboard.writeText(V),N(!0),setTimeout(()=>N(!1),1200)}catch{}};return S&&E?(0,t.jsx)(a.Drawer,{title:null,placement:"right",onClose:d,open:e,width:"60%",closable:!1,mask:!0,maskClosable:!0,styles:{body:{padding:0,overflow:"hidden"},header:{display:"none"}},children:(0,t.jsxs)("div",{style:{height:"100%"},className:"flex relative",children:[b?(0,t.jsx)(l.Button,{type:"text",size:"small",icon:(0,t.jsx)(o.RightOutlined,{}),onClick:()=>v(!1),className:"absolute top-2 left-2 z-20 !bg-white !border !border-slate-200 !rounded-md","aria-label":"Expand trace sidebar"}):(0,t.jsx)(l.Button,{type:"text",size:"small",icon:(0,t.jsx)(i.LeftOutlined,{}),onClick:()=>v(!0),className:"absolute top-2 left-2 z-20 !bg-white !border !border-slate-200 !rounded-md","aria-label":"Collapse trace sidebar"}),!b&&(0,t.jsxs)("div",{className:"border-r border-slate-200 bg-slate-50 flex flex-col",style:{width:224},children:[(0,t.jsxs)("div",{className:"pl-12 pr-3 py-2 border-b border-slate-200 bg-white",children:[(0,t.jsx)("div",{className:"flex items-start justify-between gap-2",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-slate-500",children:f?"Session":"Trace"}),(0,t.jsxs)("div",{className:"font-mono text-[12px] text-slate-900 leading-tight flex items-center gap-1",children:[(0,t.jsx)("span",{className:"truncate",children:U}),(0,t.jsx)("button",{type:"button",onClick:W,className:"text-slate-400 hover:text-slate-600","aria-label":"Copy trace id",children:_?(0,t.jsx)(r.CheckOutlined,{className:"text-[11px]"}):(0,t.jsx)(n.CopyOutlined,{className:"text-[11px]"})})]})]})}),(0,t.jsxs)("div",{className:"mt-1 text-[11px] text-slate-500 font-mono",children:[Y.length," req",[f?$:Y.filter(e=>!m.MCP_CALL_TYPES.includes(e.call_type)&&!m.AGENT_CALL_TYPES.includes(e.call_type)).length,f?H:Y.filter(e=>m.AGENT_CALL_TYPES.includes(e.call_type)).length,f?K:Y.filter(e=>m.MCP_CALL_TYPES.includes(e.call_type)).length].map((e,s)=>{let l=[" LLM"," Agent"," MCP"][s];return e>0?(0,t.jsxs)("span",{children:[(0,t.jsx)("span",{className:"mx-1.5",children:"·"}),e,l]},l):null}),(0,t.jsx)("span",{className:"mx-1.5",children:"·"}),f?(0,F.getSpendString)(R):(0,F.getSpendString)(S.spend||0),f&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"mx-1.5",children:"·"}),q,"s"]})]})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto",children:[eZ(A?.guardrail_information).length>0&&(0,t.jsx)("div",{className:"px-3 pt-2",children:(0,t.jsx)(tO,{guardrailEntries:eZ(A?.guardrail_information)})}),f?(0,t.jsx)("div",{className:"py-1",children:(0,t.jsxs)("div",{className:"relative pl-2",children:[(0,t.jsx)("div",{className:"absolute left-4 top-1 bottom-1 border-l border-slate-300"}),Y.map((e,s)=>{let l=s===Y.length-1;return(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("div",{className:"absolute left-4 top-3 w-3 border-t border-slate-300"}),l&&(0,t.jsx)("div",{className:"absolute left-4 top-3 bottom-0 w-px bg-slate-50"}),(0,t.jsx)(tF,{row:e,isSelected:e.request_id===S.request_id,onClick:()=>{j(e.request_id),h?.(e)}})]},e.request_id)})]})}):(0,t.jsx)("div",{className:"py-1",children:Y.map(e=>(0,t.jsx)(tF,{row:e,isSelected:e.request_id===S.request_id,onClick:()=>h?.(e)},e.request_id))})]})]}),(0,t.jsxs)("div",{className:"flex-1 flex flex-col overflow-hidden",children:[(0,t.jsx)(T,{log:S,onClose:d,onPrevious:C,onNext:k,statusLabel:z,statusColor:I,environment:O}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,t.jsx)(tM,{logEntry:E,isLoadingDetails:D,accessToken:u??null})})]})]})}):null}],502626),e.s([],3565)},909778,e=>{"use strict";var t=e.i(843476),s=e.i(166540),l=e.i(271645),a=e.i(772345),r=e.i(464571),n=e.i(790848),i=e.i(97859);e.s(["LogsTableToolbar",0,function({searchTerm:e,onSearchChange:o,startTime:d,onStartTimeChange:c,endTime:x,onEndTimeChange:m,isCustomDate:u,onIsCustomDateChange:p,selectedTimeInterval:h,onSelectedTimeIntervalChange:g,isLiveTail:f,onIsLiveTailChange:y,currentPage:j,onCurrentPageChange:b,pageSize:v,isLoading:_,isButtonLoading:N,onRefetch:w,filteredLogs:S}){let[k,C]=(0,l.useState)(!1),T=(0,l.useRef)(null);(0,l.useEffect)(()=>{function e(e){T.current&&!T.current.contains(e.target)&&C(!1)}return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);let L=i.QUICK_SELECT_OPTIONS.find(e=>e.value===h.value&&e.unit===h.unit),M=u?((e,t,l)=>{if(e)return`${(0,s.default)(t).format("MMM D, h:mm A")} - ${(0,s.default)(l).format("MMM D, h:mm A")}`;let a=(0,s.default)(),r=(0,s.default)(t),n=a.diff(r,"minutes");if(n>=0&&n<2)return"Last 1 Minute";if(n>=2&&n<16)return"Last 15 Minutes";if(n>=16&&n<61)return"Last Hour";let i=a.diff(r,"hours");return i>=1&&i<5?"Last 4 Hours":i>=5&&i<25?"Last 24 Hours":i>=25&&i<169?"Last 7 Days":`${r.format("MMM D")} - ${a.format("MMM D")}`})(u,d,x):L?.label;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"border-b px-6 py-4 w-full max-w-full box-border",children:(0,t.jsxs)("div",{className:"flex flex-col md:flex-row items-start md:items-center justify-between space-y-4 md:space-y-0 w-full max-w-full box-border",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3 w-full max-w-full box-border",children:[(0,t.jsxs)("div",{className:"relative w-64 min-w-0 flex-shrink-0",children:[(0,t.jsx)("input",{type:"text",placeholder:"Search by Request ID",className:"w-full px-3 py-2 pl-8 border rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",value:e,onChange:e=>o(e.target.value)}),(0,t.jsx)("svg",{className:"absolute left-2.5 top-2.5 h-4 w-4 text-gray-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 min-w-0 flex-shrink",children:[(0,t.jsxs)("div",{className:"relative z-50",ref:T,children:[(0,t.jsxs)("button",{onClick:()=>C(!k),className:"px-3 py-2 text-sm border rounded-md hover:bg-gray-50 flex items-center gap-2",children:[(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"})}),M]}),k&&(0,t.jsx)("div",{className:"absolute left-0 mt-2 w-64 bg-white rounded-lg shadow-lg border p-2 z-50",children:(0,t.jsxs)("div",{className:"space-y-1",children:[i.QUICK_SELECT_OPTIONS.map(e=>(0,t.jsx)("button",{className:`w-full px-3 py-2 text-left text-sm hover:bg-gray-50 rounded-md ${M===e.label?"bg-blue-50 text-blue-600":""}`,onClick:()=>{b(1),m((0,s.default)().format("YYYY-MM-DDTHH:mm")),c((0,s.default)().subtract(e.value,e.unit).format("YYYY-MM-DDTHH:mm")),g({value:e.value,unit:e.unit}),p(!1),C(!1)},children:e.label},e.label)),(0,t.jsx)("div",{className:"border-t my-2"}),(0,t.jsx)("button",{className:`w-full px-3 py-2 text-left text-sm hover:bg-gray-50 rounded-md ${u?"bg-blue-50 text-blue-600":""}`,onClick:()=>p(!u),children:"Custom Range"})]})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900",children:"Live Tail"}),(0,t.jsx)(n.Switch,{checked:f,defaultChecked:!0,onChange:y})]}),(0,t.jsx)(r.Button,{type:"default",icon:(0,t.jsx)(a.SyncOutlined,{spin:N}),onClick:w,disabled:N,title:"Fetch data",children:N?"Fetching":"Fetch"})]}),u&&(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{children:(0,t.jsx)("input",{type:"datetime-local",value:d,onChange:e=>{c(e.target.value),b(1)},className:"px-3 py-2 border rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"})}),(0,t.jsx)("span",{className:"text-gray-500",children:"to"}),(0,t.jsx)("div",{children:(0,t.jsx)("input",{type:"datetime-local",value:x,onChange:e=>{m(e.target.value),b(1)},className:"px-3 py-2 border rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"})})]})]}),(0,t.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,t.jsxs)("span",{className:"text-sm text-gray-700 whitespace-nowrap",children:["Showing ",_?"...":S?(j-1)*v+1:0," -"," ",_?"...":S?Math.min(j*v,S.total):0," ","of ",_?"...":S?S.total:0," results"]}),(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsxs)("span",{className:"text-sm text-gray-700 min-w-[90px]",children:["Page ",_?"...":j," of"," ",_?"...":S?S.total_pages:1]}),(0,t.jsx)("button",{onClick:()=>b(e=>Math.max(1,e-1)),disabled:_||1===j,className:"px-3 py-1 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Previous"}),(0,t.jsx)("button",{onClick:()=>b(e=>Math.min(S.total_pages||1,e+1)),disabled:_||j===(S.total_pages||1),className:"px-3 py-1 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Next"})]})]})]})}),f&&1===j&&(0,t.jsxs)("div",{className:"mb-4 px-4 py-2 bg-green-50 border border-green-200 rounded-md flex items-center justify-between",children:[(0,t.jsx)("div",{className:"flex items-center gap-2",children:(0,t.jsx)("span",{className:"text-sm text-green-700",children:"Auto-refreshing every 15 seconds"})}),(0,t.jsx)("button",{onClick:()=>y(!1),className:"text-sm text-green-600 hover:text-green-800",children:"Stop"})]})]})}],909778)},86827,e=>{"use strict";var t=e.i(843476),s=e.i(482725),l=e.i(56456);e.s(["AntDLoadingSpinner",0,function({size:e,fontSize:a}){let r=(0,t.jsx)(l.LoadingOutlined,{style:a?{fontSize:a}:void 0,spin:!0});return(0,t.jsx)(s.Spin,{indicator:r,size:e})}])},936190,e=>{"use strict";var t=e.i(843476),s=e.i(166540),l=e.i(271645),a=e.i(197647),r=e.i(653824),n=e.i(881073),i=e.i(404206),o=e.i(723731),d=e.i(708347),c=e.i(93648),x=e.i(245767),m=e.i(969550),u=e.i(764205),p=e.i(20147),h=e.i(942161),g=e.i(245099),f=e.i(97859),y=e.i(15374),j=e.i(504809);e.i(3565);var b=e.i(502626),v=e.i(909778),_=e.i(149121),N=e.i(86827);e.s(["default",0,function({accessToken:e,token:w,userRole:S,userID:k,premiumUser:C}){let[T,L]=(0,l.useState)(""),[M,D]=(0,l.useState)(1),[E]=(0,l.useState)(50),[A,z]=(0,l.useState)((0,s.default)().subtract(24,"hours").format("YYYY-MM-DDTHH:mm")),[I,O]=(0,l.useState)((0,s.default)().format("YYYY-MM-DDTHH:mm")),[R,P]=(0,l.useState)(!1),[B,F]=(0,l.useState)(j.defaultFilters),[q,$]=(0,l.useState)(null),[H,K]=(0,l.useState)(null),[Y,V]=(0,l.useState)(S&&d.internalUserRoles.includes(S)),[U,W]=(0,l.useState)("request logs"),[J,G]=(0,l.useState)(null),[Q,X]=(0,l.useState)(!1),[Z,ee]=(0,l.useState)(null),[et,es]=(0,l.useState)("startTime"),[el,ea]=(0,l.useState)("desc"),[er,en]=(0,l.useState)({value:24,unit:"hours"}),[ei,eo]=(0,l.useState)(()=>{let e=sessionStorage.getItem("isLiveTail");return null===e||JSON.parse(e)});(0,l.useEffect)(()=>{sessionStorage.setItem("isLiveTail",JSON.stringify(ei))},[ei]),(0,l.useEffect)(()=>{(async()=>{H&&e&&$({...(await (0,u.keyInfoV1Call)(e,H)).info,token:H,api_key:H})})()},[H,e]),(0,l.useEffect)(()=>{S&&d.internalUserRoles.includes(S)&&V(!0)},[S]);let{logsQuery:ed,filteredLogs:ec,allTeams:ex,handleFilterChange:em,handleFilterReset:eu}=(0,j.useLogFilterLogic)({accessToken:e,token:w,userRole:S,userID:k,filters:B,setFilters:F,filterByCurrentUser:!!Y,activeTab:U,isLiveTail:ei,startTime:A,endTime:I,pageSize:E,isCustomDate:R,setCurrentPage:D,sortBy:et,sortOrder:el,currentPage:M}),ep=(0,l.useCallback)(()=>{eu(),z((0,s.default)().subtract(24,"hours").format("YYYY-MM-DDTHH:mm")),O((0,s.default)().format("YYYY-MM-DDTHH:mm")),P(!1),en({value:24,unit:"hours"}),D(1)},[eu]),eh=(0,l.useCallback)((e,t)=>{es(e),ea(t),D(1)},[]),eg=(0,l.useMemo)(()=>(0,g.createColumns)({sortBy:et,sortOrder:el,onSortChange:eh}),[et,el,eh]),ef=(0,l.useMemo)(()=>{let e=ec.data.filter(e=>!T||e.request_id.includes(T)||e.model.includes(T)||e.user&&e.user.includes(T)),t=e.reduce((e,t)=>(t.session_id&&(e[t.session_id]||(e[t.session_id]={llm:0,agent:0,mcp:0}),f.MCP_CALL_TYPES.includes(t.call_type)?e[t.session_id].mcp+=1:f.AGENT_CALL_TYPES.includes(t.call_type)?e[t.session_id].agent+=1:e[t.session_id].llm+=1),e),{}),s=new Map;for(let t of e){if(!t.session_id||1>=(t.session_total_count||1))continue;let e=f.MCP_CALL_TYPES.includes(t.call_type),l=s.get(t.session_id);l&&(!l.isMcp||e)||s.set(t.session_id,{requestId:t.request_id,isMcp:e})}return e.map(e=>{let s=e.session_id?t[e.session_id]:void 0;return{...e,request_duration_ms:e.request_duration_ms,session_llm_count:s?.llm??void 0,session_mcp_count:s?.mcp??void 0,session_agent_count:s?.agent??void 0,onKeyHashClick:e=>K(e),onSessionClick:t=>{t&&(ee(t),G(e),X(!0))}}}).filter(e=>!e.session_id||1>=(e.session_total_count||1)||s.get(e.session_id)?.requestId===e.request_id)},[ec.data,T]),ey=(0,l.useDeferredValue)(ef),ej=ey!==ef,eb=ed.isFetching||ej,ev=ed.isPlaceholderData,e_=ed.isLoading||ev;return e&&w&&S&&k?(0,t.jsxs)("div",{className:"w-full max-w-screen p-6 overflow-x-hidden box-border",children:[(0,t.jsxs)(r.TabGroup,{defaultIndex:0,onIndexChange:e=>W(0===e?"request logs":"audit logs"),children:[(0,t.jsxs)(n.TabList,{children:[(0,t.jsx)(a.Tab,{children:"Request Logs"}),(0,t.jsx)(a.Tab,{children:"Audit Logs"}),(0,t.jsx)(a.Tab,{children:"Deleted Keys"}),(0,t.jsx)(a.Tab,{children:"Deleted Teams"})]}),(0,t.jsxs)(o.TabPanels,{children:[(0,t.jsxs)(i.TabPanel,{children:[(0,t.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,t.jsx)("h1",{className:"text-xl font-semibold",children:"Request Logs"})}),q&&H&&q.api_key===H?(0,t.jsx)(p.default,{keyId:H,keyData:q,teams:ex??[],onClose:()=>K(null),backButtonText:"Back to Logs"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(m.default,{options:(0,y.getLogFilterOptions)(e),onApplyFilters:em,onResetFilters:ep}),(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow w-full max-w-full box-border",children:[(0,t.jsx)(v.LogsTableToolbar,{searchTerm:T,onSearchChange:L,startTime:A,onStartTimeChange:z,endTime:I,onEndTimeChange:O,isCustomDate:R,onIsCustomDateChange:P,selectedTimeInterval:er,onSelectedTimeIntervalChange:en,isLiveTail:ei,onIsLiveTailChange:eo,currentPage:M,onCurrentPageChange:D,pageSize:E,isLoading:e_,isButtonLoading:eb,onRefetch:()=>ed.refetch(),filteredLogs:ec}),(0,t.jsx)(_.DataTable,{columns:eg,data:ey,onRowClick:e=>{if(e.session_id&&(e.session_total_count||1)>1){ee(e.session_id),G(e),X(!0);return}ee(null),G(e),X(!0)},isLoading:e_})]})]})]}),(0,t.jsx)(i.TabPanel,{children:(0,t.jsx)(h.default,{userID:k,userRole:S,token:w,accessToken:e,isActive:"audit logs"===U,premiumUser:C})}),(0,t.jsx)(i.TabPanel,{children:(0,t.jsx)(c.default,{})}),(0,t.jsx)(i.TabPanel,{children:(0,t.jsx)(x.default,{})})]})]}),(0,t.jsx)(b.LogDetailsDrawer,{open:Q,onClose:()=>{X(!1),ee(null)},logEntry:J,sessionId:Z,accessToken:e,allLogs:ef,onSelectLog:G,startTime:(0,s.default)(A).utc().format("YYYY-MM-DD HH:mm:ss")})]}):(0,t.jsx)("div",{className:"flex items-center justify-center h-64",children:(0,t.jsx)(N.AntDLoadingSpinner,{size:"large"})})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/08401f_hwndsf.js b/litellm/proxy/_experimental/out/_next/static/chunks/08401f_hwndsf.js deleted file mode 100644 index e51d026e8c2..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/08401f_hwndsf.js +++ /dev/null @@ -1,598 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,62478,e=>{"use strict";var t=e.i(764205);let a=async e=>{if(!e)return null;try{return await (0,t.getProxyUISettings)(e)}catch(e){return console.error("Error fetching proxy settings:",e),null}};e.s(["fetchProxySettings",0,a])},602073,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64L128 192v384c0 212.1 171.9 384 384 384s384-171.9 384-384V192L512 64zm312 512c0 172.3-139.7 312-312 312S200 748.3 200 576V246l312-110 312 110v330z"}},{tag:"path",attrs:{d:"M378.4 475.1a35.91 35.91 0 00-50.9 0 35.91 35.91 0 000 50.9l129.4 129.4 2.1 2.1a33.98 33.98 0 0048.1 0L730.6 434a33.98 33.98 0 000-48.1l-2.8-2.8a33.98 33.98 0 00-48.1 0L483 579.7 378.4 475.1z"}}]},name:"safety",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["SafetyOutlined",0,i],602073)},818581,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"useMergedRef",{enumerable:!0,get:function(){return r}});let s=e.r(271645);function r(e,t){let a=(0,s.useRef)(null),r=(0,s.useRef)(null);return(0,s.useCallback)(s=>{if(null===s){let e=a.current;e&&(a.current=null,e());let t=r.current;t&&(r.current=null,t())}else e&&(a.current=i(e,s)),t&&(r.current=i(t,s))},[e,t])}function i(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let a=e(t);return"function"==typeof a?a:()=>e(null)}}("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),t.exports=a.default)},190272,785913,e=>{"use strict";var t,a,s=((t={}).AUDIO_SPEECH="audio_speech",t.AUDIO_TRANSCRIPTION="audio_transcription",t.IMAGE_GENERATION="image_generation",t.VIDEO_GENERATION="video_generation",t.CHAT="chat",t.RESPONSES="responses",t.IMAGE_EDITS="image_edits",t.ANTHROPIC_MESSAGES="anthropic_messages",t.EMBEDDING="embedding",t),r=((a={}).IMAGE="image",a.VIDEO="video",a.CHAT="chat",a.RESPONSES="responses",a.IMAGE_EDITS="image_edits",a.ANTHROPIC_MESSAGES="anthropic_messages",a.EMBEDDINGS="embeddings",a.SPEECH="speech",a.TRANSCRIPTION="transcription",a.A2A_AGENTS="a2a_agents",a.MCP="mcp",a.REALTIME="realtime",a);let i={image_generation:"image",video_generation:"video",chat:"chat",responses:"responses",image_edits:"image_edits",anthropic_messages:"anthropic_messages",audio_speech:"speech",audio_transcription:"transcription",embedding:"embeddings"};e.s(["EndpointType",()=>r,"getEndpointType",0,e=>{if(console.log("getEndpointType:",e),Object.values(s).includes(e)){let t=i[e];return console.log("endpointType:",t),t}return"chat"}],785913),e.s(["generateCodeSnippet",0,e=>{let t,{apiKeySource:a,accessToken:s,apiKey:i,inputMessage:l,chatHistory:n,selectedTags:o,selectedVectorStores:c,selectedGuardrails:d,selectedPolicies:m,selectedMCPServers:p,mcpServers:u,mcpServerToolRestrictions:g,selectedVoice:x,endpointType:h,selectedModel:f,selectedSdk:_,proxySettings:b}=e,y="session"===a?s:i,v=window.location.origin,j=b?.LITELLM_UI_API_DOC_BASE_URL;j&&j.trim()?v=j:b?.PROXY_BASE_URL&&(v=b.PROXY_BASE_URL);let A=l||"Your prompt here",N=A.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n"),T=n.filter(e=>!e.isImage).map(({role:e,content:t})=>({role:e,content:t})),S={};o.length>0&&(S.tags=o),c.length>0&&(S.vector_stores=c),d.length>0&&(S.guardrails=d),m.length>0&&(S.policies=m);let C=f||"your-model-name",w="azure"===_?`import openai - -client = openai.AzureOpenAI( - api_key="${y||"YOUR_LITELLM_API_KEY"}", - azure_endpoint="${v}", - api_version="2024-02-01" -)`:`import openai - -client = openai.OpenAI( - api_key="${y||"YOUR_LITELLM_API_KEY"}", - base_url="${v}" -)`;switch(h){case r.CHAT:{let e=Object.keys(S).length>0,a="";if(e){let e=JSON.stringify({metadata:S},null,2).split("\n").map(e=>" ".repeat(4)+e).join("\n").trim();a=`, - extra_body=${e}`}let s=T.length>0?T:[{role:"user",content:A}];t=` -import base64 - -# Helper function to encode images to base64 -def encode_image(image_path): - with open(image_path, "rb") as image_file: - return base64.b64encode(image_file.read()).decode('utf-8') - -# Example with text only -response = client.chat.completions.create( - model="${C}", - messages=${JSON.stringify(s,null,4)}${a} -) - -print(response) - -# Example with image or PDF (uncomment and provide file path to use) -# base64_file = encode_image("path/to/your/file.jpg") # or .pdf -# response_with_file = client.chat.completions.create( -# model="${C}", -# messages=[ -# { -# "role": "user", -# "content": [ -# { -# "type": "text", -# "text": "${N}" -# }, -# { -# "type": "image_url", -# "image_url": { -# "url": f"data:image/jpeg;base64,{base64_file}" # or data:application/pdf;base64,{base64_file} -# } -# } -# ] -# } -# ]${a} -# ) -# print(response_with_file) -`;break}case r.RESPONSES:{let e=Object.keys(S).length>0,a="";if(e){let e=JSON.stringify({metadata:S},null,2).split("\n").map(e=>" ".repeat(4)+e).join("\n").trim();a=`, - extra_body=${e}`}let s=T.length>0?T:[{role:"user",content:A}];t=` -import base64 - -# Helper function to encode images to base64 -def encode_image(image_path): - with open(image_path, "rb") as image_file: - return base64.b64encode(image_file.read()).decode('utf-8') - -# Example with text only -response = client.responses.create( - model="${C}", - input=${JSON.stringify(s,null,4)}${a} -) - -print(response.output_text) - -# Example with image or PDF (uncomment and provide file path to use) -# base64_file = encode_image("path/to/your/file.jpg") # or .pdf -# response_with_file = client.responses.create( -# model="${C}", -# input=[ -# { -# "role": "user", -# "content": [ -# {"type": "input_text", "text": "${N}"}, -# { -# "type": "input_image", -# "image_url": f"data:image/jpeg;base64,{base64_file}", # or data:application/pdf;base64,{base64_file} -# }, -# ], -# } -# ]${a} -# ) -# print(response_with_file.output_text) -`;break}case r.IMAGE:t="azure"===_?` -# NOTE: The Azure SDK does not have a direct equivalent to the multi-modal 'responses.create' method shown for OpenAI. -# This snippet uses 'client.images.generate' and will create a new image based on your prompt. -# It does not use the uploaded image, as 'client.images.generate' does not support image inputs in this context. -import os -import requests -import json -import time -from PIL import Image - -result = client.images.generate( - model="${C}", - prompt="${l}", - n=1 -) - -json_response = json.loads(result.model_dump_json()) - -# Set the directory for the stored image -image_dir = os.path.join(os.curdir, 'images') - -# If the directory doesn't exist, create it -if not os.path.isdir(image_dir): - os.mkdir(image_dir) - -# Initialize the image path -image_filename = f"generated_image_{int(time.time())}.png" -image_path = os.path.join(image_dir, image_filename) - -try: - # Retrieve the generated image - if json_response.get("data") && len(json_response["data"]) > 0 && json_response["data"][0].get("url"): - image_url = json_response["data"][0]["url"] - generated_image = requests.get(image_url).content - with open(image_path, "wb") as image_file: - image_file.write(generated_image) - - print(f"Image saved to {image_path}") - # Display the image - image = Image.open(image_path) - image.show() - else: - print("Could not find image URL in response.") - print("Full response:", json_response) -except Exception as e: - print(f"An error occurred: {e}") - print("Full response:", json_response) -`:` -import base64 -import os -import time -import json -from PIL import Image -import requests - -# Helper function to encode images to base64 -def encode_image(image_path): - with open(image_path, "rb") as image_file: - return base64.b64encode(image_file.read()).decode('utf-8') - -# Helper function to create a file (simplified for this example) -def create_file(image_path): - # In a real implementation, this would upload the file to OpenAI - # For this example, we'll just return a placeholder ID - return f"file_{os.path.basename(image_path).replace('.', '_')}" - -# The prompt entered by the user -prompt = "${N}" - -# Encode images to base64 -base64_image1 = encode_image("body-lotion.png") -base64_image2 = encode_image("soap.png") - -# Create file IDs -file_id1 = create_file("body-lotion.png") -file_id2 = create_file("incense-kit.png") - -response = client.responses.create( - model="${C}", - input=[ - { - "role": "user", - "content": [ - {"type": "input_text", "text": prompt}, - { - "type": "input_image", - "image_url": f"data:image/jpeg;base64,{base64_image1}", - }, - { - "type": "input_image", - "image_url": f"data:image/jpeg;base64,{base64_image2}", - }, - { - "type": "input_image", - "file_id": file_id1, - }, - { - "type": "input_image", - "file_id": file_id2, - } - ], - } - ], - tools=[{"type": "image_generation"}], -) - -# Process the response -image_generation_calls = [ - output - for output in response.output - if output.type == "image_generation_call" -] - -image_data = [output.result for output in image_generation_calls] - -if image_data: - image_base64 = image_data[0] - image_filename = f"edited_image_{int(time.time())}.png" - with open(image_filename, "wb") as f: - f.write(base64.b64decode(image_base64)) - print(f"Image saved to {image_filename}") -else: - # If no image is generated, there might be a text response with an explanation - text_response = [output.text for output in response.output if hasattr(output, 'text')] - if text_response: - print("No image generated. Model response:") - print("\\n".join(text_response)) - else: - print("No image data found in response.") - print("Full response for debugging:") - print(response) -`;break;case r.IMAGE_EDITS:t="azure"===_?` -import base64 -import os -import time -import json -from PIL import Image -import requests - -# Helper function to encode images to base64 -def encode_image(image_path): - with open(image_path, "rb") as image_file: - return base64.b64encode(image_file.read()).decode('utf-8') - -# The prompt entered by the user -prompt = "${N}" - -# Encode images to base64 -base64_image1 = encode_image("body-lotion.png") -base64_image2 = encode_image("soap.png") - -# Create file IDs -file_id1 = create_file("body-lotion.png") -file_id2 = create_file("incense-kit.png") - -response = client.responses.create( - model="${C}", - input=[ - { - "role": "user", - "content": [ - {"type": "input_text", "text": prompt}, - { - "type": "input_image", - "image_url": f"data:image/jpeg;base64,{base64_image1}", - }, - { - "type": "input_image", - "image_url": f"data:image/jpeg;base64,{base64_image2}", - }, - { - "type": "input_image", - "file_id": file_id1, - }, - { - "type": "input_image", - "file_id": file_id2, - } - ], - } - ], - tools=[{"type": "image_generation"}], -) - -# Process the response -image_generation_calls = [ - output - for output in response.output - if output.type == "image_generation_call" -] - -image_data = [output.result for output in image_generation_calls] - -if image_data: - image_base64 = image_data[0] - image_filename = f"edited_image_{int(time.time())}.png" - with open(image_filename, "wb") as f: - f.write(base64.b64decode(image_base64)) - print(f"Image saved to {image_filename}") -else: - # If no image is generated, there might be a text response with an explanation - text_response = [output.text for output in response.output if hasattr(output, 'text')] - if text_response: - print("No image generated. Model response:") - print("\\n".join(text_response)) - else: - print("No image data found in response.") - print("Full response for debugging:") - print(response) -`:` -import base64 -import os -import time - -# Helper function to encode images to base64 -def encode_image(image_path): - with open(image_path, "rb") as image_file: - return base64.b64encode(image_file.read()).decode('utf-8') - -# Helper function to create a file (simplified for this example) -def create_file(image_path): - # In a real implementation, this would upload the file to OpenAI - # For this example, we'll just return a placeholder ID - return f"file_{os.path.basename(image_path).replace('.', '_')}" - -# The prompt entered by the user -prompt = "${N}" - -# Encode images to base64 -base64_image1 = encode_image("body-lotion.png") -base64_image2 = encode_image("soap.png") - -# Create file IDs -file_id1 = create_file("body-lotion.png") -file_id2 = create_file("incense-kit.png") - -response = client.responses.create( - model="${C}", - input=[ - { - "role": "user", - "content": [ - {"type": "input_text", "text": prompt}, - { - "type": "input_image", - "image_url": f"data:image/jpeg;base64,{base64_image1}", - }, - { - "type": "input_image", - "image_url": f"data:image/jpeg;base64,{base64_image2}", - }, - { - "type": "input_image", - "file_id": file_id1, - }, - { - "type": "input_image", - "file_id": file_id2, - } - ], - } - ], - tools=[{"type": "image_generation"}], -) - -# Process the response -image_generation_calls = [ - output - for output in response.output - if output.type == "image_generation_call" -] - -image_data = [output.result for output in image_generation_calls] - -if image_data: - image_base64 = image_data[0] - image_filename = f"edited_image_{int(time.time())}.png" - with open(image_filename, "wb") as f: - f.write(base64.b64decode(image_base64)) - print(f"Image saved to {image_filename}") -else: - # If no image is generated, there might be a text response with an explanation - text_response = [output.text for output in response.output if hasattr(output, 'text')] - if text_response: - print("No image generated. Model response:") - print("\\n".join(text_response)) - else: - print("No image data found in response.") - print("Full response for debugging:") - print(response) -`;break;case r.EMBEDDINGS:t=` -response = client.embeddings.create( - input="${l||"Your string here"}", - model="${C}", - encoding_format="base64" # or "float" -) - -print(response.data[0].embedding) -`;break;case r.TRANSCRIPTION:t=` -# Open the audio file -audio_file = open("path/to/your/audio/file.mp3", "rb") - -# Make the transcription request -response = client.audio.transcriptions.create( - model="${C}", - file=audio_file${l?`, - prompt="${l.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:""} -) - -print(response.text) -`;break;case r.SPEECH:t=` -# Make the text-to-speech request -response = client.audio.speech.create( - model="${C}", - input="${l||"Your text to convert to speech here"}", - voice="${x}" # Options: alloy, ash, ballad, coral, echo, fable, nova, onyx, sage, shimmer -) - -# Save the audio to a file -output_filename = "output_speech.mp3" -response.stream_to_file(output_filename) -print(f"Audio saved to {output_filename}") - -# Optional: Customize response format and speed -# response = client.audio.speech.create( -# model="${C}", -# input="${l||"Your text to convert to speech here"}", -# voice="alloy", -# response_format="mp3", # Options: mp3, opus, aac, flac, wav, pcm -# speed=1.0 # Range: 0.25 to 4.0 -# ) -# response.stream_to_file("output_speech.mp3") -`;break;default:t="\n# Code generation for this endpoint is not implemented yet."}return`${w} -${t}`}],190272)},596239,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"}}]},name:"link",theme:"outlined"};var r=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(r.default,(0,t.default)({},e,{ref:i,icon:s}))});e.s(["LinkOutlined",0,i],596239)},652272,209261,e=>{"use strict";var t=e.i(843476),a=e.i(271645),s=e.i(447566),r=e.i(166406),i=e.i(492030),l=e.i(596239);let n=e=>"github"===e.source.source&&e.source.repo?`/plugin marketplace add ${e.source.repo}`:"url"===e.source.source&&e.source.url?`/plugin marketplace add ${e.source.url}`:`/plugin marketplace add ${e.name}`;e.s(["formatInstallCommand",0,n,"getCategoryBadgeColor",0,e=>{if(!e)return"gray";let t=e.toLowerCase();if(t.includes("development")||t.includes("dev"))return"blue";if(t.includes("productivity")||t.includes("workflow"))return"green";if(t.includes("learning")||t.includes("education"))return"purple";if(t.includes("security")||t.includes("safety"))return"red";if(t.includes("data")||t.includes("analytics"))return"orange";else if(t.includes("integration")||t.includes("api"))return"yellow";return"gray"},"isValidEmail",0,e=>!e||/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e),"isValidSemanticVersion",0,e=>!e||/^\d+\.\d+\.\d+(-[a-zA-Z0-9.-]+)?(\+[a-zA-Z0-9.-]+)?$/.test(e),"isValidUrl",0,e=>{if(!e)return!0;try{return new URL(e),!0}catch{return!1}},"parseKeywords",0,e=>e&&""!==e.trim()?e.split(",").map(e=>e.trim()).filter(e=>""!==e):[],"validatePluginName",0,e=>!!e&&""!==e.trim()&&/^[a-z0-9-]+$/.test(e)],209261),e.s(["default",0,({skill:e,onBack:o})=>{let c,[d,m]=(0,a.useState)("overview"),[p,u]=(0,a.useState)(null),g=(e,t)=>{navigator.clipboard.writeText(e),u(t),setTimeout(()=>u(null),2e3)},x="github"===(c=e.source).source&&c.repo?`https://github.com/${c.repo}`:"git-subdir"===c.source&&c.url?c.path?`${c.url}/tree/main/${c.path}`:c.url:"url"===c.source&&c.url?c.url:null,h=n(e),f=[...e.category?[{property:"Category",value:e.category}]:[],...e.domain?[{property:"Domain",value:e.domain}]:[],...e.namespace?[{property:"Namespace",value:e.namespace}]:[],...e.version?[{property:"Version",value:e.version}]:[],...e.author?.name?[{property:"Author",value:e.author.name}]:[],...e.created_at?[{property:"Added",value:new Date(e.created_at).toLocaleDateString()}]:[]];return(0,t.jsxs)("div",{style:{padding:"24px 32px 24px 0"},children:[(0,t.jsxs)("div",{onClick:o,style:{display:"inline-flex",alignItems:"center",gap:6,color:"#5f6368",cursor:"pointer",fontSize:14,marginBottom:24},children:[(0,t.jsx)(s.ArrowLeftOutlined,{style:{fontSize:11}}),(0,t.jsx)("span",{children:"Skills"})]}),(0,t.jsxs)("div",{style:{marginBottom:8},children:[(0,t.jsx)("h1",{style:{fontSize:28,fontWeight:400,color:"#202124",margin:0,lineHeight:1.2},children:e.name}),e.description&&(0,t.jsx)("p",{style:{fontSize:14,color:"#5f6368",margin:"8px 0 0 0",lineHeight:1.6},children:e.description})]}),(0,t.jsx)("div",{style:{borderBottom:"1px solid #dadce0",marginBottom:28,marginTop:24},children:(0,t.jsx)("div",{style:{display:"flex",gap:0},children:[{key:"overview",label:"Overview"},{key:"usage",label:"How to Use"}].map(e=>(0,t.jsx)("div",{onClick:()=>m(e.key),style:{padding:"12px 20px",fontSize:14,color:d===e.key?"#1a73e8":"#5f6368",borderBottom:d===e.key?"3px solid #1a73e8":"3px solid transparent",cursor:"pointer",fontWeight:d===e.key?500:400,marginBottom:-1},children:e.label},e.key))})}),"overview"===d&&(0,t.jsxs)("div",{style:{display:"flex",gap:64},children:[(0,t.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,t.jsx)("h2",{style:{fontSize:18,fontWeight:400,color:"#202124",margin:"0 0 4px 0"},children:"Skill Details"}),(0,t.jsx)("p",{style:{fontSize:13,color:"#5f6368",margin:"0 0 16px 0"},children:"Metadata registered with this skill"}),(0,t.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:14},children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{style:{borderBottom:"1px solid #dadce0"},children:[(0,t.jsx)("th",{style:{textAlign:"left",padding:"12px 0",color:"#5f6368",fontWeight:500,width:160},children:"Property"}),(0,t.jsx)("th",{style:{textAlign:"left",padding:"12px 0",color:"#5f6368",fontWeight:500},children:e.name})]})}),(0,t.jsx)("tbody",{children:f.map((e,a)=>(0,t.jsxs)("tr",{style:{borderBottom:"1px solid #f1f3f4"},children:[(0,t.jsx)("td",{style:{padding:"12px 0",color:"#3c4043"},children:e.property}),(0,t.jsx)("td",{style:{padding:"12px 0",color:"#202124"},children:e.value})]},a))})]})]}),(0,t.jsxs)("div",{style:{width:240,flexShrink:0},children:[(0,t.jsxs)("div",{style:{marginBottom:24},children:[(0,t.jsx)("div",{style:{fontSize:12,color:"#5f6368",marginBottom:4},children:"Status"}),(0,t.jsx)("span",{style:{fontSize:12,padding:"3px 10px",borderRadius:12,backgroundColor:e.enabled?"#e6f4ea":"#f1f3f4",color:e.enabled?"#137333":"#5f6368",fontWeight:500},children:e.enabled?"Public":"Draft"})]}),x&&(0,t.jsxs)("div",{style:{marginBottom:24},children:[(0,t.jsx)("div",{style:{fontSize:12,color:"#5f6368",marginBottom:4},children:"Source"}),(0,t.jsxs)("a",{href:x,target:"_blank",rel:"noopener noreferrer",style:{fontSize:13,color:"#1a73e8",wordBreak:"break-all",display:"flex",alignItems:"center",gap:4},children:[x.replace("https://",""),(0,t.jsx)(l.LinkOutlined,{style:{fontSize:11,flexShrink:0}})]})]}),e.keywords&&e.keywords.length>0&&(0,t.jsxs)("div",{style:{marginBottom:24},children:[(0,t.jsx)("div",{style:{fontSize:12,color:"#5f6368",marginBottom:8},children:"Tags"}),(0,t.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:e.keywords.map(e=>(0,t.jsx)("span",{style:{fontSize:12,padding:"4px 12px",borderRadius:16,border:"1px solid #dadce0",color:"#3c4043",backgroundColor:"#fff"},children:e},e))})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{fontSize:12,color:"#5f6368",marginBottom:4},children:"Skill ID"}),(0,t.jsx)("div",{style:{fontSize:12,fontFamily:"monospace",color:"#3c4043",wordBreak:"break-all"},children:e.id})]})]})]}),"usage"===d&&(0,t.jsxs)("div",{style:{maxWidth:640},children:[(0,t.jsx)("h2",{style:{fontSize:18,fontWeight:400,color:"#202124",margin:"0 0 8px 0"},children:"Using this skill"}),(0,t.jsx)("p",{style:{fontSize:14,color:"#5f6368",margin:"0 0 24px 0",lineHeight:1.6},children:"Once your proxy is set as a marketplace, enable this skill in Claude Code with one command:"}),(0,t.jsxs)("div",{style:{border:"1px solid #dadce0",borderRadius:8,overflow:"hidden",marginBottom:24},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 16px",backgroundColor:"#f8f9fa",borderBottom:"1px solid #dadce0"},children:[(0,t.jsx)("span",{style:{fontSize:13,color:"#3c4043",fontWeight:500},children:"Run in Claude Code"}),(0,t.jsxs)("button",{onClick:()=>g(h,"install"),style:{display:"flex",alignItems:"center",gap:4,fontSize:12,color:"install"===p?"#137333":"#1a73e8",background:"none",border:"none",cursor:"pointer",padding:0},children:["install"===p?(0,t.jsx)(i.CheckOutlined,{}):(0,t.jsx)(r.CopyOutlined,{}),"install"===p?"Copied":"Copy"]})]}),(0,t.jsx)("pre",{style:{margin:0,padding:"14px 16px",fontSize:14,fontFamily:"monospace",color:"#202124",backgroundColor:"#fff"},children:h})]}),(0,t.jsxs)("p",{style:{fontSize:13,color:"#5f6368",lineHeight:1.6,margin:0},children:["Don't have the marketplace configured yet?"," ",(0,t.jsx)("span",{onClick:()=>m("setup"),style:{color:"#1a73e8",cursor:"pointer"},children:"See one-time setup →"})]})]}),"setup"===d&&(0,t.jsxs)("div",{style:{maxWidth:640},children:[(0,t.jsx)("h2",{style:{fontSize:18,fontWeight:400,color:"#202124",margin:"0 0 8px 0"},children:"One-time marketplace setup"}),(0,t.jsxs)("p",{style:{fontSize:14,color:"#5f6368",margin:"0 0 24px 0",lineHeight:1.6},children:["Add this to ",(0,t.jsx)("code",{style:{fontSize:13,backgroundColor:"#f1f3f4",padding:"1px 6px",borderRadius:4},children:"~/.claude/settings.json"})," to point Claude Code at your proxy:"]}),(0,t.jsxs)("div",{style:{border:"1px solid #dadce0",borderRadius:8,overflow:"hidden"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 16px",backgroundColor:"#f8f9fa",borderBottom:"1px solid #dadce0"},children:[(0,t.jsx)("span",{style:{fontSize:13,color:"#3c4043",fontWeight:500},children:"~/.claude/settings.json"}),(0,t.jsxs)("button",{onClick:()=>{g(JSON.stringify({extraKnownMarketplaces:{"my-org":{source:"url",url:`${window.location.origin}/claude-code/marketplace.json`}}},null,2),"settings")},style:{display:"flex",alignItems:"center",gap:4,fontSize:12,color:"settings"===p?"#137333":"#1a73e8",background:"none",border:"none",cursor:"pointer",padding:0},children:["settings"===p?(0,t.jsx)(i.CheckOutlined,{}):(0,t.jsx)(r.CopyOutlined,{}),"settings"===p?"Copied":"Copy"]})]}),(0,t.jsx)("pre",{style:{margin:0,padding:"14px 16px",fontSize:13,fontFamily:"monospace",color:"#202124",backgroundColor:"#fff"},children:JSON.stringify({extraKnownMarketplaces:{"my-org":{source:"url",url:`${window.location.origin}/claude-code/marketplace.json`}}},null,2)})]})]})]})}],652272)},879664,e=>{"use strict";let t=(0,e.i(475254).default)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);e.s(["default",0,t])},916925,e=>{"use strict";var t,a=((t={}).A2A_Agent="A2A Agent",t.AI21="Ai21",t.AI21_CHAT="Ai21 Chat",t.AIML="AI/ML API",t.AIOHTTP_OPENAI="Aiohttp Openai",t.Anthropic="Anthropic",t.ANTHROPIC_TEXT="Anthropic Text",t.AssemblyAI="AssemblyAI",t.AUTO_ROUTER="Auto Router",t.Bedrock="Amazon Bedrock",t.BedrockMantle="Amazon Bedrock Mantle",t.SageMaker="AWS SageMaker",t.Azure="Azure",t.Azure_AI_Studio="Azure AI Foundry (Studio)",t.AZURE_TEXT="Azure Text",t.BASETEN="Baseten",t.BYTEZ="Bytez",t.Cerebras="Cerebras",t.CLARIFAI="Clarifai",t.CLOUDFLARE="Cloudflare",t.CODESTRAL="Codestral",t.Cohere="Cohere",t.COHERE_CHAT="Cohere Chat",t.COMETAPI="Cometapi",t.COMPACTIFAI="Compactifai",t.Cursor="Cursor",t.Dashscope="Dashscope",t.Databricks="Databricks (Qwen API)",t.DATAROBOT="Datarobot",t.DeepInfra="DeepInfra",t.Deepgram="Deepgram",t.Deepseek="Deepseek",t.DOCKER_MODEL_RUNNER="Docker Model Runner",t.DOTPROMPT="Dotprompt",t.ElevenLabs="ElevenLabs",t.EMPOWER="Empower",t.FalAI="Fal AI",t.FEATHERLESS_AI="Featherless Ai",t.FireworksAI="Fireworks AI",t.FRIENDLIAI="Friendliai",t.GALADRIEL="Galadriel",t.GITHUB_COPILOT="Github Copilot",t.Google_AI_Studio="Google AI Studio",t.GradientAI="GradientAI",t.Groq="Groq",t.HEROKU="Heroku",t.Hosted_Vllm="vllm",t.HUGGINGFACE="Huggingface",t.HYPERBOLIC="Hyperbolic",t.Infinity="Infinity",t.JinaAI="Jina AI",t.LAMBDA_AI="Lambda Ai",t.LEMONADE="Lemonade",t.LLAMAFILE="Llamafile",t.LM_STUDIO="Lm Studio",t.LLAMA="Meta Llama",t.MARITALK="Maritalk",t.MiniMax="MiniMax",t.MistralAI="Mistral AI",t.MOONSHOT="Moonshot",t.MORPH="Morph",t.NEBIUS="Nebius",t.NLP_CLOUD="Nlp Cloud",t.NOVITA="Novita",t.NSCALE="Nscale",t.NVIDIA_NIM="Nvidia Nim",t.Ollama="Ollama",t.OLLAMA_CHAT="Ollama Chat",t.OOBABOOGA="Oobabooga",t.OpenAI="OpenAI",t.OPENAI_LIKE="Openai Like",t.OpenAI_Compatible="OpenAI-Compatible Endpoints (Together AI, etc.)",t.OpenAI_Text="OpenAI Text Completion",t.OpenAI_Text_Compatible="OpenAI-Compatible Text Completion Models (Together AI, etc.)",t.Openrouter="Openrouter",t.Oracle="Oracle Cloud Infrastructure (OCI)",t.OVHCLOUD="Ovhcloud",t.Perplexity="Perplexity",t.PETALS="Petals",t.PG_VECTOR="Pg Vector",t.PREDIBASE="Predibase",t.RECRAFT="Recraft",t.REPLICATE="Replicate",t.RunwayML="RunwayML",t.SAGEMAKER_LEGACY="Sagemaker",t.Sambanova="Sambanova",t.SAP="SAP Generative AI Hub",t.Snowflake="Snowflake",t.TEXT_COMPLETION_CODESTRAL="Text-Completion-Codestral",t.TogetherAI="TogetherAI",t.TOPAZ="Topaz",t.Triton="Triton",t.V0="V0",t.VERCEL_AI_GATEWAY="Vercel Ai Gateway",t.Vertex_AI="Vertex AI (Anthropic, Gemini, etc.)",t.VERTEX_AI_BETA="Vertex Ai Beta",t.VLLM="Vllm",t.VolcEngine="VolcEngine",t.Voyage="Voyage AI",t.WANDB="Wandb",t.WATSONX="Watsonx",t.WATSONX_TEXT="Watsonx Text",t.xAI="xAI",t.XINFERENCE="Xinference",t.ZAI="Z.AI (Zhipu AI)",t);let s={A2A_Agent:"a2a_agent",AI21:"ai21",AI21_CHAT:"ai21_chat",AIML:"aiml",AIOHTTP_OPENAI:"aiohttp_openai",Anthropic:"anthropic",ANTHROPIC_TEXT:"anthropic_text",AssemblyAI:"assemblyai",AUTO_ROUTER:"auto_router",Azure:"azure",Azure_AI_Studio:"azure_ai",AZURE_TEXT:"azure_text",BASETEN:"baseten",Bedrock:"bedrock",BedrockMantle:"bedrock_mantle",BYTEZ:"bytez",Cerebras:"cerebras",CLARIFAI:"clarifai",CLOUDFLARE:"cloudflare",CODESTRAL:"codestral",Cohere:"cohere",COHERE_CHAT:"cohere_chat",COMETAPI:"cometapi",COMPACTIFAI:"compactifai",Cursor:"cursor",Dashscope:"dashscope",Databricks:"databricks",DATAROBOT:"datarobot",DeepInfra:"deepinfra",Deepgram:"deepgram",Deepseek:"deepseek",DOCKER_MODEL_RUNNER:"docker_model_runner",DOTPROMPT:"dotprompt",ElevenLabs:"elevenlabs",EMPOWER:"empower",FalAI:"fal_ai",FEATHERLESS_AI:"featherless_ai",FireworksAI:"fireworks_ai",FRIENDLIAI:"friendliai",GALADRIEL:"galadriel",GITHUB_COPILOT:"github_copilot",Google_AI_Studio:"gemini",GradientAI:"gradient_ai",Groq:"groq",HEROKU:"heroku",Hosted_Vllm:"hosted_vllm",HUGGINGFACE:"huggingface",HYPERBOLIC:"hyperbolic",Infinity:"infinity",JinaAI:"jina_ai",LAMBDA_AI:"lambda_ai",LEMONADE:"lemonade",LLAMAFILE:"llamafile",LLAMA:"meta_llama",LM_STUDIO:"lm_studio",MARITALK:"maritalk",MiniMax:"minimax",MistralAI:"mistral",MOONSHOT:"moonshot",MORPH:"morph",NEBIUS:"nebius",NLP_CLOUD:"nlp_cloud",NOVITA:"novita",NSCALE:"nscale",NVIDIA_NIM:"nvidia_nim",Ollama:"ollama",OLLAMA_CHAT:"ollama_chat",OOBABOOGA:"oobabooga",OpenAI:"openai",OPENAI_LIKE:"openai_like",OpenAI_Compatible:"openai",OpenAI_Text:"text-completion-openai",OpenAI_Text_Compatible:"text-completion-openai",Openrouter:"openrouter",Oracle:"oci",OVHCLOUD:"ovhcloud",Perplexity:"perplexity",PETALS:"petals",PG_VECTOR:"pg_vector",PREDIBASE:"predibase",RECRAFT:"recraft",REPLICATE:"replicate",RunwayML:"runwayml",SAGEMAKER_LEGACY:"sagemaker",SageMaker:"sagemaker_chat",Sambanova:"sambanova",SAP:"sap",Snowflake:"snowflake",TEXT_COMPLETION_CODESTRAL:"text-completion-codestral",TogetherAI:"together_ai",TOPAZ:"topaz",Triton:"triton",V0:"v0",VERCEL_AI_GATEWAY:"vercel_ai_gateway",Vertex_AI:"vertex_ai",VERTEX_AI_BETA:"vertex_ai_beta",VLLM:"vllm",VolcEngine:"volcengine",Voyage:"voyage",WANDB:"wandb",WATSONX:"watsonx",WATSONX_TEXT:"watsonx_text",xAI:"xai",XINFERENCE:"xinference",ZAI:"zai"},r="../ui/assets/logos/",i={"A2A Agent":`${r}a2a_agent.png`,Ai21:`${r}ai21.svg`,"Ai21 Chat":`${r}ai21.svg`,"AI/ML API":`${r}aiml_api.svg`,"Aiohttp Openai":`${r}openai_small.svg`,Anthropic:`${r}anthropic.svg`,"Anthropic Text":`${r}anthropic.svg`,AssemblyAI:`${r}assemblyai_small.png`,Azure:`${r}microsoft_azure.svg`,"Azure AI Foundry (Studio)":`${r}microsoft_azure.svg`,"Azure Text":`${r}microsoft_azure.svg`,Baseten:`${r}baseten.svg`,"Amazon Bedrock":`${r}bedrock.svg`,"Amazon Bedrock Mantle":`${r}bedrock.svg`,"AWS SageMaker":`${r}bedrock.svg`,Cerebras:`${r}cerebras.svg`,Cloudflare:`${r}cloudflare.svg`,Codestral:`${r}mistral.svg`,Cohere:`${r}cohere.svg`,"Cohere Chat":`${r}cohere.svg`,Cometapi:`${r}cometapi.svg`,Cursor:`${r}cursor.svg`,"Databricks (Qwen API)":`${r}databricks.svg`,Dashscope:`${r}dashscope.svg`,Deepseek:`${r}deepseek.svg`,Deepgram:`${r}deepgram.png`,DeepInfra:`${r}deepinfra.png`,ElevenLabs:`${r}elevenlabs.png`,"Fal AI":`${r}fal_ai.jpg`,"Featherless Ai":`${r}featherless.svg`,"Fireworks AI":`${r}fireworks.svg`,Friendliai:`${r}friendli.svg`,"Github Copilot":`${r}github_copilot.svg`,"Google AI Studio":`${r}google.svg`,GradientAI:`${r}gradientai.svg`,Groq:`${r}groq.svg`,vllm:`${r}vllm.png`,Huggingface:`${r}huggingface.svg`,Hyperbolic:`${r}hyperbolic.svg`,Infinity:`${r}infinity.png`,"Jina AI":`${r}jina.png`,"Lambda Ai":`${r}lambda.svg`,"Lm Studio":`${r}lmstudio.svg`,"Meta Llama":`${r}meta_llama.svg`,MiniMax:`${r}minimax.svg`,"Mistral AI":`${r}mistral.svg`,Moonshot:`${r}moonshot.svg`,Morph:`${r}morph.svg`,Nebius:`${r}nebius.svg`,Novita:`${r}novita.svg`,"Nvidia Nim":`${r}nvidia_nim.svg`,Ollama:`${r}ollama.svg`,"Ollama Chat":`${r}ollama.svg`,Oobabooga:`${r}openai_small.svg`,OpenAI:`${r}openai_small.svg`,"Openai Like":`${r}openai_small.svg`,"OpenAI Text Completion":`${r}openai_small.svg`,"OpenAI-Compatible Text Completion Models (Together AI, etc.)":`${r}openai_small.svg`,"OpenAI-Compatible Endpoints (Together AI, etc.)":`${r}openai_small.svg`,Openrouter:`${r}openrouter.svg`,"Oracle Cloud Infrastructure (OCI)":`${r}oracle.svg`,Perplexity:`${r}perplexity-ai.svg`,Recraft:`${r}recraft.svg`,Replicate:`${r}replicate.svg`,RunwayML:`${r}runwayml.png`,Sagemaker:`${r}bedrock.svg`,Sambanova:`${r}sambanova.svg`,"SAP Generative AI Hub":`${r}sap.png`,Snowflake:`${r}snowflake.svg`,"Text-Completion-Codestral":`${r}mistral.svg`,TogetherAI:`${r}togetherai.svg`,Topaz:`${r}topaz.svg`,Triton:`${r}nvidia_triton.png`,V0:`${r}v0.svg`,"Vercel Ai Gateway":`${r}vercel.svg`,"Vertex AI (Anthropic, Gemini, etc.)":`${r}google.svg`,"Vertex Ai Beta":`${r}google.svg`,Vllm:`${r}vllm.png`,VolcEngine:`${r}volcengine.png`,"Voyage AI":`${r}voyage.webp`,Watsonx:`${r}watsonx.svg`,"Watsonx Text":`${r}watsonx.svg`,xAI:`${r}xai.svg`,Xinference:`${r}xinference.svg`};e.s(["Providers",()=>a,"getPlaceholder",0,e=>{if("AI/ML API"===e)return"aiml/flux-pro/v1.1";if("Vertex AI (Anthropic, Gemini, etc.)"===e)return"gemini-pro";if("Anthropic"==e)return"claude-3-opus";if("Amazon Bedrock"==e)return"claude-3-opus";if("AWS SageMaker"==e)return"sagemaker/jumpstart-dft-meta-textgeneration-llama-2-7b";else if("Google AI Studio"==e)return"gemini-pro";else if("Azure AI Foundry (Studio)"==e)return"azure_ai/command-r-plus";else if("Azure"==e)return"my-deployment";else if("Oracle Cloud Infrastructure (OCI)"==e)return"oci/xai.grok-4";else if("Snowflake"==e)return"snowflake/mistral-7b";else if("Voyage AI"==e)return"voyage/";else if("Jina AI"==e)return"jina_ai/";else if("VolcEngine"==e)return"volcengine/";else if("DeepInfra"==e)return"deepinfra/";else if("Fal AI"==e)return"fal_ai/fal-ai/flux-pro/v1.1-ultra";else if("RunwayML"==e)return"runwayml/gen4_turbo";else if("Watsonx"===e)return"watsonx/ibm/granite-3-3-8b-instruct";else if("Cursor"===e)return"cursor/claude-4-sonnet";else if("Z.AI (Zhipu AI)"===e)return"zai/glm-4.5";else return"gpt-3.5-turbo"},"getProviderLogoAndName",0,e=>{if(!e)return{logo:"",displayName:"-"};if("gemini"===e.toLowerCase()){let e="Google AI Studio";return{logo:i[e],displayName:e}}let t=Object.keys(s).find(t=>s[t].toLowerCase()===e.toLowerCase());if(!t)return{logo:"",displayName:e};let r=a[t];return{logo:i[r],displayName:r}},"getProviderModels",0,(e,t)=>{console.log(`Provider key: ${e}`);let a=s[e];console.log(`Provider mapped to: ${a}`);let r=[];return e&&"object"==typeof t&&(Object.entries(t).forEach(([e,t])=>{if(null!==t&&"object"==typeof t&&"litellm_provider"in t){let s=t.litellm_provider;(s===a||"string"==typeof s&&s.includes(a))&&r.push(e)}}),"Cohere"==e&&(console.log("Adding cohere chat models"),Object.entries(t).forEach(([e,t])=>{null!==t&&"object"==typeof t&&"litellm_provider"in t&&"cohere_chat"===t.litellm_provider&&r.push(e)})),"AWS SageMaker"==e&&(console.log("Adding sagemaker chat models"),Object.entries(t).forEach(([e,t])=>{null!==t&&"object"==typeof t&&"litellm_provider"in t&&"sagemaker_chat"===t.litellm_provider&&r.push(e)}))),r},"providerLogoMap",0,i,"provider_map",0,s])},798496,e=>{"use strict";var t=e.i(843476),a=e.i(152990),s=e.i(682830),r=e.i(271645),i=e.i(269200),l=e.i(427612),n=e.i(64848),o=e.i(942232),c=e.i(496020),d=e.i(977572),m=e.i(94629),p=e.i(360820),u=e.i(871943);e.s(["ModelDataTable",0,function({data:e=[],columns:g,isLoading:x=!1,defaultSorting:h=[],pagination:f,onPaginationChange:_,enablePagination:b=!1,onRowClick:y}){let[v,j]=r.default.useState(h),[A]=r.default.useState("onChange"),[N,T]=r.default.useState({}),[S,C]=r.default.useState({}),w=(0,a.useReactTable)({data:e,columns:g,state:{sorting:v,columnSizing:N,columnVisibility:S,...b&&f?{pagination:f}:{}},columnResizeMode:A,onSortingChange:j,onColumnSizingChange:T,onColumnVisibilityChange:C,...b&&_?{onPaginationChange:_}:{},getCoreRowModel:(0,s.getCoreRowModel)(),getSortedRowModel:(0,s.getSortedRowModel)(),...b?{getPaginationRowModel:(0,s.getPaginationRowModel)()}:{},enableSorting:!0,enableColumnResizing:!0,defaultColumn:{minSize:40,maxSize:500}});return(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsx)("div",{className:"relative min-w-full",children:(0,t.jsxs)(i.Table,{className:"[&_td]:py-2 [&_th]:py-2",style:{width:w.getTotalSize(),minWidth:"100%",tableLayout:"fixed"},children:[(0,t.jsx)(l.TableHead,{children:w.getHeaderGroups().map(e=>(0,t.jsx)(c.TableRow,{children:e.headers.map(e=>(0,t.jsxs)(n.TableHeaderCell,{className:`py-1 h-8 relative ${"actions"===e.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)] w-[120px] ml-8":""} ${e.column.columnDef.meta?.className||""}`,style:{width:"actions"===e.id?120:e.getSize(),position:"actions"===e.id?"sticky":"relative",right:"actions"===e.id?0:"auto"},onClick:e.column.getCanSort()?e.column.getToggleSortingHandler():void 0,children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,a.flexRender)(e.column.columnDef.header,e.getContext())}),"actions"!==e.id&&e.column.getCanSort()&&(0,t.jsx)("div",{className:"w-4",children:e.column.getIsSorted()?({asc:(0,t.jsx)(p.ChevronUpIcon,{className:"h-4 w-4 text-blue-500"}),desc:(0,t.jsx)(u.ChevronDownIcon,{className:"h-4 w-4 text-blue-500"})})[e.column.getIsSorted()]:(0,t.jsx)(m.SwitchVerticalIcon,{className:"h-4 w-4 text-gray-400"})})]}),e.column.getCanResize()&&(0,t.jsx)("div",{onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:`absolute right-0 top-0 h-full w-2 cursor-col-resize select-none touch-none ${e.column.getIsResizing()?"bg-blue-500":"hover:bg-blue-200"}`})]},e.id))},e.id))}),(0,t.jsx)(o.TableBody,{children:x?(0,t.jsx)(c.TableRow,{children:(0,t.jsx)(d.TableCell,{colSpan:g.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"🚅 Loading models..."})})})}):w.getRowModel().rows.length>0?w.getRowModel().rows.map(e=>(0,t.jsx)(c.TableRow,{onClick:()=>y?.(e.original),className:y?"cursor-pointer hover:bg-gray-50":"",children:e.getVisibleCells().map(e=>(0,t.jsx)(d.TableCell,{className:`py-0.5 overflow-hidden ${"actions"===e.column.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)] w-[120px] ml-8":""} ${e.column.columnDef.meta?.className||""}`,style:{width:"actions"===e.column.id?120:e.column.getSize(),position:"actions"===e.column.id?"sticky":"relative",right:"actions"===e.column.id?0:"auto"},children:(0,a.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(c.TableRow,{children:(0,t.jsx)(d.TableCell,{colSpan:g.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No models found"})})})})})]})})})})}])},737033,e=>{"use strict";var t=e.i(843476),a=e.i(271645),s=e.i(599724),r=e.i(928685),i=e.i(311451),l=e.i(199133),n=e.i(798496),o=e.i(389083),c=e.i(592968),d=e.i(166406),m=e.i(596239),p=e.i(652272);e.s(["default",0,({skills:e,isLoading:u,isAdmin:g,accessToken:x,publicPage:h=!1,onPublishSuccess:f})=>{let[_,b]=(0,a.useState)(""),[y,v]=(0,a.useState)(void 0),[j,A]=(0,a.useState)(null),N=e.length,T=(0,a.useMemo)(()=>[...new Set(e.map(e=>e.domain).filter(Boolean))],[e]),S=(0,a.useMemo)(()=>[...new Set(e.map(e=>e.namespace).filter(Boolean))],[e]),C=(0,a.useMemo)(()=>{let t=e;if(y&&(t=t.filter(e=>(e.domain||"General")===y)),_.trim()){let e=_.toLowerCase();t=t.filter(t=>t.name.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e)||t.domain?.toLowerCase().includes(e)||t.namespace?.toLowerCase().includes(e)||t.keywords?.some(t=>t.toLowerCase().includes(e)))}return t},[e,_,y]);return j?(0,t.jsx)(p.default,{skill:j,onBack:()=>A(null),isAdmin:g,accessToken:x,onPublishClick:f}):u?(0,t.jsx)("div",{className:"text-center py-16 text-gray-400",children:"Loading skills..."}):(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"grid grid-cols-3 gap-4",children:[(0,t.jsxs)("div",{className:"border border-gray-200 rounded-lg p-4",children:[(0,t.jsx)("div",{className:"text-xs text-gray-500 mb-1",children:"Total Skills"}),(0,t.jsx)("div",{className:"text-2xl font-semibold text-gray-900",children:N})]}),(0,t.jsxs)("div",{className:"border border-gray-200 rounded-lg p-4",children:[(0,t.jsx)("div",{className:"text-xs text-gray-500 mb-1",children:"Namespaces"}),(0,t.jsx)("div",{className:"text-2xl font-semibold text-gray-900",children:S.length})]}),(0,t.jsxs)("div",{className:"border border-gray-200 rounded-lg p-4",children:[(0,t.jsx)("div",{className:"text-xs text-gray-500 mb-1",children:"Domains"}),(0,t.jsx)("div",{className:"text-2xl font-semibold text-gray-900",children:T.length})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsxs)("h3",{className:"text-sm font-semibold text-gray-700",children:["All ",h?"Public ":"","Skills"]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(l.Select,{placeholder:"All Domains",allowClear:!0,value:y,onChange:e=>v(e),style:{width:160},options:T.map(e=>({label:e,value:e}))}),(0,t.jsx)(i.Input,{prefix:(0,t.jsx)(r.SearchOutlined,{className:"text-gray-400"}),placeholder:"Search by name, namespace, or tag…",value:_,onChange:e=>b(e.target.value),style:{width:280},allowClear:!0})]})]}),(0,t.jsx)(n.ModelDataTable,{columns:((e,a,r=!1)=>[{header:"Skill Name",accessorKey:"name",enableSorting:!0,sortingFn:"alphanumeric",cell:({row:r})=>{let i=r.original;return(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("button",{type:"button",className:"font-medium text-sm cursor-pointer text-blue-600 hover:underline bg-transparent border-none p-0",onClick:()=>e(i),children:i.name}),(0,t.jsx)(c.Tooltip,{title:"Copy skill name",children:(0,t.jsx)(d.CopyOutlined,{onClick:()=>a(i.name),className:"cursor-pointer text-gray-500 hover:text-blue-500 text-xs"})})]}),i.description&&(0,t.jsx)(s.Text,{className:"text-xs text-gray-500 line-clamp-1 md:hidden",children:i.description})]})}},{header:"Description",accessorKey:"description",enableSorting:!1,cell:({row:e})=>(0,t.jsx)(s.Text,{className:"text-xs line-clamp-2",children:e.original.description||"-"})},{header:"Category",accessorKey:"category",enableSorting:!0,cell:({row:e})=>{let a=e.original.category;return a?(0,t.jsx)(o.Badge,{color:"blue",size:"xs",children:a}):(0,t.jsx)(s.Text,{className:"text-xs text-gray-400",children:"-"})}},{header:"Domain",accessorKey:"domain",enableSorting:!0,cell:({row:e})=>(0,t.jsx)(s.Text,{className:"text-xs",children:e.original.domain||"-"})},{header:"Source",accessorKey:"source",enableSorting:!1,cell:({row:e})=>{let a=e.original.source,r=null,i="-";return(a?.source==="github"&&a.repo?(r=`https://github.com/${a.repo}`,i=a.repo):a?.source==="git-subdir"&&a.url?i=(r=a.path?`${a.url}/tree/main/${a.path}`:a.url).replace("https://github.com/",""):a?.source==="url"&&a.url&&(r=a.url,i=a.url.replace(/^https?:\/\//,"")),r)?(0,t.jsxs)("a",{href:r,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 text-xs text-blue-600 hover:underline truncate max-w-[180px]",title:i,children:[(0,t.jsx)("span",{className:"truncate",children:i}),(0,t.jsx)(m.LinkOutlined,{className:"shrink-0",style:{fontSize:10}})]}):(0,t.jsx)(s.Text,{className:"text-xs text-gray-400",children:"-"})}},{header:"Status",accessorKey:"enabled",enableSorting:!0,cell:({row:e})=>(0,t.jsx)(o.Badge,{color:e.original.enabled?"green":"gray",size:"xs",children:e.original.enabled?"Public":"Draft"})}])(e=>A(e),e=>{navigator.clipboard.writeText(e)},h),data:C,isLoading:!1,defaultSorting:[{id:"name",desc:!1}]}),(0,t.jsx)("div",{className:"mt-3 text-center",children:(0,t.jsxs)(s.Text,{className:"text-sm text-gray-500",children:["Showing ",C.length," of ",N," skill",1!==N?"s":""]})})]})]})}],737033)},93826,174886,952571,e=>{"use strict";var t=e.i(271645);let a=t.forwardRef(function(e,a){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"}))});e.s(["SearchIcon",0,a],93826);var s=e.i(991124);e.s(["Copy",()=>s.default],174886);var r=e.i(879664);e.s(["Info",()=>r.default],952571)},976883,e=>{"use strict";var t=e.i(843476),a=e.i(275144),s=e.i(434626),r=e.i(93826),i=e.i(994388),l=e.i(304967),n=e.i(599724),o=e.i(629569),c=e.i(212931),d=e.i(199133),m=e.i(653496),p=e.i(262218),u=e.i(592968),g=e.i(174886),x=e.i(952571),h=e.i(271645),f=e.i(798496),_=e.i(727749),b=e.i(402874),y=e.i(764205),v=e.i(737033),j=e.i(190272),A=e.i(785913),N=e.i(916925);let{TabPane:T}=m.Tabs;e.s(["default",0,({accessToken:e,isEmbedded:S=!1})=>{let C,w,I,k,E,O,M,[L,R]=(0,h.useState)(null),[$,P]=(0,h.useState)(null),[z,D]=(0,h.useState)(null),[H,B]=(0,h.useState)("LiteLLM Gateway"),[G,F]=(0,h.useState)(null),[U,V]=(0,h.useState)(""),[K,W]=(0,h.useState)({}),[X,q]=(0,h.useState)(!0),[Y,Z]=(0,h.useState)(!0),[J,Q]=(0,h.useState)(!0),[ee,et]=(0,h.useState)(""),[ea,es]=(0,h.useState)(""),[er,ei]=(0,h.useState)(""),[el,en]=(0,h.useState)([]),[eo,ec]=(0,h.useState)([]),[ed,em]=(0,h.useState)([]),[ep,eu]=(0,h.useState)([]),[eg,ex]=(0,h.useState)([]),[eh,ef]=(0,h.useState)("I'm alive! ✓"),[e_,eb]=(0,h.useState)(!1),[ey,ev]=(0,h.useState)(!1),[ej,eA]=(0,h.useState)(!1),[eN,eT]=(0,h.useState)(null),[eS,eC]=(0,h.useState)(null),[ew,eI]=(0,h.useState)(null),[ek,eE]=(0,h.useState)({}),[eO,eM]=(0,h.useState)("models"),[eL,eR]=(0,h.useState)([]),[e$,eP]=(0,h.useState)(!1);(0,h.useEffect)(()=>{(async()=>{try{await (0,y.getUiConfig)()}catch(e){console.error("Failed to get UI config:",e)}let e=async()=>{try{q(!0);let e=await (0,y.modelHubPublicModelsCall)();console.log("ModelHubData:",e),R(Array.isArray(e)?e:[])}catch(e){console.error("There was an error fetching the public model data",e),ef("Service unavailable")}finally{q(!1)}},t=async()=>{try{Z(!0);let e=await (0,y.agentHubPublicModelsCall)();console.log("AgentHubData:",e),P(Array.isArray(e)?e:[])}catch(e){console.error("There was an error fetching the public agent data",e)}finally{Z(!1)}},a=async()=>{try{Q(!0);let e=await (0,y.mcpHubPublicServersCall)();console.log("MCPHubData:",e),D(Array.isArray(e)?e:[])}catch(e){console.error("There was an error fetching the public MCP server data",e)}finally{Q(!1)}},s=async()=>{try{eP(!0);let e=await (0,y.skillHubPublicCall)();eR(e.plugins??[])}catch(e){console.error("There was an error fetching the public skill data",e)}finally{eP(!1)}};(async()=>{let e=await (0,y.getPublicModelHubInfo)();console.log("Public Model Hub Info:",e),B(e.docs_title),F(e.custom_docs_description),V(e.litellm_version),W(e.useful_links||{})})(),e(),t(),a(),s()})()},[]),(0,h.useEffect)(()=>{},[ee,el,eo,ed]);let ez=(0,h.useMemo)(()=>{if(!L||!Array.isArray(L))return[];let e=L;if(ee.trim()){let t=ee.toLowerCase(),a=t.split(/\s+/),s=L.filter(e=>{let s=e.model_group.toLowerCase();return!!s.includes(t)||a.every(e=>s.includes(e))});s.length>0&&(e=s.sort((e,a)=>{let s=e.model_group.toLowerCase(),r=a.model_group.toLowerCase(),i=1e3*(s===t),l=1e3*(r===t),n=100*!!s.startsWith(t),o=100*!!r.startsWith(t),c=50*!!t.split(/\s+/).every(e=>s.includes(e)),d=50*!!t.split(/\s+/).every(e=>r.includes(e)),m=s.length;return l+o+d+(1e3-r.length)-(i+n+c+(1e3-m))}))}return e.filter(e=>{let t=0===el.length||el.some(t=>e.providers.includes(t)),a=0===eo.length||eo.includes(e.mode||""),s=0===ed.length||Object.entries(e).filter(([e,t])=>e.startsWith("supports_")&&!0===t).some(([e])=>{let t=e.replace(/^supports_/,"").split("_").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ");return ed.includes(t)});return t&&a&&s})},[L,ee,el,eo,ed]),eD=(0,h.useMemo)(()=>{if(!$||!Array.isArray($))return[];let e=$;if(ea.trim()){let t=ea.toLowerCase(),a=t.split(/\s+/);e=(e=$.filter(e=>{let s=e.name.toLowerCase(),r=e.description.toLowerCase();return!!(s.includes(t)||r.includes(t))||a.every(e=>s.includes(e)||r.includes(e))})).sort((e,a)=>{let s=e.name.toLowerCase(),r=a.name.toLowerCase(),i=1e3*(s===t),l=1e3*(r===t),n=100*!!s.startsWith(t),o=100*!!r.startsWith(t),c=i+n+(1e3-s.length);return l+o+(1e3-r.length)-c})}return e.filter(e=>0===ep.length||e.skills?.some(e=>e.tags?.some(e=>ep.includes(e))))},[$,ea,ep]),eH=(0,h.useMemo)(()=>{if(!z||!Array.isArray(z))return[];let e=z;if(er.trim()){let t=er.toLowerCase(),a=t.split(/\s+/);e=(e=z.filter(e=>{let s=e.server_name.toLowerCase(),r=(e.mcp_info?.description||"").toLowerCase();return!!(s.includes(t)||r.includes(t))||a.every(e=>s.includes(e)||r.includes(e))})).sort((e,a)=>{let s=e.server_name.toLowerCase(),r=a.server_name.toLowerCase(),i=1e3*(s===t),l=1e3*(r===t),n=100*!!s.startsWith(t),o=100*!!r.startsWith(t),c=i+n+(1e3-s.length);return l+o+(1e3-r.length)-c})}return e.filter(e=>0===eg.length||eg.includes(e.transport))},[z,er,eg]),eB=e=>{navigator.clipboard.writeText(e),_.default.success("Copied to clipboard!")},eG=e=>e.replace(/^supports_/,"").split("_").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "),eF=e=>`$${(1e6*e).toFixed(4)}`,eU=e=>e?e>=1e3?`${(e/1e3).toFixed(0)}K`:e.toString():"N/A";return(0,t.jsx)(a.ThemeProvider,{accessToken:e,children:(0,t.jsxs)("div",{className:S?"w-full":"min-h-screen bg-white",children:[!S&&(0,t.jsx)(b.default,{userID:null,userEmail:null,userRole:null,premiumUser:!1,setProxySettings:eE,proxySettings:ek,accessToken:e||null,isPublicPage:!0,isDarkMode:!1,toggleDarkMode:()=>{}}),(0,t.jsxs)("div",{className:S?"w-full p-6":"w-full px-8 py-12",children:[S&&(0,t.jsx)("div",{className:"mb-6 p-4 bg-blue-50 border border-blue-200 rounded-lg",children:(0,t.jsx)("p",{className:"text-sm text-gray-700",children:"These are models, agents, and MCP servers your proxy admin has indicated are available in your company."})}),!S&&(0,t.jsxs)(l.Card,{className:"mb-10 p-8 bg-white border border-gray-200 rounded-lg shadow-sm",children:[(0,t.jsx)(o.Title,{className:"text-2xl font-semibold mb-6 text-gray-900",children:"About"}),(0,t.jsx)("p",{className:"text-gray-700 mb-6 text-base leading-relaxed",children:G||"Proxy Server to call 100+ LLMs in the OpenAI format."}),(0,t.jsx)("div",{className:"flex items-center space-x-3 text-sm text-gray-600",children:(0,t.jsxs)("span",{className:"flex items-center",children:[(0,t.jsx)("span",{className:"w-4 h-4 mr-2",children:"🔧"}),"Built with litellm: v",U]})})]}),K&&Object.keys(K).length>0&&(0,t.jsxs)(l.Card,{className:"mb-10 p-8 bg-white border border-gray-200 rounded-lg shadow-sm",children:[(0,t.jsx)(o.Title,{className:"text-2xl font-semibold mb-6 text-gray-900",children:"Useful Links"}),(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:Object.entries(K||{}).map(([e,t])=>({title:e,url:"string"==typeof t?t:t.url,index:"string"==typeof t?0:t.index??0})).sort((e,t)=>e.index-t.index).map(({title:e,url:a})=>(0,t.jsxs)("button",{onClick:()=>window.open(a,"_blank"),className:"flex items-center space-x-3 text-blue-600 hover:text-blue-800 transition-colors p-3 rounded-lg hover:bg-blue-50 border border-gray-200",children:[(0,t.jsx)(s.ExternalLinkIcon,{className:"w-4 h-4"}),(0,t.jsx)(n.Text,{className:"text-sm font-medium",children:e})]},e))})]}),!S&&(0,t.jsxs)(l.Card,{className:"mb-10 p-8 bg-white border border-gray-200 rounded-lg shadow-sm",children:[(0,t.jsx)(o.Title,{className:"text-2xl font-semibold mb-6 text-gray-900",children:"Health and Endpoint Status"}),(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:(0,t.jsxs)(n.Text,{className:"text-green-600 font-medium text-sm",children:["Service status: ",eh]})})]}),(0,t.jsx)(l.Card,{className:"p-8 bg-white border border-gray-200 rounded-lg shadow-sm",children:(0,t.jsxs)(m.Tabs,{activeKey:eO,onChange:eM,size:"large",className:"public-hub-tabs",children:[(0,t.jsxs)(T,{tab:"Model Hub",children:[(0,t.jsx)("div",{className:"flex justify-between items-center mb-8",children:(0,t.jsx)(o.Title,{className:"text-2xl font-semibold text-gray-900",children:"Available Models"})}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-8 p-6 bg-gray-50 rounded-lg border border-gray-200",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center space-x-2 mb-3",children:[(0,t.jsx)(n.Text,{className:"text-sm font-medium text-gray-700",children:"Search Models:"}),(0,t.jsx)(u.Tooltip,{title:"Smart search with relevance ranking - finds models containing your search terms, ranked by relevance. Try searching 'xai grok-4', 'claude-4', 'gpt-4', or 'sonnet'",placement:"top",children:(0,t.jsx)(x.Info,{className:"w-4 h-4 text-gray-400 cursor-help"})})]}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(r.SearchIcon,{className:"w-4 h-4 text-gray-400 absolute left-3 top-1/2 transform -translate-y-1/2"}),(0,t.jsx)("input",{type:"text",placeholder:"Search model names... (smart search enabled)",value:ee,onChange:e=>et(e.target.value),className:"border border-gray-300 rounded-lg pl-10 pr-4 py-2 w-full text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white"})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-sm font-medium mb-3 text-gray-700",children:"Provider:"}),(0,t.jsx)(d.Select,{mode:"multiple",value:el,onChange:e=>en(e),placeholder:"Select providers",className:"w-full",size:"large",allowClear:!0,optionRender:e=>{let{logo:a}=(0,N.getProviderLogoAndName)(e.value);return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[a&&(0,t.jsx)("img",{src:a,alt:e.label,className:"w-5 h-5 flex-shrink-0 object-contain",onError:e=>{e.target.style.display="none"}}),(0,t.jsx)("span",{className:"capitalize",children:e.label})]})},children:L&&Array.isArray(L)&&(C=new Set,L.forEach(e=>{(e.providers??[]).forEach(e=>C.add(e))}),Array.from(C)).map(e=>(0,t.jsx)(d.Select.Option,{value:e,children:e},e))})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-sm font-medium mb-3 text-gray-700",children:"Mode:"}),(0,t.jsx)(d.Select,{mode:"multiple",value:eo,onChange:e=>ec(e),placeholder:"Select modes",className:"w-full",size:"large",allowClear:!0,children:L&&Array.isArray(L)&&(w=new Set,L.forEach(e=>{e.mode&&w.add(e.mode)}),Array.from(w)).map(e=>(0,t.jsx)(d.Select.Option,{value:e,children:e},e))})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-sm font-medium mb-3 text-gray-700",children:"Features:"}),(0,t.jsx)(d.Select,{mode:"multiple",value:ed,onChange:e=>em(e),placeholder:"Select features",className:"w-full",size:"large",allowClear:!0,children:L&&Array.isArray(L)&&(I=new Set,L.forEach(e=>{Object.entries(e).filter(([e,t])=>e.startsWith("supports_")&&!0===t).forEach(([e])=>{let t=e.replace(/^supports_/,"").split("_").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ");I.add(t)})}),Array.from(I).sort()).map(e=>(0,t.jsx)(d.Select.Option,{value:e,children:e},e))})]})]}),(0,t.jsx)(f.ModelDataTable,{columns:[{header:"Model Name",accessorKey:"model_group",enableSorting:!0,cell:({row:e})=>(0,t.jsx)("div",{className:"overflow-hidden",children:(0,t.jsx)(u.Tooltip,{title:e.original.model_group,children:(0,t.jsx)(i.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left",onClick:()=>{eT(e.original),eb(!0)},children:e.original.model_group})})}),size:150},{header:"Providers",accessorKey:"providers",enableSorting:!0,cell:({row:e})=>{let a=e.original.providers??[];return(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:a.map(e=>{let{logo:a}=(0,N.getProviderLogoAndName)(e);return(0,t.jsxs)("div",{className:"flex items-center space-x-1 px-2 py-1 bg-gray-100 rounded text-xs",children:[a&&(0,t.jsx)("img",{src:a,alt:e,className:"w-3 h-3 flex-shrink-0 object-contain",onError:e=>{e.target.style.display="none"}}),(0,t.jsx)("span",{className:"capitalize",children:e})]},e)})})},size:120},{header:"Mode",accessorKey:"mode",enableSorting:!0,cell:({row:e})=>{let a=e.original.mode;return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("span",{children:(e=>{switch(e?.toLowerCase()){case"chat":return"💬";case"rerank":return"🔄";case"embedding":return"📄";default:return"🤖"}})(a||"")}),(0,t.jsx)(n.Text,{children:a||"Chat"})]})},size:100},{header:"Max Input",accessorKey:"max_input_tokens",enableSorting:!0,cell:({row:e})=>(0,t.jsx)(n.Text,{className:"text-center",children:eU(e.original.max_input_tokens)}),size:100,meta:{className:"text-center"}},{header:"Max Output",accessorKey:"max_output_tokens",enableSorting:!0,cell:({row:e})=>(0,t.jsx)(n.Text,{className:"text-center",children:eU(e.original.max_output_tokens)}),size:100,meta:{className:"text-center"}},{header:"Input $/1M",accessorKey:"input_cost_per_token",enableSorting:!0,cell:({row:e})=>{let a=e.original.input_cost_per_token;return(0,t.jsx)(n.Text,{className:"text-center",children:a?eF(a):"Free"})},size:100,meta:{className:"text-center"}},{header:"Output $/1M",accessorKey:"output_cost_per_token",enableSorting:!0,cell:({row:e})=>{let a=e.original.output_cost_per_token;return(0,t.jsx)(n.Text,{className:"text-center",children:a?eF(a):"Free"})},size:100,meta:{className:"text-center"}},{header:"Features",accessorKey:"supports_vision",enableSorting:!1,cell:({row:e})=>{let a=Object.entries(e.original).filter(([e,t])=>e.startsWith("supports_")&&!0===t).map(([e])=>eG(e));return 0===a.length?(0,t.jsx)(n.Text,{className:"text-gray-400",children:"-"}):1===a.length?(0,t.jsx)("div",{className:"h-6 flex items-center",children:(0,t.jsx)(p.Tag,{color:"blue",className:"text-xs",children:a[0]})}):(0,t.jsxs)("div",{className:"h-6 flex items-center space-x-1",children:[(0,t.jsx)(p.Tag,{color:"blue",className:"text-xs",children:a[0]}),(0,t.jsx)(u.Tooltip,{title:(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("div",{className:"font-medium",children:"All Features:"}),a.map((e,a)=>(0,t.jsxs)("div",{className:"text-xs",children:["• ",e]},a))]}),trigger:"click",placement:"topLeft",children:(0,t.jsxs)("span",{className:"text-xs text-blue-600 cursor-pointer hover:text-blue-800 hover:underline",onClick:e=>e.stopPropagation(),children:["+",a.length-1]})})]})},size:120},{header:"Health Status",accessorKey:"health_status",enableSorting:!0,cell:({row:e})=>{let a=e.original,s="healthy"===a.health_status?"green":"unhealthy"===a.health_status?"red":"default",r=a.health_response_time?`Response Time: ${Number(a.health_response_time).toFixed(2)}ms`:"N/A",i=a.health_checked_at?`Last Checked: ${new Date(a.health_checked_at).toLocaleString()}`:"N/A";return(0,t.jsx)(u.Tooltip,{title:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{children:r}),(0,t.jsx)("div",{children:i})]}),children:(0,t.jsx)(p.Tag,{color:s,children:(0,t.jsx)("span",{className:"capitalize",children:a.health_status??"Unknown"})},a.model_group)})},size:100},{header:"Limits",accessorKey:"rpm",enableSorting:!0,cell:({row:e})=>{var a,s;let r,i=e.original;return(0,t.jsx)(n.Text,{className:"text-xs text-gray-600",children:(a=i.rpm,s=i.tpm,r=[],a&&r.push(`RPM: ${a.toLocaleString()}`),s&&r.push(`TPM: ${s.toLocaleString()}`),r.length>0?r.join(", "):"N/A")})},size:150}],data:ez,isLoading:X,defaultSorting:[{id:"model_group",desc:!1}]}),(0,t.jsx)("div",{className:"mt-8 text-center",children:(0,t.jsxs)(n.Text,{className:"text-sm text-gray-600",children:["Showing ",ez.length," of ",L?.length||0," models"]})})]},"models"),$&&Array.isArray($)&&$.length>0&&(0,t.jsxs)(T,{tab:"Agent Hub",children:[(0,t.jsx)("div",{className:"flex justify-between items-center mb-8",children:(0,t.jsx)(o.Title,{className:"text-2xl font-semibold text-gray-900",children:"Available Agents"})}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6 mb-8 p-6 bg-gray-50 rounded-lg border border-gray-200",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center space-x-2 mb-3",children:[(0,t.jsx)(n.Text,{className:"text-sm font-medium text-gray-700",children:"Search Agents:"}),(0,t.jsx)(u.Tooltip,{title:"Search agents by name or description",placement:"top",children:(0,t.jsx)(x.Info,{className:"w-4 h-4 text-gray-400 cursor-help"})})]}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(r.SearchIcon,{className:"w-4 h-4 text-gray-400 absolute left-3 top-1/2 transform -translate-y-1/2"}),(0,t.jsx)("input",{type:"text",placeholder:"Search agent names or descriptions...",value:ea,onChange:e=>es(e.target.value),className:"border border-gray-300 rounded-lg pl-10 pr-4 py-2 w-full text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white"})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-sm font-medium mb-3 text-gray-700",children:"Skills:"}),(0,t.jsx)(d.Select,{mode:"multiple",value:ep,onChange:e=>eu(e),placeholder:"Select skills",className:"w-full",size:"large",allowClear:!0,children:$&&Array.isArray($)&&(k=new Set,$.forEach(e=>{e.skills?.forEach(e=>{e.tags?.forEach(e=>k.add(e))})}),Array.from(k).sort()).map(e=>(0,t.jsx)(d.Select.Option,{value:e,children:e},e))})]})]}),(0,t.jsx)(f.ModelDataTable,{columns:[{header:"Agent Name",accessorKey:"name",enableSorting:!0,cell:({row:e})=>(0,t.jsx)("div",{className:"overflow-hidden",children:(0,t.jsx)(u.Tooltip,{title:e.original.name,children:(0,t.jsx)(i.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left",onClick:()=>{eC(e.original),ev(!0)},children:e.original.name})})}),size:150},{header:"Description",accessorKey:"description",enableSorting:!1,cell:({row:e})=>{let a=e.original.description??"",s=a.length>80?a.substring(0,80)+"...":a;return(0,t.jsx)(u.Tooltip,{title:a,children:(0,t.jsx)(n.Text,{className:"text-sm text-gray-700",children:s})})},size:250},{header:"Version",accessorKey:"version",enableSorting:!0,cell:({row:e})=>(0,t.jsx)(n.Text,{className:"text-sm",children:e.original.version}),size:80},{header:"Provider",accessorKey:"provider",enableSorting:!1,cell:({row:e})=>{let a=e.original.provider;return a?(0,t.jsx)("div",{className:"text-sm",children:(0,t.jsx)(n.Text,{className:"font-medium",children:a.organization})}):(0,t.jsx)(n.Text,{className:"text-gray-400",children:"-"})},size:120},{header:"Skills",accessorKey:"skills",enableSorting:!1,cell:({row:e})=>{let a=e.original.skills||[];return 0===a.length?(0,t.jsx)(n.Text,{className:"text-gray-400",children:"-"}):1===a.length?(0,t.jsx)("div",{className:"h-6 flex items-center",children:(0,t.jsx)(p.Tag,{color:"purple",className:"text-xs",children:a[0].name})}):(0,t.jsxs)("div",{className:"h-6 flex items-center space-x-1",children:[(0,t.jsx)(p.Tag,{color:"purple",className:"text-xs",children:a[0].name}),(0,t.jsx)(u.Tooltip,{title:(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("div",{className:"font-medium",children:"All Skills:"}),a.map((e,a)=>(0,t.jsxs)("div",{className:"text-xs",children:["• ",e.name]},a))]}),trigger:"click",placement:"topLeft",children:(0,t.jsxs)("span",{className:"text-xs text-purple-600 cursor-pointer hover:text-purple-800 hover:underline",onClick:e=>e.stopPropagation(),children:["+",a.length-1]})})]})},size:150},{header:"Capabilities",accessorKey:"capabilities",enableSorting:!1,cell:({row:e})=>{let a=Object.entries(e.original.capabilities||{}).filter(([e,t])=>!0===t).map(([e])=>e);return 0===a.length?(0,t.jsx)(n.Text,{className:"text-gray-400",children:"-"}):(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:a.map(e=>(0,t.jsx)(p.Tag,{color:"green",className:"text-xs capitalize",children:e},e))})},size:150}],data:eD,isLoading:Y,defaultSorting:[{id:"name",desc:!1}]}),(0,t.jsx)("div",{className:"mt-8 text-center",children:(0,t.jsxs)(n.Text,{className:"text-sm text-gray-600",children:["Showing ",eD.length," of ",$?.length||0," agents"]})})]},"agents"),z&&Array.isArray(z)&&z.length>0&&(0,t.jsxs)(T,{tab:"MCP Hub",children:[(0,t.jsx)("div",{className:"flex justify-between items-center mb-8",children:(0,t.jsx)(o.Title,{className:"text-2xl font-semibold text-gray-900",children:"Available MCP Servers"})}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6 mb-8 p-6 bg-gray-50 rounded-lg border border-gray-200",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center space-x-2 mb-3",children:[(0,t.jsx)(n.Text,{className:"text-sm font-medium text-gray-700",children:"Search MCP Servers:"}),(0,t.jsx)(u.Tooltip,{title:"Search MCP servers by name or description",placement:"top",children:(0,t.jsx)(x.Info,{className:"w-4 h-4 text-gray-400 cursor-help"})})]}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(r.SearchIcon,{className:"w-4 h-4 text-gray-400 absolute left-3 top-1/2 transform -translate-y-1/2"}),(0,t.jsx)("input",{type:"text",placeholder:"Search MCP server names or descriptions...",value:er,onChange:e=>ei(e.target.value),className:"border border-gray-300 rounded-lg pl-10 pr-4 py-2 w-full text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white"})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-sm font-medium mb-3 text-gray-700",children:"Transport:"}),(0,t.jsx)(d.Select,{mode:"multiple",value:eg,onChange:e=>ex(e),placeholder:"Select transport types",className:"w-full",size:"large",allowClear:!0,children:z&&Array.isArray(z)&&(E=new Set,z.forEach(e=>{e.transport&&E.add(e.transport)}),Array.from(E).sort()).map(e=>(0,t.jsx)(d.Select.Option,{value:e,children:e},e))})]})]}),(0,t.jsx)(f.ModelDataTable,{columns:[{header:"Server Name",accessorKey:"server_name",enableSorting:!0,cell:({row:e})=>(0,t.jsx)("div",{className:"overflow-hidden",children:(0,t.jsx)(u.Tooltip,{title:e.original.server_name,children:(0,t.jsx)(i.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left",onClick:()=>{eI(e.original),eA(!0)},children:e.original.server_name})})}),size:150},{header:"Description",accessorKey:"mcp_info.description",enableSorting:!1,cell:({row:e})=>{let a=String(e.original.mcp_info?.description??"-"),s=a.length>80?a.substring(0,80)+"...":a;return(0,t.jsx)(u.Tooltip,{title:a,children:(0,t.jsx)(n.Text,{className:"text-sm text-gray-700",children:s})})},size:250},{header:"URL",accessorKey:"url",enableSorting:!1,cell:({row:e})=>{let a=e.original.url??"",s=a.length>40?a.substring(0,40)+"...":a;return(0,t.jsx)(u.Tooltip,{title:a,children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)(n.Text,{className:"text-xs font-mono",children:s}),(0,t.jsx)(g.Copy,{onClick:()=>eB(a),className:"cursor-pointer text-gray-500 hover:text-blue-500 w-3 h-3"})]})})},size:200},{header:"Transport",accessorKey:"transport",enableSorting:!0,cell:({row:e})=>{let a=e.original.transport;return(0,t.jsx)(p.Tag,{color:"blue",className:"text-xs uppercase",children:a})},size:100},{header:"Auth Type",accessorKey:"auth_type",enableSorting:!0,cell:({row:e})=>{let a=e.original.auth_type;return(0,t.jsx)(p.Tag,{color:"none"===a?"gray":"green",className:"text-xs capitalize",children:a})},size:100}],data:eH,isLoading:J,defaultSorting:[{id:"server_name",desc:!1}]}),(0,t.jsx)("div",{className:"mt-8 text-center",children:(0,t.jsxs)(n.Text,{className:"text-sm text-gray-600",children:["Showing ",eH.length," of ",z?.length||0," MCP servers"]})})]},"mcp"),(0,t.jsx)(T,{tab:"Skill Hub",children:(0,t.jsx)(v.default,{skills:eL,isLoading:e$,publicPage:!0})},"skills")]})})]}),(0,t.jsx)(c.Modal,{title:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("span",{children:eN?.model_group||"Model Details"}),eN&&(0,t.jsx)(u.Tooltip,{title:"Copy model name",children:(0,t.jsx)(g.Copy,{onClick:()=>eB(eN.model_group),className:"cursor-pointer text-gray-500 hover:text-blue-500 w-4 h-4"})})]}),width:1e3,open:e_,footer:null,onOk:()=>{eb(!1),eT(null)},onCancel:()=>{eb(!1),eT(null)},children:eN&&(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-lg font-semibold mb-4",children:"Model Overview"}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 mb-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"Model Name:"}),(0,t.jsx)(n.Text,{children:eN.model_group})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"Mode:"}),(0,t.jsx)(n.Text,{children:eN.mode||"Not specified"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"Providers:"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1 mt-1",children:(eN.providers??[]).map(e=>{let{logo:a}=(0,N.getProviderLogoAndName)(e);return(0,t.jsx)(p.Tag,{color:"blue",children:(0,t.jsxs)("div",{className:"flex items-center space-x-1",children:[a&&(0,t.jsx)("img",{src:a,alt:e,className:"w-3 h-3 flex-shrink-0 object-contain",onError:e=>{e.target.style.display="none"}}),(0,t.jsx)("span",{className:"capitalize",children:e})]})},e)})})]})]}),eN.model_group.includes("*")&&(0,t.jsx)("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-4 mb-4",children:(0,t.jsxs)("div",{className:"flex items-start space-x-2",children:[(0,t.jsx)(x.Info,{className:"w-4 h-4 text-blue-600 mt-0.5 flex-shrink-0"}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"font-medium text-blue-900 mb-2",children:"Wildcard Routing"}),(0,t.jsxs)(n.Text,{className:"text-sm text-blue-800 mb-2",children:["This model uses wildcard routing. You can pass any value where you see the"," ",(0,t.jsx)("code",{className:"bg-blue-100 px-1 py-0.5 rounded text-xs",children:"*"})," symbol."]}),(0,t.jsxs)(n.Text,{className:"text-sm text-blue-800",children:["For example, with"," ",(0,t.jsx)("code",{className:"bg-blue-100 px-1 py-0.5 rounded text-xs",children:eN.model_group}),", you can use any string (",(0,t.jsx)("code",{className:"bg-blue-100 px-1 py-0.5 rounded text-xs",children:eN.model_group.replaceAll("*","my-custom-value")}),") that matches this pattern."]})]})]})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-lg font-semibold mb-4",children:"Token & Cost Information"}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"Max Input Tokens:"}),(0,t.jsx)(n.Text,{children:eN.max_input_tokens?.toLocaleString()||"Not specified"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"Max Output Tokens:"}),(0,t.jsx)(n.Text,{children:eN.max_output_tokens?.toLocaleString()||"Not specified"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"Input Cost per 1M Tokens:"}),(0,t.jsx)(n.Text,{children:eN.input_cost_per_token?eF(eN.input_cost_per_token):"Not specified"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"Output Cost per 1M Tokens:"}),(0,t.jsx)(n.Text,{children:eN.output_cost_per_token?eF(eN.output_cost_per_token):"Not specified"})]})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-lg font-semibold mb-4",children:"Capabilities"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:(O=Object.entries(eN).filter(([e,t])=>e.startsWith("supports_")&&!0===t).map(([e])=>e),M=["green","blue","purple","orange","red","yellow"],0===O.length?(0,t.jsx)(n.Text,{className:"text-gray-500",children:"No special capabilities listed"}):O.map((e,a)=>(0,t.jsx)(p.Tag,{color:M[a%M.length],children:eG(e)},e)))})]}),(eN.tpm||eN.rpm)&&(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-lg font-semibold mb-4",children:"Rate Limits"}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[eN.tpm&&(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"Tokens per Minute:"}),(0,t.jsx)(n.Text,{children:eN.tpm.toLocaleString()})]}),eN.rpm&&(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"Requests per Minute:"}),(0,t.jsx)(n.Text,{children:eN.rpm.toLocaleString()})]})]})]}),eN.supported_openai_params&&eN.supported_openai_params.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-lg font-semibold mb-4",children:"Supported OpenAI Parameters"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:eN.supported_openai_params.map(e=>(0,t.jsx)(p.Tag,{color:"green",children:e},e))})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-lg font-semibold mb-4",children:"Usage Example"}),(0,t.jsx)("div",{className:"bg-gray-900 text-gray-100 p-4 rounded-lg overflow-x-auto",children:(0,t.jsx)("pre",{className:"text-sm",children:(0,j.generateCodeSnippet)({apiKeySource:"custom",accessToken:null,apiKey:"your_api_key",inputMessage:"Hello, how are you?",chatHistory:[{role:"user",content:"Hello, how are you?",isImage:!1}],selectedTags:[],selectedVectorStores:[],selectedGuardrails:[],selectedPolicies:[],selectedMCPServers:[],endpointType:(0,A.getEndpointType)(eN.mode||"chat"),selectedModel:eN.model_group,selectedSdk:"openai"})})}),(0,t.jsx)("div",{className:"mt-2 text-right",children:(0,t.jsx)("button",{onClick:()=>{eB((0,j.generateCodeSnippet)({apiKeySource:"custom",accessToken:null,apiKey:"your_api_key",inputMessage:"Hello, how are you?",chatHistory:[{role:"user",content:"Hello, how are you?",isImage:!1}],selectedTags:[],selectedVectorStores:[],selectedGuardrails:[],selectedPolicies:[],selectedMCPServers:[],endpointType:(0,A.getEndpointType)(eN.mode||"chat"),selectedModel:eN.model_group,selectedSdk:"openai"}))},className:"text-sm text-blue-600 hover:text-blue-800 cursor-pointer",children:"Copy to clipboard"})})]})]})}),(0,t.jsx)(c.Modal,{title:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("span",{children:eS?.name||"Agent Details"}),eS&&(0,t.jsx)(u.Tooltip,{title:"Copy agent name",children:(0,t.jsx)(g.Copy,{onClick:()=>eB(eS.name),className:"cursor-pointer text-gray-500 hover:text-blue-500 w-4 h-4"})})]}),width:1e3,open:ey,footer:null,onOk:()=>{ev(!1),eC(null)},onCancel:()=>{ev(!1),eC(null)},children:eS&&(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-lg font-semibold mb-4",children:"Agent Overview"}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 mb-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"Name:"}),(0,t.jsx)(n.Text,{children:eS.name})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"Version:"}),(0,t.jsx)(n.Text,{children:eS.version})]}),(0,t.jsxs)("div",{className:"col-span-2",children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"Description:"}),(0,t.jsx)(n.Text,{children:eS.description})]}),eS.url&&(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"URL:"}),(0,t.jsx)("a",{href:eS.url,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 text-sm break-all",children:eS.url})]})]})]}),eS.capabilities&&(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-lg font-semibold mb-4",children:"Capabilities"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:Object.entries(eS.capabilities).filter(([e,t])=>!0===t).map(([e])=>(0,t.jsx)(p.Tag,{color:"green",className:"capitalize",children:e},e))})]}),eS.skills&&eS.skills.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-lg font-semibold mb-4",children:"Skills"}),(0,t.jsx)("div",{className:"space-y-4",children:eS.skills.map((e,a)=>(0,t.jsxs)("div",{className:"border border-gray-200 rounded-lg p-4",children:[(0,t.jsx)("div",{className:"flex items-start justify-between mb-2",children:(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"font-medium text-base",children:e.name}),(0,t.jsx)(n.Text,{className:"text-sm text-gray-600",children:e.description})]})}),e.tags&&e.tags.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1 mt-2",children:e.tags.map(e=>(0,t.jsx)(p.Tag,{color:"purple",className:"text-xs",children:e},e))})]},a))})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-lg font-semibold mb-4",children:"Input/Output Modes"}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"Input Modes:"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1 mt-1",children:(eS.defaultInputModes??[]).map(e=>(0,t.jsx)(p.Tag,{color:"blue",children:e},e))})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"Output Modes:"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1 mt-1",children:(eS.defaultOutputModes??[]).map(e=>(0,t.jsx)(p.Tag,{color:"blue",children:e},e))})]})]})]}),eS.documentationUrl&&(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-lg font-semibold mb-4",children:"Documentation"}),(0,t.jsxs)("a",{href:eS.documentationUrl,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 flex items-center space-x-2",children:[(0,t.jsx)(s.ExternalLinkIcon,{className:"w-4 h-4"}),(0,t.jsx)("span",{children:"View Documentation"})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-lg font-semibold mb-4",children:"Usage Example (A2A Protocol)"}),(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(n.Text,{className:"text-sm font-medium mb-2 text-gray-700",children:"Step 1: Retrieve Agent Card"}),(0,t.jsx)("div",{className:"bg-gray-900 text-gray-100 p-4 rounded-lg overflow-x-auto",children:(0,t.jsx)("pre",{className:"text-xs",children:`base_url = '${eS.url}' - -resolver = A2ACardResolver( - httpx_client=httpx_client, - base_url=base_url, - # agent_card_path uses default, extended_agent_card_path also uses default -) - -# Fetch Public Agent Card and Initialize Client -final_agent_card_to_use: AgentCard | None = None -_public_card = ( - await resolver.get_agent_card() -) # Fetches from default public path - \`/agents/{agent_id}/\` -final_agent_card_to_use = _public_card - -if _public_card.supports_authenticated_extended_card: - try: - auth_headers_dict = { - 'Authorization': 'Bearer dummy-token-for-extended-card' - } - _extended_card = await resolver.get_agent_card( - relative_card_path=EXTENDED_AGENT_CARD_PATH, - http_kwargs={'headers': auth_headers_dict}, - ) - final_agent_card_to_use = ( - _extended_card # Update to use the extended card - ) - except Exception as e_extended: - logger.warning( - f'Failed to fetch extended agent card: {e_extended}. Will proceed with public card.', - exc_info=True, - )`})}),(0,t.jsx)("div",{className:"mt-2 text-right",children:(0,t.jsx)("button",{onClick:()=>{eB(`from a2a.client import A2ACardResolver, A2AClient -from a2a.types import ( - AgentCard, - MessageSendParams, - SendMessageRequest, - SendStreamingMessageRequest, -) -from a2a.utils.constants import ( - AGENT_CARD_WELL_KNOWN_PATH, - EXTENDED_AGENT_CARD_PATH, -) - -base_url = '${eS.url}' - -resolver = A2ACardResolver( - httpx_client=httpx_client, - base_url=base_url, - # agent_card_path uses default, extended_agent_card_path also uses default -) - -# Fetch Public Agent Card and Initialize Client -final_agent_card_to_use: AgentCard | None = None -_public_card = ( - await resolver.get_agent_card() -) # Fetches from default public path - \`/agents/{agent_id}/\` -final_agent_card_to_use = _public_card - -if _public_card.supports_authenticated_extended_card: - try: - auth_headers_dict = { - 'Authorization': 'Bearer dummy-token-for-extended-card' - } - _extended_card = await resolver.get_agent_card( - relative_card_path=EXTENDED_AGENT_CARD_PATH, - http_kwargs={'headers': auth_headers_dict}, - ) - final_agent_card_to_use = ( - _extended_card # Update to use the extended card - ) - except Exception as e_extended: - logger.warning( - f'Failed to fetch extended agent card: {e_extended}. Will proceed with public card.', - exc_info=True, - )`)},className:"text-sm text-blue-600 hover:text-blue-800 cursor-pointer",children:"Copy to clipboard"})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-sm font-medium mb-2 text-gray-700",children:"Step 2: Call the Agent"}),(0,t.jsx)("div",{className:"bg-gray-900 text-gray-100 p-4 rounded-lg overflow-x-auto",children:(0,t.jsx)("pre",{className:"text-xs",children:`client = A2AClient( - httpx_client=httpx_client, agent_card=final_agent_card_to_use -) - -send_message_payload: dict[str, Any] = { - 'message': { - 'role': 'user', - 'parts': [ - {'kind': 'text', 'text': 'how much is 10 USD in INR?'} - ], - 'messageId': uuid4().hex, - }, -} -request = SendMessageRequest( - id=str(uuid4()), params=MessageSendParams(**send_message_payload) -) - -response = await client.send_message(request) -print(response.model_dump(mode='json', exclude_none=True))`})}),(0,t.jsx)("div",{className:"mt-2 text-right",children:(0,t.jsx)("button",{onClick:()=>{eB(`client = A2AClient( - httpx_client=httpx_client, agent_card=final_agent_card_to_use -) - -send_message_payload: dict[str, Any] = { - 'message': { - 'role': 'user', - 'parts': [ - {'kind': 'text', 'text': 'how much is 10 USD in INR?'} - ], - 'messageId': uuid4().hex, - }, -} -request = SendMessageRequest( - id=str(uuid4()), params=MessageSendParams(**send_message_payload) -) - -response = await client.send_message(request) -print(response.model_dump(mode='json', exclude_none=True))`)},className:"text-sm text-blue-600 hover:text-blue-800 cursor-pointer",children:"Copy to clipboard"})})]})]})]})}),(0,t.jsx)(c.Modal,{title:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("span",{children:ew?.server_name||"MCP Server Details"}),ew&&(0,t.jsx)(u.Tooltip,{title:"Copy server name",children:(0,t.jsx)(g.Copy,{onClick:()=>eB(ew.server_name),className:"cursor-pointer text-gray-500 hover:text-blue-500 w-4 h-4"})})]}),width:1e3,open:ej,footer:null,onOk:()=>{eA(!1),eI(null)},onCancel:()=>{eA(!1),eI(null)},children:ew&&(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-lg font-semibold mb-4",children:"Server Overview"}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 mb-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"Server Name:"}),(0,t.jsx)(n.Text,{children:ew.server_name})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"Transport:"}),(0,t.jsx)(p.Tag,{color:"blue",children:ew.transport})]}),ew.alias&&(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"Alias:"}),(0,t.jsx)(n.Text,{children:ew.alias})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"Auth Type:"}),(0,t.jsx)(p.Tag,{color:"none"===ew.auth_type?"gray":"green",children:ew.auth_type})]}),(0,t.jsxs)("div",{className:"col-span-2",children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"Description:"}),(0,t.jsx)(n.Text,{children:ew.mcp_info?.description||"-"})]}),(0,t.jsxs)("div",{className:"col-span-2",children:[(0,t.jsx)(n.Text,{className:"font-medium",children:"URL:"}),(0,t.jsxs)("a",{href:ew.url,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 text-sm break-all flex items-center space-x-2",children:[(0,t.jsx)("span",{children:ew.url}),(0,t.jsx)(s.ExternalLinkIcon,{className:"w-4 h-4"})]})]})]})]}),ew.mcp_info&&Object.keys(ew.mcp_info).length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-lg font-semibold mb-4",children:"Additional Information"}),(0,t.jsx)("div",{className:"bg-gray-50 p-4 rounded-lg",children:(0,t.jsx)("pre",{className:"text-xs overflow-x-auto",children:JSON.stringify(ew.mcp_info,null,2)})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Text,{className:"text-lg font-semibold mb-4",children:"Usage Example"}),(0,t.jsx)("div",{className:"bg-gray-900 text-gray-100 p-4 rounded-lg overflow-x-auto",children:(0,t.jsx)("pre",{className:"text-sm",children:`# Using MCP Server with Python FastMCP - -from fastmcp import Client -import asyncio - -# Standard MCP configuration -config = { - "mcpServers": { - "${ew.server_name}": { - "url": "http://localhost:4000/${ew.server_name}/mcp", - "headers": { - "x-litellm-api-key": "Bearer sk-1234" - } - } - } -} - -# Create a client that connects to the server -client = Client(config) - -async def main(): - async with client: - # List available tools - tools = await client.list_tools() - print(f"Available tools: {[tool.name for tool in tools]}") - - # Call a tool - response = await client.call_tool( - name="tool_name", - arguments={"arg": "value"} - ) - print(f"Response: {response}") - -if __name__ == "__main__": - asyncio.run(main())`})}),(0,t.jsx)("div",{className:"mt-2 text-right",children:(0,t.jsx)("button",{onClick:()=>{eB(`# Using MCP Server with Python FastMCP - -from fastmcp import Client -import asyncio - -# Standard MCP configuration -config = { - "mcpServers": { - "${ew.server_name}": { - "url": "http://localhost:4000/${ew.server_name}/mcp", - "headers": { - "x-litellm-api-key": "Bearer sk-1234" - } - } - } -} - -# Create a client that connects to the server -client = Client(config) - -async def main(): - async with client: - # List available tools - tools = await client.list_tools() - print(f"Available tools: {[tool.name for tool in tools]}") - - # Call a tool - response = await client.call_tool( - name="tool_name", - arguments={"arg": "value"} - ) - print(f"Response: {response}") - -if __name__ == "__main__": - asyncio.run(main())`)},className:"text-sm text-blue-600 hover:text-blue-800 cursor-pointer",children:"Copy to clipboard"})})]})]})})]})})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/08cbskerpmujn.js b/litellm/proxy/_experimental/out/_next/static/chunks/08cbskerpmujn.js deleted file mode 100644 index 5f04532224d..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/08cbskerpmujn.js +++ /dev/null @@ -1,10 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,161059,147612,e=>{"use strict";var t=e.i(843476),l=e.i(764205),s=e.i(266027),a=e.i(243652),r=e.i(135214);let i=(0,a.createQueryKeys)("credentials"),o=()=>{let{accessToken:e}=(0,r.default)();return(0,s.useQuery)({queryKey:i.list({}),queryFn:async()=>await (0,l.credentialListCall)(e),enabled:!!e})};var n=e.i(368670),d=e.i(625901),c=e.i(292639),m=e.i(785242),u=e.i(152990),h=e.i(682830),x=e.i(271645),p=e.i(269200),g=e.i(427612),f=e.i(64848),j=e.i(942232),_=e.i(496020),y=e.i(977572),b=e.i(446891);function v({data:e=[],columns:l,isLoading:s=!1,sorting:a=[],onSortingChange:r,pagination:i,onPaginationChange:o,enablePagination:n=!1,onRowClick:d}){let[c]=x.default.useState("onChange"),[m,N]=x.default.useState({}),[w,C]=x.default.useState({}),S=(0,u.useReactTable)({data:e,columns:l,state:{sorting:a,columnSizing:m,columnVisibility:w,...n&&i?{pagination:i}:{}},columnResizeMode:c,onSortingChange:r,onColumnSizingChange:N,onColumnVisibilityChange:C,...n&&o?{onPaginationChange:o}:{},getCoreRowModel:(0,h.getCoreRowModel)(),...n?{getPaginationRowModel:(0,h.getPaginationRowModel)()}:{},enableSorting:!0,enableColumnResizing:!0,manualSorting:!0,defaultColumn:{minSize:40,maxSize:500}});return(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsx)("div",{className:"relative min-w-full",children:(0,t.jsxs)(p.Table,{className:"[&_td]:py-2 [&_th]:py-2",style:{width:S.getTotalSize(),minWidth:"100%",tableLayout:"fixed"},children:[(0,t.jsx)(g.TableHead,{children:S.getHeaderGroups().map(e=>(0,t.jsx)(_.TableRow,{children:e.headers.map(e=>(0,t.jsxs)(f.TableHeaderCell,{className:`py-1 h-8 relative ${"actions"===e.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)] w-[120px] ml-8":""} ${e.column.columnDef.meta?.className||""}`,style:{width:"actions"===e.id?120:e.getSize(),position:"actions"===e.id?"sticky":"relative",right:"actions"===e.id?0:"auto"},children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,u.flexRender)(e.column.columnDef.header,e.getContext())}),"actions"!==e.id&&e.column.getCanSort()&&r&&(0,t.jsx)(b.TableHeaderSortDropdown,{sortState:!1!==e.column.getIsSorted()&&e.column.getIsSorted(),onSortChange:t=>{!1===t?r([]):r([{id:e.column.id,desc:"desc"===t}])},columnId:e.column.id})]}),e.column.getCanResize()&&(0,t.jsx)("div",{onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:`absolute right-0 top-0 h-full w-2 cursor-col-resize select-none touch-none ${e.column.getIsResizing()?"bg-blue-500":"hover:bg-blue-200"}`})]},e.id))},e.id))}),(0,t.jsx)(j.TableBody,{children:s?(0,t.jsx)(_.TableRow,{children:(0,t.jsx)(y.TableCell,{colSpan:l.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"🚅 Loading models..."})})})}):S.getRowModel().rows.length>0?S.getRowModel().rows.map(e=>(0,t.jsx)(_.TableRow,{className:d?"cursor-pointer hover:bg-gray-50":"",onClick:()=>d?.(e.original),children:e.getVisibleCells().map(e=>(0,t.jsx)(y.TableCell,{className:`py-0.5 overflow-hidden ${"actions"===e.column.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)] w-[120px] ml-8":""} ${e.column.columnDef.meta?.className||""}`,style:{width:"actions"===e.column.id?120:e.column.getSize(),position:"actions"===e.column.id?"sticky":"relative",right:"actions"===e.column.id?0:"auto"},children:(0,u.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(_.TableRow,{children:(0,t.jsx)(y.TableCell,{colSpan:l.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No models found"})})})})})]})})})})}var N=e.i(751904),w=e.i(827252),C=e.i(772345),S=e.i(68155),k=e.i(389083),T=e.i(994388),F=e.i(752978),I=e.i(312361),M=e.i(525720),P=e.i(282786),A=e.i(770914),E=e.i(592968),L=e.i(898586),R=e.i(418371);let{Text:O,Title:B}=L.Typography,z=(0,t.jsxs)(A.Space,{direction:"vertical",size:12,children:[(0,t.jsx)(O,{strong:!0,style:{fontSize:13},children:"Credential types"}),(0,t.jsxs)(A.Space,{direction:"vertical",size:8,children:[(0,t.jsx)(M.Flex,{align:"center",gap:8,children:(0,t.jsxs)(A.Space,{direction:"vertical",children:[(0,t.jsxs)(M.Flex,{align:"center",gap:8,children:[(0,t.jsx)(C.SyncOutlined,{style:{color:"#1890ff"}}),(0,t.jsx)(B,{level:5,style:{margin:0,color:"#1890ff"},children:"Reusable"})]}),(0,t.jsx)(O,{type:"secondary",children:"Credentials saved in LiteLLM that can be added to models repeatedly."})]})}),(0,t.jsx)(I.Divider,{size:"small"}),(0,t.jsx)(M.Flex,{align:"center",gap:8,children:(0,t.jsxs)(A.Space,{direction:"vertical",size:8,children:[(0,t.jsxs)(M.Flex,{align:"center",gap:8,children:[(0,t.jsx)(N.EditOutlined,{style:{color:"#8c8c8c",fontSize:14,flexShrink:0}}),(0,t.jsx)(B,{level:5,style:{margin:0},children:"Manual"})]}),(0,t.jsx)(O,{type:"secondary",children:"Credentials added directly during model creation or defined in the config file."})]})})]})]}),q=e=>e?.model_info?.team_public_model_name?e.model_info.team_public_model_name:e?.model_name||"-";var V=e.i(127952),D=e.i(727749),H=e.i(313603),$=e.i(912598),G=e.i(350967),U=e.i(404206),J=e.i(906579),K=e.i(464571),W=e.i(199133),Q=e.i(981339),Y=e.i(153472),X=e.i(954616);let Z=async(e,t)=>{let s=(0,l.getProxyBaseUrl)(),a=s?`${s}/config/field/update`:"/config/field/update",r=await fetch(a,{method:"POST",headers:{[(0,l.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({field_name:"store_model_in_db",field_value:t.store_model_in_db,config_type:"general_settings"})});if(!r.ok){let e=await r.json().catch(()=>({}));throw Error(e?.error?.message||e?.message||e?.detail||"Failed to update model storage settings")}return await r.json()};var ee=e.i(190702),et=e.i(808613),el=e.i(212931),es=e.i(790848);let ea=({isVisible:e,onCancel:l,onSuccess:s})=>{let[a]=et.Form.useForm(),{mutateAsync:i,isPending:o}=(()=>{let{accessToken:e}=(0,r.default)();return(0,X.useMutation)({mutationFn:async t=>{if(!e)throw Error("Access token is required");return await Z(e,t)}})})(),{data:n,isLoading:d,refetch:c}=(0,Y.useProxyConfig)(Y.ConfigType.GENERAL_SETTINGS);(0,x.useEffect)(()=>{e&&c()},[e,c]);let m=(0,x.useMemo)(()=>{if(!n)return{store_model_in_db:!1};let e=n.find(e=>"store_model_in_db"===e.field_name);return{store_model_in_db:e?.field_value??!1}},[n]),u=async e=>{try{await i(e,{onSuccess:()=>{D.default.success("Model storage settings updated successfully"),c(),s?.()},onError:e=>{D.default.fromBackend("Failed to save model storage settings: "+(0,ee.parseErrorMessage)(e))}})}catch(e){D.default.fromBackend("Failed to save model storage settings: "+(0,ee.parseErrorMessage)(e))}},h=()=>{a.resetFields(),l()};return(0,t.jsx)(el.Modal,{title:(0,t.jsx)(L.Typography.Title,{level:5,children:"Model Settings"}),open:e,footer:(0,t.jsxs)(A.Space,{children:[(0,t.jsx)(K.Button,{onClick:h,disabled:o||d,children:"Cancel"}),(0,t.jsx)(K.Button,{type:"primary",loading:o,disabled:d,onClick:()=>a.submit(),children:o?"Saving...":"Save Settings"})]}),onCancel:h,children:(0,t.jsx)(et.Form,{form:a,layout:"horizontal",onFinish:u,initialValues:m,children:(0,t.jsx)(et.Form.Item,{label:"Store Model in DB",name:"store_model_in_db",tooltip:n?.find(e=>"store_model_in_db"===e.field_name)?.field_description||"If enabled, models and config are stored in and loaded from the database.",valuePropName:"checked",children:d?(0,t.jsx)(Q.Skeleton.Input,{active:!0,block:!0}):(0,t.jsx)(es.Switch,{})})},n?JSON.stringify(m):"loading")})};var er=e.i(374009);let ei=(e,t)=>{if(!e?.data)return{data:[]};let l=JSON.parse(JSON.stringify(e.data));for(let e=0;e"model"!==e&&"api_base"!==e))),l[e].provider=o,l[e].input_cost=n,l[e].output_cost=d,l[e].litellm_model_name=a,null!=l[e].input_cost&&(l[e].input_cost=(1e6*Number(l[e].input_cost)).toFixed(2)),null!=l[e].output_cost&&(l[e].output_cost=(1e6*Number(l[e].output_cost)).toFixed(2)),l[e].max_tokens=c,l[e].max_input_tokens=m,l[e].api_base=s?.litellm_params?.api_base,l[e].cleanedLitellmParams=u}return{data:l}},{Text:eo}=L.Typography,en=({selectedModelGroup:e,setSelectedModelGroup:s,availableModelGroups:a,availableModelAccessGroups:i,setSelectedModelId:o,setSelectedTeamId:c})=>{let{data:u,isLoading:h}=(0,n.useModelCostMap)(),{accessToken:p,userId:g,userRole:f,premiumUser:j}=(0,r.default)(),{data:_,isLoading:y}=(0,m.useTeams)(),b=(0,$.useQueryClient)(),[I,L]=(0,x.useState)(""),[B,Y]=(0,x.useState)(""),[X,Z]=(0,x.useState)("current_team"),[ee,et]=(0,x.useState)("personal"),[el,es]=(0,x.useState)(!1),[en,ed]=(0,x.useState)(null),[ec,em]=(0,x.useState)(new Set),[eu,eh]=(0,x.useState)(1),[ex]=(0,x.useState)(50),[ep,eg]=(0,x.useState)({pageIndex:0,pageSize:50}),[ef,ej]=(0,x.useState)([]),[e_,ey]=(0,x.useState)(!1),eb=(0,x.useMemo)(()=>(0,er.default)(e=>{Y(e),eh(1),eg(e=>({...e,pageIndex:0}))},200),[]);(0,x.useEffect)(()=>(eb(I),()=>{eb.cancel()}),[I,eb]);let ev="personal"===ee?void 0:ee.team_id,eN=(0,x.useMemo)(()=>{if(0===ef.length)return;let e=ef[0];return({input_cost:"costs",model_info_db_model:"status",model_info_created_by:"created_at",model_info_updated_at:"updated_at"})[e.id]||e.id},[ef]),ew=(0,x.useMemo)(()=>{if(0!==ef.length)return ef[0].desc?"desc":"asc"},[ef]),{data:eC,isLoading:eS,refetch:ek}=(0,d.useModelsInfo)(eu,ex,B||void 0,void 0,ev,eN,ew),eT=eS||h,eF=e=>null!=u&&"object"==typeof u&&e in u?u[e].litellm_provider:"openai",eI=(0,x.useMemo)(()=>eC?ei(eC,eF):{data:[]},[eC,u]),[eM,eP]=(0,x.useState)(null),[eA,eE]=(0,x.useState)(!1),eL=(0,x.useMemo)(()=>eC?{total_count:eC.total_count??0,current_page:eC.current_page??1,total_pages:eC.total_pages??1,size:eC.size??ex}:{total_count:0,current_page:1,total_pages:1,size:ex},[eC,ex]),eR=(0,x.useMemo)(()=>eI&&eI.data&&0!==eI.data.length?eI.data.filter(t=>{let l="all"===e||t.model_name===e||!e||"wildcard"===e&&t.model_name?.includes("*"),s="all"===en||t.model_info.access_groups?.includes(en)||!en;return l&&s}):[],[eI,e,en]);(0,x.useEffect)(()=>{eg(e=>({...e,pageIndex:0})),eh(1)},[e,en]),(0,x.useEffect)(()=>{eh(1),eg(e=>({...e,pageIndex:0}))},[ev]),(0,x.useEffect)(()=>{eh(1),eg(e=>({...e,pageIndex:0}))},[ef]);let eO=(0,x.useMemo)(()=>eM&&eI?.data?eI.data.find(e=>e.model_info.id===eM):null,[eM,eI]),eB=async()=>{if(p&&eM)try{eE(!0),await (0,l.modelDeleteCall)(p,eM),D.default.success("Model deleted successfully"),b.invalidateQueries({queryKey:["models","list"]}),ek()}catch(e){console.error("Error deleting model:",e),D.default.fromBackend(e)}finally{eE(!1),eP(null)}};return(0,t.jsxs)(U.TabPanel,{children:[(0,t.jsx)(G.Grid,{children:(0,t.jsx)("div",{className:"flex flex-col space-y-4",children:(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow",children:[(0,t.jsxs)("div",{className:"border-b px-6 py-4 bg-gray-50",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)(eo,{className:"text-lg font-semibold text-gray-900",children:"Current Team:"}),(0,t.jsx)("div",{className:"w-80",children:eT?(0,t.jsx)(Q.Skeleton.Input,{active:!0,block:!0,size:"large"}):(0,t.jsx)(W.Select,{style:{width:"100%"},size:"large",defaultValue:"personal",value:"personal"===ee?"personal":ee.team_id,onChange:e=>{if("personal"===e)et("personal"),eh(1),eg(e=>({...e,pageIndex:0}));else{let t=_?.find(t=>t.team_id===e);t&&(et(t),eh(1),eg(e=>({...e,pageIndex:0})))}},loading:y,options:[{value:"personal",label:(0,t.jsxs)(A.Space,{direction:"horizontal",align:"center",children:[(0,t.jsx)(J.Badge,{color:"blue",size:"small"}),(0,t.jsx)(eo,{style:{fontSize:16},children:"Personal"})]})},..._?.filter(e=>e.team_id).map(e=>({value:e.team_id,label:(0,t.jsxs)(A.Space,{direction:"horizontal",align:"center",children:[(0,t.jsx)(J.Badge,{color:"green",size:"small"}),(0,t.jsx)(eo,{ellipsis:!0,style:{fontSize:16},children:e.team_alias?e.team_alias:e.team_id})]})}))??[]]})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)(eo,{className:"text-lg font-semibold text-gray-900",children:"View:"}),(0,t.jsx)("div",{className:"w-64",children:eT?(0,t.jsx)(Q.Skeleton.Input,{active:!0,block:!0,size:"large"}):(0,t.jsx)(W.Select,{style:{width:"100%"},size:"large",defaultValue:"current_team",value:X,onChange:e=>Z(e),options:[{value:"current_team",label:(0,t.jsxs)(A.Space,{direction:"horizontal",align:"center",children:[(0,t.jsx)(J.Badge,{color:"purple",size:"small"}),(0,t.jsx)(eo,{style:{fontSize:16},children:"Current Team Models"})]})},{value:"all",label:(0,t.jsxs)(A.Space,{direction:"horizontal",align:"center",children:[(0,t.jsx)(J.Badge,{color:"gray",size:"small"}),(0,t.jsx)(eo,{style:{fontSize:16},children:"All Available Models"})]})}]})})]})]}),"current_team"===X&&(0,t.jsxs)("div",{className:"flex items-start gap-2 mt-3",children:[(0,t.jsx)(w.InfoCircleOutlined,{className:"text-gray-400 mt-0.5 flex-shrink-0 text-xs"}),(0,t.jsx)("div",{className:"text-xs text-gray-500",children:"personal"===ee?(0,t.jsxs)("span",{children:["To access these models: Create a Virtual Key without selecting a team on the"," ",(0,t.jsx)("a",{href:"/public?login=success&page=api-keys",className:"text-gray-600 hover:text-gray-800 underline",children:"Virtual Keys page"})]}):(0,t.jsxs)("span",{children:['To access these models: Create a Virtual Key and select Team as "',"string"!=typeof ee?ee.team_alias||ee.team_id:"",'" on the'," ",(0,t.jsx)("a",{href:"/public?login=success&page=api-keys",className:"text-gray-600 hover:text-gray-800 underline",children:"Virtual Keys page"})]})})]})]}),(0,t.jsx)("div",{className:"border-b px-6 py-4",children:(0,t.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,t.jsxs)("div",{className:"relative w-64",children:[(0,t.jsx)("input",{type:"text",placeholder:"Search model names...","data-testid":"model-search-input",className:"w-full px-3 py-2 pl-8 border rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",value:I,onChange:e=>L(e.target.value)}),(0,t.jsx)("svg",{className:"absolute left-2.5 top-2.5 h-4 w-4 text-gray-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})})]}),(0,t.jsxs)("button",{className:`px-3 py-2 text-sm border rounded-md hover:bg-gray-50 flex items-center gap-2 ${el?"bg-gray-100":""}`,onClick:()=>es(!el),children:[(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"})}),"Filters"]}),(0,t.jsxs)("button",{className:"px-3 py-2 text-sm border rounded-md hover:bg-gray-50 flex items-center gap-2",onClick:()=>{L(""),s("all"),ed(null),et("personal"),Z("current_team"),eh(1),eg({pageIndex:0,pageSize:50}),ej([])},children:[(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})}),"Reset Filters"]})]}),(0,t.jsx)(K.Button,{icon:(0,t.jsx)(H.SettingOutlined,{}),onClick:()=>ey(!0),title:"Model Settings"})]}),el&&(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3 mt-3",children:[(0,t.jsx)("div",{className:"w-64",children:(0,t.jsx)(W.Select,{className:"w-full",value:e??"all",onChange:e=>s("all"===e?"all":e),placeholder:"Filter by Public Model Name",showSearch:!0,options:[{value:"all",label:"All Models"},{value:"wildcard",label:"Wildcard Models (*)"},...a.map((e,t)=>({value:e,label:e}))]})}),(0,t.jsx)("div",{className:"w-64",children:(0,t.jsx)(W.Select,{className:"w-full",value:en??"all",onChange:e=>ed("all"===e?null:e),placeholder:"Filter by Model Access Group",showSearch:!0,options:[{value:"all",label:"All Model Access Groups"},...i.map((e,t)=>({value:e,label:e}))]})})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[eT?(0,t.jsx)(Q.Skeleton.Input,{active:!0,style:{width:184,height:20}}):(0,t.jsx)("span",{"data-testid":"models-results-count",className:"text-sm text-gray-700",children:eL.total_count>0?`Showing ${(eu-1)*ex+1} - ${Math.min(eu*ex,eL.total_count)} of ${eL.total_count} results`:"Showing 0 results"}),(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[eT?(0,t.jsx)(Q.Skeleton.Button,{active:!0,style:{width:84,height:30}}):(0,t.jsx)("button",{onClick:()=>{eh(eu-1),eg(e=>({...e,pageIndex:0}))},disabled:1===eu,className:`px-3 py-1 text-sm border rounded-md ${1===eu?"bg-gray-100 text-gray-400 cursor-not-allowed":"hover:bg-gray-50"}`,children:"Previous"}),eT?(0,t.jsx)(Q.Skeleton.Button,{active:!0,style:{width:56,height:30}}):(0,t.jsx)("button",{onClick:()=>{eh(eu+1),eg(e=>({...e,pageIndex:0}))},disabled:eu>=eL.total_pages,className:`px-3 py-1 text-sm border rounded-md ${eu>=eL.total_pages?"bg-gray-100 text-gray-400 cursor-not-allowed":"hover:bg-gray-50"}`,children:"Next"})]})]})]})}),(0,t.jsx)(v,{columns:[{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Model ID"}),accessorKey:"model_info.id",enableSorting:!1,size:130,minSize:80,cell:({row:e})=>{let l=e.original;return(0,t.jsx)(E.Tooltip,{title:l.model_info.id,children:(0,t.jsx)(O,{ellipsis:!0,className:"text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs cursor-pointer w-full block",style:{fontSize:14,padding:"1px 8px"},onClick:e=>{e.stopPropagation(),o(l.model_info.id)},children:l.model_info.id})})}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Model Information"}),accessorKey:"model_name",size:250,minSize:120,cell:({row:e})=>{let l=e.original,s=q(e.original)||"-",a=(0,t.jsxs)(A.Space,{direction:"vertical",size:12,style:{minWidth:220},children:[(0,t.jsxs)(M.Flex,{align:"center",gap:8,children:[(0,t.jsx)(R.ProviderLogo,{provider:l.provider}),(0,t.jsx)(O,{type:"secondary",style:{fontSize:12},ellipsis:!0,children:l.provider||"Unknown provider"})]}),(0,t.jsxs)(A.Space,{direction:"vertical",size:6,children:[(0,t.jsxs)(A.Space,{direction:"vertical",size:2,style:{width:"100%"},children:[(0,t.jsx)(O,{type:"secondary",style:{fontSize:11},children:"Public Model Name"}),(0,t.jsx)(O,{strong:!0,style:{fontSize:13,maxWidth:480},ellipsis:!0,title:s,children:s})]}),(0,t.jsxs)(A.Space,{direction:"vertical",size:2,children:[(0,t.jsx)(O,{type:"secondary",style:{fontSize:11},children:"LiteLLM Model Name"}),(0,t.jsx)(O,{style:{fontSize:13},copyable:{text:l.litellm_model_name||"-"},ellipsis:!0,title:l.litellm_model_name||"-",children:l.litellm_model_name||"-"})]})]})]});return(0,t.jsx)(P.Popover,{content:a,placement:"right",arrow:{pointAtCenter:!0},styles:{root:{maxWidth:500}},children:(0,t.jsxs)("div",{className:"flex items-start space-x-2 min-w-0 w-full cursor-pointer",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-0.5",children:l.provider?(0,t.jsx)(R.ProviderLogo,{provider:l.provider}):(0,t.jsx)("div",{className:"w-4 h-4 rounded-full bg-gray-200 flex items-center justify-center text-xs",children:"-"})}),(0,t.jsxs)("div",{className:"flex flex-col min-w-0 flex-1",children:[(0,t.jsx)(O,{ellipsis:!0,className:"text-gray-900",style:{fontSize:12,fontWeight:500,lineHeight:"16px"},children:s}),(0,t.jsx)(O,{ellipsis:!0,type:"secondary",style:{fontSize:12,lineHeight:"16px",marginTop:2},children:l.litellm_model_name||"-"})]})]})})}},{header:()=>(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Credentials"}),(0,t.jsx)(P.Popover,{content:z,placement:"bottom",arrow:{pointAtCenter:!0},children:(0,t.jsx)(w.InfoCircleOutlined,{className:"cursor-pointer text-gray-400 hover:text-gray-600",style:{fontSize:12}})})]}),accessorKey:"litellm_credential_name",enableSorting:!1,size:180,minSize:100,cell:({row:e})=>{let l=e.original,s=l.litellm_params?.litellm_credential_name,a=!!s;return(0,t.jsx)("div",{className:"flex items-center space-x-2 min-w-0 w-full",children:a?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(C.SyncOutlined,{className:"flex-shrink-0",style:{color:"#1890ff",fontSize:14}}),(0,t.jsx)("span",{className:"text-xs truncate text-blue-600",title:s,children:s})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(N.EditOutlined,{className:"flex-shrink-0",style:{color:"#8c8c8c",fontSize:14}}),(0,t.jsx)("span",{className:"text-xs text-gray-500",children:"Manual"})]})})}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Created By"}),accessorKey:"model_info.created_by",sortingFn:"datetime",size:160,minSize:100,cell:({row:e})=>{let l=e.original,s=!l.model_info?.db_model,a=l.model_info.created_by,r=l.model_info.created_at?new Date(l.model_info.created_at).toLocaleDateString():null;return(0,t.jsxs)("div",{className:"flex flex-col min-w-0 w-full",children:[(0,t.jsx)("div",{className:"text-xs font-medium text-gray-900 truncate",title:s?"Defined in config":a||"Unknown",children:s?"Defined in config":a||"Unknown"}),(0,t.jsx)("div",{className:"text-xs text-gray-500 truncate mt-0.5",title:s?"Config file":r||"Unknown date",children:s?"-":r||"Unknown date"})]})}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Updated At"}),accessorKey:"model_info.updated_at",sortingFn:"datetime",size:120,minSize:80,cell:({row:e})=>{let l=e.original;return(0,t.jsx)("span",{className:"text-xs",children:l.model_info.updated_at?new Date(l.model_info.updated_at).toLocaleDateString():"-"})}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Costs"}),accessorKey:"input_cost",size:120,minSize:80,cell:({row:e})=>{let l=e.original,s=l.input_cost,a=l.output_cost;return null==s&&null==a?(0,t.jsx)("div",{className:"w-full",children:(0,t.jsx)("span",{className:"text-xs text-gray-400",children:"-"})}):(0,t.jsx)(E.Tooltip,{title:"Cost per 1M tokens",children:(0,t.jsxs)("div",{className:"flex flex-col min-w-0 w-full",children:[null!=s&&(0,t.jsxs)("div",{className:"text-xs font-medium text-gray-900 truncate",children:["In: $",s]}),null!=a&&(0,t.jsxs)("div",{className:"text-xs text-gray-500 truncate mt-0.5",children:["Out: $",a]})]})})}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Team ID"}),accessorKey:"model_info.team_id",enableSorting:!1,size:130,minSize:80,cell:({row:e})=>{let l=e.original;return l.model_info.team_id?(0,t.jsx)("div",{className:"overflow-hidden w-full",children:(0,t.jsx)(E.Tooltip,{title:l.model_info.team_id,children:(0,t.jsxs)(T.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left overflow-hidden truncate w-full",onClick:e=>{e.stopPropagation(),c(l.model_info.team_id)},children:[l.model_info.team_id.slice(0,7),"..."]})})}):"-"}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Model Access Group"}),accessorKey:"model_info.model_access_group",enableSorting:!1,size:180,minSize:100,cell:({row:e})=>{let l=e.original,s=l.model_info.access_groups;if(!s||0===s.length)return"-";let a=l.model_info.id,r=ec.has(a),i=s.length>1;return(0,t.jsxs)("div",{className:"flex items-center gap-1 overflow-hidden w-full",children:[(0,t.jsx)(k.Badge,{size:"xs",color:"blue",className:"text-xs px-1.5 py-0.5 h-5 leading-tight flex-shrink-0",children:s[0]}),(r||!i&&2===s.length)&&s.slice(1).map((e,l)=>(0,t.jsx)(k.Badge,{size:"xs",color:"blue",className:"text-xs px-1.5 py-0.5 h-5 leading-tight flex-shrink-0",children:e},l+1)),i&&(0,t.jsx)("button",{onClick:e=>{let t;e.stopPropagation(),t=new Set(ec),r?t.delete(a):t.add(a),em(t)},className:"text-xs text-blue-600 hover:text-blue-800 px-1 py-0.5 rounded hover:bg-blue-50 h-5 leading-tight flex-shrink-0 whitespace-nowrap",children:r?"−":`+${s.length-1}`})]})}},{header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Status"}),accessorKey:"model_info.db_model",size:120,minSize:80,cell:({row:e})=>{let l=e.original;return(0,t.jsx)("div",{className:` - inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium - ${l.model_info.db_model?"bg-blue-50 text-blue-600":"bg-gray-100 text-gray-600"} - `,children:l.model_info.db_model?"DB Model":"Config Model"})}},{id:"actions",header:()=>(0,t.jsx)("span",{className:"text-sm font-semibold",children:"Actions"}),size:60,minSize:40,enableResizing:!1,cell:({row:e})=>{let l=e.original,s="Admin"===f||l.model_info?.created_by===g,a=!l.model_info?.db_model;return(0,t.jsx)("div",{className:"flex items-center justify-end gap-2 pr-4",children:a?(0,t.jsx)(E.Tooltip,{title:"Config model cannot be deleted on the dashboard. Please delete it from the config file.",children:(0,t.jsx)(F.Icon,{icon:S.TrashIcon,size:"sm",className:"opacity-50 cursor-not-allowed"})}):(0,t.jsx)(E.Tooltip,{title:"Delete model",children:(0,t.jsx)(F.Icon,{icon:S.TrashIcon,size:"sm",onClick:e=>{e.stopPropagation(),s&&eP&&eP(l.model_info.id)},className:s?"cursor-pointer hover:text-red-600":"opacity-50 cursor-not-allowed"})})})}}],data:eR,isLoading:eS,sorting:ef,onSortingChange:ej,pagination:ep,onPaginationChange:eg,enablePagination:!0,onRowClick:e=>o(e.model_info.id)})]})})}),(0,t.jsx)(V.default,{isOpen:!!eM,title:"Delete Model",alertMessage:"This action cannot be undone.",message:"Are you sure you want to delete this model?",resourceInformationTitle:"Model Information",resourceInformation:eO?[{label:"Model Name",value:eO.model_name||"Not Set"},{label:"LiteLLM Model Name",value:eO.litellm_model_name||"Not Set"},{label:"Provider",value:eO.provider||"Not Set"},{label:"Created By",value:eO.model_info?.created_by||"Not Set"}]:[],onCancel:()=>eP(null),onOk:eB,confirmLoading:eA}),(0,t.jsx)(ea,{isVisible:e_,onCancel:()=>ey(!1),onSuccess:()=>ey(!1)})]})};var ed=e.i(206929),ec=e.i(35983),em=e.i(599724),eu=e.i(629569),eh=e.i(28651);let ex={"BadRequestError (400)":"BadRequestErrorRetries","AuthenticationError (401)":"AuthenticationErrorRetries","TimeoutError (408)":"TimeoutErrorRetries","RateLimitError (429)":"RateLimitErrorRetries","ContentPolicyViolationError (400)":"ContentPolicyViolationErrorRetries","InternalServerError (500)":"InternalServerErrorRetries"},ep=({selectedModelGroup:e,setSelectedModelGroup:l,availableModelGroups:s,globalRetryPolicy:a,setGlobalRetryPolicy:r,defaultRetry:i,modelGroupRetryPolicy:o,setModelGroupRetryPolicy:n,handleSaveRetrySettings:d})=>(0,t.jsxs)(U.TabPanel,{children:[(0,t.jsx)("div",{className:"flex items-center gap-4 mb-6",children:(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(em.Text,{children:"Retry Policy Scope:"}),(0,t.jsxs)(ed.Select,{className:"ml-2 w-48",defaultValue:"global",value:"global"===e?"global":e||s[0],onValueChange:e=>l(e),children:[(0,t.jsx)(ec.SelectItem,{value:"global",children:"Global Default"}),s.map((e,s)=>(0,t.jsx)(ec.SelectItem,{value:e,onClick:()=>l(e),children:e},s))]})]})}),"global"===e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eu.Title,{children:"Global Retry Policy"}),(0,t.jsx)(em.Text,{className:"mb-6",children:"Default retry settings applied to all model groups unless overridden"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(eu.Title,{children:["Retry Policy for ",e]}),(0,t.jsx)(em.Text,{className:"mb-6",children:"Model-specific retry settings. Falls back to global defaults if not set."})]}),ex&&(0,t.jsx)("table",{children:(0,t.jsx)("tbody",{children:Object.entries(ex).map(([l,s],d)=>{let c;if("global"===e)c=a?.[s]??i;else{let t=o?.[e]?.[s];c=null!=t?t:a?.[s]??i}return(0,t.jsxs)("tr",{className:"flex justify-between items-center mt-2",children:[(0,t.jsxs)("td",{children:[(0,t.jsx)(em.Text,{children:l}),"global"!==e&&(0,t.jsxs)(em.Text,{className:"text-xs text-gray-500 ml-2",children:["(Global: ",a?.[s]??i,")"]})]}),(0,t.jsx)("td",{children:(0,t.jsx)(eh.InputNumber,{className:"ml-5",value:c,min:0,step:1,onChange:t=>{"global"===e?r(e=>null==t?e:{...e??{},[s]:t}):n(l=>{let a=l?.[e]??{};return{...l??{},[e]:{...a,[s]:t}}})}})})]},d)})})}),(0,t.jsx)(T.Button,{className:"mt-6 mr-8",onClick:d,children:"Save"})]});var eg=e.i(883552),ef=e.i(262218),ej=e.i(175712),e_=e.i(91979),ey=e.i(637235),eb=e.i(724154);e.i(247167);var ev=e.i(931067);let eN={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3zm36.3 281a123.07 123.07 0 01-87.6 36.3H263.9c-33.1 0-64.2-12.9-87.6-36.3A123.3 123.3 0 01140 612c0-28 9.1-54.3 26.2-76.3a125.7 125.7 0 0166.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0152.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10c54.3 14.5 92.1 63.8 92.1 120 0 33.1-12.9 64.3-36.3 87.7z"}}]},name:"cloud",theme:"outlined"};var ew=e.i(9583),eC=x.forwardRef(function(e,t){return x.createElement(ew.default,(0,ev.default)({},e,{ref:t,icon:eN}))}),eS=e.i(210612),ek=e.i(285027);let{Text:eT}=L.Typography,eF=({accessToken:e,onReloadSuccess:s,buttonText:a="Reload Price Data",showIcon:r=!0,size:i="middle",type:o="primary",className:n=""})=>{let[d,c]=(0,x.useState)(!1),[m,u]=(0,x.useState)(!1),[h,p]=(0,x.useState)(!1),[g,f]=(0,x.useState)(!1),[j,_]=(0,x.useState)(6),[y,b]=(0,x.useState)(null),[v,N]=(0,x.useState)(!1),[C,S]=(0,x.useState)(null),[k,T]=(0,x.useState)(!1);(0,x.useEffect)(()=>{F(),M();let e=setInterval(()=>{F(),M()},3e4);return()=>clearInterval(e)},[e]);let F=async()=>{if(e){N(!0);try{console.log("Fetching reload status...");let t=await (0,l.getModelCostMapReloadStatus)(e);console.log("Received status:",t),b(t)}catch(e){console.error("Failed to fetch reload status:",e),b({scheduled:!1,interval_hours:null,last_run:null,next_run:null})}finally{N(!1)}}},M=async()=>{if(e){T(!0);try{let t=await (0,l.getModelCostMapSource)(e);S(t)}catch(e){console.error("Failed to fetch cost map source info:",e)}finally{T(!1)}}},P=async()=>{if(!e)return void D.default.fromBackend("No access token available");c(!0);try{let t=await (0,l.reloadModelCostMap)(e);"success"===t.status?(D.default.success(`Price data reloaded successfully! ${t.models_count||0} models updated.`),s?.(),await F(),await M()):D.default.fromBackend("Failed to reload price data")}catch(e){console.error("Error reloading price data:",e),D.default.fromBackend("Failed to reload price data. Please try again.")}finally{c(!1)}},L=async()=>{if(!e)return void D.default.fromBackend("No access token available");if(j<=0)return void D.default.fromBackend("Hours must be greater than 0");u(!0);try{let t=await (0,l.scheduleModelCostMapReload)(e,j);"success"===t.status?(D.default.success(`Periodic reload scheduled for every ${j} hours`),f(!1),await F()):D.default.fromBackend("Failed to schedule periodic reload")}catch(e){console.error("Error scheduling reload:",e),D.default.fromBackend("Failed to schedule periodic reload. Please try again.")}finally{u(!1)}},R=async()=>{if(!e)return void D.default.fromBackend("No access token available");p(!0);try{let t=await (0,l.cancelModelCostMapReload)(e);"success"===t.status?(D.default.success("Periodic reload cancelled successfully"),await F()):D.default.fromBackend("Failed to cancel periodic reload")}catch(e){console.error("Error cancelling reload:",e),D.default.fromBackend("Failed to cancel periodic reload. Please try again.")}finally{p(!1)}},O=e=>{if(!e)return"Never";try{return new Date(e).toLocaleString()}catch{return e}};return(0,t.jsxs)("div",{className:n,children:[(0,t.jsxs)(A.Space,{direction:"horizontal",size:"middle",style:{marginBottom:16},children:[(0,t.jsx)(eg.Popconfirm,{title:"Hard Refresh Price Data",description:"This will immediately fetch the latest pricing information from the remote source. Continue?",onConfirm:P,okText:"Yes",cancelText:"No",okButtonProps:{style:{backgroundColor:"#6366f1",borderColor:"#6366f1",color:"white",fontWeight:"500",borderRadius:"0.375rem",padding:"0.375rem 0.75rem",height:"auto",fontSize:"0.875rem",lineHeight:"1.25rem",transition:"all 0.2s ease-in-out"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#4f46e5"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="#6366f1"}},children:(0,t.jsx)(K.Button,{type:o,size:i,loading:d,icon:r?(0,t.jsx)(e_.ReloadOutlined,{}):void 0,style:{backgroundColor:"#6366f1",borderColor:"#6366f1",color:"white",fontWeight:"500",borderRadius:"0.375rem",padding:"0.375rem 0.75rem",height:"auto",fontSize:"0.875rem",lineHeight:"1.25rem",transition:"all 0.2s ease-in-out"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#4f46e5"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="#6366f1"},children:a})}),y?.scheduled?(0,t.jsx)(K.Button,{type:"default",size:i,danger:!0,icon:(0,t.jsx)(eb.StopOutlined,{}),loading:h,onClick:R,style:{borderColor:"#ff4d4f",color:"#ff4d4f",fontWeight:"500",borderRadius:"0.375rem",padding:"0.375rem 0.75rem",height:"auto",fontSize:"0.875rem",lineHeight:"1.25rem"},children:"Cancel Periodic Reload"}):(0,t.jsx)(K.Button,{type:"default",size:i,icon:(0,t.jsx)(ey.ClockCircleOutlined,{}),onClick:()=>f(!0),style:{borderColor:"#d9d9d9",color:"#6366f1",fontWeight:"500",borderRadius:"0.375rem",padding:"0.375rem 0.75rem",height:"auto",fontSize:"0.875rem",lineHeight:"1.25rem"},children:"Set Up Periodic Reload"})]}),C&&(0,t.jsx)(ej.Card,{size:"small",style:{backgroundColor:"remote"===C.source?"#f0f7ff":"#fff8f0",border:`1px solid ${"remote"===C.source?"#bae0ff":"#ffd591"}`,borderRadius:8,marginBottom:12},children:(0,t.jsxs)(A.Space,{direction:"vertical",size:"small",style:{width:"100%"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:["remote"===C.source?(0,t.jsx)(eC,{style:{color:"#1677ff",fontSize:16}}):(0,t.jsx)(eS.DatabaseOutlined,{style:{color:"#fa8c16",fontSize:16}}),(0,t.jsx)(eT,{strong:!0,style:{fontSize:"13px"},children:"Pricing Data Source"}),(0,t.jsx)(ef.Tag,{color:"remote"===C.source?"blue":"orange",style:{marginLeft:"auto",fontWeight:600,textTransform:"uppercase",fontSize:"11px"},children:"remote"===C.source?"Remote":"Local"})]}),(0,t.jsx)(I.Divider,{style:{margin:"6px 0"}}),(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,t.jsx)(eT,{type:"secondary",style:{fontSize:"12px"},children:"Models loaded:"}),(0,t.jsx)(eT,{strong:!0,style:{fontSize:"12px"},children:C.model_count.toLocaleString()})]}),C.url&&(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:8},children:[(0,t.jsx)(eT,{type:"secondary",style:{fontSize:"12px",whiteSpace:"nowrap"},children:"remote"===C.source?"Loaded from:":"Attempted URL:"}),(0,t.jsx)(E.Tooltip,{title:C.url,children:(0,t.jsx)(eT,{style:{fontSize:"11px",maxWidth:240,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"block",color:"#1677ff",cursor:"default"},children:C.url})})]}),C.is_env_forced&&(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:2},children:[(0,t.jsx)(w.InfoCircleOutlined,{style:{color:"#fa8c16",fontSize:12}}),(0,t.jsxs)(eT,{type:"secondary",style:{fontSize:"11px"},children:["Local mode forced via ",(0,t.jsx)("code",{children:"LITELLM_LOCAL_MODEL_COST_MAP=True"})]})]}),C.fallback_reason&&(0,t.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:6,backgroundColor:"#fff7e6",border:"1px solid #ffd591",borderRadius:4,padding:"4px 8px",marginTop:2},children:[(0,t.jsx)(ek.WarningOutlined,{style:{color:"#fa8c16",fontSize:12,marginTop:2}}),(0,t.jsxs)(eT,{style:{fontSize:"11px",color:"#614700"},children:["Fell back to local: ",C.fallback_reason]})]})]})}),y&&(0,t.jsx)(ej.Card,{size:"small",style:{backgroundColor:"#f8f9fa",border:"1px solid #e9ecef",borderRadius:8},children:(0,t.jsxs)(A.Space,{direction:"vertical",size:"small",style:{width:"100%"},children:[y.scheduled?(0,t.jsx)("div",{children:(0,t.jsxs)(ef.Tag,{color:"green",icon:(0,t.jsx)(ey.ClockCircleOutlined,{}),children:["Scheduled every ",y.interval_hours," hours"]})}):(0,t.jsx)(eT,{type:"secondary",children:"No periodic reload scheduled"}),(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,t.jsx)(eT,{type:"secondary",style:{fontSize:"12px"},children:"Last run:"}),(0,t.jsx)(eT,{style:{fontSize:"12px"},children:O(y.last_run)})]}),y.scheduled&&(0,t.jsxs)(t.Fragment,{children:[y.next_run&&(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,t.jsx)(eT,{type:"secondary",style:{fontSize:"12px"},children:"Next run:"}),(0,t.jsx)(eT,{style:{fontSize:"12px"},children:O(y.next_run)})]}),(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,t.jsx)(eT,{type:"secondary",style:{fontSize:"12px"},children:"Status:"}),(0,t.jsx)(ef.Tag,{color:y?.scheduled?y.last_run?"success":"processing":"default",children:y?.scheduled?y.last_run?"Active":"Ready":"Not scheduled"})]})]})]})}),(0,t.jsxs)(el.Modal,{title:"Set Up Periodic Reload",open:g,onOk:L,onCancel:()=>f(!1),confirmLoading:m,okText:"Schedule",cancelText:"Cancel",okButtonProps:{style:{backgroundColor:"#6366f1",borderColor:"#6366f1",color:"white"}},children:[(0,t.jsx)("div",{style:{marginBottom:16},children:(0,t.jsx)(eT,{children:"Set up automatic reload of price data every:"})}),(0,t.jsx)("div",{style:{marginBottom:16},children:(0,t.jsx)(eh.InputNumber,{min:1,max:168,value:j,onChange:e=>_(e||6),addonAfter:"hours",style:{width:"100%"}})}),(0,t.jsx)("div",{children:(0,t.jsxs)(eT,{type:"secondary",children:["This will automatically fetch the latest pricing data from the remote source every ",j," hours."]})})]})]})},eI=()=>{let{accessToken:e}=(0,r.default)(),{refetch:l}=(0,n.useModelCostMap)();return(0,t.jsx)(U.TabPanel,{children:(0,t.jsxs)("div",{className:"p-6",children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)(eu.Title,{children:"Price Data Management"}),(0,t.jsx)(em.Text,{className:"text-tremor-content",children:"Manage model pricing data and configure automatic reload schedules"})]}),(0,t.jsx)(eF,{accessToken:e,onReloadSuccess:()=>{l()},buttonText:"Reload Price Data",size:"middle",type:"primary",className:"w-full"})]})})};var eM=e.i(916925);let eP=async(e,t,l)=>{try{console.log("handling submit for formValues:",e);let t=e.model_mappings||[];if("model_mappings"in e&&delete e.model_mappings,e.model&&e.model.includes("all-wildcard")){let l=e.custom_llm_provider,s=(eM.provider_map[l]??l.toLowerCase())+"/*";e.model_name=s,t.push({public_name:s,litellm_model:s}),e.model=s}let l=[];for(let s of t){let t={},a={},r=s.public_name;for(let[l,r]of(t.model=s.litellm_model,void 0!==e.input_cost_per_token&&null!==e.input_cost_per_token&&""!==e.input_cost_per_token&&(e.input_cost_per_token=Number(e.input_cost_per_token)/1e6),void 0!==e.output_cost_per_token&&null!==e.output_cost_per_token&&""!==e.output_cost_per_token&&(e.output_cost_per_token=Number(e.output_cost_per_token)/1e6),t.model=s.litellm_model,console.log("formValues add deployment:",e),Object.entries(e)))if(""!==r&&"custom_pricing"!==l&&"pricing_model"!==l&&"cache_control"!==l)if("model_name"==l)t.model=r;else if("custom_llm_provider"==l){console.log("custom_llm_provider:",r);let e=eM.provider_map[r]??r.toLowerCase();t.custom_llm_provider=e,console.log("custom_llm_provider mappingResult:",e)}else if("model"==l)continue;else if("base_model"===l)a[l]=r;else if("team_id"===l)a.team_id=r;else if("model_access_group"===l)a.access_groups=r;else if("mode"==l)console.log("placing mode in modelInfo"),a.mode=r,delete t.mode;else if("custom_model_name"===l)t.model=r;else if("litellm_extra_params"==l){console.log("litellm_extra_params:",r);let e={};if(r&&void 0!=r){try{e=JSON.parse(r),"litellm_credential_name"in e&&delete e.litellm_credential_name}catch(e){throw D.default.fromBackend("Failed to parse LiteLLM Extra Params: "+e),Error("Failed to parse litellm_extra_params: "+e)}for(let[l,s]of Object.entries(e))t[l]=s}}else if("model_info_params"==l){console.log("model_info_params:",r);let e={};if(r&&void 0!=r){try{e=JSON.parse(r)}catch(e){throw D.default.fromBackend("Failed to parse LiteLLM Extra Params: "+e),Error("Failed to parse litellm_extra_params: "+e)}for(let[t,l]of Object.entries(e))a[t]=l}}else if("input_cost_per_token"===l||"output_cost_per_token"===l||"input_cost_per_second"===l){null!=r&&""!==r&&(t[l]=Number(r));continue}else t[l]=r;l.push({litellmParamsObj:t,modelInfoObj:a,modelName:r})}return l}catch(e){D.default.fromBackend("Failed to create model: "+e)}},eA=async(e,t,s,a)=>{try{let r=await eP(e,t,s);if(!r||0===r.length)return;for(let e of r){let{litellmParamsObj:s,modelInfoObj:a,modelName:r}=e,i={model_name:r,litellm_params:s,model_info:a},o=await (0,l.modelCreateCall)(t,i);console.log(`response for model create call: ${o.data}`)}a&&a(),s.resetFields()}catch(e){D.default.fromBackend("Failed to add model: "+e)}};var eE=e.i(591935),eL=e.i(304967),eR=e.i(779241);let eO=(0,a.createQueryKeys)("providerFields"),eB=()=>(0,s.useQuery)({queryKey:eO.list({}),queryFn:async()=>await (0,l.getProviderCreateMetadata)(),staleTime:864e5,gcTime:864e5});var ez=e.i(519756),eq=e.i(178654),eV=e.i(311451),eD=e.i(621192),eH=e.i(515831);let{Link:e$}=L.Typography,eG=e=>{let t="password"===e.field_type?"password":"select"===e.field_type?"select":"upload"===e.field_type?"upload":"textarea"===e.field_type?"textarea":"text";return{key:e.key,label:e.label,placeholder:e.placeholder??void 0,tooltip:e.tooltip??void 0,required:e.required??!1,type:t,options:e.options??void 0,defaultValue:e.default_value??void 0}},eU={},eJ=({selectedProvider:e,uploadProps:l})=>{let s=eM.Providers[e],a=et.Form.useFormInstance(),{data:r,isLoading:i,error:o}=eB(),n=x.default.useMemo(()=>{if(!r)return null;let e={};return r.forEach(t=>{let l=t.provider_display_name,s=t.credential_fields.map(eG);e[l]=s,t.provider&&(e[t.provider]=s),t.litellm_provider&&(e[t.litellm_provider]=s)}),e},[r]);x.default.useEffect(()=>{n&&Object.assign(eU,n)},[n]);let d=x.default.useMemo(()=>{let t=eU[s]??eU[e];if(t)return t;if(!r)return[];let l=r.find(t=>t.provider_display_name===s||t.provider===e||t.litellm_provider===e);if(!l)return[];let a=l.credential_fields.map(eG);return eU[l.provider_display_name]=a,l.provider&&(eU[l.provider]=a),l.litellm_provider&&(eU[l.litellm_provider]=a),a},[s,e,r]),c={name:"file",accept:".json",beforeUpload:e=>{if("application/json"===e.type){let t=new FileReader;t.onload=e=>{if(e.target){let t=e.target.result;console.log(`Setting field value from JSON, length: ${t.length}`),a.setFieldsValue({vertex_credentials:t}),console.log("Form values after setting:",a.getFieldsValue())}},t.readAsText(e)}return!1},onChange(e){console.log("Upload onChange triggered in ProviderSpecificFields"),console.log("Current form values:",a.getFieldsValue()),"uploading"!==e.file.status&&console.log(e.file,e.fileList)}};return(0,t.jsxs)(t.Fragment,{children:[i&&0===d.length&&(0,t.jsx)(eD.Row,{children:(0,t.jsx)(eq.Col,{span:24,children:(0,t.jsx)(em.Text,{className:"mb-2",children:"Loading provider fields..."})})}),o&&0===d.length&&(0,t.jsx)(eD.Row,{children:(0,t.jsx)(eq.Col,{span:24,children:(0,t.jsx)(em.Text,{className:"mb-2 text-red-500",children:o instanceof Error?o.message:"Failed to load provider credential fields"})})}),d.map(e=>(0,t.jsxs)(x.default.Fragment,{children:[(0,t.jsx)(et.Form.Item,{label:e.label,name:e.key,rules:e.required?[{required:!0,message:"Required"}]:void 0,tooltip:e.tooltip,className:"vertex_credentials"===e.key?"mb-0":void 0,children:"select"===e.type?(0,t.jsx)(W.Select,{placeholder:e.placeholder,defaultValue:e.defaultValue,children:e.options?.map(e=>(0,t.jsx)(W.Select.Option,{value:e,children:e},e))}):"upload"===e.type?(0,t.jsx)(eH.Upload,{...c,onChange:t=>{l?.onChange&&l.onChange(t),setTimeout(()=>{let t=a.getFieldValue(e.key);console.log(`${e.key} value after upload:`,JSON.stringify(t))},500)},children:(0,t.jsx)(K.Button,{icon:(0,t.jsx)(ez.UploadOutlined,{}),children:"Click to Upload"})}):"textarea"===e.type?(0,t.jsx)(eV.Input.TextArea,{placeholder:e.placeholder,defaultValue:e.defaultValue,rows:6,style:{fontFamily:"monospace",fontSize:"12px"}}):(0,t.jsx)(eR.TextInput,{placeholder:e.placeholder,type:"password"===e.type?"password":"text",defaultValue:e.defaultValue})}),"vertex_credentials"===e.key&&(0,t.jsx)(eD.Row,{children:(0,t.jsx)(eq.Col,{children:(0,t.jsx)(em.Text,{className:"mb-3 mt-1",children:"Give a gcp service account(.json file)"})})}),"base_model"===e.key&&(0,t.jsxs)(eD.Row,{children:[(0,t.jsx)(eq.Col,{span:10}),(0,t.jsx)(eq.Col,{span:10,children:(0,t.jsxs)(em.Text,{className:"mb-2",children:["The actual model your azure deployment uses. Used for accurate cost tracking. Select name from"," ",(0,t.jsx)(e$,{href:"https://github.com/BerriAI/litellm/blob/main/model_prices_and_context_window.json",target:"_blank",children:"here"})]})})]})]},e.key))]})},{Link:eK}=L.Typography,eW=({open:e,onCancel:l,onAddCredential:s,uploadProps:a})=>{let[r]=et.Form.useForm(),[i,o]=(0,x.useState)(eM.Providers.OpenAI);return(0,t.jsx)(el.Modal,{title:"Add New Credential",open:e,onCancel:()=>{l(),r.resetFields()},footer:null,width:600,children:(0,t.jsxs)(et.Form,{form:r,onFinish:e=>{s(Object.entries(e).reduce((e,[t,l])=>(""!==l&&null!=l&&(e[t]=l),e),{})),r.resetFields()},layout:"vertical",children:[(0,t.jsx)(et.Form.Item,{label:"Credential Name:",name:"credential_name",rules:[{required:!0,message:"Credential name is required"}],children:(0,t.jsx)(eR.TextInput,{placeholder:"Enter a friendly name for these credentials"})}),(0,t.jsx)(et.Form.Item,{rules:[{required:!0,message:"Required"}],label:"Provider:",name:"custom_llm_provider",tooltip:"Helper to auto-populate provider specific fields",children:(0,t.jsx)(W.Select,{showSearch:!0,onChange:e=>{o(e),r.setFieldValue("custom_llm_provider",e)},children:Object.entries(eM.Providers).map(([e,l])=>(0,t.jsx)(W.Select.Option,{value:e,children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("img",{src:eM.providerLogoMap[l],alt:`${e} logo`,className:"w-5 h-5",onError:e=>{let t=e.target,s=t.parentElement;if(s){let e=document.createElement("div");e.className="w-5 h-5 rounded-full bg-gray-200 flex items-center justify-center text-xs",e.textContent=l.charAt(0),s.replaceChild(e,t)}}}),(0,t.jsx)("span",{children:l})]})},e))})}),(0,t.jsx)(eJ,{selectedProvider:i,uploadProps:a}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)(E.Tooltip,{title:"Get help on our github",children:(0,t.jsx)(eK,{href:"https://github.com/BerriAI/litellm/issues",children:"Need Help?"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(K.Button,{onClick:()=>{l(),r.resetFields()},style:{marginRight:10},children:"Cancel"}),(0,t.jsx)(K.Button,{htmlType:"submit",children:"Add Credential"})]})]})]})})},{Link:eQ}=L.Typography;function eY({open:e,onCancel:l,onUpdateCredential:s,uploadProps:a,existingCredential:r}){let[i]=et.Form.useForm(),[o,n]=(0,x.useState)(eM.Providers.Anthropic);return(0,x.useEffect)(()=>{if(r){let e=Object.entries(r.credential_values||{}).reduce((e,[t,l])=>(e[t]=l??null,e),{});i.setFieldsValue({credential_name:r.credential_name,custom_llm_provider:r.credential_info.custom_llm_provider,...e}),n(r.credential_info.custom_llm_provider)}},[r]),(0,t.jsx)(el.Modal,{title:"Edit Credential",open:e,onCancel:()=>{l(),i.resetFields()},footer:null,width:600,destroyOnHidden:!0,children:(0,t.jsxs)(et.Form,{form:i,onFinish:e=>{s(Object.entries(e).reduce((e,[t,l])=>(""!==l&&null!=l&&(e[t]=l),e),{})),i.resetFields()},layout:"vertical",children:[(0,t.jsx)(et.Form.Item,{label:"Credential Name:",name:"credential_name",rules:[{required:!0,message:"Credential name is required"}],initialValue:r?.credential_name,children:(0,t.jsx)(eR.TextInput,{placeholder:"Enter a friendly name for these credentials",disabled:!!r?.credential_name})}),(0,t.jsx)(et.Form.Item,{rules:[{required:!0,message:"Required"}],label:"Provider:",name:"custom_llm_provider",tooltip:"Helper to auto-populate provider specific fields",children:(0,t.jsx)(W.Select,{showSearch:!0,onChange:e=>{n(e),i.setFieldValue("custom_llm_provider",e)},children:Object.entries(eM.Providers).map(([e,l])=>(0,t.jsx)(W.Select.Option,{value:e,children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("img",{src:eM.providerLogoMap[l],alt:`${e} logo`,className:"w-5 h-5",onError:e=>{let t=e.target,s=t.parentElement;if(s){let e=document.createElement("div");e.className="w-5 h-5 rounded-full bg-gray-200 flex items-center justify-center text-xs",e.textContent=l.charAt(0),s.replaceChild(e,t)}}}),(0,t.jsx)("span",{children:l})]})},e))})}),(0,t.jsx)(eJ,{selectedProvider:o,uploadProps:a}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)(E.Tooltip,{title:"Get help on our github",children:(0,t.jsx)(eQ,{href:"https://github.com/BerriAI/litellm/issues",children:"Need Help?"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(K.Button,{onClick:()=>{l(),i.resetFields()},style:{marginRight:10},children:"Cancel"}),(0,t.jsx)(K.Button,{htmlType:"submit",children:"Update Credential"})]})]})]})})}var eX=e.i(708347);let eZ=({uploadProps:e})=>{let{accessToken:s,userRole:a}=(0,r.default)(),i=(0,eX.isProxyAdminRole)(a??""),{data:n,refetch:d}=o(),c=n?.credentials||[],[m,u]=(0,x.useState)(!1),[h,b]=(0,x.useState)(!1),[v,N]=(0,x.useState)(null),[w,C]=(0,x.useState)(null),[F,I]=(0,x.useState)(!1),[M,P]=(0,x.useState)(!1),[A]=et.Form.useForm(),E=["credential_name","custom_llm_provider"],L=async e=>{if(!s)return;let t=Object.entries(e).filter(([e])=>!E.includes(e)).reduce((e,[t,l])=>({...e,[t]:l}),{}),a={credential_name:e.credential_name,credential_values:t,credential_info:{custom_llm_provider:e.custom_llm_provider}};await (0,l.credentialUpdateCall)(s,e.credential_name,a),D.default.success("Credential updated successfully"),b(!1),await d()},R=async e=>{if(!s)return;let t=Object.entries(e).filter(([e])=>!E.includes(e)).reduce((e,[t,l])=>({...e,[t]:l}),{}),a={credential_name:e.credential_name,credential_values:t,credential_info:{custom_llm_provider:e.custom_llm_provider}};await (0,l.credentialCreateCall)(s,a),D.default.success("Credential added successfully"),u(!1),await d()},O=async()=>{if(s&&w){P(!0);try{await (0,l.credentialDeleteCall)(s,w.credential_name),D.default.success("Credential deleted successfully"),await d()}catch(e){D.default.error("Failed to delete credential")}finally{C(null),I(!1),P(!1)}}};return(0,t.jsxs)("div",{className:"w-full mx-auto flex-auto overflow-y-auto p-2",children:[i&&(0,t.jsx)(T.Button,{onClick:()=>u(!0),children:"Add Credential"}),(0,t.jsx)("div",{className:"flex justify-between items-center mt-4 mb-4",children:(0,t.jsx)(em.Text,{children:"Configured credentials for different AI providers. Add and manage your API credentials."})}),(0,t.jsx)(eL.Card,{children:(0,t.jsxs)(p.Table,{children:[(0,t.jsx)(g.TableHead,{children:(0,t.jsxs)(_.TableRow,{children:[(0,t.jsx)(f.TableHeaderCell,{children:"Credential Name"}),(0,t.jsx)(f.TableHeaderCell,{children:"Provider"}),(0,t.jsx)(f.TableHeaderCell,{children:"Actions"})]})}),(0,t.jsx)(j.TableBody,{children:c&&0!==c.length?c.map((e,l)=>{var s;let a,r;return(0,t.jsxs)(_.TableRow,{children:[(0,t.jsx)(y.TableCell,{children:e.credential_name}),(0,t.jsx)(y.TableCell,{children:(s=e.credential_info?.custom_llm_provider||"-",r=(a={openai:"blue",azure:"indigo",anthropic:"purple",default:"gray"})[s.toLowerCase()]||a.default,(0,t.jsx)(k.Badge,{color:r,size:"xs",children:s}))}),(0,t.jsx)(y.TableCell,{children:i?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(T.Button,{icon:eE.PencilAltIcon,variant:"light",size:"sm",onClick:()=>{N(e),b(!0)}}),(0,t.jsx)(T.Button,{icon:S.TrashIcon,variant:"light",size:"sm",onClick:()=>{C(e),I(!0)},className:"ml-2"})]}):null})]},l)}):(0,t.jsx)(_.TableRow,{children:(0,t.jsx)(y.TableCell,{colSpan:4,className:"text-center py-4 text-gray-500",children:"No credentials configured"})})})]})}),m&&(0,t.jsx)(eW,{onAddCredential:R,open:m,onCancel:()=>u(!1),uploadProps:e}),h&&(0,t.jsx)(eY,{open:h,existingCredential:v,onUpdateCredential:L,uploadProps:e,onCancel:()=>b(!1)}),(0,t.jsx)(V.default,{isOpen:F,onCancel:()=>{C(null),I(!1)},onOk:O,title:"Delete Credential?",message:"Are you sure you want to delete this credential? This action cannot be undone and may break existing integrations.",resourceInformationTitle:"Credential Information",resourceInformation:[{label:"Credential Name",value:w?.credential_name},{label:"Provider",value:w?.credential_info?.custom_llm_provider||"-"}],confirmLoading:M,requiredConfirmation:w?.credential_name})]})};var e0=e.i(278587),e1=e.i(309426),e2=e.i(197647),e4=e.i(653824),e5=e.i(881073),e6=e.i(723731),e3=e.i(475647),e8=e.i(91739),e7=e.i(437902),e9=e.i(166406);let{Text:te}=L.Typography,tt=({formValues:e,accessToken:s,testMode:a,modelName:r="this model",onClose:i,onTestComplete:o})=>{var n,d,c;let m,u,[h,p]=x.default.useState(null),[g,f]=x.default.useState(null),[j,_]=x.default.useState(null),[y,b]=x.default.useState(!0),[v,N]=x.default.useState(!1),[C,S]=x.default.useState(!1),k=async()=>{b(!0),S(!1),p(null),f(null),_(null),N(!1),await new Promise(e=>setTimeout(e,100));try{console.log("Testing connection with form values:",e);let t=await eP(e,s,null);if(!t){console.log("No result from prepareModelAddRequest"),p("Failed to prepare model data. Please check your form inputs."),N(!1),b(!1);return}console.log("Result from prepareModelAddRequest:",t);let{litellmParamsObj:a,modelInfoObj:r,modelName:i}=t[0],o=await (0,l.testConnectionRequest)(s,a,r,r?.mode);if("success"===o.status)D.default.success("Connection test successful!"),p(null),N(!0);else{let e=o.result?.error||o.message||"Unknown error";p(e),f(a),_(o.result?.raw_request_typed_dict),N(!1)}}catch(e){console.error("Test connection error:",e),p(e instanceof Error?e.message:String(e)),N(!1)}finally{b(!1),o&&o()}};x.default.useEffect(()=>{let e=setTimeout(()=>{k()},200);return()=>clearTimeout(e)},[]);let T=e=>e?e.split("stack trace:")[0].trim().replace(/^litellm\.(.*?)Error: /,""):"Unknown error",F="string"==typeof h?T(h):h?.message?T(h.message):"Unknown error",M=j?(n=j.raw_request_api_base,d=j.raw_request_body,c=j.raw_request_headers||{},m=JSON.stringify(d,null,2).split("\n").map(e=>` ${e}`).join("\n"),u=Object.entries(c).map(([e,t])=>`-H '${e}: ${t}'`).join(" \\\n "),`curl -X POST \\ - ${n} \\ - ${u?`${u} \\ - `:""}-H 'Content-Type: application/json' \\ - -d '{ -${m} - }'`):"";return(0,t.jsxs)("div",{style:{padding:"24px",borderRadius:"8px",backgroundColor:"#fff"},children:[y?(0,t.jsxs)("div",{style:{textAlign:"center",padding:"32px 20px"},className:"jsx-dc9a0e2d897fe63b",children:[(0,t.jsx)("div",{style:{marginBottom:"16px"},className:"jsx-dc9a0e2d897fe63b loading-spinner",children:(0,t.jsx)("div",{style:{border:"3px solid #f3f3f3",borderTop:"3px solid #1890ff",borderRadius:"50%",width:"30px",height:"30px",animation:"spin 1s linear infinite",margin:"0 auto"},className:"jsx-dc9a0e2d897fe63b"})}),(0,t.jsxs)(te,{style:{fontSize:"16px"},children:["Testing connection to ",r,"..."]}),(0,t.jsx)(e7.default,{id:"dc9a0e2d897fe63b",children:"@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"})]}):v?(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"32px 20px"},children:[(0,t.jsx)("div",{style:{color:"#52c41a",fontSize:"24px",display:"flex",alignItems:"center"},children:(0,t.jsx)("svg",{viewBox:"64 64 896 896",focusable:"false","data-icon":"check-circle",width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z"})})}),(0,t.jsxs)(te,{"data-testid":"connection-success-msg",type:"success",style:{fontSize:"18px",fontWeight:500,marginLeft:"10px"},children:["Connection to ",r," successful!"]})]}):(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",marginBottom:"20px"},children:[(0,t.jsx)(ek.WarningOutlined,{style:{color:"#ff4d4f",fontSize:"24px",marginRight:"12px"}}),(0,t.jsxs)(te,{"data-testid":"connection-failure-msg",type:"danger",style:{fontSize:"18px",fontWeight:500},children:["Connection to ",r," failed"]})]}),(0,t.jsxs)("div",{style:{backgroundColor:"#fff2f0",border:"1px solid #ffccc7",borderRadius:"8px",padding:"16px",marginBottom:"20px",boxShadow:"0 1px 2px rgba(0, 0, 0, 0.03)"},children:[(0,t.jsxs)(te,{strong:!0,style:{display:"block",marginBottom:"8px"},children:["Error:"," "]}),(0,t.jsx)(te,{type:"danger",style:{fontSize:"14px",lineHeight:"1.5"},children:F}),h&&(0,t.jsx)("div",{style:{marginTop:"12px"},children:(0,t.jsx)(K.Button,{type:"link",onClick:()=>S(!C),style:{paddingLeft:0,height:"auto"},children:C?"Hide Details":"Show Details"})})]}),C&&(0,t.jsxs)("div",{style:{marginBottom:"20px"},children:[(0,t.jsx)(te,{strong:!0,style:{display:"block",marginBottom:"8px",fontSize:"15px"},children:"Troubleshooting Details"}),(0,t.jsx)("pre",{style:{backgroundColor:"#f5f5f5",padding:"16px",borderRadius:"8px",fontSize:"13px",maxHeight:"200px",overflow:"auto",border:"1px solid #e8e8e8",lineHeight:"1.5"},children:"string"==typeof h?h:JSON.stringify(h,null,2)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(te,{strong:!0,style:{display:"block",marginBottom:"8px",fontSize:"15px"},children:"API Request"}),(0,t.jsx)("pre",{style:{backgroundColor:"#f5f5f5",padding:"16px",borderRadius:"8px",fontSize:"13px",maxHeight:"250px",overflow:"auto",border:"1px solid #e8e8e8",lineHeight:"1.5"},children:M||"No request data available"}),(0,t.jsx)(K.Button,{style:{marginTop:"8px"},icon:(0,t.jsx)(e9.CopyOutlined,{}),onClick:()=>{navigator.clipboard.writeText(M||""),D.default.success("Copied to clipboard")},children:"Copy to Clipboard"})]})]})}),(0,t.jsx)(I.Divider,{style:{margin:"24px 0 16px"}}),(0,t.jsx)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:(0,t.jsx)(K.Button,{type:"link",href:"https://docs.litellm.ai/docs/providers",target:"_blank",icon:(0,t.jsx)(w.InfoCircleOutlined,{}),children:"View Documentation"})})]})},tl=async(e,t,s,a)=>{try{let r;console.log("=== AUTO ROUTER SUBMIT HANDLER CALLED ==="),console.log("handling auto router submit for formValues:",e),console.log("Model type:",e.model_type),"complexity_router"===e.model_type?(console.log("Creating complexity router configuration"),r={model_name:e.auto_router_name,litellm_params:{model:"auto_router/complexity_router",complexity_router_config:e.complexity_router_config,complexity_router_default_model:e.auto_router_default_model},model_info:{}},console.log("Complexity router config:",e.complexity_router_config)):(console.log("Creating semantic router configuration"),r={model_name:e.auto_router_name,litellm_params:{model:`auto_router/${e.auto_router_name}`,auto_router_config:JSON.stringify(e.auto_router_config),auto_router_default_model:e.auto_router_default_model},model_info:{}},e.auto_router_embedding_model&&"custom"!==e.auto_router_embedding_model?r.litellm_params.auto_router_embedding_model=e.auto_router_embedding_model:e.custom_embedding_model&&(r.litellm_params.auto_router_embedding_model=e.custom_embedding_model),console.log("Semantic router config (stringified):",r.litellm_params.auto_router_config)),e.team_id&&(r.model_info.team_id=e.team_id),e.model_access_group&&e.model_access_group.length>0&&(r.model_info.access_groups=e.model_access_group),console.log("Auto router configuration to be created:",r),console.log("Calling modelCreateCall...");let i=await (0,l.modelCreateCall)(t,r);console.log("response for auto router create call:",i);let o="complexity_router"===e.model_type?"Complexity Router":"Semantic Router";D.default.success(`Successfully created ${o}: ${e.auto_router_name}`),s.resetFields(),a&&a()}catch(e){console.error("Failed to add auto router:",e),D.default.fromBackend("Failed to add auto router: "+e)}};var ts=e.i(689020),ta=e.i(955135),tr=e.i(646563),ti=e.i(362024),to=e.i(21548);let{Text:tn}=L.Typography,{TextArea:td}=eV.Input,tc=({modelInfo:e,value:l,onChange:s})=>{let[a,r]=(0,x.useState)([]),[i,o]=(0,x.useState)(!1),[n,d]=(0,x.useState)([]);(0,x.useEffect)(()=>{let e=l?.routes;if(e){let t=[];r(l=>e.map((e,s)=>{let a=l[s],r=a?.id||e.id||`route-${s}-${Date.now()}`;return t.push(r),{id:r,model:e.name||e.model||"",utterances:e.utterances||[],description:e.description||"",score_threshold:e.score_threshold??.5}})),d(t)}else r([]),d([])},[l]);let c=(e,t,l)=>{let s=a.map(s=>s.id===e?{...s,[t]:l}:s);r(s),m(s)},m=e=>{let t={routes:e.map(e=>({name:e.model,utterances:e.utterances,description:e.description,score_threshold:e.score_threshold}))};s?.(t)},u=e.map(e=>({value:e.model_group,label:e.model_group}));return(0,t.jsxs)("div",{className:"w-full max-w-none",children:[(0,t.jsxs)(M.Flex,{justify:"space-between",align:"center",gap:"middle",style:{width:"100%",marginBottom:24},children:[(0,t.jsxs)(A.Space,{align:"center",children:[(0,t.jsx)(L.Typography.Title,{level:4,style:{margin:0},children:"Routes Configuration"}),(0,t.jsx)(E.Tooltip,{title:"Configure routing logic to automatically select the best model based on user input patterns",children:(0,t.jsx)(w.InfoCircleOutlined,{className:"text-gray-400"})})]}),(0,t.jsx)(K.Button,{type:"primary",icon:(0,t.jsx)(tr.PlusOutlined,{}),onClick:()=>{let e=`route-${Date.now()}`,t=[...a,{id:e,model:"",utterances:[],description:"",score_threshold:.5}];r(t),m(t),d(t=>[...t,e])},className:"bg-blue-600 hover:bg-blue-700",children:"Add Route"})]}),0===a.length?(0,t.jsx)(ej.Card,{children:(0,t.jsx)(to.Empty,{description:'No routes configured. Click "Add Route" to get started.'})}):(0,t.jsx)(ti.Collapse,{activeKey:n,onChange:e=>d(Array.isArray(e)?e:[e].filter(Boolean)),style:{width:"100%"},items:a.map((e,l)=>({key:e.id,label:(0,t.jsxs)(tn,{style:{fontSize:16},children:["Route ",l+1,": ",e.model||"Unnamed"]}),extra:(0,t.jsx)(K.Button,{type:"text",danger:!0,size:"small",icon:(0,t.jsx)(ta.DeleteOutlined,{}),onClick:t=>{var l;let s;t.stopPropagation(),l=e.id,r(s=a.filter(e=>e.id!==l)),m(s),d(e=>e.filter(e=>e!==l))}}),children:(0,t.jsxs)(ej.Card,{children:[(0,t.jsxs)("div",{className:"mb-4 w-full",children:[(0,t.jsx)(tn,{className:"text-sm font-medium mb-2 block",children:"Model"}),(0,t.jsx)(W.Select,{value:e.model,onChange:t=>c(e.id,"model",t),placeholder:"Select model",showSearch:!0,style:{width:"100%"},options:u})]}),(0,t.jsxs)("div",{className:"mb-4 w-full",children:[(0,t.jsx)(tn,{className:"text-sm font-medium mb-2 block",children:"Description"}),(0,t.jsx)(td,{value:e.description,onChange:t=>c(e.id,"description",t.target.value),placeholder:"Describe when this route should be used...",rows:2,style:{width:"100%"}})]}),(0,t.jsxs)("div",{className:"mb-4 w-full",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,t.jsx)(tn,{className:"text-sm font-medium",children:"Score Threshold"}),(0,t.jsx)(E.Tooltip,{title:"Minimum similarity score to route to this model (0-1)",children:(0,t.jsx)(w.InfoCircleOutlined,{className:"text-gray-400"})})]}),(0,t.jsx)(eh.InputNumber,{value:e.score_threshold,onChange:t=>c(e.id,"score_threshold",t||0),min:0,max:1,step:.1,style:{width:"100%"},placeholder:"0.5"})]}),(0,t.jsxs)("div",{className:"w-full",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,t.jsx)(tn,{className:"text-sm font-medium",children:"Example Utterances"}),(0,t.jsx)(E.Tooltip,{title:"Training examples for this route. Type an utterance and press Enter to add it.",children:(0,t.jsx)(w.InfoCircleOutlined,{className:"text-gray-400"})})]}),(0,t.jsx)(tn,{className:"text-xs text-gray-500 mb-2",children:"Type an utterance and press Enter to add it. You can also paste multiple lines."}),(0,t.jsx)(W.Select,{mode:"tags",value:e.utterances,onChange:t=>c(e.id,"utterances",t),placeholder:"Type an utterance and press Enter...",style:{width:"100%"},tokenSeparators:["\n"],maxTagCount:"responsive",allowClear:!0})]})]},e.id)}))}),(0,t.jsx)(I.Divider,{}),(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4 w-full",children:[(0,t.jsx)(tn,{className:"text-lg font-semibold",children:"JSON Preview"}),(0,t.jsx)(K.Button,{type:"link",onClick:()=>o(!i),className:"text-blue-600 p-0",children:i?"Hide":"Show"})]}),i&&(0,t.jsx)(ej.Card,{className:"bg-gray-50 w-full",children:(0,t.jsx)("pre",{className:"text-sm overflow-auto max-h-64 w-full",children:JSON.stringify({routes:a.map(e=>({name:e.model,utterances:e.utterances,description:e.description,score_threshold:e.score_threshold}))},null,2)})})]})},{Text:tm}=L.Typography,tu={SIMPLE:{label:"Simple",description:"Basic questions, greetings, simple factual queries",examples:'"Hello!", "What is Python?", "Thanks!"'},MEDIUM:{label:"Medium",description:"Standard queries requiring some reasoning or explanation",examples:'"Explain how REST APIs work", "Debug this error"'},COMPLEX:{label:"Complex",description:"Technical, multi-part requests requiring deep knowledge",examples:'"Design a microservices architecture", "Implement a rate limiter"'},REASONING:{label:"Reasoning",description:"Chain-of-thought, analysis, explicit reasoning requests",examples:'"Think step by step...", "Analyze the pros and cons..."'}},th=({modelInfo:e,value:l,onChange:s})=>{let a=e.map(e=>({value:e.model_group,label:e.model_group}));return(0,t.jsxs)("div",{className:"w-full max-w-none",children:[(0,t.jsxs)(A.Space,{align:"center",style:{marginBottom:16},children:[(0,t.jsx)(L.Typography.Title,{level:4,style:{margin:0},children:"Complexity Tier Configuration"}),(0,t.jsx)(E.Tooltip,{title:"Map each complexity tier to a model. Simple queries use cheaper/faster models, complex queries use more capable models.",children:(0,t.jsx)(w.InfoCircleOutlined,{className:"text-gray-400"})})]}),(0,t.jsx)(tm,{type:"secondary",style:{display:"block",marginBottom:24},children:"The complexity router automatically classifies requests by complexity using rule-based scoring (no API calls, <1ms latency). Configure which model handles each tier."}),(0,t.jsx)(ej.Card,{children:Object.keys(tu).map((e,r)=>{let i=tu[e];return(0,t.jsxs)("div",{children:[r>0&&(0,t.jsx)(I.Divider,{style:{margin:"16px 0"}}),(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,t.jsxs)(tm,{strong:!0,style:{fontSize:16},children:[i.label," Tier"]}),(0,t.jsx)(E.Tooltip,{title:i.description,children:(0,t.jsx)(w.InfoCircleOutlined,{className:"text-gray-400"})})]}),(0,t.jsxs)(tm,{type:"secondary",style:{display:"block",marginBottom:8,fontSize:12},children:["Examples: ",i.examples]}),(0,t.jsx)(W.Select,{value:l[e],onChange:t=>{s({...l,[e]:t})},placeholder:`Select model for ${i.label.toLowerCase()} queries`,showSearch:!0,style:{width:"100%"},options:a})]})]},e)})}),(0,t.jsx)(I.Divider,{}),(0,t.jsxs)(ej.Card,{className:"bg-gray-50",children:[(0,t.jsx)(tm,{strong:!0,style:{display:"block",marginBottom:8},children:"How Classification Works"}),(0,t.jsx)(tm,{type:"secondary",style:{fontSize:13},children:"The router scores each request across 7 dimensions: token count, code presence, reasoning markers, technical terms, simple indicators, multi-step patterns, and question complexity. The weighted score determines the tier:"}),(0,t.jsxs)("ul",{style:{marginTop:8,marginBottom:0,paddingLeft:20,fontSize:13,color:"rgba(0, 0, 0, 0.45)"},children:[(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{children:"SIMPLE"}),": Score < 0.15"]}),(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{children:"MEDIUM"}),": Score 0.15 - 0.35"]}),(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{children:"COMPLEX"}),": Score 0.35 - 0.60"]}),(0,t.jsxs)("li",{children:[(0,t.jsx)("strong",{children:"REASONING"}),": Score > 0.60 (or 2+ reasoning markers)"]})]})]})]})};var tx=e.i(962944),tp=e.i(539677);let{Title:tg,Link:tf}=L.Typography,tj=({form:e,handleOk:s,accessToken:a,userRole:r})=>{let[i,o]=(0,x.useState)(!1),[n,d]=(0,x.useState)(!1),[c,m]=(0,x.useState)(""),[u,h]=(0,x.useState)([]),[p,g]=(0,x.useState)([]),[f,j]=(0,x.useState)(!1),[_,y]=(0,x.useState)(!1),[b,v]=(0,x.useState)("complexity"),[N,w]=(0,x.useState)(null),[C,S]=(0,x.useState)({SIMPLE:"",MEDIUM:"",COMPLEX:"",REASONING:""});(0,x.useEffect)(()=>{(async()=>{h((await (0,l.modelAvailableCall)(a,"","",!1,null,!0,!0)).data.map(e=>e.id))})()},[a]),(0,x.useEffect)(()=>{(async()=>{try{let e=await (0,ts.fetchAvailableModels)(a);console.log("Fetched models for auto router:",e),g(e)}catch(e){console.error("Error fetching model info for auto router:",e)}})()},[a]);let k=eX.all_admin_roles.includes(r),T=async()=>{d(!0),m(`test-${Date.now()}`),o(!0)},F=()=>{console.log("Auto router submit triggered!"),console.log("Router type:",b);let t=e.getFieldsValue();if(console.log("Form values:",t),!t.auto_router_name)return void D.default.fromBackend("Please enter an Auto Router Name");if("complexity"===b){if(0===Object.values(C).filter(Boolean).length)return void D.default.fromBackend("Please select at least one model for a complexity tier");let l=C.MEDIUM||C.SIMPLE||C.COMPLEX||C.REASONING;e.setFieldsValue({custom_llm_provider:"auto_router",model:t.auto_router_name,api_key:"not_required_for_auto_router",auto_router_default_model:l}),e.validateFields(["auto_router_name"]).then(r=>{console.log("Complexity router validation passed");let i={...r,auto_router_name:t.auto_router_name,auto_router_default_model:l,model_type:"complexity_router",complexity_router_config:{tiers:C},model_access_group:t.model_access_group};console.log("Final submit values:",i),tl(i,a,e,s)}).catch(e=>{console.error("Validation failed:",e),D.default.fromBackend("Please fill in all required fields")})}else{if(!t.auto_router_default_model)return void D.default.fromBackend("Please select a Default Model");if(e.setFieldsValue({custom_llm_provider:"auto_router",model:t.auto_router_name,api_key:"not_required_for_auto_router"}),!N||!N.routes||0===N.routes.length)return void D.default.fromBackend("Please configure at least one route for the auto router");if(N.routes.filter(e=>!e.name||!e.description||0===e.utterances.length).length>0)return void D.default.fromBackend("Please ensure all routes have a target model, description, and at least one utterance");e.validateFields().then(t=>{console.log("Form validation passed, submitting with values:",t);let l={...t,auto_router_config:N,model_type:"semantic_router"};console.log("Final submit values:",l),tl(l,a,e,s)}).catch(e=>{console.error("Validation failed:",e);let t=e.errorFields||[];if(t.length>0){let e=t.map(e=>{let t=e.name[0];return({auto_router_name:"Auto Router Name",auto_router_default_model:"Default Model",auto_router_embedding_model:"Embedding Model"})[t]||t});D.default.fromBackend(`Please fill in the following required fields: ${e.join(", ")}`)}else D.default.fromBackend("Please fill in all required fields")})}};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(tg,{level:2,children:"Add Auto Router"}),(0,t.jsx)(em.Text,{className:"text-gray-600 mb-6",children:"Create an auto router that automatically selects the best model based on request complexity or semantic matching."}),(0,t.jsx)(ej.Card,{className:"mb-4",children:(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(em.Text,{className:"text-sm font-medium mb-2 block",children:"Router Type"}),(0,t.jsx)(e8.Radio.Group,{value:b,onChange:e=>v(e.target.value),className:"w-full",children:(0,t.jsxs)(A.Space,{direction:"vertical",className:"w-full",children:[(0,t.jsxs)(e8.Radio,{value:"complexity",className:"w-full",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(tx.ThunderboltOutlined,{className:"text-yellow-500"}),(0,t.jsx)("span",{className:"font-medium",children:"Complexity Router"}),(0,t.jsx)(J.Badge,{count:"Recommended",style:{backgroundColor:"#52c41a",fontSize:"10px",padding:"0 6px"}})]}),(0,t.jsxs)("div",{className:"text-xs text-gray-500 ml-6 mt-1",children:["Automatically routes based on request complexity. No training data needed — just pick 4 models and go.",(0,t.jsx)("br",{}),(0,t.jsx)("span",{className:"text-green-600",children:"✓ Zero API calls"})," · ",(0,t.jsx)("span",{className:"text-green-600",children:"✓ <1ms latency"})," · ",(0,t.jsx)("span",{className:"text-green-600",children:"✓ No cost"})]})]}),(0,t.jsxs)(e8.Radio,{value:"semantic",className:"w-full mt-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(tp.BranchesOutlined,{className:"text-blue-500"}),(0,t.jsx)("span",{className:"font-medium",children:"Semantic Router"})]}),(0,t.jsx)("div",{className:"text-xs text-gray-500 ml-6 mt-1",children:"Routes based on semantic similarity to example utterances. Requires embedding model and training examples."})]})]})})]})}),(0,t.jsx)(ej.Card,{children:(0,t.jsxs)(et.Form,{form:e,onFinish:F,labelCol:{span:10},wrapperCol:{span:16},labelAlign:"left",children:[(0,t.jsx)(et.Form.Item,{rules:[{required:!0,message:"Auto router name is required"}],label:"Auto Router Name",name:"auto_router_name",tooltip:"Unique name for this auto router configuration",labelCol:{span:10},labelAlign:"left",children:(0,t.jsx)(eR.TextInput,{placeholder:"e.g., smart_router, auto_router_1"})}),"complexity"===b?(0,t.jsx)("div",{className:"w-full mb-4",children:(0,t.jsx)(th,{modelInfo:p,value:C,onChange:e=>{S(e)}})}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"w-full mb-4",children:(0,t.jsx)(tc,{modelInfo:p,value:N,onChange:t=>{w(t),e.setFieldValue("auto_router_config",t)}})}),(0,t.jsx)(et.Form.Item,{rules:[{required:"semantic"===b,message:"Default model is required"}],label:"Default Model",name:"auto_router_default_model",tooltip:"Fallback model to use when auto routing logic cannot determine the best model",labelCol:{span:10},labelAlign:"left",children:(0,t.jsx)(W.Select,{placeholder:"Select a default model",onChange:e=>{j("custom"===e)},options:[...Array.from(new Set(p.map(e=>e.model_group))).map(e=>({value:e,label:e})),{value:"custom",label:"Enter custom model name"}],style:{width:"100%"},showSearch:!0})}),(0,t.jsx)(et.Form.Item,{label:"Embedding Model",name:"auto_router_embedding_model",tooltip:"Optional: Embedding model to use for semantic routing decisions",labelCol:{span:10},labelAlign:"left",children:(0,t.jsx)(W.Select,{value:e.getFieldValue("auto_router_embedding_model"),placeholder:"Select an embedding model (optional)",onChange:t=>{y("custom"===t),e.setFieldValue("auto_router_embedding_model",t)},options:[...Array.from(new Set(p.map(e=>e.model_group))).map(e=>({value:e,label:e})),{value:"custom",label:"Enter custom model name"}],style:{width:"100%"},showSearch:!0,allowClear:!0})})]}),(0,t.jsxs)("div",{className:"flex items-center my-4",children:[(0,t.jsx)("div",{className:"flex-grow border-t border-gray-200"}),(0,t.jsx)("span",{className:"px-4 text-gray-500 text-sm",children:"Additional Settings"}),(0,t.jsx)("div",{className:"flex-grow border-t border-gray-200"})]}),k&&(0,t.jsx)(et.Form.Item,{label:"Model Access Group",name:"model_access_group",className:"mb-4",tooltip:"Use model access groups to control who can access this auto router",children:(0,t.jsx)(W.Select,{mode:"tags",showSearch:!0,placeholder:"Select existing groups or type to create new ones",optionFilterProp:"children",tokenSeparators:[","],options:u.map(e=>({value:e,label:e})),maxTagCount:"responsive",allowClear:!0})}),(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(E.Tooltip,{title:"Get help on our github",children:(0,t.jsx)(L.Typography.Link,{href:"https://github.com/BerriAI/litellm/issues",children:"Need Help?"})}),(0,t.jsxs)("div",{className:"space-x-2",children:[(0,t.jsx)(K.Button,{onClick:T,loading:n,children:"Test Connection"}),(0,t.jsx)(K.Button,{type:"primary",onClick:()=>{console.log("Add Auto Router button clicked!"),F()},children:"Add Auto Router"})]})]})]})}),(0,t.jsx)(el.Modal,{title:"Connection Test Results",open:i,onCancel:()=>{o(!1),d(!1)},footer:[(0,t.jsx)(K.Button,{onClick:()=>{o(!1),d(!1)},children:"Close"},"close")],width:700,children:i&&(0,t.jsx)(tt,{formValues:e.getFieldsValue(),accessToken:a,testMode:"chat",modelName:e.getFieldValue("auto_router_name"),onClose:()=>{o(!1),d(!1)},onTestComplete:()=>d(!1)},c)})]})};var t_=e.i(838932),ty=e.i(109034),tb=e.i(793130),tv=e.i(560445),tN=e.i(663435),tw=e.i(677667),tC=e.i(898667),tS=e.i(130643),tk=e.i(635432),tT=e.i(564897),tF=e.i(435451);let{Text:tI}=L.Typography,tM=({form:e,showCacheControl:l,onCacheControlChange:s})=>{let a=t=>{let l=e.getFieldValue("litellm_extra_params");try{let s=l?JSON.parse(l):{};t.length>0?s.cache_control_injection_points=t:delete s.cache_control_injection_points,Object.keys(s).length>0?e.setFieldValue("litellm_extra_params",JSON.stringify(s,null,2)):e.setFieldValue("litellm_extra_params","")}catch(e){console.error("Error updating cache control points:",e)}};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(et.Form.Item,{label:"Cache Control Injection Points",name:"cache_control",valuePropName:"checked",className:"mb-4",tooltip:"Tell litellm where to inject cache control checkpoints. You can specify either by role (to apply to all messages of that role) or by specific message index.",children:(0,t.jsx)(es.Switch,{onChange:s,className:"bg-gray-600"})}),l&&(0,t.jsxs)("div",{className:"ml-6 pl-4 border-l-2 border-gray-200",children:[(0,t.jsx)(tI,{className:"text-sm text-gray-500 block mb-4",children:"Providers like Anthropic, Bedrock API require users to specify where to inject cache control checkpoints, litellm can automatically add them for you as a cost saving feature."}),(0,t.jsx)(et.Form.List,{name:"cache_control_injection_points",initialValue:[{location:"message"}],children:(l,{add:s,remove:r})=>(0,t.jsxs)(t.Fragment,{children:[l.map((s,i)=>(0,t.jsxs)("div",{className:"flex items-center mb-4 gap-4",children:[(0,t.jsx)(et.Form.Item,{...s,label:"Type",name:[s.name,"location"],initialValue:"message",className:"mb-0",style:{width:"180px"},children:(0,t.jsx)(W.Select,{disabled:!0,options:[{value:"message",label:"Message"}]})}),(0,t.jsx)(et.Form.Item,{...s,label:"Role",name:[s.name,"role"],className:"mb-0",style:{width:"180px"},tooltip:"LiteLLM will mark all messages of this role as cacheable",children:(0,t.jsx)(W.Select,{placeholder:"Select a role",allowClear:!0,options:[{value:"user",label:"User"},{value:"system",label:"System"},{value:"assistant",label:"Assistant"}],onChange:()=>{a(e.getFieldValue("cache_control_points"))}})}),(0,t.jsx)(et.Form.Item,{...s,label:"Index",name:[s.name,"index"],className:"mb-0",style:{width:"180px"},tooltip:"(Optional) If set litellm will mark the message at this index as cacheable",children:(0,t.jsx)(tF.default,{type:"number",placeholder:"Optional",step:1,onChange:()=>{a(e.getFieldValue("cache_control_points"))}})}),l.length>1&&(0,t.jsx)(tT.MinusCircleOutlined,{className:"text-red-500 cursor-pointer text-lg ml-12",onClick:()=>{r(s.name),setTimeout(()=>{a(e.getFieldValue("cache_control_points"))},0)}})]},s.key)),(0,t.jsx)(et.Form.Item,{children:(0,t.jsxs)("button",{type:"button",className:"flex items-center justify-center w-full border border-dashed border-gray-300 py-2 px-4 text-gray-600 hover:text-blue-600 hover:border-blue-300 transition-all rounded",onClick:()=>s(),children:[(0,t.jsx)(tr.PlusOutlined,{className:"mr-2"}),"Add Injection Point"]})})]})})]})]})};var tP=e.i(916940),tA=e.i(122550);let{Link:tE}=L.Typography,tL=({showAdvancedSettings:e,setShowAdvancedSettings:l,teams:s,guardrailsList:a,tagsList:r,accessToken:i})=>{let[o]=et.Form.useForm(),[n,d]=x.default.useState(!1),[c,m]=x.default.useState("per_token"),[u,h]=x.default.useState(!1),p=(e,t)=>t&&(isNaN(Number(t))||0>Number(t))?Promise.reject("Please enter a valid positive number"):Promise.resolve();return(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)(tw.Accordion,{className:"mt-2 mb-4",children:[(0,t.jsx)(tC.AccordionHeader,{children:(0,t.jsx)("b",{children:"Advanced Settings"})}),(0,t.jsx)(tS.AccordionBody,{children:(0,t.jsxs)("div",{className:"bg-white rounded-lg",children:[(0,t.jsx)(et.Form.Item,{label:"Custom Pricing",name:"custom_pricing",valuePropName:"checked",className:"mb-4",children:(0,t.jsx)(es.Switch,{onChange:e=>{d(e),e||o.setFieldsValue({input_cost_per_token:void 0,output_cost_per_token:void 0,input_cost_per_second:void 0})},className:"bg-gray-600"})}),(0,t.jsx)(et.Form.Item,{label:(0,t.jsxs)("span",{children:["Attached Knowledge Bases (RAG)"," ",(0,t.jsx)(E.Tooltip,{title:"Vector stores to use for RAG. Every request to this model will automatically retrieve context from these knowledge bases.",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/completion/knowledgebase",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(w.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),name:"vector_store_ids",className:"mt-4",help:"Select vector stores to attach. Requests to this model will automatically use these for RAG. Set up vector stores in Tools > Vector Stores.",children:(0,t.jsx)(tP.default,{onChange:()=>{},accessToken:i,placeholder:"Select knowledge bases (optional)"})}),(0,t.jsx)(et.Form.Item,{label:(0,t.jsxs)("span",{children:["Guardrails"," ",(0,t.jsx)(E.Tooltip,{title:"Apply safety guardrails to this key to filter content or enforce policies",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/guardrails/quick_start",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(w.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),name:"guardrails",className:"mt-4",help:"Select existing guardrails. Go to 'Guardrails' tab to create new guardrails.",children:(0,t.jsx)(W.Select,{mode:"tags",style:{width:"100%"},placeholder:"Select or enter guardrails",options:a.map(e=>({value:e,label:e}))})}),(0,t.jsx)(et.Form.Item,{label:"Tags",name:"tags",className:"mb-4",children:(0,t.jsx)(W.Select,{mode:"tags",style:{width:"100%"},placeholder:"Select or enter tags",options:Object.values(r).map(e=>({value:e.name,label:e.name,title:e.description||e.name}))})}),n&&(0,t.jsxs)("div",{className:"ml-6 pl-4 border-l-2 border-gray-200",children:[(0,t.jsx)(et.Form.Item,{label:"Pricing Model",name:"pricing_model",className:"mb-4",children:(0,t.jsx)(W.Select,{defaultValue:"per_token",onChange:e=>m(e),options:[{value:"per_token",label:"Per Million Tokens"},{value:"per_second",label:"Per Second"}]})}),"per_token"===c?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(et.Form.Item,{label:"Input Cost (per 1M tokens)",name:"input_cost_per_token",rules:[{validator:p}],className:"mb-4",children:(0,t.jsx)(eR.TextInput,{})}),(0,t.jsx)(et.Form.Item,{label:"Output Cost (per 1M tokens)",name:"output_cost_per_token",rules:[{validator:p}],className:"mb-4",children:(0,t.jsx)(eR.TextInput,{})})]}):(0,t.jsx)(et.Form.Item,{label:"Cost Per Second",name:"input_cost_per_second",rules:[{validator:p}],className:"mb-4",children:(0,t.jsx)(eR.TextInput,{})})]}),(0,t.jsx)(et.Form.Item,{label:"Use in pass through routes",name:"use_in_pass_through",valuePropName:"checked",className:"mb-4 mt-4",tooltip:(0,t.jsxs)("span",{children:["Allow using these credentials in pass through routes."," ",(0,t.jsx)(tE,{href:"https://docs.litellm.ai/docs/pass_through/vertex_ai",target:"_blank",children:"Learn more"})]}),children:(0,t.jsx)(es.Switch,{onChange:e=>{let t=o.getFieldValue("litellm_extra_params");try{let l=t?JSON.parse(t):{};e?l.use_in_pass_through=!0:delete l.use_in_pass_through,Object.keys(l).length>0?o.setFieldValue("litellm_extra_params",JSON.stringify(l,null,2)):o.setFieldValue("litellm_extra_params","")}catch(t){e?o.setFieldValue("litellm_extra_params",JSON.stringify({use_in_pass_through:!0},null,2)):o.setFieldValue("litellm_extra_params","")}},className:"bg-gray-600"})}),(0,t.jsx)(tM,{form:o,showCacheControl:u,onCacheControlChange:e=>{if(h(e),!e){let e=o.getFieldValue("litellm_extra_params");try{let t=e?JSON.parse(e):{};delete t.cache_control_injection_points,Object.keys(t).length>0?o.setFieldValue("litellm_extra_params",JSON.stringify(t,null,2)):o.setFieldValue("litellm_extra_params","")}catch(e){o.setFieldValue("litellm_extra_params","")}}}}),(0,t.jsx)(et.Form.Item,{label:"LiteLLM Params",name:"litellm_extra_params",tooltip:"Optional litellm params used for making a litellm.completion() call.",className:"mb-4 mt-4",rules:[{validator:tA.formItemValidateJSON}],children:(0,t.jsx)(tk.default,{rows:4,placeholder:'{ "rpm": 100, "timeout": 0, "stream_timeout": 0 }'})}),(0,t.jsxs)(eD.Row,{className:"mb-4",children:[(0,t.jsx)(eq.Col,{span:10}),(0,t.jsx)(eq.Col,{span:10,children:(0,t.jsxs)(em.Text,{className:"text-gray-600 text-sm",children:["Pass JSON of litellm supported params"," ",(0,t.jsx)(tE,{href:"https://docs.litellm.ai/docs/completion/input",target:"_blank",children:"litellm.completion() call"})]})})]}),(0,t.jsx)(et.Form.Item,{label:"Model Info",name:"model_info_params",tooltip:"Optional model info params. Returned when calling `/model/info` endpoint.",className:"mb-0",rules:[{validator:tA.formItemValidateJSON}],children:(0,t.jsx)(tk.default,{rows:4,placeholder:'{ "mode": "chat" }'})})]})})]})})};var tR=e.i(291542),tO=e.i(750113);let tB=({content:e,children:l,width:s="auto",className:a=""})=>{let[r,i]=(0,x.useState)(!1),[o,n]=(0,x.useState)("top"),d=(0,x.useRef)(null);return(0,t.jsxs)("div",{className:"relative inline-block",ref:d,children:[l||(0,t.jsx)(tO.QuestionCircleOutlined,{className:"ml-1 text-gray-500 cursor-help",onMouseEnter:()=>{if(d.current){let e=d.current.getBoundingClientRect(),t=e.top,l=window.innerHeight-e.bottom;t<300&&l>300?n("bottom"):n("top")}i(!0)},onMouseLeave:()=>i(!1)}),r&&(0,t.jsxs)("div",{className:`absolute left-1/2 -translate-x-1/2 z-50 bg-black/90 text-white p-2 rounded-md text-sm font-normal shadow-lg ${a}`,style:{["top"===o?"bottom":"top"]:"100%",width:s,marginBottom:"top"===o?"8px":"0",marginTop:"bottom"===o?"8px":"0"},children:[e,(0,t.jsx)("div",{className:"absolute left-1/2 -translate-x-1/2 w-0 h-0",style:{top:"top"===o?"100%":"auto",bottom:"bottom"===o?"100%":"auto",borderTop:"top"===o?"6px solid rgba(0, 0, 0, 0.9)":"6px solid transparent",borderBottom:"bottom"===o?"6px solid rgba(0, 0, 0, 0.9)":"6px solid transparent",borderLeft:"6px solid transparent",borderRight:"6px solid transparent"}})]})]})},tz=()=>{let e=et.Form.useFormInstance(),[l,s]=(0,x.useState)(0),a=et.Form.useWatch("model",e)||[],r=Array.isArray(a)?a:[a],i=et.Form.useWatch("custom_model_name",e),o=!r.includes("all-wildcard"),n=et.Form.useWatch("custom_llm_provider",e);if((0,x.useEffect)(()=>{if(i&&r.includes("custom")){let t=(e.getFieldValue("model_mappings")||[]).map(e=>"custom"===e.public_name||"custom"===e.litellm_model?n===eM.Providers.Azure?{public_name:i,litellm_model:`azure/${i}`}:{public_name:i,litellm_model:i}:e);e.setFieldValue("model_mappings",t),s(e=>e+1)}},[i,r,n,e]),(0,x.useEffect)(()=>{if(r.length>0&&!r.includes("all-wildcard")){let t=e.getFieldValue("model_mappings")||[];if(t.length!==r.length||!r.every(e=>t.some(t=>"custom"===e?"custom"===t.litellm_model||t.litellm_model===i:n===eM.Providers.Azure?t.litellm_model===`azure/${e}`:t.litellm_model===e))){let t=r.map(e=>"custom"===e&&i?n===eM.Providers.Azure?{public_name:i,litellm_model:`azure/${i}`}:{public_name:i,litellm_model:i}:n===eM.Providers.Azure?{public_name:e,litellm_model:`azure/${e}`}:{public_name:e,litellm_model:e});e.setFieldValue("model_mappings",t),s(e=>e+1)}}},[r,i,n,e]),!o)return null;let d=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"mb-2 font-normal",children:"The name you specify in your API calls to LiteLLM Proxy"}),(0,t.jsxs)("div",{className:"mb-2 font-normal",children:[(0,t.jsx)("strong",{children:"Example:"})," If you name your public model"," ",(0,t.jsx)("code",{className:"bg-gray-700 px-1 py-0.5 rounded text-xs",children:"example-name"}),", and choose"," ",(0,t.jsx)("code",{className:"bg-gray-700 px-1 py-0.5 rounded text-xs",children:"openai/qwen-plus-latest"})," as the LiteLLM model"]}),(0,t.jsxs)("div",{className:"mb-2 font-normal",children:[(0,t.jsx)("strong",{children:"Usage:"})," You make an API call to the LiteLLM proxy with"," ",(0,t.jsx)("code",{className:"bg-gray-700 px-1 py-0.5 rounded text-xs",children:'model = "example-name"'})]}),(0,t.jsxs)("div",{className:"font-normal",children:[(0,t.jsx)("strong",{children:"Result:"})," LiteLLM sends"," ",(0,t.jsx)("code",{className:"bg-gray-700 px-1 py-0.5 rounded text-xs",children:"qwen-plus-latest"})," to the provider"]})]}),c=(0,t.jsx)("div",{children:"The model name LiteLLM will send to the LLM API"}),m=[{title:(0,t.jsxs)("span",{className:"flex items-center",children:["Public Model Name",(0,t.jsx)(tB,{content:d,width:"500px"})]}),dataIndex:"public_name",key:"public_name",render:(l,s,a)=>(0,t.jsx)(eR.TextInput,{value:l,onChange:t=>{let l=t.target.value,s=[...e.getFieldValue("model_mappings")],r=n===eM.Providers.Anthropic,i=l.endsWith("-1m"),o=e.getFieldValue("litellm_extra_params"),d=!o||""===o.trim(),c=l;if(r&&i&&d){let t=JSON.stringify({extra_headers:{"anthropic-beta":"context-1m-2025-08-07"}},null,2);e.setFieldValue("litellm_extra_params",t),c=l.slice(0,-3)}s[a].public_name=c,e.setFieldValue("model_mappings",s)}})},{title:(0,t.jsxs)("span",{className:"flex items-center",children:["LiteLLM Model Name",(0,t.jsx)(tB,{content:c,width:"360px"})]}),dataIndex:"litellm_model",key:"litellm_model"}];return(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(et.Form.Item,{label:"Model Mappings",name:"model_mappings",tooltip:"Map public model names to LiteLLM model names for load balancing",labelCol:{span:10},wrapperCol:{span:16},labelAlign:"left",rules:[{required:!0,validator:async(e,t)=>{if(!t||0===t.length)throw Error("At least one model mapping is required");if(t.filter(e=>!e.public_name||""===e.public_name.trim()).length>0)throw Error("All model mappings must have valid public names")}}],children:(0,t.jsx)(tR.Table,{dataSource:e.getFieldValue("model_mappings"),columns:m,pagination:!1,size:"small"},l)})})},tq=({selectedProvider:e,providerModels:l,getPlaceholder:s})=>{let a=et.Form.useFormInstance(),r=t=>{let l=t.target.value,s=(a.getFieldValue("model_mappings")||[]).map(t=>"custom"===t.public_name||"custom"===t.litellm_model?e===eM.Providers.Azure?{public_name:l,litellm_model:`azure/${l}`}:{public_name:l,litellm_model:l}:t);a.setFieldsValue({model_mappings:s})};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(et.Form.Item,{label:"LiteLLM Model Name(s)",tooltip:"The model name LiteLLM will send to the LLM API",className:"mb-0",children:[(0,t.jsx)(et.Form.Item,{name:"model",rules:[{required:!0,message:`Please enter ${e===eM.Providers.Azure?"a deployment name":"at least one model"}.`}],noStyle:!0,children:e===eM.Providers.Azure||e===eM.Providers.OpenAI_Compatible||e===eM.Providers.Ollama?(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(eR.TextInput,{placeholder:s(e),onChange:e===eM.Providers.Azure?e=>{let t=e.target.value,l=t?[{public_name:t,litellm_model:`azure/${t}`}]:[];a.setFieldsValue({model:t,model_mappings:l})}:void 0})}):l.length>0?(0,t.jsx)(W.Select,{"data-testid":"model-name-select",mode:"multiple",allowClear:!0,showSearch:!0,placeholder:"Select models",onChange:t=>{let l=Array.isArray(t)?t:[t];if(l.includes("all-wildcard"))a.setFieldsValue({model_name:void 0,model_mappings:[]});else if(JSON.stringify(a.getFieldValue("model"))!==JSON.stringify(l)){let t=l.map(t=>e===eM.Providers.Azure?{public_name:t,litellm_model:`azure/${t}`}:{public_name:t,litellm_model:t});a.setFieldsValue({model:l,model_mappings:t})}},optionFilterProp:"children",filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase()),options:[{label:"Custom Model Name (Enter below)",value:"custom"},{label:`All ${e} Models (Wildcard)`,value:"all-wildcard"},...l.map(e=>({label:e,value:e}))],style:{width:"100%"}}):(0,t.jsx)(eR.TextInput,{placeholder:s(e)})}),(0,t.jsx)(et.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.model!==t.model,children:({getFieldValue:l})=>{let s=l("model")||[];return(Array.isArray(s)?s:[s]).includes("custom")&&(0,t.jsx)(et.Form.Item,{name:"custom_model_name",rules:[{required:!0,message:"Please enter a custom model name."}],className:"mt-2",children:(0,t.jsx)(eR.TextInput,{placeholder:e===eM.Providers.Azure?"Enter Azure deployment name":"Enter custom model name",onChange:r})})}})]}),(0,t.jsxs)(eD.Row,{children:[(0,t.jsx)(eq.Col,{span:10}),(0,t.jsx)(eq.Col,{span:14,children:(0,t.jsx)(em.Text,{className:"mb-3 mt-1",children:e===eM.Providers.Azure?"Your deployment name will be saved as the public model name, and LiteLLM will use 'azure/deployment-name' internally":"The model name LiteLLM will send to the LLM API"})})]})]})},tV=[{value:"chat",label:"Chat - /chat/completions"},{value:"completion",label:"Completion - /completions"},{value:"embedding",label:"Embedding - /embeddings"},{value:"audio_speech",label:"Audio Speech - /audio/speech"},{value:"audio_transcription",label:"Audio Transcription - /audio/transcriptions"},{value:"image_generation",label:"Image Generation - /images/generations"},{value:"video_generation",label:"Video Generation - /videos"},{value:"rerank",label:"Rerank - /rerank"},{value:"realtime",label:"Realtime - /realtime"},{value:"batch",label:"Batch - /batch"},{value:"ocr",label:"OCR - /ocr"}],{Title:tD,Link:tH}=L.Typography,t$=({form:e,handleOk:s,selectedProvider:a,setSelectedProvider:i,providerModels:o,setProviderModelsFn:n,getPlaceholder:d,uploadProps:c,showAdvancedSettings:m,setShowAdvancedSettings:u,teams:h,credentials:p})=>{let[g,f]=(0,x.useState)("chat"),[j,_]=(0,x.useState)(!1),[y,b]=(0,x.useState)(!1),[v,N]=(0,x.useState)(""),{accessToken:w,userRole:C,premiumUser:S,userId:k}=(0,r.default)(),{data:T,isLoading:F,error:I}=eB(),{data:M}=(0,t_.useGuardrails)(),P=M?.guardrails.map(e=>e.guardrail_name),{data:A,isLoading:O,error:B}=(0,ty.useTags)(),z=async()=>{b(!0),N(`test-${Date.now()}`),_(!0)},[q,V]=(0,x.useState)(!1),[D,H]=(0,x.useState)([]),[$,G]=(0,x.useState)(null);(0,x.useEffect)(()=>{(async()=>{H((await (0,l.modelAvailableCall)(w,"","",!1,null,!0,!0)).data.map(e=>e.id))})()},[w]);let U=(0,x.useMemo)(()=>T?[...T].sort((e,t)=>e.provider_display_name.localeCompare(t.provider_display_name)):[],[T]),J=I?I instanceof Error?I.message:"Failed to load providers":null,Q=eX.all_admin_roles.includes(C),Y=(0,eX.isUserTeamAdminForAnyTeam)(h,k);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(tD,{level:2,children:"Add Model"}),(0,t.jsx)(ej.Card,{children:(0,t.jsx)(et.Form,{form:e,onFinish:async e=>{console.log("🔥 Form onFinish triggered with values:",e),await s().then(()=>{G(null)})},onFinishFailed:e=>{console.log("💥 Form onFinishFailed triggered:",e)},labelCol:{span:10},wrapperCol:{span:16},labelAlign:"left",children:(0,t.jsxs)(t.Fragment,{children:[Y&&!Q&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(et.Form.Item,{label:"Select Team",name:"team_id",rules:[{required:!0,message:"Please select a team to continue"}],tooltip:"Select the team for which you want to add this model",children:(0,t.jsx)(tN.default,{onChange:e=>{G(e)}})}),!$&&(0,t.jsx)(tv.Alert,{message:"Team Selection Required",description:"As a team admin, you need to select your team first before adding models.",type:"info",showIcon:!0,className:"mb-4"})]}),(Q||Y&&$)&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(et.Form.Item,{rules:[{required:!0,message:"Required"}],label:"Provider:",name:"custom_llm_provider",tooltip:"E.g. OpenAI, Azure OpenAI, Anthropic, Bedrock, etc.",labelCol:{span:10},labelAlign:"left",children:(0,t.jsxs)(W.Select,{virtual:!1,showSearch:!0,loading:F,placeholder:F?"Loading providers...":"Select a provider",optionFilterProp:"data-label",onChange:t=>{i(t),n(t),e.setFieldsValue({custom_llm_provider:t}),e.setFieldsValue({model:[],model_name:void 0})},children:[J&&0===U.length&&(0,t.jsx)(W.Select.Option,{value:"",children:J},"__error"),U.map(e=>{let l=e.provider_display_name,s=e.provider;return eM.providerLogoMap[l],(0,t.jsx)(W.Select.Option,{value:s,"data-label":l,children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)(R.ProviderLogo,{provider:s,className:"w-5 h-5"}),(0,t.jsx)("span",{children:l})]})},s)})]})}),(0,t.jsx)(tq,{selectedProvider:a,providerModels:o,getPlaceholder:d}),(0,t.jsx)(tz,{}),(0,t.jsx)(et.Form.Item,{label:"Mode",name:"mode",className:"mb-1",children:(0,t.jsx)(W.Select,{style:{width:"100%"},value:g,onChange:e=>f(e),options:tV})}),(0,t.jsxs)(eD.Row,{children:[(0,t.jsx)(eq.Col,{span:10}),(0,t.jsx)(eq.Col,{span:10,children:(0,t.jsxs)(em.Text,{className:"mb-5 mt-1",children:[(0,t.jsx)("strong",{children:"Optional"})," - LiteLLM endpoint to use when health checking this model"," ",(0,t.jsx)(tH,{href:"https://docs.litellm.ai/docs/proxy/health#health",target:"_blank",children:"Learn more"})]})})]}),(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)(L.Typography.Text,{className:"text-sm text-gray-500 mb-2",children:"Either select existing credentials OR enter new provider credentials below"})}),(0,t.jsx)(et.Form.Item,{label:"Existing Credentials",name:"litellm_credential_name",initialValue:null,children:(0,t.jsx)(W.Select,{showSearch:!0,placeholder:"Select or search for existing credentials",optionFilterProp:"children",filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase()),options:[{value:null,label:"None"},...p.map(e=>({value:e.credential_name,label:e.credential_name}))],allowClear:!0})}),(0,t.jsx)(et.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.litellm_credential_name!==t.litellm_credential_name||e.provider!==t.provider,children:({getFieldValue:e})=>{let l=e("litellm_credential_name");return(console.log("🔑 Credential Name Changed:",l),l)?null:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center my-4",children:[(0,t.jsx)("div",{className:"flex-grow border-t border-gray-200"}),(0,t.jsx)("span",{className:"px-4 text-gray-500 text-sm",children:"OR"}),(0,t.jsx)("div",{className:"flex-grow border-t border-gray-200"})]}),(0,t.jsx)(eJ,{selectedProvider:a,uploadProps:c})]})}}),(0,t.jsxs)("div",{className:"flex items-center my-4",children:[(0,t.jsx)("div",{className:"flex-grow border-t border-gray-200"}),(0,t.jsx)("span",{className:"px-4 text-gray-500 text-sm",children:"Additional Model Info Settings"}),(0,t.jsx)("div",{className:"flex-grow border-t border-gray-200"})]}),(Q||!Y)&&(0,t.jsx)(et.Form.Item,{label:"Team-BYOK Model",tooltip:"Only use this model + credential combination for this team. Useful when teams want to onboard their own OpenAI keys.",className:"mb-4",children:(0,t.jsx)(E.Tooltip,{title:S?"":"This is an enterprise-only feature. Upgrade to premium to restrict model+credential combinations to a specific team.",placement:"top",children:(0,t.jsx)(tb.Switch,{checked:q,onChange:t=>{V(t),t||e.setFieldValue("team_id",void 0)},disabled:!S})})}),q&&(Q||!Y)&&(0,t.jsx)(et.Form.Item,{label:"Select Team",name:"team_id",className:"mb-4",tooltip:"Only keys for this team will be able to call this model.",rules:[{required:q&&!Q,message:"Please select a team."}],children:(0,t.jsx)(tN.default,{disabled:!S})}),Q&&(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(et.Form.Item,{label:"Model Access Group",name:"model_access_group",className:"mb-4",tooltip:"Use model access groups to give users access to select models, and add new ones to the group over time.",children:(0,t.jsx)(W.Select,{mode:"tags",showSearch:!0,placeholder:"Select existing groups or type to create new ones",optionFilterProp:"children",tokenSeparators:[","],options:D.map(e=>({value:e,label:e})),maxTagCount:"responsive",allowClear:!0})})}),(0,t.jsx)(tL,{showAdvancedSettings:m,setShowAdvancedSettings:u,teams:h,guardrailsList:P||[],tagsList:A||{},accessToken:w||""})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(E.Tooltip,{title:"Get help on our github",children:(0,t.jsx)(L.Typography.Link,{href:"https://github.com/BerriAI/litellm/issues",children:"Need Help?"})}),(0,t.jsxs)("div",{className:"space-x-2",children:[(0,t.jsx)(K.Button,{"data-testid":"test-connect-btn",onClick:z,loading:y,children:"Test Connect"}),(0,t.jsx)(K.Button,{"data-testid":"add-model-btn",htmlType:"submit",children:"Add Model"})]})]})]})})}),(0,t.jsx)(el.Modal,{title:"Connection Test Results",open:j,onCancel:()=>{_(!1),b(!1)},footer:[(0,t.jsx)(K.Button,{onClick:()=>{_(!1),b(!1)},children:"Close"},"close")],width:700,children:j&&(0,t.jsx)(tt,{formValues:e.getFieldsValue(),accessToken:w,testMode:g,modelName:e.getFieldValue("model_name")||e.getFieldValue("model"),onClose:()=>{_(!1),b(!1)},onTestComplete:()=>b(!1)},v)})]})},tG=({form:e,handleOk:l,selectedProvider:s,setSelectedProvider:a,providerModels:r,setProviderModelsFn:i,getPlaceholder:o,uploadProps:n,showAdvancedSettings:d,setShowAdvancedSettings:c,teams:m,credentials:u,accessToken:h,userRole:x})=>{let[p]=et.Form.useForm();return(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)(e4.TabGroup,{className:"w-full",children:[(0,t.jsxs)(e5.TabList,{className:"mb-4",children:[(0,t.jsx)(e2.Tab,{children:"Add Model"}),(0,t.jsx)(e2.Tab,{children:"Add Auto Router"})]}),(0,t.jsxs)(e6.TabPanels,{children:[(0,t.jsx)(U.TabPanel,{children:(0,t.jsx)(t$,{form:e,handleOk:l,selectedProvider:s,setSelectedProvider:a,providerModels:r,setProviderModelsFn:i,getPlaceholder:o,uploadProps:n,showAdvancedSettings:d,setShowAdvancedSettings:c,teams:m,credentials:u})}),(0,t.jsx)(U.TabPanel,{children:(0,t.jsx)(tj,{form:p,handleOk:()=>{p.validateFields().then(e=>{tl(e,h,p,l)}).catch(e=>{console.error("Validation failed:",e)})},accessToken:h,userRole:x})})]})]})})};var tU=e.i(798496),tJ=e.i(536916),tK=e.i(502275),tW=e.i(122577);let tQ=[{pattern:/Missing .* API Key/i,replacement:"Missing API Key"},{pattern:/Connection timeout/i,replacement:"Connection timeout"},{pattern:/Network.*not.*ok/i,replacement:"Network connection failed"},{pattern:/403.*Forbidden/i,replacement:"Access forbidden - check API key permissions"},{pattern:/401.*Unauthorized/i,replacement:"Unauthorized - invalid API key"},{pattern:/429.*rate limit/i,replacement:"Rate limit exceeded"},{pattern:/500.*Internal Server Error/i,replacement:"Provider internal server error"},{pattern:/litellm\.AuthenticationError/i,replacement:"Authentication failed"},{pattern:/litellm\.RateLimitError/i,replacement:"Rate limit exceeded"},{pattern:/litellm\.APIError/i,replacement:"API error"}],tY=({accessToken:e,modelData:s,all_models_on_proxy:a,getDisplayModelName:r,setSelectedModelId:i,teams:o,isLoading:n=!1,paginationMeta:d,currentPage:c=1,pageSize:m=50,onPageChange:u})=>{let h,p,g,f,[j,_]=(0,x.useState)({}),[y,b]=(0,x.useState)([]),[v,N]=(0,x.useState)(!1),[w,C]=(0,x.useState)(!1),[S,F]=(0,x.useState)(null),[I,M]=(0,x.useState)(!1),[P,A]=(0,x.useState)(null);(0,x.useRef)(null),(0,x.useEffect)(()=>{e&&s?.data&&(async()=>{let t={};s.data.forEach(e=>{let l=e.model_info?.id;l&&(t[l]={status:"none",lastCheck:"None",lastSuccess:"None",loading:!1,error:void 0,fullError:void 0,successResponse:void 0})});try{let a=await (0,l.latestHealthChecksCall)(e);a&&a.latest_health_checks&&"object"==typeof a.latest_health_checks&&Object.entries(a.latest_health_checks).forEach(([e,l])=>{if(!l||!s.data.some(t=>t.model_info?.id===e))return;let a=l.error_message||void 0;t[e]={status:l.status||"unknown",lastCheck:l.checked_at?new Date(l.checked_at).toLocaleString():"None",lastSuccess:"healthy"===l.status&&l.checked_at?new Date(l.checked_at).toLocaleString():"None",loading:!1,error:a?L(a):void 0,fullError:a,successResponse:"healthy"===l.status?l:void 0}})}catch(e){console.warn("Failed to load health check history (using default states):",e)}_(t)})()},[e,s]);let L=e=>{if(!e)return"Health check failed";let t="string"==typeof e?e:JSON.stringify(e),l=t.match(/(\w+Error):\s*(\d{3})/i);if(l)return`${l[1]}: ${l[2]}`;let s=t.match(/(AuthenticationError|RateLimitError|BadRequestError|InternalServerError|TimeoutError|NotFoundError|ForbiddenError|ServiceUnavailableError|BadGatewayError|ContentPolicyViolationError|\w+Error)/i),a=t.match(/\b(400|401|403|404|408|429|500|502|503|504)\b/);if(s&&a)return`${s[1]}: ${a[1]}`;if(a){let e=a[1];return`${({400:"BadRequestError",401:"AuthenticationError",403:"ForbiddenError",404:"NotFoundError",408:"TimeoutError",429:"RateLimitError",500:"InternalServerError",502:"BadGatewayError",503:"ServiceUnavailableError",504:"GatewayTimeoutError"})[e]}: ${e}`}if(s){let e=s[1],t={AuthenticationError:"401",RateLimitError:"429",BadRequestError:"400",InternalServerError:"500",TimeoutError:"408",NotFoundError:"404",ForbiddenError:"403",ServiceUnavailableError:"503",BadGatewayError:"502",GatewayTimeoutError:"504",ContentPolicyViolationError:"400"}[e];return t?`${e}: ${t}`:e}for(let{pattern:e,replacement:l}of tQ)if(e.test(t))return l;if(/missing.*api.*key|invalid.*key|unauthorized/i.test(t))return"AuthenticationError: 401";if(/rate.*limit|too.*many.*requests/i.test(t))return"RateLimitError: 429";if(/timeout|timed.*out/i.test(t))return"TimeoutError: 408";if(/not.*found/i.test(t))return"NotFoundError: 404";if(/forbidden|access.*denied/i.test(t))return"ForbiddenError: 403";if(/internal.*server.*error/i.test(t))return"InternalServerError: 500";let r=t.replace(/[\n\r]+/g," ").replace(/\s+/g," ").trim(),i=r.split(/[.!?]/),o=i[0]?.trim();return o&&o.length>0?o.length>100?o.substring(0,97)+"...":o:r.length>100?r.substring(0,97)+"...":r},R=async t=>{if(e){_(e=>({...e,[t]:{...e[t],loading:!0,status:"checking"}}));try{let s=await (0,l.individualModelHealthCheckCall)(e,t),a=new Date().toLocaleString();if(s.unhealthy_count>0&&s.unhealthy_endpoints&&s.unhealthy_endpoints.length>0){let e=s.unhealthy_endpoints[0]?.error||"Health check failed",l=L(e);_(s=>({...s,[t]:{status:"unhealthy",lastCheck:a,lastSuccess:s[t]?.lastSuccess||"None",loading:!1,error:l,fullError:e}}))}else _(e=>({...e,[t]:{status:"healthy",lastCheck:a,lastSuccess:a,loading:!1,successResponse:s}}));try{let s=await (0,l.latestHealthChecksCall)(e),a=s.latest_health_checks?.[t];if(a){let e=a.error_message||void 0;_(l=>({...l,[t]:{status:a.status||l[t]?.status||"unknown",lastCheck:a.checked_at?new Date(a.checked_at).toLocaleString():l[t]?.lastCheck||"None",lastSuccess:"healthy"===a.status&&a.checked_at?new Date(a.checked_at).toLocaleString():l[t]?.lastSuccess||"None",loading:!1,error:e?L(e):l[t]?.error,fullError:e||l[t]?.fullError,successResponse:"healthy"===a.status?a:l[t]?.successResponse}}))}}catch(e){console.debug("Could not fetch updated status from database (non-critical):",e)}}catch(a){let e=new Date().toLocaleString(),l=a instanceof Error?a.message:String(a),s=L(l);_(a=>({...a,[t]:{status:"unhealthy",lastCheck:e,lastSuccess:a[t]?.lastSuccess||"None",loading:!1,error:s,fullError:l}}))}}},O=async()=>{let t=y.length>0?y:a,s=t.reduce((e,t)=>(e[t]={...j[t],loading:!0,status:"checking"},e),{});_(e=>({...e,...s}));let r={},i=t.map(async t=>{if(e)try{let s=await (0,l.individualModelHealthCheckCall)(e,t);r[t]=s;let a=new Date().toLocaleString();if(s.unhealthy_count>0&&s.unhealthy_endpoints&&s.unhealthy_endpoints.length>0){let e=s.unhealthy_endpoints[0]?.error||"Health check failed",l=L(e);_(s=>({...s,[t]:{status:"unhealthy",lastCheck:a,lastSuccess:s[t]?.lastSuccess||"None",loading:!1,error:l,fullError:e}}))}else _(e=>({...e,[t]:{status:"healthy",lastCheck:a,lastSuccess:a,loading:!1,successResponse:s}}))}catch(a){console.error(`Health check failed for model id ${t}:`,a);let e=new Date().toLocaleString(),l=a instanceof Error?a.message:String(a),s=L(l);_(a=>({...a,[t]:{status:"unhealthy",lastCheck:e,lastSuccess:a[t]?.lastSuccess||"None",loading:!1,error:s,fullError:l}}))}});await Promise.allSettled(i);try{if(!e)return;let s=await (0,l.latestHealthChecksCall)(e);s.latest_health_checks&&Object.entries(s.latest_health_checks).forEach(([e,l])=>{if(t.includes(e)&&l){let t=l.error_message||void 0;_(s=>{let a=s[e];return{...s,[e]:{status:l.status||a?.status||"unknown",lastCheck:l.checked_at?new Date(l.checked_at).toLocaleString():a?.lastCheck||"None",lastSuccess:"healthy"===l.status&&l.checked_at?new Date(l.checked_at).toLocaleString():a?.lastSuccess||"None",loading:!1,error:t?L(t):a?.error,fullError:t||a?.fullError,successResponse:"healthy"===l.status?l:a?.successResponse}}})}})}catch(e){console.warn("Failed to fetch updated health statuses from database (non-critical):",e)}},B=e=>{N(e),e?b(a):b([])},z=e=>{b([]),N(!1),_({}),u?.(e)},q=()=>{C(!1),F(null)},V=()=>{M(!1),A(null)},D=(s?.data??[]).map(e=>{let t=e.model_info?.id,l=(t?j[t]:null)||{status:"none",lastCheck:"None",loading:!1};return{model_name:e.model_name,model_info:e.model_info,provider:e.provider,litellm_model_name:e.litellm_model_name,health_status:l.status,last_check:l.lastCheck,last_success:l.lastSuccess||"None",health_loading:l.loading,health_error:l.error,health_full_error:l.fullError}}),H=!!(d&&u),$=d?.total_count??0,G=d?.total_pages??1,U=d?.current_page??c,J=d?.size??m,W=H&&$>0?(U-1)*J+1:0,Q=H?Math.min(U*J,$):0;return(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(eu.Title,{children:"Model Health Status"}),(0,t.jsx)(em.Text,{className:"text-gray-600 mt-1",children:"Run health checks on individual models to verify they are working correctly"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[y.length>0&&(0,t.jsx)(T.Button,{size:"sm",variant:"light",onClick:()=>B(!1),className:"px-3 py-1 text-sm",children:"Clear Selection"}),(0,t.jsx)(T.Button,{size:"sm",variant:"secondary",onClick:O,disabled:Object.values(j).some(e=>e.loading),className:"px-3 py-1 text-sm",children:y.length>0&&y.length0?`Showing ${W} - ${Q} of ${$} results`:"Showing 0 results"}),(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("button",{onClick:()=>z(c-1),disabled:n||1===c,className:`px-3 py-1 text-sm border rounded-md ${n||1===c?"bg-gray-100 text-gray-400 cursor-not-allowed":"hover:bg-gray-50"}`,children:"Previous"}),(0,t.jsx)("button",{onClick:()=>z(c+1),disabled:n||c>=G,className:`px-3 py-1 text-sm border rounded-md ${n||c>=G?"bg-gray-100 text-gray-400 cursor-not-allowed":"hover:bg-gray-50"}`,children:"Next"})]})]}),(0,t.jsx)(tU.ModelDataTable,{columns:(h=(e,t)=>{t?b(t=>[...t,e]):(b(t=>t.filter(t=>t!==e)),N(!1))},p=e=>{switch(e){case"healthy":return(0,t.jsx)(k.Badge,{color:"emerald",children:"healthy"});case"unhealthy":return(0,t.jsx)(k.Badge,{color:"red",children:"unhealthy"});case"checking":return(0,t.jsx)(k.Badge,{color:"blue",children:"checking"});case"none":return(0,t.jsx)(k.Badge,{color:"gray",children:"none"});default:return(0,t.jsx)(k.Badge,{color:"gray",children:"unknown"})}},g=(e,t,l)=>{F({modelName:e,cleanedError:t,fullError:l}),C(!0)},f=(e,t)=>{A({modelName:e,response:t}),M(!0)},[{header:()=>(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(tJ.Checkbox,{checked:v,indeterminate:y.length>0&&!v,onChange:e=>B(e.target.checked),onClick:e=>e.stopPropagation()}),(0,t.jsx)("span",{children:"Model ID"})]}),accessorKey:"model_info.id",enableSorting:!0,sortingFn:"alphanumeric",cell:({row:e})=>{let l=e.original,s=l.model_info?.id??"",a=y.includes(s);return(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(tJ.Checkbox,{checked:a,onChange:e=>h(s,e.target.checked),onClick:e=>e.stopPropagation()}),(0,t.jsx)(E.Tooltip,{title:l.model_info.id,children:(0,t.jsx)("div",{className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left w-full truncate whitespace-nowrap cursor-pointer max-w-[15ch]",onClick:()=>i&&i(l.model_info.id),children:l.model_info.id})})]})}},{header:"Model Name",accessorKey:"model_name",enableSorting:!0,sortingFn:"alphanumeric",cell:({row:e})=>{let l=e.original,s=r(l)||l.model_name;return(0,t.jsx)("div",{className:"font-medium text-sm",children:(0,t.jsx)(E.Tooltip,{title:s,children:(0,t.jsx)("div",{className:"truncate max-w-[200px]",children:s})})})}},{header:"Team Alias",accessorKey:"model_info.team_id",enableSorting:!0,sortingFn:"alphanumeric",cell:({row:e})=>{let l=e.original,s=l.model_info?.team_id;if(!s)return(0,t.jsx)("span",{className:"text-gray-400 text-sm",children:"-"});let a=o?.find(e=>e.team_id===s),r=a?.team_alias||s;return(0,t.jsx)("div",{className:"text-sm",children:(0,t.jsx)(E.Tooltip,{title:r,children:(0,t.jsx)("div",{className:"truncate max-w-[150px]",children:r})})})}},{header:"Health Status",accessorKey:"health_status",enableSorting:!0,sortingFn:(e,t,l)=>{let s=e.getValue("health_status")||"unknown",a=t.getValue("health_status")||"unknown",r={healthy:0,checking:1,unknown:2,unhealthy:3};return(r[s]??4)-(r[a]??4)},cell:({row:e})=>{let l=e.original,s={status:l.health_status,loading:l.health_loading,error:l.health_error};if(s.loading)return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsxs)("div",{className:"flex space-x-1",children:[(0,t.jsx)("div",{className:"w-2 h-2 bg-indigo-500 rounded-full animate-pulse"}),(0,t.jsx)("div",{className:"w-2 h-2 bg-indigo-500 rounded-full animate-pulse",style:{animationDelay:"0.2s"}}),(0,t.jsx)("div",{className:"w-2 h-2 bg-indigo-500 rounded-full animate-pulse",style:{animationDelay:"0.4s"}})]}),(0,t.jsx)(em.Text,{className:"text-gray-600 text-sm",children:"Checking..."})]});let a=l.model_info?.id??"",i=r(l)||l.model_name,o="healthy"===s.status&&j[a]?.successResponse;return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[p(s.status),o&&f&&(0,t.jsx)(E.Tooltip,{title:"View response details",placement:"top",children:(0,t.jsx)("button",{onClick:()=>f(i,j[a]?.successResponse),className:"p-1 text-green-600 hover:text-green-800 hover:bg-green-50 rounded cursor-pointer transition-colors",children:(0,t.jsx)(tK.InformationCircleIcon,{className:"h-4 w-4"})})})]})}},{header:"Error Details",accessorKey:"health_error",enableSorting:!1,cell:({row:e})=>{let l=e.original,s=l.model_info?.id??"",a=r(l)||l.model_name,i=j[s];if(!i?.error)return(0,t.jsx)(em.Text,{className:"text-gray-400 text-sm",children:"No errors"});let o=i.error,n=i.fullError||i.error;return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("div",{className:"max-w-[200px]",children:(0,t.jsx)(E.Tooltip,{title:o,placement:"top",children:(0,t.jsx)(em.Text,{className:"text-red-600 text-sm truncate",children:o})})}),g&&n!==o&&(0,t.jsx)(E.Tooltip,{title:"View full error details",placement:"top",children:(0,t.jsx)("button",{onClick:()=>g(a,o,n),className:"p-1 text-red-600 hover:text-red-800 hover:bg-red-50 rounded cursor-pointer transition-colors",children:(0,t.jsx)(tK.InformationCircleIcon,{className:"h-4 w-4"})})})]})}},{header:"Last Check",accessorKey:"last_check",enableSorting:!0,sortingFn:(e,t,l)=>{let s=e.getValue("last_check")||"Never checked",a=t.getValue("last_check")||"Never checked";if("Never checked"===s&&"Never checked"===a)return 0;if("Never checked"===s)return 1;if("Never checked"===a)return -1;if("Check in progress..."===s&&"Check in progress..."===a)return 0;if("Check in progress..."===s)return -1;if("Check in progress..."===a)return 1;let r=new Date(s),i=new Date(a);return isNaN(r.getTime())&&isNaN(i.getTime())?0:isNaN(r.getTime())?1:isNaN(i.getTime())?-1:i.getTime()-r.getTime()},cell:({row:e})=>{let l=e.original;return(0,t.jsx)(em.Text,{className:"text-gray-600 text-sm",children:l.health_loading?"Check in progress...":l.last_check})}},{header:"Last Success",accessorKey:"last_success",enableSorting:!0,sortingFn:(e,t,l)=>{let s=e.getValue("last_success")||"Never succeeded",a=t.getValue("last_success")||"Never succeeded";if("Never succeeded"===s&&"Never succeeded"===a)return 0;if("Never succeeded"===s)return 1;if("Never succeeded"===a)return -1;if("None"===s&&"None"===a)return 0;if("None"===s)return 1;if("None"===a)return -1;let r=new Date(s),i=new Date(a);return isNaN(r.getTime())&&isNaN(i.getTime())?0:isNaN(r.getTime())?1:isNaN(i.getTime())?-1:i.getTime()-r.getTime()},cell:({row:e})=>{let l=e.original,s=j[l.model_info?.id??""],a=s?.lastSuccess||"None";return(0,t.jsx)(em.Text,{className:"text-gray-600 text-sm",children:a})}},{header:"Actions",id:"actions",cell:({row:e})=>{let l=e.original,s=l.model_info?.id??"",a=l.health_status&&"none"!==l.health_status,r=l.health_loading?"Checking...":a?"Re-run Health Check":"Run Health Check";return(0,t.jsx)(E.Tooltip,{title:r,placement:"top",children:(0,t.jsx)("button",{"data-testid":"run-health-check-btn",className:`p-2 rounded-md transition-colors ${l.health_loading?"text-gray-400 cursor-not-allowed bg-gray-100":"text-indigo-600 hover:text-indigo-700 hover:bg-indigo-50"}`,onClick:()=>{l.health_loading||R(s)},disabled:l.health_loading,children:l.health_loading?(0,t.jsxs)("div",{className:"flex space-x-1",children:[(0,t.jsx)("div",{className:"w-1 h-1 bg-gray-400 rounded-full animate-pulse"}),(0,t.jsx)("div",{className:"w-1 h-1 bg-gray-400 rounded-full animate-pulse",style:{animationDelay:"0.2s"}}),(0,t.jsx)("div",{className:"w-1 h-1 bg-gray-400 rounded-full animate-pulse",style:{animationDelay:"0.4s"}})]}):a?(0,t.jsx)(e0.RefreshIcon,{className:"h-4 w-4"}):(0,t.jsx)(tW.PlayIcon,{className:"h-4 w-4"})})})},enableSorting:!1}]),data:D,isLoading:n})]}),(0,t.jsx)(el.Modal,{title:S?`Health Check Error - ${S.modelName}`:"Error Details",open:w,onCancel:q,footer:[(0,t.jsx)(K.Button,{onClick:q,children:"Close"},"close")],width:800,children:S&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Error:"}),(0,t.jsx)("div",{className:"mt-2 p-3 bg-red-50 border border-red-200 rounded-md",children:(0,t.jsx)(em.Text,{className:"text-red-800",children:S.cleanedError})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Full Error Details:"}),(0,t.jsx)("div",{className:"mt-2 p-3 bg-gray-50 border border-gray-200 rounded-md max-h-96 overflow-y-auto",children:(0,t.jsx)("pre",{className:"text-sm text-gray-800 whitespace-pre-wrap",children:S.fullError})})]})]})}),(0,t.jsx)(el.Modal,{title:P?`Health Check Response - ${P.modelName}`:"Response Details",open:I,onCancel:V,footer:[(0,t.jsx)(K.Button,{onClick:V,children:"Close"},"close")],width:800,children:P&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Status:"}),(0,t.jsx)("div",{className:"mt-2 p-3 bg-green-50 border border-green-200 rounded-md",children:(0,t.jsx)(em.Text,{className:"text-green-800",children:"Health check passed successfully"})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Response Details:"}),(0,t.jsx)("div",{className:"mt-2 p-3 bg-gray-50 border border-gray-200 rounded-md max-h-96 overflow-y-auto",children:(0,t.jsx)("pre",{className:"text-sm text-gray-800 whitespace-pre-wrap",children:JSON.stringify(P.response,null,2)})})]})]})})]})};var tX=e.i(250980),tZ=e.i(797672),t0=e.i(871943),t1=e.i(502547);let t2=({accessToken:e,initialModelGroupAlias:s={},onAliasUpdate:a})=>{let[r,i]=(0,x.useState)([]),[o,n]=(0,x.useState)({aliasName:"",targetModelGroup:""}),[d,c]=(0,x.useState)(null),[m,u]=(0,x.useState)(!0);(0,x.useEffect)(()=>{i(Object.entries(s).map(([e,t],l)=>({id:`${l}-${e}`,aliasName:e,targetModelGroup:"string"==typeof t?t:t?.model??""})))},[s]);let h=async t=>{if(!e)return console.error("Access token is missing"),!1;try{let s={};return t.forEach(e=>{s[e.aliasName]=e.targetModelGroup}),console.log("Saving model group alias:",s),await (0,l.setCallbacksCall)(e,{router_settings:{model_group_alias:s}}),a&&a(s),!0}catch(e){return console.error("Failed to save model group alias settings:",e),D.default.fromBackend("Failed to save model group alias settings"),!1}},b=async()=>{if(!o.aliasName||!o.targetModelGroup)return void D.default.fromBackend("Please provide both alias name and target model group");if(r.some(e=>e.aliasName===o.aliasName))return void D.default.fromBackend("An alias with this name already exists");let e=[...r,{id:`${Date.now()}-${o.aliasName}`,aliasName:o.aliasName,targetModelGroup:o.targetModelGroup}];await h(e)&&(i(e),n({aliasName:"",targetModelGroup:""}),D.default.success("Alias added successfully"))},v=async()=>{if(!d)return;if(!d.aliasName||!d.targetModelGroup)return void D.default.fromBackend("Please provide both alias name and target model group");if(r.some(e=>e.id!==d.id&&e.aliasName===d.aliasName))return void D.default.fromBackend("An alias with this name already exists");let e=r.map(e=>e.id===d.id?d:e);await h(e)&&(i(e),c(null),D.default.success("Alias updated successfully"))},N=()=>{c(null)},w=async e=>{let t=r.filter(t=>t.id!==e);await h(t)&&(i(t),D.default.success("Alias deleted successfully"))},C=r.reduce((e,t)=>(e[t.aliasName]=t.targetModelGroup,e),{});return(0,t.jsxs)(eL.Card,{className:"mb-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between cursor-pointer",onClick:()=>u(!m),children:[(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)(eu.Title,{className:"mb-0",children:"Model Group Alias Settings"}),(0,t.jsx)("p",{className:"text-sm text-gray-500",children:"Create aliases for your model groups to simplify API calls. For example, you can create an alias 'gpt-4o' that points to 'gpt-4o-mini-openai' model group."})]}),(0,t.jsx)("div",{className:"flex items-center",children:m?(0,t.jsx)(t0.ChevronDownIcon,{className:"w-5 h-5 text-gray-500"}):(0,t.jsx)(t1.ChevronRightIcon,{className:"w-5 h-5 text-gray-500"})})]}),m&&(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)(em.Text,{className:"text-sm font-medium text-gray-700 mb-2",children:"Add New Alias"}),(0,t.jsxs)("div",{className:"grid grid-cols-3 gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-gray-500 mb-1",children:"Alias Name"}),(0,t.jsx)("input",{type:"text",value:o.aliasName,onChange:e=>n({...o,aliasName:e.target.value}),placeholder:"e.g., gpt-4o",className:"w-full px-3 py-2 border border-gray-300 rounded-md text-sm"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs text-gray-500 mb-1",children:"Target Model Group"}),(0,t.jsx)("input",{type:"text",value:o.targetModelGroup,onChange:e=>n({...o,targetModelGroup:e.target.value}),placeholder:"e.g., gpt-4o-mini-openai",className:"w-full px-3 py-2 border border-gray-300 rounded-md text-sm"})]}),(0,t.jsx)("div",{className:"flex items-end",children:(0,t.jsxs)("button",{onClick:b,disabled:!o.aliasName||!o.targetModelGroup,className:`flex items-center px-4 py-2 rounded-md text-sm ${!o.aliasName||!o.targetModelGroup?"bg-gray-300 text-gray-500 cursor-not-allowed":"bg-green-600 text-white hover:bg-green-700"}`,children:[(0,t.jsx)(tX.PlusCircleIcon,{className:"w-4 h-4 mr-1"}),"Add Alias"]})})]})]}),(0,t.jsx)(em.Text,{className:"text-sm font-medium text-gray-700 mb-2",children:"Manage Existing Aliases"}),(0,t.jsx)("div",{className:"rounded-lg custom-border relative mb-6",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(p.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",children:[(0,t.jsx)(g.TableHead,{children:(0,t.jsxs)(_.TableRow,{children:[(0,t.jsx)(f.TableHeaderCell,{className:"py-1 h-8",children:"Alias Name"}),(0,t.jsx)(f.TableHeaderCell,{className:"py-1 h-8",children:"Target Model Group"}),(0,t.jsx)(f.TableHeaderCell,{className:"py-1 h-8",children:"Actions"})]})}),(0,t.jsxs)(j.TableBody,{children:[r.map(e=>(0,t.jsx)(_.TableRow,{className:"h-8",children:d&&d.id===e.id?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(y.TableCell,{className:"py-0.5",children:(0,t.jsx)("input",{type:"text",value:d.aliasName,onChange:e=>c({...d,aliasName:e.target.value}),className:"w-full px-2 py-1 border border-gray-300 rounded-md text-sm"})}),(0,t.jsx)(y.TableCell,{className:"py-0.5",children:(0,t.jsx)("input",{type:"text",value:d.targetModelGroup,onChange:e=>c({...d,targetModelGroup:e.target.value}),className:"w-full px-2 py-1 border border-gray-300 rounded-md text-sm"})}),(0,t.jsx)(y.TableCell,{className:"py-0.5 whitespace-nowrap",children:(0,t.jsxs)("div",{className:"flex space-x-2",children:[(0,t.jsx)("button",{onClick:v,className:"text-xs bg-blue-50 text-blue-600 px-2 py-1 rounded hover:bg-blue-100",children:"Save"}),(0,t.jsx)("button",{onClick:N,className:"text-xs bg-gray-50 text-gray-600 px-2 py-1 rounded hover:bg-gray-100",children:"Cancel"})]})})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(y.TableCell,{className:"py-0.5 text-sm text-gray-900",children:e.aliasName}),(0,t.jsx)(y.TableCell,{className:"py-0.5 text-sm text-gray-500",children:e.targetModelGroup}),(0,t.jsx)(y.TableCell,{className:"py-0.5 whitespace-nowrap",children:(0,t.jsxs)("div",{className:"flex space-x-2",children:[(0,t.jsx)("button",{onClick:()=>{c({...e})},className:"text-xs bg-blue-50 text-blue-600 px-2 py-1 rounded hover:bg-blue-100",children:(0,t.jsx)(tZ.PencilIcon,{className:"w-3 h-3"})}),(0,t.jsx)("button",{onClick:()=>w(e.id),className:"text-xs bg-red-50 text-red-600 px-2 py-1 rounded hover:bg-red-100",children:(0,t.jsx)(S.TrashIcon,{className:"w-3 h-3"})})]})})]})},e.id)),0===r.length&&(0,t.jsx)(_.TableRow,{children:(0,t.jsx)(y.TableCell,{colSpan:3,className:"py-0.5 text-sm text-gray-500 text-center",children:"No aliases added yet. Add a new alias above."})})]})]})})}),(0,t.jsxs)(eL.Card,{children:[(0,t.jsx)(eu.Title,{className:"mb-4",children:"Configuration Example"}),(0,t.jsx)(em.Text,{className:"text-gray-600 mb-4",children:"Here's how your current aliases would look in the config.yaml:"}),(0,t.jsx)("div",{className:"bg-gray-100 rounded-lg p-4 font-mono text-sm",children:(0,t.jsxs)("div",{className:"text-gray-700",children:["router_settings:",(0,t.jsx)("br",{}),"  model_group_alias:",0===Object.keys(C).length?(0,t.jsxs)("span",{className:"text-gray-500",children:[(0,t.jsx)("br",{}),"    # No aliases configured yet"]}):Object.entries(C).map(([e,l])=>(0,t.jsxs)("span",{children:[(0,t.jsx)("br",{}),'    "',e,'": "',l,'"']},e))]})})]})]})]})};var t4=e.i(530212);let t5=x.forwardRef(function(e,t){return x.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),x.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1121 9z"}))});var t6=e.i(678784),t3=e.i(118366),t8=e.i(500330);let t7=({isVisible:e,onCancel:s,onSuccess:a,modelData:r,accessToken:i,userRole:o})=>{let[n]=et.Form.useForm(),[d,c]=(0,x.useState)(!1),[m,u]=(0,x.useState)([]),[h,p]=(0,x.useState)([]),[g,f]=(0,x.useState)(!1),[j,_]=(0,x.useState)(!1),[y,b]=(0,x.useState)(null);(0,x.useEffect)(()=>{e&&r&&v()},[e,r]),(0,x.useEffect)(()=>{let t=async()=>{if(i)try{let e=await (0,l.modelAvailableCall)(i,"","",!1,null,!0,!0);u(e.data.map(e=>e.id))}catch(e){console.error("Error fetching model access groups:",e)}},s=async()=>{if(i)try{let e=await (0,ts.fetchAvailableModels)(i);p(e)}catch(e){console.error("Error fetching model info:",e)}};e&&(t(),s())},[e,i]);let v=()=>{try{let e=null;r.litellm_params?.auto_router_config&&(e="string"==typeof r.litellm_params.auto_router_config?JSON.parse(r.litellm_params.auto_router_config):r.litellm_params.auto_router_config),b(e),n.setFieldsValue({auto_router_name:r.model_name,auto_router_default_model:r.litellm_params?.auto_router_default_model||"",auto_router_embedding_model:r.litellm_params?.auto_router_embedding_model||"",model_access_group:r.model_info?.access_groups||[]});let t=new Set(h.map(e=>e.model_group));f(!t.has(r.litellm_params?.auto_router_default_model)),_(!t.has(r.litellm_params?.auto_router_embedding_model))}catch(e){console.error("Error parsing auto router config:",e),D.default.fromBackend("Error loading auto router configuration")}},N=async()=>{try{c(!0);let e=await n.validateFields(),t={...r.litellm_params,auto_router_config:JSON.stringify(y),auto_router_default_model:e.auto_router_default_model,auto_router_embedding_model:e.auto_router_embedding_model||void 0},o={...r.model_info,access_groups:e.model_access_group||[]},d={model_name:e.auto_router_name,litellm_params:t,model_info:o};await (0,l.modelPatchUpdateCall)(i,d,r.model_info.id);let m={...r,model_name:e.auto_router_name,litellm_params:t,model_info:o};D.default.success("Auto router configuration updated successfully"),a(m),s()}catch(e){console.error("Error updating auto router:",e),D.default.fromBackend("Failed to update auto router configuration")}finally{c(!1)}},w=h.map(e=>({value:e.model_group,label:e.model_group}));return(0,t.jsx)(el.Modal,{title:"Edit Auto Router Configuration",open:e,onCancel:s,footer:[(0,t.jsx)(K.Button,{onClick:s,children:"Cancel"},"cancel"),(0,t.jsx)(K.Button,{loading:d,onClick:N,children:"Save Changes"},"submit")],width:1e3,destroyOnHidden:!0,children:(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)(em.Text,{className:"text-gray-600",children:"Edit the auto router configuration including routing logic, default models, and access settings."}),(0,t.jsxs)(et.Form,{form:n,layout:"vertical",className:"space-y-4",children:[(0,t.jsx)(et.Form.Item,{label:"Auto Router Name",name:"auto_router_name",rules:[{required:!0,message:"Auto router name is required"}],children:(0,t.jsx)(eR.TextInput,{placeholder:"e.g., auto_router_1, smart_routing"})}),(0,t.jsx)("div",{className:"w-full",children:(0,t.jsx)(tc,{modelInfo:h,value:y,onChange:e=>{b(e)}})}),(0,t.jsx)(et.Form.Item,{label:"Default Model",name:"auto_router_default_model",rules:[{required:!0,message:"Default model is required"}],children:(0,t.jsx)(W.Select,{placeholder:"Select a default model",onChange:e=>{f("custom"===e)},options:[...w,{value:"custom",label:"Enter custom model name"}],showSearch:!0})}),(0,t.jsx)(et.Form.Item,{label:"Embedding Model",name:"auto_router_embedding_model",children:(0,t.jsx)(W.Select,{placeholder:"Select an embedding model (optional)",onChange:e=>{_("custom"===e)},options:[...w,{value:"custom",label:"Enter custom model name"}],showSearch:!0,allowClear:!0})}),"Admin"===o&&(0,t.jsx)(et.Form.Item,{label:"Model Access Groups",name:"model_access_group",tooltip:"Control who can access this auto router",children:(0,t.jsx)(W.Select,{mode:"tags",showSearch:!0,placeholder:"Select existing groups or type to create new ones",optionFilterProp:"children",tokenSeparators:[","],options:m.map(e=>({value:e,label:e})),maxTagCount:"responsive",allowClear:!0})})]})]})})},{Title:t9,Link:le}=L.Typography,lt=({isVisible:e,onCancel:l,onAddCredential:s,existingCredential:a,setIsCredentialModalOpen:r})=>{let[i]=et.Form.useForm();return console.log(`existingCredential in add credentials tab: ${JSON.stringify(a)}`),(0,t.jsx)(el.Modal,{title:"Reuse Credentials",open:e,onCancel:()=>{l(),i.resetFields()},footer:null,width:600,children:(0,t.jsxs)(et.Form,{form:i,onFinish:e=>{s(e),i.resetFields(),r(!1)},layout:"vertical",children:[(0,t.jsx)(et.Form.Item,{label:"Credential Name:",name:"credential_name",rules:[{required:!0,message:"Credential name is required"}],initialValue:a?.credential_name,children:(0,t.jsx)(eR.TextInput,{placeholder:"Enter a friendly name for these credentials"})}),Object.entries(a?.credential_values||{}).map(([e,l])=>(0,t.jsx)(et.Form.Item,{label:e,name:e,initialValue:l,children:(0,t.jsx)(eR.TextInput,{placeholder:`Enter ${e}`,disabled:!0})},e)),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)(E.Tooltip,{title:"Get help on our github",children:(0,t.jsx)(le,{href:"https://github.com/BerriAI/litellm/issues",children:"Need Help?"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(K.Button,{onClick:()=>{l(),i.resetFields()},style:{marginRight:10},children:"Cancel"}),(0,t.jsx)(K.Button,{htmlType:"submit",children:"Reuse Credentials"})]})]})]})})};function ll({modelId:e,onClose:s,accessToken:a,userID:r,userRole:i,onModelUpdate:o,modelAccessGroups:c}){let m,[u]=et.Form.useForm(),[h,p]=(0,x.useState)(null),[g,f]=(0,x.useState)(!1),[j,_]=(0,x.useState)(!1),[y,b]=(0,x.useState)(!1),[v,N]=(0,x.useState)(!1),[C,k]=(0,x.useState)(!1),[F,I]=(0,x.useState)(!1),[M,P]=(0,x.useState)(null),[A,L]=(0,x.useState)(!1),[R,O]=(0,x.useState)({}),[B,z]=(0,x.useState)(!1),[H,$]=(0,x.useState)([]),[J,Q]=(0,x.useState)({}),[Y,X]=(0,x.useState)([]),{data:Z,isLoading:ee}=(0,d.useModelsInfo)(1,50,void 0,e),{data:es}=(0,n.useModelCostMap)(),{data:ea}=(0,d.useModelHub)(),er=e=>null!=es&&"object"==typeof es&&e in es?es[e].litellm_provider:"openai",eo=(0,x.useMemo)(()=>Z?.data&&0!==Z.data.length&&ei(Z,er).data[0]||null,[Z,es]),en=("Admin"===i||eo?.model_info?.created_by===r)&&eo?.model_info?.db_model,ed="Admin"===i,ec=eo?.litellm_params?.auto_router_config!=null,eh=eo?.litellm_params?.litellm_credential_name!=null&&eo?.litellm_params?.litellm_credential_name!=void 0;(0,x.useEffect)(()=>{if(eo&&!h){let e=eo;e.litellm_model_name||(e={...e,litellm_model_name:e?.litellm_params?.litellm_model_name??e?.litellm_params?.model??e?.model_info?.key??null}),p(e),e?.litellm_params?.cache_control_injection_points&&L(!0)}},[eo,h]),(0,x.useEffect)(()=>{let t=async()=>{if(!a||eo)return;let t=(await (0,l.modelInfoV1Call)(a,e)).data[0];t&&!t.litellm_model_name&&(t={...t,litellm_model_name:t?.litellm_params?.litellm_model_name??t?.litellm_params?.model??t?.model_info?.key??null}),p(t),t?.litellm_params?.cache_control_injection_points&&L(!0)},s=async()=>{if(a)try{let e=(await (0,l.getGuardrailsList)(a)).guardrails.map(e=>e.guardrail_name);$(e)}catch(e){console.error("Failed to fetch guardrails:",e)}},r=async()=>{if(a)try{let e=await (0,l.tagListCall)(a);Q(e)}catch(e){console.error("Failed to fetch tags:",e)}},i=async()=>{if(a)try{let e=await (0,l.credentialListCall)(a);X(e.credentials||[])}catch(e){console.error("Failed to fetch credentials:",e)}};(async()=>{if(!a||eh)return;let t=await (0,l.credentialGetCall)(a,null,e);P({credential_name:t.credential_name,credential_values:t.credential_values,credential_info:t.credential_info})})(),t(),s(),r(),i()},[a,e]);let ex=async t=>{if(!a)return;let s={credential_name:t.credential_name,model_id:e,credential_info:{custom_llm_provider:h.litellm_params?.custom_llm_provider}};D.default.info("Storing credential.."),await (0,l.credentialCreateCall)(a,s),D.default.success("Credential stored successfully")},ep=async t=>{try{let s;if(!a)return;k(!0);let r={};try{r=t.litellm_extra_params?JSON.parse(t.litellm_extra_params):{},delete r.litellm_credential_name}catch(e){D.default.fromBackend("Invalid JSON in LiteLLM Params"),k(!1);return}let i={...t.litellm_params,...r,model:t.litellm_model_name,api_base:t.api_base,custom_llm_provider:t.custom_llm_provider,organization:t.organization,tpm:t.tpm,rpm:t.rpm,max_retries:t.max_retries,timeout:t.timeout,stream_timeout:t.stream_timeout,tags:t.tags};u.isFieldTouched("input_cost")&&void 0!==t.input_cost&&null!==t.input_cost&&(i.input_cost_per_token=Number(t.input_cost)/1e6),u.isFieldTouched("output_cost")&&void 0!==t.output_cost&&null!==t.output_cost&&(i.output_cost_per_token=Number(t.output_cost)/1e6),t.litellm_credential_name?i.litellm_credential_name=t.litellm_credential_name:delete i.litellm_credential_name,t.guardrails&&(i.guardrails=t.guardrails),t.vector_store_ids?.length>0?i.vector_store_ids=t.vector_store_ids:void 0!==t.vector_store_ids?i.vector_store_ids=[]:delete i.vector_store_ids,t.cache_control&&t.cache_control_injection_points?.length>0?i.cache_control_injection_points=t.cache_control_injection_points:delete i.cache_control_injection_points;try{s=t.model_info?JSON.parse(t.model_info):eo.model_info,t.model_access_group&&(s={...s,access_groups:t.model_access_group}),void 0!==t.health_check_model&&(s={...s,health_check_model:t.health_check_model})}catch(e){D.default.fromBackend("Invalid JSON in Model Info");return}let n={model_name:t.model_name,litellm_params:i,model_info:s};await (0,l.modelPatchUpdateCall)(a,n,e);let d={...h,model_name:t.model_name,litellm_model_name:t.litellm_model_name,litellm_params:i,model_info:s};p(d),o&&o(d),D.default.success("Model settings updated successfully"),N(!1),I(!1)}catch(e){console.error("Error updating model:",e),D.default.fromBackend("Failed to update model settings")}finally{k(!1)}};if(ee)return(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsx)(T.Button,{icon:t4.ArrowLeftIcon,variant:"light",onClick:s,className:"mb-4",children:"Back to Models"}),(0,t.jsx)(em.Text,{children:"Loading..."})]});if(!eo)return(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsx)(T.Button,{icon:t4.ArrowLeftIcon,variant:"light",onClick:s,className:"mb-4",children:"Back to Models"}),(0,t.jsx)(em.Text,{children:"Model not found"})]});let eg=async()=>{if(a)try{D.default.info("Testing connection...");let e=await (0,l.testConnectionRequest)(a,{custom_llm_provider:h.litellm_params.custom_llm_provider,litellm_credential_name:h.litellm_params.litellm_credential_name,model:h.litellm_model_name},{id:h.model_info?.id,mode:h.model_info?.mode},h.model_info?.mode);if("success"===e.status)D.default.success("Connection test successful!");else throw Error(e?.result?.error||e?.message||"Unknown error")}catch(e){e instanceof Error?D.default.error("Error testing connection: "+(0,tA.truncateString)(e.message,100)):D.default.error("Error testing connection: "+String(e))}},ef=async()=>{try{if(_(!0),!a)return;await (0,l.modelDeleteCall)(a,e),D.default.success("Model deleted successfully"),o&&o({deleted:!0,model_info:{id:e}}),s()}catch(e){console.error("Error deleting the model:",e),D.default.fromBackend("Failed to delete model")}finally{_(!1),f(!1)}},ej=async(e,t)=>{await (0,t8.copyToClipboard)(e)&&(O(e=>({...e,[t]:!0})),setTimeout(()=>{O(e=>({...e,[t]:!1}))},2e3))},e_=eo.litellm_model_name.includes("*");return(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(T.Button,{icon:t4.ArrowLeftIcon,variant:"light",onClick:s,className:"mb-4",children:"Back to Models"}),(0,t.jsxs)(eu.Title,{children:["Public Model Name: ",q(eo)]}),(0,t.jsxs)("div",{className:"flex items-center cursor-pointer",children:[(0,t.jsx)(em.Text,{className:"text-gray-500 font-mono",children:eo.model_info.id}),(0,t.jsx)(K.Button,{type:"text",size:"small",icon:R["model-id"]?(0,t.jsx)(t6.CheckIcon,{size:12}):(0,t.jsx)(t3.CopyIcon,{size:12}),onClick:()=>ej(eo.model_info.id,"model-id"),className:`left-2 z-10 transition-all duration-200 ${R["model-id"]?"text-green-600 bg-green-50 border-green-200":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"}`})]})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(T.Button,{variant:"secondary",icon:e0.RefreshIcon,onClick:eg,className:"flex items-center gap-2","data-testid":"test-connection-button",children:"Test Connection"}),(0,t.jsx)(T.Button,{icon:t5,variant:"secondary",onClick:()=>b(!0),className:"flex items-center",disabled:!ed,"data-testid":"reuse-credentials-button",children:"Re-use Credentials"}),(0,t.jsx)(T.Button,{icon:S.TrashIcon,variant:"secondary",onClick:()=>f(!0),className:"flex items-center text-red-500 border-red-500 hover:text-red-700",disabled:!en,"data-testid":"delete-model-button",children:"Delete Model"})]})]}),(0,t.jsxs)(e4.TabGroup,{children:[(0,t.jsxs)(e5.TabList,{className:"mb-6",children:[(0,t.jsx)(e2.Tab,{children:"Overview"}),(0,t.jsx)(e2.Tab,{children:"Raw JSON"})]}),(0,t.jsxs)(e6.TabPanels,{children:[(0,t.jsxs)(U.TabPanel,{children:[(0,t.jsxs)(G.Grid,{numItems:1,numItemsSm:2,numItemsLg:3,className:"gap-6 mb-6",children:[(0,t.jsxs)(eL.Card,{children:[(0,t.jsx)(em.Text,{children:"Provider"}),(0,t.jsxs)("div",{className:"mt-2 flex items-center space-x-2",children:[eo.provider&&(0,t.jsx)("img",{src:(0,eM.getProviderLogoAndName)(eo.provider).logo,alt:`${eo.provider} logo`,className:"w-4 h-4",onError:e=>{let t=e.currentTarget,l=t.parentElement;if(l&&l.contains(t))try{let e=document.createElement("div");e.className="w-4 h-4 rounded-full bg-gray-200 flex items-center justify-center text-xs",e.textContent=eo.provider?.charAt(0)||"-",l.replaceChild(e,t)}catch(e){console.error("Failed to replace provider logo fallback:",e)}}}),(0,t.jsx)(eu.Title,{children:eo.provider||"Not Set"})]})]}),(0,t.jsxs)(eL.Card,{children:[(0,t.jsx)(em.Text,{children:"LiteLLM Model"}),(0,t.jsx)("div",{className:"mt-2 overflow-hidden",children:(0,t.jsx)(E.Tooltip,{title:eo.litellm_model_name||"Not Set",children:(0,t.jsx)("div",{className:"break-all text-sm font-medium leading-relaxed cursor-pointer",children:eo.litellm_model_name||"Not Set"})})})]}),(0,t.jsxs)(eL.Card,{children:[(0,t.jsx)(em.Text,{children:"Pricing"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(em.Text,{children:["Input: $",eo.input_cost,"/1M tokens"]}),(0,t.jsxs)(em.Text,{children:["Output: $",eo.output_cost,"/1M tokens"]})]})]})]}),(0,t.jsxs)("div",{className:"mb-6 text-sm text-gray-500 flex items-center gap-x-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-x-2",children:[(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),"Created At"," ",eo.model_info.created_at?new Date(eo.model_info.created_at).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"}):"Not Set"]}),(0,t.jsxs)("div",{className:"flex items-center gap-x-2",children:[(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})}),"Created By ",eo.model_info.created_by||"Not Set"]})]}),(0,t.jsxs)(eL.Card,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(eu.Title,{children:"Model Settings"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[ec&&en&&!F&&(0,t.jsx)(T.Button,{onClick:()=>z(!0),className:"flex items-center",children:"Edit Auto Router"}),en?!F&&(0,t.jsx)(T.Button,{onClick:()=>I(!0),className:"flex items-center",children:"Edit Settings"}):(0,t.jsx)(E.Tooltip,{title:"Only DB models can be edited. You must be an admin or the creator of the model to edit it.",children:(0,t.jsx)(w.InfoCircleOutlined,{})})]})]}),h?(0,t.jsx)(et.Form,{form:u,onFinish:ep,initialValues:{model_name:h.model_name,litellm_model_name:h.litellm_model_name,api_base:h.litellm_params.api_base,custom_llm_provider:h.litellm_params.custom_llm_provider,organization:h.litellm_params.organization,tpm:h.litellm_params.tpm,rpm:h.litellm_params.rpm,max_retries:h.litellm_params.max_retries,timeout:h.litellm_params.timeout,stream_timeout:h.litellm_params.stream_timeout,input_cost:h.litellm_params.input_cost_per_token?1e6*h.litellm_params.input_cost_per_token:h.model_info?.input_cost_per_token*1e6||null,output_cost:h.litellm_params?.output_cost_per_token?1e6*h.litellm_params.output_cost_per_token:h.model_info?.output_cost_per_token*1e6||null,cache_control:!!h.litellm_params?.cache_control_injection_points,cache_control_injection_points:h.litellm_params?.cache_control_injection_points||[],model_access_group:Array.isArray(h.model_info?.access_groups)?h.model_info.access_groups:[],guardrails:Array.isArray(h.litellm_params?.guardrails)?h.litellm_params.guardrails:[],vector_store_ids:Array.isArray(h.litellm_params?.vector_store_ids)&&h.litellm_params.vector_store_ids.length>0?h.litellm_params.vector_store_ids:void 0,tags:Array.isArray(h.litellm_params?.tags)?h.litellm_params.tags:[],health_check_model:e_?h.model_info?.health_check_model:null,litellm_credential_name:h.litellm_params?.litellm_credential_name||"",litellm_extra_params:JSON.stringify(Object.fromEntries(Object.entries(h.litellm_params||{}).filter(([e])=>"litellm_credential_name"!==e)),null,2)},layout:"vertical",onValuesChange:()=>N(!0),children:(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Model Name"}),F?(0,t.jsx)(et.Form.Item,{name:"model_name",className:"mb-0",children:(0,t.jsx)(eR.TextInput,{placeholder:"Enter model name"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.model_name})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"LiteLLM Model Name"}),F?(0,t.jsx)(et.Form.Item,{name:"litellm_model_name",className:"mb-0",children:(0,t.jsx)(eR.TextInput,{placeholder:"Enter LiteLLM model name"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_model_name})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Input Cost (per 1M tokens)"}),F?(0,t.jsx)(et.Form.Item,{name:"input_cost",className:"mb-0",children:(0,t.jsx)(tF.default,{placeholder:"Enter input cost"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h?.litellm_params?.input_cost_per_token?(h.litellm_params?.input_cost_per_token*1e6).toFixed(4):h?.model_info?.input_cost_per_token?(1e6*h.model_info.input_cost_per_token).toFixed(4):"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Output Cost (per 1M tokens)"}),F?(0,t.jsx)(et.Form.Item,{name:"output_cost",className:"mb-0",children:(0,t.jsx)(tF.default,{placeholder:"Enter output cost"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h?.litellm_params?.output_cost_per_token?(1e6*h.litellm_params.output_cost_per_token).toFixed(4):h?.model_info?.output_cost_per_token?(1e6*h.model_info.output_cost_per_token).toFixed(4):"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"API Base"}),F?(0,t.jsx)(et.Form.Item,{name:"api_base",className:"mb-0",children:(0,t.jsx)(eR.TextInput,{placeholder:"Enter API base"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.api_base||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Custom LLM Provider"}),F?(0,t.jsx)(et.Form.Item,{name:"custom_llm_provider",className:"mb-0",children:(0,t.jsx)(eR.TextInput,{placeholder:"Enter custom LLM provider"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.custom_llm_provider||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Organization"}),F?(0,t.jsx)(et.Form.Item,{name:"organization",className:"mb-0",children:(0,t.jsx)(eR.TextInput,{placeholder:"Enter organization"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.organization||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"TPM (Tokens per Minute)"}),F?(0,t.jsx)(et.Form.Item,{name:"tpm",className:"mb-0",children:(0,t.jsx)(tF.default,{placeholder:"Enter TPM"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.tpm||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"RPM (Requests per Minute)"}),F?(0,t.jsx)(et.Form.Item,{name:"rpm",className:"mb-0",children:(0,t.jsx)(tF.default,{placeholder:"Enter RPM"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.rpm||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Max Retries"}),F?(0,t.jsx)(et.Form.Item,{name:"max_retries",className:"mb-0",children:(0,t.jsx)(tF.default,{placeholder:"Enter max retries"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.max_retries||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Timeout (seconds)"}),F?(0,t.jsx)(et.Form.Item,{name:"timeout",className:"mb-0",children:(0,t.jsx)(tF.default,{placeholder:"Enter timeout"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.timeout||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Stream Timeout (seconds)"}),F?(0,t.jsx)(et.Form.Item,{name:"stream_timeout",className:"mb-0",children:(0,t.jsx)(tF.default,{placeholder:"Enter stream timeout"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.stream_timeout||"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Model Access Groups"}),F?(0,t.jsx)(et.Form.Item,{name:"model_access_group",className:"mb-0",children:(0,t.jsx)(W.Select,{mode:"tags",showSearch:!0,placeholder:"Select existing groups or type to create new ones",optionFilterProp:"children",tokenSeparators:[","],maxTagCount:"responsive",allowClear:!0,style:{width:"100%"},options:c?.map(e=>({value:e,label:e}))})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.model_info?.access_groups?Array.isArray(h.model_info.access_groups)?h.model_info.access_groups.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:h.model_info.access_groups.map((e,l)=>(0,t.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-blue-100 text-blue-800",children:e},l))}):"No groups assigned":h.model_info.access_groups:"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(em.Text,{className:"font-medium",children:["Guardrails",(0,t.jsx)(E.Tooltip,{title:"Apply safety guardrails to this model to filter content or enforce policies",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/guardrails/quick_start",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(w.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),F?(0,t.jsx)(et.Form.Item,{name:"guardrails",className:"mb-0",children:(0,t.jsx)(W.Select,{mode:"tags",showSearch:!0,placeholder:"Select existing guardrails or type to create new ones",optionFilterProp:"children",tokenSeparators:[","],maxTagCount:"responsive",allowClear:!0,style:{width:"100%"},options:H.map(e=>({value:e,label:e}))})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.guardrails?Array.isArray(h.litellm_params.guardrails)?h.litellm_params.guardrails.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:h.litellm_params.guardrails.map((e,l)=>(0,t.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-green-100 text-green-800",children:e},l))}):"No guardrails assigned":h.litellm_params.guardrails:"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(em.Text,{className:"font-medium",children:["Attached Knowledge Bases (RAG)",(0,t.jsx)(E.Tooltip,{title:"Vector stores used for RAG. Every request to this model will automatically retrieve context from these knowledge bases.",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/completion/knowledgebase",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(w.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),F?(0,t.jsx)(et.Form.Item,{name:"vector_store_ids",className:"mb-0",children:(0,t.jsx)(tP.default,{onChange:()=>{},accessToken:a||"",placeholder:"Select knowledge bases (optional)"})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.vector_store_ids?Array.isArray(h.litellm_params.vector_store_ids)?h.litellm_params.vector_store_ids.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:h.litellm_params.vector_store_ids.map((e,l)=>(0,t.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-blue-100 text-blue-800",children:e},l))}):"No knowledge bases attached":String(h.litellm_params.vector_store_ids):"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Tags"}),F?(0,t.jsx)(et.Form.Item,{name:"tags",className:"mb-0",children:(0,t.jsx)(W.Select,{mode:"tags",showSearch:!0,placeholder:"Select existing tags or type to create new ones",optionFilterProp:"children",tokenSeparators:[","],maxTagCount:"responsive",allowClear:!0,style:{width:"100%"},options:Object.values(J).map(e=>({value:e.name,label:e.name,title:e.description||e.name}))})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.tags?Array.isArray(h.litellm_params.tags)?h.litellm_params.tags.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:h.litellm_params.tags.map((e,l)=>(0,t.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-purple-100 text-purple-800",children:e},l))}):"No tags assigned":h.litellm_params.tags:"Not Set"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Existing Credentials"}),F?(0,t.jsx)(et.Form.Item,{name:"litellm_credential_name",className:"mb-0",children:(0,t.jsx)(W.Select,{showSearch:!0,placeholder:"Select or search for existing credentials",optionFilterProp:"children",filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase()),options:[{value:"",label:"None"},...Y.map(e=>({value:e.credential_name,label:e.credential_name}))],allowClear:!0})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.litellm_credential_name||"Manual"})]}),e_&&(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Health Check Model"}),F?(0,t.jsx)(et.Form.Item,{name:"health_check_model",className:"mb-0",children:(0,t.jsx)(W.Select,{showSearch:!0,placeholder:"Select existing health check model",optionFilterProp:"children",allowClear:!0,options:(m=eo.litellm_model_name.split("/")[0],ea?.data?.filter(e=>e.providers?.includes(m)&&e.model_group!==eo.litellm_model_name).map(e=>({value:e.model_group,label:e.model_group}))||[])})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.model_info?.health_check_model||"Not Set"})]}),F?(0,t.jsx)(tM,{form:u,showCacheControl:A,onCacheControlChange:e=>L(e)}):(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Cache Control"}),(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:h.litellm_params?.cache_control_injection_points?(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{children:"Enabled"}),(0,t.jsx)("div",{className:"mt-2",children:h.litellm_params.cache_control_injection_points.map((e,l)=>(0,t.jsxs)("div",{className:"text-sm text-gray-600 mb-1",children:["Location: ",e.location,",",e.role&&(0,t.jsxs)("span",{children:[" Role: ",e.role]}),void 0!==e.index&&(0,t.jsxs)("span",{children:[" Index: ",e.index]})]},l))})]}):"Disabled"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Model Info"}),F?(0,t.jsx)(et.Form.Item,{name:"model_info",className:"mb-0",children:(0,t.jsx)(eV.Input.TextArea,{rows:4,placeholder:'{"gpt-4": 100, "claude-v1": 200}',defaultValue:JSON.stringify(eo.model_info,null,2)})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:(0,t.jsx)("pre",{className:"bg-gray-100 p-2 rounded text-xs overflow-auto mt-1",children:JSON.stringify(h.model_info,null,2)})})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(em.Text,{className:"font-medium",children:["LiteLLM Params",(0,t.jsx)(E.Tooltip,{title:"Optional litellm params used for making a litellm.completion() call. Some params are automatically added by LiteLLM.",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/completion/input",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(w.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),F?(0,t.jsx)(et.Form.Item,{name:"litellm_extra_params",rules:[{validator:tA.formItemValidateJSON}],children:(0,t.jsx)(eV.Input.TextArea,{rows:4,placeholder:'{ "rpm": 100, "timeout": 0, "stream_timeout": 0 }'})}):(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:(0,t.jsx)("pre",{className:"bg-gray-100 p-2 rounded text-xs overflow-auto mt-1",children:JSON.stringify(h.litellm_params,null,2)})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Team ID"}),(0,t.jsx)("div",{className:"mt-1 p-2 bg-gray-50 rounded",children:eo.model_info.team_id||"Not Set"})]})]}),F&&(0,t.jsxs)("div",{className:"mt-6 flex justify-end gap-2",children:[(0,t.jsx)(T.Button,{variant:"secondary",onClick:()=>{u.resetFields(),N(!1),I(!1)},disabled:C,children:"Cancel"}),(0,t.jsx)(T.Button,{variant:"primary",onClick:()=>u.submit(),loading:C,children:"Save Changes"})]})]})}):(0,t.jsx)(em.Text,{children:"Loading..."})]})]}),(0,t.jsx)(U.TabPanel,{children:(0,t.jsx)(eL.Card,{children:(0,t.jsx)("pre",{className:"bg-gray-100 p-4 rounded text-xs overflow-auto",children:JSON.stringify(eo,null,2)})})})]})]}),(0,t.jsx)(V.default,{isOpen:g,title:"Delete Model",alertMessage:"This action cannot be undone.",message:"Are you sure you want to delete this model?",resourceInformationTitle:"Model Information",resourceInformation:[{label:"Model Name",value:eo?.model_name||"Not Set"},{label:"LiteLLM Model Name",value:eo?.litellm_model_name||"Not Set"},{label:"Provider",value:eo?.provider||"Not Set"},{label:"Created By",value:eo?.model_info?.created_by||"Not Set"}],onCancel:()=>f(!1),onOk:ef,confirmLoading:j}),y&&!eh?(0,t.jsx)(lt,{isVisible:y,onCancel:()=>b(!1),onAddCredential:ex,existingCredential:M,setIsCredentialModalOpen:b}):(0,t.jsx)(el.Modal,{open:y,onCancel:()=>b(!1),title:"Using Existing Credential",children:(0,t.jsx)(em.Text,{children:eo.litellm_params.litellm_credential_name})}),(0,t.jsx)(t7,{isVisible:B,onCancel:()=>z(!1),onSuccess:e=>{p(e),o&&o(e)},modelData:h||eo,accessToken:a||"",userRole:i||""})]})}var ls=e.i(37091),la=e.i(218129);let lr=({value:e={},onChange:l})=>{let[s,a]=(0,x.useState)(Object.entries(e)),r=(e,t,r)=>{let i=[...s];i[e]=[t,r],a(i),l?.(Object.fromEntries(i))};return(0,t.jsxs)("div",{children:[s.map(([e,i],o)=>(0,t.jsxs)(A.Space,{style:{display:"flex",marginBottom:8},align:"center",children:[(0,t.jsx)(eR.TextInput,{placeholder:"Header Name",value:e,onChange:e=>r(o,e.target.value,i)}),(0,t.jsx)(eR.TextInput,{placeholder:"Header Value",value:i,onChange:t=>r(o,e,t.target.value)}),(0,t.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,t.jsx)(tT.MinusCircleOutlined,{onClick:()=>{let e;a(e=s.filter((e,t)=>t!==o)),l?.(Object.fromEntries(e))},style:{cursor:"pointer"}})})]},o)),(0,t.jsx)(K.Button,{type:"dashed",onClick:()=>{a([...s,["",""]])},icon:(0,t.jsx)(tr.PlusOutlined,{}),children:"Add Header"})]})},li=({value:e={},onChange:l})=>{let[s,a]=(0,x.useState)(Object.entries(e)),r=(e,t,r)=>{let i=[...s];i[e]=[t,r],a(i),l?.(Object.fromEntries(i))};return(0,t.jsxs)("div",{children:[s.map(([e,i],o)=>(0,t.jsxs)(A.Space,{style:{display:"flex",marginBottom:8},align:"center",children:[(0,t.jsx)(eR.TextInput,{placeholder:"Parameter Name (e.g., version)",value:e,onChange:e=>r(o,e.target.value,i)}),(0,t.jsx)(eR.TextInput,{placeholder:"Parameter Value (e.g., v1)",value:i,onChange:t=>r(o,e,t.target.value)}),(0,t.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,t.jsx)(tT.MinusCircleOutlined,{onClick:()=>{let e;a(e=s.filter((e,t)=>t!==o)),l?.(Object.fromEntries(e))},style:{cursor:"pointer"}})})]},o)),(0,t.jsx)(K.Button,{type:"dashed",onClick:()=>{a([...s,["",""]])},icon:(0,t.jsx)(tr.PlusOutlined,{}),children:"Add Query Parameter"})]})};var lo=e.i(240647);let{Title:ln,Text:ld}=L.Typography,lc=({pathValue:e,targetValue:s,includeSubpath:a})=>{let r=(0,l.getProxyBaseUrl)();return e&&s?(0,t.jsxs)(ej.Card,{className:"p-5",children:[(0,t.jsx)(ln,{level:5,className:"text-lg font-semibold text-gray-900 mb-2",children:"Route Preview"}),(0,t.jsx)(ld,{type:"secondary",className:"text-gray-600 mb-5",style:{display:"block"},children:"How your requests will be routed"}),(0,t.jsxs)("div",{className:"space-y-5",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-base font-semibold text-gray-900 mb-3",children:"Basic routing:"}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsxs)("div",{className:"flex-1 bg-gray-50 border border-gray-200 rounded-lg p-3",children:[(0,t.jsx)("div",{className:"text-sm text-gray-600 mb-2",children:"Your endpoint"}),(0,t.jsx)("code",{className:"font-mono text-sm text-gray-900",children:e?`${r}${e}`:""})]}),(0,t.jsx)("div",{className:"text-gray-400",children:(0,t.jsx)(lo.RightOutlined,{className:"text-lg"})}),(0,t.jsxs)("div",{className:"flex-1 bg-gray-50 border border-gray-200 rounded-lg p-3",children:[(0,t.jsx)("div",{className:"text-sm text-gray-600 mb-2",children:"Forwards to"}),(0,t.jsx)("code",{className:"font-mono text-sm text-gray-900",children:s})]})]})]}),a&&(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-base font-semibold text-gray-900 mb-3",children:"With subpaths:"}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsxs)("div",{className:"flex-1 bg-gray-50 border border-gray-200 rounded-lg p-3",children:[(0,t.jsx)("div",{className:"text-sm text-gray-600 mb-2",children:"Your endpoint + subpath"}),(0,t.jsxs)("code",{className:"font-mono text-sm text-gray-900",children:[e&&`${r}${e}`,(0,t.jsx)("span",{className:"text-blue-600",children:"/v1/text-to-image/base/model"})]})]}),(0,t.jsx)("div",{className:"text-gray-400",children:(0,t.jsx)(lo.RightOutlined,{className:"text-lg"})}),(0,t.jsxs)("div",{className:"flex-1 bg-gray-50 border border-gray-200 rounded-lg p-3",children:[(0,t.jsx)("div",{className:"text-sm text-gray-600 mb-2",children:"Forwards to"}),(0,t.jsxs)("code",{className:"font-mono text-sm text-gray-900",children:[s,(0,t.jsx)("span",{className:"text-blue-600",children:"/v1/text-to-image/base/model"})]})]})]}),(0,t.jsxs)("div",{className:"mt-3 text-sm text-gray-600",children:["Any path after ",e," will be appended to the target URL"]})]})}),!a&&(0,t.jsx)("div",{className:"mt-4 p-3 bg-blue-50 rounded-md border border-blue-200",children:(0,t.jsxs)("div",{className:"flex items-start",children:[(0,t.jsx)(w.InfoCircleOutlined,{className:"text-blue-500 mt-0.5 mr-2 flex-shrink-0"}),(0,t.jsxs)("div",{className:"text-sm text-blue-700",children:[(0,t.jsx)("span",{className:"font-medium",children:"Not seeing the routing you wanted?"})," Try enabling - Include Subpaths - above - this allows subroutes like"," ",(0,t.jsx)("code",{className:"bg-blue-100 px-1 py-0.5 rounded font-mono text-xs",children:"/api/v1/models"})," to be forwarded automatically."]})]})})]})]}):null},lm=({premiumUser:e,authEnabled:l,onAuthChange:s})=>(0,t.jsxs)(eL.Card,{className:"p-6",children:[(0,t.jsx)(eu.Title,{className:"text-lg font-semibold text-gray-900 mb-2",children:"Security"}),(0,t.jsx)(ls.Subtitle,{className:"text-gray-600 mb-4",children:"When enabled, requests to this endpoint will require a valid LiteLLM Virtual Key"}),e?(0,t.jsx)(et.Form.Item,{name:"auth",valuePropName:"checked",className:"mb-0",children:(0,t.jsx)(es.Switch,{checked:l,onChange:e=>{s(e)}})}):(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center mb-3",children:[(0,t.jsx)(es.Switch,{disabled:!0,checked:!1,style:{outline:"2px solid #d1d5db",outlineOffset:"2px"}}),(0,t.jsx)("span",{className:"ml-2 text-sm text-gray-400",children:"Authentication (Premium)"})]}),(0,t.jsx)("div",{className:"p-3 bg-yellow-50 border border-yellow-200 rounded-lg",children:(0,t.jsxs)(em.Text,{className:"text-sm text-yellow-800",children:["Setting authentication for pass-through endpoints is a LiteLLM Enterprise feature. Get a trial key"," ",(0,t.jsx)("a",{href:"https://www.litellm.ai/#pricing",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"here"}),"."]})})]})]});var lu=e.i(891547);let lh=({accessToken:e,value:l={},onChange:s,disabled:a=!1})=>{let[r,i]=(0,x.useState)(Object.keys(l)),[o,n]=(0,x.useState)(l);(0,x.useEffect)(()=>{n(l),i(Object.keys(l))},[l]);let d=(e,t,l)=>{let a=o[e]||{},r={...o,[e]:{...a,[t]:l.length>0?l:void 0}};r[e]?.request_fields||r[e]?.response_fields||(r[e]=null),n(r),s&&s(r)};return(0,t.jsxs)(eL.Card,{className:"p-6",children:[(0,t.jsx)(eu.Title,{className:"text-lg font-semibold text-gray-900 mb-2",children:"Guardrails"}),(0,t.jsx)(ls.Subtitle,{className:"text-gray-600 mb-6",children:"Configure guardrails to enforce policies on requests and responses. Guardrails are opt-in for passthrough endpoints."}),(0,t.jsx)(tv.Alert,{message:(0,t.jsxs)("span",{children:["Field-Level Targeting"," ",(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/pass_through_guardrails#field-level-targeting",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 underline",children:"(Learn More)"})]}),description:(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("div",{children:"Optionally specify which fields to check. If left empty, the entire request/response is sent to the guardrail."}),(0,t.jsxs)("div",{className:"text-xs space-y-1 mt-2",children:[(0,t.jsx)("div",{className:"font-medium",children:"Common Examples:"}),(0,t.jsxs)("div",{children:["• ",(0,t.jsx)("code",{className:"bg-gray-100 px-1 rounded",children:"query"})," - Single field"]}),(0,t.jsxs)("div",{children:["• ",(0,t.jsx)("code",{className:"bg-gray-100 px-1 rounded",children:"documents[*].text"})," - All text in documents array"]}),(0,t.jsxs)("div",{children:["• ",(0,t.jsx)("code",{className:"bg-gray-100 px-1 rounded",children:"messages[*].content"})," - All message contents"]})]})]}),type:"info",showIcon:!0,className:"mb-4"}),(0,t.jsx)(et.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Select Guardrails",(0,t.jsx)(E.Tooltip,{title:"Choose which guardrails should run on this endpoint. Org/team/key level guardrails will also be included.",children:(0,t.jsx)(w.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),children:(0,t.jsx)(lu.default,{accessToken:e,value:r,onChange:e=>{i(e);let t={};e.forEach(e=>{t[e]=o[e]||null}),n(t),s&&s(t)},disabled:a})}),r.length>0&&(0,t.jsxs)("div",{className:"mt-6 space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-gray-700",children:"Field Targeting (Optional)"}),(0,t.jsx)("div",{className:"text-xs text-gray-500",children:"💡 Tip: Leave empty to check entire payload"})]}),r.map(e=>(0,t.jsxs)(eL.Card,{className:"p-4 bg-gray-50",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-gray-900 mb-3",children:e}),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,t.jsxs)("label",{className:"text-xs text-gray-600 flex items-center",children:["Request Fields (pre_call)",(0,t.jsx)(E.Tooltip,{title:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"font-medium mb-1",children:"Specify which request fields to check"}),(0,t.jsxs)("div",{className:"text-xs space-y-1",children:[(0,t.jsx)("div",{children:"Examples:"}),(0,t.jsx)("div",{children:"• query"}),(0,t.jsx)("div",{children:"• documents[*].text"}),(0,t.jsx)("div",{children:"• messages[*].content"})]})]}),children:(0,t.jsx)(w.InfoCircleOutlined,{className:"ml-1 text-gray-400"})})]}),(0,t.jsxs)("div",{className:"flex gap-1",children:[(0,t.jsx)("button",{type:"button",onClick:()=>{let t=o[e]?.request_fields||[];d(e,"request_fields",[...t,"query"])},className:"text-xs px-2 py-1 bg-white border border-gray-300 rounded hover:bg-gray-50",disabled:a,children:"+ query"}),(0,t.jsx)("button",{type:"button",onClick:()=>{let t=o[e]?.request_fields||[];d(e,"request_fields",[...t,"documents[*]"])},className:"text-xs px-2 py-1 bg-white border border-gray-300 rounded hover:bg-gray-50",disabled:a,children:"+ documents[*]"})]})]}),(0,t.jsx)(W.Select,{mode:"tags",style:{width:"100%"},placeholder:"Type field name or use + buttons above (e.g., query, documents[*].text)",value:o[e]?.request_fields||[],onChange:t=>d(e,"request_fields",t),disabled:a,tokenSeparators:[","]})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,t.jsxs)("label",{className:"text-xs text-gray-600 flex items-center",children:["Response Fields (post_call)",(0,t.jsx)(E.Tooltip,{title:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"font-medium mb-1",children:"Specify which response fields to check"}),(0,t.jsxs)("div",{className:"text-xs space-y-1",children:[(0,t.jsx)("div",{children:"Examples:"}),(0,t.jsx)("div",{children:"• results[*].text"}),(0,t.jsx)("div",{children:"• choices[*].message.content"})]})]}),children:(0,t.jsx)(w.InfoCircleOutlined,{className:"ml-1 text-gray-400"})})]}),(0,t.jsx)("div",{className:"flex gap-1",children:(0,t.jsx)("button",{type:"button",onClick:()=>{let t=o[e]?.response_fields||[];d(e,"response_fields",[...t,"results[*]"])},className:"text-xs px-2 py-1 bg-white border border-gray-300 rounded hover:bg-gray-50",disabled:a,children:"+ results[*]"})})]}),(0,t.jsx)(W.Select,{mode:"tags",style:{width:"100%"},placeholder:"Type field name or use + buttons above (e.g., results[*].text)",value:o[e]?.response_fields||[],onChange:t=>d(e,"response_fields",t),disabled:a,tokenSeparators:[","]})]})]})]},e))]})]})},{Option:lx}=W.Select,lp=["GET","POST","PUT","DELETE","PATCH"],lg=({accessToken:e,setPassThroughItems:s,passThroughItems:a,premiumUser:r=!1})=>{let[i]=et.Form.useForm(),[o,n]=(0,x.useState)(!1),[d,c]=(0,x.useState)(!1),[m,u]=(0,x.useState)(""),[h,p]=(0,x.useState)(""),[g,f]=(0,x.useState)(""),[j,_]=(0,x.useState)(!0),[y,b]=(0,x.useState)(!1),[v,N]=(0,x.useState)([]),[C,S]=(0,x.useState)({}),k=()=>{i.resetFields(),p(""),f(""),_(!0),N([]),S({}),n(!1)},F=async t=>{console.log("addPassThrough called with:",t),c(!0);try{!r&&"auth"in t&&delete t.auth,C&&Object.keys(C).length>0&&(t.guardrails=C),v&&v.length>0&&(t.methods=v),console.log(`formValues: ${JSON.stringify(t)}`);let o=(await (0,l.createPassThroughEndpoint)(e,t)).endpoints[0],d=[...a,o];s(d),D.default.success("Pass-through endpoint created successfully"),i.resetFields(),p(""),f(""),_(!0),N([]),S({}),n(!1)}catch(e){D.default.fromBackend("Error creating pass-through endpoint: "+e)}finally{c(!1)}};return(0,t.jsxs)("div",{children:[(0,t.jsx)(T.Button,{className:"mx-auto mb-4 mt-4",onClick:()=>n(!0),children:"+ Add Pass-Through Endpoint"}),(0,t.jsx)(el.Modal,{title:(0,t.jsxs)("div",{className:"flex items-center space-x-3 pb-4 border-b border-gray-100",children:[(0,t.jsx)(la.ApiOutlined,{className:"text-xl text-blue-500"}),(0,t.jsx)("h2",{className:"text-xl font-semibold text-gray-900",children:"Add Pass-Through Endpoint"})]}),open:o,width:1e3,onCancel:k,footer:null,className:"top-8",styles:{body:{padding:"24px"},header:{padding:"24px 24px 0 24px",border:"none"}},children:(0,t.jsxs)("div",{className:"mt-6",children:[(0,t.jsx)(tv.Alert,{message:"What is a Pass-Through Endpoint?",description:"Route requests from your LiteLLM proxy to any external API. Perfect for custom models, image generation APIs, or any service you want to proxy through LiteLLM.",type:"info",showIcon:!0,className:"mb-6"}),(0,t.jsxs)(et.Form,{form:i,onFinish:F,layout:"vertical",className:"space-y-6",initialValues:{include_subpath:!0,path:h,target:g},children:[(0,t.jsxs)(eL.Card,{className:"p-5",children:[(0,t.jsx)(eu.Title,{className:"text-lg font-semibold text-gray-900 mb-2",children:"Route Configuration"}),(0,t.jsx)(ls.Subtitle,{className:"text-gray-600 mb-5",children:"Configure how requests to your domain will be forwarded to the target API"}),(0,t.jsxs)("div",{className:"space-y-5",children:[(0,t.jsx)(et.Form.Item,{label:(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Path Prefix"}),name:"path",rules:[{required:!0,message:"Path is required",pattern:/^\//}],extra:(0,t.jsx)("div",{className:"text-xs text-gray-500 mt-1",children:"Example: /bria, /adobe-photoshop, /elasticsearch"}),className:"mb-4",children:(0,t.jsx)("div",{className:"flex items-center",children:(0,t.jsx)(eR.TextInput,{placeholder:"bria",value:h,onChange:e=>{var t;let l;return l=t=e.target.value,void(t&&!t.startsWith("/")&&(l="/"+t),p(l),i.setFieldsValue({path:l}))},className:"flex-1"})})}),(0,t.jsx)(et.Form.Item,{label:(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Target URL"}),name:"target",rules:[{required:!0,message:"Target URL is required"},{type:"url",message:"Please enter a valid URL"}],extra:(0,t.jsx)("div",{className:"text-xs text-gray-500 mt-1",children:"Example:https://engine.prod.bria-api.com"}),className:"mb-4",children:(0,t.jsx)(eR.TextInput,{placeholder:"https://engine.prod.bria-api.com",value:g,onChange:e=>{f(e.target.value),i.setFieldsValue({target:e.target.value})}})}),(0,t.jsx)(et.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["HTTP Methods (Optional)",(0,t.jsx)(E.Tooltip,{title:"Select specific HTTP methods. Leave empty to support all methods (GET, POST, PUT, DELETE, PATCH). Useful when the same path needs different targets for different methods.",children:(0,t.jsx)(w.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"methods",extra:(0,t.jsx)("div",{className:"text-xs text-gray-500 mt-1",children:0===v.length?"All HTTP methods supported (default)":`Only ${v.join(", ")} requests will be routed to this endpoint`}),className:"mb-4",children:(0,t.jsx)(W.Select,{mode:"multiple",placeholder:"Select methods (leave empty for all)",value:v,onChange:N,allowClear:!0,style:{width:"100%"},children:lp.map(e=>(0,t.jsx)(lx,{value:e,children:e},e))})}),(0,t.jsxs)("div",{className:"flex items-center justify-between py-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-sm font-medium text-gray-700",children:"Include Subpaths"}),(0,t.jsx)("div",{className:"text-xs text-gray-500 mt-0.5",children:"Forward all subpaths to the target API (recommended for REST APIs)"})]}),(0,t.jsx)(et.Form.Item,{name:"include_subpath",valuePropName:"checked",className:"mb-0",children:(0,t.jsx)(tb.Switch,{checked:j,onChange:_})})]})]})]}),(0,t.jsx)(lc,{pathValue:h,targetValue:g,includeSubpath:j}),(0,t.jsxs)(eL.Card,{className:"p-6",children:[(0,t.jsx)(eu.Title,{className:"text-lg font-semibold text-gray-900 mb-2",children:"Headers"}),(0,t.jsx)(ls.Subtitle,{className:"text-gray-600 mb-6",children:"Add headers that will be sent with every request to the target API"}),(0,t.jsx)(et.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Authentication Headers",(0,t.jsx)(E.Tooltip,{title:"Authentication and other headers to forward with requests",children:(0,t.jsx)(w.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"headers",rules:[{required:!0,message:"Please configure the headers"}],extra:(0,t.jsxs)("div",{className:"text-xs text-gray-500 mt-2",children:[(0,t.jsx)("div",{className:"font-medium mb-1",children:"Add authentication tokens and other required headers"}),(0,t.jsx)("div",{children:"Common examples: auth_token, Authorization, x-api-key"})]}),children:(0,t.jsx)(lr,{})})]}),(0,t.jsxs)(eL.Card,{className:"p-6",children:[(0,t.jsx)(eu.Title,{className:"text-lg font-semibold text-gray-900 mb-2",children:"Default Query Parameters"}),(0,t.jsx)(ls.Subtitle,{className:"text-gray-600 mb-6",children:"Add query parameters that will be automatically sent with every request to the target API"}),(0,t.jsx)(et.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Default Query Parameters (Optional)",(0,t.jsx)(E.Tooltip,{title:"Query parameters that will be added to all requests. Clients can override these by providing their own values.",children:(0,t.jsx)(w.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"default_query_params",extra:(0,t.jsxs)("div",{className:"text-xs text-gray-500 mt-2",children:[(0,t.jsx)("div",{className:"font-medium mb-1",children:"Parameters are sent with all GET, POST, PUT, PATCH requests"}),(0,t.jsx)("div",{children:"Client parameters override defaults. Examples: version=v1, format=json, key=default"})]}),children:(0,t.jsx)(li,{})})]}),(0,t.jsx)(lm,{premiumUser:r,authEnabled:y,onAuthChange:e=>{b(e),i.setFieldsValue({auth:e})}}),(0,t.jsx)(lh,{accessToken:e,value:C,onChange:S}),(0,t.jsxs)(eL.Card,{className:"p-6",children:[(0,t.jsx)(eu.Title,{className:"text-lg font-semibold text-gray-900 mb-2",children:"Billing"}),(0,t.jsx)(ls.Subtitle,{className:"text-gray-600 mb-6",children:"Optional cost tracking for this endpoint"}),(0,t.jsx)(et.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Cost Per Request (USD)",(0,t.jsx)(E.Tooltip,{title:"Optional: Track costs for requests to this endpoint",children:(0,t.jsx)(w.InfoCircleOutlined,{className:"ml-2 text-gray-400 hover:text-gray-600"})})]}),name:"cost_per_request",extra:(0,t.jsx)("div",{className:"text-xs text-gray-500 mt-2",children:"The cost charged for each request through this endpoint"}),children:(0,t.jsx)(tF.default,{min:0,step:.001,precision:4,placeholder:"2.0000",size:"large"})})]}),(0,t.jsxs)("div",{className:"flex items-center justify-end space-x-3 pt-6 border-t border-gray-100",children:[(0,t.jsx)(T.Button,{variant:"secondary",onClick:k,children:"Cancel"}),(0,t.jsx)(T.Button,{variant:"primary",loading:d,onClick:()=>{console.log("Submit button clicked"),i.submit()},children:d?"Creating...":"Add Pass-Through Endpoint"})]})]})]})})]})};var lf=e.i(286536),lj=e.i(77705);let l_=["GET","POST","PUT","DELETE","PATCH"],{Option:ly}=W.Select,lb=({value:e})=>{let[l,s]=(0,x.useState)(!1),a=JSON.stringify(e,null,2);return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("pre",{className:"font-mono text-xs bg-gray-50 p-2 rounded max-w-md overflow-auto",children:l?a:"••••••••"}),(0,t.jsx)("button",{onClick:()=>s(!l),className:"p-1 hover:bg-gray-100 rounded",type:"button",children:l?(0,t.jsx)(lj.EyeOff,{className:"w-4 h-4 text-gray-500"}):(0,t.jsx)(lf.Eye,{className:"w-4 h-4 text-gray-500"})})]})},lv=({endpointData:e,onClose:s,accessToken:a,isAdmin:r,premiumUser:i=!1,onEndpointUpdated:o})=>{let[n,d]=(0,x.useState)(e),[c,m]=(0,x.useState)(!1),[u,h]=(0,x.useState)(!1),[p,g]=(0,x.useState)(e?.auth||!1),[f,j]=(0,x.useState)(e?.methods||[]),[_,y]=(0,x.useState)(e?.guardrails||{}),[b]=et.Form.useForm(),v=async e=>{try{if(!a||!n?.id)return;let t={};if(e.headers)try{t="string"==typeof e.headers?JSON.parse(e.headers):e.headers}catch(e){D.default.fromBackend("Invalid JSON format for headers");return}let s={path:n.path,target:e.target,headers:t,include_subpath:e.include_subpath,cost_per_request:e.cost_per_request,auth:i?e.auth:void 0,methods:f&&f.length>0?f:void 0,guardrails:_&&Object.keys(_).length>0?_:void 0};await (0,l.updatePassThroughEndpoint)(a,n.id,s),d({...n,...s}),h(!1),o&&o()}catch(e){console.error("Error updating endpoint:",e),D.default.fromBackend("Failed to update pass through endpoint")}},N=async()=>{try{if(!a||!n?.id)return;await (0,l.deletePassThroughEndpointsCall)(a,n.id),D.default.success("Pass through endpoint deleted successfully"),s(),o&&o()}catch(e){console.error("Error deleting endpoint:",e),D.default.fromBackend("Failed to delete pass through endpoint")}};return c?(0,t.jsx)("div",{className:"p-4",children:"Loading..."}):n?(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsx)("div",{className:"flex justify-between items-center mb-6",children:(0,t.jsxs)("div",{children:[(0,t.jsx)(K.Button,{onClick:s,className:"mb-4",children:"← Back"}),(0,t.jsxs)(eu.Title,{children:["Pass Through Endpoint: ",n.path]}),(0,t.jsx)(em.Text,{className:"text-gray-500 font-mono",children:n.id})]})}),(0,t.jsxs)(e4.TabGroup,{children:[(0,t.jsxs)(e5.TabList,{className:"mb-4",children:[(0,t.jsx)(e2.Tab,{children:"Overview"},"overview"),r?(0,t.jsx)(e2.Tab,{children:"Settings"},"settings"):(0,t.jsx)(t.Fragment,{})]}),(0,t.jsxs)(e6.TabPanels,{children:[(0,t.jsxs)(U.TabPanel,{children:[(0,t.jsxs)(G.Grid,{numItems:1,numItemsSm:2,numItemsLg:3,className:"gap-6",children:[(0,t.jsxs)(eL.Card,{children:[(0,t.jsx)(em.Text,{children:"Path"}),(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(eu.Title,{className:"font-mono",children:n.path})})]}),(0,t.jsxs)(eL.Card,{children:[(0,t.jsx)(em.Text,{children:"Target"}),(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(eu.Title,{children:n.target})})]}),(0,t.jsxs)(eL.Card,{children:[(0,t.jsx)(em.Text,{children:"Configuration"}),(0,t.jsxs)("div",{className:"mt-2 space-y-2",children:[(0,t.jsx)("div",{children:(0,t.jsx)(k.Badge,{color:n.include_subpath?"green":"gray",children:n.include_subpath?"Include Subpath":"Exact Path"})}),(0,t.jsx)("div",{children:(0,t.jsx)(k.Badge,{color:n.auth?"blue":"gray",children:n.auth?"Auth Required":"No Auth"})}),n.methods&&n.methods.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"text-xs text-gray-500",children:"HTTP Methods:"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1 mt-1",children:n.methods.map(e=>(0,t.jsx)(k.Badge,{color:"indigo",size:"sm",children:e},e))})]}),(!n.methods||0===n.methods.length)&&(0,t.jsx)("div",{children:(0,t.jsx)(em.Text,{className:"text-xs text-gray-500",children:"All HTTP methods supported"})}),void 0!==n.cost_per_request&&(0,t.jsx)("div",{children:(0,t.jsxs)(em.Text,{children:["Cost per request: $",n.cost_per_request]})})]})]})]}),(0,t.jsx)("div",{className:"mt-6",children:(0,t.jsx)(lc,{pathValue:n.path,targetValue:n.target,includeSubpath:n.include_subpath||!1})}),n.headers&&Object.keys(n.headers).length>0&&(0,t.jsxs)(eL.Card,{className:"mt-6",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Headers"}),(0,t.jsxs)(k.Badge,{color:"blue",children:[Object.keys(n.headers).length," headers configured"]})]}),(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)(lb,{value:n.headers})})]}),n.guardrails&&Object.keys(n.guardrails).length>0&&(0,t.jsxs)(eL.Card,{className:"mt-6",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Guardrails"}),(0,t.jsxs)(k.Badge,{color:"purple",children:[Object.keys(n.guardrails).length," guardrails configured"]})]}),(0,t.jsx)("div",{className:"mt-4 space-y-2",children:Object.entries(n.guardrails).map(([e,l])=>(0,t.jsxs)("div",{className:"p-3 bg-gray-50 rounded",children:[(0,t.jsx)("div",{className:"font-medium text-sm",children:e}),l&&(l.request_fields||l.response_fields)&&(0,t.jsxs)("div",{className:"mt-2 text-xs text-gray-600 space-y-1",children:[l.request_fields&&(0,t.jsxs)("div",{children:["Request fields: ",l.request_fields.join(", ")]}),l.response_fields&&(0,t.jsxs)("div",{children:["Response fields: ",l.response_fields.join(", ")]})]}),!l&&(0,t.jsx)("div",{className:"text-xs text-gray-600 mt-1",children:"Uses entire payload"})]},e))})]})]}),r&&(0,t.jsx)(U.TabPanel,{children:(0,t.jsxs)(eL.Card,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(eu.Title,{children:"Pass Through Endpoint Settings"}),(0,t.jsx)("div",{className:"space-x-2",children:!u&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(T.Button,{onClick:()=>h(!0),children:"Edit Settings"}),(0,t.jsx)(T.Button,{onClick:N,variant:"secondary",color:"red",children:"Delete Endpoint"})]})})]}),u?(0,t.jsxs)(et.Form,{form:b,onFinish:v,initialValues:{target:n.target,headers:n.headers?JSON.stringify(n.headers,null,2):"",include_subpath:n.include_subpath||!1,cost_per_request:n.cost_per_request,auth:n.auth||!1,methods:n.methods||[]},layout:"vertical",children:[(0,t.jsx)(et.Form.Item,{label:"Target URL",name:"target",rules:[{required:!0,message:"Please input a target URL"}],children:(0,t.jsx)(eR.TextInput,{placeholder:"https://api.example.com"})}),(0,t.jsx)(et.Form.Item,{label:"Headers (JSON)",name:"headers",children:(0,t.jsx)(eV.Input.TextArea,{rows:5,placeholder:'{"Authorization": "Bearer your-token", "Content-Type": "application/json"}'})}),(0,t.jsx)(et.Form.Item,{label:"HTTP Methods (Optional)",name:"methods",extra:0===f.length?"All HTTP methods supported (default)":`Only ${f.join(", ")} requests will be routed to this endpoint`,children:(0,t.jsx)(W.Select,{mode:"multiple",placeholder:"Select methods (leave empty for all)",value:f,onChange:j,allowClear:!0,style:{width:"100%"},children:l_.map(e=>(0,t.jsx)(ly,{value:e,children:e},e))})}),(0,t.jsx)(et.Form.Item,{label:"Include Subpath",name:"include_subpath",valuePropName:"checked",children:(0,t.jsx)(es.Switch,{})}),(0,t.jsx)(et.Form.Item,{label:"Cost per Request",name:"cost_per_request",children:(0,t.jsx)(eh.InputNumber,{min:0,step:.01,precision:2,placeholder:"0.00",addonBefore:"$"})}),(0,t.jsx)(lm,{premiumUser:i,authEnabled:p,onAuthChange:e=>{g(e),b.setFieldsValue({auth:e})}}),(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)(lh,{accessToken:a||"",value:_,onChange:y})}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 mt-6",children:[(0,t.jsx)(K.Button,{onClick:()=>h(!1),children:"Cancel"}),(0,t.jsx)(T.Button,{children:"Save Changes"})]})]}):(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Path"}),(0,t.jsx)("div",{className:"font-mono",children:n.path})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Target URL"}),(0,t.jsx)("div",{children:n.target})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Include Subpath"}),(0,t.jsx)(k.Badge,{color:n.include_subpath?"green":"gray",children:n.include_subpath?"Yes":"No"})]}),void 0!==n.cost_per_request&&(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Cost per Request"}),(0,t.jsxs)("div",{children:["$",n.cost_per_request]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Authentication Required"}),(0,t.jsx)(k.Badge,{color:n.auth?"green":"gray",children:n.auth?"Yes":"No"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(em.Text,{className:"font-medium",children:"Headers"}),n.headers&&Object.keys(n.headers).length>0?(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(lb,{value:n.headers})}):(0,t.jsx)("div",{className:"text-gray-500",children:"No headers configured"})]})]})]})})]})]})]}):(0,t.jsx)("div",{className:"p-4",children:"Pass through endpoint not found"})};var lN=e.i(149121);let lw=({value:e})=>{let[l,s]=(0,x.useState)(!1),a=JSON.stringify(e);return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("span",{className:"font-mono text-xs",children:l?a:"••••••••"}),(0,t.jsx)("button",{onClick:()=>s(!l),className:"p-1 hover:bg-gray-100 rounded",type:"button",children:l?(0,t.jsx)(lj.EyeOff,{className:"w-4 h-4 text-gray-500"}):(0,t.jsx)(lf.Eye,{className:"w-4 h-4 text-gray-500"})})]})},lC=({accessToken:e,userRole:s,userID:a,modelData:r,premiumUser:i})=>{let[o,n]=(0,x.useState)([]),[d,c]=(0,x.useState)(null),[m,u]=(0,x.useState)(!1),[h,p]=(0,x.useState)(null);(0,x.useEffect)(()=>{e&&s&&a&&(0,l.getPassThroughEndpointsCall)(e).then(e=>{n(e.endpoints)})},[e,s,a]);let g=async e=>{p(e),u(!0)},f=async()=>{if(null!=h&&e){try{await (0,l.deletePassThroughEndpointsCall)(e,h);let t=o.filter(e=>e.id!==h);n(t),D.default.success("Endpoint deleted successfully.")}catch(e){console.error("Error deleting the endpoint:",e),D.default.fromBackend("Error deleting the endpoint: "+e)}u(!1),p(null)}},j=[{header:"ID",accessorKey:"id",cell:e=>(0,t.jsx)(E.Tooltip,{title:e.row.original.id,children:(0,t.jsx)("div",{className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left w-full truncate whitespace-nowrap cursor-pointer max-w-[15ch]",onClick:()=>e.row.original.id&&c(e.row.original.id),children:e.row.original.id})})},{header:"Path",accessorKey:"path"},{header:"Target",accessorKey:"target",cell:e=>(0,t.jsx)(em.Text,{children:e.getValue()})},{header:()=>(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{children:"Methods"}),(0,t.jsx)(E.Tooltip,{title:"HTTP methods supported by this endpoint",children:(0,t.jsx)(tK.InformationCircleIcon,{className:"w-4 h-4 text-gray-400 cursor-help"})})]}),accessorKey:"methods",cell:e=>{let l=e.getValue();return l&&0!==l.length?(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:l.map(e=>(0,t.jsx)(J.Badge,{color:"indigo",className:"text-xs",children:e},e))}):(0,t.jsx)(J.Badge,{color:"blue",children:"ALL"})}},{header:()=>(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{children:"Authentication"}),(0,t.jsx)(E.Tooltip,{title:"LiteLLM Virtual Key required to call endpoint",children:(0,t.jsx)(tK.InformationCircleIcon,{className:"w-4 h-4 text-gray-400 cursor-help"})})]}),accessorKey:"auth",cell:e=>(0,t.jsx)(J.Badge,{color:e.getValue()?"green":"gray",children:e.getValue()?"Yes":"No"})},{header:"Headers",accessorKey:"headers",cell:e=>(0,t.jsx)(lw,{value:e.getValue()||{}})},{header:"Actions",id:"actions",cell:({row:e})=>(0,t.jsxs)("div",{className:"flex space-x-1",children:[(0,t.jsx)(F.Icon,{icon:eE.PencilAltIcon,size:"sm",onClick:()=>e.original.id&&c(e.original.id),title:"Edit"}),(0,t.jsx)(F.Icon,{icon:S.TrashIcon,size:"sm",onClick:()=>{var t;return t=e.original.id,e.index,void g(t)},title:"Delete"})]})}];if(!e)return null;if(d){console.log("selectedEndpointId",d),console.log("generalSettings",o);let a=o.find(e=>e.id===d);return a?(0,t.jsx)(lv,{endpointData:a,onClose:()=>c(null),accessToken:e,isAdmin:"Admin"===s||"admin"===s,premiumUser:i,onEndpointUpdated:()=>{e&&(0,l.getPassThroughEndpointsCall)(e).then(e=>{n(e.endpoints)})}}):(0,t.jsx)("div",{children:"Endpoint not found"})}return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(eu.Title,{children:"Pass Through Endpoints"}),(0,t.jsx)(em.Text,{className:"text-tremor-content",children:"Configure and manage your pass-through endpoints"})]}),(0,t.jsx)(lg,{accessToken:e,setPassThroughItems:n,passThroughItems:o,premiumUser:i}),(0,t.jsx)(lN.DataTable,{data:o,columns:j,renderSubComponent:()=>(0,t.jsx)("div",{}),getRowCanExpand:()=>!1,isLoading:!1,noDataMessage:"No pass-through endpoints configured"}),m&&(0,t.jsx)("div",{className:"fixed z-10 inset-0 overflow-y-auto",children:(0,t.jsxs)("div",{className:"flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0",children:[(0,t.jsx)("div",{className:"fixed inset-0 transition-opacity","aria-hidden":"true",children:(0,t.jsx)("div",{className:"absolute inset-0 bg-gray-500 opacity-75"})}),(0,t.jsx)("span",{className:"hidden sm:inline-block sm:align-middle sm:h-screen","aria-hidden":"true",children:"​"}),(0,t.jsxs)("div",{className:"inline-block align-bottom bg-white rounded-lg text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full",children:[(0,t.jsx)("div",{className:"bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4",children:(0,t.jsx)("div",{className:"sm:flex sm:items-start",children:(0,t.jsxs)("div",{className:"mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left",children:[(0,t.jsx)("h3",{className:"text-lg leading-6 font-medium text-gray-900",children:"Delete Pass-Through Endpoint"}),(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)("p",{className:"text-sm text-gray-500",children:"Are you sure you want to delete this pass-through endpoint? This action cannot be undone."})})]})})}),(0,t.jsxs)("div",{className:"bg-gray-50 px-4 py-3 sm:px-6 sm:flex sm:flex-row-reverse",children:[(0,t.jsx)(T.Button,{onClick:f,color:"red",className:"ml-2",children:"Delete"}),(0,t.jsx)(T.Button,{onClick:()=>{u(!1),p(null)},children:"Cancel"})]})]})]})})]})};e.s(["default",0,lC],147612);var lS=e.i(56567);e.s(["default",0,({premiumUser:e,teams:s})=>{let a,i,{accessToken:m,token:u,userRole:h,userId:p}=(0,r.default)(),[g]=et.Form.useForm(),[f,j]=(0,x.useState)(""),[_,y]=(0,x.useState)([]),[b,v]=(0,x.useState)(eM.Providers.Anthropic),[N,w]=(0,x.useState)(null),[C,S]=(0,x.useState)(null),[k,T]=(0,x.useState)(null),[I,M]=(0,x.useState)(0),[P,A]=(0,x.useState)({}),[E,L]=(0,x.useState)(!1),[R,O]=(0,x.useState)(null),[B,z]=(0,x.useState)(null),[V,H]=(0,x.useState)(0),[J,K]=(0,x.useState)(1),[W,Q]=(0,x.useState)(()=>"true"!==localStorage.getItem("hideMissingProviderBanner")),Y=(0,$.useQueryClient)(),{data:X,isLoading:Z,refetch:ee}=(0,d.useModelsInfo)(),{data:el,isLoading:es}=(0,d.useModelsInfo)(J,50),{data:ea,isLoading:er}=(0,n.useModelCostMap)(),{data:eo,isLoading:ed}=o(),ec=eo?.credentials||[],{data:em,isLoading:eu}=(0,c.useUISettings)(),eh=(0,x.useMemo)(()=>{if(!X?.data)return[];let e=new Set;for(let t of X.data)e.add(t.model_name);return Array.from(e).sort()},[X?.data]),ex=(0,x.useMemo)(()=>{if(!X?.data)return[];let e=new Set;for(let t of X.data){let l=t.model_info;if(l?.access_groups)for(let t of l.access_groups)e.add(t)}return Array.from(e)},[X?.data]),eg=(0,x.useMemo)(()=>X?.data?X.data.map(e=>e.model_name):[],[X?.data]),ef=(0,x.useMemo)(()=>el?.data?el.data.map(e=>e.model_info?.id).filter(e=>!!e):[],[el?.data]),ej=e=>null!=ea&&"object"==typeof ea&&e in ea?ea[e].litellm_provider:"openai",e_=(0,x.useMemo)(()=>X?.data?ei(X,ej):{data:[]},[X?.data,ej]),ey=(0,x.useMemo)(()=>el?.data?ei(el,ej):{data:[]},[el?.data,ej]),eb=(0,x.useMemo)(()=>({total_count:el?.total_count??0,current_page:el?.current_page??J,total_pages:el?.total_pages??1,size:el?.size??50}),[el,J]),ev=h&&(0,eX.isProxyAdminRole)(h),eN=h&&eX.internalUserRoles.includes(h),ew=p&&(0,eX.isUserTeamAdminForAnyTeam)(s,p),eC=eN&&em?.values?.disable_model_add_for_internal_users===!0,eS={name:"file",accept:".json",pastable:!1,beforeUpload:e=>{if("application/json"===e.type){let t=new FileReader;t.onload=e=>{if(e.target){let t=e.target.result;g.setFieldsValue({vertex_credentials:t})}},t.readAsText(e)}return!1},onChange(e){"done"===e.file.status?D.default.success(`${e.file.name} file uploaded successfully`):"error"===e.file.status&&D.default.fromBackend(`${e.file.name} file upload failed.`)}},ek=()=>{j(new Date().toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})),K(1),Y.invalidateQueries({queryKey:["models","list"]}),ee()},eT=async()=>{if(m)try{let e={router_settings:{}};"global"===N?(k&&(e.router_settings.retry_policy=k),D.default.success("Global retry settings saved successfully")):(C&&(e.router_settings.model_group_retry_policy=C),D.default.success(`Retry settings saved successfully for ${N}`)),await (0,l.setCallbacksCall)(m,e)}catch(e){D.default.fromBackend("Failed to save retry settings")}};(0,x.useEffect)(()=>{if(!m||!u||!h||!p||!X)return;let e=async()=>{try{let e=(await (0,l.getCallbacksCall)(m,p,h)).router_settings,t=e.model_group_retry_policy,s=e.num_retries;S(t),T(e.retry_policy),M(s);let a=e.model_group_alias||{};A(a)}catch(e){console.error("Error fetching model data:",e)}};m&&u&&h&&p&&X&&e()},[m,u,h,p,X]);let eF=async()=>{try{let e=await g.validateFields();await eA(e,m,g,ek)}catch(t){let e=t.errorFields?.map(e=>`${e.name.join(".")}: ${e.errors.join(", ")}`).join(" | ")||"Unknown validation error";D.default.fromBackend(`Please fill in the following required fields: ${e}`)}};return(Object.keys(eM.Providers).find(e=>eM.Providers[e]===b),B)?(0,t.jsx)("div",{className:"w-full h-full",children:(0,t.jsx)(lS.default,{teamId:B,onClose:()=>z(null),accessToken:m,is_team_admin:"Admin"===h,is_proxy_admin:"Proxy Admin"===h,userModels:eg,editTeam:!1,onUpdate:ek,premiumUser:e})}):(0,t.jsx)("div",{className:"w-full mx-4 h-[75vh]",children:(0,t.jsx)(G.Grid,{numItems:1,className:"gap-2 p-8 w-full mt-2",children:(0,t.jsxs)(e1.Col,{numColSpan:1,className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold",children:"Model Management"}),eX.all_admin_roles.includes(h)?(0,t.jsx)("p",{className:"text-sm text-gray-600",children:"Add and manage models for the proxy"}):(0,t.jsx)("p",{className:"text-sm text-gray-600",children:"Add models for teams you are an admin for."})]}),!W&&(0,t.jsxs)("a",{href:"https://models.litellm.ai/?request=true",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[#6366f1] hover:text-[#5558e3] border border-[#6366f1] hover:border-[#5558e3] rounded-lg transition-colors",children:[(0,t.jsx)(e3.PlusCircleOutlined,{style:{fontSize:"12px"}}),"Request Provider"]})]}),W&&(0,t.jsxs)("div",{className:"mb-4 px-4 py-3 bg-blue-50 rounded-lg border border-blue-100 flex items-center gap-4",children:[(0,t.jsx)("div",{className:"flex-shrink-0 w-10 h-10 bg-white rounded-full flex items-center justify-center border border-blue-200",children:(0,t.jsx)(e3.PlusCircleOutlined,{style:{fontSize:"18px",color:"#6366f1"}})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("h4",{className:"text-gray-900 font-semibold text-sm m-0",children:"Missing a provider?"}),(0,t.jsx)("p",{className:"text-gray-500 text-xs m-0 mt-0.5",children:"The LiteLLM engineering team is constantly adding support for new LLM models, providers, endpoints. If you don't see the one you need, let us know and we'll prioritize it."})]}),(0,t.jsxs)("a",{href:"https://models.litellm.ai/?request=true",target:"_blank",rel:"noopener noreferrer",className:"flex-shrink-0 inline-flex items-center gap-2 px-4 py-2 bg-[#6366f1] hover:bg-[#5558e3] text-white text-sm font-medium rounded-lg transition-colors",children:["Request Provider",(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})})]}),(0,t.jsx)("button",{onClick:()=>{Q(!1),localStorage.setItem("hideMissingProviderBanner","true")},className:"flex-shrink-0 p-1 text-gray-400 hover:text-gray-600 hover:bg-gray-100 rounded-full transition-colors","aria-label":"Dismiss banner",children:(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})})]}),R&&!(Z||er||ed||eu)?(0,t.jsx)(ll,{modelId:R,onClose:()=>{O(null)},accessToken:m,userID:p,userRole:h,onModelUpdate:e=>{Y.invalidateQueries({queryKey:["models","list"]}),ek()},modelAccessGroups:ex}):(a=eX.all_admin_roles.includes(h),i=[{tab:(0,t.jsx)(e2.Tab,{children:a?"All Models":"Your Models"},"all-models"),panel:(0,t.jsx)(en,{selectedModelGroup:N,setSelectedModelGroup:w,availableModelGroups:eh,availableModelAccessGroups:ex,setSelectedModelId:O,setSelectedTeamId:z},"all-models")}],(ev||!eC&&ew)&&i.push({tab:(0,t.jsx)(e2.Tab,{children:"Add Model"},"add-model"),panel:(0,t.jsx)(U.TabPanel,{className:"h-full",children:(0,t.jsx)(tG,{form:g,handleOk:eF,selectedProvider:b,setSelectedProvider:v,providerModels:_,setProviderModelsFn:e=>{y((0,eM.getProviderModels)(e,ea))},getPlaceholder:eM.getPlaceholder,uploadProps:eS,showAdvancedSettings:E,setShowAdvancedSettings:L,teams:s,credentials:ec,accessToken:m,userRole:h})},"add-model")}),a&&i.push({tab:(0,t.jsx)(e2.Tab,{children:"LLM Credentials"},"llm-credentials"),panel:(0,t.jsx)(U.TabPanel,{children:(0,t.jsx)(eZ,{uploadProps:eS})},"llm-credentials")},{tab:(0,t.jsx)(e2.Tab,{children:"Pass-Through Endpoints"},"pass-through"),panel:(0,t.jsx)(U.TabPanel,{children:(0,t.jsx)(lC,{accessToken:m,userRole:h,userID:p,modelData:e_,premiumUser:e})},"pass-through")},{tab:(0,t.jsx)(e2.Tab,{children:"Health Status"},"health-status"),panel:(0,t.jsx)(U.TabPanel,{children:(0,t.jsx)(tY,{accessToken:m,modelData:ey,all_models_on_proxy:ef,getDisplayModelName:q,setSelectedModelId:O,teams:s,isLoading:es,paginationMeta:eb,currentPage:J,pageSize:50,onPageChange:K})},"health-status")},{tab:(0,t.jsx)(e2.Tab,{children:"Model Retry Settings"},"model-retry-settings"),panel:(0,t.jsx)(ep,{selectedModelGroup:N,setSelectedModelGroup:w,availableModelGroups:eh,globalRetryPolicy:k,setGlobalRetryPolicy:T,defaultRetry:I,modelGroupRetryPolicy:C,setModelGroupRetryPolicy:S,handleSaveRetrySettings:eT},"model-retry-settings")},{tab:(0,t.jsx)(e2.Tab,{children:"Model Group Alias"},"model-group-alias"),panel:(0,t.jsx)(U.TabPanel,{children:(0,t.jsx)(t2,{accessToken:m,initialModelGroupAlias:P,onAliasUpdate:A})},"model-group-alias")},{tab:(0,t.jsx)(e2.Tab,{children:"Price Data Reload"},"price-data-reload"),panel:(0,t.jsx)(eI,{},"price-data-reload")}),(0,t.jsxs)(e4.TabGroup,{index:V,onIndexChange:H,className:"gap-2 h-[75vh] w-full ",children:[(0,t.jsxs)(e5.TabList,{className:"flex justify-between mt-2 w-full items-center",children:[(0,t.jsx)("div",{className:"flex",children:i.map(e=>e.tab)}),(0,t.jsxs)("div",{className:"flex items-center space-x-2 self-center",children:[f&&(0,t.jsxs)("span",{className:"text-xs text-gray-500",children:["Last Refreshed: ",f]}),(0,t.jsx)(F.Icon,{icon:e0.RefreshIcon,variant:"shadow",size:"xs",className:"cursor-pointer",onClick:ek})]})]}),(0,t.jsx)(e6.TabPanels,{children:i.map(e=>e.panel)})]}))]})})})}],161059)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/00j3cgbhfjesd.js b/litellm/proxy/_experimental/out/_next/static/chunks/08u5j~2nol0u-.js similarity index 64% rename from litellm/proxy/_experimental/out/_next/static/chunks/00j3cgbhfjesd.js rename to litellm/proxy/_experimental/out/_next/static/chunks/08u5j~2nol0u-.js index 13a2f3bf457..4187be09762 100644 --- a/litellm/proxy/_experimental/out/_next/static/chunks/00j3cgbhfjesd.js +++ b/litellm/proxy/_experimental/out/_next/static/chunks/08u5j~2nol0u-.js @@ -1,7 +1,7 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,921687,e=>{"use strict";var t=e.i(764205);let s=async(e,s)=>{try{let r=s||(0,t.getProxyBaseUrl)(),a=r?`${r}/v1/agents`:"/v1/agents",n=await fetch(a,{method:"GET",headers:{[(0,t.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json();throw Error(e.detail||"Failed to fetch agents")}let i=await n.json();return console.log("Fetched agents:",i),i.sort((e,t)=>{let s=e.agent_name||e.agent_id,r=t.agent_name||t.agent_id;return s.localeCompare(r)}),i}catch(e){throw console.error("Error fetching agents:",e),e}},r=async(e,s,r,a)=>{try{let a=await (0,t.modelInfoCall)(e,s,r,1,200),n=a?.data??[],i=(Array.isArray(n)?n:[]).filter(e=>"string"==typeof e?.litellm_params?.model&&e.litellm_params.model.startsWith("litellm_agent/")).map(e=>({model_name:e.model_name??e.model_group??"",litellm_params:{...e.litellm_params,model:e.litellm_params.model,litellm_system_prompt:e.litellm_params?.litellm_system_prompt,tools:Array.isArray(e.litellm_params?.tools)?e.litellm_params.tools:void 0},model_info:e.model_info??null}));return i.sort((e,t)=>e.model_name.localeCompare(t.model_name)),i}catch(e){throw console.error("Error fetching agent models:",e),e}};e.s(["fetchAvailableAgentModels",0,r,"fetchAvailableAgents",0,s])},124608,614677,235267,318059,953860,434788,512882,584976,720762,e=>{"use strict";let t,s,r;e.i(247167);var a,n,i,o,l,c,d,u,h,p,m,g,f,y,x,b,v,w,_,S,j,k,N,E,T,C,A,P,O,I,R,M,$,L,U,D,q,B,W,H,z,F,J,G,V,K,X,Y,Q,Z,ee,et,es,er,ea,en,ei,eo,el,ec,ed,eu,eh,ep,em,eg,ef,ey,ex=e.i(931067),eb=e.i(271645);let ev={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2zM304 456a88 88 0 100-176 88 88 0 000 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z"}}]},name:"picture",theme:"outlined"};var ew=e.i(9583),e_=eb.forwardRef(function(e,t){return eb.createElement(ew.default,(0,ex.default)({},e,{ref:t,icon:ev}))});e.s(["PictureOutlined",0,e_],124608);let eS=new Uint8Array(16),ej=[];for(let e=0;e<256;++e)ej.push((e+256).toString(16).slice(1));let ek=function(e,t,s){return t||e||!crypto.randomUUID?function(e,t,s){let r=(e=e||{}).random??e.rng?.()??crypto.getRandomValues(eS);if(r.length<16)throw Error("Random bytes length must be >= 16");if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){if((s=s||0)<0||s+16>t.length)throw RangeError(`UUID byte range ${s}:${s+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[s+e]=r[e];return t}return function(e,t=0){return(ej[e[t+0]]+ej[e[t+1]]+ej[e[t+2]]+ej[e[t+3]]+"-"+ej[e[t+4]]+ej[e[t+5]]+"-"+ej[e[t+6]]+ej[e[t+7]]+"-"+ej[e[t+8]]+ej[e[t+9]]+"-"+ej[e[t+10]]+ej[e[t+11]]+ej[e[t+12]]+ej[e[t+13]]+ej[e[t+14]]+ej[e[t+15]]).toLowerCase()}(r)}(e,t,s):crypto.randomUUID()};e.s(["v4",0,ek],614677);var eN=e.i(843476),eE=e.i(808613),eT=e.i(311451),eC=e.i(28651),eA=e.i(199133),eP=e.i(592968),eO=e.i(827252);function eI(e){if(!e)return[];if(Array.isArray(e))return e.map(e=>eR(e)).filter(e=>void 0!==e);let t=eR(e);return void 0!==t?[t]:[]}function eR(e,t){if(!e)return;let s=void 0!==t?t:e.default;if("object"===e.type){let t="object"!=typeof s||null===s||Array.isArray(s)?{}:{...s};return e.properties&&Object.entries(e.properties).forEach(([e,s])=>{t[e]=eR(s,t[e])}),t}if("array"===e.type){if(Array.isArray(s)){let t=e.items;if(!t)return s;if(0===s.length){let e=eI(t);return e.length?e:s}return Array.isArray(t)?s.map((e,s)=>eR(t[s]??t[t.length-1],e)):s.map(e=>eR(t,e))}return void 0!==s?s:eI(e.items)}if(void 0!==s)return s;switch(e.type){case"integer":case"number":return 0;case"boolean":return!1;default:return""}}let eM=e=>{let t=eR(e);if("object"===e.type||"array"===e.type){let s="array"===e.type?[]:{};return JSON.stringify(t??s,null,2)}return t},e$=(0,eb.forwardRef)(({tool:e,className:t},s)=>{let[r]=eE.Form.useForm(),a=(0,eb.useMemo)(()=>"string"==typeof e.inputSchema?{type:"object",properties:{input:{type:"string",description:"Input for this tool"}},required:["input"]}:e.inputSchema,[e.inputSchema]),n=(0,eb.useMemo)(()=>a.properties?.params?.type==="object"&&a.properties.params.properties?{type:"object",properties:a.properties.params.properties,required:a.properties.params.required||[]}:a,[a]);return((0,eb.useImperativeHandle)(s,()=>({getSubmitValues:async()=>{var e;let t;return e=await r.validateFields(),t={},Object.entries(e).forEach(([e,s])=>{let r=n.properties?.[e];if(r&&null!=s&&""!==s)switch(r.type){case"boolean":t[e]="true"===s||!0===s;break;case"number":case"integer":{let a=Number(s);t[e]=Number.isNaN(a)?s:"integer"===r.type?Math.trunc(a):a;break}case"object":case"array":try{let a="string"==typeof s?JSON.parse(s):s,n="object"===r.type&&null!==a&&"object"==typeof a&&!Array.isArray(a),i="array"===r.type&&Array.isArray(a);"object"===r.type&&n||"array"===r.type&&i?t[e]=a:t[e]=s}catch{t[e]=s}break;case"string":t[e]=String(s);break;default:t[e]=s}else null!=s&&""!==s&&(t[e]=s)}),a.properties?.params?.type==="object"&&a.properties.params.properties?{params:t}:t}})),eb.default.useEffect(()=>{if(r.resetFields(),!n.properties)return;let e={};Object.entries(n.properties).forEach(([t,s])=>{e[t]=eM(s)}),r.setFieldsValue(e)},[r,n,e]),"string"==typeof e.inputSchema)?(0,eN.jsx)(eE.Form,{form:r,layout:"vertical",className:t,children:(0,eN.jsx)(eE.Form.Item,{label:(0,eN.jsxs)("span",{className:"text-sm font-medium text-gray-700",children:["Input ",(0,eN.jsx)("span",{className:"text-red-500",children:"*"})]}),name:"input",rules:[{required:!0,message:"Please enter input for this tool"}],children:(0,eN.jsx)(eT.Input,{placeholder:"Enter input for this tool"})})}):n.properties?(0,eN.jsx)(eE.Form,{form:r,layout:"vertical",className:t,children:Object.entries(n.properties).map(([t,s])=>{let r=eM(s),a=`${e.name}-${t}`;return(0,eN.jsx)(eE.Form.Item,{label:(0,eN.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:[t," ",n.required?.includes(t)&&(0,eN.jsx)("span",{className:"text-red-500",children:"*"}),s.description&&(0,eN.jsx)(eP.Tooltip,{title:s.description,children:(0,eN.jsx)(eO.InfoCircleOutlined,{className:"ml-2 text-gray-400 hover:text-gray-600"})})]}),name:t,initialValue:r,rules:[{required:n.required?.includes(t),message:`Please enter ${t}`},..."object"===s.type||"array"===s.type?[{validator:(e,r)=>{if((null==r||""===r)&&!n.required?.includes(t))return Promise.resolve();try{let e="string"==typeof r?JSON.parse(r):r,t="object"===s.type&&null!==e&&"object"==typeof e&&!Array.isArray(e),a="array"===s.type&&Array.isArray(e);if("object"===s.type&&t||"array"===s.type&&a)return Promise.resolve();return Promise.reject(Error("object"===s.type?"Please enter a JSON object":"Please enter a JSON array"))}catch{return Promise.reject(Error("Invalid JSON"))}}}]:[]],children:"string"===s.type&&s.enum?(0,eN.jsx)(eA.Select,{placeholder:`Select ${t}`,allowClear:!n.required?.includes(t),options:s.enum.map(e=>({value:e,label:e}))}):"string"!==s.type||s.enum?"number"===s.type||"integer"===s.type?(0,eN.jsx)(eC.InputNumber,{step:"integer"===s.type?1:void 0,placeholder:s.description||`Enter ${t}`,className:"w-full",style:{width:"100%"}}):"boolean"===s.type?(0,eN.jsx)(eA.Select,{placeholder:`Select ${t}`,allowClear:!n.required?.includes(t),options:[{value:!0,label:"True"},{value:!1,label:"False"}]}):"object"===s.type||"array"===s.type?(0,eN.jsx)(eT.Input.TextArea,{rows:"object"===s.type?4:3,placeholder:s.description||("object"===s.type?`Enter JSON object for ${t}`:`Enter JSON array for ${t}`),spellCheck:!1,className:"font-mono"}):(0,eN.jsx)(eT.Input,{placeholder:s.description||`Enter ${t}`,allowClear:!0}):(0,eN.jsx)(eT.Input,{placeholder:s.description||`Enter ${t}`,allowClear:!0})},a)})}):(0,eN.jsx)(eE.Form,{form:r,layout:"vertical",className:t,children:(0,eN.jsx)("div",{className:"py-4 text-center text-sm text-gray-500",children:"No parameters required for this tool."})})});e$.displayName="MCPToolArgumentsForm",e.s(["default",0,e$],235267);var eL=e.i(764205);e.s(["default",0,({onChange:e,value:t,className:s,accessToken:r})=>{let[a,n]=(0,eb.useState)([]),[i,o]=(0,eb.useState)(!1);return(0,eb.useEffect)(()=>{(async()=>{if(r)try{let e=await (0,eL.tagListCall)(r);console.log("List tags response:",e),n(Object.values(e))}catch(e){console.error("Error fetching tags:",e)}finally{o(!1)}})()},[r]),(0,eN.jsx)(eA.Select,{mode:"tags",showSearch:!0,placeholder:"Select or create tags",onChange:e,value:t,loading:i,className:s,options:a.map(e=>({label:e.name,value:e.name,title:e.description||e.name})),optionFilterProp:"label",tokenSeparators:[","],maxTagCount:"responsive",allowClear:!0,style:{width:"100%"}})}],318059);let eU=e=>{if(!e)return;let t={};if(e.id&&(t.taskId=e.id),e.contextId&&(t.contextId=e.contextId),e.status&&(t.status={state:e.status.state,timestamp:e.status.timestamp},e.status.message?.parts)){let s=e.status.message.parts.filter(e=>"text"===e.kind&&e.text).map(e=>e.text).join(" ");s&&(t.status.message=s)}return e.metadata&&"object"==typeof e.metadata&&(t.metadata=e.metadata),Object.keys(t).length>0?t:void 0},eD=async(e,t,s,r,a,n,i,o,l,c)=>{let d=l||(0,eL.getProxyBaseUrl)(),u=d?`${d}/a2a/${e}/message/send`:`/a2a/${e}/message/send`,h={jsonrpc:"2.0",id:ek(),method:"message/send",params:{message:{kind:"message",messageId:ek().replace(/-/g,""),role:"user",parts:[{kind:"text",text:t}]}}};c&&c.length>0&&(h.params.metadata={guardrails:c});let p=performance.now();try{let t=await fetch(u,{method:"POST",headers:{[(0,eL.getGlobalLitellmHeaderName)()]:`Bearer ${r}`,"Content-Type":"application/json"},body:JSON.stringify(h),signal:a}),l=performance.now()-p;if(n&&n(l),!t.ok){let e=await t.json();throw Error(e.error?.message||e.detail||`HTTP ${t.status}`)}let c=await t.json(),d=performance.now()-p;if(i&&i(d),c.error)throw Error(c.error.message);let m=c.result;if(m){let t="",r=eU(m);if(r&&o&&o(r),m.artifacts&&Array.isArray(m.artifacts)){for(let e of m.artifacts)if(e.parts&&Array.isArray(e.parts))for(let s of e.parts)"text"===s.kind&&s.text&&(t+=s.text)}else if(m.parts&&Array.isArray(m.parts))for(let e of m.parts)"text"===e.kind&&e.text&&(t+=e.text);else if(m.status?.message?.parts)for(let e of m.status.message.parts)"text"===e.kind&&e.text&&(t+=e.text);t?s(t,`a2a_agent/${e}`):(console.warn("Could not extract text from A2A response, showing raw JSON:",m),s(JSON.stringify(m,null,2),`a2a_agent/${e}`))}}catch(e){if(a?.aborted)return void console.log("A2A request was cancelled");throw console.error("A2A send message error:",e),e}},eq=async(e,t,s,r,a,n,i,o,l)=>{let c,d=l||(0,eL.getProxyBaseUrl)(),u=d?`${d}/a2a/${e}`:`/a2a/${e}`,h=ek(),p=ek().replace(/-/g,""),m=performance.now(),g=!1,f="";try{let l=await fetch(u,{method:"POST",headers:{[(0,eL.getGlobalLitellmHeaderName)()]:`Bearer ${r}`,"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:h,method:"message/stream",params:{message:{kind:"message",messageId:p,role:"user",parts:[{kind:"text",text:t}]}}}),signal:a});if(!l.ok){let e=await l.json();throw Error(e.error?.message||e.detail||`HTTP ${l.status}`)}let d=l.body?.getReader();if(!d)throw Error("No response body");let y=new TextDecoder,x="",b=!1;for(;!b;){let t=await d.read();b=t.done;let r=t.value;if(b)break;let a=(x+=y.decode(r,{stream:!0})).split("\n");for(let t of(x=a.pop()||"",a))if(t.trim())try{let r=JSON.parse(t);if(!g){g=!0;let e=performance.now()-m;n&&n(e)}let a=r.result;if(a){let t=eU(a);t&&(c={...c,...t});let r=a.kind;if("artifact-update"===r&&a.artifact){let t=a.artifact;if(t.parts&&Array.isArray(t.parts))for(let r of t.parts)"text"===r.kind&&r.text&&(f+=r.text,s(f,`a2a_agent/${e}`))}else if(a.artifacts&&Array.isArray(a.artifacts)){for(let t of a.artifacts)if(t.parts&&Array.isArray(t.parts))for(let r of t.parts)"text"===r.kind&&r.text&&(f+=r.text,s(f,`a2a_agent/${e}`))}else if("status-update"===r);else if(a.parts&&Array.isArray(a.parts))for(let t of a.parts)"text"===t.kind&&t.text&&(f+=t.text,s(f,`a2a_agent/${e}`))}if(r.error){let e=r.error.message||"Unknown A2A error";throw Error(e)}}catch(e){if(e instanceof Error&&e.message&&!e.message.includes("JSON"))throw e;t.trim().length>0&&console.warn("Failed to parse A2A streaming chunk:",t,e)}}let v=performance.now()-m;i&&i(v),c&&o&&o(c)}catch(e){if(a?.aborted)return void console.log("A2A streaming request was cancelled");throw console.error("A2A stream message error:",e),e}};function eB(e,t,s,r,a){if("m"===r)throw TypeError("Private method is not writable");if("a"===r&&!a)throw TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?a.call(e,s):a?a.value=s:t.set(e,s),s}function eW(e,t,s,r){if("a"===s&&!r)throw TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?r:"a"===s?r.call(e):r?r.value:t.get(e)}e.s(["makeA2ASendMessageRequest",0,eD,"makeA2AStreamMessageRequest",0,eq],953860);let eH=function(){let{crypto:e}=globalThis;if(e?.randomUUID)return eH=e.randomUUID.bind(e),e.randomUUID();let t=new Uint8Array(1),s=e?()=>e.getRandomValues(t)[0]:()=>255*Math.random()&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,e=>(e^s()&15>>e/4).toString(16))};function ez(e){return"object"==typeof e&&null!==e&&("name"in e&&"AbortError"===e.name||"message"in e&&String(e.message).includes("FetchRequestCanceledException"))}let eF=e=>{if(e instanceof Error)return e;if("object"==typeof e&&null!==e){try{if("[object Error]"===Object.prototype.toString.call(e)){let t=Error(e.message,e.cause?{cause:e.cause}:{});return e.stack&&(t.stack=e.stack),e.cause&&!t.cause&&(t.cause=e.cause),e.name&&(t.name=e.name),t}}catch{}try{return Error(JSON.stringify(e))}catch{}}return Error(e)};class eJ extends Error{}class eG extends eJ{constructor(e,t,s,r,a){super(`${eG.makeMessage(e,t,s)}`),this.status=e,this.headers=r,this.requestID=r?.get("request-id"),this.error=t,this.type=a??null}static makeMessage(e,t,s){let r=t?.message?"string"==typeof t.message?t.message:JSON.stringify(t.message):t?JSON.stringify(t):s;return e&&r?`${e} ${r}`:e?`${e} status code (no body)`:r||"(no status code or body)"}static generate(e,t,s,r){if(!e||!r)return new eK({message:s,cause:eF(t)});let a=t?.error?.type;return 400===e?new eY(e,t,s,r,a):401===e?new eQ(e,t,s,r,a):403===e?new eZ(e,t,s,r,a):404===e?new e0(e,t,s,r,a):409===e?new e1(e,t,s,r,a):422===e?new e2(e,t,s,r,a):429===e?new e4(e,t,s,r,a):e>=500?new e6(e,t,s,r,a):new eG(e,t,s,r,a)}}class eV extends eG{constructor({message:e}={}){super(void 0,void 0,e||"Request was aborted.",void 0)}}class eK extends eG{constructor({message:e,cause:t}){super(void 0,void 0,e||"Connection error.",void 0),t&&(this.cause=t)}}class eX extends eK{constructor({message:e}={}){super({message:e??"Request timed out."})}}class eY extends eG{}class eQ extends eG{}class eZ extends eG{}class e0 extends eG{}class e1 extends eG{}class e2 extends eG{}class e4 extends eG{}class e6 extends eG{}let e3=/^[a-z][a-z0-9+.-]*:/i,e5=e=>(e5=Array.isArray)(e),e8=e5;function e7(e){return"object"!=typeof e?{}:e??{}}function e9(e){if(!e)return!0;for(let t in e)return!1;return!0}let te=e=>{try{return JSON.parse(e)}catch(e){return}},tt="0.92.0",ts=e=>"x32"===e?"x32":"x86_64"===e||"x64"===e?"x64":"arm"===e?"arm":"aarch64"===e||"arm64"===e?"arm64":e?`other:${e}`:"unknown",tr=e=>(e=e.toLowerCase()).includes("ios")?"iOS":"android"===e?"Android":"darwin"===e?"MacOS":"win32"===e?"Windows":"freebsd"===e?"FreeBSD":"openbsd"===e?"OpenBSD":"linux"===e?"Linux":e?`Other:${e}`:"Unknown";function ta(...e){let t=globalThis.ReadableStream;if(void 0===t)throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new t(...e)}function tn(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return ta({start(){},async pull(e){let{done:s,value:r}=await t.next();s?e.close():e.enqueue(r)},async cancel(){await t.return?.()}})}function ti(e){if(e[Symbol.asyncIterator])return e;let t=e.getReader();return{async next(){try{let e=await t.read();return e?.done&&t.releaseLock(),e}catch(e){throw t.releaseLock(),e}},async return(){let e=t.cancel();return t.releaseLock(),await e,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function to(e){if(null===e||"object"!=typeof e)return;if(e[Symbol.asyncIterator])return void await e[Symbol.asyncIterator]().return?.();let t=e.getReader(),s=t.cancel();t.releaseLock(),await s}let tl=({headers:e,body:t})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(t)});function tc(e){let t;return(s??(s=(t=new globalThis.TextEncoder).encode.bind(t)))(e)}function td(e){let t;return(r??(r=(t=new globalThis.TextDecoder).decode.bind(t)))(e)}class tu{constructor(){a.set(this,void 0),n.set(this,void 0),eB(this,a,new Uint8Array,"f"),eB(this,n,null,"f")}decode(e){let t;if(null==e)return[];let s=e instanceof ArrayBuffer?new Uint8Array(e):"string"==typeof e?tc(e):e;eB(this,a,function(e){let t=0;for(let s of e)t+=s.length;let s=new Uint8Array(t),r=0;for(let t of e)s.set(t,r),r+=t.length;return s}([eW(this,a,"f"),s]),"f");let r=[];for(;null!=(t=function(e,t){for(let s=t??0;s{if(e){if(Object.prototype.hasOwnProperty.call(th,e))return e;tx(s).warn(`${t} was set to ${JSON.stringify(e)}, expected one of ${JSON.stringify(Object.keys(th))}`)}};function tm(){}function tg(e,t,s){return!t||th[e]>th[s]?tm:t[e].bind(t)}let tf={error:tm,warn:tm,info:tm,debug:tm},ty=new WeakMap;function tx(e){let t=e.logger,s=e.logLevel??"off";if(!t)return tf;let r=ty.get(t);if(r&&r[0]===s)return r[1];let a={error:tg("error",t,s),warn:tg("warn",t,s),info:tg("info",t,s),debug:tg("debug",t,s)};return ty.set(t,[s,a]),a}let tb=e=>(e.options&&(e.options={...e.options},delete e.options.headers),e.headers&&(e.headers=Object.fromEntries((e.headers instanceof Headers?[...e.headers]:Object.entries(e.headers)).map(([e,t])=>[e,"x-api-key"===e.toLowerCase()||"authorization"===e.toLowerCase()||"cookie"===e.toLowerCase()||"set-cookie"===e.toLowerCase()?"***":t]))),"retryOfRequestLogID"in e&&(e.retryOfRequestLogID&&(e.retryOf=e.retryOfRequestLogID),delete e.retryOfRequestLogID),e);class tv{constructor(e,t,s){this.iterator=e,i.set(this,void 0),this.controller=t,eB(this,i,s,"f")}static fromSSEResponse(e,t,s){let r=!1,a=s?tx(s):console;async function*n(){if(r)throw new eJ("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");r=!0;let s=!1;try{for await(let s of tw(e,t)){if("completion"===s.event)try{yield JSON.parse(s.data)}catch(e){throw a.error("Could not parse message into JSON:",s.data),a.error("From chunk:",s.raw),e}if("message_start"===s.event||"message_delta"===s.event||"message_stop"===s.event||"content_block_start"===s.event||"content_block_delta"===s.event||"content_block_stop"===s.event||"message"===s.event||"user.message"===s.event||"user.interrupt"===s.event||"user.tool_confirmation"===s.event||"user.custom_tool_result"===s.event||"agent.message"===s.event||"agent.thinking"===s.event||"agent.tool_use"===s.event||"agent.tool_result"===s.event||"agent.mcp_tool_use"===s.event||"agent.mcp_tool_result"===s.event||"agent.custom_tool_use"===s.event||"agent.thread_context_compacted"===s.event||"session.status_running"===s.event||"session.status_idle"===s.event||"session.status_rescheduled"===s.event||"session.status_terminated"===s.event||"session.error"===s.event||"session.deleted"===s.event||"span.model_request_start"===s.event||"span.model_request_end"===s.event)try{yield JSON.parse(s.data)}catch(e){throw a.error("Could not parse message into JSON:",s.data),a.error("From chunk:",s.raw),e}if("ping"!==s.event&&"error"===s.event){let t=te(s.data)??s.data,r=t?.error?.type;throw new eG(void 0,t,void 0,e.headers,r)}}s=!0}catch(e){if(ez(e))return;throw e}finally{s||t.abort()}}return new tv(n,t,s)}static fromReadableStream(e,t,s){let r=!1;async function*a(){let t=new tu;for await(let s of ti(e))for(let e of t.decode(s))yield e;for(let e of t.flush())yield e}return new tv(async function*(){if(r)throw new eJ("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");r=!0;let e=!1;try{for await(let t of a())!e&&t&&(yield JSON.parse(t));e=!0}catch(e){if(ez(e))return;throw e}finally{e||t.abort()}},t,s)}[(i=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let e=[],t=[],s=this.iterator(),r=r=>({next:()=>{if(0===r.length){let r=s.next();e.push(r),t.push(r)}return r.shift()}});return[new tv(()=>r(e),this.controller,eW(this,i,"f")),new tv(()=>r(t),this.controller,eW(this,i,"f"))]}toReadableStream(){let e,t=this;return ta({async start(){e=t[Symbol.asyncIterator]()},async pull(t){try{let{value:s,done:r}=await e.next();if(r)return t.close();let a=tc(JSON.stringify(s)+"\n");t.enqueue(a)}catch(e){t.error(e)}},async cancel(){await e.return?.()}})}}async function*tw(e,t){if(!e.body){if(t.abort(),void 0!==globalThis.navigator&&"ReactNative"===globalThis.navigator.product)throw new eJ("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new eJ("Attempted to iterate over a response with no body")}let s=new tS,r=new tu;for await(let t of t_(ti(e.body)))for(let e of r.decode(t)){let t=s.decode(e);t&&(yield t)}for(let e of r.flush()){let t=s.decode(e);t&&(yield t)}}async function*t_(e){let t=new Uint8Array;for await(let s of e){let e;if(null==s)continue;let r=s instanceof ArrayBuffer?new Uint8Array(s):"string"==typeof s?tc(s):s,a=new Uint8Array(t.length+r.length);for(a.set(t),a.set(r,t.length),t=a;-1!==(e=function(e){for(let t=0;t0&&(yield t)}class tS{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){var t;let s;if(e.endsWith("\r")&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;let e={event:this.event,data:this.data.join("\n"),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],e}if(this.chunks.push(e),e.startsWith(":"))return null;let[r,a,n]=-1!==(s=(t=e).indexOf(":"))?[t.substring(0,s),":",t.substring(s+1)]:[t,"",""];return n.startsWith(" ")&&(n=n.substring(1)),"event"===r?this.event=n:"data"===r&&this.data.push(n),null}}async function tj(e,t){let{response:s,requestLogID:r,retryOfRequestLogID:a,startTime:n}=t,i=await (async()=>{if(t.options.stream)return(tx(e).debug("response",s.status,s.url,s.headers,s.body),t.options.__streamClass)?t.options.__streamClass.fromSSEResponse(s,t.controller):tv.fromSSEResponse(s,t.controller);if(204===s.status)return null;if(t.options.__binaryResponse)return s;let r=s.headers.get("content-type"),a=r?.split(";")[0]?.trim();if(a?.includes("application/json")||a?.endsWith("+json")){if("0"===s.headers.get("content-length"))return;return tk(await s.json(),s)}return await s.text()})();return tx(e).debug(`[${r}] response parsed`,tb({retryOfRequestLogID:a,url:s.url,status:s.status,body:i,durationMs:Date.now()-n})),i}function tk(e,t){return!e||"object"!=typeof e||Array.isArray(e)?e:Object.defineProperty(e,"_request_id",{value:t.headers.get("request-id"),enumerable:!1})}class tN extends Promise{constructor(e,t,s=tj){super(e=>{e(null)}),this.responsePromise=t,this.parseResponse=s,o.set(this,void 0),eB(this,o,e,"f")}_thenUnwrap(e){return new tN(eW(this,o,"f"),this.responsePromise,async(t,s)=>tk(e(await this.parseResponse(t,s),s),s.response))}asResponse(){return this.responsePromise.then(e=>e.response)}async withResponse(){let[e,t]=await Promise.all([this.parse(),this.asResponse()]);return{data:e,response:t,request_id:t.headers.get("request-id")}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(e=>this.parseResponse(eW(this,o,"f"),e))),this.parsedPromise}then(e,t){return this.parse().then(e,t)}catch(e){return this.parse().catch(e)}finally(e){return this.parse().finally(e)}}o=new WeakMap;class tE{constructor(e,t,s,r){l.set(this,void 0),eB(this,l,e,"f"),this.options=r,this.response=t,this.body=s}hasNextPage(){return!!this.getPaginatedItems().length&&null!=this.nextPageRequestOptions()}async getNextPage(){let e=this.nextPageRequestOptions();if(!e)throw new eJ("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await eW(this,l,"f").requestAPIList(this.constructor,e)}async *iterPages(){let e=this;for(yield e;e.hasNextPage();)e=await e.getNextPage(),yield e}async *[(l=new WeakMap,Symbol.asyncIterator)](){for await(let e of this.iterPages())for(let t of e.getPaginatedItems())yield t}}class tT extends tN{constructor(e,t,s){super(e,t,async(e,t)=>new s(e,t.response,await tj(e,t),t.options))}async *[Symbol.asyncIterator](){for await(let e of(await this))yield e}}class tC extends tE{constructor(e,t,s,r){super(e,t,s,r),this.data=s.data||[],this.has_more=s.has_more||!1,this.first_id=s.first_id||null,this.last_id=s.last_id||null}getPaginatedItems(){return this.data??[]}hasNextPage(){return!1!==this.has_more&&super.hasNextPage()}nextPageRequestOptions(){if(this.options.query?.before_id){let e=this.first_id;return e?{...this.options,query:{...e7(this.options.query),before_id:e}}:null}let e=this.last_id;return e?{...this.options,query:{...e7(this.options.query),after_id:e}}:null}}class tA extends tE{constructor(e,t,s,r){super(e,t,s,r),this.data=s.data||[],this.next_page=s.next_page||null}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){let e=this.next_page;return e?{...this.options,query:{...e7(this.options.query),page:e}}:null}}let tP=()=>{if("u"parseInt(e.versions.node.split("."))?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function tO(e,t,s){return tP(),new File(e,t??"unknown_file",s)}function tI(e,t){let s="object"==typeof e&&null!==e&&("name"in e&&e.name&&String(e.name)||"url"in e&&e.url&&String(e.url)||"filename"in e&&e.filename&&String(e.filename)||"path"in e&&e.path&&String(e.path))||"";return t?s.split(/[\\/]/).pop()||void 0:s}let tR=e=>null!=e&&"object"==typeof e&&"function"==typeof e[Symbol.asyncIterator],tM=async(e,t,s=!0)=>({...e,body:await tL(e.body,t,s)}),t$=new WeakMap,tL=async(e,t,s=!0)=>{if(!await function(e){let t="function"==typeof e?e:e.fetch,s=t$.get(t);if(s)return s;let r=(async()=>{try{let e="Response"in t?t.Response:(await t("data:,")).constructor,s=new FormData;if(s.toString()===await new e(s).text())return!1;return!0}catch{return!0}})();return t$.set(t,r),r}(t))throw TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let r=new FormData;return await Promise.all(Object.entries(e||{}).map(([e,t])=>tU(r,e,t,s))),r},tU=async(e,t,s,r)=>{if(void 0!==s){if(null==s)throw TypeError(`Received null for "${t}"; to pass null in FormData, you must use the string 'null'`);if("string"==typeof s||"number"==typeof s||"boolean"==typeof s)e.append(t,String(s));else if(s instanceof Response){let a={},n=s.headers.get("Content-Type");n&&(a={type:n}),e.append(t,tO([await s.blob()],tI(s,r),a))}else if(tR(s))e.append(t,tO([await new Response(tn(s)).blob()],tI(s,r)));else{let a;if((a=s)instanceof Blob&&"name"in a)e.append(t,tO([s],tI(s,r),{type:s.type}));else if(Array.isArray(s))await Promise.all(s.map(s=>tU(e,t+"[]",s,r)));else if("object"==typeof s)await Promise.all(Object.entries(s).map(([s,a])=>tU(e,`${t}[${s}]`,a,r)));else throw TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${s} instead`)}}},tD=e=>null!=e&&"object"==typeof e&&"number"==typeof e.size&&"string"==typeof e.type&&"function"==typeof e.text&&"function"==typeof e.slice&&"function"==typeof e.arrayBuffer;async function tq(e,t,s){let r,a;if(tP(),e=await e,t||(t=tI(e,!0)),null!=(r=e)&&"object"==typeof r&&"string"==typeof r.name&&"number"==typeof r.lastModified&&tD(r))return e instanceof File&&null==t&&null==s?e:tO([await e.arrayBuffer()],t??e.name,{type:e.type,lastModified:e.lastModified,...s});if(null!=(a=e)&&"object"==typeof a&&"string"==typeof a.url&&"function"==typeof a.blob){let r=await e.blob();return t||(t=new URL(e.url).pathname.split(/[\\/]/).pop()),tO(await tB(r),t,s)}let n=await tB(e);if(!s?.type){let e=n.find(e=>"object"==typeof e&&"type"in e&&e.type);"string"==typeof e&&(s={...s,type:e})}return tO(n,t,s)}async function tB(e){let t=[];if("string"==typeof e||ArrayBuffer.isView(e)||e instanceof ArrayBuffer)t.push(e);else if(tD(e))t.push(e instanceof Blob?e:await e.arrayBuffer());else if(tR(e))for await(let s of e)t.push(...await tB(s));else{let t=e?.constructor?.name;throw Error(`Unexpected data type: ${typeof e}${t?`; constructor: ${t}`:""}${function(e){if("object"!=typeof e||null===e)return"";let t=Object.getOwnPropertyNames(e);return`; props: [${t.map(e=>`"${e}"`).join(", ")}]`}(e)}`)}return t}class tW{constructor(e){this._client=e}}let tH=Symbol.for("brand.privateNullableHeaders"),tz=e=>{let t=new Headers,s=new Set;for(let r of e){let e=new Set;for(let[a,n]of function*(e){let t;if(!e)return;if(tH in e){let{values:t,nulls:s}=e;for(let e of(yield*t.entries(),s))yield[e,null];return}let s=!1;for(let r of(e instanceof Headers?t=e.entries():e8(e)?t=e:(s=!0,t=Object.entries(e??{})),t)){let e=r[0];if("string"!=typeof e)throw TypeError("expected header name to be a string");let t=e8(r[1])?r[1]:[r[1]],a=!1;for(let r of t)void 0!==r&&(s&&!a&&(a=!0,yield[e,null]),yield[e,r])}}(r)){let r=a.toLowerCase();e.has(r)||(t.delete(a),e.add(r)),null===n?(t.delete(a),s.add(r)):(t.append(a,n),s.delete(r))}}return{[tH]:!0,values:t,nulls:s}};function tF(e){return e.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}let tJ=Object.freeze(Object.create(null)),tG=((e=tF)=>function(t,...s){let r;if(1===t.length)return t[0];let a=!1,n=[],i=t.reduce((t,r,i)=>{/[?#]/.test(r)&&(a=!0);let o=s[i],l=(a?encodeURIComponent:e)(""+o);return i!==s.length&&(null==o||"object"==typeof o&&o.toString===Object.getPrototypeOf(Object.getPrototypeOf(o.hasOwnProperty??tJ)??tJ)?.toString)&&(l=o+"",n.push({start:t.length+r.length,length:l.length,error:`Value of type ${Object.prototype.toString.call(o).slice(8,-1)} is not a valid path parameter`})),t+r+(i===s.length?"":l)},""),o=i.split(/[?#]/,1)[0],l=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi;for(;null!==(r=l.exec(o));)n.push({start:r.index,length:r[0].length,error:`Value "${r[0]}" can't be safely passed as a path parameter`});if(n.sort((e,t)=>e.start-t.start),n.length>0){let e=0,t=n.reduce((t,s)=>{let r=" ".repeat(s.start-e),a="^".repeat(s.length);return e=s.start+s.length,t+r+a},"");throw new eJ(`Path parameters result in path with invalid segments: +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,921687,e=>{"use strict";var t=e.i(764205);let s=async(e,s)=>{try{let r=s||(0,t.getProxyBaseUrl)(),a=r?`${r}/v1/agents`:"/v1/agents",n=await fetch(a,{method:"GET",headers:{[(0,t.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json();throw Error(e.detail||"Failed to fetch agents")}let i=await n.json();return console.log("Fetched agents:",i),i.sort((e,t)=>{let s=e.agent_name||e.agent_id,r=t.agent_name||t.agent_id;return s.localeCompare(r)}),i}catch(e){throw console.error("Error fetching agents:",e),e}},r=async(e,s,r,a)=>{try{let a=await (0,t.modelInfoCall)(e,s,r,1,200),n=a?.data??[],i=(Array.isArray(n)?n:[]).filter(e=>"string"==typeof e?.litellm_params?.model&&e.litellm_params.model.startsWith("litellm_agent/")).map(e=>({model_name:e.model_name??e.model_group??"",litellm_params:{...e.litellm_params,model:e.litellm_params.model,litellm_system_prompt:e.litellm_params?.litellm_system_prompt,tools:Array.isArray(e.litellm_params?.tools)?e.litellm_params.tools:void 0},model_info:e.model_info??null}));return i.sort((e,t)=>e.model_name.localeCompare(t.model_name)),i}catch(e){throw console.error("Error fetching agent models:",e),e}};e.s(["fetchAvailableAgentModels",0,r,"fetchAvailableAgents",0,s])},124608,614677,235267,318059,953860,434788,512882,584976,720762,e=>{"use strict";let t,s,r;e.i(247167);var a,n,i,o,l,c,d,u,h,p,m,f,g,y,x,b,v,w,_,S,j,k,N,E,T,C,A,P,O,I,R,M,$,L,U,D,q,B,W,H,z,F,J,G,V,K,X,Y,Q,Z,ee,et,es,er,ea,en,ei,eo,el,ec,ed,eu,eh,ep,em,ef,eg,ey,ex=e.i(931067),eb=e.i(271645);let ev={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2zM304 456a88 88 0 100-176 88 88 0 000 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z"}}]},name:"picture",theme:"outlined"};var ew=e.i(9583),e_=eb.forwardRef(function(e,t){return eb.createElement(ew.default,(0,ex.default)({},e,{ref:t,icon:ev}))});e.s(["PictureOutlined",0,e_],124608);let eS=new Uint8Array(16),ej=[];for(let e=0;e<256;++e)ej.push((e+256).toString(16).slice(1));let ek=function(e,t,s){return t||e||!crypto.randomUUID?function(e,t,s){let r=(e=e||{}).random??e.rng?.()??crypto.getRandomValues(eS);if(r.length<16)throw Error("Random bytes length must be >= 16");if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){if((s=s||0)<0||s+16>t.length)throw RangeError(`UUID byte range ${s}:${s+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[s+e]=r[e];return t}return function(e,t=0){return(ej[e[t+0]]+ej[e[t+1]]+ej[e[t+2]]+ej[e[t+3]]+"-"+ej[e[t+4]]+ej[e[t+5]]+"-"+ej[e[t+6]]+ej[e[t+7]]+"-"+ej[e[t+8]]+ej[e[t+9]]+"-"+ej[e[t+10]]+ej[e[t+11]]+ej[e[t+12]]+ej[e[t+13]]+ej[e[t+14]]+ej[e[t+15]]).toLowerCase()}(r)}(e,t,s):crypto.randomUUID()};e.s(["v4",0,ek],614677);var eN=e.i(843476),eE=e.i(808613),eT=e.i(311451),eC=e.i(28651),eA=e.i(199133),eP=e.i(592968),eO=e.i(827252);function eI(e){if(!e)return[];if(Array.isArray(e))return e.map(e=>eR(e)).filter(e=>void 0!==e);let t=eR(e);return void 0!==t?[t]:[]}function eR(e,t){if(!e)return;let s=void 0!==t?t:e.default;if("object"===e.type){let t="object"!=typeof s||null===s||Array.isArray(s)?{}:{...s};return e.properties&&Object.entries(e.properties).forEach(([e,s])=>{t[e]=eR(s,t[e])}),t}if("array"===e.type){if(Array.isArray(s)){let t=e.items;if(!t)return s;if(0===s.length){let e=eI(t);return e.length?e:s}return Array.isArray(t)?s.map((e,s)=>eR(t[s]??t[t.length-1],e)):s.map(e=>eR(t,e))}return void 0!==s?s:eI(e.items)}if(void 0!==s)return s;switch(e.type){case"integer":case"number":return 0;case"boolean":return!1;default:return""}}let eM=e=>{let t=eR(e);if("object"===e.type||"array"===e.type){let s="array"===e.type?[]:{};return JSON.stringify(t??s,null,2)}return t},e$=(0,eb.forwardRef)(({tool:e,className:t},s)=>{let[r]=eE.Form.useForm(),a=(0,eb.useMemo)(()=>"string"==typeof e.inputSchema?{type:"object",properties:{input:{type:"string",description:"Input for this tool"}},required:["input"]}:e.inputSchema,[e.inputSchema]),n=(0,eb.useMemo)(()=>a.properties?.params?.type==="object"&&a.properties.params.properties?{type:"object",properties:a.properties.params.properties,required:a.properties.params.required||[]}:a,[a]);return((0,eb.useImperativeHandle)(s,()=>({getSubmitValues:async()=>{var e;let t;return e=await r.validateFields(),t={},Object.entries(e).forEach(([e,s])=>{let r=n.properties?.[e];if(r&&null!=s&&""!==s)switch(r.type){case"boolean":t[e]="true"===s||!0===s;break;case"number":case"integer":{let a=Number(s);t[e]=Number.isNaN(a)?s:"integer"===r.type?Math.trunc(a):a;break}case"object":case"array":try{let a="string"==typeof s?JSON.parse(s):s,n="object"===r.type&&null!==a&&"object"==typeof a&&!Array.isArray(a),i="array"===r.type&&Array.isArray(a);"object"===r.type&&n||"array"===r.type&&i?t[e]=a:t[e]=s}catch{t[e]=s}break;case"string":t[e]=String(s);break;default:t[e]=s}else null!=s&&""!==s&&(t[e]=s)}),a.properties?.params?.type==="object"&&a.properties.params.properties?{params:t}:t}})),eb.default.useEffect(()=>{if(r.resetFields(),!n.properties)return;let e={};Object.entries(n.properties).forEach(([t,s])=>{e[t]=eM(s)}),r.setFieldsValue(e)},[r,n,e]),"string"==typeof e.inputSchema)?(0,eN.jsx)(eE.Form,{form:r,layout:"vertical",className:t,children:(0,eN.jsx)(eE.Form.Item,{label:(0,eN.jsxs)("span",{className:"text-sm font-medium text-gray-700",children:["Input ",(0,eN.jsx)("span",{className:"text-red-500",children:"*"})]}),name:"input",rules:[{required:!0,message:"Please enter input for this tool"}],children:(0,eN.jsx)(eT.Input,{placeholder:"Enter input for this tool"})})}):n.properties?(0,eN.jsx)(eE.Form,{form:r,layout:"vertical",className:t,children:Object.entries(n.properties).map(([t,s])=>{let r=eM(s),a=`${e.name}-${t}`;return(0,eN.jsx)(eE.Form.Item,{label:(0,eN.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:[t," ",n.required?.includes(t)&&(0,eN.jsx)("span",{className:"text-red-500",children:"*"}),s.description&&(0,eN.jsx)(eP.Tooltip,{title:s.description,children:(0,eN.jsx)(eO.InfoCircleOutlined,{className:"ml-2 text-gray-400 hover:text-gray-600"})})]}),name:t,initialValue:r,rules:[{required:n.required?.includes(t),message:`Please enter ${t}`},..."object"===s.type||"array"===s.type?[{validator:(e,r)=>{if((null==r||""===r)&&!n.required?.includes(t))return Promise.resolve();try{let e="string"==typeof r?JSON.parse(r):r,t="object"===s.type&&null!==e&&"object"==typeof e&&!Array.isArray(e),a="array"===s.type&&Array.isArray(e);if("object"===s.type&&t||"array"===s.type&&a)return Promise.resolve();return Promise.reject(Error("object"===s.type?"Please enter a JSON object":"Please enter a JSON array"))}catch{return Promise.reject(Error("Invalid JSON"))}}}]:[]],children:"string"===s.type&&s.enum?(0,eN.jsx)(eA.Select,{placeholder:`Select ${t}`,allowClear:!n.required?.includes(t),options:s.enum.map(e=>({value:e,label:e}))}):"string"!==s.type||s.enum?"number"===s.type||"integer"===s.type?(0,eN.jsx)(eC.InputNumber,{step:"integer"===s.type?1:void 0,placeholder:s.description||`Enter ${t}`,className:"w-full",style:{width:"100%"}}):"boolean"===s.type?(0,eN.jsx)(eA.Select,{placeholder:`Select ${t}`,allowClear:!n.required?.includes(t),options:[{value:!0,label:"True"},{value:!1,label:"False"}]}):"object"===s.type||"array"===s.type?(0,eN.jsx)(eT.Input.TextArea,{rows:"object"===s.type?4:3,placeholder:s.description||("object"===s.type?`Enter JSON object for ${t}`:`Enter JSON array for ${t}`),spellCheck:!1,className:"font-mono"}):(0,eN.jsx)(eT.Input,{placeholder:s.description||`Enter ${t}`,allowClear:!0}):(0,eN.jsx)(eT.Input,{placeholder:s.description||`Enter ${t}`,allowClear:!0})},a)})}):(0,eN.jsx)(eE.Form,{form:r,layout:"vertical",className:t,children:(0,eN.jsx)("div",{className:"py-4 text-center text-sm text-gray-500",children:"No parameters required for this tool."})})});e$.displayName="MCPToolArgumentsForm",e.s(["default",0,e$],235267);var eL=e.i(764205);e.s(["default",0,({onChange:e,value:t,className:s,accessToken:r})=>{let[a,n]=(0,eb.useState)([]),[i,o]=(0,eb.useState)(!1);return(0,eb.useEffect)(()=>{(async()=>{if(r)try{let e=await (0,eL.tagListCall)(r);console.log("List tags response:",e),n(Object.values(e))}catch(e){console.error("Error fetching tags:",e)}finally{o(!1)}})()},[r]),(0,eN.jsx)(eA.Select,{mode:"tags",showSearch:!0,placeholder:"Select or create tags",onChange:e,value:t,loading:i,className:s,options:a.map(e=>({label:e.name,value:e.name,title:e.description||e.name})),optionFilterProp:"label",tokenSeparators:[","],maxTagCount:"responsive",allowClear:!0,style:{width:"100%"}})}],318059);let eU=e=>{if(!e)return;let t={};if(e.id&&(t.taskId=e.id),e.contextId&&(t.contextId=e.contextId),e.status&&(t.status={state:e.status.state,timestamp:e.status.timestamp},e.status.message?.parts)){let s=e.status.message.parts.filter(e=>"text"===e.kind&&e.text).map(e=>e.text).join(" ");s&&(t.status.message=s)}return e.metadata&&"object"==typeof e.metadata&&(t.metadata=e.metadata),Object.keys(t).length>0?t:void 0},eD=async(e,t,s,r,a,n,i,o,l,c)=>{let d=l||(0,eL.getProxyBaseUrl)(),u=d?`${d}/a2a/${e}/message/send`:`/a2a/${e}/message/send`,h={jsonrpc:"2.0",id:ek(),method:"message/send",params:{message:{kind:"message",messageId:ek().replace(/-/g,""),role:"user",parts:[{kind:"text",text:t}]}}};c&&c.length>0&&(h.params.metadata={guardrails:c});let p=performance.now();try{let t=await fetch(u,{method:"POST",headers:{[(0,eL.getGlobalLitellmHeaderName)()]:`Bearer ${r}`,"Content-Type":"application/json"},body:JSON.stringify(h),signal:a}),l=performance.now()-p;if(n&&n(l),!t.ok){let e=await t.json();throw Error(e.error?.message||e.detail||`HTTP ${t.status}`)}let c=await t.json(),d=performance.now()-p;if(i&&i(d),c.error)throw Error(c.error.message);let m=c.result;if(m){let t="",r=eU(m);if(r&&o&&o(r),m.artifacts&&Array.isArray(m.artifacts)){for(let e of m.artifacts)if(e.parts&&Array.isArray(e.parts))for(let s of e.parts)"text"===s.kind&&s.text&&(t+=s.text)}else if(m.parts&&Array.isArray(m.parts))for(let e of m.parts)"text"===e.kind&&e.text&&(t+=e.text);else if(m.status?.message?.parts)for(let e of m.status.message.parts)"text"===e.kind&&e.text&&(t+=e.text);t?s(t,`a2a_agent/${e}`):(console.warn("Could not extract text from A2A response, showing raw JSON:",m),s(JSON.stringify(m,null,2),`a2a_agent/${e}`))}}catch(e){if(a?.aborted)return void console.log("A2A request was cancelled");throw console.error("A2A send message error:",e),e}},eq=async(e,t,s,r,a,n,i,o,l)=>{let c,d=l||(0,eL.getProxyBaseUrl)(),u=d?`${d}/a2a/${e}`:`/a2a/${e}`,h=ek(),p=ek().replace(/-/g,""),m=performance.now(),f=!1,g="";try{let l=await fetch(u,{method:"POST",headers:{[(0,eL.getGlobalLitellmHeaderName)()]:`Bearer ${r}`,"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:h,method:"message/stream",params:{message:{kind:"message",messageId:p,role:"user",parts:[{kind:"text",text:t}]}}}),signal:a});if(!l.ok){let e=await l.json();throw Error(e.error?.message||e.detail||`HTTP ${l.status}`)}let d=l.body?.getReader();if(!d)throw Error("No response body");let y=new TextDecoder,x="",b=!1;for(;!b;){let t=await d.read();b=t.done;let r=t.value;if(b)break;let a=(x+=y.decode(r,{stream:!0})).split("\n");for(let t of(x=a.pop()||"",a))if(t.trim())try{let r=JSON.parse(t);if(!f){f=!0;let e=performance.now()-m;n&&n(e)}let a=r.result;if(a){let t=eU(a);t&&(c={...c,...t});let r=a.kind;if("artifact-update"===r&&a.artifact){let t=a.artifact;if(t.parts&&Array.isArray(t.parts))for(let r of t.parts)"text"===r.kind&&r.text&&(g+=r.text,s(g,`a2a_agent/${e}`))}else if(a.artifacts&&Array.isArray(a.artifacts)){for(let t of a.artifacts)if(t.parts&&Array.isArray(t.parts))for(let r of t.parts)"text"===r.kind&&r.text&&(g+=r.text,s(g,`a2a_agent/${e}`))}else if("status-update"===r);else if(a.parts&&Array.isArray(a.parts))for(let t of a.parts)"text"===t.kind&&t.text&&(g+=t.text,s(g,`a2a_agent/${e}`))}if(r.error){let e=r.error.message||"Unknown A2A error";throw Error(e)}}catch(e){if(e instanceof Error&&e.message&&!e.message.includes("JSON"))throw e;t.trim().length>0&&console.warn("Failed to parse A2A streaming chunk:",t,e)}}let v=performance.now()-m;i&&i(v),c&&o&&o(c)}catch(e){if(a?.aborted)return void console.log("A2A streaming request was cancelled");throw console.error("A2A stream message error:",e),e}};function eB(e,t,s,r,a){if("m"===r)throw TypeError("Private method is not writable");if("a"===r&&!a)throw TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?a.call(e,s):a?a.value=s:t.set(e,s),s}function eW(e,t,s,r){if("a"===s&&!r)throw TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?r:"a"===s?r.call(e):r?r.value:t.get(e)}e.s(["makeA2ASendMessageRequest",0,eD,"makeA2AStreamMessageRequest",0,eq],953860);let eH=function(){let{crypto:e}=globalThis;if(e?.randomUUID)return eH=e.randomUUID.bind(e),e.randomUUID();let t=new Uint8Array(1),s=e?()=>e.getRandomValues(t)[0]:()=>255*Math.random()&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,e=>(e^s()&15>>e/4).toString(16))};function ez(e){return"object"==typeof e&&null!==e&&("name"in e&&"AbortError"===e.name||"message"in e&&String(e.message).includes("FetchRequestCanceledException"))}let eF=e=>{if(e instanceof Error)return e;if("object"==typeof e&&null!==e){try{if("[object Error]"===Object.prototype.toString.call(e)){let t=Error(e.message,e.cause?{cause:e.cause}:{});return e.stack&&(t.stack=e.stack),e.cause&&!t.cause&&(t.cause=e.cause),e.name&&(t.name=e.name),t}}catch{}try{return Error(JSON.stringify(e))}catch{}}return Error(e)};class eJ extends Error{}class eG extends eJ{constructor(e,t,s,r,a){super(`${eG.makeMessage(e,t,s)}`),this.status=e,this.headers=r,this.requestID=r?.get("request-id"),this.error=t,this.type=a??null}static makeMessage(e,t,s){let r=t?.message?"string"==typeof t.message?t.message:JSON.stringify(t.message):t?JSON.stringify(t):s;return e&&r?`${e} ${r}`:e?`${e} status code (no body)`:r||"(no status code or body)"}static generate(e,t,s,r){if(!e||!r)return new eK({message:s,cause:eF(t)});let a=t?.error?.type;return 400===e?new eY(e,t,s,r,a):401===e?new eQ(e,t,s,r,a):403===e?new eZ(e,t,s,r,a):404===e?new e0(e,t,s,r,a):409===e?new e1(e,t,s,r,a):422===e?new e2(e,t,s,r,a):429===e?new e4(e,t,s,r,a):e>=500?new e6(e,t,s,r,a):new eG(e,t,s,r,a)}}class eV extends eG{constructor({message:e}={}){super(void 0,void 0,e||"Request was aborted.",void 0)}}class eK extends eG{constructor({message:e,cause:t}){super(void 0,void 0,e||"Connection error.",void 0),t&&(this.cause=t)}}class eX extends eK{constructor({message:e}={}){super({message:e??"Request timed out."})}}class eY extends eG{}class eQ extends eG{}class eZ extends eG{}class e0 extends eG{}class e1 extends eG{}class e2 extends eG{}class e4 extends eG{}class e6 extends eG{}let e3=/^[a-z][a-z0-9+.-]*:/i,e5=e=>(e5=Array.isArray)(e),e8=e5;function e7(e){return"object"!=typeof e?{}:e??{}}function e9(e){if(!e)return!0;for(let t in e)return!1;return!0}let te=e=>{try{return JSON.parse(e)}catch(e){return}},tt="0.92.0",ts=e=>"x32"===e?"x32":"x86_64"===e||"x64"===e?"x64":"arm"===e?"arm":"aarch64"===e||"arm64"===e?"arm64":e?`other:${e}`:"unknown",tr=e=>(e=e.toLowerCase()).includes("ios")?"iOS":"android"===e?"Android":"darwin"===e?"MacOS":"win32"===e?"Windows":"freebsd"===e?"FreeBSD":"openbsd"===e?"OpenBSD":"linux"===e?"Linux":e?`Other:${e}`:"Unknown";function ta(...e){let t=globalThis.ReadableStream;if(void 0===t)throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new t(...e)}function tn(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return ta({start(){},async pull(e){let{done:s,value:r}=await t.next();s?e.close():e.enqueue(r)},async cancel(){await t.return?.()}})}function ti(e){if(e[Symbol.asyncIterator])return e;let t=e.getReader();return{async next(){try{let e=await t.read();return e?.done&&t.releaseLock(),e}catch(e){throw t.releaseLock(),e}},async return(){let e=t.cancel();return t.releaseLock(),await e,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function to(e){if(null===e||"object"!=typeof e)return;if(e[Symbol.asyncIterator])return void await e[Symbol.asyncIterator]().return?.();let t=e.getReader(),s=t.cancel();t.releaseLock(),await s}let tl=({headers:e,body:t})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(t)});function tc(e){let t;return(s??(s=(t=new globalThis.TextEncoder).encode.bind(t)))(e)}function td(e){let t;return(r??(r=(t=new globalThis.TextDecoder).decode.bind(t)))(e)}class tu{constructor(){a.set(this,void 0),n.set(this,void 0),eB(this,a,new Uint8Array,"f"),eB(this,n,null,"f")}decode(e){let t;if(null==e)return[];let s=e instanceof ArrayBuffer?new Uint8Array(e):"string"==typeof e?tc(e):e;eB(this,a,function(e){let t=0;for(let s of e)t+=s.length;let s=new Uint8Array(t),r=0;for(let t of e)s.set(t,r),r+=t.length;return s}([eW(this,a,"f"),s]),"f");let r=[];for(;null!=(t=function(e,t){for(let s=t??0;s{if(e){if(Object.prototype.hasOwnProperty.call(th,e))return e;tx(s).warn(`${t} was set to ${JSON.stringify(e)}, expected one of ${JSON.stringify(Object.keys(th))}`)}};function tm(){}function tf(e,t,s){return!t||th[e]>th[s]?tm:t[e].bind(t)}let tg={error:tm,warn:tm,info:tm,debug:tm},ty=new WeakMap;function tx(e){let t=e.logger,s=e.logLevel??"off";if(!t)return tg;let r=ty.get(t);if(r&&r[0]===s)return r[1];let a={error:tf("error",t,s),warn:tf("warn",t,s),info:tf("info",t,s),debug:tf("debug",t,s)};return ty.set(t,[s,a]),a}let tb=e=>(e.options&&(e.options={...e.options},delete e.options.headers),e.headers&&(e.headers=Object.fromEntries((e.headers instanceof Headers?[...e.headers]:Object.entries(e.headers)).map(([e,t])=>[e,"x-api-key"===e.toLowerCase()||"authorization"===e.toLowerCase()||"cookie"===e.toLowerCase()||"set-cookie"===e.toLowerCase()?"***":t]))),"retryOfRequestLogID"in e&&(e.retryOfRequestLogID&&(e.retryOf=e.retryOfRequestLogID),delete e.retryOfRequestLogID),e);class tv{constructor(e,t,s){this.iterator=e,i.set(this,void 0),this.controller=t,eB(this,i,s,"f")}static fromSSEResponse(e,t,s){let r=!1,a=s?tx(s):console;async function*n(){if(r)throw new eJ("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");r=!0;let s=!1;try{for await(let s of tw(e,t)){if("completion"===s.event)try{yield JSON.parse(s.data)}catch(e){throw a.error("Could not parse message into JSON:",s.data),a.error("From chunk:",s.raw),e}if("message_start"===s.event||"message_delta"===s.event||"message_stop"===s.event||"content_block_start"===s.event||"content_block_delta"===s.event||"content_block_stop"===s.event||"message"===s.event||"user.message"===s.event||"user.interrupt"===s.event||"user.tool_confirmation"===s.event||"user.custom_tool_result"===s.event||"agent.message"===s.event||"agent.thinking"===s.event||"agent.tool_use"===s.event||"agent.tool_result"===s.event||"agent.mcp_tool_use"===s.event||"agent.mcp_tool_result"===s.event||"agent.custom_tool_use"===s.event||"agent.thread_context_compacted"===s.event||"session.status_running"===s.event||"session.status_idle"===s.event||"session.status_rescheduled"===s.event||"session.status_terminated"===s.event||"session.error"===s.event||"session.deleted"===s.event||"span.model_request_start"===s.event||"span.model_request_end"===s.event)try{yield JSON.parse(s.data)}catch(e){throw a.error("Could not parse message into JSON:",s.data),a.error("From chunk:",s.raw),e}if("ping"!==s.event&&"error"===s.event){let t=te(s.data)??s.data,r=t?.error?.type;throw new eG(void 0,t,void 0,e.headers,r)}}s=!0}catch(e){if(ez(e))return;throw e}finally{s||t.abort()}}return new tv(n,t,s)}static fromReadableStream(e,t,s){let r=!1;async function*a(){let t=new tu;for await(let s of ti(e))for(let e of t.decode(s))yield e;for(let e of t.flush())yield e}return new tv(async function*(){if(r)throw new eJ("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");r=!0;let e=!1;try{for await(let t of a())!e&&t&&(yield JSON.parse(t));e=!0}catch(e){if(ez(e))return;throw e}finally{e||t.abort()}},t,s)}[(i=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let e=[],t=[],s=this.iterator(),r=r=>({next:()=>{if(0===r.length){let r=s.next();e.push(r),t.push(r)}return r.shift()}});return[new tv(()=>r(e),this.controller,eW(this,i,"f")),new tv(()=>r(t),this.controller,eW(this,i,"f"))]}toReadableStream(){let e,t=this;return ta({async start(){e=t[Symbol.asyncIterator]()},async pull(t){try{let{value:s,done:r}=await e.next();if(r)return t.close();let a=tc(JSON.stringify(s)+"\n");t.enqueue(a)}catch(e){t.error(e)}},async cancel(){await e.return?.()}})}}async function*tw(e,t){if(!e.body){if(t.abort(),void 0!==globalThis.navigator&&"ReactNative"===globalThis.navigator.product)throw new eJ("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new eJ("Attempted to iterate over a response with no body")}let s=new tS,r=new tu;for await(let t of t_(ti(e.body)))for(let e of r.decode(t)){let t=s.decode(e);t&&(yield t)}for(let e of r.flush()){let t=s.decode(e);t&&(yield t)}}async function*t_(e){let t=new Uint8Array;for await(let s of e){let e;if(null==s)continue;let r=s instanceof ArrayBuffer?new Uint8Array(s):"string"==typeof s?tc(s):s,a=new Uint8Array(t.length+r.length);for(a.set(t),a.set(r,t.length),t=a;-1!==(e=function(e){for(let t=0;t0&&(yield t)}class tS{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){var t;let s;if(e.endsWith("\r")&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;let e={event:this.event,data:this.data.join("\n"),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],e}if(this.chunks.push(e),e.startsWith(":"))return null;let[r,a,n]=-1!==(s=(t=e).indexOf(":"))?[t.substring(0,s),":",t.substring(s+1)]:[t,"",""];return n.startsWith(" ")&&(n=n.substring(1)),"event"===r?this.event=n:"data"===r&&this.data.push(n),null}}async function tj(e,t){let{response:s,requestLogID:r,retryOfRequestLogID:a,startTime:n}=t,i=await (async()=>{if(t.options.stream)return(tx(e).debug("response",s.status,s.url,s.headers,s.body),t.options.__streamClass)?t.options.__streamClass.fromSSEResponse(s,t.controller):tv.fromSSEResponse(s,t.controller);if(204===s.status)return null;if(t.options.__binaryResponse)return s;let r=s.headers.get("content-type"),a=r?.split(";")[0]?.trim();if(a?.includes("application/json")||a?.endsWith("+json")){if("0"===s.headers.get("content-length"))return;return tk(await s.json(),s)}return await s.text()})();return tx(e).debug(`[${r}] response parsed`,tb({retryOfRequestLogID:a,url:s.url,status:s.status,body:i,durationMs:Date.now()-n})),i}function tk(e,t){return!e||"object"!=typeof e||Array.isArray(e)?e:Object.defineProperty(e,"_request_id",{value:t.headers.get("request-id"),enumerable:!1})}class tN extends Promise{constructor(e,t,s=tj){super(e=>{e(null)}),this.responsePromise=t,this.parseResponse=s,o.set(this,void 0),eB(this,o,e,"f")}_thenUnwrap(e){return new tN(eW(this,o,"f"),this.responsePromise,async(t,s)=>tk(e(await this.parseResponse(t,s),s),s.response))}asResponse(){return this.responsePromise.then(e=>e.response)}async withResponse(){let[e,t]=await Promise.all([this.parse(),this.asResponse()]);return{data:e,response:t,request_id:t.headers.get("request-id")}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(e=>this.parseResponse(eW(this,o,"f"),e))),this.parsedPromise}then(e,t){return this.parse().then(e,t)}catch(e){return this.parse().catch(e)}finally(e){return this.parse().finally(e)}}o=new WeakMap;class tE{constructor(e,t,s,r){l.set(this,void 0),eB(this,l,e,"f"),this.options=r,this.response=t,this.body=s}hasNextPage(){return!!this.getPaginatedItems().length&&null!=this.nextPageRequestOptions()}async getNextPage(){let e=this.nextPageRequestOptions();if(!e)throw new eJ("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await eW(this,l,"f").requestAPIList(this.constructor,e)}async *iterPages(){let e=this;for(yield e;e.hasNextPage();)e=await e.getNextPage(),yield e}async *[(l=new WeakMap,Symbol.asyncIterator)](){for await(let e of this.iterPages())for(let t of e.getPaginatedItems())yield t}}class tT extends tN{constructor(e,t,s){super(e,t,async(e,t)=>new s(e,t.response,await tj(e,t),t.options))}async *[Symbol.asyncIterator](){for await(let e of(await this))yield e}}class tC extends tE{constructor(e,t,s,r){super(e,t,s,r),this.data=s.data||[],this.has_more=s.has_more||!1,this.first_id=s.first_id||null,this.last_id=s.last_id||null}getPaginatedItems(){return this.data??[]}hasNextPage(){return!1!==this.has_more&&super.hasNextPage()}nextPageRequestOptions(){if(this.options.query?.before_id){let e=this.first_id;return e?{...this.options,query:{...e7(this.options.query),before_id:e}}:null}let e=this.last_id;return e?{...this.options,query:{...e7(this.options.query),after_id:e}}:null}}class tA extends tE{constructor(e,t,s,r){super(e,t,s,r),this.data=s.data||[],this.next_page=s.next_page||null}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){let e=this.next_page;return e?{...this.options,query:{...e7(this.options.query),page:e}}:null}}let tP=()=>{if("u"parseInt(e.versions.node.split("."))?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function tO(e,t,s){return tP(),new File(e,t??"unknown_file",s)}function tI(e,t){let s="object"==typeof e&&null!==e&&("name"in e&&e.name&&String(e.name)||"url"in e&&e.url&&String(e.url)||"filename"in e&&e.filename&&String(e.filename)||"path"in e&&e.path&&String(e.path))||"";return t?s.split(/[\\/]/).pop()||void 0:s}let tR=e=>null!=e&&"object"==typeof e&&"function"==typeof e[Symbol.asyncIterator],tM=async(e,t,s=!0)=>({...e,body:await tL(e.body,t,s)}),t$=new WeakMap,tL=async(e,t,s=!0)=>{if(!await function(e){let t="function"==typeof e?e:e.fetch,s=t$.get(t);if(s)return s;let r=(async()=>{try{let e="Response"in t?t.Response:(await t("data:,")).constructor,s=new FormData;if(s.toString()===await new e(s).text())return!1;return!0}catch{return!0}})();return t$.set(t,r),r}(t))throw TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let r=new FormData;return await Promise.all(Object.entries(e||{}).map(([e,t])=>tU(r,e,t,s))),r},tU=async(e,t,s,r)=>{if(void 0!==s){if(null==s)throw TypeError(`Received null for "${t}"; to pass null in FormData, you must use the string 'null'`);if("string"==typeof s||"number"==typeof s||"boolean"==typeof s)e.append(t,String(s));else if(s instanceof Response){let a={},n=s.headers.get("Content-Type");n&&(a={type:n}),e.append(t,tO([await s.blob()],tI(s,r),a))}else if(tR(s))e.append(t,tO([await new Response(tn(s)).blob()],tI(s,r)));else{let a;if((a=s)instanceof Blob&&"name"in a)e.append(t,tO([s],tI(s,r),{type:s.type}));else if(Array.isArray(s))await Promise.all(s.map(s=>tU(e,t+"[]",s,r)));else if("object"==typeof s)await Promise.all(Object.entries(s).map(([s,a])=>tU(e,`${t}[${s}]`,a,r)));else throw TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${s} instead`)}}},tD=e=>null!=e&&"object"==typeof e&&"number"==typeof e.size&&"string"==typeof e.type&&"function"==typeof e.text&&"function"==typeof e.slice&&"function"==typeof e.arrayBuffer;async function tq(e,t,s){let r,a;if(tP(),e=await e,t||(t=tI(e,!0)),null!=(r=e)&&"object"==typeof r&&"string"==typeof r.name&&"number"==typeof r.lastModified&&tD(r))return e instanceof File&&null==t&&null==s?e:tO([await e.arrayBuffer()],t??e.name,{type:e.type,lastModified:e.lastModified,...s});if(null!=(a=e)&&"object"==typeof a&&"string"==typeof a.url&&"function"==typeof a.blob){let r=await e.blob();return t||(t=new URL(e.url).pathname.split(/[\\/]/).pop()),tO(await tB(r),t,s)}let n=await tB(e);if(!s?.type){let e=n.find(e=>"object"==typeof e&&"type"in e&&e.type);"string"==typeof e&&(s={...s,type:e})}return tO(n,t,s)}async function tB(e){let t=[];if("string"==typeof e||ArrayBuffer.isView(e)||e instanceof ArrayBuffer)t.push(e);else if(tD(e))t.push(e instanceof Blob?e:await e.arrayBuffer());else if(tR(e))for await(let s of e)t.push(...await tB(s));else{let t=e?.constructor?.name;throw Error(`Unexpected data type: ${typeof e}${t?`; constructor: ${t}`:""}${function(e){if("object"!=typeof e||null===e)return"";let t=Object.getOwnPropertyNames(e);return`; props: [${t.map(e=>`"${e}"`).join(", ")}]`}(e)}`)}return t}class tW{constructor(e){this._client=e}}let tH=Symbol.for("brand.privateNullableHeaders"),tz=e=>{let t=new Headers,s=new Set;for(let r of e){let e=new Set;for(let[a,n]of function*(e){let t;if(!e)return;if(tH in e){let{values:t,nulls:s}=e;for(let e of(yield*t.entries(),s))yield[e,null];return}let s=!1;for(let r of(e instanceof Headers?t=e.entries():e8(e)?t=e:(s=!0,t=Object.entries(e??{})),t)){let e=r[0];if("string"!=typeof e)throw TypeError("expected header name to be a string");let t=e8(r[1])?r[1]:[r[1]],a=!1;for(let r of t)void 0!==r&&(s&&!a&&(a=!0,yield[e,null]),yield[e,r])}}(r)){let r=a.toLowerCase();e.has(r)||(t.delete(a),e.add(r)),null===n?(t.delete(a),s.add(r)):(t.append(a,n),s.delete(r))}}return{[tH]:!0,values:t,nulls:s}};function tF(e){return e.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}let tJ=Object.freeze(Object.create(null)),tG=((e=tF)=>function(t,...s){let r;if(1===t.length)return t[0];let a=!1,n=[],i=t.reduce((t,r,i)=>{/[?#]/.test(r)&&(a=!0);let o=s[i],l=(a?encodeURIComponent:e)(""+o);return i!==s.length&&(null==o||"object"==typeof o&&o.toString===Object.getPrototypeOf(Object.getPrototypeOf(o.hasOwnProperty??tJ)??tJ)?.toString)&&(l=o+"",n.push({start:t.length+r.length,length:l.length,error:`Value of type ${Object.prototype.toString.call(o).slice(8,-1)} is not a valid path parameter`})),t+r+(i===s.length?"":l)},""),o=i.split(/[?#]/,1)[0],l=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi;for(;null!==(r=l.exec(o));)n.push({start:r.index,length:r[0].length,error:`Value "${r[0]}" can't be safely passed as a path parameter`});if(n.sort((e,t)=>e.start-t.start),n.length>0){let e=0,t=n.reduce((t,s)=>{let r=" ".repeat(s.start-e),a="^".repeat(s.length);return e=s.start+s.length,t+r+a},"");throw new eJ(`Path parameters result in path with invalid segments: ${n.map(e=>e.error).join("\n")} ${i} -${t}`)}return i})(tF);class tV extends tW{create(e,t){let{betas:s,...r}=e;return this._client.post("/v1/environments?beta=true",{body:r,...t,headers:tz([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString()},t?.headers])})}retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/environments/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}update(e,t,s){let{betas:r,...a}=t;return this._client.post(tG`/v1/environments/${e}?beta=true`,{body:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/environments?beta=true",tA,{query:r,...t,headers:tz([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString()},t?.headers])})}delete(e,t={},s){let{betas:r}=t??{};return this._client.delete(tG`/v1/environments/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}archive(e,t={},s){let{betas:r}=t??{};return this._client.post(tG`/v1/environments/${e}/archive?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}}let tK=Symbol("anthropic.sdk.stainlessHelper");function tX(e){return"object"==typeof e&&null!==e&&tK in e}function tY(e,t){let s=new Set;if(e)for(let t of e)tX(t)&&s.add(t[tK]);if(t){for(let e of t)if(tX(e)&&s.add(e[tK]),Array.isArray(e.content))for(let t of e.content)tX(t)&&s.add(t[tK])}return Array.from(s)}function tQ(e,t){let s=tY(e,t);return 0===s.length?{}:{"x-stainless-helper":s.join(", ")}}class tZ extends tW{list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/files?beta=true",tC,{query:r,...t,headers:tz([{"anthropic-beta":[...s??[],"files-api-2025-04-14"].toString()},t?.headers])})}delete(e,t={},s){let{betas:r}=t??{};return this._client.delete(tG`/v1/files/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"files-api-2025-04-14"].toString()},s?.headers])})}download(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/files/${e}/content?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"files-api-2025-04-14"].toString(),Accept:"application/binary"},s?.headers]),__binaryResponse:!0})}retrieveMetadata(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/files/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"files-api-2025-04-14"].toString()},s?.headers])})}upload(e,t){var s;let{betas:r,...a}=e;return this._client.post("/v1/files?beta=true",tM({body:a,...t,headers:tz([{"anthropic-beta":[...r??[],"files-api-2025-04-14"].toString()},tX(s=a.file)?{"x-stainless-helper":s[tK]}:{},t?.headers])},this._client))}}class t0 extends tW{retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/models/${e}?beta=true`,{...s,headers:tz([{...r?.toString()!=null?{"anthropic-beta":r?.toString()}:void 0},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/models?beta=true",tC,{query:r,...t,headers:tz([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},t?.headers])})}}class t1 extends tW{create(e,t){let{betas:s,...r}=e;return this._client.post("/v1/user_profiles?beta=true",{body:r,...t,headers:tz([{"anthropic-beta":[...s??[],"user-profiles-2026-03-24"].toString()},t?.headers])})}retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/user_profiles/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"user-profiles-2026-03-24"].toString()},s?.headers])})}update(e,t,s){let{betas:r,...a}=t;return this._client.post(tG`/v1/user_profiles/${e}?beta=true`,{body:a,...s,headers:tz([{"anthropic-beta":[...r??[],"user-profiles-2026-03-24"].toString()},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/user_profiles?beta=true",tA,{query:r,...t,headers:tz([{"anthropic-beta":[...s??[],"user-profiles-2026-03-24"].toString()},t?.headers])})}createEnrollmentURL(e,t={},s){let{betas:r}=t??{};return this._client.post(tG`/v1/user_profiles/${e}/enrollment_url?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"user-profiles-2026-03-24"].toString()},s?.headers])})}}class t2 extends tW{list(e,t={},s){let{betas:r,...a}=t??{};return this._client.getAPIList(tG`/v1/agents/${e}/versions?beta=true`,tA,{query:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}}class t4 extends tW{constructor(){super(...arguments),this.versions=new t2(this._client)}create(e,t){let{betas:s,...r}=e;return this._client.post("/v1/agents?beta=true",{body:r,...t,headers:tz([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString()},t?.headers])})}retrieve(e,t={},s){let{betas:r,...a}=t??{};return this._client.get(tG`/v1/agents/${e}?beta=true`,{query:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}update(e,t,s){let{betas:r,...a}=t;return this._client.post(tG`/v1/agents/${e}?beta=true`,{body:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/agents?beta=true",tA,{query:r,...t,headers:tz([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString()},t?.headers])})}archive(e,t={},s){let{betas:r}=t??{};return this._client.post(tG`/v1/agents/${e}/archive?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}}t4.Versions=t2;class t6 extends tW{create(e,t,s){let{view:r,betas:a,...n}=t;return this._client.post(tG`/v1/memory_stores/${e}/memories?beta=true`,{query:{view:r},body:n,...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}retrieve(e,t,s){let{memory_store_id:r,betas:a,...n}=t;return this._client.get(tG`/v1/memory_stores/${r}/memories/${e}?beta=true`,{query:n,...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}update(e,t,s){let{memory_store_id:r,view:a,betas:n,...i}=t;return this._client.post(tG`/v1/memory_stores/${r}/memories/${e}?beta=true`,{query:{view:a},body:i,...s,headers:tz([{"anthropic-beta":[...n??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}list(e,t={},s){let{betas:r,...a}=t??{};return this._client.getAPIList(tG`/v1/memory_stores/${e}/memories?beta=true`,tA,{query:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}delete(e,t,s){let{memory_store_id:r,expected_content_sha256:a,betas:n}=t;return this._client.delete(tG`/v1/memory_stores/${r}/memories/${e}?beta=true`,{query:{expected_content_sha256:a},...s,headers:tz([{"anthropic-beta":[...n??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}}class t3 extends tW{retrieve(e,t,s){let{memory_store_id:r,betas:a,...n}=t;return this._client.get(tG`/v1/memory_stores/${r}/memory_versions/${e}?beta=true`,{query:n,...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}list(e,t={},s){let{betas:r,...a}=t??{};return this._client.getAPIList(tG`/v1/memory_stores/${e}/memory_versions?beta=true`,tA,{query:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}redact(e,t,s){let{memory_store_id:r,betas:a}=t;return this._client.post(tG`/v1/memory_stores/${r}/memory_versions/${e}/redact?beta=true`,{...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}}class t5 extends tW{constructor(){super(...arguments),this.memories=new t6(this._client),this.memoryVersions=new t3(this._client)}create(e,t){let{betas:s,...r}=e;return this._client.post("/v1/memory_stores?beta=true",{body:r,...t,headers:tz([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString()},t?.headers])})}retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/memory_stores/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}update(e,t,s){let{betas:r,...a}=t;return this._client.post(tG`/v1/memory_stores/${e}?beta=true`,{body:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/memory_stores?beta=true",tA,{query:r,...t,headers:tz([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString()},t?.headers])})}delete(e,t={},s){let{betas:r}=t??{};return this._client.delete(tG`/v1/memory_stores/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}archive(e,t={},s){let{betas:r}=t??{};return this._client.post(tG`/v1/memory_stores/${e}/archive?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}}t5.Memories=t6,t5.MemoryVersions=t3;class t8{constructor(e,t){this.iterator=e,this.controller=t}async *decoder(){let e=new tu;for await(let t of this.iterator)for(let s of e.decode(t))yield JSON.parse(s);for(let t of e.flush())yield JSON.parse(t)}[Symbol.asyncIterator](){return this.decoder()}static fromResponse(e,t){if(!e.body){if(t.abort(),void 0!==globalThis.navigator&&"ReactNative"===globalThis.navigator.product)throw new eJ("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new eJ("Attempted to iterate over a response with no body")}return new t8(ti(e.body),t)}}class t7 extends tW{create(e,t){let{betas:s,...r}=e;return this._client.post("/v1/messages/batches?beta=true",{body:r,...t,headers:tz([{"anthropic-beta":[...s??[],"message-batches-2024-09-24"].toString()},t?.headers])})}retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/messages/batches/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"message-batches-2024-09-24"].toString()},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/messages/batches?beta=true",tC,{query:r,...t,headers:tz([{"anthropic-beta":[...s??[],"message-batches-2024-09-24"].toString()},t?.headers])})}delete(e,t={},s){let{betas:r}=t??{};return this._client.delete(tG`/v1/messages/batches/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"message-batches-2024-09-24"].toString()},s?.headers])})}cancel(e,t={},s){let{betas:r}=t??{};return this._client.post(tG`/v1/messages/batches/${e}/cancel?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"message-batches-2024-09-24"].toString()},s?.headers])})}async results(e,t={},s){let r=await this.retrieve(e);if(!r.results_url)throw new eJ(`No batch \`results_url\`; Has it finished processing? ${r.processing_status} - ${r.id}`);let{betas:a}=t??{};return this._client.get(r.results_url,{...s,headers:tz([{"anthropic-beta":[...a??[],"message-batches-2024-09-24"].toString(),Accept:"application/binary"},s?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((e,t)=>t8.fromResponse(t.response,t.controller))}}let t9={"claude-opus-4-20250514":8192,"claude-opus-4-0":8192,"claude-4-opus-20250514":8192,"anthropic.claude-opus-4-20250514-v1:0":8192,"claude-opus-4@20250514":8192,"claude-opus-4-1-20250805":8192,"anthropic.claude-opus-4-1-20250805-v1:0":8192,"claude-opus-4-1@20250805":8192};function se(e){return e?.output_format??e?.output_config?.format}function st(e,t,s){let r=se(t);return t&&"parse"in(r??{})?ss(e,t,s):{...e,content:e.content.map(e=>"text"===e.type?Object.defineProperty(Object.defineProperty({...e},"parsed_output",{value:null,enumerable:!1}),"parsed",{get:()=>(s.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),null),enumerable:!1}):e),parsed_output:null}}function ss(e,t,s){let r=null,a=e.content.map(e=>{if("text"===e.type){let a=function(e,t){let s=se(e);if(s?.type!=="json_schema")return null;try{if("parse"in s)return s.parse(t);return JSON.parse(t)}catch(e){throw new eJ(`Failed to parse structured output: ${e}`)}}(t,e.text);return null===r&&(r=a),Object.defineProperty(Object.defineProperty({...e},"parsed_output",{value:a,enumerable:!1}),"parsed",{get:()=>(s.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),a),enumerable:!1})}return e});return{...e,content:a,parsed_output:r}}let sr=e=>{if(0===e.length)return e;let t=e[e.length-1];switch(t.type){case"separator":return sr(e=e.slice(0,e.length-1));case"number":let s=t.value[t.value.length-1];if("."===s||"-"===s)return sr(e=e.slice(0,e.length-1));case"string":let r=e[e.length-2];if(r?.type==="delimiter"||r?.type==="brace"&&"{"===r.value)return sr(e=e.slice(0,e.length-1));break;case"delimiter":return sr(e=e.slice(0,e.length-1))}return e},sa=e=>{var t;let s,r;return JSON.parse((t=sr((e=>{let t=0,s=[];for(;t{"brace"===e.type&&("{"===e.value?s.push("}"):s.splice(s.lastIndexOf("}"),1)),"paren"===e.type&&("["===e.value?s.push("]"):s.splice(s.lastIndexOf("]"),1))}),s.length>0&&s.reverse().map(e=>{"}"===e?t.push({type:"brace",value:"}"}):"]"===e&&t.push({type:"paren",value:"]"})}),r="",t.map(e=>{"string"===e.type?r+='"'+e.value+'"':r+=e.value}),r))},sn="__json_buf";function si(e){return"tool_use"===e.type||"server_tool_use"===e.type||"mcp_tool_use"===e.type}class so{constructor(e,t){c.add(this),this.messages=[],this.receivedMessages=[],d.set(this,void 0),u.set(this,null),this.controller=new AbortController,h.set(this,void 0),p.set(this,()=>{}),m.set(this,()=>{}),g.set(this,void 0),f.set(this,()=>{}),y.set(this,()=>{}),x.set(this,{}),b.set(this,!1),v.set(this,!1),w.set(this,!1),_.set(this,!1),S.set(this,void 0),j.set(this,void 0),k.set(this,void 0),T.set(this,e=>{if(eB(this,v,!0,"f"),ez(e)&&(e=new eV),e instanceof eV)return eB(this,w,!0,"f"),this._emit("abort",e);if(e instanceof eJ)return this._emit("error",e);if(e instanceof Error){let t=new eJ(e.message);return t.cause=e,this._emit("error",t)}return this._emit("error",new eJ(String(e)))}),eB(this,h,new Promise((e,t)=>{eB(this,p,e,"f"),eB(this,m,t,"f")}),"f"),eB(this,g,new Promise((e,t)=>{eB(this,f,e,"f"),eB(this,y,t,"f")}),"f"),eW(this,h,"f").catch(()=>{}),eW(this,g,"f").catch(()=>{}),eB(this,u,e,"f"),eB(this,k,t?.logger??console,"f")}get response(){return eW(this,S,"f")}get request_id(){return eW(this,j,"f")}async withResponse(){eB(this,_,!0,"f");let e=await eW(this,h,"f");if(!e)throw Error("Could not resolve a `Response` object");return{data:this,response:e,request_id:e.headers.get("request-id")}}static fromReadableStream(e){let t=new so(null);return t._run(()=>t._fromReadableStream(e)),t}static createMessage(e,t,s,{logger:r}={}){let a=new so(t,{logger:r});for(let e of t.messages)a._addMessageParam(e);return eB(a,u,{...t,stream:!0},"f"),a._run(()=>a._createMessage(e,{...t,stream:!0},{...s,headers:{...s?.headers,"X-Stainless-Helper-Method":"stream"}})),a}_run(e){e().then(()=>{this._emitFinal(),this._emit("end")},eW(this,T,"f"))}_addMessageParam(e){this.messages.push(e)}_addMessage(e,t=!0){this.receivedMessages.push(e),t&&this._emit("message",e)}async _createMessage(e,t,s){let r,a=s?.signal;a&&(a.aborted&&this.controller.abort(),r=this.controller.abort.bind(this.controller),a.addEventListener("abort",r));try{eW(this,c,"m",C).call(this);let{response:r,data:a}=await e.create({...t,stream:!0},{...s,signal:this.controller.signal}).withResponse();for await(let e of(this._connected(r),a))eW(this,c,"m",A).call(this,e);if(a.controller.signal?.aborted)throw new eV;eW(this,c,"m",P).call(this)}finally{a&&r&&a.removeEventListener("abort",r)}}_connected(e){this.ended||(eB(this,S,e,"f"),eB(this,j,e?.headers.get("request-id"),"f"),eW(this,p,"f").call(this,e),this._emit("connect"))}get ended(){return eW(this,b,"f")}get errored(){return eW(this,v,"f")}get aborted(){return eW(this,w,"f")}abort(){this.controller.abort()}on(e,t){return(eW(this,x,"f")[e]||(eW(this,x,"f")[e]=[])).push({listener:t}),this}off(e,t){let s=eW(this,x,"f")[e];if(!s)return this;let r=s.findIndex(e=>e.listener===t);return r>=0&&s.splice(r,1),this}once(e,t){return(eW(this,x,"f")[e]||(eW(this,x,"f")[e]=[])).push({listener:t,once:!0}),this}emitted(e){return new Promise((t,s)=>{eB(this,_,!0,"f"),"error"!==e&&this.once("error",s),this.once(e,t)})}async done(){eB(this,_,!0,"f"),await eW(this,g,"f")}get currentMessage(){return eW(this,d,"f")}async finalMessage(){return await this.done(),eW(this,c,"m",N).call(this)}async finalText(){return await this.done(),eW(this,c,"m",E).call(this)}_emit(e,...t){if(eW(this,b,"f"))return;"end"===e&&(eB(this,b,!0,"f"),eW(this,f,"f").call(this));let s=eW(this,x,"f")[e];if(s&&(eW(this,x,"f")[e]=s.filter(e=>!e.once),s.forEach(({listener:e})=>e(...t))),"abort"===e){let e=t[0];eW(this,_,"f")||s?.length||Promise.reject(e),eW(this,m,"f").call(this,e),eW(this,y,"f").call(this,e),this._emit("end");return}if("error"===e){let e=t[0];eW(this,_,"f")||s?.length||Promise.reject(e),eW(this,m,"f").call(this,e),eW(this,y,"f").call(this,e),this._emit("end")}}_emitFinal(){this.receivedMessages.at(-1)&&this._emit("finalMessage",eW(this,c,"m",N).call(this))}async _fromReadableStream(e,t){let s,r=t?.signal;r&&(r.aborted&&this.controller.abort(),s=this.controller.abort.bind(this.controller),r.addEventListener("abort",s));try{eW(this,c,"m",C).call(this),this._connected(null);let t=tv.fromReadableStream(e,this.controller);for await(let e of t)eW(this,c,"m",A).call(this,e);if(t.controller.signal?.aborted)throw new eV;eW(this,c,"m",P).call(this)}finally{r&&s&&r.removeEventListener("abort",s)}}[(d=new WeakMap,u=new WeakMap,h=new WeakMap,p=new WeakMap,m=new WeakMap,g=new WeakMap,f=new WeakMap,y=new WeakMap,x=new WeakMap,b=new WeakMap,v=new WeakMap,w=new WeakMap,_=new WeakMap,S=new WeakMap,j=new WeakMap,k=new WeakMap,T=new WeakMap,c=new WeakSet,N=function(){if(0===this.receivedMessages.length)throw new eJ("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},E=function(){if(0===this.receivedMessages.length)throw new eJ("stream ended without producing a Message with role=assistant");let e=this.receivedMessages.at(-1).content.filter(e=>"text"===e.type).map(e=>e.text);if(0===e.length)throw new eJ("stream ended without producing a content block with type=text");return e.join(" ")},C=function(){this.ended||eB(this,d,void 0,"f")},A=function(e){if(this.ended)return;let t=eW(this,c,"m",O).call(this,e);switch(this._emit("streamEvent",e,t),e.type){case"content_block_delta":{let s=t.content.at(-1);switch(e.delta.type){case"text_delta":"text"===s.type&&this._emit("text",e.delta.text,s.text||"");break;case"citations_delta":"text"===s.type&&this._emit("citation",e.delta.citation,s.citations??[]);break;case"input_json_delta":si(s)&&s.input&&this._emit("inputJson",e.delta.partial_json,s.input);break;case"thinking_delta":"thinking"===s.type&&this._emit("thinking",e.delta.thinking,s.thinking);break;case"signature_delta":"thinking"===s.type&&this._emit("signature",s.signature);break;case"compaction_delta":"compaction"===s.type&&s.content&&this._emit("compaction",s.content);break;default:sl(e.delta)}break}case"message_stop":this._addMessageParam(t),this._addMessage(st(t,eW(this,u,"f"),{logger:eW(this,k,"f")}),!0);break;case"content_block_stop":this._emit("contentBlock",t.content.at(-1));break;case"message_start":eB(this,d,t,"f")}},P=function(){if(this.ended)throw new eJ("stream has ended, this shouldn't happen");let e=eW(this,d,"f");if(!e)throw new eJ("request ended without sending any chunks");return eB(this,d,void 0,"f"),st(e,eW(this,u,"f"),{logger:eW(this,k,"f")})},O=function(e){let t=eW(this,d,"f");if("message_start"===e.type){if(t)throw new eJ(`Unexpected event order, got ${e.type} before receiving "message_stop"`);return e.message}if(!t)throw new eJ(`Unexpected event order, got ${e.type} before "message_start"`);switch(e.type){case"message_stop":case"content_block_stop":return t;case"message_delta":return t.container=e.delta.container,t.stop_reason=e.delta.stop_reason,t.stop_sequence=e.delta.stop_sequence,t.usage.output_tokens=e.usage.output_tokens,t.context_management=e.context_management,null!=e.usage.input_tokens&&(t.usage.input_tokens=e.usage.input_tokens),null!=e.usage.cache_creation_input_tokens&&(t.usage.cache_creation_input_tokens=e.usage.cache_creation_input_tokens),null!=e.usage.cache_read_input_tokens&&(t.usage.cache_read_input_tokens=e.usage.cache_read_input_tokens),null!=e.usage.server_tool_use&&(t.usage.server_tool_use=e.usage.server_tool_use),null!=e.usage.iterations&&(t.usage.iterations=e.usage.iterations),t;case"content_block_start":return t.content.push(e.content_block),t;case"content_block_delta":{let s=t.content.at(e.index);switch(e.delta.type){case"text_delta":s?.type==="text"&&(t.content[e.index]={...s,text:(s.text||"")+e.delta.text});break;case"citations_delta":s?.type==="text"&&(t.content[e.index]={...s,citations:[...s.citations??[],e.delta.citation]});break;case"input_json_delta":if(s&&si(s)){let r=s[sn]||"";r+=e.delta.partial_json;let a={...s};if(Object.defineProperty(a,sn,{value:r,enumerable:!1,writable:!0}),r)try{a.input=sa(r)}catch(t){let e=new eJ(`Unable to parse tool parameter JSON from model. Please retry your request or adjust your prompt. Error: ${t}. JSON: ${r}`);eW(this,T,"f").call(this,e)}t.content[e.index]=a}break;case"thinking_delta":s?.type==="thinking"&&(t.content[e.index]={...s,thinking:s.thinking+e.delta.thinking});break;case"signature_delta":s?.type==="thinking"&&(t.content[e.index]={...s,signature:e.delta.signature});break;case"compaction_delta":s?.type==="compaction"&&(t.content[e.index]={...s,content:(s.content||"")+e.delta.content});break;default:sl(e.delta)}return t}}},Symbol.asyncIterator)](){let e=[],t=[],s=!1;return this.on("streamEvent",s=>{let r=t.shift();r?r.resolve(s):e.push(s)}),this.on("end",()=>{for(let e of(s=!0,t))e.resolve(void 0);t.length=0}),this.on("abort",e=>{for(let r of(s=!0,t))r.reject(e);t.length=0}),this.on("error",e=>{for(let r of(s=!0,t))r.reject(e);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:s?{value:void 0,done:!0}:new Promise((e,s)=>t.push({resolve:e,reject:s})).then(e=>e?{value:e,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new tv(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function sl(e){}class sc extends Error{constructor(e){super("string"==typeof e?e:e.map(e=>"text"===e.type?e.text:`[${e.type}]`).join(" ")),this.name="ToolError",this.content=e}}let sd=`You have been working on the task described above but have not yet completed it. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficiently in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include: +${t}`)}return i})(tF);class tV extends tW{create(e,t){let{betas:s,...r}=e;return this._client.post("/v1/environments?beta=true",{body:r,...t,headers:tz([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString()},t?.headers])})}retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/environments/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}update(e,t,s){let{betas:r,...a}=t;return this._client.post(tG`/v1/environments/${e}?beta=true`,{body:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/environments?beta=true",tA,{query:r,...t,headers:tz([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString()},t?.headers])})}delete(e,t={},s){let{betas:r}=t??{};return this._client.delete(tG`/v1/environments/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}archive(e,t={},s){let{betas:r}=t??{};return this._client.post(tG`/v1/environments/${e}/archive?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}}let tK=Symbol("anthropic.sdk.stainlessHelper");function tX(e){return"object"==typeof e&&null!==e&&tK in e}function tY(e,t){let s=new Set;if(e)for(let t of e)tX(t)&&s.add(t[tK]);if(t){for(let e of t)if(tX(e)&&s.add(e[tK]),Array.isArray(e.content))for(let t of e.content)tX(t)&&s.add(t[tK])}return Array.from(s)}function tQ(e,t){let s=tY(e,t);return 0===s.length?{}:{"x-stainless-helper":s.join(", ")}}class tZ extends tW{list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/files?beta=true",tC,{query:r,...t,headers:tz([{"anthropic-beta":[...s??[],"files-api-2025-04-14"].toString()},t?.headers])})}delete(e,t={},s){let{betas:r}=t??{};return this._client.delete(tG`/v1/files/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"files-api-2025-04-14"].toString()},s?.headers])})}download(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/files/${e}/content?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"files-api-2025-04-14"].toString(),Accept:"application/binary"},s?.headers]),__binaryResponse:!0})}retrieveMetadata(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/files/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"files-api-2025-04-14"].toString()},s?.headers])})}upload(e,t){var s;let{betas:r,...a}=e;return this._client.post("/v1/files?beta=true",tM({body:a,...t,headers:tz([{"anthropic-beta":[...r??[],"files-api-2025-04-14"].toString()},tX(s=a.file)?{"x-stainless-helper":s[tK]}:{},t?.headers])},this._client))}}class t0 extends tW{retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/models/${e}?beta=true`,{...s,headers:tz([{...r?.toString()!=null?{"anthropic-beta":r?.toString()}:void 0},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/models?beta=true",tC,{query:r,...t,headers:tz([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},t?.headers])})}}class t1 extends tW{create(e,t){let{betas:s,...r}=e;return this._client.post("/v1/user_profiles?beta=true",{body:r,...t,headers:tz([{"anthropic-beta":[...s??[],"user-profiles-2026-03-24"].toString()},t?.headers])})}retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/user_profiles/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"user-profiles-2026-03-24"].toString()},s?.headers])})}update(e,t,s){let{betas:r,...a}=t;return this._client.post(tG`/v1/user_profiles/${e}?beta=true`,{body:a,...s,headers:tz([{"anthropic-beta":[...r??[],"user-profiles-2026-03-24"].toString()},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/user_profiles?beta=true",tA,{query:r,...t,headers:tz([{"anthropic-beta":[...s??[],"user-profiles-2026-03-24"].toString()},t?.headers])})}createEnrollmentURL(e,t={},s){let{betas:r}=t??{};return this._client.post(tG`/v1/user_profiles/${e}/enrollment_url?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"user-profiles-2026-03-24"].toString()},s?.headers])})}}class t2 extends tW{list(e,t={},s){let{betas:r,...a}=t??{};return this._client.getAPIList(tG`/v1/agents/${e}/versions?beta=true`,tA,{query:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}}class t4 extends tW{constructor(){super(...arguments),this.versions=new t2(this._client)}create(e,t){let{betas:s,...r}=e;return this._client.post("/v1/agents?beta=true",{body:r,...t,headers:tz([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString()},t?.headers])})}retrieve(e,t={},s){let{betas:r,...a}=t??{};return this._client.get(tG`/v1/agents/${e}?beta=true`,{query:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}update(e,t,s){let{betas:r,...a}=t;return this._client.post(tG`/v1/agents/${e}?beta=true`,{body:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/agents?beta=true",tA,{query:r,...t,headers:tz([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString()},t?.headers])})}archive(e,t={},s){let{betas:r}=t??{};return this._client.post(tG`/v1/agents/${e}/archive?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}}t4.Versions=t2;class t6 extends tW{create(e,t,s){let{view:r,betas:a,...n}=t;return this._client.post(tG`/v1/memory_stores/${e}/memories?beta=true`,{query:{view:r},body:n,...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}retrieve(e,t,s){let{memory_store_id:r,betas:a,...n}=t;return this._client.get(tG`/v1/memory_stores/${r}/memories/${e}?beta=true`,{query:n,...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}update(e,t,s){let{memory_store_id:r,view:a,betas:n,...i}=t;return this._client.post(tG`/v1/memory_stores/${r}/memories/${e}?beta=true`,{query:{view:a},body:i,...s,headers:tz([{"anthropic-beta":[...n??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}list(e,t={},s){let{betas:r,...a}=t??{};return this._client.getAPIList(tG`/v1/memory_stores/${e}/memories?beta=true`,tA,{query:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}delete(e,t,s){let{memory_store_id:r,expected_content_sha256:a,betas:n}=t;return this._client.delete(tG`/v1/memory_stores/${r}/memories/${e}?beta=true`,{query:{expected_content_sha256:a},...s,headers:tz([{"anthropic-beta":[...n??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}}class t3 extends tW{retrieve(e,t,s){let{memory_store_id:r,betas:a,...n}=t;return this._client.get(tG`/v1/memory_stores/${r}/memory_versions/${e}?beta=true`,{query:n,...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}list(e,t={},s){let{betas:r,...a}=t??{};return this._client.getAPIList(tG`/v1/memory_stores/${e}/memory_versions?beta=true`,tA,{query:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}redact(e,t,s){let{memory_store_id:r,betas:a}=t;return this._client.post(tG`/v1/memory_stores/${r}/memory_versions/${e}/redact?beta=true`,{...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}}class t5 extends tW{constructor(){super(...arguments),this.memories=new t6(this._client),this.memoryVersions=new t3(this._client)}create(e,t){let{betas:s,...r}=e;return this._client.post("/v1/memory_stores?beta=true",{body:r,...t,headers:tz([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString()},t?.headers])})}retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/memory_stores/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}update(e,t,s){let{betas:r,...a}=t;return this._client.post(tG`/v1/memory_stores/${e}?beta=true`,{body:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/memory_stores?beta=true",tA,{query:r,...t,headers:tz([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString()},t?.headers])})}delete(e,t={},s){let{betas:r}=t??{};return this._client.delete(tG`/v1/memory_stores/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}archive(e,t={},s){let{betas:r}=t??{};return this._client.post(tG`/v1/memory_stores/${e}/archive?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}}t5.Memories=t6,t5.MemoryVersions=t3;class t8{constructor(e,t){this.iterator=e,this.controller=t}async *decoder(){let e=new tu;for await(let t of this.iterator)for(let s of e.decode(t))yield JSON.parse(s);for(let t of e.flush())yield JSON.parse(t)}[Symbol.asyncIterator](){return this.decoder()}static fromResponse(e,t){if(!e.body){if(t.abort(),void 0!==globalThis.navigator&&"ReactNative"===globalThis.navigator.product)throw new eJ("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new eJ("Attempted to iterate over a response with no body")}return new t8(ti(e.body),t)}}class t7 extends tW{create(e,t){let{betas:s,...r}=e;return this._client.post("/v1/messages/batches?beta=true",{body:r,...t,headers:tz([{"anthropic-beta":[...s??[],"message-batches-2024-09-24"].toString()},t?.headers])})}retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/messages/batches/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"message-batches-2024-09-24"].toString()},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/messages/batches?beta=true",tC,{query:r,...t,headers:tz([{"anthropic-beta":[...s??[],"message-batches-2024-09-24"].toString()},t?.headers])})}delete(e,t={},s){let{betas:r}=t??{};return this._client.delete(tG`/v1/messages/batches/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"message-batches-2024-09-24"].toString()},s?.headers])})}cancel(e,t={},s){let{betas:r}=t??{};return this._client.post(tG`/v1/messages/batches/${e}/cancel?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"message-batches-2024-09-24"].toString()},s?.headers])})}async results(e,t={},s){let r=await this.retrieve(e);if(!r.results_url)throw new eJ(`No batch \`results_url\`; Has it finished processing? ${r.processing_status} - ${r.id}`);let{betas:a}=t??{};return this._client.get(r.results_url,{...s,headers:tz([{"anthropic-beta":[...a??[],"message-batches-2024-09-24"].toString(),Accept:"application/binary"},s?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((e,t)=>t8.fromResponse(t.response,t.controller))}}let t9={"claude-opus-4-20250514":8192,"claude-opus-4-0":8192,"claude-4-opus-20250514":8192,"anthropic.claude-opus-4-20250514-v1:0":8192,"claude-opus-4@20250514":8192,"claude-opus-4-1-20250805":8192,"anthropic.claude-opus-4-1-20250805-v1:0":8192,"claude-opus-4-1@20250805":8192};function se(e){return e?.output_format??e?.output_config?.format}function st(e,t,s){let r=se(t);return t&&"parse"in(r??{})?ss(e,t,s):{...e,content:e.content.map(e=>"text"===e.type?Object.defineProperty(Object.defineProperty({...e},"parsed_output",{value:null,enumerable:!1}),"parsed",{get:()=>(s.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),null),enumerable:!1}):e),parsed_output:null}}function ss(e,t,s){let r=null,a=e.content.map(e=>{if("text"===e.type){let a=function(e,t){let s=se(e);if(s?.type!=="json_schema")return null;try{if("parse"in s)return s.parse(t);return JSON.parse(t)}catch(e){throw new eJ(`Failed to parse structured output: ${e}`)}}(t,e.text);return null===r&&(r=a),Object.defineProperty(Object.defineProperty({...e},"parsed_output",{value:a,enumerable:!1}),"parsed",{get:()=>(s.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),a),enumerable:!1})}return e});return{...e,content:a,parsed_output:r}}let sr=e=>{if(0===e.length)return e;let t=e[e.length-1];switch(t.type){case"separator":return sr(e=e.slice(0,e.length-1));case"number":let s=t.value[t.value.length-1];if("."===s||"-"===s)return sr(e=e.slice(0,e.length-1));case"string":let r=e[e.length-2];if(r?.type==="delimiter"||r?.type==="brace"&&"{"===r.value)return sr(e=e.slice(0,e.length-1));break;case"delimiter":return sr(e=e.slice(0,e.length-1))}return e},sa=e=>{var t;let s,r;return JSON.parse((t=sr((e=>{let t=0,s=[];for(;t{"brace"===e.type&&("{"===e.value?s.push("}"):s.splice(s.lastIndexOf("}"),1)),"paren"===e.type&&("["===e.value?s.push("]"):s.splice(s.lastIndexOf("]"),1))}),s.length>0&&s.reverse().map(e=>{"}"===e?t.push({type:"brace",value:"}"}):"]"===e&&t.push({type:"paren",value:"]"})}),r="",t.map(e=>{"string"===e.type?r+='"'+e.value+'"':r+=e.value}),r))},sn="__json_buf";function si(e){return"tool_use"===e.type||"server_tool_use"===e.type||"mcp_tool_use"===e.type}class so{constructor(e,t){c.add(this),this.messages=[],this.receivedMessages=[],d.set(this,void 0),u.set(this,null),this.controller=new AbortController,h.set(this,void 0),p.set(this,()=>{}),m.set(this,()=>{}),f.set(this,void 0),g.set(this,()=>{}),y.set(this,()=>{}),x.set(this,{}),b.set(this,!1),v.set(this,!1),w.set(this,!1),_.set(this,!1),S.set(this,void 0),j.set(this,void 0),k.set(this,void 0),T.set(this,e=>{if(eB(this,v,!0,"f"),ez(e)&&(e=new eV),e instanceof eV)return eB(this,w,!0,"f"),this._emit("abort",e);if(e instanceof eJ)return this._emit("error",e);if(e instanceof Error){let t=new eJ(e.message);return t.cause=e,this._emit("error",t)}return this._emit("error",new eJ(String(e)))}),eB(this,h,new Promise((e,t)=>{eB(this,p,e,"f"),eB(this,m,t,"f")}),"f"),eB(this,f,new Promise((e,t)=>{eB(this,g,e,"f"),eB(this,y,t,"f")}),"f"),eW(this,h,"f").catch(()=>{}),eW(this,f,"f").catch(()=>{}),eB(this,u,e,"f"),eB(this,k,t?.logger??console,"f")}get response(){return eW(this,S,"f")}get request_id(){return eW(this,j,"f")}async withResponse(){eB(this,_,!0,"f");let e=await eW(this,h,"f");if(!e)throw Error("Could not resolve a `Response` object");return{data:this,response:e,request_id:e.headers.get("request-id")}}static fromReadableStream(e){let t=new so(null);return t._run(()=>t._fromReadableStream(e)),t}static createMessage(e,t,s,{logger:r}={}){let a=new so(t,{logger:r});for(let e of t.messages)a._addMessageParam(e);return eB(a,u,{...t,stream:!0},"f"),a._run(()=>a._createMessage(e,{...t,stream:!0},{...s,headers:{...s?.headers,"X-Stainless-Helper-Method":"stream"}})),a}_run(e){e().then(()=>{this._emitFinal(),this._emit("end")},eW(this,T,"f"))}_addMessageParam(e){this.messages.push(e)}_addMessage(e,t=!0){this.receivedMessages.push(e),t&&this._emit("message",e)}async _createMessage(e,t,s){let r,a=s?.signal;a&&(a.aborted&&this.controller.abort(),r=this.controller.abort.bind(this.controller),a.addEventListener("abort",r));try{eW(this,c,"m",C).call(this);let{response:r,data:a}=await e.create({...t,stream:!0},{...s,signal:this.controller.signal}).withResponse();for await(let e of(this._connected(r),a))eW(this,c,"m",A).call(this,e);if(a.controller.signal?.aborted)throw new eV;eW(this,c,"m",P).call(this)}finally{a&&r&&a.removeEventListener("abort",r)}}_connected(e){this.ended||(eB(this,S,e,"f"),eB(this,j,e?.headers.get("request-id"),"f"),eW(this,p,"f").call(this,e),this._emit("connect"))}get ended(){return eW(this,b,"f")}get errored(){return eW(this,v,"f")}get aborted(){return eW(this,w,"f")}abort(){this.controller.abort()}on(e,t){return(eW(this,x,"f")[e]||(eW(this,x,"f")[e]=[])).push({listener:t}),this}off(e,t){let s=eW(this,x,"f")[e];if(!s)return this;let r=s.findIndex(e=>e.listener===t);return r>=0&&s.splice(r,1),this}once(e,t){return(eW(this,x,"f")[e]||(eW(this,x,"f")[e]=[])).push({listener:t,once:!0}),this}emitted(e){return new Promise((t,s)=>{eB(this,_,!0,"f"),"error"!==e&&this.once("error",s),this.once(e,t)})}async done(){eB(this,_,!0,"f"),await eW(this,f,"f")}get currentMessage(){return eW(this,d,"f")}async finalMessage(){return await this.done(),eW(this,c,"m",N).call(this)}async finalText(){return await this.done(),eW(this,c,"m",E).call(this)}_emit(e,...t){if(eW(this,b,"f"))return;"end"===e&&(eB(this,b,!0,"f"),eW(this,g,"f").call(this));let s=eW(this,x,"f")[e];if(s&&(eW(this,x,"f")[e]=s.filter(e=>!e.once),s.forEach(({listener:e})=>e(...t))),"abort"===e){let e=t[0];eW(this,_,"f")||s?.length||Promise.reject(e),eW(this,m,"f").call(this,e),eW(this,y,"f").call(this,e),this._emit("end");return}if("error"===e){let e=t[0];eW(this,_,"f")||s?.length||Promise.reject(e),eW(this,m,"f").call(this,e),eW(this,y,"f").call(this,e),this._emit("end")}}_emitFinal(){this.receivedMessages.at(-1)&&this._emit("finalMessage",eW(this,c,"m",N).call(this))}async _fromReadableStream(e,t){let s,r=t?.signal;r&&(r.aborted&&this.controller.abort(),s=this.controller.abort.bind(this.controller),r.addEventListener("abort",s));try{eW(this,c,"m",C).call(this),this._connected(null);let t=tv.fromReadableStream(e,this.controller);for await(let e of t)eW(this,c,"m",A).call(this,e);if(t.controller.signal?.aborted)throw new eV;eW(this,c,"m",P).call(this)}finally{r&&s&&r.removeEventListener("abort",s)}}[(d=new WeakMap,u=new WeakMap,h=new WeakMap,p=new WeakMap,m=new WeakMap,f=new WeakMap,g=new WeakMap,y=new WeakMap,x=new WeakMap,b=new WeakMap,v=new WeakMap,w=new WeakMap,_=new WeakMap,S=new WeakMap,j=new WeakMap,k=new WeakMap,T=new WeakMap,c=new WeakSet,N=function(){if(0===this.receivedMessages.length)throw new eJ("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},E=function(){if(0===this.receivedMessages.length)throw new eJ("stream ended without producing a Message with role=assistant");let e=this.receivedMessages.at(-1).content.filter(e=>"text"===e.type).map(e=>e.text);if(0===e.length)throw new eJ("stream ended without producing a content block with type=text");return e.join(" ")},C=function(){this.ended||eB(this,d,void 0,"f")},A=function(e){if(this.ended)return;let t=eW(this,c,"m",O).call(this,e);switch(this._emit("streamEvent",e,t),e.type){case"content_block_delta":{let s=t.content.at(-1);switch(e.delta.type){case"text_delta":"text"===s.type&&this._emit("text",e.delta.text,s.text||"");break;case"citations_delta":"text"===s.type&&this._emit("citation",e.delta.citation,s.citations??[]);break;case"input_json_delta":si(s)&&s.input&&this._emit("inputJson",e.delta.partial_json,s.input);break;case"thinking_delta":"thinking"===s.type&&this._emit("thinking",e.delta.thinking,s.thinking);break;case"signature_delta":"thinking"===s.type&&this._emit("signature",s.signature);break;case"compaction_delta":"compaction"===s.type&&s.content&&this._emit("compaction",s.content);break;default:sl(e.delta)}break}case"message_stop":this._addMessageParam(t),this._addMessage(st(t,eW(this,u,"f"),{logger:eW(this,k,"f")}),!0);break;case"content_block_stop":this._emit("contentBlock",t.content.at(-1));break;case"message_start":eB(this,d,t,"f")}},P=function(){if(this.ended)throw new eJ("stream has ended, this shouldn't happen");let e=eW(this,d,"f");if(!e)throw new eJ("request ended without sending any chunks");return eB(this,d,void 0,"f"),st(e,eW(this,u,"f"),{logger:eW(this,k,"f")})},O=function(e){let t=eW(this,d,"f");if("message_start"===e.type){if(t)throw new eJ(`Unexpected event order, got ${e.type} before receiving "message_stop"`);return e.message}if(!t)throw new eJ(`Unexpected event order, got ${e.type} before "message_start"`);switch(e.type){case"message_stop":case"content_block_stop":return t;case"message_delta":return t.container=e.delta.container,t.stop_reason=e.delta.stop_reason,t.stop_sequence=e.delta.stop_sequence,t.usage.output_tokens=e.usage.output_tokens,t.context_management=e.context_management,null!=e.usage.input_tokens&&(t.usage.input_tokens=e.usage.input_tokens),null!=e.usage.cache_creation_input_tokens&&(t.usage.cache_creation_input_tokens=e.usage.cache_creation_input_tokens),null!=e.usage.cache_read_input_tokens&&(t.usage.cache_read_input_tokens=e.usage.cache_read_input_tokens),null!=e.usage.server_tool_use&&(t.usage.server_tool_use=e.usage.server_tool_use),null!=e.usage.iterations&&(t.usage.iterations=e.usage.iterations),t;case"content_block_start":return t.content.push(e.content_block),t;case"content_block_delta":{let s=t.content.at(e.index);switch(e.delta.type){case"text_delta":s?.type==="text"&&(t.content[e.index]={...s,text:(s.text||"")+e.delta.text});break;case"citations_delta":s?.type==="text"&&(t.content[e.index]={...s,citations:[...s.citations??[],e.delta.citation]});break;case"input_json_delta":if(s&&si(s)){let r=s[sn]||"";r+=e.delta.partial_json;let a={...s};if(Object.defineProperty(a,sn,{value:r,enumerable:!1,writable:!0}),r)try{a.input=sa(r)}catch(t){let e=new eJ(`Unable to parse tool parameter JSON from model. Please retry your request or adjust your prompt. Error: ${t}. JSON: ${r}`);eW(this,T,"f").call(this,e)}t.content[e.index]=a}break;case"thinking_delta":s?.type==="thinking"&&(t.content[e.index]={...s,thinking:s.thinking+e.delta.thinking});break;case"signature_delta":s?.type==="thinking"&&(t.content[e.index]={...s,signature:e.delta.signature});break;case"compaction_delta":s?.type==="compaction"&&(t.content[e.index]={...s,content:(s.content||"")+e.delta.content});break;default:sl(e.delta)}return t}}},Symbol.asyncIterator)](){let e=[],t=[],s=!1;return this.on("streamEvent",s=>{let r=t.shift();r?r.resolve(s):e.push(s)}),this.on("end",()=>{for(let e of(s=!0,t))e.resolve(void 0);t.length=0}),this.on("abort",e=>{for(let r of(s=!0,t))r.reject(e);t.length=0}),this.on("error",e=>{for(let r of(s=!0,t))r.reject(e);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:s?{value:void 0,done:!0}:new Promise((e,s)=>t.push({resolve:e,reject:s})).then(e=>e?{value:e,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new tv(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function sl(e){}class sc extends Error{constructor(e){super("string"==typeof e?e:e.map(e=>"text"===e.type?e.text:`[${e.type}]`).join(" ")),this.name="ToolError",this.content=e}}let sd=`You have been working on the task described above but have not yet completed it. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficiently in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include: 1. Task Overview The user's core request and success criteria Any clarifications or constraints they specified @@ -23,11 +23,11 @@ User preferences or style requirements Domain-specific details that aren't obvious Any promises made to the user Be concise but complete—err on the side of including information that would prevent duplicate work or repeated mistakes. Write in a way that enables immediate resumption of the task. -Wrap your summary in tags.`;function su(){let e,t;return{promise:new Promise((s,r)=>{e=s,t=r}),resolve:e,reject:t}}class sh{constructor(e,t,s){I.add(this),this.client=e,R.set(this,!1),M.set(this,!1),$.set(this,void 0),L.set(this,void 0),U.set(this,void 0),D.set(this,void 0),q.set(this,void 0),B.set(this,0),eB(this,$,{params:{...t,messages:structuredClone(t.messages)}},"f");const r=["BetaToolRunner",...tY(t.tools,t.messages)].join(", ");eB(this,L,{...s,headers:tz([{"x-stainless-helper":r},s?.headers])},"f"),eB(this,q,su(),"f"),t.compactionControl?.enabled&&console.warn('Anthropic: The `compactionControl` parameter is deprecated and will be removed in a future version. Use server-side compaction instead by passing `edits: [{ type: "compact_20260112" }]` in the params passed to `toolRunner()`. See https://platform.claude.com/docs/en/build-with-claude/compaction')}async *[(R=new WeakMap,M=new WeakMap,$=new WeakMap,L=new WeakMap,U=new WeakMap,D=new WeakMap,q=new WeakMap,B=new WeakMap,I=new WeakSet,W=async function(){let e=eW(this,$,"f").params.compactionControl;if(!e||!e.enabled)return!1;let t=0;if(void 0!==eW(this,U,"f"))try{let e=await eW(this,U,"f");t=e.usage.input_tokens+(e.usage.cache_creation_input_tokens??0)+(e.usage.cache_read_input_tokens??0)+e.usage.output_tokens}catch{return!1}if(t<(e.contextTokenThreshold??1e5))return!1;let s=e.model??eW(this,$,"f").params.model,r=e.summaryPrompt??sd,a=eW(this,$,"f").params.messages;if("assistant"===a[a.length-1].role){let e=a[a.length-1];if(Array.isArray(e.content)){let t=e.content.filter(e=>"tool_use"!==e.type);0===t.length?a.pop():e.content=t}}let n=await this.client.beta.messages.create({model:s,messages:[...a,{role:"user",content:[{type:"text",text:r}]}],max_tokens:eW(this,$,"f").params.max_tokens},{signal:eW(this,L,"f").signal,headers:tz([eW(this,L,"f").headers,{"x-stainless-helper":"compaction"}])});if(n.content[0]?.type!=="text")throw new eJ("Expected text response for compaction");return eW(this,$,"f").params.messages=[{role:"user",content:n.content}],!0},Symbol.asyncIterator)](){var e;if(eW(this,R,"f"))throw new eJ("Cannot iterate over a consumed stream");eB(this,R,!0,"f"),eB(this,M,!0,"f"),eB(this,D,void 0,"f");try{for(;;){let t;try{if(eW(this,$,"f").params.max_iterations&&eW(this,B,"f")>=eW(this,$,"f").params.max_iterations)break;eB(this,M,!1,"f"),eB(this,D,void 0,"f"),eB(this,B,(e=eW(this,B,"f"),++e),"f"),eB(this,U,void 0,"f");let{max_iterations:s,compactionControl:r,...a}=eW(this,$,"f").params;if(a.stream?(t=this.client.beta.messages.stream({...a},eW(this,L,"f")),eB(this,U,t.finalMessage(),"f"),eW(this,U,"f").catch(()=>{}),yield t):(eB(this,U,this.client.beta.messages.create({...a,stream:!1},eW(this,L,"f")),"f"),yield eW(this,U,"f")),!await eW(this,I,"m",W).call(this)){if(!eW(this,M,"f")){let{role:e,content:t}=await eW(this,U,"f");eW(this,$,"f").params.messages.push({role:e,content:t})}let e=await eW(this,I,"m",H).call(this,eW(this,$,"f").params.messages.at(-1));if(e)eW(this,$,"f").params.messages.push(e);else if(!eW(this,M,"f"))break}}finally{t&&t.abort()}}if(!eW(this,U,"f"))throw new eJ("ToolRunner concluded without a message from the server");eW(this,q,"f").resolve(await eW(this,U,"f"))}catch(e){throw eB(this,R,!1,"f"),eW(this,q,"f").promise.catch(()=>{}),eW(this,q,"f").reject(e),eB(this,q,su(),"f"),e}}setMessagesParams(e){"function"==typeof e?eW(this,$,"f").params=e(eW(this,$,"f").params):eW(this,$,"f").params=e,eB(this,M,!0,"f"),eB(this,D,void 0,"f")}setRequestOptions(e){"function"==typeof e?eB(this,L,e(eW(this,L,"f")),"f"):eB(this,L,{...eW(this,L,"f"),...e},"f")}async generateToolResponse(e=eW(this,L,"f").signal){let t=await eW(this,U,"f")??this.params.messages.at(-1);return t?eW(this,I,"m",H).call(this,t,e):null}done(){return eW(this,q,"f").promise}async runUntilDone(){if(!eW(this,R,"f"))for await(let e of this);return this.done()}get params(){return eW(this,$,"f").params}pushMessages(...e){this.setMessagesParams(t=>({...t,messages:[...t.messages,...e]}))}then(e,t){return this.runUntilDone().then(e,t)}}async function sp(e,t=e.messages.at(-1),s){if(!t||"assistant"!==t.role||!t.content||"string"==typeof t.content)return null;let r=t.content.filter(e=>"tool_use"===e.type);return 0===r.length?null:{role:"user",content:await Promise.all(r.map(async t=>{let r=e.tools.find(e=>("name"in e?e.name:e.mcp_server_name)===t.name);if(!r||!("run"in r))return{type:"tool_result",tool_use_id:t.id,content:`Error: Tool '${t.name}' not found`,is_error:!0};try{let e=t.input;"parse"in r&&r.parse&&(e=r.parse(e));let a=await r.run(e,{toolUseBlock:t,signal:s?.signal});return{type:"tool_result",tool_use_id:t.id,content:a}}catch(e){return{type:"tool_result",tool_use_id:t.id,content:e instanceof sc?e.content:`Error: ${e instanceof Error?e.message:String(e)}`,is_error:!0}}}))}}H=async function(e,t=eW(this,L,"f").signal){return void 0!==eW(this,D,"f")||eB(this,D,sp(eW(this,$,"f").params,e,{...eW(this,L,"f"),signal:t}),"f"),eW(this,D,"f")};let sm={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026"},sg=["claude-mythos-preview","claude-opus-4-6"];class sf extends tW{constructor(){super(...arguments),this.batches=new t7(this._client)}create(e,t){let s=sy(e),{betas:r,...a}=s;a.model in sm&&console.warn(`The model '${a.model}' is deprecated and will reach end-of-life on ${sm[a.model]} -Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`),sg.includes(a.model)&&a.thinking&&"enabled"===a.thinking.type&&console.warn(`Using Claude with ${a.model} and 'thinking.type=enabled' is deprecated. Use 'thinking.type=adaptive' instead which results in better model performance in our testing: https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking`);let n=this._client._options.timeout;if(!a.stream&&null==n){let e=t9[a.model]??void 0;n=this._client.calculateNonstreamingTimeout(a.max_tokens,e)}let i=tQ(a.tools,a.messages);return this._client.post("/v1/messages?beta=true",{body:a,timeout:n??6e5,...t,headers:tz([{...r?.toString()!=null?{"anthropic-beta":r?.toString()}:void 0},i,t?.headers]),stream:s.stream??!1})}parse(e,t){return t={...t,headers:tz([{"anthropic-beta":[...e.betas??[],"structured-outputs-2025-12-15"].toString()},t?.headers])},this.create(e,t).then(t=>ss(t,e,{logger:this._client.logger??console}))}stream(e,t){return so.createMessage(this,e,t)}countTokens(e,t){let{betas:s,...r}=sy(e);return this._client.post("/v1/messages/count_tokens?beta=true",{body:r,...t,headers:tz([{"anthropic-beta":[...s??[],"token-counting-2024-11-01"].toString()},t?.headers])})}toolRunner(e,t){return new sh(this._client,e,t)}}function sy(e){if(!e.output_format)return e;if(e.output_config?.format)throw new eJ("Both output_format and output_config.format were provided. Please use only output_config.format (output_format is deprecated).");let{output_format:t,...s}=e;return{...s,output_config:{...e.output_config,format:t}}}sf.Batches=t7,sf.BetaToolRunner=sh,sf.ToolError=sc;class sx extends tW{list(e,t={},s){let{betas:r,...a}=t??{};return this._client.getAPIList(tG`/v1/sessions/${e}/events?beta=true`,tA,{query:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}send(e,t,s){let{betas:r,...a}=t;return this._client.post(tG`/v1/sessions/${e}/events?beta=true`,{body:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}stream(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/sessions/${e}/events/stream?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers]),stream:!0})}}class sb extends tW{retrieve(e,t,s){let{session_id:r,betas:a}=t;return this._client.get(tG`/v1/sessions/${r}/resources/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}update(e,t,s){let{session_id:r,betas:a,...n}=t;return this._client.post(tG`/v1/sessions/${r}/resources/${e}?beta=true`,{body:n,...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}list(e,t={},s){let{betas:r,...a}=t??{};return this._client.getAPIList(tG`/v1/sessions/${e}/resources?beta=true`,tA,{query:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}delete(e,t,s){let{session_id:r,betas:a}=t;return this._client.delete(tG`/v1/sessions/${r}/resources/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}add(e,t,s){let{betas:r,...a}=t;return this._client.post(tG`/v1/sessions/${e}/resources?beta=true`,{body:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}}class sv extends tW{constructor(){super(...arguments),this.events=new sx(this._client),this.resources=new sb(this._client)}create(e,t){let{betas:s,...r}=e;return this._client.post("/v1/sessions?beta=true",{body:r,...t,headers:tz([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString()},t?.headers])})}retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/sessions/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}update(e,t,s){let{betas:r,...a}=t;return this._client.post(tG`/v1/sessions/${e}?beta=true`,{body:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/sessions?beta=true",tA,{query:r,...t,headers:tz([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString()},t?.headers])})}delete(e,t={},s){let{betas:r}=t??{};return this._client.delete(tG`/v1/sessions/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}archive(e,t={},s){let{betas:r}=t??{};return this._client.post(tG`/v1/sessions/${e}/archive?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}}sv.Events=sx,sv.Resources=sb;class sw extends tW{create(e,t={},s){let{betas:r,...a}=t??{};return this._client.post(tG`/v1/skills/${e}/versions?beta=true`,tM({body:a,...s,headers:tz([{"anthropic-beta":[...r??[],"skills-2025-10-02"].toString()},s?.headers])},this._client))}retrieve(e,t,s){let{skill_id:r,betas:a}=t;return this._client.get(tG`/v1/skills/${r}/versions/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...a??[],"skills-2025-10-02"].toString()},s?.headers])})}list(e,t={},s){let{betas:r,...a}=t??{};return this._client.getAPIList(tG`/v1/skills/${e}/versions?beta=true`,tA,{query:a,...s,headers:tz([{"anthropic-beta":[...r??[],"skills-2025-10-02"].toString()},s?.headers])})}delete(e,t,s){let{skill_id:r,betas:a}=t;return this._client.delete(tG`/v1/skills/${r}/versions/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...a??[],"skills-2025-10-02"].toString()},s?.headers])})}}class s_ extends tW{constructor(){super(...arguments),this.versions=new sw(this._client)}create(e={},t){let{betas:s,...r}=e??{};return this._client.post("/v1/skills?beta=true",tM({body:r,...t,headers:tz([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},t?.headers])},this._client,!1))}retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/skills/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"skills-2025-10-02"].toString()},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/skills?beta=true",tA,{query:r,...t,headers:tz([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},t?.headers])})}delete(e,t={},s){let{betas:r}=t??{};return this._client.delete(tG`/v1/skills/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"skills-2025-10-02"].toString()},s?.headers])})}}s_.Versions=sw;class sS extends tW{create(e,t,s){let{betas:r,...a}=t;return this._client.post(tG`/v1/vaults/${e}/credentials?beta=true`,{body:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}retrieve(e,t,s){let{vault_id:r,betas:a}=t;return this._client.get(tG`/v1/vaults/${r}/credentials/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}update(e,t,s){let{vault_id:r,betas:a,...n}=t;return this._client.post(tG`/v1/vaults/${r}/credentials/${e}?beta=true`,{body:n,...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}list(e,t={},s){let{betas:r,...a}=t??{};return this._client.getAPIList(tG`/v1/vaults/${e}/credentials?beta=true`,tA,{query:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}delete(e,t,s){let{vault_id:r,betas:a}=t;return this._client.delete(tG`/v1/vaults/${r}/credentials/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}archive(e,t,s){let{vault_id:r,betas:a}=t;return this._client.post(tG`/v1/vaults/${r}/credentials/${e}/archive?beta=true`,{...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}}class sj extends tW{constructor(){super(...arguments),this.credentials=new sS(this._client)}create(e,t){let{betas:s,...r}=e;return this._client.post("/v1/vaults?beta=true",{body:r,...t,headers:tz([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString()},t?.headers])})}retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/vaults/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}update(e,t,s){let{betas:r,...a}=t;return this._client.post(tG`/v1/vaults/${e}?beta=true`,{body:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/vaults?beta=true",tA,{query:r,...t,headers:tz([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString()},t?.headers])})}delete(e,t={},s){let{betas:r}=t??{};return this._client.delete(tG`/v1/vaults/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}archive(e,t={},s){let{betas:r}=t??{};return this._client.post(tG`/v1/vaults/${e}/archive?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}}sj.Credentials=sS;class sk extends tW{constructor(){super(...arguments),this.models=new t0(this._client),this.messages=new sf(this._client),this.agents=new t4(this._client),this.environments=new tV(this._client),this.sessions=new sv(this._client),this.vaults=new sj(this._client),this.memoryStores=new t5(this._client),this.files=new tZ(this._client),this.skills=new s_(this._client),this.userProfiles=new t1(this._client)}}function sN(e){return e?.output_config?.format}function sE(e,t,s){let r=sN(t);return t&&"parse"in(r??{})?sT(e,t,s):{...e,content:e.content.map(e=>"text"===e.type?Object.defineProperty({...e},"parsed_output",{value:null,enumerable:!1}):e),parsed_output:null}}function sT(e,t,s){let r=null,a=e.content.map(e=>{if("text"===e.type){let s=function(e,t){let s=sN(e);if(s?.type!=="json_schema")return null;try{if("parse"in s)return s.parse(t);return JSON.parse(t)}catch(e){throw new eJ(`Failed to parse structured output: ${e}`)}}(t,e.text);return null===r&&(r=s),Object.defineProperty({...e},"parsed_output",{value:s,enumerable:!1})}return e});return{...e,content:a,parsed_output:r}}sk.Models=t0,sk.Messages=sf,sk.Agents=t4,sk.Environments=tV,sk.Sessions=sv,sk.Vaults=sj,sk.MemoryStores=t5,sk.Files=tZ,sk.Skills=s_,sk.UserProfiles=t1;let sC="__json_buf";function sA(e){return"tool_use"===e.type||"server_tool_use"===e.type}class sP{constructor(e,t){z.add(this),this.messages=[],this.receivedMessages=[],F.set(this,void 0),J.set(this,null),this.controller=new AbortController,G.set(this,void 0),V.set(this,()=>{}),K.set(this,()=>{}),X.set(this,void 0),Y.set(this,()=>{}),Q.set(this,()=>{}),Z.set(this,{}),ee.set(this,!1),et.set(this,!1),es.set(this,!1),er.set(this,!1),ea.set(this,void 0),en.set(this,void 0),ei.set(this,void 0),ec.set(this,e=>{if(eB(this,et,!0,"f"),ez(e)&&(e=new eV),e instanceof eV)return eB(this,es,!0,"f"),this._emit("abort",e);if(e instanceof eJ)return this._emit("error",e);if(e instanceof Error){let t=new eJ(e.message);return t.cause=e,this._emit("error",t)}return this._emit("error",new eJ(String(e)))}),eB(this,G,new Promise((e,t)=>{eB(this,V,e,"f"),eB(this,K,t,"f")}),"f"),eB(this,X,new Promise((e,t)=>{eB(this,Y,e,"f"),eB(this,Q,t,"f")}),"f"),eW(this,G,"f").catch(()=>{}),eW(this,X,"f").catch(()=>{}),eB(this,J,e,"f"),eB(this,ei,t?.logger??console,"f")}get response(){return eW(this,ea,"f")}get request_id(){return eW(this,en,"f")}async withResponse(){eB(this,er,!0,"f");let e=await eW(this,G,"f");if(!e)throw Error("Could not resolve a `Response` object");return{data:this,response:e,request_id:e.headers.get("request-id")}}static fromReadableStream(e){let t=new sP(null);return t._run(()=>t._fromReadableStream(e)),t}static createMessage(e,t,s,{logger:r}={}){let a=new sP(t,{logger:r});for(let e of t.messages)a._addMessageParam(e);return eB(a,J,{...t,stream:!0},"f"),a._run(()=>a._createMessage(e,{...t,stream:!0},{...s,headers:{...s?.headers,"X-Stainless-Helper-Method":"stream"}})),a}_run(e){e().then(()=>{this._emitFinal(),this._emit("end")},eW(this,ec,"f"))}_addMessageParam(e){this.messages.push(e)}_addMessage(e,t=!0){this.receivedMessages.push(e),t&&this._emit("message",e)}async _createMessage(e,t,s){let r,a=s?.signal;a&&(a.aborted&&this.controller.abort(),r=this.controller.abort.bind(this.controller),a.addEventListener("abort",r));try{eW(this,z,"m",ed).call(this);let{response:r,data:a}=await e.create({...t,stream:!0},{...s,signal:this.controller.signal}).withResponse();for await(let e of(this._connected(r),a))eW(this,z,"m",eu).call(this,e);if(a.controller.signal?.aborted)throw new eV;eW(this,z,"m",eh).call(this)}finally{a&&r&&a.removeEventListener("abort",r)}}_connected(e){this.ended||(eB(this,ea,e,"f"),eB(this,en,e?.headers.get("request-id"),"f"),eW(this,V,"f").call(this,e),this._emit("connect"))}get ended(){return eW(this,ee,"f")}get errored(){return eW(this,et,"f")}get aborted(){return eW(this,es,"f")}abort(){this.controller.abort()}on(e,t){return(eW(this,Z,"f")[e]||(eW(this,Z,"f")[e]=[])).push({listener:t}),this}off(e,t){let s=eW(this,Z,"f")[e];if(!s)return this;let r=s.findIndex(e=>e.listener===t);return r>=0&&s.splice(r,1),this}once(e,t){return(eW(this,Z,"f")[e]||(eW(this,Z,"f")[e]=[])).push({listener:t,once:!0}),this}emitted(e){return new Promise((t,s)=>{eB(this,er,!0,"f"),"error"!==e&&this.once("error",s),this.once(e,t)})}async done(){eB(this,er,!0,"f"),await eW(this,X,"f")}get currentMessage(){return eW(this,F,"f")}async finalMessage(){return await this.done(),eW(this,z,"m",eo).call(this)}async finalText(){return await this.done(),eW(this,z,"m",el).call(this)}_emit(e,...t){if(eW(this,ee,"f"))return;"end"===e&&(eB(this,ee,!0,"f"),eW(this,Y,"f").call(this));let s=eW(this,Z,"f")[e];if(s&&(eW(this,Z,"f")[e]=s.filter(e=>!e.once),s.forEach(({listener:e})=>e(...t))),"abort"===e){let e=t[0];eW(this,er,"f")||s?.length||Promise.reject(e),eW(this,K,"f").call(this,e),eW(this,Q,"f").call(this,e),this._emit("end");return}if("error"===e){let e=t[0];eW(this,er,"f")||s?.length||Promise.reject(e),eW(this,K,"f").call(this,e),eW(this,Q,"f").call(this,e),this._emit("end")}}_emitFinal(){this.receivedMessages.at(-1)&&this._emit("finalMessage",eW(this,z,"m",eo).call(this))}async _fromReadableStream(e,t){let s,r=t?.signal;r&&(r.aborted&&this.controller.abort(),s=this.controller.abort.bind(this.controller),r.addEventListener("abort",s));try{eW(this,z,"m",ed).call(this),this._connected(null);let t=tv.fromReadableStream(e,this.controller);for await(let e of t)eW(this,z,"m",eu).call(this,e);if(t.controller.signal?.aborted)throw new eV;eW(this,z,"m",eh).call(this)}finally{r&&s&&r.removeEventListener("abort",s)}}[(F=new WeakMap,J=new WeakMap,G=new WeakMap,V=new WeakMap,K=new WeakMap,X=new WeakMap,Y=new WeakMap,Q=new WeakMap,Z=new WeakMap,ee=new WeakMap,et=new WeakMap,es=new WeakMap,er=new WeakMap,ea=new WeakMap,en=new WeakMap,ei=new WeakMap,ec=new WeakMap,z=new WeakSet,eo=function(){if(0===this.receivedMessages.length)throw new eJ("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},el=function(){if(0===this.receivedMessages.length)throw new eJ("stream ended without producing a Message with role=assistant");let e=this.receivedMessages.at(-1).content.filter(e=>"text"===e.type).map(e=>e.text);if(0===e.length)throw new eJ("stream ended without producing a content block with type=text");return e.join(" ")},ed=function(){this.ended||eB(this,F,void 0,"f")},eu=function(e){if(this.ended)return;let t=eW(this,z,"m",ep).call(this,e);switch(this._emit("streamEvent",e,t),e.type){case"content_block_delta":{let s=t.content.at(-1);switch(e.delta.type){case"text_delta":"text"===s.type&&this._emit("text",e.delta.text,s.text||"");break;case"citations_delta":"text"===s.type&&this._emit("citation",e.delta.citation,s.citations??[]);break;case"input_json_delta":sA(s)&&s.input&&this._emit("inputJson",e.delta.partial_json,s.input);break;case"thinking_delta":"thinking"===s.type&&this._emit("thinking",e.delta.thinking,s.thinking);break;case"signature_delta":"thinking"===s.type&&this._emit("signature",s.signature);break;default:sO(e.delta)}break}case"message_stop":this._addMessageParam(t),this._addMessage(sE(t,eW(this,J,"f"),{logger:eW(this,ei,"f")}),!0);break;case"content_block_stop":this._emit("contentBlock",t.content.at(-1));break;case"message_start":eB(this,F,t,"f")}},eh=function(){if(this.ended)throw new eJ("stream has ended, this shouldn't happen");let e=eW(this,F,"f");if(!e)throw new eJ("request ended without sending any chunks");return eB(this,F,void 0,"f"),sE(e,eW(this,J,"f"),{logger:eW(this,ei,"f")})},ep=function(e){let t=eW(this,F,"f");if("message_start"===e.type){if(t)throw new eJ(`Unexpected event order, got ${e.type} before receiving "message_stop"`);return e.message}if(!t)throw new eJ(`Unexpected event order, got ${e.type} before "message_start"`);switch(e.type){case"message_stop":case"content_block_stop":return t;case"message_delta":return t.stop_reason=e.delta.stop_reason,t.stop_sequence=e.delta.stop_sequence,t.usage.output_tokens=e.usage.output_tokens,null!=e.usage.input_tokens&&(t.usage.input_tokens=e.usage.input_tokens),null!=e.usage.cache_creation_input_tokens&&(t.usage.cache_creation_input_tokens=e.usage.cache_creation_input_tokens),null!=e.usage.cache_read_input_tokens&&(t.usage.cache_read_input_tokens=e.usage.cache_read_input_tokens),null!=e.usage.server_tool_use&&(t.usage.server_tool_use=e.usage.server_tool_use),t;case"content_block_start":return t.content.push({...e.content_block}),t;case"content_block_delta":{let s=t.content.at(e.index);switch(e.delta.type){case"text_delta":s?.type==="text"&&(t.content[e.index]={...s,text:(s.text||"")+e.delta.text});break;case"citations_delta":s?.type==="text"&&(t.content[e.index]={...s,citations:[...s.citations??[],e.delta.citation]});break;case"input_json_delta":if(s&&sA(s)){let r=s[sC]||"";r+=e.delta.partial_json;let a={...s};Object.defineProperty(a,sC,{value:r,enumerable:!1,writable:!0}),r&&(a.input=sa(r)),t.content[e.index]=a}break;case"thinking_delta":s?.type==="thinking"&&(t.content[e.index]={...s,thinking:s.thinking+e.delta.thinking});break;case"signature_delta":s?.type==="thinking"&&(t.content[e.index]={...s,signature:e.delta.signature});break;default:sO(e.delta)}return t}}},Symbol.asyncIterator)](){let e=[],t=[],s=!1;return this.on("streamEvent",s=>{let r=t.shift();r?r.resolve(s):e.push(s)}),this.on("end",()=>{for(let e of(s=!0,t))e.resolve(void 0);t.length=0}),this.on("abort",e=>{for(let r of(s=!0,t))r.reject(e);t.length=0}),this.on("error",e=>{for(let r of(s=!0,t))r.reject(e);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:s?{value:void 0,done:!0}:new Promise((e,s)=>t.push({resolve:e,reject:s})).then(e=>e?{value:e,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new tv(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function sO(e){}class sI extends tW{create(e,t){return this._client.post("/v1/messages/batches",{body:e,...t})}retrieve(e,t){return this._client.get(tG`/v1/messages/batches/${e}`,t)}list(e={},t){return this._client.getAPIList("/v1/messages/batches",tC,{query:e,...t})}delete(e,t){return this._client.delete(tG`/v1/messages/batches/${e}`,t)}cancel(e,t){return this._client.post(tG`/v1/messages/batches/${e}/cancel`,t)}async results(e,t){let s=await this.retrieve(e);if(!s.results_url)throw new eJ(`No batch \`results_url\`; Has it finished processing? ${s.processing_status} - ${s.id}`);return this._client.get(s.results_url,{...t,headers:tz([{Accept:"application/binary"},t?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((e,t)=>t8.fromResponse(t.response,t.controller))}}class sR extends tW{constructor(){super(...arguments),this.batches=new sI(this._client)}create(e,t){e.model in sM&&console.warn(`The model '${e.model}' is deprecated and will reach end-of-life on ${sM[e.model]} -Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`),s$.includes(e.model)&&e.thinking&&"enabled"===e.thinking.type&&console.warn(`Using Claude with ${e.model} and 'thinking.type=enabled' is deprecated. Use 'thinking.type=adaptive' instead which results in better model performance in our testing: https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking`);let s=this._client._options.timeout;if(!e.stream&&null==s){let t=t9[e.model]??void 0;s=this._client.calculateNonstreamingTimeout(e.max_tokens,t)}let r=tQ(e.tools,e.messages);return this._client.post("/v1/messages",{body:e,timeout:s??6e5,...t,headers:tz([r,t?.headers]),stream:e.stream??!1})}parse(e,t){return this.create(e,t).then(t=>sT(t,e,{logger:this._client.logger??console}))}stream(e,t){return sP.createMessage(this,e,t,{logger:this._client.logger??console})}countTokens(e,t){return this._client.post("/v1/messages/count_tokens",{body:e,...t})}}let sM={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026","claude-3-5-haiku-latest":"February 19th, 2026","claude-3-5-haiku-20241022":"February 19th, 2026","claude-opus-4-0":"June 15th, 2026","claude-opus-4-20250514":"June 15th, 2026","claude-sonnet-4-0":"June 15th, 2026","claude-sonnet-4-20250514":"June 15th, 2026"},s$=["claude-mythos-preview","claude-opus-4-6"];sR.Batches=sI;class sL extends tW{retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/models/${e}`,{...s,headers:tz([{...r?.toString()!=null?{"anthropic-beta":r?.toString()}:void 0},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/models",tC,{query:r,...t,headers:tz([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},t?.headers])})}}class sU extends tW{create(e,t){let{betas:s,...r}=e;return this._client.post("/v1/complete",{body:r,timeout:this._client._options.timeout??6e5,...t,headers:tz([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},t?.headers]),stream:e.stream??!1})}}let sD=e=>void 0!==globalThis.process?globalThis.process.env?.[e]?.trim()||void 0:void 0!==globalThis.Deno&&globalThis.Deno.env?.get?.(e)?.trim()||void 0;class sq{constructor({baseURL:e=sD("ANTHROPIC_BASE_URL"),apiKey:t=sD("ANTHROPIC_API_KEY")??null,authToken:s=sD("ANTHROPIC_AUTH_TOKEN")??null,...r}={}){em.add(this),ef.set(this,void 0);const a={apiKey:t,authToken:s,...r,baseURL:e||"https://api.anthropic.com"};if(!a.dangerouslyAllowBrowser&&"u">typeof window&&void 0!==window.document&&"u">typeof navigator)throw new eJ("It looks like you're running in a browser-like environment.\n\nThis is disabled by default, as it risks exposing your secret API credentials to attackers.\nIf you understand the risks and have appropriate mitigations in place,\nyou can set the `dangerouslyAllowBrowser` option to `true`, e.g.,\n\nnew Anthropic({ apiKey, dangerouslyAllowBrowser: true });\n");this.baseURL=a.baseURL,this.timeout=a.timeout??eg.DEFAULT_TIMEOUT,this.logger=a.logger??console;const n="warn";this.logLevel=n,this.logLevel=tp(a.logLevel,"ClientOptions.logLevel",this)??tp(sD("ANTHROPIC_LOG"),"process.env['ANTHROPIC_LOG']",this)??n,this.fetchOptions=a.fetchOptions,this.maxRetries=a.maxRetries??2,this.fetch=a.fetch??function(){if("u">typeof fetch)return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Anthropic({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}(),eB(this,ef,tl,"f");const i=sD("ANTHROPIC_CUSTOM_HEADERS");if(i){const e={};for(const t of i.split("\n")){const s=t.indexOf(":");s>=0&&(e[t.substring(0,s).trim()]=t.substring(s+1).trim())}a.defaultHeaders={...e,...a.defaultHeaders}}this._options=a,this.apiKey="string"==typeof t?t:null,this.authToken=s}withOptions(e){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,authToken:this.authToken,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:t}){if(!(e.get("x-api-key")||e.get("authorization")||this.apiKey&&e.get("x-api-key")||t.has("x-api-key")||this.authToken&&e.get("authorization"))&&!t.has("authorization"))throw Error('Could not resolve authentication method. Expected either apiKey or authToken to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted')}async authHeaders(e){return tz([await this.apiKeyAuth(e),await this.bearerAuth(e)])}async apiKeyAuth(e){if(null!=this.apiKey)return tz([{"X-Api-Key":this.apiKey}])}async bearerAuth(e){if(null!=this.authToken)return tz([{Authorization:`Bearer ${this.authToken}`}])}stringifyQuery(e){return Object.entries(e).filter(([e,t])=>void 0!==t).map(([e,t])=>{if("string"==typeof t||"number"==typeof t||"boolean"==typeof t)return`${encodeURIComponent(e)}=${encodeURIComponent(t)}`;if(null===t)return`${encodeURIComponent(e)}=`;throw new eJ(`Cannot stringify type ${typeof t}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}getUserAgent(){return`${this.constructor.name}/JS ${tt}`}defaultIdempotencyKey(){return`stainless-node-retry-${eH()}`}makeStatusError(e,t,s,r){return eG.generate(e,t,s,r)}buildURL(e,t,s){let r=!eW(this,em,"m",ey).call(this)&&s||this.baseURL,a=new URL(e3.test(e)?e:r+(r.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),n=this.defaultQuery(),i=Object.fromEntries(a.searchParams);return e9(n)&&e9(i)||(t={...i,...n,...t}),"object"==typeof t&&t&&!Array.isArray(t)&&(a.search=this.stringifyQuery(t)),a.toString()}_calculateNonstreamingTimeout(e){if(3600*e/128e3>600)throw new eJ("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#streaming-responses for more details");return 6e5}async prepareOptions(e){}async prepareRequest(e,{url:t,options:s}){}get(e,t){return this.methodRequest("get",e,t)}post(e,t){return this.methodRequest("post",e,t)}patch(e,t){return this.methodRequest("patch",e,t)}put(e,t){return this.methodRequest("put",e,t)}delete(e,t){return this.methodRequest("delete",e,t)}methodRequest(e,t,s){return this.request(Promise.resolve(s).then(s=>({method:e,path:t,...s})))}request(e,t=null){return new tN(this,this.makeRequest(e,t,void 0))}async makeRequest(e,t,s){let r=await e,a=r.maxRetries??this.maxRetries;null==t&&(t=a),await this.prepareOptions(r);let{req:n,url:i,timeout:o}=await this.buildRequest(r,{retryCount:a-t});await this.prepareRequest(n,{url:i,options:r});let l="log_"+(0x1000000*Math.random()|0).toString(16).padStart(6,"0"),c=void 0===s?"":`, retryOf: ${s}`,d=Date.now();if(tx(this).debug(`[${l}] sending request`,tb({retryOfRequestLogID:s,method:r.method,url:i,options:r,headers:n.headers})),r.signal?.aborted)throw new eV;let u=new AbortController,h=await this.fetchWithTimeout(i,n,o,u).catch(eF),p=Date.now();if(h instanceof globalThis.Error){let e=`retrying, ${t} attempts remaining`;if(r.signal?.aborted)throw new eV;let a=ez(h)||/timed? ?out/i.test(String(h)+("cause"in h?String(h.cause):""));if(t)return tx(this).info(`[${l}] connection ${a?"timed out":"failed"} - ${e}`),tx(this).debug(`[${l}] connection ${a?"timed out":"failed"} (${e})`,tb({retryOfRequestLogID:s,url:i,durationMs:p-d,message:h.message})),this.retryRequest(r,t,s??l);if(tx(this).info(`[${l}] connection ${a?"timed out":"failed"} - error; no more retries left`),tx(this).debug(`[${l}] connection ${a?"timed out":"failed"} (error; no more retries left)`,tb({retryOfRequestLogID:s,url:i,durationMs:p-d,message:h.message})),a)throw new eX;throw new eK({cause:h})}let m=[...h.headers.entries()].filter(([e])=>"request-id"===e).map(([e,t])=>", "+e+": "+JSON.stringify(t)).join(""),g=`[${l}${c}${m}] ${n.method} ${i} ${h.ok?"succeeded":"failed"} with status ${h.status} in ${p-d}ms`;if(!h.ok){let e=await this.shouldRetry(h);if(t&&e){let e=`retrying, ${t} attempts remaining`;return await to(h.body),tx(this).info(`${g} - ${e}`),tx(this).debug(`[${l}] response error (${e})`,tb({retryOfRequestLogID:s,url:h.url,status:h.status,headers:h.headers,durationMs:p-d})),this.retryRequest(r,t,s??l,h.headers)}let a=e?"error; no more retries left":"error; not retryable";tx(this).info(`${g} - ${a}`);let n=await h.text().catch(e=>eF(e).message),i=te(n),o=i?void 0:n;throw tx(this).debug(`[${l}] response error (${a})`,tb({retryOfRequestLogID:s,url:h.url,status:h.status,headers:h.headers,message:o,durationMs:Date.now()-d})),this.makeStatusError(h.status,i,o,h.headers)}return tx(this).info(g),tx(this).debug(`[${l}] response start`,tb({retryOfRequestLogID:s,url:h.url,status:h.status,headers:h.headers,durationMs:p-d})),{response:h,options:r,controller:u,requestLogID:l,retryOfRequestLogID:s,startTime:d}}getAPIList(e,t,s){return this.requestAPIList(t,s&&"then"in s?s.then(t=>({method:"get",path:e,...t})):{method:"get",path:e,...s})}requestAPIList(e,t){return new tT(this,this.makeRequest(t,null,void 0),e)}async fetchWithTimeout(e,t,s,r){let{signal:a,method:n,...i}=t||{},o=this._makeAbort(r);a&&a.addEventListener("abort",o,{once:!0});let l=setTimeout(o,s),c=globalThis.ReadableStream&&i.body instanceof globalThis.ReadableStream||"object"==typeof i.body&&null!==i.body&&Symbol.asyncIterator in i.body,d={signal:r.signal,...c?{duplex:"half"}:{},method:"GET",...i};n&&(d.method=n.toUpperCase());try{return await this.fetch.call(void 0,e,d)}finally{clearTimeout(l)}}async shouldRetry(e){let t=e.headers.get("x-should-retry");return"true"===t||"false"!==t&&(408===e.status||409===e.status||429===e.status||!!(e.status>=500))}async retryRequest(e,t,s,r){let a,n,i=r?.get("retry-after-ms");if(i){let e=parseFloat(i);Number.isNaN(e)||(a=e)}let o=r?.get("retry-after");if(o&&!a){let e=parseFloat(o);a=Number.isNaN(e)?Date.parse(o)-Date.now():1e3*e}if(void 0===a){let s=e.maxRetries??this.maxRetries;a=this.calculateDefaultRetryTimeoutMillis(t,s)}return await (n=a,new Promise(e=>setTimeout(e,n))),this.makeRequest(e,t-1,s)}calculateDefaultRetryTimeoutMillis(e,t){return Math.min(.5*Math.pow(2,t-e),8)*(1-.25*Math.random())*1e3}calculateNonstreamingTimeout(e,t){if(36e5*e/128e3>6e5||null!=t&&e>t)throw new eJ("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#long-requests for more details");return 6e5}async buildRequest(e,{retryCount:t=0}={}){let s={...e},{method:r,path:a,query:n,defaultBaseURL:i}=s,o=this.buildURL(a,n,i);"timeout"in s&&((e,t)=>{if("number"!=typeof t||!Number.isInteger(t))throw new eJ(`${e} must be an integer`);if(t<0)throw new eJ(`${e} must be a positive integer`)})("timeout",s.timeout),s.timeout=s.timeout??this.timeout;let{bodyHeaders:l,body:c}=this.buildBody({options:s}),d=await this.buildHeaders({options:e,method:r,bodyHeaders:l,retryCount:t});return{req:{method:r,headers:d,...s.signal&&{signal:s.signal},...globalThis.ReadableStream&&c instanceof globalThis.ReadableStream&&{duplex:"half"},...c&&{body:c},...this.fetchOptions??{},...s.fetchOptions??{}},url:o,timeout:s.timeout}}async buildHeaders({options:e,method:s,bodyHeaders:r,retryCount:a}){let n={};this.idempotencyHeader&&"get"!==s&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),n[this.idempotencyHeader]=e.idempotencyKey);let i=tz([n,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(a),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...t??(t=(()=>{let e="u">typeof Deno&&null!=Deno.build?"deno":"u">typeof EdgeRuntime?"edge":"[object process]"===Object.prototype.toString.call(void 0!==globalThis.process?globalThis.process:0)?"node":"unknown";if("deno"===e)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":tt,"X-Stainless-OS":tr(Deno.build.os),"X-Stainless-Arch":ts(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":"string"==typeof Deno.version?Deno.version:Deno.version?.deno??"unknown"};if("u">typeof EdgeRuntime)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":tt,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if("node"===e)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":tt,"X-Stainless-OS":tr(globalThis.process.platform??"unknown"),"X-Stainless-Arch":ts(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let t=function(){if("u"e.abort()}buildBody({options:{body:e,headers:t}}){if(!e)return{bodyHeaders:void 0,body:void 0};let s=tz([t]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||"string"==typeof e&&s.values.has("content-type")||globalThis.Blob&&e instanceof globalThis.Blob||e instanceof FormData||e instanceof URLSearchParams||globalThis.ReadableStream&&e instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:e}:"object"==typeof e&&(Symbol.asyncIterator in e||Symbol.iterator in e&&"next"in e&&"function"==typeof e.next)?{bodyHeaders:void 0,body:tn(e)}:"object"==typeof e&&"application/x-www-form-urlencoded"===s.values.get("content-type")?{bodyHeaders:{"content-type":"application/x-www-form-urlencoded"},body:this.stringifyQuery(e)}:eW(this,ef,"f").call(this,{body:e,headers:s})}}eg=sq,ef=new WeakMap,em=new WeakSet,ey=function(){return"https://api.anthropic.com"!==this.baseURL},sq.Anthropic=eg,sq.HUMAN_PROMPT="\\n\\nHuman:",sq.AI_PROMPT="\\n\\nAssistant:",sq.DEFAULT_TIMEOUT=6e5,sq.AnthropicError=eJ,sq.APIError=eG,sq.APIConnectionError=eK,sq.APIConnectionTimeoutError=eX,sq.APIUserAbortError=eV,sq.NotFoundError=e0,sq.ConflictError=e1,sq.RateLimitError=e4,sq.BadRequestError=eY,sq.AuthenticationError=eQ,sq.InternalServerError=e6,sq.PermissionDeniedError=eZ,sq.UnprocessableEntityError=e2,sq.toFile=tq;class sB extends sq{constructor(){super(...arguments),this.completions=new sU(this),this.messages=new sR(this),this.models=new sL(this),this.beta=new sk(this)}}sB.Completions=sU,sB.Messages=sR,sB.Models=sL,sB.Beta=sk;var sW=e.i(727749);async function sH(e,t,s,r,a=[],n,i,o,l,c,d,u,h,p,m){if(!r)throw Error("Virtual Key is required");console.log=function(){};let g=m||(0,eL.getProxyBaseUrl)(),f={};a&&a.length>0&&(f["x-litellm-tags"]=a.join(","));let y=new sB({apiKey:r,baseURL:g,dangerouslyAllowBrowser:!0,defaultHeaders:f});try{let r=Date.now(),a=!1,p={model:s,messages:e.map(e=>({role:e.role,content:e.content})),stream:!0,max_tokens:1024,litellm_trace_id:c};for await(let e of(d&&(p.vector_store_ids=d),u&&(p.guardrails=u),h&&(p.policies=h),y.messages.stream(p,{signal:n}))){if(console.log("Stream event:",e),"content_block_delta"===e.type){let n=e.delta;if(!a){a=!0;let e=Date.now()-r;console.log("First token received! Time:",e,"ms"),o&&o(e)}"text_delta"===n.type?t("assistant",n.text,s):"reasoning_delta"===n.type&&i&&i(n.text)}if("message_delta"===e.type&&e.usage&&l){let t=e.usage;console.log("Usage data found:",t);let s={completionTokens:t.output_tokens,promptTokens:t.input_tokens,totalTokens:t.input_tokens+t.output_tokens};l(s)}}}catch(e){throw n?.aborted?console.log("Anthropic messages request was cancelled"):sW.default.fromBackend(`Error occurred while generating model response. Please try again. Error: ${e}`),e}}e.s(["makeAnthropicMessagesRequest",0,sH],434788);var sz=e.i(356449);async function sF(e,t,s,r,a,n,i,o,l,c){console.log=function(){},console.log("isLocal:",!1);let d=c||(0,eL.getProxyBaseUrl)(),u=new sz.default.OpenAI({apiKey:a,baseURL:d,dangerouslyAllowBrowser:!0,defaultHeaders:n&&n.length>0?{"x-litellm-tags":n.join(",")}:void 0});try{let a=await u.audio.speech.create({model:r,input:e,voice:t,...o?{response_format:o}:{},...l?{speed:l}:{}},{signal:i}),n=await a.blob(),c=URL.createObjectURL(n);s(c,r)}catch(e){throw i?.aborted?console.log("Audio speech request was cancelled"):sW.default.fromBackend(`Error occurred while generating speech. Please try again. Error: ${e}`),e}}async function sJ(e,t,s,r,a,n,i,o,l,c,d){console.log=function(){},console.log("isLocal:",!1);let u=d||(0,eL.getProxyBaseUrl)(),h=new sz.default.OpenAI({apiKey:r,baseURL:u,dangerouslyAllowBrowser:!0,defaultHeaders:a&&a.length>0?{"x-litellm-tags":a.join(",")}:void 0});try{console.log("Processing audio file for transcription:",e.name);let r=await h.audio.transcriptions.create({model:s,file:e,...i?{language:i}:{},...o?{prompt:o}:{},...l?{response_format:l}:{},...void 0!==c?{temperature:c}:{}},{signal:n});if(console.log("Transcription response:",r),r&&r.text)t(r.text,s),sW.default.success("Audio transcribed successfully");else throw Error("No transcription text in response")}catch(e){if(console.error("Error making audio transcription request:",e),n?.aborted)console.log("Audio transcription request was cancelled");else{let t="Failed to transcribe audio";e?.error?.message?t=e.error.message:e?.message&&(t=e.message),sW.default.fromBackend(`Audio transcription failed: ${t}`)}throw e}}async function sG(e,t,s,r,a,n){if(!r)throw Error("Virtual Key is required");console.log=function(){};let i=n||(0,eL.getProxyBaseUrl)(),o={};a&&a.length>0&&(o["x-litellm-tags"]=a.join(","));try{let a=i.endsWith("/")?i.slice(0,-1):i,n=`${a}/embeddings`,l=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",[(0,eL.getGlobalLitellmHeaderName)()]:`Bearer ${r}`,...o},body:JSON.stringify({model:s,input:e})});if(!l.ok){let e=await l.text();throw Error(e||`Request failed with status ${l.status}`)}let c=await l.json(),d=c?.data?.[0]?.embedding;if(!d)throw Error("No embedding returned from server");t(JSON.stringify(d),c?.model??s)}catch(e){throw sW.default.fromBackend(`Error occurred while making embeddings request. Please try again. Error: ${e}`),e}}e.s(["makeOpenAIAudioSpeechRequest",0,sF],512882),e.s(["makeOpenAIAudioTranscriptionRequest",0,sJ],584976),e.s(["makeOpenAIEmbeddingsRequest",0,sG],720762)},488143,(e,t,s)=>{"use strict";function r({widthInt:e,heightInt:t,blurWidth:s,blurHeight:a,blurDataURL:n,objectFit:i}){let o=s?40*s:e,l=a?40*a:t,c=o&&l?`viewBox='0 0 ${o} ${l}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${c}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${c?"none":"contain"===i?"xMidYMid":"cover"===i?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${n}'/%3E%3C/svg%3E`}Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"getImageBlurSvg",{enumerable:!0,get:function(){return r}})},987690,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0});var r={VALID_LOADERS:function(){return n},imageConfigDefault:function(){return i}};for(var a in r)Object.defineProperty(s,a,{enumerable:!0,get:r[a]});let n=["default","imgix","cloudinary","akamai","custom"],i={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1}},908927,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"getImgProps",{enumerable:!0,get:function(){return c}}),e.r(233525);let r=e.r(543369),a=e.r(488143),n=e.r(987690),i=["-moz-initial","fill","none","scale-down",void 0];function o(e){return void 0!==e.default}function l(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function c({src:e,sizes:t,unoptimized:s=!1,priority:d=!1,preload:u=!1,loading:h,className:p,quality:m,width:g,height:f,fill:y=!1,style:x,overrideSrc:b,onLoad:v,onLoadingComplete:w,placeholder:_="empty",blurDataURL:S,fetchPriority:j,decoding:k="async",layout:N,objectFit:E,objectPosition:T,lazyBoundary:C,lazyRoot:A,...P},O){var I;let R,M,$,{imgConf:L,showAltText:U,blurComplete:D,defaultLoader:q}=O,B=L||n.imageConfigDefault;if("allSizes"in B)R=B;else{let e=[...B.deviceSizes,...B.imageSizes].sort((e,t)=>e-t),t=B.deviceSizes.sort((e,t)=>e-t),s=B.qualities?.sort((e,t)=>e-t);R={...B,allSizes:e,deviceSizes:t,qualities:s}}if(void 0===q)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let W=P.loader||q;delete P.loader,delete P.srcSet;let H="__next_img_default"in W;if(H){if("custom"===R.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop. -Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=W;W=t=>{let{config:s,...r}=t;return e(r)}}if(N){"fill"===N&&(y=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[N];e&&(x={...x,...e});let s={responsive:"100vw",fill:"100vw"}[N];s&&!t&&(t=s)}let z="",F=l(g),J=l(f);if((I=e)&&"object"==typeof I&&(o(I)||void 0!==I.src)){let t=o(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(M=t.blurWidth,$=t.blurHeight,S=S||t.blurDataURL,z=t.src,!y)if(F||J){if(F&&!J){let e=F/t.width;J=Math.round(t.height*e)}else if(!F&&J){let e=J/t.height;F=Math.round(t.width*e)}}else F=t.width,J=t.height}let G=!d&&!u&&("lazy"===h||void 0===h);(!(e="string"==typeof e?e:z)||e.startsWith("data:")||e.startsWith("blob:"))&&(s=!0,G=!1),R.unoptimized&&(s=!0),H&&!R.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(s=!0);let V=l(m),K=Object.assign(y?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:E,objectPosition:T}:{},U?{}:{color:"transparent"},x),X=D||"empty"===_?null:"blur"===_?`url("data:image/svg+xml;charset=utf-8,${(0,a.getImageBlurSvg)({widthInt:F,heightInt:J,blurWidth:M,blurHeight:$,blurDataURL:S||"",objectFit:K.objectFit})}")`:`url("${_}")`,Y=i.includes(K.objectFit)?"fill"===K.objectFit?"100% 100%":"cover":K.objectFit,Q=X?{backgroundSize:Y,backgroundPosition:K.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:X}:{},Z=function({config:e,src:t,unoptimized:s,width:a,quality:n,sizes:i,loader:o}){if(s){if(t.startsWith("/")&&!t.startsWith("//")){let e=(0,r.getDeploymentId)();if(e){let s=t.indexOf("?");if(-1!==s){let r=new URLSearchParams(t.slice(s+1));r.get("dpl")||(r.append("dpl",e),t=t.slice(0,s)+"?"+r.toString())}else t+=`?dpl=${e}`}}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:l,kind:c}=function({deviceSizes:e,allSizes:t},s,r){if(r){let s=/(^|\s)(1?\d?\d)vw/g,a=[];for(let e;e=s.exec(r);)a.push(parseInt(e[2]));if(a.length){let s=.01*Math.min(...a);return{widths:t.filter(t=>t>=e[0]*s),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof s?{widths:e,kind:"w"}:{widths:[...new Set([s,2*s].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,a,i),d=l.length-1;return{sizes:i||"w"!==c?i:"100vw",srcSet:l.map((s,r)=>`${o({config:e,src:t,quality:n,width:s})} ${"w"===c?s:r+1}${c}`).join(", "),src:o({config:e,src:t,quality:n,width:l[d]})}}({config:R,src:e,unoptimized:s,width:F,quality:V,sizes:t,loader:W}),ee=G?"lazy":h;return{props:{...P,loading:ee,fetchPriority:j,width:F,height:J,decoding:k,className:p,style:{...K,...Q},sizes:Z.sizes,srcSet:Z.srcSet,src:b||Z.src},meta:{unoptimized:s,preload:u||d,placeholder:_,fill:y}}}},898879,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"default",{enumerable:!0,get:function(){return o}});let r=e.r(271645),a="u"{}:r.useLayoutEffect,i=a?()=>{}:r.useEffect;function o(e){let{headManager:t,reduceComponentsToState:s}=e;function o(){if(t&&t.mountedInstances){let e=r.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(s(e))}}return a&&(t?.mountedInstances?.add(e.children),o()),n(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),n(()=>(t&&(t._pendingUpdate=o),()=>{t&&(t._pendingUpdate=o)})),i(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},325633,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0});var r={default:function(){return g},defaultHead:function(){return u}};for(var a in r)Object.defineProperty(s,a,{enumerable:!0,get:r[a]});let n=e.r(563141),i=e.r(151836),o=e.r(843476),l=i._(e.r(271645)),c=n._(e.r(898879)),d=e.r(742732);function u(){return[(0,o.jsx)("meta",{charSet:"utf-8"},"charset"),(0,o.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function h(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===l.default.Fragment?e.concat(l.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(233525);let p=["name","httpEquiv","charSet","itemProp"];function m(e){let t,s,r,a;return e.reduce(h,[]).reverse().concat(u().reverse()).filter((t=new Set,s=new Set,r=new Set,a={},e=>{let n=!0,i=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){i=!0;let s=e.key.slice(e.key.indexOf("$")+1);t.has(s)?n=!1:t.add(s)}switch(e.type){case"title":case"base":s.has(e.type)?n=!1:s.add(e.type);break;case"meta":for(let t=0,s=p.length;t{let s=e.key||t;return l.default.cloneElement(e,{key:s})})}let g=function({children:e}){let t=(0,l.useContext)(d.HeadManagerContext);return(0,o.jsx)(c.default,{reduceComponentsToState:m,headManager:t,children:e})};("function"==typeof s.default||"object"==typeof s.default&&null!==s.default)&&void 0===s.default.__esModule&&(Object.defineProperty(s.default,"__esModule",{value:!0}),Object.assign(s.default,s),t.exports=s.default)},918556,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"ImageConfigContext",{enumerable:!0,get:function(){return n}});let r=e.r(563141)._(e.r(271645)),a=e.r(987690),n=r.default.createContext(a.imageConfigDefault)},65856,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"RouterContext",{enumerable:!0,get:function(){return r}});let r=e.r(563141)._(e.r(271645)).default.createContext(null)},670965,(e,t,s)=>{"use strict";function r(e,t){let s=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"default",{enumerable:!0,get:function(){return i}});let r=e.r(670965),a=e.r(543369);function n({config:e,src:t,width:s,quality:i}){let o=(0,a.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")){let e=t.indexOf("?");if(-1!==e){let s=new URLSearchParams(t.slice(e+1)),r=s.get("dpl");if(r){o=r,s.delete("dpl");let a=s.toString();t=t.slice(0,e)+(a?"?"+a:"")}}}if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns. -Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let l=(0,r.findClosestQuality)(i,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${s}&q=${l}${t.startsWith("/")&&o?`&dpl=${o}`:""}`}n.__next_img_default=!0;let i=n},605500,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"Image",{enumerable:!0,get:function(){return v}});let r=e.r(563141),a=e.r(151836),n=e.r(843476),i=a._(e.r(271645)),o=r._(e.r(174080)),l=r._(e.r(325633)),c=e.r(908927),d=e.r(987690),u=e.r(918556);e.r(233525);let h=e.r(65856),p=r._(e.r(1948)),m=e.r(818581),g={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0};function f(e,t,s,r,a,n,i){let o=e?.src;e&&e["data-loaded-src"]!==o&&(e["data-loaded-src"]=o,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&a(!0),s?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let r=!1,a=!1;s.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>r,isPropagationStopped:()=>a,persist:()=>{},preventDefault:()=>{r=!0,t.preventDefault()},stopPropagation:()=>{a=!0,t.stopPropagation()}})}r?.current&&r.current(e)}}))}function y(e){return i.use?{fetchPriority:e}:{fetchpriority:e}}"u"{let E=(0,i.useCallback)(e=>{e&&(j&&(e.src=e.src),e.complete&&f(e,u,x,b,v,p,_))},[e,u,x,b,v,j,p,_]),T=(0,m.useMergedRef)(N,E);return(0,n.jsx)("img",{...k,...y(d),loading:h,width:a,height:r,decoding:o,"data-nimg":g?"fill":"1",className:l,style:c,sizes:s,srcSet:t,src:e,ref:T,onLoad:e=>{f(e.currentTarget,u,x,b,v,p,_)},onError:e=>{w(!0),"empty"!==u&&v(!0),j&&j(e)}})});function b({isAppRouter:e,imgAttributes:t}){let s={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...y(t.fetchPriority)};return e&&o.default.preload?(o.default.preload(t.src,s),null):(0,n.jsx)(l.default,{children:(0,n.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...s},"__nimg-"+t.src+t.srcSet+t.sizes)})}let v=(0,i.forwardRef)((e,t)=>{let s=(0,i.useContext)(h.RouterContext),r=(0,i.useContext)(u.ImageConfigContext),a=(0,i.useMemo)(()=>{let e=g||r||d.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),s=e.deviceSizes.sort((e,t)=>e-t),a=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:s,qualities:a,localPatterns:"u"{m.current=o},[o]);let f=(0,i.useRef)(l);(0,i.useEffect)(()=>{f.current=l},[l]);let[y,v]=(0,i.useState)(!1),[w,_]=(0,i.useState)(!1),{props:S,meta:j}=(0,c.getImgProps)(e,{defaultLoader:p.default,imgConf:a,blurComplete:y,showAltText:w});return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(x,{...S,unoptimized:j.unoptimized,placeholder:j.placeholder,fill:j.fill,onLoadRef:m,onLoadingCompleteRef:f,setBlurComplete:v,setShowAltText:_,sizesInput:e.sizes,ref:t}),j.preload?(0,n.jsx)(b,{isAppRouter:!s,imgAttributes:S}):null]})});("function"==typeof s.default||"object"==typeof s.default&&null!==s.default)&&void 0===s.default.__esModule&&(Object.defineProperty(s.default,"__esModule",{value:!0}),Object.assign(s.default,s),t.exports=s.default)},794909,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0});var r={default:function(){return d},getImageProps:function(){return c}};for(var a in r)Object.defineProperty(s,a,{enumerable:!0,get:r[a]});let n=e.r(563141),i=e.r(908927),o=e.r(605500),l=n._(e.r(1948));function c(e){let{props:t}=(0,i.getImgProps)(e,{defaultLoader:l.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0}});for(let[e,s]of Object.entries(t))void 0===s&&delete t[e];return{props:t}}let d=o.Image},657688,(e,t,s)=>{t.exports=e.r(794909)},220486,761793,964421,91500,843153,152401,e=>{"use strict";var t=e.i(843476),s=e.i(218129),r=e.i(132104),a=e.i(447593),n=e.i(245094),i=e.i(210612),o=e.i(955135),l=e.i(827252),c=e.i(438957),d=e.i(596239),u=e.i(56456),h=e.i(124608),p=e.i(983561),m=e.i(602073),g=e.i(313603),f=e.i(782273),y=e.i(232164),x=e.i(366308),b=e.i(304967),v=e.i(599724),w=e.i(779241),_=e.i(629569),S=e.i(994388),j=e.i(464571),k=e.i(311451),N=e.i(212931),E=e.i(282786),T=e.i(199133),C=e.i(482725),A=e.i(592968),P=e.i(898586),O=e.i(515831),I=e.i(271645),R=e.i(650056),M=e.i(219470),$=e.i(614677),L=e.i(891547),U=e.i(921511),D=e.i(235267),q=e.i(611052),B=e.i(727749),W=e.i(764205),H=e.i(318059),z=e.i(916940),F=e.i(953860),J=e.i(434788),G=e.i(512882),V=e.i(584976),K=e.i(254530),X=e.i(720762),Y=e.i(921687),Q=e.i(689020);e.i(247167);var Z=e.i(356449);async function ee(e,t,s,r,a,n,i,o){console.log=function(){},console.log("isLocal:",!1);let l=o||(0,W.getProxyBaseUrl)(),c=new Z.default.OpenAI({apiKey:a,baseURL:l,dangerouslyAllowBrowser:!0,defaultHeaders:n&&n.length>0?{"x-litellm-tags":n.join(",")}:void 0});try{let a=Array.isArray(e)?e:[e],n=[];for(let e=0;e1&&B.default.success(`Successfully processed ${n.length} images`)}catch(e){if(console.error("Error making image edit request:",e),i?.aborted)console.log("Image edits request was cancelled");else{let t="Failed to edit image(s)";e?.error?.message?t=e.error.message:e?.message&&(t=e.message),B.default.fromBackend(`Image edit failed: ${t}`)}throw e}}async function et(e,t,s,r,a,n,i){console.log=function(){},console.log("isLocal:",!1);let o=i||(0,W.getProxyBaseUrl)(),l=new Z.default.OpenAI({apiKey:r,baseURL:o,dangerouslyAllowBrowser:!0,defaultHeaders:a&&a.length>0?{"x-litellm-tags":a.join(",")}:void 0});try{let r=await l.images.generate({model:s,prompt:e},{signal:n});if(console.log(r.data),r.data&&r.data[0])if(r.data[0].url)t(r.data[0].url,s);else if(r.data[0].b64_json){let e=r.data[0].b64_json;t(`data:image/png;base64,${e}`,s)}else throw Error("No image data found in response");else throw Error("Invalid response format")}catch(e){throw n?.aborted?console.log("Image generation request was cancelled"):B.default.fromBackend(`Error occurred while generating image. Please try again. Error: ${e}`),e}}var es=e.i(452598),er=e.i(536916),ea=e.i(28651),en=e.i(850627);let ei=({temperature:e=1,maxTokens:s=2048,useAdvancedParams:r,onTemperatureChange:a,onMaxTokensChange:n,onUseAdvancedParamsChange:i,mockTestFallbacks:o,onMockTestFallbacksChange:c})=>{let[d,u]=(0,I.useState)(!1),h=void 0!==r?r:d,[p,m]=(0,I.useState)(e),[g,f]=(0,I.useState)(s);(0,I.useEffect)(()=>{m(e)},[e]),(0,I.useEffect)(()=>{f(s)},[s]);let y=e=>{let t=e??1;m(t),a?.(t)},x=e=>{let t=e??1e3;f(t),n?.(t)},b=h?"text-gray-700":"text-gray-400";return(0,t.jsxs)("div",{className:"space-y-4 p-4 w-80",children:[(0,t.jsx)(er.Checkbox,{checked:h,onChange:e=>{var t;return t=e.target.checked,void(i?i(t):u(t))},children:(0,t.jsx)("span",{className:"font-medium",children:"Use Advanced Parameters"})}),c&&(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)(er.Checkbox,{checked:o??!1,onChange:e=>c(e.target.checked),children:(0,t.jsx)("span",{className:"font-medium",children:"Simulate failure to test fallbacks"})}),(0,t.jsx)(E.Popover,{trigger:"hover",placement:"right",content:(0,t.jsxs)("div",{style:{maxWidth:340},children:[(0,t.jsx)(P.Typography.Paragraph,{className:"text-sm",style:{marginBottom:8},children:"Causes the first request to fail so the router tries fallbacks (if configured). Use this to verify your fallback setup."}),(0,t.jsxs)(P.Typography.Paragraph,{className:"text-sm",style:{marginBottom:0},children:["Behavior can differ when keys, teams, or router settings are configured."," ",(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/keys_teams_router_settings",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800",children:"Learn more"})]})]}),children:(0,t.jsx)(l.InfoCircleOutlined,{className:"text-xs text-gray-400 cursor-pointer shrink-0 hover:text-gray-600","aria-label":"Help: Simulate failure to test fallbacks"})})]}),(0,t.jsxs)("div",{className:"space-y-4 transition-opacity duration-200",style:{opacity:h?1:.4},children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)(v.Text,{className:`text-sm ${b}`,children:"Temperature"}),(0,t.jsx)(A.Tooltip,{title:"Controls randomness. Lower values make output more deterministic, higher values more creative.",children:(0,t.jsx)(l.InfoCircleOutlined,{className:`text-xs ${b} cursor-help`})})]}),(0,t.jsx)(ea.InputNumber,{min:0,max:2,step:.1,value:p,onChange:y,disabled:!h,precision:1,className:"w-20"})]}),(0,t.jsx)(en.Slider,{min:0,max:2,step:.1,value:p,onChange:y,disabled:!h,marks:{0:"0",1:"1.0",2:"2.0"}})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)(v.Text,{className:`text-sm ${b}`,children:"Max Tokens"}),(0,t.jsx)(A.Tooltip,{title:"Maximum number of tokens to generate in the response.",children:(0,t.jsx)(l.InfoCircleOutlined,{className:`text-xs ${b} cursor-help`})})]}),(0,t.jsx)(ea.InputNumber,{min:1,max:32768,step:1,value:g,onChange:x,disabled:!h})]}),(0,t.jsx)(en.Slider,{min:1,max:32768,step:1,value:g,onChange:x,disabled:!h,marks:{1:"1",32768:"32768"}})]})]})]})};var eo=e.i(785913);let el={ALLOY:"Alloy - Professional and confident",ASH:"Ash - Casual and relaxed",BALAD:"Ballad - Smooth and melodic",CORAL:"Coral - Warm and engaging",ECHO:"Echo - Friendly and conversational",FABLE:"Fable - Wise and measured",NOVA:"Nova - Friendly and conversational",ONYX:"Onyx - Deep and authoritative",SAGE:"Sage - Wise and measured",SHIMMER:"Shimmer - Bright and cheerful"},ec=Object.entries({ALLOY:"alloy",ASH:"ash",BALAD:"ballad",CORAL:"coral",ECHO:"echo",FABLE:"fable",NOVA:"nova",ONYX:"onyx",SAGE:"sage",SHIMMER:"shimmer"}).map(([e,t])=>({value:t,label:el[e]})),ed=[{value:eo.EndpointType.CHAT,label:"/v1/chat/completions"},{value:eo.EndpointType.RESPONSES,label:"/v1/responses"},{value:eo.EndpointType.ANTHROPIC_MESSAGES,label:"/v1/messages"},{value:eo.EndpointType.IMAGE,label:"/v1/images/generations"},{value:eo.EndpointType.IMAGE_EDITS,label:"/v1/images/edits"},{value:eo.EndpointType.EMBEDDINGS,label:"/v1/embeddings"},{value:eo.EndpointType.SPEECH,label:"/v1/audio/speech"},{value:eo.EndpointType.TRANSCRIPTION,label:"/v1/audio/transcriptions"},{value:eo.EndpointType.A2A_AGENTS,label:"/v1/a2a/message/send"},{value:eo.EndpointType.MCP,label:"/mcp-rest/tools/call"},{value:eo.EndpointType.REALTIME,label:"/v1/realtime"}];var eu=e.i(955719),eu=eu;let{Dragger:eh}=O.Upload,ep=({chatUploadedImage:e,chatImagePreviewUrl:s,onImageUpload:r,onRemoveImage:a})=>(0,t.jsx)(t.Fragment,{children:!e&&(0,t.jsx)(eh,{beforeUpload:r,accept:"image/*,.pdf",showUploadList:!1,className:"inline-block",style:{padding:0,border:"none",background:"none"},children:(0,t.jsx)(A.Tooltip,{title:"Attach image or PDF",children:(0,t.jsx)("button",{type:"button",className:"flex items-center justify-center w-8 h-8 text-gray-400 hover:text-gray-600 hover:bg-gray-100 rounded-md transition-colors",children:(0,t.jsx)(eu.default,{style:{fontSize:"16px"}})})})})});e.s(["default",0,ep],761793);let em=async(e,t)=>({role:"user",content:[{type:"text",text:e},{type:"image_url",image_url:{url:await new Promise((e,s)=>{let r=new FileReader;r.onload=()=>{e(r.result)},r.onerror=s,r.readAsDataURL(t)})}}]}),eg=(e,t,s,r)=>{let a="";t&&r&&(a=r.toLowerCase().endsWith(".pdf")?"[PDF attached]":"[Image attached]");let n={role:"user",content:t?`${e} ${a}`:e};return t&&s&&(n.imagePreviewUrl=s),n},ef=e=>"user"===e.role&&"string"==typeof e.content&&(e.content.includes("[Image attached]")||e.content.includes("[PDF attached]"))&&!!e.imagePreviewUrl;e.s(["createChatDisplayMessage",0,eg,"createChatMultimodalMessage",0,em,"shouldShowChatAttachedImage",0,ef],964421);var ey=e.i(790848),ex=e.i(888259),eb=e.i(270377);let ev=({enabled:e,onEnabledChange:s,selectedModel:r,disabled:a=!1})=>{let i=(e=>{if(!e)return!1;let t=e.toLowerCase();return t.startsWith("openai/")||t.startsWith("gpt-")||t.startsWith("o1")||t.startsWith("o3")||t.includes("openai")})(r);return(0,t.jsxs)("div",{className:"border border-gray-200 rounded-lg p-3 bg-gradient-to-r from-blue-50 to-purple-50",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(n.CodeOutlined,{className:"text-blue-500"}),(0,t.jsx)(v.Text,{className:"font-medium text-gray-700",children:"Code Interpreter"}),(0,t.jsx)(A.Tooltip,{title:"Run Python code to generate files, charts, and analyze data. Container is created automatically.",children:(0,t.jsx)(l.InfoCircleOutlined,{className:"text-gray-400 text-xs"})})]}),(0,t.jsx)(ey.Switch,{checked:e&&i,onChange:e=>{e&&!i?ex.default.warning("Code Interpreter is only available for OpenAI models"):s(e)},disabled:a||!i,size:"small",className:e&&i?"bg-blue-500":""})]}),!i&&(0,t.jsx)("div",{className:"mt-2 pt-2 border-t border-gray-200",children:(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)(eb.ExclamationCircleOutlined,{className:"text-amber-500 mt-0.5"}),(0,t.jsxs)("div",{className:"text-xs text-gray-600",children:[(0,t.jsx)("span",{children:"Code Interpreter is currently only supported for OpenAI models. "}),(0,t.jsx)("a",{href:"https://github.com/BerriAI/litellm/issues/new?template=feature_request.yml",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 underline",children:"Request support for other providers"})]})]})})]})};var ew=e.i(190272);let e_=({endpointType:e,onEndpointChange:s,className:r})=>(0,t.jsx)("div",{className:r,children:(0,t.jsx)(T.Select,{showSearch:!0,value:e,style:{width:"100%"},onChange:s,options:ed,className:"rounded-md",filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase())||(t?.value??"").toLowerCase().includes(e.toLowerCase())})});var eS=e.i(931067);let ej={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M531.3 574.4l.3-1.4c5.8-23.9 13.1-53.7 7.4-80.7-3.8-21.3-19.5-29.6-32.9-30.2-15.8-.7-29.9 8.3-33.4 21.4-6.6 24-.7 56.8 10.1 98.6-13.6 32.4-35.3 79.5-51.2 107.5-29.6 15.3-69.3 38.9-75.2 68.7-1.2 5.5.2 12.5 3.5 18.8 3.7 7 9.6 12.4 16.5 15 3 1.1 6.6 2 10.8 2 17.6 0 46.1-14.2 84.1-79.4 5.8-1.9 11.8-3.9 17.6-5.9 27.2-9.2 55.4-18.8 80.9-23.1 28.2 15.1 60.3 24.8 82.1 24.8 21.6 0 30.1-12.8 33.3-20.5 5.6-13.5 2.9-30.5-6.2-39.6-13.2-13-45.3-16.4-95.3-10.2-24.6-15-40.7-35.4-52.4-65.8zM421.6 726.3c-13.9 20.2-24.4 30.3-30.1 34.7 6.7-12.3 19.8-25.3 30.1-34.7zm87.6-235.5c5.2 8.9 4.5 35.8.5 49.4-4.9-19.9-5.6-48.1-2.7-51.4.8.1 1.5.7 2.2 2zm-1.6 120.5c10.7 18.5 24.2 34.4 39.1 46.2-21.6 4.9-41.3 13-58.9 20.2-4.2 1.7-8.3 3.4-12.3 5 13.3-24.1 24.4-51.4 32.1-71.4zm155.6 65.5c.1.2.2.5-.4.9h-.2l-.2.3c-.8.5-9 5.3-44.3-8.6 40.6-1.9 45 7.3 45.1 7.4zm191.4-388.2L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z"}}]},name:"file-pdf",theme:"outlined"};var ek=e.i(9583),eN=I.forwardRef(function(e,t){return I.createElement(ek.default,(0,eS.default)({},e,{ref:t,icon:ej}))});e.s(["FilePdfOutlined",0,eN],91500);let eE=function({file:e,previewUrl:s,onRemove:r}){let a=e.name.toLowerCase().endsWith(".pdf");return(0,t.jsx)("div",{className:"mb-2",children:(0,t.jsxs)("div",{className:"flex items-center gap-3 p-3 bg-gray-50 rounded-lg border border-gray-200",children:[(0,t.jsx)("div",{className:"relative inline-block",children:a?(0,t.jsx)("div",{className:"w-10 h-10 rounded-md bg-red-500 flex items-center justify-center",children:(0,t.jsx)(eN,{style:{fontSize:"16px",color:"white"}})}):(0,t.jsx)("img",{src:s||"",alt:"Upload preview",className:"w-10 h-10 rounded-md border border-gray-200 object-cover"})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-gray-900 truncate",children:e.name}),(0,t.jsx)("div",{className:"text-xs text-gray-500",children:a?"PDF":"Image"})]}),(0,t.jsx)("button",{className:"flex items-center justify-center w-6 h-6 text-gray-400 hover:text-gray-600 hover:bg-gray-200 rounded-full transition-colors",onClick:r,children:(0,t.jsx)(o.DeleteOutlined,{style:{fontSize:"12px"}})})]})})};var eT=e.i(771674),eC=e.i(918789),eA=e.i(245704),eP=e.i(637235),eO=e.i(166406),eI=e.i(755151),eR=e.i(240647),eM=e.i(993914);let e$=(e,t=8)=>e?e.length>t?`${e.substring(0,t)}…`:e:null,eL=e=>{navigator.clipboard.writeText(e)},eU=({a2aMetadata:e,timeToFirstToken:s,totalLatency:r})=>{let[a,n]=(0,I.useState)(!1);if(!e&&!s&&!r)return null;let{taskId:i,contextId:o,status:l,metadata:c}=e||{},h=(e=>{if(!e)return null;try{return new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}catch{return e}})(l?.timestamp);return(0,t.jsxs)("div",{className:"a2a-metrics mt-3 pt-2 border-t border-gray-200 text-xs",children:[(0,t.jsxs)("div",{className:"flex items-center mb-2 text-gray-600",children:[(0,t.jsx)(p.RobotOutlined,{className:"mr-1.5 text-blue-500"}),(0,t.jsx)("span",{className:"font-medium text-gray-700",children:"A2A Metadata"})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-gray-500 ml-4",children:[l?.state&&(0,t.jsxs)("span",{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium ${(e=>{switch(e){case"completed":return"bg-green-100 text-green-700";case"working":case"submitted":return"bg-blue-100 text-blue-700";case"failed":case"canceled":return"bg-red-100 text-red-700";default:return"bg-gray-100 text-gray-700"}})(l.state)}`,children:[(e=>{switch(e){case"completed":return(0,t.jsx)(eA.CheckCircleOutlined,{className:"text-green-500"});case"working":case"submitted":return(0,t.jsx)(u.LoadingOutlined,{className:"text-blue-500"});case"failed":case"canceled":return(0,t.jsx)(eb.ExclamationCircleOutlined,{className:"text-red-500"});default:return(0,t.jsx)(eP.ClockCircleOutlined,{className:"text-gray-500"})}})(l.state),(0,t.jsx)("span",{className:"ml-1 capitalize",children:l.state})]}),h&&(0,t.jsx)(A.Tooltip,{title:l?.timestamp,children:(0,t.jsxs)("span",{className:"flex items-center",children:[(0,t.jsx)(eP.ClockCircleOutlined,{className:"mr-1"}),h]})}),void 0!==r&&(0,t.jsx)(A.Tooltip,{title:"Total latency",children:(0,t.jsxs)("span",{className:"flex items-center text-blue-600",children:[(0,t.jsx)(eP.ClockCircleOutlined,{className:"mr-1"}),(r/1e3).toFixed(2),"s"]})}),void 0!==s&&(0,t.jsx)(A.Tooltip,{title:"Time to first token",children:(0,t.jsxs)("span",{className:"flex items-center text-green-600",children:["TTFT: ",(s/1e3).toFixed(2),"s"]})})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3 text-gray-500 ml-4 mt-1.5",children:[i&&(0,t.jsx)(A.Tooltip,{title:`Click to copy: ${i}`,children:(0,t.jsxs)("span",{className:"flex items-center cursor-pointer hover:text-gray-700",onClick:()=>eL(i),children:[(0,t.jsx)(eM.FileTextOutlined,{className:"mr-1"}),"Task: ",e$(i),(0,t.jsx)(eO.CopyOutlined,{className:"ml-1 text-gray-400 hover:text-gray-600"})]})}),o&&(0,t.jsx)(A.Tooltip,{title:`Click to copy: ${o}`,children:(0,t.jsxs)("span",{className:"flex items-center cursor-pointer hover:text-gray-700",onClick:()=>eL(o),children:[(0,t.jsx)(d.LinkOutlined,{className:"mr-1"}),"Session: ",e$(o),(0,t.jsx)(eO.CopyOutlined,{className:"ml-1 text-gray-400 hover:text-gray-600"})]})}),(c||l?.message)&&(0,t.jsxs)(j.Button,{type:"text",size:"small",className:"text-xs text-blue-500 hover:text-blue-700 p-0 h-auto",onClick:()=>n(!a),children:[a?(0,t.jsx)(eI.DownOutlined,{}):(0,t.jsx)(eR.RightOutlined,{}),(0,t.jsx)("span",{className:"ml-1",children:"Details"})]})]}),a&&(0,t.jsxs)("div",{className:"mt-2 ml-4 p-3 bg-gray-50 rounded-md text-gray-600 border border-gray-200",children:[l?.message&&(0,t.jsxs)("div",{className:"mb-2",children:[(0,t.jsx)("span",{className:"font-medium text-gray-700",children:"Status Message:"}),(0,t.jsx)("span",{className:"ml-2",children:l.message})]}),i&&(0,t.jsxs)("div",{className:"mb-1.5 flex items-center",children:[(0,t.jsx)("span",{className:"font-medium text-gray-700 w-24",children:"Task ID:"}),(0,t.jsx)("code",{className:"ml-2 px-2 py-1 bg-white border border-gray-200 rounded text-xs font-mono",children:i}),(0,t.jsx)(eO.CopyOutlined,{className:"ml-2 cursor-pointer text-gray-400 hover:text-blue-500",onClick:()=>eL(i)})]}),o&&(0,t.jsxs)("div",{className:"mb-1.5 flex items-center",children:[(0,t.jsx)("span",{className:"font-medium text-gray-700 w-24",children:"Session ID:"}),(0,t.jsx)("code",{className:"ml-2 px-2 py-1 bg-white border border-gray-200 rounded text-xs font-mono",children:o}),(0,t.jsx)(eO.CopyOutlined,{className:"ml-2 cursor-pointer text-gray-400 hover:text-blue-500",onClick:()=>eL(o)})]}),c&&Object.keys(c).length>0&&(0,t.jsxs)("div",{className:"mt-3",children:[(0,t.jsx)("span",{className:"font-medium text-gray-700",children:"Custom Metadata:"}),(0,t.jsx)("pre",{className:"mt-1.5 p-2 bg-white border border-gray-200 rounded text-xs font-mono overflow-x-auto whitespace-pre-wrap",children:JSON.stringify(c,null,2)})]})]})]})},eD=({message:e})=>e.isAudio&&"string"==typeof e.content?(0,t.jsx)("div",{className:"mb-2",children:(0,t.jsx)("audio",{controls:!0,src:e.content,className:"max-w-full",style:{maxWidth:"500px"},children:"Your browser does not support the audio element."})}):null;var eq=e.i(657688);let eB=({message:e})=>{if(!ef(e))return null;let s="string"==typeof e.content&&e.content.includes("[PDF attached]");return(0,t.jsx)("div",{className:"mb-2",children:s?(0,t.jsx)("div",{className:"w-64 h-32 rounded-md border border-gray-200 bg-red-50 flex items-center justify-center",children:(0,t.jsx)(eN,{style:{fontSize:"48px",color:"#dc2626"}})}):(0,t.jsx)(eq.default,{src:e.imagePreviewUrl||"",alt:"User uploaded image",width:256,height:200,className:"max-w-64 rounded-md border border-gray-200 shadow-sm",style:{maxHeight:"200px",width:"auto",height:"auto"}})})};e.s(["default",0,eB],843153);var eW=e.i(362024),eH=e.i(737434);let ez={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 00-12.6 0l-99.8 127.2a7.98 7.98 0 006.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 00-12.7 0zM360 442a40 40 0 1080 0 40 40 0 10-80 0zm494.6-153.4L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z"}}]},name:"file-image",theme:"outlined"};var eF=I.forwardRef(function(e,t){return I.createElement(ek.default,(0,eS.default)({},e,{ref:t,icon:ez}))});let eJ=({code:e,containerId:s,annotations:r=[],accessToken:a})=>{let[i,o]=(0,I.useState)({}),[l,c]=(0,I.useState)({}),d=(0,W.getProxyBaseUrl)();(0,I.useEffect)(()=>{let e=async()=>{for(let e of r)if((e.filename?.toLowerCase().endsWith(".png")||e.filename?.toLowerCase().endsWith(".jpg")||e.filename?.toLowerCase().endsWith(".jpeg")||e.filename?.toLowerCase().endsWith(".gif"))&&e.container_id&&e.file_id){c(t=>({...t,[e.file_id]:!0}));try{let t=await fetch(`${d}/v1/containers/${e.container_id}/files/${e.file_id}/content`,{headers:{[(0,W.getGlobalLitellmHeaderName)()]:`Bearer ${a}`}});if(t.ok){let s=await t.blob(),r=URL.createObjectURL(s);o(t=>({...t,[e.file_id]:r}))}}catch(e){console.error("Error fetching image:",e)}finally{c(t=>({...t,[e.file_id]:!1}))}}};return r.length>0&&a&&e(),()=>{Object.values(i).forEach(e=>URL.revokeObjectURL(e))}},[r,a,d]);let h=async e=>{try{let t=await fetch(`${d}/v1/containers/${e.container_id}/files/${e.file_id}/content`,{headers:{[(0,W.getGlobalLitellmHeaderName)()]:`Bearer ${a}`}});if(t.ok){let s=await t.blob(),r=URL.createObjectURL(s),a=document.createElement("a");a.href=r,a.download=e.filename||`file_${e.file_id}`,document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(r)}}catch(e){console.error("Error downloading file:",e)}},p=r.filter(e=>e.filename?.toLowerCase().endsWith(".png")||e.filename?.toLowerCase().endsWith(".jpg")||e.filename?.toLowerCase().endsWith(".jpeg")||e.filename?.toLowerCase().endsWith(".gif")),m=r.filter(e=>!e.filename?.toLowerCase().endsWith(".png")&&!e.filename?.toLowerCase().endsWith(".jpg")&&!e.filename?.toLowerCase().endsWith(".jpeg")&&!e.filename?.toLowerCase().endsWith(".gif"));return e||0!==r.length?(0,t.jsxs)("div",{className:"mt-3 space-y-3",children:[e&&(0,t.jsx)(eW.Collapse,{size:"small",items:[{key:"code",label:(0,t.jsxs)("span",{className:"flex items-center gap-2 text-sm text-gray-600",children:[(0,t.jsx)(n.CodeOutlined,{})," Python Code Executed"]}),children:(0,t.jsx)(R.Prism,{language:"python",style:M.coy,customStyle:{margin:0,borderRadius:"6px",fontSize:"12px",maxHeight:"300px",overflow:"auto"},children:e})}]}),p.map(e=>(0,t.jsx)("div",{className:"rounded-lg border border-gray-200 overflow-hidden",children:l[e.file_id]?(0,t.jsxs)("div",{className:"flex items-center justify-center p-8 bg-gray-50",children:[(0,t.jsx)(C.Spin,{indicator:(0,t.jsx)(u.LoadingOutlined,{spin:!0})}),(0,t.jsx)("span",{className:"ml-2 text-sm text-gray-500",children:"Loading image..."})]}):i[e.file_id]?(0,t.jsxs)("div",{children:[(0,t.jsx)("img",{src:i[e.file_id],alt:e.filename||"Generated chart",className:"max-w-full",style:{maxHeight:"400px"}}),(0,t.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 bg-gray-50 border-t border-gray-200",children:[(0,t.jsxs)("span",{className:"text-xs text-gray-500 flex items-center gap-1",children:[(0,t.jsx)(eF,{})," ",e.filename]}),(0,t.jsxs)("button",{onClick:()=>h(e),className:"text-xs text-blue-500 hover:text-blue-700 flex items-center gap-1",children:[(0,t.jsx)(eH.DownloadOutlined,{})," Download"]})]})]}):(0,t.jsx)("div",{className:"flex items-center justify-center p-4 bg-gray-50",children:(0,t.jsx)("span",{className:"text-sm text-gray-400",children:"Image not available"})})},e.file_id)),m.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:m.map(e=>(0,t.jsxs)("button",{onClick:()=>h(e),className:"flex items-center gap-2 px-3 py-2 bg-gray-50 border border-gray-200 rounded-lg hover:bg-gray-100 transition-colors",children:[(0,t.jsx)(eM.FileTextOutlined,{className:"text-blue-500"}),(0,t.jsx)("span",{className:"text-sm",children:e.filename}),(0,t.jsx)(eH.DownloadOutlined,{className:"text-gray-400"})]},e.file_id))})]}):null};var eG=e.i(355343),eV=e.i(966988),eK=e.i(989022);let eX=async(e,t)=>{let s=await new Promise((e,s)=>{let r=new FileReader;r.onload=()=>{e(r.result.split(",")[1])},r.onerror=s,r.readAsDataURL(t)}),r=t.type||(t.name.toLowerCase().endsWith(".pdf")?"application/pdf":"image/jpeg");return{role:"user",content:[{type:"input_text",text:e},{type:"input_image",image_url:`data:${r};base64,${s}`}]}},eY=(e,t,s,r)=>{let a="";t&&r&&(a=r.toLowerCase().endsWith(".pdf")?"[PDF attached]":"[Image attached]");let n={role:"user",content:t?`${e} ${a}`:e};return t&&s&&(n.imagePreviewUrl=s),n},eQ=({message:e})=>{if(!("user"===e.role&&"string"==typeof e.content&&(e.content.includes("[Image attached]")||e.content.includes("[PDF attached]"))&&e.imagePreviewUrl))return null;let s="string"==typeof e.content&&e.content.includes("[PDF attached]");return(0,t.jsx)("div",{className:"mb-2",children:s?(0,t.jsx)("div",{className:"w-64 h-32 rounded-md border border-gray-200 bg-red-50 flex items-center justify-center",children:(0,t.jsx)(eN,{style:{fontSize:"48px",color:"#dc2626"}})}):(0,t.jsx)("img",{src:e.imagePreviewUrl,alt:"User uploaded image",className:"max-w-64 rounded-md border border-gray-200 shadow-sm",style:{maxHeight:"200px"}})})};function eZ({searchResults:e}){let[s,r]=(0,I.useState)(!0),[a,n]=(0,I.useState)({});if(!e||0===e.length)return null;let o=e.reduce((e,t)=>e+t.data.length,0);return(0,t.jsxs)("div",{className:"search-results-content mt-1 mb-2",children:[(0,t.jsxs)(j.Button,{type:"text",className:"flex items-center text-xs text-gray-500 hover:text-gray-700",onClick:()=>r(!s),icon:(0,t.jsx)(i.DatabaseOutlined,{}),children:[s?"Hide sources":`Show sources (${o})`,s?(0,t.jsx)(eI.DownOutlined,{className:"ml-1"}):(0,t.jsx)(eR.RightOutlined,{className:"ml-1"})]}),s&&(0,t.jsx)("div",{className:"mt-2 p-3 bg-gray-50 border border-gray-200 rounded-md text-sm",children:(0,t.jsx)("div",{className:"space-y-3",children:e.map((e,s)=>(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"text-xs text-gray-600 mb-2 flex items-center gap-2",children:[(0,t.jsx)("span",{className:"font-medium",children:"Query:"}),(0,t.jsxs)("span",{className:"italic",children:['"',e.search_query,'"']}),(0,t.jsx)("span",{className:"text-gray-400",children:"•"}),(0,t.jsxs)("span",{className:"text-gray-500",children:[e.data.length," result",1!==e.data.length?"s":""]})]}),(0,t.jsx)("div",{className:"space-y-2",children:e.data.map((e,r)=>{let i=a[`${s}-${r}`]||!1;return(0,t.jsxs)("div",{className:"border border-gray-200 rounded-md overflow-hidden bg-white",children:[(0,t.jsx)("div",{className:"flex items-center justify-between p-2 cursor-pointer hover:bg-gray-50 transition-colors",onClick:()=>{let e;return e=`${s}-${r}`,void n(t=>({...t,[e]:!t[e]}))},children:(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[(0,t.jsx)("svg",{className:`w-4 h-4 text-gray-400 transition-transform flex-shrink-0 ${i?"transform rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,t.jsx)(eM.FileTextOutlined,{className:"text-gray-400 flex-shrink-0",style:{fontSize:"12px"}}),(0,t.jsx)("span",{className:"text-xs font-medium text-gray-700 truncate",children:e.filename||e.file_id||`Result ${r+1}`}),(0,t.jsx)("span",{className:"text-xs px-2 py-0.5 rounded bg-blue-100 text-blue-700 font-mono flex-shrink-0",children:e.score.toFixed(3)})]})}),i&&(0,t.jsx)("div",{className:"border-t border-gray-200 bg-white",children:(0,t.jsxs)("div",{className:"p-3 space-y-2",children:[e.content.map((e,s)=>(0,t.jsx)("div",{children:(0,t.jsx)("div",{className:"text-xs font-mono bg-gray-50 p-2 rounded text-gray-800 whitespace-pre-wrap break-words",children:e.text})},s)),e.attributes&&Object.keys(e.attributes).length>0&&(0,t.jsxs)("div",{className:"mt-2 pt-2 border-t border-gray-100",children:[(0,t.jsx)("div",{className:"text-xs text-gray-500 mb-1 font-medium",children:"Metadata:"}),(0,t.jsx)("div",{className:"space-y-1",children:Object.entries(e.attributes).map(([e,s])=>(0,t.jsxs)("div",{className:"text-xs flex gap-2",children:[(0,t.jsxs)("span",{className:"text-gray-500 font-medium",children:[e,":"]}),(0,t.jsx)("span",{className:"text-gray-700 font-mono break-all",children:String(s)})]},e))})]})]})})]},r)})})]},s))})})]})}e.s(["SearchResultsDisplay",0,eZ],152401);let e0=function({message:e,isLastMessage:s,endpointType:r,mcpEvents:a,codeInterpreterResult:n,accessToken:i}){let o="user"===e.role;return(0,t.jsx)("div",{className:`mb-4 ${o?"text-right":"text-left"}`,children:(0,t.jsxs)("div",{className:"inline-block max-w-[80%] rounded-lg shadow-sm p-3.5 px-4",style:{backgroundColor:o?"#f0f8ff":"#ffffff",border:o?"1px solid #e6f0fa":"1px solid #f0f0f0",textAlign:"left"},children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-1.5",children:[(0,t.jsx)("div",{className:"flex items-center justify-center w-6 h-6 rounded-full mr-1",style:{backgroundColor:o?"#e6f0fa":"#f5f5f5"},children:o?(0,t.jsx)(eT.UserOutlined,{style:{fontSize:"12px",color:"#2563eb"}}):(0,t.jsx)(p.RobotOutlined,{style:{fontSize:"12px",color:"#4b5563"}})}),(0,t.jsx)("strong",{className:"text-sm capitalize",children:e.role}),"assistant"===e.role&&e.model&&(0,t.jsx)("span",{className:"text-xs px-2 py-0.5 rounded bg-gray-100 text-gray-600 font-normal",children:e.model})]}),e.reasoningContent&&(0,t.jsx)(eV.default,{reasoningContent:e.reasoningContent}),"assistant"===e.role&&s&&a.length>0&&(r===eo.EndpointType.RESPONSES||r===eo.EndpointType.CHAT)&&(0,t.jsx)("div",{className:"mb-3",children:(0,t.jsx)(eG.default,{events:a})}),"assistant"===e.role&&e.searchResults&&(0,t.jsx)(eZ,{searchResults:e.searchResults}),"assistant"===e.role&&s&&n&&r===eo.EndpointType.RESPONSES&&(0,t.jsx)(eJ,{code:n.code,containerId:n.containerId,annotations:n.annotations,accessToken:i}),(0,t.jsxs)("div",{className:"whitespace-pre-wrap break-words max-w-full message-content",style:{wordWrap:"break-word",overflowWrap:"break-word",wordBreak:"break-word",hyphens:"auto"},children:[e.isImage?(0,t.jsx)("img",{src:"string"==typeof e.content?e.content:"",alt:"Generated image",className:"max-w-full rounded-md border border-gray-200 shadow-sm",style:{maxHeight:"500px"}}):e.isAudio?(0,t.jsx)(eD,{message:e}):(0,t.jsxs)(t.Fragment,{children:[r===eo.EndpointType.RESPONSES&&(0,t.jsx)(eQ,{message:e}),r===eo.EndpointType.CHAT&&(0,t.jsx)(eB,{message:e}),(0,t.jsx)(eC.default,{components:{code({node:e,inline:s,className:r,children:a,...n}){let i=/language-(\w+)/.exec(r||"");return!s&&i?(0,t.jsx)(R.Prism,{style:M.coy,language:i[1],PreTag:"div",className:"rounded-md my-2",wrapLines:!0,wrapLongLines:!0,...n,children:String(a).replace(/\n$/,"")}):(0,t.jsx)("code",{className:`${r} px-1.5 py-0.5 rounded bg-gray-100 text-sm font-mono`,style:{wordBreak:"break-word"},...n,children:a})},pre:({node:e,...s})=>(0,t.jsx)("pre",{style:{overflowX:"auto",maxWidth:"100%"},...s})},children:"string"==typeof e.content?e.content:""}),e.image&&(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)("img",{src:e.image.url,alt:"Generated image",className:"max-w-full rounded-md border border-gray-200 shadow-sm",style:{maxHeight:"500px"}})})]}),"assistant"===e.role&&(e.timeToFirstToken||e.totalLatency||e.usage)&&!e.a2aMetadata&&(0,t.jsx)(eK.default,{timeToFirstToken:e.timeToFirstToken,totalLatency:e.totalLatency,usage:e.usage,toolName:e.toolName}),"assistant"===e.role&&e.a2aMetadata&&(0,t.jsx)(eU,{a2aMetadata:e.a2aMetadata,timeToFirstToken:e.timeToFirstToken,totalLatency:e.totalLatency})]})]})})};var eu=eu;let{Dragger:e1}=O.Upload,e2=({responsesUploadedImage:e,responsesImagePreviewUrl:s,onImageUpload:r,onRemoveImage:a})=>(0,t.jsx)(t.Fragment,{children:!e&&(0,t.jsx)(e1,{beforeUpload:r,accept:"image/*,.pdf",showUploadList:!1,className:"inline-block",style:{padding:0,border:"none",background:"none"},children:(0,t.jsx)(A.Tooltip,{title:"Attach image or PDF",children:(0,t.jsx)("button",{type:"button",className:"flex items-center justify-center w-8 h-8 text-gray-400 hover:text-gray-600 hover:bg-gray-100 rounded-md transition-colors",children:(0,t.jsx)(eu.default,{style:{fontSize:"16px"}})})})})}),e4=({endpointType:e,responsesSessionId:s,useApiSessionManagement:r,onToggleSessionManagement:a})=>e!==eo.EndpointType.RESPONSES?null:(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Session Management"}),(0,t.jsx)(A.Tooltip,{title:"Choose between LiteLLM API session management (using previous_response_id) or UI-based session management (using chat history)",children:(0,t.jsx)(l.InfoCircleOutlined,{className:"text-gray-400",style:{fontSize:"12px"}})})]}),(0,t.jsx)(ey.Switch,{checked:r,onChange:a,checkedChildren:"API",unCheckedChildren:"UI",size:"small"})]}),(0,t.jsxs)("div",{className:`text-xs p-2 rounded-md ${s?"bg-green-50 text-green-700 border border-green-200":"bg-blue-50 text-blue-700 border border-blue-200"}`,children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)(l.InfoCircleOutlined,{style:{fontSize:"12px"}}),(()=>{if(!s)return r?"API Session: Ready":"UI Session: Ready";let e=r?"Response ID":"UI Session",t=s.slice(0,10);return`${e}: ${t}...`})()]}),s&&(0,t.jsx)(A.Tooltip,{title:(0,t.jsxs)("div",{className:"text-xs",children:[(0,t.jsx)("div",{className:"mb-1",children:"Copy response ID to continue session:"}),(0,t.jsx)("div",{className:"bg-gray-800 text-gray-100 p-2 rounded font-mono text-xs whitespace-pre-wrap",children:`curl -X POST "your-proxy-url/v1/responses" \\ +Wrap your summary in tags.`;function su(){let e,t;return{promise:new Promise((s,r)=>{e=s,t=r}),resolve:e,reject:t}}class sh{constructor(e,t,s){I.add(this),this.client=e,R.set(this,!1),M.set(this,!1),$.set(this,void 0),L.set(this,void 0),U.set(this,void 0),D.set(this,void 0),q.set(this,void 0),B.set(this,0),eB(this,$,{params:{...t,messages:structuredClone(t.messages)}},"f");const r=["BetaToolRunner",...tY(t.tools,t.messages)].join(", ");eB(this,L,{...s,headers:tz([{"x-stainless-helper":r},s?.headers])},"f"),eB(this,q,su(),"f"),t.compactionControl?.enabled&&console.warn('Anthropic: The `compactionControl` parameter is deprecated and will be removed in a future version. Use server-side compaction instead by passing `edits: [{ type: "compact_20260112" }]` in the params passed to `toolRunner()`. See https://platform.claude.com/docs/en/build-with-claude/compaction')}async *[(R=new WeakMap,M=new WeakMap,$=new WeakMap,L=new WeakMap,U=new WeakMap,D=new WeakMap,q=new WeakMap,B=new WeakMap,I=new WeakSet,W=async function(){let e=eW(this,$,"f").params.compactionControl;if(!e||!e.enabled)return!1;let t=0;if(void 0!==eW(this,U,"f"))try{let e=await eW(this,U,"f");t=e.usage.input_tokens+(e.usage.cache_creation_input_tokens??0)+(e.usage.cache_read_input_tokens??0)+e.usage.output_tokens}catch{return!1}if(t<(e.contextTokenThreshold??1e5))return!1;let s=e.model??eW(this,$,"f").params.model,r=e.summaryPrompt??sd,a=eW(this,$,"f").params.messages;if("assistant"===a[a.length-1].role){let e=a[a.length-1];if(Array.isArray(e.content)){let t=e.content.filter(e=>"tool_use"!==e.type);0===t.length?a.pop():e.content=t}}let n=await this.client.beta.messages.create({model:s,messages:[...a,{role:"user",content:[{type:"text",text:r}]}],max_tokens:eW(this,$,"f").params.max_tokens},{signal:eW(this,L,"f").signal,headers:tz([eW(this,L,"f").headers,{"x-stainless-helper":"compaction"}])});if(n.content[0]?.type!=="text")throw new eJ("Expected text response for compaction");return eW(this,$,"f").params.messages=[{role:"user",content:n.content}],!0},Symbol.asyncIterator)](){var e;if(eW(this,R,"f"))throw new eJ("Cannot iterate over a consumed stream");eB(this,R,!0,"f"),eB(this,M,!0,"f"),eB(this,D,void 0,"f");try{for(;;){let t;try{if(eW(this,$,"f").params.max_iterations&&eW(this,B,"f")>=eW(this,$,"f").params.max_iterations)break;eB(this,M,!1,"f"),eB(this,D,void 0,"f"),eB(this,B,(e=eW(this,B,"f"),++e),"f"),eB(this,U,void 0,"f");let{max_iterations:s,compactionControl:r,...a}=eW(this,$,"f").params;if(a.stream?(t=this.client.beta.messages.stream({...a},eW(this,L,"f")),eB(this,U,t.finalMessage(),"f"),eW(this,U,"f").catch(()=>{}),yield t):(eB(this,U,this.client.beta.messages.create({...a,stream:!1},eW(this,L,"f")),"f"),yield eW(this,U,"f")),!await eW(this,I,"m",W).call(this)){if(!eW(this,M,"f")){let{role:e,content:t}=await eW(this,U,"f");eW(this,$,"f").params.messages.push({role:e,content:t})}let e=await eW(this,I,"m",H).call(this,eW(this,$,"f").params.messages.at(-1));if(e)eW(this,$,"f").params.messages.push(e);else if(!eW(this,M,"f"))break}}finally{t&&t.abort()}}if(!eW(this,U,"f"))throw new eJ("ToolRunner concluded without a message from the server");eW(this,q,"f").resolve(await eW(this,U,"f"))}catch(e){throw eB(this,R,!1,"f"),eW(this,q,"f").promise.catch(()=>{}),eW(this,q,"f").reject(e),eB(this,q,su(),"f"),e}}setMessagesParams(e){"function"==typeof e?eW(this,$,"f").params=e(eW(this,$,"f").params):eW(this,$,"f").params=e,eB(this,M,!0,"f"),eB(this,D,void 0,"f")}setRequestOptions(e){"function"==typeof e?eB(this,L,e(eW(this,L,"f")),"f"):eB(this,L,{...eW(this,L,"f"),...e},"f")}async generateToolResponse(e=eW(this,L,"f").signal){let t=await eW(this,U,"f")??this.params.messages.at(-1);return t?eW(this,I,"m",H).call(this,t,e):null}done(){return eW(this,q,"f").promise}async runUntilDone(){if(!eW(this,R,"f"))for await(let e of this);return this.done()}get params(){return eW(this,$,"f").params}pushMessages(...e){this.setMessagesParams(t=>({...t,messages:[...t.messages,...e]}))}then(e,t){return this.runUntilDone().then(e,t)}}async function sp(e,t=e.messages.at(-1),s){if(!t||"assistant"!==t.role||!t.content||"string"==typeof t.content)return null;let r=t.content.filter(e=>"tool_use"===e.type);return 0===r.length?null:{role:"user",content:await Promise.all(r.map(async t=>{let r=e.tools.find(e=>("name"in e?e.name:e.mcp_server_name)===t.name);if(!r||!("run"in r))return{type:"tool_result",tool_use_id:t.id,content:`Error: Tool '${t.name}' not found`,is_error:!0};try{let e=t.input;"parse"in r&&r.parse&&(e=r.parse(e));let a=await r.run(e,{toolUseBlock:t,signal:s?.signal});return{type:"tool_result",tool_use_id:t.id,content:a}}catch(e){return{type:"tool_result",tool_use_id:t.id,content:e instanceof sc?e.content:`Error: ${e instanceof Error?e.message:String(e)}`,is_error:!0}}}))}}H=async function(e,t=eW(this,L,"f").signal){return void 0!==eW(this,D,"f")||eB(this,D,sp(eW(this,$,"f").params,e,{...eW(this,L,"f"),signal:t}),"f"),eW(this,D,"f")};let sm={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026"},sf=["claude-mythos-preview","claude-opus-4-6"];class sg extends tW{constructor(){super(...arguments),this.batches=new t7(this._client)}create(e,t){let s=sy(e),{betas:r,...a}=s;a.model in sm&&console.warn(`The model '${a.model}' is deprecated and will reach end-of-life on ${sm[a.model]} +Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`),sf.includes(a.model)&&a.thinking&&"enabled"===a.thinking.type&&console.warn(`Using Claude with ${a.model} and 'thinking.type=enabled' is deprecated. Use 'thinking.type=adaptive' instead which results in better model performance in our testing: https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking`);let n=this._client._options.timeout;if(!a.stream&&null==n){let e=t9[a.model]??void 0;n=this._client.calculateNonstreamingTimeout(a.max_tokens,e)}let i=tQ(a.tools,a.messages);return this._client.post("/v1/messages?beta=true",{body:a,timeout:n??6e5,...t,headers:tz([{...r?.toString()!=null?{"anthropic-beta":r?.toString()}:void 0},i,t?.headers]),stream:s.stream??!1})}parse(e,t){return t={...t,headers:tz([{"anthropic-beta":[...e.betas??[],"structured-outputs-2025-12-15"].toString()},t?.headers])},this.create(e,t).then(t=>ss(t,e,{logger:this._client.logger??console}))}stream(e,t){return so.createMessage(this,e,t)}countTokens(e,t){let{betas:s,...r}=sy(e);return this._client.post("/v1/messages/count_tokens?beta=true",{body:r,...t,headers:tz([{"anthropic-beta":[...s??[],"token-counting-2024-11-01"].toString()},t?.headers])})}toolRunner(e,t){return new sh(this._client,e,t)}}function sy(e){if(!e.output_format)return e;if(e.output_config?.format)throw new eJ("Both output_format and output_config.format were provided. Please use only output_config.format (output_format is deprecated).");let{output_format:t,...s}=e;return{...s,output_config:{...e.output_config,format:t}}}sg.Batches=t7,sg.BetaToolRunner=sh,sg.ToolError=sc;class sx extends tW{list(e,t={},s){let{betas:r,...a}=t??{};return this._client.getAPIList(tG`/v1/sessions/${e}/events?beta=true`,tA,{query:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}send(e,t,s){let{betas:r,...a}=t;return this._client.post(tG`/v1/sessions/${e}/events?beta=true`,{body:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}stream(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/sessions/${e}/events/stream?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers]),stream:!0})}}class sb extends tW{retrieve(e,t,s){let{session_id:r,betas:a}=t;return this._client.get(tG`/v1/sessions/${r}/resources/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}update(e,t,s){let{session_id:r,betas:a,...n}=t;return this._client.post(tG`/v1/sessions/${r}/resources/${e}?beta=true`,{body:n,...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}list(e,t={},s){let{betas:r,...a}=t??{};return this._client.getAPIList(tG`/v1/sessions/${e}/resources?beta=true`,tA,{query:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}delete(e,t,s){let{session_id:r,betas:a}=t;return this._client.delete(tG`/v1/sessions/${r}/resources/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}add(e,t,s){let{betas:r,...a}=t;return this._client.post(tG`/v1/sessions/${e}/resources?beta=true`,{body:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}}class sv extends tW{constructor(){super(...arguments),this.events=new sx(this._client),this.resources=new sb(this._client)}create(e,t){let{betas:s,...r}=e;return this._client.post("/v1/sessions?beta=true",{body:r,...t,headers:tz([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString()},t?.headers])})}retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/sessions/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}update(e,t,s){let{betas:r,...a}=t;return this._client.post(tG`/v1/sessions/${e}?beta=true`,{body:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/sessions?beta=true",tA,{query:r,...t,headers:tz([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString()},t?.headers])})}delete(e,t={},s){let{betas:r}=t??{};return this._client.delete(tG`/v1/sessions/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}archive(e,t={},s){let{betas:r}=t??{};return this._client.post(tG`/v1/sessions/${e}/archive?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}}sv.Events=sx,sv.Resources=sb;class sw extends tW{create(e,t={},s){let{betas:r,...a}=t??{};return this._client.post(tG`/v1/skills/${e}/versions?beta=true`,tM({body:a,...s,headers:tz([{"anthropic-beta":[...r??[],"skills-2025-10-02"].toString()},s?.headers])},this._client))}retrieve(e,t,s){let{skill_id:r,betas:a}=t;return this._client.get(tG`/v1/skills/${r}/versions/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...a??[],"skills-2025-10-02"].toString()},s?.headers])})}list(e,t={},s){let{betas:r,...a}=t??{};return this._client.getAPIList(tG`/v1/skills/${e}/versions?beta=true`,tA,{query:a,...s,headers:tz([{"anthropic-beta":[...r??[],"skills-2025-10-02"].toString()},s?.headers])})}delete(e,t,s){let{skill_id:r,betas:a}=t;return this._client.delete(tG`/v1/skills/${r}/versions/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...a??[],"skills-2025-10-02"].toString()},s?.headers])})}}class s_ extends tW{constructor(){super(...arguments),this.versions=new sw(this._client)}create(e={},t){let{betas:s,...r}=e??{};return this._client.post("/v1/skills?beta=true",tM({body:r,...t,headers:tz([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},t?.headers])},this._client,!1))}retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/skills/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"skills-2025-10-02"].toString()},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/skills?beta=true",tA,{query:r,...t,headers:tz([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},t?.headers])})}delete(e,t={},s){let{betas:r}=t??{};return this._client.delete(tG`/v1/skills/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"skills-2025-10-02"].toString()},s?.headers])})}}s_.Versions=sw;class sS extends tW{create(e,t,s){let{betas:r,...a}=t;return this._client.post(tG`/v1/vaults/${e}/credentials?beta=true`,{body:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}retrieve(e,t,s){let{vault_id:r,betas:a}=t;return this._client.get(tG`/v1/vaults/${r}/credentials/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}update(e,t,s){let{vault_id:r,betas:a,...n}=t;return this._client.post(tG`/v1/vaults/${r}/credentials/${e}?beta=true`,{body:n,...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}list(e,t={},s){let{betas:r,...a}=t??{};return this._client.getAPIList(tG`/v1/vaults/${e}/credentials?beta=true`,tA,{query:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}delete(e,t,s){let{vault_id:r,betas:a}=t;return this._client.delete(tG`/v1/vaults/${r}/credentials/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}archive(e,t,s){let{vault_id:r,betas:a}=t;return this._client.post(tG`/v1/vaults/${r}/credentials/${e}/archive?beta=true`,{...s,headers:tz([{"anthropic-beta":[...a??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}}class sj extends tW{constructor(){super(...arguments),this.credentials=new sS(this._client)}create(e,t){let{betas:s,...r}=e;return this._client.post("/v1/vaults?beta=true",{body:r,...t,headers:tz([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString()},t?.headers])})}retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/vaults/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}update(e,t,s){let{betas:r,...a}=t;return this._client.post(tG`/v1/vaults/${e}?beta=true`,{body:a,...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/vaults?beta=true",tA,{query:r,...t,headers:tz([{"anthropic-beta":[...s??[],"managed-agents-2026-04-01"].toString()},t?.headers])})}delete(e,t={},s){let{betas:r}=t??{};return this._client.delete(tG`/v1/vaults/${e}?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}archive(e,t={},s){let{betas:r}=t??{};return this._client.post(tG`/v1/vaults/${e}/archive?beta=true`,{...s,headers:tz([{"anthropic-beta":[...r??[],"managed-agents-2026-04-01"].toString()},s?.headers])})}}sj.Credentials=sS;class sk extends tW{constructor(){super(...arguments),this.models=new t0(this._client),this.messages=new sg(this._client),this.agents=new t4(this._client),this.environments=new tV(this._client),this.sessions=new sv(this._client),this.vaults=new sj(this._client),this.memoryStores=new t5(this._client),this.files=new tZ(this._client),this.skills=new s_(this._client),this.userProfiles=new t1(this._client)}}function sN(e){return e?.output_config?.format}function sE(e,t,s){let r=sN(t);return t&&"parse"in(r??{})?sT(e,t,s):{...e,content:e.content.map(e=>"text"===e.type?Object.defineProperty({...e},"parsed_output",{value:null,enumerable:!1}):e),parsed_output:null}}function sT(e,t,s){let r=null,a=e.content.map(e=>{if("text"===e.type){let s=function(e,t){let s=sN(e);if(s?.type!=="json_schema")return null;try{if("parse"in s)return s.parse(t);return JSON.parse(t)}catch(e){throw new eJ(`Failed to parse structured output: ${e}`)}}(t,e.text);return null===r&&(r=s),Object.defineProperty({...e},"parsed_output",{value:s,enumerable:!1})}return e});return{...e,content:a,parsed_output:r}}sk.Models=t0,sk.Messages=sg,sk.Agents=t4,sk.Environments=tV,sk.Sessions=sv,sk.Vaults=sj,sk.MemoryStores=t5,sk.Files=tZ,sk.Skills=s_,sk.UserProfiles=t1;let sC="__json_buf";function sA(e){return"tool_use"===e.type||"server_tool_use"===e.type}class sP{constructor(e,t){z.add(this),this.messages=[],this.receivedMessages=[],F.set(this,void 0),J.set(this,null),this.controller=new AbortController,G.set(this,void 0),V.set(this,()=>{}),K.set(this,()=>{}),X.set(this,void 0),Y.set(this,()=>{}),Q.set(this,()=>{}),Z.set(this,{}),ee.set(this,!1),et.set(this,!1),es.set(this,!1),er.set(this,!1),ea.set(this,void 0),en.set(this,void 0),ei.set(this,void 0),ec.set(this,e=>{if(eB(this,et,!0,"f"),ez(e)&&(e=new eV),e instanceof eV)return eB(this,es,!0,"f"),this._emit("abort",e);if(e instanceof eJ)return this._emit("error",e);if(e instanceof Error){let t=new eJ(e.message);return t.cause=e,this._emit("error",t)}return this._emit("error",new eJ(String(e)))}),eB(this,G,new Promise((e,t)=>{eB(this,V,e,"f"),eB(this,K,t,"f")}),"f"),eB(this,X,new Promise((e,t)=>{eB(this,Y,e,"f"),eB(this,Q,t,"f")}),"f"),eW(this,G,"f").catch(()=>{}),eW(this,X,"f").catch(()=>{}),eB(this,J,e,"f"),eB(this,ei,t?.logger??console,"f")}get response(){return eW(this,ea,"f")}get request_id(){return eW(this,en,"f")}async withResponse(){eB(this,er,!0,"f");let e=await eW(this,G,"f");if(!e)throw Error("Could not resolve a `Response` object");return{data:this,response:e,request_id:e.headers.get("request-id")}}static fromReadableStream(e){let t=new sP(null);return t._run(()=>t._fromReadableStream(e)),t}static createMessage(e,t,s,{logger:r}={}){let a=new sP(t,{logger:r});for(let e of t.messages)a._addMessageParam(e);return eB(a,J,{...t,stream:!0},"f"),a._run(()=>a._createMessage(e,{...t,stream:!0},{...s,headers:{...s?.headers,"X-Stainless-Helper-Method":"stream"}})),a}_run(e){e().then(()=>{this._emitFinal(),this._emit("end")},eW(this,ec,"f"))}_addMessageParam(e){this.messages.push(e)}_addMessage(e,t=!0){this.receivedMessages.push(e),t&&this._emit("message",e)}async _createMessage(e,t,s){let r,a=s?.signal;a&&(a.aborted&&this.controller.abort(),r=this.controller.abort.bind(this.controller),a.addEventListener("abort",r));try{eW(this,z,"m",ed).call(this);let{response:r,data:a}=await e.create({...t,stream:!0},{...s,signal:this.controller.signal}).withResponse();for await(let e of(this._connected(r),a))eW(this,z,"m",eu).call(this,e);if(a.controller.signal?.aborted)throw new eV;eW(this,z,"m",eh).call(this)}finally{a&&r&&a.removeEventListener("abort",r)}}_connected(e){this.ended||(eB(this,ea,e,"f"),eB(this,en,e?.headers.get("request-id"),"f"),eW(this,V,"f").call(this,e),this._emit("connect"))}get ended(){return eW(this,ee,"f")}get errored(){return eW(this,et,"f")}get aborted(){return eW(this,es,"f")}abort(){this.controller.abort()}on(e,t){return(eW(this,Z,"f")[e]||(eW(this,Z,"f")[e]=[])).push({listener:t}),this}off(e,t){let s=eW(this,Z,"f")[e];if(!s)return this;let r=s.findIndex(e=>e.listener===t);return r>=0&&s.splice(r,1),this}once(e,t){return(eW(this,Z,"f")[e]||(eW(this,Z,"f")[e]=[])).push({listener:t,once:!0}),this}emitted(e){return new Promise((t,s)=>{eB(this,er,!0,"f"),"error"!==e&&this.once("error",s),this.once(e,t)})}async done(){eB(this,er,!0,"f"),await eW(this,X,"f")}get currentMessage(){return eW(this,F,"f")}async finalMessage(){return await this.done(),eW(this,z,"m",eo).call(this)}async finalText(){return await this.done(),eW(this,z,"m",el).call(this)}_emit(e,...t){if(eW(this,ee,"f"))return;"end"===e&&(eB(this,ee,!0,"f"),eW(this,Y,"f").call(this));let s=eW(this,Z,"f")[e];if(s&&(eW(this,Z,"f")[e]=s.filter(e=>!e.once),s.forEach(({listener:e})=>e(...t))),"abort"===e){let e=t[0];eW(this,er,"f")||s?.length||Promise.reject(e),eW(this,K,"f").call(this,e),eW(this,Q,"f").call(this,e),this._emit("end");return}if("error"===e){let e=t[0];eW(this,er,"f")||s?.length||Promise.reject(e),eW(this,K,"f").call(this,e),eW(this,Q,"f").call(this,e),this._emit("end")}}_emitFinal(){this.receivedMessages.at(-1)&&this._emit("finalMessage",eW(this,z,"m",eo).call(this))}async _fromReadableStream(e,t){let s,r=t?.signal;r&&(r.aborted&&this.controller.abort(),s=this.controller.abort.bind(this.controller),r.addEventListener("abort",s));try{eW(this,z,"m",ed).call(this),this._connected(null);let t=tv.fromReadableStream(e,this.controller);for await(let e of t)eW(this,z,"m",eu).call(this,e);if(t.controller.signal?.aborted)throw new eV;eW(this,z,"m",eh).call(this)}finally{r&&s&&r.removeEventListener("abort",s)}}[(F=new WeakMap,J=new WeakMap,G=new WeakMap,V=new WeakMap,K=new WeakMap,X=new WeakMap,Y=new WeakMap,Q=new WeakMap,Z=new WeakMap,ee=new WeakMap,et=new WeakMap,es=new WeakMap,er=new WeakMap,ea=new WeakMap,en=new WeakMap,ei=new WeakMap,ec=new WeakMap,z=new WeakSet,eo=function(){if(0===this.receivedMessages.length)throw new eJ("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},el=function(){if(0===this.receivedMessages.length)throw new eJ("stream ended without producing a Message with role=assistant");let e=this.receivedMessages.at(-1).content.filter(e=>"text"===e.type).map(e=>e.text);if(0===e.length)throw new eJ("stream ended without producing a content block with type=text");return e.join(" ")},ed=function(){this.ended||eB(this,F,void 0,"f")},eu=function(e){if(this.ended)return;let t=eW(this,z,"m",ep).call(this,e);switch(this._emit("streamEvent",e,t),e.type){case"content_block_delta":{let s=t.content.at(-1);switch(e.delta.type){case"text_delta":"text"===s.type&&this._emit("text",e.delta.text,s.text||"");break;case"citations_delta":"text"===s.type&&this._emit("citation",e.delta.citation,s.citations??[]);break;case"input_json_delta":sA(s)&&s.input&&this._emit("inputJson",e.delta.partial_json,s.input);break;case"thinking_delta":"thinking"===s.type&&this._emit("thinking",e.delta.thinking,s.thinking);break;case"signature_delta":"thinking"===s.type&&this._emit("signature",s.signature);break;default:sO(e.delta)}break}case"message_stop":this._addMessageParam(t),this._addMessage(sE(t,eW(this,J,"f"),{logger:eW(this,ei,"f")}),!0);break;case"content_block_stop":this._emit("contentBlock",t.content.at(-1));break;case"message_start":eB(this,F,t,"f")}},eh=function(){if(this.ended)throw new eJ("stream has ended, this shouldn't happen");let e=eW(this,F,"f");if(!e)throw new eJ("request ended without sending any chunks");return eB(this,F,void 0,"f"),sE(e,eW(this,J,"f"),{logger:eW(this,ei,"f")})},ep=function(e){let t=eW(this,F,"f");if("message_start"===e.type){if(t)throw new eJ(`Unexpected event order, got ${e.type} before receiving "message_stop"`);return e.message}if(!t)throw new eJ(`Unexpected event order, got ${e.type} before "message_start"`);switch(e.type){case"message_stop":case"content_block_stop":return t;case"message_delta":return t.stop_reason=e.delta.stop_reason,t.stop_sequence=e.delta.stop_sequence,t.usage.output_tokens=e.usage.output_tokens,null!=e.usage.input_tokens&&(t.usage.input_tokens=e.usage.input_tokens),null!=e.usage.cache_creation_input_tokens&&(t.usage.cache_creation_input_tokens=e.usage.cache_creation_input_tokens),null!=e.usage.cache_read_input_tokens&&(t.usage.cache_read_input_tokens=e.usage.cache_read_input_tokens),null!=e.usage.server_tool_use&&(t.usage.server_tool_use=e.usage.server_tool_use),t;case"content_block_start":return t.content.push({...e.content_block}),t;case"content_block_delta":{let s=t.content.at(e.index);switch(e.delta.type){case"text_delta":s?.type==="text"&&(t.content[e.index]={...s,text:(s.text||"")+e.delta.text});break;case"citations_delta":s?.type==="text"&&(t.content[e.index]={...s,citations:[...s.citations??[],e.delta.citation]});break;case"input_json_delta":if(s&&sA(s)){let r=s[sC]||"";r+=e.delta.partial_json;let a={...s};Object.defineProperty(a,sC,{value:r,enumerable:!1,writable:!0}),r&&(a.input=sa(r)),t.content[e.index]=a}break;case"thinking_delta":s?.type==="thinking"&&(t.content[e.index]={...s,thinking:s.thinking+e.delta.thinking});break;case"signature_delta":s?.type==="thinking"&&(t.content[e.index]={...s,signature:e.delta.signature});break;default:sO(e.delta)}return t}}},Symbol.asyncIterator)](){let e=[],t=[],s=!1;return this.on("streamEvent",s=>{let r=t.shift();r?r.resolve(s):e.push(s)}),this.on("end",()=>{for(let e of(s=!0,t))e.resolve(void 0);t.length=0}),this.on("abort",e=>{for(let r of(s=!0,t))r.reject(e);t.length=0}),this.on("error",e=>{for(let r of(s=!0,t))r.reject(e);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:s?{value:void 0,done:!0}:new Promise((e,s)=>t.push({resolve:e,reject:s})).then(e=>e?{value:e,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new tv(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function sO(e){}class sI extends tW{create(e,t){return this._client.post("/v1/messages/batches",{body:e,...t})}retrieve(e,t){return this._client.get(tG`/v1/messages/batches/${e}`,t)}list(e={},t){return this._client.getAPIList("/v1/messages/batches",tC,{query:e,...t})}delete(e,t){return this._client.delete(tG`/v1/messages/batches/${e}`,t)}cancel(e,t){return this._client.post(tG`/v1/messages/batches/${e}/cancel`,t)}async results(e,t){let s=await this.retrieve(e);if(!s.results_url)throw new eJ(`No batch \`results_url\`; Has it finished processing? ${s.processing_status} - ${s.id}`);return this._client.get(s.results_url,{...t,headers:tz([{Accept:"application/binary"},t?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((e,t)=>t8.fromResponse(t.response,t.controller))}}class sR extends tW{constructor(){super(...arguments),this.batches=new sI(this._client)}create(e,t){e.model in sM&&console.warn(`The model '${e.model}' is deprecated and will reach end-of-life on ${sM[e.model]} +Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`),s$.includes(e.model)&&e.thinking&&"enabled"===e.thinking.type&&console.warn(`Using Claude with ${e.model} and 'thinking.type=enabled' is deprecated. Use 'thinking.type=adaptive' instead which results in better model performance in our testing: https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking`);let s=this._client._options.timeout;if(!e.stream&&null==s){let t=t9[e.model]??void 0;s=this._client.calculateNonstreamingTimeout(e.max_tokens,t)}let r=tQ(e.tools,e.messages);return this._client.post("/v1/messages",{body:e,timeout:s??6e5,...t,headers:tz([r,t?.headers]),stream:e.stream??!1})}parse(e,t){return this.create(e,t).then(t=>sT(t,e,{logger:this._client.logger??console}))}stream(e,t){return sP.createMessage(this,e,t,{logger:this._client.logger??console})}countTokens(e,t){return this._client.post("/v1/messages/count_tokens",{body:e,...t})}}let sM={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026","claude-3-5-haiku-latest":"February 19th, 2026","claude-3-5-haiku-20241022":"February 19th, 2026","claude-opus-4-0":"June 15th, 2026","claude-opus-4-20250514":"June 15th, 2026","claude-sonnet-4-0":"June 15th, 2026","claude-sonnet-4-20250514":"June 15th, 2026"},s$=["claude-mythos-preview","claude-opus-4-6"];sR.Batches=sI;class sL extends tW{retrieve(e,t={},s){let{betas:r}=t??{};return this._client.get(tG`/v1/models/${e}`,{...s,headers:tz([{...r?.toString()!=null?{"anthropic-beta":r?.toString()}:void 0},s?.headers])})}list(e={},t){let{betas:s,...r}=e??{};return this._client.getAPIList("/v1/models",tC,{query:r,...t,headers:tz([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},t?.headers])})}}class sU extends tW{create(e,t){let{betas:s,...r}=e;return this._client.post("/v1/complete",{body:r,timeout:this._client._options.timeout??6e5,...t,headers:tz([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},t?.headers]),stream:e.stream??!1})}}let sD=e=>void 0!==globalThis.process?globalThis.process.env?.[e]?.trim()||void 0:void 0!==globalThis.Deno&&globalThis.Deno.env?.get?.(e)?.trim()||void 0;class sq{constructor({baseURL:e=sD("ANTHROPIC_BASE_URL"),apiKey:t=sD("ANTHROPIC_API_KEY")??null,authToken:s=sD("ANTHROPIC_AUTH_TOKEN")??null,...r}={}){em.add(this),eg.set(this,void 0);const a={apiKey:t,authToken:s,...r,baseURL:e||"https://api.anthropic.com"};if(!a.dangerouslyAllowBrowser&&"u">typeof window&&void 0!==window.document&&"u">typeof navigator)throw new eJ("It looks like you're running in a browser-like environment.\n\nThis is disabled by default, as it risks exposing your secret API credentials to attackers.\nIf you understand the risks and have appropriate mitigations in place,\nyou can set the `dangerouslyAllowBrowser` option to `true`, e.g.,\n\nnew Anthropic({ apiKey, dangerouslyAllowBrowser: true });\n");this.baseURL=a.baseURL,this.timeout=a.timeout??ef.DEFAULT_TIMEOUT,this.logger=a.logger??console;const n="warn";this.logLevel=n,this.logLevel=tp(a.logLevel,"ClientOptions.logLevel",this)??tp(sD("ANTHROPIC_LOG"),"process.env['ANTHROPIC_LOG']",this)??n,this.fetchOptions=a.fetchOptions,this.maxRetries=a.maxRetries??2,this.fetch=a.fetch??function(){if("u">typeof fetch)return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Anthropic({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}(),eB(this,eg,tl,"f");const i=sD("ANTHROPIC_CUSTOM_HEADERS");if(i){const e={};for(const t of i.split("\n")){const s=t.indexOf(":");s>=0&&(e[t.substring(0,s).trim()]=t.substring(s+1).trim())}a.defaultHeaders={...e,...a.defaultHeaders}}this._options=a,this.apiKey="string"==typeof t?t:null,this.authToken=s}withOptions(e){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,authToken:this.authToken,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:t}){if(!(e.get("x-api-key")||e.get("authorization")||this.apiKey&&e.get("x-api-key")||t.has("x-api-key")||this.authToken&&e.get("authorization"))&&!t.has("authorization"))throw Error('Could not resolve authentication method. Expected either apiKey or authToken to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted')}async authHeaders(e){return tz([await this.apiKeyAuth(e),await this.bearerAuth(e)])}async apiKeyAuth(e){if(null!=this.apiKey)return tz([{"X-Api-Key":this.apiKey}])}async bearerAuth(e){if(null!=this.authToken)return tz([{Authorization:`Bearer ${this.authToken}`}])}stringifyQuery(e){return Object.entries(e).filter(([e,t])=>void 0!==t).map(([e,t])=>{if("string"==typeof t||"number"==typeof t||"boolean"==typeof t)return`${encodeURIComponent(e)}=${encodeURIComponent(t)}`;if(null===t)return`${encodeURIComponent(e)}=`;throw new eJ(`Cannot stringify type ${typeof t}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}getUserAgent(){return`${this.constructor.name}/JS ${tt}`}defaultIdempotencyKey(){return`stainless-node-retry-${eH()}`}makeStatusError(e,t,s,r){return eG.generate(e,t,s,r)}buildURL(e,t,s){let r=!eW(this,em,"m",ey).call(this)&&s||this.baseURL,a=new URL(e3.test(e)?e:r+(r.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),n=this.defaultQuery(),i=Object.fromEntries(a.searchParams);return e9(n)&&e9(i)||(t={...i,...n,...t}),"object"==typeof t&&t&&!Array.isArray(t)&&(a.search=this.stringifyQuery(t)),a.toString()}_calculateNonstreamingTimeout(e){if(3600*e/128e3>600)throw new eJ("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#streaming-responses for more details");return 6e5}async prepareOptions(e){}async prepareRequest(e,{url:t,options:s}){}get(e,t){return this.methodRequest("get",e,t)}post(e,t){return this.methodRequest("post",e,t)}patch(e,t){return this.methodRequest("patch",e,t)}put(e,t){return this.methodRequest("put",e,t)}delete(e,t){return this.methodRequest("delete",e,t)}methodRequest(e,t,s){return this.request(Promise.resolve(s).then(s=>({method:e,path:t,...s})))}request(e,t=null){return new tN(this,this.makeRequest(e,t,void 0))}async makeRequest(e,t,s){let r=await e,a=r.maxRetries??this.maxRetries;null==t&&(t=a),await this.prepareOptions(r);let{req:n,url:i,timeout:o}=await this.buildRequest(r,{retryCount:a-t});await this.prepareRequest(n,{url:i,options:r});let l="log_"+(0x1000000*Math.random()|0).toString(16).padStart(6,"0"),c=void 0===s?"":`, retryOf: ${s}`,d=Date.now();if(tx(this).debug(`[${l}] sending request`,tb({retryOfRequestLogID:s,method:r.method,url:i,options:r,headers:n.headers})),r.signal?.aborted)throw new eV;let u=new AbortController,h=await this.fetchWithTimeout(i,n,o,u).catch(eF),p=Date.now();if(h instanceof globalThis.Error){let e=`retrying, ${t} attempts remaining`;if(r.signal?.aborted)throw new eV;let a=ez(h)||/timed? ?out/i.test(String(h)+("cause"in h?String(h.cause):""));if(t)return tx(this).info(`[${l}] connection ${a?"timed out":"failed"} - ${e}`),tx(this).debug(`[${l}] connection ${a?"timed out":"failed"} (${e})`,tb({retryOfRequestLogID:s,url:i,durationMs:p-d,message:h.message})),this.retryRequest(r,t,s??l);if(tx(this).info(`[${l}] connection ${a?"timed out":"failed"} - error; no more retries left`),tx(this).debug(`[${l}] connection ${a?"timed out":"failed"} (error; no more retries left)`,tb({retryOfRequestLogID:s,url:i,durationMs:p-d,message:h.message})),a)throw new eX;throw new eK({cause:h})}let m=[...h.headers.entries()].filter(([e])=>"request-id"===e).map(([e,t])=>", "+e+": "+JSON.stringify(t)).join(""),f=`[${l}${c}${m}] ${n.method} ${i} ${h.ok?"succeeded":"failed"} with status ${h.status} in ${p-d}ms`;if(!h.ok){let e=await this.shouldRetry(h);if(t&&e){let e=`retrying, ${t} attempts remaining`;return await to(h.body),tx(this).info(`${f} - ${e}`),tx(this).debug(`[${l}] response error (${e})`,tb({retryOfRequestLogID:s,url:h.url,status:h.status,headers:h.headers,durationMs:p-d})),this.retryRequest(r,t,s??l,h.headers)}let a=e?"error; no more retries left":"error; not retryable";tx(this).info(`${f} - ${a}`);let n=await h.text().catch(e=>eF(e).message),i=te(n),o=i?void 0:n;throw tx(this).debug(`[${l}] response error (${a})`,tb({retryOfRequestLogID:s,url:h.url,status:h.status,headers:h.headers,message:o,durationMs:Date.now()-d})),this.makeStatusError(h.status,i,o,h.headers)}return tx(this).info(f),tx(this).debug(`[${l}] response start`,tb({retryOfRequestLogID:s,url:h.url,status:h.status,headers:h.headers,durationMs:p-d})),{response:h,options:r,controller:u,requestLogID:l,retryOfRequestLogID:s,startTime:d}}getAPIList(e,t,s){return this.requestAPIList(t,s&&"then"in s?s.then(t=>({method:"get",path:e,...t})):{method:"get",path:e,...s})}requestAPIList(e,t){return new tT(this,this.makeRequest(t,null,void 0),e)}async fetchWithTimeout(e,t,s,r){let{signal:a,method:n,...i}=t||{},o=this._makeAbort(r);a&&a.addEventListener("abort",o,{once:!0});let l=setTimeout(o,s),c=globalThis.ReadableStream&&i.body instanceof globalThis.ReadableStream||"object"==typeof i.body&&null!==i.body&&Symbol.asyncIterator in i.body,d={signal:r.signal,...c?{duplex:"half"}:{},method:"GET",...i};n&&(d.method=n.toUpperCase());try{return await this.fetch.call(void 0,e,d)}finally{clearTimeout(l)}}async shouldRetry(e){let t=e.headers.get("x-should-retry");return"true"===t||"false"!==t&&(408===e.status||409===e.status||429===e.status||!!(e.status>=500))}async retryRequest(e,t,s,r){let a,n,i=r?.get("retry-after-ms");if(i){let e=parseFloat(i);Number.isNaN(e)||(a=e)}let o=r?.get("retry-after");if(o&&!a){let e=parseFloat(o);a=Number.isNaN(e)?Date.parse(o)-Date.now():1e3*e}if(void 0===a){let s=e.maxRetries??this.maxRetries;a=this.calculateDefaultRetryTimeoutMillis(t,s)}return await (n=a,new Promise(e=>setTimeout(e,n))),this.makeRequest(e,t-1,s)}calculateDefaultRetryTimeoutMillis(e,t){return Math.min(.5*Math.pow(2,t-e),8)*(1-.25*Math.random())*1e3}calculateNonstreamingTimeout(e,t){if(36e5*e/128e3>6e5||null!=t&&e>t)throw new eJ("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#long-requests for more details");return 6e5}async buildRequest(e,{retryCount:t=0}={}){let s={...e},{method:r,path:a,query:n,defaultBaseURL:i}=s,o=this.buildURL(a,n,i);"timeout"in s&&((e,t)=>{if("number"!=typeof t||!Number.isInteger(t))throw new eJ(`${e} must be an integer`);if(t<0)throw new eJ(`${e} must be a positive integer`)})("timeout",s.timeout),s.timeout=s.timeout??this.timeout;let{bodyHeaders:l,body:c}=this.buildBody({options:s}),d=await this.buildHeaders({options:e,method:r,bodyHeaders:l,retryCount:t});return{req:{method:r,headers:d,...s.signal&&{signal:s.signal},...globalThis.ReadableStream&&c instanceof globalThis.ReadableStream&&{duplex:"half"},...c&&{body:c},...this.fetchOptions??{},...s.fetchOptions??{}},url:o,timeout:s.timeout}}async buildHeaders({options:e,method:s,bodyHeaders:r,retryCount:a}){let n={};this.idempotencyHeader&&"get"!==s&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),n[this.idempotencyHeader]=e.idempotencyKey);let i=tz([n,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(a),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...t??(t=(()=>{let e="u">typeof Deno&&null!=Deno.build?"deno":"u">typeof EdgeRuntime?"edge":"[object process]"===Object.prototype.toString.call(void 0!==globalThis.process?globalThis.process:0)?"node":"unknown";if("deno"===e)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":tt,"X-Stainless-OS":tr(Deno.build.os),"X-Stainless-Arch":ts(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":"string"==typeof Deno.version?Deno.version:Deno.version?.deno??"unknown"};if("u">typeof EdgeRuntime)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":tt,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if("node"===e)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":tt,"X-Stainless-OS":tr(globalThis.process.platform??"unknown"),"X-Stainless-Arch":ts(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let t=function(){if("u"e.abort()}buildBody({options:{body:e,headers:t}}){if(!e)return{bodyHeaders:void 0,body:void 0};let s=tz([t]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||"string"==typeof e&&s.values.has("content-type")||globalThis.Blob&&e instanceof globalThis.Blob||e instanceof FormData||e instanceof URLSearchParams||globalThis.ReadableStream&&e instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:e}:"object"==typeof e&&(Symbol.asyncIterator in e||Symbol.iterator in e&&"next"in e&&"function"==typeof e.next)?{bodyHeaders:void 0,body:tn(e)}:"object"==typeof e&&"application/x-www-form-urlencoded"===s.values.get("content-type")?{bodyHeaders:{"content-type":"application/x-www-form-urlencoded"},body:this.stringifyQuery(e)}:eW(this,eg,"f").call(this,{body:e,headers:s})}}ef=sq,eg=new WeakMap,em=new WeakSet,ey=function(){return"https://api.anthropic.com"!==this.baseURL},sq.Anthropic=ef,sq.HUMAN_PROMPT="\\n\\nHuman:",sq.AI_PROMPT="\\n\\nAssistant:",sq.DEFAULT_TIMEOUT=6e5,sq.AnthropicError=eJ,sq.APIError=eG,sq.APIConnectionError=eK,sq.APIConnectionTimeoutError=eX,sq.APIUserAbortError=eV,sq.NotFoundError=e0,sq.ConflictError=e1,sq.RateLimitError=e4,sq.BadRequestError=eY,sq.AuthenticationError=eQ,sq.InternalServerError=e6,sq.PermissionDeniedError=eZ,sq.UnprocessableEntityError=e2,sq.toFile=tq;class sB extends sq{constructor(){super(...arguments),this.completions=new sU(this),this.messages=new sR(this),this.models=new sL(this),this.beta=new sk(this)}}sB.Completions=sU,sB.Messages=sR,sB.Models=sL,sB.Beta=sk;var sW=e.i(727749);async function sH(e,t,s,r,a=[],n,i,o,l,c,d,u,h,p,m){if(!r)throw Error("Virtual Key is required");console.log=function(){};let f=m||(0,eL.getProxyBaseUrl)(),g={};a&&a.length>0&&(g["x-litellm-tags"]=a.join(","));let y=new sB({apiKey:r,baseURL:f,dangerouslyAllowBrowser:!0,defaultHeaders:g});try{let r=Date.now(),a=!1,p={model:s,messages:e.map(e=>({role:e.role,content:e.content})),stream:!0,max_tokens:1024,litellm_trace_id:c};for await(let e of(d&&(p.vector_store_ids=d),u&&(p.guardrails=u),h&&(p.policies=h),y.messages.stream(p,{signal:n}))){if(console.log("Stream event:",e),"content_block_delta"===e.type){let n=e.delta;if(!a){a=!0;let e=Date.now()-r;console.log("First token received! Time:",e,"ms"),o&&o(e)}"text_delta"===n.type?t("assistant",n.text,s):"reasoning_delta"===n.type&&i&&i(n.text)}if("message_delta"===e.type&&e.usage&&l){let t=e.usage;console.log("Usage data found:",t);let s={completionTokens:t.output_tokens,promptTokens:t.input_tokens,totalTokens:t.input_tokens+t.output_tokens};l(s)}}}catch(e){throw n?.aborted?console.log("Anthropic messages request was cancelled"):sW.default.fromBackend(`Error occurred while generating model response. Please try again. Error: ${e}`),e}}e.s(["makeAnthropicMessagesRequest",0,sH],434788);var sz=e.i(356449);async function sF(e,t,s,r,a,n,i,o,l,c){console.log=function(){},console.log("isLocal:",!1);let d=c||(0,eL.getProxyBaseUrl)(),u=new sz.default.OpenAI({apiKey:a,baseURL:d,dangerouslyAllowBrowser:!0,defaultHeaders:n&&n.length>0?{"x-litellm-tags":n.join(",")}:void 0});try{let a=await u.audio.speech.create({model:r,input:e,voice:t,...o?{response_format:o}:{},...l?{speed:l}:{}},{signal:i}),n=await a.blob(),c=URL.createObjectURL(n);s(c,r)}catch(e){throw i?.aborted?console.log("Audio speech request was cancelled"):sW.default.fromBackend(`Error occurred while generating speech. Please try again. Error: ${e}`),e}}async function sJ(e,t,s,r,a,n,i,o,l,c,d){console.log=function(){},console.log("isLocal:",!1);let u=d||(0,eL.getProxyBaseUrl)(),h=new sz.default.OpenAI({apiKey:r,baseURL:u,dangerouslyAllowBrowser:!0,defaultHeaders:a&&a.length>0?{"x-litellm-tags":a.join(",")}:void 0});try{console.log("Processing audio file for transcription:",e.name);let r=await h.audio.transcriptions.create({model:s,file:e,...i?{language:i}:{},...o?{prompt:o}:{},...l?{response_format:l}:{},...void 0!==c?{temperature:c}:{}},{signal:n});if(console.log("Transcription response:",r),r&&r.text)t(r.text,s),sW.default.success("Audio transcribed successfully");else throw Error("No transcription text in response")}catch(e){if(console.error("Error making audio transcription request:",e),n?.aborted)console.log("Audio transcription request was cancelled");else{let t="Failed to transcribe audio";e?.error?.message?t=e.error.message:e?.message&&(t=e.message),sW.default.fromBackend(`Audio transcription failed: ${t}`)}throw e}}async function sG(e,t,s,r,a,n){if(!r)throw Error("Virtual Key is required");console.log=function(){};let i=n||(0,eL.getProxyBaseUrl)(),o={};a&&a.length>0&&(o["x-litellm-tags"]=a.join(","));try{let a=i.endsWith("/")?i.slice(0,-1):i,n=`${a}/embeddings`,l=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",[(0,eL.getGlobalLitellmHeaderName)()]:`Bearer ${r}`,...o},body:JSON.stringify({model:s,input:e})});if(!l.ok){let e=await l.text();throw Error(e||`Request failed with status ${l.status}`)}let c=await l.json(),d=c?.data?.[0]?.embedding;if(!d)throw Error("No embedding returned from server");t(JSON.stringify(d),c?.model??s)}catch(e){throw sW.default.fromBackend(`Error occurred while making embeddings request. Please try again. Error: ${e}`),e}}e.s(["makeOpenAIAudioSpeechRequest",0,sF],512882),e.s(["makeOpenAIAudioTranscriptionRequest",0,sJ],584976),e.s(["makeOpenAIEmbeddingsRequest",0,sG],720762)},488143,(e,t,s)=>{"use strict";function r({widthInt:e,heightInt:t,blurWidth:s,blurHeight:a,blurDataURL:n,objectFit:i}){let o=s?40*s:e,l=a?40*a:t,c=o&&l?`viewBox='0 0 ${o} ${l}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${c}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${c?"none":"contain"===i?"xMidYMid":"cover"===i?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${n}'/%3E%3C/svg%3E`}Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"getImageBlurSvg",{enumerable:!0,get:function(){return r}})},987690,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0});var r={VALID_LOADERS:function(){return n},imageConfigDefault:function(){return i}};for(var a in r)Object.defineProperty(s,a,{enumerable:!0,get:r[a]});let n=["default","imgix","cloudinary","akamai","custom"],i={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1}},908927,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"getImgProps",{enumerable:!0,get:function(){return c}}),e.r(233525);let r=e.r(543369),a=e.r(488143),n=e.r(987690),i=["-moz-initial","fill","none","scale-down",void 0];function o(e){return void 0!==e.default}function l(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function c({src:e,sizes:t,unoptimized:s=!1,priority:d=!1,preload:u=!1,loading:h,className:p,quality:m,width:f,height:g,fill:y=!1,style:x,overrideSrc:b,onLoad:v,onLoadingComplete:w,placeholder:_="empty",blurDataURL:S,fetchPriority:j,decoding:k="async",layout:N,objectFit:E,objectPosition:T,lazyBoundary:C,lazyRoot:A,...P},O){var I;let R,M,$,{imgConf:L,showAltText:U,blurComplete:D,defaultLoader:q}=O,B=L||n.imageConfigDefault;if("allSizes"in B)R=B;else{let e=[...B.deviceSizes,...B.imageSizes].sort((e,t)=>e-t),t=B.deviceSizes.sort((e,t)=>e-t),s=B.qualities?.sort((e,t)=>e-t);R={...B,allSizes:e,deviceSizes:t,qualities:s}}if(void 0===q)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let W=P.loader||q;delete P.loader,delete P.srcSet;let H="__next_img_default"in W;if(H){if("custom"===R.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop. +Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=W;W=t=>{let{config:s,...r}=t;return e(r)}}if(N){"fill"===N&&(y=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[N];e&&(x={...x,...e});let s={responsive:"100vw",fill:"100vw"}[N];s&&!t&&(t=s)}let z="",F=l(f),J=l(g);if((I=e)&&"object"==typeof I&&(o(I)||void 0!==I.src)){let t=o(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(M=t.blurWidth,$=t.blurHeight,S=S||t.blurDataURL,z=t.src,!y)if(F||J){if(F&&!J){let e=F/t.width;J=Math.round(t.height*e)}else if(!F&&J){let e=J/t.height;F=Math.round(t.width*e)}}else F=t.width,J=t.height}let G=!d&&!u&&("lazy"===h||void 0===h);(!(e="string"==typeof e?e:z)||e.startsWith("data:")||e.startsWith("blob:"))&&(s=!0,G=!1),R.unoptimized&&(s=!0),H&&!R.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(s=!0);let V=l(m),K=Object.assign(y?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:E,objectPosition:T}:{},U?{}:{color:"transparent"},x),X=D||"empty"===_?null:"blur"===_?`url("data:image/svg+xml;charset=utf-8,${(0,a.getImageBlurSvg)({widthInt:F,heightInt:J,blurWidth:M,blurHeight:$,blurDataURL:S||"",objectFit:K.objectFit})}")`:`url("${_}")`,Y=i.includes(K.objectFit)?"fill"===K.objectFit?"100% 100%":"cover":K.objectFit,Q=X?{backgroundSize:Y,backgroundPosition:K.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:X}:{},Z=function({config:e,src:t,unoptimized:s,width:a,quality:n,sizes:i,loader:o}){if(s){if(t.startsWith("/")&&!t.startsWith("//")){let e=(0,r.getDeploymentId)();if(e){let s=t.indexOf("?");if(-1!==s){let r=new URLSearchParams(t.slice(s+1));r.get("dpl")||(r.append("dpl",e),t=t.slice(0,s)+"?"+r.toString())}else t+=`?dpl=${e}`}}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:l,kind:c}=function({deviceSizes:e,allSizes:t},s,r){if(r){let s=/(^|\s)(1?\d?\d)vw/g,a=[];for(let e;e=s.exec(r);)a.push(parseInt(e[2]));if(a.length){let s=.01*Math.min(...a);return{widths:t.filter(t=>t>=e[0]*s),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof s?{widths:e,kind:"w"}:{widths:[...new Set([s,2*s].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,a,i),d=l.length-1;return{sizes:i||"w"!==c?i:"100vw",srcSet:l.map((s,r)=>`${o({config:e,src:t,quality:n,width:s})} ${"w"===c?s:r+1}${c}`).join(", "),src:o({config:e,src:t,quality:n,width:l[d]})}}({config:R,src:e,unoptimized:s,width:F,quality:V,sizes:t,loader:W}),ee=G?"lazy":h;return{props:{...P,loading:ee,fetchPriority:j,width:F,height:J,decoding:k,className:p,style:{...K,...Q},sizes:Z.sizes,srcSet:Z.srcSet,src:b||Z.src},meta:{unoptimized:s,preload:u||d,placeholder:_,fill:y}}}},898879,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"default",{enumerable:!0,get:function(){return o}});let r=e.r(271645),a="u"{}:r.useLayoutEffect,i=a?()=>{}:r.useEffect;function o(e){let{headManager:t,reduceComponentsToState:s}=e;function o(){if(t&&t.mountedInstances){let e=r.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(s(e))}}return a&&(t?.mountedInstances?.add(e.children),o()),n(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),n(()=>(t&&(t._pendingUpdate=o),()=>{t&&(t._pendingUpdate=o)})),i(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},325633,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0});var r={default:function(){return f},defaultHead:function(){return u}};for(var a in r)Object.defineProperty(s,a,{enumerable:!0,get:r[a]});let n=e.r(563141),i=e.r(151836),o=e.r(843476),l=i._(e.r(271645)),c=n._(e.r(898879)),d=e.r(742732);function u(){return[(0,o.jsx)("meta",{charSet:"utf-8"},"charset"),(0,o.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function h(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===l.default.Fragment?e.concat(l.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(233525);let p=["name","httpEquiv","charSet","itemProp"];function m(e){let t,s,r,a;return e.reduce(h,[]).reverse().concat(u().reverse()).filter((t=new Set,s=new Set,r=new Set,a={},e=>{let n=!0,i=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){i=!0;let s=e.key.slice(e.key.indexOf("$")+1);t.has(s)?n=!1:t.add(s)}switch(e.type){case"title":case"base":s.has(e.type)?n=!1:s.add(e.type);break;case"meta":for(let t=0,s=p.length;t{let s=e.key||t;return l.default.cloneElement(e,{key:s})})}let f=function({children:e}){let t=(0,l.useContext)(d.HeadManagerContext);return(0,o.jsx)(c.default,{reduceComponentsToState:m,headManager:t,children:e})};("function"==typeof s.default||"object"==typeof s.default&&null!==s.default)&&void 0===s.default.__esModule&&(Object.defineProperty(s.default,"__esModule",{value:!0}),Object.assign(s.default,s),t.exports=s.default)},918556,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"ImageConfigContext",{enumerable:!0,get:function(){return n}});let r=e.r(563141)._(e.r(271645)),a=e.r(987690),n=r.default.createContext(a.imageConfigDefault)},65856,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"RouterContext",{enumerable:!0,get:function(){return r}});let r=e.r(563141)._(e.r(271645)).default.createContext(null)},670965,(e,t,s)=>{"use strict";function r(e,t){let s=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-s){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"default",{enumerable:!0,get:function(){return i}});let r=e.r(670965),a=e.r(543369);function n({config:e,src:t,width:s,quality:i}){let o=(0,a.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")){let e=t.indexOf("?");if(-1!==e){let s=new URLSearchParams(t.slice(e+1)),r=s.get("dpl");if(r){o=r,s.delete("dpl");let a=s.toString();t=t.slice(0,e)+(a?"?"+a:"")}}}if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns. +Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let l=(0,r.findClosestQuality)(i,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${s}&q=${l}${t.startsWith("/")&&o?`&dpl=${o}`:""}`}n.__next_img_default=!0;let i=n},605500,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"Image",{enumerable:!0,get:function(){return v}});let r=e.r(563141),a=e.r(151836),n=e.r(843476),i=a._(e.r(271645)),o=r._(e.r(174080)),l=r._(e.r(325633)),c=e.r(908927),d=e.r(987690),u=e.r(918556);e.r(233525);let h=e.r(65856),p=r._(e.r(1948)),m=e.r(818581),f={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0};function g(e,t,s,r,a,n,i){let o=e?.src;e&&e["data-loaded-src"]!==o&&(e["data-loaded-src"]=o,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&a(!0),s?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let r=!1,a=!1;s.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>r,isPropagationStopped:()=>a,persist:()=>{},preventDefault:()=>{r=!0,t.preventDefault()},stopPropagation:()=>{a=!0,t.stopPropagation()}})}r?.current&&r.current(e)}}))}function y(e){return i.use?{fetchPriority:e}:{fetchpriority:e}}"u"{let E=(0,i.useCallback)(e=>{e&&(j&&(e.src=e.src),e.complete&&g(e,u,x,b,v,p,_))},[e,u,x,b,v,j,p,_]),T=(0,m.useMergedRef)(N,E);return(0,n.jsx)("img",{...k,...y(d),loading:h,width:a,height:r,decoding:o,"data-nimg":f?"fill":"1",className:l,style:c,sizes:s,srcSet:t,src:e,ref:T,onLoad:e=>{g(e.currentTarget,u,x,b,v,p,_)},onError:e=>{w(!0),"empty"!==u&&v(!0),j&&j(e)}})});function b({isAppRouter:e,imgAttributes:t}){let s={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...y(t.fetchPriority)};return e&&o.default.preload?(o.default.preload(t.src,s),null):(0,n.jsx)(l.default,{children:(0,n.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...s},"__nimg-"+t.src+t.srcSet+t.sizes)})}let v=(0,i.forwardRef)((e,t)=>{let s=(0,i.useContext)(h.RouterContext),r=(0,i.useContext)(u.ImageConfigContext),a=(0,i.useMemo)(()=>{let e=f||r||d.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),s=e.deviceSizes.sort((e,t)=>e-t),a=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:s,qualities:a,localPatterns:"u"{m.current=o},[o]);let g=(0,i.useRef)(l);(0,i.useEffect)(()=>{g.current=l},[l]);let[y,v]=(0,i.useState)(!1),[w,_]=(0,i.useState)(!1),{props:S,meta:j}=(0,c.getImgProps)(e,{defaultLoader:p.default,imgConf:a,blurComplete:y,showAltText:w});return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(x,{...S,unoptimized:j.unoptimized,placeholder:j.placeholder,fill:j.fill,onLoadRef:m,onLoadingCompleteRef:g,setBlurComplete:v,setShowAltText:_,sizesInput:e.sizes,ref:t}),j.preload?(0,n.jsx)(b,{isAppRouter:!s,imgAttributes:S}):null]})});("function"==typeof s.default||"object"==typeof s.default&&null!==s.default)&&void 0===s.default.__esModule&&(Object.defineProperty(s.default,"__esModule",{value:!0}),Object.assign(s.default,s),t.exports=s.default)},794909,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0});var r={default:function(){return d},getImageProps:function(){return c}};for(var a in r)Object.defineProperty(s,a,{enumerable:!0,get:r[a]});let n=e.r(563141),i=e.r(908927),o=e.r(605500),l=n._(e.r(1948));function c(e){let{props:t}=(0,i.getImgProps)(e,{defaultLoader:l.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0}});for(let[e,s]of Object.entries(t))void 0===s&&delete t[e];return{props:t}}let d=o.Image},657688,(e,t,s)=>{t.exports=e.r(794909)},220486,761793,964421,91500,843153,152401,e=>{"use strict";var t=e.i(843476),s=e.i(218129),r=e.i(132104),a=e.i(447593),n=e.i(245094),i=e.i(210612),o=e.i(955135),l=e.i(827252),c=e.i(438957),d=e.i(596239),u=e.i(56456),h=e.i(124608),p=e.i(983561),m=e.i(602073),f=e.i(313603),g=e.i(782273),y=e.i(232164),x=e.i(366308),b=e.i(304967),v=e.i(599724),w=e.i(779241),_=e.i(629569),S=e.i(994388),j=e.i(464571),k=e.i(311451),N=e.i(212931),E=e.i(282786),T=e.i(199133),C=e.i(482725),A=e.i(592968),P=e.i(898586),O=e.i(515831),I=e.i(271645),R=e.i(650056),M=e.i(219470),$=e.i(614677),L=e.i(891547),U=e.i(921511),D=e.i(235267),q=e.i(611052),B=e.i(727749),W=e.i(764205),H=e.i(318059),z=e.i(916940),F=e.i(953860),J=e.i(434788),G=e.i(512882),V=e.i(584976),K=e.i(254530),X=e.i(720762),Y=e.i(921687),Q=e.i(689020);e.i(247167);var Z=e.i(356449);async function ee(e,t,s,r,a,n,i,o){console.log=function(){},console.log("isLocal:",!1);let l=o||(0,W.getProxyBaseUrl)(),c=new Z.default.OpenAI({apiKey:a,baseURL:l,dangerouslyAllowBrowser:!0,defaultHeaders:n&&n.length>0?{"x-litellm-tags":n.join(",")}:void 0});try{let a=Array.isArray(e)?e:[e],n=[];for(let e=0;e1&&B.default.success(`Successfully processed ${n.length} images`)}catch(e){if(console.error("Error making image edit request:",e),i?.aborted)console.log("Image edits request was cancelled");else{let t="Failed to edit image(s)";e?.error?.message?t=e.error.message:e?.message&&(t=e.message),B.default.fromBackend(`Image edit failed: ${t}`)}throw e}}async function et(e,t,s,r,a,n,i){console.log=function(){},console.log("isLocal:",!1);let o=i||(0,W.getProxyBaseUrl)(),l=new Z.default.OpenAI({apiKey:r,baseURL:o,dangerouslyAllowBrowser:!0,defaultHeaders:a&&a.length>0?{"x-litellm-tags":a.join(",")}:void 0});try{let r=await l.images.generate({model:s,prompt:e},{signal:n});if(console.log(r.data),r.data&&r.data[0])if(r.data[0].url)t(r.data[0].url,s);else if(r.data[0].b64_json){let e=r.data[0].b64_json;t(`data:image/png;base64,${e}`,s)}else throw Error("No image data found in response");else throw Error("Invalid response format")}catch(e){throw n?.aborted?console.log("Image generation request was cancelled"):B.default.fromBackend(`Error occurred while generating image. Please try again. Error: ${e}`),e}}var es=e.i(452598);async function er(e,t,s,r,a,n,i,o){if(!r)throw Error("Virtual Key is required");console.log=function(){};let l=i||(0,W.getProxyBaseUrl)(),c=l.endsWith("/")?l.slice(0,-1):l,d=`${c}/v1beta/interactions`,u={"Content-Type":"application/json",[(0,W.getGlobalLitellmHeaderName)()]:`Bearer ${r}`};a&&a.length>0&&(u["x-litellm-tags"]=a.join(","));let h={model:s,input:e,stream:!0};o&&(h.previous_interaction_id=o);try{let e,r=await fetch(d,{method:"POST",headers:u,body:JSON.stringify(h),signal:n});if(!r.ok){let e=await r.text();throw Error(e||`Request failed with status ${r.status}`)}if(!r.body)throw Error("No response body received");let a=r.body.getReader(),i=new TextDecoder,o="";for(;;){let{done:r,value:n}=await a.read();if(r)break;let l=(o+=i.decode(n,{stream:!0})).split("\n");for(let r of(o=l.pop()??"",l)){let a,n=r.trim();if(!n.startsWith("data:"))continue;let i=n.slice(5).trim();if(!i||"[DONE]"===i)continue;try{a=JSON.parse(i)}catch{continue}let o=a.event_type;if("interaction.start"===o||"interaction.complete"===o){let t=a.interaction;"string"==typeof t?.model&&t.model?e=t.model:"string"==typeof a.model&&a.model&&(e=a.model)}else if("content.delta"===o||"content.start"===o){let r=a.delta;"string"==typeof r?.text&&r.text&&t(r.text,e??s)}}}}catch(e){if(n?.aborted)throw console.log("Interactions request was cancelled"),e;throw B.default.fromBackend(`Error occurred while making Interactions API request. Error: ${e}`),e}}var ea=e.i(536916),en=e.i(28651),ei=e.i(850627);let eo=({temperature:e=1,maxTokens:s=2048,useAdvancedParams:r,onTemperatureChange:a,onMaxTokensChange:n,onUseAdvancedParamsChange:i,mockTestFallbacks:o,onMockTestFallbacksChange:c})=>{let[d,u]=(0,I.useState)(!1),h=void 0!==r?r:d,[p,m]=(0,I.useState)(e),[f,g]=(0,I.useState)(s);(0,I.useEffect)(()=>{m(e)},[e]),(0,I.useEffect)(()=>{g(s)},[s]);let y=e=>{let t=e??1;m(t),a?.(t)},x=e=>{let t=e??1e3;g(t),n?.(t)},b=h?"text-gray-700":"text-gray-400";return(0,t.jsxs)("div",{className:"space-y-4 p-4 w-80",children:[(0,t.jsx)(ea.Checkbox,{checked:h,onChange:e=>{var t;return t=e.target.checked,void(i?i(t):u(t))},children:(0,t.jsx)("span",{className:"font-medium",children:"Use Advanced Parameters"})}),c&&(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)(ea.Checkbox,{checked:o??!1,onChange:e=>c(e.target.checked),children:(0,t.jsx)("span",{className:"font-medium",children:"Simulate failure to test fallbacks"})}),(0,t.jsx)(E.Popover,{trigger:"hover",placement:"right",content:(0,t.jsxs)("div",{style:{maxWidth:340},children:[(0,t.jsx)(P.Typography.Paragraph,{className:"text-sm",style:{marginBottom:8},children:"Causes the first request to fail so the router tries fallbacks (if configured). Use this to verify your fallback setup."}),(0,t.jsxs)(P.Typography.Paragraph,{className:"text-sm",style:{marginBottom:0},children:["Behavior can differ when keys, teams, or router settings are configured."," ",(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/keys_teams_router_settings",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800",children:"Learn more"})]})]}),children:(0,t.jsx)(l.InfoCircleOutlined,{className:"text-xs text-gray-400 cursor-pointer shrink-0 hover:text-gray-600","aria-label":"Help: Simulate failure to test fallbacks"})})]}),(0,t.jsxs)("div",{className:"space-y-4 transition-opacity duration-200",style:{opacity:h?1:.4},children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)(v.Text,{className:`text-sm ${b}`,children:"Temperature"}),(0,t.jsx)(A.Tooltip,{title:"Controls randomness. Lower values make output more deterministic, higher values more creative.",children:(0,t.jsx)(l.InfoCircleOutlined,{className:`text-xs ${b} cursor-help`})})]}),(0,t.jsx)(en.InputNumber,{min:0,max:2,step:.1,value:p,onChange:y,disabled:!h,precision:1,className:"w-20"})]}),(0,t.jsx)(ei.Slider,{min:0,max:2,step:.1,value:p,onChange:y,disabled:!h,marks:{0:"0",1:"1.0",2:"2.0"}})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)(v.Text,{className:`text-sm ${b}`,children:"Max Tokens"}),(0,t.jsx)(A.Tooltip,{title:"Maximum number of tokens to generate in the response.",children:(0,t.jsx)(l.InfoCircleOutlined,{className:`text-xs ${b} cursor-help`})})]}),(0,t.jsx)(en.InputNumber,{min:1,max:32768,step:1,value:f,onChange:x,disabled:!h})]}),(0,t.jsx)(ei.Slider,{min:1,max:32768,step:1,value:f,onChange:x,disabled:!h,marks:{1:"1",32768:"32768"}})]})]})]})};var el=e.i(785913);let ec={ALLOY:"Alloy - Professional and confident",ASH:"Ash - Casual and relaxed",BALAD:"Ballad - Smooth and melodic",CORAL:"Coral - Warm and engaging",ECHO:"Echo - Friendly and conversational",FABLE:"Fable - Wise and measured",NOVA:"Nova - Friendly and conversational",ONYX:"Onyx - Deep and authoritative",SAGE:"Sage - Wise and measured",SHIMMER:"Shimmer - Bright and cheerful"},ed=Object.entries({ALLOY:"alloy",ASH:"ash",BALAD:"ballad",CORAL:"coral",ECHO:"echo",FABLE:"fable",NOVA:"nova",ONYX:"onyx",SAGE:"sage",SHIMMER:"shimmer"}).map(([e,t])=>({value:t,label:ec[e]})),eu=[{value:el.EndpointType.CHAT,label:"/v1/chat/completions"},{value:el.EndpointType.RESPONSES,label:"/v1/responses"},{value:el.EndpointType.ANTHROPIC_MESSAGES,label:"/v1/messages"},{value:el.EndpointType.IMAGE,label:"/v1/images/generations"},{value:el.EndpointType.IMAGE_EDITS,label:"/v1/images/edits"},{value:el.EndpointType.EMBEDDINGS,label:"/v1/embeddings"},{value:el.EndpointType.SPEECH,label:"/v1/audio/speech"},{value:el.EndpointType.TRANSCRIPTION,label:"/v1/audio/transcriptions"},{value:el.EndpointType.A2A_AGENTS,label:"/v1/a2a/message/send"},{value:el.EndpointType.MCP,label:"/mcp-rest/tools/call"},{value:el.EndpointType.REALTIME,label:"/v1/realtime"},{value:el.EndpointType.INTERACTIONS,label:"/v1beta/interactions"}];var eh=e.i(955719),eh=eh;let{Dragger:ep}=O.Upload,em=({chatUploadedImage:e,chatImagePreviewUrl:s,onImageUpload:r,onRemoveImage:a})=>(0,t.jsx)(t.Fragment,{children:!e&&(0,t.jsx)(ep,{beforeUpload:r,accept:"image/*,.pdf",showUploadList:!1,className:"inline-block",style:{padding:0,border:"none",background:"none"},children:(0,t.jsx)(A.Tooltip,{title:"Attach image or PDF",children:(0,t.jsx)("button",{type:"button",className:"flex items-center justify-center w-8 h-8 text-gray-400 hover:text-gray-600 hover:bg-gray-100 rounded-md transition-colors",children:(0,t.jsx)(eh.default,{style:{fontSize:"16px"}})})})})});e.s(["default",0,em],761793);let ef=async(e,t)=>({role:"user",content:[{type:"text",text:e},{type:"image_url",image_url:{url:await new Promise((e,s)=>{let r=new FileReader;r.onload=()=>{e(r.result)},r.onerror=s,r.readAsDataURL(t)})}}]}),eg=(e,t,s,r)=>{let a="";t&&r&&(a=r.toLowerCase().endsWith(".pdf")?"[PDF attached]":"[Image attached]");let n={role:"user",content:t?`${e} ${a}`:e};return t&&s&&(n.imagePreviewUrl=s),n},ey=e=>"user"===e.role&&"string"==typeof e.content&&(e.content.includes("[Image attached]")||e.content.includes("[PDF attached]"))&&!!e.imagePreviewUrl;e.s(["createChatDisplayMessage",0,eg,"createChatMultimodalMessage",0,ef,"shouldShowChatAttachedImage",0,ey],964421);var ex=e.i(790848),eb=e.i(888259),ev=e.i(270377);let ew=({enabled:e,onEnabledChange:s,selectedModel:r,disabled:a=!1})=>{let i=(e=>{if(!e)return!1;let t=e.toLowerCase();return t.startsWith("openai/")||t.startsWith("gpt-")||t.startsWith("o1")||t.startsWith("o3")||t.includes("openai")})(r);return(0,t.jsxs)("div",{className:"border border-gray-200 rounded-lg p-3 bg-gradient-to-r from-blue-50 to-purple-50",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(n.CodeOutlined,{className:"text-blue-500"}),(0,t.jsx)(v.Text,{className:"font-medium text-gray-700",children:"Code Interpreter"}),(0,t.jsx)(A.Tooltip,{title:"Run Python code to generate files, charts, and analyze data. Container is created automatically.",children:(0,t.jsx)(l.InfoCircleOutlined,{className:"text-gray-400 text-xs"})})]}),(0,t.jsx)(ex.Switch,{checked:e&&i,onChange:e=>{e&&!i?eb.default.warning("Code Interpreter is only available for OpenAI models"):s(e)},disabled:a||!i,size:"small",className:e&&i?"bg-blue-500":""})]}),!i&&(0,t.jsx)("div",{className:"mt-2 pt-2 border-t border-gray-200",children:(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)(ev.ExclamationCircleOutlined,{className:"text-amber-500 mt-0.5"}),(0,t.jsxs)("div",{className:"text-xs text-gray-600",children:[(0,t.jsx)("span",{children:"Code Interpreter is currently only supported for OpenAI models. "}),(0,t.jsx)("a",{href:"https://github.com/BerriAI/litellm/issues/new?template=feature_request.yml",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 underline",children:"Request support for other providers"})]})]})})]})};var e_=e.i(190272);let eS=({endpointType:e,onEndpointChange:s,className:r})=>(0,t.jsx)("div",{className:r,children:(0,t.jsx)(T.Select,{showSearch:!0,value:e,style:{width:"100%"},onChange:s,options:eu,className:"rounded-md",filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase())||(t?.value??"").toLowerCase().includes(e.toLowerCase())})});var ej=e.i(931067);let ek={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M531.3 574.4l.3-1.4c5.8-23.9 13.1-53.7 7.4-80.7-3.8-21.3-19.5-29.6-32.9-30.2-15.8-.7-29.9 8.3-33.4 21.4-6.6 24-.7 56.8 10.1 98.6-13.6 32.4-35.3 79.5-51.2 107.5-29.6 15.3-69.3 38.9-75.2 68.7-1.2 5.5.2 12.5 3.5 18.8 3.7 7 9.6 12.4 16.5 15 3 1.1 6.6 2 10.8 2 17.6 0 46.1-14.2 84.1-79.4 5.8-1.9 11.8-3.9 17.6-5.9 27.2-9.2 55.4-18.8 80.9-23.1 28.2 15.1 60.3 24.8 82.1 24.8 21.6 0 30.1-12.8 33.3-20.5 5.6-13.5 2.9-30.5-6.2-39.6-13.2-13-45.3-16.4-95.3-10.2-24.6-15-40.7-35.4-52.4-65.8zM421.6 726.3c-13.9 20.2-24.4 30.3-30.1 34.7 6.7-12.3 19.8-25.3 30.1-34.7zm87.6-235.5c5.2 8.9 4.5 35.8.5 49.4-4.9-19.9-5.6-48.1-2.7-51.4.8.1 1.5.7 2.2 2zm-1.6 120.5c10.7 18.5 24.2 34.4 39.1 46.2-21.6 4.9-41.3 13-58.9 20.2-4.2 1.7-8.3 3.4-12.3 5 13.3-24.1 24.4-51.4 32.1-71.4zm155.6 65.5c.1.2.2.5-.4.9h-.2l-.2.3c-.8.5-9 5.3-44.3-8.6 40.6-1.9 45 7.3 45.1 7.4zm191.4-388.2L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z"}}]},name:"file-pdf",theme:"outlined"};var eN=e.i(9583),eE=I.forwardRef(function(e,t){return I.createElement(eN.default,(0,ej.default)({},e,{ref:t,icon:ek}))});e.s(["FilePdfOutlined",0,eE],91500);let eT=function({file:e,previewUrl:s,onRemove:r}){let a=e.name.toLowerCase().endsWith(".pdf");return(0,t.jsx)("div",{className:"mb-2",children:(0,t.jsxs)("div",{className:"flex items-center gap-3 p-3 bg-gray-50 rounded-lg border border-gray-200",children:[(0,t.jsx)("div",{className:"relative inline-block",children:a?(0,t.jsx)("div",{className:"w-10 h-10 rounded-md bg-red-500 flex items-center justify-center",children:(0,t.jsx)(eE,{style:{fontSize:"16px",color:"white"}})}):(0,t.jsx)("img",{src:s||"",alt:"Upload preview",className:"w-10 h-10 rounded-md border border-gray-200 object-cover"})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-gray-900 truncate",children:e.name}),(0,t.jsx)("div",{className:"text-xs text-gray-500",children:a?"PDF":"Image"})]}),(0,t.jsx)("button",{className:"flex items-center justify-center w-6 h-6 text-gray-400 hover:text-gray-600 hover:bg-gray-200 rounded-full transition-colors",onClick:r,children:(0,t.jsx)(o.DeleteOutlined,{style:{fontSize:"12px"}})})]})})};var eC=e.i(771674),eA=e.i(918789),eP=e.i(245704),eO=e.i(637235),eI=e.i(166406),eR=e.i(755151),eM=e.i(240647),e$=e.i(993914);let eL=(e,t=8)=>e?e.length>t?`${e.substring(0,t)}…`:e:null,eU=e=>{navigator.clipboard.writeText(e)},eD=({a2aMetadata:e,timeToFirstToken:s,totalLatency:r})=>{let[a,n]=(0,I.useState)(!1);if(!e&&!s&&!r)return null;let{taskId:i,contextId:o,status:l,metadata:c}=e||{},h=(e=>{if(!e)return null;try{return new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}catch{return e}})(l?.timestamp);return(0,t.jsxs)("div",{className:"a2a-metrics mt-3 pt-2 border-t border-gray-200 text-xs",children:[(0,t.jsxs)("div",{className:"flex items-center mb-2 text-gray-600",children:[(0,t.jsx)(p.RobotOutlined,{className:"mr-1.5 text-blue-500"}),(0,t.jsx)("span",{className:"font-medium text-gray-700",children:"A2A Metadata"})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-gray-500 ml-4",children:[l?.state&&(0,t.jsxs)("span",{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium ${(e=>{switch(e){case"completed":return"bg-green-100 text-green-700";case"working":case"submitted":return"bg-blue-100 text-blue-700";case"failed":case"canceled":return"bg-red-100 text-red-700";default:return"bg-gray-100 text-gray-700"}})(l.state)}`,children:[(e=>{switch(e){case"completed":return(0,t.jsx)(eP.CheckCircleOutlined,{className:"text-green-500"});case"working":case"submitted":return(0,t.jsx)(u.LoadingOutlined,{className:"text-blue-500"});case"failed":case"canceled":return(0,t.jsx)(ev.ExclamationCircleOutlined,{className:"text-red-500"});default:return(0,t.jsx)(eO.ClockCircleOutlined,{className:"text-gray-500"})}})(l.state),(0,t.jsx)("span",{className:"ml-1 capitalize",children:l.state})]}),h&&(0,t.jsx)(A.Tooltip,{title:l?.timestamp,children:(0,t.jsxs)("span",{className:"flex items-center",children:[(0,t.jsx)(eO.ClockCircleOutlined,{className:"mr-1"}),h]})}),void 0!==r&&(0,t.jsx)(A.Tooltip,{title:"Total latency",children:(0,t.jsxs)("span",{className:"flex items-center text-blue-600",children:[(0,t.jsx)(eO.ClockCircleOutlined,{className:"mr-1"}),(r/1e3).toFixed(2),"s"]})}),void 0!==s&&(0,t.jsx)(A.Tooltip,{title:"Time to first token",children:(0,t.jsxs)("span",{className:"flex items-center text-green-600",children:["TTFT: ",(s/1e3).toFixed(2),"s"]})})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3 text-gray-500 ml-4 mt-1.5",children:[i&&(0,t.jsx)(A.Tooltip,{title:`Click to copy: ${i}`,children:(0,t.jsxs)("span",{className:"flex items-center cursor-pointer hover:text-gray-700",onClick:()=>eU(i),children:[(0,t.jsx)(e$.FileTextOutlined,{className:"mr-1"}),"Task: ",eL(i),(0,t.jsx)(eI.CopyOutlined,{className:"ml-1 text-gray-400 hover:text-gray-600"})]})}),o&&(0,t.jsx)(A.Tooltip,{title:`Click to copy: ${o}`,children:(0,t.jsxs)("span",{className:"flex items-center cursor-pointer hover:text-gray-700",onClick:()=>eU(o),children:[(0,t.jsx)(d.LinkOutlined,{className:"mr-1"}),"Session: ",eL(o),(0,t.jsx)(eI.CopyOutlined,{className:"ml-1 text-gray-400 hover:text-gray-600"})]})}),(c||l?.message)&&(0,t.jsxs)(j.Button,{type:"text",size:"small",className:"text-xs text-blue-500 hover:text-blue-700 p-0 h-auto",onClick:()=>n(!a),children:[a?(0,t.jsx)(eR.DownOutlined,{}):(0,t.jsx)(eM.RightOutlined,{}),(0,t.jsx)("span",{className:"ml-1",children:"Details"})]})]}),a&&(0,t.jsxs)("div",{className:"mt-2 ml-4 p-3 bg-gray-50 rounded-md text-gray-600 border border-gray-200",children:[l?.message&&(0,t.jsxs)("div",{className:"mb-2",children:[(0,t.jsx)("span",{className:"font-medium text-gray-700",children:"Status Message:"}),(0,t.jsx)("span",{className:"ml-2",children:l.message})]}),i&&(0,t.jsxs)("div",{className:"mb-1.5 flex items-center",children:[(0,t.jsx)("span",{className:"font-medium text-gray-700 w-24",children:"Task ID:"}),(0,t.jsx)("code",{className:"ml-2 px-2 py-1 bg-white border border-gray-200 rounded text-xs font-mono",children:i}),(0,t.jsx)(eI.CopyOutlined,{className:"ml-2 cursor-pointer text-gray-400 hover:text-blue-500",onClick:()=>eU(i)})]}),o&&(0,t.jsxs)("div",{className:"mb-1.5 flex items-center",children:[(0,t.jsx)("span",{className:"font-medium text-gray-700 w-24",children:"Session ID:"}),(0,t.jsx)("code",{className:"ml-2 px-2 py-1 bg-white border border-gray-200 rounded text-xs font-mono",children:o}),(0,t.jsx)(eI.CopyOutlined,{className:"ml-2 cursor-pointer text-gray-400 hover:text-blue-500",onClick:()=>eU(o)})]}),c&&Object.keys(c).length>0&&(0,t.jsxs)("div",{className:"mt-3",children:[(0,t.jsx)("span",{className:"font-medium text-gray-700",children:"Custom Metadata:"}),(0,t.jsx)("pre",{className:"mt-1.5 p-2 bg-white border border-gray-200 rounded text-xs font-mono overflow-x-auto whitespace-pre-wrap",children:JSON.stringify(c,null,2)})]})]})]})},eq=({message:e})=>e.isAudio&&"string"==typeof e.content?(0,t.jsx)("div",{className:"mb-2",children:(0,t.jsx)("audio",{controls:!0,src:e.content,className:"max-w-full",style:{maxWidth:"500px"},children:"Your browser does not support the audio element."})}):null;var eB=e.i(657688);let eW=({message:e})=>{if(!ey(e))return null;let s="string"==typeof e.content&&e.content.includes("[PDF attached]");return(0,t.jsx)("div",{className:"mb-2",children:s?(0,t.jsx)("div",{className:"w-64 h-32 rounded-md border border-gray-200 bg-red-50 flex items-center justify-center",children:(0,t.jsx)(eE,{style:{fontSize:"48px",color:"#dc2626"}})}):(0,t.jsx)(eB.default,{src:e.imagePreviewUrl||"",alt:"User uploaded image",width:256,height:200,className:"max-w-64 rounded-md border border-gray-200 shadow-sm",style:{maxHeight:"200px",width:"auto",height:"auto"}})})};e.s(["default",0,eW],843153);var eH=e.i(362024),ez=e.i(737434);let eF={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 00-12.6 0l-99.8 127.2a7.98 7.98 0 006.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 00-12.7 0zM360 442a40 40 0 1080 0 40 40 0 10-80 0zm494.6-153.4L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z"}}]},name:"file-image",theme:"outlined"};var eJ=I.forwardRef(function(e,t){return I.createElement(eN.default,(0,ej.default)({},e,{ref:t,icon:eF}))});let eG=({code:e,containerId:s,annotations:r=[],accessToken:a})=>{let[i,o]=(0,I.useState)({}),[l,c]=(0,I.useState)({}),d=(0,W.getProxyBaseUrl)();(0,I.useEffect)(()=>{let e=async()=>{for(let e of r)if((e.filename?.toLowerCase().endsWith(".png")||e.filename?.toLowerCase().endsWith(".jpg")||e.filename?.toLowerCase().endsWith(".jpeg")||e.filename?.toLowerCase().endsWith(".gif"))&&e.container_id&&e.file_id){c(t=>({...t,[e.file_id]:!0}));try{let t=await fetch(`${d}/v1/containers/${e.container_id}/files/${e.file_id}/content`,{headers:{[(0,W.getGlobalLitellmHeaderName)()]:`Bearer ${a}`}});if(t.ok){let s=await t.blob(),r=URL.createObjectURL(s);o(t=>({...t,[e.file_id]:r}))}}catch(e){console.error("Error fetching image:",e)}finally{c(t=>({...t,[e.file_id]:!1}))}}};return r.length>0&&a&&e(),()=>{Object.values(i).forEach(e=>URL.revokeObjectURL(e))}},[r,a,d]);let h=async e=>{try{let t=await fetch(`${d}/v1/containers/${e.container_id}/files/${e.file_id}/content`,{headers:{[(0,W.getGlobalLitellmHeaderName)()]:`Bearer ${a}`}});if(t.ok){let s=await t.blob(),r=URL.createObjectURL(s),a=document.createElement("a");a.href=r,a.download=e.filename||`file_${e.file_id}`,document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(r)}}catch(e){console.error("Error downloading file:",e)}},p=r.filter(e=>e.filename?.toLowerCase().endsWith(".png")||e.filename?.toLowerCase().endsWith(".jpg")||e.filename?.toLowerCase().endsWith(".jpeg")||e.filename?.toLowerCase().endsWith(".gif")),m=r.filter(e=>!e.filename?.toLowerCase().endsWith(".png")&&!e.filename?.toLowerCase().endsWith(".jpg")&&!e.filename?.toLowerCase().endsWith(".jpeg")&&!e.filename?.toLowerCase().endsWith(".gif"));return e||0!==r.length?(0,t.jsxs)("div",{className:"mt-3 space-y-3",children:[e&&(0,t.jsx)(eH.Collapse,{size:"small",items:[{key:"code",label:(0,t.jsxs)("span",{className:"flex items-center gap-2 text-sm text-gray-600",children:[(0,t.jsx)(n.CodeOutlined,{})," Python Code Executed"]}),children:(0,t.jsx)(R.Prism,{language:"python",style:M.coy,customStyle:{margin:0,borderRadius:"6px",fontSize:"12px",maxHeight:"300px",overflow:"auto"},children:e})}]}),p.map(e=>(0,t.jsx)("div",{className:"rounded-lg border border-gray-200 overflow-hidden",children:l[e.file_id]?(0,t.jsxs)("div",{className:"flex items-center justify-center p-8 bg-gray-50",children:[(0,t.jsx)(C.Spin,{indicator:(0,t.jsx)(u.LoadingOutlined,{spin:!0})}),(0,t.jsx)("span",{className:"ml-2 text-sm text-gray-500",children:"Loading image..."})]}):i[e.file_id]?(0,t.jsxs)("div",{children:[(0,t.jsx)("img",{src:i[e.file_id],alt:e.filename||"Generated chart",className:"max-w-full",style:{maxHeight:"400px"}}),(0,t.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 bg-gray-50 border-t border-gray-200",children:[(0,t.jsxs)("span",{className:"text-xs text-gray-500 flex items-center gap-1",children:[(0,t.jsx)(eJ,{})," ",e.filename]}),(0,t.jsxs)("button",{onClick:()=>h(e),className:"text-xs text-blue-500 hover:text-blue-700 flex items-center gap-1",children:[(0,t.jsx)(ez.DownloadOutlined,{})," Download"]})]})]}):(0,t.jsx)("div",{className:"flex items-center justify-center p-4 bg-gray-50",children:(0,t.jsx)("span",{className:"text-sm text-gray-400",children:"Image not available"})})},e.file_id)),m.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:m.map(e=>(0,t.jsxs)("button",{onClick:()=>h(e),className:"flex items-center gap-2 px-3 py-2 bg-gray-50 border border-gray-200 rounded-lg hover:bg-gray-100 transition-colors",children:[(0,t.jsx)(e$.FileTextOutlined,{className:"text-blue-500"}),(0,t.jsx)("span",{className:"text-sm",children:e.filename}),(0,t.jsx)(ez.DownloadOutlined,{className:"text-gray-400"})]},e.file_id))})]}):null};var eV=e.i(355343),eK=e.i(966988),eX=e.i(989022);let eY=async(e,t)=>{let s=await new Promise((e,s)=>{let r=new FileReader;r.onload=()=>{e(r.result.split(",")[1])},r.onerror=s,r.readAsDataURL(t)}),r=t.type||(t.name.toLowerCase().endsWith(".pdf")?"application/pdf":"image/jpeg");return{role:"user",content:[{type:"input_text",text:e},{type:"input_image",image_url:`data:${r};base64,${s}`}]}},eQ=(e,t,s,r)=>{let a="";t&&r&&(a=r.toLowerCase().endsWith(".pdf")?"[PDF attached]":"[Image attached]");let n={role:"user",content:t?`${e} ${a}`:e};return t&&s&&(n.imagePreviewUrl=s),n},eZ=({message:e})=>{if(!("user"===e.role&&"string"==typeof e.content&&(e.content.includes("[Image attached]")||e.content.includes("[PDF attached]"))&&e.imagePreviewUrl))return null;let s="string"==typeof e.content&&e.content.includes("[PDF attached]");return(0,t.jsx)("div",{className:"mb-2",children:s?(0,t.jsx)("div",{className:"w-64 h-32 rounded-md border border-gray-200 bg-red-50 flex items-center justify-center",children:(0,t.jsx)(eE,{style:{fontSize:"48px",color:"#dc2626"}})}):(0,t.jsx)("img",{src:e.imagePreviewUrl,alt:"User uploaded image",className:"max-w-64 rounded-md border border-gray-200 shadow-sm",style:{maxHeight:"200px"}})})};function e0({searchResults:e}){let[s,r]=(0,I.useState)(!0),[a,n]=(0,I.useState)({});if(!e||0===e.length)return null;let o=e.reduce((e,t)=>e+t.data.length,0);return(0,t.jsxs)("div",{className:"search-results-content mt-1 mb-2",children:[(0,t.jsxs)(j.Button,{type:"text",className:"flex items-center text-xs text-gray-500 hover:text-gray-700",onClick:()=>r(!s),icon:(0,t.jsx)(i.DatabaseOutlined,{}),children:[s?"Hide sources":`Show sources (${o})`,s?(0,t.jsx)(eR.DownOutlined,{className:"ml-1"}):(0,t.jsx)(eM.RightOutlined,{className:"ml-1"})]}),s&&(0,t.jsx)("div",{className:"mt-2 p-3 bg-gray-50 border border-gray-200 rounded-md text-sm",children:(0,t.jsx)("div",{className:"space-y-3",children:e.map((e,s)=>(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"text-xs text-gray-600 mb-2 flex items-center gap-2",children:[(0,t.jsx)("span",{className:"font-medium",children:"Query:"}),(0,t.jsxs)("span",{className:"italic",children:['"',e.search_query,'"']}),(0,t.jsx)("span",{className:"text-gray-400",children:"•"}),(0,t.jsxs)("span",{className:"text-gray-500",children:[e.data.length," result",1!==e.data.length?"s":""]})]}),(0,t.jsx)("div",{className:"space-y-2",children:e.data.map((e,r)=>{let i=a[`${s}-${r}`]||!1;return(0,t.jsxs)("div",{className:"border border-gray-200 rounded-md overflow-hidden bg-white",children:[(0,t.jsx)("div",{className:"flex items-center justify-between p-2 cursor-pointer hover:bg-gray-50 transition-colors",onClick:()=>{let e;return e=`${s}-${r}`,void n(t=>({...t,[e]:!t[e]}))},children:(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[(0,t.jsx)("svg",{className:`w-4 h-4 text-gray-400 transition-transform flex-shrink-0 ${i?"transform rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,t.jsx)(e$.FileTextOutlined,{className:"text-gray-400 flex-shrink-0",style:{fontSize:"12px"}}),(0,t.jsx)("span",{className:"text-xs font-medium text-gray-700 truncate",children:e.filename||e.file_id||`Result ${r+1}`}),(0,t.jsx)("span",{className:"text-xs px-2 py-0.5 rounded bg-blue-100 text-blue-700 font-mono flex-shrink-0",children:e.score.toFixed(3)})]})}),i&&(0,t.jsx)("div",{className:"border-t border-gray-200 bg-white",children:(0,t.jsxs)("div",{className:"p-3 space-y-2",children:[e.content.map((e,s)=>(0,t.jsx)("div",{children:(0,t.jsx)("div",{className:"text-xs font-mono bg-gray-50 p-2 rounded text-gray-800 whitespace-pre-wrap break-words",children:e.text})},s)),e.attributes&&Object.keys(e.attributes).length>0&&(0,t.jsxs)("div",{className:"mt-2 pt-2 border-t border-gray-100",children:[(0,t.jsx)("div",{className:"text-xs text-gray-500 mb-1 font-medium",children:"Metadata:"}),(0,t.jsx)("div",{className:"space-y-1",children:Object.entries(e.attributes).map(([e,s])=>(0,t.jsxs)("div",{className:"text-xs flex gap-2",children:[(0,t.jsxs)("span",{className:"text-gray-500 font-medium",children:[e,":"]}),(0,t.jsx)("span",{className:"text-gray-700 font-mono break-all",children:String(s)})]},e))})]})]})})]},r)})})]},s))})})]})}e.s(["SearchResultsDisplay",0,e0],152401);let e1=function({message:e,isLastMessage:s,endpointType:r,mcpEvents:a,codeInterpreterResult:n,accessToken:i}){let o="user"===e.role;return(0,t.jsx)("div",{className:`mb-4 ${o?"text-right":"text-left"}`,children:(0,t.jsxs)("div",{className:"inline-block max-w-[80%] rounded-lg shadow-sm p-3.5 px-4",style:{backgroundColor:o?"#f0f8ff":"#ffffff",border:o?"1px solid #e6f0fa":"1px solid #f0f0f0",textAlign:"left"},children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-1.5",children:[(0,t.jsx)("div",{className:"flex items-center justify-center w-6 h-6 rounded-full mr-1",style:{backgroundColor:o?"#e6f0fa":"#f5f5f5"},children:o?(0,t.jsx)(eC.UserOutlined,{style:{fontSize:"12px",color:"#2563eb"}}):(0,t.jsx)(p.RobotOutlined,{style:{fontSize:"12px",color:"#4b5563"}})}),(0,t.jsx)("strong",{className:"text-sm capitalize",children:e.role}),"assistant"===e.role&&e.model&&(0,t.jsx)("span",{className:"text-xs px-2 py-0.5 rounded bg-gray-100 text-gray-600 font-normal",children:e.model})]}),e.reasoningContent&&(0,t.jsx)(eK.default,{reasoningContent:e.reasoningContent}),"assistant"===e.role&&s&&a.length>0&&(r===el.EndpointType.RESPONSES||r===el.EndpointType.CHAT)&&(0,t.jsx)("div",{className:"mb-3",children:(0,t.jsx)(eV.default,{events:a})}),"assistant"===e.role&&e.searchResults&&(0,t.jsx)(e0,{searchResults:e.searchResults}),"assistant"===e.role&&s&&n&&r===el.EndpointType.RESPONSES&&(0,t.jsx)(eG,{code:n.code,containerId:n.containerId,annotations:n.annotations,accessToken:i}),(0,t.jsxs)("div",{className:"whitespace-pre-wrap break-words max-w-full message-content",style:{wordWrap:"break-word",overflowWrap:"break-word",wordBreak:"break-word",hyphens:"auto"},children:[e.isImage?(0,t.jsx)("img",{src:"string"==typeof e.content?e.content:"",alt:"Generated image",className:"max-w-full rounded-md border border-gray-200 shadow-sm",style:{maxHeight:"500px"}}):e.isAudio?(0,t.jsx)(eq,{message:e}):(0,t.jsxs)(t.Fragment,{children:[r===el.EndpointType.RESPONSES&&(0,t.jsx)(eZ,{message:e}),r===el.EndpointType.CHAT&&(0,t.jsx)(eW,{message:e}),(0,t.jsx)(eA.default,{components:{code({node:e,inline:s,className:r,children:a,...n}){let i=/language-(\w+)/.exec(r||"");return!s&&i?(0,t.jsx)(R.Prism,{style:M.coy,language:i[1],PreTag:"div",className:"rounded-md my-2",wrapLines:!0,wrapLongLines:!0,...n,children:String(a).replace(/\n$/,"")}):(0,t.jsx)("code",{className:`${r} px-1.5 py-0.5 rounded bg-gray-100 text-sm font-mono`,style:{wordBreak:"break-word"},...n,children:a})},pre:({node:e,...s})=>(0,t.jsx)("pre",{style:{overflowX:"auto",maxWidth:"100%"},...s})},children:"string"==typeof e.content?e.content:""}),e.image&&(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)("img",{src:e.image.url,alt:"Generated image",className:"max-w-full rounded-md border border-gray-200 shadow-sm",style:{maxHeight:"500px"}})})]}),"assistant"===e.role&&(e.timeToFirstToken||e.totalLatency||e.usage)&&!e.a2aMetadata&&(0,t.jsx)(eX.default,{timeToFirstToken:e.timeToFirstToken,totalLatency:e.totalLatency,usage:e.usage,toolName:e.toolName}),"assistant"===e.role&&e.a2aMetadata&&(0,t.jsx)(eD,{a2aMetadata:e.a2aMetadata,timeToFirstToken:e.timeToFirstToken,totalLatency:e.totalLatency})]})]})})};var eh=eh;let{Dragger:e2}=O.Upload,e4=({responsesUploadedImage:e,responsesImagePreviewUrl:s,onImageUpload:r,onRemoveImage:a})=>(0,t.jsx)(t.Fragment,{children:!e&&(0,t.jsx)(e2,{beforeUpload:r,accept:"image/*,.pdf",showUploadList:!1,className:"inline-block",style:{padding:0,border:"none",background:"none"},children:(0,t.jsx)(A.Tooltip,{title:"Attach image or PDF",children:(0,t.jsx)("button",{type:"button",className:"flex items-center justify-center w-8 h-8 text-gray-400 hover:text-gray-600 hover:bg-gray-100 rounded-md transition-colors",children:(0,t.jsx)(eh.default,{style:{fontSize:"16px"}})})})})}),e6=({endpointType:e,responsesSessionId:s,useApiSessionManagement:r,onToggleSessionManagement:a})=>e!==el.EndpointType.RESPONSES?null:(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Session Management"}),(0,t.jsx)(A.Tooltip,{title:"Choose between LiteLLM API session management (using previous_response_id) or UI-based session management (using chat history)",children:(0,t.jsx)(l.InfoCircleOutlined,{className:"text-gray-400",style:{fontSize:"12px"}})})]}),(0,t.jsx)(ex.Switch,{checked:r,onChange:a,checkedChildren:"API",unCheckedChildren:"UI",size:"small"})]}),(0,t.jsxs)("div",{className:`text-xs p-2 rounded-md ${s?"bg-green-50 text-green-700 border border-green-200":"bg-blue-50 text-blue-700 border border-blue-200"}`,children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)(l.InfoCircleOutlined,{style:{fontSize:"12px"}}),(()=>{if(!s)return r?"API Session: Ready":"UI Session: Ready";let e=r?"Response ID":"UI Session",t=s.slice(0,10);return`${e}: ${t}...`})()]}),s&&(0,t.jsx)(A.Tooltip,{title:(0,t.jsxs)("div",{className:"text-xs",children:[(0,t.jsx)("div",{className:"mb-1",children:"Copy response ID to continue session:"}),(0,t.jsx)("div",{className:"bg-gray-800 text-gray-100 p-2 rounded font-mono text-xs whitespace-pre-wrap",children:`curl -X POST "your-proxy-url/v1/responses" \\ -H "Authorization: Bearer your-api-key" \\ -H "Content-Type: application/json" \\ -d '{ @@ -35,6 +35,6 @@ Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpattern "input": [{"role": "user", "content": "your message", "type": "message"}], "previous_response_id": "${s}", "stream": true - }'`})]}),overlayStyle:{maxWidth:"500px"},children:(0,t.jsx)("button",{onClick:()=>{s&&(navigator.clipboard.writeText(s),B.default.success("Response ID copied to clipboard!"))},className:"ml-2 p-1 hover:bg-green-100 rounded transition-colors",children:(0,t.jsx)(eO.CopyOutlined,{style:{fontSize:"12px"}})})})]}),(0,t.jsx)("div",{className:"text-xs opacity-75 mt-1",children:s?r?"LiteLLM API session active - context maintained server-side":"UI session active - context maintained client-side":r?"LiteLLM will manage session using previous_response_id":"UI will manage session using chat history"})]})]});var e6={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M682 455V311l-76 76v68c-.1 50.7-42 92.1-94 92a95.8 95.8 0 01-52-15l-54 55c29.1 22.4 65.9 36 106 36 93.8 0 170-75.1 170-168z"}},{tag:"path",attrs:{d:"M833 446h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254-63 0-120.7-23-165-61l-54 54a334.01 334.01 0 00179 81v102H326c-13.9 0-24.9 14.3-25 32v36c.1 4.4 2.9 8 6 8h408c3.2 0 6-3.6 6-8v-36c0-17.7-11-32-25-32H547V782c165.3-17.9 294-157.9 294-328 0-4.4-3.6-8-8-8zm13.1-377.7l-43.5-41.9a8 8 0 00-11.2.1l-129 129C634.3 101.2 577 64 511 64c-93.9 0-170 75.3-170 168v224c0 6.7.4 13.3 1.2 19.8l-68 68A252.33 252.33 0 01258 454c-.2-4.4-3.8-8-8-8h-60c-4.4 0-8 3.6-8 8 0 53 12.5 103 34.6 147.4l-137 137a8.03 8.03 0 000 11.3l42.7 42.7c3.1 3.1 8.2 3.1 11.3 0L846.2 79.8l.1-.1c3.1-3.2 3-8.3-.2-11.4zM417 401V232c0-50.6 41.9-92 94-92 46 0 84.1 32.3 92.3 74.7L417 401z"}}]},name:"audio-muted",theme:"outlined"},e3=I.forwardRef(function(e,t){return I.createElement(ek.default,(0,eS.default)({},e,{ref:t,icon:e6}))}),e5=e.i(793916),e8=e.i(518617),e7=e.i(84899);let{Text:e9}=P.Typography,te=({accessToken:e,selectedModel:s,customProxyBaseUrl:r,selectedGuardrails:a})=>{let[n,i]=(0,I.useState)([]),[o,l]=(0,I.useState)(""),[c,d]=(0,I.useState)(!1),[u,h]=(0,I.useState)(!1),[p,m]=(0,I.useState)(!1),[g,y]=(0,I.useState)("alloy"),x=(0,I.useRef)(null),b=(0,I.useRef)(null),v=(0,I.useRef)(null),w=(0,I.useRef)(null);(0,I.useRef)([]),(0,I.useRef)(!1);let _=(0,I.useRef)(null),S=(0,I.useRef)(0),N=(0,I.useCallback)(()=>{_.current?.scrollIntoView({behavior:"smooth"})},[]);(0,I.useEffect)(()=>{N()},[n,N]);let E=(0,I.useCallback)((e,t)=>{i(s=>[...s,{role:e,content:t,timestamp:new Date}])},[]),C=(0,I.useCallback)(e=>{i(t=>{let s=t[t.length-1];return s&&"assistant"===s.role?[...t.slice(0,-1),{...s,content:s.content+e}]:[...t,{role:"assistant",content:e,timestamp:new Date}]})},[]),A=(0,I.useCallback)(e=>{let t=atob(e),s=new Uint8Array(t.length);for(let e=0;e{if(!x.current){if(!s)return void E("status","Please select a model first");h(!0);try{b.current=new AudioContext({sampleRate:24e3});let t=(r||(0,W.getProxyBaseUrl)()).replace(/^http/,"ws"),n=`${t}/v1/realtime?model=${encodeURIComponent(s)}`;a&&a.length>0&&(n+=`&guardrails=${encodeURIComponent(a.join(","))}`);let o=new WebSocket(n,["realtime",`openai-insecure-api-key.${e}`]);o.onopen=()=>{d(!0),h(!1),E("status","Connected to realtime API")},o.onmessage=async e=>{try{let t=e.data;t instanceof Blob?t=await t.text():t instanceof ArrayBuffer&&(t=new TextDecoder().decode(t));let s=JSON.parse(t),r=s.type;"session.created"===r?o.send(JSON.stringify({type:"session.update",session:{type:"realtime",modalities:["text","audio"],voice:g,input_audio_format:"pcm16",output_audio_format:"pcm16",input_audio_transcription:{model:"gpt-4o-mini-transcribe"},turn_detection:null}})):"session.updated"===r||("response.output_audio.delta"===r||"response.audio.delta"===r?s.delta&&A(s.delta):"response.output_text.delta"===r||"response.output_audio_transcript.delta"===r||"response.audio_transcript.delta"===r||"response.text.delta"===r?s.delta&&C(s.delta):"conversation.item.input_audio_transcription.completed"===r?s.transcript&&E("user",s.transcript):"response.done"===r?i(e=>{let t=e[e.length-1];if(t&&"assistant"===t.role&&t.content)return e;let r=s.response?.output||[],a=[];for(let e of r)for(let t of e.content||[]){let e=t.text||t.transcript;e&&a.push(e)}return a.length>0?[...e,{role:"assistant",content:a.join(""),timestamp:new Date}]:e}):"error"===r&&E("status",`Error: ${s.error?.message||JSON.stringify(s.error)}`))}catch{}},o.onerror=()=>{E("status","WebSocket error"),d(!1),h(!1)},o.onclose=()=>{E("status","Disconnected"),d(!1),h(!1),x.current=null},x.current=o}catch(e){E("status",`Connection failed: ${e.message}`),h(!1)}}},[e,s,g,r,a,E,C,A]),O=(0,I.useCallback)(()=>{M(),x.current?.close(),x.current=null,b.current?.close(),b.current=null,S.current=0,$.current=!1,d(!1)},[]),R=(0,I.useCallback)(async()=>{if(x.current&&x.current.readyState===WebSocket.OPEN){x.current.send(JSON.stringify({type:"session.update",session:{type:"realtime",modalities:["text","audio"],voice:g,input_audio_format:"pcm16",output_audio_format:"pcm16",input_audio_transcription:{model:"gpt-4o-mini-transcribe"},turn_detection:{type:"server_vad"}}}));try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});v.current=e;let t=b.current||new AudioContext({sampleRate:24e3});b.current=t;let s=t.createMediaStreamSource(e),r=t.createScriptProcessor(4096,1,1);w.current=r,r.onaudioprocess=e=>{let s;if(!x.current||x.current.readyState!==WebSocket.OPEN)return;let r=e.inputBuffer.getChannelData(0),a=t.sampleRate;if(24e3!==a){let e=a/24e3,t=Math.round(r.length/e);s=new Float32Array(t);for(let a=0;a{w.current?.disconnect(),w.current=null,v.current?.getTracks().forEach(e=>e.stop()),v.current=null,m(!1)},[]),$=(0,I.useRef)(!1),L=(0,I.useCallback)(()=>{!x.current||x.current.readyState!==WebSocket.OPEN||$.current||($.current=!0,x.current.send(JSON.stringify({type:"session.update",session:{type:"realtime",modalities:["text","audio"],voice:g,input_audio_format:"pcm16",output_audio_format:"pcm16",input_audio_transcription:{model:"gpt-4o-mini-transcribe"},turn_detection:null}})))},[g]),U=(0,I.useCallback)(()=>{if(!o.trim()||!x.current||x.current.readyState!==WebSocket.OPEN)return;let e=o.trim();E("user",e),l(""),x.current.send(JSON.stringify({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:e}]}})),x.current.send(JSON.stringify({type:"response.create"}))},[o,E,L]);return(0,I.useEffect)(()=>()=>{x.current?.close(),b.current?.close(),v.current?.getTracks().forEach(e=>e.stop())},[]),(0,t.jsxs)("div",{className:"flex flex-col h-full",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-gray-200 bg-gray-50",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(f.SoundOutlined,{className:"text-lg text-blue-500"}),(0,t.jsx)(e9,{className:"font-semibold text-gray-800",children:"Realtime Voice Chat"}),(0,t.jsx)("span",{className:`inline-block w-2 h-2 rounded-full ${c?"bg-green-500":"bg-gray-300"}`}),(0,t.jsx)(e9,{className:"text-xs text-gray-500",children:c?"Connected":u?"Connecting...":"Disconnected"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(T.Select,{size:"small",value:g,onChange:y,options:ec,style:{width:220},disabled:c}),c?(0,t.jsx)(j.Button,{danger:!0,onClick:O,size:"small",icon:(0,t.jsx)(e8.CloseCircleOutlined,{}),children:"Disconnect"}):(0,t.jsx)(j.Button,{type:"primary",onClick:P,loading:u,size:"small",children:"Connect"})]})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 space-y-3",children:[0===n.length&&!c&&(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center h-full text-gray-400 gap-3",children:[(0,t.jsx)(f.SoundOutlined,{style:{fontSize:48}}),(0,t.jsx)(e9,{className:"text-lg text-gray-500",children:"Realtime Voice Playground"}),(0,t.jsxs)(e9,{className:"text-sm text-gray-400 text-center max-w-md",children:["Click ",(0,t.jsx)("b",{children:"Connect"})," to start a realtime session. You can speak using your microphone or type messages. The AI will respond with voice and text."]})]}),n.map((e,s)=>(0,t.jsx)("div",{className:`flex ${"user"===e.role?"justify-end":"status"===e.role?"justify-center":"justify-start"}`,children:"status"===e.role?(0,t.jsx)("div",{className:"text-xs text-gray-400 italic px-3 py-1",children:e.content}):(0,t.jsxs)("div",{className:`max-w-[75%] rounded-2xl px-4 py-2.5 ${"user"===e.role?"bg-blue-500 text-white rounded-br-md":"bg-gray-100 text-gray-800 rounded-bl-md"}`,children:[(0,t.jsx)("div",{className:"text-xs font-medium mb-0.5 opacity-70",children:"user"===e.role?"You":"AI"}),(0,t.jsx)("div",{className:"text-sm whitespace-pre-wrap",children:e.content})]})},s)),(0,t.jsx)("div",{ref:_})]}),c&&(0,t.jsxs)("div",{className:"border-t border-gray-200 p-3 bg-white",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(j.Button,{shape:"circle",size:"large",type:p?"primary":"default",danger:p,icon:p?(0,t.jsx)(e3,{}):(0,t.jsx)(e5.AudioOutlined,{}),onClick:p?M:R,title:p?"Stop recording":"Start recording",className:p?"animate-pulse":""}),(0,t.jsx)(k.Input,{placeholder:"Type a message or use the mic...",value:o,onChange:e=>l(e.target.value),onPressEnter:U,className:"flex-1",size:"large"}),(0,t.jsx)(j.Button,{type:"primary",icon:(0,t.jsx)(e7.SendOutlined,{}),onClick:U,disabled:!o.trim(),size:"large"})]}),p&&(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-2 text-red-500 text-xs",children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-red-500 animate-pulse"}),"Listening — speak into your microphone. Server VAD will detect when you stop."]})]})]})};var tt=e.i(122550),ts=e.i(434166);let{TextArea:tr}=k.Input,{Dragger:ta}=O.Upload,tn=new Set([eo.EndpointType.CHAT,eo.EndpointType.RESPONSES,eo.EndpointType.MCP]);e.s(["default",0,({accessToken:e,token:k,userRole:O,userID:Z,disabledPersonalKeyCreation:er,proxySettings:ea,simplified:en=!1,fixedModel:el})=>{let[ed,eu]=(0,I.useState)([]),[eh,ef]=(0,I.useState)([]),[ey,ex]=(0,I.useState)(!1),[eb,eS]=(0,I.useState)(null),[ej,ek]=(0,I.useState)(()=>{let e=sessionStorage.getItem("selectedMCPServers");try{return e?JSON.parse(e):[]}catch(e){return console.error("Error parsing selectedMCPServers from sessionStorage",e),[]}}),[eN,eT]=(0,I.useState)(!1),[eC,eA]=(0,I.useState)({}),[eP,eO]=(0,I.useState)(void 0),eI=(0,I.useRef)(null),[eR,eM]=(0,I.useState)(()=>{let e=sessionStorage.getItem("mcpServerToolRestrictions");try{return e?JSON.parse(e):{}}catch(e){return console.error("Error parsing mcpServerToolRestrictions from sessionStorage",e),{}}}),{chatHistory:e$,setChatHistory:eL,mcpEvents:eU,setMCPEvents:eD,messageTraceId:eq,setMessageTraceId:eB,responsesSessionId:eW,setResponsesSessionId:eH,useApiSessionManagement:ez,setUseApiSessionManagement:eF,updateTextUI:eJ,updateReasoningContent:eV,updateTimingData:eK,updateUsageData:eQ,updateA2AMetadata:eZ,updateTotalLatency:e1,updateSearchResults:e6,handleResponseId:e3,handleToggleSessionManagement:e5,handleMCPEvent:e8,updateImageUI:e7,updateEmbeddingsUI:e9,updateAudioUI:ti,updateChatImageUI:to,clearChatHistory:tl,clearMCPEvents:tc}=function({simplified:e}){let[t,s]=(0,I.useState)(()=>{if(e)return[];try{let e=sessionStorage.getItem("chatHistory");return e?JSON.parse(e):[]}catch(e){return console.error("Error parsing chatHistory from sessionStorage",e),[]}}),[r,a]=(0,I.useState)([]),[n,i]=(0,I.useState)(()=>e?null:sessionStorage.getItem("messageTraceId")||null),[o,l]=(0,I.useState)(()=>e?null:sessionStorage.getItem("responsesSessionId")||null),[c,d]=(0,I.useState)(()=>{if(e)return!0;let t=sessionStorage.getItem("useApiSessionManagement");return!t||JSON.parse(t)});return(0,I.useEffect)(()=>{if(e||0===t.length)return;let s=setTimeout(()=>{sessionStorage.setItem("chatHistory",JSON.stringify(t))},500);return()=>{clearTimeout(s)}},[t,e]),(0,I.useEffect)(()=>{e||(n?sessionStorage.setItem("messageTraceId",n):sessionStorage.removeItem("messageTraceId"),o?sessionStorage.setItem("responsesSessionId",o):sessionStorage.removeItem("responsesSessionId"),sessionStorage.setItem("useApiSessionManagement",JSON.stringify(c)))},[n,o,c,e]),{chatHistory:t,setChatHistory:s,mcpEvents:r,setMCPEvents:a,messageTraceId:n,setMessageTraceId:i,responsesSessionId:o,setResponsesSessionId:l,useApiSessionManagement:c,setUseApiSessionManagement:d,updateTextUI:(e,t,r)=>{s(s=>{let a=s[s.length-1];if(!a||a.role!==e||a.isImage||a.isAudio)return[...s,{role:e,content:t,model:r}];{let e={...a,content:a.content+t,model:a.model??r};return[...s.slice(0,-1),e]}})},updateReasoningContent:e=>{s(t=>{let s=t[t.length-1];return!s||"assistant"!==s.role||s.isImage||s.isAudio?t.length>0&&"user"===t[t.length-1].role?[...t,{role:"assistant",content:"",reasoningContent:e}]:t:[...t.slice(0,t.length-1),{...s,reasoningContent:(s.reasoningContent||"")+e}]})},updateTimingData:e=>{s(t=>{let s=t[t.length-1];return s&&"assistant"===s.role?[...t.slice(0,t.length-1),{...s,timeToFirstToken:e}]:s&&"user"===s.role?[...t,{role:"assistant",content:"",timeToFirstToken:e}]:t})},updateUsageData:(e,t)=>{s(s=>{let r=s[s.length-1];if(r&&"assistant"===r.role){let a={...r,usage:e,toolName:t};return[...s.slice(0,s.length-1),a]}return s})},updateA2AMetadata:e=>{s(t=>{let s=t[t.length-1];if(s&&"assistant"===s.role){let r={...s,a2aMetadata:e};return[...t.slice(0,t.length-1),r]}return t})},updateTotalLatency:e=>{s(t=>{let s=t[t.length-1];return s&&"assistant"===s.role?[...t.slice(0,t.length-1),{...s,totalLatency:e}]:t})},updateSearchResults:e=>{s(t=>{let s=t[t.length-1];if(s&&"assistant"===s.role){let r={...s,searchResults:e};return[...t.slice(0,t.length-1),r]}return t})},handleResponseId:e=>{c&&l(e)},handleToggleSessionManagement:e=>{d(e),e||l(null)},handleMCPEvent:e=>{a(t=>e.item_id&&t.some(t=>t.item_id===e.item_id&&t.type===e.type&&(t.sequence_number===e.sequence_number||void 0===t.sequence_number&&void 0===e.sequence_number))?t:[...t,e])},updateImageUI:(e,t)=>{s(s=>[...s,{role:"assistant",content:e,model:t,isImage:!0}])},updateEmbeddingsUI:(e,t)=>{s(s=>[...s,{role:"assistant",content:(0,tt.truncateString)(e,100),model:t,isEmbeddings:!0}])},updateAudioUI:(e,t)=>{s(s=>[...s,{role:"assistant",content:e,model:t,isAudio:!0}])},updateChatImageUI:(e,t)=>{s(s=>{let r=s[s.length-1];if(!r||"assistant"!==r.role||r.isImage||r.isAudio)return[...s,{role:"assistant",content:"",model:t,image:{url:e,detail:"auto"}}];{let a={...r,image:{url:e,detail:"auto"},model:r.model??t};return[...s.slice(0,-1),a]}})},clearChatHistory:()=>{s(e=>(e.forEach(e=>{e.isAudio&&"string"==typeof e.content&&URL.revokeObjectURL(e.content)}),[])),i(null),l(null),a([]),e||(sessionStorage.removeItem("chatHistory"),sessionStorage.removeItem("messageTraceId"),sessionStorage.removeItem("responsesSessionId"))},clearMCPEvents:()=>{a([])}}}({simplified:en}),[td,tu]=(0,I.useState)(()=>{let e=(0,ts.getSecureItem)("apiKeySource");if(e)try{return JSON.parse(e)}catch(e){console.error("Error parsing apiKeySource from sessionStorage",e)}return er?"custom":"session"}),[th,tp]=(0,I.useState)(()=>(0,ts.getSecureItem)("apiKey")||""),[tm,tg]=(0,I.useState)(()=>sessionStorage.getItem("customProxyBaseUrl")||""),[tf,ty]=(0,I.useState)(""),[tx,tb]=(0,I.useState)(en?el:void 0),[tv,tw]=(0,I.useState)(!1),[t_,tS]=(0,I.useState)([]),[tj,tk]=(0,I.useState)([]),[tN,tE]=(0,I.useState)(void 0),tT=(0,I.useRef)(null),[tC,tA]=(0,I.useState)(()=>sessionStorage.getItem("endpointType")||eo.EndpointType.CHAT),[tP,tO]=(0,I.useState)(!1),tI=(0,I.useRef)(null),[tR,tM]=(0,I.useState)(()=>{let e=sessionStorage.getItem("selectedTags");try{return e?JSON.parse(e):[]}catch(e){return console.error("Error parsing selectedTags from sessionStorage",e),[]}}),[t$,tL]=(0,I.useState)(()=>{let e=sessionStorage.getItem("selectedVoice");if(!e)return"alloy";try{return JSON.parse(e)}catch{return e}}),[tU,tD]=(0,I.useState)(()=>{let e=sessionStorage.getItem("selectedVectorStores");try{return e?JSON.parse(e):[]}catch(e){return console.error("Error parsing selectedVectorStores from sessionStorage",e),[]}}),[tq,tB]=(0,I.useState)(()=>{let e=sessionStorage.getItem("selectedGuardrails");try{return e?JSON.parse(e):[]}catch(e){return console.error("Error parsing selectedGuardrails from sessionStorage",e),[]}}),[tW,tH]=(0,I.useState)(()=>{let e=sessionStorage.getItem("selectedPolicies");try{return e?JSON.parse(e):[]}catch(e){return console.error("Error parsing selectedPolicies from sessionStorage",e),[]}}),[tz,tF]=(0,I.useState)([]),[tJ,tG]=(0,I.useState)([]),[tV,tK]=(0,I.useState)(null),[tX,tY]=(0,I.useState)(null),[tQ,tZ]=(0,I.useState)(null),[t0,t1]=(0,I.useState)(null),[t2,t4]=(0,I.useState)(null),[t6,t3]=(0,I.useState)(!1),[t5,t8]=(0,I.useState)(""),[t7,t9]=(0,I.useState)("openai"),[se,st]=(0,I.useState)(1),[ss,sr]=(0,I.useState)(2048),[sa,sn]=(0,I.useState)(!1),[si,so]=(0,I.useState)(!1),sl=function(){let[e,t]=(0,I.useState)(()=>{let e=sessionStorage.getItem("codeInterpreterEnabled");return!!e&&JSON.parse(e)}),[s,r]=(0,I.useState)(null),a=(0,I.useCallback)(e=>{t(e),sessionStorage.setItem("codeInterpreterEnabled",JSON.stringify(e))},[]),n=(0,I.useCallback)(()=>{r(null)},[]),i=(0,I.useCallback)(()=>{a(!e)},[e,a]);return{enabled:e,result:s,setEnabled:a,setResult:r,clearResult:n,toggle:i}}(),sc=(0,I.useRef)(null),sd=async()=>{let t="session"===td?e:th;if(t){eT(!0);try{let[e,s]=await Promise.all([(0,W.fetchMCPServers)(t),(0,W.fetchMCPToolsets)(t).catch(()=>[])]);eu(Array.isArray(e)?e:e.data||[]),ef(Array.isArray(s)?s:[])}catch(e){console.error("Error fetching MCP servers:",e)}finally{eT(!1)}}};(0,I.useEffect)(()=>{en&&el&&(tb(el),tA(eo.EndpointType.CHAT))},[en,el]);let su=async t=>{let s="session"===td?e:th;if(s&&!eC[t])try{let e=await (0,W.listMCPTools)(s,t);eA(s=>({...s,[t]:e.tools||[]}))}catch(e){console.error(`Error fetching tools for server ${t}:`,e)}};(0,I.useEffect)(()=>{if(t6){let t=(0,ew.generateCodeSnippet)({apiKeySource:td,accessToken:e,apiKey:th,inputMessage:tf,chatHistory:e$,selectedTags:tR,selectedVectorStores:tU,selectedGuardrails:tq,selectedPolicies:tW,selectedMCPServers:ej,mcpServers:ed,mcpServerToolRestrictions:eR,endpointType:tC,selectedModel:tx,selectedSdk:t7,selectedVoice:t$,proxySettings:ea});t8(t)}},[t6,t7,td,e,th,tf,e$,tR,tU,tq,tW,ej,ed,eR,tC,tx,ea]),(0,I.useEffect)(()=>{try{(0,ts.setSecureItem)("apiKeySource",JSON.stringify(td)),(0,ts.setSecureItem)("apiKey",th)}catch{}sessionStorage.setItem("endpointType",tC),sessionStorage.setItem("selectedTags",JSON.stringify(tR)),sessionStorage.setItem("selectedVectorStores",JSON.stringify(tU)),sessionStorage.setItem("selectedGuardrails",JSON.stringify(tq)),sessionStorage.setItem("selectedPolicies",JSON.stringify(tW)),sessionStorage.setItem("selectedMCPServers",JSON.stringify(ej)),sessionStorage.setItem("mcpServerToolRestrictions",JSON.stringify(eR)),sessionStorage.setItem("selectedVoice",t$),sessionStorage.removeItem("selectedMCPTools"),en||(tx?sessionStorage.setItem("selectedModel",tx):sessionStorage.removeItem("selectedModel"))},[en,td,th,tx,tC,tR,tU,tq,tW,ej,eR,t$]),(0,I.useEffect)(()=>{let t="session"===td?e:th;if(!t||!k||!O||!Z)return void console.log("userApiKey or token or userRole or userID is missing = ",t,k,O,Z);let s=async()=>{try{if(!t)return void console.log("userApiKey is missing");let e=await (0,Q.fetchAvailableModels)(t);console.log("Fetched models:",e),tS(e);let s=e.some(e=>e.model_group===tx);e.length&&s||tb(void 0)}catch(e){console.error("Error fetching model info:",e)}};en||s(),sd()},[e,Z,O,td,th,k,en]),(0,I.useEffect)(()=>{if(tC===eo.EndpointType.MCP&&1===ej.length&&"__all__"!==ej[0]){let e=ej[0];if(e.startsWith("toolset:")){let t=e.slice(8),s=eh.find(e=>e.toolset_id===t);s&&[...new Set(s.tools.map(e=>e.server_id))].forEach(e=>{eC[e]||su(e)})}else eC[e]||su(e)}},[tC,ej,eC,eh]),(0,I.useEffect)(()=>{let t="session"===td?e:th;t&&tC===eo.EndpointType.A2A_AGENTS&&(async()=>{try{let e=await (0,Y.fetchAvailableAgents)(t,tm||void 0);tk(e),tN&&!e.some(e=>e.agent_name===tN)&&tE(void 0)}catch(e){console.error("Error fetching agents:",e)}})()},[e,td,th,tC,tm,tN]),(0,I.useEffect)(()=>{sc.current&&setTimeout(()=>{sc.current?.scrollIntoView({behavior:"smooth",block:"end"})},100)},[e$]);let sh=e=>{tF(t=>[...t,e]);let t=URL.createObjectURL(e),s=t.startsWith("blob:")?t:"";return tG(e=>[...e,s]),!1},sp=()=>{tJ.forEach(e=>{URL.revokeObjectURL(e)}),tF([]),tG([])},sm=()=>{tX&&URL.revokeObjectURL(tX),tK(null),tY(null)},sg=()=>{t0&&URL.revokeObjectURL(t0),tZ(null),t1(null)},sf=()=>{t4(null)},sy=async()=>{let t;if(""===tf.trim()&&tC!==eo.EndpointType.TRANSCRIPTION&&tC!==eo.EndpointType.MCP)return;if(tC===eo.EndpointType.IMAGE_EDITS&&0===tz.length)return void B.default.fromBackend("Please upload at least one image for editing");if(tC===eo.EndpointType.TRANSCRIPTION&&!t2)return void B.default.fromBackend("Please upload an audio file for transcription");if(tC===eo.EndpointType.A2A_AGENTS&&!tN)return void B.default.fromBackend("Please select an agent to send a message");let s={};if(tC===eo.EndpointType.MCP){let e=1===ej.length&&"__all__"!==ej[0]?ej[0]:null;if(!e)return void B.default.fromBackend("Please select an MCP server to test");if(e.startsWith("toolset:"),!eP)return void B.default.fromBackend("Please select an MCP tool to call");let t=e.startsWith("toolset:")?eh.find(t=>t.toolset_id===e.slice(8)):null,r=[];if(t?[...new Set(t.tools.map(e=>e.server_id))].forEach(e=>{r=r.concat(eC[e]||[])}):r=eC[e]||[],!r.find(e=>e.name===eP))return void B.default.fromBackend("Please wait for tool schema to load");try{s=await eI.current?.getSubmitValues()??{}}catch(e){B.default.fromBackend(e instanceof Error?e.message:"Please fill in all required parameters");return}}if([eo.EndpointType.CHAT,eo.EndpointType.IMAGE,eo.EndpointType.SPEECH,eo.EndpointType.IMAGE_EDITS,eo.EndpointType.RESPONSES,eo.EndpointType.ANTHROPIC_MESSAGES,eo.EndpointType.EMBEDDINGS,eo.EndpointType.TRANSCRIPTION].includes(tC)&&!tx)return void B.default.fromBackend("Please select a model before sending a request");if(!k||!O||!Z)return;let r=en||"session"===td?e:th;if(!r)return void B.default.fromBackend("Please provide a Virtual Key or select Current UI Session");tI.current=new AbortController;let a=tI.current.signal;if(tC===eo.EndpointType.RESPONSES&&tV)try{t=await eX(tf,tV)}catch(e){B.default.fromBackend("Failed to process image. Please try again.");return}else if(tC===eo.EndpointType.CHAT&&tQ)try{t=await em(tf,tQ)}catch(e){B.default.fromBackend("Failed to process image. Please try again.");return}else t={role:"user",content:tf};let n=eq||(0,$.v4)();eq||eB(n),eL([...e$,tC===eo.EndpointType.RESPONSES&&tV?eY(tf,!0,tX||void 0,tV.name):tC===eo.EndpointType.CHAT&&tQ?eg(tf,!0,t0||void 0,tQ.name):tC===eo.EndpointType.TRANSCRIPTION&&t2?eY(tf?`🎵 Audio file: ${t2.name} -Prompt: ${tf}`:`🎵 Audio file: ${t2.name}`,!1):tC===eo.EndpointType.MCP&&eP?eY(`🔧 MCP Tool: ${eP} -Arguments: ${JSON.stringify(s,null,2)}`,!1):eY(tf,!1)]),tc(),sl.clearResult(),tO(!0);try{if(tx)if(tC===eo.EndpointType.CHAT){let e=[...e$.filter(e=>!e.isImage&&!e.isAudio).map(({role:e,content:t})=>({role:e,content:"string"==typeof t?t:""})),t],s=en&&ea?ea.LITELLM_UI_API_DOC_BASE_URL??ea.PROXY_BASE_URL??void 0:tm||void 0;await (0,K.makeOpenAIChatCompletionRequest)(e,(e,t)=>eJ("assistant",e,t),tx,r,tR,a,eV,eK,eQ,n,tU.length>0?tU:void 0,tq.length>0?tq:void 0,tW.length>0?tW:void 0,ej,to,e6,sa?se:void 0,sa?ss:void 0,e1,s,ed,eR,e8,si,eh)}else if(tC===eo.EndpointType.IMAGE)await et(tf,(e,t)=>e7(e,t),tx,r,tR,a,tm||void 0);else if(tC===eo.EndpointType.SPEECH)await (0,G.makeOpenAIAudioSpeechRequest)(tf,t$,(e,t)=>ti(e,t),tx||"",r,tR,a,void 0,void 0,tm||void 0);else if(tC===eo.EndpointType.IMAGE_EDITS)tz.length>0&&await ee(1===tz.length?tz[0]:tz,tf,(e,t)=>e7(e,t),tx,r,tR,a,tm||void 0);else if(tC===eo.EndpointType.RESPONSES){let e;e=ez&&eW?[t]:[...e$.filter(e=>!e.isImage&&!e.isAudio).map(({role:e,content:t})=>({role:e,content:t})),t],await (0,es.makeOpenAIResponsesRequest)(e,(e,t,s)=>eJ(e,t,s),tx,r,tR,a,eV,eK,eQ,n,tU.length>0?tU:void 0,tq.length>0?tq:void 0,tW.length>0?tW:void 0,ej,ez?eW:null,e3,e8,sl.enabled,sl.setResult,tm||void 0,ed,eR,eh)}else if(tC===eo.EndpointType.ANTHROPIC_MESSAGES){let e=[...e$.filter(e=>!e.isImage&&!e.isAudio).map(({role:e,content:t})=>({role:e,content:t})),t];await (0,J.makeAnthropicMessagesRequest)(e,(e,t,s)=>eJ(e,t,s),tx,r,tR,a,eV,eK,eQ,n,tU.length>0?tU:void 0,tq.length>0?tq:void 0,tW.length>0?tW:void 0,ej,tm||void 0)}else tC===eo.EndpointType.EMBEDDINGS?await (0,X.makeOpenAIEmbeddingsRequest)(tf,(e,t)=>e9(e,t),tx,r,tR,tm||void 0):tC===eo.EndpointType.TRANSCRIPTION&&t2&&await (0,V.makeOpenAIAudioTranscriptionRequest)(t2,(e,t)=>eJ("assistant",e,t),tx,r,tR,a,void 0,void 0,void 0,void 0,tm||void 0);if(tC===eo.EndpointType.MCP){let e=1===ej.length&&"__all__"!==ej[0]?ej[0]:null,t=e;if(e?.startsWith("toolset:")){let s=e.slice(8),r=eh.find(e=>e.toolset_id===s),a=r?.tools.find(e=>e.tool_name===eP);t=a?.server_id??e}if(t&&!t.startsWith("toolset:")&&eP){let e=await (0,W.callMCPTool)(r,t,eP,s,tq.length>0?{guardrails:tq}:void 0),a=e?.content?.length>0?JSON.stringify(e.content.map(e=>"text"===e.type?e.text:e).filter(Boolean),null,2):JSON.stringify(e,null,2);eJ("assistant",a||"Tool executed successfully.")}}tC===eo.EndpointType.A2A_AGENTS&&tN&&await (0,F.makeA2ASendMessageRequest)(tN,tf,(e,t)=>eJ("assistant",e,t),r,a,eK,e1,eZ,tm||void 0,tq.length>0?tq:void 0)}catch(e){a.aborted?console.log("Request was cancelled"):(console.error("Error fetching response",e),eJ("assistant","Error fetching response:"+e))}finally{tO(!1),tI.current=null,tC===eo.EndpointType.IMAGE_EDITS&&sp(),tC===eo.EndpointType.RESPONSES&&tV&&sm(),tC===eo.EndpointType.CHAT&&tQ&&sg(),tC===eo.EndpointType.TRANSCRIPTION&&t2&&sf()}ty("")};if(O&&"Admin Viewer"===O){let{Title:e,Paragraph:s}=P.Typography;return(0,t.jsxs)("div",{children:[(0,t.jsx)(e,{level:1,children:"Access Denied"}),(0,t.jsx)(s,{children:"Ask your proxy admin for access to test models"})]})}let sx=(0,t.jsx)(u.LoadingOutlined,{style:{fontSize:24},spin:!0});return(0,t.jsxs)("div",{className:`w-full bg-white ${en?"h-full flex flex-col":"p-4 pb-0"}`,children:[(0,t.jsx)(b.Card,{className:`w-full rounded-xl shadow-md overflow-hidden ${en?"h-full flex flex-col":""}`,children:(0,t.jsxs)("div",{className:`flex w-full gap-4 ${en?"h-full":"h-[80vh]"}`,children:[!en&&(0,t.jsxs)("div",{className:"w-1/4 p-4 bg-gray-50 overflow-y-auto",children:[(0,t.jsx)(_.Title,{className:"text-xl font-semibold mb-6 mt-2",children:"Configurations"}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)(v.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(c.KeyOutlined,{className:"mr-2"})," Virtual Key Source"]}),(0,t.jsx)(T.Select,{disabled:er,value:td,style:{width:"100%"},onChange:e=>{tu(e)},options:[{value:"session",label:"Current UI Session"},{value:"custom",label:"Virtual Key"}],className:"rounded-md"}),"custom"===td&&(0,t.jsx)(w.TextInput,{className:"mt-2",placeholder:"Enter custom Virtual Key",type:"password",onValueChange:tp,value:th,icon:c.KeyOutlined})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsxs)(v.Text,{className:"font-medium block text-gray-700 flex items-center",children:[(0,t.jsx)(g.SettingOutlined,{className:"mr-2"})," Custom Proxy Base URL"]}),ea?.LITELLM_UI_API_DOC_BASE_URL&&!tm&&(0,t.jsx)(j.Button,{type:"link",size:"small",icon:(0,t.jsx)(d.LinkOutlined,{}),onClick:()=>{tg(ea.LITELLM_UI_API_DOC_BASE_URL||""),sessionStorage.setItem("customProxyBaseUrl",ea.LITELLM_UI_API_DOC_BASE_URL||"")},className:"text-gray-500 hover:text-gray-700",children:"Fill"}),tm&&(0,t.jsx)(j.Button,{type:"link",size:"small",icon:(0,t.jsx)(a.ClearOutlined,{}),onClick:()=>{tg(""),sessionStorage.removeItem("customProxyBaseUrl")},className:"text-gray-500 hover:text-gray-700",children:"Clear"})]}),(0,t.jsx)(w.TextInput,{placeholder:"Optional: Enter custom proxy URL (e.g., http://localhost:5000)",onValueChange:e=>{tg(e),sessionStorage.setItem("customProxyBaseUrl",e)},value:tm,icon:s.ApiOutlined}),tm&&(0,t.jsxs)(v.Text,{className:"text-xs text-gray-500 mt-1",children:["API calls will be sent to: ",tm]})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(v.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(s.ApiOutlined,{className:"mr-2"})," Endpoint Type"]}),(0,t.jsx)(e_,{endpointType:tC,onEndpointChange:e=>{tA(e),tb(void 0),tE(void 0),tw(!1),eO(void 0),e===eo.EndpointType.MCP&&ek(e=>1===e.length&&"__all__"!==e[0]?e:[]);try{sessionStorage.removeItem("selectedModel"),sessionStorage.removeItem("selectedAgent")}catch{}},className:"mb-4"}),tC===eo.EndpointType.SPEECH&&(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsxs)(v.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(f.SoundOutlined,{className:"mr-2"}),"Voice"]}),(0,t.jsx)(T.Select,{value:t$,onChange:e=>{tL(e),sessionStorage.setItem("selectedVoice",e)},style:{width:"100%"},className:"rounded-md",options:ec})]}),(0,t.jsx)(e4,{endpointType:tC,responsesSessionId:eW,useApiSessionManagement:ez,onToggleSessionManagement:e5})]}),tC!==eo.EndpointType.A2A_AGENTS&&tC!==eo.EndpointType.MCP&&(0,t.jsxs)("div",{children:[(0,t.jsxs)(v.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center justify-between",children:[(0,t.jsxs)("span",{className:"flex items-center",children:[(0,t.jsx)(p.RobotOutlined,{className:"mr-2"})," Select Model"]}),(()=>{if(!tx||"custom"===tx)return!1;let e=t_.find(e=>e.model_group===tx);return!!e&&(!e.mode||"chat"===e.mode)})()?(0,t.jsx)(E.Popover,{content:(0,t.jsx)(ei,{temperature:se,maxTokens:ss,useAdvancedParams:sa,onTemperatureChange:st,onMaxTokensChange:sr,onUseAdvancedParamsChange:sn,mockTestFallbacks:si,onMockTestFallbacksChange:so}),title:"Model Settings",trigger:"click",placement:"right",children:(0,t.jsx)(j.Button,{type:"text",size:"small",icon:(0,t.jsx)(g.SettingOutlined,{}),className:"text-gray-500 hover:text-gray-700","aria-label":"Model Settings","data-testid":"model-settings-button"})}):(0,t.jsx)(A.Tooltip,{title:"Advanced parameters are only supported for chat models currently",children:(0,t.jsx)(j.Button,{type:"text",size:"small",icon:(0,t.jsx)(g.SettingOutlined,{}),className:"text-gray-300 cursor-not-allowed",disabled:!0})})]}),(0,t.jsx)(T.Select,{value:tx,placeholder:"Select a Model",onChange:e=>{console.log(`selected ${e}`),tb(e),tw("custom"===e)},options:[{value:"custom",label:"Enter custom model",key:"custom"},...Array.from(new Set(t_.filter(e=>{if(!e.mode)return!0;let t=(0,eo.getEndpointType)(e.mode);return tC===eo.EndpointType.RESPONSES||tC===eo.EndpointType.ANTHROPIC_MESSAGES?t===tC||t===eo.EndpointType.CHAT:tC===eo.EndpointType.IMAGE_EDITS?t===tC||t===eo.EndpointType.IMAGE:t===tC}).map(e=>e.model_group))).map((e,t)=>({value:e,label:e,key:t}))],style:{width:"100%"},showSearch:!0,className:"rounded-md"}),tv&&(0,t.jsx)(w.TextInput,{className:"mt-2",placeholder:"Enter custom model name",onValueChange:e=>{tT.current&&clearTimeout(tT.current),tT.current=setTimeout(()=>{tb(e)},500)}})]}),tC===eo.EndpointType.A2A_AGENTS&&(0,t.jsxs)("div",{children:[(0,t.jsxs)(v.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(p.RobotOutlined,{className:"mr-2"})," Select Agent"]}),(0,t.jsx)(T.Select,{value:tN,placeholder:"Select an Agent",onChange:e=>tE(e),options:tj.map(e=>({value:e.agent_name,label:e.agent_name||e.agent_id,key:e.agent_id})),style:{width:"100%"},showSearch:!0,className:"rounded-md",optionLabelProp:"label",children:tj.map(e=>(0,t.jsx)(T.Select.Option,{value:e.agent_name,label:e.agent_name||e.agent_id,children:(0,t.jsxs)("div",{className:"flex flex-col py-1",children:[(0,t.jsx)("span",{className:"font-medium",children:e.agent_name||e.agent_id}),e.agent_card_params?.description&&(0,t.jsx)("span",{className:"text-xs text-gray-500 mt-1",children:e.agent_card_params.description})]})},e.agent_id))}),0===tj.length&&(0,t.jsx)(v.Text,{className:"text-xs text-gray-500 mt-2 block",children:"No agents found. Create agents via /v1/agents endpoint."})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(v.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(y.TagsOutlined,{className:"mr-2"})," Tags"]}),(0,t.jsx)(H.default,{value:tR,onChange:tM,className:"mb-4",accessToken:e||""})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(v.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(x.ToolOutlined,{className:"mr-2"}),tC===eo.EndpointType.MCP?"MCP Server":"MCP Servers",(0,t.jsx)(A.Tooltip,{className:"ml-1",title:tC===eo.EndpointType.MCP?"Select an MCP server or toolset to test tools directly.":"Select MCP servers or toolsets to use in your conversation.",children:(0,t.jsx)(l.InfoCircleOutlined,{className:"cursor-pointer",onClick:()=>ex(!0)})})]}),(0,t.jsxs)(T.Select,{mode:tC===eo.EndpointType.MCP?void 0:"multiple",style:{width:"100%"},placeholder:tC===eo.EndpointType.MCP?"Select MCP server":"Select MCP servers",value:tC===eo.EndpointType.MCP?"__all__"!==ej[0]&&1===ej.length?ej[0]:void 0:ej,onChange:e=>{tC===eo.EndpointType.MCP?(ek(e?[e]:[]),eO(void 0),e&&!eC[e]&&su(e)):e.includes("__all__")?(ek(["__all__"]),eM({})):(ek(e),eM(t=>{let s={...t};return Object.keys(s).forEach(t=>{e.includes(t)||delete s[t]}),s}),e.forEach(e=>{eC[e]||su(e)}))},loading:eN,className:"mb-2",allowClear:!0,showSearch:!0,optionLabelProp:"label",disabled:!tn.has(tC),maxTagCount:tC===eo.EndpointType.MCP?1:"responsive",filterOption:(e,t)=>{if(t?.value==="__all__")return"all mcp servers".includes(e.toLowerCase());let s=t?.value;if(s?.startsWith("toolset:")){let t=s.slice(8),r=eh.find(e=>e.toolset_id===t);return!!r&&[r.toolset_name,r.description].filter(Boolean).join(" ").toLowerCase().includes(e.toLowerCase())}let r=ed.find(e=>e.server_id===s);return!!r&&[r.server_name,r.alias,r.server_id,r.description].filter(Boolean).join(" ").toLowerCase().includes(e.toLowerCase())},children:[tC!==eo.EndpointType.MCP&&(0,t.jsx)(T.Select.Option,{value:"__all__",label:"All MCP Servers",children:(0,t.jsxs)("div",{className:"flex flex-col py-1",children:[(0,t.jsx)("span",{className:"font-medium",children:"All MCP Servers"}),(0,t.jsx)("span",{className:"text-xs text-gray-500 mt-1",children:"Use all available MCP servers"})]})},"__all__"),eh.length>0&&(0,t.jsx)(T.Select.OptGroup,{label:"Toolsets",children:eh.map(e=>(0,t.jsx)(T.Select.Option,{value:`toolset:${e.toolset_id}`,label:e.toolset_name,disabled:tC!==eo.EndpointType.MCP&&ej.includes("__all__"),children:(0,t.jsxs)("div",{className:"flex flex-col py-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"font-medium",children:e.toolset_name}),(0,t.jsx)("span",{className:"text-xs px-1 rounded",style:{background:"#ede9fe",color:"#7c3aed"},children:"Toolset"}),(0,t.jsxs)("span",{className:"text-xs text-gray-500",children:["(",e.tools.length," tools)"]})]}),e.description&&(0,t.jsx)("span",{className:"text-xs text-gray-500 mt-1",children:e.description})]})},`toolset:${e.toolset_id}`))}),ed.length>0&&(0,t.jsx)(T.Select.OptGroup,{label:"Servers",children:ed.map(e=>(0,t.jsx)(T.Select.Option,{value:e.server_id,label:e.alias||e.server_name||e.server_id,disabled:tC!==eo.EndpointType.MCP&&ej.includes("__all__"),children:(0,t.jsxs)("div",{className:"flex flex-col py-1",children:[(0,t.jsx)("span",{className:"font-medium",children:e.alias||e.server_name||e.server_id}),e.description&&(0,t.jsx)("span",{className:"text-xs text-gray-500 mt-1",children:e.description})]})},e.server_id))})]}),tC===eo.EndpointType.MCP&&1===ej.length&&"__all__"!==ej[0]&&(()=>{let e=ej[0],s=e.startsWith("toolset:"),r=[];if(s){let t=e.slice(8),s=eh.find(e=>e.toolset_id===t);s&&(r=s.tools.map(e=>({value:e.tool_name,label:e.tool_name})))}else r=(eC[e]||[]).map(e=>({value:e.name,label:e.name}));return(0,t.jsxs)("div",{className:"mt-3",children:[(0,t.jsx)(v.Text,{className:"text-xs text-gray-600 mb-1 block",children:"Select Tool"}),(0,t.jsx)(T.Select,{style:{width:"100%"},placeholder:"Select a tool to call",value:eP,onChange:e=>eO(e),options:r,allowClear:!0,className:"rounded-md"})]})})(),ej.length>0&&!ej.includes("__all__")&&tC!==eo.EndpointType.MCP&&tn.has(tC)&&(0,t.jsx)("div",{className:"mt-3 space-y-2",children:ej.map(e=>{let s=ed.find(t=>t.server_id===e),r=eC[e]||[];return 0===r.length?null:(0,t.jsxs)("div",{className:"border rounded p-2",children:[(0,t.jsxs)(v.Text,{className:"text-xs text-gray-600 mb-1",children:["Limit tools for ",s?.alias||s?.server_name||e,":"]}),(0,t.jsx)(T.Select,{mode:"multiple",size:"small",style:{width:"100%"},placeholder:"All tools (default)",value:eR[e]||[],onChange:t=>{eM(s=>({...s,[e]:t}))},options:r.map(e=>({value:e.name,label:e.name})),maxTagCount:2})]},e)})}),ej.length>0&&!ej.includes("__all__")&&ej.some(e=>{let t=ed.find(t=>t.server_id===e);return t?.is_byok})&&(0,t.jsx)("div",{className:"mt-3 space-y-2",children:ej.map(e=>{let s=ed.find(t=>t.server_id===e);if(!s?.is_byok)return null;let r=s.alias||s.server_name||e;return(0,t.jsxs)("div",{className:"border border-blue-100 rounded p-2 bg-blue-50 flex items-center justify-between",children:[(0,t.jsxs)(v.Text,{className:"text-xs text-blue-700",children:[r," requires your API key"]}),s.has_user_credential?(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"text-green-600 text-xs font-medium flex items-center gap-1",children:[(0,t.jsx)(c.KeyOutlined,{})," Connected"]}),(0,t.jsx)("button",{className:"text-xs text-gray-400 hover:text-blue-500 underline",onClick:()=>eS(s),children:"Reconnect"})]}):(0,t.jsx)("button",{className:"text-xs bg-blue-500 hover:bg-blue-600 text-white px-3 py-1 rounded-lg font-medium",onClick:()=>eS(s),children:"Connect"})]},e)})})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(v.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(i.DatabaseOutlined,{className:"mr-2"})," Vector Store",(0,t.jsx)(A.Tooltip,{className:"ml-1",title:(0,t.jsxs)("span",{children:["Select vector store(s) to use for this LLM API call. You can set up your vector store"," ",(0,t.jsx)("a",{href:"?page=vector-stores",style:{color:"#1890ff"},children:"here"}),"."]}),children:(0,t.jsx)(l.InfoCircleOutlined,{})})]}),(0,t.jsx)(z.default,{value:tU,onChange:tD,className:"mb-4",accessToken:e||""})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(v.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(m.SafetyOutlined,{className:"mr-2"})," Guardrails",(0,t.jsx)(A.Tooltip,{className:"ml-1",title:(0,t.jsxs)("span",{children:["Select guardrail(s) to use for this LLM API call. You can set up your guardrails"," ",(0,t.jsx)("a",{href:"?page=guardrails",style:{color:"#1890ff"},children:"here"}),"."]}),children:(0,t.jsx)(l.InfoCircleOutlined,{})})]}),(0,t.jsx)(L.default,{value:tq,onChange:tB,className:"mb-4",accessToken:e||""})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(v.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(m.SafetyOutlined,{className:"mr-2"})," Policies",(0,t.jsx)(A.Tooltip,{className:"ml-1",title:(0,t.jsxs)("span",{children:["Select policy/policies to apply to this LLM API call. Policies define which guardrails are applied based on conditions. You can set up your policies"," ",(0,t.jsx)("a",{href:"?page=policies",style:{color:"#1890ff"},children:"here"}),"."]}),children:(0,t.jsx)(l.InfoCircleOutlined,{})})]}),(0,t.jsx)(U.default,{value:tW,onChange:tH,className:"mb-4",accessToken:e||""})]}),tC===eo.EndpointType.RESPONSES&&(0,t.jsx)("div",{children:(0,t.jsx)(ev,{accessToken:"session"===td?e||"":th,enabled:sl.enabled,onEnabledChange:sl.setEnabled,selectedContainerId:null,onContainerChange:()=>{},selectedModel:tx||""})})]})]}),(0,t.jsx)("div",{className:`flex flex-col bg-white ${en?"flex-1 w-full":"w-3/4"}`,children:tC===eo.EndpointType.REALTIME?(0,t.jsx)(te,{accessToken:"session"===td?e||"":th,selectedModel:tx||"",customProxyBaseUrl:tm||void 0,selectedGuardrails:tq.length>0?tq:void 0}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"p-4 border-b border-gray-200 flex justify-between items-center",children:[(0,t.jsx)(_.Title,{className:"text-xl font-semibold mb-0",children:en?"Chat":"Test Key"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(S.Button,{onClick:()=>{tl(),sp(),sm(),sg(),sf(),B.default.success("Chat history cleared.")},className:"bg-gray-100 hover:bg-gray-200 text-gray-700 border-gray-300",icon:a.ClearOutlined,children:"Clear Chat"}),!en&&(0,t.jsx)(S.Button,{onClick:()=>t3(!0),className:"bg-gray-100 hover:bg-gray-200 text-gray-700 border-gray-300",icon:n.CodeOutlined,children:"Get Code"})]})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-auto p-4 pb-0",children:[0===e$.length&&(0,t.jsxs)("div",{className:"h-full flex flex-col items-center justify-center text-gray-400",children:[(0,t.jsx)(p.RobotOutlined,{style:{fontSize:"48px",marginBottom:"16px"}}),(0,t.jsx)(v.Text,{children:"Start a conversation, generate an image, or handle audio"})]}),e$.map((s,r)=>(0,t.jsx)("div",{children:(0,t.jsx)(e0,{message:s,isLastMessage:r===e$.length-1,endpointType:tC,mcpEvents:eU,codeInterpreterResult:sl.result,accessToken:"session"===td?e||"":th})},r)),tP&&eU.length>0&&(tC===eo.EndpointType.RESPONSES||tC===eo.EndpointType.CHAT)&&e$.length>0&&"user"===e$[e$.length-1].role&&(0,t.jsx)("div",{className:"text-left mb-4",children:(0,t.jsxs)("div",{className:"inline-block max-w-[80%] rounded-lg shadow-sm p-3.5 px-4",style:{backgroundColor:"#ffffff",border:"1px solid #f0f0f0",textAlign:"left"},children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-1.5",children:[(0,t.jsx)("div",{className:"flex items-center justify-center w-6 h-6 rounded-full mr-1",style:{backgroundColor:"#f5f5f5"},children:(0,t.jsx)(p.RobotOutlined,{style:{fontSize:"12px",color:"#4b5563"}})}),(0,t.jsx)("strong",{className:"text-sm capitalize",children:"Assistant"})]}),(0,t.jsx)(eG.default,{events:eU})]})}),tP&&(0,t.jsx)("div",{className:"flex justify-center items-center my-4",children:(0,t.jsx)(C.Spin,{indicator:sx})}),(0,t.jsx)("div",{ref:sc,style:{height:"1px"}})]}),(0,t.jsxs)("div",{className:"p-4 border-t border-gray-200 bg-white",children:[tC===eo.EndpointType.IMAGE_EDITS&&(0,t.jsx)("div",{className:"mb-4",children:0===tz.length?(0,t.jsxs)(ta,{beforeUpload:sh,accept:"image/*",showUploadList:!1,children:[(0,t.jsx)("p",{className:"ant-upload-drag-icon",children:(0,t.jsx)(h.PictureOutlined,{style:{fontSize:"24px",color:"#666"}})}),(0,t.jsx)("p",{className:"ant-upload-text text-sm",children:"Click or drag images to upload"}),(0,t.jsx)("p",{className:"ant-upload-hint text-xs text-gray-500",children:"Support for PNG, JPG, JPEG formats. Multiple images supported."})]}):(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[tz.map((e,s)=>(0,t.jsxs)("div",{className:"relative inline-block",children:[(0,t.jsx)("img",{src:(()=>{let e=tJ[s];if(!e)return"";try{let t=new URL(e);return"blob:"===t.protocol?t.href:""}catch{return""}})(),alt:`Upload preview ${s+1}`,className:"max-w-32 max-h-32 rounded-md border border-gray-200 object-cover"}),(0,t.jsx)("button",{className:"absolute top-1 right-1 bg-white shadow-sm border border-gray-200 rounded px-1 py-1 text-red-500 hover:bg-red-50 text-xs",onClick:()=>{tJ[s]&&URL.revokeObjectURL(tJ[s]),tF(e=>e.filter((e,t)=>t!==s)),tG(e=>e.filter((e,t)=>t!==s))},children:(0,t.jsx)(o.DeleteOutlined,{})})]},s)),(0,t.jsxs)("div",{className:"flex items-center justify-center w-32 h-32 border-2 border-dashed border-gray-300 rounded-md hover:border-gray-400 cursor-pointer",onClick:()=>document.getElementById("additional-image-upload")?.click(),children:[(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)(h.PictureOutlined,{style:{fontSize:"24px",color:"#666"}}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:"Add more"})]}),(0,t.jsx)("input",{id:"additional-image-upload",type:"file",accept:"image/*",multiple:!0,style:{display:"none"},onChange:e=>{Array.from(e.target.files||[]).forEach(e=>sh(e))}})]})]})}),tC===eo.EndpointType.TRANSCRIPTION&&(0,t.jsx)("div",{className:"mb-4",children:t2?(0,t.jsxs)("div",{className:"flex items-center gap-3 p-3 bg-gray-50 rounded-lg border border-gray-200",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-1",children:[(0,t.jsx)(f.SoundOutlined,{style:{fontSize:"20px",color:"#666"}}),(0,t.jsx)("span",{className:"text-sm font-medium",children:t2.name}),(0,t.jsxs)("span",{className:"text-xs text-gray-500",children:["(",(t2.size/1024/1024).toFixed(2)," MB)"]})]}),(0,t.jsxs)("button",{className:"bg-white shadow-sm border border-gray-200 rounded px-2 py-1 text-red-500 hover:bg-red-50 text-xs",onClick:sf,children:[(0,t.jsx)(o.DeleteOutlined,{})," Remove"]})]}):(0,t.jsxs)(ta,{beforeUpload:e=>(t4(e),!1),accept:"audio/*,.mp3,.mp4,.mpeg,.mpga,.m4a,.wav,.webm",showUploadList:!1,children:[(0,t.jsx)("p",{className:"ant-upload-drag-icon",children:(0,t.jsx)(f.SoundOutlined,{style:{fontSize:"24px",color:"#666"}})}),(0,t.jsx)("p",{className:"ant-upload-text text-sm",children:"Click or drag audio file to upload"}),(0,t.jsx)("p",{className:"ant-upload-hint text-xs text-gray-500",children:"Support for MP3, MP4, MPEG, MPGA, M4A, WAV, WEBM formats. Max file size: 25 MB."})]})}),tC===eo.EndpointType.RESPONSES&&tV&&(0,t.jsx)(eE,{file:tV,previewUrl:tX,onRemove:sm}),tC===eo.EndpointType.CHAT&&tQ&&(0,t.jsx)(eE,{file:tQ,previewUrl:t0,onRemove:sg}),tC===eo.EndpointType.RESPONSES&&sl.enabled&&(0,t.jsxs)("div",{className:"mb-2 space-y-2",children:[(0,t.jsxs)("div",{className:"px-3 py-2 bg-gradient-to-r from-blue-50 to-purple-50 rounded-lg border border-blue-200 flex items-center justify-between",children:[(0,t.jsx)("div",{className:"flex items-center gap-2",children:tP?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.LoadingOutlined,{className:"text-blue-500",spin:!0}),(0,t.jsx)("span",{className:"text-sm text-blue-700 font-medium",children:"Running Python code..."})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.CodeOutlined,{className:"text-blue-500"}),(0,t.jsx)("span",{className:"text-sm text-blue-700 font-medium",children:"Code Interpreter Active"})]})}),(0,t.jsx)("button",{className:"text-xs text-blue-500 hover:text-blue-700",onClick:()=>sl.setEnabled(!1),children:"Disable"})]}),!tP&&(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:["Generate sample sales data CSV and create a chart","Create a PNG bar chart comparing AI gateway providers including LiteLLM","Generate a CSV of LLM pricing data and visualize it as a line chart"].map((e,s)=>(0,t.jsx)("button",{className:"text-xs px-3 py-1.5 bg-white border border-gray-200 rounded-full hover:bg-blue-50 hover:border-blue-300 hover:text-blue-600 transition-colors",onClick:()=>ty(e),children:e},s))})]}),0===e$.length&&!tP&&tC!==eo.EndpointType.MCP&&(0,t.jsx)("div",{className:"flex items-center gap-2 mb-3 overflow-x-auto",children:(tC===eo.EndpointType.A2A_AGENTS?["What can you help me with?","Tell me about yourself","What tasks can you perform?"]:["Write me a poem","Explain quantum computing","Draft a polite email requesting a meeting"]).map(e=>(0,t.jsx)("button",{type:"button",className:"shrink-0 rounded-full border border-gray-200 px-3 py-1 text-xs font-medium text-gray-600 transition-colors hover:bg-blue-50 hover:border-blue-300 hover:text-blue-600 cursor-pointer",onClick:()=>ty(e),children:e},e))}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("div",{className:"flex items-center flex-1 bg-white border border-gray-300 rounded-xl px-3 py-1 min-h-[44px]",children:[(0,t.jsxs)("div",{className:"flex-shrink-0 mr-2 flex items-center gap-1",children:[tC===eo.EndpointType.RESPONSES&&!tV&&(0,t.jsx)(e2,{responsesUploadedImage:tV,responsesImagePreviewUrl:tX,onImageUpload:e=>(tK(e),tY(URL.createObjectURL(e)),!1),onRemoveImage:sm}),tC===eo.EndpointType.CHAT&&!tQ&&(0,t.jsx)(ep,{chatUploadedImage:tQ,chatImagePreviewUrl:t0,onImageUpload:e=>(tZ(e),t1(URL.createObjectURL(e)),!1),onRemoveImage:sg}),tC===eo.EndpointType.RESPONSES&&(0,t.jsx)(A.Tooltip,{title:sl.enabled?"Code Interpreter enabled (click to disable)":"Enable Code Interpreter",children:(0,t.jsx)("button",{className:`p-1.5 rounded-md transition-colors ${sl.enabled?"bg-blue-100 text-blue-600":"text-gray-400 hover:text-gray-600 hover:bg-gray-100"}`,onClick:()=>{sl.toggle(),sl.enabled||B.default.success("Code Interpreter enabled!")},children:(0,t.jsx)(n.CodeOutlined,{style:{fontSize:"16px"}})})})]}),tC===eo.EndpointType.MCP&&1===ej.length&&"__all__"!==ej[0]&&eP?(0,t.jsx)("div",{className:"flex-1 overflow-y-auto max-h-48 min-h-[44px] p-2 border border-gray-200 rounded-lg bg-gray-50/50",children:(()=>{let e=ej[0],s=[];if(e.startsWith("toolset:")){let t=e.slice(8),r=eh.find(e=>e.toolset_id===t);r&&[...new Set(r.tools.map(e=>e.server_id))].forEach(e=>{s=s.concat(eC[e]||[])})}else s=eC[e]||[];let r=s.find(e=>e.name===eP);return r?(0,t.jsx)(D.default,{ref:eI,tool:r,className:"space-y-2"}):(0,t.jsx)("div",{className:"flex items-center justify-center h-10 text-sm text-gray-500",children:"Loading tool schema..."})})()}):(0,t.jsx)(tr,{value:tf,onChange:e=>ty(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),sy())},placeholder:tC===eo.EndpointType.CHAT||tC===eo.EndpointType.EMBEDDINGS||tC===eo.EndpointType.RESPONSES||tC===eo.EndpointType.ANTHROPIC_MESSAGES?"Type your message... (Shift+Enter for new line)":tC===eo.EndpointType.A2A_AGENTS?"Send a message to the A2A agent...":tC===eo.EndpointType.IMAGE_EDITS?"Describe how you want to edit the image...":tC===eo.EndpointType.SPEECH?"Enter text to convert to speech...":tC===eo.EndpointType.TRANSCRIPTION?"Optional: Add context or prompt for transcription...":"Describe the image you want to generate...",disabled:tP,className:"flex-1",autoSize:{minRows:1,maxRows:4},style:{resize:"none",border:"none",boxShadow:"none",background:"transparent",padding:"4px 0",fontSize:"14px",lineHeight:"20px"}}),(0,t.jsx)(S.Button,{onClick:sy,disabled:tP||(tC===eo.EndpointType.MCP?!(1===ej.length&&"__all__"!==ej[0]&&eP):tC===eo.EndpointType.TRANSCRIPTION?!t2:!tf.trim()),className:"flex-shrink-0 ml-2 !w-8 !h-8 !min-w-8 !p-0 !rounded-full !bg-blue-600 hover:!bg-blue-700 disabled:!bg-gray-300 !border-none !text-white disabled:!text-gray-500 !flex !items-center !justify-center",children:(0,t.jsx)(r.ArrowUpOutlined,{style:{fontSize:"14px"}})})]}),tP&&(0,t.jsx)(S.Button,{onClick:()=>{tI.current&&(tI.current.abort(),tI.current=null,tO(!1),B.default.info("Request cancelled"))},className:"bg-red-50 hover:bg-red-100 text-red-600 border-red-200",icon:o.DeleteOutlined,children:"Cancel"})]})]})]})})]})}),(0,t.jsxs)(N.Modal,{title:"Generated Code",open:t6,onCancel:()=>t3(!1),footer:null,width:800,children:[(0,t.jsxs)("div",{className:"flex justify-between items-end my-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(v.Text,{className:"font-medium block mb-1 text-gray-700",children:"SDK Type"}),(0,t.jsx)(T.Select,{value:t7,onChange:e=>t9(e),style:{width:150},options:[{value:"openai",label:"OpenAI SDK"},{value:"azure",label:"Azure SDK"}]})]}),(0,t.jsx)(j.Button,{onClick:()=>{navigator.clipboard.writeText(t5),B.default.success("Copied to clipboard!")},children:"Copy to Clipboard"})]}),(0,t.jsx)(R.Prism,{language:"python",style:M.coy,wrapLines:!0,wrapLongLines:!0,className:"rounded-md",customStyle:{maxHeight:"60vh",overflowY:"auto"},children:t5})]}),eb&&(0,t.jsx)(q.ByokCredentialModal,{server:eb,open:!!eb,onClose:()=>eS(null),onSuccess:e=>{sd(),eS(null)},accessToken:e||""}),(0,t.jsx)(N.Modal,{title:"How Toolsets Work",open:ey,onCancel:()=>ex(!1),footer:[(0,t.jsx)(j.Button,{onClick:()=>ex(!1),children:"Close"},"close")],width:600,children:(0,t.jsxs)("div",{className:"space-y-4 py-2",children:[(0,t.jsxs)("p",{className:"text-gray-700",children:[(0,t.jsx)("strong",{children:"Toolsets"})," are named collections of specific tools from one or more MCP servers. Instead of exposing all tools from a server, a toolset gives an agent exactly the tools it needs."]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"font-semibold text-gray-800 mb-2",children:"How to use a toolset:"}),(0,t.jsxs)("ol",{className:"list-decimal list-inside space-y-2 text-gray-700",children:[(0,t.jsxs)("li",{children:["Select a ",(0,t.jsx)("span",{style:{color:"#7c3aed",fontWeight:600},children:"Toolset"})," (purple badge) from the MCP Servers dropdown."]}),(0,t.jsx)("li",{children:"The tool picker will show only the tools included in that toolset."}),(0,t.jsx)("li",{children:"Select a tool and fill in its parameters, then send."}),(0,t.jsx)("li",{children:"The tool call is routed to the correct underlying MCP server automatically."})]})]}),(0,t.jsx)("div",{className:"bg-purple-50 border border-purple-200 rounded p-3",children:(0,t.jsxs)("p",{className:"text-sm text-purple-800",children:[(0,t.jsx)("strong",{children:"Example:"}),' A "GitHub Read-only" toolset might include only ',(0,t.jsx)("code",{children:"list_repos"})," and ",(0,t.jsx)("code",{children:"get_file"})," from a GitHub MCP server — preventing agents from making writes."]})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"font-semibold text-gray-800 mb-1",children:"Creating toolsets:"}),(0,t.jsxs)("p",{className:"text-sm text-gray-600",children:["Admins can create and manage toolsets from the ",(0,t.jsx)("strong",{children:"MCP"})," page → ",(0,t.jsx)("strong",{children:"Toolsets"})," tab. Toolsets can then be assigned to keys and teams to scope their tool access."]})]})]})})]})}],220486)}]); \ No newline at end of file + }'`})]}),overlayStyle:{maxWidth:"500px"},children:(0,t.jsx)("button",{onClick:()=>{s&&(navigator.clipboard.writeText(s),B.default.success("Response ID copied to clipboard!"))},className:"ml-2 p-1 hover:bg-green-100 rounded transition-colors",children:(0,t.jsx)(eI.CopyOutlined,{style:{fontSize:"12px"}})})})]}),(0,t.jsx)("div",{className:"text-xs opacity-75 mt-1",children:s?r?"LiteLLM API session active - context maintained server-side":"UI session active - context maintained client-side":r?"LiteLLM will manage session using previous_response_id":"UI will manage session using chat history"})]})]});var e3={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M682 455V311l-76 76v68c-.1 50.7-42 92.1-94 92a95.8 95.8 0 01-52-15l-54 55c29.1 22.4 65.9 36 106 36 93.8 0 170-75.1 170-168z"}},{tag:"path",attrs:{d:"M833 446h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254-63 0-120.7-23-165-61l-54 54a334.01 334.01 0 00179 81v102H326c-13.9 0-24.9 14.3-25 32v36c.1 4.4 2.9 8 6 8h408c3.2 0 6-3.6 6-8v-36c0-17.7-11-32-25-32H547V782c165.3-17.9 294-157.9 294-328 0-4.4-3.6-8-8-8zm13.1-377.7l-43.5-41.9a8 8 0 00-11.2.1l-129 129C634.3 101.2 577 64 511 64c-93.9 0-170 75.3-170 168v224c0 6.7.4 13.3 1.2 19.8l-68 68A252.33 252.33 0 01258 454c-.2-4.4-3.8-8-8-8h-60c-4.4 0-8 3.6-8 8 0 53 12.5 103 34.6 147.4l-137 137a8.03 8.03 0 000 11.3l42.7 42.7c3.1 3.1 8.2 3.1 11.3 0L846.2 79.8l.1-.1c3.1-3.2 3-8.3-.2-11.4zM417 401V232c0-50.6 41.9-92 94-92 46 0 84.1 32.3 92.3 74.7L417 401z"}}]},name:"audio-muted",theme:"outlined"},e5=I.forwardRef(function(e,t){return I.createElement(eN.default,(0,ej.default)({},e,{ref:t,icon:e3}))}),e8=e.i(793916),e7=e.i(518617),e9=e.i(84899);let{Text:te}=P.Typography,tt=({accessToken:e,selectedModel:s,customProxyBaseUrl:r,selectedGuardrails:a})=>{let[n,i]=(0,I.useState)([]),[o,l]=(0,I.useState)(""),[c,d]=(0,I.useState)(!1),[u,h]=(0,I.useState)(!1),[p,m]=(0,I.useState)(!1),[f,y]=(0,I.useState)("alloy"),x=(0,I.useRef)(null),b=(0,I.useRef)(null),v=(0,I.useRef)(null),w=(0,I.useRef)(null);(0,I.useRef)([]),(0,I.useRef)(!1);let _=(0,I.useRef)(null),S=(0,I.useRef)(0),N=(0,I.useCallback)(()=>{_.current?.scrollIntoView({behavior:"smooth"})},[]);(0,I.useEffect)(()=>{N()},[n,N]);let E=(0,I.useCallback)((e,t)=>{i(s=>[...s,{role:e,content:t,timestamp:new Date}])},[]),C=(0,I.useCallback)(e=>{i(t=>{let s=t[t.length-1];return s&&"assistant"===s.role?[...t.slice(0,-1),{...s,content:s.content+e}]:[...t,{role:"assistant",content:e,timestamp:new Date}]})},[]),A=(0,I.useCallback)(e=>{let t=atob(e),s=new Uint8Array(t.length);for(let e=0;e{if(!x.current){if(!s)return void E("status","Please select a model first");h(!0);try{b.current=new AudioContext({sampleRate:24e3});let t=(r||(0,W.getProxyBaseUrl)()).replace(/^http/,"ws"),n=`${t}/v1/realtime?model=${encodeURIComponent(s)}`;a&&a.length>0&&(n+=`&guardrails=${encodeURIComponent(a.join(","))}`);let o=new WebSocket(n,["realtime",`openai-insecure-api-key.${e}`]);o.onopen=()=>{d(!0),h(!1),E("status","Connected to realtime API")},o.onmessage=async e=>{try{let t=e.data;t instanceof Blob?t=await t.text():t instanceof ArrayBuffer&&(t=new TextDecoder().decode(t));let s=JSON.parse(t),r=s.type;"session.created"===r?o.send(JSON.stringify({type:"session.update",session:{type:"realtime",modalities:["text","audio"],voice:f,input_audio_format:"pcm16",output_audio_format:"pcm16",input_audio_transcription:{model:"gpt-4o-mini-transcribe"},turn_detection:null}})):"session.updated"===r||("response.output_audio.delta"===r||"response.audio.delta"===r?s.delta&&A(s.delta):"response.output_text.delta"===r||"response.output_audio_transcript.delta"===r||"response.audio_transcript.delta"===r||"response.text.delta"===r?s.delta&&C(s.delta):"conversation.item.input_audio_transcription.completed"===r?s.transcript&&E("user",s.transcript):"response.done"===r?i(e=>{let t=e[e.length-1];if(t&&"assistant"===t.role&&t.content)return e;let r=s.response?.output||[],a=[];for(let e of r)for(let t of e.content||[]){let e=t.text||t.transcript;e&&a.push(e)}return a.length>0?[...e,{role:"assistant",content:a.join(""),timestamp:new Date}]:e}):"error"===r&&E("status",`Error: ${s.error?.message||JSON.stringify(s.error)}`))}catch{}},o.onerror=()=>{E("status","WebSocket error"),d(!1),h(!1)},o.onclose=()=>{E("status","Disconnected"),d(!1),h(!1),x.current=null},x.current=o}catch(e){E("status",`Connection failed: ${e.message}`),h(!1)}}},[e,s,f,r,a,E,C,A]),O=(0,I.useCallback)(()=>{M(),x.current?.close(),x.current=null,b.current?.close(),b.current=null,S.current=0,$.current=!1,d(!1)},[]),R=(0,I.useCallback)(async()=>{if(x.current&&x.current.readyState===WebSocket.OPEN){x.current.send(JSON.stringify({type:"session.update",session:{type:"realtime",modalities:["text","audio"],voice:f,input_audio_format:"pcm16",output_audio_format:"pcm16",input_audio_transcription:{model:"gpt-4o-mini-transcribe"},turn_detection:{type:"server_vad"}}}));try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});v.current=e;let t=b.current||new AudioContext({sampleRate:24e3});b.current=t;let s=t.createMediaStreamSource(e),r=t.createScriptProcessor(4096,1,1);w.current=r,r.onaudioprocess=e=>{let s;if(!x.current||x.current.readyState!==WebSocket.OPEN)return;let r=e.inputBuffer.getChannelData(0),a=t.sampleRate;if(24e3!==a){let e=a/24e3,t=Math.round(r.length/e);s=new Float32Array(t);for(let a=0;a{w.current?.disconnect(),w.current=null,v.current?.getTracks().forEach(e=>e.stop()),v.current=null,m(!1)},[]),$=(0,I.useRef)(!1),L=(0,I.useCallback)(()=>{!x.current||x.current.readyState!==WebSocket.OPEN||$.current||($.current=!0,x.current.send(JSON.stringify({type:"session.update",session:{type:"realtime",modalities:["text","audio"],voice:f,input_audio_format:"pcm16",output_audio_format:"pcm16",input_audio_transcription:{model:"gpt-4o-mini-transcribe"},turn_detection:null}})))},[f]),U=(0,I.useCallback)(()=>{if(!o.trim()||!x.current||x.current.readyState!==WebSocket.OPEN)return;let e=o.trim();E("user",e),l(""),x.current.send(JSON.stringify({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:e}]}})),x.current.send(JSON.stringify({type:"response.create"}))},[o,E,L]);return(0,I.useEffect)(()=>()=>{x.current?.close(),b.current?.close(),v.current?.getTracks().forEach(e=>e.stop())},[]),(0,t.jsxs)("div",{className:"flex flex-col h-full",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-gray-200 bg-gray-50",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(g.SoundOutlined,{className:"text-lg text-blue-500"}),(0,t.jsx)(te,{className:"font-semibold text-gray-800",children:"Realtime Voice Chat"}),(0,t.jsx)("span",{className:`inline-block w-2 h-2 rounded-full ${c?"bg-green-500":"bg-gray-300"}`}),(0,t.jsx)(te,{className:"text-xs text-gray-500",children:c?"Connected":u?"Connecting...":"Disconnected"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(T.Select,{size:"small",value:f,onChange:y,options:ed,style:{width:220},disabled:c}),c?(0,t.jsx)(j.Button,{danger:!0,onClick:O,size:"small",icon:(0,t.jsx)(e7.CloseCircleOutlined,{}),children:"Disconnect"}):(0,t.jsx)(j.Button,{type:"primary",onClick:P,loading:u,size:"small",children:"Connect"})]})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 space-y-3",children:[0===n.length&&!c&&(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center h-full text-gray-400 gap-3",children:[(0,t.jsx)(g.SoundOutlined,{style:{fontSize:48}}),(0,t.jsx)(te,{className:"text-lg text-gray-500",children:"Realtime Voice Playground"}),(0,t.jsxs)(te,{className:"text-sm text-gray-400 text-center max-w-md",children:["Click ",(0,t.jsx)("b",{children:"Connect"})," to start a realtime session. You can speak using your microphone or type messages. The AI will respond with voice and text."]})]}),n.map((e,s)=>(0,t.jsx)("div",{className:`flex ${"user"===e.role?"justify-end":"status"===e.role?"justify-center":"justify-start"}`,children:"status"===e.role?(0,t.jsx)("div",{className:"text-xs text-gray-400 italic px-3 py-1",children:e.content}):(0,t.jsxs)("div",{className:`max-w-[75%] rounded-2xl px-4 py-2.5 ${"user"===e.role?"bg-blue-500 text-white rounded-br-md":"bg-gray-100 text-gray-800 rounded-bl-md"}`,children:[(0,t.jsx)("div",{className:"text-xs font-medium mb-0.5 opacity-70",children:"user"===e.role?"You":"AI"}),(0,t.jsx)("div",{className:"text-sm whitespace-pre-wrap",children:e.content})]})},s)),(0,t.jsx)("div",{ref:_})]}),c&&(0,t.jsxs)("div",{className:"border-t border-gray-200 p-3 bg-white",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(j.Button,{shape:"circle",size:"large",type:p?"primary":"default",danger:p,icon:p?(0,t.jsx)(e5,{}):(0,t.jsx)(e8.AudioOutlined,{}),onClick:p?M:R,title:p?"Stop recording":"Start recording",className:p?"animate-pulse":""}),(0,t.jsx)(k.Input,{placeholder:"Type a message or use the mic...",value:o,onChange:e=>l(e.target.value),onPressEnter:U,className:"flex-1",size:"large"}),(0,t.jsx)(j.Button,{type:"primary",icon:(0,t.jsx)(e9.SendOutlined,{}),onClick:U,disabled:!o.trim(),size:"large"})]}),p&&(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-2 text-red-500 text-xs",children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-red-500 animate-pulse"}),"Listening — speak into your microphone. Server VAD will detect when you stop."]})]})]})};var ts=e.i(122550),tr=e.i(434166);let{TextArea:ta}=k.Input,{Dragger:tn}=O.Upload,ti=new Set([el.EndpointType.CHAT,el.EndpointType.RESPONSES,el.EndpointType.MCP]);e.s(["default",0,({accessToken:e,token:k,userRole:O,userID:Z,disabledPersonalKeyCreation:ea,proxySettings:en,simplified:ei=!1,fixedModel:ec})=>{let[eu,eh]=(0,I.useState)([]),[ep,ey]=(0,I.useState)([]),[ex,eb]=(0,I.useState)(!1),[ev,ej]=(0,I.useState)(null),[ek,eN]=(0,I.useState)(()=>{let e=sessionStorage.getItem("selectedMCPServers");try{return e?JSON.parse(e):[]}catch(e){return console.error("Error parsing selectedMCPServers from sessionStorage",e),[]}}),[eE,eC]=(0,I.useState)(!1),[eA,eP]=(0,I.useState)({}),[eO,eI]=(0,I.useState)(void 0),eR=(0,I.useRef)(null),[eM,e$]=(0,I.useState)(()=>{let e=sessionStorage.getItem("mcpServerToolRestrictions");try{return e?JSON.parse(e):{}}catch(e){return console.error("Error parsing mcpServerToolRestrictions from sessionStorage",e),{}}}),{chatHistory:eL,setChatHistory:eU,mcpEvents:eD,setMCPEvents:eq,messageTraceId:eB,setMessageTraceId:eW,responsesSessionId:eH,setResponsesSessionId:ez,useApiSessionManagement:eF,setUseApiSessionManagement:eJ,updateTextUI:eG,updateReasoningContent:eK,updateTimingData:eX,updateUsageData:eZ,updateA2AMetadata:e0,updateTotalLatency:e2,updateSearchResults:e3,handleResponseId:e5,handleToggleSessionManagement:e8,handleMCPEvent:e7,updateImageUI:e9,updateEmbeddingsUI:te,updateAudioUI:to,updateChatImageUI:tl,clearChatHistory:tc,clearMCPEvents:td}=function({simplified:e}){let[t,s]=(0,I.useState)(()=>{if(e)return[];try{let e=sessionStorage.getItem("chatHistory");return e?JSON.parse(e):[]}catch(e){return console.error("Error parsing chatHistory from sessionStorage",e),[]}}),[r,a]=(0,I.useState)([]),[n,i]=(0,I.useState)(()=>e?null:sessionStorage.getItem("messageTraceId")||null),[o,l]=(0,I.useState)(()=>e?null:sessionStorage.getItem("responsesSessionId")||null),[c,d]=(0,I.useState)(()=>{if(e)return!0;let t=sessionStorage.getItem("useApiSessionManagement");return!t||JSON.parse(t)});return(0,I.useEffect)(()=>{if(e||0===t.length)return;let s=setTimeout(()=>{sessionStorage.setItem("chatHistory",JSON.stringify(t))},500);return()=>{clearTimeout(s)}},[t,e]),(0,I.useEffect)(()=>{e||(n?sessionStorage.setItem("messageTraceId",n):sessionStorage.removeItem("messageTraceId"),o?sessionStorage.setItem("responsesSessionId",o):sessionStorage.removeItem("responsesSessionId"),sessionStorage.setItem("useApiSessionManagement",JSON.stringify(c)))},[n,o,c,e]),{chatHistory:t,setChatHistory:s,mcpEvents:r,setMCPEvents:a,messageTraceId:n,setMessageTraceId:i,responsesSessionId:o,setResponsesSessionId:l,useApiSessionManagement:c,setUseApiSessionManagement:d,updateTextUI:(e,t,r)=>{s(s=>{let a=s[s.length-1];if(!a||a.role!==e||a.isImage||a.isAudio)return[...s,{role:e,content:t,model:r}];{let e={...a,content:a.content+t,model:a.model??r};return[...s.slice(0,-1),e]}})},updateReasoningContent:e=>{s(t=>{let s=t[t.length-1];return!s||"assistant"!==s.role||s.isImage||s.isAudio?t.length>0&&"user"===t[t.length-1].role?[...t,{role:"assistant",content:"",reasoningContent:e}]:t:[...t.slice(0,t.length-1),{...s,reasoningContent:(s.reasoningContent||"")+e}]})},updateTimingData:e=>{s(t=>{let s=t[t.length-1];return s&&"assistant"===s.role?[...t.slice(0,t.length-1),{...s,timeToFirstToken:e}]:s&&"user"===s.role?[...t,{role:"assistant",content:"",timeToFirstToken:e}]:t})},updateUsageData:(e,t)=>{s(s=>{let r=s[s.length-1];if(r&&"assistant"===r.role){let a={...r,usage:e,toolName:t};return[...s.slice(0,s.length-1),a]}return s})},updateA2AMetadata:e=>{s(t=>{let s=t[t.length-1];if(s&&"assistant"===s.role){let r={...s,a2aMetadata:e};return[...t.slice(0,t.length-1),r]}return t})},updateTotalLatency:e=>{s(t=>{let s=t[t.length-1];return s&&"assistant"===s.role?[...t.slice(0,t.length-1),{...s,totalLatency:e}]:t})},updateSearchResults:e=>{s(t=>{let s=t[t.length-1];if(s&&"assistant"===s.role){let r={...s,searchResults:e};return[...t.slice(0,t.length-1),r]}return t})},handleResponseId:e=>{c&&l(e)},handleToggleSessionManagement:e=>{d(e),e||l(null)},handleMCPEvent:e=>{a(t=>e.item_id&&t.some(t=>t.item_id===e.item_id&&t.type===e.type&&(t.sequence_number===e.sequence_number||void 0===t.sequence_number&&void 0===e.sequence_number))?t:[...t,e])},updateImageUI:(e,t)=>{s(s=>[...s,{role:"assistant",content:e,model:t,isImage:!0}])},updateEmbeddingsUI:(e,t)=>{s(s=>[...s,{role:"assistant",content:(0,ts.truncateString)(e,100),model:t,isEmbeddings:!0}])},updateAudioUI:(e,t)=>{s(s=>[...s,{role:"assistant",content:e,model:t,isAudio:!0}])},updateChatImageUI:(e,t)=>{s(s=>{let r=s[s.length-1];if(!r||"assistant"!==r.role||r.isImage||r.isAudio)return[...s,{role:"assistant",content:"",model:t,image:{url:e,detail:"auto"}}];{let a={...r,image:{url:e,detail:"auto"},model:r.model??t};return[...s.slice(0,-1),a]}})},clearChatHistory:()=>{s(e=>(e.forEach(e=>{e.isAudio&&"string"==typeof e.content&&URL.revokeObjectURL(e.content)}),[])),i(null),l(null),a([]),e||(sessionStorage.removeItem("chatHistory"),sessionStorage.removeItem("messageTraceId"),sessionStorage.removeItem("responsesSessionId"))},clearMCPEvents:()=>{a([])}}}({simplified:ei}),[tu,th]=(0,I.useState)(()=>{let e=(0,tr.getSecureItem)("apiKeySource");if(e)try{return JSON.parse(e)}catch(e){console.error("Error parsing apiKeySource from sessionStorage",e)}return ea?"custom":"session"}),[tp,tm]=(0,I.useState)(()=>(0,tr.getSecureItem)("apiKey")||""),[tf,tg]=(0,I.useState)(()=>sessionStorage.getItem("customProxyBaseUrl")||""),[ty,tx]=(0,I.useState)(""),[tb,tv]=(0,I.useState)(ei?ec:void 0),[tw,t_]=(0,I.useState)(!1),[tS,tj]=(0,I.useState)([]),[tk,tN]=(0,I.useState)([]),[tE,tT]=(0,I.useState)(void 0),tC=(0,I.useRef)(null),[tA,tP]=(0,I.useState)(()=>sessionStorage.getItem("endpointType")||el.EndpointType.CHAT),[tO,tI]=(0,I.useState)(!1),tR=(0,I.useRef)(null),[tM,t$]=(0,I.useState)(()=>{let e=sessionStorage.getItem("selectedTags");try{return e?JSON.parse(e):[]}catch(e){return console.error("Error parsing selectedTags from sessionStorage",e),[]}}),[tL,tU]=(0,I.useState)(()=>{let e=sessionStorage.getItem("selectedVoice");if(!e)return"alloy";try{return JSON.parse(e)}catch{return e}}),[tD,tq]=(0,I.useState)(()=>{let e=sessionStorage.getItem("selectedVectorStores");try{return e?JSON.parse(e):[]}catch(e){return console.error("Error parsing selectedVectorStores from sessionStorage",e),[]}}),[tB,tW]=(0,I.useState)(()=>{let e=sessionStorage.getItem("selectedGuardrails");try{return e?JSON.parse(e):[]}catch(e){return console.error("Error parsing selectedGuardrails from sessionStorage",e),[]}}),[tH,tz]=(0,I.useState)(()=>{let e=sessionStorage.getItem("selectedPolicies");try{return e?JSON.parse(e):[]}catch(e){return console.error("Error parsing selectedPolicies from sessionStorage",e),[]}}),[tF,tJ]=(0,I.useState)([]),[tG,tV]=(0,I.useState)([]),[tK,tX]=(0,I.useState)(null),[tY,tQ]=(0,I.useState)(null),[tZ,t0]=(0,I.useState)(null),[t1,t2]=(0,I.useState)(null),[t4,t6]=(0,I.useState)(null),[t3,t5]=(0,I.useState)(!1),[t8,t7]=(0,I.useState)(""),[t9,se]=(0,I.useState)("openai"),[st,ss]=(0,I.useState)(1),[sr,sa]=(0,I.useState)(2048),[sn,si]=(0,I.useState)(!1),[so,sl]=(0,I.useState)(!1),sc=function(){let[e,t]=(0,I.useState)(()=>{let e=sessionStorage.getItem("codeInterpreterEnabled");return!!e&&JSON.parse(e)}),[s,r]=(0,I.useState)(null),a=(0,I.useCallback)(e=>{t(e),sessionStorage.setItem("codeInterpreterEnabled",JSON.stringify(e))},[]),n=(0,I.useCallback)(()=>{r(null)},[]),i=(0,I.useCallback)(()=>{a(!e)},[e,a]);return{enabled:e,result:s,setEnabled:a,setResult:r,clearResult:n,toggle:i}}(),sd=(0,I.useRef)(null),su=async()=>{let t="session"===tu?e:tp;if(t){eC(!0);try{let[e,s]=await Promise.all([(0,W.fetchMCPServers)(t),(0,W.fetchMCPToolsets)(t).catch(()=>[])]);eh(Array.isArray(e)?e:e.data||[]),ey(Array.isArray(s)?s:[])}catch(e){console.error("Error fetching MCP servers:",e)}finally{eC(!1)}}};(0,I.useEffect)(()=>{ei&&ec&&(tv(ec),tP(el.EndpointType.CHAT))},[ei,ec]);let sh=async t=>{let s="session"===tu?e:tp;if(s&&!eA[t])try{let e=await (0,W.listMCPTools)(s,t);eP(s=>({...s,[t]:e.tools||[]}))}catch(e){console.error(`Error fetching tools for server ${t}:`,e)}};(0,I.useEffect)(()=>{if(t3){let t=(0,e_.generateCodeSnippet)({apiKeySource:tu,accessToken:e,apiKey:tp,inputMessage:ty,chatHistory:eL,selectedTags:tM,selectedVectorStores:tD,selectedGuardrails:tB,selectedPolicies:tH,selectedMCPServers:ek,mcpServers:eu,mcpServerToolRestrictions:eM,endpointType:tA,selectedModel:tb,selectedSdk:t9,selectedVoice:tL,proxySettings:en});t7(t)}},[t3,t9,tu,e,tp,ty,eL,tM,tD,tB,tH,ek,eu,eM,tA,tb,en]),(0,I.useEffect)(()=>{try{(0,tr.setSecureItem)("apiKeySource",JSON.stringify(tu)),(0,tr.setSecureItem)("apiKey",tp)}catch{}sessionStorage.setItem("endpointType",tA),sessionStorage.setItem("selectedTags",JSON.stringify(tM)),sessionStorage.setItem("selectedVectorStores",JSON.stringify(tD)),sessionStorage.setItem("selectedGuardrails",JSON.stringify(tB)),sessionStorage.setItem("selectedPolicies",JSON.stringify(tH)),sessionStorage.setItem("selectedMCPServers",JSON.stringify(ek)),sessionStorage.setItem("mcpServerToolRestrictions",JSON.stringify(eM)),sessionStorage.setItem("selectedVoice",tL),sessionStorage.removeItem("selectedMCPTools"),ei||(tb?sessionStorage.setItem("selectedModel",tb):sessionStorage.removeItem("selectedModel"))},[ei,tu,tp,tb,tA,tM,tD,tB,tH,ek,eM,tL]),(0,I.useEffect)(()=>{let t="session"===tu?e:tp;if(!t||!k||!O||!Z)return void console.log("userApiKey or token or userRole or userID is missing = ",t,k,O,Z);let s=async()=>{try{if(!t)return void console.log("userApiKey is missing");let e=await (0,Q.fetchAvailableModels)(t);console.log("Fetched models:",e),tj(e);let s=e.some(e=>e.model_group===tb);e.length&&s||tv(void 0)}catch(e){console.error("Error fetching model info:",e)}};ei||s(),su()},[e,Z,O,tu,tp,k,ei]),(0,I.useEffect)(()=>{if(tA===el.EndpointType.MCP&&1===ek.length&&"__all__"!==ek[0]){let e=ek[0];if(e.startsWith("toolset:")){let t=e.slice(8),s=ep.find(e=>e.toolset_id===t);s&&[...new Set(s.tools.map(e=>e.server_id))].forEach(e=>{eA[e]||sh(e)})}else eA[e]||sh(e)}},[tA,ek,eA,ep]),(0,I.useEffect)(()=>{let t="session"===tu?e:tp;t&&tA===el.EndpointType.A2A_AGENTS&&(async()=>{try{let e=await (0,Y.fetchAvailableAgents)(t,tf||void 0);tN(e),tE&&!e.some(e=>e.agent_name===tE)&&tT(void 0)}catch(e){console.error("Error fetching agents:",e)}})()},[e,tu,tp,tA,tf,tE]),(0,I.useEffect)(()=>{sd.current&&setTimeout(()=>{sd.current?.scrollIntoView({behavior:"smooth",block:"end"})},100)},[eL]);let sp=e=>{tJ(t=>[...t,e]);let t=URL.createObjectURL(e),s=t.startsWith("blob:")?t:"";return tV(e=>[...e,s]),!1},sm=()=>{tG.forEach(e=>{URL.revokeObjectURL(e)}),tJ([]),tV([])},sf=()=>{tY&&URL.revokeObjectURL(tY),tX(null),tQ(null)},sg=()=>{t1&&URL.revokeObjectURL(t1),t0(null),t2(null)},sy=()=>{t6(null)},sx=async()=>{let t;if(""===ty.trim()&&tA!==el.EndpointType.TRANSCRIPTION&&tA!==el.EndpointType.MCP)return;if(tA===el.EndpointType.IMAGE_EDITS&&0===tF.length)return void B.default.fromBackend("Please upload at least one image for editing");if(tA===el.EndpointType.TRANSCRIPTION&&!t4)return void B.default.fromBackend("Please upload an audio file for transcription");if(tA===el.EndpointType.A2A_AGENTS&&!tE)return void B.default.fromBackend("Please select an agent to send a message");let s={};if(tA===el.EndpointType.MCP){let e=1===ek.length&&"__all__"!==ek[0]?ek[0]:null;if(!e)return void B.default.fromBackend("Please select an MCP server to test");if(e.startsWith("toolset:"),!eO)return void B.default.fromBackend("Please select an MCP tool to call");let t=e.startsWith("toolset:")?ep.find(t=>t.toolset_id===e.slice(8)):null,r=[];if(t?[...new Set(t.tools.map(e=>e.server_id))].forEach(e=>{r=r.concat(eA[e]||[])}):r=eA[e]||[],!r.find(e=>e.name===eO))return void B.default.fromBackend("Please wait for tool schema to load");try{s=await eR.current?.getSubmitValues()??{}}catch(e){B.default.fromBackend(e instanceof Error?e.message:"Please fill in all required parameters");return}}if([el.EndpointType.CHAT,el.EndpointType.IMAGE,el.EndpointType.SPEECH,el.EndpointType.IMAGE_EDITS,el.EndpointType.RESPONSES,el.EndpointType.ANTHROPIC_MESSAGES,el.EndpointType.EMBEDDINGS,el.EndpointType.TRANSCRIPTION,el.EndpointType.INTERACTIONS].includes(tA)&&!tb)return void B.default.fromBackend("Please select a model before sending a request");if(!k||!O||!Z)return;let r=ei||"session"===tu?e:tp;if(!r)return void B.default.fromBackend("Please provide a Virtual Key or select Current UI Session");tR.current=new AbortController;let a=tR.current.signal;if(tA===el.EndpointType.RESPONSES&&tK)try{t=await eY(ty,tK)}catch(e){B.default.fromBackend("Failed to process image. Please try again.");return}else if(tA===el.EndpointType.CHAT&&tZ)try{t=await ef(ty,tZ)}catch(e){B.default.fromBackend("Failed to process image. Please try again.");return}else t={role:"user",content:ty};let n=eB||(0,$.v4)();eB||eW(n),eU([...eL,tA===el.EndpointType.RESPONSES&&tK?eQ(ty,!0,tY||void 0,tK.name):tA===el.EndpointType.CHAT&&tZ?eg(ty,!0,t1||void 0,tZ.name):tA===el.EndpointType.TRANSCRIPTION&&t4?eQ(ty?`🎵 Audio file: ${t4.name} +Prompt: ${ty}`:`🎵 Audio file: ${t4.name}`,!1):tA===el.EndpointType.MCP&&eO?eQ(`🔧 MCP Tool: ${eO} +Arguments: ${JSON.stringify(s,null,2)}`,!1):eQ(ty,!1)]),td(),sc.clearResult(),tI(!0);try{if(tb)if(tA===el.EndpointType.CHAT){let e=[...eL.filter(e=>!e.isImage&&!e.isAudio).map(({role:e,content:t})=>({role:e,content:"string"==typeof t?t:""})),t],s=ei&&en?en.LITELLM_UI_API_DOC_BASE_URL??en.PROXY_BASE_URL??void 0:tf||void 0;await (0,K.makeOpenAIChatCompletionRequest)(e,(e,t)=>eG("assistant",e,t),tb,r,tM,a,eK,eX,eZ,n,tD.length>0?tD:void 0,tB.length>0?tB:void 0,tH.length>0?tH:void 0,ek,tl,e3,sn?st:void 0,sn?sr:void 0,e2,s,eu,eM,e7,so,ep)}else if(tA===el.EndpointType.IMAGE)await et(ty,(e,t)=>e9(e,t),tb,r,tM,a,tf||void 0);else if(tA===el.EndpointType.SPEECH)await (0,G.makeOpenAIAudioSpeechRequest)(ty,tL,(e,t)=>to(e,t),tb||"",r,tM,a,void 0,void 0,tf||void 0);else if(tA===el.EndpointType.IMAGE_EDITS)tF.length>0&&await ee(1===tF.length?tF[0]:tF,ty,(e,t)=>e9(e,t),tb,r,tM,a,tf||void 0);else if(tA===el.EndpointType.RESPONSES){let e;e=eF&&eH?[t]:[...eL.filter(e=>!e.isImage&&!e.isAudio).map(({role:e,content:t})=>({role:e,content:t})),t],await (0,es.makeOpenAIResponsesRequest)(e,(e,t,s)=>eG(e,t,s),tb,r,tM,a,eK,eX,eZ,n,tD.length>0?tD:void 0,tB.length>0?tB:void 0,tH.length>0?tH:void 0,ek,eF?eH:null,e5,e7,sc.enabled,sc.setResult,tf||void 0,eu,eM,ep)}else if(tA===el.EndpointType.ANTHROPIC_MESSAGES){let e=[...eL.filter(e=>!e.isImage&&!e.isAudio).map(({role:e,content:t})=>({role:e,content:t})),t];await (0,J.makeAnthropicMessagesRequest)(e,(e,t,s)=>eG(e,t,s),tb,r,tM,a,eK,eX,eZ,n,tD.length>0?tD:void 0,tB.length>0?tB:void 0,tH.length>0?tH:void 0,ek,tf||void 0)}else tA===el.EndpointType.EMBEDDINGS?await (0,X.makeOpenAIEmbeddingsRequest)(ty,(e,t)=>te(e,t),tb,r,tM,tf||void 0):tA===el.EndpointType.TRANSCRIPTION?t4&&await (0,V.makeOpenAIAudioTranscriptionRequest)(t4,(e,t)=>eG("assistant",e,t),tb,r,tM,a,void 0,void 0,void 0,void 0,tf||void 0):tA===el.EndpointType.INTERACTIONS&&await er(ty,(e,t)=>eG("assistant",e,t),tb,r,tM,a,tf||void 0);if(tA===el.EndpointType.MCP){let e=1===ek.length&&"__all__"!==ek[0]?ek[0]:null,t=e;if(e?.startsWith("toolset:")){let s=e.slice(8),r=ep.find(e=>e.toolset_id===s),a=r?.tools.find(e=>e.tool_name===eO);t=a?.server_id??e}if(t&&!t.startsWith("toolset:")&&eO){let e=await (0,W.callMCPTool)(r,t,eO,s,tB.length>0?{guardrails:tB}:void 0),a=e?.content?.length>0?JSON.stringify(e.content.map(e=>"text"===e.type?e.text:e).filter(Boolean),null,2):JSON.stringify(e,null,2);eG("assistant",a||"Tool executed successfully.")}}tA===el.EndpointType.A2A_AGENTS&&tE&&await (0,F.makeA2ASendMessageRequest)(tE,ty,(e,t)=>eG("assistant",e,t),r,a,eX,e2,e0,tf||void 0,tB.length>0?tB:void 0)}catch(e){a.aborted?console.log("Request was cancelled"):(console.error("Error fetching response",e),eG("assistant","Error fetching response:"+e))}finally{tI(!1),tR.current=null,tA===el.EndpointType.IMAGE_EDITS&&sm(),tA===el.EndpointType.RESPONSES&&tK&&sf(),tA===el.EndpointType.CHAT&&tZ&&sg(),tA===el.EndpointType.TRANSCRIPTION&&t4&&sy()}tx("")};if(O&&"Admin Viewer"===O){let{Title:e,Paragraph:s}=P.Typography;return(0,t.jsxs)("div",{children:[(0,t.jsx)(e,{level:1,children:"Access Denied"}),(0,t.jsx)(s,{children:"Ask your proxy admin for access to test models"})]})}let sb=(0,t.jsx)(u.LoadingOutlined,{style:{fontSize:24},spin:!0});return(0,t.jsxs)("div",{className:`w-full bg-white ${ei?"h-full flex flex-col":"p-4 pb-0"}`,children:[(0,t.jsx)(b.Card,{className:`w-full rounded-xl shadow-md overflow-hidden ${ei?"h-full flex flex-col":""}`,children:(0,t.jsxs)("div",{className:`flex w-full gap-4 ${ei?"h-full":"h-[80vh]"}`,children:[!ei&&(0,t.jsxs)("div",{className:"w-1/4 p-4 bg-gray-50 overflow-y-auto",children:[(0,t.jsx)(_.Title,{className:"text-xl font-semibold mb-6 mt-2",children:"Configurations"}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)(v.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(c.KeyOutlined,{className:"mr-2"})," Virtual Key Source"]}),(0,t.jsx)(T.Select,{disabled:ea,value:tu,style:{width:"100%"},onChange:e=>{th(e)},options:[{value:"session",label:"Current UI Session"},{value:"custom",label:"Virtual Key"}],className:"rounded-md"}),"custom"===tu&&(0,t.jsx)(w.TextInput,{className:"mt-2",placeholder:"Enter custom Virtual Key",type:"password",onValueChange:tm,value:tp,icon:c.KeyOutlined})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsxs)(v.Text,{className:"font-medium block text-gray-700 flex items-center",children:[(0,t.jsx)(f.SettingOutlined,{className:"mr-2"})," Custom Proxy Base URL"]}),en?.LITELLM_UI_API_DOC_BASE_URL&&!tf&&(0,t.jsx)(j.Button,{type:"link",size:"small",icon:(0,t.jsx)(d.LinkOutlined,{}),onClick:()=>{tg(en.LITELLM_UI_API_DOC_BASE_URL||""),sessionStorage.setItem("customProxyBaseUrl",en.LITELLM_UI_API_DOC_BASE_URL||"")},className:"text-gray-500 hover:text-gray-700",children:"Fill"}),tf&&(0,t.jsx)(j.Button,{type:"link",size:"small",icon:(0,t.jsx)(a.ClearOutlined,{}),onClick:()=>{tg(""),sessionStorage.removeItem("customProxyBaseUrl")},className:"text-gray-500 hover:text-gray-700",children:"Clear"})]}),(0,t.jsx)(w.TextInput,{placeholder:"Optional: Enter custom proxy URL (e.g., http://localhost:5000)",onValueChange:e=>{tg(e),sessionStorage.setItem("customProxyBaseUrl",e)},value:tf,icon:s.ApiOutlined}),tf&&(0,t.jsxs)(v.Text,{className:"text-xs text-gray-500 mt-1",children:["API calls will be sent to: ",tf]})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(v.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(s.ApiOutlined,{className:"mr-2"})," Endpoint Type"]}),(0,t.jsx)(eS,{endpointType:tA,onEndpointChange:e=>{tP(e),tv(void 0),tT(void 0),t_(!1),eI(void 0),e===el.EndpointType.MCP&&eN(e=>1===e.length&&"__all__"!==e[0]?e:[]);try{sessionStorage.removeItem("selectedModel"),sessionStorage.removeItem("selectedAgent")}catch{}},className:"mb-4"}),tA===el.EndpointType.SPEECH&&(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsxs)(v.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(g.SoundOutlined,{className:"mr-2"}),"Voice"]}),(0,t.jsx)(T.Select,{value:tL,onChange:e=>{tU(e),sessionStorage.setItem("selectedVoice",e)},style:{width:"100%"},className:"rounded-md",options:ed})]}),(0,t.jsx)(e6,{endpointType:tA,responsesSessionId:eH,useApiSessionManagement:eF,onToggleSessionManagement:e8})]}),tA!==el.EndpointType.A2A_AGENTS&&tA!==el.EndpointType.MCP&&(0,t.jsxs)("div",{children:[(0,t.jsxs)(v.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center justify-between",children:[(0,t.jsxs)("span",{className:"flex items-center",children:[(0,t.jsx)(p.RobotOutlined,{className:"mr-2"})," Select Model"]}),(()=>{if(!tb||"custom"===tb)return!1;let e=tS.find(e=>e.model_group===tb);return!!e&&(!e.mode||"chat"===e.mode)})()?(0,t.jsx)(E.Popover,{content:(0,t.jsx)(eo,{temperature:st,maxTokens:sr,useAdvancedParams:sn,onTemperatureChange:ss,onMaxTokensChange:sa,onUseAdvancedParamsChange:si,mockTestFallbacks:so,onMockTestFallbacksChange:sl}),title:"Model Settings",trigger:"click",placement:"right",children:(0,t.jsx)(j.Button,{type:"text",size:"small",icon:(0,t.jsx)(f.SettingOutlined,{}),className:"text-gray-500 hover:text-gray-700","aria-label":"Model Settings","data-testid":"model-settings-button"})}):(0,t.jsx)(A.Tooltip,{title:"Advanced parameters are only supported for chat models currently",children:(0,t.jsx)(j.Button,{type:"text",size:"small",icon:(0,t.jsx)(f.SettingOutlined,{}),className:"text-gray-300 cursor-not-allowed",disabled:!0})})]}),(0,t.jsx)(T.Select,{value:tb,placeholder:"Select a Model",onChange:e=>{console.log(`selected ${e}`),tv(e),t_("custom"===e)},options:[{value:"custom",label:"Enter custom model",key:"custom"},...Array.from(new Set(tS.filter(e=>{if(!e.mode)return!0;let t=(0,el.getEndpointType)(e.mode);return tA===el.EndpointType.RESPONSES||tA===el.EndpointType.ANTHROPIC_MESSAGES||tA===el.EndpointType.INTERACTIONS?t===tA||t===el.EndpointType.CHAT:tA===el.EndpointType.IMAGE_EDITS?t===tA||t===el.EndpointType.IMAGE:t===tA}).map(e=>e.model_group))).map((e,t)=>({value:e,label:e,key:t}))],style:{width:"100%"},showSearch:!0,className:"rounded-md"}),tw&&(0,t.jsx)(w.TextInput,{className:"mt-2",placeholder:"Enter custom model name",onValueChange:e=>{tC.current&&clearTimeout(tC.current),tC.current=setTimeout(()=>{tv(e)},500)}})]}),tA===el.EndpointType.A2A_AGENTS&&(0,t.jsxs)("div",{children:[(0,t.jsxs)(v.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(p.RobotOutlined,{className:"mr-2"})," Select Agent"]}),(0,t.jsx)(T.Select,{value:tE,placeholder:"Select an Agent",onChange:e=>tT(e),options:tk.map(e=>({value:e.agent_name,label:e.agent_name||e.agent_id,key:e.agent_id})),style:{width:"100%"},showSearch:!0,className:"rounded-md",optionLabelProp:"label",children:tk.map(e=>(0,t.jsx)(T.Select.Option,{value:e.agent_name,label:e.agent_name||e.agent_id,children:(0,t.jsxs)("div",{className:"flex flex-col py-1",children:[(0,t.jsx)("span",{className:"font-medium",children:e.agent_name||e.agent_id}),e.agent_card_params?.description&&(0,t.jsx)("span",{className:"text-xs text-gray-500 mt-1",children:e.agent_card_params.description})]})},e.agent_id))}),0===tk.length&&(0,t.jsx)(v.Text,{className:"text-xs text-gray-500 mt-2 block",children:"No agents found. Create agents via /v1/agents endpoint."})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(v.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(y.TagsOutlined,{className:"mr-2"})," Tags"]}),(0,t.jsx)(H.default,{value:tM,onChange:t$,className:"mb-4",accessToken:e||""})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(v.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(x.ToolOutlined,{className:"mr-2"}),tA===el.EndpointType.MCP?"MCP Server":"MCP Servers",(0,t.jsx)(A.Tooltip,{className:"ml-1",title:tA===el.EndpointType.MCP?"Select an MCP server or toolset to test tools directly.":"Select MCP servers or toolsets to use in your conversation.",children:(0,t.jsx)(l.InfoCircleOutlined,{className:"cursor-pointer",onClick:()=>eb(!0)})})]}),(0,t.jsxs)(T.Select,{mode:tA===el.EndpointType.MCP?void 0:"multiple",style:{width:"100%"},placeholder:tA===el.EndpointType.MCP?"Select MCP server":"Select MCP servers",value:tA===el.EndpointType.MCP?"__all__"!==ek[0]&&1===ek.length?ek[0]:void 0:ek,onChange:e=>{tA===el.EndpointType.MCP?(eN(e?[e]:[]),eI(void 0),e&&!eA[e]&&sh(e)):e.includes("__all__")?(eN(["__all__"]),e$({})):(eN(e),e$(t=>{let s={...t};return Object.keys(s).forEach(t=>{e.includes(t)||delete s[t]}),s}),e.forEach(e=>{eA[e]||sh(e)}))},loading:eE,className:"mb-2",allowClear:!0,showSearch:!0,optionLabelProp:"label",disabled:!ti.has(tA),maxTagCount:tA===el.EndpointType.MCP?1:"responsive",filterOption:(e,t)=>{if(t?.value==="__all__")return"all mcp servers".includes(e.toLowerCase());let s=t?.value;if(s?.startsWith("toolset:")){let t=s.slice(8),r=ep.find(e=>e.toolset_id===t);return!!r&&[r.toolset_name,r.description].filter(Boolean).join(" ").toLowerCase().includes(e.toLowerCase())}let r=eu.find(e=>e.server_id===s);return!!r&&[r.server_name,r.alias,r.server_id,r.description].filter(Boolean).join(" ").toLowerCase().includes(e.toLowerCase())},children:[tA!==el.EndpointType.MCP&&(0,t.jsx)(T.Select.Option,{value:"__all__",label:"All MCP Servers",children:(0,t.jsxs)("div",{className:"flex flex-col py-1",children:[(0,t.jsx)("span",{className:"font-medium",children:"All MCP Servers"}),(0,t.jsx)("span",{className:"text-xs text-gray-500 mt-1",children:"Use all available MCP servers"})]})},"__all__"),ep.length>0&&(0,t.jsx)(T.Select.OptGroup,{label:"Toolsets",children:ep.map(e=>(0,t.jsx)(T.Select.Option,{value:`toolset:${e.toolset_id}`,label:e.toolset_name,disabled:tA!==el.EndpointType.MCP&&ek.includes("__all__"),children:(0,t.jsxs)("div",{className:"flex flex-col py-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"font-medium",children:e.toolset_name}),(0,t.jsx)("span",{className:"text-xs px-1 rounded",style:{background:"#ede9fe",color:"#7c3aed"},children:"Toolset"}),(0,t.jsxs)("span",{className:"text-xs text-gray-500",children:["(",e.tools.length," tools)"]})]}),e.description&&(0,t.jsx)("span",{className:"text-xs text-gray-500 mt-1",children:e.description})]})},`toolset:${e.toolset_id}`))}),eu.length>0&&(0,t.jsx)(T.Select.OptGroup,{label:"Servers",children:eu.map(e=>(0,t.jsx)(T.Select.Option,{value:e.server_id,label:e.alias||e.server_name||e.server_id,disabled:tA!==el.EndpointType.MCP&&ek.includes("__all__"),children:(0,t.jsxs)("div",{className:"flex flex-col py-1",children:[(0,t.jsx)("span",{className:"font-medium",children:e.alias||e.server_name||e.server_id}),e.description&&(0,t.jsx)("span",{className:"text-xs text-gray-500 mt-1",children:e.description})]})},e.server_id))})]}),tA===el.EndpointType.MCP&&1===ek.length&&"__all__"!==ek[0]&&(()=>{let e=ek[0],s=e.startsWith("toolset:"),r=[];if(s){let t=e.slice(8),s=ep.find(e=>e.toolset_id===t);s&&(r=s.tools.map(e=>({value:e.tool_name,label:e.tool_name})))}else r=(eA[e]||[]).map(e=>({value:e.name,label:e.name}));return(0,t.jsxs)("div",{className:"mt-3",children:[(0,t.jsx)(v.Text,{className:"text-xs text-gray-600 mb-1 block",children:"Select Tool"}),(0,t.jsx)(T.Select,{style:{width:"100%"},placeholder:"Select a tool to call",value:eO,onChange:e=>eI(e),options:r,allowClear:!0,className:"rounded-md"})]})})(),ek.length>0&&!ek.includes("__all__")&&tA!==el.EndpointType.MCP&&ti.has(tA)&&(0,t.jsx)("div",{className:"mt-3 space-y-2",children:ek.map(e=>{let s=eu.find(t=>t.server_id===e),r=eA[e]||[];return 0===r.length?null:(0,t.jsxs)("div",{className:"border rounded p-2",children:[(0,t.jsxs)(v.Text,{className:"text-xs text-gray-600 mb-1",children:["Limit tools for ",s?.alias||s?.server_name||e,":"]}),(0,t.jsx)(T.Select,{mode:"multiple",size:"small",style:{width:"100%"},placeholder:"All tools (default)",value:eM[e]||[],onChange:t=>{e$(s=>({...s,[e]:t}))},options:r.map(e=>({value:e.name,label:e.name})),maxTagCount:2})]},e)})}),ek.length>0&&!ek.includes("__all__")&&ek.some(e=>{let t=eu.find(t=>t.server_id===e);return t?.is_byok})&&(0,t.jsx)("div",{className:"mt-3 space-y-2",children:ek.map(e=>{let s=eu.find(t=>t.server_id===e);if(!s?.is_byok)return null;let r=s.alias||s.server_name||e;return(0,t.jsxs)("div",{className:"border border-blue-100 rounded p-2 bg-blue-50 flex items-center justify-between",children:[(0,t.jsxs)(v.Text,{className:"text-xs text-blue-700",children:[r," requires your API key"]}),s.has_user_credential?(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"text-green-600 text-xs font-medium flex items-center gap-1",children:[(0,t.jsx)(c.KeyOutlined,{})," Connected"]}),(0,t.jsx)("button",{className:"text-xs text-gray-400 hover:text-blue-500 underline",onClick:()=>ej(s),children:"Reconnect"})]}):(0,t.jsx)("button",{className:"text-xs bg-blue-500 hover:bg-blue-600 text-white px-3 py-1 rounded-lg font-medium",onClick:()=>ej(s),children:"Connect"})]},e)})})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(v.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(i.DatabaseOutlined,{className:"mr-2"})," Vector Store",(0,t.jsx)(A.Tooltip,{className:"ml-1",title:(0,t.jsxs)("span",{children:["Select vector store(s) to use for this LLM API call. You can set up your vector store"," ",(0,t.jsx)("a",{href:"?page=vector-stores",style:{color:"#1890ff"},children:"here"}),"."]}),children:(0,t.jsx)(l.InfoCircleOutlined,{})})]}),(0,t.jsx)(z.default,{value:tD,onChange:tq,className:"mb-4",accessToken:e||""})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(v.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(m.SafetyOutlined,{className:"mr-2"})," Guardrails",(0,t.jsx)(A.Tooltip,{className:"ml-1",title:(0,t.jsxs)("span",{children:["Select guardrail(s) to use for this LLM API call. You can set up your guardrails"," ",(0,t.jsx)("a",{href:"?page=guardrails",style:{color:"#1890ff"},children:"here"}),"."]}),children:(0,t.jsx)(l.InfoCircleOutlined,{})})]}),(0,t.jsx)(L.default,{value:tB,onChange:tW,className:"mb-4",accessToken:e||""})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(v.Text,{className:"font-medium block mb-2 text-gray-700 flex items-center",children:[(0,t.jsx)(m.SafetyOutlined,{className:"mr-2"})," Policies",(0,t.jsx)(A.Tooltip,{className:"ml-1",title:(0,t.jsxs)("span",{children:["Select policy/policies to apply to this LLM API call. Policies define which guardrails are applied based on conditions. You can set up your policies"," ",(0,t.jsx)("a",{href:"?page=policies",style:{color:"#1890ff"},children:"here"}),"."]}),children:(0,t.jsx)(l.InfoCircleOutlined,{})})]}),(0,t.jsx)(U.default,{value:tH,onChange:tz,className:"mb-4",accessToken:e||""})]}),tA===el.EndpointType.RESPONSES&&(0,t.jsx)("div",{children:(0,t.jsx)(ew,{accessToken:"session"===tu?e||"":tp,enabled:sc.enabled,onEnabledChange:sc.setEnabled,selectedContainerId:null,onContainerChange:()=>{},selectedModel:tb||""})})]})]}),(0,t.jsx)("div",{className:`flex flex-col bg-white ${ei?"flex-1 w-full":"w-3/4"}`,children:tA===el.EndpointType.REALTIME?(0,t.jsx)(tt,{accessToken:"session"===tu?e||"":tp,selectedModel:tb||"",customProxyBaseUrl:tf||void 0,selectedGuardrails:tB.length>0?tB:void 0}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"p-4 border-b border-gray-200 flex justify-between items-center",children:[(0,t.jsx)(_.Title,{className:"text-xl font-semibold mb-0",children:ei?"Chat":"Test Key"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(S.Button,{onClick:()=>{tc(),sm(),sf(),sg(),sy(),B.default.success("Chat history cleared.")},className:"bg-gray-100 hover:bg-gray-200 text-gray-700 border-gray-300",icon:a.ClearOutlined,children:"Clear Chat"}),!ei&&(0,t.jsx)(S.Button,{onClick:()=>t5(!0),className:"bg-gray-100 hover:bg-gray-200 text-gray-700 border-gray-300",icon:n.CodeOutlined,children:"Get Code"})]})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-auto p-4 pb-0",children:[0===eL.length&&(0,t.jsxs)("div",{className:"h-full flex flex-col items-center justify-center text-gray-400",children:[(0,t.jsx)(p.RobotOutlined,{style:{fontSize:"48px",marginBottom:"16px"}}),(0,t.jsx)(v.Text,{children:"Start a conversation, generate an image, or handle audio"})]}),eL.map((s,r)=>(0,t.jsx)("div",{children:(0,t.jsx)(e1,{message:s,isLastMessage:r===eL.length-1,endpointType:tA,mcpEvents:eD,codeInterpreterResult:sc.result,accessToken:"session"===tu?e||"":tp})},r)),tO&&eD.length>0&&(tA===el.EndpointType.RESPONSES||tA===el.EndpointType.CHAT)&&eL.length>0&&"user"===eL[eL.length-1].role&&(0,t.jsx)("div",{className:"text-left mb-4",children:(0,t.jsxs)("div",{className:"inline-block max-w-[80%] rounded-lg shadow-sm p-3.5 px-4",style:{backgroundColor:"#ffffff",border:"1px solid #f0f0f0",textAlign:"left"},children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-1.5",children:[(0,t.jsx)("div",{className:"flex items-center justify-center w-6 h-6 rounded-full mr-1",style:{backgroundColor:"#f5f5f5"},children:(0,t.jsx)(p.RobotOutlined,{style:{fontSize:"12px",color:"#4b5563"}})}),(0,t.jsx)("strong",{className:"text-sm capitalize",children:"Assistant"})]}),(0,t.jsx)(eV.default,{events:eD})]})}),tO&&(0,t.jsx)("div",{className:"flex justify-center items-center my-4",children:(0,t.jsx)(C.Spin,{indicator:sb})}),(0,t.jsx)("div",{ref:sd,style:{height:"1px"}})]}),(0,t.jsxs)("div",{className:"p-4 border-t border-gray-200 bg-white",children:[tA===el.EndpointType.IMAGE_EDITS&&(0,t.jsx)("div",{className:"mb-4",children:0===tF.length?(0,t.jsxs)(tn,{beforeUpload:sp,accept:"image/*",showUploadList:!1,children:[(0,t.jsx)("p",{className:"ant-upload-drag-icon",children:(0,t.jsx)(h.PictureOutlined,{style:{fontSize:"24px",color:"#666"}})}),(0,t.jsx)("p",{className:"ant-upload-text text-sm",children:"Click or drag images to upload"}),(0,t.jsx)("p",{className:"ant-upload-hint text-xs text-gray-500",children:"Support for PNG, JPG, JPEG formats. Multiple images supported."})]}):(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[tF.map((e,s)=>(0,t.jsxs)("div",{className:"relative inline-block",children:[(0,t.jsx)("img",{src:(()=>{let e=tG[s];if(!e)return"";try{let t=new URL(e);return"blob:"===t.protocol?t.href:""}catch{return""}})(),alt:`Upload preview ${s+1}`,className:"max-w-32 max-h-32 rounded-md border border-gray-200 object-cover"}),(0,t.jsx)("button",{className:"absolute top-1 right-1 bg-white shadow-sm border border-gray-200 rounded px-1 py-1 text-red-500 hover:bg-red-50 text-xs",onClick:()=>{tG[s]&&URL.revokeObjectURL(tG[s]),tJ(e=>e.filter((e,t)=>t!==s)),tV(e=>e.filter((e,t)=>t!==s))},children:(0,t.jsx)(o.DeleteOutlined,{})})]},s)),(0,t.jsxs)("div",{className:"flex items-center justify-center w-32 h-32 border-2 border-dashed border-gray-300 rounded-md hover:border-gray-400 cursor-pointer",onClick:()=>document.getElementById("additional-image-upload")?.click(),children:[(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)(h.PictureOutlined,{style:{fontSize:"24px",color:"#666"}}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:"Add more"})]}),(0,t.jsx)("input",{id:"additional-image-upload",type:"file",accept:"image/*",multiple:!0,style:{display:"none"},onChange:e=>{Array.from(e.target.files||[]).forEach(e=>sp(e))}})]})]})}),tA===el.EndpointType.TRANSCRIPTION&&(0,t.jsx)("div",{className:"mb-4",children:t4?(0,t.jsxs)("div",{className:"flex items-center gap-3 p-3 bg-gray-50 rounded-lg border border-gray-200",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-1",children:[(0,t.jsx)(g.SoundOutlined,{style:{fontSize:"20px",color:"#666"}}),(0,t.jsx)("span",{className:"text-sm font-medium",children:t4.name}),(0,t.jsxs)("span",{className:"text-xs text-gray-500",children:["(",(t4.size/1024/1024).toFixed(2)," MB)"]})]}),(0,t.jsxs)("button",{className:"bg-white shadow-sm border border-gray-200 rounded px-2 py-1 text-red-500 hover:bg-red-50 text-xs",onClick:sy,children:[(0,t.jsx)(o.DeleteOutlined,{})," Remove"]})]}):(0,t.jsxs)(tn,{beforeUpload:e=>(t6(e),!1),accept:"audio/*,.mp3,.mp4,.mpeg,.mpga,.m4a,.wav,.webm",showUploadList:!1,children:[(0,t.jsx)("p",{className:"ant-upload-drag-icon",children:(0,t.jsx)(g.SoundOutlined,{style:{fontSize:"24px",color:"#666"}})}),(0,t.jsx)("p",{className:"ant-upload-text text-sm",children:"Click or drag audio file to upload"}),(0,t.jsx)("p",{className:"ant-upload-hint text-xs text-gray-500",children:"Support for MP3, MP4, MPEG, MPGA, M4A, WAV, WEBM formats. Max file size: 25 MB."})]})}),tA===el.EndpointType.RESPONSES&&tK&&(0,t.jsx)(eT,{file:tK,previewUrl:tY,onRemove:sf}),tA===el.EndpointType.CHAT&&tZ&&(0,t.jsx)(eT,{file:tZ,previewUrl:t1,onRemove:sg}),tA===el.EndpointType.RESPONSES&&sc.enabled&&(0,t.jsxs)("div",{className:"mb-2 space-y-2",children:[(0,t.jsxs)("div",{className:"px-3 py-2 bg-gradient-to-r from-blue-50 to-purple-50 rounded-lg border border-blue-200 flex items-center justify-between",children:[(0,t.jsx)("div",{className:"flex items-center gap-2",children:tO?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.LoadingOutlined,{className:"text-blue-500",spin:!0}),(0,t.jsx)("span",{className:"text-sm text-blue-700 font-medium",children:"Running Python code..."})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.CodeOutlined,{className:"text-blue-500"}),(0,t.jsx)("span",{className:"text-sm text-blue-700 font-medium",children:"Code Interpreter Active"})]})}),(0,t.jsx)("button",{className:"text-xs text-blue-500 hover:text-blue-700",onClick:()=>sc.setEnabled(!1),children:"Disable"})]}),!tO&&(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:["Generate sample sales data CSV and create a chart","Create a PNG bar chart comparing AI gateway providers including LiteLLM","Generate a CSV of LLM pricing data and visualize it as a line chart"].map((e,s)=>(0,t.jsx)("button",{className:"text-xs px-3 py-1.5 bg-white border border-gray-200 rounded-full hover:bg-blue-50 hover:border-blue-300 hover:text-blue-600 transition-colors",onClick:()=>tx(e),children:e},s))})]}),0===eL.length&&!tO&&tA!==el.EndpointType.MCP&&(0,t.jsx)("div",{className:"flex items-center gap-2 mb-3 overflow-x-auto",children:(tA===el.EndpointType.A2A_AGENTS?["What can you help me with?","Tell me about yourself","What tasks can you perform?"]:["Write me a poem","Explain quantum computing","Draft a polite email requesting a meeting"]).map(e=>(0,t.jsx)("button",{type:"button",className:"shrink-0 rounded-full border border-gray-200 px-3 py-1 text-xs font-medium text-gray-600 transition-colors hover:bg-blue-50 hover:border-blue-300 hover:text-blue-600 cursor-pointer",onClick:()=>tx(e),children:e},e))}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("div",{className:"flex items-center flex-1 bg-white border border-gray-300 rounded-xl px-3 py-1 min-h-[44px]",children:[(0,t.jsxs)("div",{className:"flex-shrink-0 mr-2 flex items-center gap-1",children:[tA===el.EndpointType.RESPONSES&&!tK&&(0,t.jsx)(e4,{responsesUploadedImage:tK,responsesImagePreviewUrl:tY,onImageUpload:e=>(tX(e),tQ(URL.createObjectURL(e)),!1),onRemoveImage:sf}),tA===el.EndpointType.CHAT&&!tZ&&(0,t.jsx)(em,{chatUploadedImage:tZ,chatImagePreviewUrl:t1,onImageUpload:e=>(t0(e),t2(URL.createObjectURL(e)),!1),onRemoveImage:sg}),tA===el.EndpointType.RESPONSES&&(0,t.jsx)(A.Tooltip,{title:sc.enabled?"Code Interpreter enabled (click to disable)":"Enable Code Interpreter",children:(0,t.jsx)("button",{className:`p-1.5 rounded-md transition-colors ${sc.enabled?"bg-blue-100 text-blue-600":"text-gray-400 hover:text-gray-600 hover:bg-gray-100"}`,onClick:()=>{sc.toggle(),sc.enabled||B.default.success("Code Interpreter enabled!")},children:(0,t.jsx)(n.CodeOutlined,{style:{fontSize:"16px"}})})})]}),tA===el.EndpointType.MCP&&1===ek.length&&"__all__"!==ek[0]&&eO?(0,t.jsx)("div",{className:"flex-1 overflow-y-auto max-h-48 min-h-[44px] p-2 border border-gray-200 rounded-lg bg-gray-50/50",children:(()=>{let e=ek[0],s=[];if(e.startsWith("toolset:")){let t=e.slice(8),r=ep.find(e=>e.toolset_id===t);r&&[...new Set(r.tools.map(e=>e.server_id))].forEach(e=>{s=s.concat(eA[e]||[])})}else s=eA[e]||[];let r=s.find(e=>e.name===eO);return r?(0,t.jsx)(D.default,{ref:eR,tool:r,className:"space-y-2"}):(0,t.jsx)("div",{className:"flex items-center justify-center h-10 text-sm text-gray-500",children:"Loading tool schema..."})})()}):(0,t.jsx)(ta,{value:ty,onChange:e=>tx(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),sx())},placeholder:tA===el.EndpointType.CHAT||tA===el.EndpointType.EMBEDDINGS||tA===el.EndpointType.RESPONSES||tA===el.EndpointType.ANTHROPIC_MESSAGES||tA===el.EndpointType.INTERACTIONS?"Type your message... (Shift+Enter for new line)":tA===el.EndpointType.A2A_AGENTS?"Send a message to the A2A agent...":tA===el.EndpointType.IMAGE_EDITS?"Describe how you want to edit the image...":tA===el.EndpointType.SPEECH?"Enter text to convert to speech...":tA===el.EndpointType.TRANSCRIPTION?"Optional: Add context or prompt for transcription...":"Describe the image you want to generate...",disabled:tO,className:"flex-1",autoSize:{minRows:1,maxRows:4},style:{resize:"none",border:"none",boxShadow:"none",background:"transparent",padding:"4px 0",fontSize:"14px",lineHeight:"20px"}}),(0,t.jsx)(S.Button,{onClick:sx,disabled:tO||(tA===el.EndpointType.MCP?!(1===ek.length&&"__all__"!==ek[0]&&eO):tA===el.EndpointType.TRANSCRIPTION?!t4:!ty.trim()),className:"flex-shrink-0 ml-2 !w-8 !h-8 !min-w-8 !p-0 !rounded-full !bg-blue-600 hover:!bg-blue-700 disabled:!bg-gray-300 !border-none !text-white disabled:!text-gray-500 !flex !items-center !justify-center",children:(0,t.jsx)(r.ArrowUpOutlined,{style:{fontSize:"14px"}})})]}),tO&&(0,t.jsx)(S.Button,{onClick:()=>{tR.current&&(tR.current.abort(),tR.current=null,tI(!1),B.default.info("Request cancelled"))},className:"bg-red-50 hover:bg-red-100 text-red-600 border-red-200",icon:o.DeleteOutlined,children:"Cancel"})]})]})]})})]})}),(0,t.jsxs)(N.Modal,{title:"Generated Code",open:t3,onCancel:()=>t5(!1),footer:null,width:800,children:[(0,t.jsxs)("div",{className:"flex justify-between items-end my-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(v.Text,{className:"font-medium block mb-1 text-gray-700",children:"SDK Type"}),(0,t.jsx)(T.Select,{value:t9,onChange:e=>se(e),style:{width:150},options:[{value:"openai",label:"OpenAI SDK"},{value:"azure",label:"Azure SDK"}]})]}),(0,t.jsx)(j.Button,{onClick:()=>{navigator.clipboard.writeText(t8),B.default.success("Copied to clipboard!")},children:"Copy to Clipboard"})]}),(0,t.jsx)(R.Prism,{language:"python",style:M.coy,wrapLines:!0,wrapLongLines:!0,className:"rounded-md",customStyle:{maxHeight:"60vh",overflowY:"auto"},children:t8})]}),ev&&(0,t.jsx)(q.ByokCredentialModal,{server:ev,open:!!ev,onClose:()=>ej(null),onSuccess:e=>{su(),ej(null)},accessToken:e||""}),(0,t.jsx)(N.Modal,{title:"How Toolsets Work",open:ex,onCancel:()=>eb(!1),footer:[(0,t.jsx)(j.Button,{onClick:()=>eb(!1),children:"Close"},"close")],width:600,children:(0,t.jsxs)("div",{className:"space-y-4 py-2",children:[(0,t.jsxs)("p",{className:"text-gray-700",children:[(0,t.jsx)("strong",{children:"Toolsets"})," are named collections of specific tools from one or more MCP servers. Instead of exposing all tools from a server, a toolset gives an agent exactly the tools it needs."]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"font-semibold text-gray-800 mb-2",children:"How to use a toolset:"}),(0,t.jsxs)("ol",{className:"list-decimal list-inside space-y-2 text-gray-700",children:[(0,t.jsxs)("li",{children:["Select a ",(0,t.jsx)("span",{style:{color:"#7c3aed",fontWeight:600},children:"Toolset"})," (purple badge) from the MCP Servers dropdown."]}),(0,t.jsx)("li",{children:"The tool picker will show only the tools included in that toolset."}),(0,t.jsx)("li",{children:"Select a tool and fill in its parameters, then send."}),(0,t.jsx)("li",{children:"The tool call is routed to the correct underlying MCP server automatically."})]})]}),(0,t.jsx)("div",{className:"bg-purple-50 border border-purple-200 rounded p-3",children:(0,t.jsxs)("p",{className:"text-sm text-purple-800",children:[(0,t.jsx)("strong",{children:"Example:"}),' A "GitHub Read-only" toolset might include only ',(0,t.jsx)("code",{children:"list_repos"})," and ",(0,t.jsx)("code",{children:"get_file"})," from a GitHub MCP server — preventing agents from making writes."]})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"font-semibold text-gray-800 mb-1",children:"Creating toolsets:"}),(0,t.jsxs)("p",{className:"text-sm text-gray-600",children:["Admins can create and manage toolsets from the ",(0,t.jsx)("strong",{children:"MCP"})," page → ",(0,t.jsx)("strong",{children:"Toolsets"})," tab. Toolsets can then be assigned to keys and teams to scope their tool access."]})]})]})})]})}],220486)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0o4pnwq6k8q4w.js b/litellm/proxy/_experimental/out/_next/static/chunks/08whp29_bth56.js similarity index 89% rename from litellm/proxy/_experimental/out/_next/static/chunks/0o4pnwq6k8q4w.js rename to litellm/proxy/_experimental/out/_next/static/chunks/08whp29_bth56.js index 40ff04b3339..7dc7e6a1b58 100644 --- a/litellm/proxy/_experimental/out/_next/static/chunks/0o4pnwq6k8q4w.js +++ b/litellm/proxy/_experimental/out/_next/static/chunks/08whp29_bth56.js @@ -28,7 +28,7 @@ ${t}-col-xl-24${r}-label`]:v(e)}}})(r),(e=>{let{componentCls:t,formItemCls:r,inlineItemMarginBottom:o}=e;return{[`${t}-inline`]:{display:"flex",flexWrap:"wrap",[`${r}-inline`]:{flex:"none",marginInlineEnd:e.margin,marginBottom:o,"&-row":{flexWrap:"nowrap"},[`> ${r}-label, > ${r}-control`]:{display:"inline-block",verticalAlign:"top"},[`> ${r}-label`]:{flex:"none"},[`${t}-text`]:{display:"inline-block"},[`${r}-has-feedback`]:{display:"inline-block"}}}}})(r),(e=>{let{componentCls:t,formItemCls:r,antCls:o}=e;return{[`${r}-vertical`]:{[`${r}-row`]:{flexDirection:"column"},[`${r}-label > label`]:{height:"auto"},[`${r}-control`]:{width:"100%"},[`${r}-label, ${o}-col-24${r}-label, - ${o}-col-xl-24${r}-label`]:v(e)},[`@media (max-width: ${(0,u.unit)(e.screenXSMax)})`]:[(e=>{let{componentCls:t,formItemCls:r,rootPrefixCls:o}=e;return{[`${r} ${r}-label`]:v(e),[`${t}:not(${t}-inline)`]:{[r]:{flexWrap:"wrap",[`${r}-label, ${r}-control`]:{[`&:not([class*=" ${o}-col-xs"])`]:{flex:"0 0 100%",maxWidth:"100%"}}}}}})(e),{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${o}-col-xs-24${r}-label`]:v(e)}}}],[`@media (max-width: ${(0,u.unit)(e.screenSMMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${o}-col-sm-24${r}-label`]:v(e)}}},[`@media (max-width: ${(0,u.unit)(e.screenMDMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${o}-col-md-24${r}-label`]:v(e)}}},[`@media (max-width: ${(0,u.unit)(e.screenLGMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${o}-col-lg-24${r}-label`]:v(e)}}}}})(r),(0,f.genCollapseMotion)(r),p.zoomIn]},e=>({labelRequiredMarkColor:e.colorError,labelColor:e.colorTextHeading,labelFontSize:e.fontSize,labelHeight:e.controlHeight,labelColonMarginInlineStart:e.marginXXS/2,labelColonMarginInlineEnd:e.marginXS,itemMarginBottom:e.marginLG,verticalLabelPadding:`0 0 ${e.paddingXS}px`,verticalLabelMargin:0,inlineItemMarginBottom:0}),{order:-1e3});e.s(["default",0,b,"prepareToken",0,y],908709);let w=[];function $(e,t,r,o=0){return{key:"string"==typeof e?e:`${t}-${o}`,error:e,errorStatus:r}}e.s(["default",0,({help:e,helpStatus:u,errors:d=w,warnings:f=w,className:p,fieldId:h,onVisibleChanged:m})=>{let{prefixCls:g}=r.useContext(s.FormItemPrefixContext),v=`${g}-item-explain`,y=(0,l.default)(g),[C,x,E]=b(g,y),S=r.useMemo(()=>(0,i.default)(g),[g]),k=(0,c.default)(d),j=(0,c.default)(f),O=r.useMemo(()=>null!=e?[$(e,"help",u)]:[].concat((0,t.default)(k.map((e,t)=>$(e,"error","error",t))),(0,t.default)(j.map((e,t)=>$(e,"warning","warning",t)))),[e,u,k,j]),T=r.useMemo(()=>{let e={};return O.forEach(({key:t})=>{e[t]=(e[t]||0)+1}),O.map((t,r)=>Object.assign(Object.assign({},t),{key:e[t.key]>1?`${t.key}-fallback-${r}`:t.key}))},[O]),I={};return h&&(I.id=`${h}_help`),C(r.createElement(n.default,{motionDeadline:S.motionDeadline,motionName:`${g}-show-help`,visible:!!T.length,onVisibleChanged:m},e=>{let{className:t,style:n}=e;return r.createElement("div",Object.assign({},I,{className:(0,o.default)(v,t,E,y,p,x),style:n}),r.createElement(a.CSSMotionList,Object.assign({keys:T},(0,i.default)(g),{motionName:`${g}-show-help-item`,component:!1}),e=>{let{key:t,error:n,errorStatus:a,className:i,style:l}=e;return r.createElement("div",{key:t,className:(0,o.default)(i,{[`${v}-${a}`]:a}),style:l},n)}))}))}],782074);var C=e.i(197091);e.s(["List",()=>C.default],53058);var x=e.i(621796);e.s(["useWatch",()=>x.default],923624)},286039,531880,e=>{"use strict";var t=e.i(271645);e.i(495347);var r=e.i(787894),r=r,o=e.i(279697);let n=e=>"object"==typeof e&&null!=e&&1===e.nodeType,a=(e,t)=>(!t||"hidden"!==e)&&"visible"!==e&&"clip"!==e,i=(e,t)=>{if(e.clientHeight{if(!e.ownerDocument||!e.ownerDocument.defaultView)return null;try{return e.ownerDocument.defaultView.frameElement}catch(e){return null}})(e))&&(r.clientHeightat||a>e&&i=t&&l>=r?a-e-o:i>t&&lr?i-t+n:0,s=e=>{let t=e.parentElement;return null==t?e.getRootNode().host||null:t},c=(e,t)=>{var r,o,a,c;let u;if("u"e!==h;if(!n(e))throw TypeError("Invalid target");let v=document.scrollingElement||document.documentElement,y=[],b=e;for(;n(b)&&g(b);){if((b=s(b))===v){y.push(b);break}null!=b&&b===document.body&&i(b)&&!i(document.documentElement)||null!=b&&i(b,m)&&y.push(b)}let w=null!=(o=null==(r=window.visualViewport)?void 0:r.width)?o:innerWidth,$=null!=(c=null==(a=window.visualViewport)?void 0:a.height)?c:innerHeight,{scrollX:C,scrollY:x}=window,{height:E,width:S,top:k,right:j,bottom:O,left:T}=e.getBoundingClientRect(),{top:I,right:_,bottom:F,left:P}={top:parseFloat((u=window.getComputedStyle(e)).scrollMarginTop)||0,right:parseFloat(u.scrollMarginRight)||0,bottom:parseFloat(u.scrollMarginBottom)||0,left:parseFloat(u.scrollMarginLeft)||0},R="start"===f||"nearest"===f?k-I:"end"===f?O+F:k+E/2-I+F,N="center"===p?T+S/2-P+_:"end"===p?j+_:T-P,M=[];for(let e=0;e=0&&T>=0&&O<=$&&j<=w&&(t===v&&!i(t)||k>=n&&O<=s&&T>=c&&j<=a))break;let u=getComputedStyle(t),h=parseInt(u.borderLeftWidth,10),m=parseInt(u.borderTopWidth,10),g=parseInt(u.borderRightWidth,10),b=parseInt(u.borderBottomWidth,10),I=0,_=0,F="offsetWidth"in t?t.offsetWidth-t.clientWidth-h-g:0,P="offsetHeight"in t?t.offsetHeight-t.clientHeight-m-b:0,B="offsetWidth"in t?0===t.offsetWidth?0:o/t.offsetWidth:0,A="offsetHeight"in t?0===t.offsetHeight?0:r/t.offsetHeight:0;if(v===t)I="start"===f?R:"end"===f?R-$:"nearest"===f?l(x,x+$,$,m,b,x+R,x+R+E,E):R-$/2,_="start"===p?N:"center"===p?N-w/2:"end"===p?N-w:l(C,C+w,w,h,g,C+N,C+N+S,S),I=Math.max(0,I+x),_=Math.max(0,_+C);else{I="start"===f?R-n-m:"end"===f?R-s+b+P:"nearest"===f?l(n,s,r,m,b+P,R,R+E,E):R-(n+r/2)+P/2,_="start"===p?N-c-h:"center"===p?N-(c+o/2)+F/2:"end"===p?N-a+g+F:l(c,a,o,h,g+F,N,N+S,S);let{scrollLeft:e,scrollTop:i}=t;I=0===A?0:Math.max(0,Math.min(i+I/A,t.scrollHeight-r/A+P)),_=0===B?0:Math.max(0,Math.min(e+_/B,t.scrollWidth-o/B+F)),R+=i-I,N+=e-_}M.push({el:t,top:I,left:_})}return M},u=["parentNode"];function d(e){return void 0===e||!1===e?[]:Array.isArray(e)?e:[e]}function f(e,t){if(!e.length)return;let r=e.join("_");return t?`${t}_${r}`:u.includes(r)?`form_item_${r}`:r}e.s(["getFieldId",0,f,"getStatus",0,function(e,t,r,o,n,a){let i=o;return void 0!==a?i=a:r.validating?i="validating":e.length?i="error":t.length?i="warning":(r.touched||n&&r.validated)&&(i="success"),i},"toArray",0,d],531880);var p=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};function h(e){return d(e).join("_")}function m(e,t){let r=t.getFieldInstance(e),n=(0,o.getDOM)(r);if(n)return n;let a=f(d(e),t.__INTERNAL__.name);if(a)return document.getElementById(a)}e.s(["default",0,function(e){let[o]=(0,r.default)(),n=t.useRef({}),a=t.useMemo(()=>null!=e?e:Object.assign(Object.assign({},o),{__INTERNAL__:{itemRef:e=>t=>{let r=h(e);t?n.current[r]=t:delete n.current[r]}},scrollToField:(e,t={})=>{let{focus:r}=t,o=p(t,["focus"]),n=m(e,a);n&&(!function(e,t){let r;if(!e.isConnected||!(e=>{let t=e;for(;t&&t.parentNode;){if(t.parentNode===document)return!0;t=t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentNode}return!1})(e))return;let o={top:parseFloat((r=window.getComputedStyle(e)).scrollMarginTop)||0,right:parseFloat(r.scrollMarginRight)||0,bottom:parseFloat(r.scrollMarginBottom)||0,left:parseFloat(r.scrollMarginLeft)||0};if("object"==typeof t&&"function"==typeof t.behavior)return t.behavior(c(e,t));let n="boolean"==typeof t||null==t?void 0:t.behavior;for(let{el:r,top:a,left:i}of c(e,!1===t?{block:"end",inline:"nearest"}:t===Object(t)&&0!==Object.keys(t).length?t:{block:"start",inline:"nearest"})){let e=a-o.top+o.bottom,t=i-o.left+o.right;r.scroll({top:e,left:t,behavior:n})}}(n,Object.assign({scrollMode:"if-needed",block:"nearest"},o)),r&&a.focusField(e))},focusField:e=>{var t,r;let o=a.getFieldInstance(e);"function"==typeof(null==o?void 0:o.focus)?o.focus():null==(r=null==(t=m(e,a))?void 0:t.focus)||r.call(t)},getFieldInstance:e=>{let t=h(e);return n.current[t]}}),[e,o]);return[a]},"toNamePathStr",0,h],286039)},56117,411412,420422,355268,220489,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(495347);e.i(53058),e.i(923624);var n=e.i(242064),a=e.i(937328),i=e.i(321883),l=e.i(517455),s=e.i(666365),c=e.i(62139),u=e.i(286039),d=e.i(908709),f=e.i(819828),p=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let h=t.forwardRef((e,h)=>{let m=t.useContext(a.default),{getPrefixCls:g,direction:v,requiredMark:y,colon:b,scrollToFirstError:w,className:$,style:C}=(0,n.useComponentConfig)("form"),{prefixCls:x,className:E,rootClassName:S,size:k,disabled:j=m,form:O,colon:T,labelAlign:I,labelWrap:_,labelCol:F,wrapperCol:P,hideRequiredMark:R,layout:N="horizontal",scrollToFirstError:M,requiredMark:B,onFinishFailed:A,name:z,style:L,feedbackIcons:D,variant:H}=e,V=p(e,["prefixCls","className","rootClassName","size","disabled","form","colon","labelAlign","labelWrap","labelCol","wrapperCol","hideRequiredMark","layout","scrollToFirstError","requiredMark","onFinishFailed","name","style","feedbackIcons","variant"]),W=(0,l.default)(k),U=t.useContext(f.default),G=t.useMemo(()=>void 0!==B?B:!R&&(void 0===y||y),[R,B,y]),q=null!=T?T:b,J=g("form",x),K=(0,i.default)(J),[X,Q,Y]=(0,d.default)(J,K),Z=(0,r.default)(J,`${J}-${N}`,{[`${J}-hide-required-mark`]:!1===G,[`${J}-rtl`]:"rtl"===v,[`${J}-${W}`]:W},Y,K,Q,$,E,S),[ee]=(0,u.default)(O),{__INTERNAL__:et}=ee;et.name=z;let er=t.useMemo(()=>({name:z,labelAlign:I,labelCol:F,labelWrap:_,wrapperCol:P,layout:N,colon:q,requiredMark:G,itemRef:et.itemRef,form:ee,feedbackIcons:D}),[z,I,F,P,N,q,G,ee,D]),eo=t.useRef(null);t.useImperativeHandle(h,()=>{var e;return Object.assign(Object.assign({},ee),{nativeElement:null==(e=eo.current)?void 0:e.nativeElement})});let en=(e,t)=>{if(e){let r={block:"nearest"};"object"==typeof e&&(r=Object.assign(Object.assign({},r),e)),ee.scrollToField(t,r)}};return X(t.createElement(c.VariantContext.Provider,{value:H},t.createElement(a.DisabledContextProvider,{disabled:j},t.createElement(s.default.Provider,{value:W},t.createElement(c.FormProvider,{validateMessages:U},t.createElement(c.FormContext.Provider,{value:er},t.createElement(c.NoFormStyle,{status:!0},t.createElement(o.default,Object.assign({id:z},V,{name:z,onFinishFailed:e=>{if(null==A||A(e),e.errorFields.length){let t=e.errorFields[0].name;if(void 0!==M)return void en(M,t);void 0!==w&&en(w,t)}},form:ee,ref:eo,style:Object.assign(Object.assign({},C),L),className:Z})))))))))});e.s(["default",0,h],56117),e.s(["useForm",()=>u.default],411412);var m=e.i(162129);e.s(["Field",()=>m.default],420422);var g=e.i(177886);e.s(["FieldContext",()=>g.default],355268);var v=e.i(786944);e.s(["ListContext",()=>v.default],220489)},522228,893872,857034,606836,e=>{"use strict";var t=e.i(876556);e.s(["default",0,function(e){if("function"==typeof e)return e;let r=(0,t.default)(e);return r.length<=1?r[0]:r}],522228),e.i(247167);var r=e.i(271645),o=e.i(62139);let n=()=>{let{status:e,errors:t=[],warnings:n=[]}=r.useContext(o.FormItemInputContext);return{status:e,errors:t,warnings:n}};n.Context=o.FormItemInputContext,e.s(["default",0,n],893872);var a=e.i(963188);e.s(["default",0,function(e){let[t,o]=r.useState(e),n=r.useRef(null),i=r.useRef([]),l=r.useRef(!1);return r.useEffect(()=>(l.current=!1,()=>{l.current=!0,a.default.cancel(n.current),n.current=null}),[]),[t,function(e){l.current||(null===n.current&&(i.current=[],n.current=(0,a.default)(()=>{n.current=null,o(e=>{let t=e;return i.current.forEach(e=>{t=e(t)}),t})})),i.current.push(e))}]}],857034);var i=e.i(611935);e.s(["default",0,function(){let{itemRef:e}=r.useContext(o.FormContext),t=r.useRef({});return function(r,o){let n=o&&"object"==typeof o&&(0,i.getNodeRef)(o),a=r.join("_");return(t.current.name!==a||t.current.originRef!==n)&&(t.current.name=a,t.current.originRef=n,t.current.ref=(0,i.composeRef)(e(r),n)),t.current.ref}}],606836)},958503,e=>{"use strict";e.s(["addMediaQueryListener",0,(e,t)=>{void 0!==(null==e?void 0:e.addEventListener)?e.addEventListener("change",t):void 0!==(null==e?void 0:e.addListener)&&e.addListener(t)},"removeMediaQueryListener",0,(e,t)=>{void 0!==(null==e?void 0:e.removeEventListener)?e.removeEventListener("change",t):void 0!==(null==e?void 0:e.removeListener)&&e.removeListener(t)}])},908206,e=>{"use strict";var t=e.i(271645),r=e.i(104458),o=e.i(958503);let n=["xxl","xl","lg","md","sm","xs"];e.s(["default",0,()=>{let e,[,a]=(0,r.useToken)(),i=((e=[].concat(n).reverse()).forEach((t,r)=>{let o=t.toUpperCase(),n=`screen${o}Min`,i=`screen${o}`;if(!(a[n]<=a[i]))throw Error(`${n}<=${i} fails : !(${a[n]}<=${a[i]})`);if(r{let e=new Map,t=-1,r={};return{responsiveMap:i,matchHandlers:{},dispatch:t=>(r=t,e.forEach(e=>e(r)),e.size>=1),subscribe(o){return e.size||this.register(),t+=1,e.set(t,o),o(r),t},unsubscribe(t){e.delete(t),e.size||this.unregister()},register(){Object.entries(i).forEach(([e,t])=>{let n=({matches:t})=>{this.dispatch(Object.assign(Object.assign({},r),{[e]:t}))},a=window.matchMedia(t);(0,o.addMediaQueryListener)(a,n),this.matchHandlers[t]={mql:a,listener:n},n(a)})},unregister(){Object.values(i).forEach(e=>{let t=this.matchHandlers[e];(0,o.removeMediaQueryListener)(null==t?void 0:t.mql,null==t?void 0:t.listener)}),e.clear()}}},[i])},"matchScreen",0,(e,t)=>{if(t){for(let r of n)if(e[r]&&(null==t?void 0:t[r])!==void 0)return t[r]}},"responsiveArray",0,n])},149809,e=>{"use strict";var t=e.i(271645);e.s(["useForceUpdate",0,()=>t.default.useReducer(e=>e+1,0)])},150073,e=>{"use strict";var t=e.i(271645),r=e.i(174428),o=e.i(149809),n=e.i(908206);e.s(["default",0,function(e=!0,a={}){let i=(0,t.useRef)(a),[,l]=(0,o.useForceUpdate)(),s=(0,n.default)();return(0,r.default)(()=>{let t=s.subscribe(t=>{i.current=t,e&&l()});return()=>s.unsubscribe(t)},[]),i.current}])},39874,559442,e=>{"use strict";var t=e.i(908206);e.s(["default",0,function(e,r){let o=[void 0,void 0],n=Array.isArray(e)?e:[e,void 0],a=r||{xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0};return n.forEach((e,r)=>{if("object"==typeof e&&null!==e)for(let n=0;n{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(908206),n=e.i(242064),a=e.i(150073),i=e.i(39874),l=e.i(559442),s=e.i(756570),c=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};function u(e,r){let[n,a]=t.useState("string"==typeof e?e:"");return t.useEffect(()=>{(()=>{if("string"==typeof e&&a(e),"object"==typeof e)for(let t=0;t{let{prefixCls:d,justify:f,align:p,className:h,style:m,children:g,gutter:v=0,wrap:y}=e,b=c(e,["prefixCls","justify","align","className","style","children","gutter","wrap"]),{getPrefixCls:w,direction:$}=t.useContext(n.ConfigContext),C=(0,a.default)(!0,null),x=u(p,C),E=u(f,C),S=w("row",d),[k,j,O]=(0,s.useRowStyle)(S),T=(0,i.default)(v,C),I=(0,r.default)(S,{[`${S}-no-wrap`]:!1===y,[`${S}-${E}`]:E,[`${S}-${x}`]:x,[`${S}-rtl`]:"rtl"===$},h,j,O),_={};if(null==T?void 0:T[0]){let e="number"==typeof T[0]?`${-(T[0]/2)}px`:`calc(${T[0]} / -2)`;_.marginLeft=e,_.marginRight=e}let[F,P]=T;_.rowGap=P;let R=t.useMemo(()=>({gutter:[F,P],wrap:y}),[F,P,y]);return k(t.createElement(l.default.Provider,{value:R},t.createElement("div",Object.assign({},b,{className:I,style:Object.assign(Object.assign({},_),m),ref:o}),g)))});e.s(["Row",0,d],264042),e.i(62664);var f=e.i(657791),f=f,p=e.i(349057),p=p,h=e.i(174428),m=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};function g(e){return"auto"===e?"1 1 auto":"number"==typeof e?`${e} ${e} auto`:/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?`0 0 ${e}`:e}let v=["xs","sm","md","lg","xl","xxl"],y=t.forwardRef((e,o)=>{let{getPrefixCls:a,direction:i}=t.useContext(n.ConfigContext),{gutter:c,wrap:u}=t.useContext(l.default),{prefixCls:d,span:f,order:p,offset:h,push:y,pull:b,className:w,children:$,flex:C,style:x}=e,E=m(e,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),S=a("col",d),[k,j,O]=(0,s.useColStyle)(S),T={},I={};v.forEach(t=>{let r={},o=e[t];"number"==typeof o?r.span=o:"object"==typeof o&&(r=o||{}),delete E[t],I=Object.assign(Object.assign({},I),{[`${S}-${t}-${r.span}`]:void 0!==r.span,[`${S}-${t}-order-${r.order}`]:r.order||0===r.order,[`${S}-${t}-offset-${r.offset}`]:r.offset||0===r.offset,[`${S}-${t}-push-${r.push}`]:r.push||0===r.push,[`${S}-${t}-pull-${r.pull}`]:r.pull||0===r.pull,[`${S}-rtl`]:"rtl"===i}),r.flex&&(I[`${S}-${t}-flex`]=!0,T[`--${S}-${t}-flex`]=g(r.flex))});let _=(0,r.default)(S,{[`${S}-${f}`]:void 0!==f,[`${S}-order-${p}`]:p,[`${S}-offset-${h}`]:h,[`${S}-push-${y}`]:y,[`${S}-pull-${b}`]:b},w,I,j,O),F={};if(null==c?void 0:c[0]){let e="number"==typeof c[0]?`${c[0]/2}px`:`calc(${c[0]} / 2)`;F.paddingLeft=e,F.paddingRight=e}return C&&(F.flex=g(C),!1!==u||F.minWidth||(F.minWidth=0)),k(t.createElement("div",Object.assign({},E,{style:Object.assign(Object.assign(Object.assign({},F),x),T),className:_,ref:o}),$))});e.s(["default",0,y],131757);var b=e.i(62139),w=e.i(782074),$=e.i(908709);let C=(0,e.i(246422).genSubStyleComponent)(["Form","item-item"],(e,{rootPrefixCls:t})=>(e=>{let{formItemCls:t}=e;return{"@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none)":{[`${t}-control`]:{display:"flex"}}}})((0,$.prepareToken)(e,t)));var x=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};e.s(["default",0,e=>{let{prefixCls:o,status:n,labelCol:a,wrapperCol:i,children:l,errors:s,warnings:c,_internalItemRender:u,extra:d,help:m,fieldId:g,marginBottom:v,onErrorVisibleChanged:$,label:E}=e,S=`${o}-item`,k=t.useContext(b.FormContext),j=t.useMemo(()=>{let e=Object.assign({},i||k.wrapperCol||{});return null!==E||a||i||!k.labelCol||[void 0,"xs","sm","md","lg","xl","xxl"].forEach(t=>{let r=t?[t]:[],o=(0,f.default)(k.labelCol,r),n="object"==typeof o?o:{},a=(0,f.default)(e,r);"span"in n&&!("offset"in("object"==typeof a?a:{}))&&n.span<24&&(e=(0,p.default)(e,[].concat(r,["offset"]),n.span))}),e},[i,k.wrapperCol,k.labelCol,E,a]),O=(0,r.default)(`${S}-control`,j.className),T=t.useMemo(()=>{let{labelCol:e,wrapperCol:t}=k;return x(k,["labelCol","wrapperCol"])},[k]),I=t.useRef(null),[_,F]=t.useState(0);(0,h.default)(()=>{d&&I.current?F(I.current.clientHeight):F(0)},[d]);let P=t.createElement("div",{className:`${S}-control-input`},t.createElement("div",{className:`${S}-control-input-content`},l)),R=t.useMemo(()=>({prefixCls:o,status:n}),[o,n]),N=null!==v||s.length||c.length?t.createElement(b.FormItemPrefixContext.Provider,{value:R},t.createElement(w.default,{fieldId:g,errors:s,warnings:c,help:m,helpStatus:n,className:`${S}-explain-connected`,onVisibleChanged:$})):null,M={};g&&(M.id=`${g}_extra`);let B=d?t.createElement("div",Object.assign({},M,{className:`${S}-extra`,ref:I}),d):null,A=N||B?t.createElement("div",{className:`${S}-additional`,style:v?{minHeight:v+_}:{}},N,B):null,z=u&&"pro_table_render"===u.mark&&u.render?u.render(e,{input:P,errorList:N,extra:B}):t.createElement(t.Fragment,null,P,A);return t.createElement(b.FormContext.Provider,{value:T},t.createElement(y,Object.assign({},j,{className:O}),z),t.createElement(C,{prefixCls:o}))}],292169)},684024,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"question-circle",theme:"outlined"};var n=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(n.default,(0,t.default)({},e,{ref:a,icon:o}))});e.s(["default",0,a],684024)},995144,e=>{"use strict";var t=e.i(271645);e.s(["default",0,function(e){return null==e?null:"object"!=typeof e||(0,t.isValidElement)(e)?{title:e}:e}])},808613,905536,e=>{"use strict";e.i(247167);var t=e.i(62139),r=e.i(782074),o=e.i(56117),n=e.i(411412),a=e.i(923624),i=e.i(8211),l=e.i(271645),s=e.i(343794);e.i(495347);var c=e.i(420422),u=e.i(355268),d=e.i(220489),f=e.i(290967),p=e.i(611935),h=e.i(763731),m=e.i(747656),g=e.i(242064),v=e.i(321883),y=e.i(522228),b=e.i(893872),w=e.i(857034),$=e.i(606836),C=e.i(908709),x=e.i(531880),E=e.i(606262),S=e.i(174428),k=e.i(529681),j=e.i(264042),O=e.i(292169),T=e.i(684024),I=e.i(995144),_=e.i(131757),F=e.i(408850),P=e.i(87414),R=e.i(491816),N=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let M=({prefixCls:e,label:r,htmlFor:o,labelCol:n,labelAlign:a,colon:i,required:c,requiredMark:u,tooltip:d,vertical:f})=>{var p;let h,[m]=(0,F.useLocale)("Form"),{labelAlign:g,labelCol:v,labelWrap:y,colon:b}=l.useContext(t.FormContext);if(!r)return null;let w=n||v||{},$=`${e}-item-label`,C=(0,s.default)($,"left"===(a||g)&&`${$}-left`,w.className,{[`${$}-wrap`]:!!y}),x=r,E=!0===i||!1!==b&&!1!==i;E&&!f&&"string"==typeof r&&r.trim()&&(x=r.replace(/[:|:]\s*$/,""));let S=(0,I.default)(d);if(S){let{icon:t=l.createElement(T.default,null)}=S,r=N(S,["icon"]),o=l.createElement(R.default,Object.assign({},r),l.cloneElement(t,{className:`${e}-item-tooltip`,title:"",onClick:e=>{e.preventDefault()},tabIndex:null}));x=l.createElement(l.Fragment,null,x,o)}let k="optional"===u,j="function"==typeof u;j?x=u(x,{required:!!c}):k&&!c&&(x=l.createElement(l.Fragment,null,x,l.createElement("span",{className:`${e}-item-optional`,title:""},(null==m?void 0:m.optional)||(null==(p=P.default.Form)?void 0:p.optional)))),!1===u?h="hidden":(k||j)&&(h="optional");let O=(0,s.default)({[`${e}-item-required`]:c,[`${e}-item-required-mark-${h}`]:h,[`${e}-item-no-colon`]:!E});return l.createElement(_.default,Object.assign({},w,{className:C}),l.createElement("label",{htmlFor:o,className:O,title:"string"==typeof r?r:""},x))};var B=e.i(830919),A=e.i(201072),z=e.i(726289),L=e.i(562901),D=e.i(739295);let H={success:A.default,warning:L.default,error:z.default,validating:D.default};function V({children:e,errors:r,warnings:o,hasFeedback:n,validateStatus:a,prefixCls:i,meta:c,noStyle:u,name:d}){let f=`${i}-item`,{feedbackIcons:p}=l.useContext(t.FormContext),h=(0,x.getStatus)(r,o,c,null,!!n,a),{isFormItemInput:m,status:g,hasFeedback:v,feedbackIcon:y,name:b}=l.useContext(t.FormItemInputContext),w=l.useMemo(()=>{var e;let t;if(n){let a=!0!==n&&n.icons||p,i=h&&(null==(e=null==a?void 0:a({status:h,errors:r,warnings:o}))?void 0:e[h]),c=h?H[h]:null;t=!1!==i&&c?l.createElement("span",{className:(0,s.default)(`${f}-feedback-icon`,`${f}-feedback-icon-${h}`)},i||l.createElement(c,null)):null}let a={status:h||"",errors:r,warnings:o,hasFeedback:!!n,feedbackIcon:t,isFormItemInput:!0,name:d};return u&&(a.status=(null!=h?h:g)||"",a.isFormItemInput=m,a.hasFeedback=!!(null!=n?n:v),a.feedbackIcon=void 0!==n?a.feedbackIcon:y,a.name=null!=d?d:b),a},[h,n,u,m,g]);return l.createElement(t.FormItemInputContext.Provider,{value:w},e)}var W=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};function U(e){let{prefixCls:r,className:o,rootClassName:n,style:a,help:i,errors:c,warnings:u,validateStatus:d,meta:f,hasFeedback:p,hidden:h,children:m,fieldId:g,required:v,isRequired:y,onSubItemMetaChange:b,layout:w,name:$}=e,C=W(e,["prefixCls","className","rootClassName","style","help","errors","warnings","validateStatus","meta","hasFeedback","hidden","children","fieldId","required","isRequired","onSubItemMetaChange","layout","name"]),T=`${r}-item`,{requiredMark:I,layout:_}=l.useContext(t.FormContext),F=w||_,P="vertical"===F,R=l.useRef(null),N=(0,B.default)(c),A=(0,B.default)(u),z=null!=i,L=!!(z||c.length||u.length),D=!!R.current&&(0,E.default)(R.current),[H,U]=l.useState(null);(0,S.default)(()=>{L&&R.current&&U(Number.parseInt(getComputedStyle(R.current).marginBottom,10))},[L,D]);let G=((e=!1)=>{let t=e?N:f.errors,r=e?A:f.warnings;return(0,x.getStatus)(t,r,f,"",!!p,d)})(),q=(0,s.default)(T,o,n,{[`${T}-with-help`]:z||N.length||A.length,[`${T}-has-feedback`]:G&&p,[`${T}-has-success`]:"success"===G,[`${T}-has-warning`]:"warning"===G,[`${T}-has-error`]:"error"===G,[`${T}-is-validating`]:"validating"===G,[`${T}-hidden`]:h,[`${T}-${F}`]:F});return l.createElement("div",{className:q,style:a,ref:R},l.createElement(j.Row,Object.assign({className:`${T}-row`},(0,k.default)(C,["_internalItemRender","colon","dependencies","extra","fieldKey","getValueFromEvent","getValueProps","htmlFor","id","initialValue","isListField","label","labelAlign","labelCol","labelWrap","messageVariables","name","normalize","noStyle","preserve","requiredMark","rules","shouldUpdate","trigger","tooltip","validateFirst","validateTrigger","valuePropName","wrapperCol","validateDebounce"])),l.createElement(M,Object.assign({htmlFor:g},e,{requiredMark:I,required:null!=v?v:y,prefixCls:r,vertical:P})),l.createElement(O.default,Object.assign({},e,f,{errors:N,warnings:A,prefixCls:r,status:G,help:i,marginBottom:H,onErrorVisibleChanged:e=>{e||U(null)}}),l.createElement(t.NoStyleItemContext.Provider,{value:b},l.createElement(V,{prefixCls:r,meta:f,errors:f.errors,warnings:f.warnings,hasFeedback:p,validateStatus:G,name:$},m)))),!!H&&l.createElement("div",{className:`${T}-margin-offset`,style:{marginBottom:-H}}))}let G=l.memo(({children:e})=>e,(e,t)=>{var r,o;let n,a;return r=e.control,o=t.control,n=Object.keys(r),a=Object.keys(o),n.length===a.length&&n.every(e=>{let t=r[e],n=o[e];return t===n||"function"==typeof t||"function"==typeof n})&&e.update===t.update&&e.childProps.length===t.childProps.length&&e.childProps.every((e,r)=>e===t.childProps[r])});function q(){return{errors:[],warnings:[],touched:!1,validating:!1,name:[],validated:!1}}let J=function(e){let{name:r,noStyle:o,className:n,dependencies:a,prefixCls:b,shouldUpdate:E,rules:S,children:k,required:j,label:O,messageVariables:T,trigger:I="onChange",validateTrigger:_,hidden:F,help:P,layout:R}=e,{getPrefixCls:N}=l.useContext(g.ConfigContext),{name:M}=l.useContext(t.FormContext),B=(0,y.default)(k),A="function"==typeof B,z=l.useContext(t.NoStyleItemContext),{validateTrigger:L}=l.useContext(u.FieldContext),D=void 0!==_?_:L,H=null!=r,W=N("form",b),J=(0,v.default)(W),[K,X,Q]=(0,C.default)(W,J);(0,m.devUseWarning)("Form.Item");let Y=l.useContext(d.ListContext),Z=l.useRef(null),[ee,et]=(0,w.default)({}),[er,eo]=(0,f.default)(()=>q()),en=(e,t)=>{et(r=>{let o=Object.assign({},r),n=[].concat((0,i.default)(e.name.slice(0,-1)),(0,i.default)(t)).join("__SPLIT__");return e.destroy?delete o[n]:o[n]=e,o})},[ea,ei]=l.useMemo(()=>{let e=(0,i.default)(er.errors),t=(0,i.default)(er.warnings);return Object.values(ee).forEach(r=>{e.push.apply(e,(0,i.default)(r.errors||[])),t.push.apply(t,(0,i.default)(r.warnings||[]))}),[e,t]},[ee,er.errors,er.warnings]),el=(0,$.default)();function es(t,a,i){return o&&!F?l.createElement(V,{prefixCls:W,hasFeedback:e.hasFeedback,validateStatus:e.validateStatus,meta:er,errors:ea,warnings:ei,noStyle:!0,name:r},t):l.createElement(U,Object.assign({key:"row"},e,{className:(0,s.default)(n,Q,J,X),prefixCls:W,fieldId:a,isRequired:i,errors:ea,warnings:ei,meta:er,onSubItemMetaChange:en,layout:R,name:r}),t)}if(!H&&!A&&!a)return K(es(B));let ec={};return"string"==typeof O?ec.label=O:r&&(ec.label=String(r)),T&&(ec=Object.assign(Object.assign({},ec),T)),K(l.createElement(c.Field,Object.assign({},e,{messageVariables:ec,trigger:I,validateTrigger:D,onMetaChange:e=>{let t=null==Y?void 0:Y.getKey(e.name);if(eo(e.destroy?q():e,!0),o&&!1!==P&&z){let r=e.name;if(e.destroy)r=Z.current||r;else if(void 0!==t){let[e,o]=t;Z.current=r=[e].concat((0,i.default)(o))}z(e,r)}}}),(t,o,n)=>{let s=(0,x.toArray)(r).length&&o?o.name:[],c=(0,x.getFieldId)(s,M),u=void 0!==j?j:!!(null==S?void 0:S.some(e=>{if(e&&"object"==typeof e&&e.required&&!e.warningOnly)return!0;if("function"==typeof e){let t=e(n);return(null==t?void 0:t.required)&&!(null==t?void 0:t.warningOnly)}return!1})),d=Object.assign({},t),f=null;if(Array.isArray(B)&&H)f=B;else if(A&&(!(E||a)||H));else if(!a||A||H)if(l.isValidElement(B)){let t=Object.assign(Object.assign({},B.props),d);if(t.id||(t.id=c),P||ea.length>0||ei.length>0||e.extra){let r=[];(P||ea.length>0)&&r.push(`${c}_help`),e.extra&&r.push(`${c}_extra`),t["aria-describedby"]=r.join(" ")}ea.length>0&&(t["aria-invalid"]="true"),u&&(t["aria-required"]="true"),(0,p.supportRef)(B)&&(t.ref=el(s,B)),new Set([].concat((0,i.default)((0,x.toArray)(I)),(0,i.default)((0,x.toArray)(D)))).forEach(e=>{t[e]=(...t)=>{var r,o,n;null==(r=d[e])||r.call.apply(r,[d].concat(t)),null==(n=(o=B.props)[e])||n.call.apply(n,[o].concat(t))}});let r=[t["aria-required"],t["aria-invalid"],t["aria-describedby"]];f=l.createElement(G,{control:d,update:B,childProps:r},(0,h.cloneElement)(B,t))}else f=A&&(E||a)&&!H?B(n):B;return es(f,c,u)}))};J.useStatus=b.default,e.s(["default",0,J],905536);var K=e.i(53058),X=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let Q=o.default;Q.Item=J,Q.List=e=>{var{prefixCls:r,children:o}=e,n=X(e,["prefixCls","children"]);let{getPrefixCls:a}=l.useContext(g.ConfigContext),i=a("form",r),s=l.useMemo(()=>({prefixCls:i,status:"error"}),[i]);return l.createElement(K.List,Object.assign({},n),(e,r,n)=>l.createElement(t.FormItemPrefixContext.Provider,{value:s},o(e.map(e=>Object.assign(Object.assign({},e),{fieldKey:e.key})),r,{errors:n.errors,warnings:n.warnings})))},Q.ErrorList=r.default,Q.useForm=n.useForm,Q.useFormInstance=function(){let{form:e}=l.useContext(t.FormContext);return e},Q.useWatch=a.useWatch,Q.Provider=t.FormProvider,Q.create=()=>{},e.s(["Form",0,Q],808613)},121229,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"}}]},name:"check",theme:"outlined"};var n=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(n.default,(0,t.default)({},e,{ref:a,icon:o}))});e.s(["default",0,a],121229)},268004,e=>{"use strict";function t(){let e=window.location.pathname.match(/\/ui(?=\/|$)/);return e&&void 0!==e.index?window.location.pathname.substring(0,e.index+3):"/ui"}e.s(["clearTokenCookies",0,function(){if("u"{document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t};`,document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${e};`,n.forEach(r=>{let o="None"===r?" Secure;":"";document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; SameSite=${r};${o}`,document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${e}; SameSite=${r};${o}`})});try{sessionStorage.removeItem("token")}catch{}},"getCookie",0,function(e){if("u"t.startsWith(e+"="));if(t){let e=t.split("=").slice(1).join("=");try{return decodeURIComponent(e)}catch{return e}}if("token"===e)try{return sessionStorage.getItem(e)}catch{}return null},"storeLoginToken",0,function(e){if(e&&e.trim()){try{let r="https:"===window.location.protocol?"; Secure":"",o=t();document.cookie=`token=${encodeURIComponent(e)}; path=${o}; SameSite=Lax${r}`}catch{}try{sessionStorage.setItem("token",e)}catch{}}}])},349942,517458,889943,e=>{"use strict";e.i(296059);var t=e.i(915654),r=e.i(183293),o=e.i(372409),n=e.i(246422),a=e.i(838378);function i(e){return(0,a.mergeToken)(e,{inputAffixPadding:e.paddingXXS})}let l=e=>{let{controlHeight:t,fontSize:r,lineHeight:o,lineWidth:n,controlHeightSM:a,controlHeightLG:i,fontSizeLG:l,lineHeightLG:s,paddingSM:c,controlPaddingHorizontalSM:u,controlPaddingHorizontal:d,colorFillAlter:f,colorPrimaryHover:p,colorPrimary:h,controlOutlineWidth:m,controlOutline:g,colorErrorOutline:v,colorWarningOutline:y,colorBgContainer:b,inputFontSize:w,inputFontSizeLG:$,inputFontSizeSM:C}=e,x=w||r,E=C||x,S=$||l;return{paddingBlock:Math.max(Math.round((t-x*o)/2*10)/10-n,0),paddingBlockSM:Math.max(Math.round((a-E*o)/2*10)/10-n,0),paddingBlockLG:Math.max(Math.ceil((i-S*s)/2*10)/10-n,0),paddingInline:c-n,paddingInlineSM:u-n,paddingInlineLG:d-n,addonBg:f,activeBorderColor:h,hoverBorderColor:p,activeShadow:`0 0 0 ${m}px ${g}`,errorActiveShadow:`0 0 0 ${m}px ${v}`,warningActiveShadow:`0 0 0 ${m}px ${y}`,hoverBg:b,activeBg:b,inputFontSize:x,inputFontSizeLG:S,inputFontSizeSM:E}};e.s(["initComponentToken",0,l,"initInputToken",0,i],517458);let s=e=>{let t;return{color:e.colorTextDisabled,backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,boxShadow:"none",cursor:"not-allowed",opacity:1,"input[disabled], textarea[disabled]":{cursor:"not-allowed"},"&:hover:not([disabled])":Object.assign({},{borderColor:(t=(0,a.mergeToken)(e,{hoverBorderColor:e.colorBorder,hoverBg:e.colorBgContainerDisabled})).hoverBorderColor,backgroundColor:t.hoverBg})}},c=(e,t)=>({background:e.colorBgContainer,borderWidth:e.lineWidth,borderStyle:e.lineType,borderColor:t.borderColor,"&:hover":{borderColor:t.hoverBorderColor,backgroundColor:e.hoverBg},"&:focus, &:focus-within":{borderColor:t.activeBorderColor,boxShadow:t.activeShadow,outline:0,backgroundColor:e.activeBg}}),u=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},c(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}}),[`&${e.componentCls}-status-${t.status}${e.componentCls}-disabled`]:{borderColor:t.borderColor}}),d=(e,t)=>({"&-outlined":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},c(e,{borderColor:e.colorBorder,hoverBorderColor:e.hoverBorderColor,activeBorderColor:e.activeBorderColor,activeShadow:e.activeShadow})),{[`&${e.componentCls}-disabled, &[disabled]`]:Object.assign({},s(e))}),u(e,{status:"error",borderColor:e.colorError,hoverBorderColor:e.colorErrorBorderHover,activeBorderColor:e.colorError,activeShadow:e.errorActiveShadow,affixColor:e.colorError})),u(e,{status:"warning",borderColor:e.colorWarning,hoverBorderColor:e.colorWarningBorderHover,activeBorderColor:e.colorWarning,activeShadow:e.warningActiveShadow,affixColor:e.colorWarning})),t)}),f=(e,t)=>({[`&${e.componentCls}-group-wrapper-status-${t.status}`]:{[`${e.componentCls}-group-addon`]:{borderColor:t.addonBorderColor,color:t.addonColor}}}),p=e=>({"&-outlined":Object.assign(Object.assign(Object.assign({[`${e.componentCls}-group`]:{"&-addon":{background:e.addonBg,border:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},"&-addon:first-child":{borderInlineEnd:0},"&-addon:last-child":{borderInlineStart:0}}},f(e,{status:"error",addonBorderColor:e.colorError,addonColor:e.colorErrorText})),f(e,{status:"warning",addonBorderColor:e.colorWarning,addonColor:e.colorWarningText})),{[`&${e.componentCls}-group-wrapper-disabled`]:{[`${e.componentCls}-group-addon`]:Object.assign({},s(e))}})}),h=(e,t)=>{let{componentCls:r}=e;return{"&-borderless":Object.assign({background:"transparent",border:"none","&:focus, &:focus-within":{outline:"none"},[`&${r}-disabled, &[disabled]`]:{color:e.colorTextDisabled,cursor:"not-allowed"},[`&${r}-status-error`]:{"&, & input, & textarea":{color:e.colorError}},[`&${r}-status-warning`]:{"&, & input, & textarea":{color:e.colorWarning}}},t)}},m=(e,t)=>{var r;return{background:t.bg,borderWidth:e.lineWidth,borderStyle:e.lineType,borderColor:"transparent","input&, & input, textarea&, & textarea":{color:null!=(r=null==t?void 0:t.inputColor)?r:"unset"},"&:hover":{background:t.hoverBg},"&:focus, &:focus-within":{outline:0,borderColor:t.activeBorderColor,backgroundColor:e.activeBg}}},g=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},m(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}})}),v=(e,t)=>({"&-filled":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},m(e,{bg:e.colorFillTertiary,hoverBg:e.colorFillSecondary,activeBorderColor:e.activeBorderColor})),{[`&${e.componentCls}-disabled, &[disabled]`]:Object.assign({},s(e))}),g(e,{status:"error",bg:e.colorErrorBg,hoverBg:e.colorErrorBgHover,activeBorderColor:e.colorError,inputColor:e.colorErrorText,affixColor:e.colorError})),g(e,{status:"warning",bg:e.colorWarningBg,hoverBg:e.colorWarningBgHover,activeBorderColor:e.colorWarning,inputColor:e.colorWarningText,affixColor:e.colorWarning})),t)}),y=(e,t)=>({[`&${e.componentCls}-group-wrapper-status-${t.status}`]:{[`${e.componentCls}-group-addon`]:{background:t.addonBg,color:t.addonColor}}}),b=e=>({"&-filled":Object.assign(Object.assign(Object.assign({[`${e.componentCls}-group-addon`]:{background:e.colorFillTertiary,"&:last-child":{position:"static"}}},y(e,{status:"error",addonBg:e.colorErrorBg,addonColor:e.colorErrorText})),y(e,{status:"warning",addonBg:e.colorWarningBg,addonColor:e.colorWarningText})),{[`&${e.componentCls}-group-wrapper-disabled`]:{[`${e.componentCls}-group`]:{"&-addon":{background:e.colorFillTertiary,color:e.colorTextDisabled},"&-addon:first-child":{borderInlineStart:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderTop:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderBottom:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},"&-addon:last-child":{borderInlineEnd:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderTop:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderBottom:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`}}}})}),w=(e,r)=>({background:e.colorBgContainer,borderWidth:`${(0,t.unit)(e.lineWidth)} 0`,borderStyle:`${e.lineType} none`,borderColor:`transparent transparent ${r.borderColor} transparent`,borderRadius:0,"&:hover":{borderColor:`transparent transparent ${r.hoverBorderColor} transparent`,backgroundColor:e.hoverBg},"&:focus, &:focus-within":{borderColor:`transparent transparent ${r.activeBorderColor} transparent`,outline:0,backgroundColor:e.activeBg}}),$=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},w(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}}),[`&${e.componentCls}-status-${t.status}${e.componentCls}-disabled`]:{borderColor:`transparent transparent ${t.borderColor} transparent`}}),C=(e,t)=>({"&-underlined":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},w(e,{borderColor:e.colorBorder,hoverBorderColor:e.hoverBorderColor,activeBorderColor:e.activeBorderColor,activeShadow:e.activeShadow})),{[`&${e.componentCls}-disabled, &[disabled]`]:{color:e.colorTextDisabled,boxShadow:"none",cursor:"not-allowed","&:hover":{borderColor:`transparent transparent ${e.colorBorder} transparent`}},"input[disabled], textarea[disabled]":{cursor:"not-allowed"}}),$(e,{status:"error",borderColor:e.colorError,hoverBorderColor:e.colorErrorBorderHover,activeBorderColor:e.colorError,activeShadow:e.errorActiveShadow,affixColor:e.colorError})),$(e,{status:"warning",borderColor:e.colorWarning,hoverBorderColor:e.colorWarningBorderHover,activeBorderColor:e.colorWarning,activeShadow:e.warningActiveShadow,affixColor:e.colorWarning})),t)});e.s(["genBaseOutlinedStyle",0,c,"genBorderlessStyle",0,h,"genDisabledStyle",0,s,"genFilledGroupStyle",0,b,"genFilledStyle",0,v,"genOutlinedGroupStyle",0,p,"genOutlinedStyle",0,d,"genUnderlinedStyle",0,C],889943);let x=e=>({"&::-moz-placeholder":{opacity:1},"&::placeholder":{color:e,userSelect:"none"},"&:placeholder-shown":{textOverflow:"ellipsis"}}),E=e=>{let{paddingBlockLG:r,lineHeightLG:o,borderRadiusLG:n,paddingInlineLG:a}=e;return{padding:`${(0,t.unit)(r)} ${(0,t.unit)(a)}`,fontSize:e.inputFontSizeLG,lineHeight:o,borderRadius:n}},S=e=>({padding:`${(0,t.unit)(e.paddingBlockSM)} ${(0,t.unit)(e.paddingInlineSM)}`,fontSize:e.inputFontSizeSM,borderRadius:e.borderRadiusSM}),k=e=>Object.assign(Object.assign({position:"relative",display:"inline-block",width:"100%",minWidth:0,padding:`${(0,t.unit)(e.paddingBlock)} ${(0,t.unit)(e.paddingInline)}`,color:e.colorText,fontSize:e.inputFontSize,lineHeight:e.lineHeight,borderRadius:e.borderRadius,transition:`all ${e.motionDurationMid}`},x(e.colorTextPlaceholder)),{"&-lg":Object.assign({},E(e)),"&-sm":Object.assign({},S(e)),"&-rtl, &-textarea-rtl":{direction:"rtl"}}),j=e=>{let{componentCls:o,antCls:n}=e;return{position:"relative",display:"table",width:"100%",borderCollapse:"separate",borderSpacing:0,"&[class*='col-']":{paddingInlineEnd:e.paddingXS,"&:last-child":{paddingInlineEnd:0}},[`&-lg ${o}, &-lg > ${o}-group-addon`]:Object.assign({},E(e)),[`&-sm ${o}, &-sm > ${o}-group-addon`]:Object.assign({},S(e)),[`&-lg ${n}-select-single ${n}-select-selector`]:{height:e.controlHeightLG},[`&-sm ${n}-select-single ${n}-select-selector`]:{height:e.controlHeightSM},[`> ${o}`]:{display:"table-cell","&:not(:first-child):not(:last-child)":{borderRadius:0}},[`${o}-group`]:{"&-addon, &-wrap":{display:"table-cell",width:1,whiteSpace:"nowrap",verticalAlign:"middle","&:not(:first-child):not(:last-child)":{borderRadius:0}},"&-wrap > *":{display:"block !important"},"&-addon":{position:"relative",padding:`0 ${(0,t.unit)(e.paddingInline)}`,color:e.colorText,fontWeight:"normal",fontSize:e.inputFontSize,textAlign:"center",borderRadius:e.borderRadius,transition:`all ${e.motionDurationSlow}`,lineHeight:1,[`${n}-select`]:{margin:`${(0,t.unit)(e.calc(e.paddingBlock).add(1).mul(-1).equal())} ${(0,t.unit)(e.calc(e.paddingInline).mul(-1).equal())}`,[`&${n}-select-single:not(${n}-select-customize-input):not(${n}-pagination-size-changer)`]:{[`${n}-select-selector`]:{backgroundColor:"inherit",border:`${(0,t.unit)(e.lineWidth)} ${e.lineType} transparent`,boxShadow:"none"}}},[`${n}-cascader-picker`]:{margin:`-9px ${(0,t.unit)(e.calc(e.paddingInline).mul(-1).equal())}`,backgroundColor:"transparent",[`${n}-cascader-input`]:{textAlign:"start",border:0,boxShadow:"none"}}}},[o]:{width:"100%",marginBottom:0,textAlign:"inherit","&:focus":{zIndex:1,borderInlineEndWidth:1},"&:hover":{zIndex:1,borderInlineEndWidth:1,[`${o}-search-with-button &`]:{zIndex:0}}},[`> ${o}:first-child, ${o}-group-addon:first-child`]:{borderStartEndRadius:0,borderEndEndRadius:0,[`${n}-select ${n}-select-selector`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${o}-affix-wrapper`]:{[`&:not(:first-child) ${o}`]:{borderStartStartRadius:0,borderEndStartRadius:0},[`&:not(:last-child) ${o}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${o}:last-child, ${o}-group-addon:last-child`]:{borderStartStartRadius:0,borderEndStartRadius:0,[`${n}-select ${n}-select-selector`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`${o}-affix-wrapper`]:{"&:not(:last-child)":{borderStartEndRadius:0,borderEndEndRadius:0,[`${o}-search &`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius}},[`&:not(:first-child), ${o}-search &:not(:first-child)`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&${o}-group-compact`]:Object.assign(Object.assign({display:"block"},(0,r.clearFix)()),{[`${o}-group-addon, ${o}-group-wrap, > ${o}`]:{"&:not(:first-child):not(:last-child)":{borderInlineEndWidth:e.lineWidth,"&:hover, &:focus":{zIndex:1}}},"& > *":{display:"inline-flex",float:"none",verticalAlign:"top",borderRadius:0},[` + ${o}-col-xl-24${r}-label`]:v(e)},[`@media (max-width: ${(0,u.unit)(e.screenXSMax)})`]:[(e=>{let{componentCls:t,formItemCls:r,rootPrefixCls:o}=e;return{[`${r} ${r}-label`]:v(e),[`${t}:not(${t}-inline)`]:{[r]:{flexWrap:"wrap",[`${r}-label, ${r}-control`]:{[`&:not([class*=" ${o}-col-xs"])`]:{flex:"0 0 100%",maxWidth:"100%"}}}}}})(e),{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${o}-col-xs-24${r}-label`]:v(e)}}}],[`@media (max-width: ${(0,u.unit)(e.screenSMMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${o}-col-sm-24${r}-label`]:v(e)}}},[`@media (max-width: ${(0,u.unit)(e.screenMDMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${o}-col-md-24${r}-label`]:v(e)}}},[`@media (max-width: ${(0,u.unit)(e.screenLGMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${o}-col-lg-24${r}-label`]:v(e)}}}}})(r),(0,f.genCollapseMotion)(r),p.zoomIn]},e=>({labelRequiredMarkColor:e.colorError,labelColor:e.colorTextHeading,labelFontSize:e.fontSize,labelHeight:e.controlHeight,labelColonMarginInlineStart:e.marginXXS/2,labelColonMarginInlineEnd:e.marginXS,itemMarginBottom:e.marginLG,verticalLabelPadding:`0 0 ${e.paddingXS}px`,verticalLabelMargin:0,inlineItemMarginBottom:0}),{order:-1e3});e.s(["default",0,b,"prepareToken",0,y],908709);let w=[];function $(e,t,r,o=0){return{key:"string"==typeof e?e:`${t}-${o}`,error:e,errorStatus:r}}e.s(["default",0,({help:e,helpStatus:u,errors:d=w,warnings:f=w,className:p,fieldId:h,onVisibleChanged:m})=>{let{prefixCls:g}=r.useContext(s.FormItemPrefixContext),v=`${g}-item-explain`,y=(0,l.default)(g),[C,x,E]=b(g,y),S=r.useMemo(()=>(0,i.default)(g),[g]),k=(0,c.default)(d),j=(0,c.default)(f),O=r.useMemo(()=>null!=e?[$(e,"help",u)]:[].concat((0,t.default)(k.map((e,t)=>$(e,"error","error",t))),(0,t.default)(j.map((e,t)=>$(e,"warning","warning",t)))),[e,u,k,j]),T=r.useMemo(()=>{let e={};return O.forEach(({key:t})=>{e[t]=(e[t]||0)+1}),O.map((t,r)=>Object.assign(Object.assign({},t),{key:e[t.key]>1?`${t.key}-fallback-${r}`:t.key}))},[O]),I={};return h&&(I.id=`${h}_help`),C(r.createElement(n.default,{motionDeadline:S.motionDeadline,motionName:`${g}-show-help`,visible:!!T.length,onVisibleChanged:m},e=>{let{className:t,style:n}=e;return r.createElement("div",Object.assign({},I,{className:(0,o.default)(v,t,E,y,p,x),style:n}),r.createElement(a.CSSMotionList,Object.assign({keys:T},(0,i.default)(g),{motionName:`${g}-show-help-item`,component:!1}),e=>{let{key:t,error:n,errorStatus:a,className:i,style:l}=e;return r.createElement("div",{key:t,className:(0,o.default)(i,{[`${v}-${a}`]:a}),style:l},n)}))}))}],782074);var C=e.i(197091);e.s(["List",()=>C.default],53058);var x=e.i(621796);e.s(["useWatch",()=>x.default],923624)},286039,531880,e=>{"use strict";var t=e.i(271645);e.i(495347);var r=e.i(787894),r=r,o=e.i(279697);let n=e=>"object"==typeof e&&null!=e&&1===e.nodeType,a=(e,t)=>(!t||"hidden"!==e)&&"visible"!==e&&"clip"!==e,i=(e,t)=>{if(e.clientHeight{if(!e.ownerDocument||!e.ownerDocument.defaultView)return null;try{return e.ownerDocument.defaultView.frameElement}catch(e){return null}})(e))&&(r.clientHeightat||a>e&&i=t&&l>=r?a-e-o:i>t&&lr?i-t+n:0,s=e=>{let t=e.parentElement;return null==t?e.getRootNode().host||null:t},c=(e,t)=>{var r,o,a,c;let u;if("u"e!==h;if(!n(e))throw TypeError("Invalid target");let v=document.scrollingElement||document.documentElement,y=[],b=e;for(;n(b)&&g(b);){if((b=s(b))===v){y.push(b);break}null!=b&&b===document.body&&i(b)&&!i(document.documentElement)||null!=b&&i(b,m)&&y.push(b)}let w=null!=(o=null==(r=window.visualViewport)?void 0:r.width)?o:innerWidth,$=null!=(c=null==(a=window.visualViewport)?void 0:a.height)?c:innerHeight,{scrollX:C,scrollY:x}=window,{height:E,width:S,top:k,right:j,bottom:O,left:T}=e.getBoundingClientRect(),{top:I,right:_,bottom:F,left:P}={top:parseFloat((u=window.getComputedStyle(e)).scrollMarginTop)||0,right:parseFloat(u.scrollMarginRight)||0,bottom:parseFloat(u.scrollMarginBottom)||0,left:parseFloat(u.scrollMarginLeft)||0},R="start"===f||"nearest"===f?k-I:"end"===f?O+F:k+E/2-I+F,N="center"===p?T+S/2-P+_:"end"===p?j+_:T-P,M=[];for(let e=0;e=0&&T>=0&&O<=$&&j<=w&&(t===v&&!i(t)||k>=n&&O<=s&&T>=c&&j<=a))break;let u=getComputedStyle(t),h=parseInt(u.borderLeftWidth,10),m=parseInt(u.borderTopWidth,10),g=parseInt(u.borderRightWidth,10),b=parseInt(u.borderBottomWidth,10),I=0,_=0,F="offsetWidth"in t?t.offsetWidth-t.clientWidth-h-g:0,P="offsetHeight"in t?t.offsetHeight-t.clientHeight-m-b:0,B="offsetWidth"in t?0===t.offsetWidth?0:o/t.offsetWidth:0,A="offsetHeight"in t?0===t.offsetHeight?0:r/t.offsetHeight:0;if(v===t)I="start"===f?R:"end"===f?R-$:"nearest"===f?l(x,x+$,$,m,b,x+R,x+R+E,E):R-$/2,_="start"===p?N:"center"===p?N-w/2:"end"===p?N-w:l(C,C+w,w,h,g,C+N,C+N+S,S),I=Math.max(0,I+x),_=Math.max(0,_+C);else{I="start"===f?R-n-m:"end"===f?R-s+b+P:"nearest"===f?l(n,s,r,m,b+P,R,R+E,E):R-(n+r/2)+P/2,_="start"===p?N-c-h:"center"===p?N-(c+o/2)+F/2:"end"===p?N-a+g+F:l(c,a,o,h,g+F,N,N+S,S);let{scrollLeft:e,scrollTop:i}=t;I=0===A?0:Math.max(0,Math.min(i+I/A,t.scrollHeight-r/A+P)),_=0===B?0:Math.max(0,Math.min(e+_/B,t.scrollWidth-o/B+F)),R+=i-I,N+=e-_}M.push({el:t,top:I,left:_})}return M},u=["parentNode"];function d(e){return void 0===e||!1===e?[]:Array.isArray(e)?e:[e]}function f(e,t){if(!e.length)return;let r=e.join("_");return t?`${t}_${r}`:u.includes(r)?`form_item_${r}`:r}e.s(["getFieldId",0,f,"getStatus",0,function(e,t,r,o,n,a){let i=o;return void 0!==a?i=a:r.validating?i="validating":e.length?i="error":t.length?i="warning":(r.touched||n&&r.validated)&&(i="success"),i},"toArray",0,d],531880);var p=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};function h(e){return d(e).join("_")}function m(e,t){let r=t.getFieldInstance(e),n=(0,o.getDOM)(r);if(n)return n;let a=f(d(e),t.__INTERNAL__.name);if(a)return document.getElementById(a)}e.s(["default",0,function(e){let[o]=(0,r.default)(),n=t.useRef({}),a=t.useMemo(()=>null!=e?e:Object.assign(Object.assign({},o),{__INTERNAL__:{itemRef:e=>t=>{let r=h(e);t?n.current[r]=t:delete n.current[r]}},scrollToField:(e,t={})=>{let{focus:r}=t,o=p(t,["focus"]),n=m(e,a);n&&(!function(e,t){let r;if(!e.isConnected||!(e=>{let t=e;for(;t&&t.parentNode;){if(t.parentNode===document)return!0;t=t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentNode}return!1})(e))return;let o={top:parseFloat((r=window.getComputedStyle(e)).scrollMarginTop)||0,right:parseFloat(r.scrollMarginRight)||0,bottom:parseFloat(r.scrollMarginBottom)||0,left:parseFloat(r.scrollMarginLeft)||0};if("object"==typeof t&&"function"==typeof t.behavior)return t.behavior(c(e,t));let n="boolean"==typeof t||null==t?void 0:t.behavior;for(let{el:r,top:a,left:i}of c(e,!1===t?{block:"end",inline:"nearest"}:t===Object(t)&&0!==Object.keys(t).length?t:{block:"start",inline:"nearest"})){let e=a-o.top+o.bottom,t=i-o.left+o.right;r.scroll({top:e,left:t,behavior:n})}}(n,Object.assign({scrollMode:"if-needed",block:"nearest"},o)),r&&a.focusField(e))},focusField:e=>{var t,r;let o=a.getFieldInstance(e);"function"==typeof(null==o?void 0:o.focus)?o.focus():null==(r=null==(t=m(e,a))?void 0:t.focus)||r.call(t)},getFieldInstance:e=>{let t=h(e);return n.current[t]}}),[e,o]);return[a]},"toNamePathStr",0,h],286039)},56117,411412,420422,355268,220489,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(495347);e.i(53058),e.i(923624);var n=e.i(242064),a=e.i(937328),i=e.i(321883),l=e.i(517455),s=e.i(666365),c=e.i(62139),u=e.i(286039),d=e.i(908709),f=e.i(819828),p=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let h=t.forwardRef((e,h)=>{let m=t.useContext(a.default),{getPrefixCls:g,direction:v,requiredMark:y,colon:b,scrollToFirstError:w,className:$,style:C}=(0,n.useComponentConfig)("form"),{prefixCls:x,className:E,rootClassName:S,size:k,disabled:j=m,form:O,colon:T,labelAlign:I,labelWrap:_,labelCol:F,wrapperCol:P,hideRequiredMark:R,layout:N="horizontal",scrollToFirstError:M,requiredMark:B,onFinishFailed:A,name:z,style:L,feedbackIcons:D,variant:H}=e,V=p(e,["prefixCls","className","rootClassName","size","disabled","form","colon","labelAlign","labelWrap","labelCol","wrapperCol","hideRequiredMark","layout","scrollToFirstError","requiredMark","onFinishFailed","name","style","feedbackIcons","variant"]),W=(0,l.default)(k),U=t.useContext(f.default),G=t.useMemo(()=>void 0!==B?B:!R&&(void 0===y||y),[R,B,y]),q=null!=T?T:b,J=g("form",x),K=(0,i.default)(J),[X,Q,Y]=(0,d.default)(J,K),Z=(0,r.default)(J,`${J}-${N}`,{[`${J}-hide-required-mark`]:!1===G,[`${J}-rtl`]:"rtl"===v,[`${J}-${W}`]:W},Y,K,Q,$,E,S),[ee]=(0,u.default)(O),{__INTERNAL__:et}=ee;et.name=z;let er=t.useMemo(()=>({name:z,labelAlign:I,labelCol:F,labelWrap:_,wrapperCol:P,layout:N,colon:q,requiredMark:G,itemRef:et.itemRef,form:ee,feedbackIcons:D}),[z,I,F,P,N,q,G,ee,D]),eo=t.useRef(null);t.useImperativeHandle(h,()=>{var e;return Object.assign(Object.assign({},ee),{nativeElement:null==(e=eo.current)?void 0:e.nativeElement})});let en=(e,t)=>{if(e){let r={block:"nearest"};"object"==typeof e&&(r=Object.assign(Object.assign({},r),e)),ee.scrollToField(t,r)}};return X(t.createElement(c.VariantContext.Provider,{value:H},t.createElement(a.DisabledContextProvider,{disabled:j},t.createElement(s.default.Provider,{value:W},t.createElement(c.FormProvider,{validateMessages:U},t.createElement(c.FormContext.Provider,{value:er},t.createElement(c.NoFormStyle,{status:!0},t.createElement(o.default,Object.assign({id:z},V,{name:z,onFinishFailed:e=>{if(null==A||A(e),e.errorFields.length){let t=e.errorFields[0].name;if(void 0!==M)return void en(M,t);void 0!==w&&en(w,t)}},form:ee,ref:eo,style:Object.assign(Object.assign({},C),L),className:Z})))))))))});e.s(["default",0,h],56117),e.s(["useForm",()=>u.default],411412);var m=e.i(162129);e.s(["Field",()=>m.default],420422);var g=e.i(177886);e.s(["FieldContext",()=>g.default],355268);var v=e.i(786944);e.s(["ListContext",()=>v.default],220489)},522228,893872,857034,606836,e=>{"use strict";var t=e.i(876556);e.s(["default",0,function(e){if("function"==typeof e)return e;let r=(0,t.default)(e);return r.length<=1?r[0]:r}],522228),e.i(247167);var r=e.i(271645),o=e.i(62139);let n=()=>{let{status:e,errors:t=[],warnings:n=[]}=r.useContext(o.FormItemInputContext);return{status:e,errors:t,warnings:n}};n.Context=o.FormItemInputContext,e.s(["default",0,n],893872);var a=e.i(963188);e.s(["default",0,function(e){let[t,o]=r.useState(e),n=r.useRef(null),i=r.useRef([]),l=r.useRef(!1);return r.useEffect(()=>(l.current=!1,()=>{l.current=!0,a.default.cancel(n.current),n.current=null}),[]),[t,function(e){l.current||(null===n.current&&(i.current=[],n.current=(0,a.default)(()=>{n.current=null,o(e=>{let t=e;return i.current.forEach(e=>{t=e(t)}),t})})),i.current.push(e))}]}],857034);var i=e.i(611935);e.s(["default",0,function(){let{itemRef:e}=r.useContext(o.FormContext),t=r.useRef({});return function(r,o){let n=o&&"object"==typeof o&&(0,i.getNodeRef)(o),a=r.join("_");return(t.current.name!==a||t.current.originRef!==n)&&(t.current.name=a,t.current.originRef=n,t.current.ref=(0,i.composeRef)(e(r),n)),t.current.ref}}],606836)},958503,e=>{"use strict";e.s(["addMediaQueryListener",0,(e,t)=>{void 0!==(null==e?void 0:e.addEventListener)?e.addEventListener("change",t):void 0!==(null==e?void 0:e.addListener)&&e.addListener(t)},"removeMediaQueryListener",0,(e,t)=>{void 0!==(null==e?void 0:e.removeEventListener)?e.removeEventListener("change",t):void 0!==(null==e?void 0:e.removeListener)&&e.removeListener(t)}])},908206,e=>{"use strict";var t=e.i(271645),r=e.i(104458),o=e.i(958503);let n=["xxl","xl","lg","md","sm","xs"];e.s(["default",0,()=>{let e,[,a]=(0,r.useToken)(),i=((e=[].concat(n).reverse()).forEach((t,r)=>{let o=t.toUpperCase(),n=`screen${o}Min`,i=`screen${o}`;if(!(a[n]<=a[i]))throw Error(`${n}<=${i} fails : !(${a[n]}<=${a[i]})`);if(r{let e=new Map,t=-1,r={};return{responsiveMap:i,matchHandlers:{},dispatch:t=>(r=t,e.forEach(e=>e(r)),e.size>=1),subscribe(o){return e.size||this.register(),t+=1,e.set(t,o),o(r),t},unsubscribe(t){e.delete(t),e.size||this.unregister()},register(){Object.entries(i).forEach(([e,t])=>{let n=({matches:t})=>{this.dispatch(Object.assign(Object.assign({},r),{[e]:t}))},a=window.matchMedia(t);(0,o.addMediaQueryListener)(a,n),this.matchHandlers[t]={mql:a,listener:n},n(a)})},unregister(){Object.values(i).forEach(e=>{let t=this.matchHandlers[e];(0,o.removeMediaQueryListener)(null==t?void 0:t.mql,null==t?void 0:t.listener)}),e.clear()}}},[i])},"matchScreen",0,(e,t)=>{if(t){for(let r of n)if(e[r]&&(null==t?void 0:t[r])!==void 0)return t[r]}},"responsiveArray",0,n])},149809,e=>{"use strict";var t=e.i(271645);e.s(["useForceUpdate",0,()=>t.default.useReducer(e=>e+1,0)])},150073,e=>{"use strict";var t=e.i(271645),r=e.i(174428),o=e.i(149809),n=e.i(908206);e.s(["default",0,function(e=!0,a={}){let i=(0,t.useRef)(a),[,l]=(0,o.useForceUpdate)(),s=(0,n.default)();return(0,r.default)(()=>{let t=s.subscribe(t=>{i.current=t,e&&l()});return()=>s.unsubscribe(t)},[]),i.current}])},39874,559442,e=>{"use strict";var t=e.i(908206);e.s(["default",0,function(e,r){let o=[void 0,void 0],n=Array.isArray(e)?e:[e,void 0],a=r||{xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0};return n.forEach((e,r)=>{if("object"==typeof e&&null!==e)for(let n=0;n{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(908206),n=e.i(242064),a=e.i(150073),i=e.i(39874),l=e.i(559442),s=e.i(756570),c=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};function u(e,r){let[n,a]=t.useState("string"==typeof e?e:"");return t.useEffect(()=>{(()=>{if("string"==typeof e&&a(e),"object"==typeof e)for(let t=0;t{let{prefixCls:d,justify:f,align:p,className:h,style:m,children:g,gutter:v=0,wrap:y}=e,b=c(e,["prefixCls","justify","align","className","style","children","gutter","wrap"]),{getPrefixCls:w,direction:$}=t.useContext(n.ConfigContext),C=(0,a.default)(!0,null),x=u(p,C),E=u(f,C),S=w("row",d),[k,j,O]=(0,s.useRowStyle)(S),T=(0,i.default)(v,C),I=(0,r.default)(S,{[`${S}-no-wrap`]:!1===y,[`${S}-${E}`]:E,[`${S}-${x}`]:x,[`${S}-rtl`]:"rtl"===$},h,j,O),_={};if(null==T?void 0:T[0]){let e="number"==typeof T[0]?`${-(T[0]/2)}px`:`calc(${T[0]} / -2)`;_.marginLeft=e,_.marginRight=e}let[F,P]=T;_.rowGap=P;let R=t.useMemo(()=>({gutter:[F,P],wrap:y}),[F,P,y]);return k(t.createElement(l.default.Provider,{value:R},t.createElement("div",Object.assign({},b,{className:I,style:Object.assign(Object.assign({},_),m),ref:o}),g)))});e.s(["Row",0,d],264042),e.i(62664);var f=e.i(657791),f=f,p=e.i(349057),p=p,h=e.i(174428),m=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};function g(e){return"auto"===e?"1 1 auto":"number"==typeof e?`${e} ${e} auto`:/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?`0 0 ${e}`:e}let v=["xs","sm","md","lg","xl","xxl"],y=t.forwardRef((e,o)=>{let{getPrefixCls:a,direction:i}=t.useContext(n.ConfigContext),{gutter:c,wrap:u}=t.useContext(l.default),{prefixCls:d,span:f,order:p,offset:h,push:y,pull:b,className:w,children:$,flex:C,style:x}=e,E=m(e,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),S=a("col",d),[k,j,O]=(0,s.useColStyle)(S),T={},I={};v.forEach(t=>{let r={},o=e[t];"number"==typeof o?r.span=o:"object"==typeof o&&(r=o||{}),delete E[t],I=Object.assign(Object.assign({},I),{[`${S}-${t}-${r.span}`]:void 0!==r.span,[`${S}-${t}-order-${r.order}`]:r.order||0===r.order,[`${S}-${t}-offset-${r.offset}`]:r.offset||0===r.offset,[`${S}-${t}-push-${r.push}`]:r.push||0===r.push,[`${S}-${t}-pull-${r.pull}`]:r.pull||0===r.pull,[`${S}-rtl`]:"rtl"===i}),r.flex&&(I[`${S}-${t}-flex`]=!0,T[`--${S}-${t}-flex`]=g(r.flex))});let _=(0,r.default)(S,{[`${S}-${f}`]:void 0!==f,[`${S}-order-${p}`]:p,[`${S}-offset-${h}`]:h,[`${S}-push-${y}`]:y,[`${S}-pull-${b}`]:b},w,I,j,O),F={};if(null==c?void 0:c[0]){let e="number"==typeof c[0]?`${c[0]/2}px`:`calc(${c[0]} / 2)`;F.paddingLeft=e,F.paddingRight=e}return C&&(F.flex=g(C),!1!==u||F.minWidth||(F.minWidth=0)),k(t.createElement("div",Object.assign({},E,{style:Object.assign(Object.assign(Object.assign({},F),x),T),className:_,ref:o}),$))});e.s(["default",0,y],131757);var b=e.i(62139),w=e.i(782074),$=e.i(908709);let C=(0,e.i(246422).genSubStyleComponent)(["Form","item-item"],(e,{rootPrefixCls:t})=>(e=>{let{formItemCls:t}=e;return{"@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none)":{[`${t}-control`]:{display:"flex"}}}})((0,$.prepareToken)(e,t)));var x=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};e.s(["default",0,e=>{let{prefixCls:o,status:n,labelCol:a,wrapperCol:i,children:l,errors:s,warnings:c,_internalItemRender:u,extra:d,help:m,fieldId:g,marginBottom:v,onErrorVisibleChanged:$,label:E}=e,S=`${o}-item`,k=t.useContext(b.FormContext),j=t.useMemo(()=>{let e=Object.assign({},i||k.wrapperCol||{});return null!==E||a||i||!k.labelCol||[void 0,"xs","sm","md","lg","xl","xxl"].forEach(t=>{let r=t?[t]:[],o=(0,f.default)(k.labelCol,r),n="object"==typeof o?o:{},a=(0,f.default)(e,r);"span"in n&&!("offset"in("object"==typeof a?a:{}))&&n.span<24&&(e=(0,p.default)(e,[].concat(r,["offset"]),n.span))}),e},[i,k.wrapperCol,k.labelCol,E,a]),O=(0,r.default)(`${S}-control`,j.className),T=t.useMemo(()=>{let{labelCol:e,wrapperCol:t}=k;return x(k,["labelCol","wrapperCol"])},[k]),I=t.useRef(null),[_,F]=t.useState(0);(0,h.default)(()=>{d&&I.current?F(I.current.clientHeight):F(0)},[d]);let P=t.createElement("div",{className:`${S}-control-input`},t.createElement("div",{className:`${S}-control-input-content`},l)),R=t.useMemo(()=>({prefixCls:o,status:n}),[o,n]),N=null!==v||s.length||c.length?t.createElement(b.FormItemPrefixContext.Provider,{value:R},t.createElement(w.default,{fieldId:g,errors:s,warnings:c,help:m,helpStatus:n,className:`${S}-explain-connected`,onVisibleChanged:$})):null,M={};g&&(M.id=`${g}_extra`);let B=d?t.createElement("div",Object.assign({},M,{className:`${S}-extra`,ref:I}),d):null,A=N||B?t.createElement("div",{className:`${S}-additional`,style:v?{minHeight:v+_}:{}},N,B):null,z=u&&"pro_table_render"===u.mark&&u.render?u.render(e,{input:P,errorList:N,extra:B}):t.createElement(t.Fragment,null,P,A);return t.createElement(b.FormContext.Provider,{value:T},t.createElement(y,Object.assign({},j,{className:O}),z),t.createElement(C,{prefixCls:o}))}],292169)},684024,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"question-circle",theme:"outlined"};var n=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(n.default,(0,t.default)({},e,{ref:a,icon:o}))});e.s(["default",0,a],684024)},995144,e=>{"use strict";var t=e.i(271645);e.s(["default",0,function(e){return null==e?null:"object"!=typeof e||(0,t.isValidElement)(e)?{title:e}:e}])},808613,905536,e=>{"use strict";e.i(247167);var t=e.i(62139),r=e.i(782074),o=e.i(56117),n=e.i(411412),a=e.i(923624),i=e.i(8211),l=e.i(271645),s=e.i(343794);e.i(495347);var c=e.i(420422),u=e.i(355268),d=e.i(220489),f=e.i(290967),p=e.i(611935),h=e.i(763731),m=e.i(747656),g=e.i(242064),v=e.i(321883),y=e.i(522228),b=e.i(893872),w=e.i(857034),$=e.i(606836),C=e.i(908709),x=e.i(531880),E=e.i(606262),S=e.i(174428),k=e.i(529681),j=e.i(264042),O=e.i(292169),T=e.i(684024),I=e.i(995144),_=e.i(131757),F=e.i(408850),P=e.i(87414),R=e.i(491816),N=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let M=({prefixCls:e,label:r,htmlFor:o,labelCol:n,labelAlign:a,colon:i,required:c,requiredMark:u,tooltip:d,vertical:f})=>{var p;let h,[m]=(0,F.useLocale)("Form"),{labelAlign:g,labelCol:v,labelWrap:y,colon:b}=l.useContext(t.FormContext);if(!r)return null;let w=n||v||{},$=`${e}-item-label`,C=(0,s.default)($,"left"===(a||g)&&`${$}-left`,w.className,{[`${$}-wrap`]:!!y}),x=r,E=!0===i||!1!==b&&!1!==i;E&&!f&&"string"==typeof r&&r.trim()&&(x=r.replace(/[:|:]\s*$/,""));let S=(0,I.default)(d);if(S){let{icon:t=l.createElement(T.default,null)}=S,r=N(S,["icon"]),o=l.createElement(R.default,Object.assign({},r),l.cloneElement(t,{className:`${e}-item-tooltip`,title:"",onClick:e=>{e.preventDefault()},tabIndex:null}));x=l.createElement(l.Fragment,null,x,o)}let k="optional"===u,j="function"==typeof u;j?x=u(x,{required:!!c}):k&&!c&&(x=l.createElement(l.Fragment,null,x,l.createElement("span",{className:`${e}-item-optional`,title:""},(null==m?void 0:m.optional)||(null==(p=P.default.Form)?void 0:p.optional)))),!1===u?h="hidden":(k||j)&&(h="optional");let O=(0,s.default)({[`${e}-item-required`]:c,[`${e}-item-required-mark-${h}`]:h,[`${e}-item-no-colon`]:!E});return l.createElement(_.default,Object.assign({},w,{className:C}),l.createElement("label",{htmlFor:o,className:O,title:"string"==typeof r?r:""},x))};var B=e.i(830919),A=e.i(201072),z=e.i(726289),L=e.i(562901),D=e.i(739295);let H={success:A.default,warning:L.default,error:z.default,validating:D.default};function V({children:e,errors:r,warnings:o,hasFeedback:n,validateStatus:a,prefixCls:i,meta:c,noStyle:u,name:d}){let f=`${i}-item`,{feedbackIcons:p}=l.useContext(t.FormContext),h=(0,x.getStatus)(r,o,c,null,!!n,a),{isFormItemInput:m,status:g,hasFeedback:v,feedbackIcon:y,name:b}=l.useContext(t.FormItemInputContext),w=l.useMemo(()=>{var e;let t;if(n){let a=!0!==n&&n.icons||p,i=h&&(null==(e=null==a?void 0:a({status:h,errors:r,warnings:o}))?void 0:e[h]),c=h?H[h]:null;t=!1!==i&&c?l.createElement("span",{className:(0,s.default)(`${f}-feedback-icon`,`${f}-feedback-icon-${h}`)},i||l.createElement(c,null)):null}let a={status:h||"",errors:r,warnings:o,hasFeedback:!!n,feedbackIcon:t,isFormItemInput:!0,name:d};return u&&(a.status=(null!=h?h:g)||"",a.isFormItemInput=m,a.hasFeedback=!!(null!=n?n:v),a.feedbackIcon=void 0!==n?a.feedbackIcon:y,a.name=null!=d?d:b),a},[h,n,u,m,g]);return l.createElement(t.FormItemInputContext.Provider,{value:w},e)}var W=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};function U(e){let{prefixCls:r,className:o,rootClassName:n,style:a,help:i,errors:c,warnings:u,validateStatus:d,meta:f,hasFeedback:p,hidden:h,children:m,fieldId:g,required:v,isRequired:y,onSubItemMetaChange:b,layout:w,name:$}=e,C=W(e,["prefixCls","className","rootClassName","style","help","errors","warnings","validateStatus","meta","hasFeedback","hidden","children","fieldId","required","isRequired","onSubItemMetaChange","layout","name"]),T=`${r}-item`,{requiredMark:I,layout:_}=l.useContext(t.FormContext),F=w||_,P="vertical"===F,R=l.useRef(null),N=(0,B.default)(c),A=(0,B.default)(u),z=null!=i,L=!!(z||c.length||u.length),D=!!R.current&&(0,E.default)(R.current),[H,U]=l.useState(null);(0,S.default)(()=>{L&&R.current&&U(Number.parseInt(getComputedStyle(R.current).marginBottom,10))},[L,D]);let G=((e=!1)=>{let t=e?N:f.errors,r=e?A:f.warnings;return(0,x.getStatus)(t,r,f,"",!!p,d)})(),q=(0,s.default)(T,o,n,{[`${T}-with-help`]:z||N.length||A.length,[`${T}-has-feedback`]:G&&p,[`${T}-has-success`]:"success"===G,[`${T}-has-warning`]:"warning"===G,[`${T}-has-error`]:"error"===G,[`${T}-is-validating`]:"validating"===G,[`${T}-hidden`]:h,[`${T}-${F}`]:F});return l.createElement("div",{className:q,style:a,ref:R},l.createElement(j.Row,Object.assign({className:`${T}-row`},(0,k.default)(C,["_internalItemRender","colon","dependencies","extra","fieldKey","getValueFromEvent","getValueProps","htmlFor","id","initialValue","isListField","label","labelAlign","labelCol","labelWrap","messageVariables","name","normalize","noStyle","preserve","requiredMark","rules","shouldUpdate","trigger","tooltip","validateFirst","validateTrigger","valuePropName","wrapperCol","validateDebounce"])),l.createElement(M,Object.assign({htmlFor:g},e,{requiredMark:I,required:null!=v?v:y,prefixCls:r,vertical:P})),l.createElement(O.default,Object.assign({},e,f,{errors:N,warnings:A,prefixCls:r,status:G,help:i,marginBottom:H,onErrorVisibleChanged:e=>{e||U(null)}}),l.createElement(t.NoStyleItemContext.Provider,{value:b},l.createElement(V,{prefixCls:r,meta:f,errors:f.errors,warnings:f.warnings,hasFeedback:p,validateStatus:G,name:$},m)))),!!H&&l.createElement("div",{className:`${T}-margin-offset`,style:{marginBottom:-H}}))}let G=l.memo(({children:e})=>e,(e,t)=>{var r,o;let n,a;return r=e.control,o=t.control,n=Object.keys(r),a=Object.keys(o),n.length===a.length&&n.every(e=>{let t=r[e],n=o[e];return t===n||"function"==typeof t||"function"==typeof n})&&e.update===t.update&&e.childProps.length===t.childProps.length&&e.childProps.every((e,r)=>e===t.childProps[r])});function q(){return{errors:[],warnings:[],touched:!1,validating:!1,name:[],validated:!1}}let J=function(e){let{name:r,noStyle:o,className:n,dependencies:a,prefixCls:b,shouldUpdate:E,rules:S,children:k,required:j,label:O,messageVariables:T,trigger:I="onChange",validateTrigger:_,hidden:F,help:P,layout:R}=e,{getPrefixCls:N}=l.useContext(g.ConfigContext),{name:M}=l.useContext(t.FormContext),B=(0,y.default)(k),A="function"==typeof B,z=l.useContext(t.NoStyleItemContext),{validateTrigger:L}=l.useContext(u.FieldContext),D=void 0!==_?_:L,H=null!=r,W=N("form",b),J=(0,v.default)(W),[K,X,Q]=(0,C.default)(W,J);(0,m.devUseWarning)("Form.Item");let Y=l.useContext(d.ListContext),Z=l.useRef(null),[ee,et]=(0,w.default)({}),[er,eo]=(0,f.default)(()=>q()),en=(e,t)=>{et(r=>{let o=Object.assign({},r),n=[].concat((0,i.default)(e.name.slice(0,-1)),(0,i.default)(t)).join("__SPLIT__");return e.destroy?delete o[n]:o[n]=e,o})},[ea,ei]=l.useMemo(()=>{let e=(0,i.default)(er.errors),t=(0,i.default)(er.warnings);return Object.values(ee).forEach(r=>{e.push.apply(e,(0,i.default)(r.errors||[])),t.push.apply(t,(0,i.default)(r.warnings||[]))}),[e,t]},[ee,er.errors,er.warnings]),el=(0,$.default)();function es(t,a,i){return o&&!F?l.createElement(V,{prefixCls:W,hasFeedback:e.hasFeedback,validateStatus:e.validateStatus,meta:er,errors:ea,warnings:ei,noStyle:!0,name:r},t):l.createElement(U,Object.assign({key:"row"},e,{className:(0,s.default)(n,Q,J,X),prefixCls:W,fieldId:a,isRequired:i,errors:ea,warnings:ei,meta:er,onSubItemMetaChange:en,layout:R,name:r}),t)}if(!H&&!A&&!a)return K(es(B));let ec={};return"string"==typeof O?ec.label=O:r&&(ec.label=String(r)),T&&(ec=Object.assign(Object.assign({},ec),T)),K(l.createElement(c.Field,Object.assign({},e,{messageVariables:ec,trigger:I,validateTrigger:D,onMetaChange:e=>{let t=null==Y?void 0:Y.getKey(e.name);if(eo(e.destroy?q():e,!0),o&&!1!==P&&z){let r=e.name;if(e.destroy)r=Z.current||r;else if(void 0!==t){let[e,o]=t;Z.current=r=[e].concat((0,i.default)(o))}z(e,r)}}}),(t,o,n)=>{let s=(0,x.toArray)(r).length&&o?o.name:[],c=(0,x.getFieldId)(s,M),u=void 0!==j?j:!!(null==S?void 0:S.some(e=>{if(e&&"object"==typeof e&&e.required&&!e.warningOnly)return!0;if("function"==typeof e){let t=e(n);return(null==t?void 0:t.required)&&!(null==t?void 0:t.warningOnly)}return!1})),d=Object.assign({},t),f=null;if(Array.isArray(B)&&H)f=B;else if(A&&(!(E||a)||H));else if(!a||A||H)if(l.isValidElement(B)){let t=Object.assign(Object.assign({},B.props),d);if(t.id||(t.id=c),P||ea.length>0||ei.length>0||e.extra){let r=[];(P||ea.length>0)&&r.push(`${c}_help`),e.extra&&r.push(`${c}_extra`),t["aria-describedby"]=r.join(" ")}ea.length>0&&(t["aria-invalid"]="true"),u&&(t["aria-required"]="true"),(0,p.supportRef)(B)&&(t.ref=el(s,B)),new Set([].concat((0,i.default)((0,x.toArray)(I)),(0,i.default)((0,x.toArray)(D)))).forEach(e=>{t[e]=(...t)=>{var r,o,n;null==(r=d[e])||r.call.apply(r,[d].concat(t)),null==(n=(o=B.props)[e])||n.call.apply(n,[o].concat(t))}});let r=[t["aria-required"],t["aria-invalid"],t["aria-describedby"]];f=l.createElement(G,{control:d,update:B,childProps:r},(0,h.cloneElement)(B,t))}else f=A&&(E||a)&&!H?B(n):B;return es(f,c,u)}))};J.useStatus=b.default,e.s(["default",0,J],905536);var K=e.i(53058),X=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let Q=o.default;Q.Item=J,Q.List=e=>{var{prefixCls:r,children:o}=e,n=X(e,["prefixCls","children"]);let{getPrefixCls:a}=l.useContext(g.ConfigContext),i=a("form",r),s=l.useMemo(()=>({prefixCls:i,status:"error"}),[i]);return l.createElement(K.List,Object.assign({},n),(e,r,n)=>l.createElement(t.FormItemPrefixContext.Provider,{value:s},o(e.map(e=>Object.assign(Object.assign({},e),{fieldKey:e.key})),r,{errors:n.errors,warnings:n.warnings})))},Q.ErrorList=r.default,Q.useForm=n.useForm,Q.useFormInstance=function(){let{form:e}=l.useContext(t.FormContext);return e},Q.useWatch=a.useWatch,Q.Provider=t.FormProvider,Q.create=()=>{},e.s(["Form",0,Q],808613)},121229,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"}}]},name:"check",theme:"outlined"};var n=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(n.default,(0,t.default)({},e,{ref:a,icon:o}))});e.s(["default",0,a],121229)},268004,909119,e=>{"use strict";let t="mcp-session-token:";function r(e,r){let o=r?.trim()||"_anonymous";return`${t}${o}:${e}`}function o(e,t){try{let o=window.sessionStorage.getItem(r(e,t));if(!o)return null;return JSON.parse(o)}catch{return null}}function n(){try{let e=[];for(let r=0;rwindow.sessionStorage.removeItem(e))}catch{}}function a(){let e=window.location.pathname.match(/\/ui(?=\/|$)/);return e&&void 0!==e.index?window.location.pathname.substring(0,e.index+3):"/ui"}e.s(["clearAllMcpTokens",0,n,"getToken",0,o,"isTokenValid",0,function(e,t){let r=o(e,t);return!!r&&r.expires_at>Date.now()},"removeToken",0,function(e,t){try{window.sessionStorage.removeItem(r(e,t))}catch{}},"setToken",0,function(e,t,o){let n={access_token:t.access_token,expires_at:Date.now()+(null!=t.expires_in?1e3*t.expires_in:36e5),token_type:t.token_type??"bearer",...t.refresh_token?{refresh_token:t.refresh_token}:{}};try{window.sessionStorage.setItem(r(e,o),JSON.stringify(n))}catch{}}],909119),e.s(["clearTokenCookies",0,function(){if("u"{document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t};`,document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${e};`,o.forEach(r=>{let o="None"===r?" Secure;":"";document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; SameSite=${r};${o}`,document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${e}; SameSite=${r};${o}`})});try{sessionStorage.removeItem("token")}catch{}n()},"getCookie",0,function(e){if("u"t.startsWith(e+"="));if(t){let e=t.split("=").slice(1).join("=");try{return decodeURIComponent(e)}catch{return e}}if("token"===e)try{return sessionStorage.getItem(e)}catch{}return null},"storeLoginToken",0,function(e){if(e&&e.trim()){try{let t="https:"===window.location.protocol?"; Secure":"",r=a();document.cookie=`token=${encodeURIComponent(e)}; path=${r}; SameSite=Lax${t}`}catch{}try{sessionStorage.setItem("token",e)}catch{}}}],268004)},349942,517458,889943,e=>{"use strict";e.i(296059);var t=e.i(915654),r=e.i(183293),o=e.i(372409),n=e.i(246422),a=e.i(838378);function i(e){return(0,a.mergeToken)(e,{inputAffixPadding:e.paddingXXS})}let l=e=>{let{controlHeight:t,fontSize:r,lineHeight:o,lineWidth:n,controlHeightSM:a,controlHeightLG:i,fontSizeLG:l,lineHeightLG:s,paddingSM:c,controlPaddingHorizontalSM:u,controlPaddingHorizontal:d,colorFillAlter:f,colorPrimaryHover:p,colorPrimary:h,controlOutlineWidth:m,controlOutline:g,colorErrorOutline:v,colorWarningOutline:y,colorBgContainer:b,inputFontSize:w,inputFontSizeLG:$,inputFontSizeSM:C}=e,x=w||r,E=C||x,S=$||l;return{paddingBlock:Math.max(Math.round((t-x*o)/2*10)/10-n,0),paddingBlockSM:Math.max(Math.round((a-E*o)/2*10)/10-n,0),paddingBlockLG:Math.max(Math.ceil((i-S*s)/2*10)/10-n,0),paddingInline:c-n,paddingInlineSM:u-n,paddingInlineLG:d-n,addonBg:f,activeBorderColor:h,hoverBorderColor:p,activeShadow:`0 0 0 ${m}px ${g}`,errorActiveShadow:`0 0 0 ${m}px ${v}`,warningActiveShadow:`0 0 0 ${m}px ${y}`,hoverBg:b,activeBg:b,inputFontSize:x,inputFontSizeLG:S,inputFontSizeSM:E}};e.s(["initComponentToken",0,l,"initInputToken",0,i],517458);let s=e=>{let t;return{color:e.colorTextDisabled,backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,boxShadow:"none",cursor:"not-allowed",opacity:1,"input[disabled], textarea[disabled]":{cursor:"not-allowed"},"&:hover:not([disabled])":Object.assign({},{borderColor:(t=(0,a.mergeToken)(e,{hoverBorderColor:e.colorBorder,hoverBg:e.colorBgContainerDisabled})).hoverBorderColor,backgroundColor:t.hoverBg})}},c=(e,t)=>({background:e.colorBgContainer,borderWidth:e.lineWidth,borderStyle:e.lineType,borderColor:t.borderColor,"&:hover":{borderColor:t.hoverBorderColor,backgroundColor:e.hoverBg},"&:focus, &:focus-within":{borderColor:t.activeBorderColor,boxShadow:t.activeShadow,outline:0,backgroundColor:e.activeBg}}),u=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},c(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}}),[`&${e.componentCls}-status-${t.status}${e.componentCls}-disabled`]:{borderColor:t.borderColor}}),d=(e,t)=>({"&-outlined":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},c(e,{borderColor:e.colorBorder,hoverBorderColor:e.hoverBorderColor,activeBorderColor:e.activeBorderColor,activeShadow:e.activeShadow})),{[`&${e.componentCls}-disabled, &[disabled]`]:Object.assign({},s(e))}),u(e,{status:"error",borderColor:e.colorError,hoverBorderColor:e.colorErrorBorderHover,activeBorderColor:e.colorError,activeShadow:e.errorActiveShadow,affixColor:e.colorError})),u(e,{status:"warning",borderColor:e.colorWarning,hoverBorderColor:e.colorWarningBorderHover,activeBorderColor:e.colorWarning,activeShadow:e.warningActiveShadow,affixColor:e.colorWarning})),t)}),f=(e,t)=>({[`&${e.componentCls}-group-wrapper-status-${t.status}`]:{[`${e.componentCls}-group-addon`]:{borderColor:t.addonBorderColor,color:t.addonColor}}}),p=e=>({"&-outlined":Object.assign(Object.assign(Object.assign({[`${e.componentCls}-group`]:{"&-addon":{background:e.addonBg,border:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},"&-addon:first-child":{borderInlineEnd:0},"&-addon:last-child":{borderInlineStart:0}}},f(e,{status:"error",addonBorderColor:e.colorError,addonColor:e.colorErrorText})),f(e,{status:"warning",addonBorderColor:e.colorWarning,addonColor:e.colorWarningText})),{[`&${e.componentCls}-group-wrapper-disabled`]:{[`${e.componentCls}-group-addon`]:Object.assign({},s(e))}})}),h=(e,t)=>{let{componentCls:r}=e;return{"&-borderless":Object.assign({background:"transparent",border:"none","&:focus, &:focus-within":{outline:"none"},[`&${r}-disabled, &[disabled]`]:{color:e.colorTextDisabled,cursor:"not-allowed"},[`&${r}-status-error`]:{"&, & input, & textarea":{color:e.colorError}},[`&${r}-status-warning`]:{"&, & input, & textarea":{color:e.colorWarning}}},t)}},m=(e,t)=>{var r;return{background:t.bg,borderWidth:e.lineWidth,borderStyle:e.lineType,borderColor:"transparent","input&, & input, textarea&, & textarea":{color:null!=(r=null==t?void 0:t.inputColor)?r:"unset"},"&:hover":{background:t.hoverBg},"&:focus, &:focus-within":{outline:0,borderColor:t.activeBorderColor,backgroundColor:e.activeBg}}},g=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},m(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}})}),v=(e,t)=>({"&-filled":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},m(e,{bg:e.colorFillTertiary,hoverBg:e.colorFillSecondary,activeBorderColor:e.activeBorderColor})),{[`&${e.componentCls}-disabled, &[disabled]`]:Object.assign({},s(e))}),g(e,{status:"error",bg:e.colorErrorBg,hoverBg:e.colorErrorBgHover,activeBorderColor:e.colorError,inputColor:e.colorErrorText,affixColor:e.colorError})),g(e,{status:"warning",bg:e.colorWarningBg,hoverBg:e.colorWarningBgHover,activeBorderColor:e.colorWarning,inputColor:e.colorWarningText,affixColor:e.colorWarning})),t)}),y=(e,t)=>({[`&${e.componentCls}-group-wrapper-status-${t.status}`]:{[`${e.componentCls}-group-addon`]:{background:t.addonBg,color:t.addonColor}}}),b=e=>({"&-filled":Object.assign(Object.assign(Object.assign({[`${e.componentCls}-group-addon`]:{background:e.colorFillTertiary,"&:last-child":{position:"static"}}},y(e,{status:"error",addonBg:e.colorErrorBg,addonColor:e.colorErrorText})),y(e,{status:"warning",addonBg:e.colorWarningBg,addonColor:e.colorWarningText})),{[`&${e.componentCls}-group-wrapper-disabled`]:{[`${e.componentCls}-group`]:{"&-addon":{background:e.colorFillTertiary,color:e.colorTextDisabled},"&-addon:first-child":{borderInlineStart:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderTop:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderBottom:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},"&-addon:last-child":{borderInlineEnd:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderTop:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderBottom:`${(0,t.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`}}}})}),w=(e,r)=>({background:e.colorBgContainer,borderWidth:`${(0,t.unit)(e.lineWidth)} 0`,borderStyle:`${e.lineType} none`,borderColor:`transparent transparent ${r.borderColor} transparent`,borderRadius:0,"&:hover":{borderColor:`transparent transparent ${r.hoverBorderColor} transparent`,backgroundColor:e.hoverBg},"&:focus, &:focus-within":{borderColor:`transparent transparent ${r.activeBorderColor} transparent`,outline:0,backgroundColor:e.activeBg}}),$=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},w(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}}),[`&${e.componentCls}-status-${t.status}${e.componentCls}-disabled`]:{borderColor:`transparent transparent ${t.borderColor} transparent`}}),C=(e,t)=>({"&-underlined":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},w(e,{borderColor:e.colorBorder,hoverBorderColor:e.hoverBorderColor,activeBorderColor:e.activeBorderColor,activeShadow:e.activeShadow})),{[`&${e.componentCls}-disabled, &[disabled]`]:{color:e.colorTextDisabled,boxShadow:"none",cursor:"not-allowed","&:hover":{borderColor:`transparent transparent ${e.colorBorder} transparent`}},"input[disabled], textarea[disabled]":{cursor:"not-allowed"}}),$(e,{status:"error",borderColor:e.colorError,hoverBorderColor:e.colorErrorBorderHover,activeBorderColor:e.colorError,activeShadow:e.errorActiveShadow,affixColor:e.colorError})),$(e,{status:"warning",borderColor:e.colorWarning,hoverBorderColor:e.colorWarningBorderHover,activeBorderColor:e.colorWarning,activeShadow:e.warningActiveShadow,affixColor:e.colorWarning})),t)});e.s(["genBaseOutlinedStyle",0,c,"genBorderlessStyle",0,h,"genDisabledStyle",0,s,"genFilledGroupStyle",0,b,"genFilledStyle",0,v,"genOutlinedGroupStyle",0,p,"genOutlinedStyle",0,d,"genUnderlinedStyle",0,C],889943);let x=e=>({"&::-moz-placeholder":{opacity:1},"&::placeholder":{color:e,userSelect:"none"},"&:placeholder-shown":{textOverflow:"ellipsis"}}),E=e=>{let{paddingBlockLG:r,lineHeightLG:o,borderRadiusLG:n,paddingInlineLG:a}=e;return{padding:`${(0,t.unit)(r)} ${(0,t.unit)(a)}`,fontSize:e.inputFontSizeLG,lineHeight:o,borderRadius:n}},S=e=>({padding:`${(0,t.unit)(e.paddingBlockSM)} ${(0,t.unit)(e.paddingInlineSM)}`,fontSize:e.inputFontSizeSM,borderRadius:e.borderRadiusSM}),k=e=>Object.assign(Object.assign({position:"relative",display:"inline-block",width:"100%",minWidth:0,padding:`${(0,t.unit)(e.paddingBlock)} ${(0,t.unit)(e.paddingInline)}`,color:e.colorText,fontSize:e.inputFontSize,lineHeight:e.lineHeight,borderRadius:e.borderRadius,transition:`all ${e.motionDurationMid}`},x(e.colorTextPlaceholder)),{"&-lg":Object.assign({},E(e)),"&-sm":Object.assign({},S(e)),"&-rtl, &-textarea-rtl":{direction:"rtl"}}),j=e=>{let{componentCls:o,antCls:n}=e;return{position:"relative",display:"table",width:"100%",borderCollapse:"separate",borderSpacing:0,"&[class*='col-']":{paddingInlineEnd:e.paddingXS,"&:last-child":{paddingInlineEnd:0}},[`&-lg ${o}, &-lg > ${o}-group-addon`]:Object.assign({},E(e)),[`&-sm ${o}, &-sm > ${o}-group-addon`]:Object.assign({},S(e)),[`&-lg ${n}-select-single ${n}-select-selector`]:{height:e.controlHeightLG},[`&-sm ${n}-select-single ${n}-select-selector`]:{height:e.controlHeightSM},[`> ${o}`]:{display:"table-cell","&:not(:first-child):not(:last-child)":{borderRadius:0}},[`${o}-group`]:{"&-addon, &-wrap":{display:"table-cell",width:1,whiteSpace:"nowrap",verticalAlign:"middle","&:not(:first-child):not(:last-child)":{borderRadius:0}},"&-wrap > *":{display:"block !important"},"&-addon":{position:"relative",padding:`0 ${(0,t.unit)(e.paddingInline)}`,color:e.colorText,fontWeight:"normal",fontSize:e.inputFontSize,textAlign:"center",borderRadius:e.borderRadius,transition:`all ${e.motionDurationSlow}`,lineHeight:1,[`${n}-select`]:{margin:`${(0,t.unit)(e.calc(e.paddingBlock).add(1).mul(-1).equal())} ${(0,t.unit)(e.calc(e.paddingInline).mul(-1).equal())}`,[`&${n}-select-single:not(${n}-select-customize-input):not(${n}-pagination-size-changer)`]:{[`${n}-select-selector`]:{backgroundColor:"inherit",border:`${(0,t.unit)(e.lineWidth)} ${e.lineType} transparent`,boxShadow:"none"}}},[`${n}-cascader-picker`]:{margin:`-9px ${(0,t.unit)(e.calc(e.paddingInline).mul(-1).equal())}`,backgroundColor:"transparent",[`${n}-cascader-input`]:{textAlign:"start",border:0,boxShadow:"none"}}}},[o]:{width:"100%",marginBottom:0,textAlign:"inherit","&:focus":{zIndex:1,borderInlineEndWidth:1},"&:hover":{zIndex:1,borderInlineEndWidth:1,[`${o}-search-with-button &`]:{zIndex:0}}},[`> ${o}:first-child, ${o}-group-addon:first-child`]:{borderStartEndRadius:0,borderEndEndRadius:0,[`${n}-select ${n}-select-selector`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${o}-affix-wrapper`]:{[`&:not(:first-child) ${o}`]:{borderStartStartRadius:0,borderEndStartRadius:0},[`&:not(:last-child) ${o}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${o}:last-child, ${o}-group-addon:last-child`]:{borderStartStartRadius:0,borderEndStartRadius:0,[`${n}-select ${n}-select-selector`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`${o}-affix-wrapper`]:{"&:not(:last-child)":{borderStartEndRadius:0,borderEndEndRadius:0,[`${o}-search &`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius}},[`&:not(:first-child), ${o}-search &:not(:first-child)`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&${o}-group-compact`]:Object.assign(Object.assign({display:"block"},(0,r.clearFix)()),{[`${o}-group-addon, ${o}-group-wrap, > ${o}`]:{"&:not(:first-child):not(:last-child)":{borderInlineEndWidth:e.lineWidth,"&:hover, &:focus":{zIndex:1}}},"& > *":{display:"inline-flex",float:"none",verticalAlign:"top",borderRadius:0},[` & > ${o}-affix-wrapper, & > ${o}-number-affix-wrapper, & > ${n}-picker-range @@ -95,4 +95,4 @@ ${u}${d}topRight `]:{animationName:i.slideDownOut},"&-hidden":{display:"none"},[n]:Object.assign(Object.assign({},l(e)),{cursor:"pointer",transition:`background ${e.motionDurationSlow} ease`,borderRadius:e.borderRadiusSM,"&-group":{color:e.colorTextDescription,fontSize:e.fontSizeSM,cursor:"default"},"&-option":{display:"flex","&-content":Object.assign({flex:"auto"},t.textEllipsis),"&-state":{flex:"none",display:"flex",alignItems:"center"},[`&-active:not(${n}-option-disabled)`]:{backgroundColor:e.optionActiveBg},[`&-selected:not(${n}-option-disabled)`]:{color:e.optionSelectedColor,fontWeight:e.optionSelectedFontWeight,backgroundColor:e.optionSelectedBg,[`${n}-option-state`]:{color:e.colorPrimary}},"&-disabled":{[`&${n}-option-selected`]:{backgroundColor:e.colorBgContainerDisabled},color:e.colorTextDisabled,cursor:"not-allowed"},"&-grouped":{paddingInlineStart:e.calc(e.controlPaddingHorizontal).mul(2).equal()}},"&-empty":Object.assign(Object.assign({},l(e)),{color:e.colorTextDisabled})}),[`${f}:has(+ ${f})`]:{borderEndStartRadius:0,borderEndEndRadius:0,[`& + ${f}`]:{borderStartStartRadius:0,borderStartEndRadius:0}},"&-rtl":{direction:"rtl"}})},(0,i.initSlideMotion)(e,"slide-up"),(0,i.initSlideMotion)(e,"slide-down"),(0,a.initMoveMotion)(e,"move-up"),(0,a.initMoveMotion)(e,"move-down")]})(e),{[`${o}-rtl`]:{direction:"rtl"}},(0,r.genCompactItemStyle)(e,{borderElCls:`${o}-selector`,focusElCls:`${o}-focused`})]})(v),{[v.componentCls]:Object.assign(Object.assign(Object.assign(Object.assign({},{"&-outlined":Object.assign(Object.assign(Object.assign(Object.assign({},d(v,{borderColor:v.colorBorder,hoverBorderHover:v.hoverBorderColor,activeBorderColor:v.activeBorderColor,activeOutlineColor:v.activeOutlineColor,color:v.colorText})),f(v,{status:"error",borderColor:v.colorError,hoverBorderHover:v.colorErrorHover,activeBorderColor:v.colorError,activeOutlineColor:v.colorErrorOutline,color:v.colorError})),f(v,{status:"warning",borderColor:v.colorWarning,hoverBorderHover:v.colorWarningHover,activeBorderColor:v.colorWarning,activeOutlineColor:v.colorWarningOutline,color:v.colorWarning})),{[`&${v.componentCls}-disabled`]:{[`&:not(${v.componentCls}-customize-input) ${v.componentCls}-selector`]:{background:v.colorBgContainerDisabled,color:v.colorTextDisabled}},[`&${v.componentCls}-multiple ${v.componentCls}-selection-item`]:{background:v.multipleItemBg,border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} ${v.multipleItemBorderColor}`}})}),{"&-filled":Object.assign(Object.assign(Object.assign(Object.assign({},p(v,{bg:v.colorFillTertiary,hoverBg:v.colorFillSecondary,activeBorderColor:v.activeBorderColor,color:v.colorText})),h(v,{status:"error",bg:v.colorErrorBg,hoverBg:v.colorErrorBgHover,activeBorderColor:v.colorError,color:v.colorError})),h(v,{status:"warning",bg:v.colorWarningBg,hoverBg:v.colorWarningBgHover,activeBorderColor:v.colorWarning,color:v.colorWarning})),{[`&${v.componentCls}-disabled`]:{[`&:not(${v.componentCls}-customize-input) ${v.componentCls}-selector`]:{borderColor:v.colorBorder,background:v.colorBgContainerDisabled,color:v.colorTextDisabled}},[`&${v.componentCls}-multiple ${v.componentCls}-selection-item`]:{background:v.colorBgContainer,border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} ${v.colorSplit}`}})}),{"&-borderless":{[`${v.componentCls}-selector`]:{background:"transparent",border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} transparent`},[`&${v.componentCls}-disabled`]:{[`&:not(${v.componentCls}-customize-input) ${v.componentCls}-selector`]:{color:v.colorTextDisabled}},[`&${v.componentCls}-multiple ${v.componentCls}-selection-item`]:{background:v.multipleItemBg,border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} ${v.multipleItemBorderColor}`},[`&${v.componentCls}-status-error`]:{[`${v.componentCls}-prefix, ${v.componentCls}-selection-item`]:{color:v.colorError}},[`&${v.componentCls}-status-warning`]:{[`${v.componentCls}-prefix, ${v.componentCls}-selection-item`]:{color:v.colorWarning}}}}),{"&-underlined":Object.assign(Object.assign(Object.assign(Object.assign({},m(v,{borderColor:v.colorBorder,hoverBorderHover:v.hoverBorderColor,activeBorderColor:v.activeBorderColor,activeOutlineColor:v.activeOutlineColor,color:v.colorText})),g(v,{status:"error",borderColor:v.colorError,hoverBorderHover:v.colorErrorHover,activeBorderColor:v.colorError,activeOutlineColor:v.colorErrorOutline,color:v.colorError})),g(v,{status:"warning",borderColor:v.colorWarning,hoverBorderHover:v.colorWarningHover,activeBorderColor:v.colorWarning,activeOutlineColor:v.colorWarningOutline,color:v.colorWarning})),{[`&${v.componentCls}-disabled`]:{[`&:not(${v.componentCls}-customize-input) ${v.componentCls}-selector`]:{color:v.colorTextDisabled}},[`&${v.componentCls}-multiple ${v.componentCls}-selection-item`]:{background:v.multipleItemBg,border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} ${v.multipleItemBorderColor}`}})})}]},e=>{let{fontSize:t,lineHeight:r,lineWidth:o,controlHeight:n,controlHeightSM:a,controlHeightLG:i,paddingXXS:l,controlPaddingHorizontal:s,zIndexPopupBase:c,colorText:u,fontWeightStrong:d,controlItemBgActive:f,controlItemBgHover:p,colorBgContainer:h,colorFillSecondary:m,colorBgContainerDisabled:g,colorTextDisabled:v,colorPrimaryHover:y,colorPrimary:b,controlOutline:w}=e,$=2*l,C=2*o,x=Math.min(n-$,n-C),E=Math.min(a-$,a-C),S=Math.min(i-$,i-C);return{INTERNAL_FIXED_ITEM_MARGIN:Math.floor(l/2),zIndexPopup:c+50,optionSelectedColor:u,optionSelectedFontWeight:d,optionSelectedBg:f,optionActiveBg:p,optionPadding:`${(n-t*r)/2}px ${s}px`,optionFontSize:t,optionLineHeight:r,optionHeight:n,selectorBg:h,clearBg:h,singleItemHeightLG:i,multipleItemBg:m,multipleItemBorderColor:"transparent",multipleItemHeight:x,multipleItemHeightSM:E,multipleItemHeightLG:S,multipleSelectorBgDisabled:g,multipleItemColorDisabled:v,multipleItemBorderColorDisabled:"transparent",showArrowPaddingInlineEnd:Math.ceil(1.25*e.fontSize),hoverBorderColor:y,activeBorderColor:b,activeOutlineColor:w,selectAffixPadding:l}},{unitless:{optionLineHeight:!0,optionSelectedFontWeight:!0}});e.s(["default",0,v],950302)},729151,e=>{"use strict";var t=e.i(271645),r=e.i(121229),o=e.i(726289),n=e.i(864517),a=e.i(247153),i=e.i(739295),l=e.i(38953);e.s(["default",0,function({suffixIcon:e,clearIcon:s,menuItemSelectedIcon:c,removeIcon:u,loading:d,multiple:f,hasFeedback:p,prefixCls:h,showSuffixIcon:m,feedbackIcon:g,showArrow:v,componentName:y}){let b=null!=s?s:t.createElement(o.default,null),w=r=>null!==e||p||v?t.createElement(t.Fragment,null,!1!==m&&r,p&&g):null,$=null;if(void 0!==e)$=w(e);else if(d)$=w(t.createElement(i.default,{spin:!0}));else{let e=`${h}-suffix`;$=({open:r,showSearch:o})=>r&&o?w(t.createElement(l.default,{className:e})):w(t.createElement(a.default,{className:e}))}let C=null;C=void 0!==c?c:f?t.createElement(r.default,null):null;return{clearIcon:b,suffixIcon:$,itemIcon:C,removeIcon:void 0!==u?u:t.createElement(n.default,null)}}])},327494,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(123829),n=e.i(955492),a=e.i(869301),i=e.i(529681),l=e.i(122767),s=e.i(613541),c=e.i(805484),u=e.i(52956),d=e.i(242064),f=e.i(721132),p=e.i(937328),h=e.i(321883),m=e.i(517455),g=e.i(62139),v=e.i(792812),y=e.i(249616),b=e.i(104458),w=e.i(85566),$=e.i(950302),C=e.i(729151),x=e.i(617206),E=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let S="SECRET_COMBOBOX_MODE_DO_NOT_USE",k=t.forwardRef((e,n)=>{var a,c,k,j,O,T,I,_;let F,{prefixCls:P,bordered:R,className:N,rootClassName:M,getPopupContainer:B,popupClassName:A,dropdownClassName:z,listHeight:L=256,placement:D,listItemHeight:H,size:V,disabled:W,notFoundContent:U,status:G,builtinPlacements:q,dropdownMatchSelectWidth:J,popupMatchSelectWidth:K,direction:X,style:Q,allowClear:Y,variant:Z,dropdownStyle:ee,transitionName:et,tagRender:er,maxCount:eo,prefix:en,dropdownRender:ea,popupRender:ei,onDropdownVisibleChange:el,onOpenChange:es,styles:ec,classNames:eu}=e,ed=E(e,["prefixCls","bordered","className","rootClassName","getPopupContainer","popupClassName","dropdownClassName","listHeight","placement","listItemHeight","size","disabled","notFoundContent","status","builtinPlacements","dropdownMatchSelectWidth","popupMatchSelectWidth","direction","style","allowClear","variant","dropdownStyle","transitionName","tagRender","maxCount","prefix","dropdownRender","popupRender","onDropdownVisibleChange","onOpenChange","styles","classNames"]),{getPopupContainer:ef,getPrefixCls:ep,renderEmpty:eh,direction:em,virtual:eg,popupMatchSelectWidth:ev,popupOverflow:ey}=t.useContext(d.ConfigContext),{showSearch:eb,style:ew,styles:e$,className:eC,classNames:ex}=(0,d.useComponentConfig)("select"),[,eE]=(0,b.useToken)(),eS=null!=H?H:null==eE?void 0:eE.controlHeight,ek=ep("select",P),ej=ep(),eO=null!=X?X:em,{compactSize:eT,compactItemClassnames:eI}=(0,y.useCompactItemContext)(ek,eO),[e_,eF]=(0,v.default)("select",Z,R),eP=(0,h.default)(ek),[eR,eN,eM]=(0,$.default)(ek,eP),eB=t.useMemo(()=>{let{mode:t}=e;if("combobox"!==t)return t===S?"combobox":t},[e.mode]),eA="multiple"===eB||"tags"===eB,ez=(T=e.suffixIcon,void 0!==(I=e.showArrow)?I:null!==T),eL=null!=(a=null!=K?K:J)?a:ev,eD=(null==(c=null==ec?void 0:ec.popup)?void 0:c.root)||(null==(k=e$.popup)?void 0:k.root)||ee,eH=(_=ei||ea,t.default.useMemo(()=>{if(_)return(...e)=>t.default.createElement(x.default,{space:!0},_.apply(void 0,e))},[_])),{status:eV,hasFeedback:eW,isFormItemInput:eU,feedbackIcon:eG}=t.useContext(g.FormItemInputContext),eq=(0,u.getMergedStatus)(eV,G);F=void 0!==U?U:"combobox"===eB?null:(null==eh?void 0:eh("Select"))||t.createElement(f.default,{componentName:"Select"});let{suffixIcon:eJ,itemIcon:eK,removeIcon:eX,clearIcon:eQ}=(0,C.default)(Object.assign(Object.assign({},ed),{multiple:eA,hasFeedback:eW,feedbackIcon:eG,showSuffixIcon:ez,prefixCls:ek,componentName:"Select"})),eY=(0,i.default)(ed,["suffixIcon","itemIcon"]),eZ=(0,r.default)((null==(j=null==eu?void 0:eu.popup)?void 0:j.root)||(null==(O=null==ex?void 0:ex.popup)?void 0:O.root)||A||z,{[`${ek}-dropdown-${eO}`]:"rtl"===eO},M,ex.root,null==eu?void 0:eu.root,eM,eP,eN),e0=(0,m.default)(e=>{var t;return null!=(t=null!=V?V:eT)?t:e}),e1=t.useContext(p.default),e2=(0,r.default)({[`${ek}-lg`]:"large"===e0,[`${ek}-sm`]:"small"===e0,[`${ek}-rtl`]:"rtl"===eO,[`${ek}-${e_}`]:eF,[`${ek}-in-form-item`]:eU},(0,u.getStatusClassNames)(ek,eq,eW),eI,eC,N,ex.root,null==eu?void 0:eu.root,M,eM,eP,eN),e4=t.useMemo(()=>void 0!==D?D:"rtl"===eO?"bottomRight":"bottomLeft",[D,eO]),[e6]=(0,l.useZIndex)("SelectLike",null==eD?void 0:eD.zIndex);return eR(t.createElement(o.default,Object.assign({ref:n,virtual:eg,showSearch:eb},eY,{style:Object.assign(Object.assign(Object.assign(Object.assign({},e$.root),null==ec?void 0:ec.root),ew),Q),dropdownMatchSelectWidth:eL,transitionName:(0,s.getTransitionName)(ej,"slide-up",et),builtinPlacements:(0,w.default)(q,ey),listHeight:L,listItemHeight:eS,mode:eB,prefixCls:ek,placement:e4,direction:eO,prefix:en,suffixIcon:eJ,menuItemSelectedIcon:eK,removeIcon:eX,allowClear:!0===Y?{clearIcon:eQ}:Y,notFoundContent:F,className:e2,getPopupContainer:B||ef,dropdownClassName:eZ,disabled:null!=W?W:e1,dropdownStyle:Object.assign(Object.assign({},eD),{zIndex:e6}),maxCount:eA?eo:void 0,tagRender:eA?er:void 0,dropdownRender:eH,onDropdownVisibleChange:es||el})))}),j=(0,c.default)(k,"dropdownAlign");k.SECRET_COMBOBOX_MODE_DO_NOT_USE=S,k.Option=a.Option,k.OptGroup=n.OptGroup,k._InternalPanelDoNotUseOrYouWillBeFired=j,e.s(["default",0,k],327494)},199133,e=>{"use strict";var t=e.i(327494);e.s(["Select",()=>t.default])},689074,21243,98801,e=>{"use strict";var t=e.i(290571),r=e.i(271645);e.s(["default",0,e=>{var o=(0,t.__rest)(e,[]);return r.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},o),r.default.createElement("path",{d:"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM11 15V17H13V15H11ZM11 7V13H13V7H11Z"}))}],689074),e.s(["default",0,e=>{var o=(0,t.__rest)(e,[]);return r.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},o),r.default.createElement("path",{d:"M1.18164 12C2.12215 6.87976 6.60812 3 12.0003 3C17.3924 3 21.8784 6.87976 22.8189 12C21.8784 17.1202 17.3924 21 12.0003 21C6.60812 21 2.12215 17.1202 1.18164 12ZM12.0003 17C14.7617 17 17.0003 14.7614 17.0003 12C17.0003 9.23858 14.7617 7 12.0003 7C9.23884 7 7.00026 9.23858 7.00026 12C7.00026 14.7614 9.23884 17 12.0003 17ZM12.0003 15C10.3434 15 9.00026 13.6569 9.00026 12C9.00026 10.3431 10.3434 9 12.0003 9C13.6571 9 15.0003 10.3431 15.0003 12C15.0003 13.6569 13.6571 15 12.0003 15Z"}))}],21243),e.s(["default",0,e=>{var o=(0,t.__rest)(e,[]);return r.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},o),r.default.createElement("path",{d:"M4.52047 5.93457L1.39366 2.80777L2.80788 1.39355L22.6069 21.1925L21.1927 22.6068L17.8827 19.2968C16.1814 20.3755 14.1638 21.0002 12.0003 21.0002C6.60812 21.0002 2.12215 17.1204 1.18164 12.0002C1.61832 9.62282 2.81932 7.5129 4.52047 5.93457ZM14.7577 16.1718L13.2937 14.7078C12.902 14.8952 12.4634 15.0002 12.0003 15.0002C10.3434 15.0002 9.00026 13.657 9.00026 12.0002C9.00026 11.537 9.10522 11.0984 9.29263 10.7067L7.82866 9.24277C7.30514 10.0332 7.00026 10.9811 7.00026 12.0002C7.00026 14.7616 9.23884 17.0002 12.0003 17.0002C13.0193 17.0002 13.9672 16.6953 14.7577 16.1718ZM7.97446 3.76015C9.22127 3.26959 10.5793 3.00016 12.0003 3.00016C17.3924 3.00016 21.8784 6.87992 22.8189 12.0002C22.5067 13.6998 21.8038 15.2628 20.8068 16.5925L16.947 12.7327C16.9821 12.4936 17.0003 12.249 17.0003 12.0002C17.0003 9.23873 14.7617 7.00016 12.0003 7.00016C11.7514 7.00016 11.5068 7.01833 11.2677 7.05343L7.97446 3.76015Z"}))}],98801)},103471,e=>{"use strict";var t=e.i(444755),r=e.i(271645);let o=e=>["string","number"].includes(typeof e)?e:e instanceof Array?e.map(o).join(""):"object"==typeof e&&e?o(e.props.children):void 0;e.s(["constructValueToNameMapping",0,function(e){let t=new Map;return r.default.Children.map(e,e=>{var r;t.set(e.props.value,null!=(r=o(e))?r:e.props.value)}),t},"getFilteredOptions",0,function(e,t){return r.default.Children.map(t,t=>{var r;if((null!=(r=o(t))?r:t.props.value).toLowerCase().includes(e.toLowerCase()))return t})},"getNodeText",0,o,"getSelectButtonColors",0,(e,r,o=!1)=>(0,t.tremorTwMerge)(r?"bg-tremor-background-subtle dark:bg-dark-tremor-background-subtle":"bg-tremor-background dark:bg-dark-tremor-background",!r&&"hover:bg-tremor-background-muted dark:hover:bg-dark-tremor-background-muted",e?"text-tremor-content-emphasis dark:text-dark-tremor-content-emphasis":"text-tremor-content dark:text-dark-tremor-content",r&&"text-tremor-content-subtle dark:text-dark-tremor-content-subtle",o&&"text-red-500 placeholder:text-red-500 dark:text-red-500 dark:placeholder:text-red-500",o?"border-red-500 dark:border-red-500":"border-tremor-border dark:border-dark-tremor-border"),"hasValue",0,function(e){return null!=e&&""!==e}])},779241,677955,e=>{"use strict";var t=e.i(290571),r=e.i(271645),o=e.i(673706),n=e.i(689074),a=e.i(21243),i=e.i(98801),l=e.i(103471),s=e.i(444755);let c=r.default.forwardRef((e,c)=>{let{value:u,defaultValue:d,type:f,placeholder:p="Type...",icon:h,error:m=!1,errorMessage:g,disabled:v=!1,stepper:y,makeInputClassName:b,className:w,onChange:$,onValueChange:C,autoFocus:x,pattern:E}=e,S=(0,t.__rest)(e,["value","defaultValue","type","placeholder","icon","error","errorMessage","disabled","stepper","makeInputClassName","className","onChange","onValueChange","autoFocus","pattern"]),[k,j]=(0,r.useState)(x||!1),[O,T]=(0,r.useState)(!1),I=(0,r.useCallback)(()=>T(!O),[O,T]),_=(0,r.useRef)(null),F=(0,l.hasValue)(u||d);return r.default.useEffect(()=>{let e=()=>j(!0),t=()=>j(!1),r=_.current;return r&&(r.addEventListener("focus",e),r.addEventListener("blur",t),x&&r.focus()),()=>{r&&(r.removeEventListener("focus",e),r.removeEventListener("blur",t))}},[x]),r.default.createElement(r.default.Fragment,null,r.default.createElement("div",{className:(0,s.tremorTwMerge)(b("root"),"relative w-full flex items-center min-w-[10rem] outline-none rounded-tremor-default transition duration-100 border","shadow-tremor-input","dark:shadow-dark-tremor-input",(0,l.getSelectButtonColors)(F,v,m),k&&(0,s.tremorTwMerge)("ring-2","border-tremor-brand-subtle ring-tremor-brand-muted","dark:border-dark-tremor-brand-subtle dark:ring-dark-tremor-brand-muted"),w)},h?r.default.createElement(h,{className:(0,s.tremorTwMerge)(b("icon"),"shrink-0 h-5 w-5 mx-2.5 absolute left-0 flex items-center","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")}):null,r.default.createElement("input",Object.assign({ref:(0,o.mergeRefs)([_,c]),defaultValue:d,value:u,type:O?"text":f,className:(0,s.tremorTwMerge)(b("input"),"w-full bg-transparent focus:outline-none focus:ring-0 border-none text-tremor-default rounded-tremor-default transition duration-100 py-2","text-tremor-content-emphasis","dark:text-dark-tremor-content-emphasis","[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none","password"===f?m?"pr-16":"pr-12":m?"pr-8":"pr-3",h?"pl-10":"pl-3",v?"placeholder:text-tremor-content-subtle dark:placeholder:text-dark-tremor-content-subtle":"placeholder:text-tremor-content dark:placeholder:text-dark-tremor-content"),placeholder:p,disabled:v,"data-testid":"base-input",onChange:e=>{null==$||$(e),null==C||C(e.target.value)},pattern:E},S)),"password"!==f||v?null:r.default.createElement("button",{className:(0,s.tremorTwMerge)(b("toggleButton"),"absolute inset-y-0 right-0 flex items-center px-2.5 rounded-lg"),type:"button",onClick:()=>I(),"aria-label":O?"Hide password":"Show Password"},O?r.default.createElement(i.default,{className:(0,s.tremorTwMerge)("flex-none h-5 w-5 transition","text-tremor-content-subtle hover:text-tremor-content","dark:text-dark-tremor-content-subtle hover:dark:text-dark-tremor-content"),"aria-hidden":!0}):r.default.createElement(a.default,{className:(0,s.tremorTwMerge)("flex-none h-5 w-5 transition","text-tremor-content-subtle hover:text-tremor-content","dark:text-dark-tremor-content-subtle hover:dark:text-dark-tremor-content"),"aria-hidden":!0})),m?r.default.createElement(n.default,{className:(0,s.tremorTwMerge)(b("errorIcon"),"text-red-500 shrink-0 h-5 w-5 absolute right-0 flex items-center","password"===f?"mr-10":"number"===f?y?"mr-20":"mr-3":"mx-2.5")}):null,null!=y?y:null),m&&g?r.default.createElement("p",{className:(0,s.tremorTwMerge)(b("errorMessage"),"text-sm text-red-500 mt-1")},g):null)});c.displayName="BaseInput",e.s(["default",0,c],677955);let u=(0,o.makeClassName)("TextInput"),d=r.default.forwardRef((e,o)=>{let{type:n="text"}=e,a=(0,t.__rest)(e,["type"]);return r.default.createElement(c,Object.assign({ref:o,type:n,makeInputClassName:u},a))});d.displayName="TextInput",e.s(["TextInput",0,d],779241)},764205,122550,82946,e=>{"use strict";e.s(["addAllowedIP",()=>ez,"adminGlobalActivity",()=>eZ,"adminGlobalActivityPerModel",()=>e1,"adminGlobalCacheActivity",()=>e0,"adminSpendLogsCall",()=>eK,"adminTopEndUsersCall",()=>eQ,"adminTopKeysCall",()=>eX,"adminTopModelsCall",()=>e2,"adminspendByProvider",()=>eY,"agentDailyActivityCall",()=>eS,"agentHubPublicModelsCall",()=>eR,"alertingSettingsCall",()=>Z,"allEndUsersCall",()=>eG,"allTagNamesCall",()=>eU,"applyGuardrail",()=>op,"approveGuardrailSubmission",()=>tV,"approveMCPServer",()=>rR,"availableTeamListCall",()=>ef,"budgetCreateCall",()=>X,"budgetDeleteCall",()=>K,"budgetUpdateCall",()=>Q,"buildMcpOAuthAuthorizeUrl",()=>ok,"cacheTemporaryMcpServer",()=>oE,"cachingHealthCheckCall",()=>tR,"callMCPTool",()=>rV,"cancelModelCostMapReload",()=>W,"checkEuAiActCompliance",()=>oG,"checkGdprCompliance",()=>oq,"claimOnboardingToken",()=>ej,"convertPromptFileToJson",()=>rp,"createAgentCall",()=>rh,"createGuardrailCall",()=>rm,"createMCPServer",()=>rS,"createMCPToolset",()=>rT,"createMemory",()=>o7,"createPassThroughEndpoint",()=>tO,"createPolicyAttachmentCall",()=>rt,"createPolicyCall",()=>t4,"createPolicyVersion",()=>t7,"createPromptCall",()=>ru,"createSearchTool",()=>rB,"credentialCreateCall",()=>tt,"credentialDeleteCall",()=>tn,"credentialGetCall",()=>to,"credentialListCall",()=>tr,"credentialUpdateCall",()=>ta,"customerDailyActivityCall",()=>eE,"deleteAgentCall",()=>oe,"deleteAllowedIP",()=>eL,"deleteCallback",()=>oC,"deleteClaudeCodePlugin",()=>oU,"deleteConfigFieldSetting",()=>tI,"deleteGuardrailCall",()=>oo,"deleteMCPOAuthUserCredential",()=>o1,"deleteMCPServer",()=>rj,"deleteMCPToolset",()=>r_,"deleteMemory",()=>o9,"deletePassThroughEndpointsCall",()=>t_,"deletePolicyAttachmentCall",()=>rr,"deletePolicyCall",()=>t9,"deletePromptCall",()=>rf,"deleteSearchTool",()=>rz,"deleteToolPolicyOverride",()=>oZ,"deriveErrorMessage",()=>oM,"disableClaudeCodePlugin",()=>oW,"enableClaudeCodePlugin",()=>oV,"enrichPolicyTemplate",()=>tY,"enrichPolicyTemplateStream",()=>t1,"estimateAttachmentImpactCall",()=>ri,"exchangeLoginCode",()=>oA,"exchangeMcpOAuthToken",()=>oj,"fetchAvailableSearchProviders",()=>rL,"fetchDiscoverableMCPServers",()=>rw,"fetchMCPAccessGroups",()=>rx,"fetchMCPClientIp",()=>rE,"fetchMCPServerHealth",()=>rC,"fetchMCPServers",()=>r$,"fetchMCPSubmissions",()=>rP,"fetchMCPToolsets",()=>rO,"fetchMemoryList",()=>o3,"fetchOpenAPIRegistry",()=>rb,"fetchSearchTools",()=>rM,"fetchToolDetail",()=>oQ,"fetchToolPolicyOptions",()=>oJ,"fetchToolsList",()=>oK,"formatDate",()=>y,"getAgentCreateMetadata",()=>P,"getAgentInfo",()=>oc,"getAgentsList",()=>os,"getAllowedIPs",()=>eA,"getBudgetList",()=>tb,"getCacheSettingsCall",()=>tx,"getCallbackConfigsCall",()=>b,"getCallbacksCall",()=>tw,"getCategoryYaml",()=>oi,"getClaudeCodePluginsList",()=>oD,"getConfigFieldSetting",()=>tj,"getDefaultTeamSettings",()=>rX,"getEmailEventSettings",()=>r5,"getGeneralSettingsCall",()=>t$,"getGlobalLitellmHeaderName",()=>M,"getGuardrailInfo",()=>ou,"getGuardrailProviderSpecificParams",()=>oa,"getGuardrailUISettings",()=>on,"getGuardrailsList",()=>tD,"getGuardrailsUsageDetail",()=>tG,"getGuardrailsUsageLogs",()=>tq,"getGuardrailsUsageOverview",()=>tU,"getInProductNudgesCall",()=>w,"getInternalUserSettings",()=>rv,"getLicenseInfo",()=>ow,"getMCPOAuthUserCredentialStatus",()=>o2,"getMCPSemanticFilterSettings",()=>tA,"getMajorAirlines",()=>ol,"getModelCostMapReloadStatus",()=>G,"getModelCostMapSource",()=>U,"getOnboardingCredentials",()=>ek,"getOpenAPISchema",()=>L,"getPassThroughEndpointsCall",()=>tk,"getPoliciesList",()=>tJ,"getPolicyAttachmentsList",()=>re,"getPolicyInfo",()=>t8,"getPolicyInfoWithGuardrails",()=>tX,"getPolicyTemplates",()=>tQ,"getPossibleUserRoles",()=>e8,"getPromptInfo",()=>rs,"getPromptVersions",()=>rc,"getPromptsList",()=>rl,"getProviderCreateMetadata",()=>F,"getProxyBaseUrl",()=>k,"getProxyUISettings",()=>tM,"getPublicModelHubInfo",()=>z,"getRemainingUsers",()=>ob,"getResolvedGuardrails",()=>rn,"getRouterSettingsCall",()=>tC,"getSSOSettings",()=>og,"getTeamPermissionsCall",()=>rY,"getToolUsageLogs",()=>oX,"getUISettings",()=>tB,"getUiConfig",()=>A,"getUiSettings",()=>oz,"handleError",()=>_,"individualModelHealthCheckCall",()=>tP,"invitationCreateCall",()=>Y,"keyAliasesCall",()=>e5,"keyCreateCall",()=>et,"keyCreateForAgentCall",()=>er,"keyCreateServiceAccountCall",()=>ee,"keyDeleteCall",()=>en,"keyInfoCall",()=>e4,"keyInfoV1Call",()=>e3,"keyListCall",()=>e7,"keyUpdateCall",()=>ti,"latestHealthChecksCall",()=>tN,"listGuardrailSubmissions",()=>tH,"listMCPTools",()=>rH,"listMCPUserCredentials",()=>o4,"listPolicyVersions",()=>t3,"loginCall",()=>oB,"makeAgentsPublicCall",()=>ot,"makeMCPPublicCall",()=>or,"makeModelGroupPublic",()=>B,"mcpHubPublicServersCall",()=>eN,"modelAvailableCall",()=>eH,"modelCostMap",()=>D,"modelCreateCall",()=>q,"modelDeleteCall",()=>J,"modelHubCall",()=>eB,"modelHubPublicModelsCall",()=>eP,"modelInfoCall",()=>e_,"modelInfoV1Call",()=>eF,"modelPatchUpdateCall",()=>ts,"organizationCreateCall",()=>em,"organizationDailyActivityCall",()=>ex,"organizationDeleteCall",()=>ev,"organizationInfoCall",()=>eh,"organizationListCall",()=>ep,"organizationMemberAddCall",()=>tp,"organizationMemberDeleteCall",()=>th,"organizationMemberUpdateCall",()=>tm,"organizationUpdateCall",()=>eg,"patchAgentCall",()=>od,"perUserAnalyticsCall",()=>oN,"proxyBaseUrl",()=>S,"ragIngestCall",()=>r7,"regenerateKeyCall",()=>eO,"registerClaudeCodePlugin",()=>oH,"registerMCPServer",()=>rF,"registerMcpOAuthClient",()=>oS,"rejectGuardrailSubmission",()=>tW,"rejectMCPServer",()=>rN,"reloadModelCostMap",()=>H,"resetEmailEventSettings",()=>r8,"resolvePoliciesCall",()=>ra,"scheduleModelCostMapReload",()=>V,"searchToolQueryCall",()=>oT,"serverRootPath",()=>C,"serviceHealthCheck",()=>ty,"sessionSpendLogsCall",()=>r0,"setCallbacksCall",()=>tF,"setGlobalLitellmHeaderName",()=>N,"skillHubPublicCall",()=>eM,"storeMCPOAuthUserCredential",()=>o0,"suggestPolicyTemplates",()=>tZ,"switchToWorkerUrl",()=>j,"tagCreateCall",()=>rW,"tagDailyActivityCall",()=>e$,"tagDauCall",()=>oI,"tagDeleteCall",()=>rK,"tagDistinctCall",()=>oP,"tagInfoCall",()=>rG,"tagListCall",()=>rJ,"tagMauCall",()=>oF,"tagUpdateCall",()=>rU,"tagWauCall",()=>o_,"tagsSpendLogsCall",()=>eW,"teamBulkMemberAddCall",()=>tu,"teamCreateCall",()=>te,"teamDailyActivityCall",()=>eC,"teamDeleteCall",()=>ei,"teamInfoCall",()=>ec,"teamListCall",()=>ed,"teamMemberAddCall",()=>tc,"teamMemberDeleteCall",()=>tf,"teamMemberUpdateCall",()=>td,"teamPermissionsUpdateCall",()=>rZ,"teamSpendLogsCall",()=>eV,"teamUpdateCall",()=>tl,"testCacheConnectionCall",()=>tE,"testConnectionRequest",()=>e6,"testCustomCodeGuardrail",()=>oh,"testMCPSemanticFilter",()=>tL,"testMCPToolsListRequest",()=>ox,"testPipelineCall",()=>ro,"testPoliciesAndGuardrails",()=>tK,"testPolicyTemplate",()=>t0,"testSearchToolConnection",()=>rD,"transformRequestCall",()=>ey,"uiAuditLogsCall",()=>oy,"uiSpendLogDetailsCall",()=>rg,"uiSpendLogsCall",()=>eJ,"updateCacheSettingsCall",()=>tS,"updateConfigFieldSetting",()=>tT,"updateDefaultTeamSettings",()=>rQ,"updateEmailEventSettings",()=>r9,"updateGuardrailCall",()=>of,"updateInternalUserSettings",()=>ry,"updateMCPSemanticFilterSettings",()=>tz,"updateMCPServer",()=>rk,"updateMCPToolset",()=>rI,"updateMemory",()=>o5,"updatePassThroughEndpoint",()=>o$,"updatePolicyCall",()=>t6,"updatePolicyVersionStatus",()=>t5,"updatePromptCall",()=>rd,"updateSSOSettings",()=>ov,"updateSearchTool",()=>rA,"updateToolPolicy",()=>oY,"updateUiSettings",()=>oL,"updateUsefulLinksCall",()=>eD,"usageAiChatStream",()=>t2,"userAgentSummaryCall",()=>oR,"userBulkUpdateUserCall",()=>tv,"userCreateCall",()=>eo,"userDailyActivityAggregatedCall",()=>e9,"userDailyActivityCall",()=>ew,"userDeleteCall",()=>ea,"userFilterUICall",()=>eq,"userGetInfoV2",()=>es,"userListCall",()=>el,"userUpdateUserCall",()=>tg,"v2TeamListCall",()=>eu,"validateBlockedWordsFile",()=>om,"vectorStoreCreateCall",()=>r1,"vectorStoreDeleteCall",()=>r4,"vectorStoreInfoCall",()=>r6,"vectorStoreListCall",()=>r2,"vectorStoreSearchCall",()=>oO,"vectorStoreUpdateCall",()=>r3],764205);var t=e.i(247167),r=e.i(888259),o=e.i(268004);e.s(["default",()=>g,"jsonFields",()=>h],82946);var n=e.i(843476),a=e.i(271645),i=e.i(808613),l=e.i(311451),s=e.i(28651),c=e.i(199133),u=e.i(779241),d=e.i(827252),f=e.i(592968);let p=e=>e?e.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase()):e;e.s(["formItemValidateJSON",0,(e,t)=>{if(!t)return Promise.resolve();try{return JSON.parse(t),Promise.resolve()}catch(e){return Promise.reject("Please enter valid JSON")}},"formatLabel",0,p,"truncateString",0,function(e,t){return e.length>t?e.substring(0,t)+"...":e}],122550);let h=["metadata","config","enforced_params","aliases"],m=(e,t)=>h.includes(e)||"json"===t.format,g=({schemaComponent:e,excludedFields:t=[],form:r,overrideLabels:o={},overrideTooltips:h={},customValidation:g={},defaultValues:v={}})=>{let[y,b]=(0,a.useState)(null),[w,$]=(0,a.useState)(null);return((0,a.useEffect)(()=>{(async()=>{try{let o=(await L()).components.schemas[e];if(!o)throw Error(`Schema component "${e}" not found`);b(o);let n={};Object.keys(o.properties).filter(e=>!t.includes(e)&&void 0!==v[e]).forEach(e=>{n[e]=v[e]}),r.setFieldsValue(n)}catch(e){console.error("Schema fetch error:",e),$(e instanceof Error?e.message:"Failed to fetch schema")}})()},[e,r,t]),w)?(0,n.jsxs)("div",{className:"text-red-500",children:["Error: ",w]}):y?.properties?(0,n.jsx)("div",{children:Object.entries(y.properties).filter(([e])=>!t.includes(e)).map(([e,t])=>{let r,a,b,w,$,C,x,E;return a=(e=>{if(e.type)return e.type;if(e.anyOf){let t=e.anyOf.map(e=>e.type);if(t.includes("number")||t.includes("integer"))return"number";t.includes("string")}return"string"})(t),b=y?.required?.includes(e),w=o[e]||t.title||p(e),$=h[e]||t.description,C=[],b&&C.push({required:!0,message:`${w} is required`}),g[e]&&C.push({validator:g[e]}),m(e,t)&&C.push({validator:async(e,t)=>{if(t&&!(e=>{if(!e)return!0;try{return JSON.parse(e),!0}catch{return!1}})(t))throw Error("Please enter valid JSON")}}),x=$?(0,n.jsxs)("span",{children:[w," ",(0,n.jsx)(f.Tooltip,{title:$,children:(0,n.jsx)(d.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}):w,r=m(e,t)?(0,n.jsx)(l.Input.TextArea,{rows:4,placeholder:"Enter as JSON",className:"font-mono"}):t.enum?(0,n.jsx)(c.Select,{children:t.enum.map(e=>(0,n.jsx)(c.Select.Option,{value:e,children:e},e))}):"number"===a||"integer"===a?(0,n.jsx)(s.InputNumber,{style:{width:"100%"},precision:"integer"===a?0:void 0}):"duration"===e?(0,n.jsx)(u.TextInput,{placeholder:"eg: 30s, 30h, 30d"}):(0,n.jsx)(u.TextInput,{placeholder:$||""}),(0,n.jsx)(i.Form.Item,{label:x,name:e,className:"mt-8",rules:C,initialValue:v[e],help:(0,n.jsx)("div",{className:"text-xs text-gray-500",children:(E=({max_budget:"Enter maximum budget in USD (e.g., 100.50)",budget_duration:"Select a time period for budget reset",tpm_limit:"Enter maximum tokens per minute (whole number)",rpm_limit:"Enter maximum requests per minute (whole number)",duration:"Enter duration (e.g., 30s, 24h, 7d)",metadata:'Enter JSON object with key-value pairs\nExample: {"team": "research", "project": "nlp"}',config:'Enter configuration as JSON object\nExample: {"setting": "value"}',permissions:"Enter comma-separated permission strings",enforced_params:'Enter parameters as JSON object\nExample: {"param": "value"}',blocked:"Enter true/false or specific block conditions",aliases:'Enter aliases as JSON object\nExample: {"alias1": "value1", "alias2": "value2"}',models:"Select one or more model names",key_alias:"Enter a unique identifier for this key",tags:"Enter comma-separated tag strings"})[e]||({string:"Text input",number:"Numeric input",integer:"Whole number input",boolean:"True/False value"})[a]||"Text input",m(e,t)?`${E} Must be valid JSON format`:t.enum?`Select from available options -Allowed values: ${t.enum.join(", ")}`:E)}),children:r},e)})}):null};var v=e.i(727749);let y=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`},b=async e=>{try{let t=S?`${S}/callbacks/configs`:"/callbacks/configs",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},w=async e=>{try{let t=S?`${S}/in_product_nudges`:"/in_product_nudges",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get in-product nudges:",e),e}},$=t.default.env.NEXT_PUBLIC_BASE_URL?t.default.env.NEXT_PUBLIC_BASE_URL:null,C="/",x="litellm_worker_url",E=window.localStorage.getItem(x),S=(()=>{if(!E)return null;try{let e=new URL(E);if("http:"===e.protocol||"https:"===e.protocol)return E}catch{}return window.localStorage.removeItem(x),null})()??$;console.log=function(){};let k=()=>{if(S)return S;let e=window.location;return e?.origin??""};function j(e){(!e||function(e){try{let t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch{return!1}}(e))&&(e?window.localStorage.setItem(x,e):window.localStorage.removeItem(x),S=e??$)}let O="POST",T="DELETE",I=0,_=async e=>{let t=Date.now();if(t-I>6e4){if(("string"==typeof e?e:JSON.stringify(e)).includes("Authentication Error - Expired Key")){v.default.info("UI Session Expired. Logging out."),I=t,(0,o.clearTokenCookies)();let e=window.location;e&&(window.location.href=e.pathname)}I=t}else console.log("Error suppressed to prevent spam:",e)},F=async()=>{let e=S?`${S}/public/providers/fields`:"/public/providers/fields",t=await fetch(e,{method:"GET"});if(!t.ok){let e=await t.text();throw console.error("Failed to fetch provider create metadata:",t.status,e),Error("Failed to load provider configuration")}return await t.json()},P=async()=>{let e=S?`${S}/public/agents/fields`:"/public/agents/fields",t=await fetch(e,{method:"GET"});if(!t.ok){let e=await t.text();throw console.error("Failed to fetch agent create metadata:",t.status,e),Error("Failed to load agent configuration")}return await t.json()},R="Authorization";function N(e="Authorization"){console.log(`setGlobalLitellmHeaderName: ${e}`),R=e}function M(){return R}let B=async(e,t)=>{let r=S?`${S}/model_group/make_public`:"/model_group/make_public";return(await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({model_groups:t})})).json()},A=async()=>{console.log("Getting UI config");let e=$?`${$}/litellm/.well-known/litellm-ui-config`:"/litellm/.well-known/litellm-ui-config",r=await fetch(e),o=await r.json();return console.log("jsonData in getUiConfig:",o),((e,r=null)=>{if(window.localStorage.getItem(x))return;let o=window.location,n=t.default.env.NEXT_PUBLIC_BASE_URL?t.default.env.NEXT_PUBLIC_BASE_URL:o?.origin??null,a=r||n;if(console.log("proxyBaseUrl:",S),console.log("serverRootPath:",e),!a)return console.log("Updated proxyBaseUrl:",S=S??null);e.length>0&&!a.endsWith(e)&&"/"!=e&&(a+=e),console.log("Updated proxyBaseUrl:",S=a)})(o.server_root_path,o.proxy_base_url),o},z=async()=>{let e=S?`${S}/public/model_hub/info`:"/public/model_hub/info",t=await fetch(e);return await t.json()},L=async()=>{let e=S?`${S}/openapi.json`:"/openapi.json",t=await fetch(e);return await t.json()},D=async()=>{try{let e=S?`${S}/public/litellm_model_cost_map`:"/public/litellm_model_cost_map",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}}),r=await t.json();return console.log(`received litellm model cost data: ${r}`),r}catch(e){throw console.error("Failed to get model cost map:",e),e}},H=async e=>{try{let t=S?`${S}/reload/model_cost_map`:"/reload/model_cost_map",r=await fetch(t,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),o=await r.json();return console.log(`Model cost map reload response: ${o}`),o}catch(e){throw console.error("Failed to reload model cost map:",e),e}},V=async(e,t)=>{try{let r=S?`${S}/schedule/model_cost_map_reload?hours=${t}`:`/schedule/model_cost_map_reload?hours=${t}`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),n=await o.json();return console.log(`Schedule model cost map reload response: ${n}`),n}catch(e){throw console.error("Failed to schedule model cost map reload:",e),e}},W=async e=>{try{let t=S?`${S}/schedule/model_cost_map_reload`:"/schedule/model_cost_map_reload",r=await fetch(t,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),o=await r.json();return console.log(`Cancel model cost map reload response: ${o}`),o}catch(e){throw console.error("Failed to cancel model cost map reload:",e),e}},U=async e=>{try{let t=S?`${S}/model/cost_map/source`:"/model/cost_map/source",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw Error(`HTTP ${r.status}: ${e}`)}let o=await r.json();return console.log("Model cost map source info:",o),o}catch(e){throw console.error("Failed to get model cost map source info:",e),e}},G=async e=>{try{let t=S?`${S}/schedule/model_cost_map_reload/status`:"/schedule/model_cost_map_reload/status";console.log("Fetching status from URL:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){console.error(`Status request failed with status: ${r.status}`);let e=await r.text();throw console.error("Error response:",e),Error(`HTTP ${r.status}: ${e}`)}let o=await r.json();return console.log("Model cost map reload status:",o),o}catch(e){throw console.error("Failed to get model cost map reload status:",e),e}},q=async(e,t)=>{try{let o=S?`${S}/model/new`:"/model/new",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),r.default.destroy(),v.default.success(`Model ${t.model_name} created successfully`),a}catch(e){throw console.error("Failed to create key:",e),e}},J=async(e,t)=>{console.log(`model_id in model delete call: ${t}`);try{let r=S?`${S}/model/delete`:"/model/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},K=async(e,t)=>{if(console.log(`budget_id in budget delete call: ${t}`),null!=e)try{let r=S?`${S}/budget/delete`:"/budget/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},X=async(e,t)=>{try{console.log("Form Values in budgetCreateCall:",t),console.log("Form Values after check:",t);let r=S?`${S}/budget/new`:"/budget/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Q=async(e,t)=>{try{console.log("Form Values in budgetUpdateCall:",t),console.log("Form Values after check:",t);let r=S?`${S}/budget/update`:"/budget/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Y=async(e,t)=>{try{let r=S?`${S}/invitation/new`:"/invitation/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Z=async e=>{try{let t=S?`${S}/alerting/settings`:"/alerting/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},ee=async(e,t)=>{try{for(let e of(console.log("Form Values in keyCreateServiceAccountCall:",t),t.description&&(t.metadata||(t.metadata={}),t.metadata.description=t.description,delete t.description,t.metadata=JSON.stringify(t.metadata)),h))if(t[e]){console.log(`formValues.${e}:`,t[e]);try{t[e]=JSON.parse(t[e])}catch(t){throw Error(`Failed to parse ${e}: `+t)}}console.log("Form Values after check:",t);let r=S?`${S}/key/service-account/generate`:"/key/service-account/generate",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},et=async(e,t,r)=>{try{for(let e of(console.log("Form Values in keyCreateCall:",r),r.description&&(r.metadata||(r.metadata={}),r.metadata.description=r.description,delete r.description,r.metadata=JSON.stringify(r.metadata)),h))if(r[e]){console.log(`formValues.${e}:`,r[e]);try{r[e]=JSON.parse(r[e])}catch(t){throw Error(`Failed to parse ${e}: `+t)}}console.log("Form Values after check:",r);let o=S?`${S}/key/generate`:"/key/generate",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t,...r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},er=async(e,t,r,o,n,a)=>{let i=S?`${S}/key/generate`:"/key/generate",l={agent_id:t,key_alias:r,models:o.length>0?o:[]};a&&(l.team_id=a),n&&Object.keys(n).length>0&&(l.metadata=n);let s=await fetch(i,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(l)});if(!s.ok)throw _(await s.text()),Error("Failed to create key for agent");return s.json()},eo=async(e,t,r)=>{try{if(console.log("Form Values in keyCreateCall:",r),r.description&&(r.metadata||(r.metadata={}),r.metadata.description=r.description,delete r.description,r.metadata=JSON.stringify(r.metadata)),r.auto_create_key=!1,r.metadata){console.log("formValues.metadata:",r.metadata);try{r.metadata=JSON.parse(r.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}console.log("Form Values after check:",r);let o=S?`${S}/user/new`:"/user/new",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t,...r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},en=async(e,t)=>{try{let r=S?`${S}/key/delete`:"/key/delete";console.log("in keyDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({keys:[t]})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to create key:",e),e}},ea=async(e,t)=>{try{let r=S?`${S}/user/delete`:"/user/delete";console.log("in userDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_ids:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete user(s):",e),e}},ei=async(e,t)=>{try{let r=S?`${S}/team/delete`:"/team/delete";console.log("in teamDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_ids:[t]})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete key:",e),e}},el=async(e,t=null,r=null,o=null,n=null,a=null,i=null,l=null,s=null,c=null,u=null)=>{try{let d=S?`${S}/user/list`:"/user/list";console.log("in userListCall");let f=new URLSearchParams;if(t&&t.length>0){let e=t.join(",");f.append("user_ids",e)}r&&f.append("page",r.toString()),o&&f.append("page_size",o.toString()),n&&f.append("user_email",n),a&&f.append("role",a),i&&f.append("team",i),l&&f.append("sso_user_ids",l),s&&f.append("sort_by",s),c&&f.append("sort_order",c),u&&u.length>0&&f.append("organization_ids",u.join(","));let p=f.toString();p&&(d+=`?${p}`);let h=await fetch(d,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!h.ok){let e=await h.json(),t=oM(e);throw _(t),Error(t)}let m=await h.json();return console.log("/user/list API Response:",m),m}catch(e){throw console.error("Failed to create key:",e),e}},es=async(e,t)=>{try{let r=S?`${S}/v2/user/info`:"/v2/user/info";t&&(r+=`?user_id=${encodeURIComponent(t)}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to fetch user info v2:",e),e}},ec=async(e,t)=>{try{let r=S?`${S}/team/info`:"/team/info";t&&(r=`${r}?team_id=${encodeURIComponent(t)}`),console.log("in teamInfoCall");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eu=async(e,t,r=null,o=null,n=null,a=1,i=10,l=null,s=null)=>{try{let a=S?`${S}/v2/team/list`:"/v2/team/list";console.log("in teamInfoCall");let i=new URLSearchParams;r&&i.append("user_id",r.toString()),t&&i.append("organization_id",t.toString()),o&&i.append("team_id",o.toString()),n&&i.append("team_alias",n.toString());let l=i.toString();l&&(a+=`?${l}`);let s=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}let c=await s.json();return console.log("/v2/team/list API Response:",c),c}catch(e){throw console.error("Failed to create key:",e),e}},ed=async(e,t,r=null,o=null,n=null)=>{try{let a=S?`${S}/team/list`:"/team/list";console.log("in teamInfoCall");let i=new URLSearchParams;r&&i.append("user_id",r.toString()),t&&i.append("organization_id",t.toString()),o&&i.append("team_id",o.toString()),n&&i.append("team_alias",n.toString());let l=i.toString();l&&(a+=`?${l}`);let s=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}let c=await s.json();return console.log("/team/list API Response:",c),c}catch(e){throw console.error("Failed to create key:",e),e}},ef=async e=>{try{let t=S?`${S}/team/available`:"/team/available";console.log("in availableTeamListCall");let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("/team/available_teams API Response:",o),o}catch(e){throw e}},ep=async(e,t=null,r=null)=>{try{let o=S?`${S}/organization/list`:"/organization/list",n=new URLSearchParams;t&&n.append("org_id",t.toString()),r&&n.append("org_alias",r.toString());let a=n.toString();a&&(o+=`?${a}`);let i=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to create key:",e),e}},eh=async(e,t)=>{try{let r=S?`${S}/organization/info`:"/organization/info";t&&(r=`${r}?organization_id=${t}`),console.log("in teamInfoCall");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},em=async(e,t)=>{try{if(console.log("Form Values in organizationCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw console.error("Failed to parse metadata:",e),Error("Failed to parse metadata: "+e)}}let r=S?`${S}/organization/new`:"/organization/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eg=async(e,t)=>{try{console.log("Form Values in organizationUpdateCall:",t);let r=S?`${S}/organization/update`:"/organization/update",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Update Team Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},ev=async(e,t)=>{try{let r=S?`${S}/organization/delete`:"/organization/delete",o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_ids:[t]})});if(!o.ok){let e=await o.text();throw _(e),Error(`Error deleting organization: ${e}`)}return await o.json()}catch(e){throw console.error("Failed to delete organization:",e),e}},ey=async(e,t)=>{try{let r=S?`${S}/utils/transform_request`:"/utils/transform_request",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create key:",e),e}},eb=async({accessToken:e,endpoint:t,startTime:r,endTime:o,page:n=1,extraQueryParams:a})=>{try{let i,l,s,c,u=(i=t.startsWith("/")?t:`/${t}`,l=S?`${S}${i}`:i,(s=new URLSearchParams).append("start_date",y(r)),s.append("end_date",y(o)),s.append("page_size","1000"),s.append("page",n.toString()),s.append("timezone",new Date().getTimezoneOffset().toString()),a&&Object.entries(a).forEach(([e,t])=>{((e,t,r)=>{if(null!=r){if(Array.isArray(r)){r.length>0&&e.append(t,r.join(","));return}e.append(t,`${r}`)}})(s,e,t)}),(c=s.toString())?`${l}?${c}`:l),d=await fetch(u,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!d.ok){let e=await d.json(),t=oM(e);throw _(t),Error(t)}return await d.json()}catch(e){throw console.error(`Failed to fetch daily activity (${t}):`,e),e}},ew=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/user/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{user_id:n}}),e$=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/tag/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{tags:n}}),eC=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/team/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{team_ids:n,exclude_team_ids:"litellm-dashboard"}}),ex=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/organization/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{organization_ids:n}}),eE=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/customer/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{end_user_ids:n}}),eS=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/agent/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{agent_ids:n}}),ek=async e=>{try{let t=S?`${S}/onboarding/get_token`:"/onboarding/get_token";t+=`?invite_link=${e}`;let r=await fetch(t,{method:"GET",headers:{"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to create key:",e),e}},ej=async(e,t,r,o)=>{let n=S?`${S}/onboarding/claim_token`:"/onboarding/claim_token";try{let a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({invitation_link:t,user_id:r,password:o})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to delete key:",e),e}},eO=async(e,t,r)=>{try{let o=S?`${S}/key/${t}/regenerate`:`/key/${t}/regenerate`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Regenerate key Response:",a),a}catch(e){throw console.error("Failed to regenerate key:",e),e}},eT=!1,eI=null,e_=async(e,t,r,o=1,n=50,a,i,l,s,c)=>{try{console.log("modelInfoCall:",e,t,r,o,n,a,i,l,s,c);let u=S?`${S}/v2/model/info`:"/v2/model/info",d=new URLSearchParams;d.append("include_team_models","true"),d.append("page",o.toString()),d.append("size",n.toString()),a&&a.trim()&&d.append("search",a.trim()),i&&i.trim()&&d.append("modelId",i.trim()),l&&l.trim()&&d.append("teamId",l.trim()),s&&s.trim()&&d.append("sortBy",s.trim()),c&&c.trim()&&d.append("sortOrder",c.trim()),d.toString()&&(u+=`?${d.toString()}`);let f=await fetch(u,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!f.ok){let e=await f.text();throw e+=`error shown=${eT}`,eT||(e.includes("No model list passed")&&(e="No Models Exist. Click Add Model to get started."),v.default.info(e),eT=!0,eI&&clearTimeout(eI),eI=setTimeout(()=>{eT=!1},1e4)),Error("Network response was not ok")}let p=await f.json();return console.log("modelInfoCall:",p),p}catch(e){throw console.error("Failed to create key:",e),e}},eF=async(e,t)=>{try{let r=S?`${S}/v1/model/info`:"/v1/model/info";r+=`?litellm_model_id=${t}`;let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("modelInfoV1Call:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eP=async()=>{let e=S?`${S}/public/model_hub`:"/public/model_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`modelHubPublicModelsCall failed with status ${t.status}`),[])},eR=async()=>{let e=S?`${S}/public/agent_hub`:"/public/agent_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`agentHubPublicModelsCall failed with status ${t.status}`),[])},eN=async()=>{let e=S?`${S}/public/mcp_hub`:"/public/mcp_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`mcpHubPublicServersCall failed with status ${t.status}`),[])},eM=async()=>{let e=S?`${S}/public/skill_hub`:"/public/skill_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`skillHubPublicCall failed with status ${t.status}`),{plugins:[]})},eB=async e=>{try{let t=S?`${S}/model_group/info`:"/model_group/info",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("modelHubCall:",o),o}catch(e){throw console.error("Failed to create key:",e),e}},eA=async e=>{try{let t=S?`${S}/get/allowed_ips`:"/get/allowed_ips",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("getAllowedIPs:",o),o.data}catch(e){throw console.error("Failed to get allowed IPs:",e),e}},ez=async(e,t)=>{try{let r=S?`${S}/add/allowed_ip`:"/add/allowed_ip",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({ip:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("addAllowedIP:",n),n}catch(e){throw console.error("Failed to add allowed IP:",e),e}},eL=async(e,t)=>{try{let r=S?`${S}/delete/allowed_ip`:"/delete/allowed_ip",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({ip:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("deleteAllowedIP:",n),n}catch(e){throw console.error("Failed to delete allowed IP:",e),e}},eD=async(e,t)=>{try{let r=S?`${S}/model_hub/update_useful_links`:"/model_hub/update_useful_links",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({useful_links:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create key:",e),e}},eH=async(e,t,r,o=!1,n=null,a=!1,i=!1,l)=>{console.log("in /models calls, globalLitellmHeaderName",R);try{let t=S?`${S}/models`:"/models",r=new URLSearchParams;r.append("include_model_access_groups","True"),!0===o&&r.append("return_wildcard_routes","True"),!0===i&&r.append("only_model_access_groups","True"),n&&r.append("team_id",n.toString()),l&&r.append("scope",l),r.toString()&&(t+=`?${r.toString()}`);let a=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return await a.json()}catch(e){throw console.error("Failed to create key:",e),e}},eV=async e=>{try{let t=S?`${S}/global/spend/teams`:"/global/spend/teams";console.log("in teamSpendLogsCall:",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eW=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/tags`:"/global/spend/tags";t&&r&&(n=`${n}?start_date=${t}&end_date=${r}`),o&&(n+=`&tags=${o.join(",")}`),console.log("in tagsSpendLogsCall:",n);let a=await fetch(`${n}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to create key:",e),e}},eU=async e=>{try{let t=S?`${S}/global/spend/all_tag_names`:"/global/spend/all_tag_names";console.log("in global/spend/all_tag_names call",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eG=async e=>{try{let t=S?`${S}/customer/list`:"/customer/list";console.log("in customer/list",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to fetch end users:",e),e}},eq=async(e,t)=>{try{let r=S?`${S}/user/filter/ui`:"/user/filter/ui",o=new URLSearchParams;t.get("user_email")&&o.append("user_email",t.get("user_email")),t.get("user_id")&&o.append("user_id",t.get("user_id")),t.get("team_id")&&o.append("team_id",t.get("team_id"));let n=o.toString(),a=n?`${r}?${n}`:r,i=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to create key:",e),e}},eJ=async({accessToken:e,start_date:t,end_date:r,page:o=1,page_size:n=50,params:a={}})=>{try{let i=S?`${S}/spend/logs/ui`:"/spend/logs/ui",l=new URLSearchParams;for(let[e,i]of(l.append("start_date",t),l.append("end_date",r),l.append("page",o.toString()),l.append("page_size",n.toString()),Object.entries(a)))null!=i&&("min_spend"===e||"max_spend"===e?l.append(e,i.toString()):"string"==typeof i&&""!==i&&l.append(e,String(i)));let s=l.toString();s&&(i+=`?${s}`);let c=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!c.ok){let e=await c.json(),t=oM(e);throw _(t),Error(t)}let u=await c.json();return console.log("Spend Logs Response:",u),u}catch(e){throw console.error("Failed to fetch spend logs:",e),e}},eK=async e=>{try{let t=S?`${S}/global/spend/logs`:"/global/spend/logs",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eX=async e=>{try{let t=S?`${S}/global/spend/keys?limit=5`:"/global/spend/keys?limit=5",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eQ=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/end_users`:"/global/spend/end_users",a="";a=t?JSON.stringify({api_key:t,startTime:r,endTime:o}):JSON.stringify({startTime:r,endTime:o});let i={method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:a},l=await fetch(n,i);if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}let s=await l.json();return console.log(s),s}catch(e){throw console.error("Failed to create key:",e),e}},eY=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/provider`:"/global/spend/provider";r&&o&&(n+=`?start_date=${r}&end_date=${o}`),t&&(n+=`&api_key=${t}`);let a={method:"GET",headers:{[R]:`Bearer ${e}`}},i=await fetch(n,a);if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}let l=await i.json();return console.log(l),l}catch(e){throw console.error("Failed to fetch spend data:",e),e}},eZ=async(e,t,r)=>{try{let o=S?`${S}/global/activity`:"/global/activity";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e0=async(e,t,r)=>{try{let o=S?`${S}/global/activity/cache_hits`:"/global/activity/cache_hits";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e1=async(e,t,r)=>{try{let o=S?`${S}/global/activity/model`:"/global/activity/model";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e2=async e=>{try{let t=S?`${S}/global/spend/models?limit=5`:"/global/spend/models?limit=5",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},e4=async(e,t)=>{try{let r=S?`${S}/v2/key/info`:"/v2/key/info",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({keys:t})});if(!o.ok){let e=await o.text();if(e.includes("Invalid proxy server token passed"))throw Error("Invalid proxy server token passed");throw _(e),Error("Network response was not ok")}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to create key:",e),e}},e6=async(e,t,r,o)=>{try{console.log("Sending model connection test request:",JSON.stringify(t));let n=S?`${S}/health/test_connection`:"/health/test_connection",a=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({litellm_params:t,model_info:r,mode:o})}),i=a.headers.get("content-type");if(!i||!i.includes("application/json")){let e=await a.text();throw console.error("Received non-JSON response:",e),Error(`Received non-JSON response (${a.status}: ${a.statusText}). Check network tab for details.`)}let l=await a.json();if((!a.ok||"error"===l.status)&&"error"!==l.status)return{status:"error",message:l.error?.message||`Connection test failed: ${a.status} ${a.statusText}`};return l}catch(e){throw console.error("Model connection test error:",e),e}},e3=async(e,t)=>{try{console.log("entering keyInfoV1Call");let r=S?`${S}/key/info`:"/key/info";r=`${r}?key=${t}`;let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(console.log("response",o),!o.ok){let e=await o.text();_(e),v.default.fromBackend("Failed to fetch key info - "+e)}let n=await o.json();return console.log("data",n),n}catch(e){throw console.error("Failed to fetch key info:",e),e}},e7=async(e,t,r,o,n,a,i,l,s=null,c=null,u=null,d=null)=>{try{let f=S?`${S}/key/list`:"/key/list";console.log("in keyListCall");let p=new URLSearchParams;r&&p.append("team_id",r.toString()),t&&p.append("organization_id",t.toString()),o&&p.append("key_alias",o),a&&p.append("key_hash",a),n&&p.append("user_id",n.toString()),i&&p.append("page",i.toString()),l&&p.append("size",l.toString()),s&&p.append("sort_by",s),c&&p.append("sort_order",c),u&&p.append("expand",u),d&&p.append("status",d),p.append("return_full_object","true"),p.append("include_team_keys","true"),p.append("include_created_by_keys","true");let h=p.toString();h&&(f+=`?${h}`);let m=await fetch(f,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!m.ok){let e=await m.json(),t=oM(e);throw _(t),Error(t)}let g=await m.json();return console.log("/team/list API Response:",g),g}catch(e){throw console.error("Failed to create key:",e),e}},e5=async(e,t=1,r=50,o,n)=>{try{let a=new URLSearchParams(Object.entries({page:String(t),size:String(r),...o?{search:o}:{},...n?{team_id:n}:{}})),i=S?`${S}/key/aliases`:"/key/aliases";i=`${i}?${a}`;let l=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}let s=await l.json();return console.log("/key/aliases API Response:",s),s}catch(e){throw console.error("Failed to fetch key aliases:",e),e}},e9=async(e,t,r,o=null)=>{try{let n=S?`${S}/user/daily/activity/aggregated`:"/user/daily/activity/aggregated",a=new URLSearchParams,i=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`};a.append("start_date",i(t)),a.append("end_date",i(r)),a.append("timezone",new Date().getTimezoneOffset().toString()),o&&a.append("user_id",o);let l=a.toString();l&&(n+=`?${l}`);let s=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}return await s.json()}catch(e){throw console.error("Failed to fetch aggregated user daily activity:",e),e}},e8=async e=>{try{let t=S?`${S}/user/available_roles`:"/user/available_roles",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("response from user/available_role",o),o}catch(e){throw e}},te=async(e,t)=>{try{if(console.log("Form Values in teamCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let r=S?`${S}/team/new`:"/team/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tt=async(e,t)=>{try{if(console.log("Form Values in credentialCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let r=S?`${S}/credentials`:"/credentials",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tr=async e=>{try{let t=S?`${S}/credentials`:"/credentials";console.log("in credentialListCall");let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("/credentials API Response:",o),o}catch(e){throw console.error("Failed to create key:",e),e}},to=async(e,t,r)=>{try{let o=S?`${S}/credentials`:"/credentials";t?o+=`/by_name/${t}`:r&&(o+=`/by_model/${r}`),console.log("in credentialListCall");let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("/credentials API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tn=async(e,t)=>{try{let r=S?`${S}/credentials/${t}`:`/credentials/${t}`;console.log("in credentialDeleteCall:",t);let o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete key:",e),e}},ta=async(e,t,r)=>{try{if(console.log("Form Values in credentialUpdateCall:",r),r.metadata){console.log("formValues.metadata:",r.metadata);try{r.metadata=JSON.parse(r.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let o=S?`${S}/credentials/${t}`:`/credentials/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},ti=async(e,t)=>{try{if(console.log("Form Values in keyUpdateCall:",t),t.model_tpm_limit){console.log("formValues.model_tpm_limit:",t.model_tpm_limit);try{t.model_tpm_limit=JSON.parse(t.model_tpm_limit)}catch(e){throw Error("Failed to parse model_tpm_limit: "+e)}}if(t.model_rpm_limit){console.log("formValues.model_rpm_limit:",t.model_rpm_limit);try{t.model_rpm_limit=JSON.parse(t.model_rpm_limit)}catch(e){throw Error("Failed to parse model_rpm_limit: "+e)}}let r=S?`${S}/key/update`:"/key/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let n=await o.json();return console.log("Update key Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tl=async(e,t)=>{try{console.log("Form Values in teamUpateCall:",t);let r=S?`${S}/team/update`:"/team/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),v.default.fromBackend("Failed to update team settings: "+e),Error(e)}let n=await o.json();return console.log("Update Team Response:",n),n}catch(e){throw console.error("Failed to update team:",e),e}},ts=async(e,t,r)=>{try{console.log("Form Values in modelUpateCall:",t);let o=S?`${S}/model/${r}/update`:`/model/${r}/update`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error update from the server:",e),Error("Network response was not ok")}let a=await n.json();return console.log("Update model Response:",a),a}catch(e){throw console.error("Failed to update model:",e),e}},tc=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/team/member_add`:"/team/member_add",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_id:t,member:r})});if(!n.ok){let e=await n.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to add team member",o=Error(r);throw o.raw=t,o}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tu=async(e,t,r,o,n)=>{try{console.log("Bulk add team members:",{teamId:t,members:r,maxBudgetInTeam:o});let a=S?`${S}/team/bulk_member_add`:"/team/bulk_member_add",i={team_id:t};n?i.all_users=!0:i.members=r,null!=o&&(i.max_budget_in_team=o);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to bulk add team members",o=Error(r);throw o.raw=t,o}let s=await l.json();return console.log("Bulk team member add API Response:",s),s}catch(e){throw console.error("Failed to bulk add team members:",e),e}},td=async(e,t,r)=>{try{console.log("Form Values in teamMemberUpdateCall:",r),console.log("Budget value:",r.max_budget_in_team),console.log("TPM limit:",r.tpm_limit),console.log("RPM limit:",r.rpm_limit);let o=S?`${S}/team/member_update`:"/team/member_update",n={team_id:t,role:r.role,user_id:r.user_id};void 0!==r.user_email&&(n.user_email=r.user_email),void 0!==r.max_budget_in_team&&null!==r.max_budget_in_team&&(n.max_budget_in_team=r.max_budget_in_team),void 0!==r.tpm_limit&&null!==r.tpm_limit&&(n.tpm_limit=r.tpm_limit),void 0!==r.rpm_limit&&null!==r.rpm_limit&&(n.rpm_limit=r.rpm_limit),void 0!==r.allowed_models&&(n.allowed_models=r.allowed_models),console.log("Final request body:",n);let a=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(n)});if(!a.ok){let e=await a.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to add team member",o=Error(r);throw o.raw=t,o}let i=await a.json();return console.log("API Response:",i),i}catch(e){throw console.error("Failed to update team member:",e),e}},tf=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/team/member_delete`:"/team/member_delete",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_id:t,...void 0!==r.user_email&&{user_email:r.user_email},...void 0!==r.user_id&&{user_id:r.user_id}})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tp=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/organization/member_add`:"/organization/member_add",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,member:r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create organization member:",e),e}},th=async(e,t,r)=>{try{console.log("Form Values in organizationMemberDeleteCall:",r);let o=S?`${S}/organization/member_delete`:"/organization/member_delete",n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,user_id:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to delete organization member:",e),e}},tm=async(e,t,r)=>{try{console.log("Form Values in organizationMemberUpdateCall:",r);let o=S?`${S}/organization/member_update`:"/organization/member_update",n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,...r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to update organization member:",e),e}},tg=async(e,t,r)=>{try{console.log("Form Values in userUpdateUserCall:",t);let o=S?`${S}/user/update`:"/user/update",n={...t};null!==r&&(n.user_role=r),n=JSON.stringify(n);let a=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:n});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log("API Response:",i),i}catch(e){throw console.error("Failed to create key:",e),e}},tv=async(e,t,r,o=!1)=>{try{let n;console.log("Form Values in userUpdateUserCall:",t);let a=S?`${S}/user/bulk_update`:"/user/bulk_update";if(o)n=JSON.stringify({all_users:!0,user_updates:t});else if(r&&r.length>0){let e=[];for(let o of r)e.push({user_id:o,...t});n=JSON.stringify({users:e})}else throw Error("Must provide either userIds or set allUsers=true");let i=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:n});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}let l=await i.json();return console.log("API Response:",l),l}catch(e){throw console.error("Failed to create key:",e),e}},ty=async(e,t)=>{try{let r=S?`${S}/health/services?service=${t}`:`/health/services?service=${t}`;console.log("Checking Slack Budget Alerts service health");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}return await o.json()}catch(e){throw console.error("Failed to perform health check:",e),e}},tb=async e=>{try{let t=S?`${S}/budget/list`:"/budget/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tw=async(e,t,r)=>{try{let t=S?`${S}/get/config/callbacks`:"/get/config/callbacks",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},t$=async e=>{try{let t=S?`${S}/config/list?config_type=general_settings`:"/config/list?config_type=general_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tC=async e=>{try{let t=S?`${S}/router/settings`:"/router/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get router settings:",e),e}},tx=async e=>{try{let t=S?`${S}/cache/settings`:"/cache/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get cache settings:",e),e}},tE=async(e,t)=>{try{let r=S?`${S}/cache/settings/test`:"/cache/settings/test",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({cache_settings:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to test cache connection:",e),e}},tS=async(e,t)=>{try{let r=S?`${S}/cache/settings`:"/cache/settings",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({cache_settings:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update cache settings:",e),e}},tk=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint`:"/config/pass_through_endpoint";t&&(r+=`/team/${t}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tj=async(e,t)=>{try{let r=S?`${S}/config/field/info?field_name=${t}`:`/config/field/info?field_name=${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tO=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint`:"/config/pass_through_endpoint",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tT=async(e,t,r)=>{try{let o=S?`${S}/config/field/update`:"/config/field/update",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({field_name:t,field_value:r,config_type:"general_settings"})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return v.default.success("Successfully updated value!"),a}catch(e){throw console.error("Failed to set callbacks:",e),e}},tI=async(e,t)=>{try{let r=S?`${S}/config/field/delete`:"/config/field/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({field_name:t,config_type:"general_settings"})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return v.default.success("Field reset on proxy"),n}catch(e){throw console.error("Failed to get callbacks:",e),e}},t_=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint?endpoint_id=${t}`:`/config/pass_through_endpoint?endpoint_id=${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tF=async(e,t)=>{try{let r=S?`${S}/config/update`:"/config/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tP=async(e,t)=>{try{let r=S?`${S}/health?model_id=${encodeURIComponent(t)}`:`/health?model_id=${encodeURIComponent(t)}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error(`Failed to call /health for model id ${t}:`,e),e}},tR=async e=>{try{let t=S?`${S}/cache/ping`:"/cache/ping",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error(e)}return await r.json()}catch(e){throw console.error("Failed to call /cache/ping:",e),e}},tN=async e=>{try{let t=S?`${S}/health/latest`:"/health/latest",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error(e)}return await r.json()}catch(e){throw console.error("Failed to call /health/latest:",e),e}},tM=async e=>{try{console.log("Getting proxy UI settings"),console.log("proxyBaseUrl in getProxyUISettings:",S);let t=S?`${S}/sso/get/ui_settings`:"/sso/get/ui_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tB=async e=>{try{let t=S?`${S}/get/ui_settings`:"/get/ui_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);return console.error("Failed to get UI settings:",t),null}return await r.json()}catch(e){return console.error("Failed to get UI settings:",e),null}},tA=async e=>{try{let t=S?`${S}/get/mcp_semantic_filter_settings`:"/get/mcp_semantic_filter_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get MCP semantic filter settings:",e),e}},tz=async(e,t)=>{try{let r=S?`${S}/update/mcp_semantic_filter_settings`:"/update/mcp_semantic_filter_settings",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP semantic filter settings:",e),e}},tL=async(e,t,r)=>{try{let o=S?`${S}/v1/responses`:"/v1/responses",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({model:t,input:[{role:"user",content:r,type:"message"}],tools:[{type:"mcp",server_url:"litellm_proxy",require_approval:"never"}],tool_choice:"required"})}),a=n.headers.get("x-litellm-semantic-filter"),i=n.headers.get("x-litellm-semantic-filter-tools");if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return{data:await n.json(),headers:{filter:a,tools:i}}}catch(e){throw console.error("Failed to test MCP semantic filter:",e),e}},tD=async e=>{try{let t=S?`${S}/v2/guardrails/list`:"/v2/guardrails/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(`v2 guardrails/list returned ${r.status}`);return await r.json()}catch(t){console.log("v2/guardrails/list failed, falling back to v1:",t);try{let t=S?`${S}/guardrails/list`:"/guardrails/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get guardrails list:",e),e}}},tH=async(e,t)=>{let r=S?`${S}/guardrails/submissions`:"/guardrails/submissions",o=new URLSearchParams;t?.status&&o.set("status",t.status),t?.team_id&&o.set("team_id",t.team_id),t?.team_guardrail!==void 0&&o.set("team_guardrail",String(t.team_guardrail)),t?.search&&o.set("search",t.search);let n=o.toString()?`${r}?${o.toString()}`:r,a=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=oM(await a.json().catch(()=>({})));throw _(e),Error(e)}return a.json()},tV=async(e,t)=>{let r=S?`${S}/guardrails/submissions/${encodeURIComponent(t)}/approve`:`/guardrails/submissions/${encodeURIComponent(t)}/approve`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=oM(await o.json().catch(()=>({})));throw _(e),Error(e)}return o.json()},tW=async(e,t)=>{let r=S?`${S}/guardrails/submissions/${encodeURIComponent(t)}/reject`:`/guardrails/submissions/${encodeURIComponent(t)}/reject`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=oM(await o.json().catch(()=>({})));throw _(e),Error(e)}return o.json()},tU=async(e,t,r)=>{try{let o=S?`${S}/guardrails/usage/overview`:"/guardrails/usage/overview",n=new URLSearchParams;t&&n.append("start_date",t),r&&n.append("end_date",r),n.toString()&&(o+=`?${n.toString()}`);let a=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json();throw Error(oM(e))}return a.json()}catch(e){throw console.error("Failed to get guardrails usage overview:",e),e}},tG=async(e,t,r,o)=>{try{let n=S?`${S}/guardrails/usage/detail/${encodeURIComponent(t)}`:`/guardrails/usage/detail/${encodeURIComponent(t)}`,a=new URLSearchParams;r&&a.append("start_date",r),o&&a.append("end_date",o),a.toString()&&(n+=`?${a.toString()}`);let i=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json();throw Error(oM(e))}return i.json()}catch(e){throw console.error("Failed to get guardrails usage detail:",e),e}},tq=async(e,t)=>{try{let r=S?`${S}/guardrails/usage/logs`:"/guardrails/usage/logs",o=new URLSearchParams;t.guardrailId&&o.append("guardrail_id",t.guardrailId),t.policyId&&o.append("policy_id",t.policyId),null!=t.page&&o.append("page",String(t.page)),null!=t.pageSize&&o.append("page_size",String(t.pageSize)),t.action&&o.append("action",t.action),t.startDate&&o.append("start_date",t.startDate),t.endDate&&o.append("end_date",t.endDate),o.toString()&&(r+=`?${o.toString()}`);let n=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json();throw Error(oM(e))}return n.json()}catch(e){throw console.error("Failed to get guardrails usage logs:",e),e}},tJ=async e=>{try{let t=S?`${S}/policies/list`:"/policies/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policies list:",e),e}},tK=async(e,t,r)=>{try{let o=S?`${S}/utils/test_policies_and_guardrails`:"/utils/test_policies_and_guardrails",n=await fetch(o,{method:"POST",signal:r,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({policy_names:t.policy_names??null,guardrail_names:t.guardrail_names??null,inputs:t.inputs??null,inputs_list:t.inputs_list??null,request_data:t.request_data??{},input_type:t.input_type??"request",agent_id:t.agent_id??null})});if(!n.ok){let e=await n.text(),t="Failed to test policies and guardrails";try{let r=JSON.parse(e);r.detail?t="string"==typeof r.detail?r.detail:JSON.stringify(r.detail):r.message&&(t=r.message)}catch{t=e||t}throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to test policies and guardrails:",e),e}},tX=async(e,t)=>{try{let r=S?`${S}/policy/info/${t}`:`/policy/info/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error(`Failed to get policy info for ${t}:`,e),e}},tQ=async e=>{try{let t=S?`${S}/policy/templates`:"/policy/templates",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policy templates:",e),e}},tY=async(e,t,r,o,n)=>{try{let a=S?`${S}/policy/templates/enrich`:"/policy/templates/enrich",i={template_id:t,parameters:r};o&&(i.model=o),n&&(i.competitors=n);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}return await l.json()}catch(e){throw console.error("Failed to enrich policy template:",e),e}},tZ=async(e,t,r,o)=>{try{let n=S?`${S}/policy/templates/suggest`:"/policy/templates/suggest",a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({attack_examples:t.filter(e=>e.trim()),description:r,model:o})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return a.json()}catch(e){throw console.error("Failed to suggest policy templates:",e),e}},t0=async(e,t,r)=>{try{let o=S?`${S}/policy/templates/test`:"/policy/templates/test",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({guardrail_definitions:t,text:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return n.json()}catch(e){throw console.error("Failed to test policy template:",e),e}},t1=async(e,t,r,o,n,a,i,l,s)=>{let c=S?`${S}/policy/templates/enrich/stream`:"/policy/templates/enrich/stream",u={template_id:t,parameters:r,model:o};l?.instruction&&(u.instruction=l.instruction),l?.existingCompetitors&&(u.competitors=l.existingCompetitors);let d=await fetch(c,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(u)});if(!d.ok){let e=oM(await d.json());throw _(e),Error(e)}let f=d.body?.getReader();if(!f)throw Error("No response body");let p=new TextDecoder,h="";for(;;){let{done:e,value:t}=await f.read();if(e)break;let r=(h+=p.decode(t,{stream:!0})).split("\n");for(let e of(h=r.pop()||"",r))if(e.startsWith("data: "))try{let t=JSON.parse(e.slice(6));"competitor"===t.type?n(t.name):"status"===t.type?s?.(t.message):"done"===t.type?a(t):"error"===t.type&&i?.(t.message)}catch{}}},t2=async(e,t,r,o,n,a,i,l,s)=>{let c=S?`${S}/usage/ai/chat`:"/usage/ai/chat",u=await fetch(c,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({messages:t,model:r}),signal:s});if(!u.ok){let e=oM(await u.json());throw _(e),Error(e)}let d=u.body?.getReader();if(!d)throw Error("No response body");let f=new TextDecoder,p="";for(;;){let{done:e,value:t}=await d.read();if(e)break;let r=(p+=f.decode(t,{stream:!0})).split("\n");for(let e of(p=r.pop()||"",r))if(e.startsWith("data: "))try{let t=JSON.parse(e.slice(6));"chunk"===t.type?o(t.content):"status"===t.type?i?.(t.message):"tool_call"===t.type?l?.(t):"done"===t.type?n():"error"===t.type&&a?.(t.message)}catch{}}},t4=async(e,t)=>{try{let r=S?`${S}/policies`:"/policies",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create policy:",e),e}},t6=async(e,t,r)=>{try{let o=S?`${S}/policies/${t}`:`/policies/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update policy:",e),e}},t3=async(e,t)=>{try{let r=encodeURIComponent(t),o=S?`${S}/policies/name/${r}/versions`:`/policies/name/${r}/versions`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to list policy versions:",e),e}},t7=async(e,t,r)=>{try{let o=encodeURIComponent(t),n=S?`${S}/policies/name/${o}/versions`:`/policies/name/${o}/versions`,a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({source_policy_id:r??void 0})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return await a.json()}catch(e){throw console.error("Failed to create policy version:",e),e}},t5=async(e,t,r)=>{try{let o=S?`${S}/policies/${t}/status`:`/policies/${t}/status`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({version_status:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update policy version status:",e),e}},t9=async(e,t)=>{try{let r=S?`${S}/policies/${t}`:`/policies/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete policy:",e),e}},t8=async(e,t)=>{try{let r=S?`${S}/policies/${t}`:`/policies/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get policy info:",e),e}},re=async e=>{try{let t=S?`${S}/policies/attachments/list`:"/policies/attachments/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policy attachments list:",e),e}},rt=async(e,t)=>{try{let r=S?`${S}/policies/attachments`:"/policies/attachments",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create policy attachment:",e),e}},rr=async(e,t)=>{try{let r=S?`${S}/policies/attachments/${t}`:`/policies/attachments/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete policy attachment:",e),e}},ro=async(e,t,r)=>{try{let o=S?`${S}/policies/test-pipeline`:"/policies/test-pipeline",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({pipeline:t,test_messages:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to test pipeline:",e),e}},rn=async(e,t)=>{try{let r=S?`${S}/policies/${t}/resolved-guardrails`:`/policies/${t}/resolved-guardrails`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get resolved guardrails:",e),e}},ra=async(e,t)=>{try{let r=S?`${S}/policies/resolve`:"/policies/resolve",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to resolve policies:",e),e}},ri=async(e,t)=>{try{let r=S?`${S}/policies/attachments/estimate-impact`:"/policies/attachments/estimate-impact",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to estimate attachment impact:",e),e}},rl=async(e,t)=>{try{let r=S?`${S}/prompts/list`:"/prompts/list";t&&(r+=`?environment=${encodeURIComponent(t)}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get prompts list:",e),e}},rs=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}/info`:`/prompts/${t}/info`;r&&(o+=`?environment=${encodeURIComponent(r)}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to get prompt info:",e),e}},rc=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}/versions`:`/prompts/${t}/versions`;r&&(o+=`?environment=${encodeURIComponent(r)}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw 404!==n.status&&_(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to get prompt versions:",e),e}},ru=async(e,t)=>{try{let r=S?`${S}/prompts`:"/prompts",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create prompt:",e),e}},rd=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}`:`/prompts/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update prompt:",e),e}},rf=async(e,t)=>{try{let r=S?`${S}/prompts/${t}`:`/prompts/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete prompt:",e),e}},rp=async(e,t)=>{try{let r=new FormData;r.append("file",t);let o=S?`${S}/utils/dotprompt_json_converter`:"/utils/dotprompt_json_converter",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`},body:r});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to convert prompt file:",e),e}},rh=async(e,t)=>{try{let r=S?`${S}/v1/agents`:"/v1/agents",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Create agent response:",n),n}catch(e){throw console.error("Failed to create agent:",e),e}},rm=async(e,t)=>{try{let r=S?`${S}/guardrails`:"/guardrails",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({guardrail:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Create guardrail response:",n),n}catch(e){throw console.error("Failed to create guardrail:",e),e}},rg=async(e,t,r)=>{try{let o=S?`${S}/spend/logs/ui/${t}?start_date=${encodeURIComponent(r)}`:`/spend/logs/ui/${t}?start_date=${encodeURIComponent(r)}`;console.log("Fetching log details from:",o);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Fetched log details:",a),a}catch(e){throw console.error("Failed to fetch log details:",e),e}},rv=async e=>{try{let t=S?`${S}/get/internal_user_settings`:"/get/internal_user_settings";console.log("Fetching SSO settings from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched SSO settings:",o),o}catch(e){throw console.error("Failed to fetch SSO settings:",e),e}},ry=async(e,t)=>{try{let r=S?`${S}/update/internal_user_settings`:"/update/internal_user_settings";console.log("Updating internal user settings:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Updated internal user settings:",n),v.default.success("Internal user settings updated successfully"),n}catch(e){throw console.error("Failed to update internal user settings:",e),e}},rb=async e=>{try{let t=S?`${S}/v1/mcp/openapi-registry`:"/v1/mcp/openapi-registry",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json();throw Error(oM(e))}return await r.json()}catch(e){throw console.error("Failed to fetch OpenAPI registry:",e),e}},rw=async e=>{try{let t=S?`${S}/v1/mcp/discover`:"/v1/mcp/discover",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch discoverable MCP servers:",e),e}},r$=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server";if(t){let e=new URLSearchParams;e.append("team_id",t),r=`${r}?${e.toString()}`}console.log("Fetching MCP servers from:",r);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Fetched MCP servers:",n),n}catch(e){throw console.error("Failed to fetch MCP servers:",e),e}},rC=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server/health`:"/v1/mcp/server/health";if(t&&t.length>0){let e=new URLSearchParams;t.forEach(t=>e.append("server_ids",t)),r=`${r}?${e.toString()}`}console.log("Fetching MCP server health from:",r);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Fetched MCP server health:",n),n}catch(e){throw console.error("Failed to fetch MCP server health:",e),e}},rx=async e=>{try{let t=S?`${S}/v1/mcp/access_groups`:"/v1/mcp/access_groups";console.log("Fetching MCP access groups from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched MCP access groups:",o),o.access_groups||[]}catch(e){throw console.error("Failed to fetch MCP access groups:",e),e}},rE=async e=>{try{let t=S?`${S}/v1/mcp/network/client-ip`:"/v1/mcp/network/client-ip",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok)return null;return(await r.json()).ip||null}catch{return null}},rS=async(e,t)=>{try{console.log("Form Values in createMCPServer:",t);let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},rk=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server",o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP server:",e),e}},rj=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/server/${t}`;console.log("in deleteMCPServer:",t);let o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}}catch(e){throw console.error("Failed to delete key:",e),e}},rO=async e=>{try{let t=(S?`${S}`:"")+"/v1/mcp/toolset",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch MCP toolsets:",e),e}},rT=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/toolset",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create MCP toolset:",e),e}},rI=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/toolset",o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP toolset:",e),e}},r_=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/toolset/${t}`,o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}}catch(e){throw console.error("Failed to delete MCP toolset:",e),e}},rF=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/server/register",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return o.json()}catch(e){throw console.error("Failed to register MCP server:",e),e}},rP=async e=>{try{let t=(S?`${S}`:"")+"/v1/mcp/server/submissions",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return r.json()}catch(e){throw console.error("Failed to fetch MCP submissions:",e),e}},rR=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/server/${encodeURIComponent(t)}/approve`,o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return o.json()}catch(e){throw console.error("Failed to approve MCP server:",e),e}},rN=async(e,t,r)=>{try{let o=(S?`${S}`:"")+`/v1/mcp/server/${encodeURIComponent(t)}/reject`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({review_notes:r??null})});if(!n.ok){let e=await n.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return n.json()}catch(e){throw console.error("Failed to reject MCP server:",e),e}},rM=async e=>{try{let t=S?`${S}/search_tools/list`:"/search_tools/list";console.log("Fetching search tools from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched search tools:",o),o}catch(e){throw console.error("Failed to fetch search tools:",e),e}},rB=async(e,t)=>{try{console.log("Creating search tool with values:",t);let r=S?`${S}/search_tools`:"/search_tools",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({search_tool:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Created search tool:",n),n}catch(e){throw console.error("Failed to create search tool:",e),e}},rA=async(e,t,r)=>{try{console.log("Updating search tool with ID:",t,"values:",r);let o=S?`${S}/search_tools/${t}`:`/search_tools/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({search_tool:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Updated search tool:",a),a}catch(e){throw console.error("Failed to update search tool:",e),e}},rz=async(e,t)=>{try{let r=(S?`${S}`:"")+`/search_tools/${t}`;console.log("Deleting search tool:",t);let o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Deleted search tool:",n),n}catch(e){throw console.error("Failed to delete search tool:",e),e}},rL=async e=>{try{let t=S?`${S}/search_tools/ui/available_providers`:"/search_tools/ui/available_providers";console.log("Fetching available search providers from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched available search providers:",o),o}catch(e){throw console.error("Failed to fetch available search providers:",e),e}},rD=async(e,t)=>{try{let r=S?`${S}/search_tools/test_connection`:"/search_tools/test_connection";console.log("Testing search tool connection:",r);let o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({litellm_params:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Test connection response:",n),n}catch(e){throw console.error("Failed to test search tool connection:",e),e}},rH=async(e,t,r)=>{try{let o=S?`${S}/mcp-rest/tools/list?server_id=${t}`:`/mcp-rest/tools/list?server_id=${t}`;console.log("Fetching MCP tools from:",o);let n={[R]:`Bearer ${e}`,"Content-Type":"application/json",...r},a=await fetch(o,{method:"GET",headers:n}),i=await a.json();if(console.log("Fetched MCP tools response:",i),!a.ok){if(i.error&&i.message)throw Error(i.message);throw Error("Failed to fetch MCP tools")}return i}catch(e){return console.error("Failed to fetch MCP tools:",e),{tools:[],error:"network_error",message:e instanceof Error?e.message:"Failed to fetch MCP tools",stack_trace:null}}},rV=async(e,t,r,o,n)=>{try{let a=S?`${S}/mcp-rest/tools/call`:"/mcp-rest/tools/call";console.log("Calling MCP tool:",r,"with arguments:",o,"for server:",t);let i={[R]:`Bearer ${e}`,"Content-Type":"application/json",...n?.customHeaders||{}},l={server_id:t,name:r,arguments:o};n?.guardrails&&n.guardrails.length>0&&(l.litellm_metadata={guardrails:n.guardrails});let s=await fetch(a,{method:"POST",headers:i,body:JSON.stringify(l)});if(!s.ok){let e="Network response was not ok",t=null,r=await s.text();try{let o=JSON.parse(r);o.detail?"string"==typeof o.detail?e=o.detail:"object"==typeof o.detail&&(e=o.detail.message||o.detail.error||"An error occurred",t=o.detail):e=o.message||o.error||e}catch(t){console.error("Failed to parse JSON error response:",t),r&&(e=r)}let o=Error(e);throw o.status=s.status,o.statusText=s.statusText,o.details=t,_(e),o}let c=await s.json();return console.log("MCP tool call response:",c),c}catch(e){throw console.error("Failed to call MCP tool:",e),console.error("Error type:",typeof e),e instanceof Error&&(console.error("Error message:",e.message),console.error("Error stack:",e.stack)),e}},rW=async(e,t)=>{try{let r=S?`${S}/tag/new`:"/tag/new",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error creating tag:",e),e}},rU=async(e,t)=>{try{let r=S?`${S}/tag/update`:"/tag/update",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error updating tag:",e),e}},rG=async(e,t)=>{try{let r=S?`${S}/tag/info`:"/tag/info",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({names:t})});if(!o.ok){let e=await o.text();return await _(e),{}}return await o.json()}catch(e){throw console.error("Error getting tag info:",e),e}},rq=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`},rJ=async(e,t,r)=>{try{let o=S?`${S}/tag/list`:"/tag/list";if(t&&r){let e=new URLSearchParams({start_date:rq(t),end_date:rq(r)});o=`${o}?${e.toString()}`}let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!n.ok){let e=await n.text();return await _(e),{}}return await n.json()}catch(e){throw console.error("Error listing tags:",e),e}},rK=async(e,t)=>{try{let r=S?`${S}/tag/delete`:"/tag/delete",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({name:t})});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error deleting tag:",e),e}},rX=async e=>{try{let t=S?`${S}/get/default_team_settings`:"/get/default_team_settings";console.log("Fetching default team settings from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched default team settings:",o),o}catch(e){throw console.error("Failed to fetch default team settings:",e),e}},rQ=async(e,t)=>{try{let r=S?`${S}/update/default_team_settings`:"/update/default_team_settings";console.log("Updating default team settings:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Updated default team settings:",n),n}catch(e){throw console.error("Failed to update default team settings:",e),e}},rY=async(e,t)=>{try{let r=S?`${S}/team/permissions_list?team_id=${t}`:`/team/permissions_list?team_id=${t}`,o=await fetch(r,{method:"GET",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json(),t=oM(e);return console.error("Available permissions fetch failed:",t),{all_available_permissions:[],team_member_permissions:[]}}return await o.json()}catch(e){throw console.error("Failed to get team permissions:",e),e}},rZ=async(e,t,r)=>{try{let o=S?`${S}/team/permissions_update`:"/team/permissions_update",n=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({team_id:t,team_member_permissions:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Team permissions response:",a),a}catch(e){throw console.error("Failed to update team permissions:",e),e}},r0=async(e,t)=>{try{let r=S?`${S}/spend/logs/session/ui?session_id=${encodeURIComponent(t)}`:`/spend/logs/session/ui?session_id=${encodeURIComponent(t)}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to fetch session logs:",e),e}},r1=async(e,t)=>{try{let r=S?`${S}/vector_store/new`:"/vector_store/new",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to create vector store")}return await o.json()}catch(e){throw console.error("Error creating vector store:",e),e}},r2=async(e,t=1,r=100)=>{try{let t=S?`${S}/vector_store/list`:"/vector_store/list",r=await fetch(t,{method:"GET",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`}});if(!r.ok){let e=await r.json();throw Error(e.detail||"Failed to list vector stores")}return await r.json()}catch(e){throw console.error("Error listing vector stores:",e),e}},r4=async(e,t)=>{try{let r=S?`${S}/vector_store/delete`:"/vector_store/delete",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({vector_store_id:t})});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to delete vector store")}return await o.json()}catch(e){throw console.error("Error deleting vector store:",e),e}},r6=async(e,t)=>{try{let r=S?`${S}/vector_store/info`:"/vector_store/info",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({vector_store_id:t})});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to get vector store info")}return await o.json()}catch(e){throw console.error("Error getting vector store info:",e),e}},r3=async(e,t)=>{try{let r=S?`${S}/vector_store/update`:"/vector_store/update",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to update vector store")}return await o.json()}catch(e){throw console.error("Error updating vector store:",e),e}},r7=async(e,t,r,o,n,a,i)=>{try{let l=S?`${S}/rag/ingest`:"/rag/ingest",s=new FormData;s.append("file",t);let c={ingest_options:{vector_store:{custom_llm_provider:r,...o&&{vector_store_id:o},...i&&i}}};(n||a)&&(c.ingest_options.litellm_vector_store_params={},n&&(c.ingest_options.litellm_vector_store_params.vector_store_name=n),a&&(c.ingest_options.litellm_vector_store_params.vector_store_description=a)),s.append("request",JSON.stringify(c));let u=await fetch(l,{method:"POST",headers:{[R]:`Bearer ${e}`},body:s});if(!u.ok){let e=await u.json();throw Error(e.error?.message||e.detail||"Failed to ingest document")}return await u.json()}catch(e){throw console.error("Error ingesting document:",e),e}},r5=async e=>{try{let t=S?`${S}/email/event_settings`:"/email/event_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get email event settings")}let o=await r.json();return console.log("Email event settings response:",o),o}catch(e){throw console.error("Failed to get email event settings:",e),e}},r9=async(e,t)=>{try{let r=S?`${S}/email/event_settings`:"/email/event_settings",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to update email event settings")}let n=await o.json();return console.log("Update email event settings response:",n),n}catch(e){throw console.error("Failed to update email event settings:",e),e}},r8=async e=>{try{let t=S?`${S}/email/event_settings/reset`:"/email/event_settings/reset",r=await fetch(t,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to reset email event settings")}let o=await r.json();return console.log("Reset email event settings response:",o),o}catch(e){throw console.error("Failed to reset email event settings:",e),e}},oe=async(e,t)=>{try{let r=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Delete agent response:",n),n}catch(e){throw console.error("Failed to delete agent:",e),e}},ot=async(e,t)=>{try{let r=S?`${S}/v1/agents/make_public`:"/v1/agents/make_public",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({agent_ids:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Make agents public response:",n),n}catch(e){throw console.error("Failed to make agents public:",e),e}},or=async(e,t)=>{try{let r=S?`${S}/v1/mcp/make_public`:"/v1/mcp/make_public",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({mcp_server_ids:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Make agents public response:",n),n}catch(e){throw console.error("Failed to make agents public:",e),e}},oo=async(e,t)=>{try{let r=S?`${S}/guardrails/${t}`:`/guardrails/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Delete guardrail response:",n),n}catch(e){throw console.error("Failed to delete guardrail:",e),e}},on=async e=>{try{let t=S?`${S}/guardrails/ui/add_guardrail_settings`:"/guardrails/ui/add_guardrail_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get guardrail UI settings")}let o=await r.json();return console.log("Guardrail UI settings response:",o),o}catch(e){throw console.error("Failed to get guardrail UI settings:",e),e}},oa=async e=>{try{let t=S?`${S}/guardrails/ui/provider_specific_params`:"/guardrails/ui/provider_specific_params",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get guardrail provider specific parameters")}let o=await r.json();return console.log("Guardrail provider specific params response:",o),o}catch(e){throw console.error("Failed to get guardrail provider specific parameters:",e),e}},oi=async(e,t)=>{try{let r=encodeURIComponent(t),o=S?`${S}/guardrails/ui/category_yaml/${r}`:`/guardrails/ui/category_yaml/${r}`;console.log(`Fetching category YAML from: ${o}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text();throw console.error(`Failed to get category YAML. Status: ${n.status}, Error:`,e),_(e),Error(`Failed to get category YAML: ${n.status} ${e}`)}let a=await n.json();return console.log("Category YAML response:",a),a}catch(e){throw console.error("Failed to get category YAML:",e),e}},ol=async e=>{try{let t=S?`${S}/guardrails/ui/major_airlines`:"/guardrails/ui/major_airlines",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw console.error(`Failed to get major airlines. Status: ${r.status}, Error:`,e),_(e),Error(`Failed to get major airlines: ${r.status} ${e}`)}return await r.json()}catch(e){throw console.error("Failed to get major airlines:",e),e}},os=async(e,t=!1)=>{try{let r=t?"?health_check=true":"",o=S?`${S}/v1/agents${r}`:`/v1/agents${r}`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to get agents list")}let a=await n.json();return console.log("Agents list response:",a),{agents:a}}catch(e){throw console.error("Failed to get agents list:",e),e}},oc=async(e,t)=>{try{let r=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to get agent info")}let n=await o.json();return console.log("Agent info response:",n),n}catch(e){throw console.error("Failed to get agent info:",e),e}},ou=async(e,t)=>{try{let r=S?`${S}/guardrails/${t}/info`:`/guardrails/${t}/info`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to get guardrail info")}let n=await o.json();return console.log("Guardrail info response:",n),n}catch(e){throw console.error("Failed to get guardrail info:",e),e}},od=async(e,t,r)=>{try{let o=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to patch agent")}let a=await n.json();return console.log("Patch agent response:",a),a}catch(e){throw console.error("Failed to update guardrail:",e),e}},of=async(e,t,r)=>{try{let o=S?`${S}/guardrails/${t}`:`/guardrails/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to update guardrail")}let a=await n.json();return console.log("Update guardrail response:",a),a}catch(e){throw console.error("Failed to update guardrail:",e),e}},op=async(e,t,r,o,n)=>{try{let a=S?`${S}/guardrails/apply_guardrail`:"/guardrails/apply_guardrail",i={guardrail_name:t,text:r};o&&(i.language=o),n&&n.length>0&&(i.entities=n);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.text(),t="Failed to apply guardrail";try{let r=JSON.parse(e);r.error?.message?t=r.error.message:r.detail?t=r.detail:r.message&&(t=r.message)}catch(r){t=e||t}throw _(e),Error(t)}let s=await l.json();return console.log("Apply guardrail response:",s),s}catch(e){throw console.error("Failed to apply guardrail:",e),e}},oh=async(e,t)=>{try{let r=S?`${S}/guardrails/test_custom_code`:"/guardrails/test_custom_code",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text(),t="Failed to test custom code guardrail";try{let r=JSON.parse(e);r.error?.message?t=r.error.message:r.detail?t=r.detail:r.message&&(t=r.message)}catch(r){t=e||t}throw _(e),Error(t)}let n=await o.json();return console.log("Test custom code guardrail response:",n),n}catch(e){throw console.error("Failed to test custom code guardrail:",e),e}},om=async(e,t)=>{try{let r=S?`${S}/guardrails/validate_blocked_words_file`:"/guardrails/validate_blocked_words_file",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({file_content:t})});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to validate blocked words file")}let n=await o.json();return console.log("Validate blocked words file response:",n),n}catch(e){throw console.error("Failed to validate blocked words file:",e),e}},og=async e=>{try{let t=S?`${S}/get/sso_settings`:"/get/sso_settings";console.log("Fetching SSO configuration from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched SSO configuration:",o),o}catch(e){throw console.error("Failed to fetch SSO configuration:",e),e}},ov=async(e,t)=>{try{let r=S?`${S}/update/sso_settings`:"/update/sso_settings";console.log("Updating SSO configuration:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t="object"==typeof e?.detail?e.detail?.error||e.detail?.message:e?.detail,r="string"==typeof t&&t.length>0?t:oM(e);_(r);let n=Error(r);throw e?.detail!==void 0&&(n.detail=e.detail),n.rawError=e,n}let n=await o.json();return console.log("Updated SSO configuration:",n),n}catch(e){throw console.error("Failed to update SSO configuration:",e),e}},oy=async({accessToken:e,page:t=1,page_size:r=50,params:o={}})=>{try{let n=S?`${S}/audit`:"/audit",a=new URLSearchParams;for(let[e,n]of(a.append("page",t.toString()),a.append("page_size",r.toString()),Object.entries(o)))null!=n&&""!==n&&a.append(e,String(n));n+=`?${a.toString()}`;let i=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to fetch audit logs:",e),e}},ob=async e=>{try{let t=S?`${S}/user/available_users`:"/user/available_users",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok){if(404===r.status)return null;let e=await r.text();throw _(e),Error("Network response was not ok")}return await r.json()}catch(e){throw console.error("Failed to fetch remaining users:",e),e}},ow=async e=>{try{let t=S?`${S}/health/license`:"/health/license",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok){if(404===r.status)return null;let e=await r.text();throw _(e),Error("Network response was not ok")}return await r.json()}catch(e){throw console.error("Failed to fetch license info:",e),e}},o$=async(e,t,r)=>{try{let o=S?`${S}/config/pass_through_endpoint/${encodeURIComponent(t)}`:`/config/pass_through_endpoint/${encodeURIComponent(t)}`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return v.default.success("Pass through endpoint updated successfully"),a}catch(e){throw console.error("Failed to update pass through endpoint:",e),e}},oC=async(e,t)=>{try{let r=S?`${S}/config/callback/delete`:"/config/callback/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({callback_name:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete specific callback:",e),e}},ox=async(e,t,r)=>{try{console.log("Testing MCP tools list with config:",JSON.stringify(t));let o=S?`${S}/mcp-rest/test/tools/list`:"/mcp-rest/test/tools/list",n={"Content-Type":"application/json"};e&&(n["x-litellm-api-key"]=e),r?n.Authorization=`Bearer ${r}`:e&&(n[R]=`Bearer ${e}`);let a=await fetch(o,{method:"POST",headers:n,body:JSON.stringify(t)}),i=a.headers.get("content-type");if(!i||!i.includes("application/json")){let e=await a.text();throw console.error("Received non-JSON response:",e),Error(`Received non-JSON response (${a.status}: ${a.statusText}). Check network tab for details.`)}let l=await a.json();if((!a.ok||l.error)&&!l.error)return{tools:[],error:"request_failed",message:l.message||`MCP tools list failed: ${a.status} ${a.statusText}`};return l}catch(e){throw console.error("MCP tools list test error:",e),e}},oE=async(e,t)=>{let r=S?`${S}/v1/mcp/server/oauth/session`:"/v1/mcp/server/oauth/session",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)}),n=await o.json();if(!o.ok)throw Error(oM(n)||n?.error||"Failed to cache MCP server");return n},oS=async(e,t,r)=>{let o=k(),n=encodeURIComponent(t.trim()),a=`${o}/v1/mcp/server/oauth/${n}/register`,i=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json, text/event-stream"},body:JSON.stringify(r)}),l=await i.json();if(!i.ok)throw Error(oM(l)||l?.detail||"Failed to register OAuth client");return l},ok=({serverId:e,clientId:t,redirectUri:r,state:o,codeChallenge:n,scope:a})=>{let i=k(),l=encodeURIComponent(e.trim()),s=`${i}/v1/mcp/server/oauth/${l}/authorize`,c=new URLSearchParams({redirect_uri:r,state:o,response_type:"code",code_challenge:n,code_challenge_method:"S256"});return t&&t.trim().length>0&&c.set("client_id",t),a&&a.trim().length>0&&c.set("scope",a),`${s}?${c.toString()}`},oj=async({serverId:e,code:t,clientId:r,clientSecret:o,codeVerifier:n,redirectUri:a,accessToken:i})=>{let l=k(),s=encodeURIComponent(e.trim()),c=`${l}/v1/mcp/server/oauth/${s}/token`,u=new URLSearchParams;u.set("grant_type","authorization_code"),u.set("code",t),r&&r.trim().length>0&&u.set("client_id",r),o&&o.trim().length>0&&u.set("client_secret",o),u.set("code_verifier",n),u.set("redirect_uri",a);let d={"Content-Type":"application/x-www-form-urlencoded"};i&&(d.Authorization=`Bearer ${i}`);let f=await fetch(c,{method:"POST",headers:d,body:u.toString()}),p=await f.json();if(!f.ok)throw Error(oM(p)||p?.detail||"OAuth token exchange failed");return p},oO=async(e,t,r)=>{try{let o=`${k()}/v1/vector_stores/${t}/search`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({query:r})});if(!n.ok){let e=await n.text();return await _(e),null}return await n.json()}catch(e){throw console.error("Error testing vector store search:",e),e}},oT=async(e,t,r,o)=>{try{let n=`${k()}/v1/search/${t}`,a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({query:r,max_results:o||5})});if(!a.ok){let e=await a.text();return await _(e),null}return await a.json()}catch(e){throw console.error("Error querying search tool:",e),e}},oI=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/dau`:"/tag/dau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch DAU:",e),e}},o_=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/wau`:"/tag/wau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch WAU:",e),e}},oF=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/mau`:"/tag/mau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch MAU:",e),e}},oP=async e=>{try{let t=S?`${S}/tag/distinct`:"/tag/distinct",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch distinct tags:",e),e}},oR=async(e,t,r,o)=>{try{let n=S?`${S}/tag/summary`:"/tag/summary",a=new URLSearchParams,i=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`};a.append("start_date",i(t)),a.append("end_date",i(r)),o&&o.length>0&&o.forEach(e=>{a.append("tag_filters",e)});let l=a.toString();l&&(n+=`?${l}`);let s=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}return await s.json()}catch(e){throw console.error("Failed to fetch user agent summary:",e),e}},oN=async(e,t=1,r=50,o)=>{try{let n=S?`${S}/tag/user-agent/per-user-analytics`:"/tag/user-agent/per-user-analytics",a=new URLSearchParams;a.append("page",t.toString()),a.append("page_size",r.toString()),o&&o.length>0&&o.forEach(e=>{a.append("tag_filters",e)});let i=a.toString();i&&(n+=`?${i}`);let l=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}return await l.json()}catch(e){throw console.error("Failed to fetch per-user analytics:",e),e}},oM=e=>{let t=e?.detail,r=Array.isArray(t)?t.map(e=>e?.msg||JSON.stringify(e)).join("; "):"string"==typeof t?t:void 0;return e?.error&&(e.error.message||("string"==typeof e.error?e.error:void 0))||e?.message||r||JSON.stringify(e)},oB=async(e,t,r)=>{let n=k(),a=r?"/v3/login":"/v2/login",i=n?`${n}${a}`:a,l=JSON.stringify({username:e,password:t}),s=await fetch(i,{method:"POST",body:l,credentials:"include",headers:{"Content-Type":"application/json"}});if(!s.ok)throw Error(oM(await s.json()));let c=await s.json();if(r&&c.code){let e=n?`${n}/v3/login/exchange`:"/v3/login/exchange",t=await fetch(e,{method:"POST",body:JSON.stringify({code:c.code}),credentials:"include",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error(oM(await t.json()));let r=await t.json();return r.token&&(0,o.storeLoginToken)(r.token),r}return c.token&&(0,o.storeLoginToken)(c.token),c},oA=async(e,t)=>{let r=t||k(),o=await fetch(`${r}/v3/login/exchange`,{method:"POST",body:JSON.stringify({code:e}),headers:{"Content-Type":"application/json"}});if(!o.ok)throw Error(oM(await o.json()));let n=await o.json();return n.token&&(document.cookie=`token=${n.token}; path=/; SameSite=Lax`),n.token},oz=async()=>{let e=k(),t=e?`${e}/get/ui_settings`:"/get/ui_settings",r=await fetch(t,{method:"GET"});if(!r.ok)throw Error(oM(await r.json()));return await r.json()},oL=async(e,t)=>{let r=k(),o=r?`${r}/update/ui_settings`:"/update/ui_settings",n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok)throw Error(oM(await n.json()));return await n.json()},oD=async(e,t=!1)=>{try{let r=k(),o=r?`${r}/claude-code/plugins?enabled_only=${t}`:`/claude-code/plugins?enabled_only=${t}`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to fetch Claude Code plugins list:",e),e}},oH=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins`:"/claude-code/plugins",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to register Claude Code plugin:",e),e}},oV=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}/enable`:`/claude-code/plugins/${t}/enable`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to enable plugin "${t}":`,e),e}},oW=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}/disable`:`/claude-code/plugins/${t}/disable`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to disable plugin "${t}":`,e),e}},oU=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}`:`/claude-code/plugins/${t}`,n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to delete plugin "${t}":`,e),e}},oG=async(e,t)=>{let r=S?`${S}/compliance/eu-ai-act`:"/compliance/eu-ai-act",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok)throw Error(await o.text());return o.json()},oq=async(e,t)=>{let r=S?`${S}/compliance/gdpr`:"/compliance/gdpr",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok)throw Error(await o.text());return o.json()},oJ=async e=>{let t=S?`${S}/v1/tool/policy/options`:"/v1/tool/policy/options",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(await r.text());return r.json()},oK=async e=>{let t=S?`${S}/v1/tool/list`:"/v1/tool/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(await r.text());return(await r.json()).tools??[]},oX=async(e,t,r)=>{let o=encodeURIComponent(t),n=S?`${S}/v1/tool/${o}/logs`:`/v1/tool/${o}/logs`,a=new URLSearchParams;null!=r.page&&a.append("page",String(r.page)),null!=r.pageSize&&a.append("page_size",String(r.pageSize)),r.startDate&&a.append("start_date",r.startDate),r.endDate&&a.append("end_date",r.endDate);let i=a.toString()?`${n}?${a.toString()}`:n,l=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok)throw Error(oM(await l.json().catch(()=>({}))));return l.json()},oQ=async(e,t)=>{let r=encodeURIComponent(t),o=S?`${S}/v1/tool/${r}/detail`:`/v1/tool/${r}/detail`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok)throw Error(await n.text());return n.json()},oY=async(e,t,r,o)=>{let n=S?`${S}/v1/tool/policy`:"/v1/tool/policy",a={tool_name:t};null!=r.input_policy&&(a.input_policy=r.input_policy),null!=r.output_policy&&(a.output_policy=r.output_policy),o?.team_id!=null&&(a.team_id=o.team_id||void 0),o?.key_hash!=null&&(a.key_hash=o.key_hash||void 0),o?.key_alias!=null&&(a.key_alias=o.key_alias||void 0);let i=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(a)});if(!i.ok)throw Error(await i.text());return i.json()},oZ=async(e,t,r)=>{let o=encodeURIComponent(t),n=new URLSearchParams;null!=r.team_id&&""!==r.team_id&&n.set("team_id",r.team_id),null!=r.key_hash&&""!==r.key_hash&&n.set("key_hash",r.key_hash);let a=n.toString(),i=S?`${S}/v1/tool/${o}/overrides${a?`?${a}`:""}`:`/v1/tool/${o}/overrides${a?`?${a}`:""}`,l=await fetch(i,{method:"DELETE",headers:{[R]:`Bearer ${e}`}});if(!l.ok)throw Error(await l.text());return l.json()},o0=async(e,t,r)=>{let o=S?`${S}/v1/mcp/server/${t}/oauth-user-credential`:`/v1/mcp/server/${t}/oauth-user-credential`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json().catch(()=>({})),t=e?.detail;throw Error((Array.isArray(t)?t.map(e=>e&&"object"==typeof e?e.msg??JSON.stringify(e):String(e)).join("; "):"string"==typeof t?t:t&&"string"==typeof t.error?t.error:void 0)||"Failed to store OAuth credential")}return n.json()},o1=async(e,t)=>{let r=S?`${S}/v1/mcp/server/${t}/oauth-user-credential`:`/v1/mcp/server/${t}/oauth-user-credential`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json().catch(()=>({})),t=e?.detail;throw Error((Array.isArray(t)?t.map(e=>e&&"object"==typeof e?e.msg??JSON.stringify(e):String(e)).join("; "):"string"==typeof t?t:t&&"string"==typeof t.error?t.error:void 0)||"Failed to revoke OAuth credential")}return o.json()},o2=async(e,t)=>{let r=S?`${S}/v1/mcp/server/${t}/oauth-user-credential/status`:`/v1/mcp/server/${t}/oauth-user-credential/status`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`}});return o.ok?o.json():{server_id:t,has_credential:!1,is_expired:!1}},o4=async e=>{let t=S?`${S}/v1/mcp/user-credentials`:"/v1/mcp/user-credentials",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});return r.ok?r.json():[]},o6=e=>e.split("/").map(encodeURIComponent).join("/"),o3=async(e,t={})=>{let r=S?`${S}/v1/memory`:"/v1/memory",o=new URLSearchParams;t.keyPrefix?o.append("key_prefix",t.keyPrefix):t.key&&o.append("key",t.key),null!=t.page&&o.append("page",String(t.page)),null!=t.pageSize&&o.append("page_size",String(t.pageSize));let n=o.toString()?`${r}?${o.toString()}`:r,a=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok)throw Error(await a.text());return a.json()},o7=async(e,t)=>{let r=S?`${S}/v1/memory`:"/v1/memory",o={key:t.key,value:t.value};void 0!==t.metadata&&(o.metadata=t.metadata);let n=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(o)});if(!n.ok)throw Error(await n.text());return n.json()},o5=async(e,t,r)=>{let o=o6(t),n=S?`${S}/v1/memory/${o}`:`/v1/memory/${o}`,a=await fetch(n,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!a.ok)throw Error(await a.text());return a.json()},o9=async(e,t)=>{let r=o6(t),o=S?`${S}/v1/memory/${r}`:`/v1/memory/${r}`,n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok)throw Error(await n.text())}},266027,869230,469637,e=>{"use strict";let t;var r=e.i(175555),o=e.i(273911),n=e.i(540143),a=e.i(286491),i=e.i(915823),l=e.i(793803),s=e.i(619273),c=e.i(180166),u=class extends i.Subscribable{constructor(e,t){super(),this.options=t,this.#e=e,this.#t=null,this.#r=(0,l.pendingThenable)(),this.bindMethods(),this.setOptions(t)}#e;#o=void 0;#n=void 0;#a=void 0;#i;#l;#r;#t;#s;#c;#u;#d;#f;#p;#h=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#o.addObserver(this),d(this.#o,this.options)?this.#m():this.updateResult(),this.#g())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return f(this.#o,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return f(this.#o,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#v(),this.#y(),this.#o.removeObserver(this)}setOptions(e){let t=this.options,r=this.#o;if(this.options=this.#e.defaultQueryOptions(e),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,s.resolveQueryBoolean)(this.options.enabled,this.#o))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#b(),this.#o.setOptions(this.options),t._defaulted&&!(0,s.shallowEqualObjects)(this.options,t)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#o,observer:this});let o=this.hasListeners();o&&p(this.#o,r,this.options,t)&&this.#m(),this.updateResult(),o&&(this.#o!==r||(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)!==(0,s.resolveQueryBoolean)(t.enabled,this.#o)||(0,s.resolveStaleTime)(this.options.staleTime,this.#o)!==(0,s.resolveStaleTime)(t.staleTime,this.#o))&&this.#w();let n=this.#$();o&&(this.#o!==r||(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)!==(0,s.resolveQueryBoolean)(t.enabled,this.#o)||n!==this.#p)&&this.#C(n)}getOptimisticResult(e){var t,r;let o=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(o,e);return t=this,r=n,(0,s.shallowEqualObjects)(t.getCurrentResult(),r)||(this.#a=n,this.#l=this.options,this.#i=this.#o.state),n}getCurrentResult(){return this.#a}trackResult(e,t){return new Proxy(e,{get:(e,r)=>(this.trackProp(r),t?.(r),"promise"===r&&(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#r.status||this.#r.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(e,r))})}trackProp(e){this.#h.add(e)}getCurrentQuery(){return this.#o}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),r=this.#e.getQueryCache().build(this.#e,t);return r.fetch().then(()=>this.createResult(r,t))}fetch(e){return this.#m({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#a))}#m(e){this.#b();let t=this.#o.fetch(this.options,e);return e?.throwOnError||(t=t.catch(s.noop)),t}#w(){this.#v();let e=(0,s.resolveStaleTime)(this.options.staleTime,this.#o);if(o.environmentManager.isServer()||this.#a.isStale||!(0,s.isValidTimeout)(e))return;let t=(0,s.timeUntilStale)(this.#a.dataUpdatedAt,e);this.#d=c.timeoutManager.setTimeout(()=>{this.#a.isStale||this.updateResult()},t+1)}#$(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#o):this.options.refetchInterval)??!1}#C(e){this.#y(),this.#p=e,!o.environmentManager.isServer()&&!1!==(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)&&(0,s.isValidTimeout)(this.#p)&&0!==this.#p&&(this.#f=c.timeoutManager.setInterval(()=>{(this.options.refetchIntervalInBackground||r.focusManager.isFocused())&&this.#m()},this.#p))}#g(){this.#w(),this.#C(this.#$())}#v(){void 0!==this.#d&&(c.timeoutManager.clearTimeout(this.#d),this.#d=void 0)}#y(){void 0!==this.#f&&(c.timeoutManager.clearInterval(this.#f),this.#f=void 0)}createResult(e,t){let r,o=this.#o,n=this.options,i=this.#a,c=this.#i,u=this.#l,f=e!==o?e.state:this.#n,{state:m}=e,g={...m},v=!1;if(t._optimisticResults){let r=this.hasListeners(),i=!r&&d(e,t),l=r&&p(e,o,t,n);(i||l)&&(g={...g,...(0,a.fetchState)(m.data,e.options)}),"isRestoring"===t._optimisticResults&&(g.fetchStatus="idle")}let{error:y,errorUpdatedAt:b,status:w}=g;r=g.data;let $=!1;if(void 0!==t.placeholderData&&void 0===r&&"pending"===w){let e;i?.isPlaceholderData&&t.placeholderData===u?.placeholderData?(e=i.data,$=!0):e="function"==typeof t.placeholderData?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,void 0!==e&&(w="success",r=(0,s.replaceData)(i?.data,e,t),v=!0)}if(t.select&&void 0!==r&&!$)if(i&&r===c?.data&&t.select===this.#s)r=this.#c;else try{this.#s=t.select,r=t.select(r),r=(0,s.replaceData)(i?.data,r,t),this.#c=r,this.#t=null}catch(e){this.#t=e}this.#t&&(y=this.#t,r=this.#c,b=Date.now(),w="error");let C="fetching"===g.fetchStatus,x="pending"===w,E="error"===w,S=x&&C,k=void 0!==r,j={status:w,fetchStatus:g.fetchStatus,isPending:x,isSuccess:"success"===w,isError:E,isInitialLoading:S,isLoading:S,data:r,dataUpdatedAt:g.dataUpdatedAt,error:y,errorUpdatedAt:b,failureCount:g.fetchFailureCount,failureReason:g.fetchFailureReason,errorUpdateCount:g.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:g.dataUpdateCount>f.dataUpdateCount||g.errorUpdateCount>f.errorUpdateCount,isFetching:C,isRefetching:C&&!x,isLoadingError:E&&!k,isPaused:"paused"===g.fetchStatus,isPlaceholderData:v,isRefetchError:E&&k,isStale:h(e,t),refetch:this.refetch,promise:this.#r,isEnabled:!1!==(0,s.resolveQueryBoolean)(t.enabled,e)};if(this.options.experimental_prefetchInRender){let t=void 0!==j.data,r="error"===j.status&&!t,n=e=>{r?e.reject(j.error):t&&e.resolve(j.data)},a=()=>{n(this.#r=j.promise=(0,l.pendingThenable)())},i=this.#r;switch(i.status){case"pending":e.queryHash===o.queryHash&&n(i);break;case"fulfilled":(r||j.data!==i.value)&&a();break;case"rejected":r&&j.error===i.reason||a()}}return j}updateResult(){let e=this.#a,t=this.createResult(this.#o,this.options);if(this.#i=this.#o.state,this.#l=this.options,void 0!==this.#i.data&&(this.#u=this.#o),(0,s.shallowEqualObjects)(t,e))return;this.#a=t;let r=()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,r="function"==typeof t?t():t;if("all"===r||!r&&!this.#h.size)return!0;let o=new Set(r??this.#h);return this.options.throwOnError&&o.add("error"),Object.keys(this.#a).some(t=>this.#a[t]!==e[t]&&o.has(t))};this.#x({listeners:r()})}#b(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#o)return;let t=this.#o;this.#o=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#g()}#x(e){n.notifyManager.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#a)}),this.#e.getQueryCache().notify({query:this.#o,type:"observerResultsUpdated"})})}};function d(e,t){return!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&void 0===e.state.data&&("error"!==e.state.status||!1!==(0,s.resolveQueryBoolean)(t.retryOnMount,e))||void 0!==e.state.data&&f(e,t,t.refetchOnMount)}function f(e,t,r){if(!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&"static"!==(0,s.resolveStaleTime)(t.staleTime,e)){let o="function"==typeof r?r(e):r;return"always"===o||!1!==o&&h(e,t)}return!1}function p(e,t,r,o){return(e!==t||!1===(0,s.resolveQueryBoolean)(o.enabled,e))&&(!r.suspense||"error"!==e.state.status)&&h(e,r)}function h(e,t){return!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&e.isStaleByTime((0,s.resolveStaleTime)(t.staleTime,e))}e.s(["QueryObserver",0,u],869230),e.i(247167);var m=e.i(271645),g=e.i(912598);e.i(843476);var v=m.createContext((t=!1,{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t})),y=m.createContext(!1);y.Provider;var b=(e,t,r)=>t.fetchOptimistic(e).catch(()=>{r.clearReset()});function w(e,t,r){let a,i=m.useContext(y),l=m.useContext(v),c=(0,g.useQueryClient)(r),u=c.defaultQueryOptions(e);c.getDefaultOptions().queries?._experimental_beforeQuery?.(u);let d=c.getQueryCache().get(u.queryHash);if(u._optimisticResults=i?"isRestoring":"optimistic",u.suspense){let e=e=>"static"===e?e:Math.max(e??1e3,1e3),t=u.staleTime;u.staleTime="function"==typeof t?(...r)=>e(t(...r)):e(t),"number"==typeof u.gcTime&&(u.gcTime=Math.max(u.gcTime,1e3))}a=d?.state.error&&"function"==typeof u.throwOnError?(0,s.shouldThrowError)(u.throwOnError,[d.state.error,d]):u.throwOnError,(u.suspense||u.experimental_prefetchInRender||a)&&!l.isReset()&&(u.retryOnMount=!1),m.useEffect(()=>{l.clearReset()},[l]);let f=!c.getQueryCache().get(u.queryHash),[p]=m.useState(()=>new t(c,u)),h=p.getOptimisticResult(u),w=!i&&!1!==e.subscribed;if(m.useSyncExternalStore(m.useCallback(e=>{let t=w?p.subscribe(n.notifyManager.batchCalls(e)):s.noop;return p.updateResult(),t},[p,w]),()=>p.getCurrentResult(),()=>p.getCurrentResult()),m.useEffect(()=>{p.setOptions(u)},[u,p]),u?.suspense&&h.isPending)throw b(u,p,l);if((({result:e,errorResetBoundary:t,throwOnError:r,query:o,suspense:n})=>e.isError&&!t.isReset()&&!e.isFetching&&o&&(n&&void 0===e.data||(0,s.shouldThrowError)(r,[e.error,o])))({result:h,errorResetBoundary:l,throwOnError:u.throwOnError,query:d,suspense:u.suspense}))throw h.error;if(c.getDefaultOptions().queries?._experimental_afterQuery?.(u,h),u.experimental_prefetchInRender&&!o.environmentManager.isServer()&&h.isLoading&&h.isFetching&&!i){let e=f?b(u,p,l):d?.promise;e?.catch(s.noop).finally(()=>{p.updateResult()})}return u.notifyOnChangeProps?h:p.trackResult(h)}e.s(["useBaseQuery",0,w],469637),e.s(["useQuery",0,function(e,t){return w(e,u,t)}],266027)},243652,e=>{"use strict";e.s(["createQueryKeys",0,function(e){let t=[e];return{all:t,lists:()=>[...t,"list"],list:e=>[...t,"list",{params:e}],details:()=>[...t,"detail"],detail:e=>[...t,"detail",e]}}])},947293,e=>{"use strict";class t extends Error{}t.prototype.name="InvalidTokenError",e.s(["jwtDecode",0,function(e,r){let o;if("string"!=typeof e)throw new t("Invalid token specified: must be a string");r||(r={});let n=+(!0!==r.header),a=e.split(".")[n];if("string"!=typeof a)throw new t(`Invalid token specified: missing part #${n+1}`);try{o=function(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw Error("base64 string is not of the correct length")}try{var r;return r=t,decodeURIComponent(atob(r).replace(/(.)/g,(e,t)=>{let r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r}))}catch(e){return atob(t)}}(a)}catch(e){throw new t(`Invalid token specified: invalid base64 for part #${n+1} (${e.message})`)}try{return JSON.parse(o)}catch(e){throw new t(`Invalid token specified: invalid json for part #${n+1} (${e.message})`)}}])},612256,e=>{"use strict";var t=e.i(764205),r=e.i(266027);let o=(0,e.i(243652).createQueryKeys)("uiConfig");e.s(["useUIConfig",0,()=>(0,r.useQuery)({queryKey:o.list({}),queryFn:async()=>await (0,t.getUiConfig)(),staleTime:864e5,gcTime:864e5})])}]); \ No newline at end of file +Allowed values: ${t.enum.join(", ")}`:E)}),children:r},e)})}):null};var v=e.i(727749);let y=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`},b=async e=>{try{let t=S?`${S}/callbacks/configs`:"/callbacks/configs",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},w=async e=>{try{let t=S?`${S}/in_product_nudges`:"/in_product_nudges",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get in-product nudges:",e),e}},$=t.default.env.NEXT_PUBLIC_BASE_URL?t.default.env.NEXT_PUBLIC_BASE_URL:null,C="/",x="litellm_worker_url",E=window.localStorage.getItem(x),S=(()=>{if(!E)return null;try{let e=new URL(E);if("http:"===e.protocol||"https:"===e.protocol)return E}catch{}return window.localStorage.removeItem(x),null})()??$;console.log=function(){};let k=()=>{if(S)return S;let e=window.location;return e?.origin??""};function j(e){(!e||function(e){try{let t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch{return!1}}(e))&&(e?window.localStorage.setItem(x,e):window.localStorage.removeItem(x),S=e??$)}let O="POST",T="DELETE",I=0,_=async e=>{let t=Date.now();if(t-I>6e4){if(("string"==typeof e?e:JSON.stringify(e)).includes("Authentication Error - Expired Key")){v.default.info("UI Session Expired. Logging out."),I=t,(0,o.clearTokenCookies)();let e=window.location;e&&(window.location.href=e.pathname)}I=t}else console.log("Error suppressed to prevent spam:",e)},F=async()=>{let e=S?`${S}/public/providers/fields`:"/public/providers/fields",t=await fetch(e,{method:"GET"});if(!t.ok){let e=await t.text();throw console.error("Failed to fetch provider create metadata:",t.status,e),Error("Failed to load provider configuration")}return await t.json()},P=async()=>{let e=S?`${S}/public/agents/fields`:"/public/agents/fields",t=await fetch(e,{method:"GET"});if(!t.ok){let e=await t.text();throw console.error("Failed to fetch agent create metadata:",t.status,e),Error("Failed to load agent configuration")}return await t.json()},R="Authorization";function N(e="Authorization"){console.log(`setGlobalLitellmHeaderName: ${e}`),R=e}function M(){return R}let B=async(e,t)=>{let r=S?`${S}/model_group/make_public`:"/model_group/make_public";return(await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({model_groups:t})})).json()},A=async()=>{console.log("Getting UI config");let e=$?`${$}/litellm/.well-known/litellm-ui-config`:"/litellm/.well-known/litellm-ui-config",r=await fetch(e),o=await r.json();return console.log("jsonData in getUiConfig:",o),((e,r=null)=>{if(window.localStorage.getItem(x))return;let o=window.location,n=t.default.env.NEXT_PUBLIC_BASE_URL?t.default.env.NEXT_PUBLIC_BASE_URL:o?.origin??null,a=r||n;if(console.log("proxyBaseUrl:",S),console.log("serverRootPath:",e),!a)return console.log("Updated proxyBaseUrl:",S=S??null);e.length>0&&!a.endsWith(e)&&"/"!=e&&(a+=e),console.log("Updated proxyBaseUrl:",S=a)})(o.server_root_path,o.proxy_base_url),o},z=async()=>{let e=S?`${S}/public/model_hub/info`:"/public/model_hub/info",t=await fetch(e);return await t.json()},L=async()=>{let e=S?`${S}/openapi.json`:"/openapi.json",t=await fetch(e);return await t.json()},D=async()=>{try{let e=S?`${S}/public/litellm_model_cost_map`:"/public/litellm_model_cost_map",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}}),r=await t.json();return console.log(`received litellm model cost data: ${r}`),r}catch(e){throw console.error("Failed to get model cost map:",e),e}},H=async e=>{try{let t=S?`${S}/reload/model_cost_map`:"/reload/model_cost_map",r=await fetch(t,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),o=await r.json();return console.log(`Model cost map reload response: ${o}`),o}catch(e){throw console.error("Failed to reload model cost map:",e),e}},V=async(e,t)=>{try{let r=S?`${S}/schedule/model_cost_map_reload?hours=${t}`:`/schedule/model_cost_map_reload?hours=${t}`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),n=await o.json();return console.log(`Schedule model cost map reload response: ${n}`),n}catch(e){throw console.error("Failed to schedule model cost map reload:",e),e}},W=async e=>{try{let t=S?`${S}/schedule/model_cost_map_reload`:"/schedule/model_cost_map_reload",r=await fetch(t,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),o=await r.json();return console.log(`Cancel model cost map reload response: ${o}`),o}catch(e){throw console.error("Failed to cancel model cost map reload:",e),e}},U=async e=>{try{let t=S?`${S}/model/cost_map/source`:"/model/cost_map/source",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw Error(`HTTP ${r.status}: ${e}`)}let o=await r.json();return console.log("Model cost map source info:",o),o}catch(e){throw console.error("Failed to get model cost map source info:",e),e}},G=async e=>{try{let t=S?`${S}/schedule/model_cost_map_reload/status`:"/schedule/model_cost_map_reload/status";console.log("Fetching status from URL:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){console.error(`Status request failed with status: ${r.status}`);let e=await r.text();throw console.error("Error response:",e),Error(`HTTP ${r.status}: ${e}`)}let o=await r.json();return console.log("Model cost map reload status:",o),o}catch(e){throw console.error("Failed to get model cost map reload status:",e),e}},q=async(e,t)=>{try{let o=S?`${S}/model/new`:"/model/new",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),r.default.destroy(),v.default.success(`Model ${t.model_name} created successfully`),a}catch(e){throw console.error("Failed to create key:",e),e}},J=async(e,t)=>{console.log(`model_id in model delete call: ${t}`);try{let r=S?`${S}/model/delete`:"/model/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},K=async(e,t)=>{if(console.log(`budget_id in budget delete call: ${t}`),null!=e)try{let r=S?`${S}/budget/delete`:"/budget/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},X=async(e,t)=>{try{console.log("Form Values in budgetCreateCall:",t),console.log("Form Values after check:",t);let r=S?`${S}/budget/new`:"/budget/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Q=async(e,t)=>{try{console.log("Form Values in budgetUpdateCall:",t),console.log("Form Values after check:",t);let r=S?`${S}/budget/update`:"/budget/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Y=async(e,t)=>{try{let r=S?`${S}/invitation/new`:"/invitation/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Z=async e=>{try{let t=S?`${S}/alerting/settings`:"/alerting/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},ee=async(e,t)=>{try{for(let e of(console.log("Form Values in keyCreateServiceAccountCall:",t),t.description&&(t.metadata||(t.metadata={}),t.metadata.description=t.description,delete t.description,t.metadata=JSON.stringify(t.metadata)),h))if(t[e]){console.log(`formValues.${e}:`,t[e]);try{t[e]=JSON.parse(t[e])}catch(t){throw Error(`Failed to parse ${e}: `+t)}}console.log("Form Values after check:",t);let r=S?`${S}/key/service-account/generate`:"/key/service-account/generate",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},et=async(e,t,r)=>{try{for(let e of(console.log("Form Values in keyCreateCall:",r),r.description&&(r.metadata||(r.metadata={}),r.metadata.description=r.description,delete r.description,r.metadata=JSON.stringify(r.metadata)),h))if(r[e]){console.log(`formValues.${e}:`,r[e]);try{r[e]=JSON.parse(r[e])}catch(t){throw Error(`Failed to parse ${e}: `+t)}}console.log("Form Values after check:",r);let o=S?`${S}/key/generate`:"/key/generate",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t,...r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},er=async(e,t,r,o,n,a)=>{let i=S?`${S}/key/generate`:"/key/generate",l={agent_id:t,key_alias:r,models:o.length>0?o:[]};a&&(l.team_id=a),n&&Object.keys(n).length>0&&(l.metadata=n);let s=await fetch(i,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(l)});if(!s.ok)throw _(await s.text()),Error("Failed to create key for agent");return s.json()},eo=async(e,t,r)=>{try{if(console.log("Form Values in keyCreateCall:",r),r.description&&(r.metadata||(r.metadata={}),r.metadata.description=r.description,delete r.description,r.metadata=JSON.stringify(r.metadata)),r.auto_create_key=!1,r.metadata){console.log("formValues.metadata:",r.metadata);try{r.metadata=JSON.parse(r.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}console.log("Form Values after check:",r);let o=S?`${S}/user/new`:"/user/new",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t,...r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},en=async(e,t)=>{try{let r=S?`${S}/key/delete`:"/key/delete";console.log("in keyDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({keys:[t]})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to create key:",e),e}},ea=async(e,t)=>{try{let r=S?`${S}/user/delete`:"/user/delete";console.log("in userDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_ids:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete user(s):",e),e}},ei=async(e,t)=>{try{let r=S?`${S}/team/delete`:"/team/delete";console.log("in teamDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_ids:[t]})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete key:",e),e}},el=async(e,t=null,r=null,o=null,n=null,a=null,i=null,l=null,s=null,c=null,u=null)=>{try{let d=S?`${S}/user/list`:"/user/list";console.log("in userListCall");let f=new URLSearchParams;if(t&&t.length>0){let e=t.join(",");f.append("user_ids",e)}r&&f.append("page",r.toString()),o&&f.append("page_size",o.toString()),n&&f.append("user_email",n),a&&f.append("role",a),i&&f.append("team",i),l&&f.append("sso_user_ids",l),s&&f.append("sort_by",s),c&&f.append("sort_order",c),u&&u.length>0&&f.append("organization_ids",u.join(","));let p=f.toString();p&&(d+=`?${p}`);let h=await fetch(d,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!h.ok){let e=await h.json(),t=oM(e);throw _(t),Error(t)}let m=await h.json();return console.log("/user/list API Response:",m),m}catch(e){throw console.error("Failed to create key:",e),e}},es=async(e,t)=>{try{let r=S?`${S}/v2/user/info`:"/v2/user/info";t&&(r+=`?user_id=${encodeURIComponent(t)}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to fetch user info v2:",e),e}},ec=async(e,t)=>{try{let r=S?`${S}/team/info`:"/team/info";t&&(r=`${r}?team_id=${encodeURIComponent(t)}`),console.log("in teamInfoCall");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eu=async(e,t,r=null,o=null,n=null,a=1,i=10,l=null,s=null)=>{try{let a=S?`${S}/v2/team/list`:"/v2/team/list";console.log("in teamInfoCall");let i=new URLSearchParams;r&&i.append("user_id",r.toString()),t&&i.append("organization_id",t.toString()),o&&i.append("team_id",o.toString()),n&&i.append("team_alias",n.toString());let l=i.toString();l&&(a+=`?${l}`);let s=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}let c=await s.json();return console.log("/v2/team/list API Response:",c),c}catch(e){throw console.error("Failed to create key:",e),e}},ed=async(e,t,r=null,o=null,n=null)=>{try{let a=S?`${S}/team/list`:"/team/list";console.log("in teamInfoCall");let i=new URLSearchParams;r&&i.append("user_id",r.toString()),t&&i.append("organization_id",t.toString()),o&&i.append("team_id",o.toString()),n&&i.append("team_alias",n.toString());let l=i.toString();l&&(a+=`?${l}`);let s=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}let c=await s.json();return console.log("/team/list API Response:",c),c}catch(e){throw console.error("Failed to create key:",e),e}},ef=async e=>{try{let t=S?`${S}/team/available`:"/team/available";console.log("in availableTeamListCall");let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("/team/available_teams API Response:",o),o}catch(e){throw e}},ep=async(e,t=null,r=null)=>{try{let o=S?`${S}/organization/list`:"/organization/list",n=new URLSearchParams;t&&n.append("org_id",t.toString()),r&&n.append("org_alias",r.toString());let a=n.toString();a&&(o+=`?${a}`);let i=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to create key:",e),e}},eh=async(e,t)=>{try{let r=S?`${S}/organization/info`:"/organization/info";t&&(r=`${r}?organization_id=${t}`),console.log("in teamInfoCall");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},em=async(e,t)=>{try{if(console.log("Form Values in organizationCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw console.error("Failed to parse metadata:",e),Error("Failed to parse metadata: "+e)}}let r=S?`${S}/organization/new`:"/organization/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eg=async(e,t)=>{try{console.log("Form Values in organizationUpdateCall:",t);let r=S?`${S}/organization/update`:"/organization/update",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Update Team Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},ev=async(e,t)=>{try{let r=S?`${S}/organization/delete`:"/organization/delete",o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_ids:[t]})});if(!o.ok){let e=await o.text();throw _(e),Error(`Error deleting organization: ${e}`)}return await o.json()}catch(e){throw console.error("Failed to delete organization:",e),e}},ey=async(e,t)=>{try{let r=S?`${S}/utils/transform_request`:"/utils/transform_request",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create key:",e),e}},eb=async({accessToken:e,endpoint:t,startTime:r,endTime:o,page:n=1,extraQueryParams:a})=>{try{let i,l,s,c,u=(i=t.startsWith("/")?t:`/${t}`,l=S?`${S}${i}`:i,(s=new URLSearchParams).append("start_date",y(r)),s.append("end_date",y(o)),s.append("page_size","1000"),s.append("page",n.toString()),s.append("timezone",new Date().getTimezoneOffset().toString()),a&&Object.entries(a).forEach(([e,t])=>{((e,t,r)=>{if(null!=r){if(Array.isArray(r)){r.length>0&&e.append(t,r.join(","));return}e.append(t,`${r}`)}})(s,e,t)}),(c=s.toString())?`${l}?${c}`:l),d=await fetch(u,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!d.ok){let e=await d.json(),t=oM(e);throw _(t),Error(t)}return await d.json()}catch(e){throw console.error(`Failed to fetch daily activity (${t}):`,e),e}},ew=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/user/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{user_id:n}}),e$=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/tag/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{tags:n}}),eC=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/team/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{team_ids:n,exclude_team_ids:"litellm-dashboard"}}),ex=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/organization/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{organization_ids:n}}),eE=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/customer/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{end_user_ids:n}}),eS=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/agent/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{agent_ids:n}}),ek=async e=>{try{let t=S?`${S}/onboarding/get_token`:"/onboarding/get_token";t+=`?invite_link=${e}`;let r=await fetch(t,{method:"GET",headers:{"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to create key:",e),e}},ej=async(e,t,r,o)=>{let n=S?`${S}/onboarding/claim_token`:"/onboarding/claim_token";try{let a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({invitation_link:t,user_id:r,password:o})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to delete key:",e),e}},eO=async(e,t,r)=>{try{let o=S?`${S}/key/${t}/regenerate`:`/key/${t}/regenerate`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Regenerate key Response:",a),a}catch(e){throw console.error("Failed to regenerate key:",e),e}},eT=!1,eI=null,e_=async(e,t,r,o=1,n=50,a,i,l,s,c)=>{try{console.log("modelInfoCall:",e,t,r,o,n,a,i,l,s,c);let u=S?`${S}/v2/model/info`:"/v2/model/info",d=new URLSearchParams;d.append("include_team_models","true"),d.append("page",o.toString()),d.append("size",n.toString()),a&&a.trim()&&d.append("search",a.trim()),i&&i.trim()&&d.append("modelId",i.trim()),l&&l.trim()&&d.append("teamId",l.trim()),s&&s.trim()&&d.append("sortBy",s.trim()),c&&c.trim()&&d.append("sortOrder",c.trim()),d.toString()&&(u+=`?${d.toString()}`);let f=await fetch(u,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!f.ok){let e=await f.text();throw e+=`error shown=${eT}`,eT||(e.includes("No model list passed")&&(e="No Models Exist. Click Add Model to get started."),v.default.info(e),eT=!0,eI&&clearTimeout(eI),eI=setTimeout(()=>{eT=!1},1e4)),Error("Network response was not ok")}let p=await f.json();return console.log("modelInfoCall:",p),p}catch(e){throw console.error("Failed to create key:",e),e}},eF=async(e,t)=>{try{let r=S?`${S}/v1/model/info`:"/v1/model/info";r+=`?litellm_model_id=${t}`;let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("modelInfoV1Call:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eP=async()=>{let e=S?`${S}/public/model_hub`:"/public/model_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`modelHubPublicModelsCall failed with status ${t.status}`),[])},eR=async()=>{let e=S?`${S}/public/agent_hub`:"/public/agent_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`agentHubPublicModelsCall failed with status ${t.status}`),[])},eN=async()=>{let e=S?`${S}/public/mcp_hub`:"/public/mcp_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`mcpHubPublicServersCall failed with status ${t.status}`),[])},eM=async()=>{let e=S?`${S}/public/skill_hub`:"/public/skill_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`skillHubPublicCall failed with status ${t.status}`),{plugins:[]})},eB=async e=>{try{let t=S?`${S}/model_group/info`:"/model_group/info",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("modelHubCall:",o),o}catch(e){throw console.error("Failed to create key:",e),e}},eA=async e=>{try{let t=S?`${S}/get/allowed_ips`:"/get/allowed_ips",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("getAllowedIPs:",o),o.data}catch(e){throw console.error("Failed to get allowed IPs:",e),e}},ez=async(e,t)=>{try{let r=S?`${S}/add/allowed_ip`:"/add/allowed_ip",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({ip:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("addAllowedIP:",n),n}catch(e){throw console.error("Failed to add allowed IP:",e),e}},eL=async(e,t)=>{try{let r=S?`${S}/delete/allowed_ip`:"/delete/allowed_ip",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({ip:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("deleteAllowedIP:",n),n}catch(e){throw console.error("Failed to delete allowed IP:",e),e}},eD=async(e,t)=>{try{let r=S?`${S}/model_hub/update_useful_links`:"/model_hub/update_useful_links",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({useful_links:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create key:",e),e}},eH=async(e,t,r,o=!1,n=null,a=!1,i=!1,l)=>{console.log("in /models calls, globalLitellmHeaderName",R);try{let t=S?`${S}/models`:"/models",r=new URLSearchParams;r.append("include_model_access_groups","True"),!0===o&&r.append("return_wildcard_routes","True"),!0===i&&r.append("only_model_access_groups","True"),n&&r.append("team_id",n.toString()),l&&r.append("scope",l),r.toString()&&(t+=`?${r.toString()}`);let a=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return await a.json()}catch(e){throw console.error("Failed to create key:",e),e}},eV=async e=>{try{let t=S?`${S}/global/spend/teams`:"/global/spend/teams";console.log("in teamSpendLogsCall:",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eW=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/tags`:"/global/spend/tags";t&&r&&(n=`${n}?start_date=${t}&end_date=${r}`),o&&(n+=`&tags=${o.join(",")}`),console.log("in tagsSpendLogsCall:",n);let a=await fetch(`${n}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to create key:",e),e}},eU=async e=>{try{let t=S?`${S}/global/spend/all_tag_names`:"/global/spend/all_tag_names";console.log("in global/spend/all_tag_names call",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eG=async e=>{try{let t=S?`${S}/customer/list`:"/customer/list";console.log("in customer/list",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to fetch end users:",e),e}},eq=async(e,t)=>{try{let r=S?`${S}/user/filter/ui`:"/user/filter/ui",o=new URLSearchParams;t.get("user_email")&&o.append("user_email",t.get("user_email")),t.get("user_id")&&o.append("user_id",t.get("user_id")),t.get("team_id")&&o.append("team_id",t.get("team_id"));let n=o.toString(),a=n?`${r}?${n}`:r,i=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to create key:",e),e}},eJ=async({accessToken:e,start_date:t,end_date:r,page:o=1,page_size:n=50,params:a={}})=>{try{let i=S?`${S}/spend/logs/ui`:"/spend/logs/ui",l=new URLSearchParams;for(let[e,i]of(l.append("start_date",t),l.append("end_date",r),l.append("page",o.toString()),l.append("page_size",n.toString()),Object.entries(a)))null!=i&&("min_spend"===e||"max_spend"===e?l.append(e,i.toString()):"string"==typeof i&&""!==i&&l.append(e,String(i)));let s=l.toString();s&&(i+=`?${s}`);let c=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!c.ok){let e=await c.json(),t=oM(e);throw _(t),Error(t)}let u=await c.json();return console.log("Spend Logs Response:",u),u}catch(e){throw console.error("Failed to fetch spend logs:",e),e}},eK=async e=>{try{let t=S?`${S}/global/spend/logs`:"/global/spend/logs",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eX=async e=>{try{let t=S?`${S}/global/spend/keys?limit=5`:"/global/spend/keys?limit=5",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eQ=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/end_users`:"/global/spend/end_users",a="";a=t?JSON.stringify({api_key:t,startTime:r,endTime:o}):JSON.stringify({startTime:r,endTime:o});let i={method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:a},l=await fetch(n,i);if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}let s=await l.json();return console.log(s),s}catch(e){throw console.error("Failed to create key:",e),e}},eY=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/provider`:"/global/spend/provider";r&&o&&(n+=`?start_date=${r}&end_date=${o}`),t&&(n+=`&api_key=${t}`);let a={method:"GET",headers:{[R]:`Bearer ${e}`}},i=await fetch(n,a);if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}let l=await i.json();return console.log(l),l}catch(e){throw console.error("Failed to fetch spend data:",e),e}},eZ=async(e,t,r)=>{try{let o=S?`${S}/global/activity`:"/global/activity";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e0=async(e,t,r)=>{try{let o=S?`${S}/global/activity/cache_hits`:"/global/activity/cache_hits";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e1=async(e,t,r)=>{try{let o=S?`${S}/global/activity/model`:"/global/activity/model";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e2=async e=>{try{let t=S?`${S}/global/spend/models?limit=5`:"/global/spend/models?limit=5",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},e4=async(e,t)=>{try{let r=S?`${S}/v2/key/info`:"/v2/key/info",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({keys:t})});if(!o.ok){let e=await o.text();if(e.includes("Invalid proxy server token passed"))throw Error("Invalid proxy server token passed");throw _(e),Error("Network response was not ok")}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to create key:",e),e}},e6=async(e,t,r,o)=>{try{console.log("Sending model connection test request:",JSON.stringify(t));let n=S?`${S}/health/test_connection`:"/health/test_connection",a=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({litellm_params:t,model_info:r,mode:o})}),i=a.headers.get("content-type");if(!i||!i.includes("application/json")){let e=await a.text();throw console.error("Received non-JSON response:",e),Error(`Received non-JSON response (${a.status}: ${a.statusText}). Check network tab for details.`)}let l=await a.json();if((!a.ok||"error"===l.status)&&"error"!==l.status)return{status:"error",message:l.error?.message||`Connection test failed: ${a.status} ${a.statusText}`};return l}catch(e){throw console.error("Model connection test error:",e),e}},e3=async(e,t)=>{try{console.log("entering keyInfoV1Call");let r=S?`${S}/key/info`:"/key/info";r=`${r}?key=${t}`;let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(console.log("response",o),!o.ok){let e=await o.text();_(e),v.default.fromBackend("Failed to fetch key info - "+e)}let n=await o.json();return console.log("data",n),n}catch(e){throw console.error("Failed to fetch key info:",e),e}},e7=async(e,t,r,o,n,a,i,l,s=null,c=null,u=null,d=null)=>{try{let f=S?`${S}/key/list`:"/key/list";console.log("in keyListCall");let p=new URLSearchParams;r&&p.append("team_id",r.toString()),t&&p.append("organization_id",t.toString()),o&&p.append("key_alias",o),a&&p.append("key_hash",a),n&&p.append("user_id",n.toString()),i&&p.append("page",i.toString()),l&&p.append("size",l.toString()),s&&p.append("sort_by",s),c&&p.append("sort_order",c),u&&p.append("expand",u),d&&p.append("status",d),p.append("return_full_object","true"),p.append("include_team_keys","true"),p.append("include_created_by_keys","true");let h=p.toString();h&&(f+=`?${h}`);let m=await fetch(f,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!m.ok){let e=await m.json(),t=oM(e);throw _(t),Error(t)}let g=await m.json();return console.log("/team/list API Response:",g),g}catch(e){throw console.error("Failed to create key:",e),e}},e5=async(e,t=1,r=50,o,n)=>{try{let a=new URLSearchParams(Object.entries({page:String(t),size:String(r),...o?{search:o}:{},...n?{team_id:n}:{}})),i=S?`${S}/key/aliases`:"/key/aliases";i=`${i}?${a}`;let l=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}let s=await l.json();return console.log("/key/aliases API Response:",s),s}catch(e){throw console.error("Failed to fetch key aliases:",e),e}},e9=async(e,t,r,o=null)=>{try{let n=S?`${S}/user/daily/activity/aggregated`:"/user/daily/activity/aggregated",a=new URLSearchParams,i=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`};a.append("start_date",i(t)),a.append("end_date",i(r)),a.append("timezone",new Date().getTimezoneOffset().toString()),o&&a.append("user_id",o);let l=a.toString();l&&(n+=`?${l}`);let s=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}return await s.json()}catch(e){throw console.error("Failed to fetch aggregated user daily activity:",e),e}},e8=async e=>{try{let t=S?`${S}/user/available_roles`:"/user/available_roles",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("response from user/available_role",o),o}catch(e){throw e}},te=async(e,t)=>{try{if(console.log("Form Values in teamCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let r=S?`${S}/team/new`:"/team/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tt=async(e,t)=>{try{if(console.log("Form Values in credentialCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let r=S?`${S}/credentials`:"/credentials",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tr=async e=>{try{let t=S?`${S}/credentials`:"/credentials";console.log("in credentialListCall");let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("/credentials API Response:",o),o}catch(e){throw console.error("Failed to create key:",e),e}},to=async(e,t,r)=>{try{let o=S?`${S}/credentials`:"/credentials";t?o+=`/by_name/${t}`:r&&(o+=`/by_model/${r}`),console.log("in credentialListCall");let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("/credentials API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tn=async(e,t)=>{try{let r=S?`${S}/credentials/${t}`:`/credentials/${t}`;console.log("in credentialDeleteCall:",t);let o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete key:",e),e}},ta=async(e,t,r)=>{try{if(console.log("Form Values in credentialUpdateCall:",r),r.metadata){console.log("formValues.metadata:",r.metadata);try{r.metadata=JSON.parse(r.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let o=S?`${S}/credentials/${t}`:`/credentials/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},ti=async(e,t)=>{try{if(console.log("Form Values in keyUpdateCall:",t),t.model_tpm_limit){console.log("formValues.model_tpm_limit:",t.model_tpm_limit);try{t.model_tpm_limit=JSON.parse(t.model_tpm_limit)}catch(e){throw Error("Failed to parse model_tpm_limit: "+e)}}if(t.model_rpm_limit){console.log("formValues.model_rpm_limit:",t.model_rpm_limit);try{t.model_rpm_limit=JSON.parse(t.model_rpm_limit)}catch(e){throw Error("Failed to parse model_rpm_limit: "+e)}}let r=S?`${S}/key/update`:"/key/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let n=await o.json();return console.log("Update key Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tl=async(e,t)=>{try{console.log("Form Values in teamUpateCall:",t);let r=S?`${S}/team/update`:"/team/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),v.default.fromBackend("Failed to update team settings: "+e),Error(e)}let n=await o.json();return console.log("Update Team Response:",n),n}catch(e){throw console.error("Failed to update team:",e),e}},ts=async(e,t,r)=>{try{console.log("Form Values in modelUpateCall:",t);let o=S?`${S}/model/${r}/update`:`/model/${r}/update`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error update from the server:",e),Error("Network response was not ok")}let a=await n.json();return console.log("Update model Response:",a),a}catch(e){throw console.error("Failed to update model:",e),e}},tc=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/team/member_add`:"/team/member_add",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_id:t,member:r})});if(!n.ok){let e=await n.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to add team member",o=Error(r);throw o.raw=t,o}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tu=async(e,t,r,o,n)=>{try{console.log("Bulk add team members:",{teamId:t,members:r,maxBudgetInTeam:o});let a=S?`${S}/team/bulk_member_add`:"/team/bulk_member_add",i={team_id:t};n?i.all_users=!0:i.members=r,null!=o&&(i.max_budget_in_team=o);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to bulk add team members",o=Error(r);throw o.raw=t,o}let s=await l.json();return console.log("Bulk team member add API Response:",s),s}catch(e){throw console.error("Failed to bulk add team members:",e),e}},td=async(e,t,r)=>{try{console.log("Form Values in teamMemberUpdateCall:",r),console.log("Budget value:",r.max_budget_in_team),console.log("TPM limit:",r.tpm_limit),console.log("RPM limit:",r.rpm_limit);let o=S?`${S}/team/member_update`:"/team/member_update",n={team_id:t,role:r.role,user_id:r.user_id};void 0!==r.user_email&&(n.user_email=r.user_email),void 0!==r.max_budget_in_team&&null!==r.max_budget_in_team&&(n.max_budget_in_team=r.max_budget_in_team),void 0!==r.tpm_limit&&null!==r.tpm_limit&&(n.tpm_limit=r.tpm_limit),void 0!==r.rpm_limit&&null!==r.rpm_limit&&(n.rpm_limit=r.rpm_limit),void 0!==r.allowed_models&&(n.allowed_models=r.allowed_models),console.log("Final request body:",n);let a=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(n)});if(!a.ok){let e=await a.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to add team member",o=Error(r);throw o.raw=t,o}let i=await a.json();return console.log("API Response:",i),i}catch(e){throw console.error("Failed to update team member:",e),e}},tf=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/team/member_delete`:"/team/member_delete",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_id:t,...void 0!==r.user_email&&{user_email:r.user_email},...void 0!==r.user_id&&{user_id:r.user_id}})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tp=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/organization/member_add`:"/organization/member_add",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,member:r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create organization member:",e),e}},th=async(e,t,r)=>{try{console.log("Form Values in organizationMemberDeleteCall:",r);let o=S?`${S}/organization/member_delete`:"/organization/member_delete",n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,user_id:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to delete organization member:",e),e}},tm=async(e,t,r)=>{try{console.log("Form Values in organizationMemberUpdateCall:",r);let o=S?`${S}/organization/member_update`:"/organization/member_update",n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,...r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to update organization member:",e),e}},tg=async(e,t,r)=>{try{console.log("Form Values in userUpdateUserCall:",t);let o=S?`${S}/user/update`:"/user/update",n={...t};null!==r&&(n.user_role=r),n=JSON.stringify(n);let a=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:n});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log("API Response:",i),i}catch(e){throw console.error("Failed to create key:",e),e}},tv=async(e,t,r,o=!1)=>{try{let n;console.log("Form Values in userUpdateUserCall:",t);let a=S?`${S}/user/bulk_update`:"/user/bulk_update";if(o)n=JSON.stringify({all_users:!0,user_updates:t});else if(r&&r.length>0){let e=[];for(let o of r)e.push({user_id:o,...t});n=JSON.stringify({users:e})}else throw Error("Must provide either userIds or set allUsers=true");let i=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:n});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}let l=await i.json();return console.log("API Response:",l),l}catch(e){throw console.error("Failed to create key:",e),e}},ty=async(e,t)=>{try{let r=S?`${S}/health/services?service=${t}`:`/health/services?service=${t}`;console.log("Checking Slack Budget Alerts service health");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}return await o.json()}catch(e){throw console.error("Failed to perform health check:",e),e}},tb=async e=>{try{let t=S?`${S}/budget/list`:"/budget/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tw=async(e,t,r)=>{try{let t=S?`${S}/get/config/callbacks`:"/get/config/callbacks",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},t$=async e=>{try{let t=S?`${S}/config/list?config_type=general_settings`:"/config/list?config_type=general_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tC=async e=>{try{let t=S?`${S}/router/settings`:"/router/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get router settings:",e),e}},tx=async e=>{try{let t=S?`${S}/cache/settings`:"/cache/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get cache settings:",e),e}},tE=async(e,t)=>{try{let r=S?`${S}/cache/settings/test`:"/cache/settings/test",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({cache_settings:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to test cache connection:",e),e}},tS=async(e,t)=>{try{let r=S?`${S}/cache/settings`:"/cache/settings",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({cache_settings:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update cache settings:",e),e}},tk=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint`:"/config/pass_through_endpoint";t&&(r+=`/team/${t}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tj=async(e,t)=>{try{let r=S?`${S}/config/field/info?field_name=${t}`:`/config/field/info?field_name=${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tO=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint`:"/config/pass_through_endpoint",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tT=async(e,t,r)=>{try{let o=S?`${S}/config/field/update`:"/config/field/update",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({field_name:t,field_value:r,config_type:"general_settings"})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return v.default.success("Successfully updated value!"),a}catch(e){throw console.error("Failed to set callbacks:",e),e}},tI=async(e,t)=>{try{let r=S?`${S}/config/field/delete`:"/config/field/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({field_name:t,config_type:"general_settings"})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return v.default.success("Field reset on proxy"),n}catch(e){throw console.error("Failed to get callbacks:",e),e}},t_=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint?endpoint_id=${t}`:`/config/pass_through_endpoint?endpoint_id=${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tF=async(e,t)=>{try{let r=S?`${S}/config/update`:"/config/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tP=async(e,t)=>{try{let r=S?`${S}/health?model_id=${encodeURIComponent(t)}`:`/health?model_id=${encodeURIComponent(t)}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error(`Failed to call /health for model id ${t}:`,e),e}},tR=async e=>{try{let t=S?`${S}/cache/ping`:"/cache/ping",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error(e)}return await r.json()}catch(e){throw console.error("Failed to call /cache/ping:",e),e}},tN=async e=>{try{let t=S?`${S}/health/latest`:"/health/latest",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error(e)}return await r.json()}catch(e){throw console.error("Failed to call /health/latest:",e),e}},tM=async e=>{try{console.log("Getting proxy UI settings"),console.log("proxyBaseUrl in getProxyUISettings:",S);let t=S?`${S}/sso/get/ui_settings`:"/sso/get/ui_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tB=async e=>{try{let t=S?`${S}/get/ui_settings`:"/get/ui_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);return console.error("Failed to get UI settings:",t),null}return await r.json()}catch(e){return console.error("Failed to get UI settings:",e),null}},tA=async e=>{try{let t=S?`${S}/get/mcp_semantic_filter_settings`:"/get/mcp_semantic_filter_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get MCP semantic filter settings:",e),e}},tz=async(e,t)=>{try{let r=S?`${S}/update/mcp_semantic_filter_settings`:"/update/mcp_semantic_filter_settings",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP semantic filter settings:",e),e}},tL=async(e,t,r)=>{try{let o=S?`${S}/v1/responses`:"/v1/responses",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({model:t,input:[{role:"user",content:r,type:"message"}],tools:[{type:"mcp",server_url:"litellm_proxy",require_approval:"never"}],tool_choice:"required"})}),a=n.headers.get("x-litellm-semantic-filter"),i=n.headers.get("x-litellm-semantic-filter-tools");if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return{data:await n.json(),headers:{filter:a,tools:i}}}catch(e){throw console.error("Failed to test MCP semantic filter:",e),e}},tD=async e=>{try{let t=S?`${S}/v2/guardrails/list`:"/v2/guardrails/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(`v2 guardrails/list returned ${r.status}`);return await r.json()}catch(t){console.log("v2/guardrails/list failed, falling back to v1:",t);try{let t=S?`${S}/guardrails/list`:"/guardrails/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get guardrails list:",e),e}}},tH=async(e,t)=>{let r=S?`${S}/guardrails/submissions`:"/guardrails/submissions",o=new URLSearchParams;t?.status&&o.set("status",t.status),t?.team_id&&o.set("team_id",t.team_id),t?.team_guardrail!==void 0&&o.set("team_guardrail",String(t.team_guardrail)),t?.search&&o.set("search",t.search);let n=o.toString()?`${r}?${o.toString()}`:r,a=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=oM(await a.json().catch(()=>({})));throw _(e),Error(e)}return a.json()},tV=async(e,t)=>{let r=S?`${S}/guardrails/submissions/${encodeURIComponent(t)}/approve`:`/guardrails/submissions/${encodeURIComponent(t)}/approve`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=oM(await o.json().catch(()=>({})));throw _(e),Error(e)}return o.json()},tW=async(e,t)=>{let r=S?`${S}/guardrails/submissions/${encodeURIComponent(t)}/reject`:`/guardrails/submissions/${encodeURIComponent(t)}/reject`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=oM(await o.json().catch(()=>({})));throw _(e),Error(e)}return o.json()},tU=async(e,t,r)=>{try{let o=S?`${S}/guardrails/usage/overview`:"/guardrails/usage/overview",n=new URLSearchParams;t&&n.append("start_date",t),r&&n.append("end_date",r),n.toString()&&(o+=`?${n.toString()}`);let a=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json();throw Error(oM(e))}return a.json()}catch(e){throw console.error("Failed to get guardrails usage overview:",e),e}},tG=async(e,t,r,o)=>{try{let n=S?`${S}/guardrails/usage/detail/${encodeURIComponent(t)}`:`/guardrails/usage/detail/${encodeURIComponent(t)}`,a=new URLSearchParams;r&&a.append("start_date",r),o&&a.append("end_date",o),a.toString()&&(n+=`?${a.toString()}`);let i=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json();throw Error(oM(e))}return i.json()}catch(e){throw console.error("Failed to get guardrails usage detail:",e),e}},tq=async(e,t)=>{try{let r=S?`${S}/guardrails/usage/logs`:"/guardrails/usage/logs",o=new URLSearchParams;t.guardrailId&&o.append("guardrail_id",t.guardrailId),t.policyId&&o.append("policy_id",t.policyId),null!=t.page&&o.append("page",String(t.page)),null!=t.pageSize&&o.append("page_size",String(t.pageSize)),t.action&&o.append("action",t.action),t.startDate&&o.append("start_date",t.startDate),t.endDate&&o.append("end_date",t.endDate),o.toString()&&(r+=`?${o.toString()}`);let n=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json();throw Error(oM(e))}return n.json()}catch(e){throw console.error("Failed to get guardrails usage logs:",e),e}},tJ=async e=>{try{let t=S?`${S}/policies/list`:"/policies/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policies list:",e),e}},tK=async(e,t,r)=>{try{let o=S?`${S}/utils/test_policies_and_guardrails`:"/utils/test_policies_and_guardrails",n=await fetch(o,{method:"POST",signal:r,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({policy_names:t.policy_names??null,guardrail_names:t.guardrail_names??null,inputs:t.inputs??null,inputs_list:t.inputs_list??null,request_data:t.request_data??{},input_type:t.input_type??"request",agent_id:t.agent_id??null})});if(!n.ok){let e=await n.text(),t="Failed to test policies and guardrails";try{let r=JSON.parse(e);r.detail?t="string"==typeof r.detail?r.detail:JSON.stringify(r.detail):r.message&&(t=r.message)}catch{t=e||t}throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to test policies and guardrails:",e),e}},tX=async(e,t)=>{try{let r=S?`${S}/policy/info/${t}`:`/policy/info/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error(`Failed to get policy info for ${t}:`,e),e}},tQ=async e=>{try{let t=S?`${S}/policy/templates`:"/policy/templates",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policy templates:",e),e}},tY=async(e,t,r,o,n)=>{try{let a=S?`${S}/policy/templates/enrich`:"/policy/templates/enrich",i={template_id:t,parameters:r};o&&(i.model=o),n&&(i.competitors=n);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}return await l.json()}catch(e){throw console.error("Failed to enrich policy template:",e),e}},tZ=async(e,t,r,o)=>{try{let n=S?`${S}/policy/templates/suggest`:"/policy/templates/suggest",a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({attack_examples:t.filter(e=>e.trim()),description:r,model:o})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return a.json()}catch(e){throw console.error("Failed to suggest policy templates:",e),e}},t0=async(e,t,r)=>{try{let o=S?`${S}/policy/templates/test`:"/policy/templates/test",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({guardrail_definitions:t,text:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return n.json()}catch(e){throw console.error("Failed to test policy template:",e),e}},t1=async(e,t,r,o,n,a,i,l,s)=>{let c=S?`${S}/policy/templates/enrich/stream`:"/policy/templates/enrich/stream",u={template_id:t,parameters:r,model:o};l?.instruction&&(u.instruction=l.instruction),l?.existingCompetitors&&(u.competitors=l.existingCompetitors);let d=await fetch(c,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(u)});if(!d.ok){let e=oM(await d.json());throw _(e),Error(e)}let f=d.body?.getReader();if(!f)throw Error("No response body");let p=new TextDecoder,h="";for(;;){let{done:e,value:t}=await f.read();if(e)break;let r=(h+=p.decode(t,{stream:!0})).split("\n");for(let e of(h=r.pop()||"",r))if(e.startsWith("data: "))try{let t=JSON.parse(e.slice(6));"competitor"===t.type?n(t.name):"status"===t.type?s?.(t.message):"done"===t.type?a(t):"error"===t.type&&i?.(t.message)}catch{}}},t2=async(e,t,r,o,n,a,i,l,s)=>{let c=S?`${S}/usage/ai/chat`:"/usage/ai/chat",u=await fetch(c,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({messages:t,model:r}),signal:s});if(!u.ok){let e=oM(await u.json());throw _(e),Error(e)}let d=u.body?.getReader();if(!d)throw Error("No response body");let f=new TextDecoder,p="";for(;;){let{done:e,value:t}=await d.read();if(e)break;let r=(p+=f.decode(t,{stream:!0})).split("\n");for(let e of(p=r.pop()||"",r))if(e.startsWith("data: "))try{let t=JSON.parse(e.slice(6));"chunk"===t.type?o(t.content):"status"===t.type?i?.(t.message):"tool_call"===t.type?l?.(t):"done"===t.type?n():"error"===t.type&&a?.(t.message)}catch{}}},t4=async(e,t)=>{try{let r=S?`${S}/policies`:"/policies",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create policy:",e),e}},t6=async(e,t,r)=>{try{let o=S?`${S}/policies/${t}`:`/policies/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update policy:",e),e}},t3=async(e,t)=>{try{let r=encodeURIComponent(t),o=S?`${S}/policies/name/${r}/versions`:`/policies/name/${r}/versions`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to list policy versions:",e),e}},t7=async(e,t,r)=>{try{let o=encodeURIComponent(t),n=S?`${S}/policies/name/${o}/versions`:`/policies/name/${o}/versions`,a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({source_policy_id:r??void 0})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return await a.json()}catch(e){throw console.error("Failed to create policy version:",e),e}},t5=async(e,t,r)=>{try{let o=S?`${S}/policies/${t}/status`:`/policies/${t}/status`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({version_status:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update policy version status:",e),e}},t9=async(e,t)=>{try{let r=S?`${S}/policies/${t}`:`/policies/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete policy:",e),e}},t8=async(e,t)=>{try{let r=S?`${S}/policies/${t}`:`/policies/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get policy info:",e),e}},re=async e=>{try{let t=S?`${S}/policies/attachments/list`:"/policies/attachments/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policy attachments list:",e),e}},rt=async(e,t)=>{try{let r=S?`${S}/policies/attachments`:"/policies/attachments",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create policy attachment:",e),e}},rr=async(e,t)=>{try{let r=S?`${S}/policies/attachments/${t}`:`/policies/attachments/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete policy attachment:",e),e}},ro=async(e,t,r)=>{try{let o=S?`${S}/policies/test-pipeline`:"/policies/test-pipeline",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({pipeline:t,test_messages:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to test pipeline:",e),e}},rn=async(e,t)=>{try{let r=S?`${S}/policies/${t}/resolved-guardrails`:`/policies/${t}/resolved-guardrails`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get resolved guardrails:",e),e}},ra=async(e,t)=>{try{let r=S?`${S}/policies/resolve`:"/policies/resolve",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to resolve policies:",e),e}},ri=async(e,t)=>{try{let r=S?`${S}/policies/attachments/estimate-impact`:"/policies/attachments/estimate-impact",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to estimate attachment impact:",e),e}},rl=async(e,t)=>{try{let r=S?`${S}/prompts/list`:"/prompts/list";t&&(r+=`?environment=${encodeURIComponent(t)}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get prompts list:",e),e}},rs=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}/info`:`/prompts/${t}/info`;r&&(o+=`?environment=${encodeURIComponent(r)}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to get prompt info:",e),e}},rc=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}/versions`:`/prompts/${t}/versions`;r&&(o+=`?environment=${encodeURIComponent(r)}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw 404!==n.status&&_(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to get prompt versions:",e),e}},ru=async(e,t)=>{try{let r=S?`${S}/prompts`:"/prompts",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create prompt:",e),e}},rd=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}`:`/prompts/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update prompt:",e),e}},rf=async(e,t)=>{try{let r=S?`${S}/prompts/${t}`:`/prompts/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete prompt:",e),e}},rp=async(e,t)=>{try{let r=new FormData;r.append("file",t);let o=S?`${S}/utils/dotprompt_json_converter`:"/utils/dotprompt_json_converter",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`},body:r});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to convert prompt file:",e),e}},rh=async(e,t)=>{try{let r=S?`${S}/v1/agents`:"/v1/agents",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Create agent response:",n),n}catch(e){throw console.error("Failed to create agent:",e),e}},rm=async(e,t)=>{try{let r=S?`${S}/guardrails`:"/guardrails",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({guardrail:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Create guardrail response:",n),n}catch(e){throw console.error("Failed to create guardrail:",e),e}},rg=async(e,t,r)=>{try{let o=S?`${S}/spend/logs/ui/${t}?start_date=${encodeURIComponent(r)}`:`/spend/logs/ui/${t}?start_date=${encodeURIComponent(r)}`;console.log("Fetching log details from:",o);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Fetched log details:",a),a}catch(e){throw console.error("Failed to fetch log details:",e),e}},rv=async e=>{try{let t=S?`${S}/get/internal_user_settings`:"/get/internal_user_settings";console.log("Fetching SSO settings from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched SSO settings:",o),o}catch(e){throw console.error("Failed to fetch SSO settings:",e),e}},ry=async(e,t)=>{try{let r=S?`${S}/update/internal_user_settings`:"/update/internal_user_settings";console.log("Updating internal user settings:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Updated internal user settings:",n),v.default.success("Internal user settings updated successfully"),n}catch(e){throw console.error("Failed to update internal user settings:",e),e}},rb=async e=>{try{let t=S?`${S}/v1/mcp/openapi-registry`:"/v1/mcp/openapi-registry",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json();throw Error(oM(e))}return await r.json()}catch(e){throw console.error("Failed to fetch OpenAPI registry:",e),e}},rw=async e=>{try{let t=S?`${S}/v1/mcp/discover`:"/v1/mcp/discover",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch discoverable MCP servers:",e),e}},r$=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server";if(t){let e=new URLSearchParams;e.append("team_id",t),r=`${r}?${e.toString()}`}console.log("Fetching MCP servers from:",r);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Fetched MCP servers:",n),n}catch(e){throw console.error("Failed to fetch MCP servers:",e),e}},rC=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server/health`:"/v1/mcp/server/health";if(t&&t.length>0){let e=new URLSearchParams;t.forEach(t=>e.append("server_ids",t)),r=`${r}?${e.toString()}`}console.log("Fetching MCP server health from:",r);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Fetched MCP server health:",n),n}catch(e){throw console.error("Failed to fetch MCP server health:",e),e}},rx=async e=>{try{let t=S?`${S}/v1/mcp/access_groups`:"/v1/mcp/access_groups";console.log("Fetching MCP access groups from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched MCP access groups:",o),o.access_groups||[]}catch(e){throw console.error("Failed to fetch MCP access groups:",e),e}},rE=async e=>{try{let t=S?`${S}/v1/mcp/network/client-ip`:"/v1/mcp/network/client-ip",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok)return null;return(await r.json()).ip||null}catch{return null}},rS=async(e,t)=>{try{console.log("Form Values in createMCPServer:",t);let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},rk=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server",o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP server:",e),e}},rj=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/server/${t}`;console.log("in deleteMCPServer:",t);let o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}}catch(e){throw console.error("Failed to delete key:",e),e}},rO=async e=>{try{let t=(S?`${S}`:"")+"/v1/mcp/toolset",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch MCP toolsets:",e),e}},rT=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/toolset",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create MCP toolset:",e),e}},rI=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/toolset",o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP toolset:",e),e}},r_=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/toolset/${t}`,o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}}catch(e){throw console.error("Failed to delete MCP toolset:",e),e}},rF=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/server/register",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return o.json()}catch(e){throw console.error("Failed to register MCP server:",e),e}},rP=async e=>{try{let t=(S?`${S}`:"")+"/v1/mcp/server/submissions",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return r.json()}catch(e){throw console.error("Failed to fetch MCP submissions:",e),e}},rR=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/server/${encodeURIComponent(t)}/approve`,o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return o.json()}catch(e){throw console.error("Failed to approve MCP server:",e),e}},rN=async(e,t,r)=>{try{let o=(S?`${S}`:"")+`/v1/mcp/server/${encodeURIComponent(t)}/reject`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({review_notes:r??null})});if(!n.ok){let e=await n.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return n.json()}catch(e){throw console.error("Failed to reject MCP server:",e),e}},rM=async e=>{try{let t=S?`${S}/search_tools/list`:"/search_tools/list";console.log("Fetching search tools from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched search tools:",o),o}catch(e){throw console.error("Failed to fetch search tools:",e),e}},rB=async(e,t)=>{try{console.log("Creating search tool with values:",t);let r=S?`${S}/search_tools`:"/search_tools",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({search_tool:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Created search tool:",n),n}catch(e){throw console.error("Failed to create search tool:",e),e}},rA=async(e,t,r)=>{try{console.log("Updating search tool with ID:",t,"values:",r);let o=S?`${S}/search_tools/${t}`:`/search_tools/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({search_tool:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Updated search tool:",a),a}catch(e){throw console.error("Failed to update search tool:",e),e}},rz=async(e,t)=>{try{let r=(S?`${S}`:"")+`/search_tools/${t}`;console.log("Deleting search tool:",t);let o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Deleted search tool:",n),n}catch(e){throw console.error("Failed to delete search tool:",e),e}},rL=async e=>{try{let t=S?`${S}/search_tools/ui/available_providers`:"/search_tools/ui/available_providers";console.log("Fetching available search providers from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched available search providers:",o),o}catch(e){throw console.error("Failed to fetch available search providers:",e),e}},rD=async(e,t)=>{try{let r=S?`${S}/search_tools/test_connection`:"/search_tools/test_connection";console.log("Testing search tool connection:",r);let o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({litellm_params:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Test connection response:",n),n}catch(e){throw console.error("Failed to test search tool connection:",e),e}},rH=async(e,t,r)=>{let o,n=S?`${S}/mcp-rest/tools/list?server_id=${t}`:`/mcp-rest/tools/list?server_id=${t}`;console.log("Fetching MCP tools from:",n);let a={[R]:`Bearer ${e}`,"Content-Type":"application/json",...r};try{o=await fetch(n,{method:"GET",headers:a})}catch(e){return console.error("Failed to fetch MCP tools (network error):",e),{tools:[],error:"network_error",message:e instanceof Error?e.message:"Failed to fetch MCP tools",stack_trace:null}}let i=null;try{i=await o.json()}catch(e){return console.error("Failed to parse MCP tools response:",e),{tools:[],error:"parse_error",message:"Failed to parse MCP tools response",status:o.status,statusText:o.statusText,stack_trace:null}}if(console.log("Fetched MCP tools response:",i),!o.ok){let e=i&&(i.message||i.error)||"Failed to fetch MCP tools";return{tools:[],error:i&&i.error||`http_${o.status}`,message:e,status:o.status,statusText:o.statusText,details:i,stack_trace:null}}return i},rV=async(e,t,r,o,n)=>{try{let a=S?`${S}/mcp-rest/tools/call`:"/mcp-rest/tools/call";console.log("Calling MCP tool:",r,"with arguments:",o,"for server:",t);let i={[R]:`Bearer ${e}`,"Content-Type":"application/json",...n?.customHeaders||{}},l={server_id:t,name:r,arguments:o};n?.guardrails&&n.guardrails.length>0&&(l.litellm_metadata={guardrails:n.guardrails});let s=await fetch(a,{method:"POST",headers:i,body:JSON.stringify(l)});if(!s.ok){let e="Network response was not ok",t=null,r=await s.text();try{let o=JSON.parse(r);o.detail?"string"==typeof o.detail?e=o.detail:"object"==typeof o.detail&&(e=o.detail.message||o.detail.error||"An error occurred",t=o.detail):e=o.message||o.error||e}catch(t){console.error("Failed to parse JSON error response:",t),r&&(e=r)}let o=Error(e);throw o.status=s.status,o.statusText=s.statusText,o.details=t,_(e),o}let c=await s.json();return console.log("MCP tool call response:",c),c}catch(e){throw console.error("Failed to call MCP tool:",e),console.error("Error type:",typeof e),e instanceof Error&&(console.error("Error message:",e.message),console.error("Error stack:",e.stack)),e}},rW=async(e,t)=>{try{let r=S?`${S}/tag/new`:"/tag/new",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error creating tag:",e),e}},rU=async(e,t)=>{try{let r=S?`${S}/tag/update`:"/tag/update",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error updating tag:",e),e}},rG=async(e,t)=>{try{let r=S?`${S}/tag/info`:"/tag/info",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({names:t})});if(!o.ok){let e=await o.text();return await _(e),{}}return await o.json()}catch(e){throw console.error("Error getting tag info:",e),e}},rq=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`},rJ=async(e,t,r)=>{try{let o=S?`${S}/tag/list`:"/tag/list";if(t&&r){let e=new URLSearchParams({start_date:rq(t),end_date:rq(r)});o=`${o}?${e.toString()}`}let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!n.ok){let e=await n.text();return await _(e),{}}return await n.json()}catch(e){throw console.error("Error listing tags:",e),e}},rK=async(e,t)=>{try{let r=S?`${S}/tag/delete`:"/tag/delete",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({name:t})});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error deleting tag:",e),e}},rX=async e=>{try{let t=S?`${S}/get/default_team_settings`:"/get/default_team_settings";console.log("Fetching default team settings from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched default team settings:",o),o}catch(e){throw console.error("Failed to fetch default team settings:",e),e}},rQ=async(e,t)=>{try{let r=S?`${S}/update/default_team_settings`:"/update/default_team_settings";console.log("Updating default team settings:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Updated default team settings:",n),n}catch(e){throw console.error("Failed to update default team settings:",e),e}},rY=async(e,t)=>{try{let r=S?`${S}/team/permissions_list?team_id=${t}`:`/team/permissions_list?team_id=${t}`,o=await fetch(r,{method:"GET",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json(),t=oM(e);return console.error("Available permissions fetch failed:",t),{all_available_permissions:[],team_member_permissions:[]}}return await o.json()}catch(e){throw console.error("Failed to get team permissions:",e),e}},rZ=async(e,t,r)=>{try{let o=S?`${S}/team/permissions_update`:"/team/permissions_update",n=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({team_id:t,team_member_permissions:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Team permissions response:",a),a}catch(e){throw console.error("Failed to update team permissions:",e),e}},r0=async(e,t)=>{try{let r=S?`${S}/spend/logs/session/ui?session_id=${encodeURIComponent(t)}`:`/spend/logs/session/ui?session_id=${encodeURIComponent(t)}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to fetch session logs:",e),e}},r1=async(e,t)=>{try{let r=S?`${S}/vector_store/new`:"/vector_store/new",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to create vector store")}return await o.json()}catch(e){throw console.error("Error creating vector store:",e),e}},r2=async(e,t=1,r=100)=>{try{let t=S?`${S}/vector_store/list`:"/vector_store/list",r=await fetch(t,{method:"GET",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`}});if(!r.ok){let e=await r.json();throw Error(e.detail||"Failed to list vector stores")}return await r.json()}catch(e){throw console.error("Error listing vector stores:",e),e}},r4=async(e,t)=>{try{let r=S?`${S}/vector_store/delete`:"/vector_store/delete",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({vector_store_id:t})});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to delete vector store")}return await o.json()}catch(e){throw console.error("Error deleting vector store:",e),e}},r6=async(e,t)=>{try{let r=S?`${S}/vector_store/info`:"/vector_store/info",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({vector_store_id:t})});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to get vector store info")}return await o.json()}catch(e){throw console.error("Error getting vector store info:",e),e}},r3=async(e,t)=>{try{let r=S?`${S}/vector_store/update`:"/vector_store/update",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to update vector store")}return await o.json()}catch(e){throw console.error("Error updating vector store:",e),e}},r7=async(e,t,r,o,n,a,i)=>{try{let l=S?`${S}/rag/ingest`:"/rag/ingest",s=new FormData;s.append("file",t);let c={ingest_options:{vector_store:{custom_llm_provider:r,...o&&{vector_store_id:o},...i&&i}}};(n||a)&&(c.ingest_options.litellm_vector_store_params={},n&&(c.ingest_options.litellm_vector_store_params.vector_store_name=n),a&&(c.ingest_options.litellm_vector_store_params.vector_store_description=a)),s.append("request",JSON.stringify(c));let u=await fetch(l,{method:"POST",headers:{[R]:`Bearer ${e}`},body:s});if(!u.ok){let e=await u.json();throw Error(e.error?.message||e.detail||"Failed to ingest document")}return await u.json()}catch(e){throw console.error("Error ingesting document:",e),e}},r5=async e=>{try{let t=S?`${S}/email/event_settings`:"/email/event_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get email event settings")}let o=await r.json();return console.log("Email event settings response:",o),o}catch(e){throw console.error("Failed to get email event settings:",e),e}},r9=async(e,t)=>{try{let r=S?`${S}/email/event_settings`:"/email/event_settings",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to update email event settings")}let n=await o.json();return console.log("Update email event settings response:",n),n}catch(e){throw console.error("Failed to update email event settings:",e),e}},r8=async e=>{try{let t=S?`${S}/email/event_settings/reset`:"/email/event_settings/reset",r=await fetch(t,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to reset email event settings")}let o=await r.json();return console.log("Reset email event settings response:",o),o}catch(e){throw console.error("Failed to reset email event settings:",e),e}},oe=async(e,t)=>{try{let r=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Delete agent response:",n),n}catch(e){throw console.error("Failed to delete agent:",e),e}},ot=async(e,t)=>{try{let r=S?`${S}/v1/agents/make_public`:"/v1/agents/make_public",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({agent_ids:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Make agents public response:",n),n}catch(e){throw console.error("Failed to make agents public:",e),e}},or=async(e,t)=>{try{let r=S?`${S}/v1/mcp/make_public`:"/v1/mcp/make_public",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({mcp_server_ids:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Make agents public response:",n),n}catch(e){throw console.error("Failed to make agents public:",e),e}},oo=async(e,t)=>{try{let r=S?`${S}/guardrails/${t}`:`/guardrails/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Delete guardrail response:",n),n}catch(e){throw console.error("Failed to delete guardrail:",e),e}},on=async e=>{try{let t=S?`${S}/guardrails/ui/add_guardrail_settings`:"/guardrails/ui/add_guardrail_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get guardrail UI settings")}let o=await r.json();return console.log("Guardrail UI settings response:",o),o}catch(e){throw console.error("Failed to get guardrail UI settings:",e),e}},oa=async e=>{try{let t=S?`${S}/guardrails/ui/provider_specific_params`:"/guardrails/ui/provider_specific_params",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get guardrail provider specific parameters")}let o=await r.json();return console.log("Guardrail provider specific params response:",o),o}catch(e){throw console.error("Failed to get guardrail provider specific parameters:",e),e}},oi=async(e,t)=>{try{let r=encodeURIComponent(t),o=S?`${S}/guardrails/ui/category_yaml/${r}`:`/guardrails/ui/category_yaml/${r}`;console.log(`Fetching category YAML from: ${o}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text();throw console.error(`Failed to get category YAML. Status: ${n.status}, Error:`,e),_(e),Error(`Failed to get category YAML: ${n.status} ${e}`)}let a=await n.json();return console.log("Category YAML response:",a),a}catch(e){throw console.error("Failed to get category YAML:",e),e}},ol=async e=>{try{let t=S?`${S}/guardrails/ui/major_airlines`:"/guardrails/ui/major_airlines",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw console.error(`Failed to get major airlines. Status: ${r.status}, Error:`,e),_(e),Error(`Failed to get major airlines: ${r.status} ${e}`)}return await r.json()}catch(e){throw console.error("Failed to get major airlines:",e),e}},os=async(e,t=!1)=>{try{let r=t?"?health_check=true":"",o=S?`${S}/v1/agents${r}`:`/v1/agents${r}`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to get agents list")}let a=await n.json();return console.log("Agents list response:",a),{agents:a}}catch(e){throw console.error("Failed to get agents list:",e),e}},oc=async(e,t)=>{try{let r=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to get agent info")}let n=await o.json();return console.log("Agent info response:",n),n}catch(e){throw console.error("Failed to get agent info:",e),e}},ou=async(e,t)=>{try{let r=S?`${S}/guardrails/${t}/info`:`/guardrails/${t}/info`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to get guardrail info")}let n=await o.json();return console.log("Guardrail info response:",n),n}catch(e){throw console.error("Failed to get guardrail info:",e),e}},od=async(e,t,r)=>{try{let o=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to patch agent")}let a=await n.json();return console.log("Patch agent response:",a),a}catch(e){throw console.error("Failed to update guardrail:",e),e}},of=async(e,t,r)=>{try{let o=S?`${S}/guardrails/${t}`:`/guardrails/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to update guardrail")}let a=await n.json();return console.log("Update guardrail response:",a),a}catch(e){throw console.error("Failed to update guardrail:",e),e}},op=async(e,t,r,o,n)=>{try{let a=S?`${S}/guardrails/apply_guardrail`:"/guardrails/apply_guardrail",i={guardrail_name:t,text:r};o&&(i.language=o),n&&n.length>0&&(i.entities=n);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.text(),t="Failed to apply guardrail";try{let r=JSON.parse(e);r.error?.message?t=r.error.message:r.detail?t=r.detail:r.message&&(t=r.message)}catch(r){t=e||t}throw _(e),Error(t)}let s=await l.json();return console.log("Apply guardrail response:",s),s}catch(e){throw console.error("Failed to apply guardrail:",e),e}},oh=async(e,t)=>{try{let r=S?`${S}/guardrails/test_custom_code`:"/guardrails/test_custom_code",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text(),t="Failed to test custom code guardrail";try{let r=JSON.parse(e);r.error?.message?t=r.error.message:r.detail?t=r.detail:r.message&&(t=r.message)}catch(r){t=e||t}throw _(e),Error(t)}let n=await o.json();return console.log("Test custom code guardrail response:",n),n}catch(e){throw console.error("Failed to test custom code guardrail:",e),e}},om=async(e,t)=>{try{let r=S?`${S}/guardrails/validate_blocked_words_file`:"/guardrails/validate_blocked_words_file",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({file_content:t})});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to validate blocked words file")}let n=await o.json();return console.log("Validate blocked words file response:",n),n}catch(e){throw console.error("Failed to validate blocked words file:",e),e}},og=async e=>{try{let t=S?`${S}/get/sso_settings`:"/get/sso_settings";console.log("Fetching SSO configuration from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched SSO configuration:",o),o}catch(e){throw console.error("Failed to fetch SSO configuration:",e),e}},ov=async(e,t)=>{try{let r=S?`${S}/update/sso_settings`:"/update/sso_settings";console.log("Updating SSO configuration:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t="object"==typeof e?.detail?e.detail?.error||e.detail?.message:e?.detail,r="string"==typeof t&&t.length>0?t:oM(e);_(r);let n=Error(r);throw e?.detail!==void 0&&(n.detail=e.detail),n.rawError=e,n}let n=await o.json();return console.log("Updated SSO configuration:",n),n}catch(e){throw console.error("Failed to update SSO configuration:",e),e}},oy=async({accessToken:e,page:t=1,page_size:r=50,params:o={}})=>{try{let n=S?`${S}/audit`:"/audit",a=new URLSearchParams;for(let[e,n]of(a.append("page",t.toString()),a.append("page_size",r.toString()),Object.entries(o)))null!=n&&""!==n&&a.append(e,String(n));n+=`?${a.toString()}`;let i=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to fetch audit logs:",e),e}},ob=async e=>{try{let t=S?`${S}/user/available_users`:"/user/available_users",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok){if(404===r.status)return null;let e=await r.text();throw _(e),Error("Network response was not ok")}return await r.json()}catch(e){throw console.error("Failed to fetch remaining users:",e),e}},ow=async e=>{try{let t=S?`${S}/health/license`:"/health/license",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok){if(404===r.status)return null;let e=await r.text();throw _(e),Error("Network response was not ok")}return await r.json()}catch(e){throw console.error("Failed to fetch license info:",e),e}},o$=async(e,t,r)=>{try{let o=S?`${S}/config/pass_through_endpoint/${encodeURIComponent(t)}`:`/config/pass_through_endpoint/${encodeURIComponent(t)}`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return v.default.success("Pass through endpoint updated successfully"),a}catch(e){throw console.error("Failed to update pass through endpoint:",e),e}},oC=async(e,t)=>{try{let r=S?`${S}/config/callback/delete`:"/config/callback/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({callback_name:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete specific callback:",e),e}},ox=async(e,t,r)=>{try{console.log("Testing MCP tools list with config:",JSON.stringify(t));let o=S?`${S}/mcp-rest/test/tools/list`:"/mcp-rest/test/tools/list",n={"Content-Type":"application/json"};e&&(n["x-litellm-api-key"]=e),r?n.Authorization=`Bearer ${r}`:e&&(n[R]=`Bearer ${e}`);let a=await fetch(o,{method:"POST",headers:n,body:JSON.stringify(t)}),i=a.headers.get("content-type");if(!i||!i.includes("application/json")){let e=await a.text();throw console.error("Received non-JSON response:",e),Error(`Received non-JSON response (${a.status}: ${a.statusText}). Check network tab for details.`)}let l=await a.json();if((!a.ok||l.error)&&!l.error)return{tools:[],error:"request_failed",message:l.message||`MCP tools list failed: ${a.status} ${a.statusText}`};return l}catch(e){throw console.error("MCP tools list test error:",e),e}},oE=async(e,t)=>{let r=S?`${S}/v1/mcp/server/oauth/session`:"/v1/mcp/server/oauth/session",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)}),n=await o.json();if(!o.ok)throw Error(oM(n)||n?.error||"Failed to cache MCP server");return n},oS=async(e,t,r)=>{let o=k(),n=encodeURIComponent(t.trim()),a=`${o}/v1/mcp/server/oauth/${n}/register`,i=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json, text/event-stream"},body:JSON.stringify(r)}),l=await i.json();if(!i.ok)throw Error(oM(l)||l?.detail||"Failed to register OAuth client");return l},ok=({serverId:e,clientId:t,redirectUri:r,state:o,codeChallenge:n,scope:a})=>{let i=k(),l=encodeURIComponent(e.trim()),s=`${i}/v1/mcp/server/oauth/${l}/authorize`,c=new URLSearchParams({redirect_uri:r,state:o,response_type:"code",code_challenge:n,code_challenge_method:"S256"});return t&&t.trim().length>0&&c.set("client_id",t),a&&a.trim().length>0&&c.set("scope",a),`${s}?${c.toString()}`},oj=async({serverId:e,code:t,clientId:r,clientSecret:o,codeVerifier:n,redirectUri:a,accessToken:i})=>{let l=k(),s=encodeURIComponent(e.trim()),c=`${l}/v1/mcp/server/oauth/${s}/token`,u=new URLSearchParams;u.set("grant_type","authorization_code"),u.set("code",t),r&&r.trim().length>0&&u.set("client_id",r),o&&o.trim().length>0&&u.set("client_secret",o),u.set("code_verifier",n),u.set("redirect_uri",a);let d={"Content-Type":"application/x-www-form-urlencoded"};i&&(d.Authorization=`Bearer ${i}`);let f=await fetch(c,{method:"POST",headers:d,body:u.toString()}),p=await f.json();if(!f.ok)throw Error(oM(p)||p?.detail||"OAuth token exchange failed");return p},oO=async(e,t,r)=>{try{let o=`${k()}/v1/vector_stores/${t}/search`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({query:r})});if(!n.ok){let e=await n.text();return await _(e),null}return await n.json()}catch(e){throw console.error("Error testing vector store search:",e),e}},oT=async(e,t,r,o)=>{try{let n=`${k()}/v1/search/${t}`,a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({query:r,max_results:o||5})});if(!a.ok){let e=await a.text();return await _(e),null}return await a.json()}catch(e){throw console.error("Error querying search tool:",e),e}},oI=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/dau`:"/tag/dau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch DAU:",e),e}},o_=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/wau`:"/tag/wau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch WAU:",e),e}},oF=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/mau`:"/tag/mau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch MAU:",e),e}},oP=async e=>{try{let t=S?`${S}/tag/distinct`:"/tag/distinct",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch distinct tags:",e),e}},oR=async(e,t,r,o)=>{try{let n=S?`${S}/tag/summary`:"/tag/summary",a=new URLSearchParams,i=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`};a.append("start_date",i(t)),a.append("end_date",i(r)),o&&o.length>0&&o.forEach(e=>{a.append("tag_filters",e)});let l=a.toString();l&&(n+=`?${l}`);let s=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}return await s.json()}catch(e){throw console.error("Failed to fetch user agent summary:",e),e}},oN=async(e,t=1,r=50,o)=>{try{let n=S?`${S}/tag/user-agent/per-user-analytics`:"/tag/user-agent/per-user-analytics",a=new URLSearchParams;a.append("page",t.toString()),a.append("page_size",r.toString()),o&&o.length>0&&o.forEach(e=>{a.append("tag_filters",e)});let i=a.toString();i&&(n+=`?${i}`);let l=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}return await l.json()}catch(e){throw console.error("Failed to fetch per-user analytics:",e),e}},oM=e=>{let t=e?.detail,r=Array.isArray(t)?t.map(e=>e?.msg||JSON.stringify(e)).join("; "):"string"==typeof t?t:void 0;return e?.error&&(e.error.message||("string"==typeof e.error?e.error:void 0))||e?.message||r||JSON.stringify(e)},oB=async(e,t,r)=>{let n=k(),a=r?"/v3/login":"/v2/login",i=n?`${n}${a}`:a,l=JSON.stringify({username:e,password:t}),s=await fetch(i,{method:"POST",body:l,credentials:"include",headers:{"Content-Type":"application/json"}});if(!s.ok)throw Error(oM(await s.json()));let c=await s.json();if(r&&c.code){let e=n?`${n}/v3/login/exchange`:"/v3/login/exchange",t=await fetch(e,{method:"POST",body:JSON.stringify({code:c.code}),credentials:"include",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error(oM(await t.json()));let r=await t.json();return r.token&&(0,o.storeLoginToken)(r.token),r}return c.token&&(0,o.storeLoginToken)(c.token),c},oA=async(e,t)=>{let r=t||k(),o=await fetch(`${r}/v3/login/exchange`,{method:"POST",body:JSON.stringify({code:e}),headers:{"Content-Type":"application/json"}});if(!o.ok)throw Error(oM(await o.json()));let n=await o.json();return n.token&&(document.cookie=`token=${n.token}; path=/; SameSite=Lax`),n.token},oz=async()=>{let e=k(),t=e?`${e}/get/ui_settings`:"/get/ui_settings",r=await fetch(t,{method:"GET"});if(!r.ok)throw Error(oM(await r.json()));return await r.json()},oL=async(e,t)=>{let r=k(),o=r?`${r}/update/ui_settings`:"/update/ui_settings",n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok)throw Error(oM(await n.json()));return await n.json()},oD=async(e,t=!1)=>{try{let r=k(),o=r?`${r}/claude-code/plugins?enabled_only=${t}`:`/claude-code/plugins?enabled_only=${t}`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to fetch Claude Code plugins list:",e),e}},oH=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins`:"/claude-code/plugins",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to register Claude Code plugin:",e),e}},oV=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}/enable`:`/claude-code/plugins/${t}/enable`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to enable plugin "${t}":`,e),e}},oW=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}/disable`:`/claude-code/plugins/${t}/disable`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to disable plugin "${t}":`,e),e}},oU=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}`:`/claude-code/plugins/${t}`,n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to delete plugin "${t}":`,e),e}},oG=async(e,t)=>{let r=S?`${S}/compliance/eu-ai-act`:"/compliance/eu-ai-act",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok)throw Error(await o.text());return o.json()},oq=async(e,t)=>{let r=S?`${S}/compliance/gdpr`:"/compliance/gdpr",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok)throw Error(await o.text());return o.json()},oJ=async e=>{let t=S?`${S}/v1/tool/policy/options`:"/v1/tool/policy/options",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(await r.text());return r.json()},oK=async e=>{let t=S?`${S}/v1/tool/list`:"/v1/tool/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(await r.text());return(await r.json()).tools??[]},oX=async(e,t,r)=>{let o=encodeURIComponent(t),n=S?`${S}/v1/tool/${o}/logs`:`/v1/tool/${o}/logs`,a=new URLSearchParams;null!=r.page&&a.append("page",String(r.page)),null!=r.pageSize&&a.append("page_size",String(r.pageSize)),r.startDate&&a.append("start_date",r.startDate),r.endDate&&a.append("end_date",r.endDate);let i=a.toString()?`${n}?${a.toString()}`:n,l=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok)throw Error(oM(await l.json().catch(()=>({}))));return l.json()},oQ=async(e,t)=>{let r=encodeURIComponent(t),o=S?`${S}/v1/tool/${r}/detail`:`/v1/tool/${r}/detail`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok)throw Error(await n.text());return n.json()},oY=async(e,t,r,o)=>{let n=S?`${S}/v1/tool/policy`:"/v1/tool/policy",a={tool_name:t};null!=r.input_policy&&(a.input_policy=r.input_policy),null!=r.output_policy&&(a.output_policy=r.output_policy),o?.team_id!=null&&(a.team_id=o.team_id||void 0),o?.key_hash!=null&&(a.key_hash=o.key_hash||void 0),o?.key_alias!=null&&(a.key_alias=o.key_alias||void 0);let i=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(a)});if(!i.ok)throw Error(await i.text());return i.json()},oZ=async(e,t,r)=>{let o=encodeURIComponent(t),n=new URLSearchParams;null!=r.team_id&&""!==r.team_id&&n.set("team_id",r.team_id),null!=r.key_hash&&""!==r.key_hash&&n.set("key_hash",r.key_hash);let a=n.toString(),i=S?`${S}/v1/tool/${o}/overrides${a?`?${a}`:""}`:`/v1/tool/${o}/overrides${a?`?${a}`:""}`,l=await fetch(i,{method:"DELETE",headers:{[R]:`Bearer ${e}`}});if(!l.ok)throw Error(await l.text());return l.json()},o0=async(e,t,r)=>{let o=S?`${S}/v1/mcp/server/${t}/oauth-user-credential`:`/v1/mcp/server/${t}/oauth-user-credential`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json().catch(()=>({})),t=e?.detail;throw Error((Array.isArray(t)?t.map(e=>e&&"object"==typeof e?e.msg??JSON.stringify(e):String(e)).join("; "):"string"==typeof t?t:t&&"string"==typeof t.error?t.error:void 0)||"Failed to store OAuth credential")}return n.json()},o1=async(e,t)=>{let r=S?`${S}/v1/mcp/server/${t}/oauth-user-credential`:`/v1/mcp/server/${t}/oauth-user-credential`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json().catch(()=>({})),t=e?.detail;throw Error((Array.isArray(t)?t.map(e=>e&&"object"==typeof e?e.msg??JSON.stringify(e):String(e)).join("; "):"string"==typeof t?t:t&&"string"==typeof t.error?t.error:void 0)||"Failed to revoke OAuth credential")}return o.json()},o2=async(e,t)=>{let r=S?`${S}/v1/mcp/server/${t}/oauth-user-credential/status`:`/v1/mcp/server/${t}/oauth-user-credential/status`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`}});return o.ok?o.json():{server_id:t,has_credential:!1,is_expired:!1}},o4=async e=>{let t=S?`${S}/v1/mcp/user-credentials`:"/v1/mcp/user-credentials",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});return r.ok?r.json():[]},o6=e=>e.split("/").map(encodeURIComponent).join("/"),o3=async(e,t={})=>{let r=S?`${S}/v1/memory`:"/v1/memory",o=new URLSearchParams;t.keyPrefix?o.append("key_prefix",t.keyPrefix):t.key&&o.append("key",t.key),null!=t.page&&o.append("page",String(t.page)),null!=t.pageSize&&o.append("page_size",String(t.pageSize));let n=o.toString()?`${r}?${o.toString()}`:r,a=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok)throw Error(await a.text());return a.json()},o7=async(e,t)=>{let r=S?`${S}/v1/memory`:"/v1/memory",o={key:t.key,value:t.value};void 0!==t.metadata&&(o.metadata=t.metadata);let n=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(o)});if(!n.ok)throw Error(await n.text());return n.json()},o5=async(e,t,r)=>{let o=o6(t),n=S?`${S}/v1/memory/${o}`:`/v1/memory/${o}`,a=await fetch(n,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!a.ok)throw Error(await a.text());return a.json()},o9=async(e,t)=>{let r=o6(t),o=S?`${S}/v1/memory/${r}`:`/v1/memory/${r}`,n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok)throw Error(await n.text())}},266027,869230,469637,e=>{"use strict";let t;var r=e.i(175555),o=e.i(273911),n=e.i(540143),a=e.i(286491),i=e.i(915823),l=e.i(793803),s=e.i(619273),c=e.i(180166),u=class extends i.Subscribable{constructor(e,t){super(),this.options=t,this.#e=e,this.#t=null,this.#r=(0,l.pendingThenable)(),this.bindMethods(),this.setOptions(t)}#e;#o=void 0;#n=void 0;#a=void 0;#i;#l;#r;#t;#s;#c;#u;#d;#f;#p;#h=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#o.addObserver(this),d(this.#o,this.options)?this.#m():this.updateResult(),this.#g())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return f(this.#o,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return f(this.#o,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#v(),this.#y(),this.#o.removeObserver(this)}setOptions(e){let t=this.options,r=this.#o;if(this.options=this.#e.defaultQueryOptions(e),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,s.resolveQueryBoolean)(this.options.enabled,this.#o))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#b(),this.#o.setOptions(this.options),t._defaulted&&!(0,s.shallowEqualObjects)(this.options,t)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#o,observer:this});let o=this.hasListeners();o&&p(this.#o,r,this.options,t)&&this.#m(),this.updateResult(),o&&(this.#o!==r||(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)!==(0,s.resolveQueryBoolean)(t.enabled,this.#o)||(0,s.resolveStaleTime)(this.options.staleTime,this.#o)!==(0,s.resolveStaleTime)(t.staleTime,this.#o))&&this.#w();let n=this.#$();o&&(this.#o!==r||(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)!==(0,s.resolveQueryBoolean)(t.enabled,this.#o)||n!==this.#p)&&this.#C(n)}getOptimisticResult(e){var t,r;let o=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(o,e);return t=this,r=n,(0,s.shallowEqualObjects)(t.getCurrentResult(),r)||(this.#a=n,this.#l=this.options,this.#i=this.#o.state),n}getCurrentResult(){return this.#a}trackResult(e,t){return new Proxy(e,{get:(e,r)=>(this.trackProp(r),t?.(r),"promise"===r&&(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#r.status||this.#r.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(e,r))})}trackProp(e){this.#h.add(e)}getCurrentQuery(){return this.#o}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),r=this.#e.getQueryCache().build(this.#e,t);return r.fetch().then(()=>this.createResult(r,t))}fetch(e){return this.#m({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#a))}#m(e){this.#b();let t=this.#o.fetch(this.options,e);return e?.throwOnError||(t=t.catch(s.noop)),t}#w(){this.#v();let e=(0,s.resolveStaleTime)(this.options.staleTime,this.#o);if(o.environmentManager.isServer()||this.#a.isStale||!(0,s.isValidTimeout)(e))return;let t=(0,s.timeUntilStale)(this.#a.dataUpdatedAt,e);this.#d=c.timeoutManager.setTimeout(()=>{this.#a.isStale||this.updateResult()},t+1)}#$(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#o):this.options.refetchInterval)??!1}#C(e){this.#y(),this.#p=e,!o.environmentManager.isServer()&&!1!==(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)&&(0,s.isValidTimeout)(this.#p)&&0!==this.#p&&(this.#f=c.timeoutManager.setInterval(()=>{(this.options.refetchIntervalInBackground||r.focusManager.isFocused())&&this.#m()},this.#p))}#g(){this.#w(),this.#C(this.#$())}#v(){void 0!==this.#d&&(c.timeoutManager.clearTimeout(this.#d),this.#d=void 0)}#y(){void 0!==this.#f&&(c.timeoutManager.clearInterval(this.#f),this.#f=void 0)}createResult(e,t){let r,o=this.#o,n=this.options,i=this.#a,c=this.#i,u=this.#l,f=e!==o?e.state:this.#n,{state:m}=e,g={...m},v=!1;if(t._optimisticResults){let r=this.hasListeners(),i=!r&&d(e,t),l=r&&p(e,o,t,n);(i||l)&&(g={...g,...(0,a.fetchState)(m.data,e.options)}),"isRestoring"===t._optimisticResults&&(g.fetchStatus="idle")}let{error:y,errorUpdatedAt:b,status:w}=g;r=g.data;let $=!1;if(void 0!==t.placeholderData&&void 0===r&&"pending"===w){let e;i?.isPlaceholderData&&t.placeholderData===u?.placeholderData?(e=i.data,$=!0):e="function"==typeof t.placeholderData?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,void 0!==e&&(w="success",r=(0,s.replaceData)(i?.data,e,t),v=!0)}if(t.select&&void 0!==r&&!$)if(i&&r===c?.data&&t.select===this.#s)r=this.#c;else try{this.#s=t.select,r=t.select(r),r=(0,s.replaceData)(i?.data,r,t),this.#c=r,this.#t=null}catch(e){this.#t=e}this.#t&&(y=this.#t,r=this.#c,b=Date.now(),w="error");let C="fetching"===g.fetchStatus,x="pending"===w,E="error"===w,S=x&&C,k=void 0!==r,j={status:w,fetchStatus:g.fetchStatus,isPending:x,isSuccess:"success"===w,isError:E,isInitialLoading:S,isLoading:S,data:r,dataUpdatedAt:g.dataUpdatedAt,error:y,errorUpdatedAt:b,failureCount:g.fetchFailureCount,failureReason:g.fetchFailureReason,errorUpdateCount:g.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:g.dataUpdateCount>f.dataUpdateCount||g.errorUpdateCount>f.errorUpdateCount,isFetching:C,isRefetching:C&&!x,isLoadingError:E&&!k,isPaused:"paused"===g.fetchStatus,isPlaceholderData:v,isRefetchError:E&&k,isStale:h(e,t),refetch:this.refetch,promise:this.#r,isEnabled:!1!==(0,s.resolveQueryBoolean)(t.enabled,e)};if(this.options.experimental_prefetchInRender){let t=void 0!==j.data,r="error"===j.status&&!t,n=e=>{r?e.reject(j.error):t&&e.resolve(j.data)},a=()=>{n(this.#r=j.promise=(0,l.pendingThenable)())},i=this.#r;switch(i.status){case"pending":e.queryHash===o.queryHash&&n(i);break;case"fulfilled":(r||j.data!==i.value)&&a();break;case"rejected":r&&j.error===i.reason||a()}}return j}updateResult(){let e=this.#a,t=this.createResult(this.#o,this.options);if(this.#i=this.#o.state,this.#l=this.options,void 0!==this.#i.data&&(this.#u=this.#o),(0,s.shallowEqualObjects)(t,e))return;this.#a=t;let r=()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,r="function"==typeof t?t():t;if("all"===r||!r&&!this.#h.size)return!0;let o=new Set(r??this.#h);return this.options.throwOnError&&o.add("error"),Object.keys(this.#a).some(t=>this.#a[t]!==e[t]&&o.has(t))};this.#x({listeners:r()})}#b(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#o)return;let t=this.#o;this.#o=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#g()}#x(e){n.notifyManager.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#a)}),this.#e.getQueryCache().notify({query:this.#o,type:"observerResultsUpdated"})})}};function d(e,t){return!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&void 0===e.state.data&&("error"!==e.state.status||!1!==(0,s.resolveQueryBoolean)(t.retryOnMount,e))||void 0!==e.state.data&&f(e,t,t.refetchOnMount)}function f(e,t,r){if(!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&"static"!==(0,s.resolveStaleTime)(t.staleTime,e)){let o="function"==typeof r?r(e):r;return"always"===o||!1!==o&&h(e,t)}return!1}function p(e,t,r,o){return(e!==t||!1===(0,s.resolveQueryBoolean)(o.enabled,e))&&(!r.suspense||"error"!==e.state.status)&&h(e,r)}function h(e,t){return!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&e.isStaleByTime((0,s.resolveStaleTime)(t.staleTime,e))}e.s(["QueryObserver",0,u],869230),e.i(247167);var m=e.i(271645),g=e.i(912598);e.i(843476);var v=m.createContext((t=!1,{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t})),y=m.createContext(!1);y.Provider;var b=(e,t,r)=>t.fetchOptimistic(e).catch(()=>{r.clearReset()});function w(e,t,r){let a,i=m.useContext(y),l=m.useContext(v),c=(0,g.useQueryClient)(r),u=c.defaultQueryOptions(e);c.getDefaultOptions().queries?._experimental_beforeQuery?.(u);let d=c.getQueryCache().get(u.queryHash);if(u._optimisticResults=i?"isRestoring":"optimistic",u.suspense){let e=e=>"static"===e?e:Math.max(e??1e3,1e3),t=u.staleTime;u.staleTime="function"==typeof t?(...r)=>e(t(...r)):e(t),"number"==typeof u.gcTime&&(u.gcTime=Math.max(u.gcTime,1e3))}a=d?.state.error&&"function"==typeof u.throwOnError?(0,s.shouldThrowError)(u.throwOnError,[d.state.error,d]):u.throwOnError,(u.suspense||u.experimental_prefetchInRender||a)&&!l.isReset()&&(u.retryOnMount=!1),m.useEffect(()=>{l.clearReset()},[l]);let f=!c.getQueryCache().get(u.queryHash),[p]=m.useState(()=>new t(c,u)),h=p.getOptimisticResult(u),w=!i&&!1!==e.subscribed;if(m.useSyncExternalStore(m.useCallback(e=>{let t=w?p.subscribe(n.notifyManager.batchCalls(e)):s.noop;return p.updateResult(),t},[p,w]),()=>p.getCurrentResult(),()=>p.getCurrentResult()),m.useEffect(()=>{p.setOptions(u)},[u,p]),u?.suspense&&h.isPending)throw b(u,p,l);if((({result:e,errorResetBoundary:t,throwOnError:r,query:o,suspense:n})=>e.isError&&!t.isReset()&&!e.isFetching&&o&&(n&&void 0===e.data||(0,s.shouldThrowError)(r,[e.error,o])))({result:h,errorResetBoundary:l,throwOnError:u.throwOnError,query:d,suspense:u.suspense}))throw h.error;if(c.getDefaultOptions().queries?._experimental_afterQuery?.(u,h),u.experimental_prefetchInRender&&!o.environmentManager.isServer()&&h.isLoading&&h.isFetching&&!i){let e=f?b(u,p,l):d?.promise;e?.catch(s.noop).finally(()=>{p.updateResult()})}return u.notifyOnChangeProps?h:p.trackResult(h)}e.s(["useBaseQuery",0,w],469637),e.s(["useQuery",0,function(e,t){return w(e,u,t)}],266027)},243652,e=>{"use strict";e.s(["createQueryKeys",0,function(e){let t=[e];return{all:t,lists:()=>[...t,"list"],list:e=>[...t,"list",{params:e}],details:()=>[...t,"detail"],detail:e=>[...t,"detail",e]}}])},947293,e=>{"use strict";class t extends Error{}t.prototype.name="InvalidTokenError",e.s(["jwtDecode",0,function(e,r){let o;if("string"!=typeof e)throw new t("Invalid token specified: must be a string");r||(r={});let n=+(!0!==r.header),a=e.split(".")[n];if("string"!=typeof a)throw new t(`Invalid token specified: missing part #${n+1}`);try{o=function(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw Error("base64 string is not of the correct length")}try{var r;return r=t,decodeURIComponent(atob(r).replace(/(.)/g,(e,t)=>{let r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r}))}catch(e){return atob(t)}}(a)}catch(e){throw new t(`Invalid token specified: invalid base64 for part #${n+1} (${e.message})`)}try{return JSON.parse(o)}catch(e){throw new t(`Invalid token specified: invalid json for part #${n+1} (${e.message})`)}}])},612256,e=>{"use strict";var t=e.i(764205),r=e.i(266027);let o=(0,e.i(243652).createQueryKeys)("uiConfig");e.s(["useUIConfig",0,()=>(0,r.useQuery)({queryKey:o.list({}),queryFn:async()=>await (0,t.getUiConfig)(),staleTime:864e5,gcTime:864e5})])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/09o_h3e0fwffd.js b/litellm/proxy/_experimental/out/_next/static/chunks/09o_h3e0fwffd.js deleted file mode 100644 index 649c0936000..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/09o_h3e0fwffd.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,916925,e=>{"use strict";var r,t=((r={}).A2A_Agent="A2A Agent",r.AI21="Ai21",r.AI21_CHAT="Ai21 Chat",r.AIML="AI/ML API",r.AIOHTTP_OPENAI="Aiohttp Openai",r.Anthropic="Anthropic",r.ANTHROPIC_TEXT="Anthropic Text",r.AssemblyAI="AssemblyAI",r.AUTO_ROUTER="Auto Router",r.Bedrock="Amazon Bedrock",r.BedrockMantle="Amazon Bedrock Mantle",r.SageMaker="AWS SageMaker",r.Azure="Azure",r.Azure_AI_Studio="Azure AI Foundry (Studio)",r.AZURE_TEXT="Azure Text",r.BASETEN="Baseten",r.BYTEZ="Bytez",r.Cerebras="Cerebras",r.CLARIFAI="Clarifai",r.CLOUDFLARE="Cloudflare",r.CODESTRAL="Codestral",r.Cohere="Cohere",r.COHERE_CHAT="Cohere Chat",r.COMETAPI="Cometapi",r.COMPACTIFAI="Compactifai",r.Cursor="Cursor",r.Dashscope="Dashscope",r.Databricks="Databricks (Qwen API)",r.DATAROBOT="Datarobot",r.DeepInfra="DeepInfra",r.Deepgram="Deepgram",r.Deepseek="Deepseek",r.DOCKER_MODEL_RUNNER="Docker Model Runner",r.DOTPROMPT="Dotprompt",r.ElevenLabs="ElevenLabs",r.EMPOWER="Empower",r.FalAI="Fal AI",r.FEATHERLESS_AI="Featherless Ai",r.FireworksAI="Fireworks AI",r.FRIENDLIAI="Friendliai",r.GALADRIEL="Galadriel",r.GITHUB_COPILOT="Github Copilot",r.Google_AI_Studio="Google AI Studio",r.GradientAI="GradientAI",r.Groq="Groq",r.HEROKU="Heroku",r.Hosted_Vllm="vllm",r.HUGGINGFACE="Huggingface",r.HYPERBOLIC="Hyperbolic",r.Infinity="Infinity",r.JinaAI="Jina AI",r.LAMBDA_AI="Lambda Ai",r.LEMONADE="Lemonade",r.LLAMAFILE="Llamafile",r.LM_STUDIO="Lm Studio",r.LLAMA="Meta Llama",r.MARITALK="Maritalk",r.MiniMax="MiniMax",r.MistralAI="Mistral AI",r.MOONSHOT="Moonshot",r.MORPH="Morph",r.NEBIUS="Nebius",r.NLP_CLOUD="Nlp Cloud",r.NOVITA="Novita",r.NSCALE="Nscale",r.NVIDIA_NIM="Nvidia Nim",r.Ollama="Ollama",r.OLLAMA_CHAT="Ollama Chat",r.OOBABOOGA="Oobabooga",r.OpenAI="OpenAI",r.OPENAI_LIKE="Openai Like",r.OpenAI_Compatible="OpenAI-Compatible Endpoints (Together AI, etc.)",r.OpenAI_Text="OpenAI Text Completion",r.OpenAI_Text_Compatible="OpenAI-Compatible Text Completion Models (Together AI, etc.)",r.Openrouter="Openrouter",r.Oracle="Oracle Cloud Infrastructure (OCI)",r.OVHCLOUD="Ovhcloud",r.Perplexity="Perplexity",r.PETALS="Petals",r.PG_VECTOR="Pg Vector",r.PREDIBASE="Predibase",r.RECRAFT="Recraft",r.REPLICATE="Replicate",r.RunwayML="RunwayML",r.SAGEMAKER_LEGACY="Sagemaker",r.Sambanova="Sambanova",r.SAP="SAP Generative AI Hub",r.Snowflake="Snowflake",r.TEXT_COMPLETION_CODESTRAL="Text-Completion-Codestral",r.TogetherAI="TogetherAI",r.TOPAZ="Topaz",r.Triton="Triton",r.V0="V0",r.VERCEL_AI_GATEWAY="Vercel Ai Gateway",r.Vertex_AI="Vertex AI (Anthropic, Gemini, etc.)",r.VERTEX_AI_BETA="Vertex Ai Beta",r.VLLM="Vllm",r.VolcEngine="VolcEngine",r.Voyage="Voyage AI",r.WANDB="Wandb",r.WATSONX="Watsonx",r.WATSONX_TEXT="Watsonx Text",r.xAI="xAI",r.XINFERENCE="Xinference",r.ZAI="Z.AI (Zhipu AI)",r);let o={A2A_Agent:"a2a_agent",AI21:"ai21",AI21_CHAT:"ai21_chat",AIML:"aiml",AIOHTTP_OPENAI:"aiohttp_openai",Anthropic:"anthropic",ANTHROPIC_TEXT:"anthropic_text",AssemblyAI:"assemblyai",AUTO_ROUTER:"auto_router",Azure:"azure",Azure_AI_Studio:"azure_ai",AZURE_TEXT:"azure_text",BASETEN:"baseten",Bedrock:"bedrock",BedrockMantle:"bedrock_mantle",BYTEZ:"bytez",Cerebras:"cerebras",CLARIFAI:"clarifai",CLOUDFLARE:"cloudflare",CODESTRAL:"codestral",Cohere:"cohere",COHERE_CHAT:"cohere_chat",COMETAPI:"cometapi",COMPACTIFAI:"compactifai",Cursor:"cursor",Dashscope:"dashscope",Databricks:"databricks",DATAROBOT:"datarobot",DeepInfra:"deepinfra",Deepgram:"deepgram",Deepseek:"deepseek",DOCKER_MODEL_RUNNER:"docker_model_runner",DOTPROMPT:"dotprompt",ElevenLabs:"elevenlabs",EMPOWER:"empower",FalAI:"fal_ai",FEATHERLESS_AI:"featherless_ai",FireworksAI:"fireworks_ai",FRIENDLIAI:"friendliai",GALADRIEL:"galadriel",GITHUB_COPILOT:"github_copilot",Google_AI_Studio:"gemini",GradientAI:"gradient_ai",Groq:"groq",HEROKU:"heroku",Hosted_Vllm:"hosted_vllm",HUGGINGFACE:"huggingface",HYPERBOLIC:"hyperbolic",Infinity:"infinity",JinaAI:"jina_ai",LAMBDA_AI:"lambda_ai",LEMONADE:"lemonade",LLAMAFILE:"llamafile",LLAMA:"meta_llama",LM_STUDIO:"lm_studio",MARITALK:"maritalk",MiniMax:"minimax",MistralAI:"mistral",MOONSHOT:"moonshot",MORPH:"morph",NEBIUS:"nebius",NLP_CLOUD:"nlp_cloud",NOVITA:"novita",NSCALE:"nscale",NVIDIA_NIM:"nvidia_nim",Ollama:"ollama",OLLAMA_CHAT:"ollama_chat",OOBABOOGA:"oobabooga",OpenAI:"openai",OPENAI_LIKE:"openai_like",OpenAI_Compatible:"openai",OpenAI_Text:"text-completion-openai",OpenAI_Text_Compatible:"text-completion-openai",Openrouter:"openrouter",Oracle:"oci",OVHCLOUD:"ovhcloud",Perplexity:"perplexity",PETALS:"petals",PG_VECTOR:"pg_vector",PREDIBASE:"predibase",RECRAFT:"recraft",REPLICATE:"replicate",RunwayML:"runwayml",SAGEMAKER_LEGACY:"sagemaker",SageMaker:"sagemaker_chat",Sambanova:"sambanova",SAP:"sap",Snowflake:"snowflake",TEXT_COMPLETION_CODESTRAL:"text-completion-codestral",TogetherAI:"together_ai",TOPAZ:"topaz",Triton:"triton",V0:"v0",VERCEL_AI_GATEWAY:"vercel_ai_gateway",Vertex_AI:"vertex_ai",VERTEX_AI_BETA:"vertex_ai_beta",VLLM:"vllm",VolcEngine:"volcengine",Voyage:"voyage",WANDB:"wandb",WATSONX:"watsonx",WATSONX_TEXT:"watsonx_text",xAI:"xai",XINFERENCE:"xinference",ZAI:"zai"},a="../ui/assets/logos/",n={"A2A Agent":`${a}a2a_agent.png`,Ai21:`${a}ai21.svg`,"Ai21 Chat":`${a}ai21.svg`,"AI/ML API":`${a}aiml_api.svg`,"Aiohttp Openai":`${a}openai_small.svg`,Anthropic:`${a}anthropic.svg`,"Anthropic Text":`${a}anthropic.svg`,AssemblyAI:`${a}assemblyai_small.png`,Azure:`${a}microsoft_azure.svg`,"Azure AI Foundry (Studio)":`${a}microsoft_azure.svg`,"Azure Text":`${a}microsoft_azure.svg`,Baseten:`${a}baseten.svg`,"Amazon Bedrock":`${a}bedrock.svg`,"Amazon Bedrock Mantle":`${a}bedrock.svg`,"AWS SageMaker":`${a}bedrock.svg`,Cerebras:`${a}cerebras.svg`,Cloudflare:`${a}cloudflare.svg`,Codestral:`${a}mistral.svg`,Cohere:`${a}cohere.svg`,"Cohere Chat":`${a}cohere.svg`,Cometapi:`${a}cometapi.svg`,Cursor:`${a}cursor.svg`,"Databricks (Qwen API)":`${a}databricks.svg`,Dashscope:`${a}dashscope.svg`,Deepseek:`${a}deepseek.svg`,Deepgram:`${a}deepgram.png`,DeepInfra:`${a}deepinfra.png`,ElevenLabs:`${a}elevenlabs.png`,"Fal AI":`${a}fal_ai.jpg`,"Featherless Ai":`${a}featherless.svg`,"Fireworks AI":`${a}fireworks.svg`,Friendliai:`${a}friendli.svg`,"Github Copilot":`${a}github_copilot.svg`,"Google AI Studio":`${a}google.svg`,GradientAI:`${a}gradientai.svg`,Groq:`${a}groq.svg`,vllm:`${a}vllm.png`,Huggingface:`${a}huggingface.svg`,Hyperbolic:`${a}hyperbolic.svg`,Infinity:`${a}infinity.png`,"Jina AI":`${a}jina.png`,"Lambda Ai":`${a}lambda.svg`,"Lm Studio":`${a}lmstudio.svg`,"Meta Llama":`${a}meta_llama.svg`,MiniMax:`${a}minimax.svg`,"Mistral AI":`${a}mistral.svg`,Moonshot:`${a}moonshot.svg`,Morph:`${a}morph.svg`,Nebius:`${a}nebius.svg`,Novita:`${a}novita.svg`,"Nvidia Nim":`${a}nvidia_nim.svg`,Ollama:`${a}ollama.svg`,"Ollama Chat":`${a}ollama.svg`,Oobabooga:`${a}openai_small.svg`,OpenAI:`${a}openai_small.svg`,"Openai Like":`${a}openai_small.svg`,"OpenAI Text Completion":`${a}openai_small.svg`,"OpenAI-Compatible Text Completion Models (Together AI, etc.)":`${a}openai_small.svg`,"OpenAI-Compatible Endpoints (Together AI, etc.)":`${a}openai_small.svg`,Openrouter:`${a}openrouter.svg`,"Oracle Cloud Infrastructure (OCI)":`${a}oracle.svg`,Perplexity:`${a}perplexity-ai.svg`,Recraft:`${a}recraft.svg`,Replicate:`${a}replicate.svg`,RunwayML:`${a}runwayml.png`,Sagemaker:`${a}bedrock.svg`,Sambanova:`${a}sambanova.svg`,"SAP Generative AI Hub":`${a}sap.png`,Snowflake:`${a}snowflake.svg`,"Text-Completion-Codestral":`${a}mistral.svg`,TogetherAI:`${a}togetherai.svg`,Topaz:`${a}topaz.svg`,Triton:`${a}nvidia_triton.png`,V0:`${a}v0.svg`,"Vercel Ai Gateway":`${a}vercel.svg`,"Vertex AI (Anthropic, Gemini, etc.)":`${a}google.svg`,"Vertex Ai Beta":`${a}google.svg`,Vllm:`${a}vllm.png`,VolcEngine:`${a}volcengine.png`,"Voyage AI":`${a}voyage.webp`,Watsonx:`${a}watsonx.svg`,"Watsonx Text":`${a}watsonx.svg`,xAI:`${a}xai.svg`,Xinference:`${a}xinference.svg`};e.s(["Providers",()=>t,"getPlaceholder",0,e=>{if("AI/ML API"===e)return"aiml/flux-pro/v1.1";if("Vertex AI (Anthropic, Gemini, etc.)"===e)return"gemini-pro";if("Anthropic"==e)return"claude-3-opus";if("Amazon Bedrock"==e)return"claude-3-opus";if("AWS SageMaker"==e)return"sagemaker/jumpstart-dft-meta-textgeneration-llama-2-7b";else if("Google AI Studio"==e)return"gemini-pro";else if("Azure AI Foundry (Studio)"==e)return"azure_ai/command-r-plus";else if("Azure"==e)return"my-deployment";else if("Oracle Cloud Infrastructure (OCI)"==e)return"oci/xai.grok-4";else if("Snowflake"==e)return"snowflake/mistral-7b";else if("Voyage AI"==e)return"voyage/";else if("Jina AI"==e)return"jina_ai/";else if("VolcEngine"==e)return"volcengine/";else if("DeepInfra"==e)return"deepinfra/";else if("Fal AI"==e)return"fal_ai/fal-ai/flux-pro/v1.1-ultra";else if("RunwayML"==e)return"runwayml/gen4_turbo";else if("Watsonx"===e)return"watsonx/ibm/granite-3-3-8b-instruct";else if("Cursor"===e)return"cursor/claude-4-sonnet";else if("Z.AI (Zhipu AI)"===e)return"zai/glm-4.5";else return"gpt-3.5-turbo"},"getProviderLogoAndName",0,e=>{if(!e)return{logo:"",displayName:"-"};if("gemini"===e.toLowerCase()){let e="Google AI Studio";return{logo:n[e],displayName:e}}let r=Object.keys(o).find(r=>o[r].toLowerCase()===e.toLowerCase());if(!r)return{logo:"",displayName:e};let a=t[r];return{logo:n[a],displayName:a}},"getProviderModels",0,(e,r)=>{console.log(`Provider key: ${e}`);let t=o[e];console.log(`Provider mapped to: ${t}`);let a=[];return e&&"object"==typeof r&&(Object.entries(r).forEach(([e,r])=>{if(null!==r&&"object"==typeof r&&"litellm_provider"in r){let o=r.litellm_provider;(o===t||"string"==typeof o&&o.includes(t))&&a.push(e)}}),"Cohere"==e&&(console.log("Adding cohere chat models"),Object.entries(r).forEach(([e,r])=>{null!==r&&"object"==typeof r&&"litellm_provider"in r&&"cohere_chat"===r.litellm_provider&&a.push(e)})),"AWS SageMaker"==e&&(console.log("Adding sagemaker chat models"),Object.entries(r).forEach(([e,r])=>{null!==r&&"object"==typeof r&&"litellm_provider"in r&&"sagemaker_chat"===r.litellm_provider&&a.push(e)}))),a},"providerLogoMap",0,n,"provider_map",0,o])},94629,e=>{"use strict";var r=e.i(271645);let t=r.forwardRef(function(e,t){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4"}))});e.s(["SwitchVerticalIcon",0,t],94629)},166406,e=>{"use strict";var r=e.i(190144);e.s(["CopyOutlined",()=>r.default])},599724,936325,e=>{"use strict";var r=e.i(95779),t=e.i(444755),o=e.i(673706),a=e.i(271645);let n=a.default.forwardRef((e,n)=>{let{color:i,className:l,children:s}=e;return a.default.createElement("p",{ref:n,className:(0,t.tremorTwMerge)("text-tremor-default",i?(0,o.getColorClassNames)(i,r.colorPalette.text).textColor:(0,t.tremorTwMerge)("text-tremor-content","dark:text-dark-tremor-content"),l)},s)});n.displayName="Text",e.s(["default",0,n],936325),e.s(["Text",0,n],599724)},994388,e=>{"use strict";var r=e.i(290571),t=e.i(829087),o=e.i(271645);let a=["preEnter","entering","entered","preExit","exiting","exited","unmounted"],n=e=>({_s:e,status:a[e],isEnter:e<3,isMounted:6!==e,isResolved:2===e||e>4}),i=e=>e?6:5,l=(e,r,t,o,a)=>{clearTimeout(o.current);let i=n(e);r(i),t.current=i,a&&a({current:i})};var s=e.i(480731),c=e.i(444755),d=e.i(673706);let u=e=>{var t=(0,r.__rest)(e,[]);return o.default.createElement("svg",Object.assign({},t,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"}),o.default.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}),o.default.createElement("path",{d:"M18.364 5.636L16.95 7.05A7 7 0 1 0 19 12h2a9 9 0 1 1-2.636-6.364z"}))};var g=e.i(95779);let m={xs:{height:"h-4",width:"w-4"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-6",width:"w-6"},xl:{height:"h-6",width:"w-6"}},p=(e,r)=>{switch(e){case"primary":return{textColor:r?(0,d.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",hoverTextColor:r?(0,d.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:r?(0,d.getColorClassNames)(r,g.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",hoverBgColor:r?(0,d.getColorClassNames)(r,g.colorPalette.darkBackground).hoverBgColor:"hover:bg-tremor-brand-emphasis dark:hover:bg-dark-tremor-brand-emphasis",borderColor:r?(0,d.getColorClassNames)(r,g.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",hoverBorderColor:r?(0,d.getColorClassNames)(r,g.colorPalette.darkBorder).hoverBorderColor:"hover:border-tremor-brand-emphasis dark:hover:border-dark-tremor-brand-emphasis"};case"secondary":return{textColor:r?(0,d.getColorClassNames)(r,g.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:r?(0,d.getColorClassNames)(r,g.colorPalette.text).textColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,d.getColorClassNames)("transparent").bgColor,hoverBgColor:r?(0,c.tremorTwMerge)((0,d.getColorClassNames)(r,g.colorPalette.background).hoverBgColor,"hover:bg-opacity-20 dark:hover:bg-opacity-20"):"hover:bg-tremor-brand-faint dark:hover:bg-dark-tremor-brand-faint",borderColor:r?(0,d.getColorClassNames)(r,g.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand"};case"light":return{textColor:r?(0,d.getColorClassNames)(r,g.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:r?(0,d.getColorClassNames)(r,g.colorPalette.darkText).hoverTextColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,d.getColorClassNames)("transparent").bgColor,borderColor:"",hoverBorderColor:""}}},f=(0,d.makeClassName)("Button"),h=({loading:e,iconSize:r,iconPosition:t,Icon:a,needMargin:n,transitionStatus:i})=>{let l=n?t===s.HorizontalPositions.Left?(0,c.tremorTwMerge)("-ml-1","mr-1.5"):(0,c.tremorTwMerge)("-mr-1","ml-1.5"):"",d=(0,c.tremorTwMerge)("w-0 h-0"),g={default:d,entering:d,entered:r,exiting:r,exited:d};return e?o.default.createElement(u,{className:(0,c.tremorTwMerge)(f("icon"),"animate-spin shrink-0",l,g.default,g[i]),style:{transition:"width 150ms"}}):o.default.createElement(a,{className:(0,c.tremorTwMerge)(f("icon"),"shrink-0",r,l)})},b=o.default.forwardRef((e,a)=>{let{icon:u,iconPosition:g=s.HorizontalPositions.Left,size:b=s.Sizes.SM,color:v,variant:C="primary",disabled:A,loading:k=!1,loadingText:x,children:I,tooltip:w,className:y}=e,E=(0,r.__rest)(e,["icon","iconPosition","size","color","variant","disabled","loading","loadingText","children","tooltip","className"]),O=k||A,$=void 0!==u||k,T=k&&x,_=!(!I&&!T),N=(0,c.tremorTwMerge)(m[b].height,m[b].width),S="light"!==C?(0,c.tremorTwMerge)("rounded-tremor-default border","shadow-tremor-input","dark:shadow-dark-tremor-input"):"",L=p(C,v),M=("light"!==C?{xs:{paddingX:"px-2.5",paddingY:"py-1.5",fontSize:"text-xs"},sm:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-sm"},md:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-md"},lg:{paddingX:"px-4",paddingY:"py-2.5",fontSize:"text-lg"},xl:{paddingX:"px-4",paddingY:"py-3",fontSize:"text-xl"}}:{xs:{paddingX:"",paddingY:"",fontSize:"text-xs"},sm:{paddingX:"",paddingY:"",fontSize:"text-sm"},md:{paddingX:"",paddingY:"",fontSize:"text-md"},lg:{paddingX:"",paddingY:"",fontSize:"text-lg"},xl:{paddingX:"",paddingY:"",fontSize:"text-xl"}})[b],{tooltipProps:P,getReferenceProps:R}=(0,t.useTooltip)(300),[j,D]=(({enter:e=!0,exit:r=!0,preEnter:t,preExit:a,timeout:s,initialEntered:c,mountOnEnter:d,unmountOnExit:u,onStateChange:g}={})=>{let[m,p]=(0,o.useState)(()=>n(c?2:i(d))),f=(0,o.useRef)(m),h=(0,o.useRef)(0),[b,v]="object"==typeof s?[s.enter,s.exit]:[s,s],C=(0,o.useCallback)(()=>{let e=((e,r)=>{switch(e){case 1:case 0:return 2;case 4:case 3:return i(r)}})(f.current._s,u);e&&l(e,p,f,h,g)},[g,u]);return[m,(0,o.useCallback)(o=>{let n=e=>{switch(l(e,p,f,h,g),e){case 1:b>=0&&(h.current=((...e)=>setTimeout(...e))(C,b));break;case 4:v>=0&&(h.current=((...e)=>setTimeout(...e))(C,v));break;case 0:case 3:h.current=((...e)=>setTimeout(...e))(()=>{isNaN(document.body.offsetTop)||n(e+1)},0)}},s=f.current.isEnter;"boolean"!=typeof o&&(o=!s),o?s||n(e?+!t:2):s&&n(r?a?3:4:i(u))},[C,g,e,r,t,a,b,v,u]),C]})({timeout:50});return(0,o.useEffect)(()=>{D(k)},[k]),o.default.createElement("button",Object.assign({ref:(0,d.mergeRefs)([a,P.refs.setReference]),className:(0,c.tremorTwMerge)(f("root"),"shrink-0 inline-flex justify-center items-center group font-medium outline-none",S,M.paddingX,M.paddingY,M.fontSize,L.textColor,L.bgColor,L.borderColor,L.hoverBorderColor,O?"opacity-50 cursor-not-allowed":(0,c.tremorTwMerge)(p(C,v).hoverTextColor,p(C,v).hoverBgColor,p(C,v).hoverBorderColor),y),disabled:O},R,E),o.default.createElement(t.default,Object.assign({text:w},P)),$&&g!==s.HorizontalPositions.Right?o.default.createElement(h,{loading:k,iconSize:N,iconPosition:g,Icon:u,transitionStatus:j.status,needMargin:_}):null,T||I?o.default.createElement("span",{className:(0,c.tremorTwMerge)(f("text"),"text-tremor-default whitespace-nowrap")},T?x:I):null,$&&g===s.HorizontalPositions.Right?o.default.createElement(h,{loading:k,iconSize:N,iconPosition:g,Icon:u,transitionStatus:j.status,needMargin:_}):null)});b.displayName="Button",e.s(["Button",0,b],994388)},304967,e=>{"use strict";var r=e.i(290571),t=e.i(271645),o=e.i(480731),a=e.i(95779),n=e.i(444755),i=e.i(673706);let l=(0,i.makeClassName)("Card"),s=t.default.forwardRef((e,s)=>{let{decoration:c="",decorationColor:d,children:u,className:g}=e,m=(0,r.__rest)(e,["decoration","decorationColor","children","className"]);return t.default.createElement("div",Object.assign({ref:s,className:(0,n.tremorTwMerge)(l("root"),"relative w-full text-left ring-1 rounded-tremor-default p-6","bg-tremor-background ring-tremor-ring shadow-tremor-card","dark:bg-dark-tremor-background dark:ring-dark-tremor-ring dark:shadow-dark-tremor-card",d?(0,i.getColorClassNames)(d,a.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",(e=>{if(!e)return"";switch(e){case o.HorizontalPositions.Left:return"border-l-4";case o.VerticalPositions.Top:return"border-t-4";case o.HorizontalPositions.Right:return"border-r-4";case o.VerticalPositions.Bottom:return"border-b-4";default:return""}})(c),g)},m),u)});s.displayName="Card",e.s(["Card",0,s],304967)},629569,e=>{"use strict";var r=e.i(290571),t=e.i(95779),o=e.i(444755),a=e.i(673706),n=e.i(271645);let i=n.default.forwardRef((e,i)=>{let{color:l,children:s,className:c}=e,d=(0,r.__rest)(e,["color","children","className"]);return n.default.createElement("p",Object.assign({ref:i,className:(0,o.tremorTwMerge)("font-medium text-tremor-title",l?(0,a.getColorClassNames)(l,t.colorPalette.darkText).textColor:"text-tremor-content-strong dark:text-dark-tremor-content-strong",c)},d),s)});i.displayName="Title",e.s(["Title",0,i],629569)},309821,e=>{"use strict";e.i(247167);var r=e.i(271645),t=e.i(135551),o=e.i(201072),a=e.i(121229),n=e.i(726289),i=e.i(864517),l=e.i(343794),s=e.i(529681),c=e.i(242064),d=e.i(931067),u=e.i(209428),g=e.i(703923),m={percent:0,prefixCls:"rc-progress",strokeColor:"#2db7f5",strokeLinecap:"round",strokeWidth:1,trailColor:"#D9D9D9",trailWidth:1,gapPosition:"bottom"},p=function(){var e=(0,r.useRef)([]),t=(0,r.useRef)(null);return(0,r.useEffect)(function(){var r=Date.now(),o=!1;e.current.forEach(function(e){if(e){o=!0;var a=e.style;a.transitionDuration=".3s, .3s, .3s, .06s",t.current&&r-t.current<100&&(a.transitionDuration="0s, 0s")}}),o&&(t.current=Date.now())}),e.current},f=e.i(410160),h=e.i(392221),b=e.i(654310),v=0,C=(0,b.default)();let A=function(e){var t=r.useState(),o=(0,h.default)(t,2),a=o[0],n=o[1];return r.useEffect(function(){var e;n("rc_progress_".concat((C?(e=v,v+=1):e="TEST_OR_SSR",e)))},[]),e||a};var k=function(e){var t=e.bg,o=e.children;return r.createElement("div",{style:{width:"100%",height:"100%",background:t}},o)};function x(e,r){return Object.keys(e).map(function(t){var o=parseFloat(t),a="".concat(Math.floor(o*r),"%");return"".concat(e[t]," ").concat(a)})}var I=r.forwardRef(function(e,t){var o=e.prefixCls,a=e.color,n=e.gradientId,i=e.radius,l=e.style,s=e.ptg,c=e.strokeLinecap,d=e.strokeWidth,u=e.size,g=e.gapDegree,m=a&&"object"===(0,f.default)(a),p=u/2,h=r.createElement("circle",{className:"".concat(o,"-circle-path"),r:i,cx:p,cy:p,stroke:m?"#FFF":void 0,strokeLinecap:c,strokeWidth:d,opacity:+(0!==s),style:l,ref:t});if(!m)return h;var b="".concat(n,"-conic"),v=x(a,(360-g)/360),C=x(a,1),A="conic-gradient(from ".concat(g?"".concat(180+g/2,"deg"):"0deg",", ").concat(v.join(", "),")"),I="linear-gradient(to ".concat(g?"bottom":"top",", ").concat(C.join(", "),")");return r.createElement(r.Fragment,null,r.createElement("mask",{id:b},h),r.createElement("foreignObject",{x:0,y:0,width:u,height:u,mask:"url(#".concat(b,")")},r.createElement(k,{bg:I},r.createElement(k,{bg:A}))))}),w=function(e,r,t,o,a,n,i,l,s,c){var d=arguments.length>10&&void 0!==arguments[10]?arguments[10]:0,u=(100-o)/100*r;return"round"===s&&100!==o&&(u+=c/2)>=r&&(u=r-.01),{stroke:"string"==typeof l?l:void 0,strokeDasharray:"".concat(r,"px ").concat(e),strokeDashoffset:u+d,transform:"rotate(".concat(a+t/100*360*((360-n)/360)+(0===n?0:({bottom:0,top:180,left:90,right:-90})[i]),"deg)"),transformOrigin:"".concat(50,"px ").concat(50,"px"),transition:"stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s",fillOpacity:0}},y=["id","prefixCls","steps","strokeWidth","trailWidth","gapDegree","gapPosition","trailColor","strokeLinecap","style","className","strokeColor","percent"];function E(e){var r=null!=e?e:[];return Array.isArray(r)?r:[r]}let O=function(e){var t,o,a,n,i=(0,u.default)((0,u.default)({},m),e),s=i.id,c=i.prefixCls,h=i.steps,b=i.strokeWidth,v=i.trailWidth,C=i.gapDegree,k=void 0===C?0:C,x=i.gapPosition,O=i.trailColor,$=i.strokeLinecap,T=i.style,_=i.className,N=i.strokeColor,S=i.percent,L=(0,g.default)(i,y),M=A(s),P="".concat(M,"-gradient"),R=50-b/2,j=2*Math.PI*R,D=k>0?90+k/2:-90,z=(360-k)/360*j,B="object"===(0,f.default)(h)?h:{count:h,gap:2},H=B.count,W=B.gap,X=E(S),F=E(N),V=F.find(function(e){return e&&"object"===(0,f.default)(e)}),G=V&&"object"===(0,f.default)(V)?"butt":$,U=w(j,z,0,100,D,k,x,O,G,b),Y=p();return r.createElement("svg",(0,d.default)({className:(0,l.default)("".concat(c,"-circle"),_),viewBox:"0 0 ".concat(100," ").concat(100),style:T,id:s,role:"presentation"},L),!H&&r.createElement("circle",{className:"".concat(c,"-circle-trail"),r:R,cx:50,cy:50,stroke:O,strokeLinecap:G,strokeWidth:v||b,style:U}),H?(t=Math.round(H*(X[0]/100)),o=100/H,a=0,Array(H).fill(null).map(function(e,n){var i=n<=t-1?F[0]:O,l=i&&"object"===(0,f.default)(i)?"url(#".concat(P,")"):void 0,s=w(j,z,a,o,D,k,x,i,"butt",b,W);return a+=(z-s.strokeDashoffset+W)*100/z,r.createElement("circle",{key:n,className:"".concat(c,"-circle-path"),r:R,cx:50,cy:50,stroke:l,strokeWidth:b,opacity:1,style:s,ref:function(e){Y[n]=e}})})):(n=0,X.map(function(e,t){var o=F[t]||F[F.length-1],a=w(j,z,n,e,D,k,x,o,G,b);return n+=e,r.createElement(I,{key:t,color:o,ptg:e,radius:R,prefixCls:c,gradientId:P,style:a,strokeLinecap:G,strokeWidth:b,gapDegree:k,ref:function(e){Y[t]=e},size:100})}).reverse()))};var $=e.i(491816);e.i(765846);var T=e.i(896091);function _(e){return!e||e<0?0:e>100?100:e}function N({success:e,successPercent:r}){let t=r;return e&&"progress"in e&&(t=e.progress),e&&"percent"in e&&(t=e.percent),t}let S=(e,r,t)=>{var o,a,n,i;let l=-1,s=-1;if("step"===r){let r=t.steps,o=t.strokeWidth;"string"==typeof e||void 0===e?(l="small"===e?2:14,s=null!=o?o:8):"number"==typeof e?[l,s]=[e,e]:[l=14,s=8]=Array.isArray(e)?e:[e.width,e.height],l*=r}else if("line"===r){let r=null==t?void 0:t.strokeWidth;"string"==typeof e||void 0===e?s=r||("small"===e?6:8):"number"==typeof e?[l,s]=[e,e]:[l=-1,s=8]=Array.isArray(e)?e:[e.width,e.height]}else("circle"===r||"dashboard"===r)&&("string"==typeof e||void 0===e?[l,s]="small"===e?[60,60]:[120,120]:"number"==typeof e?[l,s]=[e,e]:Array.isArray(e)&&(l=null!=(a=null!=(o=e[0])?o:e[1])?a:120,s=null!=(i=null!=(n=e[0])?n:e[1])?i:120));return[l,s]},L=e=>{let{prefixCls:t,trailColor:o=null,strokeLinecap:a="round",gapPosition:n,gapDegree:i,width:s=120,type:c,children:d,success:u,size:g=s,steps:m}=e,[p,f]=S(g,"circle"),{strokeWidth:h}=e;void 0===h&&(h=Math.max(3/p*100,6));let b=r.useMemo(()=>i||0===i?i:"dashboard"===c?75:void 0,[i,c]),v=(({percent:e,success:r,successPercent:t})=>{let o=_(N({success:r,successPercent:t}));return[o,_(_(e)-o)]})(e),C="[object Object]"===Object.prototype.toString.call(e.strokeColor),A=(({success:e={},strokeColor:r})=>{let{strokeColor:t}=e;return[t||T.presetPrimaryColors.green,r||null]})({success:u,strokeColor:e.strokeColor}),k=(0,l.default)(`${t}-inner`,{[`${t}-circle-gradient`]:C}),x=r.createElement(O,{steps:m,percent:m?v[1]:v,strokeWidth:h,trailWidth:h,strokeColor:m?A[1]:A,strokeLinecap:a,trailColor:o,prefixCls:t,gapDegree:b,gapPosition:n||"dashboard"===c&&"bottom"||void 0}),I=p<=20,w=r.createElement("div",{className:k,style:{width:p,height:f,fontSize:.15*p+6}},x,!I&&d);return I?r.createElement($.default,{title:d},w):w};e.i(296059);var M=e.i(694758),P=e.i(915654),R=e.i(183293),j=e.i(246422),D=e.i(838378);let z="--progress-line-stroke-color",B="--progress-percent",H=e=>{let r=e?"100%":"-100%";return new M.Keyframes(`antProgress${e?"RTL":"LTR"}Active`,{"0%":{transform:`translateX(${r}) scaleX(0)`,opacity:.1},"20%":{transform:`translateX(${r}) scaleX(0)`,opacity:.5},to:{transform:"translateX(0) scaleX(1)",opacity:0}})},W=(0,j.genStyleHooks)("Progress",e=>{let r=e.calc(e.marginXXS).div(2).equal(),t=(0,D.mergeToken)(e,{progressStepMarginInlineEnd:r,progressStepMinWidth:r,progressActiveMotionDuration:"2.4s"});return[(e=>{let{componentCls:r,iconCls:t}=e;return{[r]:Object.assign(Object.assign({},(0,R.resetComponent)(e)),{display:"inline-block","&-rtl":{direction:"rtl"},"&-line":{position:"relative",width:"100%",fontSize:e.fontSize},[`${r}-outer`]:{display:"inline-flex",alignItems:"center",width:"100%"},[`${r}-inner`]:{position:"relative",display:"inline-block",width:"100%",flex:1,overflow:"hidden",verticalAlign:"middle",backgroundColor:e.remainingColor,borderRadius:e.lineBorderRadius},[`${r}-inner:not(${r}-circle-gradient)`]:{[`${r}-circle-path`]:{stroke:e.defaultColor}},[`${r}-success-bg, ${r}-bg`]:{position:"relative",background:e.defaultColor,borderRadius:e.lineBorderRadius,transition:`all ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`},[`${r}-layout-bottom`]:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",[`${r}-text`]:{width:"max-content",marginInlineStart:0,marginTop:e.marginXXS}},[`${r}-bg`]:{overflow:"hidden","&::after":{content:'""',background:{_multi_value_:!0,value:["inherit",`var(${z})`]},height:"100%",width:`calc(1 / var(${B}) * 100%)`,display:"block"},[`&${r}-bg-inner`]:{minWidth:"max-content","&::after":{content:"none"},[`${r}-text-inner`]:{color:e.colorWhite,[`&${r}-text-bright`]:{color:"rgba(0, 0, 0, 0.45)"}}}},[`${r}-success-bg`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,backgroundColor:e.colorSuccess},[`${r}-text`]:{display:"inline-block",marginInlineStart:e.marginXS,color:e.colorText,lineHeight:1,width:"2em",whiteSpace:"nowrap",textAlign:"start",verticalAlign:"middle",wordBreak:"normal",[t]:{fontSize:e.fontSize},[`&${r}-text-outer`]:{width:"max-content"},[`&${r}-text-outer${r}-text-start`]:{width:"max-content",marginInlineStart:0,marginInlineEnd:e.marginXS}},[`${r}-text-inner`]:{display:"flex",justifyContent:"center",alignItems:"center",width:"100%",height:"100%",marginInlineStart:0,padding:`0 ${(0,P.unit)(e.paddingXXS)}`,[`&${r}-text-start`]:{justifyContent:"start"},[`&${r}-text-end`]:{justifyContent:"end"}},[`&${r}-status-active`]:{[`${r}-bg::before`]:{position:"absolute",inset:0,backgroundColor:e.colorBgContainer,borderRadius:e.lineBorderRadius,opacity:0,animationName:H(),animationDuration:e.progressActiveMotionDuration,animationTimingFunction:e.motionEaseOutQuint,animationIterationCount:"infinite",content:'""'}},[`&${r}-rtl${r}-status-active`]:{[`${r}-bg::before`]:{animationName:H(!0)}},[`&${r}-status-exception`]:{[`${r}-bg`]:{backgroundColor:e.colorError},[`${r}-text`]:{color:e.colorError}},[`&${r}-status-exception ${r}-inner:not(${r}-circle-gradient)`]:{[`${r}-circle-path`]:{stroke:e.colorError}},[`&${r}-status-success`]:{[`${r}-bg`]:{backgroundColor:e.colorSuccess},[`${r}-text`]:{color:e.colorSuccess}},[`&${r}-status-success ${r}-inner:not(${r}-circle-gradient)`]:{[`${r}-circle-path`]:{stroke:e.colorSuccess}}})}})(t),(e=>{let{componentCls:r,iconCls:t}=e;return{[r]:{[`${r}-circle-trail`]:{stroke:e.remainingColor},[`&${r}-circle ${r}-inner`]:{position:"relative",lineHeight:1,backgroundColor:"transparent"},[`&${r}-circle ${r}-text`]:{position:"absolute",insetBlockStart:"50%",insetInlineStart:0,width:"100%",margin:0,padding:0,color:e.circleTextColor,fontSize:e.circleTextFontSize,lineHeight:1,whiteSpace:"normal",textAlign:"center",transform:"translateY(-50%)",[t]:{fontSize:e.circleIconFontSize}},[`${r}-circle&-status-exception`]:{[`${r}-text`]:{color:e.colorError}},[`${r}-circle&-status-success`]:{[`${r}-text`]:{color:e.colorSuccess}}},[`${r}-inline-circle`]:{lineHeight:1,[`${r}-inner`]:{verticalAlign:"bottom"}}}})(t),(e=>{let{componentCls:r}=e;return{[r]:{[`${r}-steps`]:{display:"inline-block","&-outer":{display:"flex",flexDirection:"row",alignItems:"center"},"&-item":{flexShrink:0,minWidth:e.progressStepMinWidth,marginInlineEnd:e.progressStepMarginInlineEnd,backgroundColor:e.remainingColor,transition:`all ${e.motionDurationSlow}`,"&-active":{backgroundColor:e.defaultColor}}}}}})(t),(e=>{let{componentCls:r,iconCls:t}=e;return{[r]:{[`${r}-small&-line, ${r}-small&-line ${r}-text ${t}`]:{fontSize:e.fontSizeSM}}}})(t)]},e=>({circleTextColor:e.colorText,defaultColor:e.colorInfo,remainingColor:e.colorFillSecondary,lineBorderRadius:100,circleTextFontSize:"1em",circleIconFontSize:`${e.fontSize/e.fontSizeSM}em`}));var X=function(e,r){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>r.indexOf(o)&&(t[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,o=Object.getOwnPropertySymbols(e);ar.indexOf(o[a])&&Object.prototype.propertyIsEnumerable.call(e,o[a])&&(t[o[a]]=e[o[a]]);return t};let F=e=>{let{prefixCls:t,direction:o,percent:a,size:n,strokeWidth:i,strokeColor:s,strokeLinecap:c="round",children:d,trailColor:u=null,percentPosition:g,success:m}=e,{align:p,type:f}=g,h=s&&"string"!=typeof s?((e,r)=>{let{from:t=T.presetPrimaryColors.blue,to:o=T.presetPrimaryColors.blue,direction:a="rtl"===r?"to left":"to right"}=e,n=X(e,["from","to","direction"]);if(0!==Object.keys(n).length){let e,r=(e=[],Object.keys(n).forEach(r=>{let t=Number.parseFloat(r.replace(/%/g,""));Number.isNaN(t)||e.push({key:t,value:n[r]})}),(e=e.sort((e,r)=>e.key-r.key)).map(({key:e,value:r})=>`${r} ${e}%`).join(", ")),t=`linear-gradient(${a}, ${r})`;return{background:t,[z]:t}}let i=`linear-gradient(${a}, ${t}, ${o})`;return{background:i,[z]:i}})(s,o):{[z]:s,background:s},b="square"===c||"butt"===c?0:void 0,[v,C]=S(null!=n?n:[-1,i||("small"===n?6:8)],"line",{strokeWidth:i}),A=Object.assign(Object.assign({width:`${_(a)}%`,height:C,borderRadius:b},h),{[B]:_(a)/100}),k=N(e),x={width:`${_(k)}%`,height:C,borderRadius:b,backgroundColor:null==m?void 0:m.strokeColor},I=r.createElement("div",{className:`${t}-inner`,style:{backgroundColor:u||void 0,borderRadius:b}},r.createElement("div",{className:(0,l.default)(`${t}-bg`,`${t}-bg-${f}`),style:A},"inner"===f&&d),void 0!==k&&r.createElement("div",{className:`${t}-success-bg`,style:x})),w="outer"===f&&"start"===p,y="outer"===f&&"end"===p;return"outer"===f&&"center"===p?r.createElement("div",{className:`${t}-layout-bottom`},I,d):r.createElement("div",{className:`${t}-outer`,style:{width:v<0?"100%":v}},w&&d,I,y&&d)},V=e=>{let{size:t,steps:o,rounding:a=Math.round,percent:n=0,strokeWidth:i=8,strokeColor:s,trailColor:c=null,prefixCls:d,children:u}=e,g=a(n/100*o),[m,p]=S(null!=t?t:["small"===t?2:14,i],"step",{steps:o,strokeWidth:i}),f=m/o,h=Array.from({length:o});for(let e=0;er.indexOf(o)&&(t[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,o=Object.getOwnPropertySymbols(e);ar.indexOf(o[a])&&Object.prototype.propertyIsEnumerable.call(e,o[a])&&(t[o[a]]=e[o[a]]);return t};let U=["normal","exception","active","success"],Y=r.forwardRef((e,d)=>{let u,{prefixCls:g,className:m,rootClassName:p,steps:f,strokeColor:h,percent:b=0,size:v="default",showInfo:C=!0,type:A="line",status:k,format:x,style:I,percentPosition:w={}}=e,y=G(e,["prefixCls","className","rootClassName","steps","strokeColor","percent","size","showInfo","type","status","format","style","percentPosition"]),{align:E="end",type:O="outer"}=w,$=Array.isArray(h)?h[0]:h,T="string"==typeof h||Array.isArray(h)?h:void 0,M=r.useMemo(()=>{if($){let e="string"==typeof $?$:Object.values($)[0];return new t.FastColor(e).isLight()}return!1},[h]),P=r.useMemo(()=>{var r,t;let o=N(e);return Number.parseInt(void 0!==o?null==(r=null!=o?o:0)?void 0:r.toString():null==(t=null!=b?b:0)?void 0:t.toString(),10)},[b,e.success,e.successPercent]),R=r.useMemo(()=>!U.includes(k)&&P>=100?"success":k||"normal",[k,P]),{getPrefixCls:j,direction:D,progress:z}=r.useContext(c.ConfigContext),B=j("progress",g),[H,X,Y]=W(B),K="line"===A,Z=K&&!f,q=r.useMemo(()=>{let t;if(!C)return null;let s=N(e),c=x||(e=>`${e}%`),d=K&&M&&"inner"===O;return"inner"===O||x||"exception"!==R&&"success"!==R?t=c(_(b),_(s)):"exception"===R?t=K?r.createElement(n.default,null):r.createElement(i.default,null):"success"===R&&(t=K?r.createElement(o.default,null):r.createElement(a.default,null)),r.createElement("span",{className:(0,l.default)(`${B}-text`,{[`${B}-text-bright`]:d,[`${B}-text-${E}`]:Z,[`${B}-text-${O}`]:Z}),title:"string"==typeof t?t:void 0},t)},[C,b,P,R,A,B,x]);"line"===A?u=f?r.createElement(V,Object.assign({},e,{strokeColor:T,prefixCls:B,steps:"object"==typeof f?f.count:f}),q):r.createElement(F,Object.assign({},e,{strokeColor:$,prefixCls:B,direction:D,percentPosition:{align:E,type:O}}),q):("circle"===A||"dashboard"===A)&&(u=r.createElement(L,Object.assign({},e,{strokeColor:$,prefixCls:B,progressStatus:R}),q));let J=(0,l.default)(B,`${B}-status-${R}`,{[`${B}-${"dashboard"===A&&"circle"||A}`]:"line"!==A,[`${B}-inline-circle`]:"circle"===A&&S(v,"circle")[0]<=20,[`${B}-line`]:Z,[`${B}-line-align-${E}`]:Z,[`${B}-line-position-${O}`]:Z,[`${B}-steps`]:f,[`${B}-show-info`]:C,[`${B}-${v}`]:"string"==typeof v,[`${B}-rtl`]:"rtl"===D},null==z?void 0:z.className,m,p,X,Y);return H(r.createElement("div",Object.assign({ref:d,style:Object.assign(Object.assign({},null==z?void 0:z.style),I),className:J,role:"progressbar","aria-valuenow":P,"aria-valuemin":0,"aria-valuemax":100},(0,s.default)(y,["trailColor","strokeWidth","width","gapDegree","gapPosition","strokeLinecap","success","successPercent"])),u))});e.s(["default",0,Y],309821)},240647,e=>{"use strict";var r=e.i(286612);e.s(["RightOutlined",()=>r.default])},68155,e=>{"use strict";var r=e.i(271645);let t=r.forwardRef(function(e,t){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"}))});e.s(["TrashIcon",0,t],68155)},871943,e=>{"use strict";var r=e.i(271645);let t=r.forwardRef(function(e,t){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"}))});e.s(["ChevronDownIcon",0,t],871943)},360820,e=>{"use strict";var r=e.i(271645);let t=r.forwardRef(function(e,t){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"}))});e.s(["ChevronUpIcon",0,t],360820)},278587,e=>{"use strict";var r=e.i(271645);let t=r.forwardRef(function(e,t){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"}))});e.s(["RefreshIcon",0,t],278587)},207670,e=>{"use strict";function r(){for(var e,r,t=0,o="",a=arguments.length;t{"use strict";var r=e.i(290571),t=e.i(271645),o=e.i(829087),a=e.i(480731),n=e.i(444755),i=e.i(673706),l=e.i(95779);let s={xs:{paddingX:"px-1.5",paddingY:"py-1.5"},sm:{paddingX:"px-1.5",paddingY:"py-1.5"},md:{paddingX:"px-2",paddingY:"py-2"},lg:{paddingX:"px-2",paddingY:"py-2"},xl:{paddingX:"px-2.5",paddingY:"py-2.5"}},c={xs:{height:"h-3",width:"w-3"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-7",width:"w-7"},xl:{height:"h-9",width:"w-9"}},d={simple:{rounded:"",border:"",ring:"",shadow:""},light:{rounded:"rounded-tremor-default",border:"",ring:"",shadow:""},shadow:{rounded:"rounded-tremor-default",border:"border",ring:"",shadow:"shadow-tremor-card dark:shadow-dark-tremor-card"},solid:{rounded:"rounded-tremor-default",border:"border-2",ring:"ring-1",shadow:""},outlined:{rounded:"rounded-tremor-default",border:"border",ring:"ring-2",shadow:""}},u=(0,i.makeClassName)("Icon"),g=t.default.forwardRef((e,g)=>{let{icon:m,variant:p="simple",tooltip:f,size:h=a.Sizes.SM,color:b,className:v}=e,C=(0,r.__rest)(e,["icon","variant","tooltip","size","color","className"]),A=((e,r)=>{switch(e){case"simple":return{textColor:r?(0,i.getColorClassNames)(r,l.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:"",borderColor:"",ringColor:""};case"light":return{textColor:r?(0,i.getColorClassNames)(r,l.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:r?(0,n.tremorTwMerge)((0,i.getColorClassNames)(r,l.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand-muted dark:bg-dark-tremor-brand-muted",borderColor:"",ringColor:""};case"shadow":return{textColor:r?(0,i.getColorClassNames)(r,l.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:r?(0,n.tremorTwMerge)((0,i.getColorClassNames)(r,l.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:"border-tremor-border dark:border-dark-tremor-border",ringColor:""};case"solid":return{textColor:r?(0,i.getColorClassNames)(r,l.colorPalette.text).textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:r?(0,n.tremorTwMerge)((0,i.getColorClassNames)(r,l.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand dark:bg-dark-tremor-brand",borderColor:"border-tremor-brand-inverted dark:border-dark-tremor-brand-inverted",ringColor:"ring-tremor-ring dark:ring-dark-tremor-ring"};case"outlined":return{textColor:r?(0,i.getColorClassNames)(r,l.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:r?(0,n.tremorTwMerge)((0,i.getColorClassNames)(r,l.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:r?(0,i.getColorClassNames)(r,l.colorPalette.ring).borderColor:"border-tremor-brand-subtle dark:border-dark-tremor-brand-subtle",ringColor:r?(0,n.tremorTwMerge)((0,i.getColorClassNames)(r,l.colorPalette.ring).ringColor,"ring-opacity-40"):"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"}}})(p,b),{tooltipProps:k,getReferenceProps:x}=(0,o.useTooltip)();return t.default.createElement("span",Object.assign({ref:(0,i.mergeRefs)([g,k.refs.setReference]),className:(0,n.tremorTwMerge)(u("root"),"inline-flex shrink-0 items-center justify-center",A.bgColor,A.textColor,A.borderColor,A.ringColor,d[p].rounded,d[p].border,d[p].shadow,d[p].ring,s[h].paddingX,s[h].paddingY,v)},x,C),t.default.createElement(o.default,Object.assign({text:f},k)),t.default.createElement(m,{className:(0,n.tremorTwMerge)(u("icon"),"shrink-0",c[h].height,c[h].width)}))});g.displayName="Icon",e.s(["default",0,g],728889)},752978,e=>{"use strict";var r=e.i(728889);e.s(["Icon",()=>r.default])},591935,e=>{"use strict";var r=e.i(271645);let t=r.forwardRef(function(e,t){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"}))});e.s(["PencilAltIcon",0,t],591935)},434626,e=>{"use strict";var r=e.i(271645);let t=r.forwardRef(function(e,t){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"}))});e.s(["ExternalLinkIcon",0,t],434626)},551332,e=>{"use strict";var r=e.i(271645);let t=r.forwardRef(function(e,t){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3"}))});e.s(["ClipboardCopyIcon",0,t],551332)},122577,e=>{"use strict";var r=e.i(271645);let t=r.forwardRef(function(e,t){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z"}),r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["PlayIcon",0,t],122577)},902555,e=>{"use strict";var r=e.i(843476),t=e.i(591935),o=e.i(122577),a=e.i(278587),n=e.i(68155),i=e.i(360820),l=e.i(871943),s=e.i(434626),c=e.i(551332),d=e.i(592968),u=e.i(115504),g=e.i(752978);function m({icon:e,onClick:t,className:o,disabled:a,dataTestId:n}){return a?(0,r.jsx)(g.Icon,{icon:e,size:"sm",className:"opacity-50 cursor-not-allowed","data-testid":n}):(0,r.jsx)(g.Icon,{icon:e,size:"sm",onClick:t,className:(0,u.cx)("cursor-pointer",o),"data-testid":n})}let p={Edit:{icon:t.PencilAltIcon,className:"hover:text-blue-600"},Delete:{icon:n.TrashIcon,className:"hover:text-red-600"},Test:{icon:o.PlayIcon,className:"hover:text-blue-600"},Regenerate:{icon:a.RefreshIcon,className:"hover:text-green-600"},Up:{icon:i.ChevronUpIcon,className:"hover:text-blue-600"},Down:{icon:l.ChevronDownIcon,className:"hover:text-blue-600"},Open:{icon:s.ExternalLinkIcon,className:"hover:text-green-600"},Copy:{icon:c.ClipboardCopyIcon,className:"hover:text-blue-600"}};e.s(["default",0,function({onClick:e,tooltipText:t,disabled:o=!1,disabledTooltipText:a,dataTestId:n,variant:i}){let{icon:l,className:s}=p[i];return(0,r.jsx)(d.Tooltip,{title:o?a:t,children:(0,r.jsx)("span",{children:(0,r.jsx)(m,{icon:l,onClick:e,className:s,disabled:o,dataTestId:n})})})}],902555)},84899,e=>{"use strict";e.i(247167);var r=e.i(931067),t=e.i(271645),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M931.4 498.9L94.9 79.5c-3.4-1.7-7.3-2.1-11-1.2a15.99 15.99 0 00-11.7 19.3l86.2 352.2c1.3 5.3 5.2 9.6 10.4 11.3l147.7 50.7-147.6 50.7c-5.2 1.8-9.1 6-10.3 11.3L72.2 926.5c-.9 3.7-.5 7.6 1.2 10.9 3.9 7.9 13.5 11.1 21.5 7.2l836.5-417c3.1-1.5 5.6-4.1 7.2-7.1 3.9-8 .7-17.6-7.2-21.6zM170.8 826.3l50.3-205.6 295.2-101.3c2.3-.8 4.2-2.6 5-5 1.4-4.2-.8-8.7-5-10.2L221.1 403 171 198.2l628 314.9-628.2 313.2z"}}]},name:"send",theme:"outlined"},a=e.i(9583),n=t.forwardRef(function(e,n){return t.createElement(a.default,(0,r.default)({},e,{ref:n,icon:o}))});e.s(["SendOutlined",0,n],84899)},800944,e=>{"use strict";var r=e.i(843476),t=e.i(241902),o=e.i(135214);e.s(["default",0,()=>{let{accessToken:e,userId:a,userRole:n}=(0,o.default)();return(0,r.jsx)(t.default,{accessToken:e,userID:a,userRole:n})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0ar6956xz0njn.js b/litellm/proxy/_experimental/out/_next/static/chunks/0_0ll_gosf9qi.js similarity index 54% rename from litellm/proxy/_experimental/out/_next/static/chunks/0ar6956xz0njn.js rename to litellm/proxy/_experimental/out/_next/static/chunks/0_0ll_gosf9qi.js index be67a4d82b7..9277ed5cb25 100644 --- a/litellm/proxy/_experimental/out/_next/static/chunks/0ar6956xz0njn.js +++ b/litellm/proxy/_experimental/out/_next/static/chunks/0_0ll_gosf9qi.js @@ -1 +1 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,728889,e=>{"use strict";var t=e.i(290571),r=e.i(271645),l=e.i(829087),a=e.i(480731),s=e.i(444755),i=e.i(673706),n=e.i(95779);let o={xs:{paddingX:"px-1.5",paddingY:"py-1.5"},sm:{paddingX:"px-1.5",paddingY:"py-1.5"},md:{paddingX:"px-2",paddingY:"py-2"},lg:{paddingX:"px-2",paddingY:"py-2"},xl:{paddingX:"px-2.5",paddingY:"py-2.5"}},d={xs:{height:"h-3",width:"w-3"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-7",width:"w-7"},xl:{height:"h-9",width:"w-9"}},m={simple:{rounded:"",border:"",ring:"",shadow:""},light:{rounded:"rounded-tremor-default",border:"",ring:"",shadow:""},shadow:{rounded:"rounded-tremor-default",border:"border",ring:"",shadow:"shadow-tremor-card dark:shadow-dark-tremor-card"},solid:{rounded:"rounded-tremor-default",border:"border-2",ring:"ring-1",shadow:""},outlined:{rounded:"rounded-tremor-default",border:"border",ring:"ring-2",shadow:""}},c=(0,i.makeClassName)("Icon"),u=r.default.forwardRef((e,u)=>{let{icon:h,variant:g="simple",tooltip:p,size:x=a.Sizes.SM,color:b,className:_}=e,f=(0,t.__rest)(e,["icon","variant","tooltip","size","color","className"]),y=((e,t)=>{switch(e){case"simple":return{textColor:t?(0,i.getColorClassNames)(t,n.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:"",borderColor:"",ringColor:""};case"light":return{textColor:t?(0,i.getColorClassNames)(t,n.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,s.tremorTwMerge)((0,i.getColorClassNames)(t,n.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand-muted dark:bg-dark-tremor-brand-muted",borderColor:"",ringColor:""};case"shadow":return{textColor:t?(0,i.getColorClassNames)(t,n.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,s.tremorTwMerge)((0,i.getColorClassNames)(t,n.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:"border-tremor-border dark:border-dark-tremor-border",ringColor:""};case"solid":return{textColor:t?(0,i.getColorClassNames)(t,n.colorPalette.text).textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,s.tremorTwMerge)((0,i.getColorClassNames)(t,n.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand dark:bg-dark-tremor-brand",borderColor:"border-tremor-brand-inverted dark:border-dark-tremor-brand-inverted",ringColor:"ring-tremor-ring dark:ring-dark-tremor-ring"};case"outlined":return{textColor:t?(0,i.getColorClassNames)(t,n.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,s.tremorTwMerge)((0,i.getColorClassNames)(t,n.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:t?(0,i.getColorClassNames)(t,n.colorPalette.ring).borderColor:"border-tremor-brand-subtle dark:border-dark-tremor-brand-subtle",ringColor:t?(0,s.tremorTwMerge)((0,i.getColorClassNames)(t,n.colorPalette.ring).ringColor,"ring-opacity-40"):"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"}}})(g,b),{tooltipProps:j,getReferenceProps:v}=(0,l.useTooltip)();return r.default.createElement("span",Object.assign({ref:(0,i.mergeRefs)([u,j.refs.setReference]),className:(0,s.tremorTwMerge)(c("root"),"inline-flex shrink-0 items-center justify-center",y.bgColor,y.textColor,y.borderColor,y.ringColor,m[g].rounded,m[g].border,m[g].shadow,m[g].ring,o[x].paddingX,o[x].paddingY,_)},v,f),r.default.createElement(l.default,Object.assign({text:p},j)),r.default.createElement(h,{className:(0,s.tremorTwMerge)(c("icon"),"shrink-0",d[x].height,d[x].width)}))});u.displayName="Icon",e.s(["default",0,u],728889)},752978,e=>{"use strict";var t=e.i(728889);e.s(["Icon",()=>t.default])},591935,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"}))});e.s(["PencilAltIcon",0,r],591935)},434626,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"}))});e.s(["ExternalLinkIcon",0,r],434626)},122577,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z"}),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["PlayIcon",0,r],122577)},551332,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3"}))});e.s(["ClipboardCopyIcon",0,r],551332)},902555,e=>{"use strict";var t=e.i(843476),r=e.i(591935),l=e.i(122577),a=e.i(278587),s=e.i(68155),i=e.i(360820),n=e.i(871943),o=e.i(434626),d=e.i(551332),m=e.i(592968),c=e.i(115504),u=e.i(752978);function h({icon:e,onClick:r,className:l,disabled:a,dataTestId:s}){return a?(0,t.jsx)(u.Icon,{icon:e,size:"sm",className:"opacity-50 cursor-not-allowed","data-testid":s}):(0,t.jsx)(u.Icon,{icon:e,size:"sm",onClick:r,className:(0,c.cx)("cursor-pointer",l),"data-testid":s})}let g={Edit:{icon:r.PencilAltIcon,className:"hover:text-blue-600"},Delete:{icon:s.TrashIcon,className:"hover:text-red-600"},Test:{icon:l.PlayIcon,className:"hover:text-blue-600"},Regenerate:{icon:a.RefreshIcon,className:"hover:text-green-600"},Up:{icon:i.ChevronUpIcon,className:"hover:text-blue-600"},Down:{icon:n.ChevronDownIcon,className:"hover:text-blue-600"},Open:{icon:o.ExternalLinkIcon,className:"hover:text-green-600"},Copy:{icon:d.ClipboardCopyIcon,className:"hover:text-blue-600"}};e.s(["default",0,function({onClick:e,tooltipText:r,disabled:l=!1,disabledTooltipText:a,dataTestId:s,variant:i}){let{icon:n,className:o}=g[i];return(0,t.jsx)(m.Tooltip,{title:l?a:r,children:(0,t.jsx)("span",{children:(0,t.jsx)(h,{icon:n,onClick:e,className:o,disabled:l,dataTestId:s})})})}],902555)},907308,e=>{"use strict";var t=e.i(843476),r=e.i(271645),l=e.i(212931),a=e.i(808613),s=e.i(464571),i=e.i(199133),n=e.i(592968),o=e.i(213205),d=e.i(374009),m=e.i(764205);e.s(["default",0,({isVisible:e,onCancel:c,onSubmit:u,accessToken:h,title:g="Add Team Member",roles:p=[{label:"admin",value:"admin",description:"Admin role. Can create team keys, add members, and manage settings."},{label:"user",value:"user",description:"User role. Can view team info, but not manage it."}],defaultRole:x="user",teamId:b})=>{let[_]=a.Form.useForm(),[f,y]=(0,r.useState)([]),[j,v]=(0,r.useState)(!1),[w,S]=(0,r.useState)("user_email"),[T,C]=(0,r.useState)(!1),N=async(e,t)=>{if(!e)return void y([]);v(!0);try{let r=new URLSearchParams;if(r.append(t,e),b&&r.append("team_id",b),null==h)return;let l=(await (0,m.userFilterUICall)(h,r)).map(e=>({label:"user_email"===t?`${e.user_email}`:`${e.user_id}`,value:"user_email"===t?e.user_email:e.user_id,user:e}));y(l)}catch(e){console.error("Error fetching users:",e)}finally{v(!1)}},k=(0,r.useCallback)((0,d.default)((e,t)=>N(e,t),300),[]),M=(e,t)=>{S(t),k(e,t)},I=(e,t)=>{let r=t.user;_.setFieldsValue({user_email:r.user_email,user_id:r.user_id,role:_.getFieldValue("role")})},O=async e=>{C(!0);try{await u(e)}finally{C(!1)}};return(0,t.jsx)(l.Modal,{title:g,open:e,onCancel:()=>{_.resetFields(),y([]),c()},footer:null,width:800,maskClosable:!T,children:(0,t.jsxs)(a.Form,{form:_,onFinish:O,labelCol:{span:8},wrapperCol:{span:16},labelAlign:"left",initialValues:{role:x},children:[(0,t.jsx)(a.Form.Item,{label:"Email",name:"user_email",className:"mb-4",children:(0,t.jsx)(i.Select,{showSearch:!0,className:"w-full",placeholder:"Search by email",filterOption:!1,onSearch:e=>M(e,"user_email"),onSelect:(e,t)=>I(e,t),options:"user_email"===w?f:[],loading:j,allowClear:!0,"data-testid":"member-email-search"})}),(0,t.jsx)("div",{className:"text-center mb-4",children:"OR"}),(0,t.jsx)(a.Form.Item,{label:"User ID",name:"user_id",className:"mb-4",children:(0,t.jsx)(i.Select,{showSearch:!0,className:"w-full",placeholder:"Search by user ID",filterOption:!1,onSearch:e=>M(e,"user_id"),onSelect:(e,t)=>I(e,t),options:"user_id"===w?f:[],loading:j,allowClear:!0})}),(0,t.jsx)(a.Form.Item,{label:"Member Role",name:"role",className:"mb-4",children:(0,t.jsx)(i.Select,{defaultValue:x,children:p.map(e=>(0,t.jsx)(i.Select.Option,{value:e.value,children:(0,t.jsxs)(n.Tooltip,{title:e.description,children:[(0,t.jsx)("span",{className:"font-medium",children:e.label}),(0,t.jsxs)("span",{className:"ml-2 text-gray-500 text-sm",children:["- ",e.description]})]})},e.value))})}),(0,t.jsx)("div",{className:"text-right mt-4",children:(0,t.jsx)(s.Button,{type:"primary",htmlType:"submit",icon:(0,t.jsx)(o.UserAddOutlined,{}),loading:T,children:T?"Adding...":"Add Member"})})]})})}])},162386,e=>{"use strict";var t=e.i(843476),r=e.i(625901),l=e.i(109799),a=e.i(785242),s=e.i(738014),i=e.i(199133),n=e.i(981339),o=e.i(592968);let d={label:"All Proxy Models",value:"all-proxy-models"},m={label:"No Default Models",value:"no-default-models"},c=[d,m],u={user:({allProxyModels:e,userModels:t,options:r})=>t&&r?.includeUserModels?t:[],team:({allProxyModels:e,selectedOrganization:t,userModels:r})=>t?t.models.includes(d.value)||0===t.models.length?e:e.filter(e=>t.models.includes(e)):e??[],organization:({allProxyModels:e})=>e,global:({allProxyModels:e})=>e};e.s(["ModelSelect",0,e=>{let{teamID:h,organizationID:g,options:p,context:x,dataTestId:b,value:_=[],onChange:f,style:y}=e,{includeUserModels:j,showAllTeamModelsOption:v,showAllProxyModelsOverride:w,includeSpecialOptions:S}=p||{},{data:T,isLoading:C}=(0,r.useAllProxyModels)(),{data:N,isLoading:k}=(0,a.useTeam)(h),{data:M,isLoading:I}=(0,l.useOrganization)(g),{data:O,isLoading:z}=(0,s.useCurrentUser)(),A=e=>c.some(t=>t.value===e),D=_.some(A),F=M?.models.includes(d.value)||M?.models.length===0;if(C||k||I||z)return(0,t.jsx)(n.Skeleton.Input,{active:!0,block:!0});let{wildcard:$,regular:P}=(e=>{let t=[],r=[];for(let l of e)l.endsWith("/*")?t.push(l):r.push(l);return{wildcard:t,regular:r}})(((e,t,r)=>{let l=Array.from(new Map(e.map(e=>[e.id,e])).values()).map(e=>e.id);if(t.options?.showAllProxyModelsOverride)return l;let a=u[t.context];return a?a({allProxyModels:l,...r,options:t.options}):[]})(T?.data??[],e,{selectedTeam:N,selectedOrganization:M,userModels:O?.models}));return(0,t.jsx)(i.Select,{"data-testid":b,value:_,onChange:e=>{let t=e.filter(A);f(t.length>0?[t[t.length-1]]:e)},style:y,options:[...S?[{label:(0,t.jsx)("span",{children:"Special Options"}),title:"Special Options",options:[...w||F&&S||"global"===x?[{label:(0,t.jsx)("span",{children:"All Proxy Models"}),value:d.value,disabled:_.length>0&&_.some(e=>A(e)&&e!==d.value),key:d.value}]:[],{label:(0,t.jsx)("span",{children:"No Default Models"}),value:m.value,disabled:_.length>0&&_.some(e=>A(e)&&e!==m.value),key:m.value}]}]:[],...$.length>0?[{label:(0,t.jsx)("span",{children:"Wildcard Options"}),title:"Wildcard Options",options:$.map(e=>{let r=e.replace("/*",""),l=r.charAt(0).toUpperCase()+r.slice(1);return{label:(0,t.jsx)("span",{children:`All ${l} models`}),value:e,disabled:D}})}]:[],{label:(0,t.jsx)("span",{children:"Models"}),title:"Models",options:P.map(e=>({label:(0,t.jsx)("span",{children:e}),value:e,disabled:D}))}],mode:"multiple",placeholder:"Select Models",allowClear:!0,maxTagCount:"responsive",maxTagPlaceholder:e=>(0,t.jsx)(o.Tooltip,{styles:{root:{pointerEvents:"none"}},title:e.map(({value:e})=>e).join(", "),children:(0,t.jsxs)("span",{children:["+",e.length," more"]})})})}],162386)},276173,e=>{"use strict";var t=e.i(843476),r=e.i(599724),l=e.i(779241),a=e.i(464571),s=e.i(808613),i=e.i(212931),n=e.i(199133),o=e.i(271645),d=e.i(435451);e.s(["default",0,({visible:e,onCancel:m,onSubmit:c,initialData:u,mode:h,config:g})=>{let p,[x]=s.Form.useForm(),[b,_]=(0,o.useState)(!1);console.log("Initial Data:",u),(0,o.useEffect)(()=>{if(e)if("edit"===h&&u){let e={...u,role:u.role||g.defaultRole,max_budget_in_team:u.max_budget_in_team||null,tpm_limit:u.tpm_limit||null,rpm_limit:u.rpm_limit||null,allowed_models:u.allowed_models||[]};console.log("Setting form values:",e),x.setFieldsValue(e)}else x.resetFields(),x.setFieldsValue({role:g.defaultRole||g.roleOptions[0]?.value})},[e,u,h,x,g.defaultRole,g.roleOptions]);let f=async e=>{try{_(!0);let t=Object.entries(e).reduce((e,[t,r])=>{if("string"==typeof r){let l=r.trim();return""===l&&("max_budget_in_team"===t||"tpm_limit"===t||"rpm_limit"===t)?{...e,[t]:null}:{...e,[t]:l}}return{...e,[t]:r}},{});console.log("Submitting form data:",t),await Promise.resolve(c(t)),x.resetFields()}catch(e){console.error("Form submission error:",e)}finally{_(!1)}};return(0,t.jsx)(i.Modal,{title:g.title||("add"===h?"Add Member":"Edit Member"),open:e,width:1e3,footer:null,onCancel:m,children:(0,t.jsxs)(s.Form,{form:x,onFinish:f,labelCol:{span:8},wrapperCol:{span:16},labelAlign:"left",children:[g.showEmail&&(0,t.jsx)(s.Form.Item,{label:"Email",name:"user_email",className:"mb-4",rules:[{type:"email",message:"Please enter a valid email!"}],children:(0,t.jsx)(l.TextInput,{placeholder:"user@example.com"})}),g.showEmail&&g.showUserId&&(0,t.jsx)("div",{className:"text-center mb-4",children:(0,t.jsx)(r.Text,{children:"OR"})}),g.showUserId&&(0,t.jsx)(s.Form.Item,{label:"User ID",name:"user_id",className:"mb-4",children:(0,t.jsx)(l.TextInput,{placeholder:"user_123"})}),(0,t.jsx)(s.Form.Item,{label:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{children:"Role"}),"edit"===h&&u&&(0,t.jsxs)("span",{className:"text-gray-500 text-sm",children:["(Current: ",(p=u.role,g.roleOptions.find(e=>e.value===p)?.label||p),")"]})]}),name:"role",className:"mb-4",rules:[{required:!0,message:"Please select a role!"}],children:(0,t.jsx)(n.Select,{children:"edit"===h&&u?[...g.roleOptions.filter(e=>e.value===u.role),...g.roleOptions.filter(e=>e.value!==u.role)].map(e=>(0,t.jsx)(n.Select.Option,{value:e.value,children:e.label},e.value)):g.roleOptions.map(e=>(0,t.jsx)(n.Select.Option,{value:e.value,children:e.label},e.value))})}),g.additionalFields?.map(e=>(0,t.jsx)(s.Form.Item,{label:e.label,name:e.name,className:"mb-4",rules:e.rules,children:(e=>{switch(e.type){case"input":return(0,t.jsx)(l.TextInput,{placeholder:e.placeholder});case"numerical":return(0,t.jsx)(d.default,{step:e.step||1,min:e.min||0,style:{width:"100%"},placeholder:e.placeholder||"Enter a numerical value"});case"select":return(0,t.jsx)(n.Select,{children:e.options?.map(e=>(0,t.jsx)(n.Select.Option,{value:e.value,children:e.label},e.value))});case"multi-select":return(0,t.jsx)(n.Select,{mode:"multiple",placeholder:e.placeholder||"Select options",options:e.options,allowClear:!0});default:return null}})(e)},e.name)),(0,t.jsxs)("div",{className:"text-right mt-6",children:[(0,t.jsx)(a.Button,{onClick:m,className:"mr-2",disabled:b,children:"Cancel"}),(0,t.jsx)(a.Button,{type:"default",htmlType:"submit",loading:b,children:"add"===h?b?"Adding...":"Add Member":b?"Saving...":"Save Changes"})]})]})})}])},294612,e=>{"use strict";var t=e.i(843476),r=e.i(100486),l=e.i(827252),a=e.i(213205),s=e.i(771674),i=e.i(464571),n=e.i(770914),o=e.i(291542),d=e.i(262218),m=e.i(592968),c=e.i(898586),u=e.i(902555);let{Text:h}=c.Typography;e.s(["default",0,function({members:e,canEdit:c,onEdit:g,onDelete:p,onAddMember:x,roleColumnTitle:b="Role",roleTooltip:_,extraColumns:f=[],showDeleteForMember:y,emptyText:j}){let v=[{title:"User Email",dataIndex:"user_email",key:"user_email",render:e=>(0,t.jsx)(h,{children:e||"-"})},{title:"User ID",dataIndex:"user_id",key:"user_id",render:e=>"default_user_id"===e?(0,t.jsx)(d.Tag,{color:"blue",children:"Default Proxy Admin"}):(0,t.jsx)(h,{children:e||"-"})},{title:_?(0,t.jsxs)(n.Space,{direction:"horizontal",children:[b,(0,t.jsx)(m.Tooltip,{title:_,children:(0,t.jsx)(l.InfoCircleOutlined,{})})]}):b,dataIndex:"role",key:"role",render:e=>(0,t.jsxs)(n.Space,{children:[e?.toLowerCase()==="admin"||e?.toLowerCase()==="org_admin"?(0,t.jsx)(r.CrownOutlined,{}):(0,t.jsx)(s.UserOutlined,{}),(0,t.jsx)(h,{style:{textTransform:"capitalize"},children:e||"-"})]})},...f,{title:"Actions",key:"actions",fixed:"right",width:120,render:(e,r)=>c?(0,t.jsxs)(n.Space,{children:[(0,t.jsx)(u.default,{variant:"Edit",tooltipText:"Edit member",dataTestId:"edit-member",onClick:()=>g(r)}),(!y||y(r))&&(0,t.jsx)(u.default,{variant:"Delete",tooltipText:"Delete member",dataTestId:"delete-member",onClick:()=>p(r)})]}):null}];return(0,t.jsxs)(n.Space,{direction:"vertical",style:{width:"100%"},children:[(0,t.jsxs)("span",{className:"inline-flex text-sm text-gray-700",children:[e.length," Member",1!==e.length?"s":""]}),(0,t.jsx)(o.Table,{columns:v,dataSource:e,rowKey:e=>e.user_id??e.user_email??JSON.stringify(e),pagination:!1,size:"small",scroll:{x:"max-content"},locale:j?{emptyText:j}:void 0}),x&&c&&(0,t.jsx)(i.Button,{icon:(0,t.jsx)(a.UserAddOutlined,{}),type:"primary",onClick:x,children:"Add Member"})]})}])},160818,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let l={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.4 800.9c.2-.3.5-.6.7-.9C920.6 722.1 960 621.7 960 512s-39.4-210.1-104.8-288c-.2-.3-.5-.5-.7-.8-1.1-1.3-2.1-2.5-3.2-3.7-.4-.5-.8-.9-1.2-1.4l-4.1-4.7-.1-.1c-1.5-1.7-3.1-3.4-4.6-5.1l-.1-.1c-3.2-3.4-6.4-6.8-9.7-10.1l-.1-.1-4.8-4.8-.3-.3c-1.5-1.5-3-2.9-4.5-4.3-.5-.5-1-1-1.6-1.5-1-1-2-1.9-3-2.8-.3-.3-.7-.6-1-1C736.4 109.2 629.5 64 512 64s-224.4 45.2-304.3 119.2c-.3.3-.7.6-1 1-1 .9-2 1.9-3 2.9-.5.5-1 1-1.6 1.5-1.5 1.4-3 2.9-4.5 4.3l-.3.3-4.8 4.8-.1.1c-3.3 3.3-6.5 6.7-9.7 10.1l-.1.1c-1.6 1.7-3.1 3.4-4.6 5.1l-.1.1c-1.4 1.5-2.8 3.1-4.1 4.7-.4.5-.8.9-1.2 1.4-1.1 1.2-2.1 2.5-3.2 3.7-.2.3-.5.5-.7.8C103.4 301.9 64 402.3 64 512s39.4 210.1 104.8 288c.2.3.5.6.7.9l3.1 3.7c.4.5.8.9 1.2 1.4l4.1 4.7c0 .1.1.1.1.2 1.5 1.7 3 3.4 4.6 5l.1.1c3.2 3.4 6.4 6.8 9.6 10.1l.1.1c1.6 1.6 3.1 3.2 4.7 4.7l.3.3c3.3 3.3 6.7 6.5 10.1 9.6 80.1 74 187 119.2 304.5 119.2s224.4-45.2 304.3-119.2a300 300 0 0010-9.6l.3-.3c1.6-1.6 3.2-3.1 4.7-4.7l.1-.1c3.3-3.3 6.5-6.7 9.6-10.1l.1-.1c1.5-1.7 3.1-3.3 4.6-5 0-.1.1-.1.1-.2 1.4-1.5 2.8-3.1 4.1-4.7.4-.5.8-.9 1.2-1.4a99 99 0 003.3-3.7zm4.1-142.6c-13.8 32.6-32 62.8-54.2 90.2a444.07 444.07 0 00-81.5-55.9c11.6-46.9 18.8-98.4 20.7-152.6H887c-3 40.9-12.6 80.6-28.5 118.3zM887 484H743.5c-1.9-54.2-9.1-105.7-20.7-152.6 29.3-15.6 56.6-34.4 81.5-55.9A373.86 373.86 0 01887 484zM658.3 165.5c39.7 16.8 75.8 40 107.6 69.2a394.72 394.72 0 01-59.4 41.8c-15.7-45-35.8-84.1-59.2-115.4 3.7 1.4 7.4 2.9 11 4.4zm-90.6 700.6c-9.2 7.2-18.4 12.7-27.7 16.4V697a389.1 389.1 0 01115.7 26.2c-8.3 24.6-17.9 47.3-29 67.8-17.4 32.4-37.8 58.3-59 75.1zm59-633.1c11 20.6 20.7 43.3 29 67.8A389.1 389.1 0 01540 327V141.6c9.2 3.7 18.5 9.1 27.7 16.4 21.2 16.7 41.6 42.6 59 75zM540 640.9V540h147.5c-1.6 44.2-7.1 87.1-16.3 127.8l-.3 1.2A445.02 445.02 0 00540 640.9zm0-156.9V383.1c45.8-2.8 89.8-12.5 130.9-28.1l.3 1.2c9.2 40.7 14.7 83.5 16.3 127.8H540zm-56 56v100.9c-45.8 2.8-89.8 12.5-130.9 28.1l-.3-1.2c-9.2-40.7-14.7-83.5-16.3-127.8H484zm-147.5-56c1.6-44.2 7.1-87.1 16.3-127.8l.3-1.2c41.1 15.6 85 25.3 130.9 28.1V484H336.5zM484 697v185.4c-9.2-3.7-18.5-9.1-27.7-16.4-21.2-16.7-41.7-42.7-59.1-75.1-11-20.6-20.7-43.3-29-67.8 37.2-14.6 75.9-23.3 115.8-26.1zm0-370a389.1 389.1 0 01-115.7-26.2c8.3-24.6 17.9-47.3 29-67.8 17.4-32.4 37.8-58.4 59.1-75.1 9.2-7.2 18.4-12.7 27.7-16.4V327zM365.7 165.5c3.7-1.5 7.3-3 11-4.4-23.4 31.3-43.5 70.4-59.2 115.4-21-12-40.9-26-59.4-41.8 31.8-29.2 67.9-52.4 107.6-69.2zM165.5 365.7c13.8-32.6 32-62.8 54.2-90.2 24.9 21.5 52.2 40.3 81.5 55.9-11.6 46.9-18.8 98.4-20.7 152.6H137c3-40.9 12.6-80.6 28.5-118.3zM137 540h143.5c1.9 54.2 9.1 105.7 20.7 152.6a444.07 444.07 0 00-81.5 55.9A373.86 373.86 0 01137 540zm228.7 318.5c-39.7-16.8-75.8-40-107.6-69.2 18.5-15.8 38.4-29.7 59.4-41.8 15.7 45 35.8 84.1 59.2 115.4-3.7-1.4-7.4-2.9-11-4.4zm292.6 0c-3.7 1.5-7.3 3-11 4.4 23.4-31.3 43.5-70.4 59.2-115.4 21 12 40.9 26 59.4 41.8a373.81 373.81 0 01-107.6 69.2z"}}]},name:"global",theme:"outlined"};var a=e.i(9583),s=r.forwardRef(function(e,s){return r.createElement(a.default,(0,t.default)({},e,{ref:s,icon:l}))});e.s(["GlobalOutlined",0,s],160818)},751904,e=>{"use strict";var t=e.i(401361);e.s(["EditOutlined",()=>t.default])},564897,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let l={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"minus-circle",theme:"outlined"};var a=e.i(9583),s=r.forwardRef(function(e,s){return r.createElement(a.default,(0,t.default)({},e,{ref:s,icon:l}))});e.s(["MinusCircleOutlined",0,s],564897)},822315,(e,t,r)=>{e.e,t.exports=function(){"use strict";var e="millisecond",t="second",r="minute",l="hour",a="week",s="month",i="quarter",n="year",o="date",d="Invalid Date",m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,c=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,u=function(e,t,r){var l=String(e);return!l||l.length>=t?e:""+Array(t+1-l.length).join(r)+e},h="en",g={};g[h]={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],r=e%100;return"["+e+(t[(r-20)%10]||t[r]||t[0])+"]"}};var p="$isDayjsObject",x=function(e){return e instanceof y||!(!e||!e[p])},b=function e(t,r,l){var a;if(!t)return h;if("string"==typeof t){var s=t.toLowerCase();g[s]&&(a=s),r&&(g[s]=r,a=s);var i=t.split("-");if(!a&&i.length>1)return e(i[0])}else{var n=t.name;g[n]=t,a=n}return!l&&a&&(h=a),a||!l&&h},_=function(e,t){if(x(e))return e.clone();var r="object"==typeof t?t:{};return r.date=e,r.args=arguments,new y(r)},f={s:u,z:function(e){var t=-e.utcOffset(),r=Math.abs(t);return(t<=0?"+":"-")+u(Math.floor(r/60),2,"0")+":"+u(r%60,2,"0")},m:function e(t,r){if(t.date(){"use strict";var t=e.i(843476),r=e.i(135214),l=e.i(109799),a=e.i(912598),s=e.i(907308),i=e.i(764205),n=e.i(266027);let o=(0,e.i(243652).createQueryKeys)("guardrails"),d=()=>{let{accessToken:e,userId:t,userRole:l}=(0,r.default)();return(0,n.useQuery)({queryKey:o.list({}),queryFn:async()=>(0,i.getGuardrailsList)(e),enabled:!!(e&&t&&l),select:e=>{let t=e?.guardrails??[],r=new Set,l=new Set;for(let e of t)e.litellm_params?.default_on?r.add(e.guardrail_name):l.add(e.guardrail_name);return{guardrails:t,globalGuardrailNames:r,optionalGuardrailNames:l}}})};e.s(["useGuardrails",0,d],838932);var m=e.i(500330),c=e.i(11751),u=e.i(708347),h=e.i(751904),g=e.i(160818),p=e.i(827252),x=e.i(564897),b=e.i(646563),_=e.i(987432),f=e.i(530212),y=e.i(677667),j=e.i(130643),v=e.i(898667),w=e.i(389083),S=e.i(304967),T=e.i(350967),C=e.i(599724),N=e.i(779241),k=e.i(629569),M=e.i(464571),I=e.i(808613),O=e.i(311451),z=e.i(28651),A=e.i(199133),D=e.i(770914),F=e.i(790848),$=e.i(653496),P=e.i(262218),L=e.i(592968),R=e.i(888259),B=e.i(678784),E=e.i(118366),U=e.i(271645),V=e.i(9314),K=e.i(552130),G=e.i(127952);function W({className:e,value:r,onChange:l}){return(0,t.jsxs)(A.Select,{className:e,value:r,onChange:l,children:[(0,t.jsx)(A.Select.Option,{value:"24h",children:"Daily"}),(0,t.jsx)(A.Select.Option,{value:"7d",children:"Weekly"}),(0,t.jsx)(A.Select.Option,{value:"30d",children:"Monthly"})]})}var H=e.i(844565),Y=e.i(355619);let q=function({globalGuardrailNames:e,teamGuardrails:r=[],optedOutGlobalGuardrails:l=[],killSwitchOn:a=!1,variant:s="card",className:i=""}){let n=new Set(l),o=Array.from(e).filter(e=>!n.has(e)),d=r.filter(t=>!e.has(t)),m=a||0!==o.length||0!==d.length?(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("span",{className:"block text-sm font-medium text-gray-700 mb-2",children:[(0,t.jsx)(g.GlobalOutlined,{style:{marginInlineEnd:4},"aria-label":"Global guardrail"}),"Global"]}),a?(0,t.jsx)(P.Tag,{color:"gold",children:"Bypassed for this team"}):o.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:o.map(e=>(0,t.jsx)(P.Tag,{color:"blue",children:e},e))}):(0,t.jsx)("span",{className:"block text-sm text-gray-500",children:"None configured"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Team-specific"}),d.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:d.map(e=>(0,t.jsx)(P.Tag,{color:"blue",children:e},e))}):(0,t.jsx)("span",{className:"block text-sm text-gray-500",children:"None configured"})]})]}):(0,t.jsx)("span",{className:"block text-gray-500",children:"No guardrails configured"});return"card"===s?(0,t.jsxs)("div",{className:`bg-white border border-gray-200 rounded-lg p-6 ${i}`,children:[(0,t.jsx)("div",{className:"flex items-center gap-2 mb-6",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"block font-semibold text-gray-900",children:"Guardrails Settings"}),(0,t.jsx)("span",{className:"block text-xs text-gray-500",children:"Global and team-specific guardrails applied to this team"})]})}),m]}):(0,t.jsxs)("div",{className:`${i}`,children:[(0,t.jsx)("span",{className:"block font-medium text-gray-900 mb-3",children:"Guardrails Settings"}),m]})};var J=e.i(643449),Q=e.i(75921),X=e.i(390605),Z=e.i(162386),ee=e.i(727749),et=e.i(384767),er=e.i(435451),el=e.i(916940);let ea=({onChange:e,value:r,className:l,accessToken:a,placeholder:s="Select search tools (optional)",disabled:n=!1})=>{let[o,d]=(0,U.useState)([]),[m,c]=(0,U.useState)(!1);return(0,U.useEffect)(()=>{(async()=>{if(a){c(!0);try{let e=await (0,i.fetchSearchTools)(a),t=Array.isArray(e?.search_tools)?e.search_tools:Array.isArray(e?.data)?e.data:[];d(t.map(e=>e?.search_tool_name).filter(e=>"string"==typeof e&&e.length>0).map(e=>({label:e,value:e})))}catch(e){console.error("Failed to load search tools:",e)}finally{c(!1)}}})()},[a]),(0,t.jsx)(A.Select,{mode:"multiple",allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:s,onChange:e,value:r,loading:m,className:l,options:o,style:{width:"100%"},disabled:n})};e.s(["default",0,ea],471145);var es=e.i(183588),ei=e.i(460285),en=e.i(276173),eo=e.i(91979),ed=e.i(269200),em=e.i(942232),ec=e.i(977572),eu=e.i(427612),eh=e.i(64848),eg=e.i(496020),ep=e.i(536916),ex=e.i(21548);let eb={"/key/generate":"Member can generate a virtual key for this team","/key/service-account/generate":"Member can generate a service account key (not belonging to any user) for this team","/key/update":"Member can update a virtual key belonging to this team","/key/delete":"Member can delete a virtual key belonging to this team","/key/info":"Member can get info about a virtual key belonging to this team","/key/regenerate":"Member can regenerate a virtual key belonging to this team","/key/{key_id}/regenerate":"Member can regenerate a virtual key belonging to this team","/key/list":"Member can list virtual keys belonging to this team","/key/block":"Member can block a virtual key belonging to this team","/key/unblock":"Member can unblock a virtual key belonging to this team","/team/daily/activity":"Member can view all team usage data (not just their own)","/spend/logs":"Member can view spend logs for the entire team (not just their own)"},e_=({teamId:e,accessToken:r,canEditTeam:l})=>{let[a,s]=(0,U.useState)([]),[n,o]=(0,U.useState)([]),[d,m]=(0,U.useState)(!0),[c,u]=(0,U.useState)(!1),[h,g]=(0,U.useState)(!1),p=async()=>{try{if(m(!0),!r)return;let t=await (0,i.getTeamPermissionsCall)(r,e),l=t.all_available_permissions||[];s(l);let a=t.team_member_permissions||[];o(a),g(!1)}catch(e){ee.default.fromBackend("Failed to load permissions"),console.error("Error fetching permissions:",e)}finally{m(!1)}};(0,U.useEffect)(()=>{p()},[e,r]);let x=async()=>{try{if(!r)return;u(!0),await (0,i.teamPermissionsUpdateCall)(r,e,n),ee.default.success("Permissions updated successfully"),g(!1)}catch(e){ee.default.fromBackend("Failed to update permissions"),console.error("Error updating permissions:",e)}finally{u(!1)}};if(d)return(0,t.jsx)("div",{className:"p-6 text-center",children:"Loading permissions..."});let b=a.length>0;return(0,t.jsxs)(S.Card,{className:"bg-white shadow-md rounded-md p-6",children:[(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center border-b pb-4 mb-6",children:[(0,t.jsx)(k.Title,{className:"mb-2 sm:mb-0",children:"Member Permissions"}),l&&h&&(0,t.jsxs)("div",{className:"flex gap-3",children:[(0,t.jsx)(M.Button,{icon:(0,t.jsx)(eo.ReloadOutlined,{}),onClick:()=>{p()},children:"Reset"}),(0,t.jsx)(M.Button,{onClick:x,loading:c,type:"primary",icon:(0,t.jsx)(_.SaveOutlined,{}),children:"Save Changes"})]})]}),(0,t.jsx)(C.Text,{className:"mb-6 text-gray-600",children:"Control what team members can do when they are not team admins."}),b?(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(ed.Table,{className:" min-w-full",children:[(0,t.jsx)(eu.TableHead,{children:(0,t.jsxs)(eg.TableRow,{children:[(0,t.jsx)(eh.TableHeaderCell,{children:"Method"}),(0,t.jsx)(eh.TableHeaderCell,{children:"Endpoint"}),(0,t.jsx)(eh.TableHeaderCell,{children:"Description"}),(0,t.jsx)(eh.TableHeaderCell,{className:"sticky right-0 bg-white shadow-[-4px_0_4px_-4px_rgba(0,0,0,0.1)] text-center",children:"Allow Access"})]})}),(0,t.jsx)(em.TableBody,{children:a.map(e=>{let r=(e=>{let t=e.includes("/info")||e.includes("/list")||e.includes("/activity")||"/spend/logs"===e?"GET":"POST",r=eb[e];if(!r){for(let[t,l]of Object.entries(eb))if(e.includes(t)){r=l;break}}return r||(r=`Access ${e}`),{method:t,endpoint:e,description:r,route:e}})(e);return(0,t.jsxs)(eg.TableRow,{className:"hover:bg-gray-50 transition-colors",children:[(0,t.jsx)(ec.TableCell,{children:(0,t.jsx)("span",{className:`px-2 py-1 rounded text-xs font-medium ${"GET"===r.method?"bg-blue-100 text-blue-800":"bg-green-100 text-green-800"}`,children:r.method})}),(0,t.jsx)(ec.TableCell,{children:(0,t.jsx)("span",{className:"font-mono text-sm text-gray-800",children:r.endpoint})}),(0,t.jsx)(ec.TableCell,{className:"text-gray-700",children:r.description}),(0,t.jsx)(ec.TableCell,{className:"sticky right-0 bg-white shadow-[-4px_0_4px_-4px_rgba(0,0,0,0.1)] text-center",children:(0,t.jsx)(ep.Checkbox,{checked:n.includes(e),onChange:t=>{o(t.target.checked?[...n,e]:n.filter(t=>t!==e)),g(!0)},disabled:!l})})]},e)})})]})}):(0,t.jsx)("div",{className:"py-12",children:(0,t.jsx)(ex.Empty,{description:"No permissions available"})})]})};var ef=e.i(822315);function ey(e){if(!e)return null;let t=(0,ef.default)(e);return t.isValid()?t.format("MMM D, YYYY"):null}var ej=e.i(175712),ev=e.i(178654),ew=e.i(621192),eS=e.i(898586);let eT=async(e,t)=>{let r=(0,i.getProxyBaseUrl)(),l=r?`${r}/team/${encodeURIComponent(t)}/members/me`:`/team/${encodeURIComponent(t)}/members/me`,a=await fetch(l,{method:"GET",headers:{[(0,i.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"}});if(404===a.status)return null;if(!a.ok){let e=await a.json().catch(()=>({}));throw Error((0,i.deriveErrorMessage)(e))}return await a.json()},eC=(e,r)=>(0,t.jsxs)(D.Space,{size:4,children:[(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:e}),(0,t.jsx)(L.Tooltip,{title:r,children:(0,t.jsx)(p.InfoCircleOutlined,{style:{color:"#8c8c8c"}})})]}),eN=(e,t=4)=>null==e?"0":(0,m.formatNumberWithCommas)(e,t),ek=e=>null==e?"Unlimited":(0,m.formatNumberWithCommas)(e,0);function eM({teamId:e}){let{data:l,isLoading:a,error:s}=(e=>{let{accessToken:t}=(0,r.default)();return(0,n.useQuery)({queryKey:["team",e,"members","me"],queryFn:()=>eT(t,e),enabled:!!(t&&e)})})(e);if(a)return(0,t.jsx)(ej.Card,{children:(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"Loading your membership info…"})});if(s)return(0,t.jsx)(ej.Card,{children:(0,t.jsx)(eS.Typography.Text,{type:"danger",children:s instanceof Error?s.message:"Failed to load your membership info for this team."})});if(!l)return(0,t.jsx)(ej.Card,{children:(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"No membership info available for the current user in this team."})});let i=l.litellm_budget_table??null,o=i?.max_budget??null,d=l.spend??0,m=l.total_spend??0,c=i?.tpm_limit??null,u=i?.rpm_limit??null,h=ey(i?.budget_reset_at),g=i?.allowed_models??null;return(0,t.jsxs)(D.Space,{direction:"vertical",size:"middle",style:{width:"100%"},children:[(0,t.jsx)(ej.Card,{children:(0,t.jsxs)(ew.Row,{gutter:[24,16],children:[(0,t.jsxs)(ev.Col,{xs:24,sm:12,md:8,children:[(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"User"}),(0,t.jsx)("div",{style:{marginTop:4},children:(0,t.jsx)(eS.Typography.Text,{strong:!0,children:l.user_email||l.user_id})}),(0,t.jsx)(eS.Typography.Text,{type:"secondary",style:{fontSize:12,fontFamily:"monospace"},children:l.user_id})]}),(0,t.jsxs)(ev.Col,{xs:24,sm:12,md:8,children:[(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"Team Role"}),(0,t.jsx)("div",{style:{marginTop:4},children:(0,t.jsx)(P.Tag,{color:"admin"===l.role?"blue":"default",children:l.role||"user"})})]})]})}),(0,t.jsxs)(ew.Row,{gutter:[16,16],children:[(0,t.jsx)(ev.Col,{xs:24,md:12,children:(0,t.jsxs)(ej.Card,{children:[eC("Current Cycle Spend (USD)","Spend for the current budget cycle. Resets to $0 when the budget window rolls over."),(0,t.jsxs)("div",{style:{marginTop:8},children:[(0,t.jsxs)(eS.Typography.Title,{level:3,style:{margin:0},children:["$",eN(d,4)]}),(0,t.jsxs)(eS.Typography.Text,{type:"secondary",children:["of ",null===o?"Unlimited":`$${eN(o,4)}`]})]}),h&&(0,t.jsx)("div",{style:{marginTop:4},children:(0,t.jsxs)(eS.Typography.Text,{type:"secondary",children:["Resets ",h]})})]})}),(0,t.jsx)(ev.Col,{xs:24,md:12,children:(0,t.jsxs)(ej.Card,{children:[eC("Rate Limits","Your per-member rate limits within this team."),(0,t.jsxs)("div",{style:{marginTop:8},children:[(0,t.jsxs)(eS.Typography.Text,{children:["TPM: ",ek(c)]}),(0,t.jsx)("br",{}),(0,t.jsxs)(eS.Typography.Text,{children:["RPM: ",ek(u)]})]})]})}),(0,t.jsx)(ev.Col,{xs:24,md:12,children:(0,t.jsxs)(ej.Card,{children:[eC("Total Spend (USD)","Cumulative spend across all budget cycles within this team."),(0,t.jsx)("div",{style:{marginTop:8},children:(0,t.jsxs)(eS.Typography.Title,{level:4,style:{margin:0},children:["$",eN(m,4)]})})]})}),(0,t.jsx)(ev.Col,{xs:24,md:12,children:(0,t.jsxs)(ej.Card,{children:[eC("Model Scope","Models you can access within this team."),(0,t.jsx)("div",{style:{marginTop:8},children:g&&g.length>0?(0,t.jsx)(D.Space,{wrap:!0,children:g.map(e=>(0,t.jsx)(P.Tag,{children:e},e))}):(0,t.jsx)(eS.Typography.Text,{children:"All Team Models"})})]})})]})]})}let eI="overview",eO="my-user",ez="virtual-keys",eA="members",eD="member-permissions",eF="settings",e$={[eI]:"Overview",[eO]:"My User",[ez]:"Virtual Keys",[eA]:"Members",[eD]:"Member Permissions",[eF]:"Settings"};var eP=e.i(292639),eL=e.i(294612);function eR({teamData:e,canEditTeam:l,handleMemberDelete:a,setSelectedEditMember:s,setIsEditMemberModalVisible:i,setIsAddMemberModalVisible:n}){let o=e=>{if(null==e)return"0";if("number"==typeof e){let t=Number(e);return t===Math.floor(t)?t.toString():(0,m.formatNumberWithCommas)(t,8).replace(/\.?0+$/,"")}return"0"},{data:d}=(0,eP.useUISettings)(),{userId:c,userRole:h}=(0,r.default)(),g=!!d?.values?.disable_team_admin_delete_team_user,x=(0,u.isUserTeamAdminForSingleTeam)(e.team_info.members_with_roles,c||""),b=(0,u.isProxyAdminRole)(h||""),_=[{title:(0,t.jsxs)(D.Space,{direction:"horizontal",children:["Model Scope",(0,t.jsx)(L.Tooltip,{title:"Models this member can access. Empty means they inherit all team models.",children:(0,t.jsx)(p.InfoCircleOutlined,{})})]}),key:"model_scope",render:(r,l)=>{let a=(t=>{if(!t)return null;let r=e.team_memberships.find(e=>e.user_id===t),l=r?.litellm_budget_table?.allowed_models;return l&&l.length>0?l:null})(l.user_id);if(!a)return(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"(all team models)"});let s=a.slice(0,2),i=a.length-s.length;return(0,t.jsxs)(D.Space,{wrap:!0,children:[s.map(e=>(0,t.jsx)(eS.Typography.Text,{code:!0,style:{fontSize:"12px"},children:e},e)),i>0&&(0,t.jsx)(L.Tooltip,{title:a.slice(2).join(", "),children:(0,t.jsxs)(eS.Typography.Text,{type:"secondary",children:["+",i," more"]})})]})}},{title:(0,t.jsxs)(D.Space,{direction:"horizontal",children:["Current Cycle Spend (USD)",(0,t.jsx)(L.Tooltip,{title:"Spend for the current budget cycle. Resets to $0 when the member's budget window rolls over. This is the value checked against the member's budget.",children:(0,t.jsx)(p.InfoCircleOutlined,{})})]}),key:"spend",render:(r,l)=>(0,t.jsxs)(eS.Typography.Text,{children:["$",(0,m.formatNumberWithCommas)((t=>{if(!t)return 0;let r=e.team_memberships.find(e=>e.user_id===t);return r?.spend??0})(l.user_id),4)]})},{title:(0,t.jsxs)(D.Space,{direction:"horizontal",children:["Total Spend (USD)",(0,t.jsx)(L.Tooltip,{title:"Cumulative spend by this member within this team, across all budget cycles. Tracking began 2026-04-21; spend from before that date is not included.",children:(0,t.jsx)(p.InfoCircleOutlined,{})})]}),key:"total_spend",render:(r,l)=>(0,t.jsxs)(eS.Typography.Text,{children:["$",(0,m.formatNumberWithCommas)((t=>{if(!t)return 0;let r=e.team_memberships.find(e=>e.user_id===t);return r?.total_spend??0})(l.user_id),4)]})},{title:"Team Member Budget (USD)",key:"budget",render:(r,l)=>{let a=(t=>{if(!t)return null;let r=e.team_memberships.find(e=>e.user_id===t),l=r?.litellm_budget_table?.max_budget;return null==l?null:o(l)})(l.user_id);return(0,t.jsx)(eS.Typography.Text,{children:a?`$${(0,m.formatNumberWithCommas)(Number(a),4)}`:"No Limit"})}},{title:"Budget Reset",key:"budget_reset",render:(r,l)=>{let a=(t=>{if(!t)return null;let r=e.team_memberships.find(e=>e.user_id===t);return ey(r?.litellm_budget_table?.budget_reset_at)})(l.user_id);return a?(0,t.jsx)(eS.Typography.Text,{children:a}):(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"—"})}},{title:(0,t.jsxs)(D.Space,{direction:"horizontal",children:["Team Member Rate Limits",(0,t.jsx)(L.Tooltip,{title:"Rate limits for this member's usage within this team.",children:(0,t.jsx)(p.InfoCircleOutlined,{})})]}),key:"rate_limits",render:(r,l)=>(0,t.jsx)(eS.Typography.Text,{children:(t=>{if(!t)return"No Limits";let r=e.team_memberships.find(e=>e.user_id===t),l=r?.litellm_budget_table?.rpm_limit,a=r?.litellm_budget_table?.tpm_limit,s=[l?`${o(l)} RPM`:null,a?`${o(a)} TPM`:null].filter(Boolean);return s.length>0?s.join(" / "):"No Limits"})(l.user_id)})}];return(0,t.jsx)(eL.default,{members:e.team_info.members_with_roles,canEdit:l,onEdit:t=>{let r=e.team_memberships.find(e=>e.user_id===t.user_id);s({...t,max_budget_in_team:r?.litellm_budget_table?.max_budget||null,tpm_limit:r?.litellm_budget_table?.tpm_limit||null,rpm_limit:r?.litellm_budget_table?.rpm_limit||null,allowed_models:r?.litellm_budget_table?.allowed_models||[]}),i(!0)},onDelete:a,onAddMember:()=>n(!0),roleColumnTitle:"Team Role",roleTooltip:"This role applies only to this team and is independent from the user's proxy-level role.",extraColumns:_,showDeleteForMember:()=>b||l&&!x||x&&!g})}var eB=e.i(207082),eE=e.i(871943),eU=e.i(502547),eV=e.i(360820),eK=e.i(94629),eG=e.i(152990),eW=e.i(682830),eH=e.i(994388),eY=e.i(752978),eq=e.i(282786),eJ=e.i(981339),eQ=e.i(304911),eX=e.i(969550),eZ=e.i(20147),e0=e.i(633627);function e1({teamId:e,teamAlias:l,organization:a}){let{accessToken:s}=(0,r.default)(),[i,o]=(0,U.useState)(null),[d,c]=(0,U.useState)([{id:"created_at",desc:!0}]),[u,h]=(0,U.useState)({pageIndex:0,pageSize:50}),[g,x]=(0,U.useState)({"Organization ID":"","Key Alias":"","User ID":"","Sort By":"created_at","Sort Order":"desc"}),b=d.length>0?d[0].id:"created_at",_=d.length>0?d[0].desc?"desc":"asc":"desc",f=u.pageIndex,y=u.pageSize,{data:j,isPending:v,isFetching:S,refetch:T}=(0,eB.useKeys)(f+1,y,{teamID:e,organizationID:g["Organization ID"]?.trim()||void 0,selectedKeyAlias:g["Key Alias"]?.trim()||void 0,userID:g["User ID"]?.trim()||void 0,sortBy:b||void 0,sortOrder:_||void 0,expand:"user"}),N=(0,U.useMemo)(()=>{let e=j?.keys||[],t=a?.organization_id;return t?e.map(e=>({...e,organization_id:(e.organization_id??e.org_id)||t})):e},[j?.keys,a?.organization_id]),k=j?.total_pages??0,[M,I]=(0,U.useState)({}),O=(0,U.useMemo)(()=>({team_id:e,team_alias:l||e,models:[],max_budget:null,budget_duration:null,tpm_limit:null,rpm_limit:null,organization_id:a?.organization_id||"",created_at:"",keys:[],members_with_roles:[],spend:0}),[e,l,a]),z=(0,n.useQuery)({queryKey:["teamFilterOptions",e,s],queryFn:async()=>(0,e0.fetchTeamFilterOptions)(s,e),enabled:!!s&&!!e,staleTime:3e4}).data||{keyAliases:[],organizationIds:[],userIds:[]},A=(0,U.useCallback)(()=>{T?.()},[T]);(0,U.useEffect)(()=>(window.addEventListener("storage",A),()=>window.removeEventListener("storage",A)),[A]);let D=(0,U.useCallback)((e,t=!1)=>{x(t=>({...t,"Organization ID":e["Organization ID"]??t["Organization ID"],"Key Alias":e["Key Alias"]??t["Key Alias"],"User ID":e["User ID"]??t["User ID"],"Sort By":e["Sort By"]??t["Sort By"]??"created_at","Sort Order":e["Sort Order"]??t["Sort Order"]??"desc"})),t||h(e=>({...e,pageIndex:0}))},[]),F=(0,U.useCallback)(()=>{x({"Organization ID":"","Key Alias":"","User ID":"","Sort By":"created_at","Sort Order":"desc"}),h(e=>({...e,pageIndex:0}))},[]),$=(0,U.useMemo)(()=>[{name:"Organization ID",label:"Organization ID",isSearchable:!0,searchFn:async e=>{let{organizationIds:t}=z;if(!t.length)return[];let r=e.toLowerCase();return(r?t.filter(e=>e.toLowerCase().includes(r)):t).map(e=>({label:e,value:e}))}},{name:"Key Alias",label:"Key Alias",isSearchable:!0,searchFn:async e=>{let{keyAliases:t}=z,r=e.toLowerCase();return(r?t.filter(e=>e.toLowerCase().includes(r)):t).map(e=>({label:e,value:e}))}},{name:"User ID",label:"User ID",isSearchable:!0,searchFn:async e=>{let{userIds:t}=z,r=e.toLowerCase();return(r?t.filter(e=>e.id.toLowerCase().includes(r)||e.email.toLowerCase().includes(r)):t).map(e=>({label:e.email?`${e.id} (${e.email})`:e.id,value:e.id}))}}],[z]),P=(0,U.useMemo)(()=>[{id:"token",accessorKey:"token",header:"Key ID",size:100,enableSorting:!0,cell:e=>{let r=e.getValue(),l=e.cell.column.getSize();return(0,t.jsx)(L.Tooltip,{title:r,children:(0,t.jsx)(eH.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left overflow-hidden truncate block",style:{maxWidth:l,overflow:"hidden"},onClick:()=>o(e.row.original),children:r??"-"})})}},{id:"key_alias",accessorKey:"key_alias",header:"Key Alias",size:150,enableSorting:!0,cell:e=>{let r=e.getValue(),l=e.cell.column.getSize();return(0,t.jsx)(L.Tooltip,{title:r,children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block",style:{maxWidth:l,overflow:"hidden"},children:r??"-"})})}},{id:"key_name",accessorKey:"key_name",header:"Secret Key",size:120,enableSorting:!1,cell:e=>(0,t.jsx)("span",{className:"font-mono text-xs",children:e.getValue()})},{id:"organization_id",accessorKey:"organization_id",header:"Organization ID",size:140,enableSorting:!1,cell:e=>e.getValue()?e.renderValue():"-"},{id:"user_email",accessorKey:"user",header:"User Email",size:160,enableSorting:!1,cell:e=>{let r=e.getValue(),l=r?.user_email,a=e.cell.column.getSize();return(0,t.jsx)(L.Tooltip,{title:l,children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block",style:{maxWidth:a,overflow:"hidden"},children:l??"-"})})}},{id:"user_id",accessorKey:"user_id",header:"User ID",size:70,enableSorting:!1,cell:e=>{let r=e.getValue(),l="default_user_id"===r?"Default Proxy Admin":r,a=e.cell.column.getSize();return(0,t.jsx)(L.Tooltip,{title:l,children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block",style:{maxWidth:a,overflow:"hidden"},children:l??"-"})})}},{id:"created_at",accessorKey:"created_at",header:"Created At",size:120,enableSorting:!0,cell:e=>{let t=e.getValue();return t?new Date(t).toLocaleDateString():"-"}},{id:"created_by",accessorKey:"created_by",header:"Created By",size:70,enableSorting:!1,cell:e=>{let r=e.getValue();if(!r)return"-";let{created_by_user:l}=e.row.original,a=l?.user_alias??null,s=l?.user_email??null,i="default_user_id"===r,n=a||s||r,o=e.cell.column.getSize(),d=(0,t.jsx)("div",{className:"flex flex-col gap-2 text-xs min-w-[200px] max-w-[300px]",children:[{label:"User Alias",value:a},{label:"User Email",value:s},{label:"User ID",value:r}].map(({label:e,value:r})=>(0,t.jsxs)("div",{className:"flex flex-col min-w-0",children:[(0,t.jsx)("span",{className:"text-gray-400",children:e}),r?(0,t.jsx)(eS.Typography.Text,{className:"font-mono text-xs",ellipsis:{tooltip:r},copyable:!0,children:r}):(0,t.jsx)("span",{className:"font-mono",children:"-"})]},e))});return!i||a||s?(0,t.jsx)(eq.Popover,{content:d,trigger:"hover",placement:"bottomLeft",children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block cursor-default",style:{maxWidth:o,overflow:"hidden"},children:n})}):(0,t.jsx)(eq.Popover,{content:d,trigger:"hover",placement:"bottomLeft",children:(0,t.jsx)("span",{className:"cursor-default",children:(0,t.jsx)(eQ.default,{userId:r})})})}},{id:"updated_at",accessorKey:"updated_at",header:"Updated At",size:120,enableSorting:!0,cell:e=>{let t=e.getValue();return t?new Date(t).toLocaleDateString():"Never"}},{id:"last_active",accessorKey:"last_active",header:()=>(0,t.jsxs)("span",{className:"flex items-center gap-1",children:["Last Active",(0,t.jsx)(eq.Popover,{content:"This is a new field and is not backfilled. Only new key usage will update this value.",trigger:"hover",children:(0,t.jsx)(p.InfoCircleOutlined,{className:"text-gray-400 text-xs cursor-help"})})]}),size:130,enableSorting:!1,cell:e=>{let r=e.getValue();if(!r)return"Unknown";let l=new Date(r);return(0,t.jsx)(L.Tooltip,{title:l.toLocaleString(void 0,{dateStyle:"medium",timeStyle:"long"}),children:(0,t.jsx)("span",{children:l.toLocaleDateString()})})}},{id:"expires",accessorKey:"expires",header:"Expires",size:120,enableSorting:!1,cell:e=>{let t=e.getValue();return t?new Date(t).toLocaleDateString():"Never"}},{id:"spend",accessorKey:"spend",header:"Spend (USD)",size:100,enableSorting:!0,cell:e=>(0,m.formatNumberWithCommas)(e.getValue(),4)},{id:"max_budget",accessorKey:"max_budget",header:"Budget (USD)",size:110,enableSorting:!0,cell:e=>{let t=e.getValue();return null===t?"Unlimited":`$${(0,m.formatNumberWithCommas)(t)}`}},{id:"budget_reset_at",accessorKey:"budget_reset_at",header:"Budget Reset",size:130,enableSorting:!1,cell:e=>{let t=e.getValue();return t?new Date(t).toLocaleString():"Never"}},{id:"models",accessorKey:"models",header:"Models",size:200,enableSorting:!1,cell:e=>{let r=e.getValue();return(0,t.jsx)("div",{className:"flex flex-col py-2",children:Array.isArray(r)?(0,t.jsx)("div",{className:"flex flex-col",children:0===r.length?(0,t.jsx)(w.Badge,{size:"xs",className:"mb-1",color:"red",children:(0,t.jsx)(C.Text,{children:"All Proxy Models"})}):(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)("div",{className:"flex items-start",children:[r.length>3&&(0,t.jsx)("div",{children:(0,t.jsx)(eY.Icon,{icon:M[e.row.id]?eE.ChevronDownIcon:eU.ChevronRightIcon,className:"cursor-pointer",size:"xs",onClick:()=>I(t=>({...t,[e.row.id]:!t[e.row.id]}))})}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-1",children:[r.slice(0,3).map((e,r)=>"all-proxy-models"===e?(0,t.jsx)(w.Badge,{size:"xs",color:"red",children:(0,t.jsx)(C.Text,{children:"All Proxy Models"})},r):(0,t.jsx)(w.Badge,{size:"xs",color:"blue",children:(0,t.jsx)(C.Text,{children:e.length>30?`${(0,Y.getModelDisplayName)(e).slice(0,30)}...`:(0,Y.getModelDisplayName)(e)})},r)),r.length>3&&!M[e.row.id]&&(0,t.jsx)(w.Badge,{size:"xs",color:"gray",className:"cursor-pointer",children:(0,t.jsxs)(C.Text,{children:["+",r.length-3," ",r.length-3==1?"more model":"more models"]})}),M[e.row.id]&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:r.slice(3).map((e,r)=>"all-proxy-models"===e?(0,t.jsx)(w.Badge,{size:"xs",color:"red",children:(0,t.jsx)(C.Text,{children:"All Proxy Models"})},r+3):(0,t.jsx)(w.Badge,{size:"xs",color:"blue",children:(0,t.jsx)(C.Text,{children:e.length>30?`${(0,Y.getModelDisplayName)(e).slice(0,30)}...`:(0,Y.getModelDisplayName)(e)})},r+3))})]})]})})}):null})}},{id:"rate_limits",header:"Rate Limits",size:140,enableSorting:!1,cell:({row:e})=>{let r=e.original;return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{children:["TPM: ",null!==r.tpm_limit?r.tpm_limit:"Unlimited"]}),(0,t.jsxs)("div",{children:["RPM: ",null!==r.rpm_limit?r.rpm_limit:"Unlimited"]})]})}}],[M]),R=(0,U.useCallback)(e=>{let t="function"==typeof e?e(d):e;if(c(t),t?.length>0){let e=t[0];D({"Sort By":e.id,"Sort Order":e.desc?"desc":"asc"},!0)}},[d,D]),B=(0,eG.useReactTable)({data:N,columns:P,columnResizeMode:"onChange",columnResizeDirection:"ltr",state:{sorting:d,pagination:u},onSortingChange:R,onPaginationChange:h,getCoreRowModel:(0,eW.getCoreRowModel)(),enableSorting:!0,manualSorting:!0,manualPagination:!0,pageCount:k});return(0,t.jsx)("div",{className:"w-full h-full overflow-hidden",children:i?(0,t.jsx)(eZ.default,{keyId:i.token,onClose:()=>o(null),keyData:i,teams:[O],onDelete:T}):(0,t.jsxs)("div",{className:"border-b py-4 flex-1 overflow-hidden",children:[(0,t.jsx)("div",{className:"w-full mb-6",children:(0,t.jsx)(eX.default,{options:$,onApplyFilters:D,initialValues:g,onResetFilters:F})}),(0,t.jsx)("div",{className:"flex items-center justify-end w-full mb-4",children:(0,t.jsxs)("div",{className:"inline-flex items-center gap-2",children:[v||S?(0,t.jsx)(eJ.Skeleton.Node,{active:!0,style:{width:74,height:20}}):(0,t.jsxs)("span",{className:"text-sm text-gray-700",children:["Page ",f+1," of ",B.getPageCount()]}),v||S?(0,t.jsx)(eJ.Skeleton.Button,{active:!0,size:"small",style:{width:84,height:30}}):(0,t.jsx)("button",{onClick:()=>B.previousPage(),disabled:v||S||!B.getCanPreviousPage(),className:"px-3 py-1 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Previous"}),v||S?(0,t.jsx)(eJ.Skeleton.Button,{active:!0,size:"small",style:{width:58,height:30}}):(0,t.jsx)("button",{onClick:()=>B.nextPage(),disabled:v||S||!B.getCanNextPage(),className:"px-3 py-1 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Next"})]})}),(0,t.jsx)("div",{className:"h-[75vh] overflow-auto",children:(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(ed.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",style:{width:B.getCenterTotalSize()},children:[(0,t.jsx)(eu.TableHead,{children:B.getHeaderGroups().map(e=>(0,t.jsx)(eg.TableRow,{children:e.headers.map(e=>(0,t.jsx)(eh.TableHeaderCell,{"data-header-id":e.id,className:`py-1 h-8 relative hover:bg-gray-50 ${"actions"===e.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)]":""}`,style:{width:e.getSize(),position:"relative",cursor:e.column.getCanSort()?"pointer":"default"},onMouseEnter:()=>{let t=document.querySelector(`[data-header-id="${e.id}"] .resizer`);t&&(t.style.opacity="0.5")},onMouseLeave:()=>{let t=document.querySelector(`[data-header-id="${e.id}"] .resizer`);t&&!e.column.getIsResizing()&&(t.style.opacity="0")},onClick:e.column.getCanSort()?e.column.getToggleSortingHandler():void 0,children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,eG.flexRender)(e.column.columnDef.header,e.getContext())}),"actions"!==e.id&&e.column.getCanSort()&&(0,t.jsx)("div",{className:"w-4",children:e.column.getIsSorted()?({asc:(0,t.jsx)(eV.ChevronUpIcon,{className:"h-4 w-4 text-blue-500"}),desc:(0,t.jsx)(eE.ChevronDownIcon,{className:"h-4 w-4 text-blue-500"})})[e.column.getIsSorted()]:(0,t.jsx)(eK.SwitchVerticalIcon,{className:"h-4 w-4 text-gray-400"})}),(0,t.jsx)("div",{onDoubleClick:()=>e.column.resetSize(),onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:`resizer ${B.options.columnResizeDirection} ${e.column.getIsResizing()?"isResizing":""}`,style:{position:"absolute",right:0,top:0,height:"100%",width:"5px",background:e.column.getIsResizing()?"#3b82f6":"transparent",cursor:"col-resize",userSelect:"none",touchAction:"none",opacity:+!!e.column.getIsResizing()}})]})},e.id))},e.id))}),(0,t.jsx)(em.TableBody,{children:v||S?(0,t.jsx)(eg.TableRow,{children:(0,t.jsx)(ec.TableCell,{colSpan:P.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"Loading keys..."})})})}):N.length>0?B.getRowModel().rows.map(e=>(0,t.jsx)(eg.TableRow,{className:"h-8",children:e.getVisibleCells().map(e=>(0,t.jsx)(ec.TableCell,{style:{width:e.column.getSize(),maxWidth:"8-x",whiteSpace:"pre-wrap",overflow:"hidden"},className:`py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap ${"models"===e.column.id&&Array.isArray(e.getValue())&&e.getValue().length>3?"px-0":""}`,children:(0,eG.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(eg.TableRow,{children:(0,t.jsx)(ec.TableCell,{colSpan:P.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No keys found"})})})})})]})})})})]})})}e.s(["default",0,({teamId:e,onClose:n,accessToken:o,is_team_admin:eo,is_proxy_admin:ed,is_org_admin:em=!1,userModels:ec,editTeam:eu,premiumUser:eh=!1,onUpdate:eg})=>{let ep,ex,eb,ef,ey,ej,[ev,ew]=(0,U.useState)(null),[eS,eT]=(0,U.useState)(!0),[eC,eN]=(0,U.useState)(!1),[ek]=I.Form.useForm(),[eP,eL]=(0,U.useState)(!1),[eB,eE]=(0,U.useState)(null),[eU,eV]=(0,U.useState)(!1),[eK,eG]=(0,U.useState)([]),[eW,eH]=(0,U.useState)(!1),[eY,eq]=(0,U.useState)({}),{data:eJ,isLoading:eQ}=d(),eX=eJ?.globalGuardrailNames??new Set,[eZ,e0]=(0,U.useState)([]),[e2,e4]=(0,U.useState)({}),[e3,e5]=(0,U.useState)(!1),[e6,e8]=(0,U.useState)(null),[e7,e9]=(0,U.useState)(!1),[te,tt]=(0,U.useState)(!1),[tr,tl]=(0,U.useState)(!1),ta=U.default.useRef(null),[ts,ti]=(0,U.useState)(null),{userRole:tn,userId:to}=(0,r.default)(),{data:td=[]}=(0,l.useOrganizations)(),tm=(0,a.useQueryClient)(),tc=(0,U.useMemo)(()=>{let e=ev?.team_info?.organization_id;if(!e||!to)return!1;let t=td.find(t=>t.organization_id===e);return t?.members?.some(e=>e.user_id===to&&"org_admin"===e.user_role)??!1},[ev,td,to]),tu=I.Form.useWatch("models",ek),th=I.Form.useWatch("disable_global_guardrails",ek),tg=(0,U.useMemo)(()=>{let e=tu??ev?.team_info?.models??[];return e.includes("all-proxy-models")||e.includes("all-team-models")?ec:(0,Y.unfurlWildcardModelsInList)(e,ec)},[tu,ev,ec]),tp=eo||ed||em||tc,tx=(0,U.useMemo)(()=>{let e;return e=[eI,eO,ez],tp?[...e,eA,eD,eF]:e},[tp]),tb=(0,U.useMemo)(()=>eu&&tp?eF:eI,[eu,tp]),t_=async()=>{try{if(eT(!0),!o)return;let t=await (0,i.teamInfoCall)(o,e);ew(t)}catch(e){ee.default.fromBackend("Failed to load team information"),console.error("Error fetching team info:",e)}finally{eT(!1)}};(0,U.useEffect)(()=>{t_()},[e,o]),(0,U.useEffect)(()=>{(async()=>{if(!o||!ev?.team_info?.organization_id)return ti(null);try{let e=await (0,i.organizationInfoCall)(o,ev.team_info.organization_id);ti(e)}catch(e){console.error("Error fetching organization info:",e),ti(null)}})()},[o,ev?.team_info?.organization_id]),(0,U.useMemo)(()=>{let e;return e=[],e=ts?ts.models.includes("all-proxy-models")?ec:ts.models.length>0?ts.models:ec:ec,(0,Y.unfurlWildcardModelsInList)(e,ec)},[ts,ec]),(0,U.useEffect)(()=>{(async()=>{try{if(!o)return;let e=(await (0,i.getPoliciesList)(o)).policies.map(e=>e.policy_name);e0(e)}catch(e){console.error("Failed to fetch policies:",e)}})()},[o]),(0,U.useEffect)(()=>{(async()=>{if(!o||!ev?.team_info?.policies||0===ev.team_info.policies.length)return;e5(!0);let e={};try{await Promise.all(ev.team_info.policies.map(async t=>{try{let r=await (0,i.getPolicyInfoWithGuardrails)(o,t);e[t]=r.resolved_guardrails||[]}catch(r){console.error(`Failed to fetch guardrails for policy ${t}:`,r),e[t]=[]}})),e4(e)}catch(e){console.error("Failed to fetch policy guardrails:",e)}finally{e5(!1)}})()},[o,ev?.team_info?.policies]);let tf=async t=>{try{if(null==o)return;let r={user_email:t.user_email,user_id:t.user_id,role:t.role};await (0,i.teamMemberAddCall)(o,e,r),ee.default.success("Team member added successfully"),eN(!1),ek.resetFields();let l=await (0,i.teamInfoCall)(o,e);ew(l),eg(l)}catch(t){let e="Failed to add team member";t?.raw?.detail?.error?.includes("Assigning team admins is a premium feature")?e="Assigning admins is an enterprise-only feature. Please upgrade your LiteLLM plan to enable this.":t?.message&&(e=t.message),ee.default.fromBackend(e),console.error("Error adding team member:",t)}},ty=async t=>{try{if(null==o)return;let r={user_email:t.user_email,user_id:t.user_id,role:t.role,max_budget_in_team:t.max_budget_in_team,tpm_limit:t.tpm_limit,rpm_limit:t.rpm_limit,allowed_models:t.allowed_models};R.default.destroy(),await (0,i.teamMemberUpdateCall)(o,e,r),ee.default.success("Team member updated successfully"),eL(!1);let l=await (0,i.teamInfoCall)(o,e);ew(l),eg(l)}catch(t){let e="Failed to update team member";t?.raw?.detail?.includes("Assigning team admins is a premium feature")?e="Assigning admins is an enterprise-only feature. Please upgrade your LiteLLM plan to enable this.":t?.message&&(e=t.message),eL(!1),R.default.destroy(),ee.default.fromBackend(e),console.error("Error updating team member:",t)}},tj=async()=>{if(e6&&o){tt(!0);try{await (0,i.teamMemberDeleteCall)(o,e,e6),ee.default.success("Team member removed successfully");let t=await (0,i.teamInfoCall)(o,e);ew(t),eg(t)}catch(e){ee.default.fromBackend("Failed to remove team member"),console.error("Error removing team member:",e)}finally{tt(!1),e9(!1),e8(null)}}},tv=async t=>{try{let r;if(!o)return;tl(!0);let a={};try{let{soft_budget_alerting_emails:e,...r}=t.metadata?JSON.parse(t.metadata):{};a=r}catch(e){ee.default.fromBackend("Invalid JSON in metadata field");return}if("string"==typeof t.secret_manager_settings&&t.secret_manager_settings.trim().length>0)try{r=JSON.parse(t.secret_manager_settings)}catch(e){ee.default.fromBackend("Invalid JSON in secret manager settings");return}let s=e=>null==e||"string"==typeof e&&""===e.trim()||"number"==typeof e&&Number.isNaN(e)?null:e,n={},d={};for(let e of t.modelLimits??[])e?.model&&(null!=e.tpm&&(n[e.model]=e.tpm),null!=e.rpm&&(d[e.model]=e.rpm));let m=!0===t.disable_global_guardrails,u=m?Array.from(eX):Array.from(eX).filter(e=>!(t.guardrails||[]).includes(e)),h={team_id:e,team_alias:t.team_alias,models:t.models,tpm_limit:s(t.tpm_limit),rpm_limit:s(t.rpm_limit),model_tpm_limit:n,model_rpm_limit:d,max_budget:t.max_budget,soft_budget:s(t.soft_budget),budget_duration:t.budget_duration,metadata:{...a,guardrails:(t.guardrails||[]).filter(e=>!eX.has(e)),opted_out_global_guardrails:u,...t.logging_settings?.length>0?{logging:t.logging_settings}:{},disable_global_guardrails:m,soft_budget_alerting_emails:"string"==typeof t.soft_budget_alerting_emails?t.soft_budget_alerting_emails.split(",").map(e=>e.trim()).filter(e=>e.length>0):t.soft_budget_alerting_emails||[],...void 0!==r?{secret_manager_settings:r}:{}},...t.policies?.length>0?{policies:t.policies}:{},...t.organization_id!==tw.organization_id?{organization_id:t.organization_id??null}:{}};h.max_budget=(0,c.mapEmptyStringToNull)(h.max_budget),h.team_member_budget_duration=t.team_member_budget_duration,void 0!==t.team_member_budget&&(h.team_member_budget=Number(t.team_member_budget)),void 0!==t.team_member_key_duration&&(h.team_member_key_duration=t.team_member_key_duration),(void 0!==t.team_member_tpm_limit||void 0!==t.team_member_rpm_limit)&&(h.team_member_tpm_limit=s(t.team_member_tpm_limit),h.team_member_rpm_limit=s(t.team_member_rpm_limit));let{servers:g,accessGroups:p,toolsets:x}=t.mcp_servers_and_groups||{servers:[],accessGroups:[],toolsets:[]},b=new Set(g||[]),_=Object.fromEntries(Object.entries(t.mcp_tool_permissions||{}).filter(([e])=>b.has(e)));h.object_permission={},g&&(h.object_permission.mcp_servers=g),p&&(h.object_permission.mcp_access_groups=p),_&&(h.object_permission.mcp_tool_permissions=_),x&&(h.object_permission.mcp_toolsets=x),delete t.mcp_servers_and_groups,delete t.mcp_tool_permissions;let{agents:f,accessGroups:y}=t.agents_and_groups||{agents:[],accessGroups:[]};f&&f.length>0&&(h.object_permission.agents=f),y&&y.length>0&&(h.object_permission.agent_access_groups=y),delete t.agents_and_groups,t.vector_stores&&t.vector_stores.length>0&&(h.object_permission.vector_stores=t.vector_stores),Array.isArray(t.object_permission_search_tools)&&(h.object_permission.search_tools=t.object_permission_search_tools),void 0!==t.access_group_ids&&(h.access_group_ids=t.access_group_ids),void 0!==t.default_team_member_models&&(h.default_team_member_models=t.default_team_member_models);let j=ta.current?.getValue();if(j?.router_settings){let e=e=>null!=e&&""!==e&&!1!==e&&!(Array.isArray(e)&&0===e.length),t=Object.values(j.router_settings).some(e),r=tw.router_settings&&Object.values(tw.router_settings).some(e);(t||r)&&(h.router_settings=j.router_settings)}await (0,i.teamUpdateCall)(o,h),tm.invalidateQueries({queryKey:l.organizationKeys.all}),ee.default.success("Team settings updated successfully"),eV(!1),t_()}catch(e){console.error("Error updating team:",e)}finally{tl(!1)}};if(eS)return(0,t.jsx)("div",{className:"p-4",children:"Loading..."});if(!ev?.team_info)return(0,t.jsx)("div",{className:"p-4",children:"Team not found"});let{team_info:tw}=ev,tS=tw.metadata?.disable_global_guardrails===!0,tT=new Set(Array.isArray(tw.metadata?.opted_out_global_guardrails)?tw.metadata.opted_out_global_guardrails:[]),tC=(Array.isArray(tw.metadata?.guardrails)?tw.metadata.guardrails:[]).filter(e=>!eX.has(e)),tN=tS?tC:[...Array.from(eX).filter(e=>!tT.has(e)),...tC],tk=e=>{e.preventDefault(),e.stopPropagation()},tM=async(e,t)=>{await (0,m.copyToClipboard)(e)&&(eq(e=>({...e,[t]:!0})),setTimeout(()=>{eq(e=>({...e,[t]:!1}))},2e3))};return(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsx)("div",{className:"flex justify-between items-center mb-6",children:(0,t.jsxs)("div",{children:[(0,t.jsx)(M.Button,{type:"text",icon:(0,t.jsx)(f.ArrowLeftIcon,{className:"h-4 w-4"}),onClick:n,className:"mb-4",children:"Back to Teams"}),(0,t.jsx)(k.Title,{children:tw.team_alias}),(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(C.Text,{className:"text-gray-500 font-mono",children:tw.team_id}),(0,t.jsx)(M.Button,{type:"text",size:"small",icon:eY["team-id"]?(0,t.jsx)(B.CheckIcon,{size:12}):(0,t.jsx)(E.CopyIcon,{size:12}),onClick:()=>tM(tw.team_id,"team-id"),className:`left-2 z-10 transition-all duration-200 ${eY["team-id"]?"text-green-600 bg-green-50 border-green-200":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"}`})]})]})}),(0,t.jsx)($.Tabs,{defaultActiveKey:tb,className:"mb-4",items:[{key:eI,label:e$[eI],children:(0,t.jsxs)(T.Grid,{numItems:1,numItemsSm:2,numItemsLg:3,className:"gap-6",children:[(0,t.jsxs)(S.Card,{children:[(0,t.jsx)(C.Text,{children:"Budget Status"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(k.Title,{children:["$",(0,m.formatNumberWithCommas)(tw.spend,4)]}),(0,t.jsxs)(C.Text,{children:["of ",null===tw.max_budget?"Unlimited":`$${(0,m.formatNumberWithCommas)(tw.max_budget,4)}`]}),tw.budget_duration&&(0,t.jsxs)(C.Text,{className:"text-gray-500",children:["Reset: ",tw.budget_duration]}),(0,t.jsx)("br",{}),tw.team_member_budget_table&&(0,t.jsxs)(C.Text,{className:"text-gray-500",children:["Team Member Budget: $",(0,m.formatNumberWithCommas)(tw.team_member_budget_table.max_budget,4)]})]})]}),(0,t.jsxs)(S.Card,{children:[(0,t.jsx)(C.Text,{children:"Rate Limits"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(C.Text,{children:["TPM: ",tw.tpm_limit||"Unlimited"]}),(0,t.jsxs)(C.Text,{children:["RPM: ",tw.rpm_limit||"Unlimited"]}),tw.max_parallel_requests&&(0,t.jsxs)(C.Text,{children:["Max Parallel Requests: ",tw.max_parallel_requests]}),(ep=tw.metadata?.model_tpm_limit??{},ex=tw.metadata?.model_rpm_limit??{},0===(eb=Array.from(new Set([...Object.keys(ep),...Object.keys(ex)]))).length?null:(0,t.jsxs)("div",{className:"mt-3",children:[(0,t.jsx)(C.Text,{className:"text-gray-500",children:"Per-model limits:"}),eb.map(e=>(0,t.jsxs)(C.Text,{className:"text-xs",children:[e,": TPM ",ep[e]??"—",", RPM ",ex[e]??"—"]},e))]}))]})]}),(0,t.jsxs)(S.Card,{children:[(0,t.jsx)(C.Text,{children:"Models"}),(0,t.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:0===tw.models.length||tw.models.includes("all-proxy-models")?(0,t.jsx)(w.Badge,{color:"red",children:"All proxy models"}):(0,t.jsxs)(t.Fragment,{children:[tw.models.map((e,r)=>(0,t.jsx)(w.Badge,{color:"blue",children:e},`direct-${r}`)),(tw.access_group_models||[]).map((e,r)=>(0,t.jsx)(w.Badge,{color:"green",title:"From access group",children:e},`ag-${r}`))]})})]}),(0,t.jsxs)(S.Card,{children:[(0,t.jsx)(C.Text,{className:"font-semibold text-gray-900",children:"Virtual Keys"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(C.Text,{children:["User Keys: ",ev.keys.filter(e=>e.user_id).length]}),(0,t.jsxs)(C.Text,{children:["Service Account Keys: ",ev.keys.filter(e=>!e.user_id).length]}),(0,t.jsxs)(C.Text,{className:"text-gray-500",children:["Total: ",ev.keys.length]})]})]}),(0,t.jsx)(et.default,{objectPermission:tw.object_permission,variant:"card",accessToken:o}),(0,t.jsx)(S.Card,{children:(0,t.jsx)(q,{globalGuardrailNames:eX,teamGuardrails:Array.isArray(tw.metadata?.guardrails)?tw.metadata.guardrails:[],optedOutGlobalGuardrails:Array.isArray(tw.metadata?.opted_out_global_guardrails)?tw.metadata.opted_out_global_guardrails:[],killSwitchOn:tS,variant:"inline"})}),(0,t.jsxs)(S.Card,{children:[(0,t.jsx)(C.Text,{className:"font-semibold text-gray-900 mb-3",children:"Policies"}),tw.policies&&tw.policies.length>0?(0,t.jsx)("div",{className:"space-y-4",children:tw.policies.map((e,r)=>(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(w.Badge,{color:"purple",children:e}),e3&&(0,t.jsx)(C.Text,{className:"text-xs text-gray-400",children:"Loading guardrails..."})]}),!e3&&e2[e]&&e2[e].length>0&&(0,t.jsxs)("div",{className:"ml-4 pl-3 border-l-2 border-gray-200",children:[(0,t.jsx)(C.Text,{className:"text-xs text-gray-500 mb-1",children:"Resolved Guardrails:"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:e2[e].map((e,r)=>(0,t.jsx)(w.Badge,{color:"blue",size:"xs",children:e},r))})]})]},r))}):(0,t.jsx)(C.Text,{className:"text-gray-500",children:"No policies configured"})]}),(0,t.jsx)(J.default,{loggingConfigs:tw.metadata?.logging||[],disabledCallbacks:[],variant:"card"})]})},{key:eO,label:e$[eO],children:(0,t.jsx)(eM,{teamId:e})},{key:ez,label:e$[ez],children:(0,t.jsx)(e1,{teamId:e,teamAlias:tw.team_alias,organization:ts})},{key:eA,label:e$[eA],children:(0,t.jsx)(eR,{teamData:ev,canEditTeam:tp,handleMemberDelete:e=>{e8(e),e9(!0)},setSelectedEditMember:eE,setIsEditMemberModalVisible:eL,setIsAddMemberModalVisible:eN})},{key:eD,label:e$[eD],children:(0,t.jsx)(e_,{teamId:e,accessToken:o,canEditTeam:tp})},{key:eF,label:e$[eF],children:(0,t.jsxs)(S.Card,{className:"overflow-y-auto max-h-[65vh]",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(k.Title,{children:"Team Settings"}),tp&&!eU&&(0,t.jsx)(M.Button,{icon:(0,t.jsx)(h.EditOutlined,{className:"h-4 w-4"}),onClick:()=>eV(!0),children:"Edit Settings"})]}),eU&&eQ?(0,t.jsx)("div",{className:"p-4",children:"Loading..."}):eU?(0,t.jsxs)(I.Form,{form:ek,onFinish:tv,onValuesChange:e=>{if("disable_global_guardrails"in e){let t=!0===e.disable_global_guardrails,r=(ek.getFieldValue("guardrails")||[]).filter(e=>!eX.has(e));ek.setFieldValue("guardrails",t?r:[...Array.from(eX),...r])}},initialValues:{...tw,team_alias:tw.team_alias,models:tw.models,tpm_limit:tw.tpm_limit,rpm_limit:tw.rpm_limit,object_permission_search_tools:tw.object_permission?.search_tools||[],modelLimits:Array.from(new Set([...Object.keys(tw.metadata?.model_tpm_limit??{}),...Object.keys(tw.metadata?.model_rpm_limit??{})])).map(e=>({model:e,tpm:tw.metadata?.model_tpm_limit?.[e],rpm:tw.metadata?.model_rpm_limit?.[e]})),max_budget:tw.max_budget,soft_budget:tw.soft_budget,budget_duration:tw.budget_duration,team_member_tpm_limit:tw.team_member_budget_table?.tpm_limit,team_member_rpm_limit:tw.team_member_budget_table?.rpm_limit,team_member_budget:tw.team_member_budget_table?.max_budget,team_member_budget_duration:tw.team_member_budget_table?.budget_duration,guardrails:tN,policies:tw.policies||[],disable_global_guardrails:tw.metadata?.disable_global_guardrails||!1,soft_budget_alerting_emails:Array.isArray(tw.metadata?.soft_budget_alerting_emails)?tw.metadata.soft_budget_alerting_emails.join(", "):"",metadata:tw.metadata?JSON.stringify((({logging:e,secret_manager_settings:t,soft_budget_alerting_emails:r,model_tpm_limit:l,model_rpm_limit:a,...s})=>s)(tw.metadata),null,2):"",logging_settings:tw.metadata?.logging||[],secret_manager_settings:tw.metadata?.secret_manager_settings?JSON.stringify(tw.metadata.secret_manager_settings,null,2):"",organization_id:tw.organization_id,vector_stores:tw.object_permission?.vector_stores||[],mcp_servers:tw.object_permission?.mcp_servers||[],mcp_access_groups:tw.object_permission?.mcp_access_groups||[],mcp_servers_and_groups:{servers:tw.object_permission?.mcp_servers||[],accessGroups:tw.object_permission?.mcp_access_groups||[],toolsets:tw.object_permission?.mcp_toolsets||[]},mcp_tool_permissions:tw.object_permission?.mcp_tool_permissions||{},agents_and_groups:{agents:tw.object_permission?.agents||[],accessGroups:tw.object_permission?.agent_access_groups||[]},access_group_ids:tw.access_group_ids||[],default_team_member_models:tw.default_team_member_models||[]},layout:"vertical",children:[(0,t.jsx)(I.Form.Item,{label:"Team Name",name:"team_alias",rules:[{required:!0,message:"Please input a team name"}],children:(0,t.jsx)(O.Input,{type:""})}),(0,t.jsx)(I.Form.Item,{label:"Models",name:"models",rules:[{required:!0,message:"Please select at least one model"}],children:(0,t.jsx)(Z.ModelSelect,{value:ek.getFieldValue("models")||[],onChange:e=>ek.setFieldValue("models",e),teamID:e,organizationID:ev?.team_info?.organization_id||void 0,options:{includeSpecialOptions:!0,includeUserModels:!ev?.team_info?.organization_id,showAllProxyModelsOverride:(0,u.isProxyAdminRole)(tn)&&!ev?.team_info?.organization_id},context:"team",dataTestId:"models-select"})}),(0,t.jsx)(I.Form.Item,{label:"Max Budget (USD)",name:"max_budget",children:(0,t.jsx)(er.default,{step:.01,precision:2,style:{width:"100%"}})}),(0,t.jsx)(I.Form.Item,{label:"Soft Budget (USD)",name:"soft_budget",children:(0,t.jsx)(er.default,{step:.01,precision:2,style:{width:"100%"}})}),(0,t.jsx)(I.Form.Item,{label:"Soft Budget Alerting Emails",name:"soft_budget_alerting_emails",tooltip:"Comma-separated email addresses to receive alerts when the soft budget is reached",children:(0,t.jsx)(O.Input,{placeholder:"example1@test.com, example2@test.com"})}),(0,t.jsxs)(y.Accordion,{className:"mt-4 mb-4",children:[(0,t.jsx)(v.AccordionHeader,{children:(0,t.jsx)("b",{children:"Team Member Settings"})}),(0,t.jsxs)(j.AccordionBody,{children:[(0,t.jsx)(C.Text,{className:"text-xs text-gray-500 mb-4",children:"Optional defaults applied when members join this team. All fields can be overridden per member."}),(0,t.jsx)(I.Form.Item,{label:(0,t.jsxs)("span",{children:["Default Model Access"," ",(0,t.jsx)(L.Tooltip,{title:"Optional. If set, new members can only access these models by default. Must be a subset of the team's models above. Leave empty to give all members access to all team models.",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"default_team_member_models",children:(0,t.jsx)(I.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.models!==t.models,children:({getFieldValue:e})=>{let r=e("models")||tw.models||[];return(0,t.jsx)(A.Select,{mode:"multiple",placeholder:"Leave empty — all team models accessible to every member",value:ek.getFieldValue("default_team_member_models")||[],onChange:e=>ek.setFieldValue("default_team_member_models",e),options:r.map(e=>({label:e,value:e}))})}})}),(0,t.jsx)(I.Form.Item,{label:"Default Budget (USD)",name:"team_member_budget",tooltip:"Default spend budget for each member in this team.",children:(0,t.jsx)(er.default,{step:.01,precision:2,style:{width:"100%"}})}),(0,t.jsx)(I.Form.Item,{label:"Default Budget Duration",name:"team_member_budget_duration",children:(0,t.jsx)(W,{onChange:e=>ek.setFieldValue("team_member_budget_duration",e),value:ek.getFieldValue("team_member_budget_duration")})}),(0,t.jsx)(I.Form.Item,{label:"Default Key Duration (eg: 1d, 1mo)",name:"team_member_key_duration",tooltip:"Set a limit to the duration of a team member's key. Format: 30s (seconds), 30m (minutes), 30h (hours), 30d (days), 1mo (month)",children:(0,t.jsx)(N.TextInput,{placeholder:"e.g., 30d"})}),(0,t.jsx)(I.Form.Item,{label:"Default TPM Limit",name:"team_member_tpm_limit",tooltip:"Default tokens per minute limit for each member. Can be overridden per member.",children:(0,t.jsx)(er.default,{step:1,style:{width:"100%"},placeholder:"e.g., 1000"})}),(0,t.jsx)(I.Form.Item,{label:"Default RPM Limit",name:"team_member_rpm_limit",tooltip:"Default requests per minute limit for each member. Can be overridden per member.",children:(0,t.jsx)(er.default,{step:1,style:{width:"100%"},placeholder:"e.g., 100"})})]})]}),(0,t.jsx)(I.Form.Item,{label:"Reset Budget",name:"budget_duration",children:(0,t.jsxs)(A.Select,{placeholder:"n/a",children:[(0,t.jsx)(A.Select.Option,{value:"24h",children:"daily"}),(0,t.jsx)(A.Select.Option,{value:"7d",children:"weekly"}),(0,t.jsx)(A.Select.Option,{value:"30d",children:"monthly"})]})}),(0,t.jsx)(I.Form.Item,{label:"Tokens per minute Limit (TPM)",name:"tpm_limit",children:(0,t.jsx)(er.default,{step:1,style:{width:"100%"}})}),(0,t.jsx)(I.Form.Item,{label:"Requests per minute Limit (RPM)",name:"rpm_limit",children:(0,t.jsx)(er.default,{step:1,style:{width:"100%"}})}),(0,t.jsx)(I.Form.Item,{label:"Model-Specific Rate Limits",tooltip:"Set per-model TPM/RPM limits that apply across the whole team.",children:(0,t.jsx)(I.Form.List,{name:"modelLimits",children:(e,{add:r,remove:l})=>(0,t.jsxs)(t.Fragment,{children:[e.map(({key:e,name:r,...a})=>(0,t.jsxs)(D.Space,{style:{display:"flex",marginBottom:8},align:"baseline",children:[(0,t.jsx)(I.Form.Item,{...a,name:[r,"model"],rules:[{required:!0,message:"Missing model"},{validator:(e,t)=>t&&(ek.getFieldValue("modelLimits")??[]).filter(e=>e?.model===t).length>1?Promise.reject(Error("Duplicate model")):Promise.resolve()}],style:{minWidth:240},children:(0,t.jsx)(A.Select,{showSearch:!0,placeholder:"Select model",allowClear:!0,options:tg.map(e=>({value:e,label:e}))})}),(0,t.jsx)(I.Form.Item,{...a,name:[r,"tpm"],rules:[{validator:async(e,t)=>{let l=(ek.getFieldValue("modelLimits")??[])[r]??{};return l.model&&null==t&&null==l.rpm?Promise.reject(Error("Set at least one of TPM or RPM")):Promise.resolve()}}],children:(0,t.jsx)(z.InputNumber,{placeholder:"TPM Limit",min:0})}),(0,t.jsx)(I.Form.Item,{...a,name:[r,"rpm"],children:(0,t.jsx)(z.InputNumber,{placeholder:"RPM Limit",min:0})}),(0,t.jsx)(x.MinusCircleOutlined,{onClick:()=>l(r),style:{color:"#ef4444"}})]},e)),(0,t.jsx)(I.Form.Item,{children:(0,t.jsx)(M.Button,{type:"dashed",onClick:()=>r(),block:!0,icon:(0,t.jsx)(b.PlusOutlined,{}),children:"Add Model Limit"})})]})})}),(0,t.jsx)(I.Form.Item,{label:"Router Settings",children:(0,t.jsx)(ei.default,{ref:ta,accessToken:o||"",value:tw.router_settings?{router_settings:tw.router_settings}:void 0})}),(0,t.jsx)(I.Form.Item,{label:(0,t.jsxs)("span",{children:["Guardrails"," ",(0,t.jsx)(L.Tooltip,{title:"Select which guardrails apply to this team. Global guardrails are enabled by default — uncheck to opt out. Other guardrails are opt-in.",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/guardrails/quick_start",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),name:"guardrails",children:(0,t.jsxs)(A.Select,{mode:"multiple",placeholder:"Select guardrails",optionLabelProp:"label",tagRender:({label:e,value:r,closable:l,onClose:a})=>{let s=eX.has(r);return(0,t.jsxs)(P.Tag,{color:"blue",closable:l,onClose:a,onMouseDown:tk,style:{marginInlineEnd:4},children:[s&&(0,t.jsx)(g.GlobalOutlined,{style:{marginInlineEnd:4},"aria-label":"Global guardrail"}),e]})},children:[(0,t.jsx)(A.Select.OptGroup,{label:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(g.GlobalOutlined,{style:{marginInlineEnd:4}}),"Global"]}),children:(eJ?.guardrails??[]).filter(e=>e.litellm_params?.default_on).map(e=>(0,t.jsx)(A.Select.Option,{value:e.guardrail_name,label:e.guardrail_name,disabled:th,children:e.guardrail_name},e.guardrail_name))}),(0,t.jsx)(A.Select.OptGroup,{label:"Other",children:(eJ?.guardrails??[]).filter(e=>!e.litellm_params?.default_on).map(e=>(0,t.jsx)(A.Select.Option,{value:e.guardrail_name,label:e.guardrail_name,children:e.guardrail_name},e.guardrail_name))})]})}),(0,t.jsx)(I.Form.Item,{label:(0,t.jsxs)("span",{children:["Disable all global guardrails"," ",(0,t.jsx)(L.Tooltip,{title:"Kill switch: bypass every global guardrail for this team, including any added in the future. For per-guardrail opt-out instead, use the Guardrails dropdown above.",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"disable_global_guardrails",valuePropName:"checked",children:(0,t.jsx)(F.Switch,{checkedChildren:"Yes",unCheckedChildren:"No"})}),(0,t.jsx)(I.Form.Item,{label:(0,t.jsxs)("span",{children:["Policies"," ",(0,t.jsx)(L.Tooltip,{title:"Apply policies to this team to control guardrails and other settings",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),name:"policies",children:(0,t.jsx)(A.Select,{mode:"tags",placeholder:"Select or enter policies",options:eZ.map(e=>({value:e,label:e}))})}),(0,t.jsx)(I.Form.Item,{label:(0,t.jsxs)("span",{children:["Access Groups"," ",(0,t.jsx)(L.Tooltip,{title:"Assign access groups to this team. Access groups control which models, MCP servers, and agents this team can use",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"access_group_ids",children:(0,t.jsx)(V.default,{placeholder:"Select access groups (optional)"})}),(0,t.jsx)(I.Form.Item,{label:"Vector Stores",name:"vector_stores","aria-label":"Vector Stores",children:(0,t.jsx)(el.default,{onChange:e=>ek.setFieldValue("vector_stores",e),value:ek.getFieldValue("vector_stores"),accessToken:o||"",placeholder:"Select vector stores"})}),(0,t.jsx)(I.Form.Item,{label:"Allowed Pass Through Routes",name:"allowed_passthrough_routes",children:(0,t.jsx)(H.default,{onChange:e=>ek.setFieldValue("allowed_passthrough_routes",e),value:ek.getFieldValue("allowed_passthrough_routes"),accessToken:o||"",placeholder:"Select pass through routes"})}),(0,t.jsx)(I.Form.Item,{label:"MCP Servers / Access Groups",name:"mcp_servers_and_groups",children:(0,t.jsx)(Q.default,{onChange:e=>ek.setFieldValue("mcp_servers_and_groups",e),value:ek.getFieldValue("mcp_servers_and_groups"),accessToken:o||"",placeholder:"Select MCP servers or access groups (optional)"})}),(0,t.jsx)(I.Form.Item,{name:"mcp_tool_permissions",initialValue:{},hidden:!0,children:(0,t.jsx)(O.Input,{type:"hidden"})}),(0,t.jsx)(I.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.mcp_servers_and_groups!==t.mcp_servers_and_groups||e.mcp_tool_permissions!==t.mcp_tool_permissions,children:()=>(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsx)(X.default,{accessToken:o||"",selectedServers:ek.getFieldValue("mcp_servers_and_groups")?.servers||[],toolPermissions:ek.getFieldValue("mcp_tool_permissions")||{},onChange:e=>ek.setFieldsValue({mcp_tool_permissions:e})})})}),(0,t.jsx)(I.Form.Item,{label:"Agents / Access Groups",name:"agents_and_groups",children:(0,t.jsx)(K.default,{onChange:e=>ek.setFieldValue("agents_and_groups",e),value:ek.getFieldValue("agents_and_groups"),accessToken:o||"",placeholder:"Select agents or access groups (optional)"})}),(0,t.jsxs)(y.Accordion,{className:"mt-4 mb-4",children:[(0,t.jsx)(v.AccordionHeader,{children:(0,t.jsx)("b",{children:"Search Tool Settings"})}),(0,t.jsx)(j.AccordionBody,{children:(0,t.jsx)(I.Form.Item,{label:"Allowed Search Tools",name:"object_permission_search_tools",tooltip:"Select which search tools this team can access. Leave empty to allow all search tools.",children:(0,t.jsx)(ea,{onChange:e=>ek.setFieldValue("object_permission_search_tools",e),value:ek.getFieldValue("object_permission_search_tools"),accessToken:o||"",placeholder:"Select search tools (optional, empty = all allowed)"})})})]}),(0,t.jsx)(I.Form.Item,{label:"Organization",name:"organization_id",children:(0,t.jsx)(A.Select,{allowClear:!0,placeholder:"Select an organization",showSearch:!0,optionFilterProp:"label",options:td.map(e=>({value:e.organization_id,label:e.organization_alias||e.organization_id}))})}),(0,t.jsx)(I.Form.Item,{label:"Logging Settings",name:"logging_settings",children:(0,t.jsx)(es.default,{value:ek.getFieldValue("logging_settings"),onChange:e=>ek.setFieldValue("logging_settings",e)})}),(0,t.jsx)(I.Form.Item,{label:"Secret Manager Settings",name:"secret_manager_settings",help:eh?"Enter secret manager configuration as a JSON object.":"Premium feature - Upgrade to manage secret manager settings.",rules:[{validator:async(e,t)=>{if(!t)return Promise.resolve();try{return JSON.parse(t),Promise.resolve()}catch(e){return Promise.reject(Error("Please enter valid JSON"))}}}],children:(0,t.jsx)(O.Input.TextArea,{rows:6,placeholder:'{"namespace": "admin", "mount": "secret", "path_prefix": "litellm"}',disabled:!eh})}),(0,t.jsx)(I.Form.Item,{label:"Metadata",name:"metadata",children:(0,t.jsx)(O.Input.TextArea,{rows:10})}),(0,t.jsx)("div",{className:"sticky z-10 bg-white p-4 pr-0 border-t border-gray-200 bottom-[-1.5rem] inset-x-[-1.5rem]",children:(0,t.jsxs)("div",{className:"flex justify-end items-center gap-2",children:[(0,t.jsx)(M.Button,{onClick:()=>eV(!1),disabled:tr,children:"Cancel"}),(0,t.jsx)(M.Button,{icon:(0,t.jsx)(_.SaveOutlined,{className:"h-4 w-4"}),type:"primary",htmlType:"submit",loading:tr,children:"Save Changes"})]})})]}):(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Team Name"}),(0,t.jsx)("div",{children:tw.team_alias})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Team ID"}),(0,t.jsx)("div",{className:"font-mono",children:tw.team_id})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Created At"}),(0,t.jsx)("div",{children:new Date(tw.created_at).toLocaleString()})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Models"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2 mt-1",children:tw.models.map((e,r)=>(0,t.jsx)(w.Badge,{color:"red",children:e},r))})]}),tw.default_team_member_models&&tw.default_team_member_models.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Default Member Models"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2 mt-1",children:tw.default_team_member_models.map((e,r)=>(0,t.jsx)(w.Badge,{color:"blue",children:e},r))})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Rate Limits"}),(0,t.jsxs)("div",{children:["TPM: ",tw.tpm_limit||"Unlimited"]}),(0,t.jsxs)("div",{children:["RPM: ",tw.rpm_limit||"Unlimited"]}),(ef=tw.metadata?.model_tpm_limit??{},ey=tw.metadata?.model_rpm_limit??{},0===(ej=Array.from(new Set([...Object.keys(ef),...Object.keys(ey)]))).length?null:(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsx)(C.Text,{className:"text-gray-500",children:"Per-model limits:"}),ej.map(e=>(0,t.jsxs)("div",{className:"text-xs ml-2",children:[e,": TPM ",ef[e]??"—",", RPM ",ey[e]??"—"]},e))]}))]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Team Budget"}),(0,t.jsxs)("div",{children:["Max Budget:"," ",null!==tw.max_budget?`$${(0,m.formatNumberWithCommas)(tw.max_budget,4)}`:"No Limit"]}),(0,t.jsxs)("div",{children:["Soft Budget:"," ",null!==tw.soft_budget&&void 0!==tw.soft_budget?`$${(0,m.formatNumberWithCommas)(tw.soft_budget,4)}`:"No Limit"]}),(0,t.jsxs)("div",{children:["Budget Reset: ",tw.budget_duration||"Never"]}),tw.metadata?.soft_budget_alerting_emails&&Array.isArray(tw.metadata.soft_budget_alerting_emails)&&tw.metadata.soft_budget_alerting_emails.length>0&&(0,t.jsxs)("div",{children:["Soft Budget Alerting Emails: ",tw.metadata.soft_budget_alerting_emails.join(", ")]})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(C.Text,{className:"font-medium",children:["Team Member Settings"," ",(0,t.jsx)(L.Tooltip,{title:"These are limits on individual team members",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),(0,t.jsxs)("div",{children:["Max Budget: ",tw.team_member_budget_table?.max_budget||"No Limit"]}),(0,t.jsxs)("div",{children:["Budget Duration: ",tw.team_member_budget_table?.budget_duration||"No Limit"]}),(0,t.jsxs)("div",{children:["Key Duration: ",tw.metadata?.team_member_key_duration||"No Limit"]}),(0,t.jsxs)("div",{children:["TPM Limit: ",tw.team_member_budget_table?.tpm_limit||"No Limit"]}),(0,t.jsxs)("div",{children:["RPM Limit: ",tw.team_member_budget_table?.rpm_limit||"No Limit"]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Router Settings"}),tw.router_settings&&Object.values(tw.router_settings).some(e=>null!=e&&""!==e&&!(Array.isArray(e)&&0===e.length))?(0,t.jsxs)("div",{className:"mt-1 space-y-1",children:[tw.router_settings.routing_strategy&&(0,t.jsxs)("div",{children:["Routing Strategy:"," ",(0,t.jsx)(w.Badge,{color:"blue",children:tw.router_settings.routing_strategy})]}),null!=tw.router_settings.num_retries&&(0,t.jsxs)("div",{children:["Number of Retries: ",tw.router_settings.num_retries]}),null!=tw.router_settings.allowed_fails&&(0,t.jsxs)("div",{children:["Allowed Failures: ",tw.router_settings.allowed_fails]}),null!=tw.router_settings.cooldown_time&&(0,t.jsxs)("div",{children:["Cooldown Time: ",tw.router_settings.cooldown_time,"s"]}),null!=tw.router_settings.timeout&&(0,t.jsxs)("div",{children:["Timeout: ",tw.router_settings.timeout,"s"]}),null!=tw.router_settings.retry_after&&(0,t.jsxs)("div",{children:["Retry After: ",tw.router_settings.retry_after,"s"]}),tw.router_settings.fallbacks&&Array.isArray(tw.router_settings.fallbacks)&&tw.router_settings.fallbacks.length>0&&(0,t.jsxs)("div",{children:["Fallbacks: ",tw.router_settings.fallbacks.length," configured"]}),tw.router_settings.enable_tag_filtering&&(0,t.jsx)("div",{children:"Tag Filtering: Enabled"})]}):(0,t.jsx)("div",{className:"text-gray-400",children:"No router settings configured"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Organization ID"}),(0,t.jsx)("div",{children:tw.organization_id})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Status"}),(0,t.jsx)(w.Badge,{color:tw.blocked?"red":"green",children:tw.blocked?"Blocked":"Active"})]}),(0,t.jsx)(et.default,{objectPermission:tw.object_permission,variant:"inline",className:"pt-4 border-t border-gray-200",accessToken:o}),(0,t.jsx)(q,{globalGuardrailNames:eX,teamGuardrails:Array.isArray(tw.metadata?.guardrails)?tw.metadata.guardrails:[],optedOutGlobalGuardrails:Array.isArray(tw.metadata?.opted_out_global_guardrails)?tw.metadata.opted_out_global_guardrails:[],killSwitchOn:tS,variant:"inline",className:"pt-4 border-t border-gray-200"}),(0,t.jsx)(J.default,{loggingConfigs:tw.metadata?.logging||[],disabledCallbacks:[],variant:"inline",className:"pt-4 border-t border-gray-200"}),tw.metadata?.secret_manager_settings&&(0,t.jsxs)("div",{className:"pt-4 border-t border-gray-200",children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Secret Manager Settings"}),(0,t.jsx)("pre",{className:"mt-2 bg-gray-50 p-3 rounded text-xs overflow-x-auto",children:JSON.stringify(tw.metadata.secret_manager_settings,null,2)})]})]})]})}].filter(e=>tx.includes(e.key))}),(0,t.jsx)(en.default,{visible:eP,onCancel:()=>eL(!1),onSubmit:ty,initialData:eB,mode:"edit",config:{title:"Edit Member",showEmail:!0,showUserId:!0,roleOptions:[{label:"Admin",value:"admin"},{label:"User",value:"user"}],additionalFields:[{name:"max_budget_in_team",label:(0,t.jsxs)("span",{children:["Team Member Budget (USD)"," ",(0,t.jsx)(L.Tooltip,{title:"Maximum amount in USD this member can spend within this team. This is separate from any global user budget limits",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),type:"numerical",step:.01,min:0,placeholder:"Budget limit for this member within this team"},{name:"tpm_limit",label:(0,t.jsxs)("span",{children:["Team Member TPM Limit"," ",(0,t.jsx)(L.Tooltip,{title:"Maximum tokens per minute this member can use within this team. This is separate from any global user TPM limit",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),type:"numerical",step:1,min:0,placeholder:"Tokens per minute limit for this member in this team"},{name:"rpm_limit",label:(0,t.jsxs)("span",{children:["Team Member RPM Limit"," ",(0,t.jsx)(L.Tooltip,{title:"Maximum requests per minute this member can make within this team. This is separate from any global user RPM limit",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),type:"numerical",step:1,min:0,placeholder:"Requests per minute limit for this member in this team"},{name:"allowed_models",label:(0,t.jsxs)("span",{children:["Allowed Models"," ",(0,t.jsx)(L.Tooltip,{title:"Models this member can access within this team. Leave empty to inherit all team models.",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),type:"multi-select",options:(tw.models||[]).map(e=>({label:e,value:e})),placeholder:"Leave empty to inherit all team models"}]}}),(0,t.jsx)(s.default,{isVisible:eC,onCancel:()=>eN(!1),onSubmit:tf,accessToken:o,teamId:e}),(0,t.jsx)(G.default,{isOpen:e7,title:"Delete Team Member",alertMessage:"Removing team members will also delete any keys created by or created for this member.",message:"Are you sure you want to remove this member from the team? This action cannot be undone.",resourceInformationTitle:"Team Member Information",resourceInformation:[{label:"User ID",value:e6?.user_id,code:!0},{label:"Email",value:e6?.user_email},{label:"Role",value:e6?.role}],onCancel:()=>{e9(!1),e8(null)},onOk:tj,confirmLoading:te})]})}],56567)}]); \ No newline at end of file +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,728889,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(829087),l=e.i(480731),s=e.i(444755),i=e.i(673706),n=e.i(95779);let o={xs:{paddingX:"px-1.5",paddingY:"py-1.5"},sm:{paddingX:"px-1.5",paddingY:"py-1.5"},md:{paddingX:"px-2",paddingY:"py-2"},lg:{paddingX:"px-2",paddingY:"py-2"},xl:{paddingX:"px-2.5",paddingY:"py-2.5"}},d={xs:{height:"h-3",width:"w-3"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-7",width:"w-7"},xl:{height:"h-9",width:"w-9"}},m={simple:{rounded:"",border:"",ring:"",shadow:""},light:{rounded:"rounded-tremor-default",border:"",ring:"",shadow:""},shadow:{rounded:"rounded-tremor-default",border:"border",ring:"",shadow:"shadow-tremor-card dark:shadow-dark-tremor-card"},solid:{rounded:"rounded-tremor-default",border:"border-2",ring:"ring-1",shadow:""},outlined:{rounded:"rounded-tremor-default",border:"border",ring:"ring-2",shadow:""}},c=(0,i.makeClassName)("Icon"),u=r.default.forwardRef((e,u)=>{let{icon:h,variant:g="simple",tooltip:p,size:x=l.Sizes.SM,color:b,className:_}=e,f=(0,t.__rest)(e,["icon","variant","tooltip","size","color","className"]),y=((e,t)=>{switch(e){case"simple":return{textColor:t?(0,i.getColorClassNames)(t,n.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:"",borderColor:"",ringColor:""};case"light":return{textColor:t?(0,i.getColorClassNames)(t,n.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,s.tremorTwMerge)((0,i.getColorClassNames)(t,n.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand-muted dark:bg-dark-tremor-brand-muted",borderColor:"",ringColor:""};case"shadow":return{textColor:t?(0,i.getColorClassNames)(t,n.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,s.tremorTwMerge)((0,i.getColorClassNames)(t,n.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:"border-tremor-border dark:border-dark-tremor-border",ringColor:""};case"solid":return{textColor:t?(0,i.getColorClassNames)(t,n.colorPalette.text).textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,s.tremorTwMerge)((0,i.getColorClassNames)(t,n.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand dark:bg-dark-tremor-brand",borderColor:"border-tremor-brand-inverted dark:border-dark-tremor-brand-inverted",ringColor:"ring-tremor-ring dark:ring-dark-tremor-ring"};case"outlined":return{textColor:t?(0,i.getColorClassNames)(t,n.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,s.tremorTwMerge)((0,i.getColorClassNames)(t,n.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:t?(0,i.getColorClassNames)(t,n.colorPalette.ring).borderColor:"border-tremor-brand-subtle dark:border-dark-tremor-brand-subtle",ringColor:t?(0,s.tremorTwMerge)((0,i.getColorClassNames)(t,n.colorPalette.ring).ringColor,"ring-opacity-40"):"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"}}})(g,b),{tooltipProps:j,getReferenceProps:v}=(0,a.useTooltip)();return r.default.createElement("span",Object.assign({ref:(0,i.mergeRefs)([u,j.refs.setReference]),className:(0,s.tremorTwMerge)(c("root"),"inline-flex shrink-0 items-center justify-center",y.bgColor,y.textColor,y.borderColor,y.ringColor,m[g].rounded,m[g].border,m[g].shadow,m[g].ring,o[x].paddingX,o[x].paddingY,_)},v,f),r.default.createElement(a.default,Object.assign({text:p},j)),r.default.createElement(h,{className:(0,s.tremorTwMerge)(c("icon"),"shrink-0",d[x].height,d[x].width)}))});u.displayName="Icon",e.s(["default",0,u],728889)},752978,e=>{"use strict";var t=e.i(728889);e.s(["Icon",()=>t.default])},591935,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"}))});e.s(["PencilAltIcon",0,r],591935)},434626,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"}))});e.s(["ExternalLinkIcon",0,r],434626)},122577,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z"}),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["PlayIcon",0,r],122577)},551332,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3"}))});e.s(["ClipboardCopyIcon",0,r],551332)},902555,e=>{"use strict";var t=e.i(843476),r=e.i(591935),a=e.i(122577),l=e.i(278587),s=e.i(68155),i=e.i(360820),n=e.i(871943),o=e.i(434626),d=e.i(551332),m=e.i(592968),c=e.i(115504),u=e.i(752978);function h({icon:e,onClick:r,className:a,disabled:l,dataTestId:s}){return l?(0,t.jsx)(u.Icon,{icon:e,size:"sm",className:"opacity-50 cursor-not-allowed","data-testid":s}):(0,t.jsx)(u.Icon,{icon:e,size:"sm",onClick:r,className:(0,c.cx)("cursor-pointer",a),"data-testid":s})}let g={Edit:{icon:r.PencilAltIcon,className:"hover:text-blue-600"},Delete:{icon:s.TrashIcon,className:"hover:text-red-600"},Test:{icon:a.PlayIcon,className:"hover:text-blue-600"},Regenerate:{icon:l.RefreshIcon,className:"hover:text-green-600"},Up:{icon:i.ChevronUpIcon,className:"hover:text-blue-600"},Down:{icon:n.ChevronDownIcon,className:"hover:text-blue-600"},Open:{icon:o.ExternalLinkIcon,className:"hover:text-green-600"},Copy:{icon:d.ClipboardCopyIcon,className:"hover:text-blue-600"}};e.s(["default",0,function({onClick:e,tooltipText:r,disabled:a=!1,disabledTooltipText:l,dataTestId:s,variant:i}){let{icon:n,className:o}=g[i];return(0,t.jsx)(m.Tooltip,{title:a?l:r,children:(0,t.jsx)("span",{children:(0,t.jsx)(h,{icon:n,onClick:e,className:o,disabled:a,dataTestId:s})})})}],902555)},907308,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(212931),l=e.i(808613),s=e.i(464571),i=e.i(199133),n=e.i(592968),o=e.i(213205),d=e.i(374009),m=e.i(764205);e.s(["default",0,({isVisible:e,onCancel:c,onSubmit:u,accessToken:h,title:g="Add Team Member",roles:p=[{label:"admin",value:"admin",description:"Admin role. Can create team keys, add members, and manage settings."},{label:"user",value:"user",description:"User role. Can view team info, but not manage it."}],defaultRole:x="user",teamId:b})=>{let[_]=l.Form.useForm(),[f,y]=(0,r.useState)([]),[j,v]=(0,r.useState)(!1),[w,S]=(0,r.useState)("user_email"),[T,C]=(0,r.useState)(!1),N=async(e,t)=>{if(!e)return void y([]);v(!0);try{let r=new URLSearchParams;if(r.append(t,e),b&&r.append("team_id",b),null==h)return;let a=(await (0,m.userFilterUICall)(h,r)).map(e=>({label:"user_email"===t?`${e.user_email}`:`${e.user_id}`,value:"user_email"===t?e.user_email:e.user_id,user:e}));y(a)}catch(e){console.error("Error fetching users:",e)}finally{v(!1)}},k=(0,r.useCallback)((0,d.default)((e,t)=>N(e,t),300),[]),M=(e,t)=>{S(t),k(e,t)},I=(e,t)=>{let r=t.user;_.setFieldsValue({user_email:r.user_email,user_id:r.user_id,role:_.getFieldValue("role")})},O=async e=>{C(!0);try{await u(e)}finally{C(!1)}};return(0,t.jsx)(a.Modal,{title:g,open:e,onCancel:()=>{_.resetFields(),y([]),c()},footer:null,width:800,maskClosable:!T,children:(0,t.jsxs)(l.Form,{form:_,onFinish:O,labelCol:{span:8},wrapperCol:{span:16},labelAlign:"left",initialValues:{role:x},children:[(0,t.jsx)(l.Form.Item,{label:"Email",name:"user_email",className:"mb-4",children:(0,t.jsx)(i.Select,{showSearch:!0,className:"w-full",placeholder:"Search by email",filterOption:!1,onSearch:e=>M(e,"user_email"),onSelect:(e,t)=>I(e,t),options:"user_email"===w?f:[],loading:j,allowClear:!0,"data-testid":"member-email-search"})}),(0,t.jsx)("div",{className:"text-center mb-4",children:"OR"}),(0,t.jsx)(l.Form.Item,{label:"User ID",name:"user_id",className:"mb-4",children:(0,t.jsx)(i.Select,{showSearch:!0,className:"w-full",placeholder:"Search by user ID",filterOption:!1,onSearch:e=>M(e,"user_id"),onSelect:(e,t)=>I(e,t),options:"user_id"===w?f:[],loading:j,allowClear:!0})}),(0,t.jsx)(l.Form.Item,{label:"Member Role",name:"role",className:"mb-4",children:(0,t.jsx)(i.Select,{defaultValue:x,children:p.map(e=>(0,t.jsx)(i.Select.Option,{value:e.value,children:(0,t.jsxs)(n.Tooltip,{title:e.description,children:[(0,t.jsx)("span",{className:"font-medium",children:e.label}),(0,t.jsxs)("span",{className:"ml-2 text-gray-500 text-sm",children:["- ",e.description]})]})},e.value))})}),(0,t.jsx)("div",{className:"text-right mt-4",children:(0,t.jsx)(s.Button,{type:"primary",htmlType:"submit",icon:(0,t.jsx)(o.UserAddOutlined,{}),loading:T,children:T?"Adding...":"Add Member"})})]})})}])},162386,e=>{"use strict";var t=e.i(843476),r=e.i(625901),a=e.i(109799),l=e.i(785242),s=e.i(738014),i=e.i(199133),n=e.i(981339),o=e.i(592968);let d={label:"All Proxy Models",value:"all-proxy-models"},m={label:"No Default Models",value:"no-default-models"},c=[d,m],u={user:({allProxyModels:e,userModels:t,options:r})=>t&&r?.includeUserModels?t:[],team:({allProxyModels:e,selectedOrganization:t,userModels:r})=>t?t.models.includes(d.value)||0===t.models.length?e:e.filter(e=>t.models.includes(e)):e??[],organization:({allProxyModels:e})=>e,global:({allProxyModels:e})=>e};e.s(["ModelSelect",0,e=>{let{teamID:h,organizationID:g,options:p,context:x,dataTestId:b,value:_=[],onChange:f,style:y}=e,{includeUserModels:j,showAllTeamModelsOption:v,showAllProxyModelsOverride:w,includeSpecialOptions:S}=p||{},{data:T,isLoading:C}=(0,r.useAllProxyModels)(),{data:N,isLoading:k}=(0,l.useTeam)(h),{data:M,isLoading:I}=(0,a.useOrganization)(g),{data:O,isLoading:z}=(0,s.useCurrentUser)(),A=e=>c.some(t=>t.value===e),D=_.some(A),F=M?.models.includes(d.value)||M?.models.length===0;if(C||k||I||z)return(0,t.jsx)(n.Skeleton.Input,{active:!0,block:!0});let{wildcard:$,regular:P}=(e=>{let t=[],r=[];for(let a of e)a.endsWith("/*")?t.push(a):r.push(a);return{wildcard:t,regular:r}})(((e,t,r)=>{let a=Array.from(new Map(e.map(e=>[e.id,e])).values()).map(e=>e.id);if(t.options?.showAllProxyModelsOverride)return a;let l=u[t.context];return l?l({allProxyModels:a,...r,options:t.options}):[]})(T?.data??[],e,{selectedTeam:N,selectedOrganization:M,userModels:O?.models}));return(0,t.jsx)(i.Select,{"data-testid":b,value:_,onChange:e=>{let t=e.filter(A);f(t.length>0?[t[t.length-1]]:e)},style:y,options:[...S?[{label:(0,t.jsx)("span",{children:"Special Options"}),title:"Special Options",options:[...w||F&&S||"global"===x?[{label:(0,t.jsx)("span",{children:"All Proxy Models"}),value:d.value,disabled:_.length>0&&_.some(e=>A(e)&&e!==d.value),key:d.value}]:[],{label:(0,t.jsx)("span",{children:"No Default Models"}),value:m.value,disabled:_.length>0&&_.some(e=>A(e)&&e!==m.value),key:m.value}]}]:[],...$.length>0?[{label:(0,t.jsx)("span",{children:"Wildcard Options"}),title:"Wildcard Options",options:$.map(e=>{let r=e.replace("/*",""),a=r.charAt(0).toUpperCase()+r.slice(1);return{label:(0,t.jsx)("span",{children:`All ${a} models`}),value:e,disabled:D}})}]:[],{label:(0,t.jsx)("span",{children:"Models"}),title:"Models",options:P.map(e=>({label:(0,t.jsx)("span",{children:e}),value:e,disabled:D}))}],mode:"multiple",placeholder:"Select Models",allowClear:!0,maxTagCount:"responsive",maxTagPlaceholder:e=>(0,t.jsx)(o.Tooltip,{styles:{root:{pointerEvents:"none"}},title:e.map(({value:e})=>e).join(", "),children:(0,t.jsxs)("span",{children:["+",e.length," more"]})})})}],162386)},276173,e=>{"use strict";var t=e.i(843476),r=e.i(599724),a=e.i(779241),l=e.i(464571),s=e.i(808613),i=e.i(212931),n=e.i(199133),o=e.i(271645),d=e.i(435451);e.s(["default",0,({visible:e,onCancel:m,onSubmit:c,initialData:u,mode:h,config:g})=>{let p,[x]=s.Form.useForm(),[b,_]=(0,o.useState)(!1);console.log("Initial Data:",u),(0,o.useEffect)(()=>{if(e)if("edit"===h&&u){let e={...u,role:u.role||g.defaultRole,max_budget_in_team:u.max_budget_in_team||null,tpm_limit:u.tpm_limit||null,rpm_limit:u.rpm_limit||null,allowed_models:u.allowed_models||[]};console.log("Setting form values:",e),x.setFieldsValue(e)}else x.resetFields(),x.setFieldsValue({role:g.defaultRole||g.roleOptions[0]?.value})},[e,u,h,x,g.defaultRole,g.roleOptions]);let f=async e=>{try{_(!0);let t=Object.entries(e).reduce((e,[t,r])=>{if("string"==typeof r){let a=r.trim();return""===a&&("max_budget_in_team"===t||"tpm_limit"===t||"rpm_limit"===t)?{...e,[t]:null}:{...e,[t]:a}}return{...e,[t]:r}},{});console.log("Submitting form data:",t),await Promise.resolve(c(t)),x.resetFields()}catch(e){console.error("Form submission error:",e)}finally{_(!1)}};return(0,t.jsx)(i.Modal,{title:g.title||("add"===h?"Add Member":"Edit Member"),open:e,width:1e3,footer:null,onCancel:m,children:(0,t.jsxs)(s.Form,{form:x,onFinish:f,labelCol:{span:8},wrapperCol:{span:16},labelAlign:"left",children:[g.showEmail&&(0,t.jsx)(s.Form.Item,{label:"Email",name:"user_email",className:"mb-4",rules:[{type:"email",message:"Please enter a valid email!"}],children:(0,t.jsx)(a.TextInput,{placeholder:"user@example.com"})}),g.showEmail&&g.showUserId&&(0,t.jsx)("div",{className:"text-center mb-4",children:(0,t.jsx)(r.Text,{children:"OR"})}),g.showUserId&&(0,t.jsx)(s.Form.Item,{label:"User ID",name:"user_id",className:"mb-4",children:(0,t.jsx)(a.TextInput,{placeholder:"user_123"})}),(0,t.jsx)(s.Form.Item,{label:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{children:"Role"}),"edit"===h&&u&&(0,t.jsxs)("span",{className:"text-gray-500 text-sm",children:["(Current: ",(p=u.role,g.roleOptions.find(e=>e.value===p)?.label||p),")"]})]}),name:"role",className:"mb-4",rules:[{required:!0,message:"Please select a role!"}],children:(0,t.jsx)(n.Select,{children:"edit"===h&&u?[...g.roleOptions.filter(e=>e.value===u.role),...g.roleOptions.filter(e=>e.value!==u.role)].map(e=>(0,t.jsx)(n.Select.Option,{value:e.value,children:e.label},e.value)):g.roleOptions.map(e=>(0,t.jsx)(n.Select.Option,{value:e.value,children:e.label},e.value))})}),g.additionalFields?.map(e=>(0,t.jsx)(s.Form.Item,{label:e.label,name:e.name,className:"mb-4",rules:e.rules,children:(e=>{switch(e.type){case"input":return(0,t.jsx)(a.TextInput,{placeholder:e.placeholder});case"numerical":return(0,t.jsx)(d.default,{step:e.step||1,min:e.min||0,style:{width:"100%"},placeholder:e.placeholder||"Enter a numerical value"});case"select":return(0,t.jsx)(n.Select,{children:e.options?.map(e=>(0,t.jsx)(n.Select.Option,{value:e.value,children:e.label},e.value))});case"multi-select":return(0,t.jsx)(n.Select,{mode:"multiple",placeholder:e.placeholder||"Select options",options:e.options,allowClear:!0});default:return null}})(e)},e.name)),(0,t.jsxs)("div",{className:"text-right mt-6",children:[(0,t.jsx)(l.Button,{onClick:m,className:"mr-2",disabled:b,children:"Cancel"}),(0,t.jsx)(l.Button,{type:"default",htmlType:"submit",loading:b,children:"add"===h?b?"Adding...":"Add Member":b?"Saving...":"Save Changes"})]})]})})}])},294612,e=>{"use strict";var t=e.i(843476),r=e.i(100486),a=e.i(827252),l=e.i(213205),s=e.i(771674),i=e.i(464571),n=e.i(770914),o=e.i(291542),d=e.i(262218),m=e.i(592968),c=e.i(898586),u=e.i(902555);let{Text:h}=c.Typography;e.s(["default",0,function({members:e,canEdit:c,onEdit:g,onDelete:p,onAddMember:x,roleColumnTitle:b="Role",roleTooltip:_,extraColumns:f=[],showDeleteForMember:y,emptyText:j}){let v=[{title:"User Email",dataIndex:"user_email",key:"user_email",render:e=>(0,t.jsx)(h,{children:e||"-"})},{title:"User ID",dataIndex:"user_id",key:"user_id",render:e=>"default_user_id"===e?(0,t.jsx)(d.Tag,{color:"blue",children:"Default Proxy Admin"}):(0,t.jsx)(h,{children:e||"-"})},{title:_?(0,t.jsxs)(n.Space,{direction:"horizontal",children:[b,(0,t.jsx)(m.Tooltip,{title:_,children:(0,t.jsx)(a.InfoCircleOutlined,{})})]}):b,dataIndex:"role",key:"role",render:e=>(0,t.jsxs)(n.Space,{children:[e?.toLowerCase()==="admin"||e?.toLowerCase()==="org_admin"?(0,t.jsx)(r.CrownOutlined,{}):(0,t.jsx)(s.UserOutlined,{}),(0,t.jsx)(h,{style:{textTransform:"capitalize"},children:e||"-"})]})},...f,{title:"Actions",key:"actions",fixed:"right",width:120,render:(e,r)=>c?(0,t.jsxs)(n.Space,{children:[(0,t.jsx)(u.default,{variant:"Edit",tooltipText:"Edit member",dataTestId:"edit-member",onClick:()=>g(r)}),(!y||y(r))&&(0,t.jsx)(u.default,{variant:"Delete",tooltipText:"Delete member",dataTestId:"delete-member",onClick:()=>p(r)})]}):null}];return(0,t.jsxs)(n.Space,{direction:"vertical",style:{width:"100%"},children:[(0,t.jsxs)("span",{className:"inline-flex text-sm text-gray-700",children:[e.length," Member",1!==e.length?"s":""]}),(0,t.jsx)(o.Table,{columns:v,dataSource:e,rowKey:e=>e.user_id??e.user_email??JSON.stringify(e),pagination:!1,size:"small",scroll:{x:"max-content"},locale:j?{emptyText:j}:void 0}),x&&c&&(0,t.jsx)(i.Button,{icon:(0,t.jsx)(l.UserAddOutlined,{}),type:"primary",onClick:x,children:"Add Member"})]})}])},160818,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.4 800.9c.2-.3.5-.6.7-.9C920.6 722.1 960 621.7 960 512s-39.4-210.1-104.8-288c-.2-.3-.5-.5-.7-.8-1.1-1.3-2.1-2.5-3.2-3.7-.4-.5-.8-.9-1.2-1.4l-4.1-4.7-.1-.1c-1.5-1.7-3.1-3.4-4.6-5.1l-.1-.1c-3.2-3.4-6.4-6.8-9.7-10.1l-.1-.1-4.8-4.8-.3-.3c-1.5-1.5-3-2.9-4.5-4.3-.5-.5-1-1-1.6-1.5-1-1-2-1.9-3-2.8-.3-.3-.7-.6-1-1C736.4 109.2 629.5 64 512 64s-224.4 45.2-304.3 119.2c-.3.3-.7.6-1 1-1 .9-2 1.9-3 2.9-.5.5-1 1-1.6 1.5-1.5 1.4-3 2.9-4.5 4.3l-.3.3-4.8 4.8-.1.1c-3.3 3.3-6.5 6.7-9.7 10.1l-.1.1c-1.6 1.7-3.1 3.4-4.6 5.1l-.1.1c-1.4 1.5-2.8 3.1-4.1 4.7-.4.5-.8.9-1.2 1.4-1.1 1.2-2.1 2.5-3.2 3.7-.2.3-.5.5-.7.8C103.4 301.9 64 402.3 64 512s39.4 210.1 104.8 288c.2.3.5.6.7.9l3.1 3.7c.4.5.8.9 1.2 1.4l4.1 4.7c0 .1.1.1.1.2 1.5 1.7 3 3.4 4.6 5l.1.1c3.2 3.4 6.4 6.8 9.6 10.1l.1.1c1.6 1.6 3.1 3.2 4.7 4.7l.3.3c3.3 3.3 6.7 6.5 10.1 9.6 80.1 74 187 119.2 304.5 119.2s224.4-45.2 304.3-119.2a300 300 0 0010-9.6l.3-.3c1.6-1.6 3.2-3.1 4.7-4.7l.1-.1c3.3-3.3 6.5-6.7 9.6-10.1l.1-.1c1.5-1.7 3.1-3.3 4.6-5 0-.1.1-.1.1-.2 1.4-1.5 2.8-3.1 4.1-4.7.4-.5.8-.9 1.2-1.4a99 99 0 003.3-3.7zm4.1-142.6c-13.8 32.6-32 62.8-54.2 90.2a444.07 444.07 0 00-81.5-55.9c11.6-46.9 18.8-98.4 20.7-152.6H887c-3 40.9-12.6 80.6-28.5 118.3zM887 484H743.5c-1.9-54.2-9.1-105.7-20.7-152.6 29.3-15.6 56.6-34.4 81.5-55.9A373.86 373.86 0 01887 484zM658.3 165.5c39.7 16.8 75.8 40 107.6 69.2a394.72 394.72 0 01-59.4 41.8c-15.7-45-35.8-84.1-59.2-115.4 3.7 1.4 7.4 2.9 11 4.4zm-90.6 700.6c-9.2 7.2-18.4 12.7-27.7 16.4V697a389.1 389.1 0 01115.7 26.2c-8.3 24.6-17.9 47.3-29 67.8-17.4 32.4-37.8 58.3-59 75.1zm59-633.1c11 20.6 20.7 43.3 29 67.8A389.1 389.1 0 01540 327V141.6c9.2 3.7 18.5 9.1 27.7 16.4 21.2 16.7 41.6 42.6 59 75zM540 640.9V540h147.5c-1.6 44.2-7.1 87.1-16.3 127.8l-.3 1.2A445.02 445.02 0 00540 640.9zm0-156.9V383.1c45.8-2.8 89.8-12.5 130.9-28.1l.3 1.2c9.2 40.7 14.7 83.5 16.3 127.8H540zm-56 56v100.9c-45.8 2.8-89.8 12.5-130.9 28.1l-.3-1.2c-9.2-40.7-14.7-83.5-16.3-127.8H484zm-147.5-56c1.6-44.2 7.1-87.1 16.3-127.8l.3-1.2c41.1 15.6 85 25.3 130.9 28.1V484H336.5zM484 697v185.4c-9.2-3.7-18.5-9.1-27.7-16.4-21.2-16.7-41.7-42.7-59.1-75.1-11-20.6-20.7-43.3-29-67.8 37.2-14.6 75.9-23.3 115.8-26.1zm0-370a389.1 389.1 0 01-115.7-26.2c8.3-24.6 17.9-47.3 29-67.8 17.4-32.4 37.8-58.4 59.1-75.1 9.2-7.2 18.4-12.7 27.7-16.4V327zM365.7 165.5c3.7-1.5 7.3-3 11-4.4-23.4 31.3-43.5 70.4-59.2 115.4-21-12-40.9-26-59.4-41.8 31.8-29.2 67.9-52.4 107.6-69.2zM165.5 365.7c13.8-32.6 32-62.8 54.2-90.2 24.9 21.5 52.2 40.3 81.5 55.9-11.6 46.9-18.8 98.4-20.7 152.6H137c3-40.9 12.6-80.6 28.5-118.3zM137 540h143.5c1.9 54.2 9.1 105.7 20.7 152.6a444.07 444.07 0 00-81.5 55.9A373.86 373.86 0 01137 540zm228.7 318.5c-39.7-16.8-75.8-40-107.6-69.2 18.5-15.8 38.4-29.7 59.4-41.8 15.7 45 35.8 84.1 59.2 115.4-3.7-1.4-7.4-2.9-11-4.4zm292.6 0c-3.7 1.5-7.3 3-11 4.4 23.4-31.3 43.5-70.4 59.2-115.4 21 12 40.9 26 59.4 41.8a373.81 373.81 0 01-107.6 69.2z"}}]},name:"global",theme:"outlined"};var l=e.i(9583),s=r.forwardRef(function(e,s){return r.createElement(l.default,(0,t.default)({},e,{ref:s,icon:a}))});e.s(["GlobalOutlined",0,s],160818)},751904,e=>{"use strict";var t=e.i(401361);e.s(["EditOutlined",()=>t.default])},564897,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"minus-circle",theme:"outlined"};var l=e.i(9583),s=r.forwardRef(function(e,s){return r.createElement(l.default,(0,t.default)({},e,{ref:s,icon:a}))});e.s(["MinusCircleOutlined",0,s],564897)},822315,(e,t,r)=>{e.e,t.exports=function(){"use strict";var e="millisecond",t="second",r="minute",a="hour",l="week",s="month",i="quarter",n="year",o="date",d="Invalid Date",m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,c=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,u=function(e,t,r){var a=String(e);return!a||a.length>=t?e:""+Array(t+1-a.length).join(r)+e},h="en",g={};g[h]={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],r=e%100;return"["+e+(t[(r-20)%10]||t[r]||t[0])+"]"}};var p="$isDayjsObject",x=function(e){return e instanceof y||!(!e||!e[p])},b=function e(t,r,a){var l;if(!t)return h;if("string"==typeof t){var s=t.toLowerCase();g[s]&&(l=s),r&&(g[s]=r,l=s);var i=t.split("-");if(!l&&i.length>1)return e(i[0])}else{var n=t.name;g[n]=t,l=n}return!a&&l&&(h=l),l||!a&&h},_=function(e,t){if(x(e))return e.clone();var r="object"==typeof t?t:{};return r.date=e,r.args=arguments,new y(r)},f={s:u,z:function(e){var t=-e.utcOffset(),r=Math.abs(t);return(t<=0?"+":"-")+u(Math.floor(r/60),2,"0")+":"+u(r%60,2,"0")},m:function e(t,r){if(t.date(){"use strict";var t=e.i(843476),r=e.i(135214),a=e.i(109799),l=e.i(912598),s=e.i(907308),i=e.i(764205),n=e.i(266027);let o=(0,e.i(243652).createQueryKeys)("guardrails"),d=()=>{let{accessToken:e,userId:t,userRole:a}=(0,r.default)();return(0,n.useQuery)({queryKey:o.list({}),queryFn:async()=>(0,i.getGuardrailsList)(e),enabled:!!(e&&t&&a),select:e=>{let t=e?.guardrails??[],r=new Set,a=new Set;for(let e of t)e.litellm_params?.default_on?r.add(e.guardrail_name):a.add(e.guardrail_name);return{guardrails:t,globalGuardrailNames:r,optionalGuardrailNames:a}}})};e.s(["useGuardrails",0,d],838932);var m=e.i(500330),c=e.i(11751),u=e.i(708347),h=e.i(751904),g=e.i(160818),p=e.i(827252),x=e.i(564897),b=e.i(646563),_=e.i(987432),f=e.i(530212),y=e.i(677667),j=e.i(130643),v=e.i(898667),w=e.i(389083),S=e.i(304967),T=e.i(350967),C=e.i(599724),N=e.i(779241),k=e.i(629569),M=e.i(464571),I=e.i(808613),O=e.i(311451),z=e.i(28651),A=e.i(199133),D=e.i(770914),F=e.i(790848),$=e.i(653496),P=e.i(262218),L=e.i(592968),R=e.i(888259),B=e.i(678784),E=e.i(118366),U=e.i(271645),V=e.i(9314),K=e.i(552130),G=e.i(127952);function W({className:e,value:r,onChange:a}){return(0,t.jsxs)(A.Select,{className:e,value:r,onChange:a,children:[(0,t.jsx)(A.Select.Option,{value:"24h",children:"Daily"}),(0,t.jsx)(A.Select.Option,{value:"7d",children:"Weekly"}),(0,t.jsx)(A.Select.Option,{value:"30d",children:"Monthly"})]})}var H=e.i(844565),Y=e.i(355619);let q=function({globalGuardrailNames:e,teamGuardrails:r=[],optedOutGlobalGuardrails:a=[],killSwitchOn:l=!1,variant:s="card",className:i=""}){let n=new Set(a),o=Array.from(e).filter(e=>!n.has(e)),d=r.filter(t=>!e.has(t)),m=l||0!==o.length||0!==d.length?(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("span",{className:"block text-sm font-medium text-gray-700 mb-2",children:[(0,t.jsx)(g.GlobalOutlined,{style:{marginInlineEnd:4},"aria-label":"Global guardrail"}),"Global"]}),l?(0,t.jsx)(P.Tag,{color:"gold",children:"Bypassed for this team"}):o.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:o.map(e=>(0,t.jsx)(P.Tag,{color:"blue",children:e},e))}):(0,t.jsx)("span",{className:"block text-sm text-gray-500",children:"None configured"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Team-specific"}),d.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:d.map(e=>(0,t.jsx)(P.Tag,{color:"blue",children:e},e))}):(0,t.jsx)("span",{className:"block text-sm text-gray-500",children:"None configured"})]})]}):(0,t.jsx)("span",{className:"block text-gray-500",children:"No guardrails configured"});return"card"===s?(0,t.jsxs)("div",{className:`bg-white border border-gray-200 rounded-lg p-6 ${i}`,children:[(0,t.jsx)("div",{className:"flex items-center gap-2 mb-6",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"block font-semibold text-gray-900",children:"Guardrails Settings"}),(0,t.jsx)("span",{className:"block text-xs text-gray-500",children:"Global and team-specific guardrails applied to this team"})]})}),m]}):(0,t.jsxs)("div",{className:`${i}`,children:[(0,t.jsx)("span",{className:"block font-medium text-gray-900 mb-3",children:"Guardrails Settings"}),m]})};var J=e.i(643449),Q=e.i(75921),X=e.i(390605),Z=e.i(162386),ee=e.i(727749),et=e.i(384767),er=e.i(435451),ea=e.i(916940);let el=({onChange:e,value:r,className:a,accessToken:l,placeholder:s="Select search tools (optional)",disabled:n=!1})=>{let[o,d]=(0,U.useState)([]),[m,c]=(0,U.useState)(!1);return(0,U.useEffect)(()=>{(async()=>{if(l){c(!0);try{let e=await (0,i.fetchSearchTools)(l),t=Array.isArray(e?.search_tools)?e.search_tools:Array.isArray(e?.data)?e.data:[];d(t.map(e=>e?.search_tool_name).filter(e=>"string"==typeof e&&e.length>0).map(e=>({label:e,value:e})))}catch(e){console.error("Failed to load search tools:",e)}finally{c(!1)}}})()},[l]),(0,t.jsx)(A.Select,{mode:"multiple",allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:s,onChange:e,value:r,loading:m,className:a,options:o,style:{width:"100%"},disabled:n})};e.s(["default",0,el],471145);var es=e.i(183588),ei=e.i(460285),en=e.i(276173),eo=e.i(91979),ed=e.i(269200),em=e.i(942232),ec=e.i(977572),eu=e.i(427612),eh=e.i(64848),eg=e.i(496020),ep=e.i(536916),ex=e.i(21548);let eb={"/key/generate":"Member can generate a virtual key for this team","/key/service-account/generate":"Member can generate a service account key (not belonging to any user) for this team","/key/update":"Member can update a virtual key belonging to this team","/key/delete":"Member can delete a virtual key belonging to this team","/key/info":"Member can get info about a virtual key belonging to this team","/key/regenerate":"Member can regenerate a virtual key belonging to this team","/key/{key_id}/regenerate":"Member can regenerate a virtual key belonging to this team","/key/list":"Member can list virtual keys belonging to this team","/key/block":"Member can block a virtual key belonging to this team","/key/unblock":"Member can unblock a virtual key belonging to this team","/team/daily/activity":"Member can view all team usage data (not just their own)","/spend/logs":"Member can view spend logs for the entire team (not just their own)"},e_=({teamId:e,accessToken:r,canEditTeam:a})=>{let[l,s]=(0,U.useState)([]),[n,o]=(0,U.useState)([]),[d,m]=(0,U.useState)(!0),[c,u]=(0,U.useState)(!1),[h,g]=(0,U.useState)(!1),p=async()=>{try{if(m(!0),!r)return;let t=await (0,i.getTeamPermissionsCall)(r,e),a=t.all_available_permissions||[];s(a);let l=t.team_member_permissions||[];o(l),g(!1)}catch(e){ee.default.fromBackend("Failed to load permissions"),console.error("Error fetching permissions:",e)}finally{m(!1)}};(0,U.useEffect)(()=>{p()},[e,r]);let x=async()=>{try{if(!r)return;u(!0),await (0,i.teamPermissionsUpdateCall)(r,e,n),ee.default.success("Permissions updated successfully"),g(!1)}catch(e){ee.default.fromBackend("Failed to update permissions"),console.error("Error updating permissions:",e)}finally{u(!1)}};if(d)return(0,t.jsx)("div",{className:"p-6 text-center",children:"Loading permissions..."});let b=l.length>0;return(0,t.jsxs)(S.Card,{className:"bg-white shadow-md rounded-md p-6",children:[(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center border-b pb-4 mb-6",children:[(0,t.jsx)(k.Title,{className:"mb-2 sm:mb-0",children:"Member Permissions"}),a&&h&&(0,t.jsxs)("div",{className:"flex gap-3",children:[(0,t.jsx)(M.Button,{icon:(0,t.jsx)(eo.ReloadOutlined,{}),onClick:()=>{p()},children:"Reset"}),(0,t.jsx)(M.Button,{onClick:x,loading:c,type:"primary",icon:(0,t.jsx)(_.SaveOutlined,{}),children:"Save Changes"})]})]}),(0,t.jsx)(C.Text,{className:"mb-6 text-gray-600",children:"Control what team members can do when they are not team admins."}),b?(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(ed.Table,{className:" min-w-full",children:[(0,t.jsx)(eu.TableHead,{children:(0,t.jsxs)(eg.TableRow,{children:[(0,t.jsx)(eh.TableHeaderCell,{children:"Method"}),(0,t.jsx)(eh.TableHeaderCell,{children:"Endpoint"}),(0,t.jsx)(eh.TableHeaderCell,{children:"Description"}),(0,t.jsx)(eh.TableHeaderCell,{className:"sticky right-0 bg-white shadow-[-4px_0_4px_-4px_rgba(0,0,0,0.1)] text-center",children:"Allow Access"})]})}),(0,t.jsx)(em.TableBody,{children:l.map(e=>{let r=(e=>{let t=e.includes("/info")||e.includes("/list")||e.includes("/activity")||"/spend/logs"===e?"GET":"POST",r=eb[e];if(!r){for(let[t,a]of Object.entries(eb))if(e.includes(t)){r=a;break}}return r||(r=`Access ${e}`),{method:t,endpoint:e,description:r,route:e}})(e);return(0,t.jsxs)(eg.TableRow,{className:"hover:bg-gray-50 transition-colors",children:[(0,t.jsx)(ec.TableCell,{children:(0,t.jsx)("span",{className:`px-2 py-1 rounded text-xs font-medium ${"GET"===r.method?"bg-blue-100 text-blue-800":"bg-green-100 text-green-800"}`,children:r.method})}),(0,t.jsx)(ec.TableCell,{children:(0,t.jsx)("span",{className:"font-mono text-sm text-gray-800",children:r.endpoint})}),(0,t.jsx)(ec.TableCell,{className:"text-gray-700",children:r.description}),(0,t.jsx)(ec.TableCell,{className:"sticky right-0 bg-white shadow-[-4px_0_4px_-4px_rgba(0,0,0,0.1)] text-center",children:(0,t.jsx)(ep.Checkbox,{checked:n.includes(e),onChange:t=>{o(t.target.checked?[...n,e]:n.filter(t=>t!==e)),g(!0)},disabled:!a})})]},e)})})]})}):(0,t.jsx)("div",{className:"py-12",children:(0,t.jsx)(ex.Empty,{description:"No permissions available"})})]})};var ef=e.i(822315);function ey(e){if(!e)return null;let t=(0,ef.default)(e);return t.isValid()?t.format("MMM D, YYYY"):null}var ej=e.i(175712),ev=e.i(178654),ew=e.i(621192),eS=e.i(898586);let eT=async(e,t)=>{let r=(0,i.getProxyBaseUrl)(),a=r?`${r}/team/${encodeURIComponent(t)}/members/me`:`/team/${encodeURIComponent(t)}/members/me`,l=await fetch(a,{method:"GET",headers:{[(0,i.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"}});if(404===l.status)return null;if(!l.ok){let e=await l.json().catch(()=>({}));throw Error((0,i.deriveErrorMessage)(e))}return await l.json()},eC=(e,r)=>(0,t.jsxs)(D.Space,{size:4,children:[(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:e}),(0,t.jsx)(L.Tooltip,{title:r,children:(0,t.jsx)(p.InfoCircleOutlined,{style:{color:"#8c8c8c"}})})]}),eN=(e,t=4)=>null==e?"0":(0,m.formatNumberWithCommas)(e,t),ek=e=>null==e?"Unlimited":(0,m.formatNumberWithCommas)(e,0);function eM({teamId:e}){let{data:a,isLoading:l,error:s}=(e=>{let{accessToken:t}=(0,r.default)();return(0,n.useQuery)({queryKey:["team",e,"members","me"],queryFn:()=>eT(t,e),enabled:!!(t&&e)})})(e);if(l)return(0,t.jsx)(ej.Card,{children:(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"Loading your membership info…"})});if(s)return(0,t.jsx)(ej.Card,{children:(0,t.jsx)(eS.Typography.Text,{type:"danger",children:s instanceof Error?s.message:"Failed to load your membership info for this team."})});if(!a)return(0,t.jsx)(ej.Card,{children:(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"No membership info available for the current user in this team."})});let i=a.litellm_budget_table??null,o=i?.max_budget??null,d=a.spend??0,m=a.total_spend??0,c=i?.tpm_limit??null,u=i?.rpm_limit??null,h=ey(i?.budget_reset_at),g=i?.allowed_models??null;return(0,t.jsxs)(D.Space,{direction:"vertical",size:"middle",style:{width:"100%"},children:[(0,t.jsx)(ej.Card,{children:(0,t.jsxs)(ew.Row,{gutter:[24,16],children:[(0,t.jsxs)(ev.Col,{xs:24,sm:12,md:8,children:[(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"User"}),(0,t.jsx)("div",{style:{marginTop:4},children:(0,t.jsx)(eS.Typography.Text,{strong:!0,children:a.user_email||a.user_id})}),(0,t.jsx)(eS.Typography.Text,{type:"secondary",style:{fontSize:12,fontFamily:"monospace"},children:a.user_id})]}),(0,t.jsxs)(ev.Col,{xs:24,sm:12,md:8,children:[(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"Team Role"}),(0,t.jsx)("div",{style:{marginTop:4},children:(0,t.jsx)(P.Tag,{color:"admin"===a.role?"blue":"default",children:a.role||"user"})})]})]})}),(0,t.jsxs)(ew.Row,{gutter:[16,16],children:[(0,t.jsx)(ev.Col,{xs:24,md:12,children:(0,t.jsxs)(ej.Card,{children:[eC("Current Cycle Spend (USD)","Spend for the current budget cycle. Resets to $0 when the budget window rolls over."),(0,t.jsxs)("div",{style:{marginTop:8},children:[(0,t.jsxs)(eS.Typography.Title,{level:3,style:{margin:0},children:["$",eN(d,4)]}),(0,t.jsxs)(eS.Typography.Text,{type:"secondary",children:["of ",null===o?"Unlimited":`$${eN(o,4)}`]})]}),h&&(0,t.jsx)("div",{style:{marginTop:4},children:(0,t.jsxs)(eS.Typography.Text,{type:"secondary",children:["Resets ",h]})})]})}),(0,t.jsx)(ev.Col,{xs:24,md:12,children:(0,t.jsxs)(ej.Card,{children:[eC("Rate Limits","Your per-member rate limits within this team."),(0,t.jsxs)("div",{style:{marginTop:8},children:[(0,t.jsxs)(eS.Typography.Text,{children:["TPM: ",ek(c)]}),(0,t.jsx)("br",{}),(0,t.jsxs)(eS.Typography.Text,{children:["RPM: ",ek(u)]})]})]})}),(0,t.jsx)(ev.Col,{xs:24,md:12,children:(0,t.jsxs)(ej.Card,{children:[eC("Total Spend (USD)","Cumulative spend across all budget cycles within this team."),(0,t.jsx)("div",{style:{marginTop:8},children:(0,t.jsxs)(eS.Typography.Title,{level:4,style:{margin:0},children:["$",eN(m,4)]})})]})}),(0,t.jsx)(ev.Col,{xs:24,md:12,children:(0,t.jsxs)(ej.Card,{children:[eC("Model Scope","Models you can access within this team."),(0,t.jsx)("div",{style:{marginTop:8},children:g&&g.length>0?(0,t.jsx)(D.Space,{wrap:!0,children:g.map(e=>(0,t.jsx)(P.Tag,{children:e},e))}):(0,t.jsx)(eS.Typography.Text,{children:"All Team Models"})})]})})]})]})}let eI="overview",eO="my-user",ez="virtual-keys",eA="members",eD="member-permissions",eF="settings",e$={[eI]:"Overview",[eO]:"My User",[ez]:"Virtual Keys",[eA]:"Members",[eD]:"Member Permissions",[eF]:"Settings"};var eP=e.i(292639),eL=e.i(294612);function eR({teamData:e,canEditTeam:a,handleMemberDelete:l,setSelectedEditMember:s,setIsEditMemberModalVisible:i,setIsAddMemberModalVisible:n}){let o=e=>{if(null==e)return"0";if("number"==typeof e){let t=Number(e);return t===Math.floor(t)?t.toString():(0,m.formatNumberWithCommas)(t,8).replace(/\.?0+$/,"")}return"0"},{data:d}=(0,eP.useUISettings)(),{userId:c,userRole:h}=(0,r.default)(),g=!!d?.values?.disable_team_admin_delete_team_user,x=(0,u.isUserTeamAdminForSingleTeam)(e.team_info.members_with_roles,c||""),b=(0,u.isProxyAdminRole)(h||""),_=[{title:(0,t.jsxs)(D.Space,{direction:"horizontal",children:["Model Scope",(0,t.jsx)(L.Tooltip,{title:"Models this member can access. Empty means they inherit all team models.",children:(0,t.jsx)(p.InfoCircleOutlined,{})})]}),key:"model_scope",render:(r,a)=>{let l=(t=>{if(!t)return null;let r=e.team_memberships.find(e=>e.user_id===t),a=r?.litellm_budget_table?.allowed_models;return a&&a.length>0?a:null})(a.user_id);if(!l)return(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"(all team models)"});let s=l.slice(0,2),i=l.length-s.length;return(0,t.jsxs)(D.Space,{wrap:!0,children:[s.map(e=>(0,t.jsx)(eS.Typography.Text,{code:!0,style:{fontSize:"12px"},children:e},e)),i>0&&(0,t.jsx)(L.Tooltip,{title:l.slice(2).join(", "),children:(0,t.jsxs)(eS.Typography.Text,{type:"secondary",children:["+",i," more"]})})]})}},{title:(0,t.jsxs)(D.Space,{direction:"horizontal",children:["Current Cycle Spend (USD)",(0,t.jsx)(L.Tooltip,{title:"Spend for the current budget cycle. Resets to $0 when the member's budget window rolls over. This is the value checked against the member's budget.",children:(0,t.jsx)(p.InfoCircleOutlined,{})})]}),key:"spend",render:(r,a)=>(0,t.jsxs)(eS.Typography.Text,{children:["$",(0,m.formatNumberWithCommas)((t=>{if(!t)return 0;let r=e.team_memberships.find(e=>e.user_id===t);return r?.spend??0})(a.user_id),4)]})},{title:(0,t.jsxs)(D.Space,{direction:"horizontal",children:["Total Spend (USD)",(0,t.jsx)(L.Tooltip,{title:"Cumulative spend by this member within this team, across all budget cycles. Tracking began 2026-04-21; spend from before that date is not included.",children:(0,t.jsx)(p.InfoCircleOutlined,{})})]}),key:"total_spend",render:(r,a)=>(0,t.jsxs)(eS.Typography.Text,{children:["$",(0,m.formatNumberWithCommas)((t=>{if(!t)return 0;let r=e.team_memberships.find(e=>e.user_id===t);return r?.total_spend??0})(a.user_id),4)]})},{title:"Team Member Budget (USD)",key:"budget",render:(r,a)=>{let l=(t=>{if(!t)return null;let r=e.team_memberships.find(e=>e.user_id===t),a=r?.litellm_budget_table?.max_budget;return null==a?null:o(a)})(a.user_id);return(0,t.jsx)(eS.Typography.Text,{children:l?`$${(0,m.formatNumberWithCommas)(Number(l),4)}`:"No Limit"})}},{title:"Budget Reset",key:"budget_reset",render:(r,a)=>{let l=(t=>{if(!t)return null;let r=e.team_memberships.find(e=>e.user_id===t);return ey(r?.litellm_budget_table?.budget_reset_at)})(a.user_id);return l?(0,t.jsx)(eS.Typography.Text,{children:l}):(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"—"})}},{title:(0,t.jsxs)(D.Space,{direction:"horizontal",children:["Team Member Rate Limits",(0,t.jsx)(L.Tooltip,{title:"Rate limits for this member's usage within this team.",children:(0,t.jsx)(p.InfoCircleOutlined,{})})]}),key:"rate_limits",render:(r,a)=>(0,t.jsx)(eS.Typography.Text,{children:(t=>{if(!t)return"No Limits";let r=e.team_memberships.find(e=>e.user_id===t),a=r?.litellm_budget_table?.rpm_limit,l=r?.litellm_budget_table?.tpm_limit,s=[a?`${o(a)} RPM`:null,l?`${o(l)} TPM`:null].filter(Boolean);return s.length>0?s.join(" / "):"No Limits"})(a.user_id)})}];return(0,t.jsx)(eL.default,{members:e.team_info.members_with_roles,canEdit:a,onEdit:t=>{let r=e.team_memberships.find(e=>e.user_id===t.user_id);s({...t,max_budget_in_team:r?.litellm_budget_table?.max_budget||null,tpm_limit:r?.litellm_budget_table?.tpm_limit||null,rpm_limit:r?.litellm_budget_table?.rpm_limit||null,allowed_models:r?.litellm_budget_table?.allowed_models||[]}),i(!0)},onDelete:l,onAddMember:()=>n(!0),roleColumnTitle:"Team Role",roleTooltip:"This role applies only to this team and is independent from the user's proxy-level role.",extraColumns:_,showDeleteForMember:()=>b||a&&!x||x&&!g})}var eB=e.i(207082),eE=e.i(871943),eU=e.i(502547),eV=e.i(360820),eK=e.i(94629),eG=e.i(152990),eW=e.i(682830),eH=e.i(994388),eY=e.i(752978),eq=e.i(282786),eJ=e.i(981339),eQ=e.i(304911),eX=e.i(969550),eZ=e.i(20147),e0=e.i(633627);function e1({teamId:e,teamAlias:a,organization:l}){let{accessToken:s}=(0,r.default)(),[i,o]=(0,U.useState)(null),[d,c]=(0,U.useState)([{id:"created_at",desc:!0}]),[u,h]=(0,U.useState)({pageIndex:0,pageSize:50}),[g,x]=(0,U.useState)({"Organization ID":"","Key Alias":"","User ID":"","Sort By":"created_at","Sort Order":"desc"}),b=d.length>0?d[0].id:"created_at",_=d.length>0?d[0].desc?"desc":"asc":"desc",f=u.pageIndex,y=u.pageSize,{data:j,isPending:v,isFetching:S,refetch:T}=(0,eB.useKeys)(f+1,y,{teamID:e,organizationID:g["Organization ID"]?.trim()||void 0,selectedKeyAlias:g["Key Alias"]?.trim()||void 0,userID:g["User ID"]?.trim()||void 0,sortBy:b||void 0,sortOrder:_||void 0,expand:"user"}),N=(0,U.useMemo)(()=>{let e=j?.keys||[],t=l?.organization_id;return t?e.map(e=>({...e,organization_id:(e.organization_id??e.org_id)||t})):e},[j?.keys,l?.organization_id]),k=j?.total_pages??0,[M,I]=(0,U.useState)({}),O=(0,U.useMemo)(()=>({team_id:e,team_alias:a||e,models:[],max_budget:null,budget_duration:null,tpm_limit:null,rpm_limit:null,organization_id:l?.organization_id||"",created_at:"",keys:[],members_with_roles:[],spend:0}),[e,a,l]),z=(0,n.useQuery)({queryKey:["teamFilterOptions",e,s],queryFn:async()=>(0,e0.fetchTeamFilterOptions)(s,e),enabled:!!s&&!!e,staleTime:3e4}).data||{keyAliases:[],organizationIds:[],userIds:[]},A=(0,U.useCallback)(()=>{T?.()},[T]);(0,U.useEffect)(()=>(window.addEventListener("storage",A),()=>window.removeEventListener("storage",A)),[A]);let D=(0,U.useCallback)((e,t=!1)=>{x(t=>({...t,"Organization ID":e["Organization ID"]??t["Organization ID"],"Key Alias":e["Key Alias"]??t["Key Alias"],"User ID":e["User ID"]??t["User ID"],"Sort By":e["Sort By"]??t["Sort By"]??"created_at","Sort Order":e["Sort Order"]??t["Sort Order"]??"desc"})),t||h(e=>({...e,pageIndex:0}))},[]),F=(0,U.useCallback)(()=>{x({"Organization ID":"","Key Alias":"","User ID":"","Sort By":"created_at","Sort Order":"desc"}),h(e=>({...e,pageIndex:0}))},[]),$=(0,U.useMemo)(()=>[{name:"Organization ID",label:"Organization ID",isSearchable:!0,searchFn:async e=>{let{organizationIds:t}=z;if(!t.length)return[];let r=e.toLowerCase();return(r?t.filter(e=>e.toLowerCase().includes(r)):t).map(e=>({label:e,value:e}))}},{name:"Key Alias",label:"Key Alias",isSearchable:!0,searchFn:async e=>{let{keyAliases:t}=z,r=e.toLowerCase();return(r?t.filter(e=>e.toLowerCase().includes(r)):t).map(e=>({label:e,value:e}))}},{name:"User ID",label:"User ID",isSearchable:!0,searchFn:async e=>{let{userIds:t}=z,r=e.toLowerCase();return(r?t.filter(e=>e.id.toLowerCase().includes(r)||e.email.toLowerCase().includes(r)):t).map(e=>({label:e.email?`${e.id} (${e.email})`:e.id,value:e.id}))}}],[z]),P=(0,U.useMemo)(()=>[{id:"token",accessorKey:"token",header:"Key ID",size:100,enableSorting:!0,cell:e=>{let r=e.getValue(),a=e.cell.column.getSize();return(0,t.jsx)(L.Tooltip,{title:r,children:(0,t.jsx)(eH.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left overflow-hidden truncate block",style:{maxWidth:a,overflow:"hidden"},onClick:()=>o(e.row.original),children:r??"-"})})}},{id:"key_alias",accessorKey:"key_alias",header:"Key Alias",size:150,enableSorting:!0,cell:e=>{let r=e.getValue(),a=e.cell.column.getSize();return(0,t.jsx)(L.Tooltip,{title:r,children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block",style:{maxWidth:a,overflow:"hidden"},children:r??"-"})})}},{id:"key_name",accessorKey:"key_name",header:"Secret Key",size:120,enableSorting:!1,cell:e=>(0,t.jsx)("span",{className:"font-mono text-xs",children:e.getValue()})},{id:"organization_id",accessorKey:"organization_id",header:"Organization ID",size:140,enableSorting:!1,cell:e=>e.getValue()?e.renderValue():"-"},{id:"user_email",accessorKey:"user",header:"User Email",size:160,enableSorting:!1,cell:e=>{let r=e.getValue(),a=r?.user_email,l=e.cell.column.getSize();return(0,t.jsx)(L.Tooltip,{title:a,children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block",style:{maxWidth:l,overflow:"hidden"},children:a??"-"})})}},{id:"user_id",accessorKey:"user_id",header:"User ID",size:70,enableSorting:!1,cell:e=>{let r=e.getValue(),a="default_user_id"===r?"Default Proxy Admin":r,l=e.cell.column.getSize();return(0,t.jsx)(L.Tooltip,{title:a,children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block",style:{maxWidth:l,overflow:"hidden"},children:a??"-"})})}},{id:"created_at",accessorKey:"created_at",header:"Created At",size:120,enableSorting:!0,cell:e=>{let t=e.getValue();return t?new Date(t).toLocaleDateString():"-"}},{id:"created_by",accessorKey:"created_by",header:"Created By",size:70,enableSorting:!1,cell:e=>{let r=e.getValue();if(!r)return"-";let{created_by_user:a}=e.row.original,l=a?.user_alias??null,s=a?.user_email??null,i="default_user_id"===r,n=l||s||r,o=e.cell.column.getSize(),d=(0,t.jsx)("div",{className:"flex flex-col gap-2 text-xs min-w-[200px] max-w-[300px]",children:[{label:"User Alias",value:l},{label:"User Email",value:s},{label:"User ID",value:r}].map(({label:e,value:r})=>(0,t.jsxs)("div",{className:"flex flex-col min-w-0",children:[(0,t.jsx)("span",{className:"text-gray-400",children:e}),r?(0,t.jsx)(eS.Typography.Text,{className:"font-mono text-xs",ellipsis:{tooltip:r},copyable:!0,children:r}):(0,t.jsx)("span",{className:"font-mono",children:"-"})]},e))});return!i||l||s?(0,t.jsx)(eq.Popover,{content:d,trigger:"hover",placement:"bottomLeft",children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block cursor-default",style:{maxWidth:o,overflow:"hidden"},children:n})}):(0,t.jsx)(eq.Popover,{content:d,trigger:"hover",placement:"bottomLeft",children:(0,t.jsx)("span",{className:"cursor-default",children:(0,t.jsx)(eQ.default,{userId:r})})})}},{id:"updated_at",accessorKey:"updated_at",header:"Updated At",size:120,enableSorting:!0,cell:e=>{let t=e.getValue();return t?new Date(t).toLocaleDateString():"Never"}},{id:"last_active",accessorKey:"last_active",header:()=>(0,t.jsxs)("span",{className:"flex items-center gap-1",children:["Last Active",(0,t.jsx)(eq.Popover,{content:"This is a new field and is not backfilled. Only new key usage will update this value.",trigger:"hover",children:(0,t.jsx)(p.InfoCircleOutlined,{className:"text-gray-400 text-xs cursor-help"})})]}),size:130,enableSorting:!1,cell:e=>{let r=e.getValue();if(!r)return"Unknown";let a=new Date(r);return(0,t.jsx)(L.Tooltip,{title:a.toLocaleString(void 0,{dateStyle:"medium",timeStyle:"long"}),children:(0,t.jsx)("span",{children:a.toLocaleDateString()})})}},{id:"expires",accessorKey:"expires",header:"Expires",size:120,enableSorting:!1,cell:e=>{let t=e.getValue();return t?new Date(t).toLocaleDateString():"Never"}},{id:"spend",accessorKey:"spend",header:"Spend (USD)",size:100,enableSorting:!0,cell:e=>(0,m.formatNumberWithCommas)(e.getValue(),4)},{id:"max_budget",accessorKey:"max_budget",header:"Budget (USD)",size:110,enableSorting:!0,cell:e=>{let t=e.getValue();return null===t?"Unlimited":`$${(0,m.formatNumberWithCommas)(t)}`}},{id:"budget_reset_at",accessorKey:"budget_reset_at",header:"Budget Reset",size:130,enableSorting:!1,cell:e=>{let t=e.getValue();return t?new Date(t).toLocaleString():"Never"}},{id:"models",accessorKey:"models",header:"Models",size:200,enableSorting:!1,cell:e=>{let r=e.getValue();return(0,t.jsx)("div",{className:"flex flex-col py-2",children:Array.isArray(r)?(0,t.jsx)("div",{className:"flex flex-col",children:0===r.length?(0,t.jsx)(w.Badge,{size:"xs",className:"mb-1",color:"red",children:(0,t.jsx)(C.Text,{children:"All Proxy Models"})}):(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)("div",{className:"flex items-start",children:[r.length>3&&(0,t.jsx)("div",{children:(0,t.jsx)(eY.Icon,{icon:M[e.row.id]?eE.ChevronDownIcon:eU.ChevronRightIcon,className:"cursor-pointer",size:"xs",onClick:()=>I(t=>({...t,[e.row.id]:!t[e.row.id]}))})}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-1",children:[r.slice(0,3).map((e,r)=>"all-proxy-models"===e?(0,t.jsx)(w.Badge,{size:"xs",color:"red",children:(0,t.jsx)(C.Text,{children:"All Proxy Models"})},r):(0,t.jsx)(w.Badge,{size:"xs",color:"blue",children:(0,t.jsx)(C.Text,{children:e.length>30?`${(0,Y.getModelDisplayName)(e).slice(0,30)}...`:(0,Y.getModelDisplayName)(e)})},r)),r.length>3&&!M[e.row.id]&&(0,t.jsx)(w.Badge,{size:"xs",color:"gray",className:"cursor-pointer",children:(0,t.jsxs)(C.Text,{children:["+",r.length-3," ",r.length-3==1?"more model":"more models"]})}),M[e.row.id]&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:r.slice(3).map((e,r)=>"all-proxy-models"===e?(0,t.jsx)(w.Badge,{size:"xs",color:"red",children:(0,t.jsx)(C.Text,{children:"All Proxy Models"})},r+3):(0,t.jsx)(w.Badge,{size:"xs",color:"blue",children:(0,t.jsx)(C.Text,{children:e.length>30?`${(0,Y.getModelDisplayName)(e).slice(0,30)}...`:(0,Y.getModelDisplayName)(e)})},r+3))})]})]})})}):null})}},{id:"rate_limits",header:"Rate Limits",size:140,enableSorting:!1,cell:({row:e})=>{let r=e.original;return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{children:["TPM: ",null!==r.tpm_limit?r.tpm_limit:"Unlimited"]}),(0,t.jsxs)("div",{children:["RPM: ",null!==r.rpm_limit?r.rpm_limit:"Unlimited"]})]})}}],[M]),R=(0,U.useCallback)(e=>{let t="function"==typeof e?e(d):e;if(c(t),t?.length>0){let e=t[0];D({"Sort By":e.id,"Sort Order":e.desc?"desc":"asc"},!0)}},[d,D]),B=(0,eG.useReactTable)({data:N,columns:P,columnResizeMode:"onChange",columnResizeDirection:"ltr",state:{sorting:d,pagination:u},onSortingChange:R,onPaginationChange:h,getCoreRowModel:(0,eW.getCoreRowModel)(),enableSorting:!0,manualSorting:!0,manualPagination:!0,pageCount:k});return(0,t.jsx)("div",{className:"w-full h-full overflow-hidden",children:i?(0,t.jsx)(eZ.default,{keyId:i.token,onClose:()=>o(null),keyData:i,teams:[O],onDelete:T}):(0,t.jsxs)("div",{className:"border-b py-4 flex-1 overflow-hidden",children:[(0,t.jsx)("div",{className:"w-full mb-6",children:(0,t.jsx)(eX.default,{options:$,onApplyFilters:D,initialValues:g,onResetFilters:F})}),(0,t.jsx)("div",{className:"flex items-center justify-end w-full mb-4",children:(0,t.jsxs)("div",{className:"inline-flex items-center gap-2",children:[v||S?(0,t.jsx)(eJ.Skeleton.Node,{active:!0,style:{width:74,height:20}}):(0,t.jsxs)("span",{className:"text-sm text-gray-700",children:["Page ",f+1," of ",B.getPageCount()]}),v||S?(0,t.jsx)(eJ.Skeleton.Button,{active:!0,size:"small",style:{width:84,height:30}}):(0,t.jsx)("button",{onClick:()=>B.previousPage(),disabled:v||S||!B.getCanPreviousPage(),className:"px-3 py-1 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Previous"}),v||S?(0,t.jsx)(eJ.Skeleton.Button,{active:!0,size:"small",style:{width:58,height:30}}):(0,t.jsx)("button",{onClick:()=>B.nextPage(),disabled:v||S||!B.getCanNextPage(),className:"px-3 py-1 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Next"})]})}),(0,t.jsx)("div",{className:"h-[75vh] overflow-auto",children:(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(ed.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",style:{width:B.getCenterTotalSize()},children:[(0,t.jsx)(eu.TableHead,{children:B.getHeaderGroups().map(e=>(0,t.jsx)(eg.TableRow,{children:e.headers.map(e=>(0,t.jsx)(eh.TableHeaderCell,{"data-header-id":e.id,className:`py-1 h-8 relative hover:bg-gray-50 ${"actions"===e.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)]":""}`,style:{width:e.getSize(),position:"relative",cursor:e.column.getCanSort()?"pointer":"default"},onMouseEnter:()=>{let t=document.querySelector(`[data-header-id="${e.id}"] .resizer`);t&&(t.style.opacity="0.5")},onMouseLeave:()=>{let t=document.querySelector(`[data-header-id="${e.id}"] .resizer`);t&&!e.column.getIsResizing()&&(t.style.opacity="0")},onClick:e.column.getCanSort()?e.column.getToggleSortingHandler():void 0,children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,eG.flexRender)(e.column.columnDef.header,e.getContext())}),"actions"!==e.id&&e.column.getCanSort()&&(0,t.jsx)("div",{className:"w-4",children:e.column.getIsSorted()?({asc:(0,t.jsx)(eV.ChevronUpIcon,{className:"h-4 w-4 text-blue-500"}),desc:(0,t.jsx)(eE.ChevronDownIcon,{className:"h-4 w-4 text-blue-500"})})[e.column.getIsSorted()]:(0,t.jsx)(eK.SwitchVerticalIcon,{className:"h-4 w-4 text-gray-400"})}),(0,t.jsx)("div",{onDoubleClick:()=>e.column.resetSize(),onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:`resizer ${B.options.columnResizeDirection} ${e.column.getIsResizing()?"isResizing":""}`,style:{position:"absolute",right:0,top:0,height:"100%",width:"5px",background:e.column.getIsResizing()?"#3b82f6":"transparent",cursor:"col-resize",userSelect:"none",touchAction:"none",opacity:+!!e.column.getIsResizing()}})]})},e.id))},e.id))}),(0,t.jsx)(em.TableBody,{children:v||S?(0,t.jsx)(eg.TableRow,{children:(0,t.jsx)(ec.TableCell,{colSpan:P.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"Loading keys..."})})})}):N.length>0?B.getRowModel().rows.map(e=>(0,t.jsx)(eg.TableRow,{className:"h-8",children:e.getVisibleCells().map(e=>(0,t.jsx)(ec.TableCell,{style:{width:e.column.getSize(),maxWidth:"8-x",whiteSpace:"pre-wrap",overflow:"hidden"},className:`py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap ${"models"===e.column.id&&Array.isArray(e.getValue())&&e.getValue().length>3?"px-0":""}`,children:(0,eG.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(eg.TableRow,{children:(0,t.jsx)(ec.TableCell,{colSpan:P.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No keys found"})})})})})]})})})})]})})}e.s(["default",0,({teamId:e,onClose:n,accessToken:o,is_team_admin:eo,is_proxy_admin:ed,is_org_admin:em=!1,userModels:ec,editTeam:eu,premiumUser:eh=!1,onUpdate:eg})=>{let ep,ex,eb,ef,ey,ej,[ev,ew]=(0,U.useState)(null),[eS,eT]=(0,U.useState)(!0),[eC,eN]=(0,U.useState)(!1),[ek]=I.Form.useForm(),[eP,eL]=(0,U.useState)(!1),[eB,eE]=(0,U.useState)(null),[eU,eV]=(0,U.useState)(!1),[eK,eG]=(0,U.useState)([]),[eW,eH]=(0,U.useState)(!1),[eY,eq]=(0,U.useState)({}),{data:eJ,isLoading:eQ}=d(),eX=eJ?.globalGuardrailNames??new Set,[eZ,e0]=(0,U.useState)([]),[e2,e4]=(0,U.useState)({}),[e3,e5]=(0,U.useState)(!1),[e6,e8]=(0,U.useState)(null),[e7,e9]=(0,U.useState)(!1),[te,tt]=(0,U.useState)(!1),[tr,ta]=(0,U.useState)(!1),tl=U.default.useRef(null),[ts,ti]=(0,U.useState)(null),{userRole:tn,userId:to}=(0,r.default)(),{data:td=[]}=(0,a.useOrganizations)(),tm=(0,l.useQueryClient)(),tc=(0,U.useMemo)(()=>{let e=ev?.team_info?.organization_id;if(!e||!to)return!1;let t=td.find(t=>t.organization_id===e);return t?.members?.some(e=>e.user_id===to&&"org_admin"===e.user_role)??!1},[ev,td,to]),tu=I.Form.useWatch("models",ek),th=I.Form.useWatch("disable_global_guardrails",ek),tg=(0,U.useMemo)(()=>{let e=tu??ev?.team_info?.models??[];return e.includes("all-proxy-models")||e.includes("all-team-models")?ec:(0,Y.unfurlWildcardModelsInList)(e,ec)},[tu,ev,ec]),tp=eo||ed||em||tc,tx=(0,U.useMemo)(()=>{let e;return e=[eI,eO,ez],tp?[...e,eA,eD,eF]:e},[tp]),tb=(0,U.useMemo)(()=>eu&&tp?eF:eI,[eu,tp]),t_=async()=>{try{if(eT(!0),!o)return;let t=await (0,i.teamInfoCall)(o,e);ew(t)}catch(e){ee.default.fromBackend("Failed to load team information"),console.error("Error fetching team info:",e)}finally{eT(!1)}};(0,U.useEffect)(()=>{t_()},[e,o]),(0,U.useEffect)(()=>{(async()=>{if(!o||!ev?.team_info?.organization_id)return ti(null);try{let e=await (0,i.organizationInfoCall)(o,ev.team_info.organization_id);ti(e)}catch(e){console.error("Error fetching organization info:",e),ti(null)}})()},[o,ev?.team_info?.organization_id]),(0,U.useMemo)(()=>{let e;return e=[],e=ts?ts.models.includes("all-proxy-models")?ec:ts.models.length>0?ts.models:ec:ec,(0,Y.unfurlWildcardModelsInList)(e,ec)},[ts,ec]),(0,U.useEffect)(()=>{(async()=>{try{if(!o)return;let e=(await (0,i.getPoliciesList)(o)).policies.map(e=>e.policy_name);e0(e)}catch(e){console.error("Failed to fetch policies:",e)}})()},[o]),(0,U.useEffect)(()=>{(async()=>{if(!o||!ev?.team_info?.policies||0===ev.team_info.policies.length)return;e5(!0);let e={};try{await Promise.all(ev.team_info.policies.map(async t=>{try{let r=await (0,i.getPolicyInfoWithGuardrails)(o,t);e[t]=r.resolved_guardrails||[]}catch(r){console.error(`Failed to fetch guardrails for policy ${t}:`,r),e[t]=[]}})),e4(e)}catch(e){console.error("Failed to fetch policy guardrails:",e)}finally{e5(!1)}})()},[o,ev?.team_info?.policies]);let tf=async t=>{try{if(null==o)return;let r={user_email:t.user_email,user_id:t.user_id,role:t.role};await (0,i.teamMemberAddCall)(o,e,r),ee.default.success("Team member added successfully"),eN(!1),ek.resetFields();let a=await (0,i.teamInfoCall)(o,e);ew(a),eg(a)}catch(t){let e="Failed to add team member";t?.raw?.detail?.error?.includes("Assigning team admins is a premium feature")?e="Assigning admins is an enterprise-only feature. Please upgrade your LiteLLM plan to enable this.":t?.message&&(e=t.message),ee.default.fromBackend(e),console.error("Error adding team member:",t)}},ty=async t=>{try{if(null==o)return;let r={user_email:t.user_email,user_id:t.user_id,role:t.role,max_budget_in_team:t.max_budget_in_team,tpm_limit:t.tpm_limit,rpm_limit:t.rpm_limit,allowed_models:t.allowed_models};R.default.destroy(),await (0,i.teamMemberUpdateCall)(o,e,r),ee.default.success("Team member updated successfully"),eL(!1);let a=await (0,i.teamInfoCall)(o,e);ew(a),eg(a)}catch(t){let e="Failed to update team member";t?.raw?.detail?.includes("Assigning team admins is a premium feature")?e="Assigning admins is an enterprise-only feature. Please upgrade your LiteLLM plan to enable this.":t?.message&&(e=t.message),eL(!1),R.default.destroy(),ee.default.fromBackend(e),console.error("Error updating team member:",t)}},tj=async()=>{if(e6&&o){tt(!0);try{await (0,i.teamMemberDeleteCall)(o,e,e6),ee.default.success("Team member removed successfully");let t=await (0,i.teamInfoCall)(o,e);ew(t),eg(t)}catch(e){ee.default.fromBackend("Failed to remove team member"),console.error("Error removing team member:",e)}finally{tt(!1),e9(!1),e8(null)}}},tv=async t=>{try{let r;if(!o)return;ta(!0);let l={};try{let{soft_budget_alerting_emails:e,...r}=t.metadata?JSON.parse(t.metadata):{};l=r}catch(e){ee.default.fromBackend("Invalid JSON in metadata field");return}if("string"==typeof t.secret_manager_settings&&t.secret_manager_settings.trim().length>0)try{r=JSON.parse(t.secret_manager_settings)}catch(e){ee.default.fromBackend("Invalid JSON in secret manager settings");return}let s=e=>null==e||"string"==typeof e&&""===e.trim()||"number"==typeof e&&Number.isNaN(e)?null:e,n={},d={};for(let e of t.modelLimits??[])e?.model&&(null!=e.tpm&&(n[e.model]=e.tpm),null!=e.rpm&&(d[e.model]=e.rpm));let m=!0===t.disable_global_guardrails,u=m?Array.from(eX):Array.from(eX).filter(e=>!(t.guardrails||[]).includes(e)),h=ed?{allowed_passthrough_routes:t.allowed_passthrough_routes||[]}:tw.metadata?.allowed_passthrough_routes?{allowed_passthrough_routes:tw.metadata.allowed_passthrough_routes}:{},g={team_id:e,team_alias:t.team_alias,models:t.models,tpm_limit:s(t.tpm_limit),rpm_limit:s(t.rpm_limit),model_tpm_limit:n,model_rpm_limit:d,max_budget:t.max_budget,soft_budget:s(t.soft_budget),budget_duration:t.budget_duration,metadata:{...l,...h,guardrails:(t.guardrails||[]).filter(e=>!eX.has(e)),opted_out_global_guardrails:u,...t.logging_settings?.length>0?{logging:t.logging_settings}:{},disable_global_guardrails:m,soft_budget_alerting_emails:"string"==typeof t.soft_budget_alerting_emails?t.soft_budget_alerting_emails.split(",").map(e=>e.trim()).filter(e=>e.length>0):t.soft_budget_alerting_emails||[],...void 0!==r?{secret_manager_settings:r}:{}},...t.policies?.length>0?{policies:t.policies}:{},...t.organization_id!==tw.organization_id?{organization_id:t.organization_id??null}:{}};g.max_budget=(0,c.mapEmptyStringToNull)(g.max_budget),g.team_member_budget_duration=t.team_member_budget_duration,void 0!==t.team_member_budget&&(g.team_member_budget=Number(t.team_member_budget)),void 0!==t.team_member_key_duration&&(g.team_member_key_duration=t.team_member_key_duration),(void 0!==t.team_member_tpm_limit||void 0!==t.team_member_rpm_limit)&&(g.team_member_tpm_limit=s(t.team_member_tpm_limit),g.team_member_rpm_limit=s(t.team_member_rpm_limit));let{servers:p,accessGroups:x,toolsets:b}=t.mcp_servers_and_groups||{servers:[],accessGroups:[],toolsets:[]},_=new Set(p||[]),f=Object.fromEntries(Object.entries(t.mcp_tool_permissions||{}).filter(([e])=>_.has(e)));g.object_permission={},p&&(g.object_permission.mcp_servers=p),x&&(g.object_permission.mcp_access_groups=x),f&&(g.object_permission.mcp_tool_permissions=f),b&&(g.object_permission.mcp_toolsets=b),delete t.mcp_servers_and_groups,delete t.mcp_tool_permissions;let{agents:y,accessGroups:j}=t.agents_and_groups||{agents:[],accessGroups:[]};y&&y.length>0&&(g.object_permission.agents=y),j&&j.length>0&&(g.object_permission.agent_access_groups=j),delete t.agents_and_groups,t.vector_stores&&t.vector_stores.length>0&&(g.object_permission.vector_stores=t.vector_stores),Array.isArray(t.object_permission_search_tools)&&(g.object_permission.search_tools=t.object_permission_search_tools),void 0!==t.access_group_ids&&(g.access_group_ids=t.access_group_ids),void 0!==t.default_team_member_models&&(g.default_team_member_models=t.default_team_member_models);let v=tl.current?.getValue();if(v?.router_settings){let e=e=>null!=e&&""!==e&&!1!==e&&!(Array.isArray(e)&&0===e.length),t=Object.values(v.router_settings).some(e),r=tw.router_settings&&Object.values(tw.router_settings).some(e);(t||r)&&(g.router_settings=v.router_settings)}await (0,i.teamUpdateCall)(o,g),tm.invalidateQueries({queryKey:a.organizationKeys.all}),ee.default.success("Team settings updated successfully"),eV(!1),t_()}catch(e){console.error("Error updating team:",e)}finally{ta(!1)}};if(eS)return(0,t.jsx)("div",{className:"p-4",children:"Loading..."});if(!ev?.team_info)return(0,t.jsx)("div",{className:"p-4",children:"Team not found"});let{team_info:tw}=ev,tS=tw.metadata?.disable_global_guardrails===!0,tT=new Set(Array.isArray(tw.metadata?.opted_out_global_guardrails)?tw.metadata.opted_out_global_guardrails:[]),tC=(Array.isArray(tw.metadata?.guardrails)?tw.metadata.guardrails:[]).filter(e=>!eX.has(e)),tN=tS?tC:[...Array.from(eX).filter(e=>!tT.has(e)),...tC],tk=e=>{e.preventDefault(),e.stopPropagation()},tM=async(e,t)=>{await (0,m.copyToClipboard)(e)&&(eq(e=>({...e,[t]:!0})),setTimeout(()=>{eq(e=>({...e,[t]:!1}))},2e3))};return(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsx)("div",{className:"flex justify-between items-center mb-6",children:(0,t.jsxs)("div",{children:[(0,t.jsx)(M.Button,{type:"text",icon:(0,t.jsx)(f.ArrowLeftIcon,{className:"h-4 w-4"}),onClick:n,className:"mb-4",children:"Back to Teams"}),(0,t.jsx)(k.Title,{children:tw.team_alias}),(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(C.Text,{className:"text-gray-500 font-mono",children:tw.team_id}),(0,t.jsx)(M.Button,{type:"text",size:"small",icon:eY["team-id"]?(0,t.jsx)(B.CheckIcon,{size:12}):(0,t.jsx)(E.CopyIcon,{size:12}),onClick:()=>tM(tw.team_id,"team-id"),className:`left-2 z-10 transition-all duration-200 ${eY["team-id"]?"text-green-600 bg-green-50 border-green-200":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"}`})]})]})}),(0,t.jsx)($.Tabs,{defaultActiveKey:tb,className:"mb-4",items:[{key:eI,label:e$[eI],children:(0,t.jsxs)(T.Grid,{numItems:1,numItemsSm:2,numItemsLg:3,className:"gap-6",children:[(0,t.jsxs)(S.Card,{children:[(0,t.jsx)(C.Text,{children:"Budget Status"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(k.Title,{children:["$",(0,m.formatNumberWithCommas)(tw.spend,4)]}),(0,t.jsxs)(C.Text,{children:["of ",null===tw.max_budget?"Unlimited":`$${(0,m.formatNumberWithCommas)(tw.max_budget,4)}`]}),tw.budget_duration&&(0,t.jsxs)(C.Text,{className:"text-gray-500",children:["Reset: ",tw.budget_duration]}),(0,t.jsx)("br",{}),tw.team_member_budget_table&&(0,t.jsxs)(C.Text,{className:"text-gray-500",children:["Team Member Budget: $",(0,m.formatNumberWithCommas)(tw.team_member_budget_table.max_budget,4)]})]})]}),(0,t.jsxs)(S.Card,{children:[(0,t.jsx)(C.Text,{children:"Rate Limits"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(C.Text,{children:["TPM: ",tw.tpm_limit||"Unlimited"]}),(0,t.jsxs)(C.Text,{children:["RPM: ",tw.rpm_limit||"Unlimited"]}),tw.max_parallel_requests&&(0,t.jsxs)(C.Text,{children:["Max Parallel Requests: ",tw.max_parallel_requests]}),(ep=tw.metadata?.model_tpm_limit??{},ex=tw.metadata?.model_rpm_limit??{},0===(eb=Array.from(new Set([...Object.keys(ep),...Object.keys(ex)]))).length?null:(0,t.jsxs)("div",{className:"mt-3",children:[(0,t.jsx)(C.Text,{className:"text-gray-500",children:"Per-model limits:"}),eb.map(e=>(0,t.jsxs)(C.Text,{className:"text-xs",children:[e,": TPM ",ep[e]??"—",", RPM ",ex[e]??"—"]},e))]}))]})]}),(0,t.jsxs)(S.Card,{children:[(0,t.jsx)(C.Text,{children:"Models"}),(0,t.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:0===tw.models.length||tw.models.includes("all-proxy-models")?(0,t.jsx)(w.Badge,{color:"red",children:"All proxy models"}):(0,t.jsxs)(t.Fragment,{children:[tw.models.map((e,r)=>(0,t.jsx)(w.Badge,{color:"blue",children:e},`direct-${r}`)),(tw.access_group_models||[]).map((e,r)=>(0,t.jsx)(w.Badge,{color:"green",title:"From access group",children:e},`ag-${r}`))]})})]}),(0,t.jsxs)(S.Card,{children:[(0,t.jsx)(C.Text,{className:"font-semibold text-gray-900",children:"Virtual Keys"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(C.Text,{children:["User Keys: ",ev.keys.filter(e=>e.user_id).length]}),(0,t.jsxs)(C.Text,{children:["Service Account Keys: ",ev.keys.filter(e=>!e.user_id).length]}),(0,t.jsxs)(C.Text,{className:"text-gray-500",children:["Total: ",ev.keys.length]})]})]}),(0,t.jsx)(et.default,{objectPermission:tw.object_permission,variant:"card",accessToken:o}),(0,t.jsx)(S.Card,{children:(0,t.jsx)(q,{globalGuardrailNames:eX,teamGuardrails:Array.isArray(tw.metadata?.guardrails)?tw.metadata.guardrails:[],optedOutGlobalGuardrails:Array.isArray(tw.metadata?.opted_out_global_guardrails)?tw.metadata.opted_out_global_guardrails:[],killSwitchOn:tS,variant:"inline"})}),(0,t.jsxs)(S.Card,{children:[(0,t.jsx)(C.Text,{className:"font-semibold text-gray-900 mb-3",children:"Policies"}),tw.policies&&tw.policies.length>0?(0,t.jsx)("div",{className:"space-y-4",children:tw.policies.map((e,r)=>(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(w.Badge,{color:"purple",children:e}),e3&&(0,t.jsx)(C.Text,{className:"text-xs text-gray-400",children:"Loading guardrails..."})]}),!e3&&e2[e]&&e2[e].length>0&&(0,t.jsxs)("div",{className:"ml-4 pl-3 border-l-2 border-gray-200",children:[(0,t.jsx)(C.Text,{className:"text-xs text-gray-500 mb-1",children:"Resolved Guardrails:"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:e2[e].map((e,r)=>(0,t.jsx)(w.Badge,{color:"blue",size:"xs",children:e},r))})]})]},r))}):(0,t.jsx)(C.Text,{className:"text-gray-500",children:"No policies configured"})]}),(0,t.jsx)(J.default,{loggingConfigs:tw.metadata?.logging||[],disabledCallbacks:[],variant:"card"})]})},{key:eO,label:e$[eO],children:(0,t.jsx)(eM,{teamId:e})},{key:ez,label:e$[ez],children:(0,t.jsx)(e1,{teamId:e,teamAlias:tw.team_alias,organization:ts})},{key:eA,label:e$[eA],children:(0,t.jsx)(eR,{teamData:ev,canEditTeam:tp,handleMemberDelete:e=>{e8(e),e9(!0)},setSelectedEditMember:eE,setIsEditMemberModalVisible:eL,setIsAddMemberModalVisible:eN})},{key:eD,label:e$[eD],children:(0,t.jsx)(e_,{teamId:e,accessToken:o,canEditTeam:tp})},{key:eF,label:e$[eF],children:(0,t.jsxs)(S.Card,{className:"overflow-y-auto max-h-[65vh]",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(k.Title,{children:"Team Settings"}),tp&&!eU&&(0,t.jsx)(M.Button,{icon:(0,t.jsx)(h.EditOutlined,{className:"h-4 w-4"}),onClick:()=>eV(!0),children:"Edit Settings"})]}),eU&&eQ?(0,t.jsx)("div",{className:"p-4",children:"Loading..."}):eU?(0,t.jsxs)(I.Form,{form:ek,onFinish:tv,onValuesChange:e=>{if("disable_global_guardrails"in e){let t=!0===e.disable_global_guardrails,r=(ek.getFieldValue("guardrails")||[]).filter(e=>!eX.has(e));ek.setFieldValue("guardrails",t?r:[...Array.from(eX),...r])}},initialValues:{...tw,team_alias:tw.team_alias,models:tw.models,tpm_limit:tw.tpm_limit,rpm_limit:tw.rpm_limit,object_permission_search_tools:tw.object_permission?.search_tools||[],modelLimits:Array.from(new Set([...Object.keys(tw.metadata?.model_tpm_limit??{}),...Object.keys(tw.metadata?.model_rpm_limit??{})])).map(e=>({model:e,tpm:tw.metadata?.model_tpm_limit?.[e],rpm:tw.metadata?.model_rpm_limit?.[e]})),max_budget:tw.max_budget,soft_budget:tw.soft_budget,budget_duration:tw.budget_duration,team_member_tpm_limit:tw.team_member_budget_table?.tpm_limit,team_member_rpm_limit:tw.team_member_budget_table?.rpm_limit,team_member_budget:tw.team_member_budget_table?.max_budget,team_member_budget_duration:tw.team_member_budget_table?.budget_duration,guardrails:tN,policies:tw.policies||[],disable_global_guardrails:tw.metadata?.disable_global_guardrails||!1,soft_budget_alerting_emails:Array.isArray(tw.metadata?.soft_budget_alerting_emails)?tw.metadata.soft_budget_alerting_emails.join(", "):"",metadata:tw.metadata?JSON.stringify((({logging:e,secret_manager_settings:t,soft_budget_alerting_emails:r,model_tpm_limit:a,model_rpm_limit:l,allowed_passthrough_routes:s,...i})=>i)(tw.metadata),null,2):"",logging_settings:tw.metadata?.logging||[],secret_manager_settings:tw.metadata?.secret_manager_settings?JSON.stringify(tw.metadata.secret_manager_settings,null,2):"",organization_id:tw.organization_id,vector_stores:tw.object_permission?.vector_stores||[],mcp_servers:tw.object_permission?.mcp_servers||[],mcp_access_groups:tw.object_permission?.mcp_access_groups||[],mcp_servers_and_groups:{servers:tw.object_permission?.mcp_servers||[],accessGroups:tw.object_permission?.mcp_access_groups||[],toolsets:tw.object_permission?.mcp_toolsets||[]},mcp_tool_permissions:tw.object_permission?.mcp_tool_permissions||{},agents_and_groups:{agents:tw.object_permission?.agents||[],accessGroups:tw.object_permission?.agent_access_groups||[]},access_group_ids:tw.access_group_ids||[],default_team_member_models:tw.default_team_member_models||[],allowed_passthrough_routes:tw.metadata?.allowed_passthrough_routes||[]},layout:"vertical",children:[(0,t.jsx)(I.Form.Item,{label:"Team Name",name:"team_alias",rules:[{required:!0,message:"Please input a team name"}],children:(0,t.jsx)(O.Input,{type:""})}),(0,t.jsx)(I.Form.Item,{label:"Models",name:"models",rules:[{required:!0,message:"Please select at least one model"}],children:(0,t.jsx)(Z.ModelSelect,{value:ek.getFieldValue("models")||[],onChange:e=>ek.setFieldValue("models",e),teamID:e,organizationID:ev?.team_info?.organization_id||void 0,options:{includeSpecialOptions:!0,includeUserModels:!ev?.team_info?.organization_id,showAllProxyModelsOverride:(0,u.isProxyAdminRole)(tn)&&!ev?.team_info?.organization_id},context:"team",dataTestId:"models-select"})}),(0,t.jsx)(I.Form.Item,{label:"Max Budget (USD)",name:"max_budget",children:(0,t.jsx)(er.default,{step:.01,precision:2,style:{width:"100%"}})}),(0,t.jsx)(I.Form.Item,{label:"Soft Budget (USD)",name:"soft_budget",children:(0,t.jsx)(er.default,{step:.01,precision:2,style:{width:"100%"}})}),(0,t.jsx)(I.Form.Item,{label:"Soft Budget Alerting Emails",name:"soft_budget_alerting_emails",tooltip:"Comma-separated email addresses to receive alerts when the soft budget is reached",children:(0,t.jsx)(O.Input,{placeholder:"example1@test.com, example2@test.com"})}),(0,t.jsxs)(y.Accordion,{className:"mt-4 mb-4",children:[(0,t.jsx)(v.AccordionHeader,{children:(0,t.jsx)("b",{children:"Team Member Settings"})}),(0,t.jsxs)(j.AccordionBody,{children:[(0,t.jsx)(C.Text,{className:"text-xs text-gray-500 mb-4",children:"Optional defaults applied when members join this team. All fields can be overridden per member."}),(0,t.jsx)(I.Form.Item,{label:(0,t.jsxs)("span",{children:["Default Model Access"," ",(0,t.jsx)(L.Tooltip,{title:"Optional. If set, new members can only access these models by default. Must be a subset of the team's models above. Leave empty to give all members access to all team models.",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"default_team_member_models",children:(0,t.jsx)(I.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.models!==t.models,children:({getFieldValue:e})=>{let r=e("models")||tw.models||[];return(0,t.jsx)(A.Select,{mode:"multiple",placeholder:"Leave empty — all team models accessible to every member",value:ek.getFieldValue("default_team_member_models")||[],onChange:e=>ek.setFieldValue("default_team_member_models",e),options:r.map(e=>({label:e,value:e}))})}})}),(0,t.jsx)(I.Form.Item,{label:"Default Budget (USD)",name:"team_member_budget",tooltip:"Default spend budget for each member in this team.",children:(0,t.jsx)(er.default,{step:.01,precision:2,style:{width:"100%"}})}),(0,t.jsx)(I.Form.Item,{label:"Default Budget Duration",name:"team_member_budget_duration",children:(0,t.jsx)(W,{onChange:e=>ek.setFieldValue("team_member_budget_duration",e),value:ek.getFieldValue("team_member_budget_duration")})}),(0,t.jsx)(I.Form.Item,{label:"Default Key Duration (eg: 1d, 1mo)",name:"team_member_key_duration",tooltip:"Set a limit to the duration of a team member's key. Format: 30s (seconds), 30m (minutes), 30h (hours), 30d (days), 1mo (month)",children:(0,t.jsx)(N.TextInput,{placeholder:"e.g., 30d"})}),(0,t.jsx)(I.Form.Item,{label:"Default TPM Limit",name:"team_member_tpm_limit",tooltip:"Default tokens per minute limit for each member. Can be overridden per member.",children:(0,t.jsx)(er.default,{step:1,style:{width:"100%"},placeholder:"e.g., 1000"})}),(0,t.jsx)(I.Form.Item,{label:"Default RPM Limit",name:"team_member_rpm_limit",tooltip:"Default requests per minute limit for each member. Can be overridden per member.",children:(0,t.jsx)(er.default,{step:1,style:{width:"100%"},placeholder:"e.g., 100"})})]})]}),(0,t.jsx)(I.Form.Item,{label:"Reset Budget",name:"budget_duration",children:(0,t.jsxs)(A.Select,{placeholder:"n/a",children:[(0,t.jsx)(A.Select.Option,{value:"24h",children:"daily"}),(0,t.jsx)(A.Select.Option,{value:"7d",children:"weekly"}),(0,t.jsx)(A.Select.Option,{value:"30d",children:"monthly"})]})}),(0,t.jsx)(I.Form.Item,{label:"Tokens per minute Limit (TPM)",name:"tpm_limit",children:(0,t.jsx)(er.default,{step:1,style:{width:"100%"}})}),(0,t.jsx)(I.Form.Item,{label:"Requests per minute Limit (RPM)",name:"rpm_limit",children:(0,t.jsx)(er.default,{step:1,style:{width:"100%"}})}),(0,t.jsx)(I.Form.Item,{label:"Model-Specific Rate Limits",tooltip:"Set per-model TPM/RPM limits that apply across the whole team.",children:(0,t.jsx)(I.Form.List,{name:"modelLimits",children:(e,{add:r,remove:a})=>(0,t.jsxs)(t.Fragment,{children:[e.map(({key:e,name:r,...l})=>(0,t.jsxs)(D.Space,{style:{display:"flex",marginBottom:8},align:"baseline",children:[(0,t.jsx)(I.Form.Item,{...l,name:[r,"model"],rules:[{required:!0,message:"Missing model"},{validator:(e,t)=>t&&(ek.getFieldValue("modelLimits")??[]).filter(e=>e?.model===t).length>1?Promise.reject(Error("Duplicate model")):Promise.resolve()}],style:{minWidth:240},children:(0,t.jsx)(A.Select,{showSearch:!0,placeholder:"Select model",allowClear:!0,options:tg.map(e=>({value:e,label:e}))})}),(0,t.jsx)(I.Form.Item,{...l,name:[r,"tpm"],rules:[{validator:async(e,t)=>{let a=(ek.getFieldValue("modelLimits")??[])[r]??{};return a.model&&null==t&&null==a.rpm?Promise.reject(Error("Set at least one of TPM or RPM")):Promise.resolve()}}],children:(0,t.jsx)(z.InputNumber,{placeholder:"TPM Limit",min:0})}),(0,t.jsx)(I.Form.Item,{...l,name:[r,"rpm"],children:(0,t.jsx)(z.InputNumber,{placeholder:"RPM Limit",min:0})}),(0,t.jsx)(x.MinusCircleOutlined,{onClick:()=>a(r),style:{color:"#ef4444"}})]},e)),(0,t.jsx)(I.Form.Item,{children:(0,t.jsx)(M.Button,{type:"dashed",onClick:()=>r(),block:!0,icon:(0,t.jsx)(b.PlusOutlined,{}),children:"Add Model Limit"})})]})})}),(0,t.jsx)(I.Form.Item,{label:"Router Settings",children:(0,t.jsx)(ei.default,{ref:tl,accessToken:o||"",value:tw.router_settings?{router_settings:tw.router_settings}:void 0})}),(0,t.jsx)(I.Form.Item,{label:(0,t.jsxs)("span",{children:["Guardrails"," ",(0,t.jsx)(L.Tooltip,{title:"Select which guardrails apply to this team. Global guardrails are enabled by default — uncheck to opt out. Other guardrails are opt-in.",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/guardrails/quick_start",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),name:"guardrails",children:(0,t.jsxs)(A.Select,{mode:"multiple",placeholder:"Select guardrails",optionLabelProp:"label",tagRender:({label:e,value:r,closable:a,onClose:l})=>{let s=eX.has(r);return(0,t.jsxs)(P.Tag,{color:"blue",closable:a,onClose:l,onMouseDown:tk,style:{marginInlineEnd:4},children:[s&&(0,t.jsx)(g.GlobalOutlined,{style:{marginInlineEnd:4},"aria-label":"Global guardrail"}),e]})},children:[(0,t.jsx)(A.Select.OptGroup,{label:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(g.GlobalOutlined,{style:{marginInlineEnd:4}}),"Global"]}),children:(eJ?.guardrails??[]).filter(e=>e.litellm_params?.default_on).map(e=>(0,t.jsx)(A.Select.Option,{value:e.guardrail_name,label:e.guardrail_name,disabled:th,children:e.guardrail_name},e.guardrail_name))}),(0,t.jsx)(A.Select.OptGroup,{label:"Other",children:(eJ?.guardrails??[]).filter(e=>!e.litellm_params?.default_on).map(e=>(0,t.jsx)(A.Select.Option,{value:e.guardrail_name,label:e.guardrail_name,children:e.guardrail_name},e.guardrail_name))})]})}),(0,t.jsx)(I.Form.Item,{label:(0,t.jsxs)("span",{children:["Disable all global guardrails"," ",(0,t.jsx)(L.Tooltip,{title:"Kill switch: bypass every global guardrail for this team, including any added in the future. For per-guardrail opt-out instead, use the Guardrails dropdown above.",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"disable_global_guardrails",valuePropName:"checked",children:(0,t.jsx)(F.Switch,{checkedChildren:"Yes",unCheckedChildren:"No"})}),(0,t.jsx)(I.Form.Item,{label:(0,t.jsxs)("span",{children:["Policies"," ",(0,t.jsx)(L.Tooltip,{title:"Apply policies to this team to control guardrails and other settings",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),name:"policies",children:(0,t.jsx)(A.Select,{mode:"tags",placeholder:"Select or enter policies",options:eZ.map(e=>({value:e,label:e}))})}),(0,t.jsx)(I.Form.Item,{label:(0,t.jsxs)("span",{children:["Access Groups"," ",(0,t.jsx)(L.Tooltip,{title:"Assign access groups to this team. Access groups control which models, MCP servers, and agents this team can use",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"access_group_ids",children:(0,t.jsx)(V.default,{placeholder:"Select access groups (optional)"})}),(0,t.jsx)(I.Form.Item,{label:"Vector Stores",name:"vector_stores","aria-label":"Vector Stores",children:(0,t.jsx)(ea.default,{onChange:e=>ek.setFieldValue("vector_stores",e),value:ek.getFieldValue("vector_stores"),accessToken:o||"",placeholder:"Select vector stores"})}),(0,t.jsx)(I.Form.Item,{label:"Allowed Pass Through Routes",name:"allowed_passthrough_routes",children:(0,t.jsx)(L.Tooltip,{title:eh?ed?"":"Only proxy admins can set allowed pass through routes":"Premium feature - Upgrade to set allowed pass through routes",placement:"top",children:(0,t.jsx)(H.default,{onChange:e=>ek.setFieldValue("allowed_passthrough_routes",e),value:ek.getFieldValue("allowed_passthrough_routes"),accessToken:o||"",placeholder:"Select pass through routes",disabled:!eh||!ed})})}),(0,t.jsx)(I.Form.Item,{label:"MCP Servers / Access Groups",name:"mcp_servers_and_groups",children:(0,t.jsx)(Q.default,{onChange:e=>ek.setFieldValue("mcp_servers_and_groups",e),value:ek.getFieldValue("mcp_servers_and_groups"),accessToken:o||"",placeholder:"Select MCP servers or access groups (optional)"})}),(0,t.jsx)(I.Form.Item,{name:"mcp_tool_permissions",initialValue:{},hidden:!0,children:(0,t.jsx)(O.Input,{type:"hidden"})}),(0,t.jsx)(I.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.mcp_servers_and_groups!==t.mcp_servers_and_groups||e.mcp_tool_permissions!==t.mcp_tool_permissions,children:()=>(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsx)(X.default,{accessToken:o||"",selectedServers:ek.getFieldValue("mcp_servers_and_groups")?.servers||[],toolPermissions:ek.getFieldValue("mcp_tool_permissions")||{},onChange:e=>ek.setFieldsValue({mcp_tool_permissions:e})})})}),(0,t.jsx)(I.Form.Item,{label:"Agents / Access Groups",name:"agents_and_groups",children:(0,t.jsx)(K.default,{onChange:e=>ek.setFieldValue("agents_and_groups",e),value:ek.getFieldValue("agents_and_groups"),accessToken:o||"",placeholder:"Select agents or access groups (optional)"})}),(0,t.jsxs)(y.Accordion,{className:"mt-4 mb-4",children:[(0,t.jsx)(v.AccordionHeader,{children:(0,t.jsx)("b",{children:"Search Tool Settings"})}),(0,t.jsx)(j.AccordionBody,{children:(0,t.jsx)(I.Form.Item,{label:"Allowed Search Tools",name:"object_permission_search_tools",tooltip:"Select which search tools this team can access. Leave empty to allow all search tools.",children:(0,t.jsx)(el,{onChange:e=>ek.setFieldValue("object_permission_search_tools",e),value:ek.getFieldValue("object_permission_search_tools"),accessToken:o||"",placeholder:"Select search tools (optional, empty = all allowed)"})})})]}),(0,t.jsx)(I.Form.Item,{label:"Organization",name:"organization_id",children:(0,t.jsx)(A.Select,{allowClear:!0,placeholder:"Select an organization",showSearch:!0,optionFilterProp:"label",options:td.map(e=>({value:e.organization_id,label:e.organization_alias||e.organization_id}))})}),(0,t.jsx)(I.Form.Item,{label:"Logging Settings",name:"logging_settings",children:(0,t.jsx)(es.default,{value:ek.getFieldValue("logging_settings"),onChange:e=>ek.setFieldValue("logging_settings",e)})}),(0,t.jsx)(I.Form.Item,{label:"Secret Manager Settings",name:"secret_manager_settings",help:eh?"Enter secret manager configuration as a JSON object.":"Premium feature - Upgrade to manage secret manager settings.",rules:[{validator:async(e,t)=>{if(!t)return Promise.resolve();try{return JSON.parse(t),Promise.resolve()}catch(e){return Promise.reject(Error("Please enter valid JSON"))}}}],children:(0,t.jsx)(O.Input.TextArea,{rows:6,placeholder:'{"namespace": "admin", "mount": "secret", "path_prefix": "litellm"}',disabled:!eh})}),(0,t.jsx)(I.Form.Item,{label:"Metadata",name:"metadata",children:(0,t.jsx)(O.Input.TextArea,{rows:10})}),(0,t.jsx)("div",{className:"sticky z-10 bg-white p-4 pr-0 border-t border-gray-200 bottom-[-1.5rem] inset-x-[-1.5rem]",children:(0,t.jsxs)("div",{className:"flex justify-end items-center gap-2",children:[(0,t.jsx)(M.Button,{onClick:()=>eV(!1),disabled:tr,children:"Cancel"}),(0,t.jsx)(M.Button,{icon:(0,t.jsx)(_.SaveOutlined,{className:"h-4 w-4"}),type:"primary",htmlType:"submit",loading:tr,children:"Save Changes"})]})})]}):(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Team Name"}),(0,t.jsx)("div",{children:tw.team_alias})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Team ID"}),(0,t.jsx)("div",{className:"font-mono",children:tw.team_id})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Created At"}),(0,t.jsx)("div",{children:new Date(tw.created_at).toLocaleString()})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Models"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2 mt-1",children:tw.models.map((e,r)=>(0,t.jsx)(w.Badge,{color:"red",children:e},r))})]}),tw.default_team_member_models&&tw.default_team_member_models.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Default Member Models"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2 mt-1",children:tw.default_team_member_models.map((e,r)=>(0,t.jsx)(w.Badge,{color:"blue",children:e},r))})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Rate Limits"}),(0,t.jsxs)("div",{children:["TPM: ",tw.tpm_limit||"Unlimited"]}),(0,t.jsxs)("div",{children:["RPM: ",tw.rpm_limit||"Unlimited"]}),(ef=tw.metadata?.model_tpm_limit??{},ey=tw.metadata?.model_rpm_limit??{},0===(ej=Array.from(new Set([...Object.keys(ef),...Object.keys(ey)]))).length?null:(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsx)(C.Text,{className:"text-gray-500",children:"Per-model limits:"}),ej.map(e=>(0,t.jsxs)("div",{className:"text-xs ml-2",children:[e,": TPM ",ef[e]??"—",", RPM ",ey[e]??"—"]},e))]}))]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Team Budget"}),(0,t.jsxs)("div",{children:["Max Budget:"," ",null!==tw.max_budget?`$${(0,m.formatNumberWithCommas)(tw.max_budget,4)}`:"No Limit"]}),(0,t.jsxs)("div",{children:["Soft Budget:"," ",null!==tw.soft_budget&&void 0!==tw.soft_budget?`$${(0,m.formatNumberWithCommas)(tw.soft_budget,4)}`:"No Limit"]}),(0,t.jsxs)("div",{children:["Budget Reset: ",tw.budget_duration||"Never"]}),tw.metadata?.soft_budget_alerting_emails&&Array.isArray(tw.metadata.soft_budget_alerting_emails)&&tw.metadata.soft_budget_alerting_emails.length>0&&(0,t.jsxs)("div",{children:["Soft Budget Alerting Emails: ",tw.metadata.soft_budget_alerting_emails.join(", ")]})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(C.Text,{className:"font-medium",children:["Team Member Settings"," ",(0,t.jsx)(L.Tooltip,{title:"These are limits on individual team members",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),(0,t.jsxs)("div",{children:["Max Budget: ",tw.team_member_budget_table?.max_budget||"No Limit"]}),(0,t.jsxs)("div",{children:["Budget Duration: ",tw.team_member_budget_table?.budget_duration||"No Limit"]}),(0,t.jsxs)("div",{children:["Key Duration: ",tw.metadata?.team_member_key_duration||"No Limit"]}),(0,t.jsxs)("div",{children:["TPM Limit: ",tw.team_member_budget_table?.tpm_limit||"No Limit"]}),(0,t.jsxs)("div",{children:["RPM Limit: ",tw.team_member_budget_table?.rpm_limit||"No Limit"]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Router Settings"}),tw.router_settings&&Object.values(tw.router_settings).some(e=>null!=e&&""!==e&&!(Array.isArray(e)&&0===e.length))?(0,t.jsxs)("div",{className:"mt-1 space-y-1",children:[tw.router_settings.routing_strategy&&(0,t.jsxs)("div",{children:["Routing Strategy:"," ",(0,t.jsx)(w.Badge,{color:"blue",children:tw.router_settings.routing_strategy})]}),null!=tw.router_settings.num_retries&&(0,t.jsxs)("div",{children:["Number of Retries: ",tw.router_settings.num_retries]}),null!=tw.router_settings.allowed_fails&&(0,t.jsxs)("div",{children:["Allowed Failures: ",tw.router_settings.allowed_fails]}),null!=tw.router_settings.cooldown_time&&(0,t.jsxs)("div",{children:["Cooldown Time: ",tw.router_settings.cooldown_time,"s"]}),null!=tw.router_settings.timeout&&(0,t.jsxs)("div",{children:["Timeout: ",tw.router_settings.timeout,"s"]}),null!=tw.router_settings.retry_after&&(0,t.jsxs)("div",{children:["Retry After: ",tw.router_settings.retry_after,"s"]}),tw.router_settings.fallbacks&&Array.isArray(tw.router_settings.fallbacks)&&tw.router_settings.fallbacks.length>0&&(0,t.jsxs)("div",{children:["Fallbacks: ",tw.router_settings.fallbacks.length," configured"]}),tw.router_settings.enable_tag_filtering&&(0,t.jsx)("div",{children:"Tag Filtering: Enabled"})]}):(0,t.jsx)("div",{className:"text-gray-400",children:"No router settings configured"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Organization ID"}),(0,t.jsx)("div",{children:tw.organization_id})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Status"}),(0,t.jsx)(w.Badge,{color:tw.blocked?"red":"green",children:tw.blocked?"Blocked":"Active"})]}),(0,t.jsx)(et.default,{objectPermission:tw.object_permission,variant:"inline",className:"pt-4 border-t border-gray-200",accessToken:o}),(0,t.jsx)(q,{globalGuardrailNames:eX,teamGuardrails:Array.isArray(tw.metadata?.guardrails)?tw.metadata.guardrails:[],optedOutGlobalGuardrails:Array.isArray(tw.metadata?.opted_out_global_guardrails)?tw.metadata.opted_out_global_guardrails:[],killSwitchOn:tS,variant:"inline",className:"pt-4 border-t border-gray-200"}),(0,t.jsx)(J.default,{loggingConfigs:tw.metadata?.logging||[],disabledCallbacks:[],variant:"inline",className:"pt-4 border-t border-gray-200"}),tw.metadata?.secret_manager_settings&&(0,t.jsxs)("div",{className:"pt-4 border-t border-gray-200",children:[(0,t.jsx)(C.Text,{className:"font-medium",children:"Secret Manager Settings"}),(0,t.jsx)("pre",{className:"mt-2 bg-gray-50 p-3 rounded text-xs overflow-x-auto",children:JSON.stringify(tw.metadata.secret_manager_settings,null,2)})]})]})]})}].filter(e=>tx.includes(e.key))}),(0,t.jsx)(en.default,{visible:eP,onCancel:()=>eL(!1),onSubmit:ty,initialData:eB,mode:"edit",config:{title:"Edit Member",showEmail:!0,showUserId:!0,roleOptions:[{label:"Admin",value:"admin"},{label:"User",value:"user"}],additionalFields:[{name:"max_budget_in_team",label:(0,t.jsxs)("span",{children:["Team Member Budget (USD)"," ",(0,t.jsx)(L.Tooltip,{title:"Maximum amount in USD this member can spend within this team. This is separate from any global user budget limits",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),type:"numerical",step:.01,min:0,placeholder:"Budget limit for this member within this team"},{name:"tpm_limit",label:(0,t.jsxs)("span",{children:["Team Member TPM Limit"," ",(0,t.jsx)(L.Tooltip,{title:"Maximum tokens per minute this member can use within this team. This is separate from any global user TPM limit",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),type:"numerical",step:1,min:0,placeholder:"Tokens per minute limit for this member in this team"},{name:"rpm_limit",label:(0,t.jsxs)("span",{children:["Team Member RPM Limit"," ",(0,t.jsx)(L.Tooltip,{title:"Maximum requests per minute this member can make within this team. This is separate from any global user RPM limit",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),type:"numerical",step:1,min:0,placeholder:"Requests per minute limit for this member in this team"},{name:"allowed_models",label:(0,t.jsxs)("span",{children:["Allowed Models"," ",(0,t.jsx)(L.Tooltip,{title:"Models this member can access within this team. Leave empty to inherit all team models.",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),type:"multi-select",options:(tw.models||[]).map(e=>({label:e,value:e})),placeholder:"Leave empty to inherit all team models"}]}}),(0,t.jsx)(s.default,{isVisible:eC,onCancel:()=>eN(!1),onSubmit:tf,accessToken:o,teamId:e}),(0,t.jsx)(G.default,{isOpen:e7,title:"Delete Team Member",alertMessage:"Removing team members will also delete any keys created by or created for this member.",message:"Are you sure you want to remove this member from the team? This action cannot be undone.",resourceInformationTitle:"Team Member Information",resourceInformation:[{label:"User ID",value:e6?.user_id,code:!0},{label:"Email",value:e6?.user_email},{label:"Role",value:e6?.role}],onCancel:()=>{e9(!1),e8(null)},onOk:tj,confirmLoading:te})]})}],56567)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0_2kvss2-vfen.js b/litellm/proxy/_experimental/out/_next/static/chunks/0_2kvss2-vfen.js new file mode 100644 index 00000000000..4d3e7e99933 --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/0_2kvss2-vfen.js @@ -0,0 +1,91 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,111790,758472,280881,e=>{"use strict";e.s([],111790);var t=e.i(843476),s=e.i(708347),r=e.i(750113),l=e.i(994388),a=e.i(197647),n=e.i(653824),i=e.i(881073),o=e.i(404206),c=e.i(723731),d=e.i(599724),m=e.i(629569),u=e.i(844444),x=e.i(869216),h=e.i(212931),p=e.i(199133),g=e.i(592968),f=e.i(898586),b=e.i(271645),y=e.i(500727),j=e.i(266027),v=e.i(912598),N=e.i(243652),_=e.i(764205),w=e.i(135214);let k=(0,N.createQueryKeys)("mcpServerHealth");var S=e.i(727749),T=e.i(988846),C=e.i(678784),A=e.i(995926),I=e.i(328196),P=e.i(302202),O=e.i(409797),M=e.i(54131),E=e.i(440987);let F=[{label:"Documentation",fields:[{key:"description",label:"Description",description:"Must have a non-empty description",check:e=>!!e.description?.trim()},{key:"alias",label:"Alias",description:"Must have a display alias",check:e=>!!e.alias?.trim()}]},{label:"Source",fields:[{key:"source_url",label:"GitHub / Source URL",description:"Must link to a source repository",check:e=>!!e.source_url?.trim()}]},{label:"Connection",fields:[{key:"url",label:"Server URL",description:"Must have a URL configured",check:e=>!!e.url?.trim()}]},{label:"Security",fields:[{key:"auth_type",label:"Auth configured",description:"Must use authentication (not 'none')",check:e=>!!e.auth_type&&"none"!==e.auth_type}]}],L=F.flatMap(e=>e.fields),R="mcp_required_fields",z={active:{label:"Active",bg:"bg-green-50",text:"text-green-700",dot:"bg-green-500"},pending_review:{label:"Pending Review",bg:"bg-yellow-50",text:"text-yellow-700",dot:"bg-yellow-500"},rejected:{label:"Rejected",bg:"bg-red-50",text:"text-red-700",dot:"bg-red-500"}};function U({label:e,value:s,color:r}){return(0,t.jsxs)("div",{className:"bg-white border border-gray-200 rounded-lg px-4 py-3",children:[(0,t.jsx)("div",{className:`text-2xl font-bold ${r}`,children:s}),(0,t.jsx)("div",{className:"text-xs text-gray-500 mt-0.5",children:e})]})}function B({action:e,serverName:s,isCurrentlyActive:r,onConfirm:l,onCancel:a}){let[n,i]=(0,b.useState)(""),o="approve"===e;return(0,t.jsx)("div",{className:"fixed inset-0 bg-black/30 flex items-center justify-center z-50",children:(0,t.jsxs)("div",{className:"bg-white rounded-xl shadow-xl p-6 max-w-sm w-full mx-4",children:[(0,t.jsx)("div",{className:`w-10 h-10 rounded-full flex items-center justify-center mb-4 ${o?"bg-green-100":"bg-red-100"}`,children:o?(0,t.jsx)(C.CheckIcon,{className:"h-5 w-5 text-green-600"}):(0,t.jsx)(I.AlertCircleIcon,{className:"h-5 w-5 text-red-600"})}),(0,t.jsx)("h3",{className:"text-base font-semibold text-gray-900 mb-1",children:o?"Approve MCP Server":"Reject MCP Server"}),(0,t.jsxs)("p",{className:"text-sm text-gray-500 mb-4",children:["Are you sure you want to ",e," ",(0,t.jsxs)("span",{className:"font-medium text-gray-700",children:['"',s,'"']}),"?"," ",o?"This will make it active and available for use.":r?"This server is currently live. Rejecting it will immediately remove it from the proxy runtime.":"This will mark the submission as rejected."]}),!o&&(0,t.jsx)("textarea",{placeholder:"Reason for rejection (optional)",value:n,onChange:e=>i(e.target.value),className:"w-full border border-gray-200 rounded-md px-3 py-2 text-sm text-gray-700 placeholder-gray-400 focus:outline-none focus:ring-1 focus:ring-blue-500 mb-4 resize-none",rows:3}),(0,t.jsxs)("div",{className:"flex gap-3",children:[(0,t.jsx)("button",{type:"button",onClick:a,className:"flex-1 border border-gray-300 text-gray-700 hover:bg-gray-50 text-sm font-medium py-2 rounded-md transition-colors",children:"Cancel"}),(0,t.jsx)("button",{type:"button",onClick:()=>l(o?void 0:n||void 0),className:`flex-1 text-white text-sm font-medium py-2 rounded-md transition-colors ${o?"bg-green-500 hover:bg-green-600":"bg-red-500 hover:bg-red-600"}`,children:o?"Approve":"Reject"})]})]})})}function V({requiredFields:e,onChange:s,onSave:r,isSaving:l}){let[a,n]=(0,b.useState)(!1),i=L.filter(t=>e.includes(t.key));return(0,t.jsxs)("div",{className:"mb-5 border border-gray-200 rounded-lg bg-white overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 cursor-pointer select-none",onClick:()=>n(e=>!e),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(E.SettingsIcon,{className:"h-4 w-4 text-gray-400"}),(0,t.jsx)("span",{className:"text-sm font-semibold text-gray-800",children:"Submission Rules"}),i.length>0?(0,t.jsxs)("span",{className:"text-xs text-gray-500",children:["(",i.length," required field",1!==i.length?"s":"",")"]}):(0,t.jsx)("span",{className:"text-xs text-gray-400 italic",children:"no rules set"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[!a&&i.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5 max-w-md",children:i.map(e=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs bg-blue-50 text-blue-700 border border-blue-200 px-2 py-0.5 rounded-full",children:[(0,t.jsx)(C.CheckIcon,{className:"h-3 w-3"}),e.label]},e.key))}),a?(0,t.jsx)(M.ChevronUpIcon,{className:"h-4 w-4 text-gray-400"}):(0,t.jsx)(O.ChevronDownIcon,{className:"h-4 w-4 text-gray-400"})]})]}),a&&(0,t.jsxs)("div",{className:"border-t border-gray-100 px-4 pt-4 pb-4",children:[(0,t.jsx)("p",{className:"text-xs text-gray-500 mb-4",children:"Select which fields must be filled in before a submission is considered compliant. LiteLLM will show ✓ / ✗ for each rule on every submission card below."}),(0,t.jsx)("div",{className:"grid grid-cols-2 gap-x-8 gap-y-5",children:F.map(r=>(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider mb-2",children:r.label}),(0,t.jsx)("div",{className:"space-y-2",children:r.fields.map(r=>{let l=e.includes(r.key);return(0,t.jsxs)("label",{className:"flex items-start gap-2.5 cursor-pointer group",children:[(0,t.jsx)("input",{type:"checkbox",checked:l,onChange:()=>{var t;return t=r.key,void s(e.includes(t)?e.filter(e=>e!==t):[...e,t])},className:"mt-0.5 h-4 w-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500 cursor-pointer"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-sm font-medium text-gray-800 group-hover:text-blue-700 transition-colors",children:r.label}),(0,t.jsx)("div",{className:"text-xs text-gray-400",children:r.description})]})]},r.key)})})]},r.label))}),(0,t.jsxs)("div",{className:"mt-5 flex items-center gap-3",children:[(0,t.jsx)("button",{type:"button",disabled:l,onClick:async()=>{await r(),n(!1)},className:"px-4 py-1.5 text-sm font-medium text-white bg-blue-600 hover:bg-blue-700 disabled:opacity-50 rounded-md transition-colors",children:l?"Saving…":"Save Rules"}),(0,t.jsx)("button",{type:"button",onClick:()=>n(!1),className:"px-4 py-1.5 text-sm font-medium text-gray-600 hover:text-gray-900 border border-gray-200 rounded-md hover:bg-gray-50 transition-colors",children:"Cancel"})]})]})]})}function q({server:e,onApprove:s,onReject:r,requiredFields:l}){let a=e.approval_status??"active",n=z[a]??z.active,i=L.filter(e=>l.includes(e.key)).map(t=>({key:t.key,label:t.label,description:t.description,passed:t.check(e)})),o=i.filter(e=>e.passed).length,c=i.length-o,d=i.length>0&&0===c;return(0,t.jsxs)("div",{className:"bg-white border border-gray-200 rounded-lg overflow-hidden",children:[(0,t.jsx)("div",{className:"px-4 pt-4 pb-3",children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("div",{className:"flex items-center gap-2 mb-1.5",children:(0,t.jsxs)("span",{className:`inline-flex items-center gap-1.5 text-xs font-medium px-2 py-0.5 rounded-full ${n.bg} ${n.text}`,children:[(0,t.jsx)("span",{className:`w-1.5 h-1.5 rounded-full ${n.dot}`}),n.label]})}),(0,t.jsx)("h3",{className:"text-sm font-semibold text-gray-900",children:e.alias??e.server_name??e.server_id}),e.description&&(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-0.5 line-clamp-1",children:e.description}),e.url&&(0,t.jsxs)("div",{className:"flex items-center gap-1.5 mt-1.5",children:[(0,t.jsx)(P.ServerIcon,{className:"h-3.5 w-3.5 text-gray-400 flex-shrink-0"}),(0,t.jsx)("code",{className:"text-xs text-gray-500 font-mono truncate",children:e.url})]}),(0,t.jsxs)("div",{className:"flex items-center gap-3 mt-1.5 text-xs text-gray-400",children:[(0,t.jsxs)("span",{children:["Transport: ",(0,t.jsx)("span",{className:"text-gray-600",children:e.transport??"sse"})]}),(0,t.jsx)("span",{children:"·"}),(0,t.jsxs)("span",{children:["Submitted by: ",(0,t.jsx)("span",{className:"text-gray-600",children:e.submitted_by??"—"})]}),(0,t.jsx)("span",{children:"·"}),(0,t.jsx)("span",{children:function(e){if(!e)return"—";try{let t=new Date(e);return isNaN(t.getTime())?e:t.toISOString().slice(0,10)}catch{return e}}(e.submitted_at)})]}),"rejected"===a&&e.review_notes&&(0,t.jsxs)("p",{className:"text-xs text-red-600 mt-1.5",children:["Rejection reason: ",e.review_notes]})]}),0===i.length&&"rejected"!==a&&(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:["active"!==a&&(0,t.jsx)("button",{type:"button",onClick:s,className:"text-xs bg-green-500 hover:bg-green-600 text-white px-3 py-1.5 rounded-md transition-colors font-medium",children:"Approve"}),(0,t.jsx)("button",{type:"button",onClick:r,className:"text-xs border border-red-300 text-red-600 hover:bg-red-50 px-3 py-1.5 rounded-md transition-colors font-medium",children:"Reject"})]}),0===i.length&&"rejected"===a&&(0,t.jsx)("div",{className:"flex items-center gap-2 flex-shrink-0",children:(0,t.jsx)("button",{type:"button",onClick:s,className:"text-xs bg-green-500 hover:bg-green-600 text-white px-3 py-1.5 rounded-md transition-colors font-medium",children:"Re-approve"})})]})}),i.length>0&&(0,t.jsxs)("div",{className:"border-t border-gray-200",children:[(0,t.jsxs)("div",{className:`flex items-center gap-3 px-4 py-3 ${d?"bg-green-50 border-b border-green-100":"bg-red-50 border-b border-red-100"}`,children:[(0,t.jsx)("div",{className:`w-8 h-8 rounded-full flex items-center justify-center flex-shrink-0 ${d?"bg-green-500":"bg-red-500"}`,children:d?(0,t.jsx)(C.CheckIcon,{className:"h-4 w-4 text-white"}):(0,t.jsx)(A.XIcon,{className:"h-4 w-4 text-white"})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("div",{className:`text-sm font-semibold leading-tight ${d?"text-green-800":"text-red-800"}`,children:d?"All checks passed":`${c} check${1!==c?"s":""} failed`}),(0,t.jsxs)("div",{className:"text-xs text-gray-500 mt-0.5",children:[o," passing, ",c," failing"]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:["active"!==a&&"rejected"!==a&&(0,t.jsx)("button",{type:"button",onClick:s,className:"text-xs bg-green-600 hover:bg-green-700 text-white px-3 py-1.5 rounded-md transition-colors font-medium",children:"Approve"}),"rejected"===a&&(0,t.jsx)("button",{type:"button",onClick:s,className:"text-xs bg-green-600 hover:bg-green-700 text-white px-3 py-1.5 rounded-md transition-colors font-medium",children:"Re-approve"}),"rejected"!==a&&(0,t.jsx)("button",{type:"button",onClick:r,className:"text-xs border border-red-300 text-red-600 hover:bg-red-50 bg-white px-3 py-1.5 rounded-md transition-colors font-medium",children:"Reject"})]})]}),(0,t.jsx)("div",{className:"divide-y divide-gray-100",children:i.map(e=>(0,t.jsxs)("div",{className:"flex items-center gap-3 px-4 py-2.5",children:[(0,t.jsx)("div",{className:`w-5 h-5 rounded-full flex items-center justify-center flex-shrink-0 ${e.passed?"bg-green-100":"bg-red-100"}`,children:e.passed?(0,t.jsx)(C.CheckIcon,{className:"h-3 w-3 text-green-600"}):(0,t.jsx)(A.XIcon,{className:"h-3 w-3 text-red-600"})}),(0,t.jsx)("span",{className:`text-sm flex-1 ${e.passed?"text-gray-700":"text-gray-800"}`,children:e.label}),(0,t.jsx)("span",{className:`text-xs ${e.passed?"text-green-600":"text-red-500"}`,children:e.passed?"Passes":"Missing"})]},e.key))})]})]})}function $({accessToken:e}){let[s,r]=(0,b.useState)({total:0,pending_review:0,active:0,rejected:0,items:[]}),[l,a]=(0,b.useState)(""),[n,i]=(0,b.useState)("all"),[o,c]=(0,b.useState)(null),[d,m]=(0,b.useState)(!0),[u,x]=(0,b.useState)(null),[h,p]=(0,b.useState)([]),[g,f]=(0,b.useState)(!1),y=(0,b.useCallback)(async()=>{if(!e)return void m(!1);m(!0),x(null);try{let[t,s]=await Promise.all([(0,_.fetchMCPSubmissions)(e),(0,_.getGeneralSettingsCall)(e).catch(e=>(console.warn("MCPSubmissionsTab: failed to load general settings, compliance rules will be empty:",e),null))]);if(r(t),s?.data&&Array.isArray(s.data)){let e=s.data.find(e=>e.field_name===R);e&&Array.isArray(e.field_value)&&p(e.field_value)}}catch(e){x(e instanceof Error?e.message:"Failed to load submissions")}finally{m(!1)}},[e]);(0,b.useEffect)(()=>{y()},[y]);let j=async()=>{if(e){f(!0);try{await (0,_.updateConfigFieldSetting)(e,R,h),S.default.success("Submission rules saved")}catch{S.default.fromBackend("Failed to save submission rules")}finally{f(!1)}}},v=s.items.filter(e=>{if("all"!==n&&e.approval_status!==n)return!1;if(l.trim()){let t=l.toLowerCase(),s=(e.alias??e.server_name??e.server_id??"").toLowerCase(),r=(e.url??"").toLowerCase();return s.includes(t)||r.includes(t)}return!0});async function N(t,s){if(e)try{await (0,_.approveMCPServer)(e,t),await y(),S.default.success(`MCP server "${s}" approved`)}catch{S.default.fromBackend("Failed to approve MCP server")}finally{c(null)}}async function w(t,s,r){if(e)try{await (0,_.rejectMCPServer)(e,t,r),await y(),S.default.success(`MCP server "${s}" rejected`)}catch{S.default.fromBackend("Failed to reject MCP server")}finally{c(null)}}return(0,t.jsxs)("div",{className:"p-6",children:[(0,t.jsx)(V,{requiredFields:h,onChange:p,onSave:j,isSaving:g}),(0,t.jsxs)("div",{className:"grid grid-cols-4 gap-4 mb-6",children:[(0,t.jsx)(U,{label:"Total Submitted",value:s.total,color:"text-gray-900"}),(0,t.jsx)(U,{label:"Pending Review",value:s.pending_review,color:"text-yellow-600"}),(0,t.jsx)(U,{label:"Active",value:s.active,color:"text-green-600"}),(0,t.jsx)(U,{label:"Rejected",value:s.rejected,color:"text-red-600"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-5",children:[(0,t.jsxs)("div",{className:"relative flex-1 max-w-xs",children:[(0,t.jsx)(T.SearchIcon,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400"}),(0,t.jsx)("input",{type:"text",placeholder:"Search MCP servers...",value:l,onChange:e=>a(e.target.value),className:"w-full pl-9 pr-4 py-2 border border-gray-200 rounded-md text-sm text-gray-700 placeholder-gray-400 focus:outline-none focus:ring-1 focus:ring-blue-500 focus:border-blue-500"})]}),(0,t.jsxs)("select",{value:n,onChange:e=>i(e.target.value),className:"border border-gray-200 rounded-md px-3 py-2 text-sm text-gray-700 focus:outline-none focus:ring-1 focus:ring-blue-500 focus:border-blue-500 bg-white",children:[(0,t.jsx)("option",{value:"all",children:"All Status"}),(0,t.jsx)("option",{value:"pending_review",children:"Pending Review"}),(0,t.jsx)("option",{value:"active",children:"Active"}),(0,t.jsx)("option",{value:"rejected",children:"Rejected"})]})]}),(0,t.jsxs)("div",{className:"space-y-3",children:[d&&(0,t.jsx)("div",{className:"text-center py-12 text-gray-500 text-sm",children:"Loading submissions…"}),u&&(0,t.jsx)("div",{className:"text-center py-12 text-red-600 text-sm",children:u}),!d&&!u&&0===v.length&&(0,t.jsx)("div",{className:"text-center py-12 text-gray-400 text-sm",children:"No MCP server submissions match your filters."}),!d&&!u&&v.map(e=>(0,t.jsx)(q,{server:e,requiredFields:h,onApprove:()=>c({serverId:e.server_id,serverName:e.alias??e.server_name??e.server_id,action:"approve"}),onReject:()=>c({serverId:e.server_id,serverName:e.alias??e.server_name??e.server_id,action:"reject",isCurrentlyActive:"active"===e.approval_status})},e.server_id))]}),o&&(0,t.jsx)(B,{action:o.action,serverName:o.serverName,isCurrentlyActive:o.isCurrentlyActive,onConfirm:e=>"approve"===o.action?N(o.serverId,o.serverName):w(o.serverId,o.serverName,e),onCancel:()=>c(null)})]})}var D=e.i(808613),H=e.i(311451),K=e.i(998573),W=e.i(482725),J=e.i(988297),Y=e.i(797672),G=e.i(68155),Q=e.i(699857),Z=e.i(149121);let{Text:X}=f.Typography;function ee({serverId:e,serverName:s,accessToken:r,selectedTools:l,onToggle:a}){let[n,i]=(0,b.useState)([]),[o,c]=(0,b.useState)(!1),[d,m]=(0,b.useState)(!1),u=new Set(l.filter(t=>t.server_id===e).map(e=>e.tool_name)),x=(0,b.useCallback)(async()=>{if(r&&!(n.length>0)){c(!0);try{let t=await (0,_.listMCPTools)(r,e),s=Array.isArray(t)?t:t?.tools??[];i(s.map(e=>({name:e.name??e.tool_name??e,description:e.description??""})))}catch{i([])}finally{c(!1)}}},[r,e,n.length]);return(0,t.jsxs)("div",{className:"border border-gray-200 rounded-lg overflow-hidden",children:[(0,t.jsxs)("button",{type:"button",className:"w-full flex items-center justify-between px-4 py-3 bg-gray-50 hover:bg-gray-100 transition-colors",onClick:()=>{d||x(),m(!d)},children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center gap-2",children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-blue-500 flex-shrink-0"}),s,u.size>0&&(0,t.jsxs)("span",{className:"ml-1 text-xs text-purple-600 font-semibold",children:[u.size," selected"]})]}),(0,t.jsx)("span",{className:"text-gray-400 text-xs",children:d?"▲":"▼"})]}),d&&(0,t.jsx)("div",{className:"p-2",children:o?(0,t.jsx)("div",{className:"flex justify-center py-3",children:(0,t.jsx)(W.Spin,{size:"small"})}):0===n.length?(0,t.jsx)("p",{className:"text-xs text-gray-400 px-2 py-2",children:"No tools found for this server."}):(0,t.jsx)("div",{className:"flex flex-col gap-1",children:n.map(s=>{let r=u.has(s.name);return(0,t.jsxs)("button",{type:"button",onClick:()=>a({server_id:e,tool_name:s.name}),className:`flex items-start justify-between px-3 py-2 rounded-lg text-left transition-colors ${r?"bg-purple-50 border border-purple-300":"bg-white border border-gray-100 hover:bg-gray-50"}`,children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:`text-sm font-medium leading-tight ${r?"text-purple-800":"text-gray-800"}`,children:s.name}),s.description&&(0,t.jsx)("p",{className:"text-xs text-gray-400 mt-0.5 leading-tight line-clamp-2",children:s.description})]}),r&&(0,t.jsx)("span",{className:"text-purple-500 text-xs font-semibold ml-2 flex-shrink-0 mt-0.5",children:"✓"})]},s.name)})})})]})}function et({open:e,onClose:s,onSave:r,accessToken:a,initialToolset:n}){let[i]=D.Form.useForm(),[o,c]=(0,b.useState)(n?.tools||[]),[m,u]=(0,b.useState)(!1),[x,p]=(0,b.useState)(""),{data:g=[]}=(0,y.useMCPServers)();b.default.useEffect(()=>{e&&(i.setFieldsValue({toolset_name:n?.toolset_name||"",description:n?.description||""}),c(n?.tools||[]),p(""))},[e,n]);let f=e=>{c(t=>t.some(t=>t.server_id===e.server_id&&t.tool_name===e.tool_name)?t.filter(t=>t.server_id!==e.server_id||t.tool_name!==e.tool_name):[...t,e])},j=async()=>{let e=await i.validateFields();u(!0);try{await r(e.toolset_name,e.description,o),s()}finally{u(!1)}},v=g.filter(e=>{let t=x.toLowerCase();return!t||(e.alias||"").toLowerCase().includes(t)||(e.server_name||"").toLowerCase().includes(t)});return(0,t.jsxs)(h.Modal,{open:e,onCancel:s,title:n?"Edit Toolset":"New Toolset",width:960,footer:null,forceRender:!0,children:[(0,t.jsx)(D.Form,{form:i,layout:"vertical",className:"mt-2",children:(0,t.jsxs)("div",{className:"flex gap-4 mb-4",children:[(0,t.jsx)(D.Form.Item,{label:"Toolset Name",name:"toolset_name",rules:[{required:!0,message:"Please enter a toolset name"}],className:"flex-1 mb-0",children:(0,t.jsx)(H.Input,{placeholder:"e.g. github-linear-tools"})}),(0,t.jsx)(D.Form.Item,{label:"Description",name:"description",className:"flex-1 mb-0",children:(0,t.jsx)(H.Input,{placeholder:"Optional description"})})]})}),(0,t.jsxs)("div",{className:"flex gap-4 mt-2",style:{minHeight:360},children:[(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("div",{className:"flex items-center justify-between mb-2",children:(0,t.jsx)(d.Text,{className:"text-sm font-semibold text-gray-700",children:"Available Tools"})}),(0,t.jsx)(H.Input,{placeholder:"Search MCP servers...",value:x,onChange:e=>p(e.target.value),className:"mb-2",allowClear:!0}),(0,t.jsx)("div",{className:"space-y-2 overflow-y-auto",style:{maxHeight:300},children:0===v.length?(0,t.jsx)(d.Text,{className:"text-gray-400 text-sm",children:0===g.length?"No MCP servers configured":"No servers match your search"}):v.map(e=>(0,t.jsx)(ee,{serverId:e.server_id,serverName:e.alias||e.server_name||e.server_id,accessToken:a,selectedTools:o,onToggle:f},e.server_id))})]}),(0,t.jsx)("div",{className:"w-px bg-gray-200 flex-shrink-0"}),(0,t.jsxs)("div",{className:"w-72 flex-shrink-0",children:[(0,t.jsxs)(d.Text,{className:"text-sm font-semibold text-gray-700 mb-2 block",children:["Your Toolset"," ",(0,t.jsxs)("span",{className:"text-xs font-normal text-gray-400",children:["(",o.length," tools)"]})]}),(0,t.jsx)("div",{className:"space-y-1 overflow-y-auto",style:{maxHeight:340},children:0===o.length?(0,t.jsx)(d.Text,{className:"text-gray-400 text-sm",children:"No tools added yet"}):o.map((e,s)=>(0,t.jsxs)("button",{type:"button",onClick:()=>f(e),className:"w-full flex items-center justify-between px-3 py-1.5 rounded-lg border border-purple-200 bg-purple-50 hover:bg-red-50 hover:border-red-200 group transition-colors",children:[(0,t.jsxs)("div",{className:"min-w-0 text-left",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-purple-800 group-hover:text-red-600 truncate block",children:e.tool_name}),(0,t.jsxs)("span",{className:"text-[10px] text-purple-400 truncate block",children:[e.server_id.slice(0,8),"…"]})]}),(0,t.jsx)("span",{className:"ml-2 text-purple-300 group-hover:text-red-400 text-xs flex-shrink-0",children:"✕"})]},s))})]})]}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 mt-4 pt-4 border-t border-gray-200",children:[(0,t.jsx)(l.Button,{variant:"secondary",onClick:s,children:"Cancel"}),(0,t.jsx)(l.Button,{onClick:j,loading:m,children:n?"Save Changes":"Create Toolset"})]})]})}function es(){let[e,s]=(0,b.useState)(!1),r=(0,_.getProxyBaseUrl)(),l=`{ + "mcpServers": { + "my-toolset": { + "url": "${r}/toolset//mcp", + "headers": { "x-litellm-api-key": "Bearer " } + } + } +}`,a=async()=>{try{await navigator.clipboard.writeText(l),s(!0),setTimeout(()=>s(!1),1500)}catch{}};return(0,t.jsxs)("div",{className:"mb-6 rounded-lg border border-gray-200 bg-gray-50 px-5 py-4",children:[(0,t.jsx)("p",{className:"text-sm font-medium text-gray-700 mb-1",children:"How toolsets work"}),(0,t.jsxs)("p",{className:"text-sm text-gray-500 mb-3",children:["Create a toolset, assign it to a key via ",(0,t.jsx)("span",{className:"font-medium text-gray-700",children:"API Keys → Edit Key → MCP Servers"}),", then point your MCP client at the toolset URL. The client only sees the tools you picked."]}),(0,t.jsx)("div",{className:"text-xs text-gray-400 mb-1",children:"Claude Code / Cursor config"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("pre",{className:"bg-white border border-gray-200 rounded px-4 py-3 text-xs font-mono text-gray-700 overflow-x-auto leading-relaxed pr-14",children:l}),(0,t.jsx)("button",{type:"button",onClick:a,className:"absolute top-2 right-2 px-2 py-1 text-xs rounded border bg-white hover:bg-gray-50 text-gray-400 hover:text-gray-600 border-gray-200 transition-colors",children:e?"✓":"copy"})]})]})}function er({accessToken:e,userRole:s}){let r=(0,v.useQueryClient)(),{data:a=[],isLoading:n}=(0,Q.useMCPToolsets)(),[i,o]=(0,b.useState)(!1),[c,u]=(0,b.useState)(null),[x,p]=(0,b.useState)(null),[g,f]=(0,b.useState)(!1),y="Admin"===s||"proxy_admin"===s,j=async(t,s,l)=>{e&&(await (0,_.createMCPToolset)(e,{toolset_name:t,description:s,tools:l}),K.message.success("Toolset created"),r.invalidateQueries({queryKey:["mcpToolsets"]}))},N=async(t,s,l)=>{e&&c&&(await (0,_.updateMCPToolset)(e,{toolset_id:c.toolset_id,toolset_name:t,description:s,tools:l}),K.message.success("Toolset updated"),r.invalidateQueries({queryKey:["mcpToolsets"]}),u(null))},w=async()=>{if(e&&x){f(!0);try{await (0,_.deleteMCPToolset)(e,x),K.message.success("Toolset deleted"),r.invalidateQueries({queryKey:["mcpToolsets"]}),p(null)}finally{f(!1)}}},k=(0,_.getProxyBaseUrl)(),S=[{header:"Toolset ID",accessorKey:"toolset_id",cell:({row:e})=>(0,t.jsxs)("span",{className:"font-mono text-xs bg-gray-100 px-2 py-0.5 rounded text-gray-600",children:[e.original.toolset_id.slice(0,8),"…"]})},{header:"Name",accessorKey:"toolset_name",cell:({row:e})=>{let s=`${k}/toolset/${e.original.toolset_name}/mcp`;return(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-purple-500 flex-shrink-0"}),(0,t.jsx)("span",{className:"font-medium text-gray-900",children:e.original.toolset_name})]}),(0,t.jsx)("button",{type:"button",className:"text-xs text-gray-400 hover:text-purple-600 font-mono truncate max-w-xs text-left transition-colors",onClick:()=>navigator.clipboard.writeText(s),title:"Click to copy endpoint URL",children:s})]})}},{header:"Description",accessorKey:"description",cell:({row:e})=>(0,t.jsx)("span",{className:"text-sm text-gray-500",children:e.original.description||"—"})},{header:"Tools",accessorKey:"tools",cell:({row:e})=>{let s=e.original.tools;return(0,t.jsxs)("div",{className:"flex flex-wrap gap-1 max-w-xs",children:[s.slice(0,4).map((e,s)=>(0,t.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded bg-purple-50 border border-purple-200 text-purple-700 text-xs",children:e.tool_name},s)),s.length>4&&(0,t.jsxs)("span",{className:"text-xs text-gray-400 self-center",children:["+",s.length-4," more"]})]})}},{header:"Created",accessorKey:"created_at",cell:({row:e})=>(0,t.jsx)("span",{className:"text-xs text-gray-500",children:e.original.created_at?new Date(e.original.created_at).toLocaleDateString():"—"})},...y?[{header:"",id:"actions",cell:({row:e})=>(0,t.jsxs)("div",{className:"flex items-center gap-1 justify-end",children:[(0,t.jsx)("button",{type:"button",className:"p-1.5 rounded-lg hover:bg-gray-100 text-gray-400 hover:text-gray-700 transition-colors",onClick:()=>u(e.original),children:(0,t.jsx)(Y.PencilIcon,{className:"h-4 w-4"})}),(0,t.jsx)("button",{type:"button",className:"p-1.5 rounded-lg hover:bg-red-50 text-gray-400 hover:text-red-500 transition-colors",onClick:()=>p(e.original.toolset_id),children:(0,t.jsx)(G.TrashIcon,{className:"h-4 w-4"})})]})}]:[]];return(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(m.Title,{children:"MCP Toolsets"}),(0,t.jsx)(d.Text,{className:"text-gray-500 text-sm",children:"Curated collections of tools from one or more MCP servers. Assign toolsets to keys and teams via the MCP permissions dropdown."})]}),y&&(0,t.jsx)(l.Button,{icon:J.PlusIcon,onClick:()=>o(!0),children:"New Toolset"})]}),(0,t.jsx)(es,{}),(0,t.jsx)(Z.DataTable,{data:a,columns:S,renderSubComponent:()=>(0,t.jsx)("div",{}),getRowCanExpand:()=>!1,isLoading:n,noDataMessage:"No toolsets yet. Click 'New Toolset' to create one.",loadingMessage:"Loading toolsets...",enableSorting:!0}),(0,t.jsx)(et,{open:i,onClose:()=>o(!1),onSave:j,accessToken:e}),c&&(0,t.jsx)(et,{open:!!c,onClose:()=>u(null),onSave:N,accessToken:e,initialToolset:c}),(0,t.jsx)(h.Modal,{open:!!x,onCancel:()=>p(null),onOk:w,okText:"Delete",okButtonProps:{danger:!0,loading:g},title:"Delete Toolset",children:(0,t.jsx)("p",{children:"Are you sure you want to delete this toolset? Keys and teams using it will lose access to the scoped tools."})})]})}var el=e.i(790848),ea=e.i(362024),en=e.i(827252),ei=e.i(779241),eo=e.i(909119),ec=e.i(292335),ed=e.i(28651);let em="rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500",eu=({label:e,tooltip:s})=>(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:[e,(0,t.jsx)(g.Tooltip,{title:s,children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),ex=({isM2M:e,isEditing:s=!1,oauthFlow:r,initialFlowType:a,docsUrl:n})=>{let i=s?" (leave blank to keep existing)":"";return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(D.Form.Item,{label:(0,t.jsx)(eu,{label:"OAuth Flow Type",tooltip:"Choose how the proxy authenticates with this MCP server. M2M is for server-to-server communication using client credentials. Interactive (PKCE) is for user-facing flows that require browser-based authorization."}),name:"oauth_flow_type",...a?{initialValue:a}:{},children:(0,t.jsxs)(p.Select,{className:"rounded-lg",size:"large",children:[(0,t.jsx)(p.Select.Option,{value:ec.OAUTH_FLOW.M2M,children:(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"font-medium",children:"Machine-to-Machine (M2M)"}),(0,t.jsx)("span",{className:"text-gray-400 text-xs ml-2",children:"server-to-server, no user interaction"})]})}),(0,t.jsx)(p.Select.Option,{value:ec.OAUTH_FLOW.INTERACTIVE,children:(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"font-medium",children:"Interactive (PKCE)"}),(0,t.jsx)("span",{className:"text-gray-400 text-xs ml-2",children:"browser-based user authorization"})]})})]})}),e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(D.Form.Item,{label:(0,t.jsx)(eu,{label:"Client ID",tooltip:"OAuth2 client ID for the client_credentials grant."}),name:["credentials","client_id"],rules:[{required:!0,message:"Client ID is required for M2M OAuth"}],children:(0,t.jsx)(ei.TextInput,{type:"password",placeholder:`Enter OAuth client ID${i}`,className:em})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsx)(eu,{label:"Client Secret",tooltip:"OAuth2 client secret for the client_credentials grant."}),name:["credentials","client_secret"],rules:[{required:!0,message:"Client Secret is required for M2M OAuth"}],children:(0,t.jsx)(ei.TextInput,{type:"password",placeholder:`Enter OAuth client secret${i}`,className:em})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsx)(eu,{label:"Token URL",tooltip:"Token endpoint URL for the client_credentials grant."}),name:"token_url",rules:[{required:!0,message:"Token URL is required for M2M OAuth"}],children:(0,t.jsx)(ei.TextInput,{placeholder:"https://auth.example.com/oauth/token",className:em})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsx)(eu,{label:"Scopes (optional)",tooltip:"Optional scopes to request with the client_credentials grant."}),name:["credentials","scopes"],children:(0,t.jsx)(p.Select,{mode:"tags",tokenSeparators:[","],placeholder:"Add scopes",className:"rounded-lg",size:"large"})})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"flex items-center justify-between w-full",children:[(0,t.jsx)(eu,{label:"Client ID (optional)",tooltip:"Provide only if your MCP server cannot handle dynamic client registration."}),n&&(0,t.jsx)("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-blue-500 hover:text-blue-700 ml-2 font-normal",onClick:e=>e.stopPropagation(),children:"Create OAuth App →"})]}),name:["credentials","client_id"],children:(0,t.jsx)(ei.TextInput,{type:"password",placeholder:`Enter client ID${i}`,className:em})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsx)(eu,{label:"Client Secret (optional)",tooltip:"Provide only if your MCP server cannot handle dynamic client registration."}),name:["credentials","client_secret"],children:(0,t.jsx)(ei.TextInput,{type:"password",placeholder:`Enter client secret${i}`,className:em})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsx)(eu,{label:"Scopes (optional)",tooltip:"Optional scopes requested during token exchange. Separate multiple scopes with enter or commas."}),name:["credentials","scopes"],children:(0,t.jsx)(p.Select,{mode:"tags",tokenSeparators:[","],placeholder:"Add scopes",className:"rounded-lg",size:"large"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsx)(eu,{label:"Authorization URL (optional)",tooltip:"Optional override for the authorization endpoint."}),name:"authorization_url",children:(0,t.jsx)(ei.TextInput,{placeholder:"https://example.com/oauth/authorize",className:em})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsx)(eu,{label:"Token URL (optional)",tooltip:"Optional override for the token endpoint."}),name:"token_url",children:(0,t.jsx)(ei.TextInput,{placeholder:"https://example.com/oauth/token",className:em})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsx)(eu,{label:"Registration URL (optional)",tooltip:"Optional override for the dynamic client registration endpoint."}),name:"registration_url",children:(0,t.jsx)(ei.TextInput,{placeholder:"https://example.com/oauth/register",className:em})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsx)(eu,{label:"Token Validation Rules (optional)",tooltip:'JSON object of key-value rules checked against the OAuth token response before storing. Supports dot-notation for nested fields (e.g. {"organization": "my-org", "team.id": "123"}). Tokens that fail validation are rejected with HTTP 403.'}),name:"token_validation_json",rules:[{validator:(e,t)=>{if(!t||""===t.trim())return Promise.resolve();try{return JSON.parse(t),Promise.resolve()}catch{return Promise.reject(Error("Must be valid JSON"))}}}],children:(0,t.jsx)(H.Input.TextArea,{placeholder:'{\n "organization": "my-org",\n "team.id": "123"\n}',rows:4,className:"font-mono text-sm rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsx)(eu,{label:"Token Storage TTL (seconds, optional)",tooltip:"How long to cache each user's OAuth access token in Redis before evicting it (regardless of the token's own expires_in). Leave blank to derive the TTL from the token's expires_in, or fall back to the 12-hour default."}),name:"token_storage_ttl_seconds",children:(0,t.jsx)(ed.InputNumber,{min:1,placeholder:"e.g. 3600",className:"w-full rounded-lg",style:{width:"100%"}})}),r&&(0,t.jsxs)("div",{className:"rounded-lg border border-dashed border-gray-300 p-4 space-y-2",children:[(0,t.jsx)("p",{className:"text-sm text-gray-600",children:"Use OAuth to fetch a fresh access token and temporarily save it in the session as the authentication value."}),(0,t.jsx)(l.Button,{variant:"secondary",onClick:r.startOAuthFlow,disabled:"authorizing"===r.status||"exchanging"===r.status,children:"authorizing"===r.status?"Waiting for authorization...":"exchanging"===r.status?"Exchanging authorization code...":"Authorize & Fetch Token"}),r.error&&(0,t.jsx)("p",{className:"text-sm text-red-500",children:r.error}),"success"===r.status&&r.tokenResponse?.access_token&&(0,t.jsxs)("p",{className:"text-sm text-green-600",children:["Token fetched. Expires in ",r.tokenResponse.expires_in??"?"," seconds."]})]})]})]})};var eh=e.i(906579),ep=e.i(458505),eg=e.i(366308),ef=e.i(304967);let eb=({value:e={},onChange:s,tools:r=[],disabled:l=!1})=>(0,t.jsx)(ef.Card,{children:(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,t.jsx)(ep.DollarOutlined,{className:"text-green-600"}),(0,t.jsx)(m.Title,{children:"Cost Configuration"}),(0,t.jsx)(g.Tooltip,{title:"Configure costs for this MCP server's tool calls. Set a default rate and per-tool overrides.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"text-gray-400"})})]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:["Default Cost per Query ($)",(0,t.jsx)(g.Tooltip,{title:"Default cost charged for each tool call to this server.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-1 text-gray-400"})})]}),(0,t.jsx)(ed.InputNumber,{min:0,step:1e-4,precision:4,placeholder:"0.0000",value:e.default_cost_per_query,onChange:t=>{let r={...e,default_cost_per_query:t};s?.(r)},disabled:l,style:{width:"200px"},addonBefore:"$"}),(0,t.jsx)(d.Text,{className:"block mt-1 text-gray-500 text-sm",children:"Set a default cost for all tool calls to this server"})]}),r.length>0&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("label",{className:"block text-sm font-medium text-gray-700",children:["Tool-Specific Costs ($)",(0,t.jsx)(g.Tooltip,{title:"Override the default cost for specific tools. Leave blank to use the default rate.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-1 text-gray-400"})})]}),(0,t.jsx)(ea.Collapse,{items:[{key:"1",label:(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(eg.ToolOutlined,{className:"mr-2 text-blue-500"}),(0,t.jsx)("span",{className:"font-medium",children:"Available Tools"}),(0,t.jsx)(eh.Badge,{count:r.length,style:{backgroundColor:"#52c41a",marginLeft:"8px"}})]}),children:(0,t.jsx)("div",{className:"space-y-3 max-h-64 overflow-y-auto",children:r.map((r,a)=>(0,t.jsxs)("div",{className:"flex items-center justify-between p-3 bg-gray-50 rounded-lg",children:[(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)(d.Text,{className:"font-medium text-gray-900",children:r.name}),r.description&&(0,t.jsx)(d.Text,{className:"text-gray-500 text-sm block mt-1",children:r.description})]}),(0,t.jsx)("div",{className:"ml-4",children:(0,t.jsx)(ed.InputNumber,{min:0,step:1e-4,precision:4,placeholder:"Use default",value:e.tool_name_to_cost_per_query?.[r.name],onChange:t=>{var l;let a;return l=r.name,a={...e,tool_name_to_cost_per_query:{...e.tool_name_to_cost_per_query,[l]:t}},void s?.(a)},disabled:l,style:{width:"120px"},addonBefore:"$"})})]},a))})}]})]})]}),(e.default_cost_per_query||e.tool_name_to_cost_per_query&&Object.keys(e.tool_name_to_cost_per_query).length>0)&&(0,t.jsxs)("div",{className:"mt-6 p-4 bg-blue-50 border border-blue-200 rounded-lg",children:[(0,t.jsx)(d.Text,{className:"text-blue-800 font-medium",children:"Cost Summary:"}),(0,t.jsxs)("div",{className:"mt-2 space-y-1",children:[e.default_cost_per_query&&(0,t.jsxs)(d.Text,{className:"text-blue-700",children:["• Default cost: $",e.default_cost_per_query.toFixed(4)," per query"]}),e.tool_name_to_cost_per_query&&Object.entries(e.tool_name_to_cost_per_query).map(([e,s])=>null!=s&&(0,t.jsxs)(d.Text,{className:"text-blue-700",children:["• ",e,": $",s.toFixed(4)," per query"]},e))]})]})]})});var ey=e.i(464571),ej=e.i(560445),ev=e.i(245704),eN=e.i(270377),e_=e.i(91979);let ew=({formValues:e,tools:s,isLoadingTools:r,toolsError:l,toolsErrorStackTrace:a,canFetchTools:n,fetchTools:i})=>n||e.url||e.spec_path?(0,t.jsx)(ef.Card,{children:(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(ev.CheckCircleOutlined,{className:"text-blue-600"}),(0,t.jsx)(m.Title,{children:"Connection Status"})]}),!n&&(e.url||e.spec_path)&&(0,t.jsxs)("div",{className:"text-center py-6 text-gray-400 border rounded-lg border-dashed",children:[(0,t.jsx)(eg.ToolOutlined,{className:"text-2xl mb-2"}),(0,t.jsx)(d.Text,{children:"Complete required fields to test connection"}),(0,t.jsx)("br",{}),(0,t.jsx)(d.Text,{className:"text-sm",children:"Fill in URL, Transport, and Authentication to test MCP server connection"})]}),n&&(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(d.Text,{className:"text-gray-700 font-medium",children:r?"Testing connection to MCP server...":s.length>0?"Connection successful":l?"Connection failed":"Ready to test connection"}),(0,t.jsx)("br",{}),(0,t.jsxs)(d.Text,{className:"text-gray-500 text-sm",children:["Server: ",e.url||e.spec_path]})]}),r&&(0,t.jsxs)("div",{className:"flex items-center text-blue-600",children:[(0,t.jsx)(W.Spin,{size:"small",className:"mr-2"}),(0,t.jsx)(d.Text,{className:"text-blue-600",children:"Connecting..."})]}),!r&&!l&&s.length>0&&(0,t.jsxs)("div",{className:"flex items-center text-green-600",children:[(0,t.jsx)(ev.CheckCircleOutlined,{className:"mr-1"}),(0,t.jsx)(d.Text,{className:"text-green-600 font-medium",children:"Connected"})]}),l&&(0,t.jsxs)("div",{className:"flex items-center text-red-600",children:[(0,t.jsx)(eN.ExclamationCircleOutlined,{className:"mr-1"}),(0,t.jsx)(d.Text,{className:"text-red-600 font-medium",children:"Failed"})]})]}),r&&(0,t.jsxs)("div",{className:"flex items-center justify-center py-6",children:[(0,t.jsx)(W.Spin,{size:"large"}),(0,t.jsx)(d.Text,{className:"ml-3",children:"Testing connection and loading tools..."})]}),l&&(0,t.jsx)(ej.Alert,{message:"Connection Failed",description:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{children:l}),a&&(0,t.jsx)(ea.Collapse,{items:[{key:"stack-trace",label:"Stack Trace",children:(0,t.jsx)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:"12px",fontFamily:"monospace",margin:0,padding:"8px",backgroundColor:"#f5f5f5",borderRadius:"4px",maxHeight:"400px",overflow:"auto"},children:a})}],style:{marginTop:"12px"}})]}),type:"error",showIcon:!0,action:(0,t.jsx)(ey.Button,{icon:(0,t.jsx)(e_.ReloadOutlined,{}),onClick:i,size:"small",children:"Retry"})}),!r&&0===s.length&&!l&&(0,t.jsxs)("div",{className:"text-center py-6 text-gray-500 border rounded-lg border-dashed",children:[(0,t.jsx)(ev.CheckCircleOutlined,{className:"text-2xl mb-2 text-green-500"}),(0,t.jsx)(d.Text,{className:"text-green-600 font-medium",children:"Connection successful!"}),(0,t.jsx)("br",{}),(0,t.jsx)(d.Text,{className:"text-gray-500",children:"No tools found for this MCP server"})]})]})]})}):null;var ek=e.i(928685),eS=e.i(751904),eT=e.i(536916),eC=e.i(91739);let eA=({accessToken:e,oauthAccessToken:t,formValues:s,enabled:r=!0})=>{let[l,a]=(0,b.useState)([]),[n,i]=(0,b.useState)(!1),[o,c]=(0,b.useState)(null),[d,m]=(0,b.useState)(null),[u,x]=(0,b.useState)(!1),h=s.auth_type===ec.AUTH_TYPE.OAUTH2&&s.oauth_flow_type===ec.OAUTH_FLOW.M2M,p=s.auth_type===ec.AUTH_TYPE.OAUTH2&&!h,g=s.transport===ec.TRANSPORT.OPENAPI,f=g?!!s.spec_path:!!s.url,y=g?!!(f&&e):!!(f&&s.transport&&s.auth_type&&e&&(!p||t)),j=JSON.stringify(s.static_headers??{}),v=JSON.stringify(s.credentials??{}),N=async()=>{if(e&&(s.url||s.spec_path)&&(!p||t||g)){i(!0),c(null);try{let r=Array.isArray(s.static_headers)?s.static_headers.reduce((e,t)=>{let s=t?.header?.trim();return s&&(e[s]=t?.value!=null?String(t.value):""),e},{}):!Array.isArray(s.static_headers)&&s.static_headers&&"object"==typeof s.static_headers?Object.entries(s.static_headers).reduce((e,[t,s])=>(t&&(e[t]=null!=s?String(s):""),e),{}):{},l=s.credentials&&"object"==typeof s.credentials?Object.entries(s.credentials).reduce((e,[t,s])=>{if(null==s||""===s)return e;if("scopes"===t){if(Array.isArray(s)){let r=s.filter(e=>null!=e&&""!==e);r.length>0&&(e[t]=r)}}else e[t]=s;return e},{}):void 0,n=s.transport===ec.TRANSPORT.OPENAPI?"http":s.transport,i={server_id:s.server_id||"",server_name:s.server_name||"",url:s.url,spec_path:s.spec_path,transport:n,auth_type:s.auth_type,authorization_url:s.authorization_url,token_url:s.token_url,registration_url:s.registration_url,mcp_info:s.mcp_info,static_headers:r};l&&Object.keys(l).length>0&&(i.credentials=l);let o=await (0,_.testMCPToolsListRequest)(e,i,t);if(o.tools&&!o.error)a(o.tools),c(null),m(null),o.tools.length>0&&!u&&x(!0);else{let e=o.message||"Failed to retrieve tools list";c(e),m(o.stack_trace||null),a([]),x(!1)}}catch(e){console.error("Tools fetch error:",e),c(e instanceof Error?e.message:String(e)),m(null),a([]),x(!1)}finally{i(!1)}}},w=()=>{a([]),c(null),m(null),x(!1)};return(0,b.useEffect)(()=>{r&&(y?N():w())},[s.url,s.spec_path,s.transport,s.auth_type,e,r,t,y,j,v]),{tools:l,isLoadingTools:n,toolsError:o,toolsErrorStackTrace:d,hasShownSuccessMessage:u,canFetchTools:y,fetchTools:N,clearTools:w}};var eI=e.i(531516);let eP=({tool:e,isEnabled:s,isEditExpanded:r,toolNameToDisplayName:l,toolNameToDescription:a,onToggle:n,onToggleExpand:i,onDisplayNameChange:o,onDescriptionChange:c})=>(0,t.jsxs)("div",{className:`rounded-lg border transition-colors ${s?"bg-blue-50 border-blue-300 hover:border-blue-400":"bg-gray-50 border-gray-200 hover:border-gray-300"}`,children:[(0,t.jsx)("div",{className:"p-4 cursor-pointer",onClick:()=>n(e.name),children:(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)(eT.Checkbox,{checked:s,onChange:()=>n(e.name)}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(d.Text,{className:"font-medium text-gray-900",children:l[e.name]||e.name}),(0,t.jsx)("span",{className:`px-2 py-0.5 text-xs rounded-full font-medium ${s?"bg-green-100 text-green-800":"bg-red-100 text-red-800"}`,children:s?"Enabled":"Disabled"}),l[e.name]&&(0,t.jsx)("span",{className:"px-2 py-0.5 text-xs rounded-full font-medium bg-purple-100 text-purple-800",children:"Custom name"})]}),(a[e.name]||e.description)&&(0,t.jsx)(d.Text,{className:"text-gray-500 text-sm block mt-1",children:a[e.name]||e.description}),(0,t.jsx)(d.Text,{className:"text-gray-400 text-xs block mt-1",children:s?"✓ Users can call this tool":"✗ Users cannot call this tool"})]}),(0,t.jsx)("button",{type:"button",onClick:t=>i(e.name,t),className:`p-1.5 rounded-md transition-colors ${r?"bg-blue-100 text-blue-600":"text-gray-400 hover:text-gray-600 hover:bg-gray-100"}`,title:"Edit display name and description",children:(0,t.jsx)(eS.EditOutlined,{})})]})}),r&&(0,t.jsxs)("div",{className:"px-4 pb-4 pt-3 border-t border-gray-200 space-y-3 bg-gray-50 rounded-b-lg",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(d.Text,{className:"text-xs font-medium text-gray-600 mb-1 block",children:"Display Name"}),(0,t.jsx)(H.Input,{placeholder:e.name,value:l[e.name]||"",onChange:t=>o(e.name,t.target.value)}),(0,t.jsx)(d.Text,{className:"text-xs text-gray-400 mt-1 block",children:"Override how this tool's name appears to users. Leave blank to use original."})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(d.Text,{className:"text-xs font-medium text-gray-600 mb-1 block",children:"Description"}),(0,t.jsx)(H.Input.TextArea,{placeholder:e.description||"No description",value:a[e.name]||"",onChange:t=>c(e.name,t.target.value),rows:2}),(0,t.jsx)(d.Text,{className:"text-xs text-gray-400 mt-1 block",children:"Override the tool description shown to users. Leave blank to use original."})]})]})]}),eO=({accessToken:e,oauthAccessToken:s,formValues:r,allowedTools:l,existingAllowedTools:a,onAllowedToolsChange:n,toolNameToDisplayName:i,toolNameToDescription:o,onToolNameToDisplayNameChange:c,onToolNameToDescriptionChange:u,keyTools:x,externalTools:h,externalIsLoading:p,externalError:g,externalCanFetch:f})=>{let y=(0,b.useRef)([]),[j,v]=(0,b.useState)(""),[N,_]=(0,b.useState)("crud"),w=(0,b.useRef)(!1),k=(0,b.useRef)(""),[S,T]=(0,b.useState)(new Set),C=void 0!==h,A=eA({accessToken:e,oauthAccessToken:s,formValues:r,enabled:!C}),I=C?h:A.tools,P=C?p??!1:A.isLoadingTools,O=C?g??null:A.toolsError,M=C?f??!1:A.canFetchTools,E=(0,b.useMemo)(()=>{if(!x||0===x.length||0===I.length)return[];let e=new Set,t=[];for(let s of x){let r=s.name.split("_").map(e=>e.toLowerCase()).filter(e=>e.length>1);if(0===r.length)continue;let l=e=>e.toLowerCase().replace(/[-_/]/g," "),a=I.find(t=>{if(e.has(t.name))return!1;let s=l(t.name);return r.every(e=>s.includes(e))});if(!a){let t=r.find(e=>e.length>3)??r[r.length-1];a=I.find(s=>!e.has(s.name)&&l(s.name).includes(t))}a&&(t.push(a),e.add(a.name))}return t},[x,I]),F=(0,b.useMemo)(()=>new Set(E.map(e=>e.name)),[E]),L=(0,b.useMemo)(()=>I.filter(e=>{let t=j.toLowerCase();return e.name.toLowerCase().includes(t)||e.description&&e.description.toLowerCase().includes(t)}),[I,j]),R=(0,b.useMemo)(()=>L.filter(e=>F.has(e.name)),[L,F]),z=(0,b.useMemo)(()=>L.filter(e=>!F.has(e.name)),[L,F]);(0,b.useEffect)(()=>{let e=I.map(e=>e.name).sort().join(","),t=y.current.map(e=>e.name).sort().join(","),s=E.map(e=>e.name).sort().join(",");if(s!==k.current&&(k.current=s,""!==s&&(w.current=!1)),I.length>0&&e!==t){let e=I.map(e=>e.name);w.current?n(l.filter(t=>e.includes(t))):(w.current=!0,a&&a.length>0?n(a.filter(t=>e.includes(t))):E.length>0?n(E.map(e=>e.name).filter(t=>e.includes(t))):n(e))}y.current=I},[I,l,a,n,E]);let U=e=>{l.includes(e)?n(l.filter(t=>t!==e)):n([...l,e])},B=(e,t)=>{t.stopPropagation(),T(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s})},V=(e,t)=>{let s={...i};t?s[e]=t:delete s[e],c(s)},q=(e,t)=>{let s={...o};t?s[e]=t:delete s[e],u(s)};return M||r.url||r.spec_path?(0,t.jsx)(ef.Card,{children:(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(eg.ToolOutlined,{className:"text-blue-600"}),(0,t.jsx)(m.Title,{children:"Tool Configuration"}),I.length>0&&(0,t.jsx)(eh.Badge,{count:I.length,style:{backgroundColor:"#52c41a"}})]}),I.length>0&&(0,t.jsx)(eC.Radio.Group,{value:N,onChange:e=>_(e.target.value),size:"small",optionType:"button",buttonStyle:"solid",options:[{label:"Risk Groups",value:"crud"},{label:"Flat List",value:"flat"}]})]}),(0,t.jsx)("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-3",children:(0,t.jsxs)(d.Text,{className:"text-blue-800 text-sm",children:[(0,t.jsx)("strong",{children:"Select which tools users can call:"})," Only checked tools will be available for users to invoke. Unchecked tools will be blocked from execution."]})}),P&&(0,t.jsxs)("div",{className:"flex items-center justify-center py-6",children:[(0,t.jsx)(W.Spin,{size:"large"}),(0,t.jsx)(d.Text,{className:"ml-3",children:"Loading tools from spec..."})]}),O&&!P&&(0,t.jsxs)("div",{className:"text-center py-6 text-red-500 border rounded-lg border-dashed border-red-300 bg-red-50",children:[(0,t.jsx)(eg.ToolOutlined,{className:"text-2xl mb-2"}),(0,t.jsx)(d.Text,{className:"text-red-600 font-medium",children:"Unable to load tools"}),(0,t.jsx)("br",{}),(0,t.jsx)(d.Text,{className:"text-sm text-red-500",children:O})]}),!P&&!O&&0===I.length&&M&&(x&&x.length>0?(0,t.jsxs)("div",{className:"text-center py-4 text-gray-400 border rounded-lg border-dashed",children:[(0,t.jsx)(eg.ToolOutlined,{className:"text-2xl mb-2"}),(0,t.jsx)(d.Text,{children:"No tools loaded from spec"}),(0,t.jsxs)(d.Text,{className:"text-sm block mt-1",children:["Expected tools: ",x.map(e=>e.name).join(", ")]})]}):(0,t.jsxs)("div",{className:"text-center py-6 text-gray-400 border rounded-lg border-dashed",children:[(0,t.jsx)(eg.ToolOutlined,{className:"text-2xl mb-2"}),(0,t.jsx)(d.Text,{children:"No tools available for configuration"}),(0,t.jsx)("br",{}),(0,t.jsx)(d.Text,{className:"text-sm",children:"Connect to an MCP server with tools to configure them"})]})),!M&&(r.url||r.spec_path)&&(0,t.jsxs)("div",{className:"text-center py-6 text-gray-400 border rounded-lg border-dashed",children:[(0,t.jsx)(eg.ToolOutlined,{className:"text-2xl mb-2"}),(0,t.jsx)(d.Text,{children:"Complete required fields to configure tools"}),(0,t.jsx)("br",{}),(0,t.jsx)(d.Text,{className:"text-sm",children:"Fill in URL, Transport, and Authentication to load available tools"})]}),!P&&!O&&I.length>0&&(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-green-50 rounded-lg border border-green-200",children:[(0,t.jsx)(ev.CheckCircleOutlined,{className:"text-green-600"}),(0,t.jsxs)(d.Text,{className:"text-green-700 font-medium",children:[l.length," of ",I.length," ",1===I.length?"tool":"tools"," enabled for user access"]})]}),(0,t.jsx)(H.Input,{placeholder:"Search tools by name or description...",prefix:(0,t.jsx)(ek.SearchOutlined,{className:"text-gray-400"}),value:j,onChange:e=>v(e.target.value),allowClear:!0,className:"rounded-lg",size:"large"}),"crud"===N&&(0,t.jsx)(eI.default,{tools:I,searchFilter:j,value:0===l.length?void 0:l,onChange:e=>n(e)}),"flat"===N&&(0,t.jsx)(t.Fragment,{children:0===L.length?(0,t.jsxs)("div",{className:"text-center py-6 text-gray-400 border rounded-lg border-dashed",children:[(0,t.jsx)(ek.SearchOutlined,{className:"text-2xl mb-2"}),(0,t.jsxs)(d.Text,{children:['No tools found matching "',j,'"']})]}):(0,t.jsxs)("div",{className:"space-y-2",children:[R.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-1",children:[(0,t.jsx)("p",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wide",children:"Suggested tools"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>{let e=E.map(e=>e.name);n([...l.filter(e=>!F.has(e)),...e])},className:"text-xs text-blue-600 hover:text-blue-700",children:"Enable all"}),(0,t.jsx)("button",{type:"button",onClick:()=>{n(l.filter(e=>!F.has(e)))},className:"text-xs text-gray-500 hover:text-gray-700",children:"Disable all"})]})]}),R.map(e=>(0,t.jsx)(eP,{tool:e,isEnabled:l.includes(e.name),isEditExpanded:S.has(e.name),toolNameToDisplayName:i,toolNameToDescription:o,onToggle:U,onToggleExpand:B,onDisplayNameChange:V,onDescriptionChange:q},e.name))]}),z.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-1 pt-2",children:[(0,t.jsx)("p",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wide",children:R.length>0?"All tools":"Tools"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>{let e=I.filter(e=>!F.has(e.name)).map(e=>e.name),t=new Set(l);n([...l,...e.filter(e=>!t.has(e))])},className:"text-xs text-blue-600 hover:text-blue-700",children:"Enable all"}),(0,t.jsx)("button",{type:"button",onClick:()=>{n(l.filter(e=>F.has(e)))},className:"text-xs text-gray-500 hover:text-gray-700",children:"Disable all"})]})]}),z.map(e=>(0,t.jsx)(eP,{tool:e,isEnabled:l.includes(e.name),isEditExpanded:S.has(e.name),toolNameToDisplayName:i,toolNameToDescription:o,onToggle:U,onToggleExpand:B,onDisplayNameChange:V,onDescriptionChange:q},e.name))]})]})})]})]})}):null},eM=({isVisible:e,required:s=!0})=>e?(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Stdio Configuration (JSON)",(0,t.jsx)(g.Tooltip,{title:"Paste your stdio MCP server configuration in JSON format. You can use the full mcpServers structure from config.yaml or just the inner server configuration.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"stdio_config",rules:[...s?[{required:!0,message:"Please enter stdio configuration"}]:[],{validator:(e,t)=>{if(!t)return Promise.resolve();try{return JSON.parse(t),Promise.resolve()}catch{return Promise.reject("Please enter valid JSON")}}}],children:(0,t.jsx)(H.Input.TextArea,{placeholder:`{ + "mcpServers": { + "circleci-mcp-server": { + "command": "npx", + "args": ["-y", "@circleci/mcp-server-circleci"], + "env": { + "CIRCLECI_TOKEN": "your-circleci-token", + "CIRCLECI_BASE_URL": "https://circleci.com" + } + } + } +}`,rows:12,className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500 font-mono text-sm"})}):null;var eE=e.i(770914),eF=e.i(564897),eL=e.i(646563);let{Panel:eR}=ea.Collapse,ez=({availableAccessGroups:e,mcpServer:s,searchValue:r,setSearchValue:l,getAccessGroupOptions:a})=>{let n=D.Form.useFormInstance(),i=D.Form.useWatch("auth_type",n)===ec.AUTH_TYPE.OAUTH2,o=D.Form.useWatch("delegate_auth_to_upstream",n),c=D.Form.useWatch("available_on_public_internet",n),d=i&&!0===o&&!1===c;return(0,b.useEffect)(()=>{if(s){if(s.static_headers){let e=Object.entries(s.static_headers).map(([e,t])=>({header:e,value:null!=t?String(t):""}));n.setFieldValue("static_headers",e)}"boolean"==typeof s.allow_all_keys&&n.setFieldValue("allow_all_keys",s.allow_all_keys),"boolean"==typeof s.available_on_public_internet&&n.setFieldValue("available_on_public_internet",s.available_on_public_internet),"boolean"==typeof s.delegate_auth_to_upstream&&n.setFieldValue("delegate_auth_to_upstream",s.delegate_auth_to_upstream)}else n.setFieldValue("allow_all_keys",!1),n.setFieldValue("available_on_public_internet",!0),n.setFieldValue("delegate_auth_to_upstream",!1)},[s,n]),(0,b.useEffect)(()=>{i||n.setFieldValue("delegate_auth_to_upstream",!1)},[i,n]),(0,t.jsx)(ea.Collapse,{className:"bg-gray-50 border border-gray-200 rounded-lg",expandIconPosition:"end",ghost:!1,children:(0,t.jsx)(eR,{header:(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("div",{className:"w-2 h-2 bg-blue-500 rounded-full"}),(0,t.jsx)("h3",{className:"text-lg font-semibold text-gray-900",children:"Permission Management / Access Control"})]}),(0,t.jsx)("p",{className:"text-sm text-gray-600 ml-4",children:"Configure access permissions and security settings (Optional)"})]}),className:"border-0",forceRender:!0,children:(0,t.jsxs)("div",{className:"space-y-6 pt-4",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Allow All LiteLLM Keys",(0,t.jsx)(g.Tooltip,{title:"When enabled, every API key can access this MCP server.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),(0,t.jsx)("p",{className:"text-sm text-gray-600 mt-1",children:'Enable if this server should be "public" to all keys.'})]}),(0,t.jsx)(D.Form.Item,{name:"allow_all_keys",valuePropName:"checked",initialValue:s?.allow_all_keys??!1,className:"mb-0",children:(0,t.jsx)(el.Switch,{})})]}),(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Internal network only",(0,t.jsx)(g.Tooltip,{title:"When on, only requests from within your internal network are accepted. Turn off to allow external clients (other clusters, ChatGPT, etc). API key authentication is always required regardless of this setting.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),(0,t.jsx)("p",{className:"text-sm text-gray-600 mt-1",children:"Turn on to restrict access to callers within your internal network only."})]}),(0,t.jsx)(D.Form.Item,{name:"available_on_public_internet",valuePropName:"checked",getValueProps:e=>({checked:!e}),getValueFromEvent:e=>!e,initialValue:!0,className:"mb-0",children:(0,t.jsx)(el.Switch,{})})]}),i&&(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Delegate auth to upstream (PKCE passthrough)",(0,t.jsx)(g.Tooltip,{title:"When on, LiteLLM skips its own API key/SSO check for this server and lets the client complete PKCE directly with the upstream MCP server. Only honored when Auth Type is oauth2. No spend tracking or per-key rate limiting will run on this route.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),(0,t.jsx)("p",{className:"text-sm text-gray-600 mt-1",children:"Bypass LiteLLM auth so clients authenticate directly with the upstream OAuth MCP server."})]}),(0,t.jsx)(D.Form.Item,{name:"delegate_auth_to_upstream",valuePropName:"checked",initialValue:s?.delegate_auth_to_upstream??!1,className:"mb-0",children:(0,t.jsx)(el.Switch,{})})]}),d&&(0,t.jsx)(ej.Alert,{type:"warning",showIcon:!0,className:"mb-2",message:"Internal server with upstream OAuth delegation",description:"This MCP server is configured as internal-only but delegates auth to upstream. Anonymous users will be able to reach the upstream OAuth2 /authorize flow without a LiteLLM session. Ensure your upstream provider and network enforce access controls."}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["MCP Access Groups",(0,t.jsx)(g.Tooltip,{title:"Specify access groups for this MCP server. Users must be in at least one of these groups to access the server.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"mcp_access_groups",className:"mb-4",children:(0,t.jsx)(p.Select,{mode:"tags",showSearch:!0,placeholder:"Select existing groups or type to create new ones",optionFilterProp:"value",filterOption:(e,t)=>(t?.value??"").toLowerCase().includes(e.toLowerCase()),onSearch:e=>l(e),tokenSeparators:[","],options:a(),maxTagCount:"responsive",allowClear:!0})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Extra Headers",(0,t.jsx)(g.Tooltip,{title:"Forward custom headers from incoming requests to this MCP server (e.g., Authorization, X-Custom-Header, User-Agent)",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})}),s?.extra_headers&&s.extra_headers.length>0&&(0,t.jsxs)("span",{className:"ml-2 text-xs bg-blue-100 text-blue-700 px-2 py-1 rounded-full",children:[s.extra_headers.length," configured"]})]}),name:"extra_headers",children:(0,t.jsx)(p.Select,{mode:"tags",placeholder:s?.extra_headers&&s.extra_headers.length>0?`Currently: ${s.extra_headers.join(", ")}`:"Enter header names (e.g., Authorization, X-Custom-Header)",className:"rounded-lg",size:"large",tokenSeparators:[","],allowClear:!0})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Static Headers",(0,t.jsx)(g.Tooltip,{title:"Send these key-value headers with every request to this MCP server.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),required:!1,children:(0,t.jsx)(D.Form.List,{name:"static_headers",children:(e,{add:s,remove:r})=>(0,t.jsxs)("div",{className:"space-y-3",children:[e.map(({key:e,name:s,...l})=>(0,t.jsxs)(eE.Space,{className:"flex w-full",align:"baseline",size:"middle",children:[(0,t.jsx)(D.Form.Item,{...l,name:[s,"header"],className:"flex-1",rules:[{required:!0,message:"Header name is required"}],children:(0,t.jsx)(H.Input,{size:"large",allowClear:!0,className:"rounded-lg",placeholder:"Header name (e.g., X-API-Key)"})}),(0,t.jsx)(D.Form.Item,{...l,name:[s,"value"],className:"flex-1",rules:[{required:!0,message:"Header value is required"}],children:(0,t.jsx)(H.Input,{size:"large",allowClear:!0,className:"rounded-lg",placeholder:"Header value"})}),(0,t.jsx)(eF.MinusCircleOutlined,{onClick:()=>r(s),className:"text-gray-500 hover:text-red-500 cursor-pointer"})]},e)),(0,t.jsx)(ey.Button,{type:"dashed",onClick:()=>s(),icon:(0,t.jsx)(eL.PlusOutlined,{}),block:!0,children:"Add Static Header"})]})})})]})},"permissions")})},eU=({accessToken:e,selectedName:s,onSelect:r})=>{let[l,a]=(0,b.useState)([]),[n,i]=(0,b.useState)(!1),[o,c]=(0,b.useState)(new Set);return((0,b.useEffect)(()=>{e&&(i(!0),(0,_.fetchOpenAPIRegistry)(e).then(e=>a(e.apis??[])).catch(()=>a([])).finally(()=>i(!1)))},[e]),n)?(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Popular APIs"}),(0,t.jsx)("div",{className:"flex justify-center py-6",children:(0,t.jsx)(W.Spin,{size:"small"})})]}):0===l.length?null:(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700 block mb-2",children:"Popular APIs"}),(0,t.jsx)("div",{className:"grid grid-cols-5 gap-2",children:l.map(e=>{let l=s===e.name,a=o.has(e.name);return(0,t.jsxs)("button",{type:"button",title:e.description,onClick:()=>r(e),className:`flex flex-col items-center gap-1.5 p-3 rounded-lg border transition-all cursor-pointer + ${l?"border-blue-500 bg-blue-50 shadow-sm":"border-gray-200 hover:border-blue-300 hover:bg-gray-50"}`,children:[a?(0,t.jsx)("span",{className:"w-7 h-7 rounded-full bg-gray-200 flex items-center justify-center text-sm font-bold text-gray-600",children:e.title.charAt(0)}):(0,t.jsx)("img",{src:e.icon_url,alt:e.title,className:"w-7 h-7 object-contain",onError:()=>{var t;return t=e.name,void c(e=>new Set(e).add(t))}}),(0,t.jsx)("span",{className:"text-xs text-gray-600 text-center leading-tight font-medium",children:e.title})]},e.name)})}),(0,t.jsx)("p",{className:"text-xs text-gray-400 mt-2",children:"Select an API to pre-fill the spec URL and OAuth 2.0 settings, or enter your own spec URL below."})]})},eB=({form:e,accessToken:s,onValuesChange:r,onKeyToolsChange:l,onLogoUrlChange:a,onOAuthDocsUrlChange:n})=>{let[i,o]=(0,b.useState)(null);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eU,{accessToken:s,selectedName:i,onSelect:t=>{o(t.name),l?.(t.key_tools??[]),a?.(t.icon_url||void 0);let s={spec_path:t.spec_url};t.oauth?(s.auth_type=ec.AUTH_TYPE.OAUTH2,s.oauth_flow_type=ec.OAUTH_FLOW.INTERACTIVE,s.authorization_url=t.oauth.authorization_url,s.token_url=t.oauth.token_url,e.setFieldsValue(s),n?.(t.oauth.docs_url??null)):(e.resetFields(["auth_type","authorization_url","token_url"]),e.setFieldsValue(s),n?.(null)),r(s)}}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["OpenAPI Spec URL",(0,t.jsx)(g.Tooltip,{title:"URL to an OpenAPI specification (JSON or YAML). MCP tools will be automatically generated from the API endpoints defined in the spec.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"spec_path",rules:[{required:!0,message:"Please enter an OpenAPI spec URL"}],children:(0,t.jsx)(H.Input,{placeholder:"https://petstore3.swagger.io/api/v3/openapi.json",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500",onChange:()=>{o(null),l?.([]),n?.(null)}})})]})};var eV=e.i(596239);let eq="/ui/assets/logos/",e$=[{name:"GitHub",url:`${eq}github.svg`},{name:"Slack",url:`${eq}slack.svg`},{name:"Notion",url:`${eq}notion.svg`},{name:"Linear",url:`${eq}linear.svg`},{name:"Jira",url:`${eq}jira.svg`},{name:"Figma",url:`${eq}figma.svg`},{name:"Gmail",url:`${eq}gmail.svg`},{name:"Google Drive",url:`${eq}google_drive.svg`},{name:"Stripe",url:`${eq}stripe.svg`},{name:"Shopify",url:`${eq}shopify.svg`},{name:"Salesforce",url:`${eq}salesforce.svg`},{name:"HubSpot",url:`${eq}hubspot.svg`},{name:"Twilio",url:`${eq}twilio.svg`},{name:"Cloudflare",url:`${eq}cloudflare.svg`},{name:"Sentry",url:`${eq}sentry.svg`},{name:"PostgreSQL",url:`${eq}postgresql.svg`},{name:"Snowflake",url:`${eq}snowflake.svg`},{name:"Zapier",url:`${eq}zapier.svg`},{name:"Google",url:`${eq}google.svg`},{name:"GitLab",url:`${eq}gitlab.svg`}],eD=({value:e,onChange:s})=>{let[r,l]=(0,b.useState)(new Set);return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Logo"}),(0,t.jsx)(g.Tooltip,{title:"Select a well-known logo or paste a URL to any image. The logo is shown on the admin and chat pages.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"text-blue-400 hover:text-blue-600 cursor-help"})})]}),e&&(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-3 p-3 bg-gray-50 rounded-lg border border-gray-200",children:[(0,t.jsx)("img",{src:e,alt:"Selected logo",className:"w-10 h-10 object-contain rounded",onError:e=>{e.target.style.display="none"}}),(0,t.jsx)("div",{className:"flex-1 min-w-0",children:(0,t.jsx)("div",{className:"text-xs text-gray-500 truncate",children:e})}),(0,t.jsx)("button",{type:"button",onClick:()=>s?.(void 0),className:"text-xs text-gray-400 hover:text-red-500 cursor-pointer bg-transparent border-none",children:"✕"})]}),(0,t.jsx)("div",{className:"grid grid-cols-10 gap-1.5 mb-3",children:e$.map(a=>{let n=e===a.url;return r.has(a.url)?null:(0,t.jsx)(g.Tooltip,{title:a.name,children:(0,t.jsx)("button",{type:"button",onClick:()=>{var t;return t=a.url,void s?.(e===t?void 0:t)},className:`flex items-center justify-center p-2 rounded-lg border transition-all cursor-pointer + ${n?"border-blue-500 bg-blue-50 shadow-sm":"border-gray-200 hover:border-blue-300 hover:bg-gray-50"}`,style:{width:40,height:40},children:(0,t.jsx)("img",{src:a.url,alt:a.name,className:"w-5 h-5 object-contain",onError:()=>{var e;return e=a.url,void l(t=>new Set(t).add(e))}})})},a.name)})}),(0,t.jsx)(H.Input,{prefix:(0,t.jsx)(eV.LinkOutlined,{className:"text-gray-400"}),placeholder:"Or paste a custom logo URL...",value:e&&!e$.some(t=>t.url===e)?e:"",onChange:e=>{let t=e.target.value.trim();s?.(t||void 0)},className:"rounded-lg",size:"small"})]})},eH=e=>{try{let t=e.indexOf("/mcp/");if(-1===t)return{token:null,baseUrl:e};let s=e.split("/mcp/");if(2!==s.length)return{token:null,baseUrl:e};let r=s[0]+"/mcp/",l=s[1];if(!l)return{token:null,baseUrl:e};return{token:l,baseUrl:r}}catch(t){return console.error("Error parsing MCP URL:",t),{token:null,baseUrl:e}}},eK=e=>{let{token:t}=eH(e);return{maskedUrl:(e=>{let{token:t,baseUrl:s}=eH(e);return t?s+"...":e})(e),hasToken:!!t}},eW=e=>e?/^https?:\/\/[^\s/$.?#].[^\s]*$/i.test(e)?Promise.resolve():Promise.reject("Please enter a valid URL (e.g., http://service-name.domain:1234/path or https://example.com)"):Promise.resolve(),eJ=e=>e&&(e.includes("-")||e.includes(" "))?Promise.reject("Cannot contain '-' (hyphen) or spaces. Please use '_' (underscore) instead."):Promise.resolve();var eY=e.i(122520),eG=e.i(165615),eQ=e.i(434166);let eZ=({accessToken:e,getCredentials:t,getTemporaryPayload:s,onTokenReceived:r,onBeforeRedirect:l})=>{let[a,n]=(0,b.useState)("idle"),[i,o]=(0,b.useState)(null),[c,d]=(0,b.useState)(null),m=(0,b.useRef)(!1),u="litellm-mcp-oauth-flow-state",x="litellm-mcp-oauth-result",h="litellm-mcp-oauth-return-url",p=(e,t)=>{(0,eQ.setSecureItem)(e,t)},g=e=>{try{return(0,eQ.getSecureItem)(e)}catch(t){return console.warn(`Failed to get storage item ${e}`,t),null}},f=()=>{try{window.sessionStorage.removeItem(u),window.sessionStorage.removeItem(x),window.sessionStorage.removeItem(h),window.localStorage.removeItem(u),window.localStorage.removeItem(x),window.localStorage.removeItem(h)}catch(e){console.warn("Failed to clear OAuth storage",e)}},y=()=>{let e,t,s;return s=((t=(e=window.location.pathname||"").indexOf("/ui"))>=0?e.slice(0,t+3):"").replace(/\/+$/,""),`${window.location.origin}${s}/mcp/oauth/callback`},j=(0,b.useCallback)(async()=>{let r=t()||{};if(!e){o("Missing admin token"),S.default.error("Access token missing. Please re-authenticate and try again.");return}let a=s();if(!a||!a.url||!a.transport){let e="Please complete server URL and transport before starting OAuth.";o(e),S.default.error(e);return}try{n("authorizing"),o(null);let t=await (0,_.cacheTemporaryMcpServer)(e,a),s=t?.server_id?.trim();if(!s)throw Error("Temporary MCP server identifier missing. Please retry.");let i={};if(!(a.credentials?.client_id&&a.credentials?.client_secret)){let t=await (0,_.registerMcpOAuthClient)(e,s,{client_name:a.alias||a.server_name||s,grant_types:["authorization_code","refresh_token"],response_types:["code"],token_endpoint_auth_method:a.credentials&&a.credentials.client_secret?"client_secret_post":"none"});i={clientId:t?.client_id,clientSecret:t?.client_secret}}let c=(0,eG.generateCodeVerifier)(),d=await (0,eG.generateCodeChallenge)(c),m=crypto.randomUUID(),x=i.clientId||r.client_id,g=Array.isArray(r.scopes)?r.scopes.filter(e=>e&&e.trim().length>0).join(" "):void 0,f=(0,_.buildMcpOAuthAuthorizeUrl)({serverId:s,clientId:x,redirectUri:y(),state:m,codeChallenge:d,scope:g}),b={state:m,codeVerifier:c,clientId:x,clientSecret:i.clientSecret||r.client_secret,serverId:s,redirectUri:y()};if(l)try{l()}catch(e){console.error("Failed to prepare for OAuth redirect",e)}try{p(u,JSON.stringify(b)),p(h,window.location.href)}catch(e){throw Error("Unable to access browser storage for OAuth. Please enable storage and retry.")}window.location.href=f}catch(t){console.error("Failed to start OAuth flow",t),n("error");let e=(0,eY.extractErrorMessage)(t);o(e),S.default.error(e)}},[e,t,s,l]),v=(0,b.useCallback)(async()=>{if(m.current)return;let t=null,s=null;try{let e=g(x);if(!e)return;let r=g(u);if(!r)return;m.current=!0,t=JSON.parse(e),s=JSON.parse(r)}catch(e){f(),m.current=!1,o("Failed to resume OAuth flow. Please retry."),n("error"),S.default.error("Failed to resume OAuth flow. Please retry.");return}if(!t){m.current=!1;return}try{window.sessionStorage.removeItem(x),window.localStorage.removeItem(x)}catch(e){}try{if(!s||!s.state||!s.codeVerifier||!s.serverId)throw Error("OAuth session state was lost. This can happen if you have strict browser privacy settings. Please try again and ensure cookies/storage is enabled.");if(!t.state||t.state!==s.state)throw Error("OAuth state mismatch. Please retry.");if(t.error)throw Error(t.error_description||t.error);if(!t.code)throw Error("Authorization code missing in callback.");n("exchanging");let l=await (0,_.exchangeMcpOAuthToken)({serverId:s.serverId,code:t.code,clientId:s.clientId,clientSecret:s.clientSecret,codeVerifier:s.codeVerifier,redirectUri:s.redirectUri,accessToken:e});r(l),d(l),n("success"),o(null),S.default.success("OAuth token retrieved successfully")}catch(t){let e=(0,eY.extractErrorMessage)(t);o(e),n("error"),S.default.error(e)}finally{f(),setTimeout(()=>{m.current=!1},1e3)}},[r]);return(0,b.useEffect)(()=>{v()},[v]),{startOAuthFlow:j,status:a,error:i,tokenResponse:c}},eX="../ui/assets/logos/mcp_logo.png",e0=[ec.AUTH_TYPE.API_KEY,ec.AUTH_TYPE.BEARER_TOKEN,ec.AUTH_TYPE.TOKEN,ec.AUTH_TYPE.BASIC],e2=[...e0,ec.AUTH_TYPE.OAUTH2,ec.AUTH_TYPE.AWS_SIGV4],e1="litellm-mcp-oauth-create-state",e5=e=>Array.isArray(e)?e.reduce((e,t)=>{let s=t?.header?.trim();return s&&(e[s]=t?.value??""),e},{}):{},e4=({userID:e,userRole:r,accessToken:a,onCreateSuccess:n,isModalVisible:i,setModalVisible:o,availableAccessGroups:c,prefillData:d,onBackToDiscovery:m})=>{let[u]=D.Form.useForm(),[x,f]=(0,b.useState)(!1),[y,j]=(0,b.useState)({}),[v,N]=(0,b.useState)({}),[w,k]=(0,b.useState)(null),[T,C]=(0,b.useState)(!1),[A,I]=(0,b.useState)([]),[P,O]=(0,b.useState)({}),[M,E]=(0,b.useState)({}),[F,L]=(0,b.useState)(""),[R,z]=(0,b.useState)([]),[U,B]=(0,b.useState)(""),[V,q]=(0,b.useState)(null),[$,K]=(0,b.useState)(void 0),[W,J]=(0,b.useState)(null),{tools:Y,isLoadingTools:G,toolsError:Q,toolsErrorStackTrace:Z,canFetchTools:X,fetchTools:ee,clearTools:et}=eA({accessToken:a,oauthAccessToken:V,formValues:v,enabled:!0}),es=v.auth_type,er=!!es&&e0.includes(es),ed=es===ec.AUTH_TYPE.OAUTH2,em=es===ec.AUTH_TYPE.AWS_SIGV4,eu=ed&&v.oauth_flow_type===ec.OAUTH_FLOW.M2M,{startOAuthFlow:eh,status:ep,error:eg,tokenResponse:ef}=eZ({accessToken:a,getCredentials:()=>u.getFieldValue("credentials"),getTemporaryPayload:()=>{let e=u.getFieldsValue(!0),t=e.transport||F,s=e.url||(t===ec.TRANSPORT.OPENAPI?e.spec_path:void 0);if(!s||!t)return null;let r=e5(e.static_headers);return{server_id:void 0,server_name:e.server_name,alias:e.alias,description:e.description,url:s,transport:t===ec.TRANSPORT.OPENAPI?"http":t,auth_type:ec.AUTH_TYPE.OAUTH2,credentials:e.credentials,authorization_url:e.authorization_url,token_url:e.token_url,registration_url:e.registration_url,mcp_access_groups:e.mcp_access_groups,static_headers:r,command:e.command,args:e.args,env:e.env}},onTokenReceived:e=>{if(q(e?.access_token??null),e?.access_token){let t={access_token:e.access_token,...e.refresh_token&&{refresh_token:e.refresh_token},...e.expires_in&&{expires_in:e.expires_in},...e.scope&&{scope:e.scope}};u.setFieldsValue({credentials:t}),S.default.success("OAuth authorization successful! Please click 'Create MCP Server' to save the configuration.")}},onBeforeRedirect:()=>{try{let e=u.getFieldsValue(!0);(0,eQ.setSecureItem)(e1,JSON.stringify({modalVisible:i,formValues:e,transportType:F,costConfig:y,allowedTools:A,searchValue:U,aliasManuallyEdited:T,logoUrl:$}))}catch(e){console.warn("Failed to persist MCP create state",e)}}});b.default.useEffect(()=>{let e=(0,eQ.getSecureItem)(e1);if(e)try{let t=JSON.parse(e);t.modalVisible&&o(!0);let s=t.formValues?.transport||t.transportType||"";s&&L(s),t.formValues&&k({values:t.formValues,transport:s}),t.costConfig&&j(t.costConfig),t.allowedTools&&I(t.allowedTools),t.searchValue&&B(t.searchValue),"boolean"==typeof t.aliasManuallyEdited&&C(t.aliasManuallyEdited),t.logoUrl&&K(t.logoUrl)}catch(e){console.error("Failed to restore MCP create state",e)}finally{window.sessionStorage.removeItem(e1)}},[u,o]),b.default.useEffect(()=>{w&&(F||w.transport,(!w.transport||F)&&(u.setFieldsValue(w.values),N(w.values),k(null)))},[w,u,F]),b.default.useEffect(()=>{if(!i||!d)return;let e=(d.name||"").replace(/[^a-zA-Z0-9_]/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,""),t=d.transport||"";L(t);let s={server_name:e,alias:e,description:d.description||"",transport:t};if("stdio"===t){let e={};if(d.command&&(e.command=d.command),d.args&&d.args.length>0&&(e.args=d.args),d.env_vars&&d.env_vars.length>0){let t={};for(let e of d.env_vars)t[e.name]=e.description?`<${e.description}>`:"";e.env=t}Object.keys(e).length>0&&(s.stdio_config=JSON.stringify(e,null,2))}else d.url&&(s.url=d.url);u.setFieldsValue(s),N(s),C(!1)},[i,d,u]);let ey=async t=>{f(!0);try{let{static_headers:s,stdio_config:r,credentials:l,allow_all_keys:i,available_on_public_internet:c,delegate_auth_to_upstream:d,token_validation_json:m,...x}=t,h=x.mcp_access_groups,p=e5(s),g=l&&"object"==typeof l?Object.entries(l).reduce((e,[t,s])=>{if(null==s||""===s)return e;if("scopes"===t){if(Array.isArray(s)){let r=s.filter(e=>null!=e&&""!==e);r.length>0&&(e[t]=r)}}else e[t]=s;return e},{}):void 0,b={};if(r&&"stdio"===F)try{let e=JSON.parse(r),t=e;if(e.mcpServers&&"object"==typeof e.mcpServers){let s=Object.keys(e.mcpServers);if(s.length>0){let r=s[0];t=e.mcpServers[r],x.server_name||(x.server_name=r.replace(/-/g,"_"))}}b={command:t.command,args:t.args,env:t.env},console.log("Parsed stdio config:",b)}catch(e){S.default.fromBackend("Invalid JSON in stdio configuration");return}x.transport===ec.TRANSPORT.OPENAPI&&(x.transport="http");let v=null;if(m&&""!==m.trim())try{v=JSON.parse(m)}catch{S.default.fromBackend("Invalid JSON in Token Validation Rules"),f(!1);return}let N={...x,...b,stdio_config:void 0,mcp_info:{server_name:x.server_name||x.url,description:x.description,logo_url:$||void 0,mcp_server_cost_info:Object.keys(y).length>0?y:null},mcp_access_groups:h,alias:x.alias,allowed_tools:A.length>0?A:null,tool_name_to_display_name:Object.keys(P).length>0?P:null,tool_name_to_description:Object.keys(M).length>0?M:null,allow_all_keys:!!i,available_on_public_internet:!!c,delegate_auth_to_upstream:!!d,static_headers:p,...null!==v&&{token_validation:v}};if(N.static_headers=p,x.auth_type&&e2.includes(x.auth_type)&&g&&Object.keys(g).length>0&&(N.credentials=g),console.log(`Payload: ${JSON.stringify(N)}`),null!=a){let t=ev?await (0,_.createMCPServer)(a,N):await (0,_.registerMCPServer)(a,N);ef?.access_token&&t?.server_id&&(0,eo.setToken)(t.server_id,{access_token:ef.access_token,expires_in:ef.expires_in,refresh_token:ef.refresh_token,token_type:ef.token_type},e),S.default.success(ev?"MCP Server created successfully":"MCP Server submitted for admin review"),u.resetFields(),j({}),et(),I([]),C(!1),K(void 0),o(!1),n(t)}}catch(t){let e=t instanceof Error?t.message:String(t);S.default.fromBackend(ev?`Error creating MCP Server: ${e}`:`Error submitting MCP Server: ${e}`)}finally{f(!1)}},ej=()=>{u.resetFields(),j({}),et(),I([]),C(!1),K(void 0),o(!1)};b.default.useEffect(()=>{if(!T&&v.server_name){let e=v.server_name.replace(/\s+/g,"_");u.setFieldsValue({alias:e}),N(t=>({...t,alias:e}))}},[v.server_name]),b.default.useEffect(()=>{i||N({})},[i]);let ev=(0,s.isAdminRole)(r);return(0,t.jsx)(h.Modal,{title:(0,t.jsxs)("div",{className:"flex items-center pb-4 border-b border-gray-100",style:{gap:12},children:[m&&(0,t.jsx)("button",{onClick:m,className:"text-sm text-blue-600 hover:text-blue-800 cursor-pointer bg-transparent border-none",style:{flexShrink:0},children:"←"}),(0,t.jsx)("img",{src:eX,alt:"MCP Logo",className:"w-8 h-8 object-contain",style:{height:"20px",width:"20px",objectFit:"contain"}}),(0,t.jsx)("h2",{className:"text-xl font-semibold text-gray-900",children:ev?"Add New MCP Server":"Submit MCP Server for Review"})]}),open:i,width:1e3,onCancel:ej,footer:null,forceRender:!0,className:"top-8",styles:{body:{padding:"24px"},header:{padding:"24px 24px 0 24px",border:"none"}},children:(0,t.jsx)("div",{className:"mt-6",children:(0,t.jsxs)(D.Form,{form:u,onFinish:ey,onValuesChange:(e,t)=>N(t),layout:"vertical",className:"space-y-6",children:[!ev&&(0,t.jsxs)("div",{className:"rounded-md bg-blue-50 border border-blue-200 px-4 py-3 text-sm text-blue-800",children:["Your submission will be sent for admin review before it becomes active."," ","Note: the request must be made with a team-scoped API key."]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-6",children:[(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["MCP Server Name",(0,t.jsx)(g.Tooltip,{title:"Best practice: Use a descriptive name that indicates the server's purpose (e.g., 'GitHub_MCP', 'Email_Service'). Cannot contain spaces or hyphens; use underscores instead. Names must comply with SEP-986 and will be rejected if invalid (https://modelcontextprotocol.io/specification/2025-11-25/server/tools#tool-names).",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"server_name",rules:[{required:!1,message:"Please enter a server name"},{validator:(e,t)=>eJ(t)}],children:(0,t.jsx)(ei.TextInput,{placeholder:"e.g., GitHub_MCP, Zapier_MCP, etc.",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Alias",(0,t.jsx)(g.Tooltip,{title:"A short, unique identifier for this server. Defaults to the server name if not provided. Cannot contain spaces or hyphens; use underscores instead.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"alias",rules:[{required:!1},{validator:(e,t)=>eJ(t)}],children:(0,t.jsx)(ei.TextInput,{placeholder:"e.g., GitHub_MCP, Zapier_MCP, etc.",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500",onChange:()=>C(!0)})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Description"}),name:"description",rules:[{required:!1,message:"Please enter a server description"}],children:(0,t.jsx)(ei.TextInput,{placeholder:"Brief description of what this server does",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(eD,{value:$,onChange:K}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"GitHub / Source URL"}),name:"source_url",children:(0,t.jsx)(ei.TextInput,{placeholder:"https://github.com/org/mcp-server",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Transport Type"}),name:"transport",rules:[{required:!0,message:"Please select a transport type"}],children:(0,t.jsxs)(p.Select,{placeholder:"Select transport",className:"rounded-lg",size:"large",onChange:e=>{L(e),"stdio"===e?u.setFieldsValue({url:void 0,spec_path:void 0,auth_type:void 0,credentials:void 0}):e===ec.TRANSPORT.OPENAPI?u.setFieldsValue({url:void 0,command:void 0,args:void 0,env:void 0}):u.setFieldsValue({spec_path:void 0,command:void 0,args:void 0,env:void 0})},value:F,children:[(0,t.jsx)(p.Select.Option,{value:"http",children:"Streamable HTTP (Recommended)"}),(0,t.jsx)(p.Select.Option,{value:"sse",children:"Server-Sent Events (SSE)"}),(0,t.jsx)(p.Select.Option,{value:"stdio",children:"Standard Input/Output (stdio)"}),(0,t.jsx)(p.Select.Option,{value:ec.TRANSPORT.OPENAPI,children:"OpenAPI Spec"})]})}),("http"===F||"sse"===F)&&(0,t.jsx)(D.Form.Item,{label:(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"MCP Server URL"}),name:"url",rules:[{required:!0,message:"Please enter a server URL"},{validator:(e,t)=>eW(t)}],children:(0,t.jsx)(H.Input,{placeholder:"https://your-mcp-server.com",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),F===ec.TRANSPORT.OPENAPI&&(0,t.jsx)(eB,{form:u,accessToken:i?a:null,onValuesChange:e=>N(t=>({...t,...e})),onKeyToolsChange:z,onLogoUrlChange:K,onOAuthDocsUrlChange:J}),F===ec.TRANSPORT.OPENAPI&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center gap-2",children:["BYOK (Bring Your Own Key)",(0,t.jsx)(g.Tooltip,{title:"When enabled, each user provides their own API key for this service. Keys are stored per-user and never shared.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"is_byok",valuePropName:"checked",children:(0,t.jsx)(el.Switch,{})}),(0,t.jsx)(D.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.is_byok!==t.is_byok||e.auth_type!==t.auth_type,children:({getFieldValue:e})=>e("is_byok")?(0,t.jsxs)(t.Fragment,{children:[e("auth_type")&&"none"!==e("auth_type")&&(0,t.jsxs)("div",{className:"mb-4 p-3 bg-blue-50 rounded-lg text-sm text-blue-700 flex items-start gap-2",children:[(0,t.jsx)(en.InfoCircleOutlined,{className:"mt-0.5 flex-shrink-0"}),(0,t.jsxs)("span",{children:["User keys will be sent as:"," ",(0,t.jsxs)("code",{className:"font-mono bg-blue-100 px-1 rounded",children:["bearer_token"===e("auth_type")&&"Authorization: Bearer {key}","token"===e("auth_type")&&"Authorization: token {key}","api_key"===e("auth_type")&&"x-api-key: {key}","basic"===e("auth_type")&&"Authorization: Basic {key}","authorization"===e("auth_type")&&"Authorization: {key}"]}),!e("auth_type")&&"Set Authentication Type below to specify the format."]})]}),!e("auth_type")&&(0,t.jsxs)("div",{className:"mb-4 p-3 bg-yellow-50 rounded-lg text-sm text-yellow-700 flex items-start gap-2",children:[(0,t.jsx)(en.InfoCircleOutlined,{className:"mt-0.5 flex-shrink-0"}),(0,t.jsxs)("span",{children:["Set the ",(0,t.jsx)("strong",{children:"Authentication Type"})," below to specify how user keys are sent (e.g., Bearer Token, API Key header)."]})]}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700",children:["Access Description",(0,t.jsx)(g.Tooltip,{title:"List of permissions shown to users in the connection modal (e.g. 'Create and manage Jira issues')",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"byok_description",children:(0,t.jsx)(p.Select,{mode:"tags",placeholder:"Add access description items (press Enter after each)",className:"w-full",tokenSeparators:[","]})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700",children:["API Key Help URL",(0,t.jsx)(g.Tooltip,{title:"Optional link shown to users to help them find their API key",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"byok_api_key_help_url",children:(0,t.jsx)(H.Input,{placeholder:"https://docs.example.com/api-keys"})})]}):null})]}),"stdio"!==F&&""!==F&&(0,t.jsx)(ea.Collapse,{defaultActiveKey:["auth"],className:"mb-4",items:[{key:"auth",label:(0,t.jsx)("span",{className:"text-sm font-semibold text-gray-700",children:"Authentication"}),children:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(D.Form.Item,{name:"auth_type",rules:[{required:!0,message:"Please select an auth type"}],children:(0,t.jsxs)(p.Select,{placeholder:"Select auth type",className:"rounded-lg",size:"large",children:[(0,t.jsx)(p.Select.Option,{value:"none",children:"None"}),(0,t.jsx)(p.Select.Option,{value:"api_key",children:"API Key"}),(0,t.jsx)(p.Select.Option,{value:"bearer_token",children:"Bearer Token"}),(0,t.jsx)(p.Select.Option,{value:"token",children:"Token"}),(0,t.jsx)(p.Select.Option,{value:"basic",children:"Basic Auth"}),(0,t.jsx)(p.Select.Option,{value:"oauth2",children:"OAuth"}),(0,t.jsx)(p.Select.Option,{value:"aws_sigv4",children:"AWS SigV4 (Bedrock AgentCore MCPs)"})]})}),er&&(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Authentication Value",(0,t.jsx)(g.Tooltip,{title:"Token, password, or header value to send with each request for the selected auth type.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:["credentials","auth_value"],rules:[{validator:(e,t)=>t&&"string"==typeof t&&""===t.trim()?Promise.reject(Error("Authentication value cannot be empty whitespace")):Promise.resolve()}],children:(0,t.jsx)(ei.TextInput,{type:"password",placeholder:"Enter token or secret",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),ed&&(0,t.jsx)(ex,{isM2M:eu,initialFlowType:ec.OAUTH_FLOW.INTERACTIVE,docsUrl:W,oauthFlow:{startOAuthFlow:eh,status:ep,error:eg,tokenResponse:ef}})]})}]}),"stdio"!==F&&""!==F&&em&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:"text-sm text-gray-500 mb-2",children:["For MCP servers hosted on AWS Bedrock AgentCore."," ",(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/mcp_aws_sigv4",target:"_blank",rel:"noopener noreferrer",className:"text-blue-500 hover:text-blue-700",children:"View docs →"})]}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["AWS Region",(0,t.jsx)(g.Tooltip,{title:"AWS region for SigV4 signing (e.g., us-east-1)",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:["credentials","aws_region_name"],rules:[{required:!0,message:"AWS region is required for SigV4 auth"}],children:(0,t.jsx)(H.Input,{placeholder:"us-east-1",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["AWS Service Name",(0,t.jsx)(g.Tooltip,{title:"AWS service name for SigV4 signing. Defaults to 'bedrock-agentcore'.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:["credentials","aws_service_name"],children:(0,t.jsx)(H.Input,{placeholder:"bedrock-agentcore",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["AWS Access Key ID",(0,t.jsx)(g.Tooltip,{title:"Optional. If not provided, falls back to the boto3 credential chain (IAM role, env vars, etc.).",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:["credentials","aws_access_key_id"],dependencies:[["credentials","aws_secret_access_key"]],rules:[({getFieldValue:e})=>({validator:(t,s)=>e(["credentials","aws_secret_access_key"])&&!s?Promise.reject(Error("Access Key ID is required when Secret Access Key is provided")):Promise.resolve()})],children:(0,t.jsx)(H.Input.Password,{placeholder:"AKIA... (optional — uses IAM role if blank)",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["AWS Secret Access Key",(0,t.jsx)(g.Tooltip,{title:"Optional. Required if AWS Access Key ID is provided.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:["credentials","aws_secret_access_key"],dependencies:[["credentials","aws_access_key_id"]],rules:[({getFieldValue:e})=>({validator:(t,s)=>e(["credentials","aws_access_key_id"])&&!s?Promise.reject(Error("Secret Access Key is required when Access Key ID is provided")):Promise.resolve()})],children:(0,t.jsx)(H.Input.Password,{placeholder:"Enter secret key (optional — uses IAM role if blank)",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["AWS Session Token",(0,t.jsx)(g.Tooltip,{title:"Optional. Only needed for temporary STS credentials.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:["credentials","aws_session_token"],children:(0,t.jsx)(H.Input.Password,{placeholder:"Enter session token (optional)",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["AWS Role ARN",(0,t.jsx)(g.Tooltip,{title:"Optional. IAM role ARN to assume via STS before signing. If set, LiteLLM calls sts:AssumeRole to get temporary credentials. Uses ambient credentials (IAM role, env vars) as the source identity unless explicit keys are also provided.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:["credentials","aws_role_name"],children:(0,t.jsx)(H.Input,{placeholder:"arn:aws:iam::123456789012:role/MyRole (optional)",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["AWS Session Name",(0,t.jsx)(g.Tooltip,{title:"Optional. Session name for the AssumeRole call — appears in CloudTrail logs. Auto-generated if omitted.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:["credentials","aws_session_name"],children:(0,t.jsx)(H.Input,{placeholder:"litellm-prod (optional, auto-generated if blank)",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})})]}),(0,t.jsx)(eM,{isVisible:"stdio"===F})]}),(0,t.jsx)("div",{className:"mt-8",children:(0,t.jsx)(ez,{availableAccessGroups:c,mcpServer:null,searchValue:U,setSearchValue:B,getAccessGroupOptions:()=>{let e=c.map(e=>({value:e,label:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"w-2 h-2 bg-green-500 rounded-full"}),(0,t.jsx)("span",{className:"font-medium",children:e})]})}));return U&&!c.some(e=>e.toLowerCase().includes(U.toLowerCase()))&&e.push({value:U,label:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"w-2 h-2 bg-blue-500 rounded-full"}),(0,t.jsx)("span",{className:"font-medium",children:U}),(0,t.jsx)("span",{className:"text-gray-400 text-xs ml-1",children:"create new group"})]})}),e}})}),(0,t.jsx)("div",{className:"mt-8 pt-6 border-t border-gray-200",children:(0,t.jsx)(ew,{formValues:v,tools:Y,isLoadingTools:G,toolsError:Q,toolsErrorStackTrace:Z,canFetchTools:X,fetchTools:ee})}),(0,t.jsx)("div",{className:"mt-6",children:(0,t.jsx)(eO,{accessToken:a,oauthAccessToken:V,formValues:v,allowedTools:A,existingAllowedTools:null,onAllowedToolsChange:I,toolNameToDisplayName:P,toolNameToDescription:M,onToolNameToDisplayNameChange:O,onToolNameToDescriptionChange:E,keyTools:R,externalTools:Y,externalIsLoading:G,externalError:Q,externalCanFetch:X})}),(0,t.jsx)("div",{className:"mt-6",children:(0,t.jsx)(eb,{value:y,onChange:j,tools:Y.filter(e=>A.includes(e.name)),disabled:!1})}),(0,t.jsxs)("div",{className:"flex items-center justify-end space-x-3 pt-6 border-t border-gray-100",children:[(0,t.jsx)(l.Button,{variant:"secondary",onClick:ej,children:"Cancel"}),(0,t.jsx)(l.Button,{variant:"primary",loading:x,children:x?"Creating...":"Add MCP Server"})]})]})})})};var e6=e.i(175712),e3=e.i(118366),e7=e.i(475254);let e8=(0,e7.default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);e.s(["Code",0,e8],758472);let e9=(0,e7.default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]),te=(0,e7.default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);var tt=e.i(634831),ts=e.i(438100);let tr=(0,e7.default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);var tl=e.i(500330);let{Title:ta,Text:tn}=f.Typography,{Panel:ti}=ea.Collapse,to=({icon:e,title:s,description:r,children:l,serverName:a,accessGroups:n=["dev-group"]})=>{let[i,o]=(0,b.useState)(!1);return(0,t.jsxs)(e6.Card,{className:"border border-gray-200",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-3",children:[(0,t.jsx)("span",{className:"p-2 rounded-lg bg-gray-50",children:e}),(0,t.jsxs)("div",{children:[(0,t.jsx)(ta,{level:5,className:"mb-0",children:s}),(0,t.jsx)(tn,{className:"text-gray-600",children:r})]})]}),a&&("Implementation Example"===s||"Configuration"===s)&&(0,t.jsxs)(D.Form.Item,{className:"mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,t.jsx)(el.Switch,{size:"small",checked:i,onChange:o}),(0,t.jsxs)(tn,{className:"text-sm",children:["Limit tools to specific MCP servers or MCP groups by passing the ",(0,t.jsx)("code",{children:"x-mcp-servers"})," header"]})]}),i&&(0,t.jsx)(ej.Alert,{className:"mt-2",type:"info",showIcon:!0,message:"Two Options",description:(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{children:[(0,t.jsx)("strong",{children:"Option 1:"})," Get a specific server: ",(0,t.jsxs)("code",{children:['"',a.replace(/\s+/g,"_"),'"']})]}),(0,t.jsxs)("p",{children:[(0,t.jsx)("strong",{children:"Option 2:"})," Get a group of MCPs: ",(0,t.jsx)("code",{children:'"dev-group"'})]}),(0,t.jsxs)("p",{className:"mt-2 text-sm text-gray-600",children:["You can also mix both: ",(0,t.jsx)("code",{children:'"Server1,dev-group"'})]})]})})]}),b.default.Children.map(l,e=>{if(b.default.isValidElement(e)&&e.props.hasOwnProperty("code")&&e.props.hasOwnProperty("copyKey")){let t=e.props.code;if(t&&t.includes('"headers":'))return b.default.cloneElement(e,{code:t.replace(/"headers":\s*{[^}]*}/,`"headers": ${JSON.stringify((()=>{let e={"x-litellm-api-key":"Bearer YOUR_LITELLM_API_KEY"};if(i&&a){let t=[a.replace(/\s+/g,"_"),...n].join(",");e["x-mcp-servers"]=t}return e})(),null,8)}`)})}return e})]})},tc=({currentServerAccessGroups:e=[]})=>{let s=(0,_.getProxyBaseUrl)(),[r,l]=(0,b.useState)({}),[u,x]=(0,b.useState)({openai:[],litellm:[],cursor:[],http:[]}),[h]=(0,b.useState)("Zapier_MCP"),p=async(e,t)=>{await (0,tl.copyToClipboard)(e)&&(l(e=>({...e,[t]:!0})),setTimeout(()=>{l(e=>({...e,[t]:!1}))},2e3))},g=({code:e,copyKey:s,title:l,className:a=""})=>(0,t.jsxs)("div",{className:"relative group",children:[l&&(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,t.jsx)(e8,{size:16,className:"text-blue-600"}),(0,t.jsx)(tn,{strong:!0,className:"text-gray-700",children:l})]}),(0,t.jsxs)(e6.Card,{className:`bg-gray-50 border border-gray-200 relative ${a}`,children:[(0,t.jsx)(ey.Button,{type:"text",size:"small",icon:r[s]?(0,t.jsx)(C.CheckIcon,{size:12}):(0,t.jsx)(e3.CopyIcon,{size:12}),onClick:()=>p(e,s),className:`absolute top-2 right-2 z-10 transition-all duration-200 ${r[s]?"text-green-600 bg-green-50 border-green-200":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"}`}),(0,t.jsx)("pre",{className:"text-sm overflow-x-auto pr-10 text-gray-800 font-mono leading-relaxed",children:e})]})]}),f=({step:e,title:s,children:r})=>(0,t.jsxs)("div",{className:"flex gap-4",children:[(0,t.jsx)("div",{className:"flex-shrink-0",children:(0,t.jsx)("div",{className:"w-8 h-8 bg-blue-600 text-white rounded-full flex items-center justify-center text-sm font-semibold",children:e})}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)(tn,{strong:!0,className:"text-gray-800 block mb-2",children:s}),r]})]});return(0,t.jsx)("div",{children:(0,t.jsxs)(eE.Space,{direction:"vertical",size:"large",className:"w-full",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(m.Title,{className:"text-3xl font-bold text-gray-900 mb-3",children:"Connect to your MCP client"}),(0,t.jsx)(d.Text,{className:"text-lg text-gray-600",children:"Use tools directly from any MCP client with LiteLLM MCP. Enable your AI assistant to perform real-world tasks through a simple, secure connection."})]}),(0,t.jsxs)(n.TabGroup,{className:"w-full",children:[(0,t.jsx)(i.TabList,{className:"flex justify-start mt-8 mb-6",children:(0,t.jsxs)("div",{className:"flex bg-gray-100 p-1 rounded-lg",children:[(0,t.jsx)(a.Tab,{className:"px-6 py-3 rounded-md transition-all duration-200",children:(0,t.jsxs)("span",{className:"flex items-center gap-2 font-medium",children:[(0,t.jsx)(e8,{size:18}),"OpenAI API"]})}),(0,t.jsx)(a.Tab,{className:"px-6 py-3 rounded-md transition-all duration-200",children:(0,t.jsxs)("span",{className:"flex items-center gap-2 font-medium",children:[(0,t.jsx)(tr,{size:18}),"LiteLLM Proxy"]})}),(0,t.jsx)(a.Tab,{className:"px-6 py-3 rounded-md transition-all duration-200",children:(0,t.jsxs)("span",{className:"flex items-center gap-2 font-medium",children:[(0,t.jsx)(e9,{size:18}),"Cursor"]})}),(0,t.jsx)(a.Tab,{className:"px-6 py-3 rounded-md transition-all duration-200",children:(0,t.jsxs)("span",{className:"flex items-center gap-2 font-medium",children:[(0,t.jsx)(te,{size:18}),"Streamable HTTP"]})})]})}),(0,t.jsxs)(c.TabPanels,{children:[(0,t.jsx)(o.TabPanel,{className:"mt-6",children:(0,t.jsx)(()=>(0,t.jsxs)(eE.Space,{direction:"vertical",size:"large",className:"w-full",children:[(0,t.jsxs)("div",{className:"bg-gradient-to-r from-blue-50 to-indigo-50 p-6 rounded-lg border border-blue-100",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-3",children:[(0,t.jsx)(e8,{className:"text-blue-600",size:24}),(0,t.jsx)(ta,{level:4,className:"mb-0 text-blue-900",children:"OpenAI Responses API Integration"})]}),(0,t.jsx)(tn,{className:"text-blue-700",children:"Connect OpenAI Responses API to your LiteLLM MCP server for seamless tool integration"})]}),(0,t.jsxs)(eE.Space,{direction:"vertical",size:"large",className:"w-full",children:[(0,t.jsx)(to,{icon:(0,t.jsx)(ts.KeyIcon,{className:"text-blue-600",size:16}),title:"API Key Setup",description:"Configure your OpenAI API key for authentication",children:(0,t.jsxs)(eE.Space,{direction:"vertical",size:"middle",className:"w-full",children:[(0,t.jsx)("div",{children:(0,t.jsxs)(tn,{children:["Get your API key from the"," ",(0,t.jsxs)("a",{href:"https://platform.openai.com/api-keys",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-700 inline-flex items-center gap-1",children:["OpenAI platform ",(0,t.jsx)(tt.ExternalLinkIcon,{size:12})]})]})}),(0,t.jsx)(g,{title:"Environment Variable",code:'export OPENAI_API_KEY="sk-..."',copyKey:"openai-env"})]})}),(0,t.jsx)(to,{icon:(0,t.jsx)(P.ServerIcon,{className:"text-blue-600",size:16}),title:"MCP Server Information",description:"Connection details for your LiteLLM MCP server",children:(0,t.jsx)(g,{title:"Server URL",code:`${s}/mcp`,copyKey:"openai-server-url"})}),(0,t.jsx)(to,{icon:(0,t.jsx)(e8,{className:"text-blue-600",size:16}),title:"Implementation Example",description:"Complete cURL example for using the Responses API",serverName:"Zapier Gmail",accessGroups:["dev-group"],children:(0,t.jsx)(g,{code:`curl --location 'https://api.openai.com/v1/responses' \\ +--header 'Content-Type: application/json' \\ +--header "Authorization: Bearer $OPENAI_API_KEY" \\ +--data '{ + "model": "gpt-4.1", + "tools": [ + { + "type": "mcp", + "server_label": "litellm", + "server_url": "${s}/mcp", + "require_approval": "never", + "headers": { + "x-litellm-api-key": "Bearer YOUR_LITELLM_API_KEY", + "x-mcp-servers": "Zapier_MCP,dev-group" + } + } + ], + "input": "Run available tools", + "tool_choice": "required" +}'`,copyKey:"openai-curl",className:"text-xs"})})]})]}),{})}),(0,t.jsx)(o.TabPanel,{className:"mt-6",children:(0,t.jsx)(()=>(0,t.jsxs)(eE.Space,{direction:"vertical",size:"large",className:"w-full",children:[(0,t.jsxs)("div",{className:"bg-gradient-to-r from-emerald-50 to-green-50 p-6 rounded-lg border border-emerald-100",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-3",children:[(0,t.jsx)(tr,{className:"text-emerald-600",size:24}),(0,t.jsx)(ta,{level:4,className:"mb-0 text-emerald-900",children:"LiteLLM Proxy API Integration"})]}),(0,t.jsx)(tn,{className:"text-emerald-700",children:"Connect to LiteLLM Proxy Responses API for seamless tool integration with multiple model providers"})]}),(0,t.jsxs)(eE.Space,{direction:"vertical",size:"large",className:"w-full",children:[(0,t.jsx)(to,{icon:(0,t.jsx)(ts.KeyIcon,{className:"text-emerald-600",size:16}),title:"Virtual Key Setup",description:"Configure your LiteLLM Proxy Virtual Key for authentication",children:(0,t.jsxs)(eE.Space,{direction:"vertical",size:"middle",className:"w-full",children:[(0,t.jsx)("div",{children:(0,t.jsx)(tn,{children:"Get your Virtual Key from your LiteLLM Proxy dashboard or contact your administrator"})}),(0,t.jsx)(g,{title:"Environment Variable",code:'export LITELLM_API_KEY="sk-..."',copyKey:"litellm-env"})]})}),(0,t.jsx)(to,{icon:(0,t.jsx)(P.ServerIcon,{className:"text-emerald-600",size:16}),title:"MCP Server Information",description:"Connection details for your LiteLLM MCP server",children:(0,t.jsx)(g,{title:"Server URL",code:`${s}/mcp`,copyKey:"litellm-server-url"})}),(0,t.jsx)(to,{icon:(0,t.jsx)(e8,{className:"text-emerald-600",size:16}),title:"Implementation Example",description:"Complete cURL example for using the LiteLLM Proxy Responses API",serverName:h,accessGroups:["dev-group"],children:(0,t.jsx)(g,{code:`curl --location '${s}/v1/responses' \\ +--header 'Content-Type: application/json' \\ +--header "Authorization: Bearer $LITELLM_VIRTUAL_KEY" \\ +--data '{ + "model": "gpt-4", + "tools": [ + { + "type": "mcp", + "server_label": "litellm", + "server_url": "litellm_proxy", + "require_approval": "never", + "headers": { + "x-litellm-api-key": "Bearer YOUR_LITELLM_VIRTUAL_KEY", + "x-mcp-servers": "Zapier_MCP,dev-group" + } + } + ], + "input": "Run available tools", + "tool_choice": "required" +}'`,copyKey:"litellm-curl",className:"text-xs"})})]})]}),{})}),(0,t.jsx)(o.TabPanel,{className:"mt-6",children:(0,t.jsx)(()=>(0,t.jsxs)(eE.Space,{direction:"vertical",size:"large",className:"w-full",children:[(0,t.jsxs)("div",{className:"bg-gradient-to-r from-purple-50 to-blue-50 p-6 rounded-lg border border-purple-100",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-3",children:[(0,t.jsx)(e9,{className:"text-purple-600",size:24}),(0,t.jsx)(ta,{level:4,className:"mb-0 text-purple-900",children:"Cursor IDE Integration"})]}),(0,t.jsx)(tn,{className:"text-purple-700",children:"Use tools directly from Cursor IDE with LiteLLM MCP. Enable your AI assistant to perform real-world tasks without leaving your coding environment."})]}),(0,t.jsxs)(e6.Card,{className:"border border-gray-200",children:[(0,t.jsx)(ta,{level:5,className:"mb-4 text-gray-800",children:"Setup Instructions"}),(0,t.jsxs)(eE.Space,{direction:"vertical",size:"large",className:"w-full",children:[(0,t.jsx)(f,{step:1,title:"Open Cursor Settings",children:(0,t.jsxs)(tn,{className:"text-gray-600",children:["Use the keyboard shortcut ",(0,t.jsx)("code",{className:"bg-gray-100 px-2 py-1 rounded",children:"⇧+⌘+J"})," (Mac) or"," ",(0,t.jsx)("code",{className:"bg-gray-100 px-2 py-1 rounded",children:"Ctrl+Shift+J"})," (Windows/Linux)"]})}),(0,t.jsx)(f,{step:2,title:"Navigate to MCP Tools",children:(0,t.jsx)(tn,{className:"text-gray-600",children:'Go to the "MCP Tools" tab and click "New MCP Server"'})}),(0,t.jsxs)(f,{step:3,title:"Add Configuration",children:[(0,t.jsxs)(tn,{className:"text-gray-600 mb-3",children:["Copy the JSON configuration below and paste it into Cursor, then save with"," ",(0,t.jsx)("code",{className:"bg-gray-100 px-2 py-1 rounded",children:"Cmd+S"})," or"," ",(0,t.jsx)("code",{className:"bg-gray-100 px-2 py-1 rounded",children:"Ctrl+S"})]}),(0,t.jsx)(to,{icon:(0,t.jsx)(e8,{className:"text-purple-600",size:16}),title:"Configuration",description:"Cursor MCP configuration",serverName:"Zapier Gmail",accessGroups:["dev-group"],children:(0,t.jsx)(g,{code:`{ + "mcpServers": { + "Zapier_MCP": { + "url": "${s}/mcp", + "headers": { + "x-litellm-api-key": "Bearer YOUR_LITELLM_API_KEY", + "x-mcp-servers": "Zapier_MCP,dev-group" + } + } + } +}`,copyKey:"cursor-config",className:"text-xs"})})]})]})]})]}),{})}),(0,t.jsx)(o.TabPanel,{className:"mt-6",children:(0,t.jsx)(()=>(0,t.jsxs)(eE.Space,{direction:"vertical",size:"large",className:"w-full",children:[(0,t.jsxs)("div",{className:"bg-gradient-to-r from-green-50 to-teal-50 p-6 rounded-lg border border-green-100",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-3",children:[(0,t.jsx)(te,{className:"text-green-600",size:24}),(0,t.jsx)(ta,{level:4,className:"mb-0 text-green-900",children:"Streamable HTTP Transport"})]}),(0,t.jsx)(tn,{className:"text-green-700",children:"Connect to LiteLLM MCP using HTTP transport. Compatible with any MCP client that supports HTTP streaming."})]}),(0,t.jsx)(to,{icon:(0,t.jsx)(te,{className:"text-green-600",size:16}),title:"Universal MCP Connection",description:"Use this URL with any MCP client that supports HTTP transport",children:(0,t.jsxs)(eE.Space,{direction:"vertical",size:"middle",className:"w-full",children:[(0,t.jsx)("div",{children:(0,t.jsx)(tn,{children:"Each MCP client supports different transports. Refer to your client documentation to determine the appropriate transport method."})}),(0,t.jsx)(g,{title:"Server URL",code:`${s}/mcp`,copyKey:"http-server-url"}),(0,t.jsx)(g,{title:"Headers Configuration",code:JSON.stringify({"x-litellm-api-key":"Bearer YOUR_LITELLM_API_KEY"},null,2),copyKey:"http-headers"}),(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)(ey.Button,{type:"link",className:"p-0 h-auto text-blue-600 hover:text-blue-700",href:"https://modelcontextprotocol.io/docs/concepts/transports",icon:(0,t.jsx)(tt.ExternalLinkIcon,{size:14}),children:"Learn more about MCP transports"})})]})})]}),{})})]})]})]})})};var td=e.i(752978),tm=e.i(591935),tu=e.i(492030);let tx=({server:e,isLoadingHealth:s,isRechecking:r,onRecheck:l})=>{let[a,n]=(0,b.useState)(!1),i=e.status||"unknown",o=e.last_health_check,c=e.health_check_error;if(s||r)return(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-gray-400 px-2 py-0.5 rounded-full bg-gray-50 border border-gray-100",children:[(0,t.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-gray-300 animate-pulse"}),"Checking"]});let d=!!l,m=(0,t.jsxs)("div",{className:"max-w-xs",children:[(0,t.jsxs)("div",{className:"font-semibold mb-1",children:["Health Status: ",i]}),o&&(0,t.jsxs)("div",{className:"text-xs mb-1",children:["Last Check: ",new Date(o).toLocaleString()]}),c&&(0,t.jsxs)("div",{className:"text-xs",children:[(0,t.jsx)("div",{className:"font-medium text-red-400 mb-1",children:"Error:"}),(0,t.jsx)("div",{className:"break-words",children:c})]}),!o&&!c&&(0,t.jsx)("div",{className:"text-xs text-gray-400",children:"No health check data available"}),d&&(0,t.jsx)("div",{className:"text-xs text-gray-400 mt-1",children:"Click to recheck"})]});return(0,t.jsx)(g.Tooltip,{title:m,placement:"top",children:(0,t.jsxs)("span",{className:`inline-flex items-center gap-1 text-xs font-medium px-2 py-0.5 rounded-full ${(e=>{switch(e){case"healthy":return"text-green-700 bg-green-50 border border-green-200";case"unhealthy":return"text-red-700 bg-red-50 border border-red-200";default:return"text-gray-600 bg-gray-50 border border-gray-200"}})(i)} ${d?"cursor-pointer hover:opacity-80":"cursor-default"}`,onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onClick:d?()=>l(e.server_id):void 0,children:[(0,t.jsx)("span",{children:a&&d?"↻":(e=>{switch(e){case"healthy":return"✓";case"unhealthy":return"✗";default:return"?"}})(i)}),a&&d?"Recheck":i.charAt(0).toUpperCase()+i.slice(1)]})})};var th=e.i(530212),tp=e.i(848725);let tg=b.forwardRef(function(e,t){return b.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),b.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.88 9.88l-3.29-3.29m7.532 7.532l3.29 3.29M3 3l3.59 3.59m0 0A9.953 9.953 0 0112 5c4.478 0 8.268 2.943 9.543 7a10.025 10.025 0 01-4.132 5.411m0 0L21 21"}))});var tf=e.i(350967),tb=e.i(954616);function ty(e){if(!e)return[];if(Array.isArray(e))return e.map(e=>tj(e)).filter(e=>void 0!==e);let t=tj(e);return void 0===t?[]:[t]}function tj(e,t){if(!e)return;let s=void 0!==t?t:e.default;if("object"===e.type){let t="object"!=typeof s||null===s||Array.isArray(s)?{}:{...s};return e.properties&&Object.entries(e.properties).forEach(([e,s])=>{t[e]=tj(s,t[e])}),t}if("array"===e.type){if(Array.isArray(s)){let t=e.items;if(!t)return s;if(0===s.length){let e=ty(t);return e.length?e:s}return Array.isArray(t)?s.map((e,s)=>tj(t[s]??t[t.length-1],e)):s.map(e=>tj(t,e))}return void 0!==s?s:ty(e.items)}if(void 0!==s)return s;switch(e.type){case"integer":case"number":return 0;case"boolean":return!1;default:return""}}let tv=e=>{let t=tj(e);if("object"===e.type||"array"===e.type){let s="array"===e.type?[]:{};return JSON.stringify(t??s,null,2)}return t};function tN({tool:e,onSubmit:s,isLoading:r,result:a,error:n,onClose:i}){let[o]=D.Form.useForm(),[c,d]=b.default.useState("formatted"),[m,u]=b.default.useState(null),[x,h]=b.default.useState(null),f=b.default.useMemo(()=>"string"==typeof e.inputSchema?{type:"object",properties:{input:{type:"string",description:"Input for this tool"}},required:["input"]}:e.inputSchema,[e.inputSchema]),y=b.default.useMemo(()=>f.properties&&f.properties.params&&"object"===f.properties.params.type&&f.properties.params.properties?{type:"object",properties:f.properties.params.properties,required:f.properties.params.required||[]}:f,[f]);b.default.useEffect(()=>{if(o.resetFields(),!y.properties)return;let e={};Object.entries(y.properties).forEach(([t,s])=>{e[t]=tv(s)}),o.setFieldsValue(e)},[o,y,e]),b.default.useEffect(()=>{m&&(a||n)&&h(Date.now()-m)},[a,n,m]);let j=async e=>{try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(e),!0;{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select();let s=document.execCommand("copy");if(document.body.removeChild(t),!s)throw Error("execCommand failed");return!0}}catch(e){return console.error("Copy failed:",e),!1}},v=async()=>{await j(JSON.stringify(a,null,2))?S.default.success("Result copied to clipboard"):S.default.fromBackend("Failed to copy result")},N=async()=>{await j(e.name)?S.default.success("Tool name copied to clipboard"):S.default.fromBackend("Failed to copy tool name")};return(0,t.jsxs)("div",{className:"space-y-4 h-full",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between pb-3 border-b border-gray-200",children:[(0,t.jsxs)("div",{className:"flex items-center space-x-3",children:[e.mcp_info.logo_url&&(0,t.jsx)("img",{src:e.mcp_info.logo_url,alt:`${e.mcp_info.server_name} logo`,className:"w-6 h-6 object-contain"}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center space-x-2 mb-1",children:[(0,t.jsx)("h2",{className:"text-lg font-semibold text-gray-900",children:"Test Tool:"}),(0,t.jsxs)("div",{className:"group inline-flex items-center space-x-1 bg-slate-50 hover:bg-slate-100 px-3 py-1 rounded-md cursor-pointer transition-colors border border-slate-200",onClick:N,title:"Click to copy tool name",children:[(0,t.jsx)("span",{className:"font-mono text-slate-700 font-medium text-sm",children:e.name}),(0,t.jsx)("svg",{className:"w-3 h-3 text-slate-400 group-hover:text-slate-600 transition-colors",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})})]})]}),(0,t.jsx)("p",{className:"text-xs text-gray-600",children:e.description}),(0,t.jsxs)("p",{className:"text-xs text-gray-500",children:["Provider: ",e.mcp_info.server_name]})]})]}),(0,t.jsx)(l.Button,{onClick:i,variant:"light",size:"sm",className:"text-gray-500 hover:text-gray-700",children:(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 h-full",children:[(0,t.jsxs)("div",{className:"bg-white border border-gray-200 rounded-lg",children:[(0,t.jsx)("div",{className:"border-b border-gray-100 px-4 py-2",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-gray-900",children:"Input Parameters"}),(0,t.jsx)(g.Tooltip,{title:"Configure the input parameters for this tool call",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"text-gray-400 hover:text-gray-600"})})]})}),(0,t.jsx)("div",{className:"p-4",children:(0,t.jsxs)(D.Form,{form:o,onFinish:e=>{u(Date.now()),h(null);let t={};Object.entries(e).forEach(([e,s])=>{let r=y.properties?.[e],l="string"==typeof s?s.trim():s;if(r&&null!=l&&""!==l)switch(r.type){case"boolean":t[e]="true"===l||!0===l;break;case"number":case"integer":{let s=Number(l);t[e]=Number.isNaN(s)?l:"integer"===r.type?Math.trunc(s):s;break}case"object":case"array":try{let s="string"==typeof l?JSON.parse(l):l,a="object"===r.type&&null!==s&&"object"==typeof s&&!Array.isArray(s),n="array"===r.type&&Array.isArray(s);"object"===r.type&&a||"array"===r.type&&n?t[e]=s:t[e]=l}catch(s){t[e]=l}break;case"string":t[e]=String(l);break;default:t[e]=l}else null!=l&&""!==l&&(t[e]=l)}),s(f.properties&&f.properties.params&&"object"===f.properties.params.type&&f.properties.params.properties?{params:t}:t)},layout:"vertical",className:"space-y-3",children:["string"==typeof e.inputSchema?(0,t.jsx)("div",{className:"space-y-3",children:(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700",children:["Input ",(0,t.jsx)("span",{className:"text-red-500",children:"*"})]}),name:"input",rules:[{required:!0,message:"Please enter input for this tool"}],className:"mb-3",children:(0,t.jsx)(ei.TextInput,{placeholder:"Enter input for this tool",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})})}):void 0===y.properties?(0,t.jsx)("div",{className:"text-center py-6 bg-gray-50 rounded-lg border border-gray-200",children:(0,t.jsxs)("div",{className:"max-w-sm mx-auto",children:[(0,t.jsx)("h4",{className:"text-sm font-medium text-gray-900 mb-1",children:"No Parameters Required"}),(0,t.jsx)("p",{className:"text-xs text-gray-500",children:"This tool can be called without any input parameters."})]})}):(0,t.jsx)("div",{className:"space-y-3",children:Object.entries(y.properties).map(([s,r])=>{let l=tv(r),a=`${e.name}-${s}`;return(0,t.jsxs)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:[s," ",y.required?.includes(s)&&(0,t.jsx)("span",{className:"text-red-500",children:"*"}),r.description&&(0,t.jsx)(g.Tooltip,{title:r.description,children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-gray-400 hover:text-gray-600"})})]}),name:s,initialValue:l,rules:[{required:y.required?.includes(s),message:`Please enter ${s}`},..."object"===r.type||"array"===r.type?[{validator:(e,t)=>{if((null==t||""===t)&&!y.required?.includes(s))return Promise.resolve();try{let e="string"==typeof t?JSON.parse(t):t,s="object"===r.type&&null!==e&&"object"==typeof e&&!Array.isArray(e),l="array"===r.type&&Array.isArray(e);if("object"===r.type&&s||"array"===r.type&&l)return Promise.resolve();return Promise.reject(Error("object"===r.type?"Please enter a JSON object":"Please enter a JSON array"))}catch(e){return Promise.reject(Error("Invalid JSON"))}}}]:[]],className:"mb-3",children:["string"===r.type&&r.enum&&(0,t.jsxs)("select",{className:"w-full px-3 py-2 border border-gray-300 rounded-lg shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 text-sm transition-colors",defaultValue:l??"",children:[!y.required?.includes(s)&&(0,t.jsxs)("option",{value:"",children:["Select ",s]}),r.enum.map(e=>(0,t.jsx)("option",{value:e,children:e},e))]}),"string"===r.type&&!r.enum&&(0,t.jsx)(ei.TextInput,{placeholder:r.description||`Enter ${s}`,defaultValue:l??"",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"}),("number"===r.type||"integer"===r.type)&&(0,t.jsx)("input",{type:"number",step:"integer"===r.type?1:"any",placeholder:r.description||`Enter ${s}`,defaultValue:l??0,className:"w-full px-3 py-2 border border-gray-300 rounded-lg shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 text-sm transition-colors"}),"boolean"===r.type&&(0,t.jsxs)(p.Select,{placeholder:`Select ${s}`,allowClear:!y.required?.includes(s),className:"w-full",children:[(0,t.jsx)(p.Select.Option,{value:!0,children:"True"}),(0,t.jsx)(p.Select.Option,{value:!1,children:"False"})]}),("object"===r.type||"array"===r.type)&&(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("textarea",{rows:"object"===r.type?6:4,placeholder:r.description||("object"===r.type?`Enter JSON object for ${s}`:`Enter JSON array for ${s}`),defaultValue:l??("object"===r.type?"{}":"[]"),spellCheck:!1,"data-testid":`textarea-${s}`,className:"w-full px-3 py-2 border border-gray-300 rounded-lg shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 text-sm font-mono"}),(0,t.jsx)("p",{className:"text-xs text-gray-500",children:"object"===r.type?"Provide a valid JSON object.":"Provide a valid JSON array."})]})]},a)})}),(0,t.jsx)("div",{className:"pt-3 border-t border-gray-100",children:(0,t.jsx)(l.Button,{onClick:()=>o.submit(),disabled:r,variant:"primary",className:"w-full",loading:r,children:r?"Calling Tool...":a||n?"Call Again":"Call Tool"})})]})})]}),(0,t.jsxs)("div",{className:"bg-white border border-gray-200 rounded-lg",children:[(0,t.jsx)("div",{className:"border-b border-gray-100 px-4 py-2",children:(0,t.jsx)("h3",{className:"text-sm font-semibold text-gray-900",children:"Tool Result"})}),(0,t.jsx)("div",{className:"p-4",children:a||n||r?(0,t.jsxs)("div",{className:"space-y-3",children:[a&&!r&&!n&&(0,t.jsx)("div",{className:"p-2 bg-green-50 border border-green-200 rounded-lg",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("svg",{className:"h-4 w-4 text-green-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,t.jsx)("h4",{className:"text-xs font-medium text-green-900",children:"Tool executed successfully"}),null!==x&&(0,t.jsxs)("span",{className:"text-xs text-green-600 ml-1",children:["• ",(x/1e3).toFixed(2),"s"]})]}),(0,t.jsxs)("div",{className:"flex items-center space-x-1",children:[(0,t.jsxs)("div",{className:"flex bg-white rounded border border-green-300 p-0.5",children:[(0,t.jsx)("button",{onClick:()=>d("formatted"),className:`px-2 py-1 text-xs font-medium rounded transition-colors ${"formatted"===c?"bg-green-100 text-green-800":"text-green-600 hover:text-green-800"}`,children:"Formatted"}),(0,t.jsx)("button",{onClick:()=>d("json"),className:`px-2 py-1 text-xs font-medium rounded transition-colors ${"json"===c?"bg-green-100 text-green-800":"text-green-600 hover:text-green-800"}`,children:"JSON"})]}),(0,t.jsx)("button",{onClick:v,className:"p-1 hover:bg-green-100 rounded text-green-700",title:"Copy response",children:(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,t.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})})]})]})}),(0,t.jsxs)("div",{className:"max-h-96 overflow-y-auto",children:[r&&(0,t.jsxs)("div",{className:"flex flex-col justify-center items-center h-48 text-gray-500",children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-gray-200"}),(0,t.jsx)("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-blue-600 border-t-transparent absolute top-0"})]}),(0,t.jsx)("p",{className:"text-sm font-medium mt-3",children:"Calling tool..."}),(0,t.jsx)("p",{className:"text-xs text-gray-400 mt-1",children:"Please wait while we process your request"})]}),n&&(0,t.jsx)("div",{className:"bg-red-50 border border-red-200 rounded-lg p-3",children:(0,t.jsxs)("div",{className:"flex items-start space-x-2",children:[(0,t.jsx)("div",{className:"flex-shrink-0",children:(0,t.jsx)("svg",{className:"h-4 w-4 text-red-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})})}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center space-x-2 mb-1",children:[(0,t.jsx)("h4",{className:"text-xs font-medium text-red-900",children:"Tool Call Failed"}),null!==x&&(0,t.jsxs)("span",{className:"text-xs text-red-600",children:["• ",(x/1e3).toFixed(2),"s"]})]}),(0,t.jsx)("div",{className:"bg-white border border-red-200 rounded p-2 max-h-48 overflow-y-auto",children:(0,t.jsx)("pre",{className:"text-xs whitespace-pre-wrap text-red-700 font-mono",children:n.message})})]})]})}),a&&!r&&!n&&(0,t.jsx)("div",{className:"space-y-3",children:"formatted"===c?a.map((e,s)=>(0,t.jsxs)("div",{className:"border border-gray-200 rounded-lg overflow-hidden",children:["text"===e.type&&(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"bg-gray-50 px-3 py-1 border-b border-gray-200",children:(0,t.jsx)("span",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:"Text Response"})}),(0,t.jsx)("div",{className:"p-3",children:(0,t.jsx)("div",{className:"bg-white rounded border border-gray-200 max-h-64 overflow-y-auto",children:(0,t.jsx)("div",{className:"p-3 space-y-2",children:e.text.split("\n\n").map((e,s)=>{if(""===e.trim())return null;if(e.startsWith("##")){let r=e.replace(/^#+\s/,"");return(0,t.jsx)("div",{className:"border-b border-gray-200 pb-1 mb-2",children:(0,t.jsx)("h3",{className:"text-sm font-semibold text-gray-900",children:r})},s)}let r=/(https?:\/\/[^\s\)]+)/g;if(r.test(e)){let l=e.split(r);return(0,t.jsx)("div",{className:"bg-blue-50 border border-blue-200 rounded p-2",children:(0,t.jsx)("div",{className:"text-xs text-gray-700 leading-relaxed whitespace-pre-wrap",children:l.map((e,s)=>r.test(e)?(0,t.jsx)("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 underline break-all",children:e},s):e)})},s)}return e.includes("Score:")?(0,t.jsx)("div",{className:"bg-green-50 border-l-4 border-green-400 p-2 rounded-r",children:(0,t.jsx)("p",{className:"text-xs text-green-800 font-medium whitespace-pre-wrap",children:e})},s):(0,t.jsx)("div",{className:"bg-gray-50 rounded p-2 border border-gray-200",children:(0,t.jsx)("div",{className:"text-xs text-gray-700 leading-relaxed whitespace-pre-wrap font-mono",children:e})},s)}).filter(Boolean)})})})]}),"image"===e.type&&e.url&&(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"bg-gray-50 px-3 py-1 border-b border-gray-200",children:(0,t.jsx)("span",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:"Image Response"})}),(0,t.jsx)("div",{className:"p-3",children:(0,t.jsx)("div",{className:"bg-gray-50 rounded p-3 border border-gray-200",children:(0,t.jsx)("img",{src:e.url,alt:"Tool result",className:"max-w-full h-auto rounded shadow-sm"})})})]}),"embedded_resource"===e.type&&(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"bg-gray-50 px-3 py-1 border-b border-gray-200",children:(0,t.jsx)("span",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:"Embedded Resource"})}),(0,t.jsx)("div",{className:"p-3",children:(0,t.jsxs)("div",{className:"flex items-center space-x-2 p-3 bg-blue-50 border border-blue-200 rounded",children:[(0,t.jsx)("div",{className:"flex-shrink-0",children:(0,t.jsx)("svg",{className:"h-5 w-5 text-blue-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})})}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsxs)("p",{className:"text-xs font-medium text-blue-900",children:["Resource Type: ",e.resource_type]}),e.url&&(0,t.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center text-xs text-blue-600 hover:text-blue-800 hover:underline mt-1 transition-colors",children:["View Resource",(0,t.jsxs)("svg",{className:"ml-1 h-3 w-3",fill:"currentColor",viewBox:"0 0 20 20",children:[(0,t.jsx)("path",{d:"M11 3a1 1 0 100 2h2.586l-6.293 6.293a1 1 0 101.414 1.414L15 6.414V9a1 1 0 102 0V4a1 1 0 00-1-1h-5z"}),(0,t.jsx)("path",{d:"M5 5a2 2 0 00-2 2v8a2 2 0 002 2h8a2 2 0 002-2v-3a1 1 0 10-2 0v3H5V7h3a1 1 0 000-2H5z"})]})]})]})]})})]})]},s)):(0,t.jsx)("div",{className:"bg-white rounded border border-gray-200",children:(0,t.jsx)("div",{className:"p-3 overflow-auto max-h-80 bg-gray-50",children:(0,t.jsx)("pre",{className:"text-xs font-mono whitespace-pre-wrap break-all text-gray-800",children:JSON.stringify(a,null,2)})})})})]})]}):(0,t.jsx)("div",{className:"flex flex-col justify-center items-center h-48 text-gray-500",children:(0,t.jsxs)("div",{className:"text-center max-w-sm",children:[(0,t.jsx)("div",{className:"mb-3",children:(0,t.jsx)("svg",{className:"mx-auto h-12 w-12 text-gray-300",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1,d:"M13 10V3L4 14h7v7l9-11h-7z"})})}),(0,t.jsx)("h4",{className:"text-sm font-medium text-gray-900 mb-1",children:"Ready to Call Tool"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 leading-relaxed",children:'Configure the input parameters and click "Call Tool" to see the results here.'})]})})})]})]})]})}function t_(e){return e.toLowerCase().trim().replace(/[^a-z0-9_]/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"")}var tw=e.i(779129);let tk="litellm-tools-mcp-oauth-flow-state",tS="litellm-tools-mcp-oauth-result";var tT=e.i(983561),tC=e.i(438957),tA=e.i(2781);let tI=({serverId:e,accessToken:s,auth_type:r,tokenUrl:l,userRole:a,userID:n,serverAlias:i,extraHeaders:o})=>{let[c,u]=(0,b.useState)(null),[x,h]=(0,b.useState)(null),[p,g]=(0,b.useState)(null),[f,y]=(0,b.useState)(""),[v,N]=(0,b.useState)({}),[w,k]=(0,b.useState)(!1),T="oauth2"===r&&!l,[C,A]=(0,b.useState)(()=>T&&(0,eo.isTokenValid)(e,n)?(0,eo.getToken)(e,n)?.access_token??null:null);(0,b.useEffect)(()=>{T?A((0,eo.isTokenValid)(e,n)?(0,eo.getToken)(e,n)?.access_token??null:null):A(null)},[e,n,T]);let{startOAuthFlow:I,status:P,error:O}=(({accessToken:e,serverId:t,serverAlias:s,userId:r,scopes:l,clientId:a,onSuccess:n})=>{let[i,o]=(0,b.useState)("idle"),[c,d]=(0,b.useState)(null),m=(0,b.useRef)(!1),u=(0,b.useRef)(n);u.current=n;let x=(0,b.useCallback)(async()=>{try{let r;o("authorizing"),d(null);let n=a??void 0;if(!n)try{let l=await (0,_.registerMcpOAuthClient)(e,t,{client_name:s||t,grant_types:["authorization_code","refresh_token"],response_types:["code"],token_endpoint_auth_method:"none"});n=l?.client_id,r=l?.client_secret}catch(e){}let i=(0,eG.generateCodeVerifier)(),c=await (0,eG.generateCodeChallenge)(i),m=crypto.randomUUID(),u=(0,tw.buildCallbackUrl)(),x=l?.filter(e=>e.trim()).join(" "),h=(0,_.buildMcpOAuthAuthorizeUrl)({serverId:t,clientId:n,redirectUri:u,state:m,codeChallenge:c,scope:x}),p={state:m,codeVerifier:i,serverId:t,redirectUri:u,clientId:n,clientSecret:r,scopes:l};(0,eQ.setSecureItem)(tk,JSON.stringify(p)),(0,eQ.setSecureItem)("litellm-mcp-oauth-return-url",window.location.href),window.location.href=h}catch(t){let e=(0,eY.extractErrorMessage)(t);d(e),o("error"),S.default.error(e)}},[e,t,s,l,a]),h=(0,b.useCallback)(async()=>{if(m.current)return;let s=(0,eQ.getSecureItem)(tS);if(!s)return;let l=(0,eQ.getSecureItem)(tk);if(!l)return;let a=null;try{if((a=JSON.parse(l)).serverId&&a.serverId!==t)return}catch(e){}m.current=!0,(0,tw.clearStorage)(tS);let n=null,i=null;try{n=JSON.parse(s),i=a}catch(e){d("Failed to resume OAuth flow. Please retry."),o("error"),m.current=!1,(0,tw.clearStorage)(tk);return}try{if(!i?.state||!i.codeVerifier||!i.serverId)throw Error("OAuth session state was lost. Please retry.");if(!n?.state||n.state!==i.state)throw Error("OAuth state mismatch. Please retry.");if(n.error)throw Error(n.error_description||n.error);if(!n.code)throw Error("Authorization code missing in callback.");o("exchanging");let t=await (0,_.exchangeMcpOAuthToken)({serverId:i.serverId,code:n.code,clientId:i.clientId,clientSecret:i.clientSecret,codeVerifier:i.codeVerifier,redirectUri:i.redirectUri,accessToken:e});(0,eo.setToken)(i.serverId,{access_token:t.access_token,expires_in:t.expires_in,refresh_token:t.refresh_token,token_type:t.token_type},r),o("success"),d(null),S.default.success("Connected successfully"),u.current(t.access_token)}catch(t){let e=(0,eY.extractErrorMessage)(t);d(e),o("error"),S.default.error(e)}finally{(0,tw.clearStorage)(tk),setTimeout(()=>{m.current=!1},1e3)}},[e,t,r]);return(0,b.useEffect)(()=>{h()},[h]),{startOAuthFlow:x,status:i,error:c}})({accessToken:s??"",serverId:e,serverAlias:i,userId:n,onSuccess:A}),M=o&&o.length>0,E=()=>{let e={};if(C)if(i){let t=t_(i);t?e[`x-mcp-${t}-authorization`]=`Bearer ${C}`:e["x-mcp-auth"]=`Bearer ${C}`}else e["x-mcp-auth"]=`Bearer ${C}`;if(i&&M){let t=t_(i);t&&Object.entries(v).forEach(([s,r])=>{r&&r.trim()&&(e[`x-mcp-${t}-${s.toLowerCase()}`]=r)})}return Object.keys(e).length>0?e:void 0},{data:F,isLoading:L,error:R,refetch:z}=(0,j.useQuery)({queryKey:["mcpTools",e,v,C],queryFn:async()=>{if(!s)throw Error("Access Token required");let t=await (0,_.listMCPTools)(s,e,E());if(t?.error){let s=t.status;401===s&&(0,eo.removeToken)(e,n);let r=Error(t.message||t.error||"Failed to fetch MCP tools");throw r.status=s,r.statusText=t.statusText,r.details=t.details,r}return t},enabled:!!s&&(!T||null!==C),staleTime:3e4,retry:(e,t)=>t?.status!==401&&t?.response?.status!==401&&e<2});(0,b.useEffect)(()=>{401===(R?.status??R?.response?.status)&&((0,eo.removeToken)(e,n),A(null))},[R,e,n]);let{mutate:U,isPending:B}=(0,tb.useMutation)({mutationFn:async t=>{if(!s)throw Error("Access Token required");try{return await (0,_.callMCPTool)(s,e,t.tool.name,t.arguments,{customHeaders:E()})}catch(e){throw e}},onSuccess:e=>{h(e.content),g(null)},onError:t=>{g(t),h(null),(t?.status===401||t?.response?.status===401)&&((0,eo.removeToken)(e,n),A(null))}}),V=F?.tools||[],q=V.filter(e=>{let t=f.toLowerCase();return e.name.toLowerCase().includes(t)||e.description&&e.description.toLowerCase().includes(t)||e.mcp_info.server_name&&e.mcp_info.server_name.toLowerCase().includes(t)});return(0,t.jsx)("div",{className:"w-full h-screen p-4 bg-white",children:(0,t.jsx)(ef.Card,{className:"w-full rounded-xl shadow-md overflow-hidden",children:(0,t.jsxs)("div",{className:"flex h-auto w-full gap-4",children:[(0,t.jsxs)("div",{className:"w-1/4 p-4 bg-gray-50 flex flex-col",children:[(0,t.jsx)(m.Title,{className:"text-xl font-semibold mb-6 mt-2",children:"MCP Tools"}),(0,t.jsxs)("div",{className:"flex flex-col flex-1",children:[M&&(0,t.jsxs)("div",{className:"mb-4 p-3 bg-blue-50 border border-blue-200 rounded-lg",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(tC.KeyOutlined,{className:"text-blue-600 mr-2"}),(0,t.jsx)(d.Text,{className:"text-sm font-medium text-blue-800",children:"Additional Headers"})]}),(0,t.jsx)(ey.Button,{size:"small",type:"link",onClick:()=>k(!w),className:"text-blue-700 p-0 h-auto",children:w?"Hide":"Configure"})]}),!w&&0===Object.keys(v).length&&(0,t.jsx)(d.Text,{className:"text-xs text-blue-700",children:'This server requires additional headers. Click "Configure" to provide values.'}),w&&(0,t.jsxs)("div",{className:"mt-3 space-y-2",children:[o?.map(e=>(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs font-medium text-gray-700 mb-1",children:e}),(0,t.jsx)(H.Input,{size:"small",placeholder:`Enter ${e}`,value:v[e]||"",onChange:t=>{N({...v,[e]:t.target.value})},prefix:(0,t.jsx)(tC.KeyOutlined,{className:"text-gray-400"}),className:"rounded"})]},e)),(0,t.jsx)(ey.Button,{size:"small",type:"primary",onClick:()=>{z(),k(!1)},disabled:Object.values(v).every(e=>!e||!e.trim()),className:"w-full mt-2",children:"Load Tools"})]}),!w&&Object.keys(v).length>0&&(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsxs)(d.Text,{className:"text-xs text-green-700 flex items-center",children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 bg-green-500 rounded-full mr-2"}),Object.keys(v).length," header(s) configured"]})})]}),(0,t.jsxs)("div",{className:"flex flex-col flex-1 min-h-0",children:[(0,t.jsxs)(d.Text,{className:"font-medium block mb-3 text-gray-700 flex items-center",children:[(0,t.jsx)(eg.ToolOutlined,{className:"mr-2"})," Available Tools",V.length>0&&(0,t.jsx)("span",{className:"ml-2 bg-blue-100 text-blue-800 text-xs font-medium px-2 py-0.5 rounded-full",children:V.length})]}),T&&!C&&(0,t.jsxs)("div",{className:"p-4 text-center bg-white border border-gray-200 rounded-lg",children:[(0,t.jsx)(tA.LockOutlined,{className:"text-2xl text-gray-400 mb-2"}),(0,t.jsx)("p",{className:"text-xs font-medium text-gray-700 mb-1",children:"Authentication required"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mb-3",children:"Authenticate to view available tools"}),(0,t.jsx)(ey.Button,{size:"small",type:"primary",loading:"authorizing"===P||"exchanging"===P,onClick:I,disabled:!s,children:"Authorize"}),O&&(0,t.jsx)("p",{className:"text-xs text-red-500 mt-2",children:O})]}),!T||C?(0,t.jsxs)(t.Fragment,{children:[V.length>0&&(0,t.jsx)("div",{className:"mb-3",children:(0,t.jsx)(H.Input,{placeholder:"Search tools...",prefix:(0,t.jsx)(ek.SearchOutlined,{className:"text-gray-400"}),value:f,onChange:e=>y(e.target.value),allowClear:!0,className:"rounded-lg",size:"middle"})}),L&&(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center py-8 bg-white border border-gray-200 rounded-lg",children:[(0,t.jsxs)("div",{className:"relative mb-3",children:[(0,t.jsx)("div",{className:"animate-spin rounded-full h-6 w-6 border-2 border-gray-200"}),(0,t.jsx)("div",{className:"animate-spin rounded-full h-6 w-6 border-2 border-blue-600 border-t-transparent absolute top-0"})]}),(0,t.jsx)("p",{className:"text-xs font-medium text-gray-700",children:"Loading tools..."})]}),(F?.error||R)&&!L&&!V.length&&(0,t.jsx)("div",{className:"p-3 text-xs text-red-800 rounded-lg bg-red-50 border border-red-200",children:(0,t.jsxs)("p",{className:"font-medium",children:["Error: ",F?.message||R?.message]})}),!L&&!F?.error&&!R&&(!V||0===V.length)&&(0,t.jsxs)("div",{className:"p-4 text-center bg-white border border-gray-200 rounded-lg",children:[(0,t.jsx)("div",{className:"mx-auto w-8 h-8 bg-gray-200 rounded-full flex items-center justify-center mb-2",children:(0,t.jsx)("svg",{className:"w-4 h-4 text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19.428 15.428a2 2 0 00-1.022-.547l-2.387-.477a6 6 0 00-3.86.517l-.318.158a6 6 0 01-3.86.517L6.05 15.21a2 2 0 00-1.806.547M8 4h8l-1 1v5.172a2 2 0 00.586 1.414l5 5c1.26 1.26.367 3.414-1.415 3.414H4.828c-1.782 0-2.674-2.154-1.414-3.414l5-5A2 2 0 009 8.172V5L8 4z"})})}),(0,t.jsx)("p",{className:"text-xs font-medium text-gray-700 mb-1",children:"No tools available"}),(0,t.jsx)("p",{className:"text-xs text-gray-500",children:"No tools found for this server"})]}),!L&&!F?.error&&V.length>0&&(0,t.jsx)(t.Fragment,{children:0===q.length?(0,t.jsxs)("div",{className:"p-4 text-center bg-white border border-gray-200 rounded-lg",children:[(0,t.jsx)(ek.SearchOutlined,{className:"text-2xl text-gray-400 mb-2"}),(0,t.jsx)("p",{className:"text-xs font-medium text-gray-700 mb-1",children:"No tools found"}),(0,t.jsxs)("p",{className:"text-xs text-gray-500",children:['No tools match "',f,'"']})]}):(0,t.jsx)("div",{className:"space-y-2 flex-1 overflow-y-auto min-h-0 mcp-tools-scrollable",style:{maxHeight:"400px",scrollbarWidth:"auto",scrollbarColor:"#cbd5e0 #f7fafc"},children:q.map(e=>(0,t.jsxs)("div",{className:`border rounded-lg p-3 cursor-pointer transition-all hover:shadow-sm ${c?.name===e.name?"border-blue-500 bg-blue-50 ring-1 ring-blue-200":"border-gray-200 bg-white hover:border-gray-300"}`,onClick:()=>{u(e),h(null),g(null)},children:[(0,t.jsxs)("div",{className:"flex items-start space-x-2",children:[e.mcp_info.logo_url&&(0,t.jsx)("img",{src:e.mcp_info.logo_url,alt:`${e.mcp_info.server_name} logo`,className:"w-4 h-4 object-contain flex-shrink-0 mt-0.5"}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("h4",{className:"font-mono text-xs font-medium text-gray-900 truncate",children:e.name}),(0,t.jsx)("p",{className:"text-xs text-gray-500 truncate",children:e.mcp_info.server_name}),(0,t.jsx)("p",{className:"text-xs text-gray-600 mt-1 line-clamp-2 leading-relaxed",children:e.description})]})]}),c?.name===e.name&&(0,t.jsx)("div",{className:"mt-2 pt-2 border-t border-blue-200",children:(0,t.jsxs)("div",{className:"flex items-center text-xs font-medium text-blue-700",children:[(0,t.jsx)("svg",{className:"w-3 h-3 mr-1",fill:"currentColor",viewBox:"0 0 20 20",children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",clipRule:"evenodd"})}),"Selected"]})})]},e.name))})})]}):null]})]})]}),(0,t.jsxs)("div",{className:"w-3/4 flex flex-col bg-white",children:[(0,t.jsx)("div",{className:"p-4 border-b border-gray-200 flex justify-between items-center",children:(0,t.jsx)(m.Title,{className:"text-xl font-semibold mb-0",children:"Tool Testing Playground"})}),(0,t.jsx)("div",{className:"flex-1 overflow-auto p-4",children:c?(0,t.jsx)("div",{className:"h-full",children:(0,t.jsx)(tN,{tool:c,onSubmit:e=>{U({tool:c,arguments:e})},result:x,error:p,isLoading:B,onClose:()=>u(null)})}):(0,t.jsxs)("div",{className:"h-full flex flex-col items-center justify-center text-gray-400",children:[(0,t.jsx)(tT.RobotOutlined,{style:{fontSize:"48px",marginBottom:"16px"}}),(0,t.jsx)(d.Text,{className:"text-lg font-medium text-gray-600 mb-2",children:"Select a Tool to Test"}),(0,t.jsx)(d.Text,{className:"text-center text-gray-500 max-w-md",children:"Choose a tool from the left sidebar to start testing its functionality with custom inputs."})]})})]})]})})})},tP=[ec.AUTH_TYPE.API_KEY,ec.AUTH_TYPE.BEARER_TOKEN,ec.AUTH_TYPE.TOKEN,ec.AUTH_TYPE.BASIC],tO=[...tP,ec.AUTH_TYPE.OAUTH2,ec.AUTH_TYPE.AWS_SIGV4],tM="litellm-mcp-oauth-edit-state",tE=({mcpServer:e,accessToken:s,onCancel:r,onSuccess:d,availableAccessGroups:m})=>{let[u]=D.Form.useForm(),[x,h]=(0,b.useState)({}),[f,y]=(0,b.useState)([]),[j,v]=(0,b.useState)(!1),[N,w]=(0,b.useState)(null),[k,T]=(0,b.useState)(""),[C,A]=(0,b.useState)(!1),[I,P]=(0,b.useState)([]),[O,M]=(0,b.useState)({}),[E,F]=(0,b.useState)({}),[L,R]=(0,b.useState)(null),[z,U]=(0,b.useState)(e.mcp_info?.logo_url||void 0),B=D.Form.useWatch("auth_type",u),V=D.Form.useWatch("transport",u),q="stdio"===V,$=V===ec.TRANSPORT.OPENAPI,K=!!B&&tP.includes(B),W=B===ec.AUTH_TYPE.OAUTH2,J=B===ec.AUTH_TYPE.AWS_SIGV4,Y=D.Form.useWatch("oauth_flow_type",u),G=W&&Y===ec.OAUTH_FLOW.M2M,[Q,Z]=(0,b.useState)(null),X=D.Form.useWatch("url",u),ee=D.Form.useWatch("spec_path",u),et=D.Form.useWatch("server_name",u),es=D.Form.useWatch("auth_type",u),er=D.Form.useWatch("static_headers",u),el=D.Form.useWatch("credentials",u),ea=D.Form.useWatch("authorization_url",u),ei=D.Form.useWatch("token_url",u),eo=D.Form.useWatch("registration_url",u),{startOAuthFlow:em,status:eu,error:ex,tokenResponse:eh}=eZ({accessToken:s,getCredentials:()=>u.getFieldValue("credentials"),getTemporaryPayload:()=>{let t=u.getFieldsValue(!0),s=t.url||e.url,r=t.transport||e.transport;if(!s||!r)return null;let l=Array.isArray(t.static_headers)?t.static_headers.reduce((e,t)=>{let s=t?.header?.trim();return s&&(e[s]=t?.value??""),e},{}):{};return{server_id:e.server_id,server_name:t.server_name||e.server_name||e.alias,alias:t.alias||e.alias,description:t.description||e.description,url:s,transport:r,auth_type:ec.AUTH_TYPE.OAUTH2,credentials:t.credentials,mcp_access_groups:t.mcp_access_groups||e.mcp_access_groups,static_headers:l,command:t.command,args:t.args,env:t.env}},onTokenReceived:e=>{if(Z(e?.access_token??null),e?.access_token){let t={access_token:e.access_token,...e.refresh_token&&{refresh_token:e.refresh_token},...e.expires_in&&{expires_in:e.expires_in},...e.scope&&{scope:e.scope}};u.setFieldsValue({credentials:t}),S.default.success("OAuth authorization successful! Please click 'Update MCP Server' to save the credentials.")}},onBeforeRedirect:()=>{try{let t=u.getFieldsValue(!0);(0,eQ.setSecureItem)(tM,JSON.stringify({serverId:e.server_id,formValues:t,costConfig:x,allowedTools:I,searchValue:k,aliasManuallyEdited:C}))}catch(e){console.warn("Failed to persist MCP edit state",e)}}}),ep=b.default.useMemo(()=>e.static_headers?Object.entries(e.static_headers).map(([e,t])=>({header:e,value:null!=t?String(t):""})):[],[e.static_headers]),eg=b.default.useMemo(()=>{let t=e.env??void 0;if(!t||0===Object.keys(t).length)return"";try{return JSON.stringify(t,null,2)}catch{return""}},[e.env]),ef=b.default.useMemo(()=>e.spec_path&&"stdio"!==e.transport?ec.TRANSPORT.OPENAPI:e.transport,[e]),ej=b.default.useMemo(()=>({...e,transport:ef,static_headers:ep,extra_headers:e.extra_headers||[],oauth_flow_type:e.token_url?ec.OAUTH_FLOW.M2M:ec.OAUTH_FLOW.INTERACTIVE,token_validation_json:e.token_validation?JSON.stringify(e.token_validation,null,2):void 0}),[e,ef,ep,eg]);(0,b.useEffect)(()=>{e.mcp_info?.mcp_server_cost_info&&h(e.mcp_info.mcp_server_cost_info)},[e]),(0,b.useEffect)(()=>{e.allowed_tools&&P(e.allowed_tools),M(e.tool_name_to_display_name??{}),F(e.tool_name_to_description??{})},[e]),(0,b.useEffect)(()=>{let t=(0,eQ.getSecureItem)(tM);if(t)try{let s=JSON.parse(t);if(!s||s.serverId!==e.server_id)return;s.formValues&&R({...e,...s.formValues}),s.costConfig&&h(s.costConfig),s.allowedTools&&P(s.allowedTools),s.searchValue&&T(s.searchValue),"boolean"==typeof s.aliasManuallyEdited&&A(s.aliasManuallyEdited)}catch(e){console.error("Failed to restore MCP edit state",e)}finally{window.sessionStorage.removeItem(tM)}},[u,e]),(0,b.useEffect)(()=>{if(!L)return;let t=L.transport||e.transport;t&&t!==u.getFieldValue("transport")?u.setFieldsValue({transport:t}):(u.setFieldsValue(L),R(null))},[L,u,e.transport]),(0,b.useEffect)(()=>{if(e.mcp_access_groups){let t=e.mcp_access_groups.map(e=>"string"==typeof e?e:e.name||String(e));u.setFieldValue("mcp_access_groups",t)}},[e]),(0,b.useEffect)(()=>{e.server_id&&""!==e.server_id.trim()&&ev()},[e,s]);let ev=async()=>{if(s&&e.server_id){v(!0),w(null);try{let t=await (0,_.listMCPTools)(s,e.server_id);t.tools&&!t.error?y(t.tools):(console.error("Failed to fetch tools:",t.message),y([]),w(t.message||"Failed to load tools"))}catch(e){console.error("Tools fetch error:",e),y([]),w(e instanceof Error?e.message:"Failed to load tools")}finally{v(!1)}}},eN=async t=>{if(s)try{let{static_headers:r,credentials:l,stdio_config:a,env_json:n,command:i,args:o,allow_all_keys:c,available_on_public_internet:m,delegate_auth_to_upstream:u,token_validation_json:h,...p}=t,g=(p.mcp_access_groups||[]).map(e=>"string"==typeof e?e:e.name||String(e)),f=Array.isArray(r)?r.reduce((e,t)=>{let s=t?.header?.trim();return s&&(e[s]=t?.value??""),e},{}):{},b=l&&"object"==typeof l?Object.entries(l).reduce((e,[t,s])=>{if(null==s||""===s)return e;if("scopes"===t){if(Array.isArray(s)){let r=s.filter(e=>null!=e&&""!==e);r.length>0&&(e[t]=r)}}else e[t]=s;return e},{}):void 0,y={};if("stdio"===p.transport)if(a)try{let e=JSON.parse(a),t=e;if(e?.mcpServers&&"object"==typeof e.mcpServers){let s=Object.keys(e.mcpServers);s.length>0&&(t=e.mcpServers[s[0]])}let s=Array.isArray(t?.args)?t.args.map(e=>String(e)).filter(e=>""!==e.trim()):[],r=t?.env&&"object"==typeof t.env&&!Array.isArray(t.env)?Object.entries(t.env).reduce((e,[t,s])=>(null==t||""===String(t).trim()||(e[String(t)]=null==s?"":String(s)),e),{}):{};if(!(y={command:t?.command?String(t.command):void 0,args:s,env:r}).command)return void S.default.fromBackend("Stdio configuration must include a command")}catch{S.default.fromBackend("Invalid JSON in stdio configuration");return}else{let e={};if(n)try{let t=JSON.parse(n);t&&"object"==typeof t&&!Array.isArray(t)&&(e=Object.entries(t).reduce((e,[t,s])=>(null==t||""===String(t).trim()||(e[String(t)]=null==s?"":String(s)),e),{}))}catch{S.default.fromBackend("Invalid JSON in stdio env configuration");return}let t=Array.isArray(o)?o.map(e=>String(e)).filter(e=>""!==e.trim()):[],s=i?String(i).trim():"";if(!s)return void S.default.fromBackend("Stdio transport requires a command");y={command:s,args:t,env:e}}p.transport===ec.TRANSPORT.OPENAPI&&(p.transport="http");let j=null;if(h&&""!==h.trim())try{j=JSON.parse(h)}catch{S.default.fromBackend("Invalid JSON in Token Validation Rules");return}let v=p.server_name||p.url||e.server_name||e.url||p.alias||e.alias||"unknown",N={...p,...y,stdio_config:void 0,env_json:void 0,server_id:e.server_id,mcp_info:{server_name:v,description:p.description,logo_url:z||void 0,mcp_server_cost_info:Object.keys(x).length>0?x:null},mcp_access_groups:g,alias:p.alias,extra_headers:p.extra_headers||[],allowed_tools:I.length>0?I:null,tool_name_to_display_name:Object.keys(O).length>0?O:null,tool_name_to_description:Object.keys(E).length>0?E:null,disallowed_tools:p.disallowed_tools||[],static_headers:f,allow_all_keys:!!(c??e.allow_all_keys),available_on_public_internet:!!(m??e.available_on_public_internet),delegate_auth_to_upstream:p.auth_type===ec.AUTH_TYPE.OAUTH2&&!!(u??e.delegate_auth_to_upstream),...null!==j||e.token_validation?{token_validation:j}:{}};p.auth_type&&tO.includes(p.auth_type)&&b&&Object.keys(b).length>0&&(N.credentials=b);let w=await (0,_.updateMCPServer)(s,N);S.default.success("MCP Server updated successfully"),d(w)}catch(e){S.default.fromBackend("Failed to update MCP Server"+(e?.message?`: ${e.message}`:""))}};return(0,t.jsxs)(n.TabGroup,{children:[(0,t.jsxs)(i.TabList,{className:"grid w-full grid-cols-2",children:[(0,t.jsx)(a.Tab,{children:"Server Configuration"}),(0,t.jsx)(a.Tab,{children:"Cost Configuration"})]}),(0,t.jsxs)(c.TabPanels,{className:"mt-6",children:[(0,t.jsx)(o.TabPanel,{children:(0,t.jsxs)(D.Form,{form:u,onFinish:eN,initialValues:ej,layout:"vertical",children:[(0,t.jsx)(D.Form.Item,{label:"MCP Server Name",name:"server_name",rules:[{validator:(e,t)=>eJ(t)}],children:(0,t.jsx)(H.Input,{className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:"Alias",name:"alias",rules:[{validator:(e,t)=>eJ(t)}],children:(0,t.jsx)(H.Input,{onChange:()=>A(!0),className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:"Description",name:"description",children:(0,t.jsx)(H.Input,{className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(eD,{value:z,onChange:U}),(0,t.jsx)(D.Form.Item,{label:"Transport Type",name:"transport",rules:[{required:!0}],children:(0,t.jsxs)(p.Select,{onChange:e=>{"stdio"===e?u.setFieldsValue({url:void 0,spec_path:void 0,auth_type:void 0,credentials:void 0,authorization_url:void 0,token_url:void 0,registration_url:void 0}):e===ec.TRANSPORT.OPENAPI?u.setFieldsValue({url:void 0,command:void 0,args:void 0,env_json:void 0,stdio_config:void 0}):u.setFieldsValue({spec_path:void 0,command:void 0,args:void 0,env_json:void 0,stdio_config:void 0})},children:[(0,t.jsx)(p.Select.Option,{value:"http",children:"Streamable HTTP (Recommended)"}),(0,t.jsx)(p.Select.Option,{value:"sse",children:"Server-Sent Events (SSE)"}),(0,t.jsx)(p.Select.Option,{value:"stdio",children:"Standard Input/Output (stdio)"}),(0,t.jsx)(p.Select.Option,{value:ec.TRANSPORT.OPENAPI,children:"OpenAPI Spec"})]})}),!q&&!$&&(0,t.jsx)(D.Form.Item,{label:"MCP Server URL",name:"url",rules:[{required:!0,message:"Please enter a server URL"},{validator:(e,t)=>eW(t)}],children:(0,t.jsx)(H.Input,{placeholder:"https://your-mcp-server.com",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),$&&(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["OpenAPI Spec URL",(0,t.jsx)(g.Tooltip,{title:"URL to an OpenAPI specification (JSON or YAML). MCP tools will be automatically generated from the API endpoints defined in the spec.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"spec_path",rules:[{required:!0,message:"Please enter an OpenAPI spec URL"}],children:(0,t.jsx)(H.Input,{placeholder:"https://petstore3.swagger.io/api/v3/openapi.json",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),!q&&(0,t.jsx)(D.Form.Item,{label:"Authentication",name:"auth_type",rules:[{required:!0}],children:(0,t.jsxs)(p.Select,{children:[(0,t.jsx)(p.Select.Option,{value:"none",children:"None"}),(0,t.jsx)(p.Select.Option,{value:"api_key",children:"API Key"}),(0,t.jsx)(p.Select.Option,{value:"bearer_token",children:"Bearer Token"}),(0,t.jsx)(p.Select.Option,{value:"token",children:"Token"}),(0,t.jsx)(p.Select.Option,{value:"basic",children:"Basic Auth"}),(0,t.jsx)(p.Select.Option,{value:"oauth2",children:"OAuth"}),(0,t.jsx)(p.Select.Option,{value:"aws_sigv4",children:"AWS SigV4 (Bedrock AgentCore MCPs)"})]})}),q&&(0,t.jsxs)("div",{className:"rounded-lg border border-gray-200 p-4 space-y-4",children:[(0,t.jsx)("p",{className:"text-sm text-gray-600",children:"Configure the stdio transport used to launch the MCP server process. You can either fill in the fields below or paste a JSON configuration."}),(0,t.jsx)(D.Form.Item,{label:"Command",name:"command",rules:[{required:!0,message:"Please enter a command for stdio transport"}],children:(0,t.jsx)(H.Input,{placeholder:"e.g., npx",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:"Args",name:"args",children:(0,t.jsx)(p.Select,{mode:"tags",size:"large",tokenSeparators:[","],placeholder:"Add args (press enter or comma)",className:"rounded-lg"})}),(0,t.jsx)(D.Form.Item,{label:"Environment (JSON object)",name:"env_json",rules:[{validator:(e,t)=>{if(!t)return Promise.resolve();try{let e=JSON.parse(t);if(e&&"object"==typeof e&&!Array.isArray(e))return Promise.resolve();return Promise.reject(Error("Env must be a JSON object"))}catch{return Promise.reject(Error("Please enter valid JSON"))}}}],children:(0,t.jsx)(H.Input.TextArea,{rows:6,className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500 font-mono text-sm",placeholder:`{ + "KEY": "value" +}`})}),(0,t.jsx)(eM,{isVisible:!0,required:!1})]}),!q&&K&&(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Authentication Value",(0,t.jsx)(g.Tooltip,{title:"Token, password, or header value to send with each request for the selected auth type.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:["credentials","auth_value"],rules:[{validator:(e,t)=>t&&"string"==typeof t&&""===t.trim()?Promise.reject(Error("Authentication value cannot be empty")):Promise.resolve()}],children:(0,t.jsx)(H.Input.Password,{placeholder:"Enter token or secret (leave blank to keep existing)",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),!q&&W&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["OAuth Client ID (optional)",(0,t.jsx)(g.Tooltip,{title:"Provide only if your MCP server cannot handle dynamic client registration.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:["credentials","client_id"],children:(0,t.jsx)(H.Input.Password,{placeholder:"Enter OAuth client ID (leave blank to keep existing)",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["OAuth Client Secret (optional)",(0,t.jsx)(g.Tooltip,{title:"Provide only if your MCP server cannot handle dynamic client registration.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:["credentials","client_secret"],children:(0,t.jsx)(H.Input.Password,{placeholder:"Enter OAuth client secret (leave blank to keep existing)",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["OAuth Scopes (optional)",(0,t.jsx)(g.Tooltip,{title:"Add scopes to override the default scope list used for this MCP server.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:["credentials","scopes"],children:(0,t.jsx)(p.Select,{mode:"tags",tokenSeparators:[","],placeholder:"Add scopes",className:"rounded-lg",size:"large"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Authorization URL Override (optional)",(0,t.jsx)(g.Tooltip,{title:"Optional override for the authorization endpoint.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"authorization_url",children:(0,t.jsx)(H.Input,{placeholder:"https://example.com/oauth/authorize",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Token URL Override (optional)",(0,t.jsx)(g.Tooltip,{title:"Optional override for the token endpoint.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"token_url",children:(0,t.jsx)(H.Input,{placeholder:"https://example.com/oauth/token",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Registration URL Override (optional)",(0,t.jsx)(g.Tooltip,{title:"Optional override for the dynamic client registration endpoint.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"registration_url",children:(0,t.jsx)(H.Input,{placeholder:"https://example.com/oauth/register",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),!G&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Token Validation Rules (optional)",(0,t.jsx)(g.Tooltip,{title:'JSON object of key-value rules checked against the OAuth token response before storing. Supports dot-notation for nested fields (e.g. {"organization": "my-org", "team.id": "123"}). Tokens that fail validation are rejected with HTTP 403.',children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"token_validation_json",rules:[{validator:(e,t)=>{if(!t||""===t.trim())return Promise.resolve();try{return JSON.parse(t),Promise.resolve()}catch{return Promise.reject(Error("Must be valid JSON"))}}}],children:(0,t.jsx)(H.Input.TextArea,{placeholder:'{\n "organization": "my-org",\n "team.id": "123"\n}',rows:4,className:"font-mono text-sm rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Token Storage TTL (seconds, optional)",(0,t.jsx)(g.Tooltip,{title:"How long to cache each user's OAuth access token in Redis before evicting it (regardless of the token's own expires_in). Leave blank to derive the TTL from the token's expires_in, or fall back to the 12-hour default.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"token_storage_ttl_seconds",children:(0,t.jsx)(ed.InputNumber,{min:1,placeholder:"e.g. 3600",style:{width:"100%"},className:"rounded-lg"})})]}),(0,t.jsxs)("div",{className:"rounded-lg border border-dashed border-gray-300 p-4 space-y-2",children:[(0,t.jsx)("p",{className:"text-sm text-gray-600",children:"Use OAuth to fetch a fresh access token and temporarily save it in the session as the authentication value."}),(0,t.jsx)(l.Button,{variant:"secondary",onClick:em,disabled:"authorizing"===eu||"exchanging"===eu,children:"authorizing"===eu?"Waiting for authorization...":"exchanging"===eu?"Exchanging authorization code...":"Authorize & Fetch Token"}),ex&&(0,t.jsx)("p",{className:"text-sm text-red-500",children:ex}),"success"===eu&&eh?.access_token&&(0,t.jsxs)("p",{className:"text-sm text-green-600",children:["Token fetched. Expires in ",eh.expires_in??"?"," seconds."]})]})]}),!q&&J&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:"text-sm text-gray-500 mb-2",children:["For MCP servers hosted on AWS Bedrock AgentCore."," ",(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/mcp_aws_sigv4",target:"_blank",rel:"noopener noreferrer",className:"text-blue-500 hover:text-blue-700",children:"View docs →"})]}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["AWS Region",(0,t.jsx)(g.Tooltip,{title:"AWS region for SigV4 signing (e.g., us-east-1)",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:["credentials","aws_region_name"],rules:[],children:(0,t.jsx)(H.Input,{placeholder:"us-east-1 (leave blank to keep existing)",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["AWS Service Name",(0,t.jsx)(g.Tooltip,{title:"AWS service name for SigV4 signing. Defaults to 'bedrock-agentcore'.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:["credentials","aws_service_name"],children:(0,t.jsx)(H.Input,{placeholder:"bedrock-agentcore (leave blank to keep existing)",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["AWS Access Key ID",(0,t.jsx)(g.Tooltip,{title:"Optional. If not provided, falls back to the boto3 credential chain (IAM role, env vars, etc.).",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:["credentials","aws_access_key_id"],rules:[],children:(0,t.jsx)(H.Input.Password,{placeholder:"Leave blank to keep existing",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["AWS Secret Access Key",(0,t.jsx)(g.Tooltip,{title:"Optional. Required if AWS Access Key ID is provided.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:["credentials","aws_secret_access_key"],rules:[],children:(0,t.jsx)(H.Input.Password,{placeholder:"Leave blank to keep existing",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["AWS Session Token",(0,t.jsx)(g.Tooltip,{title:"Optional. Only needed for temporary STS credentials.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:["credentials","aws_session_token"],children:(0,t.jsx)(H.Input.Password,{placeholder:"Leave blank to keep existing",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["AWS Role ARN",(0,t.jsx)(g.Tooltip,{title:"Optional. IAM role ARN to assume via STS before signing. If set, LiteLLM calls sts:AssumeRole to get temporary credentials.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:["credentials","aws_role_name"],children:(0,t.jsx)(H.Input,{placeholder:"Leave blank to keep existing",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(D.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["AWS Session Name",(0,t.jsx)(g.Tooltip,{title:"Optional. Session name for the AssumeRole call — appears in CloudTrail logs. Auto-generated if omitted.",children:(0,t.jsx)(en.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:["credentials","aws_session_name"],children:(0,t.jsx)(H.Input,{placeholder:"Leave blank to keep existing",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})})]}),(0,t.jsx)("div",{className:"mt-6",children:(0,t.jsx)(ez,{availableAccessGroups:m,mcpServer:e,searchValue:k,setSearchValue:T,getAccessGroupOptions:()=>{let e=m.map(e=>({value:e,label:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"w-2 h-2 bg-green-500 rounded-full"}),(0,t.jsx)("span",{className:"font-medium",children:e})]})}));return k&&!m.some(e=>e.toLowerCase().includes(k.toLowerCase()))&&e.push({value:k,label:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"w-2 h-2 bg-blue-500 rounded-full"}),(0,t.jsx)("span",{className:"font-medium",children:k}),(0,t.jsx)("span",{className:"text-gray-400 text-xs ml-1",children:"create new group"})]})}),e}})}),(0,t.jsx)("div",{className:"mt-6",children:(0,t.jsx)(eO,{accessToken:s,oauthAccessToken:Q,formValues:{server_id:e.server_id,server_name:et??e.server_name,url:X??e.url,spec_path:ee??e.spec_path,transport:V??e.transport,auth_type:es??e.auth_type,mcp_info:e.mcp_info,oauth_flow_type:ei??e.token_url?ec.OAUTH_FLOW.M2M:ec.OAUTH_FLOW.INTERACTIVE,static_headers:er??e.static_headers,credentials:el,authorization_url:ea??e.authorization_url,token_url:ei??e.token_url,registration_url:eo??e.registration_url},allowedTools:I,existingAllowedTools:e.allowed_tools||null,onAllowedToolsChange:P,toolNameToDisplayName:O,toolNameToDescription:E,onToolNameToDisplayNameChange:M,onToolNameToDescriptionChange:F})}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(ey.Button,{onClick:r,children:"Cancel"}),(0,t.jsx)(l.Button,{type:"submit",children:"Save Changes"})]})]})}),(0,t.jsx)(o.TabPanel,{children:(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)(eb,{value:x,onChange:h,tools:f,disabled:j}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(ey.Button,{onClick:r,children:"Cancel"}),(0,t.jsx)(l.Button,{onClick:()=>u.submit(),children:"Save Changes"})]})]})})]})]})},tF=({costConfig:e})=>{let s=e?.default_cost_per_query!==void 0&&e?.default_cost_per_query!==null,r=e?.tool_name_to_cost_per_query&&Object.keys(e.tool_name_to_cost_per_query).length>0;return s||r?(0,t.jsx)("div",{className:"mt-6 pt-6 border-t border-gray-200",children:(0,t.jsxs)("div",{className:"space-y-4",children:[s&&e?.default_cost_per_query!==void 0&&e?.default_cost_per_query!==null&&(0,t.jsxs)("div",{children:[(0,t.jsx)(d.Text,{className:"font-medium",children:"Default Cost per Query"}),(0,t.jsxs)("div",{className:"text-green-600 font-mono",children:["$",e.default_cost_per_query.toFixed(4)]})]}),r&&e?.tool_name_to_cost_per_query&&(0,t.jsxs)("div",{children:[(0,t.jsx)(d.Text,{className:"font-medium",children:"Tool-Specific Costs"}),(0,t.jsx)("div",{className:"mt-2 space-y-2",children:Object.entries(e.tool_name_to_cost_per_query).map(([e,s])=>null!=s&&(0,t.jsxs)("div",{className:"flex justify-between items-center p-3 bg-gray-50 rounded-lg",children:[(0,t.jsx)(d.Text,{className:"font-medium",children:e}),(0,t.jsxs)(d.Text,{className:"text-green-600 font-mono",children:["$",s.toFixed(4)," per query"]})]},e))})]}),(0,t.jsxs)("div",{className:"mt-4 p-4 bg-blue-50 border border-blue-200 rounded-lg",children:[(0,t.jsx)(d.Text,{className:"text-blue-800 font-medium",children:"Cost Summary:"}),(0,t.jsxs)("div",{className:"mt-2 space-y-1",children:[s&&e?.default_cost_per_query!==void 0&&e?.default_cost_per_query!==null&&(0,t.jsxs)(d.Text,{className:"text-blue-700",children:["• Default cost: $",e.default_cost_per_query.toFixed(4)," per query"]}),r&&e?.tool_name_to_cost_per_query&&(0,t.jsxs)(d.Text,{className:"text-blue-700",children:["• ",Object.keys(e.tool_name_to_cost_per_query).length," tool(s) with custom pricing"]})]})]})]})}):(0,t.jsx)("div",{className:"mt-6 pt-6 border-t border-gray-200",children:(0,t.jsx)("div",{className:"space-y-4",children:(0,t.jsx)("div",{className:"p-4 bg-gray-50 border border-gray-200 rounded-lg",children:(0,t.jsx)(d.Text,{className:"text-gray-600",children:"No cost configuration set for this server. Tool calls will be charged at $0.00 per tool call."})})})})},tL=({mcpServer:e,onBack:s,isEditing:r,isProxyAdmin:u,accessToken:x,userRole:h,userID:p,availableAccessGroups:g})=>{let[f,y]=(0,b.useState)(r),[j,v]=(0,b.useState)(!1),[N,_]=(0,b.useState)({}),[w,k]=(0,b.useState)(0),S=e.url??"",{maskedUrl:T,hasToken:A}=S?eK(S):{maskedUrl:"—",hasToken:!1},I=(e,t)=>e?A?t?e:T:e:"—",P=async(e,t)=>{await (0,tl.copyToClipboard)(e)&&(_(e=>({...e,[t]:!0})),setTimeout(()=>{_(e=>({...e,[t]:!1}))},2e3))},O=e=>{let s=e.toUpperCase();return(0,t.jsx)("span",{className:"inline-flex items-center text-sm font-medium px-2.5 py-0.5 rounded border bg-gray-50 text-gray-700 border-gray-200",children:s})},M=e=>(0,t.jsx)("span",{className:"inline-flex items-center text-sm font-medium px-2.5 py-0.5 rounded border bg-gray-50 text-gray-700 border-gray-200",children:e});return(0,t.jsxs)("div",{className:"p-4 max-w-full",children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)(l.Button,{icon:th.ArrowLeftIcon,variant:"light",className:"mb-4",onClick:s,children:"Back to All Servers"}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(m.Title,{className:"text-2xl",children:e.server_name||e.alias||"Unnamed Server"}),(0,t.jsx)(ey.Button,{type:"text",size:"small",icon:N["mcp-server_name"]?(0,t.jsx)(C.CheckIcon,{size:12}):(0,t.jsx)(e3.CopyIcon,{size:12}),onClick:()=>P(e.server_name||e.alias,"mcp-server_name"),className:`transition-all duration-200 ${N["mcp-server_name"]?"text-green-600 bg-green-50 border-green-200":"text-gray-400 hover:text-gray-600 hover:bg-gray-100"}`}),e.alias&&e.server_name&&e.alias!==e.server_name&&(0,t.jsx)("span",{className:"ml-2 inline-flex items-center text-xs font-medium px-2 py-0.5 rounded bg-gray-100 text-gray-600 border border-gray-200 font-mono",children:e.alias})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 mt-1",children:[(0,t.jsx)(d.Text,{className:"text-gray-400 font-mono text-xs",children:e.server_id}),(0,t.jsx)(ey.Button,{type:"text",size:"small",icon:N["mcp-server-id"]?(0,t.jsx)(C.CheckIcon,{size:10}):(0,t.jsx)(e3.CopyIcon,{size:10}),onClick:()=>P(e.server_id,"mcp-server-id"),className:`transition-all duration-200 ${N["mcp-server-id"]?"text-green-600 bg-green-50 border-green-200":"text-gray-300 hover:text-gray-500 hover:bg-gray-50"}`})]}),e.description&&(0,t.jsx)(d.Text,{className:"text-gray-500 mt-2",children:e.description})]}),(0,t.jsxs)(n.TabGroup,{index:w,onIndexChange:k,children:[(0,t.jsx)(i.TabList,{className:"mb-4",children:[(0,t.jsx)(a.Tab,{children:"Overview"},"overview"),(0,t.jsx)(a.Tab,{children:"MCP Tools"},"tools"),...u?[(0,t.jsx)(a.Tab,{children:"Settings"},"settings")]:[]]}),(0,t.jsxs)(c.TabPanels,{children:[(0,t.jsxs)(o.TabPanel,{children:[(0,t.jsxs)(tf.Grid,{numItems:1,numItemsSm:2,numItemsLg:3,className:"gap-4",children:[(0,t.jsxs)(ef.Card,{className:"p-4",children:[(0,t.jsx)(d.Text,{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Transport"}),(0,t.jsx)("div",{className:"mt-3",children:O((0,ec.handleTransport)(e.transport??void 0,e.spec_path??void 0))})]}),(0,t.jsxs)(ef.Card,{className:"p-4",children:[(0,t.jsx)(d.Text,{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Authentication"}),(0,t.jsx)("div",{className:"mt-3",children:M((0,ec.handleAuth)(e.auth_type??void 0))})]}),(0,t.jsxs)(ef.Card,{className:"p-4",children:[(0,t.jsx)(d.Text,{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Host URL"}),(0,t.jsxs)("div",{className:"mt-3 flex items-center gap-2",children:[(0,t.jsx)(d.Text,{className:"break-all overflow-wrap-anywhere font-mono text-sm",children:I(e.url,j)}),A&&u&&(0,t.jsx)("button",{onClick:()=>v(!j),className:"p-1 hover:bg-gray-100 rounded flex-shrink-0",children:(0,t.jsx)(td.Icon,{icon:j?tg:tp.EyeIcon,size:"sm",className:"text-gray-500"})})]})]})]}),(0,t.jsxs)(ef.Card,{className:"mt-4 p-4",children:[(0,t.jsx)(d.Text,{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Cost Configuration"}),(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)(tF,{costConfig:e.mcp_info?.mcp_server_cost_info})})]})]}),(0,t.jsx)(o.TabPanel,{children:(0,t.jsx)(tI,{serverId:e.server_id,accessToken:x,auth_type:e.auth_type,tokenUrl:e.token_url,userRole:h,userID:p,serverAlias:e.alias,extraHeaders:e.extra_headers})}),(0,t.jsx)(o.TabPanel,{children:(0,t.jsxs)(ef.Card,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(m.Title,{children:"MCP Server Settings"}),f?null:(0,t.jsx)(l.Button,{variant:"light",onClick:()=>y(!0),children:"Edit Settings"})]}),f?(0,t.jsx)(tE,{mcpServer:e,accessToken:x,onCancel:()=>y(!1),onSuccess:e=>{y(!1),s()},availableAccessGroups:g}):(0,t.jsxs)("div",{className:"divide-y divide-gray-100",children:[(0,t.jsxs)("div",{className:"py-3 grid grid-cols-3 gap-4",children:[(0,t.jsx)(d.Text,{className:"text-sm font-medium text-gray-500",children:"Server Name"}),(0,t.jsx)("div",{className:"col-span-2 text-sm text-gray-900",children:e.server_name||(0,t.jsx)("span",{className:"text-gray-400",children:"—"})})]}),(0,t.jsxs)("div",{className:"py-3 grid grid-cols-3 gap-4",children:[(0,t.jsx)(d.Text,{className:"text-sm font-medium text-gray-500",children:"Alias"}),(0,t.jsx)("div",{className:"col-span-2 text-sm font-mono text-gray-900",children:e.alias||(0,t.jsx)("span",{className:"text-gray-400",children:"—"})})]}),(0,t.jsxs)("div",{className:"py-3 grid grid-cols-3 gap-4",children:[(0,t.jsx)(d.Text,{className:"text-sm font-medium text-gray-500",children:"Description"}),(0,t.jsx)("div",{className:"col-span-2 text-sm text-gray-900",children:e.description||(0,t.jsx)("span",{className:"text-gray-400",children:"—"})})]}),(0,t.jsxs)("div",{className:"py-3 grid grid-cols-3 gap-4",children:[(0,t.jsx)(d.Text,{className:"text-sm font-medium text-gray-500",children:"URL"}),(0,t.jsxs)("div",{className:"col-span-2 text-sm font-mono text-gray-900 break-all flex items-center gap-2",children:[I(e.url,j),A&&(0,t.jsx)("button",{onClick:()=>v(!j),className:"p-1 hover:bg-gray-100 rounded flex-shrink-0",children:(0,t.jsx)(td.Icon,{icon:j?tg:tp.EyeIcon,size:"sm",className:"text-gray-500"})})]})]}),(0,t.jsxs)("div",{className:"py-3 grid grid-cols-3 gap-4",children:[(0,t.jsx)(d.Text,{className:"text-sm font-medium text-gray-500",children:"Transport"}),(0,t.jsx)("div",{className:"col-span-2",children:O((0,ec.handleTransport)(e.transport,e.spec_path))})]}),(0,t.jsxs)("div",{className:"py-3 grid grid-cols-3 gap-4",children:[(0,t.jsx)(d.Text,{className:"text-sm font-medium text-gray-500",children:"Authentication"}),(0,t.jsx)("div",{className:"col-span-2",children:M((0,ec.handleAuth)(e.auth_type))})]}),(0,t.jsxs)("div",{className:"py-3 grid grid-cols-3 gap-4",children:[(0,t.jsx)(d.Text,{className:"text-sm font-medium text-gray-500",children:"Extra Headers"}),(0,t.jsx)("div",{className:"col-span-2 text-sm text-gray-900",children:e.extra_headers&&e.extra_headers.length>0?e.extra_headers.join(", "):(0,t.jsx)("span",{className:"text-gray-400",children:"—"})})]}),(0,t.jsxs)("div",{className:"py-3 grid grid-cols-3 gap-4",children:[(0,t.jsx)(d.Text,{className:"text-sm font-medium text-gray-500",children:"Allow All Keys"}),(0,t.jsx)("div",{className:"col-span-2",children:e.allow_all_keys?(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-green-50 text-green-700 rounded-full border border-green-200 text-xs font-medium",children:[(0,t.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-green-500"}),"Enabled"]}):(0,t.jsx)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-gray-50 text-gray-600 rounded-full border border-gray-200 text-xs font-medium",children:"Disabled"})})]}),(0,t.jsxs)("div",{className:"py-3 grid grid-cols-3 gap-4",children:[(0,t.jsx)(d.Text,{className:"text-sm font-medium text-gray-500",children:"Network Access"}),(0,t.jsx)("div",{className:"col-span-2",children:e.available_on_public_internet?(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-green-50 text-green-700 rounded-full border border-green-200 text-xs font-medium",children:[(0,t.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-green-500"}),"Public"]}):(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-orange-50 text-orange-700 rounded-full border border-orange-200 text-xs font-medium",children:[(0,t.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-orange-500"}),"Internal only"]})})]}),"oauth2"===(0,ec.handleAuth)(e.auth_type)&&(0,t.jsxs)("div",{className:"py-3 grid grid-cols-3 gap-4",children:[(0,t.jsx)(d.Text,{className:"text-sm font-medium text-gray-500",children:"Delegate Auth to Upstream"}),(0,t.jsx)("div",{className:"col-span-2",children:e.delegate_auth_to_upstream?(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-green-50 text-green-700 rounded-full border border-green-200 text-xs font-medium",children:[(0,t.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-green-500"}),"Enabled (PKCE passthrough)"]}):(0,t.jsx)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-gray-50 text-gray-600 rounded-full border border-gray-200 text-xs font-medium",children:"Disabled"})})]}),(0,t.jsxs)("div",{className:"py-3 grid grid-cols-3 gap-4",children:[(0,t.jsx)(d.Text,{className:"text-sm font-medium text-gray-500",children:"Access Groups"}),(0,t.jsx)("div",{className:"col-span-2",children:e.mcp_access_groups&&e.mcp_access_groups.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:e.mcp_access_groups.map((e,s)=>(0,t.jsx)("span",{className:"inline-flex items-center text-xs font-medium px-2 py-0.5 rounded bg-gray-100 text-gray-700 border border-gray-200",children:"string"==typeof e?e:e?.name??""},s))}):(0,t.jsx)("span",{className:"text-sm text-gray-400",children:"—"})})]}),(0,t.jsxs)("div",{className:"py-3 grid grid-cols-3 gap-4",children:[(0,t.jsx)(d.Text,{className:"text-sm font-medium text-gray-500",children:"Allowed Tools"}),(0,t.jsx)("div",{className:"col-span-2",children:e.allowed_tools&&e.allowed_tools.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:e.allowed_tools.map((e,s)=>(0,t.jsx)("span",{className:"inline-flex items-center text-xs font-mono font-medium px-2 py-0.5 rounded bg-blue-50 text-blue-700 border border-blue-200",children:e},s))}):(0,t.jsx)("span",{className:"inline-flex items-center text-xs font-medium px-2 py-0.5 rounded bg-green-50 text-green-700 border border-green-200",children:"All tools enabled"})})]}),(0,t.jsxs)("div",{className:"py-3 grid grid-cols-3 gap-4",children:[(0,t.jsx)(d.Text,{className:"text-sm font-medium text-gray-500",children:"Cost"}),(0,t.jsx)("div",{className:"col-span-2",children:(0,t.jsx)(tF,{costConfig:e.mcp_info?.mcp_server_cost_info})})]})]})]})})]})]})]})},tR=(0,N.createQueryKeys)("mcpSemanticFilterSettings"),tz=(0,N.createQueryKeys)("mcpSemanticFilterSettings");var tU=e.i(178654),tB=e.i(621192),tV=e.i(981339),tq=e.i(850627),t$=e.i(987432),tD=e.i(689020),tH=e.i(245094),tK=e.i(788191),tW=e.i(653496),tJ=e.i(992619);function tY({accessToken:e,testQuery:s,setTestQuery:r,testModel:l,setTestModel:a,isTesting:n,onTest:i,filterEnabled:o,testResult:c,curlCommand:d}){return(0,t.jsx)(e6.Card,{title:"Test Configuration",style:{marginBottom:16},children:(0,t.jsx)(tW.Tabs,{defaultActiveKey:"test",items:[{key:"test",label:"Test",children:(0,t.jsxs)(eE.Space,{direction:"vertical",style:{width:"100%"},size:"large",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)(f.Typography.Text,{strong:!0,style:{display:"block",marginBottom:8},children:[(0,t.jsx)(tK.PlayCircleOutlined,{})," Test Query"]}),(0,t.jsx)(H.Input.TextArea,{placeholder:"Enter a test query to see which tools would be selected...",value:s,onChange:e=>r(e.target.value),rows:4,disabled:n})]}),(0,t.jsx)("div",{children:(0,t.jsx)(tJ.default,{accessToken:e||"",value:l,onChange:a,disabled:n,showLabel:!0,labelText:"Select Model"})}),(0,t.jsx)(ey.Button,{type:"primary",icon:(0,t.jsx)(tK.PlayCircleOutlined,{}),onClick:i,loading:n,disabled:!s||!l||!o,block:!0,children:"Test Filter"}),!o&&(0,t.jsx)(ej.Alert,{type:"warning",message:"Semantic filtering is disabled",description:"Enable semantic filtering and save settings to test the filter.",showIcon:!0}),c&&(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Typography.Title,{level:5,children:"Results"}),(0,t.jsx)(ej.Alert,{type:"success",message:`${c.selectedTools} tools selected`,description:`Filtered from ${c.totalTools} available tools`,showIcon:!0,style:{marginBottom:16}}),(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Typography.Text,{strong:!0,style:{display:"block",marginBottom:8},children:"Selected Tools:"}),(0,t.jsx)("ul",{style:{paddingLeft:20,margin:0},children:c.tools.map((e,s)=>(0,t.jsx)("li",{style:{marginBottom:4},children:(0,t.jsx)(f.Typography.Text,{children:e})},s))})]})]})]})},{key:"api",label:"API Usage",children:(0,t.jsxs)("div",{children:[(0,t.jsxs)(eE.Space,{style:{marginBottom:8},children:[(0,t.jsx)(tH.CodeOutlined,{}),(0,t.jsx)(f.Typography.Text,{strong:!0,children:"API Usage"})]}),(0,t.jsx)(f.Typography.Text,{type:"secondary",style:{display:"block",marginBottom:8},children:"Use this curl command to test the semantic filter with your current configuration."}),(0,t.jsx)(f.Typography.Text,{strong:!0,style:{display:"block",marginBottom:8},children:"Response headers to check:"}),(0,t.jsxs)("ul",{style:{paddingLeft:20,margin:"0 0 12px 0"},children:[(0,t.jsxs)("li",{children:[(0,t.jsx)(f.Typography.Text,{children:"x-litellm-semantic-filter: shows total tools → selected tools"}),(0,t.jsx)(f.Typography.Text,{type:"secondary",style:{display:"block"},children:"Example: 10→3"})]}),(0,t.jsxs)("li",{children:[(0,t.jsx)(f.Typography.Text,{children:"x-litellm-semantic-filter-tools: CSV of selected tool names"}),(0,t.jsx)(f.Typography.Text,{type:"secondary",style:{display:"block"},children:"Example: wikipedia-fetch,github-search,slack-post"})]})]}),(0,t.jsx)("pre",{style:{background:"#f5f5f5",padding:12,borderRadius:4,overflow:"auto",fontSize:12,margin:0},children:d})]})}]})})}let tG=async({accessToken:e,testModel:t,testQuery:s,setIsTesting:r,setTestResult:l})=>{if(!s||!t||!e)return void S.default.error("Please enter a query and select a model");r(!0),l(null);try{let{headers:r}=await (0,_.testMCPSemanticFilter)(e,t,s),a=(e=>{if(!e.filter)return null;let[t,s]=e.filter.split("->").map(Number);return{totalTools:t,selectedTools:s,tools:e.tools?e.tools.split(",").map(e=>e.trim()):[]}})(r);if(!a)return void S.default.warning("Semantic filter is not enabled or no tools were filtered");l(a),S.default.success("Semantic filter test completed successfully")}catch(e){console.error("Test failed:",e),S.default.error("Failed to test semantic filter")}finally{r(!1)}};function tQ({accessToken:e}){var s;let l,{data:a,isLoading:n,isError:i,error:o}=(()=>{let{accessToken:e}=(0,w.default)();return(0,j.useQuery)({queryKey:tR.list({}),queryFn:async()=>await (0,_.getMCPSemanticFilterSettings)(e),enabled:!!e,staleTime:36e5,gcTime:36e5})})(),{mutate:c,isPending:d,error:m}=(s=e||"",l=(0,v.useQueryClient)(),(0,tb.useMutation)({mutationFn:async e=>{if(!s)throw Error("Access token is required");return(0,_.updateMCPSemanticFilterSettings)(s,e)},onSuccess:()=>{l.invalidateQueries({queryKey:tz.all})}})),[u]=D.Form.useForm(),[x,h]=(0,b.useState)(!1),[y,N]=(0,b.useState)(!1),[k,T]=(0,b.useState)([]),[C,A]=(0,b.useState)(!0),[I,P]=(0,b.useState)(""),[O,M]=(0,b.useState)("gpt-4o"),[E,F]=(0,b.useState)(null),[L,R]=(0,b.useState)(!1),z=a?.field_schema,U=a?.values??{};(0,b.useEffect)(()=>{(async()=>{if(e)try{A(!0);let t=(await (0,tD.fetchAvailableModels)(e)).filter(e=>"embedding"===e.mode);T(t)}catch(e){console.error("Error fetching embedding models:",e)}finally{A(!1)}})()},[e]),(0,b.useEffect)(()=>{U&&(u.setFieldsValue({enabled:U.enabled??!1,embedding_model:U.embedding_model??"text-embedding-3-small",top_k:U.top_k??10,similarity_threshold:U.similarity_threshold??.3}),N(!1))},[U,u]);let B=async()=>{try{let e=await u.validateFields();c(e,{onSuccess:()=>{N(!1),h(!0),setTimeout(()=>h(!1),3e3),S.default.success("Settings updated successfully. Changes will be applied across all pods within 10 seconds.")},onError:e=>{S.default.fromBackend(e)}})}catch(e){console.error("Form validation failed:",e)}},V=async()=>{e&&await tG({accessToken:e,testModel:O,testQuery:I,setIsTesting:R,setTestResult:F})};return e?(0,t.jsx)("div",{style:{width:"100%"},children:n?(0,t.jsx)(tV.Skeleton,{active:!0}):i?(0,t.jsx)(ej.Alert,{type:"error",message:"Could not load MCP Semantic Filter settings",description:o instanceof Error?o.message:void 0,style:{marginBottom:24}}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ej.Alert,{type:"info",message:"Semantic Tool Filtering",description:"Filter MCP tools semantically based on query relevance. This reduces context window size and improves tool selection accuracy. Click 'Save Settings' to apply changes across all pods (takes effect within 10 seconds).",showIcon:!0,style:{marginBottom:24}}),x&&(0,t.jsx)(ej.Alert,{type:"success",message:"Settings saved successfully",icon:(0,t.jsx)(ev.CheckCircleOutlined,{}),showIcon:!0,closable:!0,style:{marginBottom:16}}),m&&(0,t.jsx)(ej.Alert,{type:"error",message:"Could not update settings",description:m instanceof Error?m.message:void 0,style:{marginBottom:16}}),(0,t.jsxs)(tB.Row,{gutter:24,children:[(0,t.jsx)(tU.Col,{xs:24,lg:12,children:(0,t.jsxs)(D.Form,{form:u,layout:"vertical",disabled:d,onValuesChange:()=>{N(!0)},children:[(0,t.jsxs)(e6.Card,{style:{marginBottom:16},children:[(0,t.jsx)(D.Form.Item,{name:"enabled",label:(0,t.jsxs)(eE.Space,{children:[(0,t.jsx)(f.Typography.Text,{strong:!0,children:"Enable Semantic Filtering"}),(0,t.jsx)(g.Tooltip,{title:"When enabled, only the most relevant MCP tools will be included in requests based on semantic similarity",children:(0,t.jsx)(r.QuestionCircleOutlined,{style:{color:"#8c8c8c"}})})]}),valuePropName:"checked",children:(0,t.jsx)(el.Switch,{disabled:d})}),(0,t.jsx)(f.Typography.Text,{type:"secondary",style:{display:"block",marginTop:-16,marginBottom:16},children:z?.properties?.enabled?.description})]}),(0,t.jsxs)(e6.Card,{title:"Configuration",style:{marginBottom:16},children:[(0,t.jsx)(D.Form.Item,{name:"embedding_model",label:(0,t.jsxs)(eE.Space,{children:[(0,t.jsx)(f.Typography.Text,{strong:!0,children:"Embedding Model"}),(0,t.jsx)(g.Tooltip,{title:"The model used to generate embeddings for semantic matching",children:(0,t.jsx)(r.QuestionCircleOutlined,{style:{color:"#8c8c8c"}})})]}),children:(0,t.jsx)(p.Select,{options:k.map(e=>({label:e.model_group,value:e.model_group})),placeholder:C?"Loading models...":"Select embedding model",showSearch:!0,disabled:d||C,loading:C,notFoundContent:C?"Loading...":"No embedding models available"})}),(0,t.jsx)(D.Form.Item,{name:"top_k",label:(0,t.jsxs)(eE.Space,{children:[(0,t.jsx)(f.Typography.Text,{strong:!0,children:"Top K Results"}),(0,t.jsx)(g.Tooltip,{title:"Maximum number of tools to return after filtering",children:(0,t.jsx)(r.QuestionCircleOutlined,{style:{color:"#8c8c8c"}})})]}),children:(0,t.jsx)(ed.InputNumber,{min:1,max:100,style:{width:"100%"},disabled:d})}),(0,t.jsx)(D.Form.Item,{name:"similarity_threshold",label:(0,t.jsxs)(eE.Space,{children:[(0,t.jsx)(f.Typography.Text,{strong:!0,children:"Similarity Threshold"}),(0,t.jsx)(g.Tooltip,{title:"Minimum similarity score (0-1) for a tool to be included",children:(0,t.jsx)(r.QuestionCircleOutlined,{style:{color:"#8c8c8c"}})})]}),children:(0,t.jsx)(tq.Slider,{min:0,max:1,step:.05,marks:{0:"0.0",.3:"0.3",.5:"0.5",.7:"0.7",1:"1.0"},disabled:d})})]}),(0,t.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8},children:(0,t.jsx)(ey.Button,{type:"primary",icon:(0,t.jsx)(t$.SaveOutlined,{}),onClick:B,loading:d,disabled:!y,children:"Save Settings"})})]})}),(0,t.jsx)(tU.Col,{xs:24,lg:12,children:(0,t.jsx)(tY,{accessToken:e,testQuery:I,setTestQuery:P,testModel:O,setTestModel:M,isTesting:L,onTest:V,filterEnabled:!!U.enabled,testResult:E,curlCommand:`curl --location 'http://localhost:4000/v1/responses' \\ +--header 'Content-Type: application/json' \\ +--header 'Authorization: Bearer sk-1234' \\ +--data '{ + "model": "${O}", + "input": [ + { + "role": "user", + "content": "${I||"Your query here"}", + "type": "message" + } + ], + "tools": [ + { + "type": "mcp", + "server_url": "litellm_proxy", + "require_approval": "never" + } + ], + "tool_choice": "required" +}'`})})]})]})}):(0,t.jsx)("div",{className:"p-6 text-center text-gray-500",children:"Please log in to configure semantic filter settings."})}var tZ=e.i(262218);let{Text:tX}=f.Typography,t0=({accessToken:e})=>{let s,[r,l]=(0,b.useState)(!0),[a,n]=(0,b.useState)(!1),[i,o]=(0,b.useState)([]),[c,d]=(0,b.useState)(null);(0,b.useEffect)(()=>{m(),u()},[e]);let m=async()=>{if(e){l(!0);try{for(let t of(await (0,_.getGeneralSettingsCall)(e)))"mcp_internal_ip_ranges"===t.field_name&&t.field_value&&o(t.field_value)}catch(e){console.error("Failed to load MCP network settings:",e)}finally{l(!1)}}},u=async()=>{if(!e)return;let t=await (0,_.fetchMCPClientIp)(e);t&&d(t)},x=async()=>{if(e){n(!0);try{i.length>0?await (0,_.updateConfigFieldSetting)(e,"mcp_internal_ip_ranges",i):await (0,_.deleteConfigFieldSetting)(e,"mcp_internal_ip_ranges")}catch(e){console.error("Failed to save MCP network settings:",e)}finally{n(!1)}}};if(r)return(0,t.jsx)("div",{className:"flex justify-center py-12",children:(0,t.jsx)(W.Spin,{})});let h=c?4!==(s=c.split(".")).length?c+"/32":`${s[0]}.${s[1]}.${s[2]}.0/24`:null;return(0,t.jsxs)("div",{className:"space-y-6 p-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(tX,{className:"text-lg font-semibold",children:"Private IP Ranges"}),(0,t.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:'Define which IP ranges are part of your private network. Callers from these IPs can see all MCP servers. Callers from any other IP can only see servers marked "Available on Public Internet".'})]}),(0,t.jsxs)(e6.Card,{children:[c&&(0,t.jsxs)("div",{className:"mb-4 p-3 bg-blue-50 rounded-lg",children:[(0,t.jsxs)(tX,{className:"text-sm text-blue-700",children:["Your current IP: ",(0,t.jsx)("span",{className:"font-mono font-medium",children:c})]}),h&&!i.includes(h)&&(0,t.jsxs)("div",{className:"mt-1",children:[(0,t.jsx)(tX,{className:"text-sm text-blue-600",children:"Suggested range: "}),(0,t.jsx)(tZ.Tag,{className:"cursor-pointer font-mono",color:"blue",icon:(0,t.jsx)(eL.PlusOutlined,{}),onClick:()=>{!i.includes(h)&&o([...i,h])},children:h})]})]}),(0,t.jsx)("div",{className:"flex items-center mb-2",children:(0,t.jsx)(tX,{className:"font-medium",children:"Your Private Network Ranges"})}),(0,t.jsx)(p.Select,{mode:"tags",value:i,onChange:o,placeholder:"Leave empty to use defaults: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 127.0.0.0/8",tokenSeparators:[","],className:"w-full",size:"large",allowClear:!0}),(0,t.jsx)("p",{className:"text-xs text-gray-400 mt-2",children:"Enter CIDR ranges (e.g., 10.0.0.0/8). When empty, standard private IP ranges are used."})]}),(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)(ey.Button,{type:"primary",icon:(0,t.jsx)(t$.SaveOutlined,{}),onClick:x,loading:a,children:"Save"})})]})},{Search:t2}=H.Input,{Text:t1}=f.Typography,t5=["#3B82F6","#10B981","#F59E0B","#EF4444","#8B5CF6","#EC4899","#06B6D4","#84CC16"],t4=({isVisible:e,onClose:s,onSelectServer:r,onCustomServer:l,accessToken:a})=>{let[n,i]=(0,b.useState)([]),[o,c]=(0,b.useState)([]),[d,m]=(0,b.useState)(!1),[u,x]=(0,b.useState)(null),[p,g]=(0,b.useState)(""),[f,y]=(0,b.useState)("All");(0,b.useEffect)(()=>{e&&a&&(m(!0),x(null),(0,_.fetchDiscoverableMCPServers)(a).then(e=>{i(e.servers||[]),c(e.categories||[])}).catch(e=>{x(e.message||"Failed to load MCP servers")}).finally(()=>{m(!1)}))},[e,a]),(0,b.useEffect)(()=>{e&&(g(""),y("All"))},[e]);let j=(0,b.useMemo)(()=>{let e=n;if("All"!==f&&(e=e.filter(e=>e.category===f)),p.trim()){let t=p.toLowerCase();e=e.filter(e=>e.name.toLowerCase().includes(t)||e.title.toLowerCase().includes(t)||e.description.toLowerCase().includes(t))}return e},[n,f,p]),v=(0,b.useMemo)(()=>{let e={};for(let t of j){let s=t.category||"Other";e[s]||(e[s]=[]),e[s].push(t)}return e},[j]);return(0,t.jsxs)(h.Modal,{title:(0,t.jsxs)("div",{className:"flex items-center justify-between pb-4 border-b border-gray-100",children:[(0,t.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,t.jsx)("img",{src:eX,alt:"MCP Logo",className:"w-8 h-8 object-contain",style:{height:"20px",width:"20px",marginRight:"8px",objectFit:"contain"}}),(0,t.jsx)("h2",{className:"text-xl font-semibold text-gray-900",children:"Add MCP Server"})]}),(0,t.jsx)("button",{onClick:l,className:"text-sm text-blue-600 hover:text-blue-800 cursor-pointer bg-transparent border-none font-medium",children:"+ Custom Server"})]}),open:e,onCancel:s,footer:null,width:1e3,className:"top-8",styles:{body:{padding:"24px",maxHeight:"70vh",overflowY:"auto"},header:{padding:"24px 24px 0 24px",border:"none"}},children:[(0,t.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:12},children:["All",...o].map(e=>{let s=f===e;return(0,t.jsx)("button",{onClick:()=>y(e),style:{padding:"4px 12px",borderRadius:4,border:s?"1px solid #111827":"1px solid #e5e7eb",background:s?"#111827":"#fff",color:s?"#fff":"#4b5563",cursor:"pointer",fontSize:12,fontWeight:s?500:400,lineHeight:"20px"},children:e},e)})}),(0,t.jsx)(t2,{placeholder:"Search servers...",value:p,onChange:e=>g(e.target.value),style:{marginBottom:16},allowClear:!0}),d&&(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:Array.from({length:8}).map((e,s)=>(0,t.jsx)("div",{style:{height:36,borderRadius:6,background:"#f9fafb"}},s))}),u&&(0,t.jsx)("div",{style:{textAlign:"center",padding:"32px 0",color:"#9ca3af"},children:(0,t.jsxs)(t1,{children:["Failed to load servers: ",u]})}),!d&&!u&&0===j.length&&(0,t.jsx)("div",{style:{textAlign:"center",padding:"32px 0",color:"#9ca3af"},children:(0,t.jsxs)(t1,{children:["No servers found."," ",(0,t.jsx)("a",{onClick:l,style:{color:"#2563eb",cursor:"pointer"},children:"Add a custom server"})]})}),!d&&!u&&Object.entries(v).map(([e,s])=>(0,t.jsxs)("div",{style:{marginBottom:16},children:[(0,t.jsx)("div",{style:{fontSize:11,fontWeight:500,color:"#9ca3af",textTransform:"uppercase",letterSpacing:"0.05em",padding:"6px 0",borderBottom:"1px solid #f3f4f6",marginBottom:4},children:e}),(0,t.jsx)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"0 16px"},children:s.map(e=>{var s;let l,a,n=(l=(s=e.title||e.name).charAt(0).toUpperCase(),a=s.split("").reduce((e,t)=>e+t.charCodeAt(0),0)%t5.length,{initial:l,backgroundColor:t5[a]});return(0,t.jsxs)("div",{onClick:()=>r(e),style:{display:"flex",alignItems:"center",padding:"8px 10px",borderRadius:6,cursor:"pointer",transition:"background 0.1s ease"},onMouseEnter:e=>{e.currentTarget.style.background="#f9fafb"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:[e.icon_url?(0,t.jsx)("img",{src:e.icon_url,alt:e.title,style:{width:20,height:20,objectFit:"contain",flexShrink:0,marginRight:12},onError:e=>{let t=e.currentTarget;t.style.display="none";let s=t.nextElementSibling;s&&(s.style.display="flex")}}):null,(0,t.jsx)("div",{style:{width:20,height:20,borderRadius:4,backgroundColor:n.backgroundColor,color:"#fff",display:e.icon_url?"none":"flex",alignItems:"center",justifyContent:"center",fontWeight:600,fontSize:11,flexShrink:0,marginRight:12},children:n.initial}),(0,t.jsx)("span",{style:{fontSize:14,fontWeight:400,color:"#111827",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.title||e.name}),(0,t.jsx)("span",{style:{color:"#d1d5db",fontSize:14,flexShrink:0,marginLeft:8},children:"›"})]},e.name)})})]},e))]})};var t6=e.i(611052);let{Text:t3,Title:t7}=f.Typography,{Option:t8}=p.Select;e.s(["MCPServers",0,({accessToken:e,userRole:f,userID:N})=>{let{data:T,isLoading:C,refetch:A}=(0,y.useMCPServers)(),{data:I,isLoading:P,recheckServerHealth:O,recheckingServerIds:M}=(()=>{let{accessToken:e}=(0,w.default)(),t=(0,v.useQueryClient)(),[s,r]=(0,b.useState)(new Set),l=(0,j.useQuery)({queryKey:k.lists(),queryFn:async()=>await (0,_.fetchMCPServerHealth)(e),enabled:!!e,refetchInterval:3e4}),a=(0,b.useCallback)(async s=>{if(e){r(e=>new Set(e).add(s));try{let r=await (0,_.fetchMCPServerHealth)(e,[s]);t.setQueriesData({queryKey:k.lists()},e=>e?e.map(e=>r.find(t=>t.server_id===e.server_id)??e):r)}finally{r(e=>{let t=new Set(e);return t.delete(s),t})}}},[e,t]);return{...l,recheckServerHealth:a,recheckingServerIds:s}})(),E=(0,b.useMemo)(()=>{if(!T)return[];if(!I)return T;let e=new Map(I.map(e=>[e.server_id,e.status]));return T.map(t=>{let s=e.get(t.server_id);return{...t,status:s||t.status}})},[T,I]),[F,L]=(0,b.useState)(null),[R,z]=(0,b.useState)(!1),[U,B]=(0,b.useState)(null),[V,q]=(0,b.useState)(!1),[D,H]=(0,b.useState)("all"),[K,W]=(0,b.useState)("all"),[J,Y]=(0,b.useState)([]),[Q,X]=(0,b.useState)(!1),[ee,et]=(0,b.useState)(!1),[es,el]=(0,b.useState)(null),[ea,en]=(0,b.useState)(!1),[ei,eo]=(0,b.useState)(null),ec="Internal User"===f;(0,b.useEffect)(()=>{try{let e=(0,eQ.getSecureItem)("litellm-mcp-oauth-edit-state");if(!e)return;let t=JSON.parse(e);t?.serverId&&(B(t.serverId),q(!0))}catch(e){console.error("Failed to restore MCP edit view state",e)}},[]);let ed=b.default.useMemo(()=>{if(!E)return[];let e=new Set,t=[];return E.forEach(s=>{s.teams&&s.teams.forEach(s=>{let r=s.team_id;e.has(r)||(e.add(r),t.push(s))})}),t},[E]),em=b.default.useMemo(()=>E?Array.from(new Set(E.flatMap(e=>e.mcp_access_groups).filter(e=>null!=e))):[],[E]),eu=(0,b.useCallback)((e,t)=>{if(!E)return Y([]);let s=E;"personal"===e?Y([]):("all"!==e&&(s=s.filter(t=>t.teams?.some(t=>t.team_id===e))),"all"!==t&&(s=s.filter(e=>e.mcp_access_groups?.some(e=>"string"==typeof e?e===t:e&&e.name===t))),Y([...s].sort((e,t)=>e.created_at||t.created_at?e.created_at?t.created_at?new Date(t.created_at).getTime()-new Date(e.created_at).getTime():-1:1:0)))},[E]);(0,b.useEffect)(()=>{eu(D,K)},[E,D,K,eu]);let ex=b.default.useMemo(()=>{let e,s,r,l;return e=e=>{B(e),q(!1)},s=e=>{B(e),q(!0)},r=eh,l=e=>eo(e),[{accessorKey:"server_id",header:"Server ID",enableSorting:!0,cell:({row:s})=>(0,t.jsxs)("button",{onClick:()=>e(s.original.server_id),className:"font-mono text-blue-600 bg-blue-50 hover:bg-blue-100 text-xs font-medium px-2 py-0.5 rounded-md border border-blue-200 text-left truncate whitespace-nowrap cursor-pointer max-w-[15ch] transition-colors",children:[s.original.server_id.slice(0,7),"..."]})},{accessorKey:"server_name",header:"Name",enableSorting:!0,cell:({row:e})=>{let s=e.original.mcp_info?.logo_url,r=e.original.server_name;return(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[s?(0,t.jsx)("img",{src:s,alt:`${r??"MCP"} logo`,className:"h-5 w-5 rounded object-contain flex-shrink-0",onError:e=>{e.target.style.display="none"}}):null,(0,t.jsx)("span",{children:r})]})}},{accessorKey:"alias",header:"Alias",enableSorting:!0},{id:"url",header:"URL",cell:({row:e})=>{let s=e.original.url;if(!s)return(0,t.jsx)("span",{className:"text-gray-400",children:"—"});let{maskedUrl:r}=eK(s);return(0,t.jsx)("span",{className:"font-mono text-sm",children:r})}},{accessorKey:"transport",header:"Transport",enableSorting:!0,cell:({row:e})=>{let s=e.original.transport||"http",r=(e.original.spec_path&&"stdio"!==s?"OPENAPI":s).toUpperCase();return(0,t.jsx)("span",{className:"inline-flex items-center text-xs font-medium px-2 py-0.5 rounded border bg-gray-50 text-gray-700 border-gray-200",children:r})}},{accessorKey:"auth_type",header:"Auth Type",enableSorting:!0,cell:({getValue:e})=>{let s=e()||"none";return(0,t.jsx)("span",{className:"inline-flex items-center text-xs font-medium px-2 py-0.5 rounded border bg-gray-50 text-gray-700 border-gray-200",children:s})}},{id:"health_status",header:"Health Status",cell:({row:e})=>(0,t.jsx)(tx,{server:e.original,isLoadingHealth:P,isRechecking:M?.has(e.original.server_id),onRecheck:O})},{id:"mcp_access_groups",header:"Access Groups",cell:({row:e})=>{let s=e.original.mcp_access_groups;if(Array.isArray(s)&&s.length>0&&"string"==typeof s[0]){let e=s.join(", ");return(0,t.jsx)(g.Tooltip,{title:e,children:(0,t.jsxs)("div",{className:"flex items-center gap-1 max-w-[200px]",children:[(0,t.jsx)("span",{className:"inline-flex items-center text-xs font-medium px-1.5 py-0.5 rounded bg-gray-100 text-gray-700 border border-gray-200 truncate max-w-[140px]",children:s[0]}),s.length>1&&(0,t.jsxs)("span",{className:"text-xs text-gray-400 font-medium",children:["+",s.length-1]})]})})}return(0,t.jsx)("span",{className:"text-xs text-gray-400",children:"—"})}},{id:"available_on_public_internet",header:"Network Access",cell:({row:e})=>e.original.available_on_public_internet?(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-green-50 text-green-700 rounded-full border border-green-200 text-xs font-medium",children:[(0,t.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-green-500"}),"Public"]}):(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-orange-50 text-orange-700 rounded-full border border-orange-200 text-xs font-medium",children:[(0,t.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-orange-500"}),"Internal"]})},{header:"Created",accessorKey:"created_at",enableSorting:!0,sortingFn:"datetime",cell:({row:e})=>{let s=e.original;if(!s.created_at)return(0,t.jsx)("span",{className:"text-xs text-gray-400",children:"—"});let r=new Date(s.created_at);return(0,t.jsx)(g.Tooltip,{title:r.toLocaleString(),children:(0,t.jsx)("span",{className:"text-xs text-gray-600",children:r.toLocaleDateString()})})}},{header:"Updated",accessorKey:"updated_at",enableSorting:!0,sortingFn:"datetime",cell:({row:e})=>{let s=e.original;if(!s.updated_at)return(0,t.jsx)("span",{className:"text-xs text-gray-400",children:"—"});let r=new Date(s.updated_at);return(0,t.jsx)(g.Tooltip,{title:r.toLocaleString(),children:(0,t.jsx)("span",{className:"text-xs text-gray-600",children:r.toLocaleDateString()})})}},{id:"byok_credential",header:"Credential",cell:({row:e})=>{let s=e.original;return s.is_byok?s.has_user_credential?(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs font-medium px-2 py-0.5 rounded-full bg-green-50 text-green-700 border border-green-200",children:[(0,t.jsx)(tu.CheckOutlined,{style:{fontSize:10}})," Connected"]}),l&&(0,t.jsx)("button",{className:"text-xs text-gray-400 hover:text-blue-600 transition-colors",onClick:()=>l(s),children:"Update"})]}):l?(0,t.jsx)("button",{className:"text-xs bg-blue-600 hover:bg-blue-700 text-white px-3 py-1 rounded-md font-medium transition-colors shadow-sm",onClick:()=>l(s),children:"Connect"}):null:(0,t.jsx)("span",{className:"text-gray-300 text-xs",children:"—"})}},{id:"actions",header:"Actions",cell:({row:e})=>(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)(g.Tooltip,{title:"Edit",children:(0,t.jsx)("button",{onClick:()=>s(e.original.server_id),className:"p-1.5 rounded-md text-gray-400 hover:text-blue-600 hover:bg-blue-50 transition-colors",children:(0,t.jsx)(td.Icon,{icon:tm.PencilAltIcon,size:"sm"})})}),(0,t.jsx)(g.Tooltip,{title:"Delete",children:(0,t.jsx)("button",{onClick:()=>r(e.original.server_id),className:"p-1.5 rounded-md text-gray-400 hover:text-red-600 hover:bg-red-50 transition-colors",children:(0,t.jsx)(td.Icon,{icon:G.TrashIcon,size:"sm"})})})]})}]},[f,P,O,M]);function eh(e){L(e),z(!0)}let ep=async()=>{if(null!=F&&null!=e)try{en(!0),await (0,_.deleteMCPServer)(e,F),S.default.success("Deleted MCP Server successfully"),A()}catch(e){console.error("Error deleting the mcp server:",e)}finally{en(!1),z(!1),L(null)}},eg=F?(T||[]).find(e=>e.server_id===F):null,ef=b.default.useMemo(()=>J.find(e=>e.server_id===U)||{server_id:"",server_name:"",alias:"",url:"",transport:"",auth_type:"",created_at:"",created_by:"",updated_at:"",updated_by:""},[J,U]),eb=b.default.useCallback(()=>{q(!1),B(null),A()},[A]);return e&&f&&N?(0,t.jsxs)("div",{className:"w-full h-full p-6",children:[(0,t.jsx)(h.Modal,{open:R,title:"Delete MCP Server?",onOk:ep,okText:ea?"Deleting...":"Delete",onCancel:()=>{z(!1),L(null)},cancelText:"Cancel",cancelButtonProps:{disabled:ea},okButtonProps:{danger:!0},confirmLoading:ea,children:(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(t3,{className:"text-gray-600",children:"This action is permanent and cannot be undone. All associated configurations will be removed."}),eg&&(0,t.jsx)("div",{className:"mt-3 p-4 bg-gray-50 rounded-lg border border-gray-200",children:(0,t.jsxs)(x.Descriptions,{column:1,size:"small",colon:!1,children:[eg.server_name&&(0,t.jsx)(x.Descriptions.Item,{label:(0,t.jsx)("span",{className:"text-gray-500 text-sm",children:"Name"}),children:(0,t.jsx)(t3,{strong:!0,className:"text-sm",children:eg.server_name})}),(0,t.jsx)(x.Descriptions.Item,{label:(0,t.jsx)("span",{className:"text-gray-500 text-sm",children:"ID"}),children:(0,t.jsx)(t3,{code:!0,className:"text-xs",children:eg.server_id})}),eg.url&&(0,t.jsx)(x.Descriptions.Item,{label:(0,t.jsx)("span",{className:"text-gray-500 text-sm",children:"URL"}),children:(0,t.jsx)(t3,{code:!0,className:"text-xs break-all",children:eg.url})})]})})]})}),(0,t.jsx)(e4,{userRole:f,userID:N,accessToken:e,onCreateSuccess:e=>{Y(t=>[...t,e]),X(!1),A()},isModalVisible:Q,setModalVisible:X,availableAccessGroups:em,prefillData:es,onBackToDiscovery:()=>{X(!1),el(null),et(!0)}}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(m.Title,{children:"MCP Servers"}),J.length>0&&(0,t.jsx)("span",{className:"inline-flex items-center text-xs font-medium px-2 py-0.5 rounded-full bg-gray-100 text-gray-600 border border-gray-200",children:J.length})]}),(0,t.jsx)(d.Text,{className:"text-tremor-content mt-1",children:"Configure and manage your MCP servers"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.isAdminRole)(f)&&(0,t.jsx)(l.Button,{className:"flex-shrink-0",onClick:()=>et(!0),children:"+ Add New MCP Server"}),!(0,s.isAdminRole)(f)&&(0,t.jsx)(l.Button,{className:"flex-shrink-0",onClick:()=>{el(null),X(!0)},variant:"secondary",children:"+ Submit MCP Server"})]})]}),(0,t.jsx)(t4,{isVisible:ee,onClose:()=>et(!1),onSelectServer:e=>{el(e),et(!1),X(!0)},onCustomServer:()=>{el(null),et(!1),X(!0)},accessToken:e}),(0,t.jsxs)(n.TabGroup,{className:"w-full h-full",children:[(0,t.jsx)(i.TabList,{className:"flex justify-between mt-2 w-full items-center",children:(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)(a.Tab,{children:"All Servers"}),(0,t.jsx)(a.Tab,{children:"Toolsets"}),(0,t.jsx)(a.Tab,{children:"Connect"}),(0,t.jsx)(a.Tab,{children:"Semantic Filter"}),(0,t.jsx)(a.Tab,{children:"Network Settings"}),(0,s.isAdminRole)(f)&&(0,t.jsx)(a.Tab,{children:(0,t.jsxs)("span",{className:"flex items-center gap-2",children:["Submitted MCPs ",(0,t.jsx)(u.default,{})]})})]})}),(0,t.jsxs)(c.TabPanels,{children:[(0,t.jsx)(o.TabPanel,{children:U?(0,t.jsx)(tL,{mcpServer:ef,onBack:eb,isProxyAdmin:(0,s.isAdminRole)(f),isEditing:V,accessToken:e,userID:N,userRole:f,availableAccessGroups:em},U):(0,t.jsxs)("div",{className:"w-full h-full",children:[(0,t.jsx)("div",{className:"w-full",children:(0,t.jsx)("div",{className:"flex flex-col space-y-4",children:(0,t.jsxs)("div",{className:"flex items-center gap-6 bg-white rounded-lg px-4 py-3 border border-gray-200",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(d.Text,{className:"text-sm font-medium text-gray-600 whitespace-nowrap",children:"Team"}),(0,t.jsxs)(p.Select,{value:D,onChange:e=>{H(e),eu(e,K)},style:{width:220},size:"middle",children:[(0,t.jsx)(t8,{value:"all",children:(0,t.jsx)("span",{className:"font-medium",children:ec?"All Available Servers":"All Servers"})}),(0,t.jsx)(t8,{value:"personal",children:(0,t.jsx)("span",{className:"font-medium",children:"Personal"})}),ed.map(e=>(0,t.jsx)(t8,{value:e.team_id,children:(0,t.jsx)("span",{className:"font-medium",children:e.team_alias||e.team_id})},e.team_id))]})]}),(0,t.jsx)("div",{className:"h-6 w-px bg-gray-200"}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)(d.Text,{className:"text-sm font-medium text-gray-600 whitespace-nowrap",children:["Access Group",(0,t.jsx)(g.Tooltip,{title:"An MCP Access Group is a set of users or teams that have permission to access specific MCP servers. Use access groups to control and organize who can connect to which servers.",children:(0,t.jsx)(r.QuestionCircleOutlined,{style:{marginLeft:4,color:"#9ca3af"}})})]}),(0,t.jsxs)(p.Select,{value:K,onChange:e=>{W(e),eu(D,e)},style:{width:220},size:"middle",children:[(0,t.jsx)(t8,{value:"all",children:(0,t.jsx)("span",{className:"font-medium",children:"All Access Groups"})}),em.map(e=>(0,t.jsx)(t8,{value:e,children:(0,t.jsx)("span",{className:"font-medium",children:e})},e))]})]})]})})}),(0,t.jsx)("div",{className:"w-full mt-6",children:(0,t.jsx)(Z.DataTable,{data:J,columns:ex,renderSubComponent:()=>(0,t.jsx)("div",{}),getRowCanExpand:()=>!1,isLoading:C,noDataMessage:"No MCP servers configured. Click '+ Add New MCP Server' to get started.",loadingMessage:"Loading MCP servers...",enableSorting:!0})})]})}),(0,t.jsx)(o.TabPanel,{children:(0,t.jsx)(er,{accessToken:e,userRole:f})}),(0,t.jsx)(o.TabPanel,{children:(0,t.jsx)(tc,{})}),(0,t.jsx)(o.TabPanel,{children:(0,t.jsx)(tQ,{accessToken:e})}),(0,t.jsx)(o.TabPanel,{children:(0,t.jsx)(t0,{accessToken:e})}),(0,s.isAdminRole)(f)&&(0,t.jsx)(o.TabPanel,{children:(0,t.jsx)($,{accessToken:e})})]})]}),ei&&(0,t.jsx)(t6.ByokCredentialModal,{server:ei,open:!!ei,onClose:()=>eo(null),onSuccess:e=>{A(),eo(null)},accessToken:e||""})]}):(console.log("Missing required authentication parameters",{accessToken:e,userRole:f,userID:N}),(0,t.jsx)("div",{className:"p-6 text-center text-gray-500",children:"Missing required authentication parameters."}))}],280881)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0_ex-stk7ibf_.js b/litellm/proxy/_experimental/out/_next/static/chunks/0_ex-stk7ibf_.js deleted file mode 100644 index 09da7bcb858..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/0_ex-stk7ibf_.js +++ /dev/null @@ -1,31 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,888288,e=>{"use strict";var t=e.i(271645);e.s(["default",0,(e,r)=>{let a=void 0!==r,[l,s]=(0,t.useState)(e);return[a?r:l,e=>{a||s(e)}]}])},793130,e=>{"use strict";var t=e.i(290571),r=e.i(783222),a=e.i(433336),l=e.i(271645),s=e.i(394487),n=e.i(503269),o=e.i(214520),i=e.i(746725),d=e.i(914189),c=e.i(144279),u=e.i(294316),g=e.i(601893),m=e.i(140721),p=e.i(942803),f=e.i(233538),h=e.i(694421),y=e.i(700020),b=e.i(35889),x=e.i(998348),_=e.i(722678);let j=(0,l.createContext)(null);j.displayName="GroupContext";let v=l.Fragment,w=Object.assign((0,y.forwardRefWithAs)(function(e,t){var v;let w=(0,l.useId)(),k=(0,p.useProvidedId)(),C=(0,g.useDisabled)(),{id:S=k||`headlessui-switch-${w}`,disabled:T=C||!1,checked:N,defaultChecked:M,onChange:E,name:F,value:A,form:L,autoFocus:I=!1,...P}=e,R=(0,l.useContext)(j),[O,B]=(0,l.useState)(null),D=(0,l.useRef)(null),$=(0,u.useSyncRefs)(D,t,null===R?null:R.setSwitch,B),K=(0,o.useDefaultValue)(M),[G,H]=(0,n.useControllable)(N,E,null!=K&&K),q=(0,i.useDisposables)(),[U,z]=(0,l.useState)(!1),V=(0,d.useEvent)(()=>{z(!0),null==H||H(!G),q.nextFrame(()=>{z(!1)})}),Q=(0,d.useEvent)(e=>{if((0,f.isDisabledReactIssue7711)(e.currentTarget))return e.preventDefault();e.preventDefault(),V()}),J=(0,d.useEvent)(e=>{e.key===x.Keys.Space?(e.preventDefault(),V()):e.key===x.Keys.Enter&&(0,h.attemptSubmit)(e.currentTarget)}),Y=(0,d.useEvent)(e=>e.preventDefault()),W=(0,_.useLabelledBy)(),X=(0,b.useDescribedBy)(),{isFocusVisible:Z,focusProps:ee}=(0,r.useFocusRing)({autoFocus:I}),{isHovered:et,hoverProps:er}=(0,a.useHover)({isDisabled:T}),{pressed:ea,pressProps:el}=(0,s.useActivePress)({disabled:T}),es=(0,l.useMemo)(()=>({checked:G,disabled:T,hover:et,focus:Z,active:ea,autofocus:I,changing:U}),[G,et,Z,ea,T,U,I]),en=(0,y.mergeProps)({id:S,ref:$,role:"switch",type:(0,c.useResolveButtonType)(e,O),tabIndex:-1===e.tabIndex?0:null!=(v=e.tabIndex)?v:0,"aria-checked":G,"aria-labelledby":W,"aria-describedby":X,disabled:T||void 0,autoFocus:I,onClick:Q,onKeyUp:J,onKeyPress:Y},ee,er,el),eo=(0,l.useCallback)(()=>{if(void 0!==K)return null==H?void 0:H(K)},[H,K]),ei=(0,y.useRender)();return l.default.createElement(l.default.Fragment,null,null!=F&&l.default.createElement(m.FormFields,{disabled:T,data:{[F]:A||"on"},overrides:{type:"checkbox",checked:G},form:L,onReset:eo}),ei({ourProps:en,theirProps:P,slot:es,defaultTag:"button",name:"Switch"}))}),{Group:function(e){var t;let[r,a]=(0,l.useState)(null),[s,n]=(0,_.useLabels)(),[o,i]=(0,b.useDescriptions)(),d=(0,l.useMemo)(()=>({switch:r,setSwitch:a}),[r,a]),c=(0,y.useRender)();return l.default.createElement(i,{name:"Switch.Description",value:o},l.default.createElement(n,{name:"Switch.Label",value:s,props:{htmlFor:null==(t=d.switch)?void 0:t.id,onClick(e){r&&(e.currentTarget instanceof HTMLLabelElement&&e.preventDefault(),r.click(),r.focus({preventScroll:!0}))}}},l.default.createElement(j.Provider,{value:d},c({ourProps:{},theirProps:e,slot:{},defaultTag:v,name:"Switch.Group"}))))},Label:_.Label,Description:b.Description});var k=e.i(888288),C=e.i(95779),S=e.i(444755),T=e.i(673706),N=e.i(829087);let M=(0,T.makeClassName)("Switch"),E=l.default.forwardRef((e,r)=>{let{checked:a,defaultChecked:s=!1,onChange:n,color:o,name:i,error:d,errorMessage:c,disabled:u,required:g,tooltip:m,id:p}=e,f=(0,t.__rest)(e,["checked","defaultChecked","onChange","color","name","error","errorMessage","disabled","required","tooltip","id"]),h={bgColor:o?(0,T.getColorClassNames)(o,C.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",ringColor:o?(0,T.getColorClassNames)(o,C.colorPalette.ring).ringColor:"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"},[y,b]=(0,k.default)(s,a),[x,_]=(0,l.useState)(!1),{tooltipProps:j,getReferenceProps:v}=(0,N.useTooltip)(300);return l.default.createElement("div",{className:"flex flex-row items-center justify-start"},l.default.createElement(N.default,Object.assign({text:m},j)),l.default.createElement("div",Object.assign({ref:(0,T.mergeRefs)([r,j.refs.setReference]),className:(0,S.tremorTwMerge)(M("root"),"flex flex-row relative h-5")},f,v),l.default.createElement("input",{type:"checkbox",className:(0,S.tremorTwMerge)(M("input"),"absolute w-5 h-5 cursor-pointer left-0 top-0 opacity-0"),name:i,required:g,checked:y,onChange:e=>{e.preventDefault()}}),l.default.createElement(w,{checked:y,onChange:e=>{b(e),null==n||n(e)},disabled:u,className:(0,S.tremorTwMerge)(M("switch"),"w-10 h-5 group relative inline-flex shrink-0 cursor-pointer items-center justify-center rounded-tremor-full","focus:outline-none",u?"cursor-not-allowed":""),onFocus:()=>_(!0),onBlur:()=>_(!1),id:p},l.default.createElement("span",{className:(0,S.tremorTwMerge)(M("sr-only"),"sr-only")},"Switch ",y?"on":"off"),l.default.createElement("span",{"aria-hidden":"true",className:(0,S.tremorTwMerge)(M("background"),y?h.bgColor:"bg-tremor-border dark:bg-dark-tremor-border","pointer-events-none absolute mx-auto h-3 w-9 rounded-tremor-full transition-colors duration-100 ease-in-out")}),l.default.createElement("span",{"aria-hidden":"true",className:(0,S.tremorTwMerge)(M("round"),y?(0,S.tremorTwMerge)(h.bgColor,"translate-x-5 border-tremor-background dark:border-dark-tremor-background"):"translate-x-0 bg-tremor-border dark:bg-dark-tremor-border border-tremor-background dark:border-dark-tremor-background","pointer-events-none absolute left-0 inline-block h-5 w-5 transform rounded-tremor-full border-2 shadow-tremor-input duration-100 ease-in-out transition",x?(0,S.tremorTwMerge)("ring-2",h.ringColor):"")}))),d&&c?l.default.createElement("p",{className:(0,S.tremorTwMerge)(M("errorMessage"),"text-sm text-red-500 mt-1 ")},c):null)});E.displayName="Switch",e.s(["Switch",0,E],793130)},418371,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(916925);e.s(["ProviderLogo",0,({provider:e,className:l="w-4 h-4"})=>{let[s,n]=(0,r.useState)(!1),{logo:o}=(0,a.getProviderLogoAndName)(e);return s||!o?(0,t.jsx)("div",{className:`${l} rounded-full bg-gray-200 flex items-center justify-center text-xs`,children:e?.charAt(0)||"-"}):(0,t.jsx)("img",{src:o,alt:`${e} logo`,className:l,onError:()=>n(!0)})}])},368670,539677,e=>{"use strict";var t=e.i(764205),r=e.i(266027);let a=(0,e.i(243652).createQueryKeys)("modelCostMap");e.s(["useModelCostMap",0,()=>(0,r.useQuery)({queryKey:a.list({}),queryFn:async()=>await (0,t.modelCostMap)(),staleTime:6e4,gcTime:6e4})],368670),e.i(247167);var l=e.i(931067),s=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M740 161c-61.8 0-112 50.2-112 112 0 50.1 33.1 92.6 78.5 106.9v95.9L320 602.4V318.1c44.2-15 76-56.9 76-106.1 0-61.8-50.2-112-112-112s-112 50.2-112 112c0 49.2 31.8 91 76 106.1V706c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1v-27.8l423.5-138.7a50.52 50.52 0 0034.9-48.2V378.2c42.9-15.8 73.6-57 73.6-105.2 0-61.8-50.2-112-112-112zm-504 51a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm96 600a48.01 48.01 0 01-96 0 48.01 48.01 0 0196 0zm408-491a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"}}]},name:"branches",theme:"outlined"};var o=e.i(9583),i=s.forwardRef(function(e,t){return s.createElement(o.default,(0,l.default)({},e,{ref:t,icon:n}))});e.s(["BranchesOutlined",0,i],539677)},226898,972520,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(304967),l=e.i(269200),s=e.i(427612),n=e.i(496020),o=e.i(389083),i=e.i(64848),d=e.i(977572),c=e.i(942232),u=e.i(599724),g=e.i(994388),m=e.i(752978),p=e.i(793130),f=e.i(404206),h=e.i(723731),y=e.i(653824),b=e.i(881073),x=e.i(197647),_=e.i(764205),j=e.i(28651),v=e.i(68155),w=e.i(220508),k=e.i(464571),C=e.i(727749),S=e.i(158392);let T=({accessToken:e,userRole:a,userID:l,modelData:s})=>{let[n,o]=(0,r.useState)({routerSettings:{},selectedStrategy:null,enableTagFiltering:!1}),[i,d]=(0,r.useState)([]),[c,u]=(0,r.useState)({}),[g,m]=(0,r.useState)({});return((0,r.useEffect)(()=>{e&&a&&l&&((0,_.getCallbacksCall)(e,l,a).then(e=>{console.log("callbacks",e);let t=e.router_settings;"model_group_retry_policy"in t&&delete t.model_group_retry_policy;let r=t.routing_strategy||null;o(e=>({...e,routerSettings:t,selectedStrategy:r}))}),(0,_.getRouterSettingsCall)(e).then(e=>{if(console.log("router settings from API",e),e.fields){let t={};e.fields.forEach(e=>{t[e.field_name]={ui_field_name:e.ui_field_name,field_description:e.field_description,options:e.options,link:e.link}}),u(t);let r=e.fields.find(e=>"routing_strategy"===e.field_name);r?.options&&d(r.options),e.routing_strategy_descriptions&&m(e.routing_strategy_descriptions);let a=e.fields.find(e=>"enable_tag_filtering"===e.field_name);a?.field_value!==null&&a?.field_value!==void 0&&o(e=>({...e,enableTagFiltering:a.field_value}))}}))},[e,a,l]),e)?(0,t.jsxs)("div",{className:"w-full",children:[(0,t.jsx)(S.default,{value:n,onChange:o,routerFieldsMetadata:c,availableRoutingStrategies:i,routingStrategyDescriptions:g}),(0,t.jsxs)("div",{className:"border-t border-gray-200 pt-6 flex justify-end gap-3",children:[(0,t.jsx)(k.Button,{onClick:()=>window.location.reload(),children:"Reset"}),(0,t.jsx)(k.Button,{type:"primary",onClick:()=>{if(!e)return;let t=n.routerSettings;console.log("router_settings",t);let r=new Set(["allowed_fails","cooldown_time","num_retries","timeout","retry_after"]),a=new Set(["model_group_alias","retry_policy"]),l=Object.fromEntries(Object.entries({...t,enable_tag_filtering:n.enableTagFiltering}).map(([e,t])=>{if("routing_strategy_args"!==e&&"routing_strategy"!==e&&"enable_tag_filtering"!==e){let l=document.querySelector(`input[name="${e}"]`),s=((e,t,l)=>{if(void 0===t)return l;let s=t.trim();if("null"===s.toLowerCase())return null;if(r.has(e)){let e=Number(s);return Number.isNaN(e)?l:e}if(a.has(e)){if(""===s)return null;try{return JSON.parse(s)}catch{return l}}return"true"===s.toLowerCase()||"false"!==s.toLowerCase()&&s})(e,l?.value,t);return[e,s]}if("routing_strategy"===e)return[e,n.selectedStrategy];if("enable_tag_filtering"===e)return[e,n.enableTagFiltering];if("routing_strategy_args"===e&&"latency-based-routing"===n.selectedStrategy){let e={},t=document.querySelector('input[name="lowest_latency_buffer"]'),r=document.querySelector('input[name="ttl"]');return t?.value&&(e.lowest_latency_buffer=Number(t.value)),r?.value&&(e.ttl=Number(r.value)),console.log(`setRoutingStrategyArgs: ${e}`),["routing_strategy_args",e]}return null}).filter(e=>null!=e));console.log("updatedVariables",l);try{(0,_.setCallbacksCall)(e,{router_settings:l})}catch(e){C.default.fromBackend("Failed to update router settings: "+e)}C.default.success("router settings updated successfully")},children:"Save Changes"})]})]}):null};e.i(247167);var N=e.i(368670);let M=r.forwardRef(function(e,t){return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14 5l7 7m0 0l-7 7m7-7H3"}))});var E=e.i(122577),F=e.i(592968),A=e.i(898586),L=e.i(356449),I=e.i(127952),P=e.i(418371),R=e.i(708347),O=e.i(888259),B=e.i(689020),D=e.i(212931);let $=(0,e.i(475254).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);function K({open:e,onCancel:r,children:a}){return(0,t.jsx)(D.Modal,{title:(0,t.jsx)("div",{className:"pb-4 border-b border-gray-100",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 text-gray-800",children:[(0,t.jsx)("div",{className:"p-2 bg-indigo-50 rounded-lg",children:(0,t.jsx)($,{className:"w-5 h-5 text-indigo-600"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-bold m-0",children:"Configure Model Fallbacks"}),(0,t.jsx)("p",{className:"text-sm text-gray-500 font-normal m-0",children:"Manage multiple fallback chains for different models (up to 5 groups at a time)"})]})]})}),open:e,width:900,footer:null,onCancel:r,maskClosable:!1,className:"top-8",styles:{body:{padding:"24px"},header:{padding:"24px 24px 0 24px",border:"none"}},children:(0,t.jsx)("div",{className:"mt-6",children:a})})}e.s(["ArrowRight",0,$],972520);var G=e.i(419470);function H({models:e,accessToken:a,value:l=[],onChange:s}){let[n,o]=(0,r.useState)(!1),[i,d]=(0,r.useState)([]),[c,u]=(0,r.useState)(0),[m,p]=(0,r.useState)(!1),[f,h]=(0,r.useState)([{id:"1",primaryModel:null,fallbackModels:[]}]);(0,r.useEffect)(()=>{n&&(h([{id:"1",primaryModel:null,fallbackModels:[]}]),u(e=>e+1))},[n]),(0,r.useEffect)(()=>{let e=async()=>{try{let e=await (0,B.fetchAvailableModels)(a);console.log("Fetched models for fallbacks:",e),d(e)}catch(e){console.error("Error fetching model info for fallbacks:",e)}};n&&e()},[a,n]);let y=Array.from(new Set(i.map(e=>e.model_group))).sort(),b=()=>{o(!1),h([{id:"1",primaryModel:null,fallbackModels:[]}])},x=async()=>{let e=f.filter(e=>!e.primaryModel||0===e.fallbackModels.length);if(e.length>0)return void O.default.error(`Please complete configuration for all groups. ${e.length} group(s) incomplete.`);let t=[...l||[],...f.map(e=>({[e.primaryModel]:e.fallbackModels}))];if(s){p(!0);try{await s(t),C.default.success(`${f.length} fallback configuration(s) added successfully!`),b()}catch(e){console.error("Error saving fallbacks:",e)}finally{p(!1)}}else C.default.fromBackend("onChange callback not provided")};return(0,t.jsxs)("div",{children:[(0,t.jsx)(g.Button,{className:"mx-auto",onClick:()=>o(!0),icon:()=>(0,t.jsx)("span",{className:"mr-1",children:"+"}),children:"Add Fallbacks"}),(0,t.jsxs)(K,{open:n,onCancel:b,children:[(0,t.jsx)(G.FallbackSelectionForm,{groups:f,onGroupsChange:h,availableModels:y,maxFallbacks:10,maxGroups:5},c),f.length>0&&(0,t.jsxs)("div",{className:"flex items-center justify-end space-x-3 pt-6 mt-6 border-t border-gray-100",children:[(0,t.jsx)(k.Button,{type:"default",onClick:b,disabled:m,children:"Cancel"}),(0,t.jsx)(k.Button,{type:"default",onClick:x,disabled:0===f.length||m,loading:m,children:m?"Saving Configuration...":"Save All Configurations"})]})]})]})}let q="inline-flex items-center gap-2 px-2.5 py-1 rounded-md border border-gray-200 bg-gray-50 text-sm font-medium text-gray-800 shrink-0";async function U(e,r){console.log=function(){};let a=window.location.origin,l=new L.default.OpenAI({apiKey:r,baseURL:a,dangerouslyAllowBrowser:!0});try{C.default.info("Testing fallback model response...");let r=await l.chat.completions.create({model:e,messages:[{role:"user",content:"Hi, this is a test message"}],mock_testing_fallbacks:!0});C.default.success((0,t.jsxs)("span",{children:["Test model=",(0,t.jsx)("strong",{children:e}),", received model=",(0,t.jsx)("strong",{children:r.model}),". See"," ",(0,t.jsx)("a",{href:"#",onClick:()=>window.open("https://docs.litellm.ai/docs/proxy/reliability","_blank"),style:{textDecoration:"underline",color:"blue"},children:"curl"})]}))}catch(e){C.default.fromBackend(`Error occurred while generating model response. Please try again. Error: ${e}`)}}let z=({accessToken:e,userRole:a,userID:o,modelData:u})=>{let[g,p]=(0,r.useState)({}),[f,h]=(0,r.useState)(!1),[y,b]=(0,r.useState)(null),[x,j]=(0,r.useState)(!1),{data:w}=(0,N.useModelCostMap)(),k=e=>null!=w&&"object"==typeof w&&e in w?w[e].litellm_provider??"":"";(0,r.useEffect)(()=>{e&&a&&o&&(0,_.getCallbacksCall)(e,o,a).then(e=>{console.log("callbacks",e);let t=e.router_settings;"model_group_retry_policy"in t&&delete t.model_group_retry_policy,p(t)})},[e,a,o]);let S=e=>{b(e),j(!0)},T=async()=>{if(!y||!e)return;let t=Object.keys(y)[0];if(!t)return;h(!0);let r=g.fallbacks.map(e=>{let r={...e};return t in r&&Array.isArray(r[t])&&delete r[t],r}).filter(e=>Object.keys(e).length>0),a={...g,fallbacks:r};try{await (0,_.setCallbacksCall)(e,{router_settings:a}),p(a),C.default.success("Router settings updated successfully")}catch(e){C.default.fromBackend("Failed to update router settings: "+e)}finally{h(!1),j(!1),b(null)}};if(!e)return null;let L=async t=>{if(!e)return;let r={...g,fallbacks:t};try{await (0,_.setCallbacksCall)(e,{router_settings:r}),p(r)}catch(t){throw C.default.fromBackend("Failed to update router settings: "+t),e&&a&&o&&(0,_.getCallbacksCall)(e,o,a).then(e=>{let t=e.router_settings;"model_group_retry_policy"in t&&delete t.model_group_retry_policy,p(t)}),t}},O=Array.isArray(g.fallbacks)&&g.fallbacks.length>0,B=(0,R.isProxyAdminRole)(a??"");return(0,t.jsxs)(t.Fragment,{children:[B&&(0,t.jsx)(H,{models:u?.data?u.data.map(e=>e.model_name):[],accessToken:e||"",value:g.fallbacks||[],onChange:L}),O?(0,t.jsxs)(l.Table,{children:[(0,t.jsx)(s.TableHead,{children:(0,t.jsxs)(n.TableRow,{children:[(0,t.jsx)(i.TableHeaderCell,{children:"Model Name"}),(0,t.jsx)(i.TableHeaderCell,{children:"Fallbacks"}),(0,t.jsx)(i.TableHeaderCell,{children:"Actions"})]})}),(0,t.jsx)(c.TableBody,{children:g.fallbacks.map((a,l)=>Object.entries(a).map(([s,o])=>{let i;return(0,t.jsxs)(n.TableRow,{children:[(0,t.jsx)(d.TableCell,{className:"align-top",children:(i=k?.(s)??s,(0,t.jsxs)("span",{className:q,children:[(0,t.jsx)(P.ProviderLogo,{provider:i,className:"w-4 h-4 shrink-0"}),(0,t.jsx)("span",{children:s})]}))}),(0,t.jsx)(d.TableCell,{className:"align-top",children:function(e,a){let l=Array.isArray(e)?e:[];if(0===l.length)return null;let s=({modelName:e})=>{let r=a?.(e)??e;return(0,t.jsxs)("span",{className:q,children:[(0,t.jsx)(P.ProviderLogo,{provider:r,className:"w-4 h-4 shrink-0"}),(0,t.jsx)("span",{children:e})]})};return(0,t.jsxs)("span",{className:"grid grid-cols-[auto_1fr] items-start gap-x-2 w-full min-w-0",children:[(0,t.jsx)("span",{className:"inline-flex items-center justify-center w-8 h-8 shrink-0 self-start text-blue-600","aria-hidden":!0,children:(0,t.jsx)(M,{className:"w-5 h-5 stroke-[2.5]"})}),(0,t.jsx)("span",{className:"flex flex-wrap items-start gap-1 min-w-0",children:l.map((e,a)=>(0,t.jsxs)(r.default.Fragment,{children:[a>0&&(0,t.jsx)(m.Icon,{icon:M,size:"xs",className:"shrink-0 text-gray-400"}),(0,t.jsx)(s,{modelName:e})]},e))})]})}(Array.isArray(o)?o:[],k)}),(0,t.jsx)(d.TableCell,{className:"align-top",children:B&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(F.Tooltip,{title:"Test fallback",children:(0,t.jsx)(m.Icon,{icon:E.PlayIcon,size:"sm",onClick:()=>U(Object.keys(a)[0],e||""),className:"cursor-pointer hover:text-blue-600"})}),(0,t.jsx)(F.Tooltip,{title:"Delete fallback",children:(0,t.jsx)("span",{"data-testid":"delete-fallback-button",role:"button",tabIndex:0,onClick:()=>S(a),onKeyDown:e=>"Enter"===e.key&&S(a),className:"cursor-pointer inline-flex",children:(0,t.jsx)(m.Icon,{icon:v.TrashIcon,size:"sm",className:"hover:text-red-600"})})})]})})]},l.toString()+s)}))})]}):(0,t.jsx)("div",{className:"rounded-lg border border-gray-200 bg-gray-50 px-4 py-6 text-center",children:(0,t.jsx)(A.Typography.Text,{type:"secondary",children:"No fallbacks configured. Add fallbacks to automatically try another model when the primary fails."})}),(0,t.jsx)(I.default,{isOpen:x,title:"Delete Fallback?",message:"Are you sure you want to delete this fallback? This action cannot be undone.",resourceInformationTitle:"Fallback Information",resourceInformation:[{label:"Model Name",value:y?Object.keys(y)[0]:"",code:!0}],onCancel:()=>{j(!1),b(null)},onOk:T,confirmLoading:f})]})};var V=e.i(175712),Q=e.i(525720),J=e.i(311451),Y=e.i(770914),W=e.i(646563),X=e.i(91979),Z=e.i(928685),ee=e.i(135214),et=e.i(954616),er=e.i(266027),ea=e.i(912598),el=e.i(243652);let es=(0,el.createQueryKeys)("routingGroups"),en=async e=>{let t=await (0,_.getRouterSettingsCall)(e),r=t?.current_values??{},a=(Array.isArray(t?.fields)?t.fields:[]).find(e=>e?.field_name==="routing_strategy");return{routingGroups:Array.isArray(r.routing_groups)?r.routing_groups:[],routingStrategy:r.routing_strategy??null,availableStrategies:Array.isArray(a?.options)?a.options:[]}},eo=(0,el.createQueryKeys)("routerFields"),ei=async e=>{try{let t=_.proxyBaseUrl?`${_.proxyBaseUrl}/router/fields`:"/router/fields";console.log("Fetching router fields from:",t);let r=await fetch(t,{method:"GET",headers:{[(0,_.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=e?.error&&(e.error.message||e.error)||e?.message||e?.detail||e?.error||JSON.stringify(e);throw Error(t)}let a=await r.json();return console.log("Fetched router fields:",a),a}catch(e){throw console.error("Failed to fetch router fields:",e),e}};var ed=e.i(625901),ec=e.i(592392),eu=e.i(291542),eg=e.i(653496),em=e.i(262218),ep=e.i(539677),ef=e.i(955135),eh=e.i(751904),ey=e.i(245094);let{Text:eb,Paragraph:ex}=A.Typography,e_=e=>{switch(e){case"simple-shuffle":return"Simple Shuffle";case"least-busy":return"Least Busy";case"usage-based-routing":return"Usage Based";case"latency-based-routing":return"Latency Based";default:return e}},ej=e=>e.models[0]??"",ev={backgroundColor:"#111827",color:"#f3f4f6",borderRadius:6,padding:16,fontSize:12,whiteSpace:"pre",overflowX:"auto"},ew=({group:e,baseUrl:a})=>{let l={curl:`curl -X POST '${a}/v1/chat/completions' \\ - -H 'Content-Type: application/json' \\ - -H 'Authorization: Bearer $LITELLM_API_KEY' \\ - -d '{ - "model": "${ej(e)}", - "messages": [{"role": "user", "content": "Hello!"}] - }'`,python:`from openai import OpenAI - -client = OpenAI( - api_key="$LITELLM_API_KEY", - base_url="${a}", -) - -response = client.chat.completions.create( - model="${ej(e)}", - messages=[{"role": "user", "content": "Hello!"}], -) - -print(response)`,javascript:`import OpenAI from "openai"; - -const client = new OpenAI({ - apiKey: process.env.LITELLM_API_KEY, - baseURL: "${a}", -}); - -const response = await client.chat.completions.create({ - model: "${ej(e)}", - messages: [{ role: "user", content: "Hello!" }], -}); - -console.log(response);`},[s,n]=(0,r.useState)("curl"),o=[{key:"curl",label:"cURL"},{key:"python",label:"Python (OpenAI SDK)"},{key:"javascript",label:"JavaScript (OpenAI SDK)"}].map(({key:e,label:r})=>({key:e,label:r,children:(0,t.jsx)(ex,{code:!0,className:"!mb-0",style:ev,children:l[e]})}));return(0,t.jsx)(eg.Tabs,{size:"small",activeKey:s,onChange:e=>n(e),items:o,tabBarExtraContent:(0,t.jsx)(ex,{copyable:{text:l[s],tooltips:["Copy","Copied"]},className:"!mb-0"})})},ek=({groups:e,loading:a,onEdit:l,onDelete:s,proxyBaseUrl:n})=>{let[o,i]=(0,r.useState)([]),d=n&&n.trim()?n:window.location?.origin?window.location.origin:"",c=[{title:"GROUP NAME",dataIndex:"group_name",key:"group_name",render:e=>(0,t.jsx)(eb,{strong:!0,className:"text-blue-600",children:e})},{title:"MODELS",dataIndex:"models",key:"models",render:e=>(0,t.jsx)(Q.Flex,{wrap:"wrap",gap:4,children:e.map(e=>(0,t.jsx)(em.Tag,{children:e},e))})},{title:"STRATEGY",dataIndex:"routing_strategy",key:"routing_strategy",render:e=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,t.jsx)(ep.BranchesOutlined,{className:"text-gray-400"}),(0,t.jsx)(eb,{children:e_(e)})]})},{title:"ACTIONS",key:"actions",width:120,align:"right",render:(e,r)=>(0,t.jsxs)(Q.Flex,{justify:"flex-end",align:"center",gap:8,children:[(0,t.jsx)(F.Tooltip,{title:"Edit",children:(0,t.jsx)(k.Button,{type:"text",icon:(0,t.jsx)(eh.EditOutlined,{}),onClick:e=>{e.stopPropagation(),l(r)}})}),(0,t.jsx)(F.Tooltip,{title:"Delete",children:(0,t.jsx)(k.Button,{type:"text",danger:!0,icon:(0,t.jsx)(ef.DeleteOutlined,{}),onClick:e=>{e.stopPropagation(),s(r)}})})]})}];return(0,t.jsx)(eu.Table,{rowKey:"group_name",columns:c,dataSource:e,loading:a,pagination:!1,expandable:{expandedRowKeys:o,onExpandedRowsChange:e=>i([...e]),expandedRowRender:e=>(0,t.jsxs)("div",{className:"bg-gray-50 border border-gray-200 rounded-md p-4 my-2",children:[(0,t.jsxs)(Q.Flex,{align:"center",gap:8,className:"mb-2",children:[(0,t.jsx)(ey.CodeOutlined,{className:"text-blue-500"}),(0,t.jsx)(eb,{strong:!0,children:"How routing works for this group"})]}),(0,t.jsxs)(ex,{className:"text-sm text-gray-600 mb-3",children:["Callers request any model in the group by name — LiteLLM picks a deployment behind the scenes using the"," ",(0,t.jsx)(eb,{strong:!0,children:e_(e.routing_strategy)})," strategy."]}),(0,t.jsx)(ew,{group:e,baseUrl:d})]})}})};var eC=e.i(808613),eS=e.i(199133);let{Text:eT,Paragraph:eN}=A.Typography,eM=new Set(["latency-based-routing","usage-based-routing"]),eE=/^[A-Za-z0-9._-]+$/,eF=({open:e,mode:a,initialValue:l,availableStrategies:s,strategyDescriptions:n,modelOptions:o,existingGroupNames:i,onClose:d,onSubmit:c,saving:u})=>{let[g]=eC.Form.useForm(),m=eC.Form.useWatch("routing_strategy",g),p={group_name:l?.group_name??"",models:l?.models??[],routing_strategy:l?.routing_strategy??s[0]??"simple-shuffle",routing_strategy_args:l?.routing_strategy_args?JSON.stringify(l.routing_strategy_args,null,2):""},f=(0,r.useMemo)(()=>new Set(i.filter(e=>e!==l?.group_name).map(e=>e.toLowerCase())),[i,l]),h=async()=>{let e=await g.validateFields(),t=eM.has(String(e.routing_strategy)),r=null;if(t&&e.routing_strategy_args&&e.routing_strategy_args.trim())try{r=JSON.parse(e.routing_strategy_args)}catch{g.setFields([{name:"routing_strategy_args",errors:["Must be valid JSON"]}]);return}await c({group_name:e.group_name.trim(),models:e.models,routing_strategy:e.routing_strategy,routing_strategy_args:r})};return(0,t.jsx)(D.Modal,{title:"create"===a?"Create Routing Group":`Edit ${l?.group_name??""}`,open:e,onCancel:d,onOk:h,okText:"create"===a?"Create Group":"Save Changes",cancelText:"Cancel",confirmLoading:u,destroyOnClose:!0,width:560,children:(0,t.jsxs)(eC.Form,{form:g,layout:"vertical",preserve:!1,initialValues:p,children:[(0,t.jsx)(eC.Form.Item,{label:"Group Name",name:"group_name",rules:[{required:!0,message:"Group name is required"},{max:64,message:"Must be 64 characters or fewer"},{pattern:eE,message:"Only letters, numbers, dot, underscore, and dash are allowed"},{validator:(e,t)=>t&&f.has(t.trim().toLowerCase())?Promise.reject(Error("A group with this name already exists")):Promise.resolve()}],extra:"Use this name as the model in API calls — LiteLLM routes the request to one of the group's models.",children:(0,t.jsx)(J.Input,{placeholder:"fast-chat",disabled:"edit"===a})}),(0,t.jsx)(eC.Form.Item,{label:"Models",name:"models",rules:[{required:!0,message:"Select at least one model"}],extra:"Models from your model list that this group routes between.",children:(0,t.jsx)(eS.Select,{mode:"multiple",allowClear:!0,placeholder:"Select models",options:o.map(e=>({label:e,value:e})),optionFilterProp:"label"})}),(0,t.jsx)(eC.Form.Item,{label:"Routing Strategy",name:"routing_strategy",rules:[{required:!0,message:"Strategy is required"}],children:(0,t.jsx)(eS.Select,{options:s.map(e=>({label:e,value:e})),placeholder:"Select strategy"})}),m&&n[m]&&(0,t.jsx)(eN,{className:"text-xs text-gray-500 -mt-2 mb-4",children:n[m]}),eM.has(String(m))&&(0,t.jsx)(eC.Form.Item,{label:"Strategy Arguments (JSON)",name:"routing_strategy_args",extra:"latency-based-routing"===m?'Example: { "ttl": 3600, "lowest_latency_buffer": 0 }':'Example: { "ttl": 60 }',children:(0,t.jsx)(J.Input.TextArea,{rows:4,placeholder:'{ "ttl": 3600 }',className:"font-mono text-xs"})}),(0,t.jsx)(Y.Space,{direction:"vertical",className:"w-full mt-2",children:(0,t.jsx)(eT,{type:"secondary",className:"text-xs",children:"Models not claimed by an explicit group fall through to the proxy's top-level routing strategy."})})]},"edit"===a?`edit-${l?.group_name??""}`:"create")})},{Text:eA}=A.Typography,eL=()=>{let{data:e,isLoading:a,refetch:l,isFetching:s}=(()=>{let{accessToken:e,userId:t,userRole:r}=(0,ee.default)();return(0,er.useQuery)({queryKey:es.lists(),queryFn:()=>en(e),enabled:!!(e&&t&&r)})})(),{data:n}=(()=>{let{accessToken:e,userId:t,userRole:r}=(0,ee.default)();return(0,er.useQuery)({queryKey:eo.detail("fields"),queryFn:async()=>await ei(e),enabled:!!(e&&t&&r)})})(),{data:o}=(0,ed.useModelHub)(),i=(0,ec.default)(),d=(()=>{let{accessToken:e}=(0,ee.default)(),t=(0,ea.useQueryClient)();return(0,et.useMutation)({mutationFn:t=>(0,_.setCallbacksCall)(e,{router_settings:{routing_groups:t}}),onSuccess:()=>{t.invalidateQueries({queryKey:es.lists()})}})})(),[c,u]=(0,r.useState)(""),[g,m]=(0,r.useState)(!1),[p,f]=(0,r.useState)("create"),[h,y]=(0,r.useState)(null),[b,x]=(0,r.useState)(null),j=e?.routingGroups??[],v=(0,r.useMemo)(()=>{let e=c.trim().toLowerCase();return e?j.filter(t=>t.group_name.toLowerCase().includes(e)||t.routing_strategy.toLowerCase().includes(e)||t.models.some(t=>t.toLowerCase().includes(e))):j},[j,c]),w=(0,r.useMemo)(()=>e?.availableStrategies?.length?e.availableStrategies:n?.fields?.find(e=>"routing_strategy"===e.field_name)?.options??[],[e?.availableStrategies,n]),S=n?.routing_strategy_descriptions??{},T=(0,r.useMemo)(()=>Array.from(new Set((o?.data??[]).map(e=>e.model_group).filter(e=>!!e))),[o]),N=async e=>{let t="create"===p?[...j,e]:j.map(t=>t.group_name===h?.group_name?e:t);try{await d.mutateAsync(t),C.default.success("create"===p?`Created routing group "${e.group_name}"`:`Updated routing group "${e.group_name}"`),m(!1)}catch(e){C.default.error(e instanceof Error?e.message:"Failed to save routing group")}},M=async()=>{if(!b)return;let e=j.filter(e=>e.group_name!==b.group_name);try{await d.mutateAsync(e),C.default.success(`Deleted routing group "${b.group_name}"`),x(null)}catch(e){C.default.error(e instanceof Error?e.message:"Failed to delete routing group")}};return(0,t.jsxs)(Y.Space,{direction:"vertical",size:16,className:"w-full",children:[(0,t.jsxs)(V.Card,{bodyStyle:{padding:16},children:[(0,t.jsxs)(Q.Flex,{justify:"space-between",align:"center",gap:12,className:"mb-4",children:[(0,t.jsx)(J.Input,{allowClear:!0,prefix:(0,t.jsx)(Z.SearchOutlined,{className:"text-gray-400"}),placeholder:"Search groups...",value:c,onChange:e=>u(e.target.value),className:"max-w-sm"}),(0,t.jsxs)(Q.Flex,{align:"center",gap:12,children:[(0,t.jsx)(k.Button,{icon:(0,t.jsx)(X.ReloadOutlined,{}),onClick:()=>l(),loading:s&&!a,children:"Refresh"}),(0,t.jsx)(k.Button,{type:"primary",icon:(0,t.jsx)(W.PlusOutlined,{}),onClick:()=>{f("create"),y(null),m(!0)},children:"Create Group"}),(0,t.jsxs)(eA,{type:"secondary",className:"text-sm whitespace-nowrap",children:["Showing ",v.length," ",1===v.length?"result":"results"]})]})]}),(0,t.jsx)(ek,{groups:v,loading:a,onEdit:e=>{f("edit"),y(e),m(!0)},onDelete:e=>x(e),proxyBaseUrl:i.LITELLM_UI_API_DOC_BASE_URL?.trim()||i.PROXY_BASE_URL||""})]}),(0,t.jsx)(eF,{open:g,mode:p,initialValue:h,availableStrategies:w,strategyDescriptions:S,modelOptions:T,existingGroupNames:j.map(e=>e.group_name),onClose:()=>m(!1),onSubmit:N,saving:d.isPending}),(0,t.jsx)(D.Modal,{open:!!b,title:"Delete routing group?",okText:"Delete",okButtonProps:{danger:!0,loading:d.isPending},cancelText:"Cancel",onOk:M,onCancel:()=>x(null),children:(0,t.jsxs)(eA,{children:["Models in ",(0,t.jsx)(eA,{strong:!0,children:b?.group_name}),"will fall back to the proxy's top-level routing strategy. This cannot be undone."]})})]})};e.s(["default",0,({accessToken:e,userRole:k,userID:C,modelData:S})=>{let[N,M]=(0,r.useState)([]);(0,r.useEffect)(()=>{e&&(0,_.getGeneralSettingsCall)(e).then(e=>{M(e)})},[e]);let E=(e,t)=>{M(N.map(r=>r.field_name===e?{...r,field_value:t}:r))};return e?(0,t.jsx)("div",{className:"w-full",children:(0,t.jsxs)(y.TabGroup,{className:"h-[75vh] w-full",children:[(0,t.jsxs)(b.TabList,{variant:"line",defaultValue:"1",className:"px-8 pt-4",children:[(0,t.jsx)(x.Tab,{value:"1",children:"Loadbalancing"}),(0,t.jsx)(x.Tab,{value:"2",children:"Routing Groups"}),(0,t.jsx)(x.Tab,{value:"3",children:"Fallbacks"}),(0,t.jsx)(x.Tab,{value:"4",children:"General"})]}),(0,t.jsxs)(h.TabPanels,{className:"px-8 py-6",children:[(0,t.jsx)(f.TabPanel,{children:(0,t.jsx)(T,{accessToken:e,userRole:k,userID:C,modelData:S})}),(0,t.jsx)(f.TabPanel,{children:(0,t.jsx)(eL,{})}),(0,t.jsx)(f.TabPanel,{children:(0,t.jsx)(z,{accessToken:e,userRole:k,userID:C,modelData:S})}),(0,t.jsx)(f.TabPanel,{children:(0,t.jsx)(a.Card,{children:(0,t.jsxs)(l.Table,{children:[(0,t.jsx)(s.TableHead,{children:(0,t.jsxs)(n.TableRow,{children:[(0,t.jsx)(i.TableHeaderCell,{children:"Setting"}),(0,t.jsx)(i.TableHeaderCell,{children:"Value"}),(0,t.jsx)(i.TableHeaderCell,{children:"Status"}),(0,t.jsx)(i.TableHeaderCell,{children:"Action"})]})}),(0,t.jsx)(c.TableBody,{children:N.filter(e=>"TypedDictionary"!==e.field_type).map((r,a)=>(0,t.jsxs)(n.TableRow,{children:[(0,t.jsxs)(d.TableCell,{children:[(0,t.jsx)(u.Text,{children:r.field_name}),(0,t.jsx)("p",{style:{fontSize:"0.65rem",color:"#808080",fontStyle:"italic"},className:"mt-1",children:r.field_description})]}),(0,t.jsx)(d.TableCell,{children:"Integer"==r.field_type?(0,t.jsx)(j.InputNumber,{step:1,value:r.field_value,onChange:e=>E(r.field_name,e)}):"Boolean"==r.field_type?(0,t.jsx)(p.Switch,{checked:!0===r.field_value||"true"===r.field_value,onChange:e=>E(r.field_name,e)}):null}),(0,t.jsx)(d.TableCell,{children:!0==r.stored_in_db?(0,t.jsx)(o.Badge,{icon:w.CheckCircleIcon,className:"text-white",children:"In DB"}):!1==r.stored_in_db?(0,t.jsx)(o.Badge,{className:"text-gray bg-white outline",children:"In Config"}):(0,t.jsx)(o.Badge,{className:"text-gray bg-white outline",children:"Not Set"})}),(0,t.jsxs)(d.TableCell,{children:[(0,t.jsx)(g.Button,{onClick:()=>((t,r)=>{if(!e)return;let a=N[r].field_value;if(null!=a&&void 0!=a)try{(0,_.updateConfigFieldSetting)(e,t,a);let r=N.map(e=>e.field_name===t?{...e,stored_in_db:!0}:e);M(r)}catch(e){}})(r.field_name,a),children:"Update"}),(0,t.jsx)(m.Icon,{icon:v.TrashIcon,color:"red",onClick:()=>(t=>{if(e)try{(0,_.deleteConfigFieldSetting)(e,t);let r=N.map(e=>e.field_name===t?{...e,stored_in_db:null,field_value:null}:e);M(r)}catch(e){}})(r.field_name),children:"Reset"})]})]},a))})]})})})]})]})}):null}],226898)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/06es90~yrkd00.js b/litellm/proxy/_experimental/out/_next/static/chunks/0_yxv247snpzp.js similarity index 78% rename from litellm/proxy/_experimental/out/_next/static/chunks/06es90~yrkd00.js rename to litellm/proxy/_experimental/out/_next/static/chunks/0_yxv247snpzp.js index b10b990980a..899aaf58415 100644 --- a/litellm/proxy/_experimental/out/_next/static/chunks/06es90~yrkd00.js +++ b/litellm/proxy/_experimental/out/_next/static/chunks/0_yxv247snpzp.js @@ -1 +1 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,728889,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(829087),s=e.i(480731),l=e.i(444755),o=e.i(673706),n=e.i(95779);let i={xs:{paddingX:"px-1.5",paddingY:"py-1.5"},sm:{paddingX:"px-1.5",paddingY:"py-1.5"},md:{paddingX:"px-2",paddingY:"py-2"},lg:{paddingX:"px-2",paddingY:"py-2"},xl:{paddingX:"px-2.5",paddingY:"py-2.5"}},d={xs:{height:"h-3",width:"w-3"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-7",width:"w-7"},xl:{height:"h-9",width:"w-9"}},c={simple:{rounded:"",border:"",ring:"",shadow:""},light:{rounded:"rounded-tremor-default",border:"",ring:"",shadow:""},shadow:{rounded:"rounded-tremor-default",border:"border",ring:"",shadow:"shadow-tremor-card dark:shadow-dark-tremor-card"},solid:{rounded:"rounded-tremor-default",border:"border-2",ring:"ring-1",shadow:""},outlined:{rounded:"rounded-tremor-default",border:"border",ring:"ring-2",shadow:""}},m=(0,o.makeClassName)("Icon"),u=r.default.forwardRef((e,u)=>{let{icon:g,variant:h="simple",tooltip:p,size:f=s.Sizes.SM,color:x,className:b}=e,C=(0,t.__rest)(e,["icon","variant","tooltip","size","color","className"]),v=((e,t)=>{switch(e){case"simple":return{textColor:t?(0,o.getColorClassNames)(t,n.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:"",borderColor:"",ringColor:""};case"light":return{textColor:t?(0,o.getColorClassNames)(t,n.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,l.tremorTwMerge)((0,o.getColorClassNames)(t,n.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand-muted dark:bg-dark-tremor-brand-muted",borderColor:"",ringColor:""};case"shadow":return{textColor:t?(0,o.getColorClassNames)(t,n.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,l.tremorTwMerge)((0,o.getColorClassNames)(t,n.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:"border-tremor-border dark:border-dark-tremor-border",ringColor:""};case"solid":return{textColor:t?(0,o.getColorClassNames)(t,n.colorPalette.text).textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,l.tremorTwMerge)((0,o.getColorClassNames)(t,n.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand dark:bg-dark-tremor-brand",borderColor:"border-tremor-brand-inverted dark:border-dark-tremor-brand-inverted",ringColor:"ring-tremor-ring dark:ring-dark-tremor-ring"};case"outlined":return{textColor:t?(0,o.getColorClassNames)(t,n.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,l.tremorTwMerge)((0,o.getColorClassNames)(t,n.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:t?(0,o.getColorClassNames)(t,n.colorPalette.ring).borderColor:"border-tremor-brand-subtle dark:border-dark-tremor-brand-subtle",ringColor:t?(0,l.tremorTwMerge)((0,o.getColorClassNames)(t,n.colorPalette.ring).ringColor,"ring-opacity-40"):"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"}}})(h,x),{tooltipProps:y,getReferenceProps:N}=(0,a.useTooltip)();return r.default.createElement("span",Object.assign({ref:(0,o.mergeRefs)([u,y.refs.setReference]),className:(0,l.tremorTwMerge)(m("root"),"inline-flex shrink-0 items-center justify-center",v.bgColor,v.textColor,v.borderColor,v.ringColor,c[h].rounded,c[h].border,c[h].shadow,c[h].ring,i[f].paddingX,i[f].paddingY,b)},N,C),r.default.createElement(a.default,Object.assign({text:p},y)),r.default.createElement(g,{className:(0,l.tremorTwMerge)(m("icon"),"shrink-0",d[f].height,d[f].width)}))});u.displayName="Icon",e.s(["default",0,u],728889)},752978,e=>{"use strict";var t=e.i(728889);e.s(["Icon",()=>t.default])},207670,e=>{"use strict";function t(){for(var e,t,r=0,a="",s=arguments.length;r{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3"}))});e.s(["ClipboardCopyIcon",0,r],551332)},757440,e=>{"use strict";var t=e.i(290571),r=e.i(271645);e.s(["default",0,e=>{var a=(0,t.__rest)(e,[]);return r.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},a),r.default.createElement("path",{d:"M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z"}))}])},446428,854056,e=>{"use strict";let t;var r=e.i(290571),a=e.i(271645);e.s(["default",0,e=>{var t=(0,r.__rest)(e,[]);return a.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},t),a.default.createElement("path",{d:"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 10.5858L9.17157 7.75736L7.75736 9.17157L10.5858 12L7.75736 14.8284L9.17157 16.2426L12 13.4142L14.8284 16.2426L16.2426 14.8284L13.4142 12L16.2426 9.17157L14.8284 7.75736L12 10.5858Z"}))}],446428);var s=e.i(746725),l=e.i(914189),o=e.i(553521),n=e.i(835696),i=e.i(941444),d=e.i(178677),c=e.i(294316),m=e.i(83733),u=e.i(233137),g=e.i(732607),h=e.i(397701),p=e.i(700020);function f(e){var t;return!!(e.enter||e.enterFrom||e.enterTo||e.leave||e.leaveFrom||e.leaveTo)||(null!=(t=e.as)?t:N)!==a.Fragment||1===a.default.Children.count(e.children)}let x=(0,a.createContext)(null);x.displayName="TransitionContext";var b=((t=b||{}).Visible="visible",t.Hidden="hidden",t);let C=(0,a.createContext)(null);function v(e){return"children"in e?v(e.children):e.current.filter(({el:e})=>null!==e.current).filter(({state:e})=>"visible"===e).length>0}function y(e,t){let r=(0,i.useLatestValue)(e),n=(0,a.useRef)([]),d=(0,o.useIsMounted)(),c=(0,s.useDisposables)(),m=(0,l.useEvent)((e,t=p.RenderStrategy.Hidden)=>{let a=n.current.findIndex(({el:t})=>t===e);-1!==a&&((0,h.match)(t,{[p.RenderStrategy.Unmount](){n.current.splice(a,1)},[p.RenderStrategy.Hidden](){n.current[a].state="hidden"}}),c.microTask(()=>{var e;!v(n)&&d.current&&(null==(e=r.current)||e.call(r))}))}),u=(0,l.useEvent)(e=>{let t=n.current.find(({el:t})=>t===e);return t?"visible"!==t.state&&(t.state="visible"):n.current.push({el:e,state:"visible"}),()=>m(e,p.RenderStrategy.Unmount)}),g=(0,a.useRef)([]),f=(0,a.useRef)(Promise.resolve()),x=(0,a.useRef)({enter:[],leave:[]}),b=(0,l.useEvent)((e,r,a)=>{g.current.splice(0),t&&(t.chains.current[r]=t.chains.current[r].filter(([t])=>t!==e)),null==t||t.chains.current[r].push([e,new Promise(e=>{g.current.push(e)})]),null==t||t.chains.current[r].push([e,new Promise(e=>{Promise.all(x.current[r].map(([e,t])=>t)).then(()=>e())})]),"enter"===r?f.current=f.current.then(()=>null==t?void 0:t.wait.current).then(()=>a(r)):a(r)}),C=(0,l.useEvent)((e,t,r)=>{Promise.all(x.current[t].splice(0).map(([e,t])=>t)).then(()=>{var e;null==(e=g.current.shift())||e()}).then(()=>r(t))});return(0,a.useMemo)(()=>({children:n,register:u,unregister:m,onStart:b,onStop:C,wait:f,chains:x}),[u,m,n,b,C,x,f])}C.displayName="NestingContext";let N=a.Fragment,w=p.RenderFeatures.RenderStrategy,_=(0,p.forwardRefWithAs)(function(e,t){let{show:r,appear:s=!1,unmount:o=!0,...i}=e,m=(0,a.useRef)(null),g=f(e),h=(0,c.useSyncRefs)(...g?[m,t]:null===t?[]:[t]);(0,d.useServerHandoffComplete)();let b=(0,u.useOpenClosed)();if(void 0===r&&null!==b&&(r=(b&u.State.Open)===u.State.Open),void 0===r)throw Error("A is used but it is missing a `show={true | false}` prop.");let[N,_]=(0,a.useState)(r?"visible":"hidden"),j=y(()=>{r||_("hidden")}),[S,T]=(0,a.useState)(!0),E=(0,a.useRef)([r]);(0,n.useIsoMorphicEffect)(()=>{!1!==S&&E.current[E.current.length-1]!==r&&(E.current.push(r),T(!1))},[E,r]);let M=(0,a.useMemo)(()=>({show:r,appear:s,initial:S}),[r,s,S]);(0,n.useIsoMorphicEffect)(()=>{r?_("visible"):v(j)||null===m.current||_("hidden")},[r,j]);let R={unmount:o},P=(0,l.useEvent)(()=>{var t;S&&T(!1),null==(t=e.beforeEnter)||t.call(e)}),L=(0,l.useEvent)(()=>{var t;S&&T(!1),null==(t=e.beforeLeave)||t.call(e)}),A=(0,p.useRender)();return a.default.createElement(C.Provider,{value:j},a.default.createElement(x.Provider,{value:M},A({ourProps:{...R,as:a.Fragment,children:a.default.createElement(k,{ref:h,...R,...i,beforeEnter:P,beforeLeave:L})},theirProps:{},defaultTag:a.Fragment,features:w,visible:"visible"===N,name:"Transition"})))}),k=(0,p.forwardRefWithAs)(function(e,t){var r,s;let{transition:o=!0,beforeEnter:i,afterEnter:b,beforeLeave:_,afterLeave:k,enter:j,enterFrom:S,enterTo:T,entered:E,leave:M,leaveFrom:R,leaveTo:P,...L}=e,[A,I]=(0,a.useState)(null),O=(0,a.useRef)(null),B=f(e),D=(0,c.useSyncRefs)(...B?[O,t,I]:null===t?[]:[t]),F=null==(r=L.unmount)||r?p.RenderStrategy.Unmount:p.RenderStrategy.Hidden,{show:H,appear:z,initial:V}=function(){let e=(0,a.useContext)(x);if(null===e)throw Error("A is used but it is missing a parent or .");return e}(),[Y,X]=(0,a.useState)(H?"visible":"hidden"),G=function(){let e=(0,a.useContext)(C);if(null===e)throw Error("A is used but it is missing a parent or .");return e}(),{register:J,unregister:q}=G;(0,n.useIsoMorphicEffect)(()=>J(O),[J,O]),(0,n.useIsoMorphicEffect)(()=>{if(F===p.RenderStrategy.Hidden&&O.current)return H&&"visible"!==Y?void X("visible"):(0,h.match)(Y,{hidden:()=>q(O),visible:()=>J(O)})},[Y,O,J,q,H,F]);let U=(0,d.useServerHandoffComplete)();(0,n.useIsoMorphicEffect)(()=>{if(B&&U&&"visible"===Y&&null===O.current)throw Error("Did you forget to passthrough the `ref` to the actual DOM node?")},[O,Y,U,B]);let W=V&&!z,$=z&&H&&V,K=(0,a.useRef)(!1),Z=y(()=>{K.current||(X("hidden"),q(O))},G),Q=(0,l.useEvent)(e=>{K.current=!0,Z.onStart(O,e?"enter":"leave",e=>{"enter"===e?null==i||i():"leave"===e&&(null==_||_())})}),ee=(0,l.useEvent)(e=>{let t=e?"enter":"leave";K.current=!1,Z.onStop(O,t,e=>{"enter"===e?null==b||b():"leave"===e&&(null==k||k())}),"leave"!==t||v(Z)||(X("hidden"),q(O))});(0,a.useEffect)(()=>{B&&o||(Q(H),ee(H))},[H,B,o]);let et=!(!o||!B||!U||W),[,er]=(0,m.useTransition)(et,A,H,{start:Q,end:ee}),ea=(0,p.compact)({ref:D,className:(null==(s=(0,g.classNames)(L.className,$&&j,$&&S,er.enter&&j,er.enter&&er.closed&&S,er.enter&&!er.closed&&T,er.leave&&M,er.leave&&!er.closed&&R,er.leave&&er.closed&&P,!er.transition&&H&&E))?void 0:s.trim())||void 0,...(0,m.transitionDataAttributes)(er)}),es=0;"visible"===Y&&(es|=u.State.Open),"hidden"===Y&&(es|=u.State.Closed),er.enter&&(es|=u.State.Opening),er.leave&&(es|=u.State.Closing);let el=(0,p.useRender)();return a.default.createElement(C.Provider,{value:Z},a.default.createElement(u.OpenClosedProvider,{value:es},el({ourProps:ea,theirProps:L,defaultTag:N,features:w,visible:"visible"===Y,name:"Transition.Child"})))}),j=(0,p.forwardRefWithAs)(function(e,t){let r=null!==(0,a.useContext)(x),s=null!==(0,u.useOpenClosed)();return a.default.createElement(a.default.Fragment,null,!r&&s?a.default.createElement(_,{ref:t,...e}):a.default.createElement(k,{ref:t,...e}))}),S=Object.assign(_,{Child:j,Root:_});e.s(["Transition",0,S],854056)},206929,e=>{"use strict";var t=e.i(290571),r=e.i(757440),a=e.i(271645),s=e.i(446428),l=e.i(444755),o=e.i(673706),n=e.i(103471),i=e.i(495470),d=e.i(854056),c=e.i(888288);let m=(0,o.makeClassName)("Select"),u=a.default.forwardRef((e,o)=>{let{defaultValue:u="",value:g,onValueChange:h,placeholder:p="Select...",disabled:f=!1,icon:x,enableClear:b=!1,required:C,children:v,name:y,error:N=!1,errorMessage:w,className:_,id:k}=e,j=(0,t.__rest)(e,["defaultValue","value","onValueChange","placeholder","disabled","icon","enableClear","required","children","name","error","errorMessage","className","id"]),S=(0,a.useRef)(null),T=a.Children.toArray(v),[E,M]=(0,c.default)(u,g),R=(0,a.useMemo)(()=>{let e=a.default.Children.toArray(v).filter(a.isValidElement);return(0,n.constructValueToNameMapping)(e)},[v]);return a.default.createElement("div",{className:(0,l.tremorTwMerge)("w-full min-w-[10rem] text-tremor-default",_)},a.default.createElement("div",{className:"relative"},a.default.createElement("select",{title:"select-hidden",required:C,className:(0,l.tremorTwMerge)("h-full w-full absolute left-0 top-0 -z-10 opacity-0"),value:E,onChange:e=>{e.preventDefault()},name:y,disabled:f,id:k,onFocus:()=>{let e=S.current;e&&e.focus()}},a.default.createElement("option",{className:"hidden",value:"",disabled:!0,hidden:!0},p),T.map(e=>{let t=e.props.value,r=e.props.children;return a.default.createElement("option",{className:"hidden",key:t,value:t},r)})),a.default.createElement(i.Listbox,Object.assign({as:"div",ref:o,defaultValue:E,value:E,onChange:e=>{null==h||h(e),M(e)},disabled:f,id:k},j),({value:e})=>{var t;return a.default.createElement(a.default.Fragment,null,a.default.createElement(i.ListboxButton,{ref:S,className:(0,l.tremorTwMerge)("w-full outline-none text-left whitespace-nowrap truncate rounded-tremor-default focus:ring-2 transition duration-100 border pr-8 py-2","border-tremor-border shadow-tremor-input focus:border-tremor-brand-subtle focus:ring-tremor-brand-muted","dark:border-dark-tremor-border dark:shadow-dark-tremor-input dark:focus:border-dark-tremor-brand-subtle dark:focus:ring-dark-tremor-brand-muted",x?"pl-10":"pl-3",(0,n.getSelectButtonColors)((0,n.hasValue)(e),f,N))},x&&a.default.createElement("span",{className:(0,l.tremorTwMerge)("absolute inset-y-0 left-0 flex items-center ml-px pl-2.5")},a.default.createElement(x,{className:(0,l.tremorTwMerge)(m("Icon"),"flex-none h-5 w-5","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")})),a.default.createElement("span",{className:"w-[90%] block truncate"},e&&null!=(t=R.get(e))?t:p),a.default.createElement("span",{className:(0,l.tremorTwMerge)("absolute inset-y-0 right-0 flex items-center mr-3")},a.default.createElement(r.default,{className:(0,l.tremorTwMerge)(m("arrowDownIcon"),"flex-none h-5 w-5","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")}))),b&&E?a.default.createElement("button",{type:"button",className:(0,l.tremorTwMerge)("absolute inset-y-0 right-0 flex items-center mr-8"),onClick:e=>{e.preventDefault(),M(""),null==h||h("")}},a.default.createElement(s.default,{className:(0,l.tremorTwMerge)(m("clearIcon"),"flex-none h-4 w-4","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")})):null,a.default.createElement(d.Transition,{enter:"transition ease duration-100 transform",enterFrom:"opacity-0 -translate-y-4",enterTo:"opacity-100 translate-y-0",leave:"transition ease duration-100 transform",leaveFrom:"opacity-100 translate-y-0",leaveTo:"opacity-0 -translate-y-4"},a.default.createElement(i.ListboxOptions,{anchor:"bottom start",className:(0,l.tremorTwMerge)("z-10 w-[var(--button-width)] divide-y overflow-y-auto outline-none rounded-tremor-default max-h-[228px] border [--anchor-gap:4px]","bg-tremor-background border-tremor-border divide-tremor-border shadow-tremor-dropdown","dark:bg-dark-tremor-background dark:border-dark-tremor-border dark:divide-dark-tremor-border dark:shadow-dark-tremor-dropdown")},v)))})),N&&w?a.default.createElement("p",{className:(0,l.tremorTwMerge)("errorMessage","text-sm text-rose-500 mt-1")},w):null)});u.displayName="Select",e.s(["Select",0,u],206929)},888288,e=>{"use strict";var t=e.i(271645);e.s(["default",0,(e,r)=>{let a=void 0!==r,[s,l]=(0,t.useState)(e);return[a?r:s,e=>{a||l(e)}]}])},689020,e=>{"use strict";var t=e.i(764205);let r=async e=>{try{let r=await (0,t.modelHubCall)(e);if(console.log("model_info:",r),r?.data.length>0){let e=r.data.map(e=>({model_group:e.model_group,mode:e?.mode}));return e.sort((e,t)=>e.model_group.localeCompare(t.model_group)),e}return[]}catch(e){throw console.error("Error fetching model info:",e),e}};e.s(["fetchAvailableModels",0,r])},599724,936325,e=>{"use strict";var t=e.i(95779),r=e.i(444755),a=e.i(673706),s=e.i(271645);let l=s.default.forwardRef((e,l)=>{let{color:o,className:n,children:i}=e;return s.default.createElement("p",{ref:l,className:(0,r.tremorTwMerge)("text-tremor-default",o?(0,a.getColorClassNames)(o,t.colorPalette.text).textColor:(0,r.tremorTwMerge)("text-tremor-content","dark:text-dark-tremor-content"),n)},i)});l.displayName="Text",e.s(["default",0,l],936325),e.s(["Text",0,l],599724)},994388,e=>{"use strict";var t=e.i(290571),r=e.i(829087),a=e.i(271645);let s=["preEnter","entering","entered","preExit","exiting","exited","unmounted"],l=e=>({_s:e,status:s[e],isEnter:e<3,isMounted:6!==e,isResolved:2===e||e>4}),o=e=>e?6:5,n=(e,t,r,a,s)=>{clearTimeout(a.current);let o=l(e);t(o),r.current=o,s&&s({current:o})};var i=e.i(480731),d=e.i(444755),c=e.i(673706);let m=e=>{var r=(0,t.__rest)(e,[]);return a.default.createElement("svg",Object.assign({},r,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"}),a.default.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}),a.default.createElement("path",{d:"M18.364 5.636L16.95 7.05A7 7 0 1 0 19 12h2a9 9 0 1 1-2.636-6.364z"}))};var u=e.i(95779);let g={xs:{height:"h-4",width:"w-4"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-6",width:"w-6"},xl:{height:"h-6",width:"w-6"}},h=(e,t)=>{switch(e){case"primary":return{textColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",hoverTextColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,c.getColorClassNames)(t,u.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",hoverBgColor:t?(0,c.getColorClassNames)(t,u.colorPalette.darkBackground).hoverBgColor:"hover:bg-tremor-brand-emphasis dark:hover:bg-dark-tremor-brand-emphasis",borderColor:t?(0,c.getColorClassNames)(t,u.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",hoverBorderColor:t?(0,c.getColorClassNames)(t,u.colorPalette.darkBorder).hoverBorderColor:"hover:border-tremor-brand-emphasis dark:hover:border-dark-tremor-brand-emphasis"};case"secondary":return{textColor:t?(0,c.getColorClassNames)(t,u.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,u.colorPalette.text).textColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,hoverBgColor:t?(0,d.tremorTwMerge)((0,c.getColorClassNames)(t,u.colorPalette.background).hoverBgColor,"hover:bg-opacity-20 dark:hover:bg-opacity-20"):"hover:bg-tremor-brand-faint dark:hover:bg-dark-tremor-brand-faint",borderColor:t?(0,c.getColorClassNames)(t,u.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand"};case"light":return{textColor:t?(0,c.getColorClassNames)(t,u.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,u.colorPalette.darkText).hoverTextColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,borderColor:"",hoverBorderColor:""}}},p=(0,c.makeClassName)("Button"),f=({loading:e,iconSize:t,iconPosition:r,Icon:s,needMargin:l,transitionStatus:o})=>{let n=l?r===i.HorizontalPositions.Left?(0,d.tremorTwMerge)("-ml-1","mr-1.5"):(0,d.tremorTwMerge)("-mr-1","ml-1.5"):"",c=(0,d.tremorTwMerge)("w-0 h-0"),u={default:c,entering:c,entered:t,exiting:t,exited:c};return e?a.default.createElement(m,{className:(0,d.tremorTwMerge)(p("icon"),"animate-spin shrink-0",n,u.default,u[o]),style:{transition:"width 150ms"}}):a.default.createElement(s,{className:(0,d.tremorTwMerge)(p("icon"),"shrink-0",t,n)})},x=a.default.forwardRef((e,s)=>{let{icon:m,iconPosition:u=i.HorizontalPositions.Left,size:x=i.Sizes.SM,color:b,variant:C="primary",disabled:v,loading:y=!1,loadingText:N,children:w,tooltip:_,className:k}=e,j=(0,t.__rest)(e,["icon","iconPosition","size","color","variant","disabled","loading","loadingText","children","tooltip","className"]),S=y||v,T=void 0!==m||y,E=y&&N,M=!(!w&&!E),R=(0,d.tremorTwMerge)(g[x].height,g[x].width),P="light"!==C?(0,d.tremorTwMerge)("rounded-tremor-default border","shadow-tremor-input","dark:shadow-dark-tremor-input"):"",L=h(C,b),A=("light"!==C?{xs:{paddingX:"px-2.5",paddingY:"py-1.5",fontSize:"text-xs"},sm:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-sm"},md:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-md"},lg:{paddingX:"px-4",paddingY:"py-2.5",fontSize:"text-lg"},xl:{paddingX:"px-4",paddingY:"py-3",fontSize:"text-xl"}}:{xs:{paddingX:"",paddingY:"",fontSize:"text-xs"},sm:{paddingX:"",paddingY:"",fontSize:"text-sm"},md:{paddingX:"",paddingY:"",fontSize:"text-md"},lg:{paddingX:"",paddingY:"",fontSize:"text-lg"},xl:{paddingX:"",paddingY:"",fontSize:"text-xl"}})[x],{tooltipProps:I,getReferenceProps:O}=(0,r.useTooltip)(300),[B,D]=(({enter:e=!0,exit:t=!0,preEnter:r,preExit:s,timeout:i,initialEntered:d,mountOnEnter:c,unmountOnExit:m,onStateChange:u}={})=>{let[g,h]=(0,a.useState)(()=>l(d?2:o(c))),p=(0,a.useRef)(g),f=(0,a.useRef)(0),[x,b]="object"==typeof i?[i.enter,i.exit]:[i,i],C=(0,a.useCallback)(()=>{let e=((e,t)=>{switch(e){case 1:case 0:return 2;case 4:case 3:return o(t)}})(p.current._s,m);e&&n(e,h,p,f,u)},[u,m]);return[g,(0,a.useCallback)(a=>{let l=e=>{switch(n(e,h,p,f,u),e){case 1:x>=0&&(f.current=((...e)=>setTimeout(...e))(C,x));break;case 4:b>=0&&(f.current=((...e)=>setTimeout(...e))(C,b));break;case 0:case 3:f.current=((...e)=>setTimeout(...e))(()=>{isNaN(document.body.offsetTop)||l(e+1)},0)}},i=p.current.isEnter;"boolean"!=typeof a&&(a=!i),a?i||l(e?+!r:2):i&&l(t?s?3:4:o(m))},[C,u,e,t,r,s,x,b,m]),C]})({timeout:50});return(0,a.useEffect)(()=>{D(y)},[y]),a.default.createElement("button",Object.assign({ref:(0,c.mergeRefs)([s,I.refs.setReference]),className:(0,d.tremorTwMerge)(p("root"),"shrink-0 inline-flex justify-center items-center group font-medium outline-none",P,A.paddingX,A.paddingY,A.fontSize,L.textColor,L.bgColor,L.borderColor,L.hoverBorderColor,S?"opacity-50 cursor-not-allowed":(0,d.tremorTwMerge)(h(C,b).hoverTextColor,h(C,b).hoverBgColor,h(C,b).hoverBorderColor),k),disabled:S},O,j),a.default.createElement(r.default,Object.assign({text:_},I)),T&&u!==i.HorizontalPositions.Right?a.default.createElement(f,{loading:y,iconSize:R,iconPosition:u,Icon:m,transitionStatus:B.status,needMargin:M}):null,E||w?a.default.createElement("span",{className:(0,d.tremorTwMerge)(p("text"),"text-tremor-default whitespace-nowrap")},E?N:w):null,T&&u===i.HorizontalPositions.Right?a.default.createElement(f,{loading:y,iconSize:R,iconPosition:u,Icon:m,transitionStatus:B.status,needMargin:M}):null)});x.displayName="Button",e.s(["Button",0,x],994388)},304967,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(480731),s=e.i(95779),l=e.i(444755),o=e.i(673706);let n=(0,o.makeClassName)("Card"),i=r.default.forwardRef((e,i)=>{let{decoration:d="",decorationColor:c,children:m,className:u}=e,g=(0,t.__rest)(e,["decoration","decorationColor","children","className"]);return r.default.createElement("div",Object.assign({ref:i,className:(0,l.tremorTwMerge)(n("root"),"relative w-full text-left ring-1 rounded-tremor-default p-6","bg-tremor-background ring-tremor-ring shadow-tremor-card","dark:bg-dark-tremor-background dark:ring-dark-tremor-ring dark:shadow-dark-tremor-card",c?(0,o.getColorClassNames)(c,s.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",(e=>{if(!e)return"";switch(e){case a.HorizontalPositions.Left:return"border-l-4";case a.VerticalPositions.Top:return"border-t-4";case a.HorizontalPositions.Right:return"border-r-4";case a.VerticalPositions.Bottom:return"border-b-4";default:return""}})(d),u)},g),m)});i.displayName="Card",e.s(["Card",0,i],304967)},350967,46757,e=>{"use strict";var t=e.i(290571),r=e.i(444755),a=e.i(673706),s=e.i(271645);let l={0:"grid-cols-none",1:"grid-cols-1",2:"grid-cols-2",3:"grid-cols-3",4:"grid-cols-4",5:"grid-cols-5",6:"grid-cols-6",7:"grid-cols-7",8:"grid-cols-8",9:"grid-cols-9",10:"grid-cols-10",11:"grid-cols-11",12:"grid-cols-12"},o={0:"sm:grid-cols-none",1:"sm:grid-cols-1",2:"sm:grid-cols-2",3:"sm:grid-cols-3",4:"sm:grid-cols-4",5:"sm:grid-cols-5",6:"sm:grid-cols-6",7:"sm:grid-cols-7",8:"sm:grid-cols-8",9:"sm:grid-cols-9",10:"sm:grid-cols-10",11:"sm:grid-cols-11",12:"sm:grid-cols-12"},n={0:"md:grid-cols-none",1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3",4:"md:grid-cols-4",5:"md:grid-cols-5",6:"md:grid-cols-6",7:"md:grid-cols-7",8:"md:grid-cols-8",9:"md:grid-cols-9",10:"md:grid-cols-10",11:"md:grid-cols-11",12:"md:grid-cols-12"},i={0:"lg:grid-cols-none",1:"lg:grid-cols-1",2:"lg:grid-cols-2",3:"lg:grid-cols-3",4:"lg:grid-cols-4",5:"lg:grid-cols-5",6:"lg:grid-cols-6",7:"lg:grid-cols-7",8:"lg:grid-cols-8",9:"lg:grid-cols-9",10:"lg:grid-cols-10",11:"lg:grid-cols-11",12:"lg:grid-cols-12"};e.s(["colSpan",0,{1:"col-span-1",2:"col-span-2",3:"col-span-3",4:"col-span-4",5:"col-span-5",6:"col-span-6",7:"col-span-7",8:"col-span-8",9:"col-span-9",10:"col-span-10",11:"col-span-11",12:"col-span-12",13:"col-span-13"},"colSpanLg",0,{1:"lg:col-span-1",2:"lg:col-span-2",3:"lg:col-span-3",4:"lg:col-span-4",5:"lg:col-span-5",6:"lg:col-span-6",7:"lg:col-span-7",8:"lg:col-span-8",9:"lg:col-span-9",10:"lg:col-span-10",11:"lg:col-span-11",12:"lg:col-span-12",13:"lg:col-span-13"},"colSpanMd",0,{1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3",4:"md:col-span-4",5:"md:col-span-5",6:"md:col-span-6",7:"md:col-span-7",8:"md:col-span-8",9:"md:col-span-9",10:"md:col-span-10",11:"md:col-span-11",12:"md:col-span-12",13:"md:col-span-13"},"colSpanSm",0,{1:"sm:col-span-1",2:"sm:col-span-2",3:"sm:col-span-3",4:"sm:col-span-4",5:"sm:col-span-5",6:"sm:col-span-6",7:"sm:col-span-7",8:"sm:col-span-8",9:"sm:col-span-9",10:"sm:col-span-10",11:"sm:col-span-11",12:"sm:col-span-12",13:"sm:col-span-13"},"gridCols",0,l,"gridColsLg",0,i,"gridColsMd",0,n,"gridColsSm",0,o],46757);let d=(0,a.makeClassName)("Grid"),c=(e,t)=>e&&Object.keys(t).includes(String(e))?t[e]:"",m=s.default.forwardRef((e,a)=>{let{numItems:m=1,numItemsSm:u,numItemsMd:g,numItemsLg:h,children:p,className:f}=e,x=(0,t.__rest)(e,["numItems","numItemsSm","numItemsMd","numItemsLg","children","className"]),b=c(m,l),C=c(u,o),v=c(g,n),y=c(h,i),N=(0,r.tremorTwMerge)(b,C,v,y);return s.default.createElement("div",Object.assign({ref:a,className:(0,r.tremorTwMerge)(d("root"),"grid",N,f)},x),p)});m.displayName="Grid",e.s(["Grid",0,m],350967)},309426,e=>{"use strict";var t=e.i(290571),r=e.i(444755),a=e.i(673706),s=e.i(271645),l=e.i(46757);let o=(0,a.makeClassName)("Col"),n=s.default.forwardRef((e,a)=>{let n,i,d,c,{numColSpan:m=1,numColSpanSm:u,numColSpanMd:g,numColSpanLg:h,children:p,className:f}=e,x=(0,t.__rest)(e,["numColSpan","numColSpanSm","numColSpanMd","numColSpanLg","children","className"]),b=(e,t)=>e&&Object.keys(t).includes(String(e))?t[e]:"";return s.default.createElement("div",Object.assign({ref:a,className:(0,r.tremorTwMerge)(o("root"),(n=b(m,l.colSpan),i=b(u,l.colSpanSm),d=b(g,l.colSpanMd),c=b(h,l.colSpanLg),(0,r.tremorTwMerge)(n,i,d,c)),f)},x),p)});n.displayName="Col",e.s(["Col",0,n],309426)},439189,435684,96226,497245,e=>{"use strict";function t(e){let t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new e.constructor(+e):new Date("number"==typeof e||"[object Number]"===t||"string"==typeof e||"[object String]"===t?e:NaN)}function r(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}e.s(["toDate",0,t],435684),e.s(["constructFrom",0,r],96226),e.s(["addDays",0,function(e,a){let s=t(e);return isNaN(a)?r(e,NaN):(a&&s.setDate(s.getDate()+a),s)}],439189),e.s(["addMonths",0,function(e,a){let s=t(e);if(isNaN(a))return r(e,NaN);if(!a)return s;let l=s.getDate(),o=r(e,s.getTime());return(o.setMonth(s.getMonth()+a+1,0),l>=o.getDate())?o:(s.setFullYear(o.getFullYear(),o.getMonth(),l),s)}],497245)},37091,e=>{"use strict";var t=e.i(290571),r=e.i(95779),a=e.i(444755),s=e.i(673706),l=e.i(271645);let o=l.default.forwardRef((e,o)=>{let{color:n,children:i,className:d}=e,c=(0,t.__rest)(e,["color","children","className"]);return l.default.createElement("p",Object.assign({ref:o,className:(0,a.tremorTwMerge)(n?(0,s.getColorClassNames)(n,r.colorPalette.lightText).textColor:"text-tremor-content-emphasis dark:text-dark-tremor-content-emphasis",d)},c),i)});o.displayName="Subtitle",e.s(["Subtitle",0,o],37091)},559061,e=>{"use strict";var t=e.i(843476),r=e.i(584935),a=e.i(304967),s=e.i(309426),l=e.i(350967),o=e.i(752978),n=e.i(621642),i=e.i(25080),d=e.i(37091),c=e.i(197647),m=e.i(653824),u=e.i(881073),g=e.i(404206),h=e.i(723731),p=e.i(599724),f=e.i(271645),x=e.i(727749),b=e.i(144267),C=e.i(278587),v=e.i(764205),y=e.i(994388),N=e.i(220508),w=e.i(964306),_=e.i(551332);let k=({responseTimeMs:e})=>null==e?null:(0,t.jsxs)("div",{className:"flex items-center space-x-1 text-xs text-gray-500 font-mono",children:[(0,t.jsx)("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:"M12 6V12L16 14M12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,t.jsxs)("span",{children:[e.toFixed(0),"ms"]})]}),j=e=>{let t=e;if("string"==typeof t)try{t=JSON.parse(t)}catch{}return t},S=({label:e,value:r})=>{let[a,s]=f.default.useState(!1),[l,o]=f.default.useState(!1),n=r?.toString()||"N/A",i=n.length>50?n.substring(0,50)+"...":n;return(0,t.jsx)("tr",{className:"hover:bg-gray-50",children:(0,t.jsx)("td",{className:"px-4 py-2 align-top",colSpan:2,children:(0,t.jsxs)("div",{className:"flex items-center justify-between group",children:[(0,t.jsxs)("div",{className:"flex items-center flex-1",children:[(0,t.jsx)("button",{onClick:()=>s(!a),className:"text-gray-400 hover:text-gray-600 mr-2",children:a?"▼":"▶"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-sm text-gray-600",children:e}),(0,t.jsx)("pre",{className:"mt-1 text-sm font-mono text-gray-800 whitespace-pre-wrap",children:a?n:i})]})]}),(0,t.jsx)("button",{onClick:()=>{navigator.clipboard.writeText(n),o(!0),setTimeout(()=>o(!1),2e3)},className:"opacity-0 group-hover:opacity-100 text-gray-400 hover:text-gray-600",children:(0,t.jsx)(_.ClipboardCopyIcon,{className:"h-4 w-4"})})]})})})},T=({response:e})=>{let r=null,a={},s={};try{if(e?.error)try{let t="string"==typeof e.error.message?JSON.parse(e.error.message):e.error.message;r={message:t?.message||"Unknown error",traceback:t?.traceback||"No traceback available",litellm_params:t?.litellm_cache_params||{},health_check_cache_params:t?.health_check_cache_params||{}},a=j(r.litellm_params)||{},s=j(r.health_check_cache_params)||{}}catch(t){console.warn("Error parsing error details:",t),r={message:String(e.error.message||"Unknown error"),traceback:"Error parsing details",litellm_params:{},health_check_cache_params:{}}}else a=j(e?.litellm_cache_params)||{},s=j(e?.health_check_cache_params)||{}}catch(e){console.warn("Error in response parsing:",e),a={},s={}}let l={redis_host:s?.redis_client?.connection_pool?.connection_kwargs?.host||s?.redis_async_client?.connection_pool?.connection_kwargs?.host||s?.connection_kwargs?.host||s?.host||"N/A",redis_port:s?.redis_client?.connection_pool?.connection_kwargs?.port||s?.redis_async_client?.connection_pool?.connection_kwargs?.port||s?.connection_kwargs?.port||s?.port||"N/A",redis_version:s?.redis_version||"N/A",startup_nodes:(()=>{try{if(s?.redis_kwargs?.startup_nodes)return JSON.stringify(s.redis_kwargs.startup_nodes);let e=s?.redis_client?.connection_pool?.connection_kwargs?.host||s?.redis_async_client?.connection_pool?.connection_kwargs?.host,t=s?.redis_client?.connection_pool?.connection_kwargs?.port||s?.redis_async_client?.connection_pool?.connection_kwargs?.port;return e&&t?JSON.stringify([{host:e,port:t}]):"N/A"}catch(e){return"N/A"}})(),namespace:s?.namespace||"N/A"};return(0,t.jsx)("div",{className:"bg-white rounded-lg shadow",children:(0,t.jsxs)(m.TabGroup,{children:[(0,t.jsxs)(u.TabList,{className:"border-b border-gray-200 px-4",children:[(0,t.jsx)(c.Tab,{className:"px-4 py-2 text-sm font-medium text-gray-600 hover:text-gray-800",children:"Summary"}),(0,t.jsx)(c.Tab,{className:"px-4 py-2 text-sm font-medium text-gray-600 hover:text-gray-800",children:"Raw Response"})]}),(0,t.jsxs)(h.TabPanels,{children:[(0,t.jsx)(g.TabPanel,{className:"p-4",children:(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center mb-6",children:[e?.status==="healthy"?(0,t.jsx)(N.CheckCircleIcon,{className:"h-5 w-5 text-green-500 mr-2"}):(0,t.jsx)(w.XCircleIcon,{className:"h-5 w-5 text-red-500 mr-2"}),(0,t.jsxs)(p.Text,{className:`text-sm font-medium ${e?.status==="healthy"?"text-green-500":"text-red-500"}`,children:["Cache Status: ",e?.status||"unhealthy"]})]}),(0,t.jsx)("table",{className:"w-full border-collapse",children:(0,t.jsxs)("tbody",{children:[r&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("tr",{children:(0,t.jsx)("td",{colSpan:2,className:"pt-4 pb-2 font-semibold text-red-600",children:"Error Details"})}),(0,t.jsx)(S,{label:"Error Message",value:r.message}),(0,t.jsx)(S,{label:"Traceback",value:r.traceback})]}),(0,t.jsx)("tr",{children:(0,t.jsx)("td",{colSpan:2,className:"pt-4 pb-2 font-semibold",children:"Cache Details"})}),(0,t.jsx)(S,{label:"Cache Configuration",value:String(a?.type)}),(0,t.jsx)(S,{label:"Ping Response",value:String(e.ping_response)}),(0,t.jsx)(S,{label:"Set Cache Response",value:e.set_cache_response||"N/A"}),(0,t.jsx)(S,{label:"litellm_settings.cache_params",value:JSON.stringify(a,null,2)}),a?.type==="redis"&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("tr",{children:(0,t.jsx)("td",{colSpan:2,className:"pt-4 pb-2 font-semibold",children:"Redis Details"})}),(0,t.jsx)(S,{label:"Redis Host",value:l.redis_host||"N/A"}),(0,t.jsx)(S,{label:"Redis Port",value:l.redis_port||"N/A"}),(0,t.jsx)(S,{label:"Redis Version",value:l.redis_version||"N/A"}),(0,t.jsx)(S,{label:"Startup Nodes",value:l.startup_nodes||"N/A"}),(0,t.jsx)(S,{label:"Namespace",value:l.namespace||"N/A"})]})]})})]})}),(0,t.jsx)(g.TabPanel,{className:"p-4",children:(0,t.jsx)("div",{className:"bg-gray-50 rounded-md p-4 font-mono text-sm",children:(0,t.jsx)("pre",{className:"whitespace-pre-wrap break-words overflow-auto max-h-[500px]",children:(()=>{try{let t={...e,litellm_cache_params:a,health_check_cache_params:s},r=JSON.parse(JSON.stringify(t,(e,t)=>{if("string"==typeof t)try{return JSON.parse(t)}catch{}return t}));return JSON.stringify(r,null,2)}catch(e){return"Error formatting JSON: "+e.message}})()})})})]})]})})},E=({accessToken:e,healthCheckResponse:r,runCachingHealthCheck:a,responseTimeMs:s})=>{let[l,o]=f.default.useState(null),[n,i]=f.default.useState(!1),d=async()=>{i(!0);let e=performance.now();await a(),o(performance.now()-e),i(!1)};return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)(y.Button,{onClick:d,disabled:n,className:"bg-indigo-600 hover:bg-indigo-700 disabled:bg-indigo-400 text-white text-sm px-4 py-2 rounded-md",children:n?"Running Health Check...":"Run Health Check"}),(0,t.jsx)(k,{responseTimeMs:l})]}),r&&(0,t.jsx)(T,{response:r})]})};var M=e.i(677667),R=e.i(898667),P=e.i(130643),L=e.i(206929),A=e.i(35983);let I=({redisType:e,redisTypeDescriptions:r,onTypeChange:a})=>(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Redis Type"}),(0,t.jsxs)(L.Select,{value:e,onValueChange:a,children:[(0,t.jsx)(A.SelectItem,{value:"node",children:"Node (Single Instance)"}),(0,t.jsx)(A.SelectItem,{value:"cluster",children:"Cluster"}),(0,t.jsx)(A.SelectItem,{value:"sentinel",children:"Sentinel"}),(0,t.jsx)(A.SelectItem,{value:"semantic",children:"Semantic"})]}),(0,t.jsx)("p",{className:"text-xs text-gray-500",children:r[e]||"Select the type of Redis deployment you're using"})]});var O=e.i(135214),B=e.i(620250),D=e.i(779241),F=e.i(199133),H=e.i(689020),z=e.i(435451);let V=({field:e,currentValue:r})=>{let[a,s]=(0,f.useState)([]),[l,o]=(0,f.useState)(r||""),{accessToken:n}=(0,O.default)();if((0,f.useEffect)(()=>{n&&(async()=>{try{let e=await (0,H.fetchAvailableModels)(n);console.log("Fetched models for selector:",e),e.length>0&&s(e)}catch(e){console.error("Error fetching model info:",e)}})()},[n]),"Boolean"===e.field_type)return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:e.ui_field_name}),(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)("input",{type:"checkbox",name:e.field_name,defaultChecked:!0===r||"true"===r,className:"h-4 w-4 text-indigo-600 focus:ring-indigo-500 border-gray-300 rounded"}),(0,t.jsx)("span",{className:"ml-2 text-sm text-gray-500",children:e.field_description})]})]});if("Integer"===e.field_type||"Float"===e.field_type)return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:e.ui_field_name}),(0,t.jsx)(z.default,{name:e.field_name,type:"number",defaultValue:r,placeholder:e.field_description}),(0,t.jsx)("p",{className:"text-xs text-gray-500",children:e.field_description})]});if("List"===e.field_type)return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:e.ui_field_name}),(0,t.jsx)("textarea",{name:e.field_name,defaultValue:"object"==typeof r?JSON.stringify(r,null,2):r,placeholder:e.field_description,className:"w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500",rows:4}),(0,t.jsx)("p",{className:"text-xs text-gray-500",children:e.field_description})]});if("Models_Select"===e.field_type){let r=a.filter(e=>"embedding"===e.mode).map(e=>({value:e.model_group,label:e.model_group}));return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:e.ui_field_name}),(0,t.jsx)(F.Select,{value:l,onChange:o,showSearch:!0,placeholder:"Search and select a model...",options:r,style:{width:"100%"},className:"rounded-md",filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase())}),(0,t.jsx)("input",{type:"hidden",name:e.field_name,value:l}),e.field_description&&(0,t.jsx)("p",{className:"text-xs text-gray-500",children:e.field_description})]})}if("Integer"===e.field_type||"Float"===e.field_type)return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:e.ui_field_name}),(0,t.jsx)(B.NumberInput,{name:e.field_name,defaultValue:r,placeholder:e.field_description,step:"Float"===e.field_type?.01:1}),e.field_description&&(0,t.jsx)("p",{className:"text-xs text-gray-500",children:e.field_description})]});let i="password"===e.field_name||e.field_name.includes("password")?"password":"text";return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:e.ui_field_name}),(0,t.jsx)(D.TextInput,{name:e.field_name,type:i,defaultValue:r,placeholder:e.field_description}),e.field_description&&(0,t.jsx)("p",{className:"text-xs text-gray-500",children:e.field_description})]})},Y=(e,t)=>e.find(e=>e.field_name===t),X=(e,t)=>{let r={type:"redis"};return e.forEach(e=>{if("redis_type"===e.field_name||null!==e.redis_type&&void 0!==e.redis_type&&e.redis_type!==t)return;let a=e.field_name,s=null;if("Boolean"===e.field_type){let e=document.querySelector(`input[name="${a}"]`);e?.checked!==void 0&&(s=e.checked)}else if("List"===e.field_type){let e=document.querySelector(`textarea[name="${a}"]`);if(e?.value)try{s=JSON.parse(e.value)}catch(e){console.error(`Invalid JSON for ${a}:`,e)}}else{let t=document.querySelector(`input[name="${a}"]`);if(t?.value){let r=t.value.trim();if(""!==r)if("Integer"===e.field_type){let e=Number(r);isNaN(e)||(s=e)}else if("Float"===e.field_type){let e=Number(r);isNaN(e)||(s=e)}else s=r}}null!=s&&(r[a]=s)}),r},G=({accessToken:e,userRole:r,userID:a})=>{let s,l,o,n,i,[d,c]=(0,f.useState)({}),[m,u]=(0,f.useState)([]),[g,h]=(0,f.useState)({}),[p,b]=(0,f.useState)("node"),[C,N]=(0,f.useState)(!1),[w,_]=(0,f.useState)(!1),k=(0,f.useCallback)(async()=>{try{let t=await (0,v.getCacheSettingsCall)(e);console.log("cache settings from API",t),t.fields&&u(t.fields),t.current_values&&(c(t.current_values),t.current_values.redis_type&&b(t.current_values.redis_type)),t.redis_type_descriptions&&h(t.redis_type_descriptions)}catch(e){console.error("Failed to load cache settings:",e),x.default.fromBackend("Failed to load cache settings")}},[e]);(0,f.useEffect)(()=>{e&&k()},[e,k]);let j=async()=>{if(e){N(!0);try{let t=X(m,p),r=await (0,v.testCacheConnectionCall)(e,t);"success"===r.status?x.default.success("Cache connection test successful!"):x.default.fromBackend(`Connection test failed: ${r.message||r.error}`)}catch(e){console.error("Test connection error:",e),x.default.fromBackend(`Connection test failed: ${e.message||"Unknown error"}`)}finally{N(!1)}}},S=async()=>{if(e){_(!0);try{let t=X(m,p);"semantic"===p&&(t.type="redis-semantic"),await (0,v.updateCacheSettingsCall)(e,t),x.default.success("Cache settings updated successfully"),await k()}catch(e){console.error("Failed to save cache settings:",e),x.default.fromBackend("Failed to update cache settings")}finally{_(!1)}}};if(!e)return null;let{basicFields:T,sslFields:E,cacheManagementFields:L,gcpFields:A,clusterFields:O,sentinelFields:B,semanticFields:D}=(s=["host","port","password","username"].map(e=>Y(m,e)).filter(Boolean),l=["ssl","ssl_cert_reqs","ssl_check_hostname"].map(e=>Y(m,e)).filter(Boolean),o=["namespace","ttl","max_connections"].map(e=>Y(m,e)).filter(Boolean),n=["gcp_service_account","gcp_ssl_ca_certs"].map(e=>Y(m,e)).filter(Boolean),i=m.filter(e=>"cluster"===e.redis_type),{basicFields:s,sslFields:l,cacheManagementFields:o,gcpFields:n,clusterFields:i,sentinelFields:m.filter(e=>"sentinel"===e.redis_type),semanticFields:m.filter(e=>"semantic"===e.redis_type)});return(0,t.jsxs)("div",{className:"w-full space-y-8 py-2",children:[(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"max-w-3xl",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-gray-900",children:"Cache Settings"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:"Configure Redis cache for LiteLLM"})]}),(0,t.jsx)(I,{redisType:p,redisTypeDescriptions:g,onTypeChange:b}),(0,t.jsxs)("div",{className:"space-y-6 pt-4 border-t border-gray-200",children:[(0,t.jsx)("h4",{className:"text-sm font-medium text-gray-900",children:"Connection Settings"}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 sm:grid-cols-2",children:T.map(e=>{if(!e)return null;let r=d[e.field_name]??e.field_default??"";return(0,t.jsx)(V,{field:e,currentValue:r},e.field_name)})})]}),"cluster"===p&&O.length>0&&(0,t.jsxs)("div",{className:"space-y-6 pt-4 border-t border-gray-200",children:[(0,t.jsx)("h4",{className:"text-sm font-medium text-gray-900",children:"Cluster Configuration"}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6",children:O.map(e=>{let r=d[e.field_name]??e.field_default??"";return(0,t.jsx)(V,{field:e,currentValue:r},e.field_name)})})]}),"sentinel"===p&&B.length>0&&(0,t.jsxs)("div",{className:"space-y-6 pt-4 border-t border-gray-200",children:[(0,t.jsx)("h4",{className:"text-sm font-medium text-gray-900",children:"Sentinel Configuration"}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 sm:grid-cols-2",children:B.map(e=>{let r=d[e.field_name]??e.field_default??"";return(0,t.jsx)(V,{field:e,currentValue:r},e.field_name)})})]}),"semantic"===p&&D.length>0&&(0,t.jsxs)("div",{className:"space-y-6 pt-4 border-t border-gray-200",children:[(0,t.jsx)("h4",{className:"text-sm font-medium text-gray-900",children:"Semantic Configuration"}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 sm:grid-cols-2",children:D.map(e=>{let r=d[e.field_name]??e.field_default??"";return(0,t.jsx)(V,{field:e,currentValue:r},e.field_name)})})]}),(0,t.jsxs)(M.Accordion,{className:"mt-4",children:[(0,t.jsx)(R.AccordionHeader,{children:(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900",children:"Advanced Settings"})}),(0,t.jsx)(P.AccordionBody,{children:(0,t.jsxs)("div",{className:"space-y-6",children:[E.length>0&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)("h5",{className:"text-sm font-medium text-gray-700",children:"SSL Settings"}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 sm:grid-cols-2",children:E.map(e=>{if(!e)return null;let r=d[e.field_name]??e.field_default??"";return(0,t.jsx)(V,{field:e,currentValue:r},e.field_name)})})]}),L.length>0&&(0,t.jsxs)("div",{className:"space-y-4 pt-4 border-t border-gray-200",children:[(0,t.jsx)("h5",{className:"text-sm font-medium text-gray-700",children:"Cache Management"}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 sm:grid-cols-2",children:L.map(e=>{if(!e)return null;let r=d[e.field_name]??e.field_default??"";return(0,t.jsx)(V,{field:e,currentValue:r},e.field_name)})})]}),A.length>0&&(0,t.jsxs)("div",{className:"space-y-4 pt-4 border-t border-gray-200",children:[(0,t.jsx)("h5",{className:"text-sm font-medium text-gray-700",children:"GCP Authentication"}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 sm:grid-cols-2",children:A.map(e=>{if(!e)return null;let r=d[e.field_name]??e.field_default??"";return(0,t.jsx)(V,{field:e,currentValue:r},e.field_name)})})]})]})})]})]}),(0,t.jsxs)("div",{className:"border-t border-gray-200 pt-6 flex justify-end gap-3",children:[(0,t.jsx)(y.Button,{variant:"secondary",size:"sm",onClick:j,disabled:C,className:"text-sm",children:C?"Testing...":"Test Connection"}),(0,t.jsx)(y.Button,{size:"sm",onClick:S,disabled:w,className:"text-sm font-medium",children:w?"Saving...":"Save Changes"})]})]})},J=e=>{if(e)return e.toISOString().split("T")[0]};function q(e){return new Intl.NumberFormat("en-US",{maximumFractionDigits:0,notation:"compact",compactDisplay:"short"}).format(e)}e.s(["default",0,({accessToken:e,token:y,userRole:N,userID:w,premiumUser:_})=>{let[k,j]=(0,f.useState)([]),[S,T]=(0,f.useState)([]),[M,R]=(0,f.useState)([]),[P,L]=(0,f.useState)([]),[A,I]=(0,f.useState)("0"),[O,B]=(0,f.useState)("0"),[D,F]=(0,f.useState)("0"),[H,z]=(0,f.useState)({from:new Date(Date.now()-6048e5),to:new Date}),[V,Y]=(0,f.useState)(""),[X,U]=(0,f.useState)("");(0,f.useEffect)(()=>{e&&H&&((async()=>{L(await (0,v.adminGlobalCacheActivity)(e,J(H.from),J(H.to)))})(),Y(new Date().toLocaleString()))},[e]);let W=Array.from(new Set(P.map(e=>e?.api_key??""))),$=Array.from(new Set(P.map(e=>e?.model??"")));Array.from(new Set(P.map(e=>e?.call_type??"")));let K=async(t,r)=>{t&&r&&e&&L(await (0,v.adminGlobalCacheActivity)(e,J(t),J(r)))};(0,f.useEffect)(()=>{console.log("DATA IN CACHE DASHBOARD",P);let e=P;S.length>0&&(e=e.filter(e=>S.includes(e.api_key))),M.length>0&&(e=e.filter(e=>M.includes(e.model))),console.log("before processed data in cache dashboard",e);let t=0,r=0,a=0,s=e.reduce((e,s)=>{console.log("Processing item:",s),s.call_type||(console.log("Item has no call_type:",s),s.call_type="Unknown"),t+=(s.total_rows||0)-(s.cache_hit_true_rows||0),r+=s.cache_hit_true_rows||0,a+=s.cached_completion_tokens||0;let l=e.find(e=>e.name===s.call_type);return l?(l["LLM API requests"]+=(s.total_rows||0)-(s.cache_hit_true_rows||0),l["Cache hit"]+=s.cache_hit_true_rows||0,l["Cached Completion Tokens"]+=s.cached_completion_tokens||0,l["Generated Completion Tokens"]+=s.generated_completion_tokens||0):e.push({name:s.call_type,"LLM API requests":(s.total_rows||0)-(s.cache_hit_true_rows||0),"Cache hit":s.cache_hit_true_rows||0,"Cached Completion Tokens":s.cached_completion_tokens||0,"Generated Completion Tokens":s.generated_completion_tokens||0}),e},[]);I(q(r)),B(q(a));let l=r+t;l>0?F((r/l*100).toFixed(2)):F("0"),j(s),console.log("PROCESSED DATA IN CACHE DASHBOARD",s)},[S,M,H,P]);let Z=async()=>{try{x.default.info("Running cache health check..."),U("");let t=await (0,v.cachingHealthCheckCall)(null!==e?e:"");console.log("CACHING HEALTH CHECK RESPONSE",t),U(t)}catch(t){let e;if(console.error("Error running health check:",t),t&&t.message)try{let r=JSON.parse(t.message);r.error&&(r=r.error),e=r}catch(r){e={message:t.message}}else e={message:"Unknown error occurred"};U({error:e})}};return(0,t.jsxs)(m.TabGroup,{className:"gap-2 p-8 h-full w-full mt-2 mb-8",children:[(0,t.jsxs)(u.TabList,{className:"flex justify-between mt-2 w-full items-center",children:[(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)(c.Tab,{children:"Cache Analytics"}),(0,t.jsx)(c.Tab,{children:"Cache Health"}),(0,t.jsx)(c.Tab,{children:"Cache Settings"})]}),(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[V&&(0,t.jsxs)(p.Text,{children:["Last Refreshed: ",V]}),(0,t.jsx)(o.Icon,{icon:C.RefreshIcon,variant:"shadow",size:"xs",className:"self-center",onClick:()=>{Y(new Date().toLocaleString())}})]})]}),(0,t.jsxs)(h.TabPanels,{children:[(0,t.jsx)(g.TabPanel,{children:(0,t.jsxs)(a.Card,{children:[(0,t.jsxs)(l.Grid,{numItems:3,className:"gap-4 mt-4",children:[(0,t.jsx)(s.Col,{children:(0,t.jsx)(n.MultiSelect,{placeholder:"Select Virtual Keys",value:S,onValueChange:T,children:W.map(e=>(0,t.jsx)(i.MultiSelectItem,{value:e,children:e},e))})}),(0,t.jsx)(s.Col,{children:(0,t.jsx)(n.MultiSelect,{placeholder:"Select Models",value:M,onValueChange:R,children:$.map(e=>(0,t.jsx)(i.MultiSelectItem,{value:e,children:e},e))})}),(0,t.jsx)(s.Col,{children:(0,t.jsx)(b.default,{value:H,onValueChange:e=>{z(e),K(e.from,e.to)}})})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3 mt-4",children:[(0,t.jsxs)(a.Card,{children:[(0,t.jsx)("p",{className:"text-tremor-default font-medium text-tremor-content dark:text-dark-tremor-content",children:"Cache Hit Ratio"}),(0,t.jsx)("div",{className:"mt-2 flex items-baseline space-x-2.5",children:(0,t.jsxs)("p",{className:"text-tremor-metric font-semibold text-tremor-content-strong dark:text-dark-tremor-content-strong",children:[D,"%"]})})]}),(0,t.jsxs)(a.Card,{children:[(0,t.jsx)("p",{className:"text-tremor-default font-medium text-tremor-content dark:text-dark-tremor-content",children:"Cache Hits"}),(0,t.jsx)("div",{className:"mt-2 flex items-baseline space-x-2.5",children:(0,t.jsx)("p",{className:"text-tremor-metric font-semibold text-tremor-content-strong dark:text-dark-tremor-content-strong",children:A})})]}),(0,t.jsxs)(a.Card,{children:[(0,t.jsx)("p",{className:"text-tremor-default font-medium text-tremor-content dark:text-dark-tremor-content",children:"Cached Tokens"}),(0,t.jsx)("div",{className:"mt-2 flex items-baseline space-x-2.5",children:(0,t.jsx)("p",{className:"text-tremor-metric font-semibold text-tremor-content-strong dark:text-dark-tremor-content-strong",children:O})})]})]}),(0,t.jsx)(d.Subtitle,{className:"mt-4",children:"Cache Hits vs API Requests"}),(0,t.jsx)(r.BarChart,{title:"Cache Hits vs API Requests",data:k,stack:!0,index:"name",valueFormatter:q,categories:["LLM API requests","Cache hit"],colors:["sky","teal"],yAxisWidth:48}),(0,t.jsx)(d.Subtitle,{className:"mt-4",children:"Cached Completion Tokens vs Generated Completion Tokens"}),(0,t.jsx)(r.BarChart,{className:"mt-6",data:k,stack:!0,index:"name",valueFormatter:q,categories:["Generated Completion Tokens","Cached Completion Tokens"],colors:["sky","teal"],yAxisWidth:48})]})}),(0,t.jsx)(g.TabPanel,{children:(0,t.jsx)(E,{accessToken:e,healthCheckResponse:X,runCachingHealthCheck:Z})}),(0,t.jsx)(g.TabPanel,{children:(0,t.jsx)(G,{accessToken:e,userRole:N,userID:w})})]})]})}],559061)},891881,e=>{"use strict";var t=e.i(843476),r=e.i(559061),a=e.i(135214);e.s(["default",0,()=>{let{token:e,accessToken:s,userRole:l,userId:o,premiumUser:n}=(0,a.default)();return(0,t.jsx)(r.default,{accessToken:s,token:e,userRole:l,userID:o,premiumUser:n})}])}]); \ No newline at end of file +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,728889,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(829087),s=e.i(480731),l=e.i(444755),o=e.i(673706),n=e.i(95779);let i={xs:{paddingX:"px-1.5",paddingY:"py-1.5"},sm:{paddingX:"px-1.5",paddingY:"py-1.5"},md:{paddingX:"px-2",paddingY:"py-2"},lg:{paddingX:"px-2",paddingY:"py-2"},xl:{paddingX:"px-2.5",paddingY:"py-2.5"}},d={xs:{height:"h-3",width:"w-3"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-7",width:"w-7"},xl:{height:"h-9",width:"w-9"}},c={simple:{rounded:"",border:"",ring:"",shadow:""},light:{rounded:"rounded-tremor-default",border:"",ring:"",shadow:""},shadow:{rounded:"rounded-tremor-default",border:"border",ring:"",shadow:"shadow-tremor-card dark:shadow-dark-tremor-card"},solid:{rounded:"rounded-tremor-default",border:"border-2",ring:"ring-1",shadow:""},outlined:{rounded:"rounded-tremor-default",border:"border",ring:"ring-2",shadow:""}},m=(0,o.makeClassName)("Icon"),u=r.default.forwardRef((e,u)=>{let{icon:g,variant:h="simple",tooltip:p,size:f=s.Sizes.SM,color:x,className:b}=e,C=(0,t.__rest)(e,["icon","variant","tooltip","size","color","className"]),v=((e,t)=>{switch(e){case"simple":return{textColor:t?(0,o.getColorClassNames)(t,n.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:"",borderColor:"",ringColor:""};case"light":return{textColor:t?(0,o.getColorClassNames)(t,n.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,l.tremorTwMerge)((0,o.getColorClassNames)(t,n.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand-muted dark:bg-dark-tremor-brand-muted",borderColor:"",ringColor:""};case"shadow":return{textColor:t?(0,o.getColorClassNames)(t,n.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,l.tremorTwMerge)((0,o.getColorClassNames)(t,n.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:"border-tremor-border dark:border-dark-tremor-border",ringColor:""};case"solid":return{textColor:t?(0,o.getColorClassNames)(t,n.colorPalette.text).textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,l.tremorTwMerge)((0,o.getColorClassNames)(t,n.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand dark:bg-dark-tremor-brand",borderColor:"border-tremor-brand-inverted dark:border-dark-tremor-brand-inverted",ringColor:"ring-tremor-ring dark:ring-dark-tremor-ring"};case"outlined":return{textColor:t?(0,o.getColorClassNames)(t,n.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,l.tremorTwMerge)((0,o.getColorClassNames)(t,n.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:t?(0,o.getColorClassNames)(t,n.colorPalette.ring).borderColor:"border-tremor-brand-subtle dark:border-dark-tremor-brand-subtle",ringColor:t?(0,l.tremorTwMerge)((0,o.getColorClassNames)(t,n.colorPalette.ring).ringColor,"ring-opacity-40"):"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"}}})(h,x),{tooltipProps:y,getReferenceProps:N}=(0,a.useTooltip)();return r.default.createElement("span",Object.assign({ref:(0,o.mergeRefs)([u,y.refs.setReference]),className:(0,l.tremorTwMerge)(m("root"),"inline-flex shrink-0 items-center justify-center",v.bgColor,v.textColor,v.borderColor,v.ringColor,c[h].rounded,c[h].border,c[h].shadow,c[h].ring,i[f].paddingX,i[f].paddingY,b)},N,C),r.default.createElement(a.default,Object.assign({text:p},y)),r.default.createElement(g,{className:(0,l.tremorTwMerge)(m("icon"),"shrink-0",d[f].height,d[f].width)}))});u.displayName="Icon",e.s(["default",0,u],728889)},752978,e=>{"use strict";var t=e.i(728889);e.s(["Icon",()=>t.default])},207670,e=>{"use strict";function t(){for(var e,t,r=0,a="",s=arguments.length;r{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3"}))});e.s(["ClipboardCopyIcon",0,r],551332)},888288,e=>{"use strict";var t=e.i(271645);e.s(["default",0,(e,r)=>{let a=void 0!==r,[s,l]=(0,t.useState)(e);return[a?r:s,e=>{a||l(e)}]}])},757440,e=>{"use strict";var t=e.i(290571),r=e.i(271645);e.s(["default",0,e=>{var a=(0,t.__rest)(e,[]);return r.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},a),r.default.createElement("path",{d:"M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z"}))}])},446428,854056,e=>{"use strict";let t;var r=e.i(290571),a=e.i(271645);e.s(["default",0,e=>{var t=(0,r.__rest)(e,[]);return a.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},t),a.default.createElement("path",{d:"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 10.5858L9.17157 7.75736L7.75736 9.17157L10.5858 12L7.75736 14.8284L9.17157 16.2426L12 13.4142L14.8284 16.2426L16.2426 14.8284L13.4142 12L16.2426 9.17157L14.8284 7.75736L12 10.5858Z"}))}],446428);var s=e.i(746725),l=e.i(914189),o=e.i(553521),n=e.i(835696),i=e.i(941444),d=e.i(178677),c=e.i(294316),m=e.i(83733),u=e.i(233137),g=e.i(732607),h=e.i(397701),p=e.i(700020);function f(e){var t;return!!(e.enter||e.enterFrom||e.enterTo||e.leave||e.leaveFrom||e.leaveTo)||(null!=(t=e.as)?t:N)!==a.Fragment||1===a.default.Children.count(e.children)}let x=(0,a.createContext)(null);x.displayName="TransitionContext";var b=((t=b||{}).Visible="visible",t.Hidden="hidden",t);let C=(0,a.createContext)(null);function v(e){return"children"in e?v(e.children):e.current.filter(({el:e})=>null!==e.current).filter(({state:e})=>"visible"===e).length>0}function y(e,t){let r=(0,i.useLatestValue)(e),n=(0,a.useRef)([]),d=(0,o.useIsMounted)(),c=(0,s.useDisposables)(),m=(0,l.useEvent)((e,t=p.RenderStrategy.Hidden)=>{let a=n.current.findIndex(({el:t})=>t===e);-1!==a&&((0,h.match)(t,{[p.RenderStrategy.Unmount](){n.current.splice(a,1)},[p.RenderStrategy.Hidden](){n.current[a].state="hidden"}}),c.microTask(()=>{var e;!v(n)&&d.current&&(null==(e=r.current)||e.call(r))}))}),u=(0,l.useEvent)(e=>{let t=n.current.find(({el:t})=>t===e);return t?"visible"!==t.state&&(t.state="visible"):n.current.push({el:e,state:"visible"}),()=>m(e,p.RenderStrategy.Unmount)}),g=(0,a.useRef)([]),f=(0,a.useRef)(Promise.resolve()),x=(0,a.useRef)({enter:[],leave:[]}),b=(0,l.useEvent)((e,r,a)=>{g.current.splice(0),t&&(t.chains.current[r]=t.chains.current[r].filter(([t])=>t!==e)),null==t||t.chains.current[r].push([e,new Promise(e=>{g.current.push(e)})]),null==t||t.chains.current[r].push([e,new Promise(e=>{Promise.all(x.current[r].map(([e,t])=>t)).then(()=>e())})]),"enter"===r?f.current=f.current.then(()=>null==t?void 0:t.wait.current).then(()=>a(r)):a(r)}),C=(0,l.useEvent)((e,t,r)=>{Promise.all(x.current[t].splice(0).map(([e,t])=>t)).then(()=>{var e;null==(e=g.current.shift())||e()}).then(()=>r(t))});return(0,a.useMemo)(()=>({children:n,register:u,unregister:m,onStart:b,onStop:C,wait:f,chains:x}),[u,m,n,b,C,x,f])}C.displayName="NestingContext";let N=a.Fragment,w=p.RenderFeatures.RenderStrategy,_=(0,p.forwardRefWithAs)(function(e,t){let{show:r,appear:s=!1,unmount:o=!0,...i}=e,m=(0,a.useRef)(null),g=f(e),h=(0,c.useSyncRefs)(...g?[m,t]:null===t?[]:[t]);(0,d.useServerHandoffComplete)();let b=(0,u.useOpenClosed)();if(void 0===r&&null!==b&&(r=(b&u.State.Open)===u.State.Open),void 0===r)throw Error("A is used but it is missing a `show={true | false}` prop.");let[N,_]=(0,a.useState)(r?"visible":"hidden"),j=y(()=>{r||_("hidden")}),[S,T]=(0,a.useState)(!0),E=(0,a.useRef)([r]);(0,n.useIsoMorphicEffect)(()=>{!1!==S&&E.current[E.current.length-1]!==r&&(E.current.push(r),T(!1))},[E,r]);let M=(0,a.useMemo)(()=>({show:r,appear:s,initial:S}),[r,s,S]);(0,n.useIsoMorphicEffect)(()=>{r?_("visible"):v(j)||null===m.current||_("hidden")},[r,j]);let R={unmount:o},P=(0,l.useEvent)(()=>{var t;S&&T(!1),null==(t=e.beforeEnter)||t.call(e)}),L=(0,l.useEvent)(()=>{var t;S&&T(!1),null==(t=e.beforeLeave)||t.call(e)}),A=(0,p.useRender)();return a.default.createElement(C.Provider,{value:j},a.default.createElement(x.Provider,{value:M},A({ourProps:{...R,as:a.Fragment,children:a.default.createElement(k,{ref:h,...R,...i,beforeEnter:P,beforeLeave:L})},theirProps:{},defaultTag:a.Fragment,features:w,visible:"visible"===N,name:"Transition"})))}),k=(0,p.forwardRefWithAs)(function(e,t){var r,s;let{transition:o=!0,beforeEnter:i,afterEnter:b,beforeLeave:_,afterLeave:k,enter:j,enterFrom:S,enterTo:T,entered:E,leave:M,leaveFrom:R,leaveTo:P,...L}=e,[A,I]=(0,a.useState)(null),O=(0,a.useRef)(null),B=f(e),D=(0,c.useSyncRefs)(...B?[O,t,I]:null===t?[]:[t]),F=null==(r=L.unmount)||r?p.RenderStrategy.Unmount:p.RenderStrategy.Hidden,{show:H,appear:z,initial:V}=function(){let e=(0,a.useContext)(x);if(null===e)throw Error("A is used but it is missing a parent or .");return e}(),[Y,X]=(0,a.useState)(H?"visible":"hidden"),G=function(){let e=(0,a.useContext)(C);if(null===e)throw Error("A is used but it is missing a parent or .");return e}(),{register:J,unregister:q}=G;(0,n.useIsoMorphicEffect)(()=>J(O),[J,O]),(0,n.useIsoMorphicEffect)(()=>{if(F===p.RenderStrategy.Hidden&&O.current)return H&&"visible"!==Y?void X("visible"):(0,h.match)(Y,{hidden:()=>q(O),visible:()=>J(O)})},[Y,O,J,q,H,F]);let U=(0,d.useServerHandoffComplete)();(0,n.useIsoMorphicEffect)(()=>{if(B&&U&&"visible"===Y&&null===O.current)throw Error("Did you forget to passthrough the `ref` to the actual DOM node?")},[O,Y,U,B]);let W=V&&!z,$=z&&H&&V,K=(0,a.useRef)(!1),Z=y(()=>{K.current||(X("hidden"),q(O))},G),Q=(0,l.useEvent)(e=>{K.current=!0,Z.onStart(O,e?"enter":"leave",e=>{"enter"===e?null==i||i():"leave"===e&&(null==_||_())})}),ee=(0,l.useEvent)(e=>{let t=e?"enter":"leave";K.current=!1,Z.onStop(O,t,e=>{"enter"===e?null==b||b():"leave"===e&&(null==k||k())}),"leave"!==t||v(Z)||(X("hidden"),q(O))});(0,a.useEffect)(()=>{B&&o||(Q(H),ee(H))},[H,B,o]);let et=!(!o||!B||!U||W),[,er]=(0,m.useTransition)(et,A,H,{start:Q,end:ee}),ea=(0,p.compact)({ref:D,className:(null==(s=(0,g.classNames)(L.className,$&&j,$&&S,er.enter&&j,er.enter&&er.closed&&S,er.enter&&!er.closed&&T,er.leave&&M,er.leave&&!er.closed&&R,er.leave&&er.closed&&P,!er.transition&&H&&E))?void 0:s.trim())||void 0,...(0,m.transitionDataAttributes)(er)}),es=0;"visible"===Y&&(es|=u.State.Open),"hidden"===Y&&(es|=u.State.Closed),er.enter&&(es|=u.State.Opening),er.leave&&(es|=u.State.Closing);let el=(0,p.useRender)();return a.default.createElement(C.Provider,{value:Z},a.default.createElement(u.OpenClosedProvider,{value:es},el({ourProps:ea,theirProps:L,defaultTag:N,features:w,visible:"visible"===Y,name:"Transition.Child"})))}),j=(0,p.forwardRefWithAs)(function(e,t){let r=null!==(0,a.useContext)(x),s=null!==(0,u.useOpenClosed)();return a.default.createElement(a.default.Fragment,null,!r&&s?a.default.createElement(_,{ref:t,...e}):a.default.createElement(k,{ref:t,...e}))}),S=Object.assign(_,{Child:j,Root:_});e.s(["Transition",0,S],854056)},206929,e=>{"use strict";var t=e.i(290571),r=e.i(757440),a=e.i(271645),s=e.i(446428),l=e.i(444755),o=e.i(673706),n=e.i(103471),i=e.i(495470),d=e.i(854056),c=e.i(888288);let m=(0,o.makeClassName)("Select"),u=a.default.forwardRef((e,o)=>{let{defaultValue:u="",value:g,onValueChange:h,placeholder:p="Select...",disabled:f=!1,icon:x,enableClear:b=!1,required:C,children:v,name:y,error:N=!1,errorMessage:w,className:_,id:k}=e,j=(0,t.__rest)(e,["defaultValue","value","onValueChange","placeholder","disabled","icon","enableClear","required","children","name","error","errorMessage","className","id"]),S=(0,a.useRef)(null),T=a.Children.toArray(v),[E,M]=(0,c.default)(u,g),R=(0,a.useMemo)(()=>{let e=a.default.Children.toArray(v).filter(a.isValidElement);return(0,n.constructValueToNameMapping)(e)},[v]);return a.default.createElement("div",{className:(0,l.tremorTwMerge)("w-full min-w-[10rem] text-tremor-default",_)},a.default.createElement("div",{className:"relative"},a.default.createElement("select",{title:"select-hidden",required:C,className:(0,l.tremorTwMerge)("h-full w-full absolute left-0 top-0 -z-10 opacity-0"),value:E,onChange:e=>{e.preventDefault()},name:y,disabled:f,id:k,onFocus:()=>{let e=S.current;e&&e.focus()}},a.default.createElement("option",{className:"hidden",value:"",disabled:!0,hidden:!0},p),T.map(e=>{let t=e.props.value,r=e.props.children;return a.default.createElement("option",{className:"hidden",key:t,value:t},r)})),a.default.createElement(i.Listbox,Object.assign({as:"div",ref:o,defaultValue:E,value:E,onChange:e=>{null==h||h(e),M(e)},disabled:f,id:k},j),({value:e})=>{var t;return a.default.createElement(a.default.Fragment,null,a.default.createElement(i.ListboxButton,{ref:S,className:(0,l.tremorTwMerge)("w-full outline-none text-left whitespace-nowrap truncate rounded-tremor-default focus:ring-2 transition duration-100 border pr-8 py-2","border-tremor-border shadow-tremor-input focus:border-tremor-brand-subtle focus:ring-tremor-brand-muted","dark:border-dark-tremor-border dark:shadow-dark-tremor-input dark:focus:border-dark-tremor-brand-subtle dark:focus:ring-dark-tremor-brand-muted",x?"pl-10":"pl-3",(0,n.getSelectButtonColors)((0,n.hasValue)(e),f,N))},x&&a.default.createElement("span",{className:(0,l.tremorTwMerge)("absolute inset-y-0 left-0 flex items-center ml-px pl-2.5")},a.default.createElement(x,{className:(0,l.tremorTwMerge)(m("Icon"),"flex-none h-5 w-5","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")})),a.default.createElement("span",{className:"w-[90%] block truncate"},e&&null!=(t=R.get(e))?t:p),a.default.createElement("span",{className:(0,l.tremorTwMerge)("absolute inset-y-0 right-0 flex items-center mr-3")},a.default.createElement(r.default,{className:(0,l.tremorTwMerge)(m("arrowDownIcon"),"flex-none h-5 w-5","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")}))),b&&E?a.default.createElement("button",{type:"button",className:(0,l.tremorTwMerge)("absolute inset-y-0 right-0 flex items-center mr-8"),onClick:e=>{e.preventDefault(),M(""),null==h||h("")}},a.default.createElement(s.default,{className:(0,l.tremorTwMerge)(m("clearIcon"),"flex-none h-4 w-4","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")})):null,a.default.createElement(d.Transition,{enter:"transition ease duration-100 transform",enterFrom:"opacity-0 -translate-y-4",enterTo:"opacity-100 translate-y-0",leave:"transition ease duration-100 transform",leaveFrom:"opacity-100 translate-y-0",leaveTo:"opacity-0 -translate-y-4"},a.default.createElement(i.ListboxOptions,{anchor:"bottom start",className:(0,l.tremorTwMerge)("z-10 w-[var(--button-width)] divide-y overflow-y-auto outline-none rounded-tremor-default max-h-[228px] border [--anchor-gap:4px]","bg-tremor-background border-tremor-border divide-tremor-border shadow-tremor-dropdown","dark:bg-dark-tremor-background dark:border-dark-tremor-border dark:divide-dark-tremor-border dark:shadow-dark-tremor-dropdown")},v)))})),N&&w?a.default.createElement("p",{className:(0,l.tremorTwMerge)("errorMessage","text-sm text-rose-500 mt-1")},w):null)});u.displayName="Select",e.s(["Select",0,u],206929)},689020,e=>{"use strict";var t=e.i(764205);let r=async e=>{try{let r=await (0,t.modelHubCall)(e);if(console.log("model_info:",r),r?.data.length>0){let e=r.data.map(e=>({model_group:e.model_group,mode:e?.mode}));return e.sort((e,t)=>e.model_group.localeCompare(t.model_group)),e}return[]}catch(e){throw console.error("Error fetching model info:",e),e}};e.s(["fetchAvailableModels",0,r])},599724,936325,e=>{"use strict";var t=e.i(95779),r=e.i(444755),a=e.i(673706),s=e.i(271645);let l=s.default.forwardRef((e,l)=>{let{color:o,className:n,children:i}=e;return s.default.createElement("p",{ref:l,className:(0,r.tremorTwMerge)("text-tremor-default",o?(0,a.getColorClassNames)(o,t.colorPalette.text).textColor:(0,r.tremorTwMerge)("text-tremor-content","dark:text-dark-tremor-content"),n)},i)});l.displayName="Text",e.s(["default",0,l],936325),e.s(["Text",0,l],599724)},994388,e=>{"use strict";var t=e.i(290571),r=e.i(829087),a=e.i(271645);let s=["preEnter","entering","entered","preExit","exiting","exited","unmounted"],l=e=>({_s:e,status:s[e],isEnter:e<3,isMounted:6!==e,isResolved:2===e||e>4}),o=e=>e?6:5,n=(e,t,r,a,s)=>{clearTimeout(a.current);let o=l(e);t(o),r.current=o,s&&s({current:o})};var i=e.i(480731),d=e.i(444755),c=e.i(673706);let m=e=>{var r=(0,t.__rest)(e,[]);return a.default.createElement("svg",Object.assign({},r,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"}),a.default.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}),a.default.createElement("path",{d:"M18.364 5.636L16.95 7.05A7 7 0 1 0 19 12h2a9 9 0 1 1-2.636-6.364z"}))};var u=e.i(95779);let g={xs:{height:"h-4",width:"w-4"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-6",width:"w-6"},xl:{height:"h-6",width:"w-6"}},h=(e,t)=>{switch(e){case"primary":return{textColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",hoverTextColor:t?(0,c.getColorClassNames)("white").textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,c.getColorClassNames)(t,u.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",hoverBgColor:t?(0,c.getColorClassNames)(t,u.colorPalette.darkBackground).hoverBgColor:"hover:bg-tremor-brand-emphasis dark:hover:bg-dark-tremor-brand-emphasis",borderColor:t?(0,c.getColorClassNames)(t,u.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",hoverBorderColor:t?(0,c.getColorClassNames)(t,u.colorPalette.darkBorder).hoverBorderColor:"hover:border-tremor-brand-emphasis dark:hover:border-dark-tremor-brand-emphasis"};case"secondary":return{textColor:t?(0,c.getColorClassNames)(t,u.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,u.colorPalette.text).textColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,hoverBgColor:t?(0,d.tremorTwMerge)((0,c.getColorClassNames)(t,u.colorPalette.background).hoverBgColor,"hover:bg-opacity-20 dark:hover:bg-opacity-20"):"hover:bg-tremor-brand-faint dark:hover:bg-dark-tremor-brand-faint",borderColor:t?(0,c.getColorClassNames)(t,u.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand"};case"light":return{textColor:t?(0,c.getColorClassNames)(t,u.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",hoverTextColor:t?(0,c.getColorClassNames)(t,u.colorPalette.darkText).hoverTextColor:"hover:text-tremor-brand-emphasis dark:hover:text-dark-tremor-brand-emphasis",bgColor:(0,c.getColorClassNames)("transparent").bgColor,borderColor:"",hoverBorderColor:""}}},p=(0,c.makeClassName)("Button"),f=({loading:e,iconSize:t,iconPosition:r,Icon:s,needMargin:l,transitionStatus:o})=>{let n=l?r===i.HorizontalPositions.Left?(0,d.tremorTwMerge)("-ml-1","mr-1.5"):(0,d.tremorTwMerge)("-mr-1","ml-1.5"):"",c=(0,d.tremorTwMerge)("w-0 h-0"),u={default:c,entering:c,entered:t,exiting:t,exited:c};return e?a.default.createElement(m,{className:(0,d.tremorTwMerge)(p("icon"),"animate-spin shrink-0",n,u.default,u[o]),style:{transition:"width 150ms"}}):a.default.createElement(s,{className:(0,d.tremorTwMerge)(p("icon"),"shrink-0",t,n)})},x=a.default.forwardRef((e,s)=>{let{icon:m,iconPosition:u=i.HorizontalPositions.Left,size:x=i.Sizes.SM,color:b,variant:C="primary",disabled:v,loading:y=!1,loadingText:N,children:w,tooltip:_,className:k}=e,j=(0,t.__rest)(e,["icon","iconPosition","size","color","variant","disabled","loading","loadingText","children","tooltip","className"]),S=y||v,T=void 0!==m||y,E=y&&N,M=!(!w&&!E),R=(0,d.tremorTwMerge)(g[x].height,g[x].width),P="light"!==C?(0,d.tremorTwMerge)("rounded-tremor-default border","shadow-tremor-input","dark:shadow-dark-tremor-input"):"",L=h(C,b),A=("light"!==C?{xs:{paddingX:"px-2.5",paddingY:"py-1.5",fontSize:"text-xs"},sm:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-sm"},md:{paddingX:"px-4",paddingY:"py-2",fontSize:"text-md"},lg:{paddingX:"px-4",paddingY:"py-2.5",fontSize:"text-lg"},xl:{paddingX:"px-4",paddingY:"py-3",fontSize:"text-xl"}}:{xs:{paddingX:"",paddingY:"",fontSize:"text-xs"},sm:{paddingX:"",paddingY:"",fontSize:"text-sm"},md:{paddingX:"",paddingY:"",fontSize:"text-md"},lg:{paddingX:"",paddingY:"",fontSize:"text-lg"},xl:{paddingX:"",paddingY:"",fontSize:"text-xl"}})[x],{tooltipProps:I,getReferenceProps:O}=(0,r.useTooltip)(300),[B,D]=(({enter:e=!0,exit:t=!0,preEnter:r,preExit:s,timeout:i,initialEntered:d,mountOnEnter:c,unmountOnExit:m,onStateChange:u}={})=>{let[g,h]=(0,a.useState)(()=>l(d?2:o(c))),p=(0,a.useRef)(g),f=(0,a.useRef)(0),[x,b]="object"==typeof i?[i.enter,i.exit]:[i,i],C=(0,a.useCallback)(()=>{let e=((e,t)=>{switch(e){case 1:case 0:return 2;case 4:case 3:return o(t)}})(p.current._s,m);e&&n(e,h,p,f,u)},[u,m]);return[g,(0,a.useCallback)(a=>{let l=e=>{switch(n(e,h,p,f,u),e){case 1:x>=0&&(f.current=((...e)=>setTimeout(...e))(C,x));break;case 4:b>=0&&(f.current=((...e)=>setTimeout(...e))(C,b));break;case 0:case 3:f.current=((...e)=>setTimeout(...e))(()=>{isNaN(document.body.offsetTop)||l(e+1)},0)}},i=p.current.isEnter;"boolean"!=typeof a&&(a=!i),a?i||l(e?+!r:2):i&&l(t?s?3:4:o(m))},[C,u,e,t,r,s,x,b,m]),C]})({timeout:50});return(0,a.useEffect)(()=>{D(y)},[y]),a.default.createElement("button",Object.assign({ref:(0,c.mergeRefs)([s,I.refs.setReference]),className:(0,d.tremorTwMerge)(p("root"),"shrink-0 inline-flex justify-center items-center group font-medium outline-none",P,A.paddingX,A.paddingY,A.fontSize,L.textColor,L.bgColor,L.borderColor,L.hoverBorderColor,S?"opacity-50 cursor-not-allowed":(0,d.tremorTwMerge)(h(C,b).hoverTextColor,h(C,b).hoverBgColor,h(C,b).hoverBorderColor),k),disabled:S},O,j),a.default.createElement(r.default,Object.assign({text:_},I)),T&&u!==i.HorizontalPositions.Right?a.default.createElement(f,{loading:y,iconSize:R,iconPosition:u,Icon:m,transitionStatus:B.status,needMargin:M}):null,E||w?a.default.createElement("span",{className:(0,d.tremorTwMerge)(p("text"),"text-tremor-default whitespace-nowrap")},E?N:w):null,T&&u===i.HorizontalPositions.Right?a.default.createElement(f,{loading:y,iconSize:R,iconPosition:u,Icon:m,transitionStatus:B.status,needMargin:M}):null)});x.displayName="Button",e.s(["Button",0,x],994388)},304967,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(480731),s=e.i(95779),l=e.i(444755),o=e.i(673706);let n=(0,o.makeClassName)("Card"),i=r.default.forwardRef((e,i)=>{let{decoration:d="",decorationColor:c,children:m,className:u}=e,g=(0,t.__rest)(e,["decoration","decorationColor","children","className"]);return r.default.createElement("div",Object.assign({ref:i,className:(0,l.tremorTwMerge)(n("root"),"relative w-full text-left ring-1 rounded-tremor-default p-6","bg-tremor-background ring-tremor-ring shadow-tremor-card","dark:bg-dark-tremor-background dark:ring-dark-tremor-ring dark:shadow-dark-tremor-card",c?(0,o.getColorClassNames)(c,s.colorPalette.border).borderColor:"border-tremor-brand dark:border-dark-tremor-brand",(e=>{if(!e)return"";switch(e){case a.HorizontalPositions.Left:return"border-l-4";case a.VerticalPositions.Top:return"border-t-4";case a.HorizontalPositions.Right:return"border-r-4";case a.VerticalPositions.Bottom:return"border-b-4";default:return""}})(d),u)},g),m)});i.displayName="Card",e.s(["Card",0,i],304967)},350967,46757,e=>{"use strict";var t=e.i(290571),r=e.i(444755),a=e.i(673706),s=e.i(271645);let l={0:"grid-cols-none",1:"grid-cols-1",2:"grid-cols-2",3:"grid-cols-3",4:"grid-cols-4",5:"grid-cols-5",6:"grid-cols-6",7:"grid-cols-7",8:"grid-cols-8",9:"grid-cols-9",10:"grid-cols-10",11:"grid-cols-11",12:"grid-cols-12"},o={0:"sm:grid-cols-none",1:"sm:grid-cols-1",2:"sm:grid-cols-2",3:"sm:grid-cols-3",4:"sm:grid-cols-4",5:"sm:grid-cols-5",6:"sm:grid-cols-6",7:"sm:grid-cols-7",8:"sm:grid-cols-8",9:"sm:grid-cols-9",10:"sm:grid-cols-10",11:"sm:grid-cols-11",12:"sm:grid-cols-12"},n={0:"md:grid-cols-none",1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3",4:"md:grid-cols-4",5:"md:grid-cols-5",6:"md:grid-cols-6",7:"md:grid-cols-7",8:"md:grid-cols-8",9:"md:grid-cols-9",10:"md:grid-cols-10",11:"md:grid-cols-11",12:"md:grid-cols-12"},i={0:"lg:grid-cols-none",1:"lg:grid-cols-1",2:"lg:grid-cols-2",3:"lg:grid-cols-3",4:"lg:grid-cols-4",5:"lg:grid-cols-5",6:"lg:grid-cols-6",7:"lg:grid-cols-7",8:"lg:grid-cols-8",9:"lg:grid-cols-9",10:"lg:grid-cols-10",11:"lg:grid-cols-11",12:"lg:grid-cols-12"};e.s(["colSpan",0,{1:"col-span-1",2:"col-span-2",3:"col-span-3",4:"col-span-4",5:"col-span-5",6:"col-span-6",7:"col-span-7",8:"col-span-8",9:"col-span-9",10:"col-span-10",11:"col-span-11",12:"col-span-12",13:"col-span-13"},"colSpanLg",0,{1:"lg:col-span-1",2:"lg:col-span-2",3:"lg:col-span-3",4:"lg:col-span-4",5:"lg:col-span-5",6:"lg:col-span-6",7:"lg:col-span-7",8:"lg:col-span-8",9:"lg:col-span-9",10:"lg:col-span-10",11:"lg:col-span-11",12:"lg:col-span-12",13:"lg:col-span-13"},"colSpanMd",0,{1:"md:col-span-1",2:"md:col-span-2",3:"md:col-span-3",4:"md:col-span-4",5:"md:col-span-5",6:"md:col-span-6",7:"md:col-span-7",8:"md:col-span-8",9:"md:col-span-9",10:"md:col-span-10",11:"md:col-span-11",12:"md:col-span-12",13:"md:col-span-13"},"colSpanSm",0,{1:"sm:col-span-1",2:"sm:col-span-2",3:"sm:col-span-3",4:"sm:col-span-4",5:"sm:col-span-5",6:"sm:col-span-6",7:"sm:col-span-7",8:"sm:col-span-8",9:"sm:col-span-9",10:"sm:col-span-10",11:"sm:col-span-11",12:"sm:col-span-12",13:"sm:col-span-13"},"gridCols",0,l,"gridColsLg",0,i,"gridColsMd",0,n,"gridColsSm",0,o],46757);let d=(0,a.makeClassName)("Grid"),c=(e,t)=>e&&Object.keys(t).includes(String(e))?t[e]:"",m=s.default.forwardRef((e,a)=>{let{numItems:m=1,numItemsSm:u,numItemsMd:g,numItemsLg:h,children:p,className:f}=e,x=(0,t.__rest)(e,["numItems","numItemsSm","numItemsMd","numItemsLg","children","className"]),b=c(m,l),C=c(u,o),v=c(g,n),y=c(h,i),N=(0,r.tremorTwMerge)(b,C,v,y);return s.default.createElement("div",Object.assign({ref:a,className:(0,r.tremorTwMerge)(d("root"),"grid",N,f)},x),p)});m.displayName="Grid",e.s(["Grid",0,m],350967)},309426,e=>{"use strict";var t=e.i(290571),r=e.i(444755),a=e.i(673706),s=e.i(271645),l=e.i(46757);let o=(0,a.makeClassName)("Col"),n=s.default.forwardRef((e,a)=>{let n,i,d,c,{numColSpan:m=1,numColSpanSm:u,numColSpanMd:g,numColSpanLg:h,children:p,className:f}=e,x=(0,t.__rest)(e,["numColSpan","numColSpanSm","numColSpanMd","numColSpanLg","children","className"]),b=(e,t)=>e&&Object.keys(t).includes(String(e))?t[e]:"";return s.default.createElement("div",Object.assign({ref:a,className:(0,r.tremorTwMerge)(o("root"),(n=b(m,l.colSpan),i=b(u,l.colSpanSm),d=b(g,l.colSpanMd),c=b(h,l.colSpanLg),(0,r.tremorTwMerge)(n,i,d,c)),f)},x),p)});n.displayName="Col",e.s(["Col",0,n],309426)},439189,435684,96226,497245,e=>{"use strict";function t(e){let t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new e.constructor(+e):new Date("number"==typeof e||"[object Number]"===t||"string"==typeof e||"[object String]"===t?e:NaN)}function r(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}e.s(["toDate",0,t],435684),e.s(["constructFrom",0,r],96226),e.s(["addDays",0,function(e,a){let s=t(e);return isNaN(a)?r(e,NaN):(a&&s.setDate(s.getDate()+a),s)}],439189),e.s(["addMonths",0,function(e,a){let s=t(e);if(isNaN(a))return r(e,NaN);if(!a)return s;let l=s.getDate(),o=r(e,s.getTime());return(o.setMonth(s.getMonth()+a+1,0),l>=o.getDate())?o:(s.setFullYear(o.getFullYear(),o.getMonth(),l),s)}],497245)},37091,e=>{"use strict";var t=e.i(290571),r=e.i(95779),a=e.i(444755),s=e.i(673706),l=e.i(271645);let o=l.default.forwardRef((e,o)=>{let{color:n,children:i,className:d}=e,c=(0,t.__rest)(e,["color","children","className"]);return l.default.createElement("p",Object.assign({ref:o,className:(0,a.tremorTwMerge)(n?(0,s.getColorClassNames)(n,r.colorPalette.lightText).textColor:"text-tremor-content-emphasis dark:text-dark-tremor-content-emphasis",d)},c),i)});o.displayName="Subtitle",e.s(["Subtitle",0,o],37091)},559061,e=>{"use strict";var t=e.i(843476),r=e.i(584935),a=e.i(304967),s=e.i(309426),l=e.i(350967),o=e.i(752978),n=e.i(621642),i=e.i(25080),d=e.i(37091),c=e.i(197647),m=e.i(653824),u=e.i(881073),g=e.i(404206),h=e.i(723731),p=e.i(599724),f=e.i(271645),x=e.i(727749),b=e.i(144267),C=e.i(278587),v=e.i(764205),y=e.i(994388),N=e.i(220508),w=e.i(964306),_=e.i(551332);let k=({responseTimeMs:e})=>null==e?null:(0,t.jsxs)("div",{className:"flex items-center space-x-1 text-xs text-gray-500 font-mono",children:[(0,t.jsx)("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:"M12 6V12L16 14M12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,t.jsxs)("span",{children:[e.toFixed(0),"ms"]})]}),j=e=>{let t=e;if("string"==typeof t)try{t=JSON.parse(t)}catch{}return t},S=({label:e,value:r})=>{let[a,s]=f.default.useState(!1),[l,o]=f.default.useState(!1),n=r?.toString()||"N/A",i=n.length>50?n.substring(0,50)+"...":n;return(0,t.jsx)("tr",{className:"hover:bg-gray-50",children:(0,t.jsx)("td",{className:"px-4 py-2 align-top",colSpan:2,children:(0,t.jsxs)("div",{className:"flex items-center justify-between group",children:[(0,t.jsxs)("div",{className:"flex items-center flex-1",children:[(0,t.jsx)("button",{onClick:()=>s(!a),className:"text-gray-400 hover:text-gray-600 mr-2",children:a?"▼":"▶"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-sm text-gray-600",children:e}),(0,t.jsx)("pre",{className:"mt-1 text-sm font-mono text-gray-800 whitespace-pre-wrap",children:a?n:i})]})]}),(0,t.jsx)("button",{onClick:()=>{navigator.clipboard.writeText(n),o(!0),setTimeout(()=>o(!1),2e3)},className:"opacity-0 group-hover:opacity-100 text-gray-400 hover:text-gray-600",children:(0,t.jsx)(_.ClipboardCopyIcon,{className:"h-4 w-4"})})]})})})},T=({response:e})=>{let r=null,a={},s={};try{if(e?.error)try{let t="string"==typeof e.error.message?JSON.parse(e.error.message):e.error.message;r={message:t?.message||"Unknown error",traceback:t?.traceback||"No traceback available",litellm_params:t?.litellm_cache_params||{},health_check_cache_params:t?.health_check_cache_params||{}},a=j(r.litellm_params)||{},s=j(r.health_check_cache_params)||{}}catch(t){console.warn("Error parsing error details:",t),r={message:String(e.error.message||"Unknown error"),traceback:"Error parsing details",litellm_params:{},health_check_cache_params:{}}}else a=j(e?.litellm_cache_params)||{},s=j(e?.health_check_cache_params)||{}}catch(e){console.warn("Error in response parsing:",e),a={},s={}}let l={redis_host:s?.redis_client?.connection_pool?.connection_kwargs?.host||s?.redis_async_client?.connection_pool?.connection_kwargs?.host||s?.connection_kwargs?.host||s?.host||"N/A",redis_port:s?.redis_client?.connection_pool?.connection_kwargs?.port||s?.redis_async_client?.connection_pool?.connection_kwargs?.port||s?.connection_kwargs?.port||s?.port||"N/A",redis_version:s?.redis_version||"N/A",startup_nodes:(()=>{try{if(s?.redis_kwargs?.startup_nodes)return JSON.stringify(s.redis_kwargs.startup_nodes);let e=s?.redis_client?.connection_pool?.connection_kwargs?.host||s?.redis_async_client?.connection_pool?.connection_kwargs?.host,t=s?.redis_client?.connection_pool?.connection_kwargs?.port||s?.redis_async_client?.connection_pool?.connection_kwargs?.port;return e&&t?JSON.stringify([{host:e,port:t}]):"N/A"}catch(e){return"N/A"}})(),namespace:s?.namespace||"N/A"};return(0,t.jsx)("div",{className:"bg-white rounded-lg shadow",children:(0,t.jsxs)(m.TabGroup,{children:[(0,t.jsxs)(u.TabList,{className:"border-b border-gray-200 px-4",children:[(0,t.jsx)(c.Tab,{className:"px-4 py-2 text-sm font-medium text-gray-600 hover:text-gray-800",children:"Summary"}),(0,t.jsx)(c.Tab,{className:"px-4 py-2 text-sm font-medium text-gray-600 hover:text-gray-800",children:"Raw Response"})]}),(0,t.jsxs)(h.TabPanels,{children:[(0,t.jsx)(g.TabPanel,{className:"p-4",children:(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center mb-6",children:[e?.status==="healthy"?(0,t.jsx)(N.CheckCircleIcon,{className:"h-5 w-5 text-green-500 mr-2"}):(0,t.jsx)(w.XCircleIcon,{className:"h-5 w-5 text-red-500 mr-2"}),(0,t.jsxs)(p.Text,{className:`text-sm font-medium ${e?.status==="healthy"?"text-green-500":"text-red-500"}`,children:["Cache Status: ",e?.status||"unhealthy"]})]}),(0,t.jsx)("table",{className:"w-full border-collapse",children:(0,t.jsxs)("tbody",{children:[r&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("tr",{children:(0,t.jsx)("td",{colSpan:2,className:"pt-4 pb-2 font-semibold text-red-600",children:"Error Details"})}),(0,t.jsx)(S,{label:"Error Message",value:r.message}),(0,t.jsx)(S,{label:"Traceback",value:r.traceback})]}),(0,t.jsx)("tr",{children:(0,t.jsx)("td",{colSpan:2,className:"pt-4 pb-2 font-semibold",children:"Cache Details"})}),(0,t.jsx)(S,{label:"Cache Configuration",value:String(a?.type)}),(0,t.jsx)(S,{label:"Ping Response",value:String(e.ping_response)}),(0,t.jsx)(S,{label:"Set Cache Response",value:e.set_cache_response||"N/A"}),(0,t.jsx)(S,{label:"litellm_settings.cache_params",value:JSON.stringify(a,null,2)}),a?.type==="redis"&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("tr",{children:(0,t.jsx)("td",{colSpan:2,className:"pt-4 pb-2 font-semibold",children:"Redis Details"})}),(0,t.jsx)(S,{label:"Redis Host",value:l.redis_host||"N/A"}),(0,t.jsx)(S,{label:"Redis Port",value:l.redis_port||"N/A"}),(0,t.jsx)(S,{label:"Redis Version",value:l.redis_version||"N/A"}),(0,t.jsx)(S,{label:"Startup Nodes",value:l.startup_nodes||"N/A"}),(0,t.jsx)(S,{label:"Namespace",value:l.namespace||"N/A"})]})]})})]})}),(0,t.jsx)(g.TabPanel,{className:"p-4",children:(0,t.jsx)("div",{className:"bg-gray-50 rounded-md p-4 font-mono text-sm",children:(0,t.jsx)("pre",{className:"whitespace-pre-wrap break-words overflow-auto max-h-[500px]",children:(()=>{try{let t={...e,litellm_cache_params:a,health_check_cache_params:s},r=JSON.parse(JSON.stringify(t,(e,t)=>{if("string"==typeof t)try{return JSON.parse(t)}catch{}return t}));return JSON.stringify(r,null,2)}catch(e){return"Error formatting JSON: "+e.message}})()})})})]})]})})},E=({accessToken:e,healthCheckResponse:r,runCachingHealthCheck:a,responseTimeMs:s})=>{let[l,o]=f.default.useState(null),[n,i]=f.default.useState(!1),d=async()=>{i(!0);let e=performance.now();await a(),o(performance.now()-e),i(!1)};return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)(y.Button,{onClick:d,disabled:n,className:"bg-indigo-600 hover:bg-indigo-700 disabled:bg-indigo-400 text-white text-sm px-4 py-2 rounded-md",children:n?"Running Health Check...":"Run Health Check"}),(0,t.jsx)(k,{responseTimeMs:l})]}),r&&(0,t.jsx)(T,{response:r})]})};var M=e.i(677667),R=e.i(898667),P=e.i(130643),L=e.i(206929),A=e.i(35983);let I=({redisType:e,redisTypeDescriptions:r,onTypeChange:a})=>(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Redis Type"}),(0,t.jsxs)(L.Select,{value:e,onValueChange:a,children:[(0,t.jsx)(A.SelectItem,{value:"node",children:"Node (Single Instance)"}),(0,t.jsx)(A.SelectItem,{value:"cluster",children:"Cluster"}),(0,t.jsx)(A.SelectItem,{value:"sentinel",children:"Sentinel"}),(0,t.jsx)(A.SelectItem,{value:"semantic",children:"Semantic"})]}),(0,t.jsx)("p",{className:"text-xs text-gray-500",children:r[e]||"Select the type of Redis deployment you're using"})]});var O=e.i(135214),B=e.i(620250),D=e.i(779241),F=e.i(199133),H=e.i(689020),z=e.i(435451);let V=({field:e,currentValue:r})=>{let[a,s]=(0,f.useState)([]),[l,o]=(0,f.useState)(r||""),{accessToken:n}=(0,O.default)();if((0,f.useEffect)(()=>{n&&(async()=>{try{let e=await (0,H.fetchAvailableModels)(n);console.log("Fetched models for selector:",e),e.length>0&&s(e)}catch(e){console.error("Error fetching model info:",e)}})()},[n]),"Boolean"===e.field_type)return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:e.ui_field_name}),(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)("input",{type:"checkbox",name:e.field_name,defaultChecked:!0===r||"true"===r,className:"h-4 w-4 text-indigo-600 focus:ring-indigo-500 border-gray-300 rounded"}),(0,t.jsx)("span",{className:"ml-2 text-sm text-gray-500",children:e.field_description})]})]});if("Integer"===e.field_type||"Float"===e.field_type)return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:e.ui_field_name}),(0,t.jsx)(z.default,{name:e.field_name,type:"number",defaultValue:r,placeholder:e.field_description}),(0,t.jsx)("p",{className:"text-xs text-gray-500",children:e.field_description})]});if("List"===e.field_type)return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:e.ui_field_name}),(0,t.jsx)("textarea",{name:e.field_name,defaultValue:"object"==typeof r?JSON.stringify(r,null,2):r,placeholder:e.field_description,className:"w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500",rows:4}),(0,t.jsx)("p",{className:"text-xs text-gray-500",children:e.field_description})]});if("Models_Select"===e.field_type){let r=a.filter(e=>"embedding"===e.mode).map(e=>({value:e.model_group,label:e.model_group}));return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:e.ui_field_name}),(0,t.jsx)(F.Select,{value:l,onChange:o,showSearch:!0,placeholder:"Search and select a model...",options:r,style:{width:"100%"},className:"rounded-md",filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase())}),(0,t.jsx)("input",{type:"hidden",name:e.field_name,value:l}),e.field_description&&(0,t.jsx)("p",{className:"text-xs text-gray-500",children:e.field_description})]})}if("Integer"===e.field_type||"Float"===e.field_type)return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:e.ui_field_name}),(0,t.jsx)(B.NumberInput,{name:e.field_name,defaultValue:r,placeholder:e.field_description,step:"Float"===e.field_type?.01:1}),e.field_description&&(0,t.jsx)("p",{className:"text-xs text-gray-500",children:e.field_description})]});let i="password"===e.field_name||e.field_name.includes("password")?"password":"text";return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:e.ui_field_name}),(0,t.jsx)(D.TextInput,{name:e.field_name,type:i,defaultValue:r,placeholder:e.field_description}),e.field_description&&(0,t.jsx)("p",{className:"text-xs text-gray-500",children:e.field_description})]})},Y=(e,t)=>e.find(e=>e.field_name===t),X=(e,t)=>{let r={type:"redis"};return e.forEach(e=>{if("redis_type"===e.field_name||null!==e.redis_type&&void 0!==e.redis_type&&e.redis_type!==t)return;let a=e.field_name,s=null;if("Boolean"===e.field_type){let e=document.querySelector(`input[name="${a}"]`);e?.checked!==void 0&&(s=e.checked)}else if("List"===e.field_type){let e=document.querySelector(`textarea[name="${a}"]`);if(e?.value)try{s=JSON.parse(e.value)}catch(e){console.error(`Invalid JSON for ${a}:`,e)}}else{let t=document.querySelector(`input[name="${a}"]`);if(t?.value){let r=t.value.trim();if(""!==r)if("Integer"===e.field_type){let e=Number(r);isNaN(e)||(s=e)}else if("Float"===e.field_type){let e=Number(r);isNaN(e)||(s=e)}else s=r}}null!=s&&(r[a]=s)}),r},G=({accessToken:e,userRole:r,userID:a})=>{let s,l,o,n,i,[d,c]=(0,f.useState)({}),[m,u]=(0,f.useState)([]),[g,h]=(0,f.useState)({}),[p,b]=(0,f.useState)("node"),[C,N]=(0,f.useState)(!1),[w,_]=(0,f.useState)(!1),k=(0,f.useCallback)(async()=>{try{let t=await (0,v.getCacheSettingsCall)(e);console.log("cache settings from API",t),t.fields&&u(t.fields),t.current_values&&(c(t.current_values),t.current_values.redis_type&&b(t.current_values.redis_type)),t.redis_type_descriptions&&h(t.redis_type_descriptions)}catch(e){console.error("Failed to load cache settings:",e),x.default.fromBackend("Failed to load cache settings")}},[e]);(0,f.useEffect)(()=>{e&&k()},[e,k]);let j=async()=>{if(e){N(!0);try{let t=X(m,p),r=await (0,v.testCacheConnectionCall)(e,t);"success"===r.status?x.default.success("Cache connection test successful!"):x.default.fromBackend(`Connection test failed: ${r.message||r.error}`)}catch(e){console.error("Test connection error:",e),x.default.fromBackend(`Connection test failed: ${e.message||"Unknown error"}`)}finally{N(!1)}}},S=async()=>{if(e){_(!0);try{let t=X(m,p);"semantic"===p&&(t.type="redis-semantic"),await (0,v.updateCacheSettingsCall)(e,t),x.default.success("Cache settings updated successfully"),await k()}catch(e){console.error("Failed to save cache settings:",e),x.default.fromBackend("Failed to update cache settings")}finally{_(!1)}}};if(!e)return null;let{basicFields:T,sslFields:E,cacheManagementFields:L,gcpFields:A,clusterFields:O,sentinelFields:B,semanticFields:D}=(s=["host","port","password","username"].map(e=>Y(m,e)).filter(Boolean),l=["ssl","ssl_cert_reqs","ssl_check_hostname"].map(e=>Y(m,e)).filter(Boolean),o=["namespace","ttl","max_connections"].map(e=>Y(m,e)).filter(Boolean),n=["gcp_service_account","gcp_ssl_ca_certs"].map(e=>Y(m,e)).filter(Boolean),i=m.filter(e=>"cluster"===e.redis_type),{basicFields:s,sslFields:l,cacheManagementFields:o,gcpFields:n,clusterFields:i,sentinelFields:m.filter(e=>"sentinel"===e.redis_type),semanticFields:m.filter(e=>"semantic"===e.redis_type)});return(0,t.jsxs)("div",{className:"w-full space-y-8 py-2",children:[(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"max-w-3xl",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-gray-900",children:"Cache Settings"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:"Configure Redis cache for LiteLLM"})]}),(0,t.jsx)(I,{redisType:p,redisTypeDescriptions:g,onTypeChange:b}),(0,t.jsxs)("div",{className:"space-y-6 pt-4 border-t border-gray-200",children:[(0,t.jsx)("h4",{className:"text-sm font-medium text-gray-900",children:"Connection Settings"}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 sm:grid-cols-2",children:T.map(e=>{if(!e)return null;let r=d[e.field_name]??e.field_default??"";return(0,t.jsx)(V,{field:e,currentValue:r},e.field_name)})})]}),"cluster"===p&&O.length>0&&(0,t.jsxs)("div",{className:"space-y-6 pt-4 border-t border-gray-200",children:[(0,t.jsx)("h4",{className:"text-sm font-medium text-gray-900",children:"Cluster Configuration"}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6",children:O.map(e=>{let r=d[e.field_name]??e.field_default??"";return(0,t.jsx)(V,{field:e,currentValue:r},e.field_name)})})]}),"sentinel"===p&&B.length>0&&(0,t.jsxs)("div",{className:"space-y-6 pt-4 border-t border-gray-200",children:[(0,t.jsx)("h4",{className:"text-sm font-medium text-gray-900",children:"Sentinel Configuration"}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 sm:grid-cols-2",children:B.map(e=>{let r=d[e.field_name]??e.field_default??"";return(0,t.jsx)(V,{field:e,currentValue:r},e.field_name)})})]}),"semantic"===p&&D.length>0&&(0,t.jsxs)("div",{className:"space-y-6 pt-4 border-t border-gray-200",children:[(0,t.jsx)("h4",{className:"text-sm font-medium text-gray-900",children:"Semantic Configuration"}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 sm:grid-cols-2",children:D.map(e=>{let r=d[e.field_name]??e.field_default??"";return(0,t.jsx)(V,{field:e,currentValue:r},e.field_name)})})]}),(0,t.jsxs)(M.Accordion,{className:"mt-4",children:[(0,t.jsx)(R.AccordionHeader,{children:(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900",children:"Advanced Settings"})}),(0,t.jsx)(P.AccordionBody,{children:(0,t.jsxs)("div",{className:"space-y-6",children:[E.length>0&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)("h5",{className:"text-sm font-medium text-gray-700",children:"SSL Settings"}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 sm:grid-cols-2",children:E.map(e=>{if(!e)return null;let r=d[e.field_name]??e.field_default??"";return(0,t.jsx)(V,{field:e,currentValue:r},e.field_name)})})]}),L.length>0&&(0,t.jsxs)("div",{className:"space-y-4 pt-4 border-t border-gray-200",children:[(0,t.jsx)("h5",{className:"text-sm font-medium text-gray-700",children:"Cache Management"}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 sm:grid-cols-2",children:L.map(e=>{if(!e)return null;let r=d[e.field_name]??e.field_default??"";return(0,t.jsx)(V,{field:e,currentValue:r},e.field_name)})})]}),A.length>0&&(0,t.jsxs)("div",{className:"space-y-4 pt-4 border-t border-gray-200",children:[(0,t.jsx)("h5",{className:"text-sm font-medium text-gray-700",children:"GCP Authentication"}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-6 sm:grid-cols-2",children:A.map(e=>{if(!e)return null;let r=d[e.field_name]??e.field_default??"";return(0,t.jsx)(V,{field:e,currentValue:r},e.field_name)})})]})]})})]})]}),(0,t.jsxs)("div",{className:"border-t border-gray-200 pt-6 flex justify-end gap-3",children:[(0,t.jsx)(y.Button,{variant:"secondary",size:"sm",onClick:j,disabled:C,className:"text-sm",children:C?"Testing...":"Test Connection"}),(0,t.jsx)(y.Button,{size:"sm",onClick:S,disabled:w,className:"text-sm font-medium",children:w?"Saving...":"Save Changes"})]})]})},J=e=>{if(e)return e.toISOString().split("T")[0]};function q(e){return new Intl.NumberFormat("en-US",{maximumFractionDigits:0,notation:"compact",compactDisplay:"short"}).format(e)}e.s(["default",0,({accessToken:e,token:y,userRole:N,userID:w,premiumUser:_})=>{let[k,j]=(0,f.useState)([]),[S,T]=(0,f.useState)([]),[M,R]=(0,f.useState)([]),[P,L]=(0,f.useState)([]),[A,I]=(0,f.useState)("0"),[O,B]=(0,f.useState)("0"),[D,F]=(0,f.useState)("0"),[H,z]=(0,f.useState)({from:new Date(Date.now()-6048e5),to:new Date}),[V,Y]=(0,f.useState)(""),[X,U]=(0,f.useState)("");(0,f.useEffect)(()=>{e&&H&&((async()=>{L(await (0,v.adminGlobalCacheActivity)(e,J(H.from),J(H.to)))})(),Y(new Date().toLocaleString()))},[e]);let W=Array.from(new Set(P.map(e=>e?.api_key??""))),$=Array.from(new Set(P.map(e=>e?.model??"")));Array.from(new Set(P.map(e=>e?.call_type??"")));let K=async(t,r)=>{t&&r&&e&&L(await (0,v.adminGlobalCacheActivity)(e,J(t),J(r)))};(0,f.useEffect)(()=>{console.log("DATA IN CACHE DASHBOARD",P);let e=P;S.length>0&&(e=e.filter(e=>S.includes(e.api_key))),M.length>0&&(e=e.filter(e=>M.includes(e.model))),console.log("before processed data in cache dashboard",e);let t=0,r=0,a=0,s=e.reduce((e,s)=>{console.log("Processing item:",s),s.call_type||(console.log("Item has no call_type:",s),s.call_type="Unknown"),t+=(s.total_rows||0)-(s.cache_hit_true_rows||0),r+=s.cache_hit_true_rows||0,a+=s.cached_completion_tokens||0;let l=e.find(e=>e.name===s.call_type);return l?(l["LLM API requests"]+=(s.total_rows||0)-(s.cache_hit_true_rows||0),l["Cache hit"]+=s.cache_hit_true_rows||0,l["Cached Completion Tokens"]+=s.cached_completion_tokens||0,l["Generated Completion Tokens"]+=s.generated_completion_tokens||0):e.push({name:s.call_type,"LLM API requests":(s.total_rows||0)-(s.cache_hit_true_rows||0),"Cache hit":s.cache_hit_true_rows||0,"Cached Completion Tokens":s.cached_completion_tokens||0,"Generated Completion Tokens":s.generated_completion_tokens||0}),e},[]);I(q(r)),B(q(a));let l=r+t;l>0?F((r/l*100).toFixed(2)):F("0"),j(s),console.log("PROCESSED DATA IN CACHE DASHBOARD",s)},[S,M,H,P]);let Z=async()=>{try{x.default.info("Running cache health check..."),U("");let t=await (0,v.cachingHealthCheckCall)(null!==e?e:"");console.log("CACHING HEALTH CHECK RESPONSE",t),U(t)}catch(t){let e;if(console.error("Error running health check:",t),t&&t.message)try{let r=JSON.parse(t.message);r.error&&(r=r.error),e=r}catch(r){e={message:t.message}}else e={message:"Unknown error occurred"};U({error:e})}};return(0,t.jsxs)(m.TabGroup,{className:"gap-2 p-8 h-full w-full mt-2 mb-8",children:[(0,t.jsxs)(u.TabList,{className:"flex justify-between mt-2 w-full items-center",children:[(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)(c.Tab,{children:"Cache Analytics"}),(0,t.jsx)(c.Tab,{children:"Cache Health"}),(0,t.jsx)(c.Tab,{children:"Cache Settings"})]}),(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[V&&(0,t.jsxs)(p.Text,{children:["Last Refreshed: ",V]}),(0,t.jsx)(o.Icon,{icon:C.RefreshIcon,variant:"shadow",size:"xs",className:"self-center",onClick:()=>{Y(new Date().toLocaleString())}})]})]}),(0,t.jsxs)(h.TabPanels,{children:[(0,t.jsx)(g.TabPanel,{children:(0,t.jsxs)(a.Card,{children:[(0,t.jsxs)(l.Grid,{numItems:3,className:"gap-4 mt-4",children:[(0,t.jsx)(s.Col,{children:(0,t.jsx)(n.MultiSelect,{placeholder:"Select Virtual Keys",value:S,onValueChange:T,children:W.map(e=>(0,t.jsx)(i.MultiSelectItem,{value:e,children:e},e))})}),(0,t.jsx)(s.Col,{children:(0,t.jsx)(n.MultiSelect,{placeholder:"Select Models",value:M,onValueChange:R,children:$.map(e=>(0,t.jsx)(i.MultiSelectItem,{value:e,children:e},e))})}),(0,t.jsx)(s.Col,{children:(0,t.jsx)(b.default,{value:H,onValueChange:e=>{z(e),K(e.from,e.to)}})})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3 mt-4",children:[(0,t.jsxs)(a.Card,{children:[(0,t.jsx)("p",{className:"text-tremor-default font-medium text-tremor-content dark:text-dark-tremor-content",children:"Cache Hit Ratio"}),(0,t.jsx)("div",{className:"mt-2 flex items-baseline space-x-2.5",children:(0,t.jsxs)("p",{className:"text-tremor-metric font-semibold text-tremor-content-strong dark:text-dark-tremor-content-strong",children:[D,"%"]})})]}),(0,t.jsxs)(a.Card,{children:[(0,t.jsx)("p",{className:"text-tremor-default font-medium text-tremor-content dark:text-dark-tremor-content",children:"Cache Hits"}),(0,t.jsx)("div",{className:"mt-2 flex items-baseline space-x-2.5",children:(0,t.jsx)("p",{className:"text-tremor-metric font-semibold text-tremor-content-strong dark:text-dark-tremor-content-strong",children:A})})]}),(0,t.jsxs)(a.Card,{children:[(0,t.jsx)("p",{className:"text-tremor-default font-medium text-tremor-content dark:text-dark-tremor-content",children:"Cached Tokens"}),(0,t.jsx)("div",{className:"mt-2 flex items-baseline space-x-2.5",children:(0,t.jsx)("p",{className:"text-tremor-metric font-semibold text-tremor-content-strong dark:text-dark-tremor-content-strong",children:O})})]})]}),(0,t.jsx)(d.Subtitle,{className:"mt-4",children:"Cache Hits vs API Requests"}),(0,t.jsx)(r.BarChart,{title:"Cache Hits vs API Requests",data:k,stack:!0,index:"name",valueFormatter:q,categories:["LLM API requests","Cache hit"],colors:["sky","teal"],yAxisWidth:48}),(0,t.jsx)(d.Subtitle,{className:"mt-4",children:"Cached Completion Tokens vs Generated Completion Tokens"}),(0,t.jsx)(r.BarChart,{className:"mt-6",data:k,stack:!0,index:"name",valueFormatter:q,categories:["Generated Completion Tokens","Cached Completion Tokens"],colors:["sky","teal"],yAxisWidth:48})]})}),(0,t.jsx)(g.TabPanel,{children:(0,t.jsx)(E,{accessToken:e,healthCheckResponse:X,runCachingHealthCheck:Z})}),(0,t.jsx)(g.TabPanel,{children:(0,t.jsx)(G,{accessToken:e,userRole:N,userID:w})})]})]})}],559061)},891881,e=>{"use strict";var t=e.i(843476),r=e.i(559061),a=e.i(135214);e.s(["default",0,()=>{let{token:e,accessToken:s,userRole:l,userId:o,premiumUser:n}=(0,a.default)();return(0,t.jsx)(r.default,{accessToken:s,token:e,userRole:l,userID:o,premiumUser:n})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0ayg3m_5s_z2w.js b/litellm/proxy/_experimental/out/_next/static/chunks/0ayg3m_5s_z2w.js deleted file mode 100644 index aca507224b2..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/0ayg3m_5s_z2w.js +++ /dev/null @@ -1,4 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,783222,433336,80758,402155,368578,544508,746725,835696,941444,914189,394487,e=>{"use strict";let t;e.i(247167);let r=e=>e?.ownerDocument??document,n=e=>e&&"window"in e&&e.window===e?e:r(e).defaultView||window;function o(e,t){return!!t&&!!e&&e.contains(t)}function s(e){return e.target}let a=null;"u">typeof Element&&Element.prototype;let i=["input:not([disabled]):not([type=hidden])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","a[href]","area[href]","summary","iframe","object","embed","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable^="false"])',"permission"];i.join(":not([hidden]),"),i.push('[tabindex]:not([tabindex="-1"]):not([disabled])'),i.join(':not([hidden]):not([tabindex="-1"]),');var l=e.i(271645);let u="u">typeof document?l.default.useLayoutEffect:()=>{};function c(e){return e.nativeEvent=e,e.isDefaultPrevented=()=>e.defaultPrevented,e.isPropagationStopped=()=>e.cancelBubble,e.persist=()=>{},e}function d(e){let t=(0,l.useRef)({isFocused:!1,observer:null});return u(()=>{let e=t.current;return()=>{e.observer&&(e.observer.disconnect(),e.observer=null)}},[]),(0,l.useCallback)(r=>{let n=s(r);(n instanceof HTMLButtonElement||n instanceof HTMLInputElement||n instanceof HTMLTextAreaElement||n instanceof HTMLSelectElement)&&(t.current.isFocused=!0,n.addEventListener("focusout",r=>{if(t.current.isFocused=!1,n.disabled){let t=c(r);e?.(t)}t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)},{once:!0}),t.current.observer=new MutationObserver(()=>{if(t.current.isFocused&&n.disabled){t.current.observer?.disconnect();let e=n===((e=document)=>e.activeElement)()?null:((e=document)=>e.activeElement)();n.dispatchEvent(new FocusEvent("blur",{relatedTarget:e})),n.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:e}))}}),t.current.observer.observe(n,{attributes:!0,attributeFilter:["disabled"]}))},[e])}function f(e){if("u"e.test(t.brand))||e.test(window.navigator.userAgent)}function p(e){return"u">typeof window&&null!=window.navigator&&e.test(window.navigator.userAgentData?.platform||window.navigator.platform)}function m(e){let t=null;return()=>(null==t&&(t=e()),t)}let b=m(function(){return p(/^Mac/i)}),v=m(function(){return p(/^iPhone/i)}),h=m(function(){return p(/^iPad/i)||b()&&navigator.maxTouchPoints>1}),g=m(function(){return v()||h()});m(function(){return b()||g()});let y=m(function(){return f(/AppleWebKit/i)&&!E()}),E=m(function(){return f(/Chrome/i)}),T=m(function(){return f(/Android/i)}),w=m(function(){return f(/Firefox/i)});function x(e,t,r=!0){let{metaKey:n,ctrlKey:o,altKey:s,shiftKey:i}=t;w()&&window.event?.type?.startsWith("key")&&"_blank"===e.target&&(b()?n=!0:o=!0);let l=y()&&b()&&!h()&&1?new KeyboardEvent("keydown",{keyIdentifier:"Enter",metaKey:n,ctrlKey:o,altKey:s,shiftKey:i}):new MouseEvent("click",{metaKey:n,ctrlKey:o,altKey:s,shiftKey:i,detail:1,bubbles:!0,cancelable:!0});x.isOpening=r;if(function(){if(null==a){a=!1;try{document.createElement("div").focus({get preventScroll(){return a=!0,!0}})}catch{}}return a}())e.focus({preventScroll:!0});else{let t=function(e){let t=e.parentNode,r=[],n=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==n;)(t.offsetHeighttypeof window&&window.document&&window.document.createElement,new WeakMap;l.default.useId;let P=null,k=new Set,L=new Map,N=!1,C=!1,I={Tab:!0,Escape:!0};function S(e,t){for(let r of k)r(e,t)}function A(e){N=!0,x.isOpening||e.metaKey||!b()&&e.altKey||e.ctrlKey||"Control"===e.key||"Shift"===e.key||"Meta"===e.key||(P="keyboard",S("keyboard",e))}function M(e){P="pointer","pointerType"in e&&e.pointerType,("mousedown"===e.type||"pointerdown"===e.type)&&(N=!0,S("pointer",e))}function R(e){x.isOpening||(""!==e.pointerType||!e.isTrusted)&&(T()&&e.pointerType?"click"!==e.type||1!==e.buttons:0!==e.detail||e.pointerType)||(N=!0,P="virtual")}function O(e){let t=n(s(e)),o=r(s(e));s(e)!==t&&s(e)!==o&&e.isTrusted&&(N||C||(P="virtual",S("virtual",e)),N=!1,C=!1)}function D(){N=!1,C=!0}function H(e){if("u"typeof PointerEvent&&(o.addEventListener("pointerdown",M,!0),o.addEventListener("pointermove",M,!0),o.addEventListener("pointerup",M,!0)),t.addEventListener("beforeunload",()=>{j(e)},{once:!0}),L.set(t,{focus:s})}let j=(e,t)=>{let o=n(e),s=r(e);t&&s.removeEventListener("DOMContentLoaded",t),L.has(o)&&(o.HTMLElement.prototype.focus=L.get(o).focus,s.removeEventListener("keydown",A,!0),s.removeEventListener("keyup",A,!0),s.removeEventListener("click",R,!0),o.removeEventListener("focus",O,!0),o.removeEventListener("blur",D,!1),"u">typeof PointerEvent&&(s.removeEventListener("pointerdown",M,!0),s.removeEventListener("pointermove",M,!0),s.removeEventListener("pointerup",M,!0)),L.delete(o))};function K(){return"pointer"!==P}"u">typeof document&&("loading"!==(t=r(void 0)).readyState?H(void 0):t.addEventListener("DOMContentLoaded",()=>{H(void 0)}));let W=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function B(){let e=(0,l.useRef)(new Map),t=(0,l.useCallback)((t,r,n,o)=>{let s=o?.once?(...t)=>{e.current.delete(n),n(...t)}:n;e.current.set(n,{type:r,eventTarget:t,fn:s,options:o}),t.addEventListener(r,s,o)},[]),r=(0,l.useCallback)((t,r,n,o)=>{let s=e.current.get(n)?.fn||n;t.removeEventListener(r,s,o),e.current.delete(n)},[]),n=(0,l.useCallback)(()=>{e.current.forEach((e,t)=>{r(e.eventTarget,e.type,t,e.options)})},[r]);return(0,l.useEffect)(()=>n,[n]),{addGlobalListener:t,removeGlobalListener:r,removeAllGlobalListeners:n}}e.s(["useFocusRing",0,function(e={}){var t;let{autoFocus:a=!1,isTextInput:i,within:u}=e,f=(0,l.useRef)({isFocused:!1,isFocusVisible:a||K()}),[p,m]=(0,l.useState)(!1),[b,v]=(0,l.useState)(()=>f.current.isFocused&&f.current.isFocusVisible),h=(0,l.useCallback)(()=>v(f.current.isFocused&&f.current.isFocusVisible),[]),g=(0,l.useCallback)(e=>{f.current.isFocused=e,f.current.isFocusVisible=K(),m(e),h()},[h]);t={enabled:p,isTextInput:i},H(),(0,l.useEffect)(()=>{if(t?.enabled===!1)return;let e=(e,o)=>{var a;let i,l,u,c,d,p,m,b;a=!!t?.isTextInput,l=r(i=o?s(o):void 0),c=void 0!==(u=n(i))?u.HTMLInputElement:HTMLInputElement,d=void 0!==u?u.HTMLTextAreaElement:HTMLTextAreaElement,p=void 0!==u?u.HTMLElement:HTMLElement,m=void 0!==u?u.KeyboardEvent:KeyboardEvent,b=((e=document)=>e.activeElement)(l),(a=a||b instanceof c&&!W.has(b.type)||b instanceof d||b instanceof p&&b.isContentEditable)&&"keyboard"===e&&o instanceof m&&!I[o.key]||(e=>{f.current.isFocusVisible=e,h()})(K())};return k.add(e),()=>{k.delete(e)}},[i,p]);let{focusProps:y}=function(e){let{isDisabled:t,onFocus:n,onBlur:o,onFocusChange:a}=e,i=(0,l.useCallback)(e=>{if(s(e)===e.currentTarget)return o&&o(e),a&&a(!1),!0},[o,a]),u=d(i),c=(0,l.useCallback)(e=>{let t=s(e),o=r(t),i=o?((e=document)=>e.activeElement)(o):((e=document)=>e.activeElement)();t===e.currentTarget&&t===i&&(n&&n(e),a&&a(!0),u(e))},[a,n,u]);return{focusProps:{onFocus:!t&&(n||a||o)?c:void 0,onBlur:!t&&(o||a)?i:void 0}}}({isDisabled:u,onFocusChange:g}),{focusWithinProps:E}=function(e){let{isDisabled:t,onBlurWithin:n,onFocusWithin:a,onFocusWithinChange:i}=e,u=(0,l.useRef)({isFocusWithin:!1}),{addGlobalListener:f,removeAllGlobalListeners:p}=B(),m=(0,l.useCallback)(e=>{o(e.currentTarget,s(e))&&u.current.isFocusWithin&&!o(e.currentTarget,e.relatedTarget)&&(u.current.isFocusWithin=!1,p(),n&&n(e),i&&i(!1))},[n,i,u,p]),b=d(m),v=(0,l.useCallback)(e=>{if(!o(e.currentTarget,s(e)))return;let t=s(e),n=r(t),l=((e=document)=>e.activeElement)(n);if(!u.current.isFocusWithin&&l===t){a&&a(e),i&&i(!0),u.current.isFocusWithin=!0,b(e);let t=e.currentTarget;f(n,"focus",e=>{let r=s(e);if(u.current.isFocusWithin&&!o(t,r)){let e=new n.defaultView.FocusEvent("blur",{relatedTarget:r});Object.defineProperty(e,"target",{value:t}),Object.defineProperty(e,"currentTarget",{value:t}),m(c(e))}},{capture:!0})}},[a,i,b,f,m]);return t?{focusWithinProps:{onFocus:void 0,onBlur:void 0}}:{focusWithinProps:{onFocus:v,onBlur:m}}}({isDisabled:!u,onFocusWithinChange:g});return{isFocused:p,isFocusVisible:b,focusProps:u?E:y}}],783222);let V=!1,_=0;function G(e){"touch"===e.pointerType&&(V=!0,setTimeout(()=>{V=!1},500))}function U(){let e=r(null);if(void 0!==e)return 0===_&&"u">typeof PointerEvent&&e.addEventListener("pointerup",G),_++,()=>{!(--_>0)&&"u">typeof PointerEvent&&e.removeEventListener("pointerup",G)}}e.s(["useHover",0,function(e){let{onHoverStart:t,onHoverChange:n,onHoverEnd:a,isDisabled:i}=e,[u,c]=(0,l.useState)(!1),d=(0,l.useRef)({isHovered:!1,ignoreEmulatedMouseEvents:!1,pointerType:"",target:null}).current;(0,l.useEffect)(U,[]);let{addGlobalListener:f,removeAllGlobalListeners:p}=B(),{hoverProps:m,triggerHoverEnd:b}=(0,l.useMemo)(()=>{let e=(e,t)=>{let r=d.target;d.pointerType="",d.target=null,"touch"!==t&&d.isHovered&&r&&(d.isHovered=!1,p(),a&&a({type:"hoverend",target:r,pointerType:t}),n&&n(!1),c(!1))},l={};return"u">typeof PointerEvent&&(l.onPointerEnter=a=>{V&&"mouse"===a.pointerType||((a,l)=>{if(d.pointerType=l,i||"touch"===l||d.isHovered||!o(a.currentTarget,s(a)))return;d.isHovered=!0;let u=a.currentTarget;d.target=u,f(r(s(a)),"pointerover",t=>{d.isHovered&&d.target&&!o(d.target,s(t))&&e(t,t.pointerType)},{capture:!0}),t&&t({type:"hoverstart",target:u,pointerType:l}),n&&n(!0),c(!0)})(a,a.pointerType)},l.onPointerLeave=t=>{!i&&o(t.currentTarget,s(t))&&e(t,t.pointerType)}),{hoverProps:l,triggerHoverEnd:e}},[t,n,a,i,d,f,p]);return(0,l.useEffect)(()=>{i&&b({currentTarget:d.target},d.pointerType)},[i]),{hoverProps:m,isHovered:u}}],433336);var $=Object.defineProperty,q=(e,t,r)=>{let n;return(n="symbol"!=typeof t?t+"":t)in e?$(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,r};let X=new class{constructor(){q(this,"current",this.detect()),q(this,"handoffState","pending"),q(this,"currentId",0)}set(e){this.current!==e&&(this.handoffState="pending",this.currentId=0,this.current=e)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return"server"===this.current}get isClient(){return"client"===this.current}detect(){return"u"setTimeout(()=>{throw e}))}function Z(){let e=[],t={addEventListener:(e,r,n,o)=>(e.addEventListener(r,n,o),t.add(()=>e.removeEventListener(r,n,o))),requestAnimationFrame(...e){let r=requestAnimationFrame(...e);return t.add(()=>cancelAnimationFrame(r))},nextFrame:(...e)=>t.requestAnimationFrame(()=>t.requestAnimationFrame(...e)),setTimeout(...e){let r=setTimeout(...e);return t.add(()=>clearTimeout(r))},microTask(...e){let r={current:!0};return z(()=>{r.current&&e[0]()}),t.add(()=>{r.current=!1})},style(e,t,r){let n=e.style.getPropertyValue(t);return Object.assign(e.style,{[t]:r}),this.add(()=>{Object.assign(e.style,{[t]:n})})},group(e){let t=Z();return e(t),this.add(()=>t.dispose())},add:t=>(e.includes(t)||e.push(t),()=>{let r=e.indexOf(t);if(r>=0)for(let t of e.splice(r,1))t()}),dispose(){for(let t of e.splice(0))t()}};return t}function J(){let[e]=(0,l.useState)(Z);return(0,l.useEffect)(()=>()=>e.dispose(),[e]),e}e.s(["env",0,X],80758),e.s(["getOwnerDocument",0,Y],402155),e.s(["microTask",0,z],368578),e.s(["disposables",0,Z],544508),e.s(["useDisposables",0,J],746725);let Q=(e,t)=>{X.isServer?(0,l.useEffect)(e,t):(0,l.useLayoutEffect)(e,t)};function ee(e){let t=(0,l.useRef)(e);return Q(()=>{t.current=e},[e]),t}e.s(["useIsoMorphicEffect",0,Q],835696),e.s(["useLatestValue",0,ee],941444);let et=function(e){let t=ee(e);return l.default.useCallback((...e)=>t.current(...e),[t])};e.s(["useEvent",0,et],914189),e.s(["useActivePress",0,function({disabled:e=!1}={}){let t=(0,l.useRef)(null),[r,n]=(0,l.useState)(!1),o=J(),s=et(()=>{t.current=null,n(!1),o.dispose()}),a=et(e=>{if(o.dispose(),null===t.current){t.current=e.currentTarget,n(!0);{let r=Y(e.currentTarget);o.addEventListener(r,"pointerup",s,!1),o.addEventListener(r,"pointermove",e=>{if(t.current){var r,o;let s,a;n((s=e.width/2,a=e.height/2,r={top:e.clientY-a,right:e.clientX+s,bottom:e.clientY+a,left:e.clientX-s},o=t.current.getBoundingClientRect(),!(!r||!o||r.righto.right||r.bottomo.bottom)))}},!1),o.addEventListener(r,"pointercancel",s,!1)}}});return{pressed:r,pressProps:e?{}:{onPointerDown:a,onPointerUp:s,onClick:s}}}],394487)},144279,294316,e=>{"use strict";var t=e.i(271645);e.s(["useResolveButtonType",0,function(e,r){return(0,t.useMemo)(()=>{var t;if(e.type)return e.type;let n=null!=(t=e.as)?t:"button";if("string"==typeof n&&"button"===n.toLowerCase()||(null==r?void 0:r.tagName)==="BUTTON"&&!r.hasAttribute("type"))return"button"},[e.type,e.as,r])}],144279);var r=e.i(914189);let n=Symbol();e.s(["optionalRef",0,function(e,t=!0){return Object.assign(e,{[n]:t})},"useSyncRefs",0,function(...e){let o=(0,t.useRef)(e);(0,t.useEffect)(()=>{o.current=e},[e]);let s=(0,r.useEvent)(e=>{for(let t of o.current)null!=t&&("function"==typeof t?t(e):t.current=e)});return e.every(e=>null==e||(null==e?void 0:e[n]))?void 0:s}],294316)},732607,e=>{"use strict";e.s(["classNames",0,function(...e){return Array.from(new Set(e.flatMap(e=>"string"==typeof e?e.split(" "):[]))).filter(Boolean).join(" ")}])},397701,e=>{"use strict";e.s(["match",0,function e(t,r,...n){if(t in r){let e=r[t];return"function"==typeof e?e(...n):e}let o=Error(`Tried to handle "${t}" but there is no handler defined. Only defined handlers are: ${Object.keys(r).map(e=>`"${e}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,e),o}])},700020,e=>{"use strict";let t,r;var n=e.i(271645),o=e.i(732607),s=e.i(397701),a=((t=a||{})[t.None=0]="None",t[t.RenderStrategy=1]="RenderStrategy",t[t.Static=2]="Static",t),i=((r=i||{})[r.Unmount=0]="Unmount",r[r.Hidden=1]="Hidden",r);function l(e,t={},r,s,a){let{as:i=r,children:u,refName:p="ref",...m}=f(e,["unmount","static"]),b=void 0!==e.ref?{[p]:e.ref}:{},v="function"==typeof u?u(t):u;"className"in m&&m.className&&"function"==typeof m.className&&(m.className=m.className(t)),m["aria-labelledby"]&&m["aria-labelledby"]===m.id&&(m["aria-labelledby"]=void 0);let h={};if(t){let e=!1,r=[];for(let[n,o]of Object.entries(t))"boolean"==typeof o&&(e=!0),!0===o&&r.push(n.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`));if(e)for(let e of(h["data-headlessui-state"]=r.join(" "),r))h[`data-${e}`]=""}if(i===n.Fragment&&(Object.keys(d(m)).length>0||Object.keys(d(h)).length>0))if(!(0,n.isValidElement)(v)||Array.isArray(v)&&v.length>1){if(Object.keys(d(m)).length>0)throw Error(['Passing props on "Fragment"!',"",`The current component <${s} /> is rendering a "Fragment".`,"However we need to passthrough the following props:",Object.keys(d(m)).concat(Object.keys(d(h))).map(e=>` - ${e}`).join(` -`),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "Fragment".',"Render a single element as the child so that we can forward the props onto that element."].map(e=>` - ${e}`).join(` -`)].join(` -`))}else{var g;let e=v.props,t=null==e?void 0:e.className,r="function"==typeof t?(...e)=>(0,o.classNames)(t(...e),m.className):(0,o.classNames)(t,m.className),s=c(v.props,d(f(m,["ref"])));for(let e in h)e in s&&delete h[e];return(0,n.cloneElement)(v,Object.assign({},s,h,b,{ref:a((g=v,n.default.version.split(".")[0]>="19"?g.props.ref:g.ref),b.ref)},r?{className:r}:{}))}return(0,n.createElement)(i,Object.assign({},f(m,["ref"]),i!==n.Fragment&&b,i!==n.Fragment&&h),v)}function u(...e){return e.every(e=>null==e)?void 0:t=>{for(let r of e)null!=r&&("function"==typeof r?r(t):r.current=t)}}function c(...e){if(0===e.length)return{};if(1===e.length)return e[0];let t={},r={};for(let n of e)for(let e in n)e.startsWith("on")&&"function"==typeof n[e]?(null!=r[e]||(r[e]=[]),r[e].push(n[e])):t[e]=n[e];if(t.disabled||t["aria-disabled"])for(let e in r)/^(on(?:Click|Pointer|Mouse|Key)(?:Down|Up|Press)?)$/.test(e)&&(r[e]=[e=>{var t;return null==(t=null==e?void 0:e.preventDefault)?void 0:t.call(e)}]);for(let e in r)Object.assign(t,{[e](t,...n){for(let o of r[e]){if((t instanceof Event||(null==t?void 0:t.nativeEvent)instanceof Event)&&t.defaultPrevented)return;o(t,...n)}}});return t}function d(e){let t=Object.assign({},e);for(let e in t)void 0===t[e]&&delete t[e];return t}function f(e,t=[]){let r=Object.assign({},e);for(let e of t)e in r&&delete r[e];return r}e.s(["RenderFeatures",0,a,"RenderStrategy",0,i,"compact",0,d,"forwardRefWithAs",0,function(e){var t;return Object.assign((0,n.forwardRef)(e),{displayName:null!=(t=e.displayName)?t:e.name})},"mergeProps",0,function(...e){if(0===e.length)return{};if(1===e.length)return e[0];let t={},r={};for(let n of e)for(let e in n)e.startsWith("on")&&"function"==typeof n[e]?(null!=r[e]||(r[e]=[]),r[e].push(n[e])):t[e]=n[e];for(let e in r)Object.assign(t,{[e](...t){for(let n of r[e])null==n||n(...t)}});return t},"useRender",0,function(){let e,t,r=(e=(0,n.useRef)([]),t=(0,n.useCallback)(t=>{for(let r of e.current)null!=r&&("function"==typeof r?r(t):r.current=t)},[]),(...r)=>{if(!r.every(e=>null==e))return e.current=r,t});return(0,n.useCallback)(e=>(function({ourProps:e,theirProps:t,slot:r,defaultTag:n,features:o,visible:a=!0,name:i,mergeRefs:d}){d=null!=d?d:u;let f=c(t,e);if(a)return l(f,r,n,i,d);let p=null!=o?o:0;if(2&p){let{static:e=!1,...t}=f;if(e)return l(t,r,n,i,d)}if(1&p){let{unmount:e=!0,...t}=f;return(0,s.match)(+!e,{0:()=>null,1:()=>l({...t,hidden:!0,style:{display:"none"}},r,n,i,d)})}return l(f,r,n,i,d)})({mergeRefs:r,...e}),[r])}])},2788,e=>{"use strict";let t;var r=e.i(700020),n=((t=n||{})[t.None=1]="None",t[t.Focusable=2]="Focusable",t[t.Hidden=4]="Hidden",t);let o=(0,r.forwardRefWithAs)(function(e,t){var n;let{features:o=1,...s}=e,a={ref:t,"aria-hidden":(2&o)==2||(null!=(n=s["aria-hidden"])?n:void 0),hidden:(4&o)==4||void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(4&o)==4&&(2&o)!=2&&{display:"none"}}};return(0,r.useRender)()({ourProps:a,theirProps:s,slot:{},defaultTag:"span",name:"Hidden"})});e.s(["Hidden",0,o,"HiddenFeatures",0,n])},998348,e=>{"use strict";let t;var r=((t=r||{}).Space=" ",t.Enter="Enter",t.Escape="Escape",t.Backspace="Backspace",t.Delete="Delete",t.ArrowLeft="ArrowLeft",t.ArrowUp="ArrowUp",t.ArrowRight="ArrowRight",t.ArrowDown="ArrowDown",t.Home="Home",t.End="End",t.PageUp="PageUp",t.PageDown="PageDown",t.Tab="Tab",t);e.s(["Keys",0,r])},553521,e=>{"use strict";var t=e.i(271645),r=e.i(835696);e.s(["useIsMounted",0,function(){let e=(0,t.useRef)(!1);return(0,r.useIsoMorphicEffect)(()=>(e.current=!0,()=>{e.current=!1}),[]),e}])},640497,e=>{"use strict";var t=e.i(271645),r=e.i(553521),n=e.i(2788);e.s(["FocusSentinel",0,function({onFocus:e}){let[o,s]=(0,t.useState)(!0),a=(0,r.useIsMounted)();return o?t.default.createElement(n.Hidden,{as:"button",type:"button",features:n.HiddenFeatures.Focusable,onFocus:t=>{t.preventDefault();let r,n=50;r=requestAnimationFrame(function t(){if(n--<=0){r&&cancelAnimationFrame(r);return}if(e()){if(cancelAnimationFrame(r),!a.current)return;s(!1);return}r=requestAnimationFrame(t)})}}):null}])},652265,e=>{"use strict";let t,r,n,o,s;e.i(544508);var a=e.i(397701),i=e.i(402155);let l=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map(e=>`${e}:not([tabindex='-1'])`).join(","),u=["[data-autofocus]"].map(e=>`${e}:not([tabindex='-1'])`).join(",");var c=((t=c||{})[t.First=1]="First",t[t.Previous=2]="Previous",t[t.Next=4]="Next",t[t.Last=8]="Last",t[t.WrapAround=16]="WrapAround",t[t.NoScroll=32]="NoScroll",t[t.AutoFocus=64]="AutoFocus",t),d=((r=d||{})[r.Error=0]="Error",r[r.Overflow=1]="Overflow",r[r.Success=2]="Success",r[r.Underflow=3]="Underflow",r),f=((n=f||{})[n.Previous=-1]="Previous",n[n.Next=1]="Next",n);function p(e=document.body){return null==e?[]:Array.from(e.querySelectorAll(l)).sort((e,t)=>Math.sign((e.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}var m=((o=m||{})[o.Strict=0]="Strict",o[o.Loose=1]="Loose",o),b=((s=b||{})[s.Keyboard=0]="Keyboard",s[s.Mouse=1]="Mouse",s);function v(e,t=e=>e){return e.slice().sort((e,r)=>{let n=t(e),o=t(r);if(null===n||null===o)return 0;let s=n.compareDocumentPosition(o);return s&Node.DOCUMENT_POSITION_FOLLOWING?-1:s&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function h(e,t,{sorted:r=!0,relativeTo:n=null,skipElements:o=[]}={}){var s,a,i;let l=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e.ownerDocument,c=Array.isArray(e)?r?v(e):e:64&t?function(e=document.body){return null==e?[]:Array.from(e.querySelectorAll(u)).sort((e,t)=>Math.sign((e.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}(e):p(e);o.length>0&&c.length>1&&(c=c.filter(e=>!o.some(t=>null!=t&&"current"in t?(null==t?void 0:t.current)===e:t===e))),n=null!=n?n:l.activeElement;let d=(()=>{if(5&t)return 1;if(10&t)return -1;throw Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),f=(()=>{if(1&t)return 0;if(2&t)return Math.max(0,c.indexOf(n))-1;if(4&t)return Math.max(0,c.indexOf(n))+1;if(8&t)return c.length-1;throw Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),m=32&t?{preventScroll:!0}:{},b=0,g=c.length,y;do{if(b>=g||b+g<=0)return 0;let e=f+b;if(16&t)e=(e+g)%g;else{if(e<0)return 3;if(e>=g)return 1}null==(y=c[e])||y.focus(m),b+=d}while(y!==l.activeElement)return 6&t&&null!=(i=null==(a=null==(s=y)?void 0:s.matches)?void 0:a.call(s,"textarea,input"))&&i&&y.select(),2}"u">typeof window&&"u">typeof document&&(document.addEventListener("keydown",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible="")},!0),document.addEventListener("click",e=>{1===e.detail?delete document.documentElement.dataset.headlessuiFocusVisible:0===e.detail&&(document.documentElement.dataset.headlessuiFocusVisible="")},!0)),e.s(["Focus",0,c,"FocusResult",0,d,"FocusableMode",0,m,"focusFrom",0,function(e,t){return h(p(),t,{relativeTo:e})},"focusIn",0,h,"getFocusableElements",0,p,"isFocusableElement",0,function(e,t=0){var r;return e!==(null==(r=(0,i.getOwnerDocument)(e))?void 0:r.body)&&(0,a.match)(t,{0:()=>e.matches(l),1(){let t=e;for(;null!==t;){if(t.matches(l))return!0;t=t.parentElement}return!1}})},"sortByDomNode",0,v])},963703,e=>{"use strict";var t=e.i(271645);let r=t.createContext(null);e.s(["StableCollection",0,function({children:e}){let n=t.useRef({groups:new Map,get(e,t){var r;let n=this.groups.get(e);n||(n=new Map,this.groups.set(e,n));let o=null!=(r=n.get(t))?r:0;return n.set(t,o+1),[Array.from(n.keys()).indexOf(t),function(){let e=n.get(t);e>1?n.set(t,e-1):n.delete(t)}]}});return t.createElement(r.Provider,{value:n},e)},"useStableCollectionIndex",0,function(e){let n=t.useContext(r);if(!n)throw Error("You must wrap your component in a ");let o=t.useId(),[s,a]=n.current.get(e,o);return t.useEffect(()=>a,[]),s}])},970554,e=>{"use strict";let t,r,n;var o=e.i(783222),s=e.i(433336),a=e.i(271645),i=e.i(394487),l=e.i(914189),u=e.i(835696),c=e.i(941444),d=e.i(144279),f=e.i(294316),p=e.i(640497),m=e.i(2788),b=e.i(652265),v=e.i(397701),h=e.i(368578),g=e.i(402155),y=e.i(700020),E=e.i(963703),T=e.i(998348),w=((t=w||{})[t.Forwards=0]="Forwards",t[t.Backwards=1]="Backwards",t),x=((r=x||{})[r.Less=-1]="Less",r[r.Equal=0]="Equal",r[r.Greater=1]="Greater",r),F=((n=F||{})[n.SetSelectedIndex=0]="SetSelectedIndex",n[n.RegisterTab=1]="RegisterTab",n[n.UnregisterTab=2]="UnregisterTab",n[n.RegisterPanel=3]="RegisterPanel",n[n.UnregisterPanel=4]="UnregisterPanel",n);let P={0(e,t){var r;let n=(0,b.sortByDomNode)(e.tabs,e=>e.current),o=(0,b.sortByDomNode)(e.panels,e=>e.current),s=n.filter(e=>{var t;return!(null!=(t=e.current)&&t.hasAttribute("disabled"))}),a={...e,tabs:n,panels:o};if(t.index<0||t.index>n.length-1){let r=(0,v.match)(Math.sign(t.index-e.selectedIndex),{[-1]:()=>1,0:()=>(0,v.match)(Math.sign(t.index),{[-1]:()=>0,0:()=>0,1:()=>1}),1:()=>0});if(0===s.length)return a;let o=(0,v.match)(r,{0:()=>n.indexOf(s[0]),1:()=>n.indexOf(s[s.length-1])});return{...a,selectedIndex:-1===o?e.selectedIndex:o}}let i=n.slice(0,t.index),l=[...n.slice(t.index),...i].find(e=>s.includes(e));if(!l)return a;let u=null!=(r=n.indexOf(l))?r:e.selectedIndex;return -1===u&&(u=e.selectedIndex),{...a,selectedIndex:u}},1(e,t){if(e.tabs.includes(t.tab))return e;let r=e.tabs[e.selectedIndex],n=(0,b.sortByDomNode)([...e.tabs,t.tab],e=>e.current),o=e.selectedIndex;return e.info.current.isControlled||-1===(o=n.indexOf(r))&&(o=e.selectedIndex),{...e,tabs:n,selectedIndex:o}},2:(e,t)=>({...e,tabs:e.tabs.filter(e=>e!==t.tab)}),3:(e,t)=>e.panels.includes(t.panel)?e:{...e,panels:(0,b.sortByDomNode)([...e.panels,t.panel],e=>e.current)},4:(e,t)=>({...e,panels:e.panels.filter(e=>e!==t.panel)})},k=(0,a.createContext)(null);function L(e){let t=(0,a.useContext)(k);if(null===t){let t=Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,L),t}return t}k.displayName="TabsDataContext";let N=(0,a.createContext)(null);function C(e){let t=(0,a.useContext)(N);if(null===t){let t=Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,C),t}return t}function I(e,t){return(0,v.match)(t.type,P,e,t)}N.displayName="TabsActionsContext";let S=y.RenderFeatures.RenderStrategy|y.RenderFeatures.Static,A=Object.assign((0,y.forwardRefWithAs)(function(e,t){var r,n;let c=(0,a.useId)(),{id:p=`headlessui-tabs-tab-${c}`,disabled:m=!1,autoFocus:w=!1,...x}=e,{orientation:F,activation:P,selectedIndex:k,tabs:N,panels:I}=L("Tab"),S=C("Tab"),A=L("Tab"),[M,R]=(0,a.useState)(null),O=(0,a.useRef)(null),D=(0,f.useSyncRefs)(O,t,R);(0,u.useIsoMorphicEffect)(()=>S.registerTab(O),[S,O]);let H=(0,E.useStableCollectionIndex)("tabs"),j=N.indexOf(O);-1===j&&(j=H);let K=j===k,W=(0,l.useEvent)(e=>{var t;let r=e();if(r===b.FocusResult.Success&&"auto"===P){let e=null==(t=(0,g.getOwnerDocument)(O))?void 0:t.activeElement,r=A.tabs.findIndex(t=>t.current===e);-1!==r&&S.change(r)}return r}),B=(0,l.useEvent)(e=>{let t=N.map(e=>e.current).filter(Boolean);if(e.key===T.Keys.Space||e.key===T.Keys.Enter){e.preventDefault(),e.stopPropagation(),S.change(j);return}switch(e.key){case T.Keys.Home:case T.Keys.PageUp:return e.preventDefault(),e.stopPropagation(),W(()=>(0,b.focusIn)(t,b.Focus.First));case T.Keys.End:case T.Keys.PageDown:return e.preventDefault(),e.stopPropagation(),W(()=>(0,b.focusIn)(t,b.Focus.Last))}if(W(()=>(0,v.match)(F,{vertical:()=>e.key===T.Keys.ArrowUp?(0,b.focusIn)(t,b.Focus.Previous|b.Focus.WrapAround):e.key===T.Keys.ArrowDown?(0,b.focusIn)(t,b.Focus.Next|b.Focus.WrapAround):b.FocusResult.Error,horizontal:()=>e.key===T.Keys.ArrowLeft?(0,b.focusIn)(t,b.Focus.Previous|b.Focus.WrapAround):e.key===T.Keys.ArrowRight?(0,b.focusIn)(t,b.Focus.Next|b.Focus.WrapAround):b.FocusResult.Error}))===b.FocusResult.Success)return e.preventDefault()}),V=(0,a.useRef)(!1),_=(0,l.useEvent)(()=>{var e;V.current||(V.current=!0,null==(e=O.current)||e.focus({preventScroll:!0}),S.change(j),(0,h.microTask)(()=>{V.current=!1}))}),G=(0,l.useEvent)(e=>{e.preventDefault()}),{isFocusVisible:U,focusProps:$}=(0,o.useFocusRing)({autoFocus:w}),{isHovered:q,hoverProps:X}=(0,s.useHover)({isDisabled:m}),{pressed:Y,pressProps:z}=(0,i.useActivePress)({disabled:m}),Z=(0,a.useMemo)(()=>({selected:K,hover:q,active:Y,focus:U,autofocus:w,disabled:m}),[K,q,U,Y,w,m]),J=(0,y.mergeProps)({ref:D,onKeyDown:B,onMouseDown:G,onClick:_,id:p,role:"tab",type:(0,d.useResolveButtonType)(e,M),"aria-controls":null==(n=null==(r=I[j])?void 0:r.current)?void 0:n.id,"aria-selected":K,tabIndex:K?0:-1,disabled:m||void 0,autoFocus:w},$,X,z);return(0,y.useRender)()({ourProps:J,theirProps:x,slot:Z,defaultTag:"button",name:"Tabs.Tab"})}),{Group:(0,y.forwardRefWithAs)(function(e,t){let{defaultIndex:r=0,vertical:n=!1,manual:o=!1,onChange:s,selectedIndex:i=null,...d}=e,m=n?"vertical":"horizontal",v=o?"manual":"auto",h=null!==i,g=(0,c.useLatestValue)({isControlled:h}),T=(0,f.useSyncRefs)(t),[w,x]=(0,a.useReducer)(I,{info:g,selectedIndex:null!=i?i:r,tabs:[],panels:[]}),F=(0,a.useMemo)(()=>({selectedIndex:w.selectedIndex}),[w.selectedIndex]),P=(0,c.useLatestValue)(s||(()=>{})),L=(0,c.useLatestValue)(w.tabs),C=(0,a.useMemo)(()=>({orientation:m,activation:v,...w}),[m,v,w]),S=(0,l.useEvent)(e=>(x({type:1,tab:e}),()=>x({type:2,tab:e}))),A=(0,l.useEvent)(e=>(x({type:3,panel:e}),()=>x({type:4,panel:e}))),M=(0,l.useEvent)(e=>{R.current!==e&&P.current(e),h||x({type:0,index:e})}),R=(0,c.useLatestValue)(h?e.selectedIndex:w.selectedIndex),O=(0,a.useMemo)(()=>({registerTab:S,registerPanel:A,change:M}),[]);(0,u.useIsoMorphicEffect)(()=>{x({type:0,index:null!=i?i:r})},[i]),(0,u.useIsoMorphicEffect)(()=>{if(void 0===R.current||w.tabs.length<=0)return;let e=(0,b.sortByDomNode)(w.tabs,e=>e.current);e.some((e,t)=>w.tabs[t]!==e)&&M(e.indexOf(w.tabs[R.current]))});let D=(0,y.useRender)();return a.default.createElement(E.StableCollection,null,a.default.createElement(N.Provider,{value:O},a.default.createElement(k.Provider,{value:C},C.tabs.length<=0&&a.default.createElement(p.FocusSentinel,{onFocus:()=>{var e,t;for(let r of L.current)if((null==(e=r.current)?void 0:e.tabIndex)===0)return null==(t=r.current)||t.focus(),!0;return!1}}),D({ourProps:{ref:T},theirProps:d,slot:F,defaultTag:"div",name:"Tabs"}))))}),List:(0,y.forwardRefWithAs)(function(e,t){let{orientation:r,selectedIndex:n}=L("Tab.List"),o=(0,f.useSyncRefs)(t),s=(0,a.useMemo)(()=>({selectedIndex:n}),[n]);return(0,y.useRender)()({ourProps:{ref:o,role:"tablist","aria-orientation":r},theirProps:e,slot:s,defaultTag:"div",name:"Tabs.List"})}),Panels:(0,y.forwardRefWithAs)(function(e,t){let{selectedIndex:r}=L("Tab.Panels"),n=(0,f.useSyncRefs)(t),o=(0,a.useMemo)(()=>({selectedIndex:r}),[r]);return(0,y.useRender)()({ourProps:{ref:n},theirProps:e,slot:o,defaultTag:"div",name:"Tabs.Panels"})}),Panel:(0,y.forwardRefWithAs)(function(e,t){var r,n,s,i;let l=(0,a.useId)(),{id:c=`headlessui-tabs-panel-${l}`,tabIndex:d=0,...p}=e,{selectedIndex:b,tabs:v,panels:h}=L("Tab.Panel"),g=C("Tab.Panel"),T=(0,a.useRef)(null),w=(0,f.useSyncRefs)(T,t);(0,u.useIsoMorphicEffect)(()=>g.registerPanel(T),[g,T]);let x=(0,E.useStableCollectionIndex)("panels"),F=h.indexOf(T);-1===F&&(F=x);let P=F===b,{isFocusVisible:k,focusProps:N}=(0,o.useFocusRing)(),I=(0,a.useMemo)(()=>({selected:P,focus:k}),[P,k]),A=(0,y.mergeProps)({ref:w,id:c,role:"tabpanel","aria-labelledby":null==(n=null==(r=v[F])?void 0:r.current)?void 0:n.id,tabIndex:P?d:-1},N),M=(0,y.useRender)();return P||null!=(s=p.unmount)&&!s||null!=(i=p.static)&&i?M({ourProps:A,theirProps:p,slot:I,defaultTag:"div",features:S,visible:P,name:"Tabs.Panel"}):a.default.createElement(m.Hidden,{"aria-hidden":"true",...A})})});e.s(["Tab",0,A])},405371,910342,e=>{"use strict";var t=e.i(290571),r=e.i(271645),n=e.i(480731);let o=(0,r.createContext)(n.BaseColors.Blue);e.s(["default",0,o],910342);var s=e.i(970554),a=e.i(444755);let i=(0,e.i(673706).makeClassName)("TabList"),l=(0,r.createContext)("line"),u={line:(0,a.tremorTwMerge)("flex border-b space-x-4","border-tremor-border","dark:border-dark-tremor-border"),solid:(0,a.tremorTwMerge)("inline-flex p-0.5 rounded-tremor-default space-x-1.5","bg-tremor-background-subtle","dark:bg-dark-tremor-background-subtle")},c=r.default.forwardRef((e,n)=>{let{color:c,variant:d="line",children:f,className:p}=e,m=(0,t.__rest)(e,["color","variant","children","className"]);return r.default.createElement(s.Tab.List,Object.assign({ref:n,className:(0,a.tremorTwMerge)(i("root"),"justify-start overflow-x-clip",u[d],p)},m),r.default.createElement(l.Provider,{value:d},r.default.createElement(o.Provider,{value:c},f)))});c.displayName="TabList",e.s(["TabVariantContext",0,l,"default",0,c],405371)},197647,e=>{"use strict";var t=e.i(290571),r=e.i(970554),n=e.i(95779),o=e.i(444755),s=e.i(673706),a=e.i(271645),i=e.i(405371),l=e.i(910342);let u=(0,s.makeClassName)("Tab"),c=a.default.forwardRef((e,c)=>{let{icon:d,className:f,children:p}=e,m=(0,t.__rest)(e,["icon","className","children"]),b=(0,a.useContext)(i.TabVariantContext),v=(0,a.useContext)(l.default);return a.default.createElement(r.Tab,Object.assign({ref:c,className:(0,o.tremorTwMerge)(u("root"),"flex whitespace-nowrap truncate max-w-xs outline-none data-focus-visible:ring text-tremor-default transition duration-100",function(e,t){switch(e){case"line":return(0,o.tremorTwMerge)("data-[selected]:border-b-2 hover:border-b-2 border-transparent transition duration-100 -mb-px px-2 py-2","hover:border-tremor-content hover:text-tremor-content-emphasis text-tremor-content","[&:not([data-selected])]:dark:hover:border-dark-tremor-content-emphasis [&:not([data-selected])]:dark:hover:text-dark-tremor-content-emphasis [&:not([data-selected])]:dark:text-dark-tremor-content",t?(0,s.getColorClassNames)(t,n.colorPalette.border).selectBorderColor:["data-[selected]:border-tremor-brand data-[selected]:text-tremor-brand","data-[selected]:dark:border-dark-tremor-brand data-[selected]:dark:text-dark-tremor-brand"]);case"solid":return(0,o.tremorTwMerge)("border-transparent border rounded-tremor-small px-2.5 py-1","data-[selected]:border-tremor-border data-[selected]:bg-tremor-background data-[selected]:shadow-tremor-input [&:not([data-selected])]:hover:text-tremor-content-emphasis data-[selected]:text-tremor-brand [&:not([data-selected])]:text-tremor-content","dark:data-[selected]:border-dark-tremor-border dark:data-[selected]:bg-dark-tremor-background dark:data-[selected]:shadow-dark-tremor-input dark:[&:not([data-selected])]:hover:text-dark-tremor-content-emphasis dark:data-[selected]:text-dark-tremor-brand dark:[&:not([data-selected])]:text-dark-tremor-content",t?(0,s.getColorClassNames)(t,n.colorPalette.text).selectTextColor:"text-tremor-content dark:text-dark-tremor-content")}}(b,v),f,v&&(0,s.getColorClassNames)(v,n.colorPalette.text).selectTextColor)},m),d?a.default.createElement(d,{className:(0,o.tremorTwMerge)(u("icon"),"flex-none h-5 w-5",p?"mr-2":"")}):null,p?a.default.createElement("span",null,p):null)});c.displayName="Tab",e.s(["Tab",0,c],197647)},653824,e=>{"use strict";var t=e.i(290571),r=e.i(970554),n=e.i(444755),o=e.i(673706),s=e.i(271645);let a=(0,o.makeClassName)("TabGroup"),i=s.default.forwardRef((e,o)=>{let{defaultIndex:i,index:l,onIndexChange:u,children:c,className:d}=e,f=(0,t.__rest)(e,["defaultIndex","index","onIndexChange","children","className"]);return s.default.createElement(r.Tab.Group,Object.assign({as:"div",ref:o,defaultIndex:i,selectedIndex:l,onChange:u,className:(0,n.tremorTwMerge)(a("root"),"w-full",d)},f),c)});i.displayName="TabGroup",e.s(["TabGroup",0,i],653824)},881073,e=>{"use strict";var t=e.i(405371);e.s(["TabList",()=>t.default])},751734,e=>{"use strict";let t=(0,e.i(271645).createContext)(0);e.s(["default",0,t])},144582,e=>{"use strict";let t=(0,e.i(271645).createContext)({selectedValue:void 0,handleValueChange:void 0});e.s(["default",0,t])},404206,e=>{"use strict";var t=e.i(290571),r=e.i(751734),n=e.i(144582),o=e.i(444755),s=e.i(673706),a=e.i(271645);let i=(0,s.makeClassName)("TabPanel"),l=a.default.forwardRef((e,s)=>{let{children:l,className:u}=e,c=(0,t.__rest)(e,["children","className"]),{selectedValue:d}=(0,a.useContext)(n.default),f=d===(0,a.useContext)(r.default);return a.default.createElement("div",Object.assign({ref:s,className:(0,o.tremorTwMerge)(i("root"),"w-full mt-2",f?"":"hidden",u),"aria-selected":f?"true":"false"},c),l)});l.displayName="TabPanel",e.s(["TabPanel",0,l],404206)},723731,e=>{"use strict";var t=e.i(290571),r=e.i(970554),n=e.i(751734),o=e.i(144582),s=e.i(444755),a=e.i(673706),i=e.i(271645);let l=(0,a.makeClassName)("TabPanels"),u=i.default.forwardRef((e,a)=>{let{children:u,className:c}=e,d=(0,t.__rest)(e,["children","className"]);return i.default.createElement(r.Tab.Panels,Object.assign({as:"div",ref:a,className:(0,s.tremorTwMerge)(l("root"),"w-full",c)},d),({selectedIndex:e})=>i.default.createElement(o.default.Provider,{value:{selectedValue:e}},i.default.Children.map(u,(e,t)=>i.default.createElement(n.default.Provider,{value:t},e))))});u.displayName="TabPanels",e.s(["TabPanels",0,u],723731)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0b5g~_decuer~.js b/litellm/proxy/_experimental/out/_next/static/chunks/0b5g~_decuer~.js new file mode 100644 index 00000000000..0d3659fb84b --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/0b5g~_decuer~.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,618566,(e,t,r)=>{t.exports=e.r(976562)},434166,e=>{"use strict";e.s(["getSecureItem",0,function(e){try{let t=window.sessionStorage.getItem(e);if(null===t)return null;return decodeURIComponent(atob(t).split("").map(e=>"%"+e.charCodeAt(0).toString(16).padStart(2,"0")).join(""))}catch{return null}},"setSecureItem",0,function(e,t){window.sessionStorage.setItem(e,btoa(encodeURIComponent(t).replace(/%([0-9A-F]{2})/g,(e,t)=>String.fromCharCode(parseInt(t,16)))))}])},346328,e=>{"use strict";var t=e.i(843476),r=e.i(271645),l=e.i(618566),s=e.i(434166);let i=()=>{let e=(0,l.useSearchParams)(),i=(0,r.useMemo)(()=>e?{type:"litellm-mcp-oauth",code:e.get("code"),state:e.get("state"),error:e.get("error"),error_description:e.get("error_description")}:null,[e]);return(0,r.useEffect)(()=>{if(!i)return;try{let e=JSON.stringify(i);(0,s.setSecureItem)("litellm-mcp-oauth-result",e),(0,s.setSecureItem)("litellm-user-mcp-oauth-result",e),(0,s.setSecureItem)("litellm-tools-mcp-oauth-result",e)}catch(e){}let e=(0,s.getSecureItem)("litellm-mcp-oauth-return-url"),t=(()=>{let e=window.location.pathname||"",t=e.indexOf("/ui");if(t>=0){let r=e.slice(0,t+3);return r.endsWith("/")?r:`${r}`}return"/"})();if(e)try{let r=new URL(e,window.location.origin);r.origin===window.location.origin&&(t=r.href)}catch{}window.location.replace(t)},[i]),(0,t.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-slate-50 p-6",children:(0,t.jsxs)("div",{className:"max-w-lg w-full rounded-lg bg-white shadow-md p-8 text-center space-y-4",children:[(0,t.jsx)("h1",{className:"text-xl font-semibold text-slate-900",children:"LiteLLM MCP OAuth"}),(0,t.jsx)("p",{className:"text-sm text-slate-700",children:"Authorization complete. You may close this window and return to the LiteLLM dashboard."}),(0,t.jsx)("p",{className:"text-xs text-slate-500",children:"If the window does not close automatically, everything is still saved—you can close it manually."})]})})};e.s(["default",0,()=>(0,t.jsx)(r.Suspense,{fallback:(0,t.jsx)("div",{className:"min-h-screen flex items-center justify-center",children:"Loading..."}),children:(0,t.jsx)(i,{})})])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0qmmlumh.k21x.js b/litellm/proxy/_experimental/out/_next/static/chunks/0bcquh4rttjuy.js similarity index 78% rename from litellm/proxy/_experimental/out/_next/static/chunks/0qmmlumh.k21x.js rename to litellm/proxy/_experimental/out/_next/static/chunks/0bcquh4rttjuy.js index 0c429e50772..62a58477b35 100644 --- a/litellm/proxy/_experimental/out/_next/static/chunks/0qmmlumh.k21x.js +++ b/litellm/proxy/_experimental/out/_next/static/chunks/0bcquh4rttjuy.js @@ -1,4 +1,4 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,447566,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645);let i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 000 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"}}]},name:"arrow-left",theme:"outlined"};var n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["ArrowLeftOutlined",0,s],447566)},492030,e=>{"use strict";var t=e.i(121229);e.s(["CheckOutlined",()=>t.default])},596239,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645);let i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"}}]},name:"link",theme:"outlined"};var n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["LinkOutlined",0,s],596239)},190272,785913,e=>{"use strict";var t,o,i=((t={}).AUDIO_SPEECH="audio_speech",t.AUDIO_TRANSCRIPTION="audio_transcription",t.IMAGE_GENERATION="image_generation",t.VIDEO_GENERATION="video_generation",t.CHAT="chat",t.RESPONSES="responses",t.IMAGE_EDITS="image_edits",t.ANTHROPIC_MESSAGES="anthropic_messages",t.EMBEDDING="embedding",t),n=((o={}).IMAGE="image",o.VIDEO="video",o.CHAT="chat",o.RESPONSES="responses",o.IMAGE_EDITS="image_edits",o.ANTHROPIC_MESSAGES="anthropic_messages",o.EMBEDDINGS="embeddings",o.SPEECH="speech",o.TRANSCRIPTION="transcription",o.A2A_AGENTS="a2a_agents",o.MCP="mcp",o.REALTIME="realtime",o);let s={image_generation:"image",video_generation:"video",chat:"chat",responses:"responses",image_edits:"image_edits",anthropic_messages:"anthropic_messages",audio_speech:"speech",audio_transcription:"transcription",embedding:"embeddings"};e.s(["EndpointType",()=>n,"getEndpointType",0,e=>{if(console.log("getEndpointType:",e),Object.values(i).includes(e)){let t=s[e];return console.log("endpointType:",t),t}return"chat"}],785913),e.s(["generateCodeSnippet",0,e=>{let t,{apiKeySource:o,accessToken:i,apiKey:s,inputMessage:a,chatHistory:r,selectedTags:l,selectedVectorStores:c,selectedGuardrails:d,selectedPolicies:p,selectedMCPServers:m,mcpServers:u,mcpServerToolRestrictions:f,selectedVoice:g,endpointType:h,selectedModel:_,selectedSdk:b,proxySettings:x}=e,v="session"===o?i:s,y=window.location.origin,j=x?.LITELLM_UI_API_DOC_BASE_URL;j&&j.trim()?y=j:x?.PROXY_BASE_URL&&(y=x.PROXY_BASE_URL);let w=a||"Your prompt here",S=w.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n"),k=r.filter(e=>!e.isImage).map(({role:e,content:t})=>({role:e,content:t})),N={};l.length>0&&(N.tags=l),c.length>0&&(N.vector_stores=c),d.length>0&&(N.guardrails=d),p.length>0&&(N.policies=p);let C=_||"your-model-name",z="azure"===b?`import openai +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,447566,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645);let i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 000 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"}}]},name:"arrow-left",theme:"outlined"};var n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["ArrowLeftOutlined",0,s],447566)},492030,e=>{"use strict";var t=e.i(121229);e.s(["CheckOutlined",()=>t.default])},596239,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645);let i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"}}]},name:"link",theme:"outlined"};var n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["LinkOutlined",0,s],596239)},190272,785913,e=>{"use strict";var t,o,i=((t={}).AUDIO_SPEECH="audio_speech",t.AUDIO_TRANSCRIPTION="audio_transcription",t.IMAGE_GENERATION="image_generation",t.VIDEO_GENERATION="video_generation",t.CHAT="chat",t.RESPONSES="responses",t.IMAGE_EDITS="image_edits",t.ANTHROPIC_MESSAGES="anthropic_messages",t.EMBEDDING="embedding",t),n=((o={}).IMAGE="image",o.VIDEO="video",o.CHAT="chat",o.RESPONSES="responses",o.IMAGE_EDITS="image_edits",o.ANTHROPIC_MESSAGES="anthropic_messages",o.EMBEDDINGS="embeddings",o.SPEECH="speech",o.TRANSCRIPTION="transcription",o.A2A_AGENTS="a2a_agents",o.MCP="mcp",o.REALTIME="realtime",o.INTERACTIONS="interactions",o);let s={image_generation:"image",video_generation:"video",chat:"chat",responses:"responses",image_edits:"image_edits",anthropic_messages:"anthropic_messages",audio_speech:"speech",audio_transcription:"transcription",embedding:"embeddings"};e.s(["EndpointType",()=>n,"getEndpointType",0,e=>{if(console.log("getEndpointType:",e),Object.values(i).includes(e)){let t=s[e];return console.log("endpointType:",t),t}return"chat"}],785913),e.s(["generateCodeSnippet",0,e=>{let t,{apiKeySource:o,accessToken:i,apiKey:s,inputMessage:a,chatHistory:r,selectedTags:l,selectedVectorStores:c,selectedGuardrails:d,selectedPolicies:p,selectedMCPServers:m,mcpServers:u,mcpServerToolRestrictions:f,selectedVoice:g,endpointType:h,selectedModel:_,selectedSdk:b,proxySettings:x}=e,v="session"===o?i:s,y=window.location.origin,j=x?.LITELLM_UI_API_DOC_BASE_URL;j&&j.trim()?y=j:x?.PROXY_BASE_URL&&(y=x.PROXY_BASE_URL);let w=a||"Your prompt here",S=w.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n"),k=r.filter(e=>!e.isImage).map(({role:e,content:t})=>({role:e,content:t})),N={};l.length>0&&(N.tags=l),c.length>0&&(N.vector_stores=c),d.length>0&&(N.guardrails=d),p.length>0&&(N.policies=p);let C=_||"your-model-name",z="azure"===b?`import openai client = openai.AzureOpenAI( api_key="${v||"YOUR_LITELLM_API_KEY"}", @@ -417,4 +417,4 @@ print(f"Audio saved to {output_filename}") # ) # response.stream_to_file("output_speech.mp3") `;break;default:t="\n# Code generation for this endpoint is not implemented yet."}return`${z} -${t}`}],190272)},516015,(e,t,o)=>{},898547,(e,t,o)=>{var i=e.i(247167);e.r(516015);var n=e.r(271645),s=n&&"object"==typeof n&&"default"in n?n:{default:n},a=void 0!==i.default&&i.default.env&&!0,r=function(e){return"[object String]"===Object.prototype.toString.call(e)},l=function(){function e(e){var t=void 0===e?{}:e,o=t.name,i=void 0===o?"stylesheet":o,n=t.optimizeForSpeed,s=void 0===n?a:n;c(r(i),"`name` must be a string"),this._name=i,this._deletedRulePlaceholder="#"+i+"-deleted-rule____{}",c("boolean"==typeof s,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=s,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0;var l="u">typeof window&&document.querySelector('meta[property="csp-nonce"]');this._nonce=l?l.getAttribute("content"):null}var t,o=e.prototype;return o.setOptimizeForSpeed=function(e){c("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),c(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},o.isOptimizeForSpeed=function(){return this._optimizeForSpeed},o.inject=function(){var e=this;if(c(!this._injected,"sheet already injected"),this._injected=!0,"u">typeof window&&this._optimizeForSpeed){this._tags[0]=this.makeStyleTag(this._name),this._optimizeForSpeed="insertRule"in this.getSheet(),this._optimizeForSpeed||(a||console.warn("StyleSheet: optimizeForSpeed mode not supported falling back to standard mode."),this.flush(),this._injected=!0);return}this._serverSheet={cssRules:[],insertRule:function(t,o){return"number"==typeof o?e._serverSheet.cssRules[o]={cssText:t}:e._serverSheet.cssRules.push({cssText:t}),o},deleteRule:function(t){e._serverSheet.cssRules[t]=null}}},o.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var t=0;ttypeof window?this.getSheet():this._serverSheet;if(t.trim()||(t=this._deletedRulePlaceholder),!o.cssRules[e])return e;o.deleteRule(e);try{o.insertRule(t,e)}catch(i){a||console.warn("StyleSheet: illegal rule: \n\n"+t+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),o.insertRule(this._deletedRulePlaceholder,e)}}else{var i=this._tags[e];c(i,"old rule at index `"+e+"` not found"),i.textContent=t}return e},o.deleteRule=function(e){if("u"typeof window?(this._tags.forEach(function(e){return e&&e.parentNode.removeChild(e)}),this._tags=[]):this._serverSheet.cssRules=[]},o.cssRules=function(){var e=this;return"u">>0},p={};function m(e,t){if(!t)return"jsx-"+e;var o=String(t),i=e+o;return p[i]||(p[i]="jsx-"+d(e+"-"+o)),p[i]}function u(e,t){"u"typeof window&&!this._fromServer&&(this._fromServer=this.selectFromServer(),this._instancesCounts=Object.keys(this._fromServer).reduce(function(e,t){return e[t]=0,e},{}));var o=this.getIdAndRules(e),i=o.styleId,n=o.rules;if(i in this._instancesCounts){this._instancesCounts[i]+=1;return}var s=n.map(function(e){return t._sheet.insertRule(e)}).filter(function(e){return -1!==e});this._indices[i]=s,this._instancesCounts[i]=1},t.remove=function(e){var t=this,o=this.getIdAndRules(e).styleId;if(function(e,t){if(!e)throw Error("StyleSheetRegistry: "+t+".")}(o in this._instancesCounts,"styleId: `"+o+"` not found"),this._instancesCounts[o]-=1,this._instancesCounts[o]<1){var i=this._fromServer&&this._fromServer[o];i?(i.parentNode.removeChild(i),delete this._fromServer[o]):(this._indices[o].forEach(function(e){return t._sheet.deleteRule(e)}),delete this._indices[o]),delete this._instancesCounts[o]}},t.update=function(e,t){this.add(t),this.remove(e)},t.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},t.cssRules=function(){var e=this,t=this._fromServer?Object.keys(this._fromServer).map(function(t){return[t,e._fromServer[t]]}):[],o=this._sheet.cssRules();return t.concat(Object.keys(this._indices).map(function(t){return[t,e._indices[t].map(function(e){return o[e].cssText}).join(e._optimizeForSpeed?"":"\n")]}).filter(function(e){return!!e[1]}))},t.styles=function(e){var t,o;return t=this.cssRules(),void 0===(o=e)&&(o={}),t.map(function(e){var t=e[0],i=e[1];return s.default.createElement("style",{id:"__"+t,key:"__"+t,nonce:o.nonce?o.nonce:void 0,dangerouslySetInnerHTML:{__html:i}})})},t.getIdAndRules=function(e){var t=e.children,o=e.dynamic,i=e.id;if(o){var n=m(i,o);return{styleId:n,rules:Array.isArray(t)?t.map(function(e){return u(n,e)}):[u(n,t)]}}return{styleId:m(i),rules:Array.isArray(t)?t:[t]}},t.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(e,t){return e[t.id.slice(2)]=t,e},{})},e}(),g=n.createContext(null);function h(){return new f}function _(){return n.useContext(g)}g.displayName="StyleSheetContext";var b=s.default.useInsertionEffect||s.default.useLayoutEffect,x="u">typeof window?h():void 0;function v(e){var t=x||_();return t&&("u"{t.exports=e.r(898547).style},254530,452598,e=>{"use strict";e.i(247167);var t=e.i(356449),o=e.i(764205);async function i(e,i,n,s,a,r,l,c,d,p,m,u,f,g,h,_,b,x,v,y,j,w,S,k,N){console.log=function(){},console.log("isLocal:",!1);let C=y||(0,o.getProxyBaseUrl)(),z={};a&&a.length>0&&(z["x-litellm-tags"]=a.join(","));let I=new t.default.OpenAI({apiKey:s,baseURL:C,dangerouslyAllowBrowser:!0,defaultHeaders:z});try{let t,o=Date.now(),s=!1,a={},y=!1,C=[];for await(let v of(g&&g.length>0&&(g.includes("__all__")?C.push({type:"mcp",server_label:"litellm",server_url:"litellm_proxy/mcp",require_approval:"never"}):g.forEach(e=>{if(e.startsWith("toolset:")){let t=e.slice(8),o=N?.find(e=>e.toolset_id===t),i=o?.toolset_name||t;C.push({type:"mcp",server_label:i,server_url:`litellm_proxy/mcp/${encodeURIComponent(i)}`,require_approval:"never"})}else{let t=j?.find(t=>t.server_id===e),o=t?.alias||t?.server_name||e,i=w?.[e]||[];C.push({type:"mcp",server_label:"litellm",server_url:`litellm_proxy/mcp/${o}`,require_approval:"never",...i.length>0?{allowed_tools:i}:{}})}})),await I.chat.completions.create({model:n,stream:!0,stream_options:{include_usage:!0},litellm_trace_id:p,messages:e,...m?{vector_store_ids:m}:{},...u?{guardrails:u}:{},...f?{policies:f}:{},...C.length>0?{tools:C,tool_choice:"auto"}:{},...void 0!==b?{temperature:b}:{},...void 0!==x?{max_tokens:x}:{},...k?{mock_testing_fallbacks:!0}:{}},{signal:r}))){console.log("Stream chunk:",v);let e=v.choices[0]?.delta;if(console.log("Delta content:",v.choices[0]?.delta?.content),console.log("Delta reasoning content:",e?.reasoning_content),!s&&(v.choices[0]?.delta?.content||e&&e.reasoning_content)&&(s=!0,t=Date.now()-o,console.log("First token received! Time:",t,"ms"),c?(console.log("Calling onTimingData with:",t),c(t)):console.log("onTimingData callback is not defined!")),v.choices[0]?.delta?.content){let e=v.choices[0].delta.content;i(e,v.model)}if(e&&e.image&&h&&(console.log("Image generated:",e.image),h(e.image.url,v.model)),e&&e.reasoning_content){let t=e.reasoning_content;l&&l(t)}if(e&&e.provider_specific_fields?.search_results&&_&&(console.log("Search results found:",e.provider_specific_fields.search_results),_(e.provider_specific_fields.search_results)),e&&e.provider_specific_fields){let t=e.provider_specific_fields;if(t.mcp_list_tools&&!a.mcp_list_tools&&(a.mcp_list_tools=t.mcp_list_tools,S&&!y)){y=!0;let e={type:"response.output_item.done",item_id:"mcp_list_tools",item:{type:"mcp_list_tools",tools:t.mcp_list_tools.map(e=>({name:e.function?.name||e.name||"",description:e.function?.description||e.description||"",input_schema:e.function?.parameters||e.input_schema||{}}))},timestamp:Date.now()};S(e),console.log("MCP list_tools event sent:",e)}t.mcp_tool_calls&&(a.mcp_tool_calls=t.mcp_tool_calls),t.mcp_call_results&&(a.mcp_call_results=t.mcp_call_results),(t.mcp_list_tools||t.mcp_tool_calls||t.mcp_call_results)&&console.log("MCP metadata found in chunk:",{mcp_list_tools:t.mcp_list_tools?"present":"absent",mcp_tool_calls:t.mcp_tool_calls?"present":"absent",mcp_call_results:t.mcp_call_results?"present":"absent"})}if(v.usage&&d){console.log("Usage data found:",v.usage);let e={completionTokens:v.usage.completion_tokens,promptTokens:v.usage.prompt_tokens,totalTokens:v.usage.total_tokens};v.usage.completion_tokens_details?.reasoning_tokens&&(e.reasoningTokens=v.usage.completion_tokens_details.reasoning_tokens),void 0!==v.usage.cost&&null!==v.usage.cost&&(e.cost=parseFloat(v.usage.cost)),d(e)}}S&&(a.mcp_tool_calls||a.mcp_call_results)&&a.mcp_tool_calls&&a.mcp_tool_calls.length>0&&a.mcp_tool_calls.forEach((e,t)=>{let o=e.function?.name||e.name||"",i=e.function?.arguments||e.arguments||"{}",n=a.mcp_call_results?.find(t=>t.tool_call_id===e.id||t.tool_call_id===e.call_id)||a.mcp_call_results?.[t],s={type:"response.output_item.done",item:{type:"mcp_call",name:o,arguments:"string"==typeof i?i:JSON.stringify(i),output:n?.result?"string"==typeof n.result?n.result:JSON.stringify(n.result):void 0},item_id:e.id||e.call_id,timestamp:Date.now()};S(s),console.log("MCP call event sent:",s)});let z=Date.now();v&&v(z-o)}catch(e){throw r?.aborted&&console.log("Chat completion request was cancelled"),e}}e.s(["makeOpenAIChatCompletionRequest",0,i],254530);var n=e.i(727749);async function s(e,i,a,r,l=[],c,d,p,m,u,f,g,h,_,b,x,v,y,j,w,S,k,N){if(!r)throw Error("Virtual Key is required");if(!a||""===a.trim())throw Error("Model is required. Please select a model before sending a request.");console.log=function(){};let C=w||(0,o.getProxyBaseUrl)(),z={};l&&l.length>0&&(z["x-litellm-tags"]=l.join(","));let I=new t.default.OpenAI({apiKey:r,baseURL:C,dangerouslyAllowBrowser:!0,defaultHeaders:z});try{let t=Date.now(),o=!1,n=e.map(e=>(Array.isArray(e.content),{role:e.role,content:e.content,type:"message"})),s=[];_&&_.length>0&&(_.includes("__all__")?s.push({type:"mcp",server_label:"litellm",server_url:`${C}/mcp`,require_approval:"never"}):_.forEach(e=>{if(e.startsWith("toolset:")){let t=e.slice(8),o=N?.find(e=>e.toolset_id===t),i=o?.toolset_name||t;s.push({type:"mcp",server_label:i,server_url:`${C}/mcp/${encodeURIComponent(i)}`,require_approval:"never"})}else{let t=S?.find(t=>t.server_id===e),o=t?.server_name||e,i=k?.[e]||[];s.push({type:"mcp",server_label:o,server_url:`${C}/mcp/${encodeURIComponent(o)}`,require_approval:"never",...i.length>0?{allowed_tools:i}:{}})}})),y&&s.push({type:"code_interpreter",container:{type:"auto"}});let r=await I.responses.create({model:a,input:n,stream:!0,litellm_trace_id:u,...b?{previous_response_id:b}:{},...f?{vector_store_ids:f}:{},...g?{guardrails:g}:{},...h?{policies:h}:{},...s.length>0?{tools:s,tool_choice:"auto"}:{}},{signal:c}),l="",w={code:"",containerId:""};for await(let e of r)if(console.log("Response event:",e),"object"==typeof e&&null!==e){if((e.type?.startsWith("response.mcp_")||"response.output_item.done"===e.type&&(e.item?.type==="mcp_list_tools"||e.item?.type==="mcp_call"))&&(console.log("MCP event received:",e),v)){let t={type:e.type,sequence_number:e.sequence_number,output_index:e.output_index,item_id:e.item_id||e.item?.id,item:e.item,delta:e.delta,arguments:e.arguments,timestamp:Date.now()};v(t)}"response.output_item.done"===e.type&&e.item?.type==="mcp_call"&&e.item?.name&&(l=e.item.name,console.log("MCP tool used:",l)),R=w;var R,T=w="response.output_item.done"===e.type&&e.item?.type==="code_interpreter_call"?(console.log("Code interpreter call completed:",e.item),{code:e.item.code||"",containerId:e.item.container_id||""}):R;if("response.output_item.done"===e.type&&e.item?.type==="message"&&e.item?.content&&j){for(let t of e.item.content)if("output_text"===t.type&&t.annotations){let e=t.annotations.filter(e=>"container_file_citation"===e.type);(e.length>0||T.code)&&j({code:T.code,containerId:T.containerId,annotations:e})}}if("response.role.delta"===e.type)continue;if("response.output_text.delta"===e.type&&"string"==typeof e.delta){let n=e.delta;if(console.log("Text delta",n),n.length>0&&(i("assistant",n,a),!o)){o=!0;let e=Date.now()-t;console.log("First token received! Time:",e,"ms"),p&&p(e)}}if("response.reasoning.delta"===e.type&&"delta"in e){let t=e.delta;"string"==typeof t&&d&&d(t)}if("response.completed"===e.type&&"response"in e){let t=e.response,o=t.usage;if(console.log("Usage data:",o),console.log("Response completed event:",t),t.id&&x&&(console.log("Response ID for session management:",t.id),x(t.id)),o&&m){console.log("Usage data:",o);let e={completionTokens:o.output_tokens,promptTokens:o.input_tokens,totalTokens:o.total_tokens};o.completion_tokens_details?.reasoning_tokens&&(e.reasoningTokens=o.completion_tokens_details.reasoning_tokens),m(e,l)}}}return r}catch(e){throw c?.aborted?console.log("Responses API request was cancelled"):n.default.fromBackend(`Error occurred while generating model response. Please try again. Error: ${e}`),e}}e.s(["makeOpenAIResponsesRequest",0,s],452598)},355343,e=>{"use strict";var t=e.i(843476),o=e.i(437902),i=e.i(898586),n=e.i(362024);let{Text:s}=i.Typography,{Panel:a}=n.Collapse;e.s(["default",0,({events:e,className:i})=>{if(console.log("MCPEventsDisplay: Received events:",e),!e||0===e.length)return console.log("MCPEventsDisplay: No events, returning null"),null;let s=e.find(e=>"response.output_item.done"===e.type&&e.item?.type==="mcp_list_tools"&&e.item.tools&&e.item.tools.length>0),r=e.filter(e=>"response.output_item.done"===e.type&&e.item?.type==="mcp_call");return(console.log("MCPEventsDisplay: toolsEvent:",s),console.log("MCPEventsDisplay: mcpCallEvents:",r),s||0!==r.length)?(0,t.jsxs)("div",{className:`jsx-32b14b04f420f3ac mcp-events-display ${i||""}`,children:[(0,t.jsx)(o.default,{id:"32b14b04f420f3ac",children:".openai-mcp-tools.jsx-32b14b04f420f3ac{margin:0;padding:0;position:relative}.openai-mcp-tools.jsx-32b14b04f420f3ac .ant-collapse.jsx-32b14b04f420f3ac,.openai-mcp-tools.jsx-32b14b04f420f3ac .ant-collapse-item.jsx-32b14b04f420f3ac{background:0 0!important;border:none!important}.openai-mcp-tools.jsx-32b14b04f420f3ac .ant-collapse-header.jsx-32b14b04f420f3ac{color:#9ca3af!important;background:0 0!important;border:none!important;min-height:20px!important;padding:0 0 0 20px!important;font-size:14px!important;font-weight:400!important;line-height:20px!important}.openai-mcp-tools.jsx-32b14b04f420f3ac .ant-collapse-header.jsx-32b14b04f420f3ac:hover{color:#6b7280!important;background:0 0!important}.openai-mcp-tools.jsx-32b14b04f420f3ac .ant-collapse-content.jsx-32b14b04f420f3ac{background:0 0!important;border:none!important}.openai-mcp-tools.jsx-32b14b04f420f3ac .ant-collapse-content-box.jsx-32b14b04f420f3ac{padding:4px 0 0 20px!important}.openai-mcp-tools.jsx-32b14b04f420f3ac .ant-collapse-expand-icon.jsx-32b14b04f420f3ac{color:#9ca3af!important;justify-content:center!important;align-items:center!important;width:16px!important;height:16px!important;font-size:10px!important;display:flex!important;position:absolute!important;top:2px!important;left:2px!important}.openai-mcp-tools.jsx-32b14b04f420f3ac .ant-collapse-expand-icon.jsx-32b14b04f420f3ac:hover{color:#6b7280!important}.openai-vertical-line.jsx-32b14b04f420f3ac{opacity:.8;background-color:#f3f4f6;width:.5px;position:absolute;top:18px;bottom:0;left:9px}.tool-item.jsx-32b14b04f420f3ac{color:#4b5563;z-index:1;background:#fff;margin:0;padding:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:13px;line-height:18px;position:relative}.mcp-section.jsx-32b14b04f420f3ac{z-index:1;background:#fff;margin-bottom:12px;position:relative}.mcp-section.jsx-32b14b04f420f3ac:last-child{margin-bottom:0}.mcp-section-header.jsx-32b14b04f420f3ac{color:#6b7280;margin-bottom:4px;font-size:13px;font-weight:500}.mcp-code-block.jsx-32b14b04f420f3ac{background:#f9fafb;border:1px solid #f3f4f6;border-radius:6px;padding:8px;font-size:12px}.mcp-json.jsx-32b14b04f420f3ac{color:#374151;white-space:pre-wrap;word-wrap:break-word;margin:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Monaco,Consolas,Liberation Mono,Courier New,monospace}.mcp-approved.jsx-32b14b04f420f3ac{color:#6b7280;align-items:center;font-size:13px;display:flex}.mcp-checkmark.jsx-32b14b04f420f3ac{color:#10b981;margin-right:6px;font-weight:700}.mcp-response-content.jsx-32b14b04f420f3ac{color:#374151;white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,SF Mono,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:13px;line-height:1.5}"}),(0,t.jsxs)("div",{className:"jsx-32b14b04f420f3ac openai-mcp-tools",children:[(0,t.jsx)("div",{className:"jsx-32b14b04f420f3ac openai-vertical-line"}),(0,t.jsxs)(n.Collapse,{ghost:!0,size:"small",expandIconPosition:"start",defaultActiveKey:s?["list-tools"]:r.map((e,t)=>`mcp-call-${t}`),children:[s&&(0,t.jsx)(a,{header:"List tools",children:(0,t.jsx)("div",{className:"jsx-32b14b04f420f3ac",children:s.item?.tools?.map((e,o)=>(0,t.jsx)("div",{className:"jsx-32b14b04f420f3ac tool-item",children:e.name},o))})},"list-tools"),r.map((e,o)=>(0,t.jsx)(a,{header:e.item?.name||"Tool call",children:(0,t.jsxs)("div",{className:"jsx-32b14b04f420f3ac",children:[(0,t.jsxs)("div",{className:"jsx-32b14b04f420f3ac mcp-section",children:[(0,t.jsx)("div",{className:"jsx-32b14b04f420f3ac mcp-section-header",children:"Request"}),(0,t.jsx)("div",{className:"jsx-32b14b04f420f3ac mcp-code-block",children:e.item?.arguments&&(0,t.jsx)("pre",{className:"jsx-32b14b04f420f3ac mcp-json",children:(()=>{try{return JSON.stringify(JSON.parse(e.item.arguments),null,2)}catch(t){return e.item.arguments}})()})})]}),(0,t.jsx)("div",{className:"jsx-32b14b04f420f3ac mcp-section",children:(0,t.jsxs)("div",{className:"jsx-32b14b04f420f3ac mcp-approved",children:[(0,t.jsx)("span",{className:"jsx-32b14b04f420f3ac mcp-checkmark",children:"✓"})," Approved"]})}),e.item?.output&&(0,t.jsxs)("div",{className:"jsx-32b14b04f420f3ac mcp-section",children:[(0,t.jsx)("div",{className:"jsx-32b14b04f420f3ac mcp-section-header",children:"Response"}),(0,t.jsx)("div",{className:"jsx-32b14b04f420f3ac mcp-response-content",children:e.item.output})]})]})},`mcp-call-${o}`))]})]})]}):(console.log("MCPEventsDisplay: No valid events found, returning null"),null)}])},966988,e=>{"use strict";var t=e.i(843476),o=e.i(271645),i=e.i(464571),n=e.i(918789),s=e.i(650056),a=e.i(219470),r=e.i(755151),l=e.i(240647),c=e.i(812618);e.s(["default",0,({reasoningContent:e})=>{let[d,p]=(0,o.useState)(!0);return e?(0,t.jsxs)("div",{className:"reasoning-content mt-1 mb-2",children:[(0,t.jsxs)(i.Button,{type:"text",className:"flex items-center text-xs text-gray-500 hover:text-gray-700",onClick:()=>p(!d),icon:(0,t.jsx)(c.BulbOutlined,{}),children:[d?"Hide reasoning":"Show reasoning",d?(0,t.jsx)(r.DownOutlined,{className:"ml-1"}):(0,t.jsx)(l.RightOutlined,{className:"ml-1"})]}),d&&(0,t.jsx)("div",{className:"mt-2 p-3 bg-gray-50 border border-gray-200 rounded-md text-sm text-gray-700",children:(0,t.jsx)(n.default,{components:{code({node:e,inline:o,className:i,children:n,...r}){let l=/language-(\w+)/.exec(i||"");return!o&&l?(0,t.jsx)(s.Prism,{style:a.coy,language:l[1],PreTag:"div",className:"rounded-md my-2",...r,children:String(n).replace(/\n$/,"")}):(0,t.jsx)("code",{className:`${i} px-1.5 py-0.5 rounded bg-gray-100 text-sm font-mono`,...r,children:n})}},children:e})})]}):null}])},219470,812618,e=>{"use strict";e.s(["coy",0,{'code[class*="language-"]':{color:"black",background:"none",fontFamily:"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace",fontSize:"1em",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",wordWrap:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",maxHeight:"inherit",height:"inherit",padding:"0 1em",display:"block",overflow:"auto"},'pre[class*="language-"]':{color:"black",background:"none",fontFamily:"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace",fontSize:"1em",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",wordWrap:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",position:"relative",margin:".5em 0",overflow:"visible",padding:"1px",backgroundColor:"#fdfdfd",WebkitBoxSizing:"border-box",MozBoxSizing:"border-box",boxSizing:"border-box",marginBottom:"1em"},'pre[class*="language-"] > code':{position:"relative",zIndex:"1",borderLeft:"10px solid #358ccb",boxShadow:"-1px 0px 0px 0px #358ccb, 0px 0px 0px 1px #dfdfdf",backgroundColor:"#fdfdfd",backgroundImage:"linear-gradient(transparent 50%, rgba(69, 142, 209, 0.04) 50%)",backgroundSize:"3em 3em",backgroundOrigin:"content-box",backgroundAttachment:"local"},':not(pre) > code[class*="language-"]':{backgroundColor:"#fdfdfd",WebkitBoxSizing:"border-box",MozBoxSizing:"border-box",boxSizing:"border-box",marginBottom:"1em",position:"relative",padding:".2em",borderRadius:"0.3em",color:"#c92c2c",border:"1px solid rgba(0, 0, 0, 0.1)",display:"inline",whiteSpace:"normal"},'pre[class*="language-"]:before':{content:"''",display:"block",position:"absolute",bottom:"0.75em",left:"0.18em",width:"40%",height:"20%",maxHeight:"13em",boxShadow:"0px 13px 8px #979797",WebkitTransform:"rotate(-2deg)",MozTransform:"rotate(-2deg)",msTransform:"rotate(-2deg)",OTransform:"rotate(-2deg)",transform:"rotate(-2deg)"},'pre[class*="language-"]:after':{content:"''",display:"block",position:"absolute",bottom:"0.75em",left:"auto",width:"40%",height:"20%",maxHeight:"13em",boxShadow:"0px 13px 8px #979797",WebkitTransform:"rotate(2deg)",MozTransform:"rotate(2deg)",msTransform:"rotate(2deg)",OTransform:"rotate(2deg)",transform:"rotate(2deg)",right:"0.75em"},comment:{color:"#7D8B99"},"block-comment":{color:"#7D8B99"},prolog:{color:"#7D8B99"},doctype:{color:"#7D8B99"},cdata:{color:"#7D8B99"},punctuation:{color:"#5F6364"},property:{color:"#c92c2c"},tag:{color:"#c92c2c"},boolean:{color:"#c92c2c"},number:{color:"#c92c2c"},"function-name":{color:"#c92c2c"},constant:{color:"#c92c2c"},symbol:{color:"#c92c2c"},deleted:{color:"#c92c2c"},selector:{color:"#2f9c0a"},"attr-name":{color:"#2f9c0a"},string:{color:"#2f9c0a"},char:{color:"#2f9c0a"},function:{color:"#2f9c0a"},builtin:{color:"#2f9c0a"},inserted:{color:"#2f9c0a"},operator:{color:"#a67f59",background:"rgba(255, 255, 255, 0.5)"},entity:{color:"#a67f59",background:"rgba(255, 255, 255, 0.5)",cursor:"help"},url:{color:"#a67f59",background:"rgba(255, 255, 255, 0.5)"},variable:{color:"#a67f59",background:"rgba(255, 255, 255, 0.5)"},atrule:{color:"#1990b8"},"attr-value":{color:"#1990b8"},keyword:{color:"#1990b8"},"class-name":{color:"#1990b8"},regex:{color:"#e90"},important:{color:"#e90",fontWeight:"normal"},".language-css .token.string":{color:"#a67f59",background:"rgba(255, 255, 255, 0.5)"},".style .token.string":{color:"#a67f59",background:"rgba(255, 255, 255, 0.5)"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"},namespace:{Opacity:".7"},'pre[class*="language-"].line-numbers.line-numbers':{paddingLeft:"0"},'pre[class*="language-"].line-numbers.line-numbers code':{paddingLeft:"3.8em"},'pre[class*="language-"].line-numbers.line-numbers .line-numbers-rows':{left:"0"},'pre[class*="language-"][data-line]':{paddingTop:"0",paddingBottom:"0",paddingLeft:"0"},"pre[data-line] code":{position:"relative",paddingLeft:"4em"},"pre .line-highlight":{marginTop:"0"}}],219470),e.i(247167);var t=e.i(931067),o=e.i(271645);let i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z"}}]},name:"bulb",theme:"outlined"};var n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["BulbOutlined",0,s],812618)},132104,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645);let i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M868 545.5L536.1 163a31.96 31.96 0 00-48.3 0L156 545.5a7.97 7.97 0 006 13.2h81c4.6 0 9-2 12.1-5.5L474 300.9V864c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V300.9l218.9 252.3c3 3.5 7.4 5.5 12.1 5.5h81c6.8 0 10.5-8 6-13.2z"}}]},name:"arrow-up",theme:"outlined"};var n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["ArrowUpOutlined",0,s],132104)},447593,989022,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M899.1 869.6l-53-305.6H864c14.4 0 26-11.6 26-26V346c0-14.4-11.6-26-26-26H618V138c0-14.4-11.6-26-26-26H432c-14.4 0-26 11.6-26 26v182H160c-14.4 0-26 11.6-26 26v192c0 14.4 11.6 26 26 26h17.9l-53 305.6a25.95 25.95 0 0025.6 30.4h723c1.5 0 3-.1 4.4-.4a25.88 25.88 0 0021.2-30zM204 390h272V182h72v208h272v104H204V390zm468 440V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H416V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H202.8l45.1-260H776l45.1 260H672z"}}]},name:"clear",theme:"outlined"},n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["ClearOutlined",0,s],447593);var a=e.i(843476),r=e.i(592968),l=e.i(637235);let c={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M872 394c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H708V152c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v166H400V152c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v166H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h168v236H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h168v166c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V706h228v166c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V706h164c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H708V394h164zM628 630H400V394h228v236z"}}]},name:"number",theme:"outlined"};var d=o.forwardRef(function(e,i){return o.createElement(n.default,(0,t.default)({},e,{ref:i,icon:c}))});let p={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880 912H144c-17.7 0-32-14.3-32-32V144c0-17.7 14.3-32 32-32h360c4.4 0 8 3.6 8 8v56c0 4.4-3.6 8-8 8H184v656h656V520c0-4.4 3.6-8 8-8h56c4.4 0 8 3.6 8 8v360c0 17.7-14.3 32-32 32zM653.3 424.6l52.2 52.2a8.01 8.01 0 01-4.7 13.6l-179.4 21c-5.1.6-9.5-3.7-8.9-8.9l21-179.4c.8-6.6 8.9-9.4 13.6-4.7l52.4 52.4 256.2-256.2c3.1-3.1 8.2-3.1 11.3 0l42.4 42.4c3.1 3.1 3.1 8.2 0 11.3L653.3 424.6z"}}]},name:"import",theme:"outlined"};var m=o.forwardRef(function(e,i){return o.createElement(n.default,(0,t.default)({},e,{ref:i,icon:p}))}),u=e.i(872934),f=e.i(812618),g=e.i(366308),h=e.i(458505);e.s(["default",0,({timeToFirstToken:e,totalLatency:t,usage:o,toolName:i})=>e||t||o?(0,a.jsxs)("div",{className:"response-metrics mt-2 pt-2 border-t border-gray-100 text-xs text-gray-500 flex flex-wrap gap-3",children:[void 0!==e&&(0,a.jsx)(r.Tooltip,{title:"Time to first token",children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(l.ClockCircleOutlined,{className:"mr-1"}),(0,a.jsxs)("span",{children:["TTFT: ",(e/1e3).toFixed(2),"s"]})]})}),void 0!==t&&(0,a.jsx)(r.Tooltip,{title:"Total latency",children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(l.ClockCircleOutlined,{className:"mr-1"}),(0,a.jsxs)("span",{children:["Total Latency: ",(t/1e3).toFixed(2),"s"]})]})}),o?.promptTokens!==void 0&&(0,a.jsx)(r.Tooltip,{title:"Prompt tokens",children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(m,{className:"mr-1"}),(0,a.jsxs)("span",{children:["In: ",o.promptTokens]})]})}),o?.completionTokens!==void 0&&(0,a.jsx)(r.Tooltip,{title:"Completion tokens",children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(u.ExportOutlined,{className:"mr-1"}),(0,a.jsxs)("span",{children:["Out: ",o.completionTokens]})]})}),o?.reasoningTokens!==void 0&&(0,a.jsx)(r.Tooltip,{title:"Reasoning tokens",children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(f.BulbOutlined,{className:"mr-1"}),(0,a.jsxs)("span",{children:["Reasoning: ",o.reasoningTokens]})]})}),o?.totalTokens!==void 0&&(0,a.jsx)(r.Tooltip,{title:"Total tokens",children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(d,{className:"mr-1"}),(0,a.jsxs)("span",{children:["Total: ",o.totalTokens]})]})}),o?.cost!==void 0&&(0,a.jsx)(r.Tooltip,{title:"Cost",children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(h.DollarOutlined,{className:"mr-1"}),(0,a.jsxs)("span",{children:["$",o.cost.toFixed(6)]})]})}),i&&(0,a.jsx)(r.Tooltip,{title:"Tool used",children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(g.ToolOutlined,{className:"mr-1"}),(0,a.jsxs)("span",{children:["Tool: ",i]})]})})]}):null],989022)},434166,e=>{"use strict";e.s(["getSecureItem",0,function(e){try{let t=window.sessionStorage.getItem(e);if(null===t)return null;return decodeURIComponent(atob(t).split("").map(e=>"%"+e.charCodeAt(0).toString(16).padStart(2,"0")).join(""))}catch{return null}},"setSecureItem",0,function(e,t){window.sessionStorage.setItem(e,btoa(encodeURIComponent(t).replace(/%([0-9A-F]{2})/g,(e,t)=>String.fromCharCode(parseInt(t,16)))))}])},245094,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645);let i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48zm-194.9 6.1l192-161c3.8-3.2 3.8-9.1 0-12.3l-192-160.9A7.95 7.95 0 00308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 00-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"code",theme:"outlined"};var n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["CodeOutlined",0,s],245094)},458505,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645);let i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z"}}]},name:"dollar",theme:"outlined"};var n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["DollarOutlined",0,s],458505)},611052,e=>{"use strict";var t=e.i(843476),o=e.i(271645),i=e.i(212931),n=e.i(311451),s=e.i(790848),a=e.i(888259),r=e.i(438957);e.i(247167);var l=e.i(931067);let c={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 10-56 0z"}}]},name:"lock",theme:"outlined"};var d=e.i(9583),p=o.forwardRef(function(e,t){return o.createElement(d.default,(0,l.default)({},e,{ref:t,icon:c}))}),m=e.i(492030),u=e.i(266537),f=e.i(447566),g=e.i(149192),h=e.i(596239);e.s(["ByokCredentialModal",0,({server:e,open:l,onClose:c,onSuccess:d,accessToken:_})=>{let[b,x]=(0,o.useState)(1),[v,y]=(0,o.useState)(""),[j,w]=(0,o.useState)(!0),[S,k]=(0,o.useState)(!1),N=e.alias||e.server_name||"Service",C=N.charAt(0).toUpperCase(),z=()=>{x(1),y(""),w(!0),k(!1),c()},I=async()=>{if(!v.trim())return void a.default.error("Please enter your API key");k(!0);try{let t=await fetch(`/v1/mcp/server/${e.server_id}/user-credential`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${_}`},body:JSON.stringify({credential:v.trim(),save:j})});if(!t.ok){let e=await t.json();throw Error(e?.detail?.error||"Failed to save credential")}a.default.success(`Connected to ${N}`),d(e.server_id),z()}catch(e){a.default.error(e.message||"Failed to connect")}finally{k(!1)}};return(0,t.jsx)(i.Modal,{open:l,onCancel:z,footer:null,width:480,closeIcon:null,className:"byok-modal",children:(0,t.jsxs)("div",{className:"relative p-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[2===b?(0,t.jsxs)("button",{onClick:()=>x(1),className:"flex items-center gap-1 text-gray-500 hover:text-gray-800 text-sm",children:[(0,t.jsx)(f.ArrowLeftOutlined,{})," Back"]}):(0,t.jsx)("div",{}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("div",{className:`w-2 h-2 rounded-full ${1===b?"bg-blue-500":"bg-gray-300"}`}),(0,t.jsx)("div",{className:`w-2 h-2 rounded-full ${2===b?"bg-blue-500":"bg-gray-300"}`})]}),(0,t.jsx)("button",{onClick:z,className:"text-gray-400 hover:text-gray-600",children:(0,t.jsx)(g.CloseOutlined,{})})]}),1===b?(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsxs)("div",{className:"flex items-center justify-center gap-3 mb-6",children:[(0,t.jsx)("div",{className:"w-14 h-14 rounded-xl bg-gradient-to-br from-teal-400 to-cyan-600 flex items-center justify-center text-white font-bold text-xl shadow",children:"L"}),(0,t.jsx)(u.ArrowRightOutlined,{className:"text-gray-400 text-lg"}),(0,t.jsx)("div",{className:"w-14 h-14 rounded-xl bg-gradient-to-br from-blue-600 to-indigo-800 flex items-center justify-center text-white font-bold text-xl shadow",children:C})]}),(0,t.jsxs)("h2",{className:"text-2xl font-bold text-gray-900 mb-2",children:["Connect ",N]}),(0,t.jsxs)("p",{className:"text-gray-500 mb-6",children:["LiteLLM needs access to ",N," to complete your request."]}),(0,t.jsx)("div",{className:"bg-gray-50 rounded-xl p-4 text-left mb-4",children:(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("div",{className:"mt-0.5",children:(0,t.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",className:"text-gray-500",children:[(0,t.jsx)("rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",stroke:"currentColor",strokeWidth:"2"}),(0,t.jsx)("path",{d:"M8 4v16M16 4v16",stroke:"currentColor",strokeWidth:"2"})]})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-semibold text-gray-800 mb-1",children:"How it works"}),(0,t.jsxs)("p",{className:"text-gray-500 text-sm",children:["LiteLLM acts as a secure bridge. Your requests are routed through our MCP client directly to"," ",N,"'s API."]})]})]})}),e.byok_description&&e.byok_description.length>0&&(0,t.jsxs)("div",{className:"bg-gray-50 rounded-xl p-4 text-left mb-6",children:[(0,t.jsxs)("p",{className:"text-xs font-semibold text-gray-500 uppercase tracking-widest mb-3 flex items-center gap-2",children:[(0,t.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",className:"text-green-500",children:[(0,t.jsx)("path",{d:"M12 2L12 22M2 12L22 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"}),(0,t.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2"})]}),"Requested Access"]}),(0,t.jsx)("ul",{className:"space-y-2",children:e.byok_description.map((e,o)=>(0,t.jsxs)("li",{className:"flex items-center gap-2 text-sm text-gray-700",children:[(0,t.jsx)(m.CheckOutlined,{className:"text-green-500 flex-shrink-0"}),e]},o))})]}),(0,t.jsxs)("button",{onClick:()=>x(2),className:"w-full bg-gray-900 hover:bg-gray-700 text-white font-medium py-3 px-6 rounded-xl flex items-center justify-center gap-2 transition-colors",children:["Continue to Authentication ",(0,t.jsx)(u.ArrowRightOutlined,{})]}),(0,t.jsx)("button",{onClick:z,className:"mt-3 w-full text-gray-400 hover:text-gray-600 text-sm py-2",children:"Cancel"})]}):(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"w-12 h-12 rounded-full bg-blue-50 flex items-center justify-center mb-4",children:(0,t.jsx)(r.KeyOutlined,{className:"text-blue-400 text-xl"})}),(0,t.jsx)("h2",{className:"text-2xl font-bold text-gray-900 mb-2",children:"Provide API Key"}),(0,t.jsxs)("p",{className:"text-gray-500 mb-6",children:["Enter your ",N," API key to authorize this connection."]}),(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsxs)("label",{className:"block text-sm font-semibold text-gray-800 mb-2",children:[N," API Key"]}),(0,t.jsx)(n.Input.Password,{placeholder:"Enter your API key",value:v,onChange:e=>y(e.target.value),size:"large",className:"rounded-lg"}),e.byok_api_key_help_url&&(0,t.jsxs)("a",{href:e.byok_api_key_help_url,target:"_blank",rel:"noopener noreferrer",className:"text-blue-500 hover:text-blue-700 text-sm mt-2 flex items-center gap-1",children:["Where do I find my API key? ",(0,t.jsx)(h.LinkOutlined,{})]})]}),(0,t.jsxs)("div",{className:"bg-gray-50 rounded-xl p-4 flex items-center justify-between mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",className:"text-gray-500",children:(0,t.jsx)("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z",fill:"currentColor"})}),(0,t.jsx)("span",{className:"text-sm font-medium text-gray-800",children:"Save key for future use"})]}),(0,t.jsx)(s.Switch,{checked:j,onChange:w})]}),(0,t.jsxs)("div",{className:"bg-blue-50 rounded-xl p-4 flex items-start gap-3 mb-6",children:[(0,t.jsx)(p,{className:"text-blue-400 mt-0.5 flex-shrink-0"}),(0,t.jsx)("p",{className:"text-sm text-blue-700",children:"Your key is stored securely and transmitted over HTTPS. It is never shared with third parties."})]}),(0,t.jsxs)("button",{onClick:I,disabled:S,className:"w-full bg-blue-500 hover:bg-blue-600 disabled:opacity-60 text-white font-medium py-3 px-6 rounded-xl flex items-center justify-center gap-2 transition-colors",children:[(0,t.jsx)(p,{}),"Connect & Authorize"]})]})]})})}],611052)},84899,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M931.4 498.9L94.9 79.5c-3.4-1.7-7.3-2.1-11-1.2a15.99 15.99 0 00-11.7 19.3l86.2 352.2c1.3 5.3 5.2 9.6 10.4 11.3l147.7 50.7-147.6 50.7c-5.2 1.8-9.1 6-10.3 11.3L72.2 926.5c-.9 3.7-.5 7.6 1.2 10.9 3.9 7.9 13.5 11.1 21.5 7.2l836.5-417c3.1-1.5 5.6-4.1 7.2-7.1 3.9-8 .7-17.6-7.2-21.6zM170.8 826.3l50.3-205.6 295.2-101.3c2.3-.8 4.2-2.6 5-5 1.4-4.2-.8-8.7-5-10.2L221.1 403 171 198.2l628 314.9-628.2 313.2z"}}]},name:"send",theme:"outlined"},n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["SendOutlined",0,s],84899)},240647,e=>{"use strict";var t=e.i(286612);e.s(["RightOutlined",()=>t.default])},362024,e=>{"use strict";var t=e.i(988122);e.s(["Collapse",()=>t.default])},245704,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645);let i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"check-circle",theme:"outlined"};var n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["CheckCircleOutlined",0,s],245704)},149192,e=>{"use strict";var t=e.i(864517);e.s(["CloseOutlined",()=>t.default])},518617,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645);let i={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm0 76c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm128.01 198.83c.03 0 .05.01.09.06l45.02 45.01a.2.2 0 01.05.09.12.12 0 010 .07c0 .02-.01.04-.05.08L557.25 512l127.87 127.86a.27.27 0 01.05.06v.02a.12.12 0 010 .07c0 .03-.01.05-.05.09l-45.02 45.02a.2.2 0 01-.09.05.12.12 0 01-.07 0c-.02 0-.04-.01-.08-.05L512 557.25 384.14 685.12c-.04.04-.06.05-.08.05a.12.12 0 01-.07 0c-.03 0-.05-.01-.09-.05l-45.02-45.02a.2.2 0 01-.05-.09.12.12 0 010-.07c0-.02.01-.04.06-.08L466.75 512 338.88 384.14a.27.27 0 01-.05-.06l-.01-.02a.12.12 0 010-.07c0-.03.01-.05.05-.09l45.02-45.02a.2.2 0 01.09-.05.12.12 0 01.07 0c.02 0 .04.01.08.06L512 466.75l127.86-127.86c.04-.05.06-.06.08-.06a.12.12 0 01.07 0z"}}]},name:"close-circle",theme:"outlined"};var n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["CloseCircleOutlined",0,s],518617)},782273,793916,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645);let i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1zM586 803L293.4 611.7l-18-11.7H146V424h129.4l17.9-11.7L586 221v582zm348-327H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zm-41.9 261.8l-110.3-63.7a15.9 15.9 0 00-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0021.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM760 344a15.9 15.9 0 0021.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 00-21.7-5.9L746 287.8a15.99 15.99 0 00-5.8 21.8L760 344z"}}]},name:"sound",theme:"outlined"};var n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["SoundOutlined",0,s],782273);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M842 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1zM512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm-94-392c0-50.6 41.9-92 94-92s94 41.4 94 92v224c0 50.6-41.9 92-94 92s-94-41.4-94-92V232z"}}]},name:"audio",theme:"outlined"};var r=o.forwardRef(function(e,i){return o.createElement(n.default,(0,t.default)({},e,{ref:i,icon:a}))});e.s(["AudioOutlined",0,r],793916)}]); \ No newline at end of file +${t}`}],190272)},516015,(e,t,o)=>{},898547,(e,t,o)=>{var i=e.i(247167);e.r(516015);var n=e.r(271645),s=n&&"object"==typeof n&&"default"in n?n:{default:n},a=void 0!==i.default&&i.default.env&&!0,r=function(e){return"[object String]"===Object.prototype.toString.call(e)},l=function(){function e(e){var t=void 0===e?{}:e,o=t.name,i=void 0===o?"stylesheet":o,n=t.optimizeForSpeed,s=void 0===n?a:n;c(r(i),"`name` must be a string"),this._name=i,this._deletedRulePlaceholder="#"+i+"-deleted-rule____{}",c("boolean"==typeof s,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=s,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0;var l="u">typeof window&&document.querySelector('meta[property="csp-nonce"]');this._nonce=l?l.getAttribute("content"):null}var t,o=e.prototype;return o.setOptimizeForSpeed=function(e){c("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),c(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},o.isOptimizeForSpeed=function(){return this._optimizeForSpeed},o.inject=function(){var e=this;if(c(!this._injected,"sheet already injected"),this._injected=!0,"u">typeof window&&this._optimizeForSpeed){this._tags[0]=this.makeStyleTag(this._name),this._optimizeForSpeed="insertRule"in this.getSheet(),this._optimizeForSpeed||(a||console.warn("StyleSheet: optimizeForSpeed mode not supported falling back to standard mode."),this.flush(),this._injected=!0);return}this._serverSheet={cssRules:[],insertRule:function(t,o){return"number"==typeof o?e._serverSheet.cssRules[o]={cssText:t}:e._serverSheet.cssRules.push({cssText:t}),o},deleteRule:function(t){e._serverSheet.cssRules[t]=null}}},o.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var t=0;ttypeof window?this.getSheet():this._serverSheet;if(t.trim()||(t=this._deletedRulePlaceholder),!o.cssRules[e])return e;o.deleteRule(e);try{o.insertRule(t,e)}catch(i){a||console.warn("StyleSheet: illegal rule: \n\n"+t+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),o.insertRule(this._deletedRulePlaceholder,e)}}else{var i=this._tags[e];c(i,"old rule at index `"+e+"` not found"),i.textContent=t}return e},o.deleteRule=function(e){if("u"typeof window?(this._tags.forEach(function(e){return e&&e.parentNode.removeChild(e)}),this._tags=[]):this._serverSheet.cssRules=[]},o.cssRules=function(){var e=this;return"u">>0},p={};function m(e,t){if(!t)return"jsx-"+e;var o=String(t),i=e+o;return p[i]||(p[i]="jsx-"+d(e+"-"+o)),p[i]}function u(e,t){"u"typeof window&&!this._fromServer&&(this._fromServer=this.selectFromServer(),this._instancesCounts=Object.keys(this._fromServer).reduce(function(e,t){return e[t]=0,e},{}));var o=this.getIdAndRules(e),i=o.styleId,n=o.rules;if(i in this._instancesCounts){this._instancesCounts[i]+=1;return}var s=n.map(function(e){return t._sheet.insertRule(e)}).filter(function(e){return -1!==e});this._indices[i]=s,this._instancesCounts[i]=1},t.remove=function(e){var t=this,o=this.getIdAndRules(e).styleId;if(function(e,t){if(!e)throw Error("StyleSheetRegistry: "+t+".")}(o in this._instancesCounts,"styleId: `"+o+"` not found"),this._instancesCounts[o]-=1,this._instancesCounts[o]<1){var i=this._fromServer&&this._fromServer[o];i?(i.parentNode.removeChild(i),delete this._fromServer[o]):(this._indices[o].forEach(function(e){return t._sheet.deleteRule(e)}),delete this._indices[o]),delete this._instancesCounts[o]}},t.update=function(e,t){this.add(t),this.remove(e)},t.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},t.cssRules=function(){var e=this,t=this._fromServer?Object.keys(this._fromServer).map(function(t){return[t,e._fromServer[t]]}):[],o=this._sheet.cssRules();return t.concat(Object.keys(this._indices).map(function(t){return[t,e._indices[t].map(function(e){return o[e].cssText}).join(e._optimizeForSpeed?"":"\n")]}).filter(function(e){return!!e[1]}))},t.styles=function(e){var t,o;return t=this.cssRules(),void 0===(o=e)&&(o={}),t.map(function(e){var t=e[0],i=e[1];return s.default.createElement("style",{id:"__"+t,key:"__"+t,nonce:o.nonce?o.nonce:void 0,dangerouslySetInnerHTML:{__html:i}})})},t.getIdAndRules=function(e){var t=e.children,o=e.dynamic,i=e.id;if(o){var n=m(i,o);return{styleId:n,rules:Array.isArray(t)?t.map(function(e){return u(n,e)}):[u(n,t)]}}return{styleId:m(i),rules:Array.isArray(t)?t:[t]}},t.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(e,t){return e[t.id.slice(2)]=t,e},{})},e}(),g=n.createContext(null);function h(){return new f}function _(){return n.useContext(g)}g.displayName="StyleSheetContext";var b=s.default.useInsertionEffect||s.default.useLayoutEffect,x="u">typeof window?h():void 0;function v(e){var t=x||_();return t&&("u"{t.exports=e.r(898547).style},254530,452598,e=>{"use strict";e.i(247167);var t=e.i(356449),o=e.i(764205);async function i(e,i,n,s,a,r,l,c,d,p,m,u,f,g,h,_,b,x,v,y,j,w,S,k,N){console.log=function(){},console.log("isLocal:",!1);let C=y||(0,o.getProxyBaseUrl)(),z={};a&&a.length>0&&(z["x-litellm-tags"]=a.join(","));let I=new t.default.OpenAI({apiKey:s,baseURL:C,dangerouslyAllowBrowser:!0,defaultHeaders:z});try{let t,o=Date.now(),s=!1,a={},y=!1,C=[];for await(let v of(g&&g.length>0&&(g.includes("__all__")?C.push({type:"mcp",server_label:"litellm",server_url:"litellm_proxy/mcp",require_approval:"never"}):g.forEach(e=>{if(e.startsWith("toolset:")){let t=e.slice(8),o=N?.find(e=>e.toolset_id===t),i=o?.toolset_name||t;C.push({type:"mcp",server_label:i,server_url:`litellm_proxy/mcp/${encodeURIComponent(i)}`,require_approval:"never"})}else{let t=j?.find(t=>t.server_id===e),o=t?.alias||t?.server_name||e,i=w?.[e]||[];C.push({type:"mcp",server_label:"litellm",server_url:`litellm_proxy/mcp/${o}`,require_approval:"never",...i.length>0?{allowed_tools:i}:{}})}})),await I.chat.completions.create({model:n,stream:!0,stream_options:{include_usage:!0},litellm_trace_id:p,messages:e,...m?{vector_store_ids:m}:{},...u?{guardrails:u}:{},...f?{policies:f}:{},...C.length>0?{tools:C,tool_choice:"auto"}:{},...void 0!==b?{temperature:b}:{},...void 0!==x?{max_tokens:x}:{},...k?{mock_testing_fallbacks:!0}:{}},{signal:r}))){console.log("Stream chunk:",v);let e=v.choices[0]?.delta;if(console.log("Delta content:",v.choices[0]?.delta?.content),console.log("Delta reasoning content:",e?.reasoning_content),!s&&(v.choices[0]?.delta?.content||e&&e.reasoning_content)&&(s=!0,t=Date.now()-o,console.log("First token received! Time:",t,"ms"),c?(console.log("Calling onTimingData with:",t),c(t)):console.log("onTimingData callback is not defined!")),v.choices[0]?.delta?.content){let e=v.choices[0].delta.content;i(e,v.model)}if(e&&e.image&&h&&(console.log("Image generated:",e.image),h(e.image.url,v.model)),e&&e.reasoning_content){let t=e.reasoning_content;l&&l(t)}if(e&&e.provider_specific_fields?.search_results&&_&&(console.log("Search results found:",e.provider_specific_fields.search_results),_(e.provider_specific_fields.search_results)),e&&e.provider_specific_fields){let t=e.provider_specific_fields;if(t.mcp_list_tools&&!a.mcp_list_tools&&(a.mcp_list_tools=t.mcp_list_tools,S&&!y)){y=!0;let e={type:"response.output_item.done",item_id:"mcp_list_tools",item:{type:"mcp_list_tools",tools:t.mcp_list_tools.map(e=>({name:e.function?.name||e.name||"",description:e.function?.description||e.description||"",input_schema:e.function?.parameters||e.input_schema||{}}))},timestamp:Date.now()};S(e),console.log("MCP list_tools event sent:",e)}t.mcp_tool_calls&&(a.mcp_tool_calls=t.mcp_tool_calls),t.mcp_call_results&&(a.mcp_call_results=t.mcp_call_results),(t.mcp_list_tools||t.mcp_tool_calls||t.mcp_call_results)&&console.log("MCP metadata found in chunk:",{mcp_list_tools:t.mcp_list_tools?"present":"absent",mcp_tool_calls:t.mcp_tool_calls?"present":"absent",mcp_call_results:t.mcp_call_results?"present":"absent"})}if(v.usage&&d){console.log("Usage data found:",v.usage);let e={completionTokens:v.usage.completion_tokens,promptTokens:v.usage.prompt_tokens,totalTokens:v.usage.total_tokens};v.usage.completion_tokens_details?.reasoning_tokens&&(e.reasoningTokens=v.usage.completion_tokens_details.reasoning_tokens),void 0!==v.usage.cost&&null!==v.usage.cost&&(e.cost=parseFloat(v.usage.cost)),d(e)}}S&&(a.mcp_tool_calls||a.mcp_call_results)&&a.mcp_tool_calls&&a.mcp_tool_calls.length>0&&a.mcp_tool_calls.forEach((e,t)=>{let o=e.function?.name||e.name||"",i=e.function?.arguments||e.arguments||"{}",n=a.mcp_call_results?.find(t=>t.tool_call_id===e.id||t.tool_call_id===e.call_id)||a.mcp_call_results?.[t],s={type:"response.output_item.done",item:{type:"mcp_call",name:o,arguments:"string"==typeof i?i:JSON.stringify(i),output:n?.result?"string"==typeof n.result?n.result:JSON.stringify(n.result):void 0},item_id:e.id||e.call_id,timestamp:Date.now()};S(s),console.log("MCP call event sent:",s)});let z=Date.now();v&&v(z-o)}catch(e){throw r?.aborted&&console.log("Chat completion request was cancelled"),e}}e.s(["makeOpenAIChatCompletionRequest",0,i],254530);var n=e.i(727749);async function s(e,i,a,r,l=[],c,d,p,m,u,f,g,h,_,b,x,v,y,j,w,S,k,N){if(!r)throw Error("Virtual Key is required");if(!a||""===a.trim())throw Error("Model is required. Please select a model before sending a request.");console.log=function(){};let C=w||(0,o.getProxyBaseUrl)(),z={};l&&l.length>0&&(z["x-litellm-tags"]=l.join(","));let I=new t.default.OpenAI({apiKey:r,baseURL:C,dangerouslyAllowBrowser:!0,defaultHeaders:z});try{let t=Date.now(),o=!1,n=e.map(e=>(Array.isArray(e.content),{role:e.role,content:e.content,type:"message"})),s=[];_&&_.length>0&&(_.includes("__all__")?s.push({type:"mcp",server_label:"litellm",server_url:`${C}/mcp`,require_approval:"never"}):_.forEach(e=>{if(e.startsWith("toolset:")){let t=e.slice(8),o=N?.find(e=>e.toolset_id===t),i=o?.toolset_name||t;s.push({type:"mcp",server_label:i,server_url:`${C}/mcp/${encodeURIComponent(i)}`,require_approval:"never"})}else{let t=S?.find(t=>t.server_id===e),o=t?.server_name||e,i=k?.[e]||[];s.push({type:"mcp",server_label:o,server_url:`${C}/mcp/${encodeURIComponent(o)}`,require_approval:"never",...i.length>0?{allowed_tools:i}:{}})}})),y&&s.push({type:"code_interpreter",container:{type:"auto"}});let r=await I.responses.create({model:a,input:n,stream:!0,litellm_trace_id:u,...b?{previous_response_id:b}:{},...f?{vector_store_ids:f}:{},...g?{guardrails:g}:{},...h?{policies:h}:{},...s.length>0?{tools:s,tool_choice:"auto"}:{}},{signal:c}),l="",w={code:"",containerId:""};for await(let e of r)if(console.log("Response event:",e),"object"==typeof e&&null!==e){if((e.type?.startsWith("response.mcp_")||"response.output_item.done"===e.type&&(e.item?.type==="mcp_list_tools"||e.item?.type==="mcp_call"))&&(console.log("MCP event received:",e),v)){let t={type:e.type,sequence_number:e.sequence_number,output_index:e.output_index,item_id:e.item_id||e.item?.id,item:e.item,delta:e.delta,arguments:e.arguments,timestamp:Date.now()};v(t)}"response.output_item.done"===e.type&&e.item?.type==="mcp_call"&&e.item?.name&&(l=e.item.name,console.log("MCP tool used:",l)),T=w;var T,R=w="response.output_item.done"===e.type&&e.item?.type==="code_interpreter_call"?(console.log("Code interpreter call completed:",e.item),{code:e.item.code||"",containerId:e.item.container_id||""}):T;if("response.output_item.done"===e.type&&e.item?.type==="message"&&e.item?.content&&j){for(let t of e.item.content)if("output_text"===t.type&&t.annotations){let e=t.annotations.filter(e=>"container_file_citation"===e.type);(e.length>0||R.code)&&j({code:R.code,containerId:R.containerId,annotations:e})}}if("response.role.delta"===e.type)continue;if("response.output_text.delta"===e.type&&"string"==typeof e.delta){let n=e.delta;if(console.log("Text delta",n),n.length>0&&(i("assistant",n,a),!o)){o=!0;let e=Date.now()-t;console.log("First token received! Time:",e,"ms"),p&&p(e)}}if("response.reasoning.delta"===e.type&&"delta"in e){let t=e.delta;"string"==typeof t&&d&&d(t)}if("response.completed"===e.type&&"response"in e){let t=e.response,o=t.usage;if(console.log("Usage data:",o),console.log("Response completed event:",t),t.id&&x&&(console.log("Response ID for session management:",t.id),x(t.id)),o&&m){console.log("Usage data:",o);let e={completionTokens:o.output_tokens,promptTokens:o.input_tokens,totalTokens:o.total_tokens};o.completion_tokens_details?.reasoning_tokens&&(e.reasoningTokens=o.completion_tokens_details.reasoning_tokens),m(e,l)}}}return r}catch(e){throw c?.aborted?console.log("Responses API request was cancelled"):n.default.fromBackend(`Error occurred while generating model response. Please try again. Error: ${e}`),e}}e.s(["makeOpenAIResponsesRequest",0,s],452598)},355343,e=>{"use strict";var t=e.i(843476),o=e.i(437902),i=e.i(898586),n=e.i(362024);let{Text:s}=i.Typography,{Panel:a}=n.Collapse;e.s(["default",0,({events:e,className:i})=>{if(console.log("MCPEventsDisplay: Received events:",e),!e||0===e.length)return console.log("MCPEventsDisplay: No events, returning null"),null;let s=e.find(e=>"response.output_item.done"===e.type&&e.item?.type==="mcp_list_tools"&&e.item.tools&&e.item.tools.length>0),r=e.filter(e=>"response.output_item.done"===e.type&&e.item?.type==="mcp_call");return(console.log("MCPEventsDisplay: toolsEvent:",s),console.log("MCPEventsDisplay: mcpCallEvents:",r),s||0!==r.length)?(0,t.jsxs)("div",{className:`jsx-32b14b04f420f3ac mcp-events-display ${i||""}`,children:[(0,t.jsx)(o.default,{id:"32b14b04f420f3ac",children:".openai-mcp-tools.jsx-32b14b04f420f3ac{margin:0;padding:0;position:relative}.openai-mcp-tools.jsx-32b14b04f420f3ac .ant-collapse.jsx-32b14b04f420f3ac,.openai-mcp-tools.jsx-32b14b04f420f3ac .ant-collapse-item.jsx-32b14b04f420f3ac{background:0 0!important;border:none!important}.openai-mcp-tools.jsx-32b14b04f420f3ac .ant-collapse-header.jsx-32b14b04f420f3ac{color:#9ca3af!important;background:0 0!important;border:none!important;min-height:20px!important;padding:0 0 0 20px!important;font-size:14px!important;font-weight:400!important;line-height:20px!important}.openai-mcp-tools.jsx-32b14b04f420f3ac .ant-collapse-header.jsx-32b14b04f420f3ac:hover{color:#6b7280!important;background:0 0!important}.openai-mcp-tools.jsx-32b14b04f420f3ac .ant-collapse-content.jsx-32b14b04f420f3ac{background:0 0!important;border:none!important}.openai-mcp-tools.jsx-32b14b04f420f3ac .ant-collapse-content-box.jsx-32b14b04f420f3ac{padding:4px 0 0 20px!important}.openai-mcp-tools.jsx-32b14b04f420f3ac .ant-collapse-expand-icon.jsx-32b14b04f420f3ac{color:#9ca3af!important;justify-content:center!important;align-items:center!important;width:16px!important;height:16px!important;font-size:10px!important;display:flex!important;position:absolute!important;top:2px!important;left:2px!important}.openai-mcp-tools.jsx-32b14b04f420f3ac .ant-collapse-expand-icon.jsx-32b14b04f420f3ac:hover{color:#6b7280!important}.openai-vertical-line.jsx-32b14b04f420f3ac{opacity:.8;background-color:#f3f4f6;width:.5px;position:absolute;top:18px;bottom:0;left:9px}.tool-item.jsx-32b14b04f420f3ac{color:#4b5563;z-index:1;background:#fff;margin:0;padding:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:13px;line-height:18px;position:relative}.mcp-section.jsx-32b14b04f420f3ac{z-index:1;background:#fff;margin-bottom:12px;position:relative}.mcp-section.jsx-32b14b04f420f3ac:last-child{margin-bottom:0}.mcp-section-header.jsx-32b14b04f420f3ac{color:#6b7280;margin-bottom:4px;font-size:13px;font-weight:500}.mcp-code-block.jsx-32b14b04f420f3ac{background:#f9fafb;border:1px solid #f3f4f6;border-radius:6px;padding:8px;font-size:12px}.mcp-json.jsx-32b14b04f420f3ac{color:#374151;white-space:pre-wrap;word-wrap:break-word;margin:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Monaco,Consolas,Liberation Mono,Courier New,monospace}.mcp-approved.jsx-32b14b04f420f3ac{color:#6b7280;align-items:center;font-size:13px;display:flex}.mcp-checkmark.jsx-32b14b04f420f3ac{color:#10b981;margin-right:6px;font-weight:700}.mcp-response-content.jsx-32b14b04f420f3ac{color:#374151;white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,SF Mono,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:13px;line-height:1.5}"}),(0,t.jsxs)("div",{className:"jsx-32b14b04f420f3ac openai-mcp-tools",children:[(0,t.jsx)("div",{className:"jsx-32b14b04f420f3ac openai-vertical-line"}),(0,t.jsxs)(n.Collapse,{ghost:!0,size:"small",expandIconPosition:"start",defaultActiveKey:s?["list-tools"]:r.map((e,t)=>`mcp-call-${t}`),children:[s&&(0,t.jsx)(a,{header:"List tools",children:(0,t.jsx)("div",{className:"jsx-32b14b04f420f3ac",children:s.item?.tools?.map((e,o)=>(0,t.jsx)("div",{className:"jsx-32b14b04f420f3ac tool-item",children:e.name},o))})},"list-tools"),r.map((e,o)=>(0,t.jsx)(a,{header:e.item?.name||"Tool call",children:(0,t.jsxs)("div",{className:"jsx-32b14b04f420f3ac",children:[(0,t.jsxs)("div",{className:"jsx-32b14b04f420f3ac mcp-section",children:[(0,t.jsx)("div",{className:"jsx-32b14b04f420f3ac mcp-section-header",children:"Request"}),(0,t.jsx)("div",{className:"jsx-32b14b04f420f3ac mcp-code-block",children:e.item?.arguments&&(0,t.jsx)("pre",{className:"jsx-32b14b04f420f3ac mcp-json",children:(()=>{try{return JSON.stringify(JSON.parse(e.item.arguments),null,2)}catch(t){return e.item.arguments}})()})})]}),(0,t.jsx)("div",{className:"jsx-32b14b04f420f3ac mcp-section",children:(0,t.jsxs)("div",{className:"jsx-32b14b04f420f3ac mcp-approved",children:[(0,t.jsx)("span",{className:"jsx-32b14b04f420f3ac mcp-checkmark",children:"✓"})," Approved"]})}),e.item?.output&&(0,t.jsxs)("div",{className:"jsx-32b14b04f420f3ac mcp-section",children:[(0,t.jsx)("div",{className:"jsx-32b14b04f420f3ac mcp-section-header",children:"Response"}),(0,t.jsx)("div",{className:"jsx-32b14b04f420f3ac mcp-response-content",children:e.item.output})]})]})},`mcp-call-${o}`))]})]})]}):(console.log("MCPEventsDisplay: No valid events found, returning null"),null)}])},966988,e=>{"use strict";var t=e.i(843476),o=e.i(271645),i=e.i(464571),n=e.i(918789),s=e.i(650056),a=e.i(219470),r=e.i(755151),l=e.i(240647),c=e.i(812618);e.s(["default",0,({reasoningContent:e})=>{let[d,p]=(0,o.useState)(!0);return e?(0,t.jsxs)("div",{className:"reasoning-content mt-1 mb-2",children:[(0,t.jsxs)(i.Button,{type:"text",className:"flex items-center text-xs text-gray-500 hover:text-gray-700",onClick:()=>p(!d),icon:(0,t.jsx)(c.BulbOutlined,{}),children:[d?"Hide reasoning":"Show reasoning",d?(0,t.jsx)(r.DownOutlined,{className:"ml-1"}):(0,t.jsx)(l.RightOutlined,{className:"ml-1"})]}),d&&(0,t.jsx)("div",{className:"mt-2 p-3 bg-gray-50 border border-gray-200 rounded-md text-sm text-gray-700",children:(0,t.jsx)(n.default,{components:{code({node:e,inline:o,className:i,children:n,...r}){let l=/language-(\w+)/.exec(i||"");return!o&&l?(0,t.jsx)(s.Prism,{style:a.coy,language:l[1],PreTag:"div",className:"rounded-md my-2",...r,children:String(n).replace(/\n$/,"")}):(0,t.jsx)("code",{className:`${i} px-1.5 py-0.5 rounded bg-gray-100 text-sm font-mono`,...r,children:n})}},children:e})})]}):null}])},219470,812618,e=>{"use strict";e.s(["coy",0,{'code[class*="language-"]':{color:"black",background:"none",fontFamily:"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace",fontSize:"1em",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",wordWrap:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",maxHeight:"inherit",height:"inherit",padding:"0 1em",display:"block",overflow:"auto"},'pre[class*="language-"]':{color:"black",background:"none",fontFamily:"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace",fontSize:"1em",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",wordWrap:"normal",lineHeight:"1.5",MozTabSize:"4",OTabSize:"4",tabSize:"4",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",position:"relative",margin:".5em 0",overflow:"visible",padding:"1px",backgroundColor:"#fdfdfd",WebkitBoxSizing:"border-box",MozBoxSizing:"border-box",boxSizing:"border-box",marginBottom:"1em"},'pre[class*="language-"] > code':{position:"relative",zIndex:"1",borderLeft:"10px solid #358ccb",boxShadow:"-1px 0px 0px 0px #358ccb, 0px 0px 0px 1px #dfdfdf",backgroundColor:"#fdfdfd",backgroundImage:"linear-gradient(transparent 50%, rgba(69, 142, 209, 0.04) 50%)",backgroundSize:"3em 3em",backgroundOrigin:"content-box",backgroundAttachment:"local"},':not(pre) > code[class*="language-"]':{backgroundColor:"#fdfdfd",WebkitBoxSizing:"border-box",MozBoxSizing:"border-box",boxSizing:"border-box",marginBottom:"1em",position:"relative",padding:".2em",borderRadius:"0.3em",color:"#c92c2c",border:"1px solid rgba(0, 0, 0, 0.1)",display:"inline",whiteSpace:"normal"},'pre[class*="language-"]:before':{content:"''",display:"block",position:"absolute",bottom:"0.75em",left:"0.18em",width:"40%",height:"20%",maxHeight:"13em",boxShadow:"0px 13px 8px #979797",WebkitTransform:"rotate(-2deg)",MozTransform:"rotate(-2deg)",msTransform:"rotate(-2deg)",OTransform:"rotate(-2deg)",transform:"rotate(-2deg)"},'pre[class*="language-"]:after':{content:"''",display:"block",position:"absolute",bottom:"0.75em",left:"auto",width:"40%",height:"20%",maxHeight:"13em",boxShadow:"0px 13px 8px #979797",WebkitTransform:"rotate(2deg)",MozTransform:"rotate(2deg)",msTransform:"rotate(2deg)",OTransform:"rotate(2deg)",transform:"rotate(2deg)",right:"0.75em"},comment:{color:"#7D8B99"},"block-comment":{color:"#7D8B99"},prolog:{color:"#7D8B99"},doctype:{color:"#7D8B99"},cdata:{color:"#7D8B99"},punctuation:{color:"#5F6364"},property:{color:"#c92c2c"},tag:{color:"#c92c2c"},boolean:{color:"#c92c2c"},number:{color:"#c92c2c"},"function-name":{color:"#c92c2c"},constant:{color:"#c92c2c"},symbol:{color:"#c92c2c"},deleted:{color:"#c92c2c"},selector:{color:"#2f9c0a"},"attr-name":{color:"#2f9c0a"},string:{color:"#2f9c0a"},char:{color:"#2f9c0a"},function:{color:"#2f9c0a"},builtin:{color:"#2f9c0a"},inserted:{color:"#2f9c0a"},operator:{color:"#a67f59",background:"rgba(255, 255, 255, 0.5)"},entity:{color:"#a67f59",background:"rgba(255, 255, 255, 0.5)",cursor:"help"},url:{color:"#a67f59",background:"rgba(255, 255, 255, 0.5)"},variable:{color:"#a67f59",background:"rgba(255, 255, 255, 0.5)"},atrule:{color:"#1990b8"},"attr-value":{color:"#1990b8"},keyword:{color:"#1990b8"},"class-name":{color:"#1990b8"},regex:{color:"#e90"},important:{color:"#e90",fontWeight:"normal"},".language-css .token.string":{color:"#a67f59",background:"rgba(255, 255, 255, 0.5)"},".style .token.string":{color:"#a67f59",background:"rgba(255, 255, 255, 0.5)"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"},namespace:{Opacity:".7"},'pre[class*="language-"].line-numbers.line-numbers':{paddingLeft:"0"},'pre[class*="language-"].line-numbers.line-numbers code':{paddingLeft:"3.8em"},'pre[class*="language-"].line-numbers.line-numbers .line-numbers-rows':{left:"0"},'pre[class*="language-"][data-line]':{paddingTop:"0",paddingBottom:"0",paddingLeft:"0"},"pre[data-line] code":{position:"relative",paddingLeft:"4em"},"pre .line-highlight":{marginTop:"0"}}],219470),e.i(247167);var t=e.i(931067),o=e.i(271645);let i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z"}}]},name:"bulb",theme:"outlined"};var n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["BulbOutlined",0,s],812618)},132104,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645);let i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M868 545.5L536.1 163a31.96 31.96 0 00-48.3 0L156 545.5a7.97 7.97 0 006 13.2h81c4.6 0 9-2 12.1-5.5L474 300.9V864c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V300.9l218.9 252.3c3 3.5 7.4 5.5 12.1 5.5h81c6.8 0 10.5-8 6-13.2z"}}]},name:"arrow-up",theme:"outlined"};var n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["ArrowUpOutlined",0,s],132104)},447593,989022,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M899.1 869.6l-53-305.6H864c14.4 0 26-11.6 26-26V346c0-14.4-11.6-26-26-26H618V138c0-14.4-11.6-26-26-26H432c-14.4 0-26 11.6-26 26v182H160c-14.4 0-26 11.6-26 26v192c0 14.4 11.6 26 26 26h17.9l-53 305.6a25.95 25.95 0 0025.6 30.4h723c1.5 0 3-.1 4.4-.4a25.88 25.88 0 0021.2-30zM204 390h272V182h72v208h272v104H204V390zm468 440V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H416V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H202.8l45.1-260H776l45.1 260H672z"}}]},name:"clear",theme:"outlined"},n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["ClearOutlined",0,s],447593);var a=e.i(843476),r=e.i(592968),l=e.i(637235);let c={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M872 394c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H708V152c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v166H400V152c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v166H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h168v236H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h168v166c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V706h228v166c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V706h164c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H708V394h164zM628 630H400V394h228v236z"}}]},name:"number",theme:"outlined"};var d=o.forwardRef(function(e,i){return o.createElement(n.default,(0,t.default)({},e,{ref:i,icon:c}))});let p={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880 912H144c-17.7 0-32-14.3-32-32V144c0-17.7 14.3-32 32-32h360c4.4 0 8 3.6 8 8v56c0 4.4-3.6 8-8 8H184v656h656V520c0-4.4 3.6-8 8-8h56c4.4 0 8 3.6 8 8v360c0 17.7-14.3 32-32 32zM653.3 424.6l52.2 52.2a8.01 8.01 0 01-4.7 13.6l-179.4 21c-5.1.6-9.5-3.7-8.9-8.9l21-179.4c.8-6.6 8.9-9.4 13.6-4.7l52.4 52.4 256.2-256.2c3.1-3.1 8.2-3.1 11.3 0l42.4 42.4c3.1 3.1 3.1 8.2 0 11.3L653.3 424.6z"}}]},name:"import",theme:"outlined"};var m=o.forwardRef(function(e,i){return o.createElement(n.default,(0,t.default)({},e,{ref:i,icon:p}))}),u=e.i(872934),f=e.i(812618),g=e.i(366308),h=e.i(458505);e.s(["default",0,({timeToFirstToken:e,totalLatency:t,usage:o,toolName:i})=>e||t||o?(0,a.jsxs)("div",{className:"response-metrics mt-2 pt-2 border-t border-gray-100 text-xs text-gray-500 flex flex-wrap gap-3",children:[void 0!==e&&(0,a.jsx)(r.Tooltip,{title:"Time to first token",children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(l.ClockCircleOutlined,{className:"mr-1"}),(0,a.jsxs)("span",{children:["TTFT: ",(e/1e3).toFixed(2),"s"]})]})}),void 0!==t&&(0,a.jsx)(r.Tooltip,{title:"Total latency",children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(l.ClockCircleOutlined,{className:"mr-1"}),(0,a.jsxs)("span",{children:["Total Latency: ",(t/1e3).toFixed(2),"s"]})]})}),o?.promptTokens!==void 0&&(0,a.jsx)(r.Tooltip,{title:"Prompt tokens",children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(m,{className:"mr-1"}),(0,a.jsxs)("span",{children:["In: ",o.promptTokens]})]})}),o?.completionTokens!==void 0&&(0,a.jsx)(r.Tooltip,{title:"Completion tokens",children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(u.ExportOutlined,{className:"mr-1"}),(0,a.jsxs)("span",{children:["Out: ",o.completionTokens]})]})}),o?.reasoningTokens!==void 0&&(0,a.jsx)(r.Tooltip,{title:"Reasoning tokens",children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(f.BulbOutlined,{className:"mr-1"}),(0,a.jsxs)("span",{children:["Reasoning: ",o.reasoningTokens]})]})}),o?.totalTokens!==void 0&&(0,a.jsx)(r.Tooltip,{title:"Total tokens",children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(d,{className:"mr-1"}),(0,a.jsxs)("span",{children:["Total: ",o.totalTokens]})]})}),o?.cost!==void 0&&(0,a.jsx)(r.Tooltip,{title:"Cost",children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(h.DollarOutlined,{className:"mr-1"}),(0,a.jsxs)("span",{children:["$",o.cost.toFixed(6)]})]})}),i&&(0,a.jsx)(r.Tooltip,{title:"Tool used",children:(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(g.ToolOutlined,{className:"mr-1"}),(0,a.jsxs)("span",{children:["Tool: ",i]})]})})]}):null],989022)},434166,e=>{"use strict";e.s(["getSecureItem",0,function(e){try{let t=window.sessionStorage.getItem(e);if(null===t)return null;return decodeURIComponent(atob(t).split("").map(e=>"%"+e.charCodeAt(0).toString(16).padStart(2,"0")).join(""))}catch{return null}},"setSecureItem",0,function(e,t){window.sessionStorage.setItem(e,btoa(encodeURIComponent(t).replace(/%([0-9A-F]{2})/g,(e,t)=>String.fromCharCode(parseInt(t,16)))))}])},245094,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645);let i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48zm-194.9 6.1l192-161c3.8-3.2 3.8-9.1 0-12.3l-192-160.9A7.95 7.95 0 00308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 00-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"code",theme:"outlined"};var n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["CodeOutlined",0,s],245094)},458505,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645);let i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z"}}]},name:"dollar",theme:"outlined"};var n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["DollarOutlined",0,s],458505)},611052,2781,e=>{"use strict";var t=e.i(843476),o=e.i(271645),i=e.i(212931),n=e.i(311451),s=e.i(790848),a=e.i(888259),r=e.i(438957);e.i(247167);var l=e.i(931067);let c={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 10-56 0z"}}]},name:"lock",theme:"outlined"};var d=e.i(9583),p=o.forwardRef(function(e,t){return o.createElement(d.default,(0,l.default)({},e,{ref:t,icon:c}))});e.s(["LockOutlined",0,p],2781);var m=e.i(492030),u=e.i(266537),f=e.i(447566),g=e.i(149192),h=e.i(596239);e.s(["ByokCredentialModal",0,({server:e,open:l,onClose:c,onSuccess:d,accessToken:_})=>{let[b,x]=(0,o.useState)(1),[v,y]=(0,o.useState)(""),[j,w]=(0,o.useState)(!0),[S,k]=(0,o.useState)(!1),N=e.alias||e.server_name||"Service",C=N.charAt(0).toUpperCase(),z=()=>{x(1),y(""),w(!0),k(!1),c()},I=async()=>{if(!v.trim())return void a.default.error("Please enter your API key");k(!0);try{let t=await fetch(`/v1/mcp/server/${e.server_id}/user-credential`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${_}`},body:JSON.stringify({credential:v.trim(),save:j})});if(!t.ok){let e=await t.json();throw Error(e?.detail?.error||"Failed to save credential")}a.default.success(`Connected to ${N}`),d(e.server_id),z()}catch(e){a.default.error(e.message||"Failed to connect")}finally{k(!1)}};return(0,t.jsx)(i.Modal,{open:l,onCancel:z,footer:null,width:480,closeIcon:null,className:"byok-modal",children:(0,t.jsxs)("div",{className:"relative p-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[2===b?(0,t.jsxs)("button",{onClick:()=>x(1),className:"flex items-center gap-1 text-gray-500 hover:text-gray-800 text-sm",children:[(0,t.jsx)(f.ArrowLeftOutlined,{})," Back"]}):(0,t.jsx)("div",{}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("div",{className:`w-2 h-2 rounded-full ${1===b?"bg-blue-500":"bg-gray-300"}`}),(0,t.jsx)("div",{className:`w-2 h-2 rounded-full ${2===b?"bg-blue-500":"bg-gray-300"}`})]}),(0,t.jsx)("button",{onClick:z,className:"text-gray-400 hover:text-gray-600",children:(0,t.jsx)(g.CloseOutlined,{})})]}),1===b?(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsxs)("div",{className:"flex items-center justify-center gap-3 mb-6",children:[(0,t.jsx)("div",{className:"w-14 h-14 rounded-xl bg-gradient-to-br from-teal-400 to-cyan-600 flex items-center justify-center text-white font-bold text-xl shadow",children:"L"}),(0,t.jsx)(u.ArrowRightOutlined,{className:"text-gray-400 text-lg"}),(0,t.jsx)("div",{className:"w-14 h-14 rounded-xl bg-gradient-to-br from-blue-600 to-indigo-800 flex items-center justify-center text-white font-bold text-xl shadow",children:C})]}),(0,t.jsxs)("h2",{className:"text-2xl font-bold text-gray-900 mb-2",children:["Connect ",N]}),(0,t.jsxs)("p",{className:"text-gray-500 mb-6",children:["LiteLLM needs access to ",N," to complete your request."]}),(0,t.jsx)("div",{className:"bg-gray-50 rounded-xl p-4 text-left mb-4",children:(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("div",{className:"mt-0.5",children:(0,t.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",className:"text-gray-500",children:[(0,t.jsx)("rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",stroke:"currentColor",strokeWidth:"2"}),(0,t.jsx)("path",{d:"M8 4v16M16 4v16",stroke:"currentColor",strokeWidth:"2"})]})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-semibold text-gray-800 mb-1",children:"How it works"}),(0,t.jsxs)("p",{className:"text-gray-500 text-sm",children:["LiteLLM acts as a secure bridge. Your requests are routed through our MCP client directly to"," ",N,"'s API."]})]})]})}),e.byok_description&&e.byok_description.length>0&&(0,t.jsxs)("div",{className:"bg-gray-50 rounded-xl p-4 text-left mb-6",children:[(0,t.jsxs)("p",{className:"text-xs font-semibold text-gray-500 uppercase tracking-widest mb-3 flex items-center gap-2",children:[(0,t.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",className:"text-green-500",children:[(0,t.jsx)("path",{d:"M12 2L12 22M2 12L22 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"}),(0,t.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2"})]}),"Requested Access"]}),(0,t.jsx)("ul",{className:"space-y-2",children:e.byok_description.map((e,o)=>(0,t.jsxs)("li",{className:"flex items-center gap-2 text-sm text-gray-700",children:[(0,t.jsx)(m.CheckOutlined,{className:"text-green-500 flex-shrink-0"}),e]},o))})]}),(0,t.jsxs)("button",{onClick:()=>x(2),className:"w-full bg-gray-900 hover:bg-gray-700 text-white font-medium py-3 px-6 rounded-xl flex items-center justify-center gap-2 transition-colors",children:["Continue to Authentication ",(0,t.jsx)(u.ArrowRightOutlined,{})]}),(0,t.jsx)("button",{onClick:z,className:"mt-3 w-full text-gray-400 hover:text-gray-600 text-sm py-2",children:"Cancel"})]}):(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"w-12 h-12 rounded-full bg-blue-50 flex items-center justify-center mb-4",children:(0,t.jsx)(r.KeyOutlined,{className:"text-blue-400 text-xl"})}),(0,t.jsx)("h2",{className:"text-2xl font-bold text-gray-900 mb-2",children:"Provide API Key"}),(0,t.jsxs)("p",{className:"text-gray-500 mb-6",children:["Enter your ",N," API key to authorize this connection."]}),(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsxs)("label",{className:"block text-sm font-semibold text-gray-800 mb-2",children:[N," API Key"]}),(0,t.jsx)(n.Input.Password,{placeholder:"Enter your API key",value:v,onChange:e=>y(e.target.value),size:"large",className:"rounded-lg"}),e.byok_api_key_help_url&&(0,t.jsxs)("a",{href:e.byok_api_key_help_url,target:"_blank",rel:"noopener noreferrer",className:"text-blue-500 hover:text-blue-700 text-sm mt-2 flex items-center gap-1",children:["Where do I find my API key? ",(0,t.jsx)(h.LinkOutlined,{})]})]}),(0,t.jsxs)("div",{className:"bg-gray-50 rounded-xl p-4 flex items-center justify-between mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",className:"text-gray-500",children:(0,t.jsx)("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z",fill:"currentColor"})}),(0,t.jsx)("span",{className:"text-sm font-medium text-gray-800",children:"Save key for future use"})]}),(0,t.jsx)(s.Switch,{checked:j,onChange:w})]}),(0,t.jsxs)("div",{className:"bg-blue-50 rounded-xl p-4 flex items-start gap-3 mb-6",children:[(0,t.jsx)(p,{className:"text-blue-400 mt-0.5 flex-shrink-0"}),(0,t.jsx)("p",{className:"text-sm text-blue-700",children:"Your key is stored securely and transmitted over HTTPS. It is never shared with third parties."})]}),(0,t.jsxs)("button",{onClick:I,disabled:S,className:"w-full bg-blue-500 hover:bg-blue-600 disabled:opacity-60 text-white font-medium py-3 px-6 rounded-xl flex items-center justify-center gap-2 transition-colors",children:[(0,t.jsx)(p,{}),"Connect & Authorize"]})]})]})})}],611052)},84899,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M931.4 498.9L94.9 79.5c-3.4-1.7-7.3-2.1-11-1.2a15.99 15.99 0 00-11.7 19.3l86.2 352.2c1.3 5.3 5.2 9.6 10.4 11.3l147.7 50.7-147.6 50.7c-5.2 1.8-9.1 6-10.3 11.3L72.2 926.5c-.9 3.7-.5 7.6 1.2 10.9 3.9 7.9 13.5 11.1 21.5 7.2l836.5-417c3.1-1.5 5.6-4.1 7.2-7.1 3.9-8 .7-17.6-7.2-21.6zM170.8 826.3l50.3-205.6 295.2-101.3c2.3-.8 4.2-2.6 5-5 1.4-4.2-.8-8.7-5-10.2L221.1 403 171 198.2l628 314.9-628.2 313.2z"}}]},name:"send",theme:"outlined"},n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["SendOutlined",0,s],84899)},240647,e=>{"use strict";var t=e.i(286612);e.s(["RightOutlined",()=>t.default])},362024,e=>{"use strict";var t=e.i(988122);e.s(["Collapse",()=>t.default])},245704,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645);let i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"check-circle",theme:"outlined"};var n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["CheckCircleOutlined",0,s],245704)},149192,e=>{"use strict";var t=e.i(864517);e.s(["CloseOutlined",()=>t.default])},518617,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645);let i={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm0 76c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm128.01 198.83c.03 0 .05.01.09.06l45.02 45.01a.2.2 0 01.05.09.12.12 0 010 .07c0 .02-.01.04-.05.08L557.25 512l127.87 127.86a.27.27 0 01.05.06v.02a.12.12 0 010 .07c0 .03-.01.05-.05.09l-45.02 45.02a.2.2 0 01-.09.05.12.12 0 01-.07 0c-.02 0-.04-.01-.08-.05L512 557.25 384.14 685.12c-.04.04-.06.05-.08.05a.12.12 0 01-.07 0c-.03 0-.05-.01-.09-.05l-45.02-45.02a.2.2 0 01-.05-.09.12.12 0 010-.07c0-.02.01-.04.06-.08L466.75 512 338.88 384.14a.27.27 0 01-.05-.06l-.01-.02a.12.12 0 010-.07c0-.03.01-.05.05-.09l45.02-45.02a.2.2 0 01.09-.05.12.12 0 01.07 0c.02 0 .04.01.08.06L512 466.75l127.86-127.86c.04-.05.06-.06.08-.06a.12.12 0 01.07 0z"}}]},name:"close-circle",theme:"outlined"};var n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["CloseCircleOutlined",0,s],518617)},782273,793916,e=>{"use strict";e.i(247167);var t=e.i(931067),o=e.i(271645);let i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1zM586 803L293.4 611.7l-18-11.7H146V424h129.4l17.9-11.7L586 221v582zm348-327H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zm-41.9 261.8l-110.3-63.7a15.9 15.9 0 00-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0021.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM760 344a15.9 15.9 0 0021.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 00-21.7-5.9L746 287.8a15.99 15.99 0 00-5.8 21.8L760 344z"}}]},name:"sound",theme:"outlined"};var n=e.i(9583),s=o.forwardRef(function(e,s){return o.createElement(n.default,(0,t.default)({},e,{ref:s,icon:i}))});e.s(["SoundOutlined",0,s],782273);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M842 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1zM512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm-94-392c0-50.6 41.9-92 94-92s94 41.4 94 92v224c0 50.6-41.9 92-94 92s-94-41.4-94-92V232z"}}]},name:"audio",theme:"outlined"};var r=o.forwardRef(function(e,i){return o.createElement(n.default,(0,t.default)({},e,{ref:i,icon:a}))});e.s(["AudioOutlined",0,r],793916)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0bh.t1ze39grq.js b/litellm/proxy/_experimental/out/_next/static/chunks/0bh.t1ze39grq.js new file mode 100644 index 00000000000..b7ef65608d5 --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/0bh.t1ze39grq.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,21548,e=>{"use strict";var t=e.i(616303);e.s(["Empty",()=>t.default])},94629,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4"}))});e.s(["SwitchVerticalIcon",0,r],94629)},991124,e=>{"use strict";let t=(0,e.i(475254).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["default",0,t])},678784,678745,e=>{"use strict";let t=(0,e.i(475254).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",0,t],678745),e.s(["CheckIcon",0,t],678784)},118366,e=>{"use strict";var t=e.i(991124);e.s(["CopyIcon",()=>t.default])},240647,e=>{"use strict";var t=e.i(286612);e.s(["RightOutlined",()=>t.default])},362024,e=>{"use strict";var t=e.i(988122);e.s(["Collapse",()=>t.default])},516015,(e,t,r)=>{},898547,(e,t,r)=>{var n=e.i(247167);e.r(516015);var a=e.r(271645),i=a&&"object"==typeof a&&"default"in a?a:{default:a},s=void 0!==n.default&&n.default.env&&!0,o=function(e){return"[object String]"===Object.prototype.toString.call(e)},l=function(){function e(e){var t=void 0===e?{}:e,r=t.name,n=void 0===r?"stylesheet":r,a=t.optimizeForSpeed,i=void 0===a?s:a;u(o(n),"`name` must be a string"),this._name=n,this._deletedRulePlaceholder="#"+n+"-deleted-rule____{}",u("boolean"==typeof i,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=i,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0;var l="u">typeof window&&document.querySelector('meta[property="csp-nonce"]');this._nonce=l?l.getAttribute("content"):null}var t,r=e.prototype;return r.setOptimizeForSpeed=function(e){u("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),u(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},r.isOptimizeForSpeed=function(){return this._optimizeForSpeed},r.inject=function(){var e=this;if(u(!this._injected,"sheet already injected"),this._injected=!0,"u">typeof window&&this._optimizeForSpeed){this._tags[0]=this.makeStyleTag(this._name),this._optimizeForSpeed="insertRule"in this.getSheet(),this._optimizeForSpeed||(s||console.warn("StyleSheet: optimizeForSpeed mode not supported falling back to standard mode."),this.flush(),this._injected=!0);return}this._serverSheet={cssRules:[],insertRule:function(t,r){return"number"==typeof r?e._serverSheet.cssRules[r]={cssText:t}:e._serverSheet.cssRules.push({cssText:t}),r},deleteRule:function(t){e._serverSheet.cssRules[t]=null}}},r.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var t=0;ttypeof window?this.getSheet():this._serverSheet;if(t.trim()||(t=this._deletedRulePlaceholder),!r.cssRules[e])return e;r.deleteRule(e);try{r.insertRule(t,e)}catch(n){s||console.warn("StyleSheet: illegal rule: \n\n"+t+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),r.insertRule(this._deletedRulePlaceholder,e)}}else{var n=this._tags[e];u(n,"old rule at index `"+e+"` not found"),n.textContent=t}return e},r.deleteRule=function(e){if("u"typeof window?(this._tags.forEach(function(e){return e&&e.parentNode.removeChild(e)}),this._tags=[]):this._serverSheet.cssRules=[]},r.cssRules=function(){var e=this;return"u">>0},d={};function m(e,t){if(!t)return"jsx-"+e;var r=String(t),n=e+r;return d[n]||(d[n]="jsx-"+c(e+"-"+r)),d[n]}function f(e,t){"u"typeof window&&!this._fromServer&&(this._fromServer=this.selectFromServer(),this._instancesCounts=Object.keys(this._fromServer).reduce(function(e,t){return e[t]=0,e},{}));var r=this.getIdAndRules(e),n=r.styleId,a=r.rules;if(n in this._instancesCounts){this._instancesCounts[n]+=1;return}var i=a.map(function(e){return t._sheet.insertRule(e)}).filter(function(e){return -1!==e});this._indices[n]=i,this._instancesCounts[n]=1},t.remove=function(e){var t=this,r=this.getIdAndRules(e).styleId;if(function(e,t){if(!e)throw Error("StyleSheetRegistry: "+t+".")}(r in this._instancesCounts,"styleId: `"+r+"` not found"),this._instancesCounts[r]-=1,this._instancesCounts[r]<1){var n=this._fromServer&&this._fromServer[r];n?(n.parentNode.removeChild(n),delete this._fromServer[r]):(this._indices[r].forEach(function(e){return t._sheet.deleteRule(e)}),delete this._indices[r]),delete this._instancesCounts[r]}},t.update=function(e,t){this.add(t),this.remove(e)},t.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},t.cssRules=function(){var e=this,t=this._fromServer?Object.keys(this._fromServer).map(function(t){return[t,e._fromServer[t]]}):[],r=this._sheet.cssRules();return t.concat(Object.keys(this._indices).map(function(t){return[t,e._indices[t].map(function(e){return r[e].cssText}).join(e._optimizeForSpeed?"":"\n")]}).filter(function(e){return!!e[1]}))},t.styles=function(e){var t,r;return t=this.cssRules(),void 0===(r=e)&&(r={}),t.map(function(e){var t=e[0],n=e[1];return i.default.createElement("style",{id:"__"+t,key:"__"+t,nonce:r.nonce?r.nonce:void 0,dangerouslySetInnerHTML:{__html:n}})})},t.getIdAndRules=function(e){var t=e.children,r=e.dynamic,n=e.id;if(r){var a=m(n,r);return{styleId:a,rules:Array.isArray(t)?t.map(function(e){return f(a,e)}):[f(a,t)]}}return{styleId:m(n),rules:Array.isArray(t)?t:[t]}},t.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(e,t){return e[t.id.slice(2)]=t,e},{})},e}(),p=a.createContext(null);function g(){return new h}function v(){return a.useContext(p)}p.displayName="StyleSheetContext";var b=i.default.useInsertionEffect||i.default.useLayoutEffect,y="u">typeof window?g():void 0;function A(e){var t=y||v();return t&&("u"{t.exports=e.r(898547).style},916925,e=>{"use strict";var t,r=((t={}).A2A_Agent="A2A Agent",t.AI21="Ai21",t.AI21_CHAT="Ai21 Chat",t.AIML="AI/ML API",t.AIOHTTP_OPENAI="Aiohttp Openai",t.Anthropic="Anthropic",t.ANTHROPIC_TEXT="Anthropic Text",t.AssemblyAI="AssemblyAI",t.AUTO_ROUTER="Auto Router",t.Bedrock="Amazon Bedrock",t.BedrockMantle="Amazon Bedrock Mantle",t.SageMaker="AWS SageMaker",t.Azure="Azure",t.Azure_AI_Studio="Azure AI Foundry (Studio)",t.AZURE_TEXT="Azure Text",t.BASETEN="Baseten",t.BYTEZ="Bytez",t.Cerebras="Cerebras",t.CLARIFAI="Clarifai",t.CLOUDFLARE="Cloudflare",t.CODESTRAL="Codestral",t.Cohere="Cohere",t.COHERE_CHAT="Cohere Chat",t.COMETAPI="Cometapi",t.COMPACTIFAI="Compactifai",t.Cursor="Cursor",t.Dashscope="Dashscope",t.Databricks="Databricks (Qwen API)",t.DATAROBOT="Datarobot",t.DeepInfra="DeepInfra",t.Deepgram="Deepgram",t.Deepseek="Deepseek",t.DOCKER_MODEL_RUNNER="Docker Model Runner",t.DOTPROMPT="Dotprompt",t.ElevenLabs="ElevenLabs",t.EMPOWER="Empower",t.FalAI="Fal AI",t.FEATHERLESS_AI="Featherless Ai",t.FireworksAI="Fireworks AI",t.FRIENDLIAI="Friendliai",t.GALADRIEL="Galadriel",t.GITHUB_COPILOT="Github Copilot",t.Google_AI_Studio="Google AI Studio",t.GradientAI="GradientAI",t.Groq="Groq",t.HEROKU="Heroku",t.Hosted_Vllm="vllm",t.HUGGINGFACE="Huggingface",t.HYPERBOLIC="Hyperbolic",t.Infinity="Infinity",t.JinaAI="Jina AI",t.LAMBDA_AI="Lambda Ai",t.LEMONADE="Lemonade",t.LLAMAFILE="Llamafile",t.LM_STUDIO="Lm Studio",t.LLAMA="Meta Llama",t.MARITALK="Maritalk",t.MiniMax="MiniMax",t.MistralAI="Mistral AI",t.MOONSHOT="Moonshot",t.MORPH="Morph",t.NEBIUS="Nebius",t.NLP_CLOUD="Nlp Cloud",t.NOVITA="Novita",t.NSCALE="Nscale",t.NVIDIA_NIM="Nvidia Nim",t.Ollama="Ollama",t.OLLAMA_CHAT="Ollama Chat",t.OOBABOOGA="Oobabooga",t.OpenAI="OpenAI",t.OPENAI_LIKE="Openai Like",t.OpenAI_Compatible="OpenAI-Compatible Endpoints (Together AI, etc.)",t.OpenAI_Text="OpenAI Text Completion",t.OpenAI_Text_Compatible="OpenAI-Compatible Text Completion Models (Together AI, etc.)",t.Openrouter="Openrouter",t.Oracle="Oracle Cloud Infrastructure (OCI)",t.OVHCLOUD="Ovhcloud",t.Perplexity="Perplexity",t.PETALS="Petals",t.PG_VECTOR="Pg Vector",t.PREDIBASE="Predibase",t.RECRAFT="Recraft",t.REPLICATE="Replicate",t.RunwayML="RunwayML",t.SAGEMAKER_LEGACY="Sagemaker",t.Sambanova="Sambanova",t.SAP="SAP Generative AI Hub",t.Snowflake="Snowflake",t.TEXT_COMPLETION_CODESTRAL="Text-Completion-Codestral",t.TogetherAI="TogetherAI",t.TOPAZ="Topaz",t.Triton="Triton",t.V0="V0",t.VERCEL_AI_GATEWAY="Vercel Ai Gateway",t.Vertex_AI="Vertex AI (Anthropic, Gemini, etc.)",t.VERTEX_AI_BETA="Vertex Ai Beta",t.VLLM="Vllm",t.VolcEngine="VolcEngine",t.Voyage="Voyage AI",t.WANDB="Wandb",t.WATSONX="Watsonx",t.WATSONX_TEXT="Watsonx Text",t.xAI="xAI",t.XINFERENCE="Xinference",t.ZAI="Z.AI (Zhipu AI)",t);let n={A2A_Agent:"a2a_agent",AI21:"ai21",AI21_CHAT:"ai21_chat",AIML:"aiml",AIOHTTP_OPENAI:"aiohttp_openai",Anthropic:"anthropic",ANTHROPIC_TEXT:"anthropic_text",AssemblyAI:"assemblyai",AUTO_ROUTER:"auto_router",Azure:"azure",Azure_AI_Studio:"azure_ai",AZURE_TEXT:"azure_text",BASETEN:"baseten",Bedrock:"bedrock",BedrockMantle:"bedrock_mantle",BYTEZ:"bytez",Cerebras:"cerebras",CLARIFAI:"clarifai",CLOUDFLARE:"cloudflare",CODESTRAL:"codestral",Cohere:"cohere",COHERE_CHAT:"cohere_chat",COMETAPI:"cometapi",COMPACTIFAI:"compactifai",Cursor:"cursor",Dashscope:"dashscope",Databricks:"databricks",DATAROBOT:"datarobot",DeepInfra:"deepinfra",Deepgram:"deepgram",Deepseek:"deepseek",DOCKER_MODEL_RUNNER:"docker_model_runner",DOTPROMPT:"dotprompt",ElevenLabs:"elevenlabs",EMPOWER:"empower",FalAI:"fal_ai",FEATHERLESS_AI:"featherless_ai",FireworksAI:"fireworks_ai",FRIENDLIAI:"friendliai",GALADRIEL:"galadriel",GITHUB_COPILOT:"github_copilot",Google_AI_Studio:"gemini",GradientAI:"gradient_ai",Groq:"groq",HEROKU:"heroku",Hosted_Vllm:"hosted_vllm",HUGGINGFACE:"huggingface",HYPERBOLIC:"hyperbolic",Infinity:"infinity",JinaAI:"jina_ai",LAMBDA_AI:"lambda_ai",LEMONADE:"lemonade",LLAMAFILE:"llamafile",LLAMA:"meta_llama",LM_STUDIO:"lm_studio",MARITALK:"maritalk",MiniMax:"minimax",MistralAI:"mistral",MOONSHOT:"moonshot",MORPH:"morph",NEBIUS:"nebius",NLP_CLOUD:"nlp_cloud",NOVITA:"novita",NSCALE:"nscale",NVIDIA_NIM:"nvidia_nim",Ollama:"ollama",OLLAMA_CHAT:"ollama_chat",OOBABOOGA:"oobabooga",OpenAI:"openai",OPENAI_LIKE:"openai_like",OpenAI_Compatible:"openai",OpenAI_Text:"text-completion-openai",OpenAI_Text_Compatible:"text-completion-openai",Openrouter:"openrouter",Oracle:"oci",OVHCLOUD:"ovhcloud",Perplexity:"perplexity",PETALS:"petals",PG_VECTOR:"pg_vector",PREDIBASE:"predibase",RECRAFT:"recraft",REPLICATE:"replicate",RunwayML:"runwayml",SAGEMAKER_LEGACY:"sagemaker",SageMaker:"sagemaker_chat",Sambanova:"sambanova",SAP:"sap",Snowflake:"snowflake",TEXT_COMPLETION_CODESTRAL:"text-completion-codestral",TogetherAI:"together_ai",TOPAZ:"topaz",Triton:"triton",V0:"v0",VERCEL_AI_GATEWAY:"vercel_ai_gateway",Vertex_AI:"vertex_ai",VERTEX_AI_BETA:"vertex_ai_beta",VLLM:"vllm",VolcEngine:"volcengine",Voyage:"voyage",WANDB:"wandb",WATSONX:"watsonx",WATSONX_TEXT:"watsonx_text",xAI:"xai",XINFERENCE:"xinference",ZAI:"zai"},a="../ui/assets/logos/",i={"A2A Agent":`${a}a2a_agent.png`,Ai21:`${a}ai21.svg`,"Ai21 Chat":`${a}ai21.svg`,"AI/ML API":`${a}aiml_api.svg`,"Aiohttp Openai":`${a}openai_small.svg`,Anthropic:`${a}anthropic.svg`,"Anthropic Text":`${a}anthropic.svg`,AssemblyAI:`${a}assemblyai_small.png`,Azure:`${a}microsoft_azure.svg`,"Azure AI Foundry (Studio)":`${a}microsoft_azure.svg`,"Azure Text":`${a}microsoft_azure.svg`,Baseten:`${a}baseten.svg`,"Amazon Bedrock":`${a}bedrock.svg`,"Amazon Bedrock Mantle":`${a}bedrock.svg`,"AWS SageMaker":`${a}bedrock.svg`,Cerebras:`${a}cerebras.svg`,Cloudflare:`${a}cloudflare.svg`,Codestral:`${a}mistral.svg`,Cohere:`${a}cohere.svg`,"Cohere Chat":`${a}cohere.svg`,Cometapi:`${a}cometapi.svg`,Cursor:`${a}cursor.svg`,"Databricks (Qwen API)":`${a}databricks.svg`,Dashscope:`${a}dashscope.svg`,Deepseek:`${a}deepseek.svg`,Deepgram:`${a}deepgram.png`,DeepInfra:`${a}deepinfra.png`,ElevenLabs:`${a}elevenlabs.png`,"Fal AI":`${a}fal_ai.jpg`,"Featherless Ai":`${a}featherless.svg`,"Fireworks AI":`${a}fireworks.svg`,Friendliai:`${a}friendli.svg`,"Github Copilot":`${a}github_copilot.svg`,"Google AI Studio":`${a}google.svg`,GradientAI:`${a}gradientai.svg`,Groq:`${a}groq.svg`,vllm:`${a}vllm.png`,Huggingface:`${a}huggingface.svg`,Hyperbolic:`${a}hyperbolic.svg`,Infinity:`${a}infinity.png`,"Jina AI":`${a}jina.png`,"Lambda Ai":`${a}lambda.svg`,"Lm Studio":`${a}lmstudio.svg`,"Meta Llama":`${a}meta_llama.svg`,MiniMax:`${a}minimax.svg`,"Mistral AI":`${a}mistral.svg`,Moonshot:`${a}moonshot.svg`,Morph:`${a}morph.svg`,Nebius:`${a}nebius.svg`,Novita:`${a}novita.svg`,"Nvidia Nim":`${a}nvidia_nim.svg`,Ollama:`${a}ollama.svg`,"Ollama Chat":`${a}ollama.svg`,Oobabooga:`${a}openai_small.svg`,OpenAI:`${a}openai_small.svg`,"Openai Like":`${a}openai_small.svg`,"OpenAI Text Completion":`${a}openai_small.svg`,"OpenAI-Compatible Text Completion Models (Together AI, etc.)":`${a}openai_small.svg`,"OpenAI-Compatible Endpoints (Together AI, etc.)":`${a}openai_small.svg`,Openrouter:`${a}openrouter.svg`,"Oracle Cloud Infrastructure (OCI)":`${a}oracle.svg`,Perplexity:`${a}perplexity-ai.svg`,Recraft:`${a}recraft.svg`,Replicate:`${a}replicate.svg`,RunwayML:`${a}runwayml.png`,Sagemaker:`${a}bedrock.svg`,Sambanova:`${a}sambanova.svg`,"SAP Generative AI Hub":`${a}sap.png`,Snowflake:`${a}snowflake.svg`,"Text-Completion-Codestral":`${a}mistral.svg`,TogetherAI:`${a}togetherai.svg`,Topaz:`${a}topaz.svg`,Triton:`${a}nvidia_triton.png`,V0:`${a}v0.svg`,"Vercel Ai Gateway":`${a}vercel.svg`,"Vertex AI (Anthropic, Gemini, etc.)":`${a}google.svg`,"Vertex Ai Beta":`${a}google.svg`,Vllm:`${a}vllm.png`,VolcEngine:`${a}volcengine.png`,"Voyage AI":`${a}voyage.webp`,Watsonx:`${a}watsonx.svg`,"Watsonx Text":`${a}watsonx.svg`,xAI:`${a}xai.svg`,Xinference:`${a}xinference.svg`};e.s(["Providers",()=>r,"getPlaceholder",0,e=>{if("AI/ML API"===e)return"aiml/flux-pro/v1.1";if("Vertex AI (Anthropic, Gemini, etc.)"===e)return"gemini-pro";if("Anthropic"==e)return"claude-3-opus";if("Amazon Bedrock"==e)return"claude-3-opus";if("AWS SageMaker"==e)return"sagemaker/jumpstart-dft-meta-textgeneration-llama-2-7b";else if("Google AI Studio"==e)return"gemini-pro";else if("Azure AI Foundry (Studio)"==e)return"azure_ai/command-r-plus";else if("Azure"==e)return"my-deployment";else if("Oracle Cloud Infrastructure (OCI)"==e)return"oci/xai.grok-4";else if("Snowflake"==e)return"snowflake/mistral-7b";else if("Voyage AI"==e)return"voyage/";else if("Jina AI"==e)return"jina_ai/";else if("VolcEngine"==e)return"volcengine/";else if("DeepInfra"==e)return"deepinfra/";else if("Fal AI"==e)return"fal_ai/fal-ai/flux-pro/v1.1-ultra";else if("RunwayML"==e)return"runwayml/gen4_turbo";else if("Watsonx"===e)return"watsonx/ibm/granite-3-3-8b-instruct";else if("Cursor"===e)return"cursor/claude-4-sonnet";else if("Z.AI (Zhipu AI)"===e)return"zai/glm-4.5";else return"gpt-3.5-turbo"},"getProviderLogoAndName",0,e=>{if(!e)return{logo:"",displayName:"-"};if("gemini"===e.toLowerCase()){let e="Google AI Studio";return{logo:i[e],displayName:e}}let t=Object.keys(n).find(t=>n[t].toLowerCase()===e.toLowerCase());if(!t)return{logo:"",displayName:e};let a=r[t];return{logo:i[a],displayName:a}},"getProviderModels",0,(e,t)=>{console.log(`Provider key: ${e}`);let r=n[e];console.log(`Provider mapped to: ${r}`);let a=[];return e&&"object"==typeof t&&(Object.entries(t).forEach(([e,t])=>{if(null!==t&&"object"==typeof t&&"litellm_provider"in t){let n=t.litellm_provider;(n===r||"string"==typeof n&&(n.startsWith(`${r}_`)||n.startsWith(`${r}-`)))&&a.push(e)}}),"Cohere"==e&&(console.log("Adding cohere chat models"),Object.entries(t).forEach(([e,t])=>{null!==t&&"object"==typeof t&&"litellm_provider"in t&&"cohere_chat"===t.litellm_provider&&a.push(e)})),"AWS SageMaker"==e&&(console.log("Adding sagemaker chat models"),Object.entries(t).forEach(([e,t])=>{null!==t&&"object"==typeof t&&"litellm_provider"in t&&"sagemaker_chat"===t.litellm_provider&&a.push(e)}))),a},"providerLogoMap",0,i,"provider_map",0,n])},798496,e=>{"use strict";var t=e.i(843476),r=e.i(152990),n=e.i(682830),a=e.i(271645),i=e.i(269200),s=e.i(427612),o=e.i(64848),l=e.i(942232),u=e.i(496020),c=e.i(977572),d=e.i(94629),m=e.i(360820),f=e.i(871943);e.s(["ModelDataTable",0,function({data:e=[],columns:h,isLoading:p=!1,defaultSorting:g=[],pagination:v,onPaginationChange:b,enablePagination:y=!1,onRowClick:A}){let[w,x]=a.default.useState(g),[C]=a.default.useState("onChange"),[S,_]=a.default.useState({}),[E,T]=a.default.useState({}),I=(0,r.useReactTable)({data:e,columns:h,state:{sorting:w,columnSizing:S,columnVisibility:E,...y&&v?{pagination:v}:{}},columnResizeMode:C,onSortingChange:x,onColumnSizingChange:_,onColumnVisibilityChange:T,...y&&b?{onPaginationChange:b}:{},getCoreRowModel:(0,n.getCoreRowModel)(),getSortedRowModel:(0,n.getSortedRowModel)(),...y?{getPaginationRowModel:(0,n.getPaginationRowModel)()}:{},enableSorting:!0,enableColumnResizing:!0,defaultColumn:{minSize:40,maxSize:500}});return(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsx)("div",{className:"relative min-w-full",children:(0,t.jsxs)(i.Table,{className:"[&_td]:py-2 [&_th]:py-2",style:{width:I.getTotalSize(),minWidth:"100%",tableLayout:"fixed"},children:[(0,t.jsx)(s.TableHead,{children:I.getHeaderGroups().map(e=>(0,t.jsx)(u.TableRow,{children:e.headers.map(e=>(0,t.jsxs)(o.TableHeaderCell,{className:`py-1 h-8 relative ${"actions"===e.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)] w-[120px] ml-8":""} ${e.column.columnDef.meta?.className||""}`,style:{width:"actions"===e.id?120:e.getSize(),position:"actions"===e.id?"sticky":"relative",right:"actions"===e.id?0:"auto"},onClick:e.column.getCanSort()?e.column.getToggleSortingHandler():void 0,children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,r.flexRender)(e.column.columnDef.header,e.getContext())}),"actions"!==e.id&&e.column.getCanSort()&&(0,t.jsx)("div",{className:"w-4",children:e.column.getIsSorted()?({asc:(0,t.jsx)(m.ChevronUpIcon,{className:"h-4 w-4 text-blue-500"}),desc:(0,t.jsx)(f.ChevronDownIcon,{className:"h-4 w-4 text-blue-500"})})[e.column.getIsSorted()]:(0,t.jsx)(d.SwitchVerticalIcon,{className:"h-4 w-4 text-gray-400"})})]}),e.column.getCanResize()&&(0,t.jsx)("div",{onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:`absolute right-0 top-0 h-full w-2 cursor-col-resize select-none touch-none ${e.column.getIsResizing()?"bg-blue-500":"hover:bg-blue-200"}`})]},e.id))},e.id))}),(0,t.jsx)(l.TableBody,{children:p?(0,t.jsx)(u.TableRow,{children:(0,t.jsx)(c.TableCell,{colSpan:h.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"🚅 Loading models..."})})})}):I.getRowModel().rows.length>0?I.getRowModel().rows.map(e=>(0,t.jsx)(u.TableRow,{onClick:()=>A?.(e.original),className:A?"cursor-pointer hover:bg-gray-50":"",children:e.getVisibleCells().map(e=>(0,t.jsx)(c.TableCell,{className:`py-0.5 overflow-hidden ${"actions"===e.column.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)] w-[120px] ml-8":""} ${e.column.columnDef.meta?.className||""}`,style:{width:"actions"===e.column.id?120:e.column.getSize(),position:"actions"===e.column.id?"sticky":"relative",right:"actions"===e.column.id?0:"auto"},children:(0,r.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(u.TableRow,{children:(0,t.jsx)(c.TableCell,{colSpan:h.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No models found"})})})})})]})})})})}])},149121,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(152990),a=e.i(682830),i=e.i(269200),s=e.i(427612),o=e.i(64848),l=e.i(942232),u=e.i(496020),c=e.i(977572);e.s(["DataTable",0,function({data:e=[],columns:d,onRowClick:m,renderSubComponent:f,renderChildRows:h,getRowCanExpand:p,isLoading:g=!1,loadingMessage:v="🚅 Loading logs...",noDataMessage:b="No logs found",enableSorting:y=!1}){let A=!!(f||h)&&!!p,[w,x]=(0,r.useState)([]),C=(0,n.useReactTable)({data:e,columns:d,...y&&{state:{sorting:w},onSortingChange:x,enableSortingRemoval:!1},...A&&{getRowCanExpand:p},getRowId:(e,t)=>e?.request_id??String(t),getCoreRowModel:(0,a.getCoreRowModel)(),...y&&{getSortedRowModel:(0,a.getSortedRowModel)()},...A&&{getExpandedRowModel:(0,a.getExpandedRowModel)()}});return(0,t.jsx)("div",{className:"rounded-lg custom-border overflow-x-auto w-full max-w-full box-border",children:(0,t.jsxs)(i.Table,{className:"[&_td]:py-0.5 [&_th]:py-1 table-fixed w-full box-border",style:{minWidth:"400px"},children:[(0,t.jsx)(s.TableHead,{children:C.getHeaderGroups().map(e=>(0,t.jsx)(u.TableRow,{children:e.headers.map(e=>{let r=y&&e.column.getCanSort(),a=e.column.getIsSorted();return(0,t.jsx)(o.TableHeaderCell,{className:`py-1 h-8 ${r?"cursor-pointer select-none hover:bg-gray-50":""}`,onClick:r?e.column.getToggleSortingHandler():void 0,children:e.isPlaceholder?null:(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.flexRender)(e.column.columnDef.header,e.getContext()),r&&(0,t.jsx)("span",{className:"text-gray-400",children:"asc"===a?"↑":"desc"===a?"↓":"⇅"})]})},e.id)})},e.id))}),(0,t.jsx)(l.TableBody,{children:g?(0,t.jsx)(u.TableRow,{children:(0,t.jsx)(c.TableCell,{colSpan:d.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:v})})})}):C.getRowModel().rows.length>0?C.getRowModel().rows.map(e=>(0,t.jsxs)(r.Fragment,{children:[(0,t.jsx)(u.TableRow,{className:`h-8 ${m?"cursor-pointer hover:bg-gray-50":""}`,onClick:()=>m?.(e.original),children:e.getVisibleCells().map(e=>(0,t.jsx)(c.TableCell,{className:"py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap",children:(0,n.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))}),A&&e.getIsExpanded()&&h&&h({row:e}),A&&e.getIsExpanded()&&f&&!h&&(0,t.jsx)(u.TableRow,{children:(0,t.jsx)(c.TableCell,{colSpan:e.getVisibleCells().length,className:"p-0",children:(0,t.jsx)("div",{className:"w-full max-w-full overflow-hidden box-border",children:f({row:e})})})})]},e.id)):(0,t.jsx)(u.TableRow,{children:(0,t.jsx)(c.TableCell,{colSpan:d.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:b})})})})})]})})}])},37091,e=>{"use strict";var t=e.i(290571),r=e.i(95779),n=e.i(444755),a=e.i(673706),i=e.i(271645);let s=i.default.forwardRef((e,s)=>{let{color:o,children:l,className:u}=e,c=(0,t.__rest)(e,["color","children","className"]);return i.default.createElement("p",Object.assign({ref:s,className:(0,n.tremorTwMerge)(o?(0,a.getColorClassNames)(o,r.colorPalette.lightText).textColor:"text-tremor-content-emphasis dark:text-dark-tremor-content-emphasis",u)},c),l)});s.displayName="Subtitle",e.s(["Subtitle",0,s],37091)},883552,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(562901),n=e.i(343794),a=e.i(914949),i=e.i(529681),s=e.i(242064),o=e.i(829672),l=e.i(285781),u=e.i(836938),c=e.i(920228),d=e.i(62405),m=e.i(408850),f=e.i(87414),h=e.i(310730);let p=(0,e.i(246422).genStyleHooks)("Popconfirm",e=>(e=>{let{componentCls:t,iconCls:r,antCls:n,zIndexPopup:a,colorText:i,colorWarning:s,marginXXS:o,marginXS:l,fontSize:u,fontWeightStrong:c,colorTextHeading:d}=e;return{[t]:{zIndex:a,[`&${n}-popover`]:{fontSize:u},[`${t}-message`]:{marginBottom:l,display:"flex",flexWrap:"nowrap",alignItems:"start",[`> ${t}-message-icon ${r}`]:{color:s,fontSize:u,lineHeight:1,marginInlineEnd:l},[`${t}-title`]:{fontWeight:c,color:d,"&:only-child":{fontWeight:"normal"}},[`${t}-description`]:{marginTop:o,color:i}},[`${t}-buttons`]:{textAlign:"end",whiteSpace:"nowrap",button:{marginInlineStart:l}}}}})(e),e=>{let{zIndexPopupBase:t}=e;return{zIndexPopup:t+60}},{resetStyle:!1});var g=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,n=Object.getOwnPropertySymbols(e);at.indexOf(n[a])&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};let v=e=>{let{prefixCls:n,okButtonProps:a,cancelButtonProps:i,title:o,description:h,cancelText:p,okText:g,okType:v="primary",icon:b=t.createElement(r.default,null),showCancel:y=!0,close:A,onConfirm:w,onCancel:x,onPopupClick:C}=e,{getPrefixCls:S}=t.useContext(s.ConfigContext),[_]=(0,m.useLocale)("Popconfirm",f.default.Popconfirm),E=(0,u.getRenderPropValue)(o),T=(0,u.getRenderPropValue)(h);return t.createElement("div",{className:`${n}-inner-content`,onClick:C},t.createElement("div",{className:`${n}-message`},b&&t.createElement("span",{className:`${n}-message-icon`},b),t.createElement("div",{className:`${n}-message-text`},E&&t.createElement("div",{className:`${n}-title`},E),T&&t.createElement("div",{className:`${n}-description`},T))),t.createElement("div",{className:`${n}-buttons`},y&&t.createElement(c.default,Object.assign({onClick:x,size:"small"},i),p||(null==_?void 0:_.cancelText)),t.createElement(l.default,{buttonProps:Object.assign(Object.assign({size:"small"},(0,d.convertLegacyProps)(v)),a),actionFn:w,close:A,prefixCls:S("btn"),quitOnNullishReturnValue:!0,emitEvent:!0},g||(null==_?void 0:_.okText))))};var b=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,n=Object.getOwnPropertySymbols(e);at.indexOf(n[a])&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};let y=t.forwardRef((e,l)=>{var u,c;let{prefixCls:d,placement:m="top",trigger:f="click",okType:h="primary",icon:g=t.createElement(r.default,null),children:y,overlayClassName:A,onOpenChange:w,onVisibleChange:x,overlayStyle:C,styles:S,classNames:_}=e,E=b(e,["prefixCls","placement","trigger","okType","icon","children","overlayClassName","onOpenChange","onVisibleChange","overlayStyle","styles","classNames"]),{getPrefixCls:T,className:I,style:O,classNames:M,styles:R}=(0,s.useComponentConfig)("popconfirm"),[k,$]=(0,a.default)(!1,{value:null!=(u=e.open)?u:e.visible,defaultValue:null!=(c=e.defaultOpen)?c:e.defaultVisible}),N=(e,t)=>{$(e,!0),null==x||x(e),null==w||w(e,t)},L=T("popconfirm",d),j=(0,n.default)(L,I,A,M.root,null==_?void 0:_.root),D=(0,n.default)(M.body,null==_?void 0:_.body),[P]=p(L);return P(t.createElement(o.default,Object.assign({},(0,i.default)(E,["title"]),{trigger:f,placement:m,onOpenChange:(t,r)=>{let{disabled:n=!1}=e;n||N(t,r)},open:k,ref:l,classNames:{root:j,body:D},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},R.root),O),C),null==S?void 0:S.root),body:Object.assign(Object.assign({},R.body),null==S?void 0:S.body)},content:t.createElement(v,Object.assign({okType:h,icon:g},e,{prefixCls:L,close:e=>{N(!1,e)},onConfirm:t=>{var r;return null==(r=e.onConfirm)?void 0:r.call(void 0,t)},onCancel:t=>{var r;N(!1,t),null==(r=e.onCancel)||r.call(void 0,t)}})),"data-popover-inject":!0}),y))});y._InternalPanelDoNotUseOrYouWillBeFired=e=>{let{prefixCls:r,placement:a,className:i,style:o}=e,l=g(e,["prefixCls","placement","className","style"]),{getPrefixCls:u}=t.useContext(s.ConfigContext),c=u("popconfirm",r),[d]=p(c);return d(t.createElement(h.default,{placement:a,className:(0,n.default)(c,i),style:o,content:t.createElement(v,Object.assign({prefixCls:c},l))}))},e.s(["Popconfirm",0,y],883552)},446891,836991,e=>{"use strict";var t=e.i(843476),r=e.i(464571),n=e.i(326373),a=e.i(94629),i=e.i(360820),s=e.i(871943),o=e.i(271645);let l=o.forwardRef(function(e,t){return o.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),o.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"}))});e.s(["XIcon",0,l],836991),e.s(["TableHeaderSortDropdown",0,({sortState:e,onSortChange:o})=>{let u=[{key:"asc",label:"Ascending",icon:(0,t.jsx)(i.ChevronUpIcon,{className:"h-4 w-4"})},{key:"desc",label:"Descending",icon:(0,t.jsx)(s.ChevronDownIcon,{className:"h-4 w-4"})},{key:"reset",label:"Reset",icon:(0,t.jsx)(l,{className:"h-4 w-4"})}];return(0,t.jsx)(n.Dropdown,{menu:{items:u,onClick:({key:e})=>{"asc"===e?o("asc"):"desc"===e?o("desc"):"reset"===e&&o(!1)},selectable:!0,selectedKeys:e?[e]:[]},trigger:["click"],autoAdjustOverflow:!0,children:(0,t.jsx)(r.Button,{type:"text",onClick:e=>e.stopPropagation(),icon:"asc"===e?(0,t.jsx)(i.ChevronUpIcon,{className:"h-4 w-4"}):"desc"===e?(0,t.jsx)(s.ChevronDownIcon,{className:"h-4 w-4"}):(0,t.jsx)(a.SwitchVerticalIcon,{className:"h-4 w-4"}),className:e?"text-blue-500 hover:text-blue-600":"text-gray-400 hover:text-blue-500"})})}],446891)},987432,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z"}}]},name:"save",theme:"outlined"};var a=e.i(9583),i=r.forwardRef(function(e,i){return r.createElement(a.default,(0,t.default)({},e,{ref:i,icon:n}))});e.s(["SaveOutlined",0,i],987432)},750113,e=>{"use strict";var t=e.i(684024);e.s(["QuestionCircleOutlined",()=>t.default])},724154,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372 0-89 31.3-170.8 83.5-234.8l523.3 523.3C682.8 852.7 601 884 512 884zm288.5-137.2L277.2 223.5C341.2 171.3 423 140 512 140c205.4 0 372 166.6 372 372 0 89-31.3 170.8-83.5 234.8z"}}]},name:"stop",theme:"outlined"};var a=e.i(9583),i=r.forwardRef(function(e,i){return r.createElement(a.default,(0,t.default)({},e,{ref:i,icon:n}))});e.s(["StopOutlined",0,i],724154)},153472,e=>{"use strict";var t,r,n=e.i(266027),a=e.i(954616),i=e.i(912598),s=e.i(243652),o=e.i(135214),l=e.i(764205),u=((t={}).GENERAL_SETTINGS="general_settings",t),c=((r={}).MAXIMUM_SPEND_LOGS_RETENTION_PERIOD="maximum_spend_logs_retention_period",r);let d=async(e,t)=>{try{let r=l.proxyBaseUrl?`${l.proxyBaseUrl}/config/list?config_type=${t}`:`/config/list?config_type=${t}`,n=await fetch(r,{method:"GET",headers:{[(0,l.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=(0,l.deriveErrorMessage)(e);throw(0,l.handleError)(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to get proxy config for ${t}:`,e),e}},m=(0,s.createQueryKeys)("proxyConfig"),f=async(e,t)=>{try{let r=l.proxyBaseUrl?`${l.proxyBaseUrl}/config/field/delete`:"/config/field/delete",n=await fetch(r,{method:"POST",headers:{[(0,l.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok){let e=await n.json(),t=(0,l.deriveErrorMessage)(e);throw(0,l.handleError)(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to delete proxy config field ${t.field_name}:`,e),e}};e.s(["ConfigType",()=>u,"GeneralSettingsFieldName",()=>c,"proxyConfigKeys",0,m,"useDeleteProxyConfigField",0,()=>{let{accessToken:e}=(0,o.default)(),t=(0,i.useQueryClient)();return(0,a.useMutation)({mutationFn:async t=>{if(!e)throw Error("Access token is required");return await f(e,t)},onSuccess:()=>{t.invalidateQueries({queryKey:m.all})}})},"useProxyConfig",0,e=>{let{accessToken:t}=(0,o.default)();return(0,n.useQuery)({queryKey:m.list({filters:{configType:e}}),queryFn:async()=>await d(t,e),enabled:!!t})}])},475647,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M696 480H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"plus-circle",theme:"outlined"};var a=e.i(9583),i=r.forwardRef(function(e,i){return r.createElement(a.default,(0,t.default)({},e,{ref:i,icon:n}))});e.s(["PlusCircleOutlined",0,i],475647)},286536,77705,e=>{"use strict";var t=e.i(475254);let r=(0,t.default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Eye",0,r],286536);let n=(0,t.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);e.s(["EyeOff",0,n],77705)},793130,e=>{"use strict";var t=e.i(290571),r=e.i(783222),n=e.i(433336),a=e.i(271645),i=e.i(394487),s=e.i(503269),o=e.i(214520),l=e.i(746725),u=e.i(914189),c=e.i(144279),d=e.i(294316),m=e.i(601893),f=e.i(140721),h=e.i(942803),p=e.i(233538),g=e.i(694421),v=e.i(700020),b=e.i(35889),y=e.i(998348),A=e.i(722678);let w=(0,a.createContext)(null);w.displayName="GroupContext";let x=a.Fragment,C=Object.assign((0,v.forwardRefWithAs)(function(e,t){var x;let C=(0,a.useId)(),S=(0,h.useProvidedId)(),_=(0,m.useDisabled)(),{id:E=S||`headlessui-switch-${C}`,disabled:T=_||!1,checked:I,defaultChecked:O,onChange:M,name:R,value:k,form:$,autoFocus:N=!1,...L}=e,j=(0,a.useContext)(w),[D,P]=(0,a.useState)(null),z=(0,a.useRef)(null),F=(0,d.useSyncRefs)(z,t,null===j?null:j.setSwitch,P),V=(0,o.useDefaultValue)(O),[H,B]=(0,s.useControllable)(I,M,null!=V&&V),G=(0,l.useDisposables)(),[U,W]=(0,a.useState)(!1),q=(0,u.useEvent)(()=>{W(!0),null==B||B(!H),G.nextFrame(()=>{W(!1)})}),K=(0,u.useEvent)(e=>{if((0,p.isDisabledReactIssue7711)(e.currentTarget))return e.preventDefault();e.preventDefault(),q()}),Y=(0,u.useEvent)(e=>{e.key===y.Keys.Space?(e.preventDefault(),q()):e.key===y.Keys.Enter&&(0,g.attemptSubmit)(e.currentTarget)}),X=(0,u.useEvent)(e=>e.preventDefault()),Z=(0,A.useLabelledBy)(),Q=(0,b.useDescribedBy)(),{isFocusVisible:J,focusProps:ee}=(0,r.useFocusRing)({autoFocus:N}),{isHovered:et,hoverProps:er}=(0,n.useHover)({isDisabled:T}),{pressed:en,pressProps:ea}=(0,i.useActivePress)({disabled:T}),ei=(0,a.useMemo)(()=>({checked:H,disabled:T,hover:et,focus:J,active:en,autofocus:N,changing:U}),[H,et,J,en,T,U,N]),es=(0,v.mergeProps)({id:E,ref:F,role:"switch",type:(0,c.useResolveButtonType)(e,D),tabIndex:-1===e.tabIndex?0:null!=(x=e.tabIndex)?x:0,"aria-checked":H,"aria-labelledby":Z,"aria-describedby":Q,disabled:T||void 0,autoFocus:N,onClick:K,onKeyUp:Y,onKeyPress:X},ee,er,ea),eo=(0,a.useCallback)(()=>{if(void 0!==V)return null==B?void 0:B(V)},[B,V]),el=(0,v.useRender)();return a.default.createElement(a.default.Fragment,null,null!=R&&a.default.createElement(f.FormFields,{disabled:T,data:{[R]:k||"on"},overrides:{type:"checkbox",checked:H},form:$,onReset:eo}),el({ourProps:es,theirProps:L,slot:ei,defaultTag:"button",name:"Switch"}))}),{Group:function(e){var t;let[r,n]=(0,a.useState)(null),[i,s]=(0,A.useLabels)(),[o,l]=(0,b.useDescriptions)(),u=(0,a.useMemo)(()=>({switch:r,setSwitch:n}),[r,n]),c=(0,v.useRender)();return a.default.createElement(l,{name:"Switch.Description",value:o},a.default.createElement(s,{name:"Switch.Label",value:i,props:{htmlFor:null==(t=u.switch)?void 0:t.id,onClick(e){r&&(e.currentTarget instanceof HTMLLabelElement&&e.preventDefault(),r.click(),r.focus({preventScroll:!0}))}}},a.default.createElement(w.Provider,{value:u},c({ourProps:{},theirProps:e,slot:{},defaultTag:x,name:"Switch.Group"}))))},Label:A.Label,Description:b.Description});var S=e.i(888288),_=e.i(95779),E=e.i(444755),T=e.i(673706),I=e.i(829087);let O=(0,T.makeClassName)("Switch"),M=a.default.forwardRef((e,r)=>{let{checked:n,defaultChecked:i=!1,onChange:s,color:o,name:l,error:u,errorMessage:c,disabled:d,required:m,tooltip:f,id:h}=e,p=(0,t.__rest)(e,["checked","defaultChecked","onChange","color","name","error","errorMessage","disabled","required","tooltip","id"]),g={bgColor:o?(0,T.getColorClassNames)(o,_.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",ringColor:o?(0,T.getColorClassNames)(o,_.colorPalette.ring).ringColor:"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"},[v,b]=(0,S.default)(i,n),[y,A]=(0,a.useState)(!1),{tooltipProps:w,getReferenceProps:x}=(0,I.useTooltip)(300);return a.default.createElement("div",{className:"flex flex-row items-center justify-start"},a.default.createElement(I.default,Object.assign({text:f},w)),a.default.createElement("div",Object.assign({ref:(0,T.mergeRefs)([r,w.refs.setReference]),className:(0,E.tremorTwMerge)(O("root"),"flex flex-row relative h-5")},p,x),a.default.createElement("input",{type:"checkbox",className:(0,E.tremorTwMerge)(O("input"),"absolute w-5 h-5 cursor-pointer left-0 top-0 opacity-0"),name:l,required:m,checked:v,onChange:e=>{e.preventDefault()}}),a.default.createElement(C,{checked:v,onChange:e=>{b(e),null==s||s(e)},disabled:d,className:(0,E.tremorTwMerge)(O("switch"),"w-10 h-5 group relative inline-flex shrink-0 cursor-pointer items-center justify-center rounded-tremor-full","focus:outline-none",d?"cursor-not-allowed":""),onFocus:()=>A(!0),onBlur:()=>A(!1),id:h},a.default.createElement("span",{className:(0,E.tremorTwMerge)(O("sr-only"),"sr-only")},"Switch ",v?"on":"off"),a.default.createElement("span",{"aria-hidden":"true",className:(0,E.tremorTwMerge)(O("background"),v?g.bgColor:"bg-tremor-border dark:bg-dark-tremor-border","pointer-events-none absolute mx-auto h-3 w-9 rounded-tremor-full transition-colors duration-100 ease-in-out")}),a.default.createElement("span",{"aria-hidden":"true",className:(0,E.tremorTwMerge)(O("round"),v?(0,E.tremorTwMerge)(g.bgColor,"translate-x-5 border-tremor-background dark:border-dark-tremor-background"):"translate-x-0 bg-tremor-border dark:bg-dark-tremor-border border-tremor-background dark:border-dark-tremor-background","pointer-events-none absolute left-0 inline-block h-5 w-5 transform rounded-tremor-full border-2 shadow-tremor-input duration-100 ease-in-out transition",y?(0,E.tremorTwMerge)("ring-2",g.ringColor):"")}))),u&&c?a.default.createElement("p",{className:(0,E.tremorTwMerge)(O("errorMessage"),"text-sm text-red-500 mt-1 ")},c):null)});M.displayName="Switch",e.s(["Switch",0,M],793130)},418371,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(916925);e.s(["ProviderLogo",0,({provider:e,className:a="w-4 h-4"})=>{let[i,s]=(0,r.useState)(!1),{logo:o}=(0,n.getProviderLogoAndName)(e);return i||!o?(0,t.jsx)("div",{className:`${a} rounded-full bg-gray-200 flex items-center justify-center text-xs`,children:e?.charAt(0)||"-"}):(0,t.jsx)("img",{src:o,alt:`${e} logo`,className:a,onError:()=>s(!0)})}])},368670,539677,e=>{"use strict";var t=e.i(764205),r=e.i(266027);let n=(0,e.i(243652).createQueryKeys)("modelCostMap");e.s(["useModelCostMap",0,()=>(0,r.useQuery)({queryKey:n.list({}),queryFn:async()=>await (0,t.modelCostMap)(),staleTime:6e4,gcTime:6e4})],368670),e.i(247167);var a=e.i(931067),i=e.i(271645);let s={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M740 161c-61.8 0-112 50.2-112 112 0 50.1 33.1 92.6 78.5 106.9v95.9L320 602.4V318.1c44.2-15 76-56.9 76-106.1 0-61.8-50.2-112-112-112s-112 50.2-112 112c0 49.2 31.8 91 76 106.1V706c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1v-27.8l423.5-138.7a50.52 50.52 0 0034.9-48.2V378.2c42.9-15.8 73.6-57 73.6-105.2 0-61.8-50.2-112-112-112zm-504 51a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm96 600a48.01 48.01 0 01-96 0 48.01 48.01 0 0196 0zm408-491a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"}}]},name:"branches",theme:"outlined"};var o=e.i(9583),l=i.forwardRef(function(e,t){return i.createElement(o.default,(0,a.default)({},e,{ref:t,icon:s}))});e.s(["BranchesOutlined",0,l],539677)},738014,e=>{"use strict";var t=e.i(135214),r=e.i(764205),n=e.i(266027);let a=(0,e.i(243652).createQueryKeys)("users");e.s(["useCurrentUser",0,()=>{let{accessToken:e,userId:i}=(0,t.default)();return(0,n.useQuery)({queryKey:a.detail(i),queryFn:async()=>await (0,r.userGetInfoV2)(e),enabled:!!(e&&i)})}])},160818,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.4 800.9c.2-.3.5-.6.7-.9C920.6 722.1 960 621.7 960 512s-39.4-210.1-104.8-288c-.2-.3-.5-.5-.7-.8-1.1-1.3-2.1-2.5-3.2-3.7-.4-.5-.8-.9-1.2-1.4l-4.1-4.7-.1-.1c-1.5-1.7-3.1-3.4-4.6-5.1l-.1-.1c-3.2-3.4-6.4-6.8-9.7-10.1l-.1-.1-4.8-4.8-.3-.3c-1.5-1.5-3-2.9-4.5-4.3-.5-.5-1-1-1.6-1.5-1-1-2-1.9-3-2.8-.3-.3-.7-.6-1-1C736.4 109.2 629.5 64 512 64s-224.4 45.2-304.3 119.2c-.3.3-.7.6-1 1-1 .9-2 1.9-3 2.9-.5.5-1 1-1.6 1.5-1.5 1.4-3 2.9-4.5 4.3l-.3.3-4.8 4.8-.1.1c-3.3 3.3-6.5 6.7-9.7 10.1l-.1.1c-1.6 1.7-3.1 3.4-4.6 5.1l-.1.1c-1.4 1.5-2.8 3.1-4.1 4.7-.4.5-.8.9-1.2 1.4-1.1 1.2-2.1 2.5-3.2 3.7-.2.3-.5.5-.7.8C103.4 301.9 64 402.3 64 512s39.4 210.1 104.8 288c.2.3.5.6.7.9l3.1 3.7c.4.5.8.9 1.2 1.4l4.1 4.7c0 .1.1.1.1.2 1.5 1.7 3 3.4 4.6 5l.1.1c3.2 3.4 6.4 6.8 9.6 10.1l.1.1c1.6 1.6 3.1 3.2 4.7 4.7l.3.3c3.3 3.3 6.7 6.5 10.1 9.6 80.1 74 187 119.2 304.5 119.2s224.4-45.2 304.3-119.2a300 300 0 0010-9.6l.3-.3c1.6-1.6 3.2-3.1 4.7-4.7l.1-.1c3.3-3.3 6.5-6.7 9.6-10.1l.1-.1c1.5-1.7 3.1-3.3 4.6-5 0-.1.1-.1.1-.2 1.4-1.5 2.8-3.1 4.1-4.7.4-.5.8-.9 1.2-1.4a99 99 0 003.3-3.7zm4.1-142.6c-13.8 32.6-32 62.8-54.2 90.2a444.07 444.07 0 00-81.5-55.9c11.6-46.9 18.8-98.4 20.7-152.6H887c-3 40.9-12.6 80.6-28.5 118.3zM887 484H743.5c-1.9-54.2-9.1-105.7-20.7-152.6 29.3-15.6 56.6-34.4 81.5-55.9A373.86 373.86 0 01887 484zM658.3 165.5c39.7 16.8 75.8 40 107.6 69.2a394.72 394.72 0 01-59.4 41.8c-15.7-45-35.8-84.1-59.2-115.4 3.7 1.4 7.4 2.9 11 4.4zm-90.6 700.6c-9.2 7.2-18.4 12.7-27.7 16.4V697a389.1 389.1 0 01115.7 26.2c-8.3 24.6-17.9 47.3-29 67.8-17.4 32.4-37.8 58.3-59 75.1zm59-633.1c11 20.6 20.7 43.3 29 67.8A389.1 389.1 0 01540 327V141.6c9.2 3.7 18.5 9.1 27.7 16.4 21.2 16.7 41.6 42.6 59 75zM540 640.9V540h147.5c-1.6 44.2-7.1 87.1-16.3 127.8l-.3 1.2A445.02 445.02 0 00540 640.9zm0-156.9V383.1c45.8-2.8 89.8-12.5 130.9-28.1l.3 1.2c9.2 40.7 14.7 83.5 16.3 127.8H540zm-56 56v100.9c-45.8 2.8-89.8 12.5-130.9 28.1l-.3-1.2c-9.2-40.7-14.7-83.5-16.3-127.8H484zm-147.5-56c1.6-44.2 7.1-87.1 16.3-127.8l.3-1.2c41.1 15.6 85 25.3 130.9 28.1V484H336.5zM484 697v185.4c-9.2-3.7-18.5-9.1-27.7-16.4-21.2-16.7-41.7-42.7-59.1-75.1-11-20.6-20.7-43.3-29-67.8 37.2-14.6 75.9-23.3 115.8-26.1zm0-370a389.1 389.1 0 01-115.7-26.2c8.3-24.6 17.9-47.3 29-67.8 17.4-32.4 37.8-58.4 59.1-75.1 9.2-7.2 18.4-12.7 27.7-16.4V327zM365.7 165.5c3.7-1.5 7.3-3 11-4.4-23.4 31.3-43.5 70.4-59.2 115.4-21-12-40.9-26-59.4-41.8 31.8-29.2 67.9-52.4 107.6-69.2zM165.5 365.7c13.8-32.6 32-62.8 54.2-90.2 24.9 21.5 52.2 40.3 81.5 55.9-11.6 46.9-18.8 98.4-20.7 152.6H137c3-40.9 12.6-80.6 28.5-118.3zM137 540h143.5c1.9 54.2 9.1 105.7 20.7 152.6a444.07 444.07 0 00-81.5 55.9A373.86 373.86 0 01137 540zm228.7 318.5c-39.7-16.8-75.8-40-107.6-69.2 18.5-15.8 38.4-29.7 59.4-41.8 15.7 45 35.8 84.1 59.2 115.4-3.7-1.4-7.4-2.9-11-4.4zm292.6 0c-3.7 1.5-7.3 3-11 4.4 23.4-31.3 43.5-70.4 59.2-115.4 21 12 40.9 26 59.4 41.8a373.81 373.81 0 01-107.6 69.2z"}}]},name:"global",theme:"outlined"};var a=e.i(9583),i=r.forwardRef(function(e,i){return r.createElement(a.default,(0,t.default)({},e,{ref:i,icon:n}))});e.s(["GlobalOutlined",0,i],160818)},751904,e=>{"use strict";var t=e.i(401361);e.s(["EditOutlined",()=>t.default])},564897,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"minus-circle",theme:"outlined"};var a=e.i(9583),i=r.forwardRef(function(e,i){return r.createElement(a.default,(0,t.default)({},e,{ref:i,icon:n}))});e.s(["MinusCircleOutlined",0,i],564897)},822315,(e,t,r)=>{e.e,t.exports=function(){"use strict";var e="millisecond",t="second",r="minute",n="hour",a="week",i="month",s="quarter",o="year",l="date",u="Invalid Date",c=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,d=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,m=function(e,t,r){var n=String(e);return!n||n.length>=t?e:""+Array(t+1-n.length).join(r)+e},f="en",h={};h[f]={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],r=e%100;return"["+e+(t[(r-20)%10]||t[r]||t[0])+"]"}};var p="$isDayjsObject",g=function(e){return e instanceof A||!(!e||!e[p])},v=function e(t,r,n){var a;if(!t)return f;if("string"==typeof t){var i=t.toLowerCase();h[i]&&(a=i),r&&(h[i]=r,a=i);var s=t.split("-");if(!a&&s.length>1)return e(s[0])}else{var o=t.name;h[o]=t,a=o}return!n&&a&&(f=a),a||!n&&f},b=function(e,t){if(g(e))return e.clone();var r="object"==typeof t?t:{};return r.date=e,r.args=arguments,new A(r)},y={s:m,z:function(e){var t=-e.utcOffset(),r=Math.abs(t);return(t<=0?"+":"-")+m(Math.floor(r/60),2,"0")+":"+m(r%60,2,"0")},m:function e(t,r){if(t.date(){"use strict";var t=e.i(271645);e.s(["default",0,(e,r)=>{let n=void 0!==r,[a,i]=(0,t.useState)(e);return[n?r:a,e=>{n||i(e)}]}])},757440,e=>{"use strict";var t=e.i(290571),r=e.i(271645);e.s(["default",0,e=>{var n=(0,t.__rest)(e,[]);return r.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},n),r.default.createElement("path",{d:"M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z"}))}])},446428,854056,e=>{"use strict";let t;var r=e.i(290571),n=e.i(271645);e.s(["default",0,e=>{var t=(0,r.__rest)(e,[]);return n.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},t),n.default.createElement("path",{d:"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 10.5858L9.17157 7.75736L7.75736 9.17157L10.5858 12L7.75736 14.8284L9.17157 16.2426L12 13.4142L14.8284 16.2426L16.2426 14.8284L13.4142 12L16.2426 9.17157L14.8284 7.75736L12 10.5858Z"}))}],446428);var a=e.i(746725),i=e.i(914189),s=e.i(553521),o=e.i(835696),l=e.i(941444),u=e.i(178677),c=e.i(294316),d=e.i(83733),m=e.i(233137),f=e.i(732607),h=e.i(397701),p=e.i(700020);function g(e){var t;return!!(e.enter||e.enterFrom||e.enterTo||e.leave||e.leaveFrom||e.leaveTo)||(null!=(t=e.as)?t:x)!==n.Fragment||1===n.default.Children.count(e.children)}let v=(0,n.createContext)(null);v.displayName="TransitionContext";var b=((t=b||{}).Visible="visible",t.Hidden="hidden",t);let y=(0,n.createContext)(null);function A(e){return"children"in e?A(e.children):e.current.filter(({el:e})=>null!==e.current).filter(({state:e})=>"visible"===e).length>0}function w(e,t){let r=(0,l.useLatestValue)(e),o=(0,n.useRef)([]),u=(0,s.useIsMounted)(),c=(0,a.useDisposables)(),d=(0,i.useEvent)((e,t=p.RenderStrategy.Hidden)=>{let n=o.current.findIndex(({el:t})=>t===e);-1!==n&&((0,h.match)(t,{[p.RenderStrategy.Unmount](){o.current.splice(n,1)},[p.RenderStrategy.Hidden](){o.current[n].state="hidden"}}),c.microTask(()=>{var e;!A(o)&&u.current&&(null==(e=r.current)||e.call(r))}))}),m=(0,i.useEvent)(e=>{let t=o.current.find(({el:t})=>t===e);return t?"visible"!==t.state&&(t.state="visible"):o.current.push({el:e,state:"visible"}),()=>d(e,p.RenderStrategy.Unmount)}),f=(0,n.useRef)([]),g=(0,n.useRef)(Promise.resolve()),v=(0,n.useRef)({enter:[],leave:[]}),b=(0,i.useEvent)((e,r,n)=>{f.current.splice(0),t&&(t.chains.current[r]=t.chains.current[r].filter(([t])=>t!==e)),null==t||t.chains.current[r].push([e,new Promise(e=>{f.current.push(e)})]),null==t||t.chains.current[r].push([e,new Promise(e=>{Promise.all(v.current[r].map(([e,t])=>t)).then(()=>e())})]),"enter"===r?g.current=g.current.then(()=>null==t?void 0:t.wait.current).then(()=>n(r)):n(r)}),y=(0,i.useEvent)((e,t,r)=>{Promise.all(v.current[t].splice(0).map(([e,t])=>t)).then(()=>{var e;null==(e=f.current.shift())||e()}).then(()=>r(t))});return(0,n.useMemo)(()=>({children:o,register:m,unregister:d,onStart:b,onStop:y,wait:g,chains:v}),[m,d,o,b,y,v,g])}y.displayName="NestingContext";let x=n.Fragment,C=p.RenderFeatures.RenderStrategy,S=(0,p.forwardRefWithAs)(function(e,t){let{show:r,appear:a=!1,unmount:s=!0,...l}=e,d=(0,n.useRef)(null),f=g(e),h=(0,c.useSyncRefs)(...f?[d,t]:null===t?[]:[t]);(0,u.useServerHandoffComplete)();let b=(0,m.useOpenClosed)();if(void 0===r&&null!==b&&(r=(b&m.State.Open)===m.State.Open),void 0===r)throw Error("A is used but it is missing a `show={true | false}` prop.");let[x,S]=(0,n.useState)(r?"visible":"hidden"),E=w(()=>{r||S("hidden")}),[T,I]=(0,n.useState)(!0),O=(0,n.useRef)([r]);(0,o.useIsoMorphicEffect)(()=>{!1!==T&&O.current[O.current.length-1]!==r&&(O.current.push(r),I(!1))},[O,r]);let M=(0,n.useMemo)(()=>({show:r,appear:a,initial:T}),[r,a,T]);(0,o.useIsoMorphicEffect)(()=>{r?S("visible"):A(E)||null===d.current||S("hidden")},[r,E]);let R={unmount:s},k=(0,i.useEvent)(()=>{var t;T&&I(!1),null==(t=e.beforeEnter)||t.call(e)}),$=(0,i.useEvent)(()=>{var t;T&&I(!1),null==(t=e.beforeLeave)||t.call(e)}),N=(0,p.useRender)();return n.default.createElement(y.Provider,{value:E},n.default.createElement(v.Provider,{value:M},N({ourProps:{...R,as:n.Fragment,children:n.default.createElement(_,{ref:h,...R,...l,beforeEnter:k,beforeLeave:$})},theirProps:{},defaultTag:n.Fragment,features:C,visible:"visible"===x,name:"Transition"})))}),_=(0,p.forwardRefWithAs)(function(e,t){var r,a;let{transition:s=!0,beforeEnter:l,afterEnter:b,beforeLeave:S,afterLeave:_,enter:E,enterFrom:T,enterTo:I,entered:O,leave:M,leaveFrom:R,leaveTo:k,...$}=e,[N,L]=(0,n.useState)(null),j=(0,n.useRef)(null),D=g(e),P=(0,c.useSyncRefs)(...D?[j,t,L]:null===t?[]:[t]),z=null==(r=$.unmount)||r?p.RenderStrategy.Unmount:p.RenderStrategy.Hidden,{show:F,appear:V,initial:H}=function(){let e=(0,n.useContext)(v);if(null===e)throw Error("A is used but it is missing a parent or .");return e}(),[B,G]=(0,n.useState)(F?"visible":"hidden"),U=function(){let e=(0,n.useContext)(y);if(null===e)throw Error("A is used but it is missing a parent or .");return e}(),{register:W,unregister:q}=U;(0,o.useIsoMorphicEffect)(()=>W(j),[W,j]),(0,o.useIsoMorphicEffect)(()=>{if(z===p.RenderStrategy.Hidden&&j.current)return F&&"visible"!==B?void G("visible"):(0,h.match)(B,{hidden:()=>q(j),visible:()=>W(j)})},[B,j,W,q,F,z]);let K=(0,u.useServerHandoffComplete)();(0,o.useIsoMorphicEffect)(()=>{if(D&&K&&"visible"===B&&null===j.current)throw Error("Did you forget to passthrough the `ref` to the actual DOM node?")},[j,B,K,D]);let Y=H&&!V,X=V&&F&&H,Z=(0,n.useRef)(!1),Q=w(()=>{Z.current||(G("hidden"),q(j))},U),J=(0,i.useEvent)(e=>{Z.current=!0,Q.onStart(j,e?"enter":"leave",e=>{"enter"===e?null==l||l():"leave"===e&&(null==S||S())})}),ee=(0,i.useEvent)(e=>{let t=e?"enter":"leave";Z.current=!1,Q.onStop(j,t,e=>{"enter"===e?null==b||b():"leave"===e&&(null==_||_())}),"leave"!==t||A(Q)||(G("hidden"),q(j))});(0,n.useEffect)(()=>{D&&s||(J(F),ee(F))},[F,D,s]);let et=!(!s||!D||!K||Y),[,er]=(0,d.useTransition)(et,N,F,{start:J,end:ee}),en=(0,p.compact)({ref:P,className:(null==(a=(0,f.classNames)($.className,X&&E,X&&T,er.enter&&E,er.enter&&er.closed&&T,er.enter&&!er.closed&&I,er.leave&&M,er.leave&&!er.closed&&R,er.leave&&er.closed&&k,!er.transition&&F&&O))?void 0:a.trim())||void 0,...(0,d.transitionDataAttributes)(er)}),ea=0;"visible"===B&&(ea|=m.State.Open),"hidden"===B&&(ea|=m.State.Closed),er.enter&&(ea|=m.State.Opening),er.leave&&(ea|=m.State.Closing);let ei=(0,p.useRender)();return n.default.createElement(y.Provider,{value:Q},n.default.createElement(m.OpenClosedProvider,{value:ea},ei({ourProps:en,theirProps:$,defaultTag:x,features:C,visible:"visible"===B,name:"Transition.Child"})))}),E=(0,p.forwardRefWithAs)(function(e,t){let r=null!==(0,n.useContext)(v),a=null!==(0,m.useOpenClosed)();return n.default.createElement(n.default.Fragment,null,!r&&a?n.default.createElement(S,{ref:t,...e}):n.default.createElement(_,{ref:t,...e}))}),T=Object.assign(S,{Child:E,Root:S});e.s(["Transition",0,T],854056)},206929,e=>{"use strict";var t=e.i(290571),r=e.i(757440),n=e.i(271645),a=e.i(446428),i=e.i(444755),s=e.i(673706),o=e.i(103471),l=e.i(495470),u=e.i(854056),c=e.i(888288);let d=(0,s.makeClassName)("Select"),m=n.default.forwardRef((e,s)=>{let{defaultValue:m="",value:f,onValueChange:h,placeholder:p="Select...",disabled:g=!1,icon:v,enableClear:b=!1,required:y,children:A,name:w,error:x=!1,errorMessage:C,className:S,id:_}=e,E=(0,t.__rest)(e,["defaultValue","value","onValueChange","placeholder","disabled","icon","enableClear","required","children","name","error","errorMessage","className","id"]),T=(0,n.useRef)(null),I=n.Children.toArray(A),[O,M]=(0,c.default)(m,f),R=(0,n.useMemo)(()=>{let e=n.default.Children.toArray(A).filter(n.isValidElement);return(0,o.constructValueToNameMapping)(e)},[A]);return n.default.createElement("div",{className:(0,i.tremorTwMerge)("w-full min-w-[10rem] text-tremor-default",S)},n.default.createElement("div",{className:"relative"},n.default.createElement("select",{title:"select-hidden",required:y,className:(0,i.tremorTwMerge)("h-full w-full absolute left-0 top-0 -z-10 opacity-0"),value:O,onChange:e=>{e.preventDefault()},name:w,disabled:g,id:_,onFocus:()=>{let e=T.current;e&&e.focus()}},n.default.createElement("option",{className:"hidden",value:"",disabled:!0,hidden:!0},p),I.map(e=>{let t=e.props.value,r=e.props.children;return n.default.createElement("option",{className:"hidden",key:t,value:t},r)})),n.default.createElement(l.Listbox,Object.assign({as:"div",ref:s,defaultValue:O,value:O,onChange:e=>{null==h||h(e),M(e)},disabled:g,id:_},E),({value:e})=>{var t;return n.default.createElement(n.default.Fragment,null,n.default.createElement(l.ListboxButton,{ref:T,className:(0,i.tremorTwMerge)("w-full outline-none text-left whitespace-nowrap truncate rounded-tremor-default focus:ring-2 transition duration-100 border pr-8 py-2","border-tremor-border shadow-tremor-input focus:border-tremor-brand-subtle focus:ring-tremor-brand-muted","dark:border-dark-tremor-border dark:shadow-dark-tremor-input dark:focus:border-dark-tremor-brand-subtle dark:focus:ring-dark-tremor-brand-muted",v?"pl-10":"pl-3",(0,o.getSelectButtonColors)((0,o.hasValue)(e),g,x))},v&&n.default.createElement("span",{className:(0,i.tremorTwMerge)("absolute inset-y-0 left-0 flex items-center ml-px pl-2.5")},n.default.createElement(v,{className:(0,i.tremorTwMerge)(d("Icon"),"flex-none h-5 w-5","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")})),n.default.createElement("span",{className:"w-[90%] block truncate"},e&&null!=(t=R.get(e))?t:p),n.default.createElement("span",{className:(0,i.tremorTwMerge)("absolute inset-y-0 right-0 flex items-center mr-3")},n.default.createElement(r.default,{className:(0,i.tremorTwMerge)(d("arrowDownIcon"),"flex-none h-5 w-5","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")}))),b&&O?n.default.createElement("button",{type:"button",className:(0,i.tremorTwMerge)("absolute inset-y-0 right-0 flex items-center mr-8"),onClick:e=>{e.preventDefault(),M(""),null==h||h("")}},n.default.createElement(a.default,{className:(0,i.tremorTwMerge)(d("clearIcon"),"flex-none h-4 w-4","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")})):null,n.default.createElement(u.Transition,{enter:"transition ease duration-100 transform",enterFrom:"opacity-0 -translate-y-4",enterTo:"opacity-100 translate-y-0",leave:"transition ease duration-100 transform",leaveFrom:"opacity-100 translate-y-0",leaveTo:"opacity-0 -translate-y-4"},n.default.createElement(l.ListboxOptions,{anchor:"bottom start",className:(0,i.tremorTwMerge)("z-10 w-[var(--button-width)] divide-y overflow-y-auto outline-none rounded-tremor-default max-h-[228px] border [--anchor-gap:4px]","bg-tremor-background border-tremor-border divide-tremor-border shadow-tremor-dropdown","dark:bg-dark-tremor-background dark:border-dark-tremor-border dark:divide-dark-tremor-border dark:shadow-dark-tremor-dropdown")},A)))})),x&&C?n.default.createElement("p",{className:(0,i.tremorTwMerge)("errorMessage","text-sm text-rose-500 mt-1")},C):null)});m.displayName="Select",e.s(["Select",0,m],206929)},502275,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["InformationCircleIcon",0,r],502275)},664307,e=>{"use strict";var t=e.i(843476),r=e.i(135214),n=e.i(214541),a=e.i(271645),i=e.i(161059);e.s(["default",0,()=>{let{token:e,premiumUser:s}=(0,r.default)(),[o,l]=(0,a.useState)([]),{teams:u}=(0,n.default)();return(0,t.jsx)(i.default,{token:e,modelData:{data:[]},keys:o,setModelData:()=>{},premiumUser:s,teams:u})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/10n3-~19sc08i.js b/litellm/proxy/_experimental/out/_next/static/chunks/0bojlij0q3pez.js similarity index 59% rename from litellm/proxy/_experimental/out/_next/static/chunks/10n3-~19sc08i.js rename to litellm/proxy/_experimental/out/_next/static/chunks/0bojlij0q3pez.js index 57485750c35..c911428f288 100644 --- a/litellm/proxy/_experimental/out/_next/static/chunks/10n3-~19sc08i.js +++ b/litellm/proxy/_experimental/out/_next/static/chunks/0bojlij0q3pez.js @@ -1 +1 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,916925,e=>{"use strict";var a,t=((a={}).A2A_Agent="A2A Agent",a.AI21="Ai21",a.AI21_CHAT="Ai21 Chat",a.AIML="AI/ML API",a.AIOHTTP_OPENAI="Aiohttp Openai",a.Anthropic="Anthropic",a.ANTHROPIC_TEXT="Anthropic Text",a.AssemblyAI="AssemblyAI",a.AUTO_ROUTER="Auto Router",a.Bedrock="Amazon Bedrock",a.BedrockMantle="Amazon Bedrock Mantle",a.SageMaker="AWS SageMaker",a.Azure="Azure",a.Azure_AI_Studio="Azure AI Foundry (Studio)",a.AZURE_TEXT="Azure Text",a.BASETEN="Baseten",a.BYTEZ="Bytez",a.Cerebras="Cerebras",a.CLARIFAI="Clarifai",a.CLOUDFLARE="Cloudflare",a.CODESTRAL="Codestral",a.Cohere="Cohere",a.COHERE_CHAT="Cohere Chat",a.COMETAPI="Cometapi",a.COMPACTIFAI="Compactifai",a.Cursor="Cursor",a.Dashscope="Dashscope",a.Databricks="Databricks (Qwen API)",a.DATAROBOT="Datarobot",a.DeepInfra="DeepInfra",a.Deepgram="Deepgram",a.Deepseek="Deepseek",a.DOCKER_MODEL_RUNNER="Docker Model Runner",a.DOTPROMPT="Dotprompt",a.ElevenLabs="ElevenLabs",a.EMPOWER="Empower",a.FalAI="Fal AI",a.FEATHERLESS_AI="Featherless Ai",a.FireworksAI="Fireworks AI",a.FRIENDLIAI="Friendliai",a.GALADRIEL="Galadriel",a.GITHUB_COPILOT="Github Copilot",a.Google_AI_Studio="Google AI Studio",a.GradientAI="GradientAI",a.Groq="Groq",a.HEROKU="Heroku",a.Hosted_Vllm="vllm",a.HUGGINGFACE="Huggingface",a.HYPERBOLIC="Hyperbolic",a.Infinity="Infinity",a.JinaAI="Jina AI",a.LAMBDA_AI="Lambda Ai",a.LEMONADE="Lemonade",a.LLAMAFILE="Llamafile",a.LM_STUDIO="Lm Studio",a.LLAMA="Meta Llama",a.MARITALK="Maritalk",a.MiniMax="MiniMax",a.MistralAI="Mistral AI",a.MOONSHOT="Moonshot",a.MORPH="Morph",a.NEBIUS="Nebius",a.NLP_CLOUD="Nlp Cloud",a.NOVITA="Novita",a.NSCALE="Nscale",a.NVIDIA_NIM="Nvidia Nim",a.Ollama="Ollama",a.OLLAMA_CHAT="Ollama Chat",a.OOBABOOGA="Oobabooga",a.OpenAI="OpenAI",a.OPENAI_LIKE="Openai Like",a.OpenAI_Compatible="OpenAI-Compatible Endpoints (Together AI, etc.)",a.OpenAI_Text="OpenAI Text Completion",a.OpenAI_Text_Compatible="OpenAI-Compatible Text Completion Models (Together AI, etc.)",a.Openrouter="Openrouter",a.Oracle="Oracle Cloud Infrastructure (OCI)",a.OVHCLOUD="Ovhcloud",a.Perplexity="Perplexity",a.PETALS="Petals",a.PG_VECTOR="Pg Vector",a.PREDIBASE="Predibase",a.RECRAFT="Recraft",a.REPLICATE="Replicate",a.RunwayML="RunwayML",a.SAGEMAKER_LEGACY="Sagemaker",a.Sambanova="Sambanova",a.SAP="SAP Generative AI Hub",a.Snowflake="Snowflake",a.TEXT_COMPLETION_CODESTRAL="Text-Completion-Codestral",a.TogetherAI="TogetherAI",a.TOPAZ="Topaz",a.Triton="Triton",a.V0="V0",a.VERCEL_AI_GATEWAY="Vercel Ai Gateway",a.Vertex_AI="Vertex AI (Anthropic, Gemini, etc.)",a.VERTEX_AI_BETA="Vertex Ai Beta",a.VLLM="Vllm",a.VolcEngine="VolcEngine",a.Voyage="Voyage AI",a.WANDB="Wandb",a.WATSONX="Watsonx",a.WATSONX_TEXT="Watsonx Text",a.xAI="xAI",a.XINFERENCE="Xinference",a.ZAI="Z.AI (Zhipu AI)",a);let r={A2A_Agent:"a2a_agent",AI21:"ai21",AI21_CHAT:"ai21_chat",AIML:"aiml",AIOHTTP_OPENAI:"aiohttp_openai",Anthropic:"anthropic",ANTHROPIC_TEXT:"anthropic_text",AssemblyAI:"assemblyai",AUTO_ROUTER:"auto_router",Azure:"azure",Azure_AI_Studio:"azure_ai",AZURE_TEXT:"azure_text",BASETEN:"baseten",Bedrock:"bedrock",BedrockMantle:"bedrock_mantle",BYTEZ:"bytez",Cerebras:"cerebras",CLARIFAI:"clarifai",CLOUDFLARE:"cloudflare",CODESTRAL:"codestral",Cohere:"cohere",COHERE_CHAT:"cohere_chat",COMETAPI:"cometapi",COMPACTIFAI:"compactifai",Cursor:"cursor",Dashscope:"dashscope",Databricks:"databricks",DATAROBOT:"datarobot",DeepInfra:"deepinfra",Deepgram:"deepgram",Deepseek:"deepseek",DOCKER_MODEL_RUNNER:"docker_model_runner",DOTPROMPT:"dotprompt",ElevenLabs:"elevenlabs",EMPOWER:"empower",FalAI:"fal_ai",FEATHERLESS_AI:"featherless_ai",FireworksAI:"fireworks_ai",FRIENDLIAI:"friendliai",GALADRIEL:"galadriel",GITHUB_COPILOT:"github_copilot",Google_AI_Studio:"gemini",GradientAI:"gradient_ai",Groq:"groq",HEROKU:"heroku",Hosted_Vllm:"hosted_vllm",HUGGINGFACE:"huggingface",HYPERBOLIC:"hyperbolic",Infinity:"infinity",JinaAI:"jina_ai",LAMBDA_AI:"lambda_ai",LEMONADE:"lemonade",LLAMAFILE:"llamafile",LLAMA:"meta_llama",LM_STUDIO:"lm_studio",MARITALK:"maritalk",MiniMax:"minimax",MistralAI:"mistral",MOONSHOT:"moonshot",MORPH:"morph",NEBIUS:"nebius",NLP_CLOUD:"nlp_cloud",NOVITA:"novita",NSCALE:"nscale",NVIDIA_NIM:"nvidia_nim",Ollama:"ollama",OLLAMA_CHAT:"ollama_chat",OOBABOOGA:"oobabooga",OpenAI:"openai",OPENAI_LIKE:"openai_like",OpenAI_Compatible:"openai",OpenAI_Text:"text-completion-openai",OpenAI_Text_Compatible:"text-completion-openai",Openrouter:"openrouter",Oracle:"oci",OVHCLOUD:"ovhcloud",Perplexity:"perplexity",PETALS:"petals",PG_VECTOR:"pg_vector",PREDIBASE:"predibase",RECRAFT:"recraft",REPLICATE:"replicate",RunwayML:"runwayml",SAGEMAKER_LEGACY:"sagemaker",SageMaker:"sagemaker_chat",Sambanova:"sambanova",SAP:"sap",Snowflake:"snowflake",TEXT_COMPLETION_CODESTRAL:"text-completion-codestral",TogetherAI:"together_ai",TOPAZ:"topaz",Triton:"triton",V0:"v0",VERCEL_AI_GATEWAY:"vercel_ai_gateway",Vertex_AI:"vertex_ai",VERTEX_AI_BETA:"vertex_ai_beta",VLLM:"vllm",VolcEngine:"volcengine",Voyage:"voyage",WANDB:"wandb",WATSONX:"watsonx",WATSONX_TEXT:"watsonx_text",xAI:"xai",XINFERENCE:"xinference",ZAI:"zai"},o="../ui/assets/logos/",i={"A2A Agent":`${o}a2a_agent.png`,Ai21:`${o}ai21.svg`,"Ai21 Chat":`${o}ai21.svg`,"AI/ML API":`${o}aiml_api.svg`,"Aiohttp Openai":`${o}openai_small.svg`,Anthropic:`${o}anthropic.svg`,"Anthropic Text":`${o}anthropic.svg`,AssemblyAI:`${o}assemblyai_small.png`,Azure:`${o}microsoft_azure.svg`,"Azure AI Foundry (Studio)":`${o}microsoft_azure.svg`,"Azure Text":`${o}microsoft_azure.svg`,Baseten:`${o}baseten.svg`,"Amazon Bedrock":`${o}bedrock.svg`,"Amazon Bedrock Mantle":`${o}bedrock.svg`,"AWS SageMaker":`${o}bedrock.svg`,Cerebras:`${o}cerebras.svg`,Cloudflare:`${o}cloudflare.svg`,Codestral:`${o}mistral.svg`,Cohere:`${o}cohere.svg`,"Cohere Chat":`${o}cohere.svg`,Cometapi:`${o}cometapi.svg`,Cursor:`${o}cursor.svg`,"Databricks (Qwen API)":`${o}databricks.svg`,Dashscope:`${o}dashscope.svg`,Deepseek:`${o}deepseek.svg`,Deepgram:`${o}deepgram.png`,DeepInfra:`${o}deepinfra.png`,ElevenLabs:`${o}elevenlabs.png`,"Fal AI":`${o}fal_ai.jpg`,"Featherless Ai":`${o}featherless.svg`,"Fireworks AI":`${o}fireworks.svg`,Friendliai:`${o}friendli.svg`,"Github Copilot":`${o}github_copilot.svg`,"Google AI Studio":`${o}google.svg`,GradientAI:`${o}gradientai.svg`,Groq:`${o}groq.svg`,vllm:`${o}vllm.png`,Huggingface:`${o}huggingface.svg`,Hyperbolic:`${o}hyperbolic.svg`,Infinity:`${o}infinity.png`,"Jina AI":`${o}jina.png`,"Lambda Ai":`${o}lambda.svg`,"Lm Studio":`${o}lmstudio.svg`,"Meta Llama":`${o}meta_llama.svg`,MiniMax:`${o}minimax.svg`,"Mistral AI":`${o}mistral.svg`,Moonshot:`${o}moonshot.svg`,Morph:`${o}morph.svg`,Nebius:`${o}nebius.svg`,Novita:`${o}novita.svg`,"Nvidia Nim":`${o}nvidia_nim.svg`,Ollama:`${o}ollama.svg`,"Ollama Chat":`${o}ollama.svg`,Oobabooga:`${o}openai_small.svg`,OpenAI:`${o}openai_small.svg`,"Openai Like":`${o}openai_small.svg`,"OpenAI Text Completion":`${o}openai_small.svg`,"OpenAI-Compatible Text Completion Models (Together AI, etc.)":`${o}openai_small.svg`,"OpenAI-Compatible Endpoints (Together AI, etc.)":`${o}openai_small.svg`,Openrouter:`${o}openrouter.svg`,"Oracle Cloud Infrastructure (OCI)":`${o}oracle.svg`,Perplexity:`${o}perplexity-ai.svg`,Recraft:`${o}recraft.svg`,Replicate:`${o}replicate.svg`,RunwayML:`${o}runwayml.png`,Sagemaker:`${o}bedrock.svg`,Sambanova:`${o}sambanova.svg`,"SAP Generative AI Hub":`${o}sap.png`,Snowflake:`${o}snowflake.svg`,"Text-Completion-Codestral":`${o}mistral.svg`,TogetherAI:`${o}togetherai.svg`,Topaz:`${o}topaz.svg`,Triton:`${o}nvidia_triton.png`,V0:`${o}v0.svg`,"Vercel Ai Gateway":`${o}vercel.svg`,"Vertex AI (Anthropic, Gemini, etc.)":`${o}google.svg`,"Vertex Ai Beta":`${o}google.svg`,Vllm:`${o}vllm.png`,VolcEngine:`${o}volcengine.png`,"Voyage AI":`${o}voyage.webp`,Watsonx:`${o}watsonx.svg`,"Watsonx Text":`${o}watsonx.svg`,xAI:`${o}xai.svg`,Xinference:`${o}xinference.svg`};e.s(["Providers",()=>t,"getPlaceholder",0,e=>{if("AI/ML API"===e)return"aiml/flux-pro/v1.1";if("Vertex AI (Anthropic, Gemini, etc.)"===e)return"gemini-pro";if("Anthropic"==e)return"claude-3-opus";if("Amazon Bedrock"==e)return"claude-3-opus";if("AWS SageMaker"==e)return"sagemaker/jumpstart-dft-meta-textgeneration-llama-2-7b";else if("Google AI Studio"==e)return"gemini-pro";else if("Azure AI Foundry (Studio)"==e)return"azure_ai/command-r-plus";else if("Azure"==e)return"my-deployment";else if("Oracle Cloud Infrastructure (OCI)"==e)return"oci/xai.grok-4";else if("Snowflake"==e)return"snowflake/mistral-7b";else if("Voyage AI"==e)return"voyage/";else if("Jina AI"==e)return"jina_ai/";else if("VolcEngine"==e)return"volcengine/";else if("DeepInfra"==e)return"deepinfra/";else if("Fal AI"==e)return"fal_ai/fal-ai/flux-pro/v1.1-ultra";else if("RunwayML"==e)return"runwayml/gen4_turbo";else if("Watsonx"===e)return"watsonx/ibm/granite-3-3-8b-instruct";else if("Cursor"===e)return"cursor/claude-4-sonnet";else if("Z.AI (Zhipu AI)"===e)return"zai/glm-4.5";else return"gpt-3.5-turbo"},"getProviderLogoAndName",0,e=>{if(!e)return{logo:"",displayName:"-"};if("gemini"===e.toLowerCase()){let e="Google AI Studio";return{logo:i[e],displayName:e}}let a=Object.keys(r).find(a=>r[a].toLowerCase()===e.toLowerCase());if(!a)return{logo:"",displayName:e};let o=t[a];return{logo:i[o],displayName:o}},"getProviderModels",0,(e,a)=>{console.log(`Provider key: ${e}`);let t=r[e];console.log(`Provider mapped to: ${t}`);let o=[];return e&&"object"==typeof a&&(Object.entries(a).forEach(([e,a])=>{if(null!==a&&"object"==typeof a&&"litellm_provider"in a){let r=a.litellm_provider;(r===t||"string"==typeof r&&r.includes(t))&&o.push(e)}}),"Cohere"==e&&(console.log("Adding cohere chat models"),Object.entries(a).forEach(([e,a])=>{null!==a&&"object"==typeof a&&"litellm_provider"in a&&"cohere_chat"===a.litellm_provider&&o.push(e)})),"AWS SageMaker"==e&&(console.log("Adding sagemaker chat models"),Object.entries(a).forEach(([e,a])=>{null!==a&&"object"==typeof a&&"litellm_provider"in a&&"sagemaker_chat"===a.litellm_provider&&o.push(e)}))),o},"providerLogoMap",0,i,"provider_map",0,r])},596239,e=>{"use strict";e.i(247167);var a=e.i(931067),t=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"}}]},name:"link",theme:"outlined"};var o=e.i(9583),i=t.forwardRef(function(e,i){return t.createElement(o.default,(0,a.default)({},e,{ref:i,icon:r}))});e.s(["LinkOutlined",0,i],596239)},928685,e=>{"use strict";var a=e.i(38953);e.s(["SearchOutlined",()=>a.default])},44121,186515,e=>{"use strict";e.i(247167);var a=e.i(931067),t=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 000 13.8z"}}]},name:"menu-fold",theme:"outlined"};var o=e.i(9583),i=t.forwardRef(function(e,i){return t.createElement(o.default,(0,a.default)({},e,{ref:i,icon:r}))});e.s(["MenuFoldOutlined",0,i],44121);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 000-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0014.4 7z"}}]},name:"menu-unfold",theme:"outlined"};var l=t.forwardRef(function(e,r){return t.createElement(o.default,(0,a.default)({},e,{ref:r,icon:n}))});e.s(["MenuUnfoldOutlined",0,l],186515)},477189,e=>{"use strict";e.i(247167);var a=e.i(931067),t=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z"}}]},name:"appstore",theme:"outlined"};var o=e.i(9583),i=t.forwardRef(function(e,i){return t.createElement(o.default,(0,a.default)({},e,{ref:i,icon:r}))});e.s(["AppstoreOutlined",0,i],477189)},292335,122520,165615,e=>{"use strict";let a={NONE:"none",API_KEY:"api_key",BEARER_TOKEN:"bearer_token",TOKEN:"token",BASIC:"basic",OAUTH2:"oauth2",AWS_SIGV4:"aws_sigv4"},t={SSE:"sse",HTTP:"http",STDIO:"stdio",OPENAPI:"openapi"};e.s(["AUTH_TYPE",0,a,"OAUTH_FLOW",0,{INTERACTIVE:"interactive",M2M:"m2m"},"TRANSPORT",0,t,"handleAuth",0,e=>null==e?a.NONE:e,"handleTransport",0,(e,a)=>null==e?t.SSE:a&&e!==t.STDIO?t.OPENAPI:e],292335),e.s(["extractErrorMessage",0,function(e){if(e instanceof Error)return e.message;if(e&&"object"==typeof e){let a=e.detail;return"string"==typeof a?a:Array.isArray(a)?a.map(e=>e&&"object"==typeof e?"string"==typeof e.msg?e.msg:JSON.stringify(e):String(e)).join("; "):a&&"object"==typeof a&&"string"==typeof a.error?a.error:"string"==typeof e.message?e.message:JSON.stringify(e)}return String(e)}],122520);let r=e=>{let a=new Uint8Array(e),t="";return a.forEach(e=>t+=String.fromCharCode(e)),btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")},o=async e=>{let a=new TextEncoder().encode(e);return r(await window.crypto.subtle.digest("SHA-256",a))};e.s(["generateCodeChallenge",0,o,"generateCodeVerifier",0,()=>{let e=new Uint8Array(32);return window.crypto.getRandomValues(e),r(e.buffer)}],165615)},264843,e=>{"use strict";e.i(247167);var a=e.i(931067),t=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"}}]},name:"message",theme:"outlined"};var o=e.i(9583),i=t.forwardRef(function(e,i){return t.createElement(o.default,(0,a.default)({},e,{ref:i,icon:r}))});e.s(["MessageOutlined",0,i],264843)}]); \ No newline at end of file +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,916925,e=>{"use strict";var a,t=((a={}).A2A_Agent="A2A Agent",a.AI21="Ai21",a.AI21_CHAT="Ai21 Chat",a.AIML="AI/ML API",a.AIOHTTP_OPENAI="Aiohttp Openai",a.Anthropic="Anthropic",a.ANTHROPIC_TEXT="Anthropic Text",a.AssemblyAI="AssemblyAI",a.AUTO_ROUTER="Auto Router",a.Bedrock="Amazon Bedrock",a.BedrockMantle="Amazon Bedrock Mantle",a.SageMaker="AWS SageMaker",a.Azure="Azure",a.Azure_AI_Studio="Azure AI Foundry (Studio)",a.AZURE_TEXT="Azure Text",a.BASETEN="Baseten",a.BYTEZ="Bytez",a.Cerebras="Cerebras",a.CLARIFAI="Clarifai",a.CLOUDFLARE="Cloudflare",a.CODESTRAL="Codestral",a.Cohere="Cohere",a.COHERE_CHAT="Cohere Chat",a.COMETAPI="Cometapi",a.COMPACTIFAI="Compactifai",a.Cursor="Cursor",a.Dashscope="Dashscope",a.Databricks="Databricks (Qwen API)",a.DATAROBOT="Datarobot",a.DeepInfra="DeepInfra",a.Deepgram="Deepgram",a.Deepseek="Deepseek",a.DOCKER_MODEL_RUNNER="Docker Model Runner",a.DOTPROMPT="Dotprompt",a.ElevenLabs="ElevenLabs",a.EMPOWER="Empower",a.FalAI="Fal AI",a.FEATHERLESS_AI="Featherless Ai",a.FireworksAI="Fireworks AI",a.FRIENDLIAI="Friendliai",a.GALADRIEL="Galadriel",a.GITHUB_COPILOT="Github Copilot",a.Google_AI_Studio="Google AI Studio",a.GradientAI="GradientAI",a.Groq="Groq",a.HEROKU="Heroku",a.Hosted_Vllm="vllm",a.HUGGINGFACE="Huggingface",a.HYPERBOLIC="Hyperbolic",a.Infinity="Infinity",a.JinaAI="Jina AI",a.LAMBDA_AI="Lambda Ai",a.LEMONADE="Lemonade",a.LLAMAFILE="Llamafile",a.LM_STUDIO="Lm Studio",a.LLAMA="Meta Llama",a.MARITALK="Maritalk",a.MiniMax="MiniMax",a.MistralAI="Mistral AI",a.MOONSHOT="Moonshot",a.MORPH="Morph",a.NEBIUS="Nebius",a.NLP_CLOUD="Nlp Cloud",a.NOVITA="Novita",a.NSCALE="Nscale",a.NVIDIA_NIM="Nvidia Nim",a.Ollama="Ollama",a.OLLAMA_CHAT="Ollama Chat",a.OOBABOOGA="Oobabooga",a.OpenAI="OpenAI",a.OPENAI_LIKE="Openai Like",a.OpenAI_Compatible="OpenAI-Compatible Endpoints (Together AI, etc.)",a.OpenAI_Text="OpenAI Text Completion",a.OpenAI_Text_Compatible="OpenAI-Compatible Text Completion Models (Together AI, etc.)",a.Openrouter="Openrouter",a.Oracle="Oracle Cloud Infrastructure (OCI)",a.OVHCLOUD="Ovhcloud",a.Perplexity="Perplexity",a.PETALS="Petals",a.PG_VECTOR="Pg Vector",a.PREDIBASE="Predibase",a.RECRAFT="Recraft",a.REPLICATE="Replicate",a.RunwayML="RunwayML",a.SAGEMAKER_LEGACY="Sagemaker",a.Sambanova="Sambanova",a.SAP="SAP Generative AI Hub",a.Snowflake="Snowflake",a.TEXT_COMPLETION_CODESTRAL="Text-Completion-Codestral",a.TogetherAI="TogetherAI",a.TOPAZ="Topaz",a.Triton="Triton",a.V0="V0",a.VERCEL_AI_GATEWAY="Vercel Ai Gateway",a.Vertex_AI="Vertex AI (Anthropic, Gemini, etc.)",a.VERTEX_AI_BETA="Vertex Ai Beta",a.VLLM="Vllm",a.VolcEngine="VolcEngine",a.Voyage="Voyage AI",a.WANDB="Wandb",a.WATSONX="Watsonx",a.WATSONX_TEXT="Watsonx Text",a.xAI="xAI",a.XINFERENCE="Xinference",a.ZAI="Z.AI (Zhipu AI)",a);let r={A2A_Agent:"a2a_agent",AI21:"ai21",AI21_CHAT:"ai21_chat",AIML:"aiml",AIOHTTP_OPENAI:"aiohttp_openai",Anthropic:"anthropic",ANTHROPIC_TEXT:"anthropic_text",AssemblyAI:"assemblyai",AUTO_ROUTER:"auto_router",Azure:"azure",Azure_AI_Studio:"azure_ai",AZURE_TEXT:"azure_text",BASETEN:"baseten",Bedrock:"bedrock",BedrockMantle:"bedrock_mantle",BYTEZ:"bytez",Cerebras:"cerebras",CLARIFAI:"clarifai",CLOUDFLARE:"cloudflare",CODESTRAL:"codestral",Cohere:"cohere",COHERE_CHAT:"cohere_chat",COMETAPI:"cometapi",COMPACTIFAI:"compactifai",Cursor:"cursor",Dashscope:"dashscope",Databricks:"databricks",DATAROBOT:"datarobot",DeepInfra:"deepinfra",Deepgram:"deepgram",Deepseek:"deepseek",DOCKER_MODEL_RUNNER:"docker_model_runner",DOTPROMPT:"dotprompt",ElevenLabs:"elevenlabs",EMPOWER:"empower",FalAI:"fal_ai",FEATHERLESS_AI:"featherless_ai",FireworksAI:"fireworks_ai",FRIENDLIAI:"friendliai",GALADRIEL:"galadriel",GITHUB_COPILOT:"github_copilot",Google_AI_Studio:"gemini",GradientAI:"gradient_ai",Groq:"groq",HEROKU:"heroku",Hosted_Vllm:"hosted_vllm",HUGGINGFACE:"huggingface",HYPERBOLIC:"hyperbolic",Infinity:"infinity",JinaAI:"jina_ai",LAMBDA_AI:"lambda_ai",LEMONADE:"lemonade",LLAMAFILE:"llamafile",LLAMA:"meta_llama",LM_STUDIO:"lm_studio",MARITALK:"maritalk",MiniMax:"minimax",MistralAI:"mistral",MOONSHOT:"moonshot",MORPH:"morph",NEBIUS:"nebius",NLP_CLOUD:"nlp_cloud",NOVITA:"novita",NSCALE:"nscale",NVIDIA_NIM:"nvidia_nim",Ollama:"ollama",OLLAMA_CHAT:"ollama_chat",OOBABOOGA:"oobabooga",OpenAI:"openai",OPENAI_LIKE:"openai_like",OpenAI_Compatible:"openai",OpenAI_Text:"text-completion-openai",OpenAI_Text_Compatible:"text-completion-openai",Openrouter:"openrouter",Oracle:"oci",OVHCLOUD:"ovhcloud",Perplexity:"perplexity",PETALS:"petals",PG_VECTOR:"pg_vector",PREDIBASE:"predibase",RECRAFT:"recraft",REPLICATE:"replicate",RunwayML:"runwayml",SAGEMAKER_LEGACY:"sagemaker",SageMaker:"sagemaker_chat",Sambanova:"sambanova",SAP:"sap",Snowflake:"snowflake",TEXT_COMPLETION_CODESTRAL:"text-completion-codestral",TogetherAI:"together_ai",TOPAZ:"topaz",Triton:"triton",V0:"v0",VERCEL_AI_GATEWAY:"vercel_ai_gateway",Vertex_AI:"vertex_ai",VERTEX_AI_BETA:"vertex_ai_beta",VLLM:"vllm",VolcEngine:"volcengine",Voyage:"voyage",WANDB:"wandb",WATSONX:"watsonx",WATSONX_TEXT:"watsonx_text",xAI:"xai",XINFERENCE:"xinference",ZAI:"zai"},o="../ui/assets/logos/",i={"A2A Agent":`${o}a2a_agent.png`,Ai21:`${o}ai21.svg`,"Ai21 Chat":`${o}ai21.svg`,"AI/ML API":`${o}aiml_api.svg`,"Aiohttp Openai":`${o}openai_small.svg`,Anthropic:`${o}anthropic.svg`,"Anthropic Text":`${o}anthropic.svg`,AssemblyAI:`${o}assemblyai_small.png`,Azure:`${o}microsoft_azure.svg`,"Azure AI Foundry (Studio)":`${o}microsoft_azure.svg`,"Azure Text":`${o}microsoft_azure.svg`,Baseten:`${o}baseten.svg`,"Amazon Bedrock":`${o}bedrock.svg`,"Amazon Bedrock Mantle":`${o}bedrock.svg`,"AWS SageMaker":`${o}bedrock.svg`,Cerebras:`${o}cerebras.svg`,Cloudflare:`${o}cloudflare.svg`,Codestral:`${o}mistral.svg`,Cohere:`${o}cohere.svg`,"Cohere Chat":`${o}cohere.svg`,Cometapi:`${o}cometapi.svg`,Cursor:`${o}cursor.svg`,"Databricks (Qwen API)":`${o}databricks.svg`,Dashscope:`${o}dashscope.svg`,Deepseek:`${o}deepseek.svg`,Deepgram:`${o}deepgram.png`,DeepInfra:`${o}deepinfra.png`,ElevenLabs:`${o}elevenlabs.png`,"Fal AI":`${o}fal_ai.jpg`,"Featherless Ai":`${o}featherless.svg`,"Fireworks AI":`${o}fireworks.svg`,Friendliai:`${o}friendli.svg`,"Github Copilot":`${o}github_copilot.svg`,"Google AI Studio":`${o}google.svg`,GradientAI:`${o}gradientai.svg`,Groq:`${o}groq.svg`,vllm:`${o}vllm.png`,Huggingface:`${o}huggingface.svg`,Hyperbolic:`${o}hyperbolic.svg`,Infinity:`${o}infinity.png`,"Jina AI":`${o}jina.png`,"Lambda Ai":`${o}lambda.svg`,"Lm Studio":`${o}lmstudio.svg`,"Meta Llama":`${o}meta_llama.svg`,MiniMax:`${o}minimax.svg`,"Mistral AI":`${o}mistral.svg`,Moonshot:`${o}moonshot.svg`,Morph:`${o}morph.svg`,Nebius:`${o}nebius.svg`,Novita:`${o}novita.svg`,"Nvidia Nim":`${o}nvidia_nim.svg`,Ollama:`${o}ollama.svg`,"Ollama Chat":`${o}ollama.svg`,Oobabooga:`${o}openai_small.svg`,OpenAI:`${o}openai_small.svg`,"Openai Like":`${o}openai_small.svg`,"OpenAI Text Completion":`${o}openai_small.svg`,"OpenAI-Compatible Text Completion Models (Together AI, etc.)":`${o}openai_small.svg`,"OpenAI-Compatible Endpoints (Together AI, etc.)":`${o}openai_small.svg`,Openrouter:`${o}openrouter.svg`,"Oracle Cloud Infrastructure (OCI)":`${o}oracle.svg`,Perplexity:`${o}perplexity-ai.svg`,Recraft:`${o}recraft.svg`,Replicate:`${o}replicate.svg`,RunwayML:`${o}runwayml.png`,Sagemaker:`${o}bedrock.svg`,Sambanova:`${o}sambanova.svg`,"SAP Generative AI Hub":`${o}sap.png`,Snowflake:`${o}snowflake.svg`,"Text-Completion-Codestral":`${o}mistral.svg`,TogetherAI:`${o}togetherai.svg`,Topaz:`${o}topaz.svg`,Triton:`${o}nvidia_triton.png`,V0:`${o}v0.svg`,"Vercel Ai Gateway":`${o}vercel.svg`,"Vertex AI (Anthropic, Gemini, etc.)":`${o}google.svg`,"Vertex Ai Beta":`${o}google.svg`,Vllm:`${o}vllm.png`,VolcEngine:`${o}volcengine.png`,"Voyage AI":`${o}voyage.webp`,Watsonx:`${o}watsonx.svg`,"Watsonx Text":`${o}watsonx.svg`,xAI:`${o}xai.svg`,Xinference:`${o}xinference.svg`};e.s(["Providers",()=>t,"getPlaceholder",0,e=>{if("AI/ML API"===e)return"aiml/flux-pro/v1.1";if("Vertex AI (Anthropic, Gemini, etc.)"===e)return"gemini-pro";if("Anthropic"==e)return"claude-3-opus";if("Amazon Bedrock"==e)return"claude-3-opus";if("AWS SageMaker"==e)return"sagemaker/jumpstart-dft-meta-textgeneration-llama-2-7b";else if("Google AI Studio"==e)return"gemini-pro";else if("Azure AI Foundry (Studio)"==e)return"azure_ai/command-r-plus";else if("Azure"==e)return"my-deployment";else if("Oracle Cloud Infrastructure (OCI)"==e)return"oci/xai.grok-4";else if("Snowflake"==e)return"snowflake/mistral-7b";else if("Voyage AI"==e)return"voyage/";else if("Jina AI"==e)return"jina_ai/";else if("VolcEngine"==e)return"volcengine/";else if("DeepInfra"==e)return"deepinfra/";else if("Fal AI"==e)return"fal_ai/fal-ai/flux-pro/v1.1-ultra";else if("RunwayML"==e)return"runwayml/gen4_turbo";else if("Watsonx"===e)return"watsonx/ibm/granite-3-3-8b-instruct";else if("Cursor"===e)return"cursor/claude-4-sonnet";else if("Z.AI (Zhipu AI)"===e)return"zai/glm-4.5";else return"gpt-3.5-turbo"},"getProviderLogoAndName",0,e=>{if(!e)return{logo:"",displayName:"-"};if("gemini"===e.toLowerCase()){let e="Google AI Studio";return{logo:i[e],displayName:e}}let a=Object.keys(r).find(a=>r[a].toLowerCase()===e.toLowerCase());if(!a)return{logo:"",displayName:e};let o=t[a];return{logo:i[o],displayName:o}},"getProviderModels",0,(e,a)=>{console.log(`Provider key: ${e}`);let t=r[e];console.log(`Provider mapped to: ${t}`);let o=[];return e&&"object"==typeof a&&(Object.entries(a).forEach(([e,a])=>{if(null!==a&&"object"==typeof a&&"litellm_provider"in a){let r=a.litellm_provider;(r===t||"string"==typeof r&&(r.startsWith(`${t}_`)||r.startsWith(`${t}-`)))&&o.push(e)}}),"Cohere"==e&&(console.log("Adding cohere chat models"),Object.entries(a).forEach(([e,a])=>{null!==a&&"object"==typeof a&&"litellm_provider"in a&&"cohere_chat"===a.litellm_provider&&o.push(e)})),"AWS SageMaker"==e&&(console.log("Adding sagemaker chat models"),Object.entries(a).forEach(([e,a])=>{null!==a&&"object"==typeof a&&"litellm_provider"in a&&"sagemaker_chat"===a.litellm_provider&&o.push(e)}))),o},"providerLogoMap",0,i,"provider_map",0,r])},596239,e=>{"use strict";e.i(247167);var a=e.i(931067),t=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"}}]},name:"link",theme:"outlined"};var o=e.i(9583),i=t.forwardRef(function(e,i){return t.createElement(o.default,(0,a.default)({},e,{ref:i,icon:r}))});e.s(["LinkOutlined",0,i],596239)},928685,e=>{"use strict";var a=e.i(38953);e.s(["SearchOutlined",()=>a.default])},44121,186515,e=>{"use strict";e.i(247167);var a=e.i(931067),t=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 000 13.8z"}}]},name:"menu-fold",theme:"outlined"};var o=e.i(9583),i=t.forwardRef(function(e,i){return t.createElement(o.default,(0,a.default)({},e,{ref:i,icon:r}))});e.s(["MenuFoldOutlined",0,i],44121);let n={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 000-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0014.4 7z"}}]},name:"menu-unfold",theme:"outlined"};var l=t.forwardRef(function(e,r){return t.createElement(o.default,(0,a.default)({},e,{ref:r,icon:n}))});e.s(["MenuUnfoldOutlined",0,l],186515)},477189,e=>{"use strict";e.i(247167);var a=e.i(931067),t=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z"}}]},name:"appstore",theme:"outlined"};var o=e.i(9583),i=t.forwardRef(function(e,i){return t.createElement(o.default,(0,a.default)({},e,{ref:i,icon:r}))});e.s(["AppstoreOutlined",0,i],477189)},264843,e=>{"use strict";e.i(247167);var a=e.i(931067),t=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"}}]},name:"message",theme:"outlined"};var o=e.i(9583),i=t.forwardRef(function(e,i){return t.createElement(o.default,(0,a.default)({},e,{ref:i,icon:r}))});e.s(["MessageOutlined",0,i],264843)},292335,122520,165615,779129,e=>{"use strict";let a={NONE:"none",API_KEY:"api_key",BEARER_TOKEN:"bearer_token",TOKEN:"token",BASIC:"basic",OAUTH2:"oauth2",AWS_SIGV4:"aws_sigv4"},t={SSE:"sse",HTTP:"http",STDIO:"stdio",OPENAPI:"openapi"};e.s(["AUTH_TYPE",0,a,"OAUTH_FLOW",0,{INTERACTIVE:"interactive",M2M:"m2m"},"TRANSPORT",0,t,"handleAuth",0,e=>null==e?a.NONE:e,"handleTransport",0,(e,a)=>null==e?t.SSE:a&&e!==t.STDIO?t.OPENAPI:e],292335),e.s(["extractErrorMessage",0,function(e){if(e instanceof Error)return e.message;if(e&&"object"==typeof e){let a=e.detail;return"string"==typeof a?a:Array.isArray(a)?a.map(e=>e&&"object"==typeof e?"string"==typeof e.msg?e.msg:JSON.stringify(e):String(e)).join("; "):a&&"object"==typeof a&&"string"==typeof a.error?a.error:"string"==typeof e.message?e.message:JSON.stringify(e)}return String(e)}],122520);let r=e=>{let a=new Uint8Array(e),t="";return a.forEach(e=>t+=String.fromCharCode(e)),btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")},o=async e=>{let a=new TextEncoder().encode(e);return r(await window.crypto.subtle.digest("SHA-256",a))};e.s(["generateCodeChallenge",0,o,"generateCodeVerifier",0,()=>{let e=new Uint8Array(32);return window.crypto.getRandomValues(e),r(e.buffer)}],165615),e.i(764205),e.s(["buildCallbackUrl",0,()=>{{let e=window.location.pathname||"",a=e.indexOf("/ui"),t=a>=0?e.slice(0,a+3).replace(/\/+$/,""):"";return`${window.location.origin}${t}/mcp/oauth/callback`}},"clearStorage",0,(...e)=>{e.forEach(e=>{try{window.sessionStorage.removeItem(e)}catch(e){}})}],779129)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0fns6vsccj10h.js b/litellm/proxy/_experimental/out/_next/static/chunks/0c.egkkrwi~pa.js similarity index 94% rename from litellm/proxy/_experimental/out/_next/static/chunks/0fns6vsccj10h.js rename to litellm/proxy/_experimental/out/_next/static/chunks/0c.egkkrwi~pa.js index 9763b0fd3bf..22af1e2bce4 100644 --- a/litellm/proxy/_experimental/out/_next/static/chunks/0fns6vsccj10h.js +++ b/litellm/proxy/_experimental/out/_next/static/chunks/0c.egkkrwi~pa.js @@ -1 +1 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,973706,e=>{"use strict";var t=e.i(843476),s=e.i(72713),a=e.i(637235),r=e.i(994388),l=e.i(599724),i=e.i(166540),n=e.i(271645);let o=[{label:"Today",shortLabel:"today",getValue:()=>({from:(0,i.default)().startOf("day").toDate(),to:(0,i.default)().endOf("day").toDate()})},{label:"Last 7 days",shortLabel:"7d",getValue:()=>({from:(0,i.default)().subtract(7,"days").startOf("day").toDate(),to:(0,i.default)().endOf("day").toDate()})},{label:"Last 30 days",shortLabel:"30d",getValue:()=>({from:(0,i.default)().subtract(30,"days").startOf("day").toDate(),to:(0,i.default)().endOf("day").toDate()})},{label:"Month to date",shortLabel:"MTD",getValue:()=>({from:(0,i.default)().startOf("month").toDate(),to:(0,i.default)().endOf("day").toDate()})},{label:"Year to date",shortLabel:"YTD",getValue:()=>({from:(0,i.default)().startOf("year").toDate(),to:(0,i.default)().endOf("day").toDate()})}];e.s(["default",0,({value:e,onValueChange:c,label:d="Select Time Range",showTimeRange:u=!0})=>{let[m,x]=(0,n.useState)(!1),[h,p]=(0,n.useState)(e),[g,f]=(0,n.useState)(null),[j,_]=(0,n.useState)(""),[y,b]=(0,n.useState)(""),k=(0,n.useRef)(null),v=(0,n.useCallback)(e=>{if(!e.from||!e.to)return null;for(let t of o){let s=t.getValue(),a=(0,i.default)(e.from).isSame((0,i.default)(s.from),"day"),r=(0,i.default)(e.to).isSame((0,i.default)(s.to),"day");if(a&&r)return t.shortLabel}return null},[]);(0,n.useEffect)(()=>{f(v(e))},[e,v]);let N=(0,n.useCallback)(()=>{if(!j||!y)return{isValid:!0,error:""};let e=(0,i.default)(j,"YYYY-MM-DD"),t=(0,i.default)(y,"YYYY-MM-DD");return e.isValid()&&t.isValid()?t.isBefore(e)?{isValid:!1,error:"End date cannot be before start date"}:{isValid:!0,error:""}:{isValid:!1,error:"Invalid date format"}},[j,y])();(0,n.useEffect)(()=>{e.from&&_((0,i.default)(e.from).format("YYYY-MM-DD")),e.to&&b((0,i.default)(e.to).format("YYYY-MM-DD")),p(e)},[e]),(0,n.useEffect)(()=>{let e=e=>{k.current&&!k.current.contains(e.target)&&x(!1)};return m&&document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[m]);let T=(0,n.useCallback)((e,t)=>{if(!e||!t)return"Select date range";let s=e=>(0,i.default)(e).format("D MMM, HH:mm");return`${s(e)} - ${s(t)}`},[]),C=(0,n.useCallback)(e=>{let t;if(!e.from)return e;let s={...e},a=new Date(e.from);return t=new Date(e.to?e.to:e.from),a.toDateString()===t.toDateString(),a.setHours(0,0,0,0),t.setHours(23,59,59,999),s.from=a,s.to=t,s},[]),w=(0,n.useCallback)(()=>{try{if(j&&y&&N.isValid){let e=(0,i.default)(j,"YYYY-MM-DD").startOf("day"),t=(0,i.default)(y,"YYYY-MM-DD").endOf("day");if(e.isValid()&&t.isValid()){let s={from:e.toDate(),to:t.toDate()};p(s);let a=v(s);f(a)}}}catch(e){console.warn("Invalid date format:",e)}},[j,y,N.isValid,v]);return(0,n.useEffect)(()=>{w()},[w]),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[d&&(0,t.jsx)(l.Text,{className:"text-sm font-medium text-gray-700 whitespace-nowrap",children:d}),(0,t.jsxs)("div",{className:"relative",ref:k,children:[(0,t.jsx)("div",{className:"w-[300px] px-3 py-2 text-sm border border-gray-300 rounded-md bg-white cursor-pointer hover:border-gray-400 focus:border-blue-500 focus:ring-1 focus:ring-blue-500",onClick:()=>x(!m),children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(a.ClockCircleOutlined,{className:"text-gray-600"}),(0,t.jsx)("span",{className:"text-gray-900",children:T(e.from,e.to)})]}),(0,t.jsx)("svg",{className:`w-4 h-4 text-gray-400 transition-transform ${m?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})}),m&&(0,t.jsx)("div",{className:"absolute top-full right-0 z-[9999] min-w-[600px] mt-1 bg-white border border-gray-200 rounded-lg shadow-xl",children:(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsxs)("div",{className:"w-1/2 border-r border-gray-200",children:[(0,t.jsx)("div",{className:"p-3 border-b border-gray-200",children:(0,t.jsx)("span",{className:"text-sm font-semibold text-gray-900",children:"Relative time"})}),(0,t.jsx)("div",{className:"h-[350px] overflow-y-auto",children:o.map(e=>{let s=g===e.shortLabel;return(0,t.jsxs)("div",{className:`flex items-center justify-between px-5 py-4 cursor-pointer border-b border-gray-100 transition-colors ${s?"bg-blue-50 hover:bg-blue-100 border-blue-200":"hover:bg-gray-50"}`,onClick:()=>(e=>{let{from:t,to:s}=e.getValue();p({from:t,to:s}),f(e.shortLabel),_((0,i.default)(t).format("YYYY-MM-DD")),b((0,i.default)(s).format("YYYY-MM-DD"))})(e),children:[(0,t.jsx)("span",{className:`text-sm ${s?"text-blue-700 font-medium":"text-gray-700"}`,children:e.label}),(0,t.jsx)("span",{className:`text-xs px-2 py-1 rounded capitalize ${s?"text-blue-700 bg-blue-100":"text-gray-500 bg-gray-100"}`,children:e.shortLabel})]},e.label)})})]}),(0,t.jsxs)("div",{className:"w-1/2 relative",children:[(0,t.jsx)("div",{className:"p-3.5 border-b border-gray-200",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(s.CalendarOutlined,{className:"text-gray-600"}),(0,t.jsx)("span",{className:"text-sm font-semibold text-gray-900",children:"Start and end dates"})]})}),(0,t.jsxs)("div",{className:"p-6 space-y-6 pb-20",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm text-gray-700 mb-1 block",children:"Start date"}),(0,t.jsx)("input",{type:"date",value:j,onChange:e=>_(e.target.value),className:`w-65 px-3 py-2 text-sm border rounded-md cursor-pointer hover:border-gray-400 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 ${!N.isValid?"border-red-300 focus:border-red-500 focus:ring-red-200":"border-gray-300"}`})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm text-gray-700 mb-1 block",children:"End date"}),(0,t.jsx)("input",{type:"date",value:y,onChange:e=>b(e.target.value),className:`w-65 px-3 py-2 text-sm border rounded-md cursor-pointer hover:border-gray-400 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 ${!N.isValid?"border-red-300 focus:border-red-500 focus:ring-red-200":"border-gray-300"}`})]}),!N.isValid&&N.error&&(0,t.jsx)("div",{className:"bg-red-50 border border-red-200 rounded-md p-3",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("svg",{className:"w-4 h-4 text-red-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z"})}),(0,t.jsx)("span",{className:"text-sm text-red-700 font-medium",children:N.error})]})}),h.from&&h.to&&N.isValid&&(0,t.jsxs)("div",{className:"bg-blue-50 p-3 rounded-md space-y-1",children:[(0,t.jsxs)("div",{className:"text-xs text-blue-800",children:[(0,t.jsx)("span",{className:"font-medium",children:"From:"})," ",(0,i.default)(h.from).format("MMM D, YYYY [at] HH:mm:ss")]}),(0,t.jsxs)("div",{className:"text-xs text-blue-800",children:[(0,t.jsx)("span",{className:"font-medium",children:"To:"})," ",(0,i.default)(h.to).format("MMM D, YYYY [at] HH:mm:ss")]})]})]}),(0,t.jsx)("div",{className:"absolute bottom-4 right-4",children:(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(r.Button,{variant:"secondary",onClick:()=>{p(e),e.from&&_((0,i.default)(e.from).format("YYYY-MM-DD")),e.to&&b((0,i.default)(e.to).format("YYYY-MM-DD")),f(v(e)),x(!1)},children:"Cancel"}),(0,t.jsx)(r.Button,{onClick:()=>{h.from&&h.to&&N.isValid&&(c(h),requestIdleCallback(()=>{c(C(h))},{timeout:100}),x(!1))},disabled:!h.from||!h.to||!N.isValid,children:"Apply"})]})})]})]})})]})]})}])},289793,952840,617885,286718,23371,487147,498610,785952,193523,260573,e=>{"use strict";var t=e.i(764205),s=e.i(266027),a=e.i(243652),r=e.i(708347),l=e.i(135214);let i=(0,a.createQueryKeys)("agents");e.s(["useAgents",0,()=>{let{accessToken:e,userRole:a}=(0,l.default)();return(0,s.useQuery)({queryKey:i.list({}),queryFn:async()=>await (0,t.getAgentsList)(e),enabled:!!e&&r.all_admin_roles.includes(a||"")})}],289793);let n=(0,a.createQueryKeys)("customers");e.s(["useCustomers",0,()=>{let{accessToken:e,userRole:a}=(0,l.default)();return(0,s.useQuery)({queryKey:n.list({}),queryFn:async()=>await (0,t.allEndUsersCall)(e),enabled:!!e&&r.all_admin_roles.includes(a)})}],952840);var o=e.i(621482);let c=(0,a.createQueryKeys)("infiniteUsers"),d=50;e.s(["useInfiniteUsers",0,(e=d,s)=>{let{accessToken:a,userRole:i}=(0,l.default)();return(0,o.useInfiniteQuery)({queryKey:c.list({filters:{pageSize:e,...s&&{searchEmail:s}}}),queryFn:async({pageParam:r})=>await (0,t.userListCall)(a,null,r,e,s||null),initialPageParam:1,getNextPageParam:e=>{if(e.pagee&&t&&t.length?(0,u.jsxs)("div",{className:"w-56 rounded-tremor-default border border-tremor-border bg-tremor-background p-2 text-tremor-default shadow-tremor-dropdown",children:[(0,u.jsx)("p",{className:"text-tremor-content-strong",children:s}),t.map(e=>{let t=e.dataKey?.toString();if(!t||!e.payload)return null;let s=((e,t)=>{let s=t.substring(t.indexOf(".")+1);if(e.metrics&&s in e.metrics)return e.metrics[s]})(e.payload,t),a=t.includes("spend"),r=void 0!==s?a?`$${s.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})}`:s.toLocaleString():"N/A",l=b[e.color]||e.color;return(0,u.jsxs)("div",{className:"flex items-center justify-between space-x-4",children:[(0,u.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,u.jsx)("span",{className:"h-2 w-2 shrink-0 rounded-full ring-2 ring-white drop-shadow-md",style:{backgroundColor:l}}),(0,u.jsx)("p",{className:"font-medium text-tremor-content dark:text-dark-tremor-content",children:t.replace("metrics.","").replace(/_/g," ").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")})]}),(0,u.jsx)("p",{className:"font-medium text-tremor-content-emphasis dark:text-dark-tremor-content-emphasis",children:r})]},t)})]}):null,v=({categories:e,colors:t})=>(0,u.jsx)("div",{className:"flex items-center justify-end space-x-4",children:e.map((e,s)=>{let a=b[t[s]]||t[s];return(0,u.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,u.jsx)("span",{className:"h-2 w-2 shrink-0 rounded-full ring-4 ring-white",style:{backgroundColor:a}}),(0,u.jsx)("p",{className:"text-sm text-tremor-content dark:text-dark-tremor-content",children:e.replace("metrics.","").replace(/_/g," ").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")})]},e)})});e.s(["CustomLegend",0,v,"CustomTooltip",0,k],286718);var N=e.i(291542),T=e.i(271645);let C=[{title:"Model",dataIndex:"model",key:"model",render:e=>e||"-"},{title:"Spend (USD)",dataIndex:"spend",key:"spend",render:e=>`$${(0,m.formatNumberWithCommas)(e,2)}`},{title:"Successful",dataIndex:"successful_requests",key:"successful_requests",render:e=>(0,u.jsx)("span",{className:"text-green-600",children:e?.toLocaleString()||0})},{title:"Failed",dataIndex:"failed_requests",key:"failed_requests",render:e=>(0,u.jsx)("span",{className:"text-red-600",children:e?.toLocaleString()||0})},{title:"Tokens",dataIndex:"tokens",key:"tokens",render:e=>e?.toLocaleString()||0}],w=({topModels:e})=>{let[t,s]=(0,T.useState)("table");return 0===e.length?null:(0,u.jsxs)(g.Card,{className:"mt-4",children:[(0,u.jsxs)("div",{className:"flex justify-between items-center mb-3",children:[(0,u.jsx)(_.Title,{children:"Model Usage"}),(0,u.jsxs)("div",{className:"flex space-x-2",children:[(0,u.jsx)("button",{onClick:()=>s("table"),className:`px-3 py-1 text-sm rounded-md ${"table"===t?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-700"}`,children:"Table"}),(0,u.jsx)("button",{onClick:()=>s("chart"),className:`px-3 py-1 text-sm rounded-md ${"chart"===t?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-700"}`,children:"Chart"})]})]}),"chart"===t?(0,u.jsx)("div",{className:"max-h-[234px] overflow-y-auto",children:(0,u.jsx)(p.BarChart,{style:{height:40*e.length},data:e.map(e=>({key:e.model,spend:e.spend})),index:"key",categories:["spend"],colors:["cyan"],valueFormatter:e=>`$${(0,m.formatNumberWithCommas)(e,2)}`,layout:"vertical",yAxisWidth:180,tickGap:5,showLegend:!1})}):(0,u.jsx)(N.Table,{columns:C,dataSource:e,rowKey:"model",size:"small",pagination:!1,scroll:e.length>5?{y:195}:void 0})]})};function S(e){return e>=1e6?(e/1e6).toFixed(2)+"M":e>=1e3?e/1e3+"k":e.toString()}e.s(["valueFormatter",0,S,"valueFormatterSpend",0,function(e){return 0===e?"$0":e>=1e6?"$"+e/1e6+"M":e>=1e3?"$"+e/1e3+"k":"$"+e}],23371);let q=({modelName:e,metrics:t,hidePromptCachingMetrics:s=!1})=>(0,u.jsxs)("div",{className:"space-y-2",children:[(0,u.jsxs)(f.Grid,{numItems:4,className:"gap-4",children:[(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Requests"}),(0,u.jsx)(_.Title,{children:t.total_requests.toLocaleString()})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Successful Requests"}),(0,u.jsx)(_.Title,{children:t.total_successful_requests.toLocaleString()})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Tokens"}),(0,u.jsx)(_.Title,{children:t.total_tokens.toLocaleString()}),(0,u.jsxs)(j.Text,{children:[Math.round(t.total_tokens/t.total_successful_requests)," avg per successful request"]})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Spend"}),(0,u.jsxs)(_.Title,{children:["$",(0,m.formatNumberWithCommas)(t.total_spend,2)]}),(0,u.jsxs)(j.Text,{children:["$",(0,m.formatNumberWithCommas)(t.total_spend/t.total_successful_requests,3)," per successful request"]})]})]}),t.top_api_keys&&t.top_api_keys.length>0&&(0,u.jsxs)(g.Card,{className:"mt-4",children:[(0,u.jsx)(_.Title,{children:"Top Virtual Keys by Spend"}),(0,u.jsx)("div",{className:"mt-3",children:(0,u.jsx)("div",{className:"grid grid-cols-1 gap-2",children:t.top_api_keys.map((e,t)=>(0,u.jsxs)("div",{className:"flex justify-between items-center p-3 bg-gray-50 rounded-lg",children:[(0,u.jsxs)("div",{children:[(0,u.jsx)(j.Text,{className:"font-medium",children:e.key_alias||`${e.api_key.substring(0,10)}...`}),e.team_id&&(0,u.jsxs)(j.Text,{className:"text-xs text-gray-500",children:["Team: ",e.team_id]})]}),(0,u.jsxs)("div",{className:"text-right",children:[(0,u.jsxs)(j.Text,{className:"font-medium",children:["$",(0,m.formatNumberWithCommas)(e.spend,2)]}),(0,u.jsxs)(j.Text,{className:"text-xs text-gray-500",children:[e.requests.toLocaleString()," requests | ",e.tokens.toLocaleString()," tokens"]})]})]},e.api_key))})})]}),t.top_models&&t.top_models.length>0&&(0,u.jsx)(w,{topModels:t.top_models}),(0,u.jsxs)(g.Card,{className:"mt-4",children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Spend per day"}),(0,u.jsx)(v,{categories:["metrics.spend"],colors:["green"]})]}),(0,u.jsx)(p.BarChart,{className:"mt-4",data:t.daily_data,index:"date",categories:["metrics.spend"],colors:["green"],valueFormatter:e=>`$${(0,m.formatNumberWithCommas)(e,2,!0)}`,yAxisWidth:72})]}),(0,u.jsxs)(f.Grid,{numItems:2,className:"gap-4 mt-4",children:[(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Total Tokens"}),(0,u.jsx)(v,{categories:["metrics.prompt_tokens","metrics.completion_tokens","metrics.total_tokens"],colors:["blue","cyan","indigo"]})]}),(0,u.jsx)(h.AreaChart,{className:"mt-4",data:t.daily_data,index:"date",categories:["metrics.prompt_tokens","metrics.completion_tokens","metrics.total_tokens"],colors:["blue","cyan","indigo"],valueFormatter:S,customTooltip:k,showLegend:!1})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Requests per day"}),(0,u.jsx)(v,{categories:["metrics.api_requests"],colors:["blue"]})]}),(0,u.jsx)(p.BarChart,{className:"mt-4",data:t.daily_data,index:"date",categories:["metrics.api_requests"],colors:["blue"],valueFormatter:S,customTooltip:k,showLegend:!1})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Success vs Failed Requests"}),(0,u.jsx)(v,{categories:["metrics.successful_requests","metrics.failed_requests"],colors:["green","red"]})]}),(0,u.jsx)(h.AreaChart,{className:"mt-4",data:t.daily_data,index:"date",categories:["metrics.successful_requests","metrics.failed_requests"],colors:["green","red"],valueFormatter:S,customTooltip:k,showLegend:!1})]}),!s&&(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Prompt Caching Metrics"}),(0,u.jsx)(v,{categories:["metrics.cache_read_input_tokens","metrics.cache_creation_input_tokens"],colors:["cyan","purple"]})]}),(0,u.jsxs)("div",{className:"mb-2",children:[(0,u.jsxs)(j.Text,{children:["Cache Read: ",t.total_cache_read_input_tokens?.toLocaleString()||0," tokens"]}),(0,u.jsxs)(j.Text,{children:["Cache Creation: ",t.total_cache_creation_input_tokens?.toLocaleString()||0," tokens"]})]}),(0,u.jsx)(h.AreaChart,{className:"mt-4",data:t.daily_data,index:"date",categories:["metrics.cache_read_input_tokens","metrics.cache_creation_input_tokens"],colors:["cyan","purple"],valueFormatter:S,customTooltip:k,showLegend:!1})]})]})]});e.s(["ActivityMetrics",0,({modelMetrics:e,hidePromptCachingMetrics:t=!1})=>{let s=Object.keys(e).sort((t,s)=>""===t?1:""===s?-1:e[s].total_spend-e[t].total_spend),a={total_requests:0,total_successful_requests:0,total_tokens:0,total_spend:0,total_cache_read_input_tokens:0,total_cache_creation_input_tokens:0,daily_data:{}};Object.values(e).forEach(e=>{a.total_requests+=e.total_requests,a.total_successful_requests+=e.total_successful_requests,a.total_tokens+=e.total_tokens,a.total_spend+=e.total_spend,a.total_cache_read_input_tokens+=e.total_cache_read_input_tokens||0,a.total_cache_creation_input_tokens+=e.total_cache_creation_input_tokens||0,e.daily_data.forEach(e=>{a.daily_data[e.date]||(a.daily_data[e.date]={prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,spend:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0}),a.daily_data[e.date].prompt_tokens+=e.metrics.prompt_tokens,a.daily_data[e.date].completion_tokens+=e.metrics.completion_tokens,a.daily_data[e.date].total_tokens+=e.metrics.total_tokens,a.daily_data[e.date].api_requests+=e.metrics.api_requests,a.daily_data[e.date].spend+=e.metrics.spend,a.daily_data[e.date].successful_requests+=e.metrics.successful_requests,a.daily_data[e.date].failed_requests+=e.metrics.failed_requests,a.daily_data[e.date].cache_read_input_tokens+=e.metrics.cache_read_input_tokens||0,a.daily_data[e.date].cache_creation_input_tokens+=e.metrics.cache_creation_input_tokens||0})});let r=Object.entries(a.daily_data).map(([e,t])=>({date:e,metrics:t})).sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime());return(0,u.jsxs)("div",{className:"space-y-8",children:[(0,u.jsxs)("div",{className:"border rounded-lg p-4",children:[(0,u.jsx)(_.Title,{children:"Overall Usage"}),(0,u.jsxs)(f.Grid,{numItems:4,className:"gap-4 mb-4",children:[(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Requests"}),(0,u.jsx)(_.Title,{children:a.total_requests.toLocaleString()})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Successful Requests"}),(0,u.jsx)(_.Title,{children:a.total_successful_requests.toLocaleString()})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Tokens"}),(0,u.jsx)(_.Title,{children:a.total_tokens.toLocaleString()})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Spend"}),(0,u.jsxs)(_.Title,{children:["$",(0,m.formatNumberWithCommas)(a.total_spend,2)]})]})]}),(0,u.jsxs)(f.Grid,{numItems:2,className:"gap-4",children:[(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Total Tokens Over Time"}),(0,u.jsx)(v,{categories:["metrics.prompt_tokens","metrics.completion_tokens","metrics.total_tokens"],colors:["blue","cyan","indigo"]})]}),(0,u.jsx)(h.AreaChart,{className:"mt-4",data:r,index:"date",categories:["metrics.prompt_tokens","metrics.completion_tokens","metrics.total_tokens"],colors:["blue","cyan","indigo"],valueFormatter:S,customTooltip:k,showLegend:!1})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Total Requests Over Time"}),(0,u.jsx)(v,{categories:["metrics.successful_requests","metrics.failed_requests"],colors:["emerald","red"]})]}),(0,u.jsx)(h.AreaChart,{className:"mt-4",data:r,index:"date",categories:["metrics.successful_requests","metrics.failed_requests"],colors:["emerald","red"],valueFormatter:e=>e.toLocaleString(),customTooltip:k,showLegend:!1})]})]})]}),(0,u.jsx)(y.Collapse,{defaultActiveKey:s[0],children:s.map(s=>(0,u.jsx)(y.Collapse.Panel,{header:(0,u.jsxs)("div",{className:"flex justify-between items-center w-full",children:[(0,u.jsx)(_.Title,{children:e[s].label||"Unknown Item"}),(0,u.jsxs)("div",{className:"flex space-x-4 text-sm text-gray-500",children:[(0,u.jsxs)("span",{children:["$",(0,m.formatNumberWithCommas)(e[s].total_spend,2)]}),(0,u.jsxs)("span",{children:[e[s].total_requests.toLocaleString()," requests"]})]})]}),children:(0,u.jsx)(q,{modelName:s||"Unknown Model",metrics:e[s],hidePromptCachingMetrics:t})},s))})]})},"processActivityData",0,(e,t,s=[])=>{let a={};return e.results.forEach(e=>{Object.entries(e.breakdown[t]||{}).forEach(([r,l])=>{a[r]||(a[r]={label:"api_keys"===t?((e,t,s)=>{let a=e.metadata.key_alias||`key-hash-${t}`,r=e.metadata.team_id;if(r){let e=(0,x.resolveTeamAliasFromTeamID)(r,s);return e?`${a} (team: ${e})`:`${a} (team_id: ${r})`}return a})(l,r,s):"entities"===t&&(l.metadata?.agent_name||l.metadata?.team_alias)||r,total_requests:0,total_successful_requests:0,total_failed_requests:0,total_tokens:0,prompt_tokens:0,completion_tokens:0,total_spend:0,total_cache_read_input_tokens:0,total_cache_creation_input_tokens:0,top_api_keys:[],top_models:[],daily_data:[]}),a[r].total_requests+=l.metrics.api_requests,a[r].prompt_tokens+=l.metrics.prompt_tokens,a[r].completion_tokens+=l.metrics.completion_tokens,a[r].total_tokens+=l.metrics.total_tokens,a[r].total_spend+=l.metrics.spend,a[r].total_successful_requests+=l.metrics.successful_requests,a[r].total_failed_requests+=l.metrics.failed_requests,a[r].total_cache_read_input_tokens+=l.metrics.cache_read_input_tokens||0,a[r].total_cache_creation_input_tokens+=l.metrics.cache_creation_input_tokens||0,a[r].daily_data.push({date:e.date,metrics:{prompt_tokens:l.metrics.prompt_tokens,completion_tokens:l.metrics.completion_tokens,total_tokens:l.metrics.total_tokens,api_requests:l.metrics.api_requests,spend:l.metrics.spend,successful_requests:l.metrics.successful_requests,failed_requests:l.metrics.failed_requests,cache_read_input_tokens:l.metrics.cache_read_input_tokens||0,cache_creation_input_tokens:l.metrics.cache_creation_input_tokens||0}})})}),"api_keys"!==t&&Object.entries(a).forEach(([s,r])=>{let l={};e.results.forEach(e=>{let a=e.breakdown[t]?.[s];a&&"api_key_breakdown"in a&&Object.entries(a.api_key_breakdown||{}).forEach(([e,t])=>{l[e]||(l[e]={api_key:e,key_alias:t.metadata.key_alias,team_id:t.metadata.team_id,spend:0,requests:0,tokens:0}),l[e].spend+=t.metrics.spend,l[e].requests+=t.metrics.api_requests,l[e].tokens+=t.metrics.total_tokens})}),a[s].top_api_keys=Object.values(l).sort((e,t)=>t.spend-e.spend).slice(0,5)}),"api_keys"===t&&Object.entries(a).forEach(([t,s])=>{let r={};e.results.forEach(e=>{Object.entries(e.breakdown.models||{}).forEach(([e,s])=>{if(s&&"api_key_breakdown"in s){let a=s.api_key_breakdown?.[t];a&&(r[e]||(r[e]={model:e,spend:0,requests:0,successful_requests:0,failed_requests:0,tokens:0}),r[e].spend+=a.metrics.spend,r[e].requests+=a.metrics.api_requests,r[e].successful_requests+=a.metrics.successful_requests||0,r[e].failed_requests+=a.metrics.failed_requests||0,r[e].tokens+=a.metrics.total_tokens)}})}),a[t].top_models=Object.values(r).sort((e,t)=>t.spend-e.spend)}),Object.values(a).forEach(e=>{e.daily_data.sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime())}),a}],487147);var L=e.i(994388),D=e.i(366283),A=e.i(779241),M=e.i(212931),O=e.i(808613),E=e.i(482725),F=e.i(199133),$=e.i(727749);e.s(["default",0,({isOpen:e,onClose:s,accessToken:a})=>{let[r]=O.Form.useForm(),[l,i]=(0,T.useState)(!1),[n,o]=(0,T.useState)(null),[c,d]=(0,T.useState)(!1),[m,x]=(0,T.useState)("cloudzero"),[h,p]=(0,T.useState)(!1);(0,T.useEffect)(()=>{e&&a&&g()},[e,a]);let g=async()=>{d(!0);try{let e=await fetch("/cloudzero/settings",{method:"GET",headers:{[(0,t.getGlobalLitellmHeaderName)()]:`Bearer ${a}`,"Content-Type":"application/json"}});if(e.ok){let t=await e.json();o(t),r.setFieldsValue({connection_id:t.connection_id})}else if(404!==e.status){let t=await e.json();$.default.fromBackend(`Failed to load existing settings: ${t.error||"Unknown error"}`)}}catch(e){console.error("Error loading CloudZero settings:",e),$.default.fromBackend("Failed to load existing settings")}finally{d(!1)}},f=async e=>{if(!a)return void $.default.fromBackend("No access token available");i(!0);try{let s=n?"/cloudzero/settings":"/cloudzero/init",r=n?"PUT":"POST",l={...e,timezone:"UTC"},i=await fetch(s,{method:r,headers:{[(0,t.getGlobalLitellmHeaderName)()]:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify(l)}),c=await i.json();if(i.ok)return $.default.success(c.message||"CloudZero settings saved successfully"),o({api_key_masked:e.api_key.substring(0,4)+"****"+e.api_key.slice(-4),connection_id:e.connection_id,status:"configured"}),!0;return $.default.fromBackend(c.error||"Failed to save CloudZero settings"),!1}catch(e){return console.error("Error saving CloudZero settings:",e),$.default.fromBackend("Failed to save CloudZero settings"),!1}finally{i(!1)}},_=async()=>{if(!a)return void $.default.fromBackend("No access token available");p(!0);try{let e=await fetch("/cloudzero/export",{method:"POST",headers:{[(0,t.getGlobalLitellmHeaderName)()]:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({limit:1e5,operation:"replace_hourly"})}),r=await e.json();e.ok?($.default.success(r.message||"Export to CloudZero completed successfully"),s()):$.default.fromBackend(r.error||"Failed to export to CloudZero")}catch(e){console.error("Error exporting to CloudZero:",e),$.default.fromBackend("Failed to export to CloudZero")}finally{p(!1)}},y=async()=>{p(!0);try{$.default.info("CSV export functionality coming soon!"),s()}catch(e){console.error("Error exporting CSV:",e),$.default.fromBackend("Failed to export CSV")}finally{p(!1)}},b=async()=>{if("cloudzero"===m){if(!n){let e=await r.validateFields();if(!await f(e))return}await _()}else await y()},k=()=>{r.resetFields(),x("cloudzero"),o(null),s()},v=[{value:"cloudzero",label:(0,u.jsxs)("div",{className:"flex items-center gap-2",children:[(0,u.jsx)("img",{src:"/cloudzero.png",alt:"CloudZero",className:"w-5 h-5",onError:e=>{e.target.style.display="none"}}),(0,u.jsx)("span",{children:"Export to CloudZero"})]})},{value:"csv",label:(0,u.jsxs)("div",{className:"flex items-center gap-2",children:[(0,u.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,u.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})}),(0,u.jsx)("span",{children:"Export to CSV"})]})}];return(0,u.jsx)(M.Modal,{title:"Export Data",open:e,onCancel:k,footer:null,width:600,destroyOnHidden:!0,children:(0,u.jsxs)("div",{className:"space-y-4",children:[(0,u.jsxs)("div",{children:[(0,u.jsx)(j.Text,{className:"font-medium mb-2 block",children:"Export Destination"}),(0,u.jsx)(F.Select,{value:m,onChange:x,options:v,className:"w-full",size:"large"})]}),"cloudzero"===m&&(0,u.jsx)("div",{children:c?(0,u.jsx)("div",{className:"flex justify-center py-8",children:(0,u.jsx)(E.Spin,{size:"large"})}):(0,u.jsxs)(u.Fragment,{children:[n&&(0,u.jsx)(D.Callout,{title:"Existing CloudZero Configuration",icon:()=>(0,u.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,u.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})}),color:"green",className:"mb-4",children:(0,u.jsxs)(j.Text,{children:["API Key: ",n.api_key_masked,(0,u.jsx)("br",{}),"Connection ID: ",n.connection_id]})}),!n&&(0,u.jsxs)(O.Form,{form:r,layout:"vertical",children:[(0,u.jsx)(O.Form.Item,{label:"CloudZero API Key",name:"api_key",rules:[{required:!0,message:"Please enter your CloudZero API key"}],children:(0,u.jsx)(A.TextInput,{type:"password",placeholder:"Enter your CloudZero API key"})}),(0,u.jsx)(O.Form.Item,{label:"Connection ID",name:"connection_id",rules:[{required:!0,message:"Please enter the CloudZero connection ID"}],children:(0,u.jsx)(A.TextInput,{placeholder:"Enter CloudZero connection ID"})})]})]})}),"csv"===m&&(0,u.jsx)(D.Callout,{title:"CSV Export",icon:()=>(0,u.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,u.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 6v6m0 0v6m0-6h6m-6 0H6"})}),color:"blue",children:(0,u.jsx)(j.Text,{children:"Export your usage data as a CSV file for analysis in spreadsheet applications."})}),(0,u.jsxs)("div",{className:"flex justify-end space-x-2 pt-4",children:[(0,u.jsx)(L.Button,{variant:"secondary",onClick:k,children:"Cancel"}),(0,u.jsx)(L.Button,{onClick:b,loading:l||h,disabled:l||h,children:"cloudzero"===m?"Export to CloudZero":"Export CSV"})]})]})})}],498610);var U=e.i(785242),P=e.i(464571),R=e.i(981339);let V=({value:e,onChange:t})=>(0,u.jsxs)("div",{children:[(0,u.jsx)("label",{className:"text-sm font-medium text-gray-700 block mb-2",children:"Format"}),(0,u.jsx)(F.Select,{value:e,onChange:t,className:"w-full",options:[{value:"csv",label:"CSV (Excel, Google Sheets)"},{value:"json",label:"JSON (includes metadata)"}]})]}),I=({dateRange:e,selectedFilters:t})=>(0,u.jsxs)("div",{className:"text-sm text-gray-500",children:[e.from?.toLocaleDateString()," - ",e.to?.toLocaleDateString(),t.length>0&&` \xb7 ${t.length} filter${t.length>1?"s":""}`]});var B=e.i(91739);let W=({value:e,onChange:t,entityType:s})=>(0,u.jsxs)("div",{children:[(0,u.jsx)("label",{className:"text-sm font-medium text-gray-700 block mb-2",children:"Export type"}),(0,u.jsx)(B.Radio.Group,{value:e,onChange:e=>t(e.target.value),className:"w-full",children:(0,u.jsxs)("div",{className:"space-y-2",children:[(0,u.jsxs)("label",{className:"flex items-start p-3 border border-gray-200 rounded-lg hover:bg-gray-50 cursor-pointer transition-colors",children:[(0,u.jsx)(B.Radio,{value:"daily",className:"mt-0.5"}),(0,u.jsxs)("div",{className:"ml-3 flex-1",children:[(0,u.jsxs)("div",{className:"font-medium text-sm",children:["Day-by-day breakdown by ",s]}),(0,u.jsxs)("div",{className:"text-xs text-gray-500 mt-0.5",children:["Daily metrics for each ",s]})]})]}),(0,u.jsxs)("label",{className:"flex items-start p-3 border border-gray-200 rounded-lg hover:bg-gray-50 cursor-pointer transition-colors",children:[(0,u.jsx)(B.Radio,{value:"daily_with_keys",className:"mt-0.5"}),(0,u.jsxs)("div",{className:"ml-3 flex-1",children:[(0,u.jsxs)("div",{className:"font-medium text-sm",children:["Day-by-day breakdown by ",s," and key"]}),(0,u.jsxs)("div",{className:"text-xs text-gray-500 mt-0.5",children:["Daily metrics for each ",s,", split by API key"]})]})]}),(0,u.jsxs)("label",{className:"flex items-start p-3 border border-gray-200 rounded-lg hover:bg-gray-50 cursor-pointer transition-colors",children:[(0,u.jsx)(B.Radio,{value:"daily_with_models",className:"mt-0.5"}),(0,u.jsxs)("div",{className:"ml-3 flex-1",children:[(0,u.jsxs)("div",{className:"font-medium text-sm",children:["Day-by-day by ",s," and model"]}),(0,u.jsx)("div",{className:"text-xs text-gray-500 mt-0.5",children:"Daily metrics split by model"})]})]})]})})]});var z=e.i(59935);let Y=(e,t)=>({id:e,alias:t[e]||e}),K=["spend","api_requests","successful_requests","failed_requests","total_tokens","prompt_tokens","completion_tokens","cache_read_input_tokens","cache_creation_input_tokens"],H=e=>{let t=e.entities;return t&&Object.keys(t).length>0?t:(e=>{let t=e.api_keys;if(!t||0===Object.keys(t).length)return{};let s={};for(let[e,a]of Object.entries(t)){let t=a?.metadata?.team_id||"Unassigned";s[t]||(s[t]={metrics:Object.fromEntries(K.map(e=>[e,0])),api_key_breakdown:{}});let r=s[t].metrics,l=a?.metrics||{};for(let e of K)r[e]+=l[e]||0;s[t].api_key_breakdown[e]=a}return s})(e)},G=(e,t,s,a={})=>{switch(t){case"daily":default:return((e,t,s={})=>{let a=[];return e.results.forEach(e=>{Object.entries(H(e.breakdown)).forEach(([r,l])=>{let{id:i,alias:n}=Y(r,s);a.push({Date:e.date,[t]:n,[`${t} ID`]:i,"Spend ($)":(0,m.formatNumberWithCommas)(l.metrics.spend,4),Requests:l.metrics.api_requests,"Successful Requests":l.metrics.successful_requests,"Failed Requests":l.metrics.failed_requests,"Total Tokens":l.metrics.total_tokens,"Prompt Tokens":l.metrics.prompt_tokens||0,"Completion Tokens":l.metrics.completion_tokens||0})})}),a.sort((e,t)=>new Date(e.Date).getTime()-new Date(t.Date).getTime())})(e,s,a);case"daily_with_keys":return((e,t,s={})=>{let a={};return e.results.forEach(e=>{Object.entries(H(e.breakdown)).forEach(([t,r])=>{let{id:l,alias:i}=Y(t,s);Object.entries(r.api_key_breakdown||{}).forEach(([t,s])=>{let r=s?.metadata?.key_alias||null,n=`${e.date}_${l}_${t}`;a[n]?(a[n].metrics.spend+=s.metrics?.spend||0,a[n].metrics.api_requests+=s.metrics?.api_requests||0,a[n].metrics.successful_requests+=s.metrics?.successful_requests||0,a[n].metrics.failed_requests+=s.metrics?.failed_requests||0,a[n].metrics.total_tokens+=s.metrics?.total_tokens||0,a[n].metrics.prompt_tokens+=s.metrics?.prompt_tokens||0,a[n].metrics.completion_tokens+=s.metrics?.completion_tokens||0):a[n]={Date:e.date,entityId:l,entityAlias:i,keyId:t,keyAlias:r,metrics:{spend:s.metrics?.spend||0,api_requests:s.metrics?.api_requests||0,successful_requests:s.metrics?.successful_requests||0,failed_requests:s.metrics?.failed_requests||0,total_tokens:s.metrics?.total_tokens||0,prompt_tokens:s.metrics?.prompt_tokens||0,completion_tokens:s.metrics?.completion_tokens||0}}})})}),Object.values(a).map(e=>({Date:e.Date,[t]:e.entityAlias,[`${t} ID`]:e.entityId,"Key Alias":e.keyAlias||"-","Key ID":e.keyId,"Spend ($)":(0,m.formatNumberWithCommas)(e.metrics.spend,4),Requests:e.metrics.api_requests,"Successful Requests":e.metrics.successful_requests,"Failed Requests":e.metrics.failed_requests,"Total Tokens":e.metrics.total_tokens,"Prompt Tokens":e.metrics.prompt_tokens,"Completion Tokens":e.metrics.completion_tokens})).sort((e,t)=>new Date(e.Date).getTime()-new Date(t.Date).getTime())})(e,s,a);case"daily_with_models":return((e,t,s={})=>{let a=[];return e.results.forEach(e=>{let r={};Object.entries(H(e.breakdown)).forEach(([t,s])=>{r[t]||(r[t]={}),Object.entries(e.breakdown.models||{}).forEach(([e,a])=>{Object.entries(s.api_key_breakdown||{}).forEach(([s,a])=>{r[t][e]||(r[t][e]={spend:0,requests:0,successful:0,failed:0,tokens:0}),r[t][e].spend+=a.metrics.spend||0,r[t][e].requests+=a.metrics.api_requests||0,r[t][e].successful+=a.metrics.successful_requests||0,r[t][e].failed+=a.metrics.failed_requests||0,r[t][e].tokens+=a.metrics.total_tokens||0})})}),Object.entries(r).forEach(([r,l])=>{let{id:i,alias:n}=Y(r,s);Object.entries(l).forEach(([s,r])=>{a.push({Date:e.date,[t]:n,[`${t} ID`]:i,Model:s,"Spend ($)":(0,m.formatNumberWithCommas)(r.spend,4),Requests:r.requests,Successful:r.successful,Failed:r.failed,"Total Tokens":r.tokens})})})}),a.sort((e,t)=>new Date(e.Date).getTime()-new Date(t.Date).getTime())})(e,s,a)}},Z=({isOpen:e,onClose:t,entityType:s,spendData:a,dateRange:r,selectedFilters:l,customTitle:i})=>{let[n,o]=(0,T.useState)("csv"),[c,d]=(0,T.useState)("daily"),[m,h]=(0,T.useState)(!1),{data:p,isLoading:g}=(0,U.useTeams)(),f=s.charAt(0).toUpperCase()+s.slice(1),j=i||`Export ${f} Usage`,_=(0,T.useMemo)(()=>(0,x.createTeamAliasMap)(p),[p]),y=async e=>{let i=e||n;h(!0);try{"csv"===i?(((e,t,s,a,r={})=>{let l=G(e,t,s,r),i=new Blob([z.default.unparse(l)],{type:"text/csv;charset=utf-8;"}),n=window.URL.createObjectURL(i),o=document.createElement("a");o.href=n,o.download=`${a}_usage_${t}_${new Date().toISOString().split("T")[0]}.csv`,document.body.appendChild(o),o.click(),document.body.removeChild(o),window.URL.revokeObjectURL(n)})(a,c,f,s,_),$.default.success(`${f} usage data exported successfully as CSV`)):(((e,t,s,a,r,l,i={})=>{let n=G(e,t,s,i),o={export_date:new Date().toISOString(),entity_type:a,date_range:{from:r.from?.toISOString(),to:r.to?.toISOString()},filters_applied:l.length>0?l:"None",export_scope:t,summary:{total_spend:e.metadata.total_spend,total_requests:e.metadata.total_api_requests,successful_requests:e.metadata.total_successful_requests,failed_requests:e.metadata.total_failed_requests,total_tokens:e.metadata.total_tokens}},c=new Blob([JSON.stringify({metadata:o,data:n},null,2)],{type:"application/json"}),d=window.URL.createObjectURL(c),u=document.createElement("a");u.href=d,u.download=`${a}_usage_${t}_${new Date().toISOString().split("T")[0]}.json`,document.body.appendChild(u),u.click(),document.body.removeChild(u),window.URL.revokeObjectURL(d)})(a,c,f,s,r,l,_),$.default.success(`${f} usage data exported successfully as JSON`)),t()}catch(e){console.error("Error exporting data:",e),$.default.fromBackend("Failed to export data")}finally{h(!1)}};return(0,u.jsx)(M.Modal,{title:(0,u.jsx)("span",{className:"text-base font-semibold",children:j}),open:e,onCancel:t,footer:null,width:480,children:(0,u.jsxs)("div",{className:"space-y-5 py-2",children:[g?(0,u.jsx)(R.Skeleton,{active:!0}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(I,{dateRange:r,selectedFilters:l}),(0,u.jsx)(W,{value:c,onChange:d,entityType:s}),(0,u.jsx)(V,{value:n,onChange:o})]}),g?(0,u.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-4 border-t",children:[(0,u.jsx)(R.Skeleton.Button,{active:!0}),(0,u.jsx)(R.Skeleton.Button,{active:!0})]}):(0,u.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-4 border-t",children:[(0,u.jsx)(P.Button,{variant:"outlined",onClick:t,disabled:m,children:"Cancel"}),(0,u.jsx)(P.Button,{onClick:()=>y(),loading:m||g,disabled:m||g,type:"primary",children:m?"Exporting...":`Export ${n.toUpperCase()}`})]})]})})};e.s(["default",0,Z],785952),e.s(["default",0,({dateValue:e,entityType:t,spendData:s,showFilters:a=!1,filterLabel:r,filterPlaceholder:l,selectedFilters:i=[],onFiltersChange:n,filterOptions:o=[],filterMode:c="multiple",customTitle:d,compactLayout:m=!1,teams:x=[]})=>{let[h,p]=(0,T.useState)(!1);return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("div",{className:"mb-4",children:(0,u.jsxs)("div",{className:`grid ${a&&o.length>0?"grid-cols-[1fr_auto]":"grid-cols-[auto]"} items-end gap-4`,children:[a&&o.length>0&&(0,u.jsxs)("div",{children:[r&&(0,u.jsx)(j.Text,{className:"mb-2",children:r}),(0,u.jsx)(F.Select,{mode:"single"===c?void 0:"multiple",style:{width:"100%"},placeholder:l,value:"single"===c?i[0]??void 0:i,onChange:e=>{"single"===c?n?.(e?[e]:[]):n?.(e)},options:o,allowClear:!0})]}),(0,u.jsx)("div",{className:"justify-self-end",children:(0,u.jsx)(L.Button,{onClick:()=>p(!0),icon:()=>(0,u.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,u.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})}),children:"Export Data"})})]})}),(0,u.jsx)(Z,{isOpen:h,onClose:()=>p(!1),entityType:t,spendData:s,dateRange:e,selectedFilters:i,customTitle:d,teams:x})]})}],193523),e.s([],260573)},797305,497650,e=>{"use strict";var t=e.i(843476),s=e.i(755151),a=e.i(872934),r=e.i(827252),l=e.i(56456),i=e.i(240647),n=e.i(152473),o=e.i(584935),c=e.i(304967),d=e.i(309426),u=e.i(350967),m=e.i(197647),x=e.i(653824),h=e.i(881073),p=e.i(404206),g=e.i(723731),f=e.i(599724),j=e.i(629569),_=e.i(560445),y=e.i(464571),b=e.i(560025),k=e.i(199133),v=e.i(592968),N=e.i(898586),T=e.i(271645),C=e.i(289793),w=e.i(952840),S=e.i(135214),q=e.i(738014),L=e.i(617885),D=e.i(500330),A=e.i(708347),M=e.i(487147),O=e.i(498610);e.i(260573);var E=e.i(785952),F=e.i(764205),$=e.i(973706),U=e.i(571303);let P=({isDateChanging:e=!1})=>(0,t.jsx)("div",{className:"flex items-center justify-center h-40",children:(0,t.jsxs)("div",{className:"flex items-center justify-center gap-3",children:[(0,t.jsx)(U.UiLoadingSpinner,{className:"size-5"}),(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("span",{className:"text-gray-600 text-sm font-medium",children:e?"Processing date selection...":"Loading chart data..."}),(0,t.jsx)("span",{className:"text-gray-400 text-xs mt-1",children:e?"This will only take a moment":"Fetching your data"})]})]})});var R=e.i(290571),V=e.i(95779),I=e.i(444755),B=e.i(673706);let W=T.default.forwardRef((e,t)=>{let{color:s,children:a,className:r}=e,l=(0,R.__rest)(e,["color","children","className"]);return T.default.createElement("p",Object.assign({ref:t,className:(0,I.tremorTwMerge)("font-semibold text-tremor-metric",s?(0,B.getColorClassNames)(s,V.colorPalette.darkText).textColor:"text-tremor-content-strong dark:text-dark-tremor-content-strong",r)},l),a)});W.displayName="Metric";var z=e.i(37091),Y=e.i(269200),K=e.i(427612),H=e.i(496020),G=e.i(64848),Z=e.i(942232),J=e.i(977572),Q=e.i(994388);let X=({accessToken:e,selectedTags:s,formatAbbreviatedNumber:a})=>{let r,l,i,n,[c,d]=(0,T.useState)({results:[],total_count:0,page:1,page_size:50,total_pages:0}),[u,_]=(0,T.useState)(!1),[y,b]=(0,T.useState)(1),k=async()=>{if(e){_(!0);try{let t=await (0,F.perUserAnalyticsCall)(e,y,50,s.length>0?s:void 0);d(t)}catch(e){console.error("Failed to fetch per-user data:",e)}finally{_(!1)}}};return(0,T.useEffect)(()=>{k()},[e,s,y]),(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)(j.Title,{children:"Per User Usage"}),(0,t.jsx)(z.Subtitle,{children:"Individual developer usage metrics"}),(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)(h.TabList,{className:"mb-6",children:[(0,t.jsx)(m.Tab,{children:"User Details"}),(0,t.jsx)(m.Tab,{children:"Usage Distribution"})]}),(0,t.jsxs)(g.TabPanels,{children:[(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsxs)(Y.Table,{children:[(0,t.jsx)(K.TableHead,{children:(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(G.TableHeaderCell,{children:"User ID"}),(0,t.jsx)(G.TableHeaderCell,{children:"User Email"}),(0,t.jsx)(G.TableHeaderCell,{children:"User Agent"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-right",children:"Success Generations"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-right",children:"Total Tokens"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-right",children:"Failed Requests"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-right",children:"Total Cost"})]})}),(0,t.jsx)(Z.TableBody,{children:c.results.slice(0,10).map((e,s)=>(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(J.TableCell,{children:(0,t.jsx)(f.Text,{className:"font-medium",children:e.user_id})}),(0,t.jsx)(J.TableCell,{children:(0,t.jsx)(f.Text,{children:e.user_email||"N/A"})}),(0,t.jsx)(J.TableCell,{children:(0,t.jsx)(f.Text,{children:e.user_agent||"Unknown"})}),(0,t.jsx)(J.TableCell,{className:"text-right",children:(0,t.jsx)(f.Text,{children:a(e.successful_requests)})}),(0,t.jsx)(J.TableCell,{className:"text-right",children:(0,t.jsx)(f.Text,{children:a(e.total_tokens)})}),(0,t.jsx)(J.TableCell,{className:"text-right",children:(0,t.jsx)(f.Text,{children:a(e.failed_requests)})}),(0,t.jsx)(J.TableCell,{className:"text-right",children:(0,t.jsxs)(f.Text,{children:["$",a(e.spend,4)]})})]},s))})]}),c.results.length>10&&(0,t.jsxs)("div",{className:"mt-4 flex justify-between items-center",children:[(0,t.jsxs)(f.Text,{className:"text-sm text-gray-500",children:["Showing 10 of ",c.total_count," results"]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(Q.Button,{size:"sm",variant:"secondary",onClick:()=>{y>1&&b(y-1)},disabled:1===y,children:"Previous"}),(0,t.jsx)(Q.Button,{size:"sm",variant:"secondary",onClick:()=>{y=c.total_pages,children:"Next"})]})]})]}),(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(j.Title,{className:"text-lg",children:"User Usage Distribution"}),(0,t.jsx)(z.Subtitle,{children:"Number of users by successful request frequency"})]}),(0,t.jsx)(o.BarChart,{data:(r=new Map,c.results.forEach(e=>{let t=e.user_agent||"Unknown";r.set(t,(r.get(t)||0)+1)}),l=Array.from(r.entries()).sort(([,e],[,t])=>t-e).slice(0,8).map(([e])=>e),i={"1-9 requests":{range:[1,9],agents:{}},"10-99 requests":{range:[10,99],agents:{}},"100-999 requests":{range:[100,999],agents:{}},"1K-9.9K requests":{range:[1e3,9999],agents:{}},"10K-99.9K requests":{range:[1e4,99999],agents:{}},"100K+ requests":{range:[1e5,1/0],agents:{}}},c.results.forEach(e=>{let t=e.successful_requests,s=e.user_agent||"Unknown";l.includes(s)&&Object.entries(i).forEach(([e,a])=>{t>=a.range[0]&&t<=a.range[1]&&(a.agents[s]||(a.agents[s]=0),a.agents[s]++)})}),Object.entries(i).map(([e,t])=>{let s={category:e};return l.forEach(e=>{s[e]=t.agents[e]||0}),s})),index:"category",categories:(n=new Map,c.results.forEach(e=>{let t=e.user_agent||"Unknown";n.set(t,(n.get(t)||0)+1)}),Array.from(n.entries()).sort(([,e],[,t])=>t-e).slice(0,8).map(([e])=>e)),colors:["blue","green","orange","red","purple","yellow","pink","indigo"],valueFormatter:e=>`${e} users`,yAxisWidth:80,showLegend:!0,stack:!0})]})]})]})]})},ee=({accessToken:e,userRole:s,dateValue:a,onDateChange:r})=>{let[l,i]=(0,T.useState)({results:[]}),[n,d]=(0,T.useState)({results:[]}),[_,y]=(0,T.useState)({results:[]}),[b,N]=(0,T.useState)({results:[]}),[C,w]=(0,T.useState)(""),[S,q]=(0,T.useState)([]),[L,D]=(0,T.useState)([]),[A,M]=(0,T.useState)(!1),[O,E]=(0,T.useState)(!1),[$,U]=(0,T.useState)(!1),[R,V]=(0,T.useState)(!1),[I,B]=(0,T.useState)(!1),Y=new Date,K=async()=>{if(e){M(!0);try{let t=await (0,F.tagDistinctCall)(e);q(t.results.map(e=>e.tag))}catch(e){console.error("Failed to fetch available tags:",e)}finally{M(!1)}}},H=async()=>{if(e){E(!0);try{let t=await (0,F.tagDauCall)(e,Y,C||void 0,L.length>0?L:void 0);i(t)}catch(e){console.error("Failed to fetch DAU data:",e)}finally{E(!1)}}},G=async()=>{if(e){U(!0);try{let t=await (0,F.tagWauCall)(e,Y,C||void 0,L.length>0?L:void 0);d(t)}catch(e){console.error("Failed to fetch WAU data:",e)}finally{U(!1)}}},Z=async()=>{if(e){V(!0);try{let t=await (0,F.tagMauCall)(e,Y,C||void 0,L.length>0?L:void 0);y(t)}catch(e){console.error("Failed to fetch MAU data:",e)}finally{V(!1)}}},J=async()=>{if(e&&a.from&&a.to){B(!0);try{let t=await (0,F.userAgentSummaryCall)(e,a.from,a.to,L.length>0?L:void 0);N(t)}catch(e){console.error("Failed to fetch user agent summary data:",e)}finally{B(!1)}}};(0,T.useEffect)(()=>{K()},[e]),(0,T.useEffect)(()=>{if(!e)return;let t=setTimeout(()=>{H(),G(),Z()},50);return()=>clearTimeout(t)},[e,C,L]),(0,T.useEffect)(()=>{if(!a.from||!a.to)return;let e=setTimeout(()=>{J()},50);return()=>clearTimeout(e)},[e,a,L]);let Q=e=>e.startsWith("User-Agent: ")?e.replace("User-Agent: ",""):e,ee=e=>Object.entries(e.reduce((e,t)=>(e[t.tag]=(e[t.tag]||0)+t.active_users,e),{})).sort(([,e],[,t])=>t-e).map(([e])=>e),et=ee(l.results).slice(0,10),es=ee(n.results).slice(0,10),ea=ee(_.results).slice(0,10),er=(()=>{let e=[],t=new Date;for(let s=6;s>=0;s--){let a=new Date(t);a.setDate(a.getDate()-s);let r={date:a.toISOString().split("T")[0]};et.forEach(e=>{r[Q(e)]=0}),e.push(r)}return l.results.forEach(t=>{let s=Q(t.tag),a=e.find(e=>e.date===t.date);a&&(a[s]=t.active_users)}),e})(),el=(()=>{let e=[];for(let t=1;t<=7;t++){let s={week:`Week ${t}`};es.forEach(e=>{s[Q(e)]=0}),e.push(s)}return n.results.forEach(t=>{let s=Q(t.tag),a=t.date.match(/Week (\d+)/);if(a){let r=`Week ${a[1]}`,l=e.find(e=>e.week===r);l&&(l[s]=t.active_users)}}),e})(),ei=(()=>{let e=[];for(let t=1;t<=7;t++){let s={month:`Month ${t}`};ea.forEach(e=>{s[Q(e)]=0}),e.push(s)}return _.results.forEach(t=>{let s=Q(t.tag),a=t.date.match(/Month (\d+)/);if(a){let r=`Month ${a[1]}`,l=e.find(e=>e.month===r);l&&(l[s]=t.active_users)}}),e})(),en=(e,t=0)=>{if(e>=1e8||e>=1e7)return(e/1e6).toFixed(t)+"M";if(e>=1e6)return(e/1e6).toFixed(t)+"M";if(e>=1e4)return(e/1e3).toFixed(t)+"K";if(e>=1e3)return(e/1e3).toFixed(t)+"K";else return e.toFixed(t)};return(0,t.jsxs)("div",{className:"space-y-6 mt-6",children:[(0,t.jsx)(c.Card,{children:(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"flex justify-between items-start",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Title,{children:"Summary by User Agent"}),(0,t.jsx)(z.Subtitle,{children:"Performance metrics for different user agents"})]}),(0,t.jsxs)("div",{className:"w-96",children:[(0,t.jsx)(f.Text,{className:"text-sm font-medium block mb-2",children:"Filter by User Agents"}),(0,t.jsx)(k.Select,{mode:"multiple",placeholder:"All User Agents",value:L,onChange:D,style:{width:"100%"},showSearch:!0,allowClear:!0,loading:A,optionFilterProp:"label",className:"rounded-md",maxTagCount:"responsive",children:S.map(e=>{let s=Q(e),a=s.length>50?`${s.substring(0,50)}...`:s;return(0,t.jsx)(k.Select.Option,{value:e,label:a,title:s,children:a},e)})})]})]}),I?(0,t.jsx)(P,{isDateChanging:!1}):(0,t.jsxs)(u.Grid,{numItems:4,className:"gap-4",children:[(b.results||[]).slice(0,4).map((e,s)=>{let a=Q(e.tag),r=a.length>15?a.substring(0,15)+"...":a;return(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(v.Tooltip,{title:a,placement:"top",children:(0,t.jsx)(j.Title,{className:"truncate",children:r})}),(0,t.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Success Requests"}),(0,t.jsx)(W,{className:"text-lg",children:en(e.successful_requests)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Total Tokens"}),(0,t.jsx)(W,{className:"text-lg",children:en(e.total_tokens)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Total Cost"}),(0,t.jsxs)(W,{className:"text-lg",children:["$",en(e.total_spend,4)]})]})]})]},s)}),Array.from({length:Math.max(0,4-(b.results||[]).length)}).map((e,s)=>(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"No Data"}),(0,t.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Success Requests"}),(0,t.jsx)(W,{className:"text-lg",children:"-"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Total Tokens"}),(0,t.jsx)(W,{className:"text-lg",children:"-"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Total Cost"}),(0,t.jsx)(W,{className:"text-lg",children:"-"})]})]})]},`empty-${s}`))]})]})}),(0,t.jsx)(c.Card,{children:(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)(h.TabList,{className:"mb-6",children:[(0,t.jsx)(m.Tab,{children:"DAU/WAU/MAU"}),(0,t.jsx)(m.Tab,{children:"Per User Usage (Last 30 Days)"})]}),(0,t.jsxs)(g.TabPanels,{children:[(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)(j.Title,{children:"DAU, WAU & MAU per Agent"}),(0,t.jsx)(z.Subtitle,{children:"Active users across different time periods"})]}),(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)(h.TabList,{className:"mb-6",children:[(0,t.jsx)(m.Tab,{children:"DAU"}),(0,t.jsx)(m.Tab,{children:"WAU"}),(0,t.jsx)(m.Tab,{children:"MAU"})]}),(0,t.jsxs)(g.TabPanels,{children:[(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)(j.Title,{className:"text-lg",children:"Daily Active Users - Last 7 Days"})}),O?(0,t.jsx)(P,{isDateChanging:!1}):(0,t.jsx)(o.BarChart,{data:er,index:"date",categories:et.map(Q),valueFormatter:e=>en(e),yAxisWidth:60,showLegend:!0,stack:!0})]}),(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)(j.Title,{className:"text-lg",children:"Weekly Active Users - Last 7 Weeks"})}),$?(0,t.jsx)(P,{isDateChanging:!1}):(0,t.jsx)(o.BarChart,{data:el,index:"week",categories:es.map(Q),valueFormatter:e=>en(e),yAxisWidth:60,showLegend:!0,stack:!0})]}),(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)(j.Title,{className:"text-lg",children:"Monthly Active Users - Last 7 Months"})}),R?(0,t.jsx)(P,{isDateChanging:!1}):(0,t.jsx)(o.BarChart,{data:ei,index:"month",categories:ea.map(Q),valueFormatter:e=>en(e),yAxisWidth:60,showLegend:!0,stack:!0})]})]})]})]}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(X,{accessToken:e,selectedTags:L,formatAbbreviatedNumber:en})})]})]})})]})};var et=e.i(617802);let es=["total_spend","total_prompt_tokens","total_completion_tokens","total_tokens","total_api_requests","total_successful_requests","total_failed_requests","total_cache_read_input_tokens","total_cache_creation_input_tokens"],ea={results:[],metadata:{total_spend:0,total_prompt_tokens:0,total_completion_tokens:0,total_tokens:0,total_api_requests:0,total_successful_requests:0,total_failed_requests:0,total_cache_read_input_tokens:0,total_cache_creation_input_tokens:0,total_pages:1,has_more:!1,page:1}};function er({fetchFn:e,args:t,enabled:s}){let[a,r]=(0,T.useState)(ea),[l,i]=(0,T.useState)(!1),[n,o]=(0,T.useState)(!1),[c,d]=(0,T.useState)({currentPage:0,totalPages:0}),[u,m]=(0,T.useState)(!1),x=(0,T.useRef)(0),h=(0,T.useRef)(!1),p=(0,T.useRef)(null),g=(0,T.useRef)(t);g.current=t;let f=JSON.stringify(t),j=(0,T.useCallback)(()=>{h.current=!0,m(!0),o(!1),null!==p.current&&(clearTimeout(p.current),p.current=null)},[]);return(0,T.useEffect)(()=>{if(!s){r(ea),i(!1),o(!1),d({currentPage:0,totalPages:0}),m(!1);return}let t=++x.current;h.current=!1,m(!1);let a=()=>x.current!==t||h.current,l=e=>new Promise(t=>{p.current=setTimeout(()=>{p.current=null,t()},e)});return(async()=>{let t=g.current;i(!0),o(!1),d({currentPage:1,totalPages:1});try{let s=[...t.slice(0,3),1,...t.slice(3)],n=await e(...s);if(a())return;r(n);let c=n.metadata?.total_pages||1;if(d({currentPage:1,totalPages:c}),c<=1)return void i(!1);i(!1),o(!0);let u=[...n.results],m={...n.metadata};for(let s=2;s<=c;s++){if(a()||(await l(300),a()))return;let i=[...t.slice(0,3),s,...t.slice(3)],n=await e(...i);if(a())return;u=[...u,...n.results],(m=function(e,t){let s={...e};for(let a of es)s[a]=(e[a]||0)+(t[a]||0);return s}(m,n.metadata)).total_pages=c,m.has_more=s{x.current++,null!==p.current&&(clearTimeout(p.current),p.current=null)}},[s,e,f]),{data:a,loading:l,isFetchingMore:n,progress:c,cancelled:u,cancel:j}}var el=e.i(23371),ei=e.i(286718);let en=({endpointData:e})=>{let s=e||{},a=T.default.useMemo(()=>Object.entries(s).map(([e,t])=>({endpoint:e,"metrics.successful_requests":t.metrics.successful_requests,"metrics.failed_requests":t.metrics.failed_requests,metrics:{successful_requests:t.metrics.successful_requests,failed_requests:t.metrics.failed_requests}})),[s]);return(0,t.jsxs)(c.Card,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)(j.Title,{children:"Success vs Failed Requests by Endpoint"}),(0,t.jsx)(ei.CustomLegend,{categories:["metrics.successful_requests","metrics.failed_requests"],colors:["green","red"]})]}),(0,t.jsx)(o.BarChart,{className:"mt-4",data:a,index:"endpoint",categories:["metrics.successful_requests","metrics.failed_requests"],colors:["green","red"],valueFormatter:e=>e.toLocaleString(),customTooltip:ei.CustomTooltip,showLegend:!1,stack:!0,yAxisWidth:60})]})};var eo=e.i(731195),ec=e.i(883966),ed=e.i(555706),eu=e.i(785183),em=e.i(93230),ex=e.i(844171),eh=(0,ec.generateCategoricalChart)({chartName:"LineChart",GraphicalChild:ed.Line,axisComponents:[{axisType:"xAxis",AxisComp:eu.XAxis},{axisType:"yAxis",AxisComp:em.YAxis}],formatAxisMap:ex.formatAxisMap}),ep=e.i(872526),eg=e.i(800494),ef=e.i(234239),ej=e.i(559559),e_=e.i(238279),ey=e.i(114887),eb=e.i(933303),ek=e.i(628781),ev=e.i(472007),eN=e.i(480731);let eT=T.default.forwardRef((e,t)=>{let{data:s=[],categories:a=[],index:r,colors:l=V.themeColorRange,valueFormatter:i=B.defaultValueFormatter,startEndOnly:n=!1,showXAxis:o=!0,showYAxis:c=!0,yAxisWidth:d=56,intervalType:u="equidistantPreserveStart",animationDuration:m=900,showAnimation:x=!1,showTooltip:h=!0,showLegend:p=!0,showGridLines:g=!0,autoMinValue:f=!1,curveType:j="linear",minValue:_,maxValue:y,connectNulls:b=!1,allowDecimals:k=!0,noDataText:v,className:N,onValueChange:C,enableLegendSlider:w=!1,customTooltip:S,rotateLabelX:q,padding:L=o||c?{left:20,right:20}:{left:0,right:0},tickGap:D=5,xAxisLabel:A,yAxisLabel:M}=e,O=(0,R.__rest)(e,["data","categories","index","colors","valueFormatter","startEndOnly","showXAxis","showYAxis","yAxisWidth","intervalType","animationDuration","showAnimation","showTooltip","showLegend","showGridLines","autoMinValue","curveType","minValue","maxValue","connectNulls","allowDecimals","noDataText","className","onValueChange","enableLegendSlider","customTooltip","rotateLabelX","padding","tickGap","xAxisLabel","yAxisLabel"]),[E,F]=(0,T.useState)(60),[$,U]=(0,T.useState)(void 0),[P,W]=(0,T.useState)(void 0),z=(0,ev.constructCategoryColors)(a,l),Y=(0,ev.getYAxisDomain)(f,_,y),K=!!C;function H(e){K&&(e===P&&!$||(0,ev.hasOnlyOneValueForThisKey)(s,e)&&$&&$.dataKey===e?(W(void 0),null==C||C(null)):(W(e),null==C||C({eventType:"category",categoryClicked:e})),U(void 0))}return T.default.createElement("div",Object.assign({ref:t,className:(0,I.tremorTwMerge)("w-full h-80",N)},O),T.default.createElement(eo.ResponsiveContainer,{className:"h-full w-full"},(null==s?void 0:s.length)?T.default.createElement(eh,{data:s,onClick:K&&(P||$)?()=>{U(void 0),W(void 0),null==C||C(null)}:void 0,margin:{bottom:A?30:void 0,left:M?20:void 0,right:M?5:void 0,top:5}},g?T.default.createElement(ep.CartesianGrid,{className:(0,I.tremorTwMerge)("stroke-1","stroke-tremor-border","dark:stroke-dark-tremor-border"),horizontal:!0,vertical:!1}):null,T.default.createElement(eu.XAxis,{padding:L,hide:!o,dataKey:r,interval:n?"preserveStartEnd":u,tick:{transform:"translate(0, 6)"},ticks:n?[s[0][r],s[s.length-1][r]]:void 0,fill:"",stroke:"",className:(0,I.tremorTwMerge)("text-tremor-label","fill-tremor-content","dark:fill-dark-tremor-content"),tickLine:!1,axisLine:!1,minTickGap:D,angle:null==q?void 0:q.angle,dy:null==q?void 0:q.verticalShift,height:null==q?void 0:q.xAxisHeight},A&&T.default.createElement(eg.Label,{position:"insideBottom",offset:-20,className:"fill-tremor-content-emphasis text-tremor-default font-medium dark:fill-dark-tremor-content-emphasis"},A)),T.default.createElement(em.YAxis,{width:d,hide:!c,axisLine:!1,tickLine:!1,type:"number",domain:Y,tick:{transform:"translate(-3, 0)"},fill:"",stroke:"",className:(0,I.tremorTwMerge)("text-tremor-label","fill-tremor-content","dark:fill-dark-tremor-content"),tickFormatter:i,allowDecimals:k},M&&T.default.createElement(eg.Label,{position:"insideLeft",style:{textAnchor:"middle"},angle:-90,offset:-15,className:"fill-tremor-content-emphasis text-tremor-default font-medium dark:fill-dark-tremor-content-emphasis"},M)),T.default.createElement(ef.Tooltip,{wrapperStyle:{outline:"none"},isAnimationActive:!1,cursor:{stroke:"#d1d5db",strokeWidth:1},content:h?({active:e,payload:t,label:s})=>S?T.default.createElement(S,{payload:null==t?void 0:t.map(e=>{var t;return Object.assign(Object.assign({},e),{color:null!=(t=z.get(e.dataKey))?t:eN.BaseColors.Gray})}),active:e,label:s}):T.default.createElement(eb.default,{active:e,payload:t,label:s,valueFormatter:i,categoryColors:z}):T.default.createElement(T.default.Fragment,null),position:{y:0}}),p?T.default.createElement(ej.Legend,{verticalAlign:"top",height:E,content:({payload:e})=>(0,ey.default)({payload:e},z,F,P,K?e=>H(e):void 0,w)}):null,a.map(e=>{var t;return T.default.createElement(ed.Line,{className:(0,I.tremorTwMerge)((0,B.getColorClassNames)(null!=(t=z.get(e))?t:eN.BaseColors.Gray,V.colorPalette.text).strokeColor),strokeOpacity:$||P&&P!==e?.3:1,activeDot:e=>{var t;let{cx:a,cy:r,stroke:l,strokeLinecap:i,strokeLinejoin:n,strokeWidth:o,dataKey:c}=e;return T.default.createElement(e_.Dot,{className:(0,I.tremorTwMerge)("stroke-tremor-background dark:stroke-dark-tremor-background",C?"cursor-pointer":"",(0,B.getColorClassNames)(null!=(t=z.get(c))?t:eN.BaseColors.Gray,V.colorPalette.text).fillColor),cx:a,cy:r,r:5,fill:"",stroke:l,strokeLinecap:i,strokeLinejoin:n,strokeWidth:o,onClick:(t,a)=>{a.stopPropagation(),K&&(e.index===(null==$?void 0:$.index)&&e.dataKey===(null==$?void 0:$.dataKey)||(0,ev.hasOnlyOneValueForThisKey)(s,e.dataKey)&&P&&P===e.dataKey?(W(void 0),U(void 0),null==C||C(null)):(W(e.dataKey),U({index:e.index,dataKey:e.dataKey}),null==C||C(Object.assign({eventType:"dot",categoryClicked:e.dataKey},e.payload))))}})},dot:t=>{var a;let{stroke:r,strokeLinecap:l,strokeLinejoin:i,strokeWidth:n,cx:o,cy:c,dataKey:d,index:u}=t;return(0,ev.hasOnlyOneValueForThisKey)(s,e)&&!($||P&&P!==e)||(null==$?void 0:$.index)===u&&(null==$?void 0:$.dataKey)===e?T.default.createElement(e_.Dot,{key:u,cx:o,cy:c,r:5,stroke:r,fill:"",strokeLinecap:l,strokeLinejoin:i,strokeWidth:n,className:(0,I.tremorTwMerge)("stroke-tremor-background dark:stroke-dark-tremor-background",C?"cursor-pointer":"",(0,B.getColorClassNames)(null!=(a=z.get(d))?a:eN.BaseColors.Gray,V.colorPalette.text).fillColor)}):T.default.createElement(T.Fragment,{key:u})},key:e,name:e,type:j,dataKey:e,stroke:"",strokeWidth:2,strokeLinejoin:"round",strokeLinecap:"round",isAnimationActive:x,animationDuration:m,connectNulls:b})}),C?a.map(e=>T.default.createElement(ed.Line,{className:(0,I.tremorTwMerge)("cursor-pointer"),strokeOpacity:0,key:e,name:e,type:j,dataKey:e,stroke:"transparent",fill:"transparent",legendType:"none",tooltipType:"none",strokeWidth:12,connectNulls:b,onClick:(e,t)=>{t.stopPropagation();let{name:s}=e;H(s)}})):null):T.default.createElement(ek.default,{noDataText:v})))});eT.displayName="LineChart";let eC=function({dailyData:e,endpointData:s}){let a=(0,T.useMemo)(()=>{var t;let s,a;return e?.results&&0!==e.results.length?(t=e.results,s=[],a=new Set,t.forEach(e=>{e.breakdown.endpoints&&Object.keys(e.breakdown.endpoints).forEach(e=>a.add(e))}),t.forEach(e=>{let t={date:new Date(e.date).toLocaleDateString("en-US",{month:"short",day:"numeric"})};a.forEach(s=>{let a=e.breakdown.endpoints?.[s];t[s]=a?.metrics.api_requests||0}),s.push(t)}),s.reverse()):[]},[e]),r=(0,T.useMemo)(()=>0===a.length?[]:Object.keys(a[0]).filter(e=>"date"!==e),[a]);return(0,t.jsxs)(c.Card,{className:"mb-6",children:[(0,t.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,t.jsx)(j.Title,{children:"Endpoint Usage Trends"})}),(0,t.jsx)(eT,{className:"h-80",data:a,index:"date",categories:r,colors:["blue","cyan","indigo","violet","purple","fuchsia","pink","rose","red","orange"].slice(0,r.length),valueFormatter:e=>e.toLocaleString(),showLegend:!0,showGridLines:!0,yAxisWidth:60,connectNulls:!0,curveType:"natural"})]})};var ew=e.i(291542),eS=e.i(309821);e.s(["Progress",()=>eS.default],497650);var eS=eS;let eq=({endpointData:e})=>{let s=Object.entries(e).map(([e,t])=>{var s,a;return{key:e,endpoint:e,successful_requests:t.metrics.successful_requests,failed_requests:t.metrics.failed_requests,api_requests:t.metrics.api_requests,total_tokens:t.metrics.total_tokens,spend:t.metrics.spend,successRate:(s=t.metrics.successful_requests,0===(a=t.metrics.api_requests)?0:s/a*100)}}),a=[{title:"Endpoint",dataIndex:"endpoint",key:"endpoint",render:e=>(0,t.jsx)("span",{className:"font-medium",children:e})},{title:"Successful / Failed",key:"requests",render:(e,s)=>{let a=s.api_requests>0?s.successful_requests/s.api_requests*100:0,r=s.api_requests>0?s.failed_requests/s.api_requests*100:0,l={"0%":"#22c55e"};return a>0&&a<100&&(l[`${a}%`]="#22c55e",l[`${a+.01}%`]="#ef4444"),l["100%"]=r>0?"#ef4444":"#22c55e",(0,t.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,t.jsx)("div",{className:"flex-1 relative",children:(0,t.jsx)(eS.default,{percent:a+r,size:"small",strokeColor:l,showInfo:!1})}),(0,t.jsxs)("div",{className:"flex items-center space-x-2 text-sm min-w-[100px]",children:[(0,t.jsx)("span",{className:"text-green-600 font-medium",children:s.successful_requests.toLocaleString()}),(0,t.jsx)("span",{className:"text-gray-400",children:"/"}),(0,t.jsx)("span",{className:"text-red-600 font-medium",children:s.failed_requests.toLocaleString()})]})]})}},{title:"Total Request",dataIndex:"api_requests",key:"api_requests",render:e=>e.toLocaleString()},{title:"Success Rate",dataIndex:"successRate",key:"successRate",render:e=>{let s=e.toFixed(2);return(0,t.jsxs)("span",{className:e>=95?"text-green-600 font-medium":e>=80?"text-yellow-600 font-medium":"text-red-600 font-medium",children:[s,"%"]})}},{title:"Total Tokens",dataIndex:"total_tokens",key:"total_tokens",render:e=>e.toLocaleString()},{title:"Spend",dataIndex:"spend",key:"spend",render:e=>`$${(0,D.formatNumberWithCommas)(e,2)}`}];return(0,t.jsx)(ew.Table,{columns:a,dataSource:s,pagination:!1})},eL=({userSpendData:e})=>{let s=(0,T.useMemo)(()=>{let t={};return e?.results&&e.results.forEach(e=>{Object.entries(e.breakdown.endpoints||{}).forEach(([e,s])=>{t[e]||(t[e]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:s.metadata||{},api_key_breakdown:{}}),t[e].metrics.spend+=s.metrics.spend,t[e].metrics.prompt_tokens+=s.metrics.prompt_tokens,t[e].metrics.completion_tokens+=s.metrics.completion_tokens,t[e].metrics.total_tokens+=s.metrics.total_tokens,t[e].metrics.api_requests+=s.metrics.api_requests,t[e].metrics.successful_requests+=s.metrics.successful_requests||0,t[e].metrics.failed_requests+=s.metrics.failed_requests||0,t[e].metrics.cache_read_input_tokens+=s.metrics.cache_read_input_tokens||0,t[e].metrics.cache_creation_input_tokens+=s.metrics.cache_creation_input_tokens||0})}),t},[e]);return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(eq,{endpointData:s}),(0,t.jsx)(en,{endpointData:s}),(0,t.jsx)(eC,{dailyData:e,endpointData:s})]})};var eD=e.i(214541),eA=e.i(413990),eM=e.i(785242);let{Text:eO}=N.Typography,eE=({value:e=[],onChange:s,disabled:a,organizationId:r,pageSize:i=20,placeholder:o="Search teams by alias..."})=>{let[c,d]=(0,T.useState)(""),[u,m]=(0,n.useDebouncedState)("",{wait:300}),{data:x,fetchNextPage:h,hasNextPage:p,isFetchingNextPage:g,isLoading:f}=(0,eM.useInfiniteTeams)(i,u||void 0,r),j=(0,T.useMemo)(()=>{if(!x?.pages)return[];let e=new Set,t=[];for(let s of x.pages)for(let a of s.teams)e.has(a.team_id)||(e.add(a.team_id),t.push(a));return t},[x]);return(0,t.jsx)(k.Select,{mode:"multiple",showSearch:!0,placeholder:o,value:e,onChange:e=>s?.(e),disabled:a,allowClear:!0,filterOption:!1,onSearch:e=>{d(e),m(e)},searchValue:c,onPopupScroll:e=>{let t=e.currentTarget;(t.scrollTop+t.clientHeight)/t.scrollHeight>=.8&&p&&!g&&h()},loading:f,notFoundContent:f?(0,t.jsx)(l.LoadingOutlined,{spin:!0}):"No teams found",style:{width:"100%"},popupRender:e=>(0,t.jsxs)(t.Fragment,{children:[e,g&&(0,t.jsx)("div",{style:{textAlign:"center",padding:8},children:(0,t.jsx)(l.LoadingOutlined,{spin:!0})})]}),children:j.map(e=>(0,t.jsxs)(k.Select.Option,{value:e.team_id,children:[(0,t.jsx)("span",{className:"font-medium",children:e.team_alias})," ",(0,t.jsxs)(eO,{type:"secondary",children:["(",e.team_id,")"]})]},e.team_id))})};var eF=e.i(193523),eF=eF,e$=e.i(916925),eU=e.i(1023),eP=e.i(149121);function eR({topModels:e,topModelsLimit:s,setTopModelsLimit:a}){let[r,l]=(0,T.useState)("table"),i=[{header:"Model",accessorKey:"key",cell:e=>e.getValue()||"-"},{header:"Spend (USD)",accessorKey:"spend",cell:e=>{let t=e.getValue();return`$${(0,D.formatNumberWithCommas)(t,2)}`}},{header:"Successful",accessorKey:"successful_requests",cell:e=>(0,t.jsx)("span",{className:"text-green-600",children:e.getValue()?.toLocaleString()||0})},{header:"Failed",accessorKey:"failed_requests",cell:e=>(0,t.jsx)("span",{className:"text-red-600",children:e.getValue()?.toLocaleString()||0})},{header:"Tokens",accessorKey:"tokens",cell:e=>e.getValue()?.toLocaleString()||0}],n=e.slice(0,s);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"mb-4 flex justify-between items-center",children:[(0,t.jsx)(b.Segmented,{options:[{label:"5",value:5},{label:"10",value:10},{label:"25",value:25},{label:"50",value:50}],value:s,onChange:e=>a(e)}),(0,t.jsxs)("div",{className:"flex space-x-2",children:[(0,t.jsx)("button",{onClick:()=>l("table"),className:`px-3 py-1 text-sm rounded-md ${"table"===r?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-700"}`,children:"Table View"}),(0,t.jsx)("button",{onClick:()=>l("chart"),className:`px-3 py-1 text-sm rounded-md ${"chart"===r?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-700"}`,children:"Chart View"})]})]}),"chart"===r?(0,t.jsx)("div",{className:"relative max-h-[600px] overflow-y-auto",children:(0,t.jsx)(o.BarChart,{className:"mt-4 cursor-pointer hover:opacity-90",style:{height:52*Math.min(n.length,s)},data:n,index:"key",categories:["spend"],colors:["cyan"],valueFormatter:e=>`$${(0,D.formatNumberWithCommas)(e,2)}`,layout:"vertical",yAxisWidth:200,tickGap:5,showLegend:!1})}):(0,t.jsx)("div",{className:"border rounded-lg overflow-hidden max-h-[600px] overflow-y-auto",children:(0,t.jsx)(eP.DataTable,{columns:i,data:n,renderSubComponent:()=>(0,t.jsx)(t.Fragment,{}),getRowCanExpand:()=>!1,isLoading:!1})})]})}let eV={tag:F.tagDailyActivityCall,team:F.teamDailyActivityCall,organization:F.organizationDailyActivityCall,customer:F.customerDailyActivityCall,agent:F.agentDailyActivityCall,user:F.userDailyActivityCall},eI=({accessToken:e,entityType:s,entityId:r,entityList:i,dateValue:n})=>{let b,k,v,{teams:N}=(0,eD.default)(),[C,w]=(0,T.useState)([]),[S,q]=(0,T.useState)(5),[L,A]=(0,T.useState)(5),[O,E]=(0,T.useState)(5),$=(0,T.useMemo)(()=>n.from?new Date(n.from):null,[n.from]),U=(0,T.useMemo)(()=>n.to?new Date(n.to):null,[n.to]),P=(0,T.useMemo)(()=>"user"===s?C.length>0?C[0]:null:C.length>0?C:null,[s,C]),R=eV[s],V=!!e&&!!$&&!!U,{data:I,isFetchingMore:B,progress:W,cancelled:Q,cancel:X}=er({fetchFn:R,args:[e,$,U,P],enabled:V}),{data:ee,isFetchingMore:et,progress:es,cancelled:ea,cancel:ei}=er({fetchFn:F.agentDailyActivityCall,args:[e,$,U,null],enabled:V&&"team"===s}),en=(0,M.processActivityData)(I,"models",N||[]),eo=(0,M.processActivityData)(I,"api_keys",N||[]),ec="team"===s?(0,M.processActivityData)(ee,"entities",N||[]):{},ed=()=>{let e={};return I.results.forEach(t=>{Object.entries(t.breakdown.providers||{}).forEach(([t,s])=>{e[t]||(e[t]={provider:t,spend:0,requests:0,successful_requests:0,failed_requests:0,tokens:0});try{e[t].spend+=s.metrics.spend,e[t].requests+=s.metrics.api_requests,e[t].successful_requests+=s.metrics.successful_requests,e[t].failed_requests+=s.metrics.failed_requests,e[t].tokens+=s.metrics.total_tokens}catch(e){console.error(`Error processing provider ${t}: ${e}`)}})}),Object.values(e).filter(e=>e.spend>0).sort((e,t)=>t.spend-e.spend)},eu=(e,t)=>{if(i){let t=i.find(t=>t.value===e);if(t)return t.label}return t?.team_alias?t.team_alias:e},em=()=>{var e;let t={};return I.results.forEach(e=>{Object.entries(e.breakdown.entities||{}).forEach(([e,s])=>{t[e]||(t[e]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{alias:eu(e,s.metadata),id:e}}),t[e].metrics.spend+=s.metrics.spend,t[e].metrics.api_requests+=s.metrics.api_requests,t[e].metrics.successful_requests+=s.metrics.successful_requests,t[e].metrics.failed_requests+=s.metrics.failed_requests,t[e].metrics.total_tokens+=s.metrics.total_tokens})}),e=Object.values(t).sort((e,t)=>t.metrics.spend-e.metrics.spend),0===C.length?e:e.filter(e=>C.includes(e.metadata.id))},ex=s.charAt(0).toUpperCase()+s.slice(1);return(0,t.jsxs)("div",{style:{width:"100%"},className:"relative",children:[B&&(0,t.jsx)(_.Alert,{banner:!0,type:"warning",className:"mb-2",message:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{children:[(0,t.jsx)(l.LoadingOutlined,{spin:!0,className:"mr-2"}),"Currently fetching spend data: fetched ",W.currentPage," / ",W.totalPages," pages. Charts will update periodically as data loads. Moving off of this page will stop and reset this. To continue using the UI in the meantime,"," ",(0,t.jsxs)("a",{href:window.location.href,target:"_blank",rel:"noopener noreferrer",children:["open a new tab ",(0,t.jsx)(a.ExportOutlined,{})]}),"."]}),(0,t.jsx)(y.Button,{type:"primary",danger:!0,onClick:X,children:"Stop"})]})}),Q&&(0,t.jsx)(_.Alert,{banner:!0,type:"info",className:"mb-2",message:(0,t.jsxs)("span",{children:["Showing partial data (",W.currentPage,"/",W.totalPages," pages loaded)"]})}),et&&"team"===s&&(0,t.jsx)(_.Alert,{banner:!0,type:"warning",className:"mb-2",message:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{children:[(0,t.jsx)(l.LoadingOutlined,{spin:!0,className:"mr-2"}),"Currently fetching agent data: fetched ",es.currentPage," / ",es.totalPages," pages. Charts will update periodically as data loads. Moving off of this page will stop and reset this. To continue using the UI in the meantime,"," ",(0,t.jsxs)("a",{href:window.location.href,target:"_blank",rel:"noopener noreferrer",children:["open a new tab ",(0,t.jsx)(a.ExportOutlined,{})]}),"."]}),(0,t.jsx)(y.Button,{type:"primary",danger:!0,onClick:ei,children:"Stop"})]})}),ea&&"team"===s&&(0,t.jsx)(_.Alert,{banner:!0,type:"info",className:"mb-2",message:(0,t.jsxs)("span",{children:["Showing partial agent data (",es.currentPage,"/",es.totalPages," pages loaded)"]})}),"team"===s&&(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(f.Text,{className:"mb-2",children:"Filter by team"}),(0,t.jsx)(eE,{value:C,onChange:w})]}),(0,t.jsx)(eF.default,{dateValue:n,entityType:s,spendData:I,showFilters:"team"!==s&&null!==i&&i.length>0,filterLabel:`Filter by ${s}`,filterPlaceholder:`Select ${s} to filter...`,selectedFilters:C,onFiltersChange:w,filterOptions:(()=>{if(i)return i})()||void 0,filterMode:"user"===s?"single":"multiple",teams:N||[]}),(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)(h.TabList,{variant:"solid",className:"mt-1",children:[(0,t.jsx)(m.Tab,{children:"Cost"}),(0,t.jsx)(m.Tab,{children:"agent"===s?"Request / Token Consumption":"Model Activity"}),"team"===s?(0,t.jsx)(m.Tab,{children:"Agent Activity"}):(0,t.jsx)(t.Fragment,{}),(0,t.jsx)(m.Tab,{children:"Key Activity"}),(0,t.jsx)(m.Tab,{children:"Endpoint Activity"})]}),(0,t.jsxs)(g.TabPanels,{children:[(0,t.jsx)(p.TabPanel,{children:(0,t.jsxs)(u.Grid,{numItems:2,className:"gap-2 w-full",children:[(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsxs)(j.Title,{children:[ex," Spend Overview"]}),(0,t.jsxs)(u.Grid,{numItems:5,className:"gap-4 mt-4",children:[(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Total Spend"}),(0,t.jsxs)(f.Text,{className:"text-2xl font-bold mt-2",children:["$",(0,D.formatNumberWithCommas)(I.metadata.total_spend,2)]})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Total Requests"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2",children:I.metadata.total_api_requests.toLocaleString()})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Successful Requests"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-green-600",children:I.metadata.total_successful_requests.toLocaleString()})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Failed Requests"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-red-600",children:I.metadata.total_failed_requests.toLocaleString()})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Total Tokens"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2",children:I.metadata.total_tokens.toLocaleString()})]})]})]})}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Daily Spend"}),(0,t.jsx)(o.BarChart,{data:[...I.results].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),index:"date",categories:["metrics.spend"],colors:["cyan"],valueFormatter:el.valueFormatterSpend,yAxisWidth:100,showLegend:!1,customTooltip:({payload:e,active:s})=>{if(!s||!e?.[0])return null;let a=e[0].payload,r=Object.keys(a.breakdown.entities||{}).length;return(0,t.jsxs)("div",{className:"bg-white p-4 shadow-lg rounded-lg border",children:[(0,t.jsx)("p",{className:"font-bold",children:a.date}),(0,t.jsxs)("p",{className:"text-cyan-500",children:["Total Spend: $",(0,D.formatNumberWithCommas)(a.metrics.spend,2)]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Total Requests: ",a.metrics.api_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Successful: ",a.metrics.successful_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Failed: ",a.metrics.failed_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Total Tokens: ",a.metrics.total_tokens]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Total ",ex,"s: ",r]}),(0,t.jsxs)("div",{className:"mt-2 border-t pt-2",children:[(0,t.jsxs)("p",{className:"font-semibold",children:["Spend by ",ex,":"]}),Object.entries(a.breakdown.entities||{}).sort(([,e],[,t])=>{let s=e.metrics.spend;return t.metrics.spend-s}).slice(0,5).map(([e,s])=>(0,t.jsxs)("p",{className:"text-sm text-gray-600",children:[eu(e,s.metadata),": $",(0,D.formatNumberWithCommas)(s.metrics.spend,2)]},e)),r>5&&(0,t.jsxs)("p",{className:"text-sm text-gray-500 italic",children:["...and ",r-5," more"]})]})]})}})]})}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsx)(c.Card,{children:(0,t.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,t.jsxs)("div",{className:"flex flex-col space-y-2",children:[(0,t.jsxs)(j.Title,{children:["Spend Per ",ex]}),(0,t.jsx)(z.Subtitle,{className:"text-xs",children:"Showing Top 5 by Spend"}),(0,t.jsxs)("div",{className:"flex items-center text-sm text-gray-500",children:[(0,t.jsxs)("span",{children:["Get Started by Tracking cost per ",ex," "]}),(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/enterprise#spend-tracking",className:"text-blue-500 hover:text-blue-700 ml-1",children:"here"})]})]}),(0,t.jsxs)(u.Grid,{numItems:2,className:"gap-6",children:[(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsx)(o.BarChart,{className:"mt-4 h-52",data:em().slice(0,5).map(e=>({...e,metadata:{...e.metadata,alias_display:e.metadata.alias&&e.metadata.alias.length>15?`${e.metadata.alias.slice(0,15)}...`:e.metadata.alias}})),index:"metadata.alias_display",categories:["metrics.spend"],colors:["cyan"],valueFormatter:el.valueFormatterSpend,layout:"vertical",showLegend:!1,yAxisWidth:150,customTooltip:({payload:e,active:s})=>{if(!s||!e?.[0])return null;let a=e[0].payload;return(0,t.jsxs)("div",{className:"bg-white p-4 shadow-lg rounded-lg border",children:[(0,t.jsx)("p",{className:"font-bold",children:a.metadata.alias}),(0,t.jsxs)("p",{className:"text-cyan-500",children:["Spend: $",(0,D.formatNumberWithCommas)(a.metrics.spend,4)]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Requests: ",a.metrics.api_requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-green-600",children:["Successful: ",a.metrics.successful_requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-red-600",children:["Failed: ",a.metrics.failed_requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Tokens: ",a.metrics.total_tokens.toLocaleString()]})]})}})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsx)("div",{className:"h-52 overflow-y-auto",children:(0,t.jsxs)(Y.Table,{children:[(0,t.jsx)(K.TableHead,{children:(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(G.TableHeaderCell,{children:ex}),(0,t.jsx)(G.TableHeaderCell,{children:"Spend"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-green-600",children:"Successful"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-red-600",children:"Failed"}),(0,t.jsx)(G.TableHeaderCell,{children:"Tokens"})]})}),(0,t.jsx)(Z.TableBody,{children:em().filter(e=>e.metrics.spend>0).map(e=>(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(J.TableCell,{children:e.metadata.alias}),(0,t.jsxs)(J.TableCell,{children:["$",(0,D.formatNumberWithCommas)(e.metrics.spend,4)]}),(0,t.jsx)(J.TableCell,{className:"text-green-600",children:e.metrics.successful_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{className:"text-red-600",children:e.metrics.failed_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{children:e.metrics.total_tokens.toLocaleString()})]},e.metadata.id))})]})})})]})]})})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Top Virtual Keys"}),(0,t.jsx)(eU.default,{topKeys:(console.log("debugTags",{spendData:I}),b={},I.results.forEach(e=>{let{breakdown:t}=e,{entities:s}=t;console.log("debugTags",{entities:s});let a=Object.keys(s).reduce((e,t)=>{let{api_key_breakdown:a}=s[t];return Object.keys(a).forEach(s=>{let r={tag:t,usage:a[s].metrics.spend};e[s]?e[s].push(r):e[s]=[r]}),e},{});console.log("debugTags",{tagDictionary:a}),Object.entries(e.breakdown.api_keys||{}).forEach(([e,t])=>{b[e]||(b[e]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{key_alias:t.metadata.key_alias,team_id:t.metadata.team_id||null,tags:a[e]||[]}},console.log("debugTags",{keySpend:b})),b[e].metrics.spend+=t.metrics.spend,b[e].metrics.prompt_tokens+=t.metrics.prompt_tokens,b[e].metrics.completion_tokens+=t.metrics.completion_tokens,b[e].metrics.total_tokens+=t.metrics.total_tokens,b[e].metrics.api_requests+=t.metrics.api_requests,b[e].metrics.successful_requests+=t.metrics.successful_requests,b[e].metrics.failed_requests+=t.metrics.failed_requests,b[e].metrics.cache_read_input_tokens+=t.metrics.cache_read_input_tokens||0,b[e].metrics.cache_creation_input_tokens+=t.metrics.cache_creation_input_tokens||0})}),Object.entries(b).map(([e,t])=>({api_key:e,key_alias:t.metadata.key_alias||"-",tags:t.metadata.tags||"-",spend:t.metrics.spend})).sort((e,t)=>t.spend-e.spend).slice(0,S)),teams:null,showTags:"tag"===s,topKeysLimit:S,setTopKeysLimit:q})]})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"agent"===s?"Top Agents":"Top Models"}),(0,t.jsx)(eR,{topModels:(k={},I.results.forEach(e=>{Object.entries(e.breakdown.models||{}).forEach(([e,t])=>{k[e]||(k[e]={spend:0,requests:0,successful_requests:0,failed_requests:0,tokens:0});try{k[e].spend+=t.metrics.spend}catch(s){console.error(`Error adding spend for ${e}: ${s}, got metrics: ${JSON.stringify(t)}`)}k[e].requests+=t.metrics.api_requests,k[e].successful_requests+=t.metrics.successful_requests,k[e].failed_requests+=t.metrics.failed_requests,k[e].tokens+=t.metrics.total_tokens})}),Object.entries(k).map(([e,t])=>({key:e,...t})).sort((e,t)=>t.spend-e.spend).slice(0,L)),topModelsLimit:L,setTopModelsLimit:A})]})}),"team"===s&&(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Top Agents Driving Spend"}),(0,t.jsx)(eR,{topModels:(v={},ee.results.forEach(e=>{Object.entries(e.breakdown.entities||{}).forEach(([e,t])=>{v[e]||(v[e]={spend:0,requests:0,successful_requests:0,failed_requests:0,tokens:0,agent_name:t.metadata?.agent_name||e}),v[e].spend+=t.metrics.spend,v[e].requests+=t.metrics.api_requests,v[e].successful_requests+=t.metrics.successful_requests,v[e].failed_requests+=t.metrics.failed_requests,v[e].tokens+=t.metrics.total_tokens})}),Object.entries(v).map(([e,t])=>({key:t.agent_name,...t})).sort((e,t)=>t.spend-e.spend).slice(0,O)),topModelsLimit:O,setTopModelsLimit:E})]})}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsx)(c.Card,{children:(0,t.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,t.jsx)(j.Title,{children:"Provider Usage"}),(0,t.jsxs)(u.Grid,{numItems:2,children:[(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsx)(eA.DonutChart,{className:"mt-4 h-40",data:ed(),index:"provider",category:"spend",valueFormatter:e=>`$${(0,D.formatNumberWithCommas)(e,2)}`,colors:["cyan","blue","indigo","violet","purple"]})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(Y.Table,{children:[(0,t.jsx)(K.TableHead,{children:(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(G.TableHeaderCell,{children:"Provider"}),(0,t.jsx)(G.TableHeaderCell,{children:"Spend"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-green-600",children:"Successful"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-red-600",children:"Failed"}),(0,t.jsx)(G.TableHeaderCell,{children:"Tokens"})]})}),(0,t.jsx)(Z.TableBody,{children:ed().map(e=>(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(J.TableCell,{children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[e.provider&&(0,t.jsx)("img",{src:(0,e$.getProviderLogoAndName)(e.provider).logo,alt:`${e.provider} logo`,className:"w-4 h-4",onError:t=>{let s=t.target,a=s.parentElement;if(a){let t=document.createElement("div");t.className="w-4 h-4 rounded-full bg-gray-200 flex items-center justify-center text-xs",t.textContent=e.provider?.charAt(0)||"-",a.replaceChild(t,s)}}}),(0,t.jsx)("span",{children:e.provider})]})}),(0,t.jsxs)(J.TableCell,{children:["$",(0,D.formatNumberWithCommas)(e.spend,2)]}),(0,t.jsx)(J.TableCell,{className:"text-green-600",children:e.successful_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{className:"text-red-600",children:e.failed_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{children:e.tokens.toLocaleString()})]},e.provider))})]})})]})]})})})]})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:en,hidePromptCachingMetrics:"agent"===s})}),"team"===s?(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:ec})}):(0,t.jsx)(t.Fragment,{}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:eo,hidePromptCachingMetrics:"agent"===s})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(eL,{userSpendData:I})})]})]})]})};var eB=e.i(793130),eW=e.i(418371);let ez=({loading:e,isDateChanging:s,providerSpend:a})=>{let[l,i]=(0,T.useState)(!1),[n,o]=(0,T.useState)(!1),m=a.filter(e=>e.provider?.toLowerCase()==="unknown"?n:!!l||e.spend>0);return(0,t.jsxs)(c.Card,{className:"h-full",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(j.Title,{children:"Spend by Provider"}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("label",{className:"text-sm text-gray-700",children:"Show Zero Spend"}),(0,t.jsx)(eB.Switch,{checked:l,onChange:i})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("label",{className:"text-sm text-gray-700",children:"Show Unknown"}),(0,t.jsx)(v.Tooltip,{title:"Requests that failed to route to a provider",children:(0,t.jsx)(r.InfoCircleOutlined,{className:"text-gray-400 hover:text-gray-600"})})]}),(0,t.jsx)(eB.Switch,{checked:n,onChange:o})]})]})]}),e?(0,t.jsx)(P,{isDateChanging:s}):(0,t.jsxs)(u.Grid,{numItems:2,children:[(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsx)(eA.DonutChart,{className:"mt-4 h-40",data:m,index:"provider",category:"spend",valueFormatter:e=>`$${(0,D.formatNumberWithCommas)(e,2)}`,colors:["cyan"]})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(Y.Table,{children:[(0,t.jsx)(K.TableHead,{children:(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(G.TableHeaderCell,{children:"Provider"}),(0,t.jsx)(G.TableHeaderCell,{children:"Spend"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-green-600",children:"Successful"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-red-600",children:"Failed"}),(0,t.jsx)(G.TableHeaderCell,{children:"Tokens"})]})}),(0,t.jsx)(Z.TableBody,{children:m.map(e=>(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(J.TableCell,{children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[e.provider&&(0,t.jsx)(eW.ProviderLogo,{provider:e.provider,className:"w-4 h-4"}),(0,t.jsx)("span",{children:e.provider})]})}),(0,t.jsxs)(J.TableCell,{children:["$",(0,D.formatNumberWithCommas)(e.spend,2)]}),(0,t.jsx)(J.TableCell,{className:"text-green-600",children:e.successful_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{className:"text-red-600",children:e.failed_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{children:e.tokens.toLocaleString()})]},e.provider))})]})})]})]})};var eY=e.i(311451),eK=e.i(482725),eH=e.i(918789);let{TextArea:eG}=eY.Input,eZ={get_usage_data:"📊",get_team_usage_data:"👥",get_tag_usage_data:"🏷️"},eJ=({step:e})=>{let s=eZ[e.tool_name]||"🔧",a=e.arguments,r=a.start_date&&a.end_date?`${a.start_date} → ${a.end_date}`:"",l=a.team_ids||a.tags||a.user_id||"";return(0,t.jsxs)("div",{className:"flex items-start gap-2 px-3 py-2 rounded-lg bg-gray-100 border border-gray-200 text-xs",children:[(0,t.jsx)("span",{className:"flex-shrink-0 mt-0.5",children:"running"===e.status?(0,t.jsx)(eK.Spin,{size:"small"}):"error"===e.status?(0,t.jsx)("span",{className:"text-red-500",children:"✗"}):(0,t.jsx)("span",{className:"text-green-600",children:"✓"})}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"font-medium text-gray-700",children:[s," ",e.tool_label]}),r&&(0,t.jsx)("div",{className:"text-gray-500 mt-0.5",children:r}),l&&(0,t.jsxs)("div",{className:"text-gray-500 mt-0.5",children:["Filter: ",l]}),"error"===e.status&&e.error&&(0,t.jsx)("div",{className:"text-red-600 mt-0.5",children:e.error})]})]})},eQ=({content:e})=>(0,t.jsx)(eH.default,{components:{p:({children:e})=>(0,t.jsx)("p",{className:"mb-2 last:mb-0",children:e}),strong:({children:e})=>(0,t.jsx)("strong",{className:"font-semibold",children:e}),ul:({children:e})=>(0,t.jsx)("ul",{className:"list-disc pl-4 mb-2 space-y-0.5",children:e}),ol:({children:e})=>(0,t.jsx)("ol",{className:"list-decimal pl-4 mb-2 space-y-0.5",children:e}),li:({children:e})=>(0,t.jsx)("li",{children:e}),h1:({children:e})=>(0,t.jsx)("h4",{className:"font-semibold text-sm mt-2 mb-1",children:e}),h2:({children:e})=>(0,t.jsx)("h4",{className:"font-semibold text-sm mt-2 mb-1",children:e}),h3:({children:e})=>(0,t.jsx)("h4",{className:"font-semibold text-sm mt-2 mb-1",children:e}),code:({children:e,className:s})=>s?.includes("language-")?(0,t.jsx)("pre",{className:"bg-gray-100 rounded p-2 my-1 overflow-x-auto text-xs",children:(0,t.jsx)("code",{children:e})}):(0,t.jsx)("code",{className:"px-1 py-0.5 rounded bg-gray-100 text-xs font-mono",children:e}),table:({children:e})=>(0,t.jsx)("div",{className:"overflow-x-auto my-2",children:(0,t.jsx)("table",{className:"text-xs border-collapse w-full",children:e})}),th:({children:e})=>(0,t.jsx)("th",{className:"border border-gray-200 px-2 py-1 bg-gray-50 font-medium text-left",children:e}),td:({children:e})=>(0,t.jsx)("td",{className:"border border-gray-200 px-2 py-1",children:e})},children:e}),eX=({open:e,onClose:s,accessToken:a})=>{let[r,l]=(0,T.useState)([]),[i,n]=(0,T.useState)(""),[o,c]=(0,T.useState)(!1),[d,u]=(0,T.useState)(void 0),[m,x]=(0,T.useState)([]),[h,p]=(0,T.useState)(!1),[g,f]=(0,T.useState)(""),[j,_]=(0,T.useState)(null),[b,v]=(0,T.useState)([]),N=(0,T.useRef)(null),C=(0,T.useRef)(null);(0,T.useEffect)(()=>{e&&0===m.length&&w()},[e]),(0,T.useEffect)(()=>{"function"==typeof N.current?.scrollIntoView&&N.current.scrollIntoView({behavior:"smooth"})},[r,g,b,j]);let w=async()=>{if(a){p(!0);try{let e=await (0,F.modelHubCall)(a);if(e?.data?.length>0){let t=e.data.map(e=>e.model_group).sort();x(t)}}catch(e){console.error("Failed to load models:",e)}finally{p(!1)}}},S=async()=>{if(!a||!i.trim()||o)return;let e=[...r,{role:"user",content:i.trim()}];l(e),n(""),c(!0),f(""),_(null),v([]);let t=new AbortController;C.current=t;let s="",u=[];try{await (0,F.usageAiChatStream)(a,e.slice(-20).map(e=>({role:e.role,content:e.content})),d||"",e=>{_(null),s+=e,f(s)},()=>{_(null),v([]),l(e=>[...e,{role:"assistant",content:s,toolCalls:u.length>0?[...u]:void 0}]),f("")},e=>{_(null),v([]),l(t=>[...t,{role:"assistant",content:`Error: ${e}`}]),f("")},e=>{_(e)},e=>{let t=u.findIndex(t=>t.tool_name===e.tool_name);t>=0?u[t]={...e}:u.push({...e}),v([...u])},t.signal)}catch(s){if(s?.name==="AbortError"||t.signal.aborted)return;let e=s?.message||"Failed to get response. Please try again.";l(t=>[...t,{role:"assistant",content:`Error: ${e}`}]),f("")}finally{c(!1),C.current=null}};return(0,t.jsxs)("div",{"data-testid":"usage-ai-chat-panel",className:`fixed top-0 right-0 h-full bg-white border-l border-gray-200 shadow-2xl z-50 flex flex-col transition-transform duration-300 ease-in-out ${e?"translate-x-0":"translate-x-full"}`,style:{width:420},children:[(0,t.jsxs)("div",{className:"px-5 pt-5 pb-3 border-b border-gray-100 flex-shrink-0",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("svg",{className:"w-5 h-5 text-blue-600",viewBox:"0 0 16 16",fill:"currentColor",children:(0,t.jsx)("path",{d:"M8 1l1.5 3.5L13 6l-3.5 1.5L8 11 6.5 7.5 3 6l3.5-1.5L8 1zm4 7l.75 1.75L14.5 10.5l-1.75.75L12 13l-.75-1.75L9.5 10.5l1.75-.75L12 8zM4 9l.75 1.75L6.5 11.5l-1.75.75L4 14l-.75-1.75L1.5 11.5l1.75-.75L4 9z"})}),(0,t.jsx)("h3",{className:"text-base font-semibold text-gray-900",children:"Ask AI"})]}),(0,t.jsx)("button",{onClick:()=>{C.current&&C.current.abort(),s()},className:"text-gray-400 hover:text-gray-600 transition-colors p-1 rounded-md hover:bg-gray-100",children:(0,t.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,t.jsx)("p",{className:"text-xs text-gray-500",children:"Ask about your spend, models, keys, and trends"})]}),(0,t.jsx)("div",{className:"px-5 py-3 border-b border-gray-100 flex-shrink-0",children:(0,t.jsx)(k.Select,{placeholder:"Select a model (optional, defaults to gpt-4o-mini)",value:d,onChange:e=>u(e),loading:h,showSearch:!0,allowClear:!0,size:"small",className:"w-full",options:m.map(e=>({label:e,value:e})),filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase())})}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 space-y-3 bg-gray-50",children:[0===r.length&&!g&&!o&&(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center h-full text-gray-400",children:[(0,t.jsx)("svg",{className:"w-8 h-8 mb-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M8 10h.01M12 10h.01M16 10h.01M9 16H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-5l-5 5v-5z"})}),(0,t.jsx)("p",{className:"text-sm font-medium",children:"Ask a question about your usage"}),(0,t.jsx)("p",{className:"text-xs mt-1",children:'e.g. "Which model costs me the most?"'})]}),r.map((e,s)=>(0,t.jsx)("div",{children:"user"===e.role?(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)("div",{className:"max-w-[88%] rounded-xl px-3.5 py-2 text-sm leading-relaxed bg-blue-600 text-white",children:e.content})}):(0,t.jsxs)("div",{className:"space-y-2",children:[e.toolCalls&&e.toolCalls.length>0&&(0,t.jsx)("div",{className:"space-y-1.5",children:e.toolCalls.map((e,s)=>(0,t.jsx)(eJ,{step:e},s))}),(0,t.jsx)("div",{className:"max-w-[95%] rounded-xl px-3.5 py-2.5 text-sm leading-relaxed bg-white border border-gray-200 text-gray-800",children:(0,t.jsx)(eQ,{content:e.content})})]})},s)),o&&b.length>0&&(0,t.jsx)("div",{className:"space-y-1.5",children:b.map((e,s)=>(0,t.jsx)(eJ,{step:e},s))}),o&&!g&&(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 text-xs text-gray-500",children:[(0,t.jsx)(eK.Spin,{size:"small"}),(0,t.jsx)("span",{className:"italic",children:j||"Thinking..."})]}),g&&(0,t.jsx)("div",{className:"max-w-[95%] rounded-xl px-3.5 py-2.5 text-sm leading-relaxed bg-white border border-gray-200 text-gray-800",children:(0,t.jsx)(eQ,{content:g})}),(0,t.jsx)("div",{ref:N})]}),(0,t.jsxs)("div",{className:"px-4 py-3 border-t border-gray-200 bg-white flex-shrink-0",children:[(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(eG,{value:i,onChange:e=>n(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),S())},placeholder:"Ask about your usage...",autoSize:{minRows:1,maxRows:3},className:"flex-1",disabled:o}),(0,t.jsx)(y.Button,{type:"primary",onClick:S,disabled:!i.trim()||o,loading:o,children:"Send"})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center mt-2",children:[(0,t.jsx)("button",{onClick:()=>{l([]),f(""),v([]),_(null)},className:"text-xs text-gray-400 hover:text-gray-600 transition-colors",disabled:0===r.length,children:"Clear chat"}),(0,t.jsx)("span",{className:"text-xs text-gray-400",children:"Enter to send"})]})]})]})};var e0=e.i(299251),e1=e.i(153702),e2=e.i(160818),e5=e.i(777579),e4=e.i(983561);e.i(247167);var e6=e.i(931067);let e3={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M922.9 701.9H327.4l29.9-60.9 496.8-.9c16.8 0 31.2-12 34.2-28.6l68.8-385.1c1.8-10.1-.9-20.5-7.5-28.4a34.99 34.99 0 00-26.6-12.5l-632-2.1-5.4-25.4c-3.4-16.2-18-28-34.6-28H96.5a35.3 35.3 0 100 70.6h125.9L246 312.8l58.1 281.3-74.8 122.1a34.96 34.96 0 00-3 36.8c6 11.9 18.1 19.4 31.5 19.4h62.8a102.43 102.43 0 00-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7h161.1a102.43 102.43 0 00-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7H923c19.4 0 35.3-15.8 35.3-35.3a35.42 35.42 0 00-35.4-35.2zM305.7 253l575.8 1.9-56.4 315.8-452.3.8L305.7 253zm96.9 612.7c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 01-31.6 31.6zm325.1 0c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 01-31.6 31.6z"}}]},name:"shopping-cart",theme:"outlined"};var e7=e.i(9583),e9=T.forwardRef(function(e,t){return T.createElement(e7.default,(0,e6.default)({},e,{ref:t,icon:e3}))}),e8=e.i(232164),te=e.i(645526),tt=e.i(771674),ts=e.i(906579);let ta=[{value:"global",label:"Global Usage",showForAdmin:"Global Usage",showForNonAdmin:"Your Usage",description:"View usage across all resources",descriptionForAdmin:"View usage across all resources",descriptionForNonAdmin:"View your usage",icon:(0,t.jsx)(e2.GlobalOutlined,{style:{fontSize:"16px"}})},{value:"my-usage",label:"Your Usage",description:"View your own usage",icon:(0,t.jsx)(tt.UserOutlined,{style:{fontSize:"16px"}}),adminOnly:!0},{value:"organization",label:"Organization Usage",showForAdmin:"Organization Usage",showForNonAdmin:"Your Organization Usage",description:"View organization-level usage",descriptionForAdmin:"View usage across all organizations",descriptionForNonAdmin:"View your organization's usage",icon:(0,t.jsx)(e0.BankOutlined,{style:{fontSize:"16px"}})},{value:"team",label:"Team Usage",description:"View usage by team",icon:(0,t.jsx)(te.TeamOutlined,{style:{fontSize:"16px"}})},{value:"customer",label:"Customer Usage",description:"View usage by customer accounts",icon:(0,t.jsx)(e9,{style:{fontSize:"16px"}}),adminOnly:!0},{value:"tag",label:"Tag Usage",description:"View usage grouped by tags",icon:(0,t.jsx)(e8.TagsOutlined,{style:{fontSize:"16px"}}),adminOnly:!0},{value:"agent",label:"Agent Usage (A2A)",description:"View usage by AI agents",icon:(0,t.jsx)(e4.RobotOutlined,{style:{fontSize:"16px"}}),adminOnly:!0},{value:"user",label:"User Usage",description:"View usage by individual users",icon:(0,t.jsx)(tt.UserOutlined,{style:{fontSize:"16px"}}),adminOnly:!0},{value:"user-agent-activity",label:"User Agent Activity",description:"View detailed user agent activity logs",icon:(0,t.jsx)(e5.LineChartOutlined,{style:{fontSize:"16px"}}),adminOnly:!0}],tr=({value:e,onChange:s,isAdmin:a,canViewTagUsage:r=!1,title:l="Usage View",description:i="Select the usage data you want to view","data-id":n})=>{let o=ta.filter(e=>"tag"===e.value&&!!r||!e.adminOnly||!!a).map(e=>{let t=e.label,s=e.description;return e.showForAdmin&&e.showForNonAdmin&&(t=a?e.showForAdmin:e.showForNonAdmin),e.descriptionForAdmin&&e.descriptionForNonAdmin&&(s=a?e.descriptionForAdmin:e.descriptionForNonAdmin),{value:e.value,label:t,description:s,icon:e.icon,badgeText:e.badgeText}});return(0,t.jsx)("div",{className:"w-full","data-id":n,children:(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-start gap-4",children:[(0,t.jsxs)("div",{className:"flex items-stretch gap-2 min-w-0",children:[(0,t.jsx)("div",{className:"flex-shrink-0 flex items-center",children:(0,t.jsx)(e1.BarChartOutlined,{style:{fontSize:"32px"}})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-gray-900 mb-0.5 leading-tight",children:l}),(0,t.jsx)("p",{className:"text-xs text-gray-600 leading-tight",children:i})]})]}),(0,t.jsx)("div",{className:"flex-shrink-0",children:(0,t.jsx)(k.Select,{value:e,onChange:s,className:"w-54 sm:w-64 md:w-72",size:"large",options:o.map(e=>({value:e.value,label:e.label})),optionRender:e=>{let s=o.find(t=>t.value===e.value);return s?(0,t.jsxs)("div",{className:"flex items-center gap-2 py-1",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-0.5",children:s.icon}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-gray-900",children:s.label}),(0,t.jsx)("div",{className:"text-xs text-gray-600 mt-0.5",children:s.description})]}),s.badgeText&&(0,t.jsx)("div",{className:"items-center",children:(0,t.jsx)(ts.Badge,{color:"blue",count:s.badgeText})})]}):e.label},labelRender:e=>{let s=o.find(t=>t.value===e.value);return s?(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{children:s.icon}),(0,t.jsx)("span",{className:"text-sm",children:s.label})]}):e.label}})})]})})};e.s(["default",0,({teams:e,organizations:U})=>{let R,{accessToken:V,userRole:I,userId:B,premiumUser:W}=(0,S.default)(),[z,Y]=(0,T.useState)(null),[K,H]=(0,T.useState)(!1),[G,Z]=(0,T.useState)(!1),[J,Q]=(0,T.useState)(!1),X=(0,T.useMemo)(()=>new Date(Date.now()-6048e5),[]),es=(0,T.useMemo)(()=>new Date,[]),[ea,ei]=(0,T.useState)({from:X,to:es}),[en,eo]=(0,T.useState)([]),{data:ec=[]}=(0,w.useCustomers)(),{data:ed}=(0,C.useAgents)(),{data:eu}=(0,q.useCurrentUser)();console.log(`currentUser: ${JSON.stringify(eu)}`),console.log(`currentUser max budget: ${eu?.max_budget}`);let em=A.all_admin_roles.includes(I||""),ex=em||A.internalUserRoles.includes(I||""),[eh,ep]=(0,T.useState)(""),[eg,ef]=(0,n.useDebouncedState)("",{wait:300}),{data:ej,fetchNextPage:e_,hasNextPage:ey,isFetchingNextPage:eb,isLoading:ek}=(0,L.useInfiniteUsers)(50,eg||void 0),ev=(0,T.useMemo)(()=>{if(!ej?.pages)return[];let e=new Set,t=[];for(let s of ej.pages)for(let a of s.users)e.has(a.user_id)||(e.add(a.user_id),t.push({value:a.user_id,label:a.user_alias?`${a.user_alias} (${a.user_id})`:a.user_email?`${a.user_email} (${a.user_id})`:a.user_id}));return t},[ej]),[eN,eT]=(0,T.useState)(em?null:B||null),[eC,ew]=(0,T.useState)("groups"),[eS,eq]=(0,T.useState)(!1),[eD,eA]=(0,T.useState)(!1),[eM,eO]=(0,T.useState)(!1),[eE,eF]=(0,T.useState)("global"),[e$,eP]=(0,T.useState)(!0),[eR,eV]=(0,T.useState)(5),[eB,eW]=(0,T.useState)(5),[eY,eK]=(0,T.useState)(!1);(0,T.useEffect)(()=>{!em&&B&&eT(B)},[em,B]);let eH="my-usage"!==eE&&em?eN:B||null,eG=(0,T.useMemo)(()=>ea.from?new Date(ea.from):null,[ea.from]),eZ=(0,T.useMemo)(()=>ea.to?new Date(ea.to):null,[ea.to]);(0,T.useEffect)(()=>{if(!V)return;let e=!1;return(async()=>{try{let t=await (0,F.tagListCall)(V,eG,eZ);if(e)return;eo(Object.values(t).map(e=>({label:e.name,value:e.name})))}catch(t){e||console.error("Failed to fetch tag list",t)}})(),()=>{e=!0}},[V,eG,eZ]);let eJ=(0,T.useRef)(0);(0,T.useEffect)(()=>{if(!V||!eG||!eZ)return;let e=++eJ.current;Z(!0),H(!1),Y(null),(0,F.userDailyActivityAggregatedCall)(V,eG,eZ,eH).then(t=>{eJ.current===e&&(Y(t),Z(!1),Q(!1))}).catch(()=>{eJ.current===e&&(H(!0),Z(!1))})},[V,eG,eZ,eH]);let eQ=er({fetchFn:F.userDailyActivityCall,args:[V,eG,eZ,eH],enabled:K&&!!V&&!!eG&&!!eZ}),e0=(0,T.useMemo)(()=>z||(K?eQ.data:{results:[],metadata:{}}),[z,K,eQ.data]),e1=G||eQ.loading;(0,T.useEffect)(()=>{K&&!eQ.loading&&eQ.data.results.length>0&&Q(!1)},[K,eQ.loading,eQ.data.results.length]);let e2=(0,T.useCallback)(e=>{Q(!0),ei(e)},[]),e5=e0.metadata?.total_spend||0,e4=(0,T.useMemo)(()=>{let e={};return e0.results.forEach(t=>{Object.entries(t.breakdown.models||{}).forEach(([t,s])=>{e[t]||(e[t]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{},api_key_breakdown:{}}),e[t].metrics.spend+=s.metrics.spend,e[t].metrics.prompt_tokens+=s.metrics.prompt_tokens,e[t].metrics.completion_tokens+=s.metrics.completion_tokens,e[t].metrics.total_tokens+=s.metrics.total_tokens,e[t].metrics.api_requests+=s.metrics.api_requests,e[t].metrics.successful_requests+=s.metrics.successful_requests||0,e[t].metrics.failed_requests+=s.metrics.failed_requests||0,e[t].metrics.cache_read_input_tokens+=s.metrics.cache_read_input_tokens||0,e[t].metrics.cache_creation_input_tokens+=s.metrics.cache_creation_input_tokens||0})}),Object.entries(e).map(([e,t])=>({key:e,spend:t.metrics.spend,requests:t.metrics.api_requests,successful_requests:t.metrics.successful_requests,failed_requests:t.metrics.failed_requests,tokens:t.metrics.total_tokens})).sort((e,t)=>t.spend-e.spend).slice(0,eB)},[e0.results,eB]),e6=(0,T.useMemo)(()=>{let e={};return e0.results.forEach(t=>{Object.entries(t.breakdown.model_groups||{}).forEach(([t,s])=>{e[t]||(e[t]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{},api_key_breakdown:{}}),e[t].metrics.spend+=s.metrics.spend,e[t].metrics.prompt_tokens+=s.metrics.prompt_tokens,e[t].metrics.completion_tokens+=s.metrics.completion_tokens,e[t].metrics.total_tokens+=s.metrics.total_tokens,e[t].metrics.api_requests+=s.metrics.api_requests,e[t].metrics.successful_requests+=s.metrics.successful_requests||0,e[t].metrics.failed_requests+=s.metrics.failed_requests||0,e[t].metrics.cache_read_input_tokens+=s.metrics.cache_read_input_tokens||0,e[t].metrics.cache_creation_input_tokens+=s.metrics.cache_creation_input_tokens||0})}),Object.entries(e).map(([e,t])=>({key:e,spend:t.metrics.spend,requests:t.metrics.api_requests,successful_requests:t.metrics.successful_requests,failed_requests:t.metrics.failed_requests,tokens:t.metrics.total_tokens})).sort((e,t)=>t.spend-e.spend).slice(0,eB)},[e0.results,eB]),e3=(0,T.useMemo)(()=>{let e={};return e0.results.forEach(t=>{Object.entries(t.breakdown.providers||{}).forEach(([t,s])=>{e[t]||(e[t]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{},api_key_breakdown:{}}),e[t].metrics.spend+=s.metrics.spend,e[t].metrics.prompt_tokens+=s.metrics.prompt_tokens,e[t].metrics.completion_tokens+=s.metrics.completion_tokens,e[t].metrics.total_tokens+=s.metrics.total_tokens,e[t].metrics.api_requests+=s.metrics.api_requests,e[t].metrics.successful_requests+=s.metrics.successful_requests||0,e[t].metrics.failed_requests+=s.metrics.failed_requests||0,e[t].metrics.cache_read_input_tokens+=s.metrics.cache_read_input_tokens||0,e[t].metrics.cache_creation_input_tokens+=s.metrics.cache_creation_input_tokens||0})}),Object.entries(e).map(([e,t])=>({provider:e,spend:t.metrics.spend,requests:t.metrics.api_requests,successful_requests:t.metrics.successful_requests,failed_requests:t.metrics.failed_requests,tokens:t.metrics.total_tokens}))},[e0.results]),e7=(0,T.useMemo)(()=>{let e={};return e0.results.forEach(t=>{Object.entries(t.breakdown.api_keys||{}).forEach(([t,s])=>{e[t]||(e[t]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{key_alias:s.metadata.key_alias,team_id:null,tags:s.metadata.tags||[]}}),e[t].metrics.spend+=s.metrics.spend,e[t].metrics.prompt_tokens+=s.metrics.prompt_tokens,e[t].metrics.completion_tokens+=s.metrics.completion_tokens,e[t].metrics.total_tokens+=s.metrics.total_tokens,e[t].metrics.api_requests+=s.metrics.api_requests,e[t].metrics.successful_requests+=s.metrics.successful_requests,e[t].metrics.failed_requests+=s.metrics.failed_requests,e[t].metrics.cache_read_input_tokens+=s.metrics.cache_read_input_tokens||0,e[t].metrics.cache_creation_input_tokens+=s.metrics.cache_creation_input_tokens||0})}),Object.entries(e).map(([e,t])=>({api_key:e,key_alias:t.metadata.key_alias||"-",tags:t.metadata.tags||[],spend:t.metrics.spend})).sort((e,t)=>t.spend-e.spend).slice(0,eR)},[e0.results,eR]),e9=(0,T.useMemo)(()=>[...e0.results].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),[e0.results]),e8=(0,T.useMemo)(()=>(0,M.processActivityData)(e0,"models",e),[e0,e]),te=(0,T.useMemo)(()=>(0,M.processActivityData)(e0,"api_keys",e),[e0,e]),tt=(0,T.useMemo)(()=>(0,M.processActivityData)(e0,"mcp_servers",e),[e0,e]);return(0,t.jsxs)("div",{style:{width:"100%"},className:"p-8 relative",children:[(0,t.jsx)("div",{className:"flex items-end justify-between gap-6 mb-6",children:(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsxs)("div",{className:"flex items-end justify-between gap-6 mb-4 w-full",children:[(0,t.jsx)(tr,{value:eE,onChange:e=>eF(e),isAdmin:em,canViewTagUsage:ex}),(0,t.jsx)($.default,{value:ea,onValueChange:e2})]}),eQ.isFetchingMore&&(0,t.jsx)(_.Alert,{banner:!0,type:"warning",className:"mb-2",message:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{children:[(0,t.jsx)(l.LoadingOutlined,{spin:!0,className:"mr-2"}),"Currently fetching spend data: fetched ",eQ.progress.currentPage," /"," ",eQ.progress.totalPages," pages. Charts will update periodically as data loads. Moving off of this page will stop and reset this. To continue using the UI in the meantime,"," ",(0,t.jsxs)("a",{href:window.location.href,target:"_blank",rel:"noopener noreferrer",children:["open a new tab ",(0,t.jsx)(a.ExportOutlined,{})]}),"."]}),(0,t.jsx)(y.Button,{type:"primary",danger:!0,onClick:eQ.cancel,children:"Stop"})]})}),eQ.cancelled&&(0,t.jsx)(_.Alert,{banner:!0,type:"info",className:"mb-2",message:(0,t.jsxs)("span",{children:["Showing partial data (",eQ.progress.currentPage,"/",eQ.progress.totalPages," ","pages loaded)"]})}),("global"===eE||"my-usage"===eE)&&(0,t.jsxs)(t.Fragment,{children:[em&&"global"===eE&&(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(f.Text,{className:"mb-2",children:"Filter by user"}),(0,t.jsx)(k.Select,{showSearch:!0,allowClear:!0,style:{width:"100%"},placeholder:"Select user to filter...",value:eN,onChange:e=>eT(e??null),filterOption:!1,onSearch:e=>{ep(e),ef(e)},searchValue:eh,onPopupScroll:e=>{let t=e.currentTarget;(t.scrollTop+t.clientHeight)/t.scrollHeight>=.8&&ey&&!eb&&e_()},loading:ek,notFoundContent:ek?(0,t.jsx)(l.LoadingOutlined,{spin:!0}):"No users found",options:ev,popupRender:e=>(0,t.jsxs)(t.Fragment,{children:[e,eb&&(0,t.jsx)("div",{style:{textAlign:"center",padding:8},children:(0,t.jsx)(l.LoadingOutlined,{spin:!0})})]})})]}),(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsxs)(h.TabList,{variant:"solid",className:"mt-1",children:[(0,t.jsx)(m.Tab,{children:"Cost"}),(0,t.jsx)(m.Tab,{children:"Model Activity"}),(0,t.jsx)(m.Tab,{children:"Key Activity"}),(0,t.jsx)(m.Tab,{children:"MCP Server Activity"}),(0,t.jsx)(m.Tab,{children:"Endpoint Activity"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(y.Button,{onClick:()=>eO(!0),icon:(0,t.jsx)("svg",{className:"w-4 h-4",viewBox:"0 0 16 16",fill:"currentColor",children:(0,t.jsx)("path",{d:"M8 1l1.5 3.5L13 6l-3.5 1.5L8 11 6.5 7.5 3 6l3.5-1.5L8 1zm4 7l.75 1.75L14.5 10.5l-1.75.75L12 13l-.75-1.75L9.5 10.5l1.75-.75L12 8zM4 9l.75 1.75L6.5 11.5l-1.75.75L4 14l-.75-1.75L1.5 11.5l1.75-.75L4 9z"})}),children:"Ask AI"}),(0,t.jsx)(y.Button,{onClick:()=>eA(!0),icon:(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})}),children:"Export Data"})]})]}),(0,t.jsxs)(g.TabPanels,{children:[(0,t.jsx)(p.TabPanel,{children:(0,t.jsxs)(u.Grid,{numItems:2,className:"gap-2 w-full",children:[(0,t.jsxs)(d.Col,{numColSpan:2,children:[(0,t.jsx)("div",{className:"flex items-center gap-4 mt-2 mb-2",children:(0,t.jsxs)(f.Text,{className:"text-tremor-default text-tremor-content dark:text-dark-tremor-content text-lg",children:["Project Spend"," ",ea.from&&ea.to&&(0,t.jsxs)(t.Fragment,{children:[ea.from.toLocaleDateString("en-US",{month:"short",day:"numeric",year:ea.from.getFullYear()!==ea.to.getFullYear()?"numeric":void 0})," - ",ea.to.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})]})]})}),(0,t.jsx)(et.default,{userSpend:e5,selectedTeam:null,userMaxBudget:eu?.max_budget||null})]}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Usage Metrics"}),(0,t.jsxs)(u.Grid,{numItems:5,className:"gap-4 mt-4",children:[(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Total Requests"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2",children:e0.metadata?.total_api_requests?.toLocaleString()||0})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Successful Requests"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-green-600",children:e0.metadata?.total_successful_requests?.toLocaleString()||0})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(j.Title,{children:"Failed Requests"}),(0,t.jsx)(v.Tooltip,{title:"Includes requests that failed to route to a provider, tool usage failures, and other request errors where the provider cannot be determined.",children:(0,t.jsx)(r.InfoCircleOutlined,{className:"text-gray-400 hover:text-gray-600"})})]}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-red-600",children:e0.metadata?.total_failed_requests?.toLocaleString()||0})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Average Cost per Request"}),(0,t.jsxs)(f.Text,{className:"text-2xl font-bold mt-2",children:["$",(0,D.formatNumberWithCommas)((e5||0)/(e0.metadata?.total_api_requests||1),4)]})]}),(0,t.jsxs)(c.Card,{className:"cursor-pointer hover:bg-gray-50 transition-colors",onClick:()=>eK(!eY),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(j.Title,{children:"Total Tokens"}),eY?(0,t.jsx)(s.DownOutlined,{className:"text-gray-400 text-xs"}):(0,t.jsx)(i.RightOutlined,{className:"text-gray-400 text-xs"})]}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2",children:e0.metadata?.total_tokens?.toLocaleString()||0})]})]}),eY&&(0,t.jsxs)(u.Grid,{numItems:4,className:"gap-4 mt-4",children:[(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Input Tokens"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-blue-600",children:Math.max(0,(e0.metadata?.total_prompt_tokens||0)-(e0.metadata?.total_cache_read_input_tokens||0)-(e0.metadata?.total_cache_creation_input_tokens||0)).toLocaleString()})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Output Tokens"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-cyan-600",children:e0.metadata?.total_completion_tokens?.toLocaleString()||0})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Cache Read Tokens"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-green-600",children:e0.metadata?.total_cache_read_input_tokens?.toLocaleString()||0})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Cache Write Tokens"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-purple-600",children:e0.metadata?.total_cache_creation_input_tokens?.toLocaleString()||0})]})]})]})}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Daily Spend"}),e1?(0,t.jsx)(P,{isDateChanging:J}):(0,t.jsx)(o.BarChart,{data:e9,index:"date",categories:["metrics.spend"],colors:["cyan"],valueFormatter:el.valueFormatterSpend,yAxisWidth:100,showLegend:!1,customTooltip:({payload:e,active:s})=>{if(!s||!e?.[0])return null;let a=e[0].payload;return(0,t.jsxs)("div",{className:"bg-white p-4 shadow-lg rounded-lg border",children:[(0,t.jsx)("p",{className:"font-bold",children:a.date}),(0,t.jsxs)("p",{className:"text-cyan-500",children:["Spend: $",(0,D.formatNumberWithCommas)(a.metrics.spend,2)]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Requests: ",a.metrics.api_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Successful: ",a.metrics.successful_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Failed: ",a.metrics.failed_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Tokens: ",a.metrics.total_tokens]})]})}})]})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(c.Card,{className:"h-full",children:[(0,t.jsx)(j.Title,{children:"Top Virtual Keys"}),(0,t.jsx)(eU.default,{topKeys:e7,teams:null,topKeysLimit:eR,setTopKeysLimit:eV})]})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(c.Card,{className:"h-full",children:[(0,t.jsx)(j.Title,{children:"groups"===eC?"Top Public Model Names":"Top Litellm Models"}),(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(b.Segmented,{options:[{label:"5",value:5},{label:"10",value:10},{label:"25",value:25},{label:"50",value:50}],value:eB,onChange:e=>eW(e)}),(0,t.jsxs)("div",{className:"flex bg-gray-100 rounded-lg p-1",children:[(0,t.jsx)("button",{className:`px-3 py-1 text-sm rounded-md transition-colors ${"groups"===eC?"bg-white shadow-sm text-gray-900":"text-gray-600 hover:text-gray-900"}`,onClick:()=>ew("groups"),children:"Public Model Name"}),(0,t.jsx)("button",{className:`px-3 py-1 text-sm rounded-md transition-colors ${"individual"===eC?"bg-white shadow-sm text-gray-900":"text-gray-600 hover:text-gray-900"}`,onClick:()=>ew("individual"),children:"Litellm Model Name"})]})]}),e1?(0,t.jsx)(P,{isDateChanging:J}):(0,t.jsx)("div",{className:"relative max-h-[600px] overflow-y-auto",children:(R="groups"===eC?e6:e4,(0,t.jsx)(o.BarChart,{className:"mt-4",style:{height:52*Math.min(R.length,eB)},data:R,index:"key",categories:["spend"],colors:["cyan"],valueFormatter:el.valueFormatterSpend,layout:"vertical",yAxisWidth:200,showLegend:!1,customTooltip:({payload:e,active:s})=>{if(!s||!e?.[0])return null;let a=e[0].payload;return(0,t.jsxs)("div",{className:"bg-white p-4 shadow-lg rounded-lg border",children:[(0,t.jsx)("p",{className:"font-bold",children:a.key}),(0,t.jsxs)("p",{className:"text-cyan-500",children:["Spend: $",(0,D.formatNumberWithCommas)(a.spend,2)]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Total Requests: ",a.requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-green-600",children:["Successful: ",a.successful_requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-red-600",children:["Failed: ",a.failed_requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Tokens: ",a.tokens.toLocaleString()]})]})}}))})]})}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsx)(ez,{loading:e1,isDateChanging:J,providerSpend:e3})})]})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:e8})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:te})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:tt})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(eL,{userSpendData:e0})})]})]})]}),"organization"===eE&&(0,t.jsx)(eI,{accessToken:V,entityType:"organization",userID:B,userRole:I,dateValue:ea,entityList:U?.map(e=>({label:e.organization_alias,value:e.organization_id}))||null,premiumUser:W}),"team"===eE&&(0,t.jsx)(eI,{accessToken:V,entityType:"team",userID:B,userRole:I,entityList:e?.map(e=>({label:e.team_alias,value:e.team_id}))||null,premiumUser:W,dateValue:ea}),"customer"===eE&&(0,t.jsx)(eI,{accessToken:V,entityType:"customer",userID:B,userRole:I,entityList:ec?.map(e=>({label:e.alias||e.user_id,value:e.user_id}))||null,premiumUser:W,dateValue:ea}),"tag"===eE&&(0,t.jsxs)(t.Fragment,{children:[e$&&(0,t.jsx)(_.Alert,{banner:!0,type:"info",message:"Reusable credentials are automatically tracked as tags",description:(0,t.jsxs)(N.Typography.Text,{children:["When a reusable credential is used, it will appear as a tag prefixed with"," ",(0,t.jsx)(N.Typography.Text,{code:!0,children:"Credential: "}),"in this view."]}),closable:!0,onClose:()=>eP(!1),className:"mb-5"}),(0,t.jsx)(eI,{accessToken:V,entityType:"tag",userID:B,userRole:I,entityList:en,premiumUser:W,dateValue:ea})]}),"agent"===eE&&(0,t.jsx)(eI,{accessToken:V,entityType:"agent",userID:B,userRole:I,entityList:ed?.agents?.map(e=>({label:e.agent_name,value:e.agent_id}))||null,premiumUser:W,dateValue:ea}),"user"===eE&&(0,t.jsx)(eI,{accessToken:V,entityType:"user",userID:B,userRole:I,entityList:ev.length>0?ev:null,premiumUser:W,dateValue:ea}),"user-agent-activity"===eE&&(0,t.jsx)(ee,{accessToken:V,userRole:I,dateValue:ea})]})}),(0,t.jsx)(O.default,{isOpen:eS,onClose:()=>eq(!1),accessToken:V}),(0,t.jsx)(E.default,{isOpen:eD,onClose:()=>eA(!1),entityType:"team",spendData:{results:e0.results,metadata:e0.metadata},dateRange:ea,selectedFilters:[],customTitle:"Export Usage Data"}),(0,t.jsx)(eX,{open:eM,onClose:()=>eO(!1),accessToken:V})]})}],797305)}]); \ No newline at end of file +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,973706,e=>{"use strict";var t=e.i(843476),s=e.i(72713),a=e.i(637235),r=e.i(994388),l=e.i(599724),i=e.i(166540),n=e.i(271645);let o=[{label:"Today",shortLabel:"today",getValue:()=>({from:(0,i.default)().startOf("day").toDate(),to:(0,i.default)().endOf("day").toDate()})},{label:"Last 7 days",shortLabel:"7d",getValue:()=>({from:(0,i.default)().subtract(7,"days").startOf("day").toDate(),to:(0,i.default)().endOf("day").toDate()})},{label:"Last 30 days",shortLabel:"30d",getValue:()=>({from:(0,i.default)().subtract(30,"days").startOf("day").toDate(),to:(0,i.default)().endOf("day").toDate()})},{label:"Month to date",shortLabel:"MTD",getValue:()=>({from:(0,i.default)().startOf("month").toDate(),to:(0,i.default)().endOf("day").toDate()})},{label:"Year to date",shortLabel:"YTD",getValue:()=>({from:(0,i.default)().startOf("year").toDate(),to:(0,i.default)().endOf("day").toDate()})}];e.s(["default",0,({value:e,onValueChange:c,label:d="Select Time Range",showTimeRange:u=!0})=>{let[m,x]=(0,n.useState)(!1),[h,p]=(0,n.useState)(e),[g,f]=(0,n.useState)(null),[j,_]=(0,n.useState)(""),[y,b]=(0,n.useState)(""),k=(0,n.useRef)(null),v=(0,n.useCallback)(e=>{if(!e.from||!e.to)return null;for(let t of o){let s=t.getValue(),a=(0,i.default)(e.from).isSame((0,i.default)(s.from),"day"),r=(0,i.default)(e.to).isSame((0,i.default)(s.to),"day");if(a&&r)return t.shortLabel}return null},[]);(0,n.useEffect)(()=>{f(v(e))},[e,v]);let N=(0,n.useCallback)(()=>{if(!j||!y)return{isValid:!0,error:""};let e=(0,i.default)(j,"YYYY-MM-DD"),t=(0,i.default)(y,"YYYY-MM-DD");return e.isValid()&&t.isValid()?t.isBefore(e)?{isValid:!1,error:"End date cannot be before start date"}:{isValid:!0,error:""}:{isValid:!1,error:"Invalid date format"}},[j,y])();(0,n.useEffect)(()=>{e.from&&_((0,i.default)(e.from).format("YYYY-MM-DD")),e.to&&b((0,i.default)(e.to).format("YYYY-MM-DD")),p(e)},[e]),(0,n.useEffect)(()=>{let e=e=>{k.current&&!k.current.contains(e.target)&&x(!1)};return m&&document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[m]);let T=(0,n.useCallback)((e,t)=>{if(!e||!t)return"Select date range";let s=e=>(0,i.default)(e).format("D MMM, HH:mm");return`${s(e)} - ${s(t)}`},[]),C=(0,n.useCallback)(e=>{let t;if(!e.from)return e;let s={...e},a=new Date(e.from);return t=new Date(e.to?e.to:e.from),a.toDateString()===t.toDateString(),a.setHours(0,0,0,0),t.setHours(23,59,59,999),s.from=a,s.to=t,s},[]),w=(0,n.useCallback)(()=>{try{if(j&&y&&N.isValid){let e=(0,i.default)(j,"YYYY-MM-DD").startOf("day"),t=(0,i.default)(y,"YYYY-MM-DD").endOf("day");if(e.isValid()&&t.isValid()){let s={from:e.toDate(),to:t.toDate()};p(s);let a=v(s);f(a)}}}catch(e){console.warn("Invalid date format:",e)}},[j,y,N.isValid,v]);return(0,n.useEffect)(()=>{w()},[w]),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[d&&(0,t.jsx)(l.Text,{className:"text-sm font-medium text-gray-700 whitespace-nowrap",children:d}),(0,t.jsxs)("div",{className:"relative",ref:k,children:[(0,t.jsx)("div",{className:"w-[300px] px-3 py-2 text-sm border border-gray-300 rounded-md bg-white cursor-pointer hover:border-gray-400 focus:border-blue-500 focus:ring-1 focus:ring-blue-500",onClick:()=>x(!m),children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(a.ClockCircleOutlined,{className:"text-gray-600"}),(0,t.jsx)("span",{className:"text-gray-900",children:T(e.from,e.to)})]}),(0,t.jsx)("svg",{className:`w-4 h-4 text-gray-400 transition-transform ${m?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})}),m&&(0,t.jsx)("div",{className:"absolute top-full right-0 z-[9999] min-w-[600px] mt-1 bg-white border border-gray-200 rounded-lg shadow-xl",children:(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsxs)("div",{className:"w-1/2 border-r border-gray-200",children:[(0,t.jsx)("div",{className:"p-3 border-b border-gray-200",children:(0,t.jsx)("span",{className:"text-sm font-semibold text-gray-900",children:"Relative time"})}),(0,t.jsx)("div",{className:"h-[350px] overflow-y-auto",children:o.map(e=>{let s=g===e.shortLabel;return(0,t.jsxs)("div",{className:`flex items-center justify-between px-5 py-4 cursor-pointer border-b border-gray-100 transition-colors ${s?"bg-blue-50 hover:bg-blue-100 border-blue-200":"hover:bg-gray-50"}`,onClick:()=>(e=>{let{from:t,to:s}=e.getValue();p({from:t,to:s}),f(e.shortLabel),_((0,i.default)(t).format("YYYY-MM-DD")),b((0,i.default)(s).format("YYYY-MM-DD"))})(e),children:[(0,t.jsx)("span",{className:`text-sm ${s?"text-blue-700 font-medium":"text-gray-700"}`,children:e.label}),(0,t.jsx)("span",{className:`text-xs px-2 py-1 rounded capitalize ${s?"text-blue-700 bg-blue-100":"text-gray-500 bg-gray-100"}`,children:e.shortLabel})]},e.label)})})]}),(0,t.jsxs)("div",{className:"w-1/2 relative",children:[(0,t.jsx)("div",{className:"p-3.5 border-b border-gray-200",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(s.CalendarOutlined,{className:"text-gray-600"}),(0,t.jsx)("span",{className:"text-sm font-semibold text-gray-900",children:"Start and end dates"})]})}),(0,t.jsxs)("div",{className:"p-6 space-y-6 pb-20",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm text-gray-700 mb-1 block",children:"Start date"}),(0,t.jsx)("input",{type:"date",value:j,onChange:e=>_(e.target.value),className:`w-65 px-3 py-2 text-sm border rounded-md cursor-pointer hover:border-gray-400 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 ${!N.isValid?"border-red-300 focus:border-red-500 focus:ring-red-200":"border-gray-300"}`})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm text-gray-700 mb-1 block",children:"End date"}),(0,t.jsx)("input",{type:"date",value:y,onChange:e=>b(e.target.value),className:`w-65 px-3 py-2 text-sm border rounded-md cursor-pointer hover:border-gray-400 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 ${!N.isValid?"border-red-300 focus:border-red-500 focus:ring-red-200":"border-gray-300"}`})]}),!N.isValid&&N.error&&(0,t.jsx)("div",{className:"bg-red-50 border border-red-200 rounded-md p-3",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("svg",{className:"w-4 h-4 text-red-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z"})}),(0,t.jsx)("span",{className:"text-sm text-red-700 font-medium",children:N.error})]})}),h.from&&h.to&&N.isValid&&(0,t.jsxs)("div",{className:"bg-blue-50 p-3 rounded-md space-y-1",children:[(0,t.jsxs)("div",{className:"text-xs text-blue-800",children:[(0,t.jsx)("span",{className:"font-medium",children:"From:"})," ",(0,i.default)(h.from).format("MMM D, YYYY [at] HH:mm:ss")]}),(0,t.jsxs)("div",{className:"text-xs text-blue-800",children:[(0,t.jsx)("span",{className:"font-medium",children:"To:"})," ",(0,i.default)(h.to).format("MMM D, YYYY [at] HH:mm:ss")]})]})]}),(0,t.jsx)("div",{className:"absolute bottom-4 right-4",children:(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(r.Button,{variant:"secondary",onClick:()=>{p(e),e.from&&_((0,i.default)(e.from).format("YYYY-MM-DD")),e.to&&b((0,i.default)(e.to).format("YYYY-MM-DD")),f(v(e)),x(!1)},children:"Cancel"}),(0,t.jsx)(r.Button,{onClick:()=>{h.from&&h.to&&N.isValid&&(c(h),requestIdleCallback(()=>{c(C(h))},{timeout:100}),x(!1))},disabled:!h.from||!h.to||!N.isValid,children:"Apply"})]})})]})]})})]})]})}])},289793,952840,617885,286718,23371,487147,498610,785952,193523,260573,e=>{"use strict";var t=e.i(764205),s=e.i(266027),a=e.i(243652),r=e.i(708347),l=e.i(135214);let i=(0,a.createQueryKeys)("agents");e.s(["useAgents",0,()=>{let{accessToken:e,userRole:a}=(0,l.default)();return(0,s.useQuery)({queryKey:i.list({}),queryFn:async()=>await (0,t.getAgentsList)(e),enabled:!!e&&r.all_admin_roles.includes(a||"")})}],289793);let n=(0,a.createQueryKeys)("customers");e.s(["useCustomers",0,()=>{let{accessToken:e,userRole:a}=(0,l.default)();return(0,s.useQuery)({queryKey:n.list({}),queryFn:async()=>await (0,t.allEndUsersCall)(e),enabled:!!e&&r.all_admin_roles.includes(a)})}],952840);var o=e.i(621482);let c=(0,a.createQueryKeys)("infiniteUsers"),d=50;e.s(["useInfiniteUsers",0,(e=d,s)=>{let{accessToken:a,userRole:i}=(0,l.default)();return(0,o.useInfiniteQuery)({queryKey:c.list({filters:{pageSize:e,...s&&{searchEmail:s}}}),queryFn:async({pageParam:r})=>await (0,t.userListCall)(a,null,r,e,s||null),initialPageParam:1,getNextPageParam:e=>{if(e.pagee&&t&&t.length?(0,u.jsxs)("div",{className:"w-56 rounded-tremor-default border border-tremor-border bg-tremor-background p-2 text-tremor-default shadow-tremor-dropdown",children:[(0,u.jsx)("p",{className:"text-tremor-content-strong",children:s}),t.map(e=>{let t=e.dataKey?.toString();if(!t||!e.payload)return null;let s=((e,t)=>{let s=t.substring(t.indexOf(".")+1);if(e.metrics&&s in e.metrics)return e.metrics[s]})(e.payload,t),a=t.includes("spend"),r=void 0!==s?a?`$${s.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})}`:s.toLocaleString():"N/A",l=b[e.color]||e.color;return(0,u.jsxs)("div",{className:"flex items-center justify-between space-x-4",children:[(0,u.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,u.jsx)("span",{className:"h-2 w-2 shrink-0 rounded-full ring-2 ring-white drop-shadow-md",style:{backgroundColor:l}}),(0,u.jsx)("p",{className:"font-medium text-tremor-content dark:text-dark-tremor-content",children:t.replace("metrics.","").replace(/_/g," ").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")})]}),(0,u.jsx)("p",{className:"font-medium text-tremor-content-emphasis dark:text-dark-tremor-content-emphasis",children:r})]},t)})]}):null,v=({categories:e,colors:t})=>(0,u.jsx)("div",{className:"flex items-center justify-end space-x-4",children:e.map((e,s)=>{let a=b[t[s]]||t[s];return(0,u.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,u.jsx)("span",{className:"h-2 w-2 shrink-0 rounded-full ring-4 ring-white",style:{backgroundColor:a}}),(0,u.jsx)("p",{className:"text-sm text-tremor-content dark:text-dark-tremor-content",children:e.replace("metrics.","").replace(/_/g," ").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")})]},e)})});e.s(["CustomLegend",0,v,"CustomTooltip",0,k],286718);var N=e.i(291542),T=e.i(271645);let C=[{title:"Model",dataIndex:"model",key:"model",render:e=>e||"-"},{title:"Spend (USD)",dataIndex:"spend",key:"spend",render:e=>`$${(0,m.formatNumberWithCommas)(e,2)}`},{title:"Successful",dataIndex:"successful_requests",key:"successful_requests",render:e=>(0,u.jsx)("span",{className:"text-green-600",children:e?.toLocaleString()||0})},{title:"Failed",dataIndex:"failed_requests",key:"failed_requests",render:e=>(0,u.jsx)("span",{className:"text-red-600",children:e?.toLocaleString()||0})},{title:"Tokens",dataIndex:"tokens",key:"tokens",render:e=>e?.toLocaleString()||0}],w=({topModels:e})=>{let[t,s]=(0,T.useState)("table");return 0===e.length?null:(0,u.jsxs)(g.Card,{className:"mt-4",children:[(0,u.jsxs)("div",{className:"flex justify-between items-center mb-3",children:[(0,u.jsx)(_.Title,{children:"Model Usage"}),(0,u.jsxs)("div",{className:"flex space-x-2",children:[(0,u.jsx)("button",{onClick:()=>s("table"),className:`px-3 py-1 text-sm rounded-md ${"table"===t?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-700"}`,children:"Table"}),(0,u.jsx)("button",{onClick:()=>s("chart"),className:`px-3 py-1 text-sm rounded-md ${"chart"===t?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-700"}`,children:"Chart"})]})]}),"chart"===t?(0,u.jsx)("div",{className:"max-h-[234px] overflow-y-auto",children:(0,u.jsx)(p.BarChart,{style:{height:40*e.length},data:e.map(e=>({key:e.model,spend:e.spend})),index:"key",categories:["spend"],colors:["cyan"],valueFormatter:e=>`$${(0,m.formatNumberWithCommas)(e,2)}`,layout:"vertical",yAxisWidth:180,tickGap:5,showLegend:!1})}):(0,u.jsx)(N.Table,{columns:C,dataSource:e,rowKey:"model",size:"small",pagination:!1,scroll:e.length>5?{y:195}:void 0})]})};function S(e){return e>=1e6?(e/1e6).toFixed(2)+"M":e>=1e3?e/1e3+"k":e.toString()}e.s(["valueFormatter",0,S,"valueFormatterSpend",0,function(e){return 0===e?"$0":e>=1e6?"$"+e/1e6+"M":e>=1e3?"$"+e/1e3+"k":"$"+e}],23371);let q=({modelName:e,metrics:t,hidePromptCachingMetrics:s=!1})=>(0,u.jsxs)("div",{className:"space-y-2",children:[(0,u.jsxs)(f.Grid,{numItems:4,className:"gap-4",children:[(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Requests"}),(0,u.jsx)(_.Title,{children:t.total_requests.toLocaleString()})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Successful Requests"}),(0,u.jsx)(_.Title,{children:t.total_successful_requests.toLocaleString()})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Tokens"}),(0,u.jsx)(_.Title,{children:t.total_tokens.toLocaleString()}),(0,u.jsxs)(j.Text,{children:[Math.round(t.total_tokens/t.total_successful_requests)," avg per successful request"]})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Spend"}),(0,u.jsxs)(_.Title,{children:["$",(0,m.formatNumberWithCommas)(t.total_spend,2)]}),(0,u.jsxs)(j.Text,{children:["$",(0,m.formatNumberWithCommas)(t.total_spend/t.total_successful_requests,3)," per successful request"]})]})]}),t.top_api_keys&&t.top_api_keys.length>0&&(0,u.jsxs)(g.Card,{className:"mt-4",children:[(0,u.jsx)(_.Title,{children:"Top Virtual Keys by Spend"}),(0,u.jsx)("div",{className:"mt-3",children:(0,u.jsx)("div",{className:"grid grid-cols-1 gap-2",children:t.top_api_keys.map((e,t)=>(0,u.jsxs)("div",{className:"flex justify-between items-center p-3 bg-gray-50 rounded-lg",children:[(0,u.jsxs)("div",{children:[(0,u.jsx)(j.Text,{className:"font-medium",children:e.key_alias||`${e.api_key.substring(0,10)}...`}),e.team_id&&(0,u.jsxs)(j.Text,{className:"text-xs text-gray-500",children:["Team: ",e.team_id]})]}),(0,u.jsxs)("div",{className:"text-right",children:[(0,u.jsxs)(j.Text,{className:"font-medium",children:["$",(0,m.formatNumberWithCommas)(e.spend,2)]}),(0,u.jsxs)(j.Text,{className:"text-xs text-gray-500",children:[e.requests.toLocaleString()," requests | ",e.tokens.toLocaleString()," tokens"]})]})]},e.api_key))})})]}),t.top_models&&t.top_models.length>0&&(0,u.jsx)(w,{topModels:t.top_models}),(0,u.jsxs)(g.Card,{className:"mt-4",children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Spend per day"}),(0,u.jsx)(v,{categories:["metrics.spend"],colors:["green"]})]}),(0,u.jsx)(p.BarChart,{className:"mt-4",data:t.daily_data,index:"date",categories:["metrics.spend"],colors:["green"],valueFormatter:e=>`$${(0,m.formatNumberWithCommas)(e,2,!0)}`,yAxisWidth:72})]}),(0,u.jsxs)(f.Grid,{numItems:2,className:"gap-4 mt-4",children:[(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Total Tokens"}),(0,u.jsx)(v,{categories:["metrics.prompt_tokens","metrics.completion_tokens","metrics.total_tokens"],colors:["blue","cyan","indigo"]})]}),(0,u.jsx)(h.AreaChart,{className:"mt-4",data:t.daily_data,index:"date",categories:["metrics.prompt_tokens","metrics.completion_tokens","metrics.total_tokens"],colors:["blue","cyan","indigo"],valueFormatter:S,customTooltip:k,showLegend:!1})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Requests per day"}),(0,u.jsx)(v,{categories:["metrics.api_requests"],colors:["blue"]})]}),(0,u.jsx)(p.BarChart,{className:"mt-4",data:t.daily_data,index:"date",categories:["metrics.api_requests"],colors:["blue"],valueFormatter:S,customTooltip:k,showLegend:!1})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Success vs Failed Requests"}),(0,u.jsx)(v,{categories:["metrics.successful_requests","metrics.failed_requests"],colors:["green","red"]})]}),(0,u.jsx)(h.AreaChart,{className:"mt-4",data:t.daily_data,index:"date",categories:["metrics.successful_requests","metrics.failed_requests"],colors:["green","red"],valueFormatter:S,customTooltip:k,showLegend:!1})]}),!s&&(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Prompt Caching Metrics"}),(0,u.jsx)(v,{categories:["metrics.cache_read_input_tokens","metrics.cache_creation_input_tokens"],colors:["cyan","purple"]})]}),(0,u.jsxs)("div",{className:"mb-2",children:[(0,u.jsxs)(j.Text,{children:["Cache Read: ",t.total_cache_read_input_tokens?.toLocaleString()||0," tokens"]}),(0,u.jsxs)(j.Text,{children:["Cache Creation: ",t.total_cache_creation_input_tokens?.toLocaleString()||0," tokens"]})]}),(0,u.jsx)(h.AreaChart,{className:"mt-4",data:t.daily_data,index:"date",categories:["metrics.cache_read_input_tokens","metrics.cache_creation_input_tokens"],colors:["cyan","purple"],valueFormatter:S,customTooltip:k,showLegend:!1})]})]})]});e.s(["ActivityMetrics",0,({modelMetrics:e,hidePromptCachingMetrics:t=!1})=>{let s=Object.keys(e).sort((t,s)=>""===t?1:""===s?-1:e[s].total_spend-e[t].total_spend),a={total_requests:0,total_successful_requests:0,total_tokens:0,total_spend:0,total_cache_read_input_tokens:0,total_cache_creation_input_tokens:0,daily_data:{}};Object.values(e).forEach(e=>{a.total_requests+=e.total_requests,a.total_successful_requests+=e.total_successful_requests,a.total_tokens+=e.total_tokens,a.total_spend+=e.total_spend,a.total_cache_read_input_tokens+=e.total_cache_read_input_tokens||0,a.total_cache_creation_input_tokens+=e.total_cache_creation_input_tokens||0,e.daily_data.forEach(e=>{a.daily_data[e.date]||(a.daily_data[e.date]={prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,spend:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0}),a.daily_data[e.date].prompt_tokens+=e.metrics.prompt_tokens,a.daily_data[e.date].completion_tokens+=e.metrics.completion_tokens,a.daily_data[e.date].total_tokens+=e.metrics.total_tokens,a.daily_data[e.date].api_requests+=e.metrics.api_requests,a.daily_data[e.date].spend+=e.metrics.spend,a.daily_data[e.date].successful_requests+=e.metrics.successful_requests,a.daily_data[e.date].failed_requests+=e.metrics.failed_requests,a.daily_data[e.date].cache_read_input_tokens+=e.metrics.cache_read_input_tokens||0,a.daily_data[e.date].cache_creation_input_tokens+=e.metrics.cache_creation_input_tokens||0})});let r=Object.entries(a.daily_data).map(([e,t])=>({date:e,metrics:t})).sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime());return(0,u.jsxs)("div",{className:"space-y-8",children:[(0,u.jsxs)("div",{className:"border rounded-lg p-4",children:[(0,u.jsx)(_.Title,{children:"Overall Usage"}),(0,u.jsxs)(f.Grid,{numItems:4,className:"gap-4 mb-4",children:[(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Requests"}),(0,u.jsx)(_.Title,{children:a.total_requests.toLocaleString()})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Successful Requests"}),(0,u.jsx)(_.Title,{children:a.total_successful_requests.toLocaleString()})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Tokens"}),(0,u.jsx)(_.Title,{children:a.total_tokens.toLocaleString()})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsx)(j.Text,{children:"Total Spend"}),(0,u.jsxs)(_.Title,{children:["$",(0,m.formatNumberWithCommas)(a.total_spend,2)]})]})]}),(0,u.jsxs)(f.Grid,{numItems:2,className:"gap-4",children:[(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Total Tokens Over Time"}),(0,u.jsx)(v,{categories:["metrics.prompt_tokens","metrics.completion_tokens","metrics.total_tokens"],colors:["blue","cyan","indigo"]})]}),(0,u.jsx)(h.AreaChart,{className:"mt-4",data:r,index:"date",categories:["metrics.prompt_tokens","metrics.completion_tokens","metrics.total_tokens"],colors:["blue","cyan","indigo"],valueFormatter:S,customTooltip:k,showLegend:!1})]}),(0,u.jsxs)(g.Card,{children:[(0,u.jsxs)("div",{className:"flex justify-between items-center",children:[(0,u.jsx)(_.Title,{children:"Total Requests Over Time"}),(0,u.jsx)(v,{categories:["metrics.successful_requests","metrics.failed_requests"],colors:["emerald","red"]})]}),(0,u.jsx)(h.AreaChart,{className:"mt-4",data:r,index:"date",categories:["metrics.successful_requests","metrics.failed_requests"],colors:["emerald","red"],valueFormatter:e=>e.toLocaleString(),customTooltip:k,showLegend:!1})]})]})]}),(0,u.jsx)(y.Collapse,{defaultActiveKey:s[0],children:s.map(s=>(0,u.jsx)(y.Collapse.Panel,{header:(0,u.jsxs)("div",{className:"flex justify-between items-center w-full",children:[(0,u.jsx)(_.Title,{children:e[s].label||"Unknown Item"}),(0,u.jsxs)("div",{className:"flex space-x-4 text-sm text-gray-500",children:[(0,u.jsxs)("span",{children:["$",(0,m.formatNumberWithCommas)(e[s].total_spend,2)]}),(0,u.jsxs)("span",{children:[e[s].total_requests.toLocaleString()," requests"]})]})]}),children:(0,u.jsx)(q,{modelName:s||"Unknown Model",metrics:e[s],hidePromptCachingMetrics:t})},s))})]})},"processActivityData",0,(e,t,s=[])=>{let a={};return e.results.forEach(e=>{Object.entries(e.breakdown[t]||{}).forEach(([r,l])=>{a[r]||(a[r]={label:"api_keys"===t?((e,t,s)=>{let a=e.metadata.key_alias||`key-hash-${t}`,r=e.metadata.team_id;if(r){let e=(0,x.resolveTeamAliasFromTeamID)(r,s);return e?`${a} (team: ${e})`:`${a} (team_id: ${r})`}return a})(l,r,s):"entities"===t&&(l.metadata?.agent_name||l.metadata?.team_alias)||r,total_requests:0,total_successful_requests:0,total_failed_requests:0,total_tokens:0,prompt_tokens:0,completion_tokens:0,total_spend:0,total_cache_read_input_tokens:0,total_cache_creation_input_tokens:0,top_api_keys:[],top_models:[],daily_data:[]}),a[r].total_requests+=l.metrics.api_requests,a[r].prompt_tokens+=l.metrics.prompt_tokens,a[r].completion_tokens+=l.metrics.completion_tokens,a[r].total_tokens+=l.metrics.total_tokens,a[r].total_spend+=l.metrics.spend,a[r].total_successful_requests+=l.metrics.successful_requests,a[r].total_failed_requests+=l.metrics.failed_requests,a[r].total_cache_read_input_tokens+=l.metrics.cache_read_input_tokens||0,a[r].total_cache_creation_input_tokens+=l.metrics.cache_creation_input_tokens||0,a[r].daily_data.push({date:e.date,metrics:{prompt_tokens:l.metrics.prompt_tokens,completion_tokens:l.metrics.completion_tokens,total_tokens:l.metrics.total_tokens,api_requests:l.metrics.api_requests,spend:l.metrics.spend,successful_requests:l.metrics.successful_requests,failed_requests:l.metrics.failed_requests,cache_read_input_tokens:l.metrics.cache_read_input_tokens||0,cache_creation_input_tokens:l.metrics.cache_creation_input_tokens||0}})})}),"api_keys"!==t&&Object.entries(a).forEach(([s,r])=>{let l={};e.results.forEach(e=>{let a=e.breakdown[t]?.[s];a&&"api_key_breakdown"in a&&Object.entries(a.api_key_breakdown||{}).forEach(([e,t])=>{l[e]||(l[e]={api_key:e,key_alias:t.metadata.key_alias,team_id:t.metadata.team_id,spend:0,requests:0,tokens:0}),l[e].spend+=t.metrics.spend,l[e].requests+=t.metrics.api_requests,l[e].tokens+=t.metrics.total_tokens})}),a[s].top_api_keys=Object.values(l).sort((e,t)=>t.spend-e.spend).slice(0,5)}),"api_keys"===t&&Object.entries(a).forEach(([t,s])=>{let r={};e.results.forEach(e=>{Object.entries(e.breakdown.models||{}).forEach(([e,s])=>{if(s&&"api_key_breakdown"in s){let a=s.api_key_breakdown?.[t];a&&(r[e]||(r[e]={model:e,spend:0,requests:0,successful_requests:0,failed_requests:0,tokens:0}),r[e].spend+=a.metrics.spend,r[e].requests+=a.metrics.api_requests,r[e].successful_requests+=a.metrics.successful_requests||0,r[e].failed_requests+=a.metrics.failed_requests||0,r[e].tokens+=a.metrics.total_tokens)}})}),a[t].top_models=Object.values(r).sort((e,t)=>t.spend-e.spend)}),Object.values(a).forEach(e=>{e.daily_data.sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime())}),a}],487147);var L=e.i(994388),D=e.i(366283),A=e.i(779241),M=e.i(212931),O=e.i(808613),E=e.i(482725),F=e.i(199133),$=e.i(727749);e.s(["default",0,({isOpen:e,onClose:s,accessToken:a})=>{let[r]=O.Form.useForm(),[l,i]=(0,T.useState)(!1),[n,o]=(0,T.useState)(null),[c,d]=(0,T.useState)(!1),[m,x]=(0,T.useState)("cloudzero"),[h,p]=(0,T.useState)(!1);(0,T.useEffect)(()=>{e&&a&&g()},[e,a]);let g=async()=>{d(!0);try{let e=await fetch("/cloudzero/settings",{method:"GET",headers:{[(0,t.getGlobalLitellmHeaderName)()]:`Bearer ${a}`,"Content-Type":"application/json"}});if(e.ok){let t=await e.json();o(t),r.setFieldsValue({connection_id:t.connection_id})}else if(404!==e.status){let t=await e.json();$.default.fromBackend(`Failed to load existing settings: ${t.error||"Unknown error"}`)}}catch(e){console.error("Error loading CloudZero settings:",e),$.default.fromBackend("Failed to load existing settings")}finally{d(!1)}},f=async e=>{if(!a)return void $.default.fromBackend("No access token available");i(!0);try{let s=n?"/cloudzero/settings":"/cloudzero/init",r=n?"PUT":"POST",l={...e,timezone:"UTC"},i=await fetch(s,{method:r,headers:{[(0,t.getGlobalLitellmHeaderName)()]:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify(l)}),c=await i.json();if(i.ok)return $.default.success(c.message||"CloudZero settings saved successfully"),o({api_key_masked:e.api_key.substring(0,4)+"****"+e.api_key.slice(-4),connection_id:e.connection_id,status:"configured"}),!0;return $.default.fromBackend(c.error||"Failed to save CloudZero settings"),!1}catch(e){return console.error("Error saving CloudZero settings:",e),$.default.fromBackend("Failed to save CloudZero settings"),!1}finally{i(!1)}},_=async()=>{if(!a)return void $.default.fromBackend("No access token available");p(!0);try{let e=await fetch("/cloudzero/export",{method:"POST",headers:{[(0,t.getGlobalLitellmHeaderName)()]:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({limit:1e5,operation:"replace_hourly"})}),r=await e.json();e.ok?($.default.success(r.message||"Export to CloudZero completed successfully"),s()):$.default.fromBackend(r.error||"Failed to export to CloudZero")}catch(e){console.error("Error exporting to CloudZero:",e),$.default.fromBackend("Failed to export to CloudZero")}finally{p(!1)}},y=async()=>{p(!0);try{$.default.info("CSV export functionality coming soon!"),s()}catch(e){console.error("Error exporting CSV:",e),$.default.fromBackend("Failed to export CSV")}finally{p(!1)}},b=async()=>{if("cloudzero"===m){if(!n){let e=await r.validateFields();if(!await f(e))return}await _()}else await y()},k=()=>{r.resetFields(),x("cloudzero"),o(null),s()},v=[{value:"cloudzero",label:(0,u.jsxs)("div",{className:"flex items-center gap-2",children:[(0,u.jsx)("img",{src:"/cloudzero.png",alt:"CloudZero",className:"w-5 h-5",onError:e=>{e.target.style.display="none"}}),(0,u.jsx)("span",{children:"Export to CloudZero"})]})},{value:"csv",label:(0,u.jsxs)("div",{className:"flex items-center gap-2",children:[(0,u.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,u.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})}),(0,u.jsx)("span",{children:"Export to CSV"})]})}];return(0,u.jsx)(M.Modal,{title:"Export Data",open:e,onCancel:k,footer:null,width:600,destroyOnHidden:!0,children:(0,u.jsxs)("div",{className:"space-y-4",children:[(0,u.jsxs)("div",{children:[(0,u.jsx)(j.Text,{className:"font-medium mb-2 block",children:"Export Destination"}),(0,u.jsx)(F.Select,{value:m,onChange:x,options:v,className:"w-full",size:"large"})]}),"cloudzero"===m&&(0,u.jsx)("div",{children:c?(0,u.jsx)("div",{className:"flex justify-center py-8",children:(0,u.jsx)(E.Spin,{size:"large"})}):(0,u.jsxs)(u.Fragment,{children:[n&&(0,u.jsx)(D.Callout,{title:"Existing CloudZero Configuration",icon:()=>(0,u.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,u.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})}),color:"green",className:"mb-4",children:(0,u.jsxs)(j.Text,{children:["API Key: ",n.api_key_masked,(0,u.jsx)("br",{}),"Connection ID: ",n.connection_id]})}),!n&&(0,u.jsxs)(O.Form,{form:r,layout:"vertical",children:[(0,u.jsx)(O.Form.Item,{label:"CloudZero API Key",name:"api_key",rules:[{required:!0,message:"Please enter your CloudZero API key"}],children:(0,u.jsx)(A.TextInput,{type:"password",placeholder:"Enter your CloudZero API key"})}),(0,u.jsx)(O.Form.Item,{label:"Connection ID",name:"connection_id",rules:[{required:!0,message:"Please enter the CloudZero connection ID"}],children:(0,u.jsx)(A.TextInput,{placeholder:"Enter CloudZero connection ID"})})]})]})}),"csv"===m&&(0,u.jsx)(D.Callout,{title:"CSV Export",icon:()=>(0,u.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,u.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 6v6m0 0v6m0-6h6m-6 0H6"})}),color:"blue",children:(0,u.jsx)(j.Text,{children:"Export your usage data as a CSV file for analysis in spreadsheet applications."})}),(0,u.jsxs)("div",{className:"flex justify-end space-x-2 pt-4",children:[(0,u.jsx)(L.Button,{variant:"secondary",onClick:k,children:"Cancel"}),(0,u.jsx)(L.Button,{onClick:b,loading:l||h,disabled:l||h,children:"cloudzero"===m?"Export to CloudZero":"Export CSV"})]})]})})}],498610);var U=e.i(785242),P=e.i(464571),R=e.i(981339);let V=({value:e,onChange:t})=>(0,u.jsxs)("div",{children:[(0,u.jsx)("label",{className:"text-sm font-medium text-gray-700 block mb-2",children:"Format"}),(0,u.jsx)(F.Select,{value:e,onChange:t,className:"w-full",options:[{value:"csv",label:"CSV (Excel, Google Sheets)"},{value:"json",label:"JSON (includes metadata)"}]})]}),I=({dateRange:e,selectedFilters:t})=>(0,u.jsxs)("div",{className:"text-sm text-gray-500",children:[e.from?.toLocaleDateString()," - ",e.to?.toLocaleDateString(),t.length>0&&` \xb7 ${t.length} filter${t.length>1?"s":""}`]});var B=e.i(91739);let W=({value:e,onChange:t,entityType:s})=>(0,u.jsxs)("div",{children:[(0,u.jsx)("label",{className:"text-sm font-medium text-gray-700 block mb-2",children:"Export type"}),(0,u.jsx)(B.Radio.Group,{value:e,onChange:e=>t(e.target.value),className:"w-full",children:(0,u.jsxs)("div",{className:"space-y-2",children:[(0,u.jsxs)("label",{className:"flex items-start p-3 border border-gray-200 rounded-lg hover:bg-gray-50 cursor-pointer transition-colors",children:[(0,u.jsx)(B.Radio,{value:"daily",className:"mt-0.5"}),(0,u.jsxs)("div",{className:"ml-3 flex-1",children:[(0,u.jsxs)("div",{className:"font-medium text-sm",children:["Day-by-day breakdown by ",s]}),(0,u.jsxs)("div",{className:"text-xs text-gray-500 mt-0.5",children:["Daily metrics for each ",s]})]})]}),(0,u.jsxs)("label",{className:"flex items-start p-3 border border-gray-200 rounded-lg hover:bg-gray-50 cursor-pointer transition-colors",children:[(0,u.jsx)(B.Radio,{value:"daily_with_keys",className:"mt-0.5"}),(0,u.jsxs)("div",{className:"ml-3 flex-1",children:[(0,u.jsxs)("div",{className:"font-medium text-sm",children:["Day-by-day breakdown by ",s," and key"]}),(0,u.jsxs)("div",{className:"text-xs text-gray-500 mt-0.5",children:["Daily metrics for each ",s,", split by API key"]})]})]}),(0,u.jsxs)("label",{className:"flex items-start p-3 border border-gray-200 rounded-lg hover:bg-gray-50 cursor-pointer transition-colors",children:[(0,u.jsx)(B.Radio,{value:"daily_with_models",className:"mt-0.5"}),(0,u.jsxs)("div",{className:"ml-3 flex-1",children:[(0,u.jsxs)("div",{className:"font-medium text-sm",children:["Day-by-day by ",s," and model"]}),(0,u.jsx)("div",{className:"text-xs text-gray-500 mt-0.5",children:"Daily metrics split by model"})]})]})]})})]});var z=e.i(59935);let Y=(e,t)=>({id:e,alias:t[e]||e}),K=["spend","api_requests","successful_requests","failed_requests","total_tokens","prompt_tokens","completion_tokens","cache_read_input_tokens","cache_creation_input_tokens"],H=e=>{let t=e.entities;return t&&Object.keys(t).length>0?t:(e=>{let t=e.api_keys;if(!t||0===Object.keys(t).length)return{};let s={};for(let[e,a]of Object.entries(t)){let t=a?.metadata?.team_id||"Unassigned";s[t]||(s[t]={metrics:Object.fromEntries(K.map(e=>[e,0])),api_key_breakdown:{}});let r=s[t].metrics,l=a?.metrics||{};for(let e of K)r[e]+=l[e]||0;s[t].api_key_breakdown[e]=a}return s})(e)},G=(e,t,s,a={})=>{switch(t){case"daily":default:return((e,t,s={})=>{let a=[];return e.results.forEach(e=>{Object.entries(H(e.breakdown)).forEach(([r,l])=>{let{id:i,alias:n}=Y(r,s);a.push({Date:e.date,[t]:n,[`${t} ID`]:i,"Spend ($)":(0,m.formatNumberWithCommas)(l.metrics.spend,4),Requests:l.metrics.api_requests,"Successful Requests":l.metrics.successful_requests,"Failed Requests":l.metrics.failed_requests,"Total Tokens":l.metrics.total_tokens,"Prompt Tokens":l.metrics.prompt_tokens||0,"Completion Tokens":l.metrics.completion_tokens||0})})}),a.sort((e,t)=>new Date(e.Date).getTime()-new Date(t.Date).getTime())})(e,s,a);case"daily_with_keys":return((e,t,s={})=>{let a={};return e.results.forEach(e=>{Object.entries(H(e.breakdown)).forEach(([t,r])=>{let{id:l,alias:i}=Y(t,s);Object.entries(r.api_key_breakdown||{}).forEach(([t,s])=>{let r=s?.metadata?.key_alias||null,n=`${e.date}_${l}_${t}`;a[n]?(a[n].metrics.spend+=s.metrics?.spend||0,a[n].metrics.api_requests+=s.metrics?.api_requests||0,a[n].metrics.successful_requests+=s.metrics?.successful_requests||0,a[n].metrics.failed_requests+=s.metrics?.failed_requests||0,a[n].metrics.total_tokens+=s.metrics?.total_tokens||0,a[n].metrics.prompt_tokens+=s.metrics?.prompt_tokens||0,a[n].metrics.completion_tokens+=s.metrics?.completion_tokens||0):a[n]={Date:e.date,entityId:l,entityAlias:i,keyId:t,keyAlias:r,metrics:{spend:s.metrics?.spend||0,api_requests:s.metrics?.api_requests||0,successful_requests:s.metrics?.successful_requests||0,failed_requests:s.metrics?.failed_requests||0,total_tokens:s.metrics?.total_tokens||0,prompt_tokens:s.metrics?.prompt_tokens||0,completion_tokens:s.metrics?.completion_tokens||0}}})})}),Object.values(a).map(e=>({Date:e.Date,[t]:e.entityAlias,[`${t} ID`]:e.entityId,"Key Alias":e.keyAlias||"-","Key ID":e.keyId,"Spend ($)":(0,m.formatNumberWithCommas)(e.metrics.spend,4),Requests:e.metrics.api_requests,"Successful Requests":e.metrics.successful_requests,"Failed Requests":e.metrics.failed_requests,"Total Tokens":e.metrics.total_tokens,"Prompt Tokens":e.metrics.prompt_tokens,"Completion Tokens":e.metrics.completion_tokens})).sort((e,t)=>new Date(e.Date).getTime()-new Date(t.Date).getTime())})(e,s,a);case"daily_with_models":return((e,t,s={})=>{let a=[];return e.results.forEach(e=>{let r={};Object.entries(H(e.breakdown)).forEach(([t,s])=>{r[t]||(r[t]={}),Object.entries(e.breakdown.models||{}).forEach(([e,a])=>{Object.entries(s.api_key_breakdown||{}).forEach(([s,a])=>{r[t][e]||(r[t][e]={spend:0,requests:0,successful:0,failed:0,tokens:0}),r[t][e].spend+=a.metrics.spend||0,r[t][e].requests+=a.metrics.api_requests||0,r[t][e].successful+=a.metrics.successful_requests||0,r[t][e].failed+=a.metrics.failed_requests||0,r[t][e].tokens+=a.metrics.total_tokens||0})})}),Object.entries(r).forEach(([r,l])=>{let{id:i,alias:n}=Y(r,s);Object.entries(l).forEach(([s,r])=>{a.push({Date:e.date,[t]:n,[`${t} ID`]:i,Model:s,"Spend ($)":(0,m.formatNumberWithCommas)(r.spend,4),Requests:r.requests,Successful:r.successful,Failed:r.failed,"Total Tokens":r.tokens})})})}),a.sort((e,t)=>new Date(e.Date).getTime()-new Date(t.Date).getTime())})(e,s,a)}},Z=({isOpen:e,onClose:t,entityType:s,spendData:a,dateRange:r,selectedFilters:l,customTitle:i})=>{let[n,o]=(0,T.useState)("csv"),[c,d]=(0,T.useState)("daily"),[m,h]=(0,T.useState)(!1),{data:p,isLoading:g}=(0,U.useTeams)(),f=s.charAt(0).toUpperCase()+s.slice(1),j=i||`Export ${f} Usage`,_=(0,T.useMemo)(()=>(0,x.createTeamAliasMap)(p),[p]),y=async e=>{let i=e||n;h(!0);try{"csv"===i?(((e,t,s,a,r={})=>{let l=G(e,t,s,r),i=new Blob([z.default.unparse(l)],{type:"text/csv;charset=utf-8;"}),n=window.URL.createObjectURL(i),o=document.createElement("a");o.href=n,o.download=`${a}_usage_${t}_${new Date().toISOString().split("T")[0]}.csv`,document.body.appendChild(o),o.click(),document.body.removeChild(o),window.URL.revokeObjectURL(n)})(a,c,f,s,_),$.default.success(`${f} usage data exported successfully as CSV`)):(((e,t,s,a,r,l,i={})=>{let n=G(e,t,s,i),o={export_date:new Date().toISOString(),entity_type:a,date_range:{from:r.from?.toISOString(),to:r.to?.toISOString()},filters_applied:l.length>0?l:"None",export_scope:t,summary:{total_spend:e.metadata.total_spend,total_requests:e.metadata.total_api_requests,successful_requests:e.metadata.total_successful_requests,failed_requests:e.metadata.total_failed_requests,total_tokens:e.metadata.total_tokens}},c=new Blob([JSON.stringify({metadata:o,data:n},null,2)],{type:"application/json"}),d=window.URL.createObjectURL(c),u=document.createElement("a");u.href=d,u.download=`${a}_usage_${t}_${new Date().toISOString().split("T")[0]}.json`,document.body.appendChild(u),u.click(),document.body.removeChild(u),window.URL.revokeObjectURL(d)})(a,c,f,s,r,l,_),$.default.success(`${f} usage data exported successfully as JSON`)),t()}catch(e){console.error("Error exporting data:",e),$.default.fromBackend("Failed to export data")}finally{h(!1)}};return(0,u.jsx)(M.Modal,{title:(0,u.jsx)("span",{className:"text-base font-semibold",children:j}),open:e,onCancel:t,footer:null,width:480,children:(0,u.jsxs)("div",{className:"space-y-5 py-2",children:[g?(0,u.jsx)(R.Skeleton,{active:!0}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(I,{dateRange:r,selectedFilters:l}),(0,u.jsx)(W,{value:c,onChange:d,entityType:s}),(0,u.jsx)(V,{value:n,onChange:o})]}),g?(0,u.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-4 border-t",children:[(0,u.jsx)(R.Skeleton.Button,{active:!0}),(0,u.jsx)(R.Skeleton.Button,{active:!0})]}):(0,u.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-4 border-t",children:[(0,u.jsx)(P.Button,{variant:"outlined",onClick:t,disabled:m,children:"Cancel"}),(0,u.jsx)(P.Button,{onClick:()=>y(),loading:m||g,disabled:m||g,type:"primary",children:m?"Exporting...":`Export ${n.toUpperCase()}`})]})]})})};e.s(["default",0,Z],785952),e.s(["default",0,({dateValue:e,entityType:t,spendData:s,showFilters:a=!1,filterLabel:r,filterPlaceholder:l,selectedFilters:i=[],onFiltersChange:n,filterOptions:o=[],filterMode:c="multiple",customTitle:d,compactLayout:m=!1,teams:x=[]})=>{let[h,p]=(0,T.useState)(!1);return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("div",{className:"mb-4",children:(0,u.jsxs)("div",{className:`grid ${a&&o.length>0?"grid-cols-[1fr_auto]":"grid-cols-[auto]"} items-end gap-4`,children:[a&&o.length>0&&(0,u.jsxs)("div",{children:[r&&(0,u.jsx)(j.Text,{className:"mb-2",children:r}),(0,u.jsx)(F.Select,{mode:"single"===c?void 0:"multiple",style:{width:"100%"},placeholder:l,value:"single"===c?i[0]??void 0:i,onChange:e=>{"single"===c?n?.(e?[e]:[]):n?.(e)},options:o,allowClear:!0})]}),(0,u.jsx)("div",{className:"justify-self-end",children:(0,u.jsx)(L.Button,{onClick:()=>p(!0),icon:()=>(0,u.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,u.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})}),children:"Export Data"})})]})}),(0,u.jsx)(Z,{isOpen:h,onClose:()=>p(!1),entityType:t,spendData:s,dateRange:e,selectedFilters:i,customTitle:d,teams:x})]})}],193523),e.s([],260573)},797305,497650,e=>{"use strict";var t=e.i(843476),s=e.i(755151),a=e.i(872934),r=e.i(827252),l=e.i(56456),i=e.i(240647),n=e.i(152473),o=e.i(584935),c=e.i(304967),d=e.i(309426),u=e.i(350967),m=e.i(197647),x=e.i(653824),h=e.i(881073),p=e.i(404206),g=e.i(723731),f=e.i(599724),j=e.i(629569),_=e.i(560445),y=e.i(464571),b=e.i(560025),k=e.i(199133),v=e.i(592968),N=e.i(898586),T=e.i(271645),C=e.i(289793),w=e.i(952840),S=e.i(135214),q=e.i(738014),L=e.i(617885),D=e.i(500330),A=e.i(708347),M=e.i(487147),O=e.i(498610);e.i(260573);var E=e.i(785952),F=e.i(764205),$=e.i(973706),U=e.i(571303);let P=({isDateChanging:e=!1})=>(0,t.jsx)("div",{className:"flex items-center justify-center h-40",children:(0,t.jsxs)("div",{className:"flex items-center justify-center gap-3",children:[(0,t.jsx)(U.UiLoadingSpinner,{className:"size-5"}),(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("span",{className:"text-gray-600 text-sm font-medium",children:e?"Processing date selection...":"Loading chart data..."}),(0,t.jsx)("span",{className:"text-gray-400 text-xs mt-1",children:e?"This will only take a moment":"Fetching your data"})]})]})});var R=e.i(290571),V=e.i(95779),I=e.i(444755),B=e.i(673706);let W=T.default.forwardRef((e,t)=>{let{color:s,children:a,className:r}=e,l=(0,R.__rest)(e,["color","children","className"]);return T.default.createElement("p",Object.assign({ref:t,className:(0,I.tremorTwMerge)("font-semibold text-tremor-metric",s?(0,B.getColorClassNames)(s,V.colorPalette.darkText).textColor:"text-tremor-content-strong dark:text-dark-tremor-content-strong",r)},l),a)});W.displayName="Metric";var z=e.i(37091),Y=e.i(269200),K=e.i(427612),H=e.i(496020),G=e.i(64848),Z=e.i(942232),J=e.i(977572),Q=e.i(994388);let X=({accessToken:e,selectedTags:s,formatAbbreviatedNumber:a})=>{let r,l,i,n,[c,d]=(0,T.useState)({results:[],total_count:0,page:1,page_size:50,total_pages:0}),[u,_]=(0,T.useState)(!1),[y,b]=(0,T.useState)(1),k=async()=>{if(e){_(!0);try{let t=await (0,F.perUserAnalyticsCall)(e,y,50,s.length>0?s:void 0);d(t)}catch(e){console.error("Failed to fetch per-user data:",e)}finally{_(!1)}}};return(0,T.useEffect)(()=>{k()},[e,s,y]),(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)(j.Title,{children:"Per User Usage"}),(0,t.jsx)(z.Subtitle,{children:"Individual developer usage metrics"}),(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)(h.TabList,{className:"mb-6",children:[(0,t.jsx)(m.Tab,{children:"User Details"}),(0,t.jsx)(m.Tab,{children:"Usage Distribution"})]}),(0,t.jsxs)(g.TabPanels,{children:[(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsxs)(Y.Table,{children:[(0,t.jsx)(K.TableHead,{children:(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(G.TableHeaderCell,{children:"User ID"}),(0,t.jsx)(G.TableHeaderCell,{children:"User Email"}),(0,t.jsx)(G.TableHeaderCell,{children:"User Agent"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-right",children:"Success Generations"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-right",children:"Total Tokens"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-right",children:"Failed Requests"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-right",children:"Total Cost"})]})}),(0,t.jsx)(Z.TableBody,{children:c.results.slice(0,10).map((e,s)=>(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(J.TableCell,{children:(0,t.jsx)(f.Text,{className:"font-medium",children:e.user_id})}),(0,t.jsx)(J.TableCell,{children:(0,t.jsx)(f.Text,{children:e.user_email||"N/A"})}),(0,t.jsx)(J.TableCell,{children:(0,t.jsx)(f.Text,{children:e.user_agent||"Unknown"})}),(0,t.jsx)(J.TableCell,{className:"text-right",children:(0,t.jsx)(f.Text,{children:a(e.successful_requests)})}),(0,t.jsx)(J.TableCell,{className:"text-right",children:(0,t.jsx)(f.Text,{children:a(e.total_tokens)})}),(0,t.jsx)(J.TableCell,{className:"text-right",children:(0,t.jsx)(f.Text,{children:a(e.failed_requests)})}),(0,t.jsx)(J.TableCell,{className:"text-right",children:(0,t.jsxs)(f.Text,{children:["$",a(e.spend,4)]})})]},s))})]}),c.results.length>10&&(0,t.jsxs)("div",{className:"mt-4 flex justify-between items-center",children:[(0,t.jsxs)(f.Text,{className:"text-sm text-gray-500",children:["Showing 10 of ",c.total_count," results"]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(Q.Button,{size:"sm",variant:"secondary",onClick:()=>{y>1&&b(y-1)},disabled:1===y,children:"Previous"}),(0,t.jsx)(Q.Button,{size:"sm",variant:"secondary",onClick:()=>{y=c.total_pages,children:"Next"})]})]})]}),(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(j.Title,{className:"text-lg",children:"User Usage Distribution"}),(0,t.jsx)(z.Subtitle,{children:"Number of users by successful request frequency"})]}),(0,t.jsx)(o.BarChart,{data:(r=new Map,c.results.forEach(e=>{let t=e.user_agent||"Unknown";r.set(t,(r.get(t)||0)+1)}),l=Array.from(r.entries()).sort(([,e],[,t])=>t-e).slice(0,8).map(([e])=>e),i={"1-9 requests":{range:[1,9],agents:{}},"10-99 requests":{range:[10,99],agents:{}},"100-999 requests":{range:[100,999],agents:{}},"1K-9.9K requests":{range:[1e3,9999],agents:{}},"10K-99.9K requests":{range:[1e4,99999],agents:{}},"100K+ requests":{range:[1e5,1/0],agents:{}}},c.results.forEach(e=>{let t=e.successful_requests,s=e.user_agent||"Unknown";l.includes(s)&&Object.entries(i).forEach(([e,a])=>{t>=a.range[0]&&t<=a.range[1]&&(a.agents[s]||(a.agents[s]=0),a.agents[s]++)})}),Object.entries(i).map(([e,t])=>{let s={category:e};return l.forEach(e=>{s[e]=t.agents[e]||0}),s})),index:"category",categories:(n=new Map,c.results.forEach(e=>{let t=e.user_agent||"Unknown";n.set(t,(n.get(t)||0)+1)}),Array.from(n.entries()).sort(([,e],[,t])=>t-e).slice(0,8).map(([e])=>e)),colors:["blue","green","orange","red","purple","yellow","pink","indigo"],valueFormatter:e=>`${e} users`,yAxisWidth:80,showLegend:!0,stack:!0})]})]})]})]})},ee=({accessToken:e,userRole:s,dateValue:a,onDateChange:r})=>{let[l,i]=(0,T.useState)({results:[]}),[n,d]=(0,T.useState)({results:[]}),[_,y]=(0,T.useState)({results:[]}),[b,N]=(0,T.useState)({results:[]}),[C,w]=(0,T.useState)(""),[S,q]=(0,T.useState)([]),[L,D]=(0,T.useState)([]),[A,M]=(0,T.useState)(!1),[O,E]=(0,T.useState)(!1),[$,U]=(0,T.useState)(!1),[R,V]=(0,T.useState)(!1),[I,B]=(0,T.useState)(!1),Y=new Date,K=async()=>{if(e){M(!0);try{let t=await (0,F.tagDistinctCall)(e);q(t.results.map(e=>e.tag))}catch(e){console.error("Failed to fetch available tags:",e)}finally{M(!1)}}},H=async()=>{if(e){E(!0);try{let t=await (0,F.tagDauCall)(e,Y,C||void 0,L.length>0?L:void 0);i(t)}catch(e){console.error("Failed to fetch DAU data:",e)}finally{E(!1)}}},G=async()=>{if(e){U(!0);try{let t=await (0,F.tagWauCall)(e,Y,C||void 0,L.length>0?L:void 0);d(t)}catch(e){console.error("Failed to fetch WAU data:",e)}finally{U(!1)}}},Z=async()=>{if(e){V(!0);try{let t=await (0,F.tagMauCall)(e,Y,C||void 0,L.length>0?L:void 0);y(t)}catch(e){console.error("Failed to fetch MAU data:",e)}finally{V(!1)}}},J=async()=>{if(e&&a.from&&a.to){B(!0);try{let t=await (0,F.userAgentSummaryCall)(e,a.from,a.to,L.length>0?L:void 0);N(t)}catch(e){console.error("Failed to fetch user agent summary data:",e)}finally{B(!1)}}};(0,T.useEffect)(()=>{K()},[e]),(0,T.useEffect)(()=>{if(!e)return;let t=setTimeout(()=>{H(),G(),Z()},50);return()=>clearTimeout(t)},[e,C,L]),(0,T.useEffect)(()=>{if(!a.from||!a.to)return;let e=setTimeout(()=>{J()},50);return()=>clearTimeout(e)},[e,a,L]);let Q=e=>e.startsWith("User-Agent: ")?e.replace("User-Agent: ",""):e,ee=e=>Object.entries(e.reduce((e,t)=>(e[t.tag]=(e[t.tag]||0)+t.active_users,e),{})).sort(([,e],[,t])=>t-e).map(([e])=>e),et=ee(l.results).slice(0,10),es=ee(n.results).slice(0,10),ea=ee(_.results).slice(0,10),er=(()=>{let e=[],t=new Date;for(let s=6;s>=0;s--){let a=new Date(t);a.setDate(a.getDate()-s);let r={date:a.toISOString().split("T")[0]};et.forEach(e=>{r[Q(e)]=0}),e.push(r)}return l.results.forEach(t=>{let s=Q(t.tag),a=e.find(e=>e.date===t.date);a&&(a[s]=t.active_users)}),e})(),el=(()=>{let e=[];for(let t=1;t<=7;t++){let s={week:`Week ${t}`};es.forEach(e=>{s[Q(e)]=0}),e.push(s)}return n.results.forEach(t=>{let s=Q(t.tag),a=t.date.match(/Week (\d+)/);if(a){let r=`Week ${a[1]}`,l=e.find(e=>e.week===r);l&&(l[s]=t.active_users)}}),e})(),ei=(()=>{let e=[];for(let t=1;t<=7;t++){let s={month:`Month ${t}`};ea.forEach(e=>{s[Q(e)]=0}),e.push(s)}return _.results.forEach(t=>{let s=Q(t.tag),a=t.date.match(/Month (\d+)/);if(a){let r=`Month ${a[1]}`,l=e.find(e=>e.month===r);l&&(l[s]=t.active_users)}}),e})(),en=(e,t=0)=>{if(e>=1e8||e>=1e7)return(e/1e6).toFixed(t)+"M";if(e>=1e6)return(e/1e6).toFixed(t)+"M";if(e>=1e4)return(e/1e3).toFixed(t)+"K";if(e>=1e3)return(e/1e3).toFixed(t)+"K";else return e.toFixed(t)};return(0,t.jsxs)("div",{className:"space-y-6 mt-6",children:[(0,t.jsx)(c.Card,{children:(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"flex justify-between items-start",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Title,{children:"Summary by User Agent"}),(0,t.jsx)(z.Subtitle,{children:"Performance metrics for different user agents"})]}),(0,t.jsxs)("div",{className:"w-96",children:[(0,t.jsx)(f.Text,{className:"text-sm font-medium block mb-2",children:"Filter by User Agents"}),(0,t.jsx)(k.Select,{mode:"multiple",placeholder:"All User Agents",value:L,onChange:D,style:{width:"100%"},showSearch:!0,allowClear:!0,loading:A,optionFilterProp:"label",className:"rounded-md",maxTagCount:"responsive",children:S.map(e=>{let s=Q(e),a=s.length>50?`${s.substring(0,50)}...`:s;return(0,t.jsx)(k.Select.Option,{value:e,label:a,title:s,children:a},e)})})]})]}),I?(0,t.jsx)(P,{isDateChanging:!1}):(0,t.jsxs)(u.Grid,{numItems:4,className:"gap-4",children:[(b.results||[]).slice(0,4).map((e,s)=>{let a=Q(e.tag),r=a.length>15?a.substring(0,15)+"...":a;return(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(v.Tooltip,{title:a,placement:"top",children:(0,t.jsx)(j.Title,{className:"truncate",children:r})}),(0,t.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Success Requests"}),(0,t.jsx)(W,{className:"text-lg",children:en(e.successful_requests)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Total Tokens"}),(0,t.jsx)(W,{className:"text-lg",children:en(e.total_tokens)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Total Cost"}),(0,t.jsxs)(W,{className:"text-lg",children:["$",en(e.total_spend,4)]})]})]})]},s)}),Array.from({length:Math.max(0,4-(b.results||[]).length)}).map((e,s)=>(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"No Data"}),(0,t.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Success Requests"}),(0,t.jsx)(W,{className:"text-lg",children:"-"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Total Tokens"}),(0,t.jsx)(W,{className:"text-lg",children:"-"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(f.Text,{className:"text-sm text-gray-600",children:"Total Cost"}),(0,t.jsx)(W,{className:"text-lg",children:"-"})]})]})]},`empty-${s}`))]})]})}),(0,t.jsx)(c.Card,{children:(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)(h.TabList,{className:"mb-6",children:[(0,t.jsx)(m.Tab,{children:"DAU/WAU/MAU"}),(0,t.jsx)(m.Tab,{children:"Per User Usage (Last 30 Days)"})]}),(0,t.jsxs)(g.TabPanels,{children:[(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)(j.Title,{children:"DAU, WAU & MAU per Agent"}),(0,t.jsx)(z.Subtitle,{children:"Active users across different time periods"})]}),(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)(h.TabList,{className:"mb-6",children:[(0,t.jsx)(m.Tab,{children:"DAU"}),(0,t.jsx)(m.Tab,{children:"WAU"}),(0,t.jsx)(m.Tab,{children:"MAU"})]}),(0,t.jsxs)(g.TabPanels,{children:[(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)(j.Title,{className:"text-lg",children:"Daily Active Users - Last 7 Days"})}),O?(0,t.jsx)(P,{isDateChanging:!1}):(0,t.jsx)(o.BarChart,{data:er,index:"date",categories:et.map(Q),valueFormatter:e=>en(e),yAxisWidth:60,showLegend:!0,stack:!0})]}),(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)(j.Title,{className:"text-lg",children:"Weekly Active Users - Last 7 Weeks"})}),$?(0,t.jsx)(P,{isDateChanging:!1}):(0,t.jsx)(o.BarChart,{data:el,index:"week",categories:es.map(Q),valueFormatter:e=>en(e),yAxisWidth:60,showLegend:!0,stack:!0})]}),(0,t.jsxs)(p.TabPanel,{children:[(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)(j.Title,{className:"text-lg",children:"Monthly Active Users - Last 7 Months"})}),R?(0,t.jsx)(P,{isDateChanging:!1}):(0,t.jsx)(o.BarChart,{data:ei,index:"month",categories:ea.map(Q),valueFormatter:e=>en(e),yAxisWidth:60,showLegend:!0,stack:!0})]})]})]})]}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(X,{accessToken:e,selectedTags:L,formatAbbreviatedNumber:en})})]})]})})]})};var et=e.i(617802);let es=["total_spend","total_prompt_tokens","total_completion_tokens","total_tokens","total_api_requests","total_successful_requests","total_failed_requests","total_cache_read_input_tokens","total_cache_creation_input_tokens"],ea={results:[],metadata:{total_spend:0,total_prompt_tokens:0,total_completion_tokens:0,total_tokens:0,total_api_requests:0,total_successful_requests:0,total_failed_requests:0,total_cache_read_input_tokens:0,total_cache_creation_input_tokens:0,total_pages:1,has_more:!1,page:1}};function er({fetchFn:e,args:t,enabled:s}){let[a,r]=(0,T.useState)(ea),[l,i]=(0,T.useState)(!1),[n,o]=(0,T.useState)(!1),[c,d]=(0,T.useState)({currentPage:0,totalPages:0}),[u,m]=(0,T.useState)(!1),x=(0,T.useRef)(0),h=(0,T.useRef)(!1),p=(0,T.useRef)(null),g=(0,T.useRef)(t);g.current=t;let f=JSON.stringify(t),j=(0,T.useCallback)(()=>{h.current=!0,m(!0),o(!1),null!==p.current&&(clearTimeout(p.current),p.current=null)},[]);return(0,T.useEffect)(()=>{if(!s){r(ea),i(!1),o(!1),d({currentPage:0,totalPages:0}),m(!1);return}let t=++x.current;h.current=!1,m(!1);let a=()=>x.current!==t||h.current,l=e=>new Promise(t=>{p.current=setTimeout(()=>{p.current=null,t()},e)});return(async()=>{let t=g.current;i(!0),o(!1),d({currentPage:1,totalPages:1});try{let s=[...t.slice(0,3),1,...t.slice(3)],n=await e(...s);if(a())return;r(n);let c=n.metadata?.total_pages||1;if(d({currentPage:1,totalPages:c}),c<=1)return void i(!1);i(!1),o(!0);let u=[...n.results],m={...n.metadata};for(let s=2;s<=c;s++){if(a()||(await l(300),a()))return;let i=[...t.slice(0,3),s,...t.slice(3)],n=await e(...i);if(a())return;u=[...u,...n.results],(m=function(e,t){let s={...e};for(let a of es)s[a]=(e[a]||0)+(t[a]||0);return s}(m,n.metadata)).total_pages=c,m.has_more=s{x.current++,null!==p.current&&(clearTimeout(p.current),p.current=null)}},[s,e,f]),{data:a,loading:l,isFetchingMore:n,progress:c,cancelled:u,cancel:j}}var el=e.i(23371),ei=e.i(286718);let en=({endpointData:e})=>{let s=e||{},a=T.default.useMemo(()=>Object.entries(s).map(([e,t])=>({endpoint:e,"metrics.successful_requests":t.metrics.successful_requests,"metrics.failed_requests":t.metrics.failed_requests,metrics:{successful_requests:t.metrics.successful_requests,failed_requests:t.metrics.failed_requests}})),[s]);return(0,t.jsxs)(c.Card,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsx)(j.Title,{children:"Success vs Failed Requests by Endpoint"}),(0,t.jsx)(ei.CustomLegend,{categories:["metrics.successful_requests","metrics.failed_requests"],colors:["green","red"]})]}),(0,t.jsx)(o.BarChart,{className:"mt-4",data:a,index:"endpoint",categories:["metrics.successful_requests","metrics.failed_requests"],colors:["green","red"],valueFormatter:e=>e.toLocaleString(),customTooltip:ei.CustomTooltip,showLegend:!1,stack:!0,yAxisWidth:60})]})};var eo=e.i(731195),ec=e.i(883966),ed=e.i(555706),eu=e.i(785183),em=e.i(93230),ex=e.i(844171),eh=(0,ec.generateCategoricalChart)({chartName:"LineChart",GraphicalChild:ed.Line,axisComponents:[{axisType:"xAxis",AxisComp:eu.XAxis},{axisType:"yAxis",AxisComp:em.YAxis}],formatAxisMap:ex.formatAxisMap}),ep=e.i(872526),eg=e.i(800494),ef=e.i(234239),ej=e.i(559559),e_=e.i(238279),ey=e.i(114887),eb=e.i(933303),ek=e.i(628781),ev=e.i(472007),eN=e.i(480731);let eT=T.default.forwardRef((e,t)=>{let{data:s=[],categories:a=[],index:r,colors:l=V.themeColorRange,valueFormatter:i=B.defaultValueFormatter,startEndOnly:n=!1,showXAxis:o=!0,showYAxis:c=!0,yAxisWidth:d=56,intervalType:u="equidistantPreserveStart",animationDuration:m=900,showAnimation:x=!1,showTooltip:h=!0,showLegend:p=!0,showGridLines:g=!0,autoMinValue:f=!1,curveType:j="linear",minValue:_,maxValue:y,connectNulls:b=!1,allowDecimals:k=!0,noDataText:v,className:N,onValueChange:C,enableLegendSlider:w=!1,customTooltip:S,rotateLabelX:q,padding:L=o||c?{left:20,right:20}:{left:0,right:0},tickGap:D=5,xAxisLabel:A,yAxisLabel:M}=e,O=(0,R.__rest)(e,["data","categories","index","colors","valueFormatter","startEndOnly","showXAxis","showYAxis","yAxisWidth","intervalType","animationDuration","showAnimation","showTooltip","showLegend","showGridLines","autoMinValue","curveType","minValue","maxValue","connectNulls","allowDecimals","noDataText","className","onValueChange","enableLegendSlider","customTooltip","rotateLabelX","padding","tickGap","xAxisLabel","yAxisLabel"]),[E,F]=(0,T.useState)(60),[$,U]=(0,T.useState)(void 0),[P,W]=(0,T.useState)(void 0),z=(0,ev.constructCategoryColors)(a,l),Y=(0,ev.getYAxisDomain)(f,_,y),K=!!C;function H(e){K&&(e===P&&!$||(0,ev.hasOnlyOneValueForThisKey)(s,e)&&$&&$.dataKey===e?(W(void 0),null==C||C(null)):(W(e),null==C||C({eventType:"category",categoryClicked:e})),U(void 0))}return T.default.createElement("div",Object.assign({ref:t,className:(0,I.tremorTwMerge)("w-full h-80",N)},O),T.default.createElement(eo.ResponsiveContainer,{className:"h-full w-full"},(null==s?void 0:s.length)?T.default.createElement(eh,{data:s,onClick:K&&(P||$)?()=>{U(void 0),W(void 0),null==C||C(null)}:void 0,margin:{bottom:A?30:void 0,left:M?20:void 0,right:M?5:void 0,top:5}},g?T.default.createElement(ep.CartesianGrid,{className:(0,I.tremorTwMerge)("stroke-1","stroke-tremor-border","dark:stroke-dark-tremor-border"),horizontal:!0,vertical:!1}):null,T.default.createElement(eu.XAxis,{padding:L,hide:!o,dataKey:r,interval:n?"preserveStartEnd":u,tick:{transform:"translate(0, 6)"},ticks:n?[s[0][r],s[s.length-1][r]]:void 0,fill:"",stroke:"",className:(0,I.tremorTwMerge)("text-tremor-label","fill-tremor-content","dark:fill-dark-tremor-content"),tickLine:!1,axisLine:!1,minTickGap:D,angle:null==q?void 0:q.angle,dy:null==q?void 0:q.verticalShift,height:null==q?void 0:q.xAxisHeight},A&&T.default.createElement(eg.Label,{position:"insideBottom",offset:-20,className:"fill-tremor-content-emphasis text-tremor-default font-medium dark:fill-dark-tremor-content-emphasis"},A)),T.default.createElement(em.YAxis,{width:d,hide:!c,axisLine:!1,tickLine:!1,type:"number",domain:Y,tick:{transform:"translate(-3, 0)"},fill:"",stroke:"",className:(0,I.tremorTwMerge)("text-tremor-label","fill-tremor-content","dark:fill-dark-tremor-content"),tickFormatter:i,allowDecimals:k},M&&T.default.createElement(eg.Label,{position:"insideLeft",style:{textAnchor:"middle"},angle:-90,offset:-15,className:"fill-tremor-content-emphasis text-tremor-default font-medium dark:fill-dark-tremor-content-emphasis"},M)),T.default.createElement(ef.Tooltip,{wrapperStyle:{outline:"none"},isAnimationActive:!1,cursor:{stroke:"#d1d5db",strokeWidth:1},content:h?({active:e,payload:t,label:s})=>S?T.default.createElement(S,{payload:null==t?void 0:t.map(e=>{var t;return Object.assign(Object.assign({},e),{color:null!=(t=z.get(e.dataKey))?t:eN.BaseColors.Gray})}),active:e,label:s}):T.default.createElement(eb.default,{active:e,payload:t,label:s,valueFormatter:i,categoryColors:z}):T.default.createElement(T.default.Fragment,null),position:{y:0}}),p?T.default.createElement(ej.Legend,{verticalAlign:"top",height:E,content:({payload:e})=>(0,ey.default)({payload:e},z,F,P,K?e=>H(e):void 0,w)}):null,a.map(e=>{var t;return T.default.createElement(ed.Line,{className:(0,I.tremorTwMerge)((0,B.getColorClassNames)(null!=(t=z.get(e))?t:eN.BaseColors.Gray,V.colorPalette.text).strokeColor),strokeOpacity:$||P&&P!==e?.3:1,activeDot:e=>{var t;let{cx:a,cy:r,stroke:l,strokeLinecap:i,strokeLinejoin:n,strokeWidth:o,dataKey:c}=e;return T.default.createElement(e_.Dot,{className:(0,I.tremorTwMerge)("stroke-tremor-background dark:stroke-dark-tremor-background",C?"cursor-pointer":"",(0,B.getColorClassNames)(null!=(t=z.get(c))?t:eN.BaseColors.Gray,V.colorPalette.text).fillColor),cx:a,cy:r,r:5,fill:"",stroke:l,strokeLinecap:i,strokeLinejoin:n,strokeWidth:o,onClick:(t,a)=>{a.stopPropagation(),K&&(e.index===(null==$?void 0:$.index)&&e.dataKey===(null==$?void 0:$.dataKey)||(0,ev.hasOnlyOneValueForThisKey)(s,e.dataKey)&&P&&P===e.dataKey?(W(void 0),U(void 0),null==C||C(null)):(W(e.dataKey),U({index:e.index,dataKey:e.dataKey}),null==C||C(Object.assign({eventType:"dot",categoryClicked:e.dataKey},e.payload))))}})},dot:t=>{var a;let{stroke:r,strokeLinecap:l,strokeLinejoin:i,strokeWidth:n,cx:o,cy:c,dataKey:d,index:u}=t;return(0,ev.hasOnlyOneValueForThisKey)(s,e)&&!($||P&&P!==e)||(null==$?void 0:$.index)===u&&(null==$?void 0:$.dataKey)===e?T.default.createElement(e_.Dot,{key:u,cx:o,cy:c,r:5,stroke:r,fill:"",strokeLinecap:l,strokeLinejoin:i,strokeWidth:n,className:(0,I.tremorTwMerge)("stroke-tremor-background dark:stroke-dark-tremor-background",C?"cursor-pointer":"",(0,B.getColorClassNames)(null!=(a=z.get(d))?a:eN.BaseColors.Gray,V.colorPalette.text).fillColor)}):T.default.createElement(T.Fragment,{key:u})},key:e,name:e,type:j,dataKey:e,stroke:"",strokeWidth:2,strokeLinejoin:"round",strokeLinecap:"round",isAnimationActive:x,animationDuration:m,connectNulls:b})}),C?a.map(e=>T.default.createElement(ed.Line,{className:(0,I.tremorTwMerge)("cursor-pointer"),strokeOpacity:0,key:e,name:e,type:j,dataKey:e,stroke:"transparent",fill:"transparent",legendType:"none",tooltipType:"none",strokeWidth:12,connectNulls:b,onClick:(e,t)=>{t.stopPropagation();let{name:s}=e;H(s)}})):null):T.default.createElement(ek.default,{noDataText:v})))});eT.displayName="LineChart";let eC=function({dailyData:e,endpointData:s}){let a=(0,T.useMemo)(()=>{var t;let s,a;return e?.results&&0!==e.results.length?(t=e.results,s=[],a=new Set,t.forEach(e=>{e.breakdown.endpoints&&Object.keys(e.breakdown.endpoints).forEach(e=>a.add(e))}),t.forEach(e=>{let t={date:new Date(e.date).toLocaleDateString("en-US",{month:"short",day:"numeric"})};a.forEach(s=>{let a=e.breakdown.endpoints?.[s];t[s]=a?.metrics.api_requests||0}),s.push(t)}),s.reverse()):[]},[e]),r=(0,T.useMemo)(()=>0===a.length?[]:Object.keys(a[0]).filter(e=>"date"!==e),[a]);return(0,t.jsxs)(c.Card,{className:"mb-6",children:[(0,t.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,t.jsx)(j.Title,{children:"Endpoint Usage Trends"})}),(0,t.jsx)(eT,{className:"h-80",data:a,index:"date",categories:r,colors:["blue","cyan","indigo","violet","purple","fuchsia","pink","rose","red","orange"].slice(0,r.length),valueFormatter:e=>e.toLocaleString(),showLegend:!0,showGridLines:!0,yAxisWidth:60,connectNulls:!0,curveType:"natural"})]})};var ew=e.i(291542),eS=e.i(309821);e.s(["Progress",()=>eS.default],497650);var eS=eS;let eq=({endpointData:e})=>{let s=Object.entries(e).map(([e,t])=>{var s,a;return{key:e,endpoint:e,successful_requests:t.metrics.successful_requests,failed_requests:t.metrics.failed_requests,api_requests:t.metrics.api_requests,total_tokens:t.metrics.total_tokens,spend:t.metrics.spend,successRate:(s=t.metrics.successful_requests,0===(a=t.metrics.api_requests)?0:s/a*100)}}),a=[{title:"Endpoint",dataIndex:"endpoint",key:"endpoint",render:e=>(0,t.jsx)("span",{className:"font-medium",children:e})},{title:"Successful / Failed",key:"requests",render:(e,s)=>{let a=s.api_requests>0?s.successful_requests/s.api_requests*100:0,r=s.api_requests>0?s.failed_requests/s.api_requests*100:0,l={"0%":"#22c55e"};return a>0&&a<100&&(l[`${a}%`]="#22c55e",l[`${a+.01}%`]="#ef4444"),l["100%"]=r>0?"#ef4444":"#22c55e",(0,t.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,t.jsx)("div",{className:"flex-1 relative",children:(0,t.jsx)(eS.default,{percent:a+r,size:"small",strokeColor:l,showInfo:!1})}),(0,t.jsxs)("div",{className:"flex items-center space-x-2 text-sm min-w-[100px]",children:[(0,t.jsx)("span",{className:"text-green-600 font-medium",children:s.successful_requests.toLocaleString()}),(0,t.jsx)("span",{className:"text-gray-400",children:"/"}),(0,t.jsx)("span",{className:"text-red-600 font-medium",children:s.failed_requests.toLocaleString()})]})]})}},{title:"Total Request",dataIndex:"api_requests",key:"api_requests",render:e=>e.toLocaleString()},{title:"Success Rate",dataIndex:"successRate",key:"successRate",render:e=>{let s=e.toFixed(2);return(0,t.jsxs)("span",{className:e>=95?"text-green-600 font-medium":e>=80?"text-yellow-600 font-medium":"text-red-600 font-medium",children:[s,"%"]})}},{title:"Total Tokens",dataIndex:"total_tokens",key:"total_tokens",render:e=>e.toLocaleString()},{title:"Spend",dataIndex:"spend",key:"spend",render:e=>`$${(0,D.formatNumberWithCommas)(e,2)}`}];return(0,t.jsx)(ew.Table,{columns:a,dataSource:s,pagination:!1})},eL=({userSpendData:e})=>{let s=(0,T.useMemo)(()=>{let t={};return e?.results&&e.results.forEach(e=>{Object.entries(e.breakdown.endpoints||{}).forEach(([e,s])=>{t[e]||(t[e]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:s.metadata||{},api_key_breakdown:{}}),t[e].metrics.spend+=s.metrics.spend,t[e].metrics.prompt_tokens+=s.metrics.prompt_tokens,t[e].metrics.completion_tokens+=s.metrics.completion_tokens,t[e].metrics.total_tokens+=s.metrics.total_tokens,t[e].metrics.api_requests+=s.metrics.api_requests,t[e].metrics.successful_requests+=s.metrics.successful_requests||0,t[e].metrics.failed_requests+=s.metrics.failed_requests||0,t[e].metrics.cache_read_input_tokens+=s.metrics.cache_read_input_tokens||0,t[e].metrics.cache_creation_input_tokens+=s.metrics.cache_creation_input_tokens||0})}),t},[e]);return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(eq,{endpointData:s}),(0,t.jsx)(en,{endpointData:s}),(0,t.jsx)(eC,{dailyData:e,endpointData:s})]})};var eD=e.i(214541),eA=e.i(413990),eM=e.i(785242);let{Text:eO}=N.Typography,eE=({value:e=[],onChange:s,disabled:a,organizationId:r,pageSize:i=20,placeholder:o="Search teams by alias..."})=>{let[c,d]=(0,T.useState)(""),[u,m]=(0,n.useDebouncedState)("",{wait:300}),{data:x,fetchNextPage:h,hasNextPage:p,isFetchingNextPage:g,isLoading:f}=(0,eM.useInfiniteTeams)(i,u||void 0,r),j=(0,T.useMemo)(()=>{if(!x?.pages)return[];let e=new Set,t=[];for(let s of x.pages)for(let a of s.teams)e.has(a.team_id)||(e.add(a.team_id),t.push(a));return t},[x]);return(0,t.jsx)(k.Select,{mode:"multiple",showSearch:!0,placeholder:o,value:e,onChange:e=>s?.(e),disabled:a,allowClear:!0,filterOption:!1,onSearch:e=>{d(e),m(e)},searchValue:c,onPopupScroll:e=>{let t=e.currentTarget;(t.scrollTop+t.clientHeight)/t.scrollHeight>=.8&&p&&!g&&h()},loading:f,notFoundContent:f?(0,t.jsx)(l.LoadingOutlined,{spin:!0}):"No teams found",style:{width:"100%"},popupRender:e=>(0,t.jsxs)(t.Fragment,{children:[e,g&&(0,t.jsx)("div",{style:{textAlign:"center",padding:8},children:(0,t.jsx)(l.LoadingOutlined,{spin:!0})})]}),children:j.map(e=>(0,t.jsxs)(k.Select.Option,{value:e.team_id,children:[(0,t.jsx)("span",{className:"font-medium",children:e.team_alias})," ",(0,t.jsxs)(eO,{type:"secondary",children:["(",e.team_id,")"]})]},e.team_id))})};var eF=e.i(193523),eF=eF,e$=e.i(916925),eU=e.i(1023),eP=e.i(149121);function eR({topModels:e,topModelsLimit:s,setTopModelsLimit:a}){let[r,l]=(0,T.useState)("table"),i=[{header:"Model",accessorKey:"key",cell:e=>e.getValue()||"-"},{header:"Spend (USD)",accessorKey:"spend",cell:e=>{let t=e.getValue();return`$${(0,D.formatNumberWithCommas)(t,2)}`}},{header:"Successful",accessorKey:"successful_requests",cell:e=>(0,t.jsx)("span",{className:"text-green-600",children:e.getValue()?.toLocaleString()||0})},{header:"Failed",accessorKey:"failed_requests",cell:e=>(0,t.jsx)("span",{className:"text-red-600",children:e.getValue()?.toLocaleString()||0})},{header:"Tokens",accessorKey:"tokens",cell:e=>e.getValue()?.toLocaleString()||0}],n=e.slice(0,s);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"mb-4 flex justify-between items-center",children:[(0,t.jsx)(b.Segmented,{options:[{label:"5",value:5},{label:"10",value:10},{label:"25",value:25},{label:"50",value:50}],value:s,onChange:e=>a(e)}),(0,t.jsxs)("div",{className:"flex space-x-2",children:[(0,t.jsx)("button",{onClick:()=>l("table"),className:`px-3 py-1 text-sm rounded-md ${"table"===r?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-700"}`,children:"Table View"}),(0,t.jsx)("button",{onClick:()=>l("chart"),className:`px-3 py-1 text-sm rounded-md ${"chart"===r?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-700"}`,children:"Chart View"})]})]}),"chart"===r?(0,t.jsx)("div",{className:"relative max-h-[600px] overflow-y-auto",children:(0,t.jsx)(o.BarChart,{className:"mt-4 cursor-pointer hover:opacity-90",style:{height:52*Math.min(n.length,s)},data:n,index:"key",categories:["spend"],colors:["cyan"],valueFormatter:e=>`$${(0,D.formatNumberWithCommas)(e,2)}`,layout:"vertical",yAxisWidth:200,tickGap:5,showLegend:!1})}):(0,t.jsx)("div",{className:"border rounded-lg overflow-hidden max-h-[600px] overflow-y-auto",children:(0,t.jsx)(eP.DataTable,{columns:i,data:n,renderSubComponent:()=>(0,t.jsx)(t.Fragment,{}),getRowCanExpand:()=>!1,isLoading:!1})})]})}let eV={tag:F.tagDailyActivityCall,team:F.teamDailyActivityCall,organization:F.organizationDailyActivityCall,customer:F.customerDailyActivityCall,agent:F.agentDailyActivityCall,user:F.userDailyActivityCall},eI=({accessToken:e,entityType:s,entityId:r,entityList:i,dateValue:n})=>{let b,k,v,{teams:N}=(0,eD.default)(),[C,w]=(0,T.useState)([]),[S,q]=(0,T.useState)(5),[L,A]=(0,T.useState)(5),[O,E]=(0,T.useState)(5),$=(0,T.useMemo)(()=>n.from?new Date(n.from):null,[n.from]),U=(0,T.useMemo)(()=>n.to?new Date(n.to):null,[n.to]),P=(0,T.useMemo)(()=>"user"===s?C.length>0?C[0]:null:C.length>0?C:null,[s,C]),R=eV[s],V=!!e&&!!$&&!!U,{data:I,isFetchingMore:B,progress:W,cancelled:Q,cancel:X}=er({fetchFn:R,args:[e,$,U,P],enabled:V}),{data:ee,isFetchingMore:et,progress:es,cancelled:ea,cancel:ei}=er({fetchFn:F.agentDailyActivityCall,args:[e,$,U,null],enabled:V&&"team"===s}),en=(0,M.processActivityData)(I,"models",N||[]),eo=(0,M.processActivityData)(I,"api_keys",N||[]),ec="team"===s?(0,M.processActivityData)(ee,"entities",N||[]):{},ed=()=>{let e={};return I.results.forEach(t=>{Object.entries(t.breakdown.providers||{}).forEach(([t,s])=>{e[t]||(e[t]={provider:t,spend:0,requests:0,successful_requests:0,failed_requests:0,tokens:0});try{e[t].spend+=s.metrics.spend,e[t].requests+=s.metrics.api_requests,e[t].successful_requests+=s.metrics.successful_requests,e[t].failed_requests+=s.metrics.failed_requests,e[t].tokens+=s.metrics.total_tokens}catch(e){console.error(`Error processing provider ${t}: ${e}`)}})}),Object.values(e).filter(e=>e.spend>0).sort((e,t)=>t.spend-e.spend)},eu=(e,t)=>{if(i){let t=i.find(t=>t.value===e);if(t)return t.label}return t?.team_alias?t.team_alias:e},em=()=>{var e;let t={};return I.results.forEach(e=>{Object.entries(e.breakdown.entities||{}).forEach(([e,s])=>{t[e]||(t[e]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{alias:eu(e,s.metadata),id:e}}),t[e].metrics.spend+=s.metrics.spend,t[e].metrics.api_requests+=s.metrics.api_requests,t[e].metrics.successful_requests+=s.metrics.successful_requests,t[e].metrics.failed_requests+=s.metrics.failed_requests,t[e].metrics.total_tokens+=s.metrics.total_tokens})}),e=Object.values(t).sort((e,t)=>t.metrics.spend-e.metrics.spend),0===C.length?e:e.filter(e=>C.includes(e.metadata.id))},ex=s.charAt(0).toUpperCase()+s.slice(1);return(0,t.jsxs)("div",{style:{width:"100%"},className:"relative",children:[B&&(0,t.jsx)(_.Alert,{banner:!0,type:"warning",className:"mb-2",message:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{children:[(0,t.jsx)(l.LoadingOutlined,{spin:!0,className:"mr-2"}),"Currently fetching spend data: fetched ",W.currentPage," / ",W.totalPages," pages. Charts will update periodically as data loads. Moving off of this page will stop and reset this. To continue using the UI in the meantime,"," ",(0,t.jsxs)("a",{href:window.location.href,target:"_blank",rel:"noopener noreferrer",children:["open a new tab ",(0,t.jsx)(a.ExportOutlined,{})]}),"."]}),(0,t.jsx)(y.Button,{type:"primary",danger:!0,onClick:X,children:"Stop"})]})}),Q&&(0,t.jsx)(_.Alert,{banner:!0,type:"info",className:"mb-2",message:(0,t.jsxs)("span",{children:["Showing partial data (",W.currentPage,"/",W.totalPages," pages loaded)"]})}),et&&"team"===s&&(0,t.jsx)(_.Alert,{banner:!0,type:"warning",className:"mb-2",message:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{children:[(0,t.jsx)(l.LoadingOutlined,{spin:!0,className:"mr-2"}),"Currently fetching agent data: fetched ",es.currentPage," / ",es.totalPages," pages. Charts will update periodically as data loads. Moving off of this page will stop and reset this. To continue using the UI in the meantime,"," ",(0,t.jsxs)("a",{href:window.location.href,target:"_blank",rel:"noopener noreferrer",children:["open a new tab ",(0,t.jsx)(a.ExportOutlined,{})]}),"."]}),(0,t.jsx)(y.Button,{type:"primary",danger:!0,onClick:ei,children:"Stop"})]})}),ea&&"team"===s&&(0,t.jsx)(_.Alert,{banner:!0,type:"info",className:"mb-2",message:(0,t.jsxs)("span",{children:["Showing partial agent data (",es.currentPage,"/",es.totalPages," pages loaded)"]})}),"team"===s&&(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(f.Text,{className:"mb-2",children:"Filter by team"}),(0,t.jsx)(eE,{value:C,onChange:w})]}),(0,t.jsx)(eF.default,{dateValue:n,entityType:s,spendData:I,showFilters:"team"!==s&&null!==i&&i.length>0,filterLabel:`Filter by ${s}`,filterPlaceholder:`Select ${s} to filter...`,selectedFilters:C,onFiltersChange:w,filterOptions:(()=>{if(i)return i})()||void 0,filterMode:"user"===s?"single":"multiple",teams:N||[]}),(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)(h.TabList,{variant:"solid",className:"mt-1",children:[(0,t.jsx)(m.Tab,{children:"Cost"}),(0,t.jsx)(m.Tab,{children:"agent"===s?"Request / Token Consumption":"Model Activity"}),"team"===s?(0,t.jsx)(m.Tab,{children:"Agent Activity"}):(0,t.jsx)(t.Fragment,{}),(0,t.jsx)(m.Tab,{children:"Key Activity"}),(0,t.jsx)(m.Tab,{children:"Endpoint Activity"})]}),(0,t.jsxs)(g.TabPanels,{children:[(0,t.jsx)(p.TabPanel,{children:(0,t.jsxs)(u.Grid,{numItems:2,className:"gap-2 w-full",children:[(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsxs)(j.Title,{children:[ex," Spend Overview"]}),(0,t.jsxs)(u.Grid,{numItems:5,className:"gap-4 mt-4",children:[(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Total Spend"}),(0,t.jsxs)(f.Text,{className:"text-2xl font-bold mt-2",children:["$",(0,D.formatNumberWithCommas)(I.metadata.total_spend,2)]})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Total Requests"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2",children:I.metadata.total_api_requests.toLocaleString()})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Successful Requests"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-green-600",children:I.metadata.total_successful_requests.toLocaleString()})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Failed Requests"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-red-600",children:I.metadata.total_failed_requests.toLocaleString()})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Total Tokens"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2",children:I.metadata.total_tokens.toLocaleString()})]})]})]})}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Daily Spend"}),(0,t.jsx)(o.BarChart,{data:[...I.results].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),index:"date",categories:["metrics.spend"],colors:["cyan"],valueFormatter:el.valueFormatterSpend,yAxisWidth:100,showLegend:!1,customTooltip:({payload:e,active:s})=>{if(!s||!e?.[0])return null;let a=e[0].payload,r=Object.keys(a.breakdown.entities||{}).length;return(0,t.jsxs)("div",{className:"bg-white p-4 shadow-lg rounded-lg border",children:[(0,t.jsx)("p",{className:"font-bold",children:a.date}),(0,t.jsxs)("p",{className:"text-cyan-500",children:["Total Spend: $",(0,D.formatNumberWithCommas)(a.metrics.spend,2)]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Total Requests: ",a.metrics.api_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Successful: ",a.metrics.successful_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Failed: ",a.metrics.failed_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Total Tokens: ",a.metrics.total_tokens]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Total ",ex,"s: ",r]}),(0,t.jsxs)("div",{className:"mt-2 border-t pt-2",children:[(0,t.jsxs)("p",{className:"font-semibold",children:["Spend by ",ex,":"]}),Object.entries(a.breakdown.entities||{}).sort(([,e],[,t])=>{let s=e.metrics.spend;return t.metrics.spend-s}).slice(0,5).map(([e,s])=>(0,t.jsxs)("p",{className:"text-sm text-gray-600",children:[eu(e,s.metadata),": $",(0,D.formatNumberWithCommas)(s.metrics.spend,2)]},e)),r>5&&(0,t.jsxs)("p",{className:"text-sm text-gray-500 italic",children:["...and ",r-5," more"]})]})]})}})]})}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsx)(c.Card,{children:(0,t.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,t.jsxs)("div",{className:"flex flex-col space-y-2",children:[(0,t.jsxs)(j.Title,{children:["Spend Per ",ex]}),(0,t.jsx)(z.Subtitle,{className:"text-xs",children:"Showing Top 5 by Spend"}),(0,t.jsxs)("div",{className:"flex items-center text-sm text-gray-500",children:[(0,t.jsxs)("span",{children:["Get Started by Tracking cost per ",ex," "]}),(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/enterprise#spend-tracking",className:"text-blue-500 hover:text-blue-700 ml-1",children:"here"})]})]}),(0,t.jsxs)(u.Grid,{numItems:2,className:"gap-6",children:[(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsx)(o.BarChart,{className:"mt-4 h-52",data:em().slice(0,5).map(e=>({...e,metadata:{...e.metadata,alias_display:e.metadata.alias&&e.metadata.alias.length>15?`${e.metadata.alias.slice(0,15)}...`:e.metadata.alias}})),index:"metadata.alias_display",categories:["metrics.spend"],colors:["cyan"],valueFormatter:el.valueFormatterSpend,layout:"vertical",showLegend:!1,yAxisWidth:150,customTooltip:({payload:e,active:s})=>{if(!s||!e?.[0])return null;let a=e[0].payload;return(0,t.jsxs)("div",{className:"bg-white p-4 shadow-lg rounded-lg border",children:[(0,t.jsx)("p",{className:"font-bold",children:a.metadata.alias}),(0,t.jsxs)("p",{className:"text-cyan-500",children:["Spend: $",(0,D.formatNumberWithCommas)(a.metrics.spend,4)]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Requests: ",a.metrics.api_requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-green-600",children:["Successful: ",a.metrics.successful_requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-red-600",children:["Failed: ",a.metrics.failed_requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Tokens: ",a.metrics.total_tokens.toLocaleString()]})]})}})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsx)("div",{className:"h-52 overflow-y-auto",children:(0,t.jsxs)(Y.Table,{children:[(0,t.jsx)(K.TableHead,{children:(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(G.TableHeaderCell,{children:ex}),(0,t.jsx)(G.TableHeaderCell,{children:"Spend"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-green-600",children:"Successful"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-red-600",children:"Failed"}),(0,t.jsx)(G.TableHeaderCell,{children:"Tokens"})]})}),(0,t.jsx)(Z.TableBody,{children:em().filter(e=>e.metrics.spend>0).map(e=>(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(J.TableCell,{children:e.metadata.alias}),(0,t.jsxs)(J.TableCell,{children:["$",(0,D.formatNumberWithCommas)(e.metrics.spend,4)]}),(0,t.jsx)(J.TableCell,{className:"text-green-600",children:e.metrics.successful_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{className:"text-red-600",children:e.metrics.failed_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{children:e.metrics.total_tokens.toLocaleString()})]},e.metadata.id))})]})})})]})]})})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Top Virtual Keys"}),(0,t.jsx)(eU.default,{topKeys:(console.log("debugTags",{spendData:I}),b={},I.results.forEach(e=>{let{breakdown:t}=e,{entities:s}=t;console.log("debugTags",{entities:s});let a=Object.keys(s).reduce((e,t)=>{let{api_key_breakdown:a}=s[t];return Object.keys(a).forEach(s=>{let r={tag:t,usage:a[s].metrics.spend};e[s]?e[s].push(r):e[s]=[r]}),e},{});console.log("debugTags",{tagDictionary:a}),Object.entries(e.breakdown.api_keys||{}).forEach(([e,t])=>{b[e]||(b[e]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{key_alias:t.metadata.key_alias,team_id:t.metadata.team_id||null,tags:a[e]||[]}},console.log("debugTags",{keySpend:b})),b[e].metrics.spend+=t.metrics.spend,b[e].metrics.prompt_tokens+=t.metrics.prompt_tokens,b[e].metrics.completion_tokens+=t.metrics.completion_tokens,b[e].metrics.total_tokens+=t.metrics.total_tokens,b[e].metrics.api_requests+=t.metrics.api_requests,b[e].metrics.successful_requests+=t.metrics.successful_requests,b[e].metrics.failed_requests+=t.metrics.failed_requests,b[e].metrics.cache_read_input_tokens+=t.metrics.cache_read_input_tokens||0,b[e].metrics.cache_creation_input_tokens+=t.metrics.cache_creation_input_tokens||0})}),Object.entries(b).map(([e,t])=>({api_key:e,key_alias:t.metadata.key_alias||"-",tags:t.metadata.tags||"-",spend:t.metrics.spend})).sort((e,t)=>t.spend-e.spend).slice(0,S)),teams:null,showTags:"tag"===s,topKeysLimit:S,setTopKeysLimit:q})]})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"agent"===s?"Top Agents":"Top Models"}),(0,t.jsx)(eR,{topModels:(k={},I.results.forEach(e=>{Object.entries(e.breakdown.models||{}).forEach(([e,t])=>{k[e]||(k[e]={spend:0,requests:0,successful_requests:0,failed_requests:0,tokens:0});try{k[e].spend+=t.metrics.spend}catch(s){console.error(`Error adding spend for ${e}: ${s}, got metrics: ${JSON.stringify(t)}`)}k[e].requests+=t.metrics.api_requests,k[e].successful_requests+=t.metrics.successful_requests,k[e].failed_requests+=t.metrics.failed_requests,k[e].tokens+=t.metrics.total_tokens})}),Object.entries(k).map(([e,t])=>({key:e,...t})).sort((e,t)=>t.spend-e.spend).slice(0,L)),topModelsLimit:L,setTopModelsLimit:A})]})}),"team"===s&&(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Top Agents Driving Spend"}),(0,t.jsx)(eR,{topModels:(v={},ee.results.forEach(e=>{Object.entries(e.breakdown.entities||{}).forEach(([e,t])=>{v[e]||(v[e]={spend:0,requests:0,successful_requests:0,failed_requests:0,tokens:0,agent_name:t.metadata?.agent_name||e}),v[e].spend+=t.metrics.spend,v[e].requests+=t.metrics.api_requests,v[e].successful_requests+=t.metrics.successful_requests,v[e].failed_requests+=t.metrics.failed_requests,v[e].tokens+=t.metrics.total_tokens})}),Object.entries(v).map(([e,t])=>({key:t.agent_name,...t})).sort((e,t)=>t.spend-e.spend).slice(0,O)),topModelsLimit:O,setTopModelsLimit:E})]})}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsx)(c.Card,{children:(0,t.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,t.jsx)(j.Title,{children:"Provider Usage"}),(0,t.jsxs)(u.Grid,{numItems:2,children:[(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsx)(eA.DonutChart,{className:"mt-4 h-40",data:ed(),index:"provider",category:"spend",valueFormatter:e=>`$${(0,D.formatNumberWithCommas)(e,2)}`,colors:["cyan","blue","indigo","violet","purple"]})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(Y.Table,{children:[(0,t.jsx)(K.TableHead,{children:(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(G.TableHeaderCell,{children:"Provider"}),(0,t.jsx)(G.TableHeaderCell,{children:"Spend"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-green-600",children:"Successful"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-red-600",children:"Failed"}),(0,t.jsx)(G.TableHeaderCell,{children:"Tokens"})]})}),(0,t.jsx)(Z.TableBody,{children:ed().map(e=>(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(J.TableCell,{children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[e.provider&&(0,t.jsx)("img",{src:(0,e$.getProviderLogoAndName)(e.provider).logo,alt:`${e.provider} logo`,className:"w-4 h-4",onError:t=>{let s=t.target,a=s.parentElement;if(a){let t=document.createElement("div");t.className="w-4 h-4 rounded-full bg-gray-200 flex items-center justify-center text-xs",t.textContent=e.provider?.charAt(0)||"-",a.replaceChild(t,s)}}}),(0,t.jsx)("span",{children:e.provider})]})}),(0,t.jsxs)(J.TableCell,{children:["$",(0,D.formatNumberWithCommas)(e.spend,2)]}),(0,t.jsx)(J.TableCell,{className:"text-green-600",children:e.successful_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{className:"text-red-600",children:e.failed_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{children:e.tokens.toLocaleString()})]},e.provider))})]})})]})]})})})]})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:en,hidePromptCachingMetrics:"agent"===s})}),"team"===s?(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:ec})}):(0,t.jsx)(t.Fragment,{}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:eo,hidePromptCachingMetrics:"agent"===s})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(eL,{userSpendData:I})})]})]})]})};var eB=e.i(793130),eW=e.i(418371);let ez=({loading:e,isDateChanging:s,providerSpend:a})=>{let[l,i]=(0,T.useState)(!1),[n,o]=(0,T.useState)(!1),m=a.filter(e=>e.provider?.toLowerCase()==="unknown"?n:!!l||e.spend>0);return(0,t.jsxs)(c.Card,{className:"h-full",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(j.Title,{children:"Spend by Provider"}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("label",{className:"text-sm text-gray-700",children:"Show Zero Spend"}),(0,t.jsx)(eB.Switch,{checked:l,onChange:i})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("label",{className:"text-sm text-gray-700",children:"Show Unknown"}),(0,t.jsx)(v.Tooltip,{title:"Requests that failed to route to a provider",children:(0,t.jsx)(r.InfoCircleOutlined,{className:"text-gray-400 hover:text-gray-600"})})]}),(0,t.jsx)(eB.Switch,{checked:n,onChange:o})]})]})]}),e?(0,t.jsx)(P,{isDateChanging:s}):(0,t.jsxs)(u.Grid,{numItems:2,children:[(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsx)(eA.DonutChart,{className:"mt-4 h-40",data:m,index:"provider",category:"spend",valueFormatter:e=>`$${(0,D.formatNumberWithCommas)(e,2)}`,colors:["cyan"]})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(Y.Table,{children:[(0,t.jsx)(K.TableHead,{children:(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(G.TableHeaderCell,{children:"Provider"}),(0,t.jsx)(G.TableHeaderCell,{children:"Spend"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-green-600",children:"Successful"}),(0,t.jsx)(G.TableHeaderCell,{className:"text-red-600",children:"Failed"}),(0,t.jsx)(G.TableHeaderCell,{children:"Tokens"})]})}),(0,t.jsx)(Z.TableBody,{children:m.map(e=>(0,t.jsxs)(H.TableRow,{children:[(0,t.jsx)(J.TableCell,{children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[e.provider&&(0,t.jsx)(eW.ProviderLogo,{provider:e.provider,className:"w-4 h-4"}),(0,t.jsx)("span",{children:e.provider})]})}),(0,t.jsxs)(J.TableCell,{children:["$",(0,D.formatNumberWithCommas)(e.spend,2)]}),(0,t.jsx)(J.TableCell,{className:"text-green-600",children:e.successful_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{className:"text-red-600",children:e.failed_requests.toLocaleString()}),(0,t.jsx)(J.TableCell,{children:e.tokens.toLocaleString()})]},e.provider))})]})})]})]})};var eY=e.i(311451),eK=e.i(482725),eH=e.i(918789);let{TextArea:eG}=eY.Input,eZ={get_usage_data:"📊",get_team_usage_data:"👥",get_tag_usage_data:"🏷️"},eJ=({step:e})=>{let s=eZ[e.tool_name]||"🔧",a=e.arguments,r=a.start_date&&a.end_date?`${a.start_date} → ${a.end_date}`:"",l=a.team_ids||a.tags||a.user_id||"";return(0,t.jsxs)("div",{className:"flex items-start gap-2 px-3 py-2 rounded-lg bg-gray-100 border border-gray-200 text-xs",children:[(0,t.jsx)("span",{className:"flex-shrink-0 mt-0.5",children:"running"===e.status?(0,t.jsx)(eK.Spin,{size:"small"}):"error"===e.status?(0,t.jsx)("span",{className:"text-red-500",children:"✗"}):(0,t.jsx)("span",{className:"text-green-600",children:"✓"})}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"font-medium text-gray-700",children:[s," ",e.tool_label]}),r&&(0,t.jsx)("div",{className:"text-gray-500 mt-0.5",children:r}),l&&(0,t.jsxs)("div",{className:"text-gray-500 mt-0.5",children:["Filter: ",l]}),"error"===e.status&&e.error&&(0,t.jsx)("div",{className:"text-red-600 mt-0.5",children:e.error})]})]})},eQ=({content:e})=>(0,t.jsx)(eH.default,{components:{p:({children:e})=>(0,t.jsx)("p",{className:"mb-2 last:mb-0",children:e}),strong:({children:e})=>(0,t.jsx)("strong",{className:"font-semibold",children:e}),ul:({children:e})=>(0,t.jsx)("ul",{className:"list-disc pl-4 mb-2 space-y-0.5",children:e}),ol:({children:e})=>(0,t.jsx)("ol",{className:"list-decimal pl-4 mb-2 space-y-0.5",children:e}),li:({children:e})=>(0,t.jsx)("li",{children:e}),h1:({children:e})=>(0,t.jsx)("h4",{className:"font-semibold text-sm mt-2 mb-1",children:e}),h2:({children:e})=>(0,t.jsx)("h4",{className:"font-semibold text-sm mt-2 mb-1",children:e}),h3:({children:e})=>(0,t.jsx)("h4",{className:"font-semibold text-sm mt-2 mb-1",children:e}),code:({children:e,className:s})=>s?.includes("language-")?(0,t.jsx)("pre",{className:"bg-gray-100 rounded p-2 my-1 overflow-x-auto text-xs",children:(0,t.jsx)("code",{children:e})}):(0,t.jsx)("code",{className:"px-1 py-0.5 rounded bg-gray-100 text-xs font-mono",children:e}),table:({children:e})=>(0,t.jsx)("div",{className:"overflow-x-auto my-2",children:(0,t.jsx)("table",{className:"text-xs border-collapse w-full",children:e})}),th:({children:e})=>(0,t.jsx)("th",{className:"border border-gray-200 px-2 py-1 bg-gray-50 font-medium text-left",children:e}),td:({children:e})=>(0,t.jsx)("td",{className:"border border-gray-200 px-2 py-1",children:e})},children:e}),eX=({open:e,onClose:s,accessToken:a})=>{let[r,l]=(0,T.useState)([]),[i,n]=(0,T.useState)(""),[o,c]=(0,T.useState)(!1),[d,u]=(0,T.useState)(void 0),[m,x]=(0,T.useState)([]),[h,p]=(0,T.useState)(!1),[g,f]=(0,T.useState)(""),[j,_]=(0,T.useState)(null),[b,v]=(0,T.useState)([]),N=(0,T.useRef)(null),C=(0,T.useRef)(null);(0,T.useEffect)(()=>{e&&0===m.length&&w()},[e]),(0,T.useEffect)(()=>{"function"==typeof N.current?.scrollIntoView&&N.current.scrollIntoView({behavior:"smooth"})},[r,g,b,j]);let w=async()=>{if(a){p(!0);try{let e=await (0,F.modelHubCall)(a);if(e?.data?.length>0){let t=e.data.map(e=>e.model_group).sort();x(t)}}catch(e){console.error("Failed to load models:",e)}finally{p(!1)}}},S=async()=>{if(!a||!i.trim()||o)return;let e=[...r,{role:"user",content:i.trim()}];l(e),n(""),c(!0),f(""),_(null),v([]);let t=new AbortController;C.current=t;let s="",u=[];try{await (0,F.usageAiChatStream)(a,e.slice(-20).map(e=>({role:e.role,content:e.content})),d||"",e=>{_(null),s+=e,f(s)},()=>{_(null),v([]),l(e=>[...e,{role:"assistant",content:s,toolCalls:u.length>0?[...u]:void 0}]),f("")},e=>{_(null),v([]),l(t=>[...t,{role:"assistant",content:`Error: ${e}`}]),f("")},e=>{_(e)},e=>{let t=u.findIndex(t=>t.tool_name===e.tool_name);t>=0?u[t]={...e}:u.push({...e}),v([...u])},t.signal)}catch(s){if(s?.name==="AbortError"||t.signal.aborted)return;let e=s?.message||"Failed to get response. Please try again.";l(t=>[...t,{role:"assistant",content:`Error: ${e}`}]),f("")}finally{c(!1),C.current=null}};return(0,t.jsxs)("div",{"data-testid":"usage-ai-chat-panel",className:`fixed top-0 right-0 h-full bg-white border-l border-gray-200 shadow-2xl z-50 flex flex-col transition-transform duration-300 ease-in-out ${e?"translate-x-0":"translate-x-full"}`,style:{width:420},children:[(0,t.jsxs)("div",{className:"px-5 pt-5 pb-3 border-b border-gray-100 flex-shrink-0",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("svg",{className:"w-5 h-5 text-blue-600",viewBox:"0 0 16 16",fill:"currentColor",children:(0,t.jsx)("path",{d:"M8 1l1.5 3.5L13 6l-3.5 1.5L8 11 6.5 7.5 3 6l3.5-1.5L8 1zm4 7l.75 1.75L14.5 10.5l-1.75.75L12 13l-.75-1.75L9.5 10.5l1.75-.75L12 8zM4 9l.75 1.75L6.5 11.5l-1.75.75L4 14l-.75-1.75L1.5 11.5l1.75-.75L4 9z"})}),(0,t.jsx)("h3",{className:"text-base font-semibold text-gray-900",children:"Ask AI"})]}),(0,t.jsx)("button",{onClick:()=>{C.current&&C.current.abort(),s()},className:"text-gray-400 hover:text-gray-600 transition-colors p-1 rounded-md hover:bg-gray-100",children:(0,t.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,t.jsx)("p",{className:"text-xs text-gray-500",children:"Ask about your spend, models, keys, and trends"})]}),(0,t.jsx)("div",{className:"px-5 py-3 border-b border-gray-100 flex-shrink-0",children:(0,t.jsx)(k.Select,{placeholder:"Select a model (optional, defaults to gpt-4o-mini)",value:d,onChange:e=>u(e),loading:h,showSearch:!0,allowClear:!0,size:"small",className:"w-full",options:m.map(e=>({label:e,value:e})),filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase())})}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 space-y-3 bg-gray-50",children:[0===r.length&&!g&&!o&&(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center h-full text-gray-400",children:[(0,t.jsx)("svg",{className:"w-8 h-8 mb-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M8 10h.01M12 10h.01M16 10h.01M9 16H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-5l-5 5v-5z"})}),(0,t.jsx)("p",{className:"text-sm font-medium",children:"Ask a question about your usage"}),(0,t.jsx)("p",{className:"text-xs mt-1",children:'e.g. "Which model costs me the most?"'})]}),r.map((e,s)=>(0,t.jsx)("div",{children:"user"===e.role?(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)("div",{className:"max-w-[88%] rounded-xl px-3.5 py-2 text-sm leading-relaxed bg-blue-600 text-white",children:e.content})}):(0,t.jsxs)("div",{className:"space-y-2",children:[e.toolCalls&&e.toolCalls.length>0&&(0,t.jsx)("div",{className:"space-y-1.5",children:e.toolCalls.map((e,s)=>(0,t.jsx)(eJ,{step:e},s))}),(0,t.jsx)("div",{className:"max-w-[95%] rounded-xl px-3.5 py-2.5 text-sm leading-relaxed bg-white border border-gray-200 text-gray-800",children:(0,t.jsx)(eQ,{content:e.content})})]})},s)),o&&b.length>0&&(0,t.jsx)("div",{className:"space-y-1.5",children:b.map((e,s)=>(0,t.jsx)(eJ,{step:e},s))}),o&&!g&&(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 text-xs text-gray-500",children:[(0,t.jsx)(eK.Spin,{size:"small"}),(0,t.jsx)("span",{className:"italic",children:j||"Thinking..."})]}),g&&(0,t.jsx)("div",{className:"max-w-[95%] rounded-xl px-3.5 py-2.5 text-sm leading-relaxed bg-white border border-gray-200 text-gray-800",children:(0,t.jsx)(eQ,{content:g})}),(0,t.jsx)("div",{ref:N})]}),(0,t.jsxs)("div",{className:"px-4 py-3 border-t border-gray-200 bg-white flex-shrink-0",children:[(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(eG,{value:i,onChange:e=>n(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),S())},placeholder:"Ask about your usage...",autoSize:{minRows:1,maxRows:3},className:"flex-1",disabled:o}),(0,t.jsx)(y.Button,{type:"primary",onClick:S,disabled:!i.trim()||o,loading:o,children:"Send"})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center mt-2",children:[(0,t.jsx)("button",{onClick:()=>{l([]),f(""),v([]),_(null)},className:"text-xs text-gray-400 hover:text-gray-600 transition-colors",disabled:0===r.length,children:"Clear chat"}),(0,t.jsx)("span",{className:"text-xs text-gray-400",children:"Enter to send"})]})]})]})};var e0=e.i(299251),e1=e.i(153702),e2=e.i(160818),e5=e.i(777579),e4=e.i(983561);e.i(247167);var e6=e.i(931067);let e3={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M922.9 701.9H327.4l29.9-60.9 496.8-.9c16.8 0 31.2-12 34.2-28.6l68.8-385.1c1.8-10.1-.9-20.5-7.5-28.4a34.99 34.99 0 00-26.6-12.5l-632-2.1-5.4-25.4c-3.4-16.2-18-28-34.6-28H96.5a35.3 35.3 0 100 70.6h125.9L246 312.8l58.1 281.3-74.8 122.1a34.96 34.96 0 00-3 36.8c6 11.9 18.1 19.4 31.5 19.4h62.8a102.43 102.43 0 00-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7h161.1a102.43 102.43 0 00-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7H923c19.4 0 35.3-15.8 35.3-35.3a35.42 35.42 0 00-35.4-35.2zM305.7 253l575.8 1.9-56.4 315.8-452.3.8L305.7 253zm96.9 612.7c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 01-31.6 31.6zm325.1 0c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 01-31.6 31.6z"}}]},name:"shopping-cart",theme:"outlined"};var e7=e.i(9583),e9=T.forwardRef(function(e,t){return T.createElement(e7.default,(0,e6.default)({},e,{ref:t,icon:e3}))}),e8=e.i(232164),te=e.i(645526),tt=e.i(771674),ts=e.i(906579);let ta=[{value:"global",label:"Global Usage",showForAdmin:"Global Usage",showForNonAdmin:"Your Usage",description:"View usage across all resources",descriptionForAdmin:"View usage across all resources",descriptionForNonAdmin:"View your usage",icon:(0,t.jsx)(e2.GlobalOutlined,{style:{fontSize:"16px"}})},{value:"my-usage",label:"Your Usage",description:"View your own usage",icon:(0,t.jsx)(tt.UserOutlined,{style:{fontSize:"16px"}}),adminOnly:!0},{value:"organization",label:"Organization Usage",showForAdmin:"Organization Usage",showForNonAdmin:"Your Organization Usage",description:"View organization-level usage",descriptionForAdmin:"View usage across all organizations",descriptionForNonAdmin:"View your organization's usage",icon:(0,t.jsx)(e0.BankOutlined,{style:{fontSize:"16px"}})},{value:"team",label:"Team Usage",description:"View usage by team",icon:(0,t.jsx)(te.TeamOutlined,{style:{fontSize:"16px"}})},{value:"customer",label:"Customer Usage",description:"View usage by customer accounts",icon:(0,t.jsx)(e9,{style:{fontSize:"16px"}}),adminOnly:!0},{value:"tag",label:"Tag Usage",description:"View usage grouped by tags",icon:(0,t.jsx)(e8.TagsOutlined,{style:{fontSize:"16px"}}),adminOnly:!0},{value:"agent",label:"Agent Usage (A2A)",description:"View usage by AI agents",icon:(0,t.jsx)(e4.RobotOutlined,{style:{fontSize:"16px"}}),adminOnly:!0},{value:"user",label:"User Usage",description:"View usage by individual users",icon:(0,t.jsx)(tt.UserOutlined,{style:{fontSize:"16px"}}),adminOnly:!0},{value:"user-agent-activity",label:"User Agent Activity",description:"View detailed user agent activity logs",icon:(0,t.jsx)(e5.LineChartOutlined,{style:{fontSize:"16px"}}),adminOnly:!0}],tr=({value:e,onChange:s,isAdmin:a,canViewTagUsage:r=!1,title:l="Usage View",description:i="Select the usage data you want to view","data-id":n})=>{let o=ta.filter(e=>"tag"===e.value&&!!r||!e.adminOnly||!!a).map(e=>{let t=e.label,s=e.description;return e.showForAdmin&&e.showForNonAdmin&&(t=a?e.showForAdmin:e.showForNonAdmin),e.descriptionForAdmin&&e.descriptionForNonAdmin&&(s=a?e.descriptionForAdmin:e.descriptionForNonAdmin),{value:e.value,label:t,description:s,icon:e.icon,badgeText:e.badgeText}});return(0,t.jsx)("div",{className:"w-full","data-id":n,children:(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-start gap-4",children:[(0,t.jsxs)("div",{className:"flex items-stretch gap-2 min-w-0",children:[(0,t.jsx)("div",{className:"flex-shrink-0 flex items-center",children:(0,t.jsx)(e1.BarChartOutlined,{style:{fontSize:"32px"}})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-gray-900 mb-0.5 leading-tight",children:l}),(0,t.jsx)("p",{className:"text-xs text-gray-600 leading-tight",children:i})]})]}),(0,t.jsx)("div",{className:"flex-shrink-0",children:(0,t.jsx)(k.Select,{value:e,onChange:s,className:"w-54 sm:w-64 md:w-72",size:"large",options:o.map(e=>({value:e.value,label:e.label})),optionRender:e=>{let s=o.find(t=>t.value===e.value);return s?(0,t.jsxs)("div",{className:"flex items-center gap-2 py-1",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-0.5",children:s.icon}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-gray-900",children:s.label}),(0,t.jsx)("div",{className:"text-xs text-gray-600 mt-0.5",children:s.description})]}),s.badgeText&&(0,t.jsx)("div",{className:"items-center",children:(0,t.jsx)(ts.Badge,{color:"blue",count:s.badgeText})})]}):e.label},labelRender:e=>{let s=o.find(t=>t.value===e.value);return s?(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{children:s.icon}),(0,t.jsx)("span",{className:"text-sm",children:s.label})]}):e.label}})})]})})};e.s(["default",0,({teams:e,organizations:U})=>{let R,{accessToken:V,userRole:I,userId:B,premiumUser:W}=(0,S.default)(),[z,Y]=(0,T.useState)(null),[K,H]=(0,T.useState)(!1),[G,Z]=(0,T.useState)(!1),[J,Q]=(0,T.useState)(!1),X=(0,T.useMemo)(()=>new Date(Date.now()-6048e5),[]),es=(0,T.useMemo)(()=>new Date,[]),[ea,ei]=(0,T.useState)({from:X,to:es}),[en,eo]=(0,T.useState)([]),{data:ec=[]}=(0,w.useCustomers)(),{data:ed}=(0,C.useAgents)(),{data:eu}=(0,q.useCurrentUser)();console.log(`currentUser: ${JSON.stringify(eu)}`),console.log(`currentUser max budget: ${eu?.max_budget}`);let em=A.all_admin_roles.includes(I||""),ex=em||A.internalUserRoles.includes(I||""),[eh,ep]=(0,T.useState)(""),[eg,ef]=(0,n.useDebouncedState)("",{wait:300}),{data:ej,fetchNextPage:e_,hasNextPage:ey,isFetchingNextPage:eb,isLoading:ek}=(0,L.useInfiniteUsers)(50,eg||void 0),ev=(0,T.useMemo)(()=>{if(!ej?.pages)return[];let e=new Set,t=[];for(let s of ej.pages)for(let a of s.users)e.has(a.user_id)||(e.add(a.user_id),t.push({value:a.user_id,label:a.user_alias?`${a.user_alias} (${a.user_id})`:a.user_email?`${a.user_email} (${a.user_id})`:a.user_id}));return t},[ej]),[eN,eT]=(0,T.useState)(em?null:B||null),[eC,ew]=(0,T.useState)("groups"),[eS,eq]=(0,T.useState)(!1),[eD,eA]=(0,T.useState)(!1),[eM,eO]=(0,T.useState)(!1),[eE,eF]=(0,T.useState)("global"),[e$,eP]=(0,T.useState)(!0),[eR,eV]=(0,T.useState)(5),[eB,eW]=(0,T.useState)(5),[eY,eK]=(0,T.useState)(!1);(0,T.useEffect)(()=>{!em&&B&&eT(B)},[em,B]);let eH="my-usage"!==eE&&em?eN:B||null,eG=(0,T.useMemo)(()=>ea.from?new Date(ea.from):null,[ea.from]),eZ=(0,T.useMemo)(()=>ea.to?new Date(ea.to):null,[ea.to]);(0,T.useEffect)(()=>{if(!V)return;let e=!1;return(async()=>{try{let t=await (0,F.tagListCall)(V,eG,eZ);if(e)return;eo(Object.values(t).map(e=>({label:e.name,value:e.name})))}catch(t){e||console.error("Failed to fetch tag list",t)}})(),()=>{e=!0}},[V,eG,eZ]);let eJ=(0,T.useRef)(0);(0,T.useEffect)(()=>{if(!V||!eG||!eZ)return;let e=++eJ.current;Z(!0),H(!1),Y(null),(0,F.userDailyActivityAggregatedCall)(V,eG,eZ,eH).then(t=>{eJ.current===e&&(Y(t),Z(!1),Q(!1))}).catch(()=>{eJ.current===e&&(H(!0),Z(!1))})},[V,eG,eZ,eH]);let eQ=er({fetchFn:F.userDailyActivityCall,args:[V,eG,eZ,eH],enabled:K&&!!V&&!!eG&&!!eZ}),e0=(0,T.useMemo)(()=>z||(K?eQ.data:{results:[],metadata:{}}),[z,K,eQ.data]),e1=G||eQ.loading;(0,T.useEffect)(()=>{K&&!eQ.loading&&eQ.data.results.length>0&&Q(!1)},[K,eQ.loading,eQ.data.results.length]);let e2=(0,T.useCallback)(e=>{Q(!0),ei(e)},[]),e5=e0.metadata?.total_spend||0,e4=(0,T.useMemo)(()=>{let e={};return e0.results.forEach(t=>{Object.entries(t.breakdown.models||{}).forEach(([t,s])=>{e[t]||(e[t]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{},api_key_breakdown:{}}),e[t].metrics.spend+=s.metrics.spend,e[t].metrics.prompt_tokens+=s.metrics.prompt_tokens,e[t].metrics.completion_tokens+=s.metrics.completion_tokens,e[t].metrics.total_tokens+=s.metrics.total_tokens,e[t].metrics.api_requests+=s.metrics.api_requests,e[t].metrics.successful_requests+=s.metrics.successful_requests||0,e[t].metrics.failed_requests+=s.metrics.failed_requests||0,e[t].metrics.cache_read_input_tokens+=s.metrics.cache_read_input_tokens||0,e[t].metrics.cache_creation_input_tokens+=s.metrics.cache_creation_input_tokens||0})}),Object.entries(e).map(([e,t])=>({key:e,spend:t.metrics.spend,requests:t.metrics.api_requests,successful_requests:t.metrics.successful_requests,failed_requests:t.metrics.failed_requests,tokens:t.metrics.total_tokens})).sort((e,t)=>t.spend-e.spend).slice(0,eB)},[e0.results,eB]),e6=(0,T.useMemo)(()=>{let e={};return e0.results.forEach(t=>{Object.entries(t.breakdown.model_groups||{}).forEach(([t,s])=>{e[t]||(e[t]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{},api_key_breakdown:{}}),e[t].metrics.spend+=s.metrics.spend,e[t].metrics.prompt_tokens+=s.metrics.prompt_tokens,e[t].metrics.completion_tokens+=s.metrics.completion_tokens,e[t].metrics.total_tokens+=s.metrics.total_tokens,e[t].metrics.api_requests+=s.metrics.api_requests,e[t].metrics.successful_requests+=s.metrics.successful_requests||0,e[t].metrics.failed_requests+=s.metrics.failed_requests||0,e[t].metrics.cache_read_input_tokens+=s.metrics.cache_read_input_tokens||0,e[t].metrics.cache_creation_input_tokens+=s.metrics.cache_creation_input_tokens||0})}),Object.entries(e).map(([e,t])=>({key:e,spend:t.metrics.spend,requests:t.metrics.api_requests,successful_requests:t.metrics.successful_requests,failed_requests:t.metrics.failed_requests,tokens:t.metrics.total_tokens})).sort((e,t)=>t.spend-e.spend).slice(0,eB)},[e0.results,eB]),e3=(0,T.useMemo)(()=>{let e={};return e0.results.forEach(t=>{Object.entries(t.breakdown.providers||{}).forEach(([t,s])=>{e[t]||(e[t]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{},api_key_breakdown:{}}),e[t].metrics.spend+=s.metrics.spend,e[t].metrics.prompt_tokens+=s.metrics.prompt_tokens,e[t].metrics.completion_tokens+=s.metrics.completion_tokens,e[t].metrics.total_tokens+=s.metrics.total_tokens,e[t].metrics.api_requests+=s.metrics.api_requests,e[t].metrics.successful_requests+=s.metrics.successful_requests||0,e[t].metrics.failed_requests+=s.metrics.failed_requests||0,e[t].metrics.cache_read_input_tokens+=s.metrics.cache_read_input_tokens||0,e[t].metrics.cache_creation_input_tokens+=s.metrics.cache_creation_input_tokens||0})}),Object.entries(e).map(([e,t])=>({provider:e,spend:t.metrics.spend,requests:t.metrics.api_requests,successful_requests:t.metrics.successful_requests,failed_requests:t.metrics.failed_requests,tokens:t.metrics.total_tokens}))},[e0.results]),e7=(0,T.useMemo)(()=>{let e={};return e0.results.forEach(t=>{Object.entries(t.breakdown.api_keys||{}).forEach(([t,s])=>{e[t]||(e[t]={metrics:{spend:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,api_requests:0,successful_requests:0,failed_requests:0,cache_read_input_tokens:0,cache_creation_input_tokens:0},metadata:{key_alias:s.metadata.key_alias,team_id:null,tags:s.metadata.tags||[]}}),e[t].metrics.spend+=s.metrics.spend,e[t].metrics.prompt_tokens+=s.metrics.prompt_tokens,e[t].metrics.completion_tokens+=s.metrics.completion_tokens,e[t].metrics.total_tokens+=s.metrics.total_tokens,e[t].metrics.api_requests+=s.metrics.api_requests,e[t].metrics.successful_requests+=s.metrics.successful_requests,e[t].metrics.failed_requests+=s.metrics.failed_requests,e[t].metrics.cache_read_input_tokens+=s.metrics.cache_read_input_tokens||0,e[t].metrics.cache_creation_input_tokens+=s.metrics.cache_creation_input_tokens||0})}),Object.entries(e).map(([e,t])=>({api_key:e,key_alias:t.metadata.key_alias||"-",tags:t.metadata.tags||[],spend:t.metrics.spend})).sort((e,t)=>t.spend-e.spend).slice(0,eR)},[e0.results,eR]),e9=(0,T.useMemo)(()=>[...e0.results].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),[e0.results]),e8=(0,T.useMemo)(()=>(0,M.processActivityData)(e0,"models",e),[e0,e]),te=(0,T.useMemo)(()=>(0,M.processActivityData)(e0,"api_keys",e),[e0,e]),tt=(0,T.useMemo)(()=>(0,M.processActivityData)(e0,"mcp_servers",e),[e0,e]);return(0,t.jsxs)("div",{style:{width:"100%"},className:"p-8 relative",children:[(0,t.jsx)("div",{className:"flex items-end justify-between gap-6 mb-6",children:(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsxs)("div",{className:"flex items-end justify-between gap-6 mb-4 w-full",children:[(0,t.jsx)(tr,{value:eE,onChange:e=>eF(e),isAdmin:em,canViewTagUsage:ex}),(0,t.jsx)($.default,{value:ea,onValueChange:e2})]}),eQ.isFetchingMore&&(0,t.jsx)(_.Alert,{banner:!0,type:"warning",className:"mb-2",message:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{children:[(0,t.jsx)(l.LoadingOutlined,{spin:!0,className:"mr-2"}),"Currently fetching spend data: fetched ",eQ.progress.currentPage," /"," ",eQ.progress.totalPages," pages. Charts will update periodically as data loads. Moving off of this page will stop and reset this. To continue using the UI in the meantime,"," ",(0,t.jsxs)("a",{href:window.location.href,target:"_blank",rel:"noopener noreferrer",children:["open a new tab ",(0,t.jsx)(a.ExportOutlined,{})]}),"."]}),(0,t.jsx)(y.Button,{type:"primary",danger:!0,onClick:eQ.cancel,children:"Stop"})]})}),eQ.cancelled&&(0,t.jsx)(_.Alert,{banner:!0,type:"info",className:"mb-2",message:(0,t.jsxs)("span",{children:["Showing partial data (",eQ.progress.currentPage,"/",eQ.progress.totalPages," ","pages loaded)"]})}),("global"===eE||"my-usage"===eE)&&(0,t.jsxs)(t.Fragment,{children:[em&&"global"===eE&&(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(f.Text,{className:"mb-2",children:"Filter by user"}),(0,t.jsx)(k.Select,{showSearch:!0,allowClear:!0,style:{width:"100%"},placeholder:"Select user to filter...",value:eN,onChange:e=>eT(e??null),filterOption:!1,onSearch:e=>{ep(e),ef(e)},searchValue:eh,onPopupScroll:e=>{let t=e.currentTarget;(t.scrollTop+t.clientHeight)/t.scrollHeight>=.8&&ey&&!eb&&e_()},loading:ek,notFoundContent:ek?(0,t.jsx)(l.LoadingOutlined,{spin:!0}):"No users found",options:ev,popupRender:e=>(0,t.jsxs)(t.Fragment,{children:[e,eb&&(0,t.jsx)("div",{style:{textAlign:"center",padding:8},children:(0,t.jsx)(l.LoadingOutlined,{spin:!0})})]})})]}),(0,t.jsxs)(x.TabGroup,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsxs)(h.TabList,{variant:"solid",className:"mt-1",children:[(0,t.jsx)(m.Tab,{children:"Cost"}),(0,t.jsx)(m.Tab,{children:"Model Activity"}),(0,t.jsx)(m.Tab,{children:"Key Activity"}),(0,t.jsx)(m.Tab,{children:"MCP Server Activity"}),(0,t.jsx)(m.Tab,{children:"Endpoint Activity"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(y.Button,{onClick:()=>eO(!0),icon:(0,t.jsx)("svg",{className:"w-4 h-4",viewBox:"0 0 16 16",fill:"currentColor",children:(0,t.jsx)("path",{d:"M8 1l1.5 3.5L13 6l-3.5 1.5L8 11 6.5 7.5 3 6l3.5-1.5L8 1zm4 7l.75 1.75L14.5 10.5l-1.75.75L12 13l-.75-1.75L9.5 10.5l1.75-.75L12 8zM4 9l.75 1.75L6.5 11.5l-1.75.75L4 14l-.75-1.75L1.5 11.5l1.75-.75L4 9z"})}),children:"Ask AI"}),(0,t.jsx)(y.Button,{onClick:()=>eA(!0),icon:(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})}),children:"Export Data"})]})]}),(0,t.jsxs)(g.TabPanels,{children:[(0,t.jsx)(p.TabPanel,{children:(0,t.jsxs)(u.Grid,{numItems:2,className:"gap-2 w-full",children:[(0,t.jsxs)(d.Col,{numColSpan:2,children:[(0,t.jsx)("div",{className:"flex items-center gap-4 mt-2 mb-2",children:(0,t.jsxs)(f.Text,{className:"text-tremor-default text-tremor-content dark:text-dark-tremor-content text-lg",children:["Project Spend"," ",ea.from&&ea.to&&(0,t.jsxs)(t.Fragment,{children:[ea.from.toLocaleDateString("en-US",{month:"short",day:"numeric",year:ea.from.getFullYear()!==ea.to.getFullYear()?"numeric":void 0})," - ",ea.to.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})]})]})}),(0,t.jsx)(et.default,{userSpend:e5,selectedTeam:null,userMaxBudget:eu?.max_budget||null})]}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Usage Metrics"}),(0,t.jsxs)(u.Grid,{numItems:5,className:"gap-4 mt-4",children:[(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Total Requests"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2",children:e0.metadata?.total_api_requests?.toLocaleString()||0})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Successful Requests"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-green-600",children:e0.metadata?.total_successful_requests?.toLocaleString()||0})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(j.Title,{children:"Failed Requests"}),(0,t.jsx)(v.Tooltip,{title:"Includes requests that failed to route to a provider, tool usage failures, and other request errors where the provider cannot be determined.",children:(0,t.jsx)(r.InfoCircleOutlined,{className:"text-gray-400 hover:text-gray-600"})})]}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-red-600",children:e0.metadata?.total_failed_requests?.toLocaleString()||0})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Average Cost per Request"}),(0,t.jsxs)(f.Text,{className:"text-2xl font-bold mt-2",children:["$",(0,D.formatNumberWithCommas)((e5||0)/(e0.metadata?.total_api_requests||1),4)]})]}),(0,t.jsxs)(c.Card,{className:"cursor-pointer hover:bg-gray-50 transition-colors",onClick:()=>eK(!eY),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(j.Title,{children:"Total Tokens"}),eY?(0,t.jsx)(s.DownOutlined,{className:"text-gray-400 text-xs"}):(0,t.jsx)(i.RightOutlined,{className:"text-gray-400 text-xs"})]}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2",children:e0.metadata?.total_tokens?.toLocaleString()||0})]})]}),eY&&(0,t.jsxs)(u.Grid,{numItems:4,className:"gap-4 mt-4",children:[(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Input Tokens"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-blue-600",children:(e0.metadata?.total_prompt_tokens||0).toLocaleString()})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Output Tokens"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-cyan-600",children:e0.metadata?.total_completion_tokens?.toLocaleString()||0})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Cache Read Tokens"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-green-600",children:e0.metadata?.total_cache_read_input_tokens?.toLocaleString()||0})]}),(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Cache Write Tokens"}),(0,t.jsx)(f.Text,{className:"text-2xl font-bold mt-2 text-purple-600",children:e0.metadata?.total_cache_creation_input_tokens?.toLocaleString()||0})]})]})]})}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsxs)(c.Card,{children:[(0,t.jsx)(j.Title,{children:"Daily Spend"}),e1?(0,t.jsx)(P,{isDateChanging:J}):(0,t.jsx)(o.BarChart,{data:e9,index:"date",categories:["metrics.spend"],colors:["cyan"],valueFormatter:el.valueFormatterSpend,yAxisWidth:100,showLegend:!1,customTooltip:({payload:e,active:s})=>{if(!s||!e?.[0])return null;let a=e[0].payload;return(0,t.jsxs)("div",{className:"bg-white p-4 shadow-lg rounded-lg border",children:[(0,t.jsx)("p",{className:"font-bold",children:a.date}),(0,t.jsxs)("p",{className:"text-cyan-500",children:["Spend: $",(0,D.formatNumberWithCommas)(a.metrics.spend,2)]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Requests: ",a.metrics.api_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Successful: ",a.metrics.successful_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Failed: ",a.metrics.failed_requests]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Tokens: ",a.metrics.total_tokens]})]})}})]})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(c.Card,{className:"h-full",children:[(0,t.jsx)(j.Title,{children:"Top Virtual Keys"}),(0,t.jsx)(eU.default,{topKeys:e7,teams:null,topKeysLimit:eR,setTopKeysLimit:eV})]})}),(0,t.jsx)(d.Col,{numColSpan:1,children:(0,t.jsxs)(c.Card,{className:"h-full",children:[(0,t.jsx)(j.Title,{children:"groups"===eC?"Top Public Model Names":"Top Litellm Models"}),(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(b.Segmented,{options:[{label:"5",value:5},{label:"10",value:10},{label:"25",value:25},{label:"50",value:50}],value:eB,onChange:e=>eW(e)}),(0,t.jsxs)("div",{className:"flex bg-gray-100 rounded-lg p-1",children:[(0,t.jsx)("button",{className:`px-3 py-1 text-sm rounded-md transition-colors ${"groups"===eC?"bg-white shadow-sm text-gray-900":"text-gray-600 hover:text-gray-900"}`,onClick:()=>ew("groups"),children:"Public Model Name"}),(0,t.jsx)("button",{className:`px-3 py-1 text-sm rounded-md transition-colors ${"individual"===eC?"bg-white shadow-sm text-gray-900":"text-gray-600 hover:text-gray-900"}`,onClick:()=>ew("individual"),children:"Litellm Model Name"})]})]}),e1?(0,t.jsx)(P,{isDateChanging:J}):(0,t.jsx)("div",{className:"relative max-h-[600px] overflow-y-auto",children:(R="groups"===eC?e6:e4,(0,t.jsx)(o.BarChart,{className:"mt-4",style:{height:52*Math.min(R.length,eB)},data:R,index:"key",categories:["spend"],colors:["cyan"],valueFormatter:el.valueFormatterSpend,layout:"vertical",yAxisWidth:200,showLegend:!1,customTooltip:({payload:e,active:s})=>{if(!s||!e?.[0])return null;let a=e[0].payload;return(0,t.jsxs)("div",{className:"bg-white p-4 shadow-lg rounded-lg border",children:[(0,t.jsx)("p",{className:"font-bold",children:a.key}),(0,t.jsxs)("p",{className:"text-cyan-500",children:["Spend: $",(0,D.formatNumberWithCommas)(a.spend,2)]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Total Requests: ",a.requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-green-600",children:["Successful: ",a.successful_requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-red-600",children:["Failed: ",a.failed_requests.toLocaleString()]}),(0,t.jsxs)("p",{className:"text-gray-600",children:["Tokens: ",a.tokens.toLocaleString()]})]})}}))})]})}),(0,t.jsx)(d.Col,{numColSpan:2,children:(0,t.jsx)(ez,{loading:e1,isDateChanging:J,providerSpend:e3})})]})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:e8})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:te})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(M.ActivityMetrics,{modelMetrics:tt})}),(0,t.jsx)(p.TabPanel,{children:(0,t.jsx)(eL,{userSpendData:e0})})]})]})]}),"organization"===eE&&(0,t.jsx)(eI,{accessToken:V,entityType:"organization",userID:B,userRole:I,dateValue:ea,entityList:U?.map(e=>({label:e.organization_alias,value:e.organization_id}))||null,premiumUser:W}),"team"===eE&&(0,t.jsx)(eI,{accessToken:V,entityType:"team",userID:B,userRole:I,entityList:e?.map(e=>({label:e.team_alias,value:e.team_id}))||null,premiumUser:W,dateValue:ea}),"customer"===eE&&(0,t.jsx)(eI,{accessToken:V,entityType:"customer",userID:B,userRole:I,entityList:ec?.map(e=>({label:e.alias||e.user_id,value:e.user_id}))||null,premiumUser:W,dateValue:ea}),"tag"===eE&&(0,t.jsxs)(t.Fragment,{children:[e$&&(0,t.jsx)(_.Alert,{banner:!0,type:"info",message:"Reusable credentials are automatically tracked as tags",description:(0,t.jsxs)(N.Typography.Text,{children:["When a reusable credential is used, it will appear as a tag prefixed with"," ",(0,t.jsx)(N.Typography.Text,{code:!0,children:"Credential: "}),"in this view."]}),closable:!0,onClose:()=>eP(!1),className:"mb-5"}),(0,t.jsx)(eI,{accessToken:V,entityType:"tag",userID:B,userRole:I,entityList:en,premiumUser:W,dateValue:ea})]}),"agent"===eE&&(0,t.jsx)(eI,{accessToken:V,entityType:"agent",userID:B,userRole:I,entityList:ed?.agents?.map(e=>({label:e.agent_name,value:e.agent_id}))||null,premiumUser:W,dateValue:ea}),"user"===eE&&(0,t.jsx)(eI,{accessToken:V,entityType:"user",userID:B,userRole:I,entityList:ev.length>0?ev:null,premiumUser:W,dateValue:ea}),"user-agent-activity"===eE&&(0,t.jsx)(ee,{accessToken:V,userRole:I,dateValue:ea})]})}),(0,t.jsx)(O.default,{isOpen:eS,onClose:()=>eq(!1),accessToken:V}),(0,t.jsx)(E.default,{isOpen:eD,onClose:()=>eA(!1),entityType:"team",spendData:{results:e0.results,metadata:e0.metadata},dateRange:ea,selectedFilters:[],customTitle:"Export Usage Data"}),(0,t.jsx)(eX,{open:eM,onClose:()=>eO(!1),accessToken:V})]})}],797305)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0c.vtc8uofg.h.js b/litellm/proxy/_experimental/out/_next/static/chunks/0c.vtc8uofg.h.js deleted file mode 100644 index 42b7436c65c..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/0c.vtc8uofg.h.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,37091,e=>{"use strict";var t=e.i(290571),r=e.i(95779),a=e.i(444755),l=e.i(673706),s=e.i(271645);let o=s.default.forwardRef((e,o)=>{let{color:i,children:n,className:c}=e,u=(0,t.__rest)(e,["color","children","className"]);return s.default.createElement("p",Object.assign({ref:o,className:(0,a.tremorTwMerge)(i?(0,l.getColorClassNames)(i,r.colorPalette.lightText).textColor:"text-tremor-content-emphasis dark:text-dark-tremor-content-emphasis",c)},u),n)});o.displayName="Subtitle",e.s(["Subtitle",0,o],37091)},166406,e=>{"use strict";var t=e.i(190144);e.s(["CopyOutlined",()=>t.default])},447566,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 000 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"}}]},name:"arrow-left",theme:"outlined"};var l=e.i(9583),s=r.forwardRef(function(e,s){return r.createElement(l.default,(0,t.default)({},e,{ref:s,icon:a}))});e.s(["ArrowLeftOutlined",0,s],447566)},492030,e=>{"use strict";var t=e.i(121229);e.s(["CheckOutlined",()=>t.default])},829672,836938,310730,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(914949),l=e.i(404948);let s=e=>e?"function"==typeof e?e():e:null;e.s(["getRenderPropValue",0,s],836938);var o=e.i(613541),i=e.i(763731),n=e.i(242064),c=e.i(491816);e.i(793154);var u=e.i(880476),d=e.i(183293),p=e.i(717356),m=e.i(320560),f=e.i(307358),g=e.i(246422),h=e.i(838378),b=e.i(617933);let v=(0,g.genStyleHooks)("Popover",e=>{let{colorBgElevated:t,colorText:r}=e,a=(0,h.mergeToken)(e,{popoverBg:t,popoverColor:r});return[(e=>{let{componentCls:t,popoverColor:r,titleMinWidth:a,fontWeightStrong:l,innerPadding:s,boxShadowSecondary:o,colorTextHeading:i,borderRadiusLG:n,zIndexPopup:c,titleMarginBottom:u,colorBgElevated:p,popoverBg:f,titleBorderBottom:g,innerContentPadding:h,titlePadding:b}=e;return[{[t]:Object.assign(Object.assign({},(0,d.resetComponent)(e)),{position:"absolute",top:0,left:{_skip_check_:!0,value:0},zIndex:c,fontWeight:"normal",whiteSpace:"normal",textAlign:"start",cursor:"auto",userSelect:"text","--valid-offset-x":"var(--arrow-offset-horizontal, var(--arrow-x))",transformOrigin:"var(--valid-offset-x, 50%) var(--arrow-y, 50%)","--antd-arrow-background-color":p,width:"max-content",maxWidth:"100vw","&-rtl":{direction:"rtl"},"&-hidden":{display:"none"},[`${t}-content`]:{position:"relative"},[`${t}-inner`]:{backgroundColor:f,backgroundClip:"padding-box",borderRadius:n,boxShadow:o,padding:s},[`${t}-title`]:{minWidth:a,marginBottom:u,color:i,fontWeight:l,borderBottom:g,padding:b},[`${t}-inner-content`]:{color:r,padding:h}})},(0,m.default)(e,"var(--antd-arrow-background-color)"),{[`${t}-pure`]:{position:"relative",maxWidth:"none",margin:e.sizePopupArrow,display:"inline-block",[`${t}-content`]:{display:"inline-block"}}}]})(a),(e=>{let{componentCls:t}=e;return{[t]:b.PresetColors.map(r=>{let a=e[`${r}6`];return{[`&${t}-${r}`]:{"--antd-arrow-background-color":a,[`${t}-inner`]:{backgroundColor:a},[`${t}-arrow`]:{background:"transparent"}}}})}})(a),(0,p.initZoomMotion)(a,"zoom-big")]},e=>{let{lineWidth:t,controlHeight:r,fontHeight:a,padding:l,wireframe:s,zIndexPopupBase:o,borderRadiusLG:i,marginXS:n,lineType:c,colorSplit:u,paddingSM:d}=e,p=r-a;return Object.assign(Object.assign(Object.assign({titleMinWidth:177,zIndexPopup:o+30},(0,f.getArrowToken)(e)),(0,m.getArrowOffsetToken)({contentRadius:i,limitVerticalRadius:!0})),{innerPadding:12*!s,titleMarginBottom:s?0:n,titlePadding:s?`${p/2}px ${l}px ${p/2-t}px`:0,titleBorderBottom:s?`${t}px ${c} ${u}`:"none",innerContentPadding:s?`${d}px ${l}px`:0})},{resetStyle:!1,deprecatedTokens:[["width","titleMinWidth"],["minWidth","titleMinWidth"]]});var y=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,a=Object.getOwnPropertySymbols(e);lt.indexOf(a[l])&&Object.prototype.propertyIsEnumerable.call(e,a[l])&&(r[a[l]]=e[a[l]]);return r};let x=({title:e,content:r,prefixCls:a})=>e||r?t.createElement(t.Fragment,null,e&&t.createElement("div",{className:`${a}-title`},e),r&&t.createElement("div",{className:`${a}-inner-content`},r)):null,w=e=>{let{hashId:a,prefixCls:l,className:o,style:i,placement:n="top",title:c,content:d,children:p}=e,m=s(c),f=s(d),g=(0,r.default)(a,l,`${l}-pure`,`${l}-placement-${n}`,o);return t.createElement("div",{className:g,style:i},t.createElement("div",{className:`${l}-arrow`}),t.createElement(u.Popup,Object.assign({},e,{className:a,prefixCls:l}),p||t.createElement(x,{prefixCls:l,title:m,content:f})))},C=e=>{let{prefixCls:a,className:l}=e,s=y(e,["prefixCls","className"]),{getPrefixCls:o}=t.useContext(n.ConfigContext),i=o("popover",a),[c,u,d]=v(i);return c(t.createElement(w,Object.assign({},s,{prefixCls:i,hashId:u,className:(0,r.default)(l,d)})))};e.s(["Overlay",0,x,"default",0,C],310730);var O=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,a=Object.getOwnPropertySymbols(e);lt.indexOf(a[l])&&Object.prototype.propertyIsEnumerable.call(e,a[l])&&(r[a[l]]=e[a[l]]);return r};let j=t.forwardRef((e,u)=>{var d,p;let{prefixCls:m,title:f,content:g,overlayClassName:h,placement:b="top",trigger:y="hover",children:w,mouseEnterDelay:C=.1,mouseLeaveDelay:j=.1,onOpenChange:S,overlayStyle:k={},styles:E,classNames:M}=e,N=O(e,["prefixCls","title","content","overlayClassName","placement","trigger","children","mouseEnterDelay","mouseLeaveDelay","onOpenChange","overlayStyle","styles","classNames"]),{getPrefixCls:R,className:P,style:$,classNames:T,styles:D}=(0,n.useComponentConfig)("popover"),z=R("popover",m),[L,F,_]=v(z),I=R(),B=(0,r.default)(h,F,_,P,T.root,null==M?void 0:M.root),H=(0,r.default)(T.body,null==M?void 0:M.body),[A,G]=(0,a.default)(!1,{value:null!=(d=e.open)?d:e.visible,defaultValue:null!=(p=e.defaultOpen)?p:e.defaultVisible}),K=(e,t)=>{G(e,!0),null==S||S(e,t)},V=s(f),W=s(g);return L(t.createElement(c.default,Object.assign({placement:b,trigger:y,mouseEnterDelay:C,mouseLeaveDelay:j},N,{prefixCls:z,classNames:{root:B,body:H},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},D.root),$),k),null==E?void 0:E.root),body:Object.assign(Object.assign({},D.body),null==E?void 0:E.body)},ref:u,open:A,onOpenChange:e=>{K(e)},overlay:V||W?t.createElement(x,{prefixCls:z,title:V,content:W}):null,transitionName:(0,o.getTransitionName)(I,"zoom-big",N.transitionName),"data-popover-inject":!0}),(0,i.cloneElement)(w,{onKeyDown:e=>{var r,a;(0,t.isValidElement)(w)&&(null==(a=null==w?void 0:(r=w.props).onKeyDown)||a.call(r,e)),e.keyCode===l.default.ESC&&K(!1,e)}})))});j._InternalPanelDoNotUseOrYouWillBeFired=C,e.s(["default",0,j],829672)},282786,e=>{"use strict";var t=e.i(829672);e.s(["Popover",()=>t.default])},637235,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z"}}]},name:"clock-circle",theme:"outlined"};var l=e.i(9583),s=r.forwardRef(function(e,s){return r.createElement(l.default,(0,t.default)({},e,{ref:s,icon:a}))});e.s(["ClockCircleOutlined",0,s],637235)},891547,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(199133),l=e.i(764205);e.s(["default",0,({onChange:e,value:s,className:o,accessToken:i,disabled:n})=>{let[c,u]=(0,r.useState)([]),[d,p]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{(async()=>{if(i){p(!0);try{let e=await (0,l.getGuardrailsList)(i);console.log("Guardrails response:",e),e.guardrails&&(console.log("Guardrails data:",e.guardrails),u(e.guardrails))}catch(e){console.error("Error fetching guardrails:",e)}finally{p(!1)}}})()},[i]),(0,t.jsx)("div",{children:(0,t.jsx)(a.Select,{mode:"multiple",disabled:n,placeholder:n?"Setting guardrails is a premium feature.":"Select guardrails",onChange:t=>{console.log("Selected guardrails:",t),e(t)},value:s,loading:d,className:o,allowClear:!0,options:c.map(e=>(console.log("Mapping guardrail:",e),{label:`${e.guardrail_name}`,value:e.guardrail_name})),optionFilterProp:"label",showSearch:!0,style:{width:"100%"}})})}])},921511,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(199133),l=e.i(764205);function s(e){return e.filter(e=>(e.version_status??"draft")!=="draft").map(e=>{var t;let r=e.version_number??1,a=e.version_status??"draft";return{label:`${e.policy_name} — v${r} (${a})${e.description?` — ${e.description}`:""}`,value:"production"===a?e.policy_name:e.policy_id?(t=e.policy_id,`policy_${t}`):e.policy_name}})}e.s(["default",0,({onChange:e,value:o,className:i,accessToken:n,disabled:c,onPoliciesLoaded:u})=>{let[d,p]=(0,r.useState)([]),[m,f]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{(async()=>{if(n){f(!0);try{let e=await (0,l.getPoliciesList)(n);e.policies&&(p(e.policies),u?.(e.policies))}catch(e){console.error("Error fetching policies:",e)}finally{f(!1)}}})()},[n,u]),(0,t.jsx)("div",{children:(0,t.jsx)(a.Select,{mode:"multiple",disabled:c,placeholder:c?"Setting policies is a premium feature.":"Select policies (production or published versions)",onChange:t=>{e(t)},value:o,loading:m,className:i,allowClear:!0,options:s(d),optionFilterProp:"label",showSearch:!0,style:{width:"100%"}})})},"getPolicyOptionEntries",0,s])},525720,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(529681),l=e.i(908286),s=e.i(242064),o=e.i(246422),i=e.i(838378);let n=["wrap","nowrap","wrap-reverse"],c=["flex-start","flex-end","start","end","center","space-between","space-around","space-evenly","stretch","normal","left","right"],u=["center","start","end","flex-start","flex-end","self-start","self-end","baseline","normal","stretch"],d=function(e,t){let a,l,s;return(0,r.default)(Object.assign(Object.assign(Object.assign({},(a=!0===t.wrap?"wrap":t.wrap,{[`${e}-wrap-${a}`]:a&&n.includes(a)})),(l={},u.forEach(r=>{l[`${e}-align-${r}`]=t.align===r}),l[`${e}-align-stretch`]=!t.align&&!!t.vertical,l)),(s={},c.forEach(r=>{s[`${e}-justify-${r}`]=t.justify===r}),s)))},p=(0,o.genStyleHooks)("Flex",e=>{let{paddingXS:t,padding:r,paddingLG:a}=e,l=(0,i.mergeToken)(e,{flexGapSM:t,flexGap:r,flexGapLG:a});return[(e=>{let{componentCls:t}=e;return{[t]:{display:"flex",margin:0,padding:0,"&-vertical":{flexDirection:"column"},"&-rtl":{direction:"rtl"},"&:empty":{display:"none"}}}})(l),(e=>{let{componentCls:t}=e;return{[t]:{"&-gap-small":{gap:e.flexGapSM},"&-gap-middle":{gap:e.flexGap},"&-gap-large":{gap:e.flexGapLG}}}})(l),(e=>{let{componentCls:t}=e,r={};return n.forEach(e=>{r[`${t}-wrap-${e}`]={flexWrap:e}}),r})(l),(e=>{let{componentCls:t}=e,r={};return u.forEach(e=>{r[`${t}-align-${e}`]={alignItems:e}}),r})(l),(e=>{let{componentCls:t}=e,r={};return c.forEach(e=>{r[`${t}-justify-${e}`]={justifyContent:e}}),r})(l)]},()=>({}),{resetStyle:!1});var m=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,a=Object.getOwnPropertySymbols(e);lt.indexOf(a[l])&&Object.prototype.propertyIsEnumerable.call(e,a[l])&&(r[a[l]]=e[a[l]]);return r};let f=t.default.forwardRef((e,o)=>{let{prefixCls:i,rootClassName:n,className:c,style:u,flex:f,gap:g,vertical:h=!1,component:b="div",children:v}=e,y=m(e,["prefixCls","rootClassName","className","style","flex","gap","vertical","component","children"]),{flex:x,direction:w,getPrefixCls:C}=t.default.useContext(s.ConfigContext),O=C("flex",i),[j,S,k]=p(O),E=null!=h?h:null==x?void 0:x.vertical,M=(0,r.default)(c,n,null==x?void 0:x.className,O,S,k,d(O,e),{[`${O}-rtl`]:"rtl"===w,[`${O}-gap-${g}`]:(0,l.isPresetSize)(g),[`${O}-vertical`]:E}),N=Object.assign(Object.assign({},null==x?void 0:x.style),u);return f&&(N.flex=f),g&&!(0,l.isPresetSize)(g)&&(N.gap=g),j(t.default.createElement(b,Object.assign({ref:o,className:M,style:N},(0,a.default)(y,["justify","wrap","align"])),v))});e.s(["Flex",0,f],525720)},530212,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 19l-7-7m0 0l7-7m-7 7h18"}))});e.s(["ArrowLeftIcon",0,r],530212)},211576,e=>{"use strict";var t=e.i(131757);e.s(["Col",()=>t.default])},954616,e=>{"use strict";var t=e.i(271645),r=e.i(114272),a=e.i(540143),l=e.i(915823),s=e.i(619273),o=class extends l.Subscribable{#e;#t=void 0;#r;#a;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#l()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),(0,s.shallowEqualObjects)(this.options,t)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#r,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,s.hashKey)(t.mutationKey)!==(0,s.hashKey)(this.options.mutationKey)?this.reset():this.#r?.state.status==="pending"&&this.#r.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#r?.removeObserver(this)}onMutationUpdate(e){this.#l(),this.#s(e)}getCurrentResult(){return this.#t}reset(){this.#r?.removeObserver(this),this.#r=void 0,this.#l(),this.#s()}mutate(e,t){return this.#a=t,this.#r?.removeObserver(this),this.#r=this.#e.getMutationCache().build(this.#e,this.options),this.#r.addObserver(this),this.#r.execute(e)}#l(){let e=this.#r?.state??(0,r.getDefaultState)();this.#t={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#s(e){a.notifyManager.batch(()=>{if(this.#a&&this.hasListeners()){let t=this.#t.variables,r=this.#t.context,a={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type==="success"){try{this.#a.onSuccess?.(e.data,t,r,a)}catch(e){Promise.reject(e)}try{this.#a.onSettled?.(e.data,null,t,r,a)}catch(e){Promise.reject(e)}}else if(e?.type==="error"){try{this.#a.onError?.(e.error,t,r,a)}catch(e){Promise.reject(e)}try{this.#a.onSettled?.(void 0,e.error,t,r,a)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},i=e.i(912598);e.s(["useMutation",0,function(e,r){let l=(0,i.useQueryClient)(r),[n]=t.useState(()=>new o(l,e));t.useEffect(()=>{n.setOptions(e)},[n,e]);let c=t.useSyncExternalStore(t.useCallback(e=>n.subscribe(a.notifyManager.batchCalls(e)),[n]),()=>n.getCurrentResult(),()=>n.getCurrentResult()),u=t.useCallback((e,t)=>{n.mutate(e,t).catch(s.noop)},[n]);if(c.error&&(0,s.shouldThrowError)(n.options.throwOnError,[c.error]))throw c.error;return{...c,mutate:u,mutateAsync:c.mutate}}],954616)},646563,e=>{"use strict";var t=e.i(959013);e.s(["PlusOutlined",()=>t.default])},178654,621192,e=>{"use strict";let t=e.i(211576).Col;e.s(["Col",0,t],178654);let r=e.i(264042).Row;e.s(["Row",0,r],621192)},214541,e=>{"use strict";var t=e.i(271645),r=e.i(135214),a=e.i(270345);e.s(["default",0,()=>{let[e,l]=(0,t.useState)([]),{accessToken:s,userId:o,userRole:i}=(0,r.default)();return(0,t.useEffect)(()=>{(async()=>{l(await (0,a.fetchTeams)(s,o,i,null))})()},[s,o,i]),{teams:e,setTeams:l}}])},439189,435684,96226,497245,e=>{"use strict";function t(e){let t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new e.constructor(+e):new Date("number"==typeof e||"[object Number]"===t||"string"==typeof e||"[object String]"===t?e:NaN)}function r(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}e.s(["toDate",0,t],435684),e.s(["constructFrom",0,r],96226),e.s(["addDays",0,function(e,a){let l=t(e);return isNaN(a)?r(e,NaN):(a&&l.setDate(l.getDate()+a),l)}],439189),e.s(["addMonths",0,function(e,a){let l=t(e);if(isNaN(a))return r(e,NaN);if(!a)return l;let s=l.getDate(),o=r(e,l.getTime());return(o.setMonth(l.getMonth()+a+1,0),s>=o.getDate())?o:(l.setFullYear(o.getFullYear(),o.getMonth(),s),l)}],497245)},149121,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(152990),l=e.i(682830),s=e.i(269200),o=e.i(427612),i=e.i(64848),n=e.i(942232),c=e.i(496020),u=e.i(977572);e.s(["DataTable",0,function({data:e=[],columns:d,onRowClick:p,renderSubComponent:m,renderChildRows:f,getRowCanExpand:g,isLoading:h=!1,loadingMessage:b="🚅 Loading logs...",noDataMessage:v="No logs found",enableSorting:y=!1}){let x=!!(m||f)&&!!g,[w,C]=(0,r.useState)([]),O=(0,a.useReactTable)({data:e,columns:d,...y&&{state:{sorting:w},onSortingChange:C,enableSortingRemoval:!1},...x&&{getRowCanExpand:g},getRowId:(e,t)=>e?.request_id??String(t),getCoreRowModel:(0,l.getCoreRowModel)(),...y&&{getSortedRowModel:(0,l.getSortedRowModel)()},...x&&{getExpandedRowModel:(0,l.getExpandedRowModel)()}});return(0,t.jsx)("div",{className:"rounded-lg custom-border overflow-x-auto w-full max-w-full box-border",children:(0,t.jsxs)(s.Table,{className:"[&_td]:py-0.5 [&_th]:py-1 table-fixed w-full box-border",style:{minWidth:"400px"},children:[(0,t.jsx)(o.TableHead,{children:O.getHeaderGroups().map(e=>(0,t.jsx)(c.TableRow,{children:e.headers.map(e=>{let r=y&&e.column.getCanSort(),l=e.column.getIsSorted();return(0,t.jsx)(i.TableHeaderCell,{className:`py-1 h-8 ${r?"cursor-pointer select-none hover:bg-gray-50":""}`,onClick:r?e.column.getToggleSortingHandler():void 0,children:e.isPlaceholder?null:(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.flexRender)(e.column.columnDef.header,e.getContext()),r&&(0,t.jsx)("span",{className:"text-gray-400",children:"asc"===l?"↑":"desc"===l?"↓":"⇅"})]})},e.id)})},e.id))}),(0,t.jsx)(n.TableBody,{children:h?(0,t.jsx)(c.TableRow,{children:(0,t.jsx)(u.TableCell,{colSpan:d.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:b})})})}):O.getRowModel().rows.length>0?O.getRowModel().rows.map(e=>(0,t.jsxs)(r.Fragment,{children:[(0,t.jsx)(c.TableRow,{className:`h-8 ${p?"cursor-pointer hover:bg-gray-50":""}`,onClick:()=>p?.(e.original),children:e.getVisibleCells().map(e=>(0,t.jsx)(u.TableCell,{className:"py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap",children:(0,a.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))}),x&&e.getIsExpanded()&&f&&f({row:e}),x&&e.getIsExpanded()&&m&&!f&&(0,t.jsx)(c.TableRow,{children:(0,t.jsx)(u.TableCell,{colSpan:e.getVisibleCells().length,className:"p-0",children:(0,t.jsx)("div",{className:"w-full max-w-full overflow-hidden box-border",children:m({row:e})})})})]},e.id)):(0,t.jsx)(c.TableRow,{children:(0,t.jsx)(u.TableCell,{colSpan:d.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:v})})})})})]})})}])},160818,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.4 800.9c.2-.3.5-.6.7-.9C920.6 722.1 960 621.7 960 512s-39.4-210.1-104.8-288c-.2-.3-.5-.5-.7-.8-1.1-1.3-2.1-2.5-3.2-3.7-.4-.5-.8-.9-1.2-1.4l-4.1-4.7-.1-.1c-1.5-1.7-3.1-3.4-4.6-5.1l-.1-.1c-3.2-3.4-6.4-6.8-9.7-10.1l-.1-.1-4.8-4.8-.3-.3c-1.5-1.5-3-2.9-4.5-4.3-.5-.5-1-1-1.6-1.5-1-1-2-1.9-3-2.8-.3-.3-.7-.6-1-1C736.4 109.2 629.5 64 512 64s-224.4 45.2-304.3 119.2c-.3.3-.7.6-1 1-1 .9-2 1.9-3 2.9-.5.5-1 1-1.6 1.5-1.5 1.4-3 2.9-4.5 4.3l-.3.3-4.8 4.8-.1.1c-3.3 3.3-6.5 6.7-9.7 10.1l-.1.1c-1.6 1.7-3.1 3.4-4.6 5.1l-.1.1c-1.4 1.5-2.8 3.1-4.1 4.7-.4.5-.8.9-1.2 1.4-1.1 1.2-2.1 2.5-3.2 3.7-.2.3-.5.5-.7.8C103.4 301.9 64 402.3 64 512s39.4 210.1 104.8 288c.2.3.5.6.7.9l3.1 3.7c.4.5.8.9 1.2 1.4l4.1 4.7c0 .1.1.1.1.2 1.5 1.7 3 3.4 4.6 5l.1.1c3.2 3.4 6.4 6.8 9.6 10.1l.1.1c1.6 1.6 3.1 3.2 4.7 4.7l.3.3c3.3 3.3 6.7 6.5 10.1 9.6 80.1 74 187 119.2 304.5 119.2s224.4-45.2 304.3-119.2a300 300 0 0010-9.6l.3-.3c1.6-1.6 3.2-3.1 4.7-4.7l.1-.1c3.3-3.3 6.5-6.7 9.6-10.1l.1-.1c1.5-1.7 3.1-3.3 4.6-5 0-.1.1-.1.1-.2 1.4-1.5 2.8-3.1 4.1-4.7.4-.5.8-.9 1.2-1.4a99 99 0 003.3-3.7zm4.1-142.6c-13.8 32.6-32 62.8-54.2 90.2a444.07 444.07 0 00-81.5-55.9c11.6-46.9 18.8-98.4 20.7-152.6H887c-3 40.9-12.6 80.6-28.5 118.3zM887 484H743.5c-1.9-54.2-9.1-105.7-20.7-152.6 29.3-15.6 56.6-34.4 81.5-55.9A373.86 373.86 0 01887 484zM658.3 165.5c39.7 16.8 75.8 40 107.6 69.2a394.72 394.72 0 01-59.4 41.8c-15.7-45-35.8-84.1-59.2-115.4 3.7 1.4 7.4 2.9 11 4.4zm-90.6 700.6c-9.2 7.2-18.4 12.7-27.7 16.4V697a389.1 389.1 0 01115.7 26.2c-8.3 24.6-17.9 47.3-29 67.8-17.4 32.4-37.8 58.3-59 75.1zm59-633.1c11 20.6 20.7 43.3 29 67.8A389.1 389.1 0 01540 327V141.6c9.2 3.7 18.5 9.1 27.7 16.4 21.2 16.7 41.6 42.6 59 75zM540 640.9V540h147.5c-1.6 44.2-7.1 87.1-16.3 127.8l-.3 1.2A445.02 445.02 0 00540 640.9zm0-156.9V383.1c45.8-2.8 89.8-12.5 130.9-28.1l.3 1.2c9.2 40.7 14.7 83.5 16.3 127.8H540zm-56 56v100.9c-45.8 2.8-89.8 12.5-130.9 28.1l-.3-1.2c-9.2-40.7-14.7-83.5-16.3-127.8H484zm-147.5-56c1.6-44.2 7.1-87.1 16.3-127.8l.3-1.2c41.1 15.6 85 25.3 130.9 28.1V484H336.5zM484 697v185.4c-9.2-3.7-18.5-9.1-27.7-16.4-21.2-16.7-41.7-42.7-59.1-75.1-11-20.6-20.7-43.3-29-67.8 37.2-14.6 75.9-23.3 115.8-26.1zm0-370a389.1 389.1 0 01-115.7-26.2c8.3-24.6 17.9-47.3 29-67.8 17.4-32.4 37.8-58.4 59.1-75.1 9.2-7.2 18.4-12.7 27.7-16.4V327zM365.7 165.5c3.7-1.5 7.3-3 11-4.4-23.4 31.3-43.5 70.4-59.2 115.4-21-12-40.9-26-59.4-41.8 31.8-29.2 67.9-52.4 107.6-69.2zM165.5 365.7c13.8-32.6 32-62.8 54.2-90.2 24.9 21.5 52.2 40.3 81.5 55.9-11.6 46.9-18.8 98.4-20.7 152.6H137c3-40.9 12.6-80.6 28.5-118.3zM137 540h143.5c1.9 54.2 9.1 105.7 20.7 152.6a444.07 444.07 0 00-81.5 55.9A373.86 373.86 0 01137 540zm228.7 318.5c-39.7-16.8-75.8-40-107.6-69.2 18.5-15.8 38.4-29.7 59.4-41.8 15.7 45 35.8 84.1 59.2 115.4-3.7-1.4-7.4-2.9-11-4.4zm292.6 0c-3.7 1.5-7.3 3-11 4.4 23.4-31.3 43.5-70.4 59.2-115.4 21 12 40.9 26 59.4 41.8a373.81 373.81 0 01-107.6 69.2z"}}]},name:"global",theme:"outlined"};var l=e.i(9583),s=r.forwardRef(function(e,s){return r.createElement(l.default,(0,t.default)({},e,{ref:s,icon:a}))});e.s(["GlobalOutlined",0,s],160818)},888288,e=>{"use strict";var t=e.i(271645);e.s(["default",0,(e,r)=>{let a=void 0!==r,[l,s]=(0,t.useState)(e);return[a?r:l,e=>{a||s(e)}]}])},793130,e=>{"use strict";var t=e.i(290571),r=e.i(783222),a=e.i(433336),l=e.i(271645),s=e.i(394487),o=e.i(503269),i=e.i(214520),n=e.i(746725),c=e.i(914189),u=e.i(144279),d=e.i(294316),p=e.i(601893),m=e.i(140721),f=e.i(942803),g=e.i(233538),h=e.i(694421),b=e.i(700020),v=e.i(35889),y=e.i(998348),x=e.i(722678);let w=(0,l.createContext)(null);w.displayName="GroupContext";let C=l.Fragment,O=Object.assign((0,b.forwardRefWithAs)(function(e,t){var C;let O=(0,l.useId)(),j=(0,f.useProvidedId)(),S=(0,p.useDisabled)(),{id:k=j||`headlessui-switch-${O}`,disabled:E=S||!1,checked:M,defaultChecked:N,onChange:R,name:P,value:$,form:T,autoFocus:D=!1,...z}=e,L=(0,l.useContext)(w),[F,_]=(0,l.useState)(null),I=(0,l.useRef)(null),B=(0,d.useSyncRefs)(I,t,null===L?null:L.setSwitch,_),H=(0,i.useDefaultValue)(N),[A,G]=(0,o.useControllable)(M,R,null!=H&&H),K=(0,n.useDisposables)(),[V,W]=(0,l.useState)(!1),U=(0,c.useEvent)(()=>{W(!0),null==G||G(!A),K.nextFrame(()=>{W(!1)})}),q=(0,c.useEvent)(e=>{if((0,g.isDisabledReactIssue7711)(e.currentTarget))return e.preventDefault();e.preventDefault(),U()}),Y=(0,c.useEvent)(e=>{e.key===y.Keys.Space?(e.preventDefault(),U()):e.key===y.Keys.Enter&&(0,h.attemptSubmit)(e.currentTarget)}),Q=(0,c.useEvent)(e=>e.preventDefault()),Z=(0,x.useLabelledBy)(),J=(0,v.useDescribedBy)(),{isFocusVisible:X,focusProps:ee}=(0,r.useFocusRing)({autoFocus:D}),{isHovered:et,hoverProps:er}=(0,a.useHover)({isDisabled:E}),{pressed:ea,pressProps:el}=(0,s.useActivePress)({disabled:E}),es=(0,l.useMemo)(()=>({checked:A,disabled:E,hover:et,focus:X,active:ea,autofocus:D,changing:V}),[A,et,X,ea,E,V,D]),eo=(0,b.mergeProps)({id:k,ref:B,role:"switch",type:(0,u.useResolveButtonType)(e,F),tabIndex:-1===e.tabIndex?0:null!=(C=e.tabIndex)?C:0,"aria-checked":A,"aria-labelledby":Z,"aria-describedby":J,disabled:E||void 0,autoFocus:D,onClick:q,onKeyUp:Y,onKeyPress:Q},ee,er,el),ei=(0,l.useCallback)(()=>{if(void 0!==H)return null==G?void 0:G(H)},[G,H]),en=(0,b.useRender)();return l.default.createElement(l.default.Fragment,null,null!=P&&l.default.createElement(m.FormFields,{disabled:E,data:{[P]:$||"on"},overrides:{type:"checkbox",checked:A},form:T,onReset:ei}),en({ourProps:eo,theirProps:z,slot:es,defaultTag:"button",name:"Switch"}))}),{Group:function(e){var t;let[r,a]=(0,l.useState)(null),[s,o]=(0,x.useLabels)(),[i,n]=(0,v.useDescriptions)(),c=(0,l.useMemo)(()=>({switch:r,setSwitch:a}),[r,a]),u=(0,b.useRender)();return l.default.createElement(n,{name:"Switch.Description",value:i},l.default.createElement(o,{name:"Switch.Label",value:s,props:{htmlFor:null==(t=c.switch)?void 0:t.id,onClick(e){r&&(e.currentTarget instanceof HTMLLabelElement&&e.preventDefault(),r.click(),r.focus({preventScroll:!0}))}}},l.default.createElement(w.Provider,{value:c},u({ourProps:{},theirProps:e,slot:{},defaultTag:C,name:"Switch.Group"}))))},Label:x.Label,Description:v.Description});var j=e.i(888288),S=e.i(95779),k=e.i(444755),E=e.i(673706),M=e.i(829087);let N=(0,E.makeClassName)("Switch"),R=l.default.forwardRef((e,r)=>{let{checked:a,defaultChecked:s=!1,onChange:o,color:i,name:n,error:c,errorMessage:u,disabled:d,required:p,tooltip:m,id:f}=e,g=(0,t.__rest)(e,["checked","defaultChecked","onChange","color","name","error","errorMessage","disabled","required","tooltip","id"]),h={bgColor:i?(0,E.getColorClassNames)(i,S.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",ringColor:i?(0,E.getColorClassNames)(i,S.colorPalette.ring).ringColor:"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"},[b,v]=(0,j.default)(s,a),[y,x]=(0,l.useState)(!1),{tooltipProps:w,getReferenceProps:C}=(0,M.useTooltip)(300);return l.default.createElement("div",{className:"flex flex-row items-center justify-start"},l.default.createElement(M.default,Object.assign({text:m},w)),l.default.createElement("div",Object.assign({ref:(0,E.mergeRefs)([r,w.refs.setReference]),className:(0,k.tremorTwMerge)(N("root"),"flex flex-row relative h-5")},g,C),l.default.createElement("input",{type:"checkbox",className:(0,k.tremorTwMerge)(N("input"),"absolute w-5 h-5 cursor-pointer left-0 top-0 opacity-0"),name:n,required:p,checked:b,onChange:e=>{e.preventDefault()}}),l.default.createElement(O,{checked:b,onChange:e=>{v(e),null==o||o(e)},disabled:d,className:(0,k.tremorTwMerge)(N("switch"),"w-10 h-5 group relative inline-flex shrink-0 cursor-pointer items-center justify-center rounded-tremor-full","focus:outline-none",d?"cursor-not-allowed":""),onFocus:()=>x(!0),onBlur:()=>x(!1),id:f},l.default.createElement("span",{className:(0,k.tremorTwMerge)(N("sr-only"),"sr-only")},"Switch ",b?"on":"off"),l.default.createElement("span",{"aria-hidden":"true",className:(0,k.tremorTwMerge)(N("background"),b?h.bgColor:"bg-tremor-border dark:bg-dark-tremor-border","pointer-events-none absolute mx-auto h-3 w-9 rounded-tremor-full transition-colors duration-100 ease-in-out")}),l.default.createElement("span",{"aria-hidden":"true",className:(0,k.tremorTwMerge)(N("round"),b?(0,k.tremorTwMerge)(h.bgColor,"translate-x-5 border-tremor-background dark:border-dark-tremor-background"):"translate-x-0 bg-tremor-border dark:bg-dark-tremor-border border-tremor-background dark:border-dark-tremor-background","pointer-events-none absolute left-0 inline-block h-5 w-5 transform rounded-tremor-full border-2 shadow-tremor-input duration-100 ease-in-out transition",y?(0,k.tremorTwMerge)("ring-2",h.ringColor):"")}))),c&&u?l.default.createElement("p",{className:(0,k.tremorTwMerge)(N("errorMessage"),"text-sm text-red-500 mt-1 ")},u):null)});R.displayName="Switch",e.s(["Switch",0,R],793130)},418371,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(916925);e.s(["ProviderLogo",0,({provider:e,className:l="w-4 h-4"})=>{let[s,o]=(0,r.useState)(!1),{logo:i}=(0,a.getProviderLogoAndName)(e);return s||!i?(0,t.jsx)("div",{className:`${l} rounded-full bg-gray-200 flex items-center justify-center text-xs`,children:e?.charAt(0)||"-"}):(0,t.jsx)("img",{src:i,alt:`${e} logo`,className:l,onError:()=>o(!0)})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0cb-3v6e0w~9w.js b/litellm/proxy/_experimental/out/_next/static/chunks/0cb-3v6e0w~9w.js new file mode 100644 index 00000000000..bb17b1d028d --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/0cb-3v6e0w~9w.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,793130,e=>{"use strict";var t=e.i(290571),r=e.i(783222),a=e.i(433336),l=e.i(271645),s=e.i(394487),o=e.i(503269),i=e.i(214520),n=e.i(746725),c=e.i(914189),u=e.i(144279),d=e.i(294316),p=e.i(601893),f=e.i(140721),m=e.i(942803),g=e.i(233538),h=e.i(694421),b=e.i(700020),v=e.i(35889),y=e.i(998348),x=e.i(722678);let w=(0,l.createContext)(null);w.displayName="GroupContext";let C=l.Fragment,O=Object.assign((0,b.forwardRefWithAs)(function(e,t){var C;let O=(0,l.useId)(),j=(0,m.useProvidedId)(),S=(0,p.useDisabled)(),{id:k=j||`headlessui-switch-${O}`,disabled:N=S||!1,checked:E,defaultChecked:M,onChange:R,name:P,value:$,form:T,autoFocus:D=!1,...L}=e,F=(0,l.useContext)(w),[_,I]=(0,l.useState)(null),B=(0,l.useRef)(null),K=(0,d.useSyncRefs)(B,t,null===F?null:F.setSwitch,I),G=(0,i.useDefaultValue)(M),[W,A]=(0,o.useControllable)(E,R,null!=G&&G),z=(0,n.useDisposables)(),[H,V]=(0,l.useState)(!1),U=(0,c.useEvent)(()=>{V(!0),null==A||A(!W),z.nextFrame(()=>{V(!1)})}),q=(0,c.useEvent)(e=>{if((0,g.isDisabledReactIssue7711)(e.currentTarget))return e.preventDefault();e.preventDefault(),U()}),Y=(0,c.useEvent)(e=>{e.key===y.Keys.Space?(e.preventDefault(),U()):e.key===y.Keys.Enter&&(0,h.attemptSubmit)(e.currentTarget)}),Q=(0,c.useEvent)(e=>e.preventDefault()),Z=(0,x.useLabelledBy)(),J=(0,v.useDescribedBy)(),{isFocusVisible:X,focusProps:ee}=(0,r.useFocusRing)({autoFocus:D}),{isHovered:et,hoverProps:er}=(0,a.useHover)({isDisabled:N}),{pressed:ea,pressProps:el}=(0,s.useActivePress)({disabled:N}),es=(0,l.useMemo)(()=>({checked:W,disabled:N,hover:et,focus:X,active:ea,autofocus:D,changing:H}),[W,et,X,ea,N,H,D]),eo=(0,b.mergeProps)({id:k,ref:K,role:"switch",type:(0,u.useResolveButtonType)(e,_),tabIndex:-1===e.tabIndex?0:null!=(C=e.tabIndex)?C:0,"aria-checked":W,"aria-labelledby":Z,"aria-describedby":J,disabled:N||void 0,autoFocus:D,onClick:q,onKeyUp:Y,onKeyPress:Q},ee,er,el),ei=(0,l.useCallback)(()=>{if(void 0!==G)return null==A?void 0:A(G)},[A,G]),en=(0,b.useRender)();return l.default.createElement(l.default.Fragment,null,null!=P&&l.default.createElement(f.FormFields,{disabled:N,data:{[P]:$||"on"},overrides:{type:"checkbox",checked:W},form:T,onReset:ei}),en({ourProps:eo,theirProps:L,slot:es,defaultTag:"button",name:"Switch"}))}),{Group:function(e){var t;let[r,a]=(0,l.useState)(null),[s,o]=(0,x.useLabels)(),[i,n]=(0,v.useDescriptions)(),c=(0,l.useMemo)(()=>({switch:r,setSwitch:a}),[r,a]),u=(0,b.useRender)();return l.default.createElement(n,{name:"Switch.Description",value:i},l.default.createElement(o,{name:"Switch.Label",value:s,props:{htmlFor:null==(t=c.switch)?void 0:t.id,onClick(e){r&&(e.currentTarget instanceof HTMLLabelElement&&e.preventDefault(),r.click(),r.focus({preventScroll:!0}))}}},l.default.createElement(w.Provider,{value:c},u({ourProps:{},theirProps:e,slot:{},defaultTag:C,name:"Switch.Group"}))))},Label:x.Label,Description:v.Description});var j=e.i(888288),S=e.i(95779),k=e.i(444755),N=e.i(673706),E=e.i(829087);let M=(0,N.makeClassName)("Switch"),R=l.default.forwardRef((e,r)=>{let{checked:a,defaultChecked:s=!1,onChange:o,color:i,name:n,error:c,errorMessage:u,disabled:d,required:p,tooltip:f,id:m}=e,g=(0,t.__rest)(e,["checked","defaultChecked","onChange","color","name","error","errorMessage","disabled","required","tooltip","id"]),h={bgColor:i?(0,N.getColorClassNames)(i,S.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",ringColor:i?(0,N.getColorClassNames)(i,S.colorPalette.ring).ringColor:"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"},[b,v]=(0,j.default)(s,a),[y,x]=(0,l.useState)(!1),{tooltipProps:w,getReferenceProps:C}=(0,E.useTooltip)(300);return l.default.createElement("div",{className:"flex flex-row items-center justify-start"},l.default.createElement(E.default,Object.assign({text:f},w)),l.default.createElement("div",Object.assign({ref:(0,N.mergeRefs)([r,w.refs.setReference]),className:(0,k.tremorTwMerge)(M("root"),"flex flex-row relative h-5")},g,C),l.default.createElement("input",{type:"checkbox",className:(0,k.tremorTwMerge)(M("input"),"absolute w-5 h-5 cursor-pointer left-0 top-0 opacity-0"),name:n,required:p,checked:b,onChange:e=>{e.preventDefault()}}),l.default.createElement(O,{checked:b,onChange:e=>{v(e),null==o||o(e)},disabled:d,className:(0,k.tremorTwMerge)(M("switch"),"w-10 h-5 group relative inline-flex shrink-0 cursor-pointer items-center justify-center rounded-tremor-full","focus:outline-none",d?"cursor-not-allowed":""),onFocus:()=>x(!0),onBlur:()=>x(!1),id:m},l.default.createElement("span",{className:(0,k.tremorTwMerge)(M("sr-only"),"sr-only")},"Switch ",b?"on":"off"),l.default.createElement("span",{"aria-hidden":"true",className:(0,k.tremorTwMerge)(M("background"),b?h.bgColor:"bg-tremor-border dark:bg-dark-tremor-border","pointer-events-none absolute mx-auto h-3 w-9 rounded-tremor-full transition-colors duration-100 ease-in-out")}),l.default.createElement("span",{"aria-hidden":"true",className:(0,k.tremorTwMerge)(M("round"),b?(0,k.tremorTwMerge)(h.bgColor,"translate-x-5 border-tremor-background dark:border-dark-tremor-background"):"translate-x-0 bg-tremor-border dark:bg-dark-tremor-border border-tremor-background dark:border-dark-tremor-background","pointer-events-none absolute left-0 inline-block h-5 w-5 transform rounded-tremor-full border-2 shadow-tremor-input duration-100 ease-in-out transition",y?(0,k.tremorTwMerge)("ring-2",h.ringColor):"")}))),c&&u?l.default.createElement("p",{className:(0,k.tremorTwMerge)(M("errorMessage"),"text-sm text-red-500 mt-1 ")},u):null)});R.displayName="Switch",e.s(["Switch",0,R],793130)},418371,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(916925);e.s(["ProviderLogo",0,({provider:e,className:l="w-4 h-4"})=>{let[s,o]=(0,r.useState)(!1),{logo:i}=(0,a.getProviderLogoAndName)(e);return s||!i?(0,t.jsx)("div",{className:`${l} rounded-full bg-gray-200 flex items-center justify-center text-xs`,children:e?.charAt(0)||"-"}):(0,t.jsx)("img",{src:i,alt:`${e} logo`,className:l,onError:()=>o(!0)})}])},37091,e=>{"use strict";var t=e.i(290571),r=e.i(95779),a=e.i(444755),l=e.i(673706),s=e.i(271645);let o=s.default.forwardRef((e,o)=>{let{color:i,children:n,className:c}=e,u=(0,t.__rest)(e,["color","children","className"]);return s.default.createElement("p",Object.assign({ref:o,className:(0,a.tremorTwMerge)(i?(0,l.getColorClassNames)(i,r.colorPalette.lightText).textColor:"text-tremor-content-emphasis dark:text-dark-tremor-content-emphasis",c)},u),n)});o.displayName="Subtitle",e.s(["Subtitle",0,o],37091)},166406,e=>{"use strict";var t=e.i(190144);e.s(["CopyOutlined",()=>t.default])},447566,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 000 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"}}]},name:"arrow-left",theme:"outlined"};var l=e.i(9583),s=r.forwardRef(function(e,s){return r.createElement(l.default,(0,t.default)({},e,{ref:s,icon:a}))});e.s(["ArrowLeftOutlined",0,s],447566)},492030,e=>{"use strict";var t=e.i(121229);e.s(["CheckOutlined",()=>t.default])},829672,836938,310730,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(914949),l=e.i(404948);let s=e=>e?"function"==typeof e?e():e:null;e.s(["getRenderPropValue",0,s],836938);var o=e.i(613541),i=e.i(763731),n=e.i(242064),c=e.i(491816);e.i(793154);var u=e.i(880476),d=e.i(183293),p=e.i(717356),f=e.i(320560),m=e.i(307358),g=e.i(246422),h=e.i(838378),b=e.i(617933);let v=(0,g.genStyleHooks)("Popover",e=>{let{colorBgElevated:t,colorText:r}=e,a=(0,h.mergeToken)(e,{popoverBg:t,popoverColor:r});return[(e=>{let{componentCls:t,popoverColor:r,titleMinWidth:a,fontWeightStrong:l,innerPadding:s,boxShadowSecondary:o,colorTextHeading:i,borderRadiusLG:n,zIndexPopup:c,titleMarginBottom:u,colorBgElevated:p,popoverBg:m,titleBorderBottom:g,innerContentPadding:h,titlePadding:b}=e;return[{[t]:Object.assign(Object.assign({},(0,d.resetComponent)(e)),{position:"absolute",top:0,left:{_skip_check_:!0,value:0},zIndex:c,fontWeight:"normal",whiteSpace:"normal",textAlign:"start",cursor:"auto",userSelect:"text","--valid-offset-x":"var(--arrow-offset-horizontal, var(--arrow-x))",transformOrigin:"var(--valid-offset-x, 50%) var(--arrow-y, 50%)","--antd-arrow-background-color":p,width:"max-content",maxWidth:"100vw","&-rtl":{direction:"rtl"},"&-hidden":{display:"none"},[`${t}-content`]:{position:"relative"},[`${t}-inner`]:{backgroundColor:m,backgroundClip:"padding-box",borderRadius:n,boxShadow:o,padding:s},[`${t}-title`]:{minWidth:a,marginBottom:u,color:i,fontWeight:l,borderBottom:g,padding:b},[`${t}-inner-content`]:{color:r,padding:h}})},(0,f.default)(e,"var(--antd-arrow-background-color)"),{[`${t}-pure`]:{position:"relative",maxWidth:"none",margin:e.sizePopupArrow,display:"inline-block",[`${t}-content`]:{display:"inline-block"}}}]})(a),(e=>{let{componentCls:t}=e;return{[t]:b.PresetColors.map(r=>{let a=e[`${r}6`];return{[`&${t}-${r}`]:{"--antd-arrow-background-color":a,[`${t}-inner`]:{backgroundColor:a},[`${t}-arrow`]:{background:"transparent"}}}})}})(a),(0,p.initZoomMotion)(a,"zoom-big")]},e=>{let{lineWidth:t,controlHeight:r,fontHeight:a,padding:l,wireframe:s,zIndexPopupBase:o,borderRadiusLG:i,marginXS:n,lineType:c,colorSplit:u,paddingSM:d}=e,p=r-a;return Object.assign(Object.assign(Object.assign({titleMinWidth:177,zIndexPopup:o+30},(0,m.getArrowToken)(e)),(0,f.getArrowOffsetToken)({contentRadius:i,limitVerticalRadius:!0})),{innerPadding:12*!s,titleMarginBottom:s?0:n,titlePadding:s?`${p/2}px ${l}px ${p/2-t}px`:0,titleBorderBottom:s?`${t}px ${c} ${u}`:"none",innerContentPadding:s?`${d}px ${l}px`:0})},{resetStyle:!1,deprecatedTokens:[["width","titleMinWidth"],["minWidth","titleMinWidth"]]});var y=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,a=Object.getOwnPropertySymbols(e);lt.indexOf(a[l])&&Object.prototype.propertyIsEnumerable.call(e,a[l])&&(r[a[l]]=e[a[l]]);return r};let x=({title:e,content:r,prefixCls:a})=>e||r?t.createElement(t.Fragment,null,e&&t.createElement("div",{className:`${a}-title`},e),r&&t.createElement("div",{className:`${a}-inner-content`},r)):null,w=e=>{let{hashId:a,prefixCls:l,className:o,style:i,placement:n="top",title:c,content:d,children:p}=e,f=s(c),m=s(d),g=(0,r.default)(a,l,`${l}-pure`,`${l}-placement-${n}`,o);return t.createElement("div",{className:g,style:i},t.createElement("div",{className:`${l}-arrow`}),t.createElement(u.Popup,Object.assign({},e,{className:a,prefixCls:l}),p||t.createElement(x,{prefixCls:l,title:f,content:m})))},C=e=>{let{prefixCls:a,className:l}=e,s=y(e,["prefixCls","className"]),{getPrefixCls:o}=t.useContext(n.ConfigContext),i=o("popover",a),[c,u,d]=v(i);return c(t.createElement(w,Object.assign({},s,{prefixCls:i,hashId:u,className:(0,r.default)(l,d)})))};e.s(["Overlay",0,x,"default",0,C],310730);var O=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,a=Object.getOwnPropertySymbols(e);lt.indexOf(a[l])&&Object.prototype.propertyIsEnumerable.call(e,a[l])&&(r[a[l]]=e[a[l]]);return r};let j=t.forwardRef((e,u)=>{var d,p;let{prefixCls:f,title:m,content:g,overlayClassName:h,placement:b="top",trigger:y="hover",children:w,mouseEnterDelay:C=.1,mouseLeaveDelay:j=.1,onOpenChange:S,overlayStyle:k={},styles:N,classNames:E}=e,M=O(e,["prefixCls","title","content","overlayClassName","placement","trigger","children","mouseEnterDelay","mouseLeaveDelay","onOpenChange","overlayStyle","styles","classNames"]),{getPrefixCls:R,className:P,style:$,classNames:T,styles:D}=(0,n.useComponentConfig)("popover"),L=R("popover",f),[F,_,I]=v(L),B=R(),K=(0,r.default)(h,_,I,P,T.root,null==E?void 0:E.root),G=(0,r.default)(T.body,null==E?void 0:E.body),[W,A]=(0,a.default)(!1,{value:null!=(d=e.open)?d:e.visible,defaultValue:null!=(p=e.defaultOpen)?p:e.defaultVisible}),z=(e,t)=>{A(e,!0),null==S||S(e,t)},H=s(m),V=s(g);return F(t.createElement(c.default,Object.assign({placement:b,trigger:y,mouseEnterDelay:C,mouseLeaveDelay:j},M,{prefixCls:L,classNames:{root:K,body:G},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},D.root),$),k),null==N?void 0:N.root),body:Object.assign(Object.assign({},D.body),null==N?void 0:N.body)},ref:u,open:W,onOpenChange:e=>{z(e)},overlay:H||V?t.createElement(x,{prefixCls:L,title:H,content:V}):null,transitionName:(0,o.getTransitionName)(B,"zoom-big",M.transitionName),"data-popover-inject":!0}),(0,i.cloneElement)(w,{onKeyDown:e=>{var r,a;(0,t.isValidElement)(w)&&(null==(a=null==w?void 0:(r=w.props).onKeyDown)||a.call(r,e)),e.keyCode===l.default.ESC&&z(!1,e)}})))});j._InternalPanelDoNotUseOrYouWillBeFired=C,e.s(["default",0,j],829672)},282786,e=>{"use strict";var t=e.i(829672);e.s(["Popover",()=>t.default])},637235,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z"}}]},name:"clock-circle",theme:"outlined"};var l=e.i(9583),s=r.forwardRef(function(e,s){return r.createElement(l.default,(0,t.default)({},e,{ref:s,icon:a}))});e.s(["ClockCircleOutlined",0,s],637235)},891547,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(199133),l=e.i(764205);e.s(["default",0,({onChange:e,value:s,className:o,accessToken:i,disabled:n})=>{let[c,u]=(0,r.useState)([]),[d,p]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{(async()=>{if(i){p(!0);try{let e=await (0,l.getGuardrailsList)(i);console.log("Guardrails response:",e),e.guardrails&&(console.log("Guardrails data:",e.guardrails),u(e.guardrails))}catch(e){console.error("Error fetching guardrails:",e)}finally{p(!1)}}})()},[i]),(0,t.jsx)("div",{children:(0,t.jsx)(a.Select,{mode:"multiple",disabled:n,placeholder:n?"Setting guardrails is a premium feature.":"Select guardrails",onChange:t=>{console.log("Selected guardrails:",t),e(t)},value:s,loading:d,className:o,allowClear:!0,options:c.map(e=>(console.log("Mapping guardrail:",e),{label:`${e.guardrail_name}`,value:e.guardrail_name})),optionFilterProp:"label",showSearch:!0,style:{width:"100%"}})})}])},921511,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(199133),l=e.i(764205);function s(e){return e.filter(e=>(e.version_status??"draft")!=="draft").map(e=>{var t;let r=e.version_number??1,a=e.version_status??"draft";return{label:`${e.policy_name} — v${r} (${a})${e.description?` — ${e.description}`:""}`,value:"production"===a?e.policy_name:e.policy_id?(t=e.policy_id,`policy_${t}`):e.policy_name}})}e.s(["default",0,({onChange:e,value:o,className:i,accessToken:n,disabled:c,onPoliciesLoaded:u})=>{let[d,p]=(0,r.useState)([]),[f,m]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{(async()=>{if(n){m(!0);try{let e=await (0,l.getPoliciesList)(n);e.policies&&(p(e.policies),u?.(e.policies))}catch(e){console.error("Error fetching policies:",e)}finally{m(!1)}}})()},[n,u]),(0,t.jsx)("div",{children:(0,t.jsx)(a.Select,{mode:"multiple",disabled:c,placeholder:c?"Setting policies is a premium feature.":"Select policies (production or published versions)",onChange:t=>{e(t)},value:o,loading:f,className:i,allowClear:!0,options:s(d),optionFilterProp:"label",showSearch:!0,style:{width:"100%"}})})},"getPolicyOptionEntries",0,s])},525720,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(529681),l=e.i(908286),s=e.i(242064),o=e.i(246422),i=e.i(838378);let n=["wrap","nowrap","wrap-reverse"],c=["flex-start","flex-end","start","end","center","space-between","space-around","space-evenly","stretch","normal","left","right"],u=["center","start","end","flex-start","flex-end","self-start","self-end","baseline","normal","stretch"],d=function(e,t){let a,l,s;return(0,r.default)(Object.assign(Object.assign(Object.assign({},(a=!0===t.wrap?"wrap":t.wrap,{[`${e}-wrap-${a}`]:a&&n.includes(a)})),(l={},u.forEach(r=>{l[`${e}-align-${r}`]=t.align===r}),l[`${e}-align-stretch`]=!t.align&&!!t.vertical,l)),(s={},c.forEach(r=>{s[`${e}-justify-${r}`]=t.justify===r}),s)))},p=(0,o.genStyleHooks)("Flex",e=>{let{paddingXS:t,padding:r,paddingLG:a}=e,l=(0,i.mergeToken)(e,{flexGapSM:t,flexGap:r,flexGapLG:a});return[(e=>{let{componentCls:t}=e;return{[t]:{display:"flex",margin:0,padding:0,"&-vertical":{flexDirection:"column"},"&-rtl":{direction:"rtl"},"&:empty":{display:"none"}}}})(l),(e=>{let{componentCls:t}=e;return{[t]:{"&-gap-small":{gap:e.flexGapSM},"&-gap-middle":{gap:e.flexGap},"&-gap-large":{gap:e.flexGapLG}}}})(l),(e=>{let{componentCls:t}=e,r={};return n.forEach(e=>{r[`${t}-wrap-${e}`]={flexWrap:e}}),r})(l),(e=>{let{componentCls:t}=e,r={};return u.forEach(e=>{r[`${t}-align-${e}`]={alignItems:e}}),r})(l),(e=>{let{componentCls:t}=e,r={};return c.forEach(e=>{r[`${t}-justify-${e}`]={justifyContent:e}}),r})(l)]},()=>({}),{resetStyle:!1});var f=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,a=Object.getOwnPropertySymbols(e);lt.indexOf(a[l])&&Object.prototype.propertyIsEnumerable.call(e,a[l])&&(r[a[l]]=e[a[l]]);return r};let m=t.default.forwardRef((e,o)=>{let{prefixCls:i,rootClassName:n,className:c,style:u,flex:m,gap:g,vertical:h=!1,component:b="div",children:v}=e,y=f(e,["prefixCls","rootClassName","className","style","flex","gap","vertical","component","children"]),{flex:x,direction:w,getPrefixCls:C}=t.default.useContext(s.ConfigContext),O=C("flex",i),[j,S,k]=p(O),N=null!=h?h:null==x?void 0:x.vertical,E=(0,r.default)(c,n,null==x?void 0:x.className,O,S,k,d(O,e),{[`${O}-rtl`]:"rtl"===w,[`${O}-gap-${g}`]:(0,l.isPresetSize)(g),[`${O}-vertical`]:N}),M=Object.assign(Object.assign({},null==x?void 0:x.style),u);return m&&(M.flex=m),g&&!(0,l.isPresetSize)(g)&&(M.gap=g),j(t.default.createElement(b,Object.assign({ref:o,className:E,style:M},(0,a.default)(y,["justify","wrap","align"])),v))});e.s(["Flex",0,m],525720)},530212,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 19l-7-7m0 0l7-7m-7 7h18"}))});e.s(["ArrowLeftIcon",0,r],530212)},211576,e=>{"use strict";var t=e.i(131757);e.s(["Col",()=>t.default])},954616,e=>{"use strict";var t=e.i(271645),r=e.i(114272),a=e.i(540143),l=e.i(915823),s=e.i(619273),o=class extends l.Subscribable{#e;#t=void 0;#r;#a;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#l()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),(0,s.shallowEqualObjects)(this.options,t)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#r,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,s.hashKey)(t.mutationKey)!==(0,s.hashKey)(this.options.mutationKey)?this.reset():this.#r?.state.status==="pending"&&this.#r.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#r?.removeObserver(this)}onMutationUpdate(e){this.#l(),this.#s(e)}getCurrentResult(){return this.#t}reset(){this.#r?.removeObserver(this),this.#r=void 0,this.#l(),this.#s()}mutate(e,t){return this.#a=t,this.#r?.removeObserver(this),this.#r=this.#e.getMutationCache().build(this.#e,this.options),this.#r.addObserver(this),this.#r.execute(e)}#l(){let e=this.#r?.state??(0,r.getDefaultState)();this.#t={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#s(e){a.notifyManager.batch(()=>{if(this.#a&&this.hasListeners()){let t=this.#t.variables,r=this.#t.context,a={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type==="success"){try{this.#a.onSuccess?.(e.data,t,r,a)}catch(e){Promise.reject(e)}try{this.#a.onSettled?.(e.data,null,t,r,a)}catch(e){Promise.reject(e)}}else if(e?.type==="error"){try{this.#a.onError?.(e.error,t,r,a)}catch(e){Promise.reject(e)}try{this.#a.onSettled?.(void 0,e.error,t,r,a)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},i=e.i(912598);e.s(["useMutation",0,function(e,r){let l=(0,i.useQueryClient)(r),[n]=t.useState(()=>new o(l,e));t.useEffect(()=>{n.setOptions(e)},[n,e]);let c=t.useSyncExternalStore(t.useCallback(e=>n.subscribe(a.notifyManager.batchCalls(e)),[n]),()=>n.getCurrentResult(),()=>n.getCurrentResult()),u=t.useCallback((e,t)=>{n.mutate(e,t).catch(s.noop)},[n]);if(c.error&&(0,s.shouldThrowError)(n.options.throwOnError,[c.error]))throw c.error;return{...c,mutate:u,mutateAsync:c.mutate}}],954616)},646563,e=>{"use strict";var t=e.i(959013);e.s(["PlusOutlined",()=>t.default])},178654,621192,e=>{"use strict";let t=e.i(211576).Col;e.s(["Col",0,t],178654);let r=e.i(264042).Row;e.s(["Row",0,r],621192)},214541,e=>{"use strict";var t=e.i(271645),r=e.i(135214),a=e.i(270345);e.s(["default",0,()=>{let[e,l]=(0,t.useState)([]),{accessToken:s,userId:o,userRole:i}=(0,r.default)();return(0,t.useEffect)(()=>{(async()=>{l(await (0,a.fetchTeams)(s,o,i,null))})()},[s,o,i]),{teams:e,setTeams:l}}])},439189,435684,96226,497245,e=>{"use strict";function t(e){let t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new e.constructor(+e):new Date("number"==typeof e||"[object Number]"===t||"string"==typeof e||"[object String]"===t?e:NaN)}function r(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}e.s(["toDate",0,t],435684),e.s(["constructFrom",0,r],96226),e.s(["addDays",0,function(e,a){let l=t(e);return isNaN(a)?r(e,NaN):(a&&l.setDate(l.getDate()+a),l)}],439189),e.s(["addMonths",0,function(e,a){let l=t(e);if(isNaN(a))return r(e,NaN);if(!a)return l;let s=l.getDate(),o=r(e,l.getTime());return(o.setMonth(l.getMonth()+a+1,0),s>=o.getDate())?o:(l.setFullYear(o.getFullYear(),o.getMonth(),s),l)}],497245)},149121,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(152990),l=e.i(682830),s=e.i(269200),o=e.i(427612),i=e.i(64848),n=e.i(942232),c=e.i(496020),u=e.i(977572);e.s(["DataTable",0,function({data:e=[],columns:d,onRowClick:p,renderSubComponent:f,renderChildRows:m,getRowCanExpand:g,isLoading:h=!1,loadingMessage:b="🚅 Loading logs...",noDataMessage:v="No logs found",enableSorting:y=!1}){let x=!!(f||m)&&!!g,[w,C]=(0,r.useState)([]),O=(0,a.useReactTable)({data:e,columns:d,...y&&{state:{sorting:w},onSortingChange:C,enableSortingRemoval:!1},...x&&{getRowCanExpand:g},getRowId:(e,t)=>e?.request_id??String(t),getCoreRowModel:(0,l.getCoreRowModel)(),...y&&{getSortedRowModel:(0,l.getSortedRowModel)()},...x&&{getExpandedRowModel:(0,l.getExpandedRowModel)()}});return(0,t.jsx)("div",{className:"rounded-lg custom-border overflow-x-auto w-full max-w-full box-border",children:(0,t.jsxs)(s.Table,{className:"[&_td]:py-0.5 [&_th]:py-1 table-fixed w-full box-border",style:{minWidth:"400px"},children:[(0,t.jsx)(o.TableHead,{children:O.getHeaderGroups().map(e=>(0,t.jsx)(c.TableRow,{children:e.headers.map(e=>{let r=y&&e.column.getCanSort(),l=e.column.getIsSorted();return(0,t.jsx)(i.TableHeaderCell,{className:`py-1 h-8 ${r?"cursor-pointer select-none hover:bg-gray-50":""}`,onClick:r?e.column.getToggleSortingHandler():void 0,children:e.isPlaceholder?null:(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.flexRender)(e.column.columnDef.header,e.getContext()),r&&(0,t.jsx)("span",{className:"text-gray-400",children:"asc"===l?"↑":"desc"===l?"↓":"⇅"})]})},e.id)})},e.id))}),(0,t.jsx)(n.TableBody,{children:h?(0,t.jsx)(c.TableRow,{children:(0,t.jsx)(u.TableCell,{colSpan:d.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:b})})})}):O.getRowModel().rows.length>0?O.getRowModel().rows.map(e=>(0,t.jsxs)(r.Fragment,{children:[(0,t.jsx)(c.TableRow,{className:`h-8 ${p?"cursor-pointer hover:bg-gray-50":""}`,onClick:()=>p?.(e.original),children:e.getVisibleCells().map(e=>(0,t.jsx)(u.TableCell,{className:"py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap",children:(0,a.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))}),x&&e.getIsExpanded()&&m&&m({row:e}),x&&e.getIsExpanded()&&f&&!m&&(0,t.jsx)(c.TableRow,{children:(0,t.jsx)(u.TableCell,{colSpan:e.getVisibleCells().length,className:"p-0",children:(0,t.jsx)("div",{className:"w-full max-w-full overflow-hidden box-border",children:f({row:e})})})})]},e.id)):(0,t.jsx)(c.TableRow,{children:(0,t.jsx)(u.TableCell,{colSpan:d.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:v})})})})})]})})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0cbiddnyyt-22.js b/litellm/proxy/_experimental/out/_next/static/chunks/0cbiddnyyt-22.js deleted file mode 100644 index 52077ca62e4..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/0cbiddnyyt-22.js +++ /dev/null @@ -1,231 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,952683,e=>{"use strict";var t=e.i(843476),s=e.i(902739),a=e.i(161059),l=e.i(213970),r=e.i(105278),i=e.i(271645),n=e.i(994388),o=e.i(304967),d=e.i(269200),c=e.i(942232),m=e.i(977572),u=e.i(427612),p=e.i(64848),x=e.i(496020),h=e.i(389083),g=e.i(599724),y=e.i(212931),j=e.i(560445),f=e.i(592968),b=e.i(981339),_=e.i(790848),v=e.i(245704),w=e.i(764205),k=e.i(808613),N=e.i(199133),S=e.i(311451),C=e.i(280898),T=e.i(91739),I=e.i(262218),F=e.i(312361),L=e.i(28651),A=e.i(888259),M=e.i(826910),P=e.i(438957),D=e.i(983561),z=e.i(477189),E=e.i(827252),O=e.i(364769),R=e.i(135214),B=e.i(355619),$=e.i(663435),q=e.i(362024),U=e.i(770914),V=e.i(464571),H=e.i(646563),G=e.i(564897);let K={basic:{key:"basic",title:"Basic Information",defaultExpanded:!0,fields:[{name:"name",label:"Display Name",type:"text",required:!0,placeholder:"e.g., Customer Support Agent"},{name:"description",label:"Description",type:"textarea",required:!0,placeholder:"Describe what this agent does...",rows:3},{name:"url",label:"URL",type:"url",required:!1,placeholder:"http://localhost:9999/",tooltip:"Base URL where the agent is hosted (optional)"},{name:"version",label:"Version",type:"text",placeholder:"1.0.0",defaultValue:"1.0.0"},{name:"protocolVersion",label:"Protocol Version",type:"text",placeholder:"1.0",defaultValue:"1.0"}]},skills:{key:"skills",title:"Skills",fields:[{name:"skills",label:"Skills",type:"list",defaultValue:[]}]},capabilities:{key:"capabilities",title:"Capabilities",fields:[{name:"streaming",label:"Streaming",type:"switch",defaultValue:!1},{name:"pushNotifications",label:"Push Notifications",type:"switch"},{name:"stateTransitionHistory",label:"State Transition History",type:"switch"}]},optional:{key:"optional",title:"Optional Settings",fields:[{name:"iconUrl",label:"Icon URL",type:"url",placeholder:"https://example.com/icon.png"},{name:"documentationUrl",label:"Documentation URL",type:"url",placeholder:"https://docs.example.com"},{name:"supportsAuthenticatedExtendedCard",label:"Supports Authenticated Extended Card",type:"switch"}]},litellm:{key:"litellm",title:"LiteLLM Parameters",fields:[{name:"model",label:"Model (Optional)",type:"text"},{name:"make_public",label:"Make Public",type:"switch"}]},cost:{key:"cost",title:"Cost Configuration",fields:[{name:"cost_per_query",label:"Cost Per Query ($)",type:"text",placeholder:"0.0",tooltip:"Fixed cost per query"},{name:"input_cost_per_token",label:"Input Cost Per Token ($)",type:"text",placeholder:"0.000001",tooltip:"Cost per input token"},{name:"output_cost_per_token",label:"Output Cost Per Token ($)",type:"text",placeholder:"0.000002",tooltip:"Cost per output token"}]},tracing:{key:"tracing",title:"Tracing",fields:[{name:"enable_tracing",label:"Enable Tracing",type:"switch",defaultValue:!1,tooltip:"Enable request tracing for this agent"}]}},W="Skill ID",Q=!0,Y="e.g., hello_world",J="Skill Name",X=!0,Z="e.g., Returns hello world",ee="Description",et=!0,es="What this skill does",ea=2,el="Tags (comma-separated)",er=!0,ei="e.g., hello world, greeting",en="Examples (comma-separated)",eo="e.g., hi, hello world",ed=(e,t)=>{let s={agent_name:e.agent_name,agent_card_params:{protocolVersion:e.protocolVersion||"1.0",name:e.name||e.agent_name,description:e.description||"",url:e.url||"",version:e.version||"1.0.0",defaultInputModes:t?.agent_card_params?.defaultInputModes||["text"],defaultOutputModes:t?.agent_card_params?.defaultOutputModes||["text"],capabilities:{streaming:!0===e.streaming,...void 0!==e.pushNotifications&&{pushNotifications:e.pushNotifications},...void 0!==e.stateTransitionHistory&&{stateTransitionHistory:e.stateTransitionHistory}},skills:e.skills||[],...e.iconUrl&&{iconUrl:e.iconUrl},...e.documentationUrl&&{documentationUrl:e.documentationUrl},...void 0!==e.supportsAuthenticatedExtendedCard&&{supportsAuthenticatedExtendedCard:e.supportsAuthenticatedExtendedCard}}},a={};if(e.model&&(a.model=e.model),void 0!==e.make_public&&(a.make_public=e.make_public),e.cost_per_query&&(a.cost_per_query=parseFloat(e.cost_per_query)),e.input_cost_per_token&&(a.input_cost_per_token=parseFloat(e.input_cost_per_token)),e.output_cost_per_token&&(a.output_cost_per_token=parseFloat(e.output_cost_per_token)),Object.keys(a).length>0&&(s.litellm_params=a),null!=e.tpm_limit&&(s.tpm_limit=e.tpm_limit),null!=e.rpm_limit&&(s.rpm_limit=e.rpm_limit),null!=e.session_tpm_limit&&(s.session_tpm_limit=e.session_tpm_limit),null!=e.session_rpm_limit&&(s.session_rpm_limit=e.session_rpm_limit),Array.isArray(e.static_headers)&&e.static_headers.length>0){let t={};e.static_headers.forEach(e=>{let s=e?.header?.trim();s&&(t[s]=e?.value??"")}),Object.keys(t).length>0&&(s.static_headers=t)}return Array.isArray(e.extra_headers)&&e.extra_headers.length>0&&(s.extra_headers=e.extra_headers),s},ec=e=>{let t=e.agent_card_params?.skills?.map(e=>({...e,tags:e.tags,examples:e.examples||[]}))||[];return{agent_name:e.agent_name,name:e.agent_card_params?.name,description:e.agent_card_params?.description,url:e.agent_card_params?.url,version:e.agent_card_params?.version,protocolVersion:e.agent_card_params?.protocolVersion,streaming:e.agent_card_params?.capabilities?.streaming,pushNotifications:e.agent_card_params?.capabilities?.pushNotifications,stateTransitionHistory:e.agent_card_params?.capabilities?.stateTransitionHistory,skills:t,iconUrl:e.agent_card_params?.iconUrl,documentationUrl:e.agent_card_params?.documentationUrl,supportsAuthenticatedExtendedCard:e.agent_card_params?.supportsAuthenticatedExtendedCard,model:e.litellm_params?.model,make_public:e.litellm_params?.make_public,cost_per_query:e.litellm_params?.cost_per_query,input_cost_per_token:e.litellm_params?.input_cost_per_token,output_cost_per_token:e.litellm_params?.output_cost_per_token,tpm_limit:e.tpm_limit,rpm_limit:e.rpm_limit,session_tpm_limit:e.session_tpm_limit,session_rpm_limit:e.session_rpm_limit,static_headers:e.static_headers?Object.entries(e.static_headers).map(([e,t])=>({header:e,value:t})):[],extra_headers:e.extra_headers??[]}},em=()=>(0,t.jsx)(t.Fragment,{children:K.cost.fields.map(e=>(0,t.jsx)(k.Form.Item,{label:e.label,name:e.name,tooltip:e.tooltip,children:(0,t.jsx)(S.Input,{placeholder:e.placeholder,type:"number",step:"0.000001"})},e.name))}),{Panel:eu}=q.Collapse,ep=({showAgentName:e=!0,visiblePanels:s})=>{let a=e=>!s||s.includes(e);return(0,t.jsxs)(t.Fragment,{children:[e&&(0,t.jsx)(k.Form.Item,{label:"Agent Name",name:"agent_name",rules:[{required:!0,message:"Please enter a unique agent name"}],tooltip:"Unique identifier for the agent",children:(0,t.jsx)(S.Input,{placeholder:"e.g., customer-support-agent"})}),(0,t.jsxs)(q.Collapse,{defaultActiveKey:["basic"],style:{marginBottom:16},children:[a(K.basic.key)&&(0,t.jsx)(eu,{header:`${K.basic.title} (Required)`,children:K.basic.fields.map(e=>(0,t.jsx)(k.Form.Item,{label:e.label,name:e.name,rules:e.required?[{required:!0,message:`Please enter ${e.label.toLowerCase()}`}]:void 0,tooltip:e.tooltip,children:"textarea"===e.type?(0,t.jsx)(S.Input.TextArea,{rows:e.rows,placeholder:e.placeholder}):(0,t.jsx)(S.Input,{placeholder:e.placeholder})},e.name))},K.basic.key),a(K.skills.key)&&(0,t.jsx)(eu,{header:`${K.skills.title} (Required)`,children:(0,t.jsx)(k.Form.List,{name:"skills",children:(e,{add:s,remove:a})=>(0,t.jsxs)(t.Fragment,{children:[e.map(e=>(0,t.jsxs)("div",{style:{marginBottom:16,padding:16,border:"1px solid #d9d9d9",borderRadius:4},children:[(0,t.jsx)(k.Form.Item,{...e,label:W,name:[e.name,"id"],rules:[{required:Q,message:"Required"}],children:(0,t.jsx)(S.Input,{placeholder:Y})}),(0,t.jsx)(k.Form.Item,{...e,label:J,name:[e.name,"name"],rules:[{required:X,message:"Required"}],children:(0,t.jsx)(S.Input,{placeholder:Z})}),(0,t.jsx)(k.Form.Item,{...e,label:ee,name:[e.name,"description"],rules:[{required:et,message:"Required"}],children:(0,t.jsx)(S.Input.TextArea,{rows:ea,placeholder:es})}),(0,t.jsx)(k.Form.Item,{...e,label:el,name:[e.name,"tags"],rules:[{required:er,message:"Required"}],getValueFromEvent:e=>e.target.value.split(",").map(e=>e.trim()),getValueProps:e=>({value:Array.isArray(e)?e.join(", "):e}),children:(0,t.jsx)(S.Input,{placeholder:ei})}),(0,t.jsx)(k.Form.Item,{...e,label:en,name:[e.name,"examples"],getValueFromEvent:e=>e.target.value.split(",").map(e=>e.trim()).filter(e=>e),getValueProps:e=>({value:Array.isArray(e)?e.join(", "):""}),children:(0,t.jsx)(S.Input,{placeholder:eo})}),(0,t.jsx)(V.Button,{type:"link",danger:!0,onClick:()=>a(e.name),icon:(0,t.jsx)(G.MinusCircleOutlined,{}),children:"Remove Skill"})]},e.key)),(0,t.jsx)(V.Button,{type:"dashed",onClick:()=>s(),icon:(0,t.jsx)(H.PlusOutlined,{}),style:{width:"100%"},children:"Add Skill"})]})})},K.skills.key),a(K.capabilities.key)&&(0,t.jsx)(eu,{header:K.capabilities.title,children:K.capabilities.fields.map(e=>(0,t.jsx)(k.Form.Item,{label:e.label,name:e.name,valuePropName:"checked",children:(0,t.jsx)(_.Switch,{})},e.name))},K.capabilities.key),a(K.optional.key)&&(0,t.jsx)(eu,{header:K.optional.title,children:K.optional.fields.map(e=>(0,t.jsx)(k.Form.Item,{label:e.label,name:e.name,valuePropName:"switch"===e.type?"checked":void 0,children:"switch"===e.type?(0,t.jsx)(_.Switch,{}):(0,t.jsx)(S.Input,{placeholder:e.placeholder})},e.name))},K.optional.key),a(K.cost.key)&&(0,t.jsx)(eu,{header:K.cost.title,children:(0,t.jsx)(em,{})},K.cost.key),a(K.litellm.key)&&(0,t.jsx)(eu,{header:K.litellm.title,children:K.litellm.fields.map(e=>(0,t.jsx)(k.Form.Item,{label:e.label,name:e.name,valuePropName:"switch"===e.type?"checked":void 0,children:"switch"===e.type?(0,t.jsx)(_.Switch,{}):(0,t.jsx)(S.Input,{placeholder:e.placeholder})},e.name))},K.litellm.key),a("auth_headers")&&(0,t.jsxs)(eu,{header:"Authentication Headers",children:[(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{children:["Static Headers"," ",(0,t.jsx)(f.Tooltip,{title:"Headers always sent to the backend agent, regardless of the client request. Admin-configured, static wins on conflict.",children:(0,t.jsx)(E.InfoCircleOutlined,{style:{color:"#8c8c8c"}})})]}),children:(0,t.jsx)(k.Form.List,{name:"static_headers",children:(e,{add:s,remove:a})=>(0,t.jsxs)(t.Fragment,{children:[e.map(({key:e,name:s,...l})=>(0,t.jsxs)(U.Space,{style:{display:"flex",marginBottom:8},align:"baseline",children:[(0,t.jsx)(k.Form.Item,{...l,name:[s,"header"],rules:[{required:!0,message:"Header name required"}],children:(0,t.jsx)(S.Input,{placeholder:"Header name (e.g. Authorization)",style:{width:220}})}),(0,t.jsx)(k.Form.Item,{...l,name:[s,"value"],rules:[{required:!0,message:"Value required"}],children:(0,t.jsx)(S.Input,{placeholder:"Value (e.g. Bearer token123)",style:{width:260}})}),(0,t.jsx)(G.MinusCircleOutlined,{onClick:()=>a(s),style:{color:"#ff4d4f"}})]},e)),(0,t.jsx)(V.Button,{type:"dashed",onClick:()=>s(),icon:(0,t.jsx)(H.PlusOutlined,{}),style:{width:"100%"},children:"Add Static Header"})]})})}),(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{children:["Forward Client Headers"," ",(0,t.jsx)(f.Tooltip,{title:"Header names to extract from the client's request and forward to the agent. Type a name and press Enter.",children:(0,t.jsx)(E.InfoCircleOutlined,{style:{color:"#8c8c8c"}})})]}),name:"extra_headers",children:(0,t.jsx)(N.Select,{mode:"tags",style:{width:"100%"},placeholder:"e.g. x-api-key, Authorization",tokenSeparators:[","]})})]},"auth_headers")]})]})},{Panel:ex}=q.Collapse,eh=(e,t)=>{let s={...t.litellm_params_template||{}};for(let a of t.credential_fields){let t=e[a.key];t&&!1!==a.include_in_litellm_params&&(s[a.key]=t)}if(e.cost_per_query&&(s.cost_per_query=parseFloat(e.cost_per_query)),e.input_cost_per_token&&(s.input_cost_per_token=parseFloat(e.input_cost_per_token)),e.output_cost_per_token&&(s.output_cost_per_token=parseFloat(e.output_cost_per_token)),t.model_template){let a=t.model_template;for(let s of t.credential_fields){let t=`{${s.key}}`;a.includes(t)&&e[s.key]&&(a=a.replace(t,e[s.key]))}s.model=a}let a={agent_name:e.agent_name,agent_card_params:{protocolVersion:"1.0",name:e.display_name||e.agent_name,description:e.description||`${t.agent_type_display_name} agent`,url:e.api_base||"",version:"1.0.0",defaultInputModes:["text"],defaultOutputModes:["text"],capabilities:{streaming:!0},skills:[{id:"chat",name:"Chat",description:"General chat capability",tags:["chat","conversation"]}]},litellm_params:s};return null!=e.tpm_limit&&(a.tpm_limit=e.tpm_limit),null!=e.rpm_limit&&(a.rpm_limit=e.rpm_limit),null!=e.session_tpm_limit&&(a.session_tpm_limit=e.session_tpm_limit),null!=e.session_rpm_limit&&(a.session_rpm_limit=e.session_rpm_limit),a},eg=({agentTypeInfo:e})=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(k.Form.Item,{label:"Agent Name",name:"agent_name",rules:[{required:!0,message:"Please enter a unique agent name"}],tooltip:"Unique identifier for the agent",children:(0,t.jsx)(S.Input,{placeholder:"e.g., my-langgraph-agent"})}),(0,t.jsx)(k.Form.Item,{label:"Description",name:"description",tooltip:"Brief description of what this agent does",children:(0,t.jsx)(S.Input.TextArea,{rows:2,placeholder:"Describe what this agent does..."})}),e.credential_fields.map(e=>(0,t.jsx)(k.Form.Item,{label:e.label,name:e.key,rules:e.required?[{required:!0,message:`Please enter ${e.label}`}]:void 0,tooltip:e.tooltip,initialValue:e.default_value,children:"password"===e.field_type?(0,t.jsx)(S.Input.Password,{placeholder:e.placeholder||""}):"textarea"===e.field_type?(0,t.jsx)(S.Input.TextArea,{rows:3,placeholder:e.placeholder||""}):"select"===e.field_type&&e.options?(0,t.jsx)(N.Select,{placeholder:e.placeholder||"",children:e.options.map(e=>(0,t.jsx)(N.Select.Option,{value:e,children:e},e))}):(0,t.jsx)(S.Input,{placeholder:e.placeholder||""})},e.key)),(0,t.jsx)(q.Collapse,{style:{marginBottom:16},children:(0,t.jsx)(ex,{header:K.cost.title,children:(0,t.jsx)(em,{})},K.cost.key)})]});var ey=e.i(75921),ej=e.i(390605),ef=e.i(891547);let{Step:eb}=C.Steps,e_="custom",ev=({visible:e,onClose:s,accessToken:a,onSuccess:l,teams:r})=>{let o,d,{userId:c,userRole:m}=(0,R.default)(),[u]=k.Form.useForm(),[p,x]=(0,i.useState)(0),[h,g]=(0,i.useState)(!1),[j,f]=(0,i.useState)("a2a"),[b,v]=(0,i.useState)([]),[q,U]=(0,i.useState)(!1),[V,H]=(0,i.useState)("create_new"),[G,W]=(0,i.useState)(""),[Q,Y]=(0,i.useState)([]),[J,X]=(0,i.useState)([]),[Z,ee]=(0,i.useState)(null),[et,es]=(0,i.useState)(!1),[ea,el]=(0,i.useState)([]),[er,ei]=(0,i.useState)(!1),[en,eo]=(0,i.useState)([]),[ec,em]=(0,i.useState)(!1),[eu,ex]=(0,i.useState)(""),[ev,ew]=(0,i.useState)(null),[ek,eN]=(0,i.useState)(null),[eS,eC]=(0,i.useState)(!1),[eT,eI]=(0,i.useState)(!1),[eF,eL]=(0,i.useState)(null),[eA,eM]=(0,i.useState)(null);(0,i.useEffect)(()=>{(async()=>{U(!0);try{let e=await (0,w.getAgentCreateMetadata)();v(e)}catch(e){console.error("Error fetching agent metadata:",e)}finally{U(!1)}})()},[]),(0,i.useEffect)(()=>{3===p&&a&&0===J.length&&(async()=>{es(!0);try{let e=await (0,w.keyListCall)(a,null,null,null,null,null,1,100);X(e?.keys||[])}catch(e){console.error("Error fetching keys:",e)}finally{es(!1)}})()},[p,a]),(0,i.useEffect)(()=>{if(1!==p&&3!==p||!a||!c||!m)return;let e=!1;return ei(!0),(0,w.modelAvailableCall)(a,c,m).then(t=>{e||el((t?.data??(Array.isArray(t)?t:[])).map(e=>e.id??e.model_name).filter(Boolean))}).catch(t=>{e||console.error("Error fetching models:",t)}).finally(()=>{e||ei(!1)}),()=>{e=!0}},[p,a,c,m]),(0,i.useEffect)(()=>{if(1!==p||!a)return;let e=!1;return em(!0),(0,w.getAgentsList)(a).then(t=>{e||eo((t?.agents??[]).map(e=>({agent_id:e.agent_id,agent_name:e.agent_name})))}).catch(t=>{e||console.error("Error fetching agents:",t)}).finally(()=>{e||em(!1)}),()=>{e=!0}},[p,a]);let eP=b.find(e=>e.agent_type===j),eD=async()=>{try{if(0===p){await u.validateFields(["agent_name"]);let e=u.getFieldValue("agent_name");e&&!G&&W(`${e}-key`)}x(e=>e+1)}catch{}},ez=async()=>{if(!a)return void A.default.error("No access token available");g(!0);try{await u.validateFields();let e={...u.getFieldsValue(!0)},t=(e=>{if(j===e_)return{agent_name:e.agent_name,agent_card_params:{protocolVersion:"1.0",name:e.agent_name,description:e.description||"",url:"",version:"1.0.0",defaultInputModes:["text"],defaultOutputModes:["text"],capabilities:{streaming:!1},skills:[]}};if("a2a"===j)return ed(e);if(eP?.use_a2a_form_fields){let t=ed(e);for(let s of(eP.litellm_params_template&&(t.litellm_params={...t.litellm_params,...eP.litellm_params_template}),eP.credential_fields)){let a=e[s.key];a&&!1!==s.include_in_litellm_params&&(t.litellm_params[s.key]=a)}return t}return eP?eh(e,eP):null})(e);if(!t){A.default.error("Failed to build agent data"),g(!1);return}let s=e.allowed_mcp_servers_and_groups,r=e.mcp_tool_permissions||{},i=e.entitlement_models||[],n=e.entitlement_agents||[];(s?.servers?.length>0||s?.accessGroups?.length>0||Object.keys(r).length>0||i.length>0||n.length>0)&&(t.object_permission={},s?.servers?.length>0&&(t.object_permission.mcp_servers=s.servers),s?.accessGroups?.length>0&&(t.object_permission.mcp_access_groups=s.accessGroups),Object.keys(r).length>0&&(t.object_permission.mcp_tool_permissions=r),i.length>0&&(t.object_permission.models=i),n.length>0&&(t.object_permission.agents=n)),(eS||eT)&&(t.litellm_params||(t.litellm_params={}),eS&&(t.litellm_params.require_trace_id_on_calls_to_agent=!0),eT&&(t.litellm_params.require_trace_id_on_calls_by_agent=!0,eF&&(t.litellm_params.max_iterations=eF),eA&&(t.litellm_params.max_budget_per_session=eA)));let o=e.guardrails||[];o.length>0&&(t.litellm_params||(t.litellm_params={}),t.litellm_params.guardrails=o);let d=e.team_id||null;d&&(t.team_id=d);let c=await (0,w.createAgentCall)(a,t),m=c.agent_id,p=c.agent_name||e.agent_name||m;if(ex(p),"create_new"===V&&G){let e=await (0,w.keyCreateForAgentCall)(a,m,G,Q,void 0,d);ew(e.key||null)}else if("existing_key"===V){if(!Z){A.default.error("Please select an existing key to assign"),g(!1);return}await (0,w.keyUpdateCall)(a,{key:Z,agent_id:m});let e=J.find(e=>e.token===Z);eN(e?.key_alias||Z.slice(0,12)+"…")}x(4),l()}catch(t){console.error("Error creating agent:",t);let e=t instanceof Error?t.message:String(t);A.default.error(e?`Failed to create agent: ${e}`:"Failed to create agent")}finally{g(!1)}},eE=()=>{u.resetFields(),f("a2a"),x(0),H("create_new"),W(""),Y([]),ee(null),ex(""),ew(null),eN(null),eC(!1),eI(!1),eL(null),eM(null),s()},eO=e=>{f(e),u.resetFields()},eR=j===e_?null:eP?.logo_url||b.find(e=>"a2a"===e.agent_type)?.logo_url;return(0,t.jsx)(y.Modal,{title:(0,t.jsxs)("div",{className:"flex items-center space-x-3 pb-4 border-b border-gray-100",children:[eR&&p<1&&(0,t.jsx)("img",{src:eR,alt:"Agent",className:"w-6 h-6 object-contain"}),(0,t.jsx)("h2",{className:"text-xl font-semibold text-gray-900",children:"Add New Agent"})]}),open:e,onCancel:eE,footer:null,width:900,className:"top-8",styles:{body:{padding:"24px"},header:{padding:"24px 24px 0 24px",border:"none"}},children:(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsxs)(C.Steps,{current:p,size:"small",className:"mb-8",children:[(0,t.jsx)(eb,{title:"Configure"}),(0,t.jsx)(eb,{title:"Entitlements"}),(0,t.jsx)(eb,{title:"Governance"}),(0,t.jsx)(eb,{title:"Agent Management"}),(0,t.jsx)(eb,{title:"Ready"})]}),(0,t.jsxs)(k.Form,{form:u,layout:"vertical",initialValues:"a2a"===j?{...(o={defaultInputModes:["text"],defaultOutputModes:["text"]},Object.values(K).forEach(e=>{e.fields.forEach(e=>{void 0!==e.defaultValue&&(o[e.name]=e.defaultValue)})}),o),allowed_mcp_servers_and_groups:{servers:[],accessGroups:[]},mcp_tool_permissions:{},entitlement_models:[],entitlement_agents:[],guardrails:[]}:{allowed_mcp_servers_and_groups:{servers:[],accessGroups:[]},mcp_tool_permissions:{},entitlement_models:[],entitlement_agents:[],guardrails:[]},className:"space-y-4",children:[0===p&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(k.Form.Item,{label:(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Agent Type"}),required:!0,tooltip:"Select the type of agent you want to create",children:(0,t.jsx)(N.Select,{value:j,onChange:eO,size:"large",style:{width:"100%"},optionLabelProp:"label",dropdownRender:e=>(0,t.jsxs)(t.Fragment,{children:[e,(0,t.jsx)(F.Divider,{style:{margin:"4px 0"}}),(0,t.jsxs)("div",{className:"px-2 py-1",children:[(0,t.jsx)("div",{className:"text-xs text-gray-400 font-medium mb-1 uppercase tracking-wide px-2",children:"Not listed?"}),(0,t.jsxs)("div",{className:`flex items-center gap-3 px-2 py-2 rounded cursor-pointer transition-colors ${j===e_?"bg-amber-50":"hover:bg-amber-50"}`,onClick:()=>eO(e_),children:[(0,t.jsx)(z.AppstoreOutlined,{className:"text-amber-600 text-lg"}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"font-medium text-amber-700",children:"Custom / Other"}),(0,t.jsx)(I.Tag,{color:"orange",style:{fontSize:10,padding:"0 4px"},children:"GENERIC"})]}),(0,t.jsx)("div",{className:"text-xs text-amber-600",children:"For agents that don't follow a standard protocol — just needs a virtual key"})]})]})]})]}),children:b.map(e=>(0,t.jsx)(N.Select.Option,{value:e.agent_type,label:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("img",{src:e.logo_url||"",alt:"",className:"w-4 h-4 object-contain"}),(0,t.jsx)("span",{children:e.agent_type_display_name})]}),children:(0,t.jsxs)("div",{className:"flex items-center gap-3 py-1",children:[(0,t.jsx)("img",{src:e.logo_url||"",alt:e.agent_type_display_name,className:"w-5 h-5 object-contain"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"font-medium",children:e.agent_type_display_name}),e.description&&(0,t.jsx)("div",{className:"text-xs text-gray-500",children:e.description})]})]})},e.agent_type))})}),(0,t.jsx)("div",{className:"mt-4",children:j===e_?(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(k.Form.Item,{label:"Agent Name",name:"agent_name",rules:[{required:!0,message:"Please enter an agent name"}],children:(0,t.jsx)(S.Input,{placeholder:"e.g. my-custom-agent"})}),(0,t.jsx)(k.Form.Item,{label:"Description",name:"description",children:(0,t.jsx)(S.Input.TextArea,{placeholder:"Describe what this agent does…",rows:3})})]}):"a2a"===j?(0,t.jsx)(ep,{showAgentName:!0}):eP?.use_a2a_form_fields?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ep,{showAgentName:!0}),eP.credential_fields.length>0&&(0,t.jsxs)("div",{className:"mt-4 p-4 border border-gray-200 rounded-lg",children:[(0,t.jsxs)("h4",{className:"text-sm font-medium text-gray-700 mb-3",children:[eP.agent_type_display_name," Settings"]}),eP.credential_fields.map(e=>(0,t.jsx)(k.Form.Item,{label:e.label,name:e.key,rules:e.required?[{required:!0,message:`Please enter ${e.label}`}]:void 0,tooltip:e.tooltip,initialValue:e.default_value,children:"password"===e.field_type?(0,t.jsx)(S.Input.Password,{placeholder:e.placeholder||""}):(0,t.jsx)(S.Input,{placeholder:e.placeholder||""})},e.key))]})]}):eP?(0,t.jsx)(eg,{agentTypeInfo:eP}):null})]}),1===p&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)("p",{className:"text-sm text-gray-600",children:"Configure which models, agents, and MCP tools this agent is allowed to use. Leave fields empty to allow all (subject to key/team permissions)."}),(0,t.jsx)(k.Form.Item,{label:(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Allowed Models"}),name:"entitlement_models",tooltip:"Restrict which models this agent can call. Leave empty to allow all.",children:(0,t.jsx)(N.Select,{mode:"tags",style:{width:"100%"},placeholder:er?"Loading models...":"Select models (leave empty for all)",tokenSeparators:[","],loading:er,showSearch:!0,options:ea.map(e=>({label:(0,B.getModelDisplayName)(e),value:e}))})}),(0,t.jsx)(k.Form.Item,{label:(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Allowed Agents (Sub-Agents)"}),name:"entitlement_agents",tooltip:"Restrict which other agents this agent can invoke as sub-agents. Leave empty to allow all.",children:(0,t.jsx)(N.Select,{mode:"multiple",style:{width:"100%"},placeholder:ec?"Loading agents...":"Select agents (leave empty for all)",loading:ec,showSearch:!0,filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase()),options:en.map(e=>({label:e.agent_name,value:e.agent_id}))})}),(0,t.jsx)(F.Divider,{className:"my-2"}),(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{children:["Allowed MCP Servers"," ",(0,t.jsx)(E.InfoCircleOutlined,{title:"Select which MCP servers or access groups this agent can access",style:{marginLeft:"4px"}})]}),name:"allowed_mcp_servers_and_groups",initialValue:{servers:[],accessGroups:[]},children:(0,t.jsx)(ey.default,{onChange:e=>u.setFieldValue("allowed_mcp_servers_and_groups",e),value:u.getFieldValue("allowed_mcp_servers_and_groups")||{servers:[],accessGroups:[]},accessToken:a??"",placeholder:"Select MCP servers or access groups (optional)"})}),(0,t.jsx)(k.Form.Item,{name:"mcp_tool_permissions",initialValue:{},hidden:!0,children:(0,t.jsx)(S.Input,{type:"hidden"})}),(0,t.jsx)(k.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.allowed_mcp_servers_and_groups!==t.allowed_mcp_servers_and_groups||e.mcp_tool_permissions!==t.mcp_tool_permissions,children:()=>(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)(ej.default,{accessToken:a??"",selectedServers:u.getFieldValue("allowed_mcp_servers_and_groups")?.servers??[],toolPermissions:u.getFieldValue("mcp_tool_permissions")??{},onChange:e=>u.setFieldsValue({mcp_tool_permissions:e})})})})]}),2===p&&(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"text-sm font-medium text-gray-700 mb-3",children:"Tracing"}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Require x-litellm-trace-id on calls TO this agent"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:"Only accept this agent being invoked with a trace-id (e.g. when used as a sub-agent)."})]}),(0,t.jsx)(_.Switch,{checked:eS,onChange:eC})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Require x-litellm-trace-id on calls BY this agent"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:"Requires LLM/MCP calls made by this agent to include x-litellm-trace-id for session tracking."})]}),(0,t.jsx)(_.Switch,{checked:eT,onChange:e=>{eI(e),e||(eL(null),eM(null))}})]})]})]}),(0,t.jsx)(F.Divider,{className:"my-0"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"text-sm font-medium text-gray-700 mb-3",children:"Budgets & Rate Limits"}),(0,t.jsxs)("div",{className:"space-y-4",children:[!eT&&(0,t.jsx)("div",{className:"p-3 bg-yellow-50 border border-yellow-200 rounded-lg text-sm text-yellow-800",children:'Enable "Require x-litellm-trace-id on calls BY this agent" in Tracing to configure budgets and rate limits.'}),(0,t.jsx)("div",{className:"text-sm font-medium text-gray-700",children:"Session Budgets"}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm text-gray-600 block mb-1",children:"Max Iterations"}),(0,t.jsx)(L.InputNumber,{className:"w-full",min:1,placeholder:"e.g. 25",disabled:!eT,value:eF,onChange:e=>eL(e)}),(0,t.jsx)("p",{className:"text-xs text-gray-400 mt-1",children:"Hard cap on LLM calls per session"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm text-gray-600 block mb-1",children:"Max Budget Per Session ($)"}),(0,t.jsx)(L.InputNumber,{className:"w-full",min:.01,step:.5,placeholder:"e.g. 5.00",disabled:!eT,value:eA,onChange:e=>eM(e)}),(0,t.jsx)("p",{className:"text-xs text-gray-400 mt-1",children:"Max spend per trace before returning 429"})]})]}),(0,t.jsx)(F.Divider,{className:"my-2"}),(0,t.jsx)("div",{className:"text-sm font-medium text-gray-700",children:"Agent Rate Limits"}),(0,t.jsx)("p",{className:"text-xs text-gray-500",children:"Global rate limits applied across all callers of this agent."}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsx)(k.Form.Item,{label:"TPM Limit",name:"tpm_limit",className:"mb-0",children:(0,t.jsx)(L.InputNumber,{className:"w-full",min:0,placeholder:"e.g. 100000",disabled:!eT})}),(0,t.jsx)(k.Form.Item,{label:"RPM Limit",name:"rpm_limit",className:"mb-0",children:(0,t.jsx)(L.InputNumber,{className:"w-full",min:0,placeholder:"e.g. 100",disabled:!eT})})]}),(0,t.jsx)("div",{className:"text-sm font-medium text-gray-700 mt-4",children:"Per-Session Rate Limits"}),(0,t.jsx)("p",{className:"text-xs text-gray-500",children:"Rate limits per session (x-litellm-trace-id). Each session gets its own counters."}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsx)(k.Form.Item,{label:"Session TPM Limit",name:"session_tpm_limit",className:"mb-0",children:(0,t.jsx)(L.InputNumber,{className:"w-full",min:0,placeholder:"e.g. 10000",disabled:!eT})}),(0,t.jsx)(k.Form.Item,{label:"Session RPM Limit",name:"session_rpm_limit",className:"mb-0",children:(0,t.jsx)(L.InputNumber,{className:"w-full",min:0,placeholder:"e.g. 20",disabled:!eT})})]})]})]}),(0,t.jsx)(F.Divider,{className:"my-0"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"text-sm font-medium text-gray-700 mb-3",children:"Guardrails"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mb-3",children:"Apply guardrails to this agent. Selected guardrails will run on all calls made by this agent."}),(0,t.jsx)(k.Form.Item,{name:"guardrails",initialValue:[],children:(0,t.jsx)(ef.default,{accessToken:a??"",value:u.getFieldValue("guardrails")??[],onChange:e=>u.setFieldsValue({guardrails:e})})})]})]}),3===p&&(d=u.getFieldValue("agent_name")||"your-agent",(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"flex justify-center mb-6",children:(0,t.jsx)(I.Tag,{icon:(0,t.jsx)(D.RobotOutlined,{}),color:"purple",className:"px-3 py-1 text-sm",children:d})}),(0,t.jsx)(k.Form.Item,{label:(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Assign to Team"}),name:"team_id",tooltip:"Optionally assign this agent to a team. The agent and its key will belong to the selected team.",children:(0,t.jsx)($.default,{})}),(0,t.jsx)(F.Divider,{className:"my-4"}),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("div",{className:`p-4 border-2 rounded-lg cursor-pointer transition-colors ${"create_new"===V?"border-indigo-600 bg-indigo-50":"border-gray-200 bg-white hover:border-gray-300"}`,onClick:()=>H("create_new"),children:(0,t.jsxs)("div",{className:"flex items-start justify-between",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 flex-1",children:[(0,t.jsx)(T.Radio,{value:"create_new",checked:"create_new"===V,onChange:()=>H("create_new")}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(P.KeyOutlined,{className:"text-indigo-600"}),(0,t.jsx)("span",{className:"font-medium text-gray-900",children:"Create a new key for this agent"})]}),(0,t.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"A dedicated key scoped to this agent."}),"create_new"===V&&(0,t.jsx)("div",{className:"mt-3 space-y-3",onClick:e=>e.stopPropagation(),children:(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm text-gray-600 block mb-1",children:"Key Name"}),(0,t.jsx)(S.Input,{value:G,onChange:e=>W(e.target.value),placeholder:"e.g. my-agent-key"})]})})]})]}),(0,t.jsx)(I.Tag,{color:"green",children:"Recommended"})]})}),(0,t.jsx)("div",{className:`p-4 border-2 rounded-lg cursor-pointer transition-colors ${"existing_key"===V?"border-indigo-600 bg-indigo-50":"border-gray-200 bg-white hover:border-gray-300"}`,onClick:()=>H("existing_key"),children:(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)(T.Radio,{value:"existing_key",checked:"existing_key"===V,onChange:()=>H("existing_key")}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(P.KeyOutlined,{className:"text-gray-500"}),(0,t.jsx)("span",{className:"font-medium text-gray-900",children:"Assign an existing key"})]}),(0,t.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Re-assign a key you already have to this agent."}),"existing_key"===V&&(0,t.jsx)("div",{className:"mt-3",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(N.Select,{showSearch:!0,style:{width:"100%"},placeholder:"Search by key name…",loading:et,value:Z,onChange:e=>ee(e),filterOption:(e,t)=>(t?.label??"").toLowerCase().includes(e.toLowerCase()),options:J.map(e=>({label:e.key_alias||e.token?.slice(0,12)+"…",value:e.token}))})})]})]})})]}),(0,t.jsx)("div",{className:"text-center mt-4",children:(0,t.jsx)("button",{type:"button",className:"text-sm text-gray-500 underline hover:text-gray-700",onClick:()=>H("skip"),children:"Skip for now — I'll assign a key later"})})]})),4===p&&(0,t.jsxs)("div",{className:"text-center py-6",children:[(0,t.jsx)(M.CheckCircleFilled,{className:"text-5xl text-green-500 mb-4",style:{fontSize:48}}),(0,t.jsx)("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Agent Created!"}),(0,t.jsx)("div",{className:"flex justify-center mb-4",children:(0,t.jsx)(I.Tag,{icon:(0,t.jsx)(D.RobotOutlined,{}),color:"purple",className:"px-3 py-1 text-sm",children:eu})}),ev&&(0,t.jsx)("div",{className:"mt-4 text-left max-w-md mx-auto",children:(0,t.jsx)(O.default,{apiKey:ev})}),ek&&(0,t.jsxs)("p",{className:"text-sm text-gray-600 mt-2",children:["Key ",(0,t.jsx)("span",{className:"font-medium",children:ek})," has been assigned to this agent."]}),!ev&&!ek&&"skip"===V&&(0,t.jsx)("p",{className:"text-sm text-gray-500 mt-2",children:"No key assigned. You can create one from the Virtual Keys page."})]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between pt-6 border-t border-gray-100 mt-6",children:[(0,t.jsx)("div",{children:p>0&&p<4&&(0,t.jsx)("button",{type:"button",onClick:()=>{x(e=>Math.max(0,e-1))},className:"text-sm text-gray-600 border border-gray-300 rounded px-4 py-2 hover:bg-gray-50",children:"← Back"})}),(0,t.jsxs)("div",{className:"flex gap-3",children:[p<4&&(0,t.jsx)(n.Button,{variant:"secondary",onClick:eE,children:"Cancel"}),0===p&&(0,t.jsx)(n.Button,{variant:"primary",onClick:eD,children:"Next →"}),1===p&&(0,t.jsx)(n.Button,{variant:"primary",onClick:eD,children:"Next →"}),2===p&&(0,t.jsx)(n.Button,{variant:"primary",onClick:eD,children:"Next →"}),3===p&&(0,t.jsx)(n.Button,{variant:"primary",loading:h,onClick:ez,children:h?"Creating...":"Create Agent →"}),4===p&&(0,t.jsx)(n.Button,{variant:"primary",onClick:eE,children:"Done"})]})]})]})})};var ew=e.i(708347),ek=e.i(629569),eN=e.i(197647),eS=e.i(653824),eC=e.i(881073),eT=e.i(404206),eI=e.i(723731),eF=e.i(482725),eL=e.i(869216),eA=e.i(530212);let eM=({agent:e})=>{let s=e.litellm_params;return s?.cost_per_query===void 0&&s?.input_cost_per_token===void 0&&s?.output_cost_per_token===void 0?null:(0,t.jsxs)("div",{style:{marginTop:24},children:[(0,t.jsx)(ek.Title,{children:"Cost Configuration"}),(0,t.jsxs)(eL.Descriptions,{bordered:!0,column:1,style:{marginTop:16},children:[void 0!==s.cost_per_query&&(0,t.jsxs)(eL.Descriptions.Item,{label:"Cost Per Query",children:["$",s.cost_per_query]}),void 0!==s.input_cost_per_token&&(0,t.jsxs)(eL.Descriptions.Item,{label:"Input Cost Per Token",children:["$",s.input_cost_per_token]}),void 0!==s.output_cost_per_token&&(0,t.jsxs)(eL.Descriptions.Item,{label:"Output Cost Per Token",children:["$",s.output_cost_per_token]})]})]})},eP=e=>{let t=e.litellm_params?.model||"",s=e.litellm_params?.custom_llm_provider;return"langgraph"===s?"langgraph":"azure_ai"===s?"azure_ai_foundry":"bedrock"===s?"bedrock_agentcore":t.startsWith("langgraph/")?"langgraph":t.startsWith("azure_ai/agents/")?"azure_ai_foundry":t.startsWith("bedrock/agentcore/")?"bedrock_agentcore":"a2a"},eD=(e,t)=>{let s={agent_name:e.agent_name,description:e.agent_card_params?.description||""};for(let a of t.credential_fields)if(!1!==a.include_in_litellm_params)s[a.key]=e.litellm_params?.[a.key]||a.default_value||"";else if(t.model_template&&e.litellm_params?.model){let l=e.litellm_params.model,r=t.model_template.split("/"),i=l.split("/");r.forEach((e,t)=>{e===`{${a.key}}`&&i[t]&&(s[a.key]=i[t])})}return s.cost_per_query=e.litellm_params?.cost_per_query,s.input_cost_per_token=e.litellm_params?.input_cost_per_token,s.output_cost_per_token=e.litellm_params?.output_cost_per_token,s},ez=({agentId:e,onClose:s,accessToken:a,isAdmin:l})=>{let[r,d]=(0,i.useState)(null),[c,m]=(0,i.useState)(!0),[u,p]=(0,i.useState)(!1),[x,h]=(0,i.useState)(!1),[y]=k.Form.useForm(),[j,f]=(0,i.useState)([]),[b,_]=(0,i.useState)("a2a");(0,i.useEffect)(()=>{(async()=>{try{let e=await (0,w.getAgentCreateMetadata)();f(e)}catch(e){console.error("Error fetching agent metadata:",e)}})()},[]),(0,i.useEffect)(()=>{v()},[e,a]);let v=async()=>{if(a){m(!0);try{let t=await (0,w.getAgentInfo)(a,e);d(t);let s=eP(t);if(_(s),"a2a"===s)y.setFieldsValue(ec(t));else{let e=j.find(e=>e.agent_type===s);e?y.setFieldsValue(eD(t,e)):y.setFieldsValue(ec(t))}}catch(e){console.error("Error fetching agent info:",e),A.default.error("Failed to load agent information")}finally{m(!1)}}};(0,i.useEffect)(()=>{if(r&&j.length>0){let e=eP(r);if("a2a"!==e){let t=j.find(t=>t.agent_type===e);t&&y.setFieldsValue(eD(r,t))}}},[j,r]);let N=j.find(e=>e.agent_type===b),C=async t=>{if(a&&r){h(!0);try{let s;"a2a"===b?s=ed(t,r):N?(s=eh(t,N)).agent_name=t.agent_name:s=ed(t,r),await (0,w.patchAgentCall)(a,e,s),A.default.success("Agent updated successfully"),p(!1),v()}catch(e){console.error("Error updating agent:",e),A.default.error("Failed to update agent")}finally{h(!1)}}};if(c)return(0,t.jsx)("div",{className:"p-4",children:(0,t.jsx)("div",{className:"flex justify-center items-center h-64",children:(0,t.jsx)(eF.Spin,{size:"large"})})});if(!r)return(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsx)("div",{className:"text-center",children:"Agent not found"}),(0,t.jsx)(n.Button,{onClick:s,className:"mt-4",children:"Back to Agents List"})]});let T=e=>e?new Date(e).toLocaleString():"-";return(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Button,{icon:eA.ArrowLeftIcon,variant:"light",onClick:s,className:"mb-4",children:"Back to Agents"}),(0,t.jsx)(ek.Title,{children:r.agent_name||"Unnamed Agent"}),(0,t.jsx)(g.Text,{className:"text-gray-500 font-mono",children:r.agent_id})]}),(0,t.jsxs)(eS.TabGroup,{children:[(0,t.jsxs)(eC.TabList,{className:"mb-4",children:[(0,t.jsx)(eN.Tab,{children:"Overview"},"overview"),l?(0,t.jsx)(eN.Tab,{children:"Settings"},"settings"):(0,t.jsx)(t.Fragment,{})]}),(0,t.jsxs)(eI.TabPanels,{children:[(0,t.jsxs)(eT.TabPanel,{children:[(0,t.jsxs)(eL.Descriptions,{bordered:!0,column:1,children:[(0,t.jsx)(eL.Descriptions.Item,{label:"Agent ID",children:r.agent_id}),(0,t.jsx)(eL.Descriptions.Item,{label:"Agent Name",children:r.agent_name}),(0,t.jsx)(eL.Descriptions.Item,{label:"Display Name",children:r.agent_card_params?.name||"-"}),(0,t.jsx)(eL.Descriptions.Item,{label:"Description",children:r.agent_card_params?.description||"-"}),(0,t.jsx)(eL.Descriptions.Item,{label:"URL",children:r.agent_card_params?.url||"-"}),(0,t.jsx)(eL.Descriptions.Item,{label:"Version",children:r.agent_card_params?.version||"-"}),(0,t.jsx)(eL.Descriptions.Item,{label:"Protocol Version",children:r.agent_card_params?.protocolVersion||"-"}),(0,t.jsx)(eL.Descriptions.Item,{label:"Streaming",children:r.agent_card_params?.capabilities?.streaming?"Yes":"No"}),r.agent_card_params?.capabilities?.pushNotifications&&(0,t.jsx)(eL.Descriptions.Item,{label:"Push Notifications",children:"Yes"}),r.agent_card_params?.capabilities?.stateTransitionHistory&&(0,t.jsx)(eL.Descriptions.Item,{label:"State Transition History",children:"Yes"}),(0,t.jsxs)(eL.Descriptions.Item,{label:"Skills",children:[r.agent_card_params?.skills?.length||0," configured"]}),r.litellm_params?.model&&(0,t.jsx)(eL.Descriptions.Item,{label:"Model",children:r.litellm_params.model}),r.litellm_params?.make_public!==void 0&&(0,t.jsx)(eL.Descriptions.Item,{label:"Make Public",children:r.litellm_params.make_public?"Yes":"No"}),r.agent_card_params?.iconUrl&&(0,t.jsx)(eL.Descriptions.Item,{label:"Icon URL",children:r.agent_card_params.iconUrl}),r.agent_card_params?.documentationUrl&&(0,t.jsx)(eL.Descriptions.Item,{label:"Documentation URL",children:r.agent_card_params.documentationUrl}),(0,t.jsx)(eL.Descriptions.Item,{label:"TPM Limit",children:r.tpm_limit??"Unlimited"}),(0,t.jsx)(eL.Descriptions.Item,{label:"RPM Limit",children:r.rpm_limit??"Unlimited"}),(0,t.jsx)(eL.Descriptions.Item,{label:"Session TPM Limit",children:r.session_tpm_limit??"Unlimited"}),(0,t.jsx)(eL.Descriptions.Item,{label:"Session RPM Limit",children:r.session_rpm_limit??"Unlimited"}),(0,t.jsx)(eL.Descriptions.Item,{label:"Created At",children:T(r.created_at)}),(0,t.jsx)(eL.Descriptions.Item,{label:"Updated At",children:T(r.updated_at)})]}),r.object_permission&&(r.object_permission.mcp_servers?.length||r.object_permission.mcp_access_groups?.length||r.object_permission.mcp_tool_permissions&&Object.keys(r.object_permission.mcp_tool_permissions).length>0)&&(0,t.jsxs)("div",{style:{marginTop:24},children:[(0,t.jsx)(ek.Title,{children:"MCP Tool Permissions"}),(0,t.jsxs)(eL.Descriptions,{bordered:!0,column:1,style:{marginTop:16},children:[r.object_permission.mcp_servers&&r.object_permission.mcp_servers.length>0&&(0,t.jsx)(eL.Descriptions.Item,{label:"MCP Servers",children:r.object_permission.mcp_servers.join(", ")}),r.object_permission.mcp_access_groups&&r.object_permission.mcp_access_groups.length>0&&(0,t.jsx)(eL.Descriptions.Item,{label:"MCP Access Groups",children:r.object_permission.mcp_access_groups.join(", ")}),r.object_permission.mcp_tool_permissions&&Object.keys(r.object_permission.mcp_tool_permissions).length>0&&(0,t.jsx)(eL.Descriptions.Item,{label:"Tool permissions per server",children:(0,t.jsx)("div",{className:"space-y-1",children:Object.entries(r.object_permission.mcp_tool_permissions).map(([e,s])=>(0,t.jsxs)("div",{children:[(0,t.jsxs)("span",{className:"font-medium",children:[e,":"]})," ",Array.isArray(s)?s.join(", "):String(s)]},e))})})]})]}),(0,t.jsx)(eM,{agent:r}),r.agent_card_params?.skills&&r.agent_card_params.skills.length>0&&(0,t.jsxs)("div",{style:{marginTop:24},children:[(0,t.jsx)(ek.Title,{children:"Skills"}),(0,t.jsx)(eL.Descriptions,{bordered:!0,column:1,style:{marginTop:16},children:r.agent_card_params.skills.map((e,s)=>(0,t.jsx)(eL.Descriptions.Item,{label:e.name||`Skill ${s+1}`,children:(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("strong",{children:"ID:"})," ",e.id]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("strong",{children:"Description:"})," ",e.description]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("strong",{children:"Tags:"})," ",Array.isArray(e.tags)?e.tags.join(", "):e.tags]}),e.examples&&e.examples.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)("strong",{children:"Examples:"})," ",Array.isArray(e.examples)?e.examples.join(", "):e.examples]})]})},s))})]})]}),l&&(0,t.jsx)(eT.TabPanel,{children:(0,t.jsxs)(o.Card,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(ek.Title,{children:"Agent Settings"}),!u&&(0,t.jsx)(n.Button,{onClick:()=>p(!0),children:"Edit Settings"})]}),u?(0,t.jsxs)(k.Form,{form:y,layout:"vertical",onFinish:C,children:[(0,t.jsx)(k.Form.Item,{label:"Agent ID",children:(0,t.jsx)(S.Input,{value:r.agent_id,disabled:!0})}),"a2a"===b?(0,t.jsx)(ep,{showAgentName:!0}):N?(0,t.jsx)(eg,{agentTypeInfo:N}):(0,t.jsx)(ep,{showAgentName:!0}),(0,t.jsx)(F.Divider,{}),(0,t.jsx)(ek.Title,{className:"mb-4",children:"Rate Limits"}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsx)(k.Form.Item,{label:"TPM Limit",name:"tpm_limit",children:(0,t.jsx)(L.InputNumber,{className:"w-full",min:0,placeholder:"Unlimited"})}),(0,t.jsx)(k.Form.Item,{label:"RPM Limit",name:"rpm_limit",children:(0,t.jsx)(L.InputNumber,{className:"w-full",min:0,placeholder:"Unlimited"})})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,t.jsx)(k.Form.Item,{label:"Session TPM Limit",name:"session_tpm_limit",children:(0,t.jsx)(L.InputNumber,{className:"w-full",min:0,placeholder:"Unlimited"})}),(0,t.jsx)(k.Form.Item,{label:"Session RPM Limit",name:"session_rpm_limit",children:(0,t.jsx)(L.InputNumber,{className:"w-full",min:0,placeholder:"Unlimited"})})]}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 mt-6",children:[(0,t.jsx)(V.Button,{onClick:()=>{p(!1),v()},children:"Cancel"}),(0,t.jsx)(n.Button,{loading:x,children:"Save Changes"})]})]}):(0,t.jsx)(g.Text,{children:'Click "Edit Settings" to modify agent configuration.'})]})})]})]})]})};var eE=e.i(727749),eO=e.i(500330),eR=e.i(902555);let eB=({accessToken:e,userRole:s,teams:a})=>{let[l,r]=(0,i.useState)([]),[k,N]=(0,i.useState)({}),[S,C]=(0,i.useState)(!1),[T,I]=(0,i.useState)(!1),[F,L]=(0,i.useState)(!1),[A,M]=(0,i.useState)(null),[P,D]=(0,i.useState)(null),[z,E]=(0,i.useState)(!1),O=!!s&&(0,ew.isAdminRole)(s),R=async t=>{if(e){I(!0);try{let s=await (0,w.getAgentsList)(e,t??z);r(s.agents||[])}catch(e){console.error("Error fetching agents:",e)}finally{I(!1)}}},B=async()=>{if(e)try{let{keys:t=[]}=await (0,w.keyListCall)(e,null,null,null,null,null,1,500),s={};for(let e of t){let t=e.agent_id;t&&!s[t]&&(s[t]={has_key:!0,key_alias:e.key_alias,token_prefix:e.token?`${e.token.slice(0,8)}…`:void 0})}N(s)}catch(e){console.error("Error fetching keys for agents:",e)}};(0,i.useEffect)(()=>{R()},[e]),(0,i.useEffect)(()=>{e&&l.length>0?B():0===l.length&&N({})},[e,l.length]);let $=async()=>{if(A&&e){L(!0);try{await (0,w.deleteAgentCall)(e,A.id),eE.default.success(`Agent "${A.name}" deleted successfully`),R()}catch(e){console.error("Error deleting agent:",e),eE.default.fromBackend("Failed to delete agent")}finally{L(!1),M(null)}}},q=[...l].sort((e,t)=>{let s=e.created_at?new Date(e.created_at).getTime():0;return(t.created_at?new Date(t.created_at).getTime():0)-s}),U=O?7:6;return(0,t.jsxs)("div",{className:"w-full mx-auto flex-auto overflow-y-auto m-8 p-2",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2 mb-4",children:[(0,t.jsx)("h1",{className:"text-2xl font-bold",children:"Agents"}),(0,t.jsx)("p",{className:"text-sm text-gray-600",children:"List of A2A-spec agents that are available to be used in your organization. Go to AI Hub, to make agents public."}),(0,t.jsx)(j.Alert,{message:"Why do agents need keys?",description:"Keys scope access to an agent and allow it to call MCP tools. Assign a key when creating an agent or from the Virtual Keys page.",type:"info",showIcon:!0,className:"mb-3"}),(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-4",children:[O&&(0,t.jsx)(n.Button,{onClick:()=>{P&&D(null),C(!0)},disabled:!e,children:"+ Add New Agent"}),(0,t.jsx)(f.Tooltip,{title:"When enabled, only agents with reachable URLs are shown",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(v.CheckCircleOutlined,{className:z?"text-green-500":"text-gray-400"}),(0,t.jsx)("span",{className:"text-sm text-gray-600",children:"Health Check"}),(0,t.jsx)(_.Switch,{size:"small",checked:z,onChange:e=>{E(e),R(e)},loading:T&&z})]})})]})]}),P?(0,t.jsx)(ez,{agentId:P,onClose:()=>D(null),accessToken:e,isAdmin:O}):(0,t.jsx)(o.Card,{children:T?(0,t.jsx)(b.Skeleton,{active:!0,paragraph:{rows:3}}):(0,t.jsxs)(d.Table,{children:[(0,t.jsx)(u.TableHead,{children:(0,t.jsxs)(x.TableRow,{children:[(0,t.jsx)(p.TableHeaderCell,{children:"Agent Name"}),(0,t.jsx)(p.TableHeaderCell,{children:"Agent ID"}),(0,t.jsx)(p.TableHeaderCell,{children:"Spend (USD)"}),(0,t.jsx)(p.TableHeaderCell,{children:"Model"}),(0,t.jsx)(p.TableHeaderCell,{children:"Created"}),(0,t.jsx)(p.TableHeaderCell,{children:"Status"}),O&&(0,t.jsx)(p.TableHeaderCell,{children:"Actions"})]})}),(0,t.jsx)(c.TableBody,{children:0===q.length?(0,t.jsx)(x.TableRow,{children:(0,t.jsx)(m.TableCell,{colSpan:U,children:(0,t.jsx)(g.Text,{className:"text-center",children:'No agents found. Click "+ Add New Agent" to create one.'})})}):q.map(e=>(0,t.jsxs)(x.TableRow,{children:[(0,t.jsx)(m.TableCell,{children:(0,t.jsx)(g.Text,{children:e.agent_name})}),(0,t.jsx)(m.TableCell,{children:(0,t.jsx)(f.Tooltip,{title:e.agent_id,children:(0,t.jsxs)(n.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left overflow-hidden truncate max-w-[200px]",onClick:()=>D(e.agent_id),children:[e.agent_id.slice(0,7),"..."]})})}),(0,t.jsx)(m.TableCell,{children:(0,t.jsx)(g.Text,{children:(0,eO.formatNumberWithCommas)(e.spend,4)})}),(0,t.jsx)(m.TableCell,{children:(0,t.jsx)(h.Badge,{size:"xs",color:"blue",children:e.litellm_params?.model||"N/A"})}),(0,t.jsx)(m.TableCell,{children:(0,t.jsx)(g.Text,{children:e.created_at?new Date(e.created_at).toLocaleDateString():"N/A"})}),(0,t.jsx)(m.TableCell,{children:k[e.agent_id]?.has_key?(0,t.jsx)(h.Badge,{color:"green",children:"Active"}):(0,t.jsx)(h.Badge,{color:"yellow",children:"Needs Setup"})}),O&&(0,t.jsx)(m.TableCell,{children:(0,t.jsx)(eR.default,{variant:"Delete",onClick:()=>{M({id:e.agent_id,name:e.agent_name})}})})]},e.agent_id))})]})}),(0,t.jsx)(ev,{visible:S,onClose:()=>{C(!1)},accessToken:e,onSuccess:()=>{R()},teams:a}),A&&(0,t.jsxs)(y.Modal,{title:"Delete Agent",open:null!==A,onOk:$,onCancel:()=>{M(null)},confirmLoading:F,okText:"Delete",okButtonProps:{danger:!0},children:[(0,t.jsxs)("p",{children:["Are you sure you want to delete agent: ",A.name,"?"]}),(0,t.jsx)("p",{children:"This action cannot be undone."})]})]})};var e$=e.i(646050),eq=e.i(559061),eU=e.i(704308),eV=e.i(785242),eH=e.i(936578),eG=e.i(677667),eK=e.i(898667),eW=e.i(130643),eQ=e.i(779241),eY=e.i(752978),eJ=e.i(68155),eX=e.i(591935);let eZ=i.forwardRef(function(e,t){return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),i.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"}))});var e0=e.i(836991);function e1({data:e,columns:s,isLoading:a=!1,loadingMessage:l="Loading...",emptyMessage:r="No data",getRowKey:i}){return(0,t.jsxs)(d.Table,{children:[(0,t.jsx)(u.TableHead,{children:(0,t.jsx)(x.TableRow,{children:s.map((e,s)=>(0,t.jsx)(p.TableHeaderCell,{style:{width:e.width},children:e.header},s))})}),(0,t.jsx)(c.TableBody,{children:a?(0,t.jsx)(x.TableRow,{children:(0,t.jsx)(m.TableCell,{colSpan:s.length,className:"text-center",children:(0,t.jsx)(g.Text,{className:"text-gray-500",children:l})})}):e.length>0?e.map((e,a)=>(0,t.jsx)(x.TableRow,{children:s.map((s,a)=>(0,t.jsx)(m.TableCell,{children:s.cell?s.cell(e):String(e[s.accessor]??"")},a))},i?i(e,a):a)):(0,t.jsx)(x.TableRow,{children:(0,t.jsx)(m.TableCell,{colSpan:s.length,className:"text-center",children:(0,t.jsx)(g.Text,{className:"text-gray-500",children:r})})})})]})}var e2=e.i(916925);let e4=e=>{let t=Object.keys(e2.provider_map).find(t=>e2.provider_map[t]===e);if(t){let e=e2.Providers[t],s=e2.providerLogoMap[e];return{displayName:e,logo:s,enumKey:t}}return{displayName:e,logo:"",enumKey:null}},e5=e=>e2.provider_map[e]||null,e6=(e,t)=>{let s=e.target,a=s.parentElement;if(a){let e=document.createElement("div");e.className="w-5 h-5 rounded-full bg-gray-200 flex items-center justify-center text-xs",e.textContent=t.charAt(0),a.replaceChild(e,s)}},e3=({discountConfig:e,onDiscountChange:s,onRemoveProvider:a})=>{let[l,r]=(0,i.useState)(null),[n,o]=(0,i.useState)(""),d=e=>{let t=parseFloat(n);!isNaN(t)&&t>=0&&t<=100&&s(e,(t/100).toString()),r(null),o("")},c=()=>{r(null),o("")},m=Object.entries(e).map(([e,t])=>({provider:e,discount:t})).sort((e,t)=>{let s=e4(e.provider).displayName,a=e4(t.provider).displayName;return s.localeCompare(a)});return(0,t.jsx)(e1,{data:m,columns:[{header:"Provider",cell:e=>{let{displayName:s,logo:a}=e4(e.provider);return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[a&&(0,t.jsx)("img",{src:a,alt:`${s} logo`,className:"w-5 h-5",onError:e=>e6(e,s)}),(0,t.jsx)("span",{className:"font-medium",children:s})]})}},{header:"Discount Percentage",cell:e=>(0,t.jsx)("div",{className:"flex items-center gap-2",children:l===e.provider?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eQ.TextInput,{value:n,onValueChange:o,onKeyDown:t=>{var s;return s=e.provider,void("Enter"===t.key?d(s):"Escape"===t.key&&c())},placeholder:"5",className:"w-20",autoFocus:!0}),(0,t.jsx)("span",{className:"text-gray-600",children:"%"}),(0,t.jsx)(eY.Icon,{icon:eZ,size:"sm",onClick:()=>d(e.provider),className:"cursor-pointer text-green-600 hover:text-green-700"}),(0,t.jsx)(eY.Icon,{icon:e0.XIcon,size:"sm",onClick:c,className:"cursor-pointer text-gray-600 hover:text-gray-700"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(g.Text,{className:"font-medium",children:[(100*e.discount).toFixed(1),"%"]}),(0,t.jsx)(eY.Icon,{icon:eX.PencilAltIcon,size:"sm",onClick:()=>{var t,s;return t=e.provider,s=e.discount,void(r(t),o((100*s).toString()))},className:"cursor-pointer text-blue-600 hover:text-blue-700"})]})}),width:"250px"},{header:"Actions",cell:e=>{let{displayName:s}=e4(e.provider);return(0,t.jsx)(eY.Icon,{icon:eJ.TrashIcon,size:"sm",onClick:()=>a(e.provider,s),className:"cursor-pointer hover:text-red-600"})},width:"80px"}],getRowKey:e=>e.provider,emptyMessage:"No provider discounts configured"})},e8=({discountConfig:e,selectedProvider:s,newDiscount:a,onProviderChange:l,onDiscountChange:r,onAddProvider:i})=>(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Provider",(0,t.jsx)(f.Tooltip,{title:"Select the LLM provider you want to configure a discount for",children:(0,t.jsx)(E.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),rules:[{required:!0,message:"Please select a provider"}],children:(0,t.jsx)(N.Select,{showSearch:!0,placeholder:"Select provider",value:s,onChange:l,style:{width:"100%"},size:"large",optionFilterProp:"children",filterOption:(e,t)=>String(t?.label??"").toLowerCase().includes(e.toLowerCase()),children:Object.entries(e2.Providers).map(([s,a])=>{let l=e2.provider_map[s];return l&&e[l]?null:(0,t.jsx)(N.Select.Option,{value:s,label:a,children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("img",{src:e2.providerLogoMap[a],alt:`${s} logo`,className:"w-5 h-5",onError:e=>e6(e,a)}),(0,t.jsx)("span",{children:a})]})},s)})})}),(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Discount Percentage",(0,t.jsx)(f.Tooltip,{title:"Enter a percentage value (e.g., 5 for 5% discount)",children:(0,t.jsx)(E.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),rules:[{required:!0,message:"Please enter a discount percentage"}],children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(eQ.TextInput,{placeholder:"5",value:a,onValueChange:r,className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500 flex-1"}),(0,t.jsx)("span",{className:"text-gray-600",children:"%"})]})}),(0,t.jsx)("div",{className:"flex items-center justify-end space-x-3 pt-6 border-t border-gray-100",children:(0,t.jsx)(n.Button,{variant:"primary",onClick:i,disabled:!s||!a,children:"Add Provider Discount"})})]}),e7=({marginConfig:e,onMarginChange:s,onRemoveProvider:a})=>{let[l,r]=(0,i.useState)(null),[n,o]=(0,i.useState)(""),[d,c]=(0,i.useState)(""),m=()=>{r(null),o(""),c("")},u=Object.entries(e).map(([e,t])=>({provider:e,margin:t})).sort((e,t)=>{if("global"===e.provider)return -1;if("global"===t.provider)return 1;let s=e4(e.provider).displayName,a=e4(t.provider).displayName;return s.localeCompare(a)});return(0,t.jsx)(e1,{data:u,columns:[{header:"Provider",cell:e=>{if("global"===e.provider)return(0,t.jsx)("div",{className:"flex items-center space-x-2",children:(0,t.jsx)("span",{className:"font-medium",children:"Global (All Providers)"})});let{displayName:s,logo:a}=e4(e.provider);return(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[a&&(0,t.jsx)("img",{src:a,alt:`${s} logo`,className:"w-5 h-5",onError:e=>e6(e,s)}),(0,t.jsx)("span",{className:"font-medium",children:s})]})}},{header:"Margin",cell:e=>(0,t.jsx)("div",{className:"flex items-center gap-2",children:l===e.provider?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(eQ.TextInput,{value:n,onValueChange:o,placeholder:"10",className:"w-20",autoFocus:!0}),(0,t.jsx)("span",{className:"text-gray-600",children:"%"}),(0,t.jsx)("span",{className:"text-gray-400",children:"+"}),(0,t.jsx)("span",{className:"text-gray-600",children:"$"}),(0,t.jsx)(eQ.TextInput,{value:d,onValueChange:c,placeholder:"0.001",className:"w-24"})]}),(0,t.jsx)(eY.Icon,{icon:eZ,size:"sm",onClick:()=>{var t;let a,l;return t=e.provider,a=n?parseFloat(n):void 0,l=d?parseFloat(d):void 0,void(void 0!==a&&!isNaN(a)&&a>=0&&a<=1e3?void 0!==l&&!isNaN(l)&&l>=0?s(t,{percentage:a/100,fixed_amount:l}):s(t,a/100):void 0!==l&&!isNaN(l)&&l>=0&&s(t,{fixed_amount:l}),r(null),o(""),c(""))},className:"cursor-pointer text-green-600 hover:text-green-700"}),(0,t.jsx)(eY.Icon,{icon:e0.XIcon,size:"sm",onClick:m,className:"cursor-pointer text-gray-600 hover:text-gray-700"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(g.Text,{className:"font-medium",children:(e=>{if("number"==typeof e)return`${(100*e).toFixed(1)}%`;let t=[];return void 0!==e.percentage&&t.push(`${(100*e.percentage).toFixed(1)}%`),void 0!==e.fixed_amount&&t.push(`$${e.fixed_amount.toFixed(6)}`),t.join(" + ")||"0%"})(e.margin)}),(0,t.jsx)(eY.Icon,{icon:eX.PencilAltIcon,size:"sm",onClick:()=>{var t,s;return t=e.provider,s=e.margin,void(r(t),"number"==typeof s?(o((100*s).toString()),c("")):(o(s.percentage?(100*s.percentage).toString():""),c(s.fixed_amount?s.fixed_amount.toString():"")))},className:"cursor-pointer text-blue-600 hover:text-blue-700"})]})}),width:"350px"},{header:"Actions",cell:e=>{let s="global"===e.provider?"Global":e4(e.provider).displayName;return(0,t.jsx)(eY.Icon,{icon:eJ.TrashIcon,size:"sm",onClick:()=>a(e.provider,s),className:"cursor-pointer hover:text-red-600"})},width:"80px"}],getRowKey:e=>e.provider,emptyMessage:"No provider margins configured"})},e9=({marginConfig:e,selectedProvider:s,marginType:a,percentageValue:l,fixedAmountValue:r,onProviderChange:i,onMarginTypeChange:o,onPercentageChange:d,onFixedAmountChange:c,onAddProvider:m})=>(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Provider",(0,t.jsx)(f.Tooltip,{title:"Select 'Global' to apply margin to all providers, or select a specific provider",children:(0,t.jsx)(E.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),rules:[{required:!0,message:"Please select a provider"}],children:(0,t.jsxs)(N.Select,{showSearch:!0,placeholder:"Select provider or 'Global'",value:s,onChange:i,style:{width:"100%"},size:"large",optionFilterProp:"children",filterOption:(e,t)=>String(t?.label??"").toLowerCase().includes(e.toLowerCase()),children:[(0,t.jsx)(N.Select.Option,{value:"global",label:"Global (All Providers)",children:(0,t.jsx)("div",{className:"flex items-center space-x-2",children:(0,t.jsx)("span",{className:"font-medium",children:"Global (All Providers)"})})},"global"),Object.entries(e2.Providers).map(([s,a])=>{let l=e2.provider_map[s];return l&&e[l]?null:(0,t.jsx)(N.Select.Option,{value:s,label:a,children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("img",{src:e2.providerLogoMap[a],alt:`${s} logo`,className:"w-5 h-5",onError:e=>e6(e,a)}),(0,t.jsx)("span",{children:a})]})},s)})]})}),(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Margin Type",(0,t.jsx)(f.Tooltip,{title:"Choose how to apply the margin: percentage-based or fixed amount",children:(0,t.jsx)(E.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),rules:[{required:!0,message:"Please select a margin type"}],children:(0,t.jsxs)(T.Radio.Group,{value:a,onChange:e=>o(e.target.value),className:"w-full",children:[(0,t.jsx)(T.Radio,{value:"percentage",children:"Percentage-based"}),(0,t.jsx)(T.Radio,{value:"fixed",children:"Fixed Amount"})]})}),"percentage"===a&&(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Margin Percentage",(0,t.jsx)(f.Tooltip,{title:"Enter a percentage value (e.g., 10 for 10% margin)",children:(0,t.jsx)(E.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),rules:[{required:!0,message:"Please enter a margin percentage"},{validator:(e,t)=>{if(!t)return Promise.reject(Error("Please enter a margin percentage"));let s=parseFloat(t);return isNaN(s)||s<0||s>1e3?Promise.reject(Error("Percentage must be between 0 and 1000")):Promise.resolve()}}],children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(eQ.TextInput,{placeholder:"10",value:l,onValueChange:d,className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500 flex-1"}),(0,t.jsx)("span",{className:"text-gray-600",children:"%"})]})}),"fixed"===a&&(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Fixed Margin Amount",(0,t.jsx)(f.Tooltip,{title:"Enter a fixed amount in USD (e.g., 0.001 for $0.001 per request)",children:(0,t.jsx)(E.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),rules:[{required:!0,message:"Please enter a fixed amount"},{validator:(e,t)=>{if(!t)return Promise.reject(Error("Please enter a fixed amount"));let s=parseFloat(t);return isNaN(s)||s<0?Promise.reject(Error("Fixed amount must be non-negative")):Promise.resolve()}}],children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-gray-600",children:"$"}),(0,t.jsx)(eQ.TextInput,{placeholder:"0.001",value:r,onValueChange:c,className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500 flex-1"})]})}),(0,t.jsx)("div",{className:"flex items-center justify-end space-x-3 pt-6 border-t border-gray-100",children:(0,t.jsx)(n.Button,{variant:"primary",onClick:m,disabled:!s||"percentage"===a&&!l||"fixed"===a&&!r,children:"Add Provider Margin"})})]});var te=e.i(291542),tt=e.i(955135),ts=e.i(175712);e.i(247167),e.i(62664);var ta=e.i(697539),tl=e.i(963188),tr=e.i(763731),ti=e.i(343794),tn=e.i(244009),to=e.i(242064),td=e.i(185793);let tc=e=>{let t,{value:s,formatter:a,precision:l,decimalSeparator:r,groupSeparator:n="",prefixCls:o}=e;if("function"==typeof a)t=a(s);else{let e=String(s),a=e.match(/^(-?)(\d*)(\.(\d+))?$/);if(a&&"-"!==e){let e=a[1],s=a[2]||"0",d=a[4]||"";s=s.replace(/\B(?=(\d{3})+(?!\d))/g,n),"number"==typeof l&&(d=d.padEnd(l,"0").slice(0,l>0?l:0)),d&&(d=`${r}${d}`),t=[i.createElement("span",{key:"int",className:`${o}-content-value-int`},e,s),d&&i.createElement("span",{key:"decimal",className:`${o}-content-value-decimal`},d)]}else t=e}return i.createElement("span",{className:`${o}-content-value`},t)};var tm=e.i(183293),tu=e.i(246422),tp=e.i(838378);let tx=(0,tu.genStyleHooks)("Statistic",e=>(e=>{let{componentCls:t,marginXXS:s,padding:a,colorTextDescription:l,titleFontSize:r,colorTextHeading:i,contentFontSize:n,fontFamily:o}=e;return{[t]:Object.assign(Object.assign({},(0,tm.resetComponent)(e)),{[`${t}-title`]:{marginBottom:s,color:l,fontSize:r},[`${t}-skeleton`]:{paddingTop:a},[`${t}-content`]:{color:i,fontSize:n,fontFamily:o,[`${t}-content-value`]:{display:"inline-block",direction:"ltr"},[`${t}-content-prefix, ${t}-content-suffix`]:{display:"inline-block"},[`${t}-content-prefix`]:{marginInlineEnd:s},[`${t}-content-suffix`]:{marginInlineStart:s}}})}})((0,tp.mergeToken)(e,{})),e=>{let{fontSizeHeading3:t,fontSize:s}=e;return{titleFontSize:s,contentFontSize:t}});var th=function(e,t){var s={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(s[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,a=Object.getOwnPropertySymbols(e);lt.indexOf(a[l])&&Object.prototype.propertyIsEnumerable.call(e,a[l])&&(s[a[l]]=e[a[l]]);return s};let tg=i.forwardRef((e,t)=>{let{prefixCls:s,className:a,rootClassName:l,style:r,valueStyle:n,value:o=0,title:d,valueRender:c,prefix:m,suffix:u,loading:p=!1,formatter:x,precision:h,decimalSeparator:g=".",groupSeparator:y=",",onMouseEnter:j,onMouseLeave:f}=e,b=th(e,["prefixCls","className","rootClassName","style","valueStyle","value","title","valueRender","prefix","suffix","loading","formatter","precision","decimalSeparator","groupSeparator","onMouseEnter","onMouseLeave"]),{getPrefixCls:_,direction:v,className:w,style:k}=(0,to.useComponentConfig)("statistic"),N=_("statistic",s),[S,C,T]=tx(N),I=i.createElement(tc,{decimalSeparator:g,groupSeparator:y,prefixCls:N,formatter:x,precision:h,value:o}),F=(0,ti.default)(N,{[`${N}-rtl`]:"rtl"===v},w,a,l,C,T),L=i.useRef(null);i.useImperativeHandle(t,()=>({nativeElement:L.current}));let A=(0,tn.default)(b,{aria:!0,data:!0});return S(i.createElement("div",Object.assign({},A,{ref:L,className:F,style:Object.assign(Object.assign({},k),r),onMouseEnter:j,onMouseLeave:f}),d&&i.createElement("div",{className:`${N}-title`},d),i.createElement(td.default,{paragraph:!1,loading:p,className:`${N}-skeleton`,active:!0},i.createElement("div",{style:n,className:`${N}-content`},m&&i.createElement("span",{className:`${N}-content-prefix`},m),c?c(I):I,u&&i.createElement("span",{className:`${N}-content-suffix`},u)))))}),ty=[["Y",31536e6],["M",2592e6],["D",864e5],["H",36e5],["m",6e4],["s",1e3],["S",1]];var tj=function(e,t){var s={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(s[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var l=0,a=Object.getOwnPropertySymbols(e);lt.indexOf(a[l])&&Object.prototype.propertyIsEnumerable.call(e,a[l])&&(s[a[l]]=e[a[l]]);return s};let tf=e=>{let{value:t,format:s="HH:mm:ss",onChange:a,onFinish:l,type:r}=e,n=tj(e,["value","format","onChange","onFinish","type"]),o="countdown"===r,[d,c]=i.useState(null),m=(0,ta.useEvent)(()=>{let e=Date.now(),s=new Date(t).getTime();return c({}),null==a||a(o?s-e:e-s),!o||!(s{let e,t=()=>{e=(0,tl.default)(()=>{m()&&t()})};return t(),()=>tl.default.cancel(e)},[t,o]),i.useEffect(()=>{c({})},[]),i.createElement(tg,Object.assign({},n,{value:t,valueRender:e=>(0,tr.cloneElement)(e,{title:void 0}),formatter:(e,t)=>d?function(e,t,s){let a,l,r,i,n,o,{format:d=""}=t,c=new Date(e).getTime(),m=Date.now();return a=s?Math.max(c-m,0):Math.max(m-c,0),l=/\[[^\]]*]/g,r=(d.match(l)||[]).map(e=>e.slice(1,-1)),i=d.replace(l,"[]"),n=ty.reduce((e,[t,s])=>{if(e.includes(t)){let l=Math.floor(a/s);return a-=l*s,e.replace(RegExp(`${t}+`,"g"),e=>{let t=e.length;return l.toString().padStart(t,"0")})}return e},i),o=0,n.replace(l,()=>{let e=r[o];return o+=1,e})}(e,Object.assign(Object.assign({},t),{format:s}),o):"-"}))},tb=i.memo(e=>i.createElement(tf,Object.assign({},e,{type:"countdown"})));tg.Timer=tf,tg.Countdown=tb;var t_=e.i(621192),tv=e.i(178654),tw=e.i(56456),tk=e.i(755151),tN=e.i(240647),tS=e.i(737434),tC=e.i(91500),tT=e.i(931067);let tI={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM514.1 580.1l-61.8-102.4c-2.2-3.6-6.1-5.8-10.3-5.8h-38.4c-2.3 0-4.5.6-6.4 1.9-5.6 3.5-7.3 10.9-3.7 16.6l82.3 130.4-83.4 132.8a12.04 12.04 0 0010.2 18.4h34.5c4.2 0 8-2.2 10.2-5.7L510 664.8l62.3 101.4c2.2 3.6 6.1 5.7 10.2 5.7H620c2.3 0 4.5-.7 6.5-1.9 5.6-3.6 7.2-11 3.6-16.6l-84-130.4 85.3-132.5a12.04 12.04 0 00-10.1-18.5h-35.7c-4.2 0-8.1 2.2-10.3 5.8l-61.2 102.3z"}}]},name:"file-excel",theme:"outlined"};var tF=e.i(9583),tL=i.forwardRef(function(e,t){return i.createElement(tF.default,(0,tT.default)({},e,{ref:t,icon:tI}))});let tA=e=>null==e?"-":0===e?"$0.00":e<.01?`$${e.toFixed(6)}`:e<1?`$${e.toFixed(4)}`:`$${(0,eO.formatNumberWithCommas)(e,2)}`,tM=e=>null==e?"-":(0,eO.formatNumberWithCommas)(e,0),tP=({multiResult:e})=>{let[s,a]=(0,i.useState)(!1),l=(0,i.useRef)(null),r=e.entries.some(e=>null!==e.result);return((0,i.useEffect)(()=>{let e=e=>{l.current&&!l.current.contains(e.target)&&a(!1)};return s&&document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[s]),r)?(0,t.jsxs)("div",{className:"relative inline-block",ref:l,children:[(0,t.jsx)(n.Button,{size:"xs",variant:"secondary",icon:tS.DownloadOutlined,onClick:()=>a(!s),children:"Export"}),s&&(0,t.jsxs)("div",{className:"absolute right-0 mt-1 w-44 bg-white rounded-lg shadow-lg border border-gray-200 py-1 z-50",children:[(0,t.jsxs)("button",{className:"flex items-center w-full px-4 py-2 text-sm text-gray-700 hover:bg-gray-50 transition-colors",onClick:()=>{(e=>{let t=window.open("","_blank");if(!t)return alert("Please allow popups to export PDF");let s=e.entries.filter(e=>null!==e.result),a=s.length,l=` - - - - Multi-Model Cost Estimate Report - - - -

LLM Cost Estimate Report

-

${a} model${1!==a?"s":""} configured

- -
-

Combined Totals

-
-
-
Total Per Request
-
${tA(e.totals.cost_per_request)}
-
-
-
Total Daily
-
${tA(e.totals.daily_cost)}
-
-
-
Total Monthly
-
${tA(e.totals.monthly_cost)}
-
-
- ${e.totals.margin_per_request>0?` -
-
-
Margin/Request
-
${tA(e.totals.margin_per_request)}
-
-
-
Daily Margin
-
${tA(e.totals.daily_margin)}
-
-
-
Monthly Margin
-
${tA(e.totals.monthly_margin)}
-
-
- `:""} -
- -

Model Breakdown

- ${s.map(e=>{let t;return t=e.result,` -
-

${t.model} ${t.provider?`(${t.provider})`:""}

- -
-

Input Tokens per Request: ${tM(t.input_tokens)}

-

Output Tokens per Request: ${tM(t.output_tokens)}

- ${t.num_requests_per_day?`

Requests per Day: ${tM(t.num_requests_per_day)}

`:""} - ${t.num_requests_per_month?`

Requests per Month: ${tM(t.num_requests_per_month)}

`:""} -
- - - - - - ${null!==t.daily_cost?"":""} - ${null!==t.monthly_cost?"":""} - - - - - ${null!==t.daily_cost?``:""} - ${null!==t.monthly_cost?``:""} - - - - - ${null!==t.daily_cost?``:""} - ${null!==t.monthly_cost?``:""} - - - - - ${null!==t.daily_cost?``:""} - ${null!==t.monthly_cost?``:""} - - - - - ${null!==t.daily_cost?``:""} - ${null!==t.monthly_cost?``:""} - -
Cost TypePer RequestDailyMonthly
Input Cost${tA(t.input_cost_per_request)}${tA(t.daily_input_cost)}${tA(t.monthly_input_cost)}
Output Cost${tA(t.output_cost_per_request)}${tA(t.daily_output_cost)}${tA(t.monthly_output_cost)}
Margin/Fee${tA(t.margin_cost_per_request)}${tA(t.daily_margin_cost)}${tA(t.monthly_margin_cost)}
Total${tA(t.cost_per_request)}${tA(t.daily_cost)}${tA(t.monthly_cost)}
-
- `}).join("")} - - - - - `;t.document.write(l),t.document.close(),t.onload=()=>{t.print()}})(e),a(!1)},children:[(0,t.jsx)(tC.FilePdfOutlined,{className:"mr-3 text-red-500"}),"Export as PDF"]}),(0,t.jsxs)("button",{className:"flex items-center w-full px-4 py-2 text-sm text-gray-700 hover:bg-gray-50 transition-colors",onClick:()=>{(e=>{let t=e.entries.filter(e=>null!==e.result),s=[["LLM Multi-Model Cost Estimate Report"],["Generated",new Date().toLocaleString()],[""]];for(let a of(s.push(["COMBINED TOTALS"],["Total Per Request",e.totals.cost_per_request.toString()],["Total Daily",e.totals.daily_cost?.toString()||"-"],["Total Monthly",e.totals.monthly_cost?.toString()||"-"],["Margin Per Request",e.totals.margin_per_request.toString()],["Daily Margin",e.totals.daily_margin?.toString()||"-"],["Monthly Margin",e.totals.monthly_margin?.toString()||"-"],[""]),s.push(["Model","Provider","Input Tokens","Output Tokens","Requests/Day","Requests/Month","Cost/Request","Daily Cost","Monthly Cost","Input Cost/Req","Output Cost/Req","Margin/Req"]),t)){let e=a.result;s.push([e.model,e.provider||"-",e.input_tokens.toString(),e.output_tokens.toString(),e.num_requests_per_day?.toString()||"-",e.num_requests_per_month?.toString()||"-",e.cost_per_request.toString(),e.daily_cost?.toString()||"-",e.monthly_cost?.toString()||"-",e.input_cost_per_request.toString(),e.output_cost_per_request.toString(),e.margin_cost_per_request.toString()])}let a=new Blob([s.map(e=>e.map(e=>`"${e}"`).join(",")).join("\n")],{type:"text/csv;charset=utf-8;"}),l=window.URL.createObjectURL(a),r=document.createElement("a");r.href=l,r.download=`cost_estimate_multi_model_${new Date().toISOString().split("T")[0]}.csv`,document.body.appendChild(r),r.click(),document.body.removeChild(r),window.URL.revokeObjectURL(l)})(e),a(!1)},children:[(0,t.jsx)(tL,{className:"mr-3 text-green-600"}),"Export as CSV"]})]})]}):null},tD=e=>null==e?"-":0===e?"$0":e<1e-4?`$${e.toExponential(2)}`:e<1?`$${e.toFixed(4)}`:`$${(0,eO.formatNumberWithCommas)(e,2,!0)}`,tz=({result:e,loading:s,timePeriod:a})=>{let l="day"===a?"Daily":"Monthly",r="day"===a?e.daily_cost:e.monthly_cost,i="day"===a?e.daily_input_cost:e.monthly_input_cost,n="day"===a?e.daily_output_cost:e.monthly_output_cost,o="day"===a?e.daily_margin_cost:e.monthly_margin_cost,d="day"===a?e.num_requests_per_day:e.num_requests_per_month;return(0,t.jsxs)("div",{className:"space-y-3 bg-gray-50 p-4 rounded-lg",children:[s&&(0,t.jsxs)("div",{className:"flex items-center gap-2 text-gray-500 text-sm",children:[(0,t.jsx)(eF.Spin,{indicator:(0,t.jsx)(tw.LoadingOutlined,{spin:!0}),size:"small"}),(0,t.jsx)("span",{children:"Updating..."})]}),(0,t.jsxs)("div",{className:"grid grid-cols-4 gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(g.Text,{className:"text-xs text-gray-500 block",children:"Total/Request"}),(0,t.jsx)(g.Text,{className:"text-base font-semibold text-blue-600",children:tD(e.cost_per_request)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(g.Text,{className:"text-xs text-gray-500 block",children:"Input Cost"}),(0,t.jsx)(g.Text,{className:"text-sm",children:tD(e.input_cost_per_request)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(g.Text,{className:"text-xs text-gray-500 block",children:"Output Cost"}),(0,t.jsx)(g.Text,{className:"text-sm",children:tD(e.output_cost_per_request)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(g.Text,{className:"text-xs text-gray-500 block",children:"Margin Fee"}),(0,t.jsx)(g.Text,{className:`text-sm ${e.margin_cost_per_request>0?"text-amber-600":""}`,children:tD(e.margin_cost_per_request)})]})]}),null!==r&&(0,t.jsxs)("div",{className:"grid grid-cols-4 gap-4 pt-2 border-t border-gray-200",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)(g.Text,{className:"text-xs text-gray-500 block",children:[l," Total (",null==d?"-":(0,eO.formatNumberWithCommas)(d,0,!0)," req)"]}),(0,t.jsx)(g.Text,{className:`text-base font-semibold ${"day"===a?"text-green-600":"text-purple-600"}`,children:tD(r)})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(g.Text,{className:"text-xs text-gray-500 block",children:[l," Input"]}),(0,t.jsx)(g.Text,{className:"text-sm",children:tD(i)})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(g.Text,{className:"text-xs text-gray-500 block",children:[l," Output"]}),(0,t.jsx)(g.Text,{className:"text-sm",children:tD(n)})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(g.Text,{className:"text-xs text-gray-500 block",children:[l," Margin Fee"]}),(0,t.jsx)(g.Text,{className:`text-sm ${(o??0)>0?"text-amber-600":""}`,children:tD(o)})]})]}),(e.input_cost_per_token||e.output_cost_per_token)&&(0,t.jsxs)("div",{className:"text-xs text-gray-400 pt-2 border-t border-gray-200",children:["Token Pricing: "," ",e.input_cost_per_token&&(0,t.jsxs)("span",{children:["Input $",(0,eO.formatNumberWithCommas)(1e6*e.input_cost_per_token,2),"/1M"]}),e.input_cost_per_token&&e.output_cost_per_token&&" | ",e.output_cost_per_token&&(0,t.jsxs)("span",{children:["Output $",(0,eO.formatNumberWithCommas)(1e6*e.output_cost_per_token,2),"/1M"]})]})]})},tE=({multiResult:e,timePeriod:s})=>{let[a,l]=(0,i.useState)(new Set),r=e.entries.filter(e=>null!==e.result),o=e.entries.filter(e=>e.loading),d=e.entries.filter(e=>null!==e.error),c=r.length>0,m=o.length>0,u=d.length>0;if(!c&&!m&&!u)return(0,t.jsx)("div",{className:"py-6 text-center border border-dashed border-gray-300 rounded-lg bg-gray-50",children:(0,t.jsx)(g.Text,{className:"text-gray-500",children:"Select models above to see cost estimates"})});if(!c&&m&&!u)return(0,t.jsxs)("div",{className:"py-6 text-center",children:[(0,t.jsx)(eF.Spin,{indicator:(0,t.jsx)(tw.LoadingOutlined,{spin:!0})}),(0,t.jsx)(g.Text,{className:"text-gray-500 block mt-2",children:"Calculating costs..."})]});if(!c&&u)return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(F.Divider,{className:"my-4"}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)(g.Text,{className:"text-base font-semibold text-gray-900",children:"Cost Estimates"}),m&&(0,t.jsx)(eF.Spin,{indicator:(0,t.jsx)(tw.LoadingOutlined,{spin:!0}),size:"small"})]}),d.map(e=>(0,t.jsxs)("div",{className:"text-sm text-red-600 bg-red-50 p-3 rounded-lg border border-red-200",children:[(0,t.jsxs)("span",{className:"font-medium",children:[e.entry.model||"Unknown model",": "]}),e.error]},e.entry.id))]});let p=e.totals.margin_per_request>0,x="day"===s?"Daily":"Monthly",h=[{title:"Model",dataIndex:"model",key:"model",render:(e,s)=>(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"font-medium text-sm",children:e}),s.provider&&(0,t.jsx)(I.Tag,{color:"blue",className:"text-xs",children:s.provider}),s.loading&&(0,t.jsx)(eF.Spin,{indicator:(0,t.jsx)(tw.LoadingOutlined,{spin:!0}),size:"small"})]}),s.error&&(0,t.jsxs)("div",{className:"text-xs text-red-600 bg-red-50 px-2 py-1 rounded",children:["⚠️ ",s.error]}),s.hasZeroCost&&!s.error&&(0,t.jsx)("div",{className:"text-xs text-amber-600 bg-amber-50 px-2 py-1 rounded",children:"⚠️ No pricing data found for this model. Set base_model in config."})]})},{title:"Per Request",dataIndex:"cost_per_request",key:"cost_per_request",align:"right",render:(e,s)=>s.error?(0,t.jsx)("span",{className:"text-gray-400",children:"-"}):(0,t.jsx)("span",{className:"font-mono text-sm",children:tD(e)})},{title:"Margin Fee",dataIndex:"margin_cost_per_request",key:"margin_cost_per_request",align:"right",render:(e,s)=>s.error?(0,t.jsx)("span",{className:"text-gray-400",children:"-"}):(0,t.jsx)("span",{className:`font-mono text-sm ${(e??0)>0?"text-amber-600":"text-gray-400"}`,children:tD(e)})},{title:x,dataIndex:"day"===s?"daily_cost":"monthly_cost",key:"period_cost",align:"right",render:(e,s)=>s.error?(0,t.jsx)("span",{className:"text-gray-400",children:"-"}):(0,t.jsx)("span",{className:"font-mono text-sm",children:tD(e)})},{title:"",key:"expand",width:40,render:(e,s)=>s.error?null:(0,t.jsx)(n.Button,{size:"xs",variant:"light",onClick:()=>{var e;return e=s.id,void l(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s})},className:"text-gray-400 hover:text-gray-600",children:a.has(s.id)?(0,t.jsx)(tk.DownOutlined,{}):(0,t.jsx)(tN.RightOutlined,{})})}],y=e.entries.filter(e=>e.entry.model).map(e=>({key:e.entry.id,id:e.entry.id,model:e.result?.model||e.entry.model,provider:e.result?.provider,cost_per_request:e.result?.cost_per_request??null,margin_cost_per_request:e.result?.margin_cost_per_request??null,daily_cost:e.result?.daily_cost??null,monthly_cost:e.result?.monthly_cost??null,error:e.error,loading:e.loading,hasZeroCost:e.result&&0===e.result.cost_per_request}));return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(F.Divider,{className:"my-4"}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)(g.Text,{className:"text-base font-semibold text-gray-900",children:"Cost Estimates"}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[m&&(0,t.jsx)(eF.Spin,{indicator:(0,t.jsx)(tw.LoadingOutlined,{spin:!0}),size:"small"}),(0,t.jsx)(tP,{multiResult:e})]})]}),(0,t.jsxs)(ts.Card,{size:"small",className:"bg-gradient-to-r from-slate-50 to-blue-50 border-slate-200",children:[(0,t.jsxs)(t_.Row,{gutter:[16,8],children:[(0,t.jsx)(tv.Col,{xs:24,sm:12,children:(0,t.jsx)(tg,{title:(0,t.jsx)("span",{className:"text-xs",children:"Total Per Request"}),value:tD(e.totals.cost_per_request),valueStyle:{color:"#1890ff",fontSize:"18px",fontFamily:"monospace"}})}),(0,t.jsx)(tv.Col,{xs:24,sm:12,children:(0,t.jsx)(tg,{title:(0,t.jsxs)("span",{className:"text-xs",children:["Total ",x]}),value:tD("day"===s?e.totals.daily_cost:e.totals.monthly_cost),valueStyle:{color:"day"===s?"#52c41a":"#722ed1",fontSize:"18px",fontFamily:"monospace"}})})]}),p&&(0,t.jsxs)(t_.Row,{gutter:[16,8],className:"mt-3 pt-3 border-t border-slate-200",children:[(0,t.jsxs)(tv.Col,{xs:24,sm:12,children:[(0,t.jsx)("div",{className:"text-xs text-gray-500",children:"Margin Fee/Request"}),(0,t.jsx)("div",{className:"text-sm font-mono text-amber-600",children:tD(e.totals.margin_per_request)})]}),(0,t.jsxs)(tv.Col,{xs:24,sm:12,children:[(0,t.jsxs)("div",{className:"text-xs text-gray-500",children:[x," Margin Fee"]}),(0,t.jsx)("div",{className:"text-sm font-mono text-amber-600",children:tD("day"===s?e.totals.daily_margin:e.totals.monthly_margin)})]})]})]}),y.length>0&&(0,t.jsx)(te.Table,{columns:h,dataSource:y,pagination:!1,size:"small",className:"border border-gray-200 rounded-lg",expandable:{expandedRowKeys:Array.from(a),expandedRowRender:e=>{let a=r.find(t=>t.entry.id===e.id);return a?.result?(0,t.jsx)("div",{className:"py-2",children:(0,t.jsx)(tz,{result:a.result,loading:a.loading,timePeriod:s})}):null},showExpandColumn:!1}})]})},tO=()=>({id:`entry-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,model:"",input_tokens:1e3,output_tokens:500,num_requests_per_day:void 0,num_requests_per_month:void 0}),tR=({accessToken:e,models:s})=>{let[a,l]=(0,i.useState)([tO()]),[r,n]=(0,i.useState)("month"),{debouncedFetchForEntry:o,removeEntry:d,getMultiModelResult:c}=function(e){let[t,s]=(0,i.useState)(new Map),a=(0,i.useRef)(new Map),l=(0,i.useCallback)(async t=>{if(!e||!t.model)return void s(e=>{let s=new Map(e);return s.set(t.id,{entry:t,result:null,loading:!1,error:null}),s});s(e=>{let s=new Map(e),a=s.get(t.id);return s.set(t.id,{entry:t,result:a?.result??null,loading:!0,error:null}),s});try{let a=(0,w.getProxyBaseUrl)(),l=a?`${a}/cost/estimate`:"/cost/estimate",r={model:t.model,input_tokens:t.input_tokens||0,output_tokens:t.output_tokens||0,num_requests_per_day:t.num_requests_per_day||null,num_requests_per_month:t.num_requests_per_month||null},i=await fetch(l,{method:"POST",headers:{[(0,w.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(i.ok){let e=await i.json();s(s=>{let a=new Map(s);return a.set(t.id,{entry:t,result:e,loading:!1,error:null}),a})}else{let e=await i.json(),a=e.detail?.error||e.detail||"Failed to estimate cost";s(e=>{let s=new Map(e);return s.set(t.id,{entry:t,result:null,loading:!1,error:a}),s})}}catch(e){console.error("Error estimating cost:",e),s(e=>{let s=new Map(e);return s.set(t.id,{entry:t,result:null,loading:!1,error:"Network error"}),s})}},[e]),r=(0,i.useCallback)(e=>{let t=a.current.get(e.id);t&&clearTimeout(t);let s=setTimeout(()=>{l(e)},500);a.current.set(e.id,s)},[l]),n=(0,i.useCallback)(e=>{let t=a.current.get(e);t&&(clearTimeout(t),a.current.delete(e)),s(t=>{let s=new Map(t);return s.delete(e),s})},[]);return(0,i.useEffect)(()=>{let e=a.current;return()=>{e.forEach(e=>clearTimeout(e)),e.clear()}},[]),{debouncedFetchForEntry:r,removeEntry:n,getMultiModelResult:(0,i.useCallback)(e=>{let s=e.map(e=>{let s=t.get(e.id);return{entry:e,result:s?.result??null,loading:s?.loading??!1,error:s?.error??null}}),a=0,l=null,r=null,i=0,n=null,o=null;for(let e of s)e.result&&(a+=e.result.cost_per_request,i+=e.result.margin_cost_per_request,null!==e.result.daily_cost&&(l=(l??0)+e.result.daily_cost),null!==e.result.daily_margin_cost&&(n=(n??0)+e.result.daily_margin_cost),null!==e.result.monthly_cost&&(r=(r??0)+e.result.monthly_cost),null!==e.result.monthly_margin_cost&&(o=(o??0)+e.result.monthly_margin_cost));return{entries:s,totals:{cost_per_request:a,daily_cost:l,monthly_cost:r,margin_per_request:i,daily_margin:n,monthly_margin:o}}},[t])}}(e),m=(0,i.useCallback)((e,t,s)=>{l(a=>{let l=a.map(a=>a.id===e?{...a,[t]:s}:a),r=l.find(t=>t.id===e);return r&&r.model&&o(r),l})},[o]),u=(0,i.useCallback)(e=>{n(e),l(t=>t.map(t=>({...t,num_requests_per_day:"day"===e?t.num_requests_per_day:void 0,num_requests_per_month:"month"===e?t.num_requests_per_month:void 0})))},[]),p=(0,i.useCallback)(()=>{l(e=>[...e,tO()])},[]),x=(0,i.useCallback)(e=>{l(t=>t.filter(t=>t.id!==e)),d(e)},[d]),h=c(a),g=[{title:"Model",dataIndex:"model",key:"model",width:"35%",render:(e,a)=>(0,t.jsx)(N.Select,{showSearch:!0,placeholder:"Select a model",value:a.model||void 0,onChange:e=>m(a.id,"model",e),optionFilterProp:"label",filterOption:(e,t)=>String(t?.label??"").toLowerCase().includes(e.toLowerCase()),options:s.map(e=>({value:e,label:e})),style:{width:"100%"},size:"small"})},{title:"Input Tokens",dataIndex:"input_tokens",key:"input_tokens",width:"18%",render:(e,s)=>(0,t.jsx)(L.InputNumber,{min:0,value:s.input_tokens,onChange:e=>m(s.id,"input_tokens",e??0),style:{width:"100%"},size:"small",formatter:e=>`${e}`.replace(/\B(?=(\d{3})+(?!\d))/g,",")})},{title:"Output Tokens",dataIndex:"output_tokens",key:"output_tokens",width:"18%",render:(e,s)=>(0,t.jsx)(L.InputNumber,{min:0,value:s.output_tokens,onChange:e=>m(s.id,"output_tokens",e??0),style:{width:"100%"},size:"small",formatter:e=>`${e}`.replace(/\B(?=(\d{3})+(?!\d))/g,",")})},{title:`Requests/${"day"===r?"Day":"Month"}`,dataIndex:"day"===r?"num_requests_per_day":"num_requests_per_month",key:"num_requests",width:"20%",render:(e,s)=>(0,t.jsx)(L.InputNumber,{min:0,value:"day"===r?s.num_requests_per_day:s.num_requests_per_month,onChange:e=>m(s.id,"day"===r?"num_requests_per_day":"num_requests_per_month",e??void 0),style:{width:"100%"},size:"small",placeholder:"-",formatter:e=>e?`${e}`.replace(/\B(?=(\d{3})+(?!\d))/g,","):""})},{title:"",key:"actions",width:50,render:(e,s)=>(0,t.jsx)(V.Button,{type:"text",icon:(0,t.jsx)(tt.DeleteOutlined,{}),onClick:()=>x(s.id),disabled:1===a.length,danger:!0,size:"small"})}];return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)("div",{className:"flex items-center justify-end mb-2",children:(0,t.jsxs)(T.Radio.Group,{value:r,onChange:e=>u(e.target.value),size:"small",optionType:"button",buttonStyle:"solid",children:[(0,t.jsx)(T.Radio.Button,{value:"day",children:"Per Day"}),(0,t.jsx)(T.Radio.Button,{value:"month",children:"Per Month"})]})}),(0,t.jsx)(te.Table,{columns:g,dataSource:a,rowKey:"id",pagination:!1,size:"small",footer:()=>(0,t.jsx)(V.Button,{type:"dashed",onClick:p,icon:(0,t.jsx)(H.PlusOutlined,{}),className:"w-full",children:"Add Another Model"})}),(0,t.jsx)(tE,{multiResult:h,timePeriod:r})]})};var tB=e.i(270377),t$=e.i(778917),tq=e.i(664659);let tU=({items:e,children:s="Docs",className:a=""})=>{let[l,r]=(0,i.useState)(!1),n=(0,i.useRef)(null);return(0,i.useEffect)(()=>{let e=e=>{n.current&&!n.current.contains(e.target)&&r(!1)};return l&&document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[l]),(0,t.jsxs)("div",{className:`relative inline-block ${a}`,ref:n,children:[(0,t.jsxs)("button",{type:"button",onClick:()=>r(!l),className:"inline-flex items-center gap-1 text-gray-500 hover:text-gray-700 text-xs transition-colors focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-1 rounded px-2 py-1","aria-expanded":l,"aria-haspopup":"true",children:[(0,t.jsx)("span",{children:s}),(0,t.jsx)(tq.ChevronDown,{className:`h-3 w-3 transition-transform ${l?"rotate-180":""}`,"aria-hidden":"true"})]}),l&&(0,t.jsx)("div",{className:"absolute right-0 mt-1 w-56 bg-white rounded-lg shadow-lg border border-gray-200 py-1 z-50",children:e.map((e,s)=>(0,t.jsxs)("a",{href:e.href,target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-between px-4 py-2 text-sm text-gray-700 hover:bg-gray-50 transition-colors",onClick:()=>r(!1),children:[(0,t.jsx)("span",{children:e.label}),(0,t.jsx)(t$.ExternalLink,{className:"h-3.5 w-3.5 text-gray-400 flex-shrink-0 ml-2","aria-hidden":"true"})]},s))})]})};var tV=e.i(673709);let tH=()=>{let[e,s]=(0,i.useState)(""),[a,l]=(0,i.useState)(""),r=(0,i.useMemo)(()=>{let t=parseFloat(e),s=parseFloat(a);if(isNaN(t)||isNaN(s)||0===t||0===s)return null;let l=t+s,r=s/l*100;return{originalCost:l.toFixed(10),finalCost:t.toFixed(10),discountAmount:s.toFixed(10),discountPercentage:r.toFixed(2)}},[e,a]);return(0,t.jsxs)("div",{className:"space-y-4 pt-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(g.Text,{className:"font-medium text-gray-900 text-sm mb-1",children:"Cost Calculation"}),(0,t.jsxs)(g.Text,{className:"text-xs text-gray-600",children:["Discounts are applied to provider costs: ",(0,t.jsx)("code",{className:"bg-gray-100 px-1.5 py-0.5 rounded text-xs",children:"final_cost = base_cost × (1 - discount%/100)"})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(g.Text,{className:"font-medium text-gray-900 text-sm mb-1",children:"Example"}),(0,t.jsx)(g.Text,{className:"text-xs text-gray-600",children:"A 5% discount on a $10.00 request results in: $10.00 × (1 - 0.05) = $9.50"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(g.Text,{className:"font-medium text-gray-900 text-sm mb-1",children:"Valid Range"}),(0,t.jsx)(g.Text,{className:"text-xs text-gray-600",children:"Discount percentages must be between 0% and 100%"})]}),(0,t.jsxs)("div",{className:"pt-4 border-t border-gray-200",children:[(0,t.jsx)(g.Text,{className:"font-medium text-gray-900 text-sm mb-2",children:"Validating Discounts"}),(0,t.jsx)(g.Text,{className:"text-xs text-gray-600 mb-3",children:"Make a test request and check the response headers to verify discounts are applied:"}),(0,t.jsx)(tV.default,{language:"bash",code:`curl -X POST -i http://your-proxy:4000/chat/completions \\ - -H "Content-Type: application/json" \\ - -H "Authorization: Bearer sk-1234" \\ - -d '{ - "model": "gemini/gemini-2.5-pro", - "messages": [{"role": "user", "content": "Hello"}] - }'`}),(0,t.jsx)(g.Text,{className:"text-xs text-gray-600 mt-3 mb-2",children:"Look for these headers in the response:"}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("code",{className:"bg-gray-100 px-2 py-1 rounded text-xs font-mono text-gray-800 whitespace-nowrap",children:"x-litellm-response-cost"}),(0,t.jsx)(g.Text,{className:"text-xs text-gray-600",children:"Final cost after discount"})]}),(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("code",{className:"bg-gray-100 px-2 py-1 rounded text-xs font-mono text-gray-800 whitespace-nowrap",children:"x-litellm-response-cost-original"}),(0,t.jsx)(g.Text,{className:"text-xs text-gray-600",children:"Original cost before discount"})]}),(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("code",{className:"bg-gray-100 px-2 py-1 rounded text-xs font-mono text-gray-800 whitespace-nowrap",children:"x-litellm-response-cost-discount-amount"}),(0,t.jsx)(g.Text,{className:"text-xs text-gray-600",children:"Amount discounted"})]})]})]}),(0,t.jsxs)("div",{className:"pt-4 border-t border-gray-200",children:[(0,t.jsx)(g.Text,{className:"font-medium text-gray-900 text-sm mb-3",children:"Discount Calculator"}),(0,t.jsx)(g.Text,{className:"text-xs text-gray-600 mb-3",children:"Enter values from your response headers to verify the discount:"}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 mb-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs font-medium text-gray-700 mb-1",children:"Response Cost (x-litellm-response-cost)"}),(0,t.jsx)(eQ.TextInput,{placeholder:"0.0171938125",value:e,onValueChange:s,className:"text-sm"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs font-medium text-gray-700 mb-1",children:"Discount Amount (x-litellm-response-cost-discount-amount)"}),(0,t.jsx)(eQ.TextInput,{placeholder:"0.0009049375",value:a,onValueChange:l,className:"text-sm"})]})]}),r&&(0,t.jsxs)("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-4",children:[(0,t.jsx)(g.Text,{className:"text-sm font-medium text-blue-900 mb-2",children:"Calculated Results"}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)(g.Text,{className:"text-xs text-blue-800",children:"Original Cost:"}),(0,t.jsxs)("code",{className:"text-xs font-mono text-blue-900",children:["$",r.originalCost]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)(g.Text,{className:"text-xs text-blue-800",children:"Final Cost:"}),(0,t.jsxs)("code",{className:"text-xs font-mono text-blue-900",children:["$",r.finalCost]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)(g.Text,{className:"text-xs text-blue-800",children:"Discount Amount:"}),(0,t.jsxs)("code",{className:"text-xs font-mono text-blue-900",children:["$",r.discountAmount]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between pt-2 border-t border-blue-300",children:[(0,t.jsx)(g.Text,{className:"text-xs font-semibold text-blue-900",children:"Discount Applied:"}),(0,t.jsxs)(g.Text,{className:"text-sm font-bold text-blue-900",children:[r.discountPercentage,"%"]})]})]})]})]})]})};var tG=e.i(689020);let tK=[{label:"Custom pricing for models",href:"https://docs.litellm.ai/docs/proxy/custom_pricing"},{label:"Spend tracking",href:"https://docs.litellm.ai/docs/proxy/cost_tracking"}],tW=({userID:e,userRole:s,accessToken:a})=>{let[l,r]=(0,i.useState)(void 0),[o,d]=(0,i.useState)(""),[c,m]=(0,i.useState)(!0),[u,p]=(0,i.useState)(!1),[x,h]=(0,i.useState)(!1),[j,f]=(0,i.useState)(void 0),[b,_]=(0,i.useState)("percentage"),[v,N]=(0,i.useState)(""),[S,C]=(0,i.useState)(""),[T,I]=(0,i.useState)([]),[F]=k.Form.useForm(),[L]=k.Form.useForm(),[A,M]=y.Modal.useModal(),P="proxy_admin"===s||"Admin"===s,{discountConfig:D,fetchDiscountConfig:z,handleAddProvider:E,handleRemoveProvider:O,handleDiscountChange:R}=function({accessToken:e}){let[t,s]=(0,i.useState)({}),a=(0,i.useCallback)(async()=>{try{let t=(0,w.getProxyBaseUrl)(),a=t?`${t}/config/cost_discount_config`:"/config/cost_discount_config",l=await fetch(a,{method:"GET",headers:{[(0,w.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"}});if(l.ok){let e=await l.json();s(e.values||{})}else console.error("Failed to fetch discount config")}catch(e){console.error("Error fetching discount config:",e),eE.default.fromBackend("Failed to fetch discount configuration")}},[e]),l=(0,i.useCallback)(async t=>{try{let s=(0,w.getProxyBaseUrl)(),l=s?`${s}/config/cost_discount_config`:"/config/cost_discount_config",r=await fetch(l,{method:"PATCH",headers:{[(0,w.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(r.ok)eE.default.success("Discount configuration updated successfully"),await a();else{let e=await r.json(),t=e.detail?.error||e.detail||"Failed to update settings";eE.default.fromBackend(t)}}catch(e){console.error("Error updating discount config:",e),eE.default.fromBackend("Failed to update discount configuration")}},[e,a]),r=(0,i.useCallback)(async(e,a)=>{if(!e||!a)return eE.default.fromBackend("Please select a provider and enter discount percentage"),!1;let r=parseFloat(a);if(isNaN(r)||r<0||r>100)return eE.default.fromBackend("Discount must be between 0% and 100%"),!1;let i=e5(e);if(!i)return eE.default.fromBackend("Invalid provider selected"),!1;if(t[i])return eE.default.fromBackend(`Discount for ${e2.Providers[e]} already exists. Edit it in the table above.`),!1;let n={...t,[i]:r/100};return s(n),await l(n),!0},[t,l]),n=(0,i.useCallback)(async e=>{let a={...t};delete a[e],s(a),await l(a)},[t,l]),o=(0,i.useCallback)(async(e,a)=>{let r=parseFloat(a);if(!isNaN(r)&&r>=0&&r<=1){let a={...t,[e]:r};s(a),await l(a)}},[t,l]);return{discountConfig:t,setDiscountConfig:s,fetchDiscountConfig:a,saveDiscountConfig:l,handleAddProvider:r,handleRemoveProvider:n,handleDiscountChange:o}}({accessToken:a}),{marginConfig:B,fetchMarginConfig:$,handleAddMargin:q,handleRemoveMargin:U,handleMarginChange:V}=function({accessToken:e}){let[t,s]=(0,i.useState)({}),a=(0,i.useCallback)(async()=>{try{let t=(0,w.getProxyBaseUrl)(),a=t?`${t}/config/cost_margin_config`:"/config/cost_margin_config",l=await fetch(a,{method:"GET",headers:{[(0,w.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"}});if(l.ok){let e=await l.json();s(e.values||{})}else console.error("Failed to fetch margin config")}catch(e){console.error("Error fetching margin config:",e),eE.default.fromBackend("Failed to fetch margin configuration")}},[e]),l=(0,i.useCallback)(async t=>{try{let s=(0,w.getProxyBaseUrl)(),l=s?`${s}/config/cost_margin_config`:"/config/cost_margin_config",r=await fetch(l,{method:"PATCH",headers:{[(0,w.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(r.ok)eE.default.success("Margin configuration updated successfully"),await a();else{let e=await r.json(),t=e.detail?.error||e.detail||"Failed to update settings";eE.default.fromBackend(t)}}catch(e){console.error("Error updating margin config:",e),eE.default.fromBackend("Failed to update margin configuration")}},[e,a]),r=(0,i.useCallback)(async e=>{let a,r,{selectedProvider:i,marginType:n,percentageValue:o,fixedAmountValue:d}=e;if(!i)return eE.default.fromBackend("Please select a provider"),!1;if("global"===i)a="global";else{let e=e5(i);if(!e)return eE.default.fromBackend("Invalid provider selected"),!1;a=e}if(t[a]){let e="global"===a?"Global":e2.Providers[i];return eE.default.fromBackend(`Margin for ${e} already exists. Edit it in the table above.`),!1}if("percentage"===n){let e=parseFloat(o);if(isNaN(e)||e<0||e>1e3)return eE.default.fromBackend("Percentage must be between 0% and 1000%"),!1;r=e/100}else{let e=parseFloat(d);if(isNaN(e)||e<0)return eE.default.fromBackend("Fixed amount must be non-negative"),!1;r={fixed_amount:e}}let c={...t,[a]:r};return s(c),await l(c),!0},[t,l]),n=(0,i.useCallback)(async e=>{let a={...t};delete a[e],s(a),await l(a)},[t,l]),o=(0,i.useCallback)(async(e,a)=>{let r={...t,[e]:a};s(r),await l(r)},[t,l]);return{marginConfig:t,setMarginConfig:s,fetchMarginConfig:a,saveMarginConfig:l,handleAddMargin:r,handleRemoveMargin:n,handleMarginChange:o}}({accessToken:a});(0,i.useEffect)(()=>{a&&(Promise.all([z(),$()]).finally(()=>{m(!1)}),(async()=>{try{let e=await (0,tG.fetchAvailableModels)(a);I(e.map(e=>e.model_group))}catch(e){console.error("Error fetching models:",e)}})())},[a,z,$]);let H=async()=>{await E(l,o)&&(r(void 0),d(""),p(!1))},G=async(e,s)=>{A.confirm({title:"Remove Provider Discount",icon:(0,t.jsx)(tB.ExclamationCircleOutlined,{}),content:`Are you sure you want to remove the discount for ${s}?`,okText:"Remove",okType:"danger",cancelText:"Cancel",onOk:()=>O(e)})},K=async()=>{await q({selectedProvider:j,marginType:b,percentageValue:v,fixedAmountValue:S})&&(f(void 0),N(""),C(""),_("percentage"),h(!1))},W=async(e,s)=>{A.confirm({title:"Remove Provider Margin",icon:(0,t.jsx)(tB.ExclamationCircleOutlined,{}),content:`Are you sure you want to remove the margin for ${s}?`,okText:"Remove",okType:"danger",cancelText:"Cancel",onOk:()=>U(e)})};return a?(0,t.jsxs)("div",{className:"w-full p-8",children:[M,(0,t.jsx)("div",{className:"flex flex-col md:flex-row items-start md:items-center justify-between mb-6",children:(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(ek.Title,{children:"Cost Tracking Settings"}),(0,t.jsx)(tU,{items:tK})]}),(0,t.jsx)(g.Text,{className:"text-gray-500 mt-1",children:"Configure cost discounts and margins for different LLM providers. Changes are saved automatically."})]})}),(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow w-full max-w-full space-y-4",children:[P&&(0,t.jsxs)(eG.Accordion,{children:[(0,t.jsx)(eK.AccordionHeader,{className:"px-6 py-4",children:(0,t.jsxs)("div",{className:"flex flex-col items-start w-full",children:[(0,t.jsx)(g.Text,{className:"text-lg font-semibold text-gray-900",children:"Provider Discounts"}),(0,t.jsx)(g.Text,{className:"text-sm text-gray-500 mt-1",children:"Apply percentage-based discounts to reduce costs for specific providers"})]})}),(0,t.jsx)(eW.AccordionBody,{className:"px-0",children:(0,t.jsxs)(eS.TabGroup,{children:[(0,t.jsxs)(eC.TabList,{className:"px-6 pt-4",children:[(0,t.jsx)(eN.Tab,{children:"Discounts"}),(0,t.jsx)(eN.Tab,{children:"Test It"})]}),(0,t.jsxs)(eI.TabPanels,{children:[(0,t.jsx)(eT.TabPanel,{children:(0,t.jsxs)("div",{className:"p-6",children:[(0,t.jsx)("div",{className:"flex justify-end mb-4",children:(0,t.jsx)(n.Button,{onClick:()=>p(!0),children:"+ Add Provider Discount"})}),c?(0,t.jsx)("div",{className:"py-12 text-center",children:(0,t.jsx)(g.Text,{className:"text-gray-500",children:"Loading configuration..."})}):Object.keys(D).length>0?(0,t.jsx)(e3,{discountConfig:D,onDiscountChange:R,onRemoveProvider:G}):(0,t.jsxs)("div",{className:"py-16 px-6 text-center",children:[(0,t.jsx)("svg",{className:"mx-auto h-12 w-12 text-gray-400 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,t.jsx)(g.Text,{className:"text-gray-700 font-medium mb-2",children:"No provider discounts configured"}),(0,t.jsx)(g.Text,{className:"text-gray-500 text-sm",children:'Click "Add Provider Discount" to get started'})]})]})}),(0,t.jsx)(eT.TabPanel,{children:(0,t.jsx)("div",{className:"px-6 pb-4",children:(0,t.jsx)(tH,{})})})]})]})})]}),P&&(0,t.jsxs)(eG.Accordion,{children:[(0,t.jsx)(eK.AccordionHeader,{className:"px-6 py-4",children:(0,t.jsxs)("div",{className:"flex flex-col items-start w-full",children:[(0,t.jsx)(g.Text,{className:"text-lg font-semibold text-gray-900",children:"Fee/Price Margin"}),(0,t.jsx)(g.Text,{className:"text-sm text-gray-500 mt-1",children:"Add fees or margins to LLM costs for internal billing and cost recovery"})]})}),(0,t.jsx)(eW.AccordionBody,{className:"px-0",children:(0,t.jsxs)("div",{className:"p-6",children:[(0,t.jsx)("div",{className:"flex justify-end mb-4",children:(0,t.jsx)(n.Button,{onClick:()=>h(!0),children:"+ Add Provider Margin"})}),c?(0,t.jsx)("div",{className:"py-12 text-center",children:(0,t.jsx)(g.Text,{className:"text-gray-500",children:"Loading configuration..."})}):Object.keys(B).length>0?(0,t.jsx)(e7,{marginConfig:B,onMarginChange:V,onRemoveProvider:W}):(0,t.jsxs)("div",{className:"py-16 px-6 text-center",children:[(0,t.jsx)("svg",{className:"mx-auto h-12 w-12 text-gray-400 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,t.jsx)(g.Text,{className:"text-gray-700 font-medium mb-2",children:"No provider margins configured"}),(0,t.jsx)(g.Text,{className:"text-gray-500 text-sm",children:'Click "Add Provider Margin" to get started'})]})]})})]}),(0,t.jsxs)(eG.Accordion,{defaultOpen:!0,children:[(0,t.jsx)(eK.AccordionHeader,{className:"px-6 py-4",children:(0,t.jsxs)("div",{className:"flex flex-col items-start w-full",children:[(0,t.jsx)(g.Text,{className:"text-lg font-semibold text-gray-900",children:"Pricing Calculator"}),(0,t.jsx)(g.Text,{className:"text-sm text-gray-500 mt-1",children:"Estimate LLM costs based on expected token usage and request volume"})]})}),(0,t.jsx)(eW.AccordionBody,{className:"px-0",children:(0,t.jsx)("div",{className:"p-6",children:(0,t.jsx)(tR,{accessToken:a,models:T})})})]})]}),(0,t.jsx)(y.Modal,{title:(0,t.jsx)("div",{className:"flex items-center space-x-3 pb-4 border-b border-gray-100",children:(0,t.jsx)("h2",{className:"text-xl font-semibold text-gray-900",children:"Add Provider Discount"})}),open:u,width:1e3,onCancel:()=>{p(!1),F.resetFields(),r(void 0),d("")},footer:null,className:"top-8",styles:{body:{padding:"24px"},header:{padding:"24px 24px 0 24px",border:"none"}},children:(0,t.jsxs)("div",{className:"mt-6",children:[(0,t.jsx)(g.Text,{className:"text-sm text-gray-600 mb-6",children:"Select a provider and set its discount percentage. Enter a value between 0% and 100% (e.g., 5 for a 5% discount)."}),(0,t.jsx)(k.Form,{form:F,onFinish:()=>{H()},layout:"vertical",className:"space-y-6",children:(0,t.jsx)(e8,{discountConfig:D,selectedProvider:l,newDiscount:o,onProviderChange:r,onDiscountChange:d,onAddProvider:H})})]})}),(0,t.jsx)(y.Modal,{title:(0,t.jsx)("div",{className:"flex items-center space-x-3 pb-4 border-b border-gray-100",children:(0,t.jsx)("h2",{className:"text-xl font-semibold text-gray-900",children:"Add Provider Margin"})}),open:x,width:1e3,onCancel:()=>{h(!1),L.resetFields(),f(void 0),N(""),C(""),_("percentage")},footer:null,className:"top-8",styles:{body:{padding:"24px"},header:{padding:"24px 24px 0 24px",border:"none"}},children:(0,t.jsxs)("div",{className:"mt-6",children:[(0,t.jsx)(g.Text,{className:"text-sm text-gray-600 mb-6",children:'Select a provider (or "Global" for all providers) and configure the margin. You can use percentage-based or fixed amount.'}),(0,t.jsx)(k.Form,{form:L,layout:"vertical",className:"space-y-6",children:(0,t.jsx)(e9,{marginConfig:B,selectedProvider:j,marginType:b,percentageValue:v,fixedAmountValue:S,onProviderChange:f,onMarginTypeChange:_,onPercentageChange:N,onFixedAmountChange:C,onAddProvider:K})})]})})]}):null};var tQ=e.i(226898),tY=e.i(973706),tJ=e.i(447566),tX=e.i(602073),tZ=e.i(313603),t0=e.i(285027),t1=e.i(266027),t2=e.i(653496),t4=e.i(149192),t5=e.i(788191);let t6=`Evaluate whether this guardrail's decision was correct. -Analyze the user input, the guardrail action taken, and determine if it was appropriate. - -Consider: -— Was the user's intent genuinely harmful or policy-violating? -— Was the guardrail's action (block / flag / pass) appropriate? -— Could this be a false positive or false negative? - -Return a structured verdict with confidence and justification.`,t3=`{ - "verdict": "correct" | "false_positive" | "false_negative", - "confidence": 0.0, - "justification": "string", - "risk_category": "string", - "suggested_action": "keep" | "adjust threshold" | "add allowlist" -} -`;function t8({open:e,onClose:s,guardrailName:a,accessToken:l,onRunEvaluation:r}){let[n,o]=(0,i.useState)(t6),[d,c]=(0,i.useState)(t3),[m,u]=(0,i.useState)(null),[p,x]=(0,i.useState)([]),[h,g]=(0,i.useState)(!1);(0,i.useEffect)(()=>{if(!e||!l)return void x([]);let t=!1;return g(!0),(0,tG.fetchAvailableModels)(l).then(e=>{t||x(e)}).catch(()=>{t||x([])}).finally(()=>{t||g(!1)}),()=>{t=!0}},[e,l]);let j=p.map(e=>({value:e.model_group,label:e.model_group}));return(0,t.jsxs)(y.Modal,{title:"Evaluation Settings",open:e,onCancel:s,width:640,footer:null,closeIcon:(0,t.jsx)(t4.CloseOutlined,{}),destroyOnClose:!0,children:[(0,t.jsx)("p",{className:"text-sm text-gray-500 mb-4",children:a?`Configure AI evaluation for ${a}`:"Configure AI evaluation for re-running on logs"}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Evaluation Prompt"}),(0,t.jsx)("button",{type:"button",onClick:()=>o(t6),className:"text-xs text-indigo-600 hover:text-indigo-700",children:"Reset to default"})]}),(0,t.jsx)(S.Input.TextArea,{value:n,onChange:e=>o(e.target.value),rows:6,className:"font-mono text-sm"}),(0,t.jsx)("p",{className:"text-xs text-gray-400 mt-1",children:"System prompt sent to the evaluation model. Output is structured via response_format."})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-sm font-medium text-gray-700 mb-1.5",children:"Response Schema"}),(0,t.jsx)("p",{className:"text-xs text-gray-400 mb-1",children:"response_format: json_schema"}),(0,t.jsx)(S.Input.TextArea,{value:d,onChange:e=>c(e.target.value),rows:6,className:"font-mono text-sm"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-sm font-medium text-gray-700 mb-1.5",children:"Model"}),(0,t.jsx)(N.Select,{placeholder:h?"Loading models…":"Select a model",value:m??void 0,onChange:u,options:j,style:{width:"100%"},showSearch:!0,optionFilterProp:"label",loading:h,notFoundContent:l?"No models available":"Sign in to see models"})]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2 mt-6 pt-4 border-t border-gray-100",children:[(0,t.jsx)(V.Button,{onClick:s,children:"Cancel"}),(0,t.jsx)(V.Button,{type:"primary",icon:(0,t.jsx)(t5.PlayCircleOutlined,{}),onClick:()=>{m&&(r?.({prompt:n,schema:d,model:m}),s())},disabled:!m,children:"Run Evaluation"})]})]})}var t7=e.i(166540);e.i(3565);var t9=e.i(502626);let se={blocked:{icon:t4.CloseOutlined,color:"text-red-600",bg:"bg-red-50",border:"border-red-200",label:"Blocked"},passed:{icon:v.CheckCircleOutlined,color:"text-green-600",bg:"bg-green-50",border:"border-green-200",label:"Passed"},flagged:{icon:t0.WarningOutlined,color:"text-amber-600",bg:"bg-amber-50",border:"border-amber-200",label:"Flagged"}};function st({guardrailName:e,filterAction:s="all",logs:a=[],logsLoading:l=!1,totalLogs:r,accessToken:n=null,startDate:o="",endDate:d=""}){let[c,m]=(0,i.useState)(10),[u,p]=(0,i.useState)(s),[x,h]=(0,i.useState)(null),[g,y]=(0,i.useState)(!1),j=a.filter(e=>"all"===u||e.action===u).slice(0,c),f=r??a.length,b=o?(0,t7.default)(o).utc().format("YYYY-MM-DD HH:mm:ss"):(0,t7.default)().subtract(24,"hours").utc().format("YYYY-MM-DD HH:mm:ss"),_=d?(0,t7.default)(d).utc().endOf("day").format("YYYY-MM-DD HH:mm:ss"):(0,t7.default)().utc().format("YYYY-MM-DD HH:mm:ss"),{data:v}=(0,t1.useQuery)({queryKey:["spend-log-by-request",x,b,_],queryFn:async()=>n&&x?await (0,w.uiSpendLogsCall)({accessToken:n,start_date:b,end_date:_,page:1,page_size:10,params:{request_id:x}}):null,enabled:!!(n&&x&&g)}),k=v?.data?.[0]??null;return(0,t.jsxs)("div",{className:"bg-white border border-gray-200 rounded-lg",children:[(0,t.jsx)("div",{className:"p-4 border-b border-gray-200",children:(0,t.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-base font-semibold text-gray-900",children:e?`Logs — ${e}`:"Request Logs"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-0.5",children:l?"Loading…":a.length>0?`Showing ${j.length} of ${f} entries`:"No logs for this period. Select a guardrail and date range."})]}),a.length>0&&(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)("div",{className:"flex items-center gap-1",children:["all","blocked","flagged","passed"].map(e=>(0,t.jsx)(V.Button,{type:u===e?"primary":"default",size:"small",onClick:()=>p(e),children:e.charAt(0).toUpperCase()+e.slice(1)},e))}),(0,t.jsx)("div",{className:"h-4 w-px bg-gray-200"}),(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"text-xs text-gray-500 mr-1",children:"Sample:"}),[10,50,100].map(e=>(0,t.jsx)(V.Button,{type:c===e?"primary":"default",size:"small",onClick:()=>m(e),children:e},e))]})]})]})}),l&&(0,t.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,t.jsx)(eF.Spin,{})}),!l&&0===j.length&&(0,t.jsx)("div",{className:"py-12 text-center text-sm text-gray-500",children:"No logs to display. Adjust filters or date range."}),!l&&j.length>0&&(0,t.jsx)("div",{className:"divide-y divide-gray-100",children:j.map(e=>{let s=se[e.action],a=s.icon;return(0,t.jsxs)("button",{type:"button",onClick:()=>{h(e.id),y(!0)},className:"w-full text-left px-4 py-3 hover:bg-gray-50 transition-colors flex items-start gap-3",children:[(0,t.jsx)(a,{className:`w-4 h-4 mt-0.5 flex-shrink-0 ${s.color}`}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[(0,t.jsx)("span",{className:`inline-flex items-center px-2 py-0.5 text-xs font-medium rounded border ${s.bg} ${s.color} ${s.border}`,children:s.label}),(0,t.jsx)("span",{className:"text-xs text-gray-400",children:e.timestamp}),(0,t.jsx)("span",{className:"text-xs text-gray-400",children:"·"}),e.model&&(0,t.jsx)("span",{className:"text-xs text-gray-500",children:e.model})]}),(0,t.jsx)("p",{className:"text-sm text-gray-800 truncate",children:e.input_snippet??e.input??"—"})]}),(0,t.jsx)(tk.DownOutlined,{className:"w-4 h-4 text-gray-400 flex-shrink-0 mt-1"})]},e.id)})}),(0,t.jsx)(t9.LogDetailsDrawer,{open:g,onClose:()=>{y(!1),h(null)},logEntry:k,accessToken:n,allLogs:k?[k]:[],startTime:b})]})}function ss({label:e,value:s,valueColor:a="text-gray-900",icon:l,subtitle:r}){return(0,t.jsxs)("div",{className:"h-full bg-white border border-gray-200 rounded-lg p-5 flex flex-col",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-gray-600",children:e}),l&&(0,t.jsx)("span",{className:"text-gray-400",children:l})]}),(0,t.jsx)("div",{className:`text-3xl font-semibold ${a} tracking-tight`,children:s}),r&&(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:r})]})}let sa={healthy:{bg:"bg-green-50",text:"text-green-700",dot:"bg-green-500"},warning:{bg:"bg-amber-50",text:"text-amber-700",dot:"bg-amber-500"},critical:{bg:"bg-red-50",text:"text-red-700",dot:"bg-red-500"}};function sl({guardrailId:e,onBack:s,accessToken:a=null,startDate:l,endDate:r}){let[n,o]=(0,i.useState)("overview"),[d,c]=(0,i.useState)(!1),[m,u]=(0,i.useState)(1),{data:p,isLoading:x,error:h}=(0,t1.useQuery)({queryKey:["guardrails-usage-detail",e,l,r],queryFn:()=>(0,w.getGuardrailsUsageDetail)(a,e,l,r),enabled:!!a&&!!e}),{data:g,isLoading:y}=(0,t1.useQuery)({queryKey:["guardrails-usage-logs",e,m,50],queryFn:()=>(0,w.getGuardrailsUsageLogs)(a,{guardrailId:e,page:m,pageSize:50,startDate:l,endDate:r}),enabled:!!a&&!!e}),j=(0,i.useMemo)(()=>(g?.logs??[]).map(e=>({id:e.id,timestamp:e.timestamp,action:e.action,score:e.score,model:e.model,input_snippet:e.input_snippet,output_snippet:e.output_snippet,reason:e.reason})),[g?.logs]),f=p?{name:p.guardrail_name,description:p.description??"",status:p.status,provider:p.provider,type:p.type,requestsEvaluated:p.requestsEvaluated,failRate:p.failRate,avgScore:p.avgScore,avgLatency:p.avgLatency}:{name:e,description:"",status:"healthy",provider:"—",type:"—",requestsEvaluated:0,failRate:0,avgScore:void 0,avgLatency:void 0},b=sa[f.status]??sa.healthy;return x&&!p?(0,t.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,t.jsx)(eF.Spin,{size:"large"})}):h&&!p?(0,t.jsxs)("div",{children:[(0,t.jsx)(V.Button,{type:"link",icon:(0,t.jsx)(tJ.ArrowLeftOutlined,{}),onClick:s,className:"pl-0 mb-4",children:"Back to Overview"}),(0,t.jsx)("p",{className:"text-red-600",children:"Failed to load guardrail details."})]}):(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)(V.Button,{type:"link",icon:(0,t.jsx)(tJ.ArrowLeftOutlined,{}),onClick:s,className:"pl-0 mb-4",children:"Back to Overview"}),(0,t.jsxs)("div",{className:"flex items-start justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-1",children:[(0,t.jsx)(tX.SafetyOutlined,{className:"text-xl text-gray-400"}),(0,t.jsx)("h1",{className:"text-xl font-semibold text-gray-900",children:f.name}),(0,t.jsxs)("span",{className:`inline-flex items-center gap-1.5 px-2.5 py-0.5 text-xs font-medium rounded-full ${b.bg} ${b.text}`,children:[(0,t.jsx)("span",{className:`w-1.5 h-1.5 rounded-full ${b.dot}`}),f.status.charAt(0).toUpperCase()+f.status.slice(1)]})]}),(0,t.jsx)("p",{className:"text-sm text-gray-500 ml-8",children:f.description})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"inline-flex items-center px-2.5 py-1 text-xs font-medium rounded-md bg-indigo-50 text-indigo-700 border border-indigo-200",children:f.provider}),(0,t.jsx)(V.Button,{type:"default",icon:(0,t.jsx)(tZ.SettingOutlined,{}),onClick:()=>c(!0),title:"Evaluation settings"})]})]})]}),(0,t.jsx)(t2.Tabs,{activeKey:n,onChange:o,items:[{key:"overview",label:"Overview"},{key:"logs",label:"Logs"}]}),"overview"===n&&(0,t.jsxs)("div",{className:"space-y-6 mt-4",children:[(0,t.jsxs)(t_.Row,{gutter:[16,16],children:[(0,t.jsx)(tv.Col,{xs:12,md:8,children:(0,t.jsx)(ss,{label:"Requests Evaluated",value:f.requestsEvaluated.toLocaleString()})}),(0,t.jsx)(tv.Col,{xs:12,md:8,children:(0,t.jsx)(ss,{label:"Fail Rate",value:`${f.failRate}%`,valueColor:f.failRate>15?"text-red-600":f.failRate>5?"text-amber-600":"text-green-600",subtitle:`${Math.round(f.requestsEvaluated*f.failRate/100).toLocaleString()} blocked`,icon:f.failRate>15?(0,t.jsx)(t0.WarningOutlined,{className:"text-red-400"}):void 0})}),(0,t.jsx)(tv.Col,{xs:12,md:8,children:(0,t.jsx)(ss,{label:"Avg. latency added",value:null!=f.avgLatency?`${Math.round(f.avgLatency)}ms`:"—",valueColor:null!=f.avgLatency?f.avgLatency>150?"text-red-600":f.avgLatency>50?"text-amber-600":"text-green-600":"text-gray-500",subtitle:null!=f.avgLatency?"Per request (avg)":"No data"})})]}),(0,t.jsx)(st,{guardrailName:f.name,filterAction:"all",logs:j,logsLoading:y,totalLogs:g?.total??0,accessToken:a,startDate:l,endDate:r})]}),"logs"===n&&(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)(st,{guardrailName:f.name,logs:j,logsLoading:y,totalLogs:g?.total??0,accessToken:a,startDate:l,endDate:r})}),(0,t.jsx)(t8,{open:d,onClose:()=>c(!1),guardrailName:f.name,accessToken:a})]})}let sr={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M917 211.1l-199.2 24c-6.6.8-9.4 8.9-4.7 13.6l59.3 59.3-226 226-101.8-101.7c-6.3-6.3-16.4-6.2-22.6 0L100.3 754.1a8.03 8.03 0 000 11.3l45 45.2c3.1 3.1 8.2 3.1 11.3 0L433.3 534 535 635.7c6.3 6.2 16.4 6.2 22.6 0L829 364.5l59.3 59.3a8.01 8.01 0 0013.6-4.7l24-199.2c.7-5.1-3.7-9.5-8.9-8.8z"}}]},name:"rise",theme:"outlined"};var si=i.forwardRef(function(e,t){return i.createElement(tF.default,(0,tT.default)({},e,{ref:t,icon:sr}))}),sn=e.i(898586),so=e.i(584935);function sd({data:e}){let s=e&&e.length>0?e:[];return(0,t.jsxs)(o.Card,{className:"bg-white border border-gray-200",children:[(0,t.jsx)(ek.Title,{className:"text-base font-semibold text-gray-900 mb-4",children:"Request Outcomes Over Time"}),(0,t.jsx)("div",{className:"h-80 min-h-[280px]",children:s.length>0?(0,t.jsx)(so.BarChart,{data:s,index:"date",categories:["passed","blocked"],colors:["green","red"],valueFormatter:e=>e.toLocaleString(),yAxisWidth:48,showLegend:!0,stack:!0}):(0,t.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-gray-500",children:"No chart data for this period"})})]})}let sc={Bedrock:"bg-orange-100 text-orange-700 border-orange-200","Google Cloud":"bg-sky-100 text-sky-700 border-sky-200",LiteLLM:"bg-indigo-100 text-indigo-700 border-indigo-200",Custom:"bg-gray-100 text-gray-600 border-gray-200"};function sm({accessToken:e=null,startDate:s,endDate:a,onSelectGuardrail:l}){let[r,n]=(0,i.useState)("failRate"),[o,d]=(0,i.useState)("desc"),[c,m]=(0,i.useState)(!1),{data:u,isLoading:p,error:x}=(0,t1.useQuery)({queryKey:["guardrails-usage-overview",s,a],queryFn:()=>(0,w.getGuardrailsUsageOverview)(e,s,a),enabled:!!e}),h=u?.rows??[],g=(0,i.useMemo)(()=>{let e,t,s,a;return u?{totalRequests:u.totalRequests??0,totalBlocked:u.totalBlocked??0,passRate:String(u.passRate??0),avgLatency:h.length?Math.round(h.reduce((e,t)=>e+(t.avgLatency??0),0)/h.length):0,count:h.length}:(e=h.reduce((e,t)=>e+t.requestsEvaluated,0),t=h.reduce((e,t)=>e+Math.round(t.requestsEvaluated*t.failRate/100),0),s=e>0?((1-t/e)*100).toFixed(1):"0",{totalRequests:e,totalBlocked:t,passRate:s,avgLatency:(a=h.filter(e=>null!=e.avgLatency)).length>0?Math.round(a.reduce((e,t)=>e+(t.avgLatency??0),0)/a.length):0,count:h.length})},[u,h]),y=u?.chart,j=(0,i.useMemo)(()=>[...h].sort((e,t)=>{let s="desc"===o?-1:1,a=e[r]??0,l=t[r]??0;return(Number(a)-Number(l))*s}),[h,r,o]),f=[{title:"Guardrail",dataIndex:"name",key:"name",render:(e,s)=>(0,t.jsx)("button",{type:"button",className:"text-sm font-medium text-gray-900 hover:text-indigo-600 text-left",onClick:()=>l(s.id),children:e})},{title:"Provider",dataIndex:"provider",key:"provider",render:e=>(0,t.jsx)("span",{className:`inline-flex items-center px-2 py-0.5 text-xs font-medium rounded border ${sc[e]??sc.Custom}`,children:e})},{title:"Requests",dataIndex:"requestsEvaluated",key:"requestsEvaluated",align:"right",sorter:!0,sortOrder:"requestsEvaluated"===r?"desc"===o?"descend":"ascend":null,render:e=>e.toLocaleString()},{title:"Fail Rate",dataIndex:"failRate",key:"failRate",align:"right",sorter:!0,sortOrder:"failRate"===r?"desc"===o?"descend":"ascend":null,render:(e,s)=>(0,t.jsxs)("span",{className:e>15?"text-red-600":e>5?"text-amber-600":"text-green-600",children:[e,"%","up"===s.trend&&(0,t.jsx)("span",{className:"ml-1 text-xs text-red-400",children:"↑"}),"down"===s.trend&&(0,t.jsx)("span",{className:"ml-1 text-xs text-green-400",children:"↓"})]})},{title:"Avg. latency added",dataIndex:"avgLatency",key:"avgLatency",align:"right",sorter:!0,sortOrder:"avgLatency"===r?"desc"===o?"descend":"ascend":null,render:e=>(0,t.jsx)("span",{className:null==e?"text-gray-400":e>150?"text-red-600":e>50?"text-amber-600":"text-green-600",children:null!=e?`${e}ms`:"—"})},{title:"Status",dataIndex:"status",key:"status",align:"center",render:e=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:`w-2 h-2 rounded-full ${"healthy"===e?"bg-green-500":"warning"===e?"bg-amber-500":"bg-red-500"}`}),(0,t.jsx)("span",{className:"text-xs text-gray-600 capitalize",children:e})]})}],b=["failRate","requestsEvaluated","avgLatency"];return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-start justify-between mb-5",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,t.jsx)(tX.SafetyOutlined,{className:"text-lg text-indigo-500"}),(0,t.jsx)("h1",{className:"text-xl font-semibold text-gray-900",children:"Guardrails Monitor"})]}),(0,t.jsx)("p",{className:"text-sm text-gray-500",children:"Monitor guardrail performance across all requests"})]}),(0,t.jsx)("div",{className:"flex items-center gap-3",children:(0,t.jsx)(V.Button,{type:"default",icon:(0,t.jsx)(tS.DownloadOutlined,{}),title:"Coming soon",children:"Export Data"})})]}),(0,t.jsxs)(t_.Row,{gutter:[16,16],className:"mb-6",children:[(0,t.jsx)(tv.Col,{xs:12,sm:12,md:8,flex:"1 0 20%",children:(0,t.jsx)(ss,{label:"Total Evaluations",value:g.totalRequests.toLocaleString()})}),(0,t.jsx)(tv.Col,{xs:12,sm:12,md:8,flex:"1 0 20%",children:(0,t.jsx)(ss,{label:"Blocked Requests",value:g.totalBlocked.toLocaleString(),valueColor:"text-red-600",icon:(0,t.jsx)(t0.WarningOutlined,{className:"text-red-400"})})}),(0,t.jsx)(tv.Col,{xs:12,sm:12,md:8,flex:"1 0 20%",children:(0,t.jsx)(ss,{label:"Pass Rate",value:`${g.passRate}%`,valueColor:"text-green-600",icon:(0,t.jsx)(si,{className:"text-green-400"})})}),(0,t.jsx)(tv.Col,{xs:12,sm:12,md:8,flex:"1 0 20%",children:(0,t.jsx)(ss,{label:"Avg. latency added",value:`${g.avgLatency}ms`,valueColor:g.avgLatency>150?"text-red-600":g.avgLatency>50?"text-amber-600":"text-green-600"})}),(0,t.jsx)(tv.Col,{xs:12,sm:12,md:8,flex:"1 0 20%",children:(0,t.jsx)(ss,{label:"Active Guardrails",value:g.count})})]}),(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsx)(sd,{data:y})}),(0,t.jsxs)(ts.Card,{className:"border border-gray-200 rounded-lg bg-white",styles:{body:{padding:0}},children:[(p||x)&&(0,t.jsxs)("div",{className:"px-6 py-4 border-b border-gray-200 flex items-center gap-2",children:[p&&(0,t.jsx)(eF.Spin,{size:"small"}),x&&(0,t.jsx)("span",{className:"text-sm text-red-600",children:"Failed to load data. Try again."})]}),(0,t.jsxs)("div",{className:"px-6 py-4 border-b border-gray-200 flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(sn.Typography.Title,{level:5,className:"!mb-0 text-gray-900",children:"Guardrail Performance"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mt-0.5",children:"Click a guardrail to view details, logs, and configuration"})]}),(0,t.jsx)("div",{className:"flex items-center gap-2",children:(0,t.jsx)(V.Button,{type:"default",icon:(0,t.jsx)(tZ.SettingOutlined,{}),onClick:()=>m(!0),title:"Evaluation settings"})})]}),(0,t.jsx)(te.Table,{columns:f,dataSource:j,rowKey:"id",pagination:!1,loading:p,onChange:(e,t,s)=>{s?.field&&b.includes(s.field)&&(n(s.field),d("ascend"===s.order?"asc":"desc"))},locale:0!==h.length||p?void 0:{emptyText:"No data for this period"},onRow:e=>({onClick:()=>l(e.id),style:{cursor:"pointer"}})})]}),(0,t.jsx)(t8,{open:c,onClose:()=>m(!1),accessToken:e})]})}let su=new Date,sp=new Date;function sx({accessToken:e=null}){let[s,a]=(0,i.useState)({type:"overview"}),l=(0,i.useMemo)(()=>new Date(sp),[]),r=(0,i.useMemo)(()=>new Date(su),[]),[n,o]=(0,i.useState)({from:l,to:r}),d=n.from?(0,w.formatDate)(n.from):"",c=n.to?(0,w.formatDate)(n.to):"",m=(0,i.useCallback)(e=>{o(e)},[]);return(0,t.jsxs)("div",{className:"p-6 w-full min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"flex items-center justify-end mb-4",children:(0,t.jsx)(tY.default,{value:n,onValueChange:m,label:"",showTimeRange:!1})}),"overview"===s.type?(0,t.jsx)(sm,{accessToken:e,startDate:d,endDate:c,onSelectGuardrail:e=>{a({type:"detail",guardrailId:e})}}):(0,t.jsx)(sl,{guardrailId:s.guardrailId,onBack:()=>{a({type:"overview"})},accessToken:e,startDate:d,endDate:c})]})}sp.setDate(sp.getDate()-7);var sh=e.i(487304),sg=e.i(760221);e.i(111790);var sy=e.i(280881),sj=e.i(934879),sf=e.i(402874),sb=e.i(797305),s_=e.i(109799),sv=e.i(747871),sw=e.i(56567),sk=e.i(468133),sN=e.i(645526),sS=e.i(91979),sC=e.i(525720),sT=e.i(372943),sI=e.i(95684),sF=e.i(497650),sL=e.i(368869),sA=e.i(998573),sM=e.i(438100),sP=e.i(475254);let sD=(0,sP.default)("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);var sz=e.i(988846),sE=e.i(98740),sE=sE;function sO({size:e,fontSize:s}){let a=(0,t.jsx)(tw.LoadingOutlined,{style:s?{fontSize:s}:void 0,spin:!0});return(0,t.jsx)(eF.Spin,{indicator:a,size:e})}var sR=e.i(363256),sB=e.i(9314),s$=e.i(552130),sq=e.i(533882),sU=e.i(651904),sV=e.i(460285),sH=e.i(435451),sG=e.i(916940),sK=e.i(471145),sW=e.i(127952),sQ=e.i(162386);let sY=(e,t,s)=>"Admin"===e||!!s&&!!t&&s.some(e=>e.members?.some(e=>e.user_id===t&&"org_admin"===e.user_role)),sJ=(e,t,s)=>"Admin"===e?s||[]:s&&t?s.filter(e=>e.members?.some(e=>e.user_id===t&&"org_admin"===e.user_role)):[],sX=({teams:e,searchParams:s,accessToken:a,setTeams:l,userID:r,userRole:n,organizations:o,premiumUser:d=!1})=>{let c,m,u,p;console.log(`organizations: ${JSON.stringify(o)}`);let{data:x}=(0,s_.useOrganizations)(),[h,g]=(0,i.useState)(!0),[j,b]=(0,i.useState)(null),[v,C]=(0,i.useState)(1),[T,F]=(0,i.useState)(10),[L,A]=(0,i.useState)(0),[M,P]=(0,i.useState)(null),[D,z]=(0,i.useState)(null),[O,R]=(0,i.useState)({search:"",organization_id:"",sort_by:"created_at",sort_order:"desc"}),$=(0,i.useRef)(null),[q,G]=(0,i.useState)(!1),K=async(e={})=>{if(!a)return;let t=e.page??v,s=e.size??T,i=e.sortBy??O.sort_by,o=e.sortOrder??O.sort_order,d=e.organizationID??O.organization_id,c=e.search??O.search;g(!0),b(null);try{let e=await (0,eV.teamListCall)(a,t,s,{organizationID:d||null,search:c||null,userID:"Admin"!==n&&"Admin Viewer"!==n?r:null,sortBy:i||null,sortOrder:o||null});l(e.teams??[]),A(e.total??0)}catch(e){b(e?.message||"Failed to fetch teams")}finally{g(!1)}};(0,i.useEffect)(()=>{K()},[a]);let[W]=k.Form.useForm(),[Q]=k.Form.useForm(),[Y,J]=(0,i.useState)(""),[X,Z]=(0,i.useState)(!1),[ee,et]=(0,i.useState)(null),[es,ea]=(0,i.useState)(null),[el,er]=(0,i.useState)(!1),[ei,en]=(0,i.useState)(!1),[eo,ed]=(0,i.useState)(!1),[ec,em]=(0,i.useState)(!1),[eu,ep]=(0,i.useState)([]),[ex,eh]=(0,i.useState)(!1),[eg,ef]=(0,i.useState)(null),[eb,e_]=(0,i.useState)([]),[ev,ek]=(0,i.useState)({}),[eN,eS]=(0,i.useState)(!1),[eC,eT]=(0,i.useState)([]),[eI,eF]=(0,i.useState)([]),[eL,eA]=(0,i.useState)([]),[eM,eP]=(0,i.useState)([]),[eD,ez]=(0,i.useState)(!1),[eB,e$]=(0,i.useState)({}),[eq,eU]=(0,i.useState)(null),[eH,eY]=(0,i.useState)(0);(0,i.useEffect)(()=>{let e;console.log(`currentOrgForCreateTeam: ${D}`);let t=(e=[],D&&D.models.length>0?(console.log(`organization.models: ${D.models}`),e=D.models):e=eu,(0,B.unfurlWildcardModelsInList)(e,eu));console.log(`models: ${t}`),e_(t),W.setFieldValue("models",[])},[D,eu]),(0,i.useEffect)(()=>{if(ei){let e=sJ(n,r,o);if(1===e.length){let t=e[0];W.setFieldValue("organization_id",t.organization_id),z(t)}else W.setFieldValue("organization_id",M?.organization_id||null),z(M)}},[ei,n,r,o,M]),(0,i.useEffect)(()=>{let e=async()=>{try{if(null==a)return;let e=(await (0,w.getPoliciesList)(a)).policies.map(e=>e.policy_name);eF(e)}catch(e){console.error("Failed to fetch policies:",e)}};(async()=>{try{if(null==a)return;let e=(await (0,w.getGuardrailsList)(a)).guardrails.map(e=>e.guardrail_name);eT(e)}catch(e){console.error("Failed to fetch guardrails:",e)}})(),e()},[a]);let eJ=async()=>{try{if(null==a)return;let e=await (0,w.fetchMCPAccessGroups)(a);eP(e)}catch(e){console.error("Failed to fetch MCP access groups:",e)}};(0,i.useEffect)(()=>{eJ()},[a]),(0,i.useEffect)(()=>{e&&ek(e.reduce((e,t)=>(e[t.team_id]={keys:t.keys||[],team_info:{members_with_roles:t.members_with_roles||[]}},e),{}))},[e]);let eX=async e=>{ef(e),eh(!0)},eZ=async()=>{if(null!=eg&&null!=e&&null!=a)try{eS(!0),await (0,w.teamDeleteCall)(a,eg.team_id),await K(),eE.default.success("Team deleted successfully")}catch(e){eE.default.fromBackend("Error deleting the team: "+e)}finally{eS(!1),eh(!1),ef(null)}};(0,i.useEffect)(()=>{(async()=>{try{if(null===r||null===n||null===a)return;let e=await (0,B.fetchAvailableModelsForTeamOrKey)(r,n,a);e&&ep(e)}catch(e){console.error("Error fetching user models:",e)}})()},[a,r,n,e]);let e0=async t=>{try{if(console.log(`formValues: ${JSON.stringify(t)}`),null!=a){let s=t?.team_alias,l=e?.map(e=>e.team_alias)??[],r=t?.organization_id||M?.organization_id;if(""===r||"string"!=typeof r?t.organization_id=null:t.organization_id=r.trim(),l.includes(s))throw Error(`Team alias ${s} already exists, please pick another alias`);if(eE.default.info("Creating Team"),eL.length>0){let e={};if(t.metadata)try{e=JSON.parse(t.metadata)}catch(e){console.warn("Invalid JSON in metadata field, starting with empty object")}e={...e,logging:eL.filter(e=>e.callback_name)},t.metadata=JSON.stringify(e)}if(t.secret_manager_settings&&"string"==typeof t.secret_manager_settings)if(""===t.secret_manager_settings.trim())delete t.secret_manager_settings;else try{t.secret_manager_settings=JSON.parse(t.secret_manager_settings)}catch(e){throw Error("Failed to parse secret manager settings: "+e)}let i=Array.isArray(t.object_permission_search_tools)&&t.object_permission_search_tools.length>0;if(t.allowed_vector_store_ids&&t.allowed_vector_store_ids.length>0||t.allowed_mcp_servers_and_groups&&(t.allowed_mcp_servers_and_groups.servers?.length>0||t.allowed_mcp_servers_and_groups.accessGroups?.length>0||t.allowed_mcp_servers_and_groups.toolPermissions)){if(t.object_permission||(t.object_permission={}),t.allowed_vector_store_ids&&t.allowed_vector_store_ids.length>0&&(t.object_permission.vector_stores=t.allowed_vector_store_ids,delete t.allowed_vector_store_ids),t.allowed_mcp_servers_and_groups){let{servers:e,accessGroups:s}=t.allowed_mcp_servers_and_groups;e&&e.length>0&&(t.object_permission.mcp_servers=e),s&&s.length>0&&(t.object_permission.mcp_access_groups=s),delete t.allowed_mcp_servers_and_groups}t.mcp_tool_permissions&&Object.keys(t.mcp_tool_permissions).length>0&&(t.object_permission.mcp_tool_permissions=t.mcp_tool_permissions,delete t.mcp_tool_permissions)}if(t.allowed_mcp_access_groups&&t.allowed_mcp_access_groups.length>0&&(t.object_permission||(t.object_permission={}),t.object_permission.mcp_access_groups=t.allowed_mcp_access_groups,delete t.allowed_mcp_access_groups),t.allowed_agents_and_groups){let{agents:e,accessGroups:s}=t.allowed_agents_and_groups;t.object_permission||(t.object_permission={}),e&&e.length>0&&(t.object_permission.agents=e),s&&s.length>0&&(t.object_permission.agent_access_groups=s),delete t.allowed_agents_and_groups}i&&(t.object_permission||(t.object_permission={}),t.object_permission.search_tools=t.object_permission_search_tools,delete t.object_permission_search_tools),Object.keys(eB).length>0&&(t.model_aliases=eB),eq?.router_settings&&Object.values(eq.router_settings).some(e=>null!=e&&""!==e)&&(t.router_settings=eq.router_settings),await (0,w.teamCreateCall)(a,t),eE.default.success("Team created"),await K({page:v,size:T}),W.resetFields(),eA([]),e$({}),eU(null),eY(e=>e+1),en(!1)}}catch(e){console.error("Error creating the team:",e),eE.default.fromBackend("Error creating the team: "+e)}},e1=async(e,t)=>{let s={...O,[e]:t};if(R(s),C(1),a)try{let e=await (0,eV.teamListCall)(a,1,T,{organizationID:s.organization_id||null,search:s.search||null,userID:"Admin"!==n&&"Admin Viewer"!==n?r:null,sortBy:s.sort_by||null,sortOrder:s.sort_order||null});l(e.teams??[]),A(e.total??0)}catch(e){console.error("Error fetching teams:",e)}},{token:e2}=sL.theme.useToken(),{Title:e4,Text:e5}=sn.Typography,{Content:e6}=sT.Layout,e3=(0,i.useMemo)(()=>[{title:"Team ID",dataIndex:"team_id",key:"team_id",width:170,ellipsis:!0,render:(e,s)=>(0,t.jsx)(f.Tooltip,{title:e,children:(0,t.jsx)(e5,{ellipsis:!0,className:"text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs cursor-pointer",style:{fontSize:14,padding:"1px 8px"},onClick:()=>ea(s.team_id),"data-testid":"team-id-cell",children:e})})},{title:"Team Alias",dataIndex:"team_alias",key:"team_alias",ellipsis:!0,sorter:!0,render:e=>(0,t.jsx)(e5,{style:{fontSize:14},children:e||(0,t.jsx)(e5,{type:"secondary",italic:!0,children:"—"})})},{title:"Organization",key:"organization",width:160,ellipsis:!0,render:(e,s)=>{let a=((e,t)=>{if(!e||!t)return e||"N/A";let s=t.find(t=>t.organization_id===e);return s?.organization_alias||e})(s.organization_id,x||o);return s.organization_id?(0,t.jsx)(e5,{ellipsis:!0,style:{fontSize:14},children:a}):(0,t.jsx)(e5,{type:"secondary",children:"—"})}},{title:"Resources",key:"resources",width:240,render:(e,s)=>{let a=ev?.[s.team_id]?.team_info?.members_with_roles?.length??0,l=s.models?.length??0,r=ev?.[s.team_id]?.keys?.length??0;return(0,t.jsxs)(sC.Flex,{gap:12,align:"center",children:[(0,t.jsx)(f.Tooltip,{title:`${a} Members`,children:(0,t.jsx)(I.Tag,{color:"purple",style:{fontSize:14,padding:"2px 8px",margin:0},children:(0,t.jsxs)(sC.Flex,{align:"center",gap:6,children:[(0,t.jsx)(sE.default,{size:14}),a]})})}),(0,t.jsx)(f.Tooltip,{title:`${l} Models`,children:(0,t.jsx)(I.Tag,{color:"blue",style:{fontSize:14,padding:"2px 8px",margin:0},children:(0,t.jsxs)(sC.Flex,{align:"center",gap:6,children:[(0,t.jsx)(sD,{size:14}),l]})})}),(0,t.jsx)(f.Tooltip,{title:`${r} Keys`,children:(0,t.jsx)(I.Tag,{color:"cyan",style:{fontSize:14,padding:"2px 8px",margin:0},children:(0,t.jsxs)(sC.Flex,{align:"center",gap:6,children:[(0,t.jsx)(sM.KeyIcon,{size:14}),r]})})})]})}},{title:"Spend / Budget",key:"spend",width:200,sorter:!0,render:(e,s)=>{let a=s.spend??0,l=s.max_budget,r=`$${a.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})}`,i=null!=l?`$${l.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})}`:"Unlimited",n=null!=l&&l>0?Math.min(a/l*100,100):null;return(0,t.jsxs)(sC.Flex,{vertical:!0,gap:2,children:[(0,t.jsxs)(e5,{style:{fontSize:13},children:[r,(0,t.jsxs)(e5,{type:"secondary",style:{fontSize:12},children:[" / ",i]})]}),null!=n&&(0,t.jsx)(sF.Progress,{percent:n,size:"small",showInfo:!1,strokeColor:n>=90?"#ff4d4f":n>=70?"#faad14":"#1677ff",style:{marginBottom:0}})]})}},{title:"Created",dataIndex:"created_at",key:"created_at",width:130,ellipsis:!0,sorter:!0,render:e=>(0,t.jsx)(e5,{type:"secondary",style:{fontSize:13},children:e?new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}):"—"})},{title:"Actions",key:"actions",width:120,align:"right",render:(e,s)=>(0,t.jsxs)(U.Space,{size:4,children:[(0,t.jsx)(eR.default,{variant:"Copy",tooltipText:"Copy Team ID",onClick:()=>{navigator.clipboard.writeText(s.team_id).then(()=>sA.message.success("Team ID copied")).catch(()=>sA.message.error("Failed to copy"))}}),"Admin"===n&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eR.default,{variant:"Edit",tooltipText:"Edit team",dataTestId:"edit-team-button",onClick:()=>{ea(s.team_id),er(!0)}}),(0,t.jsx)(eR.default,{variant:"Delete",tooltipText:"Delete team",dataTestId:"delete-team-button",onClick:()=>eX(s)})]})]})}],[n,ev,x,o]),e8=(0,i.useMemo)(()=>e??[],[e]),e7=[{key:"your-teams",label:"Your Teams",children:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(ts.Card,{styles:{body:{padding:0}},children:[(0,t.jsxs)(sC.Flex,{justify:"space-between",align:"center",style:{padding:"12px 16px"},children:[(0,t.jsxs)(sC.Flex,{gap:12,align:"center",children:[(0,t.jsx)(S.Input,{prefix:(0,t.jsx)(sz.SearchIcon,{size:16}),suffix:q?(0,t.jsx)(sO,{size:"small"}):null,placeholder:"Search teams by name or ID...",onChange:e=>{var t;return t=e.target.value,void($.current&&clearTimeout($.current),G(!0),$.current=setTimeout(async()=>{try{R(e=>({...e,search:t})),C(1),await K({page:1,search:t})}finally{G(!1)}},300))},allowClear:!0,style:{maxWidth:400}}),(0,t.jsx)(sR.default,{organizations:o,value:O.organization_id||void 0,onChange:e=>e1("organization_id",e||""),loading:h})]}),(0,t.jsx)(sI.Pagination,{current:v,total:L,pageSize:T,onChange:(e,t)=>{C(e),F(t),K({page:e,size:t})},size:"small",showTotal:e=>`${e} teams`,showSizeChanger:!0,pageSizeOptions:["10","20","50"]})]}),h?(0,t.jsx)(sC.Flex,{justify:"center",align:"center",style:{padding:"80px 0"},children:(0,t.jsx)(sO,{fontSize:48})}):j?(0,t.jsxs)(sC.Flex,{vertical:!0,align:"center",gap:16,style:{padding:"64px 0"},children:[(0,t.jsx)(e5,{type:"danger",style:{fontSize:15},children:"Failed to load teams"}),(0,t.jsx)(e5,{type:"secondary",style:{fontSize:13},children:j}),(0,t.jsx)(V.Button,{icon:(0,t.jsx)(sS.ReloadOutlined,{}),onClick:()=>{K()},children:"Retry"})]}):(0,t.jsx)(te.Table,{columns:e3,dataSource:e8,rowKey:"team_id",pagination:!1,onChange:(e,t,s)=>{let a=Array.isArray(s)?s[0]:s,l=a.order?a.columnKey:"created_at",r="ascend"===a.order?"asc":(a.order,"desc");R(e=>({...e,sort_by:l,sort_order:r})),K({sortBy:l,sortOrder:r})},locale:{emptyText:(0,t.jsxs)("div",{style:{padding:"64px 0",textAlign:"center"},children:[(0,t.jsx)(sN.TeamOutlined,{style:{fontSize:40,color:"#d9d9d9",marginBottom:12}}),(0,t.jsx)("div",{children:(0,t.jsx)(e5,{style:{fontSize:15,color:"#595959"},children:"No teams yet"})}),(0,t.jsx)("div",{style:{marginTop:4},children:(0,t.jsx)(e5,{type:"secondary",style:{fontSize:13},children:"Create your first team to organize members and manage access to models."})}),sY(n,r,o)&&(0,t.jsx)(V.Button,{type:"primary",icon:(0,t.jsx)(H.PlusOutlined,{}),onClick:()=>en(!0),style:{marginTop:16},"data-testid":"create-team-button",children:"Create Team"})]})},scroll:{x:1e3},size:"middle"})]}),(0,t.jsx)(sW.default,{isOpen:ex,title:"Delete Team?",alertMessage:eg?.keys?.length===0?void 0:`Warning: This team has ${eg?.keys?.length} keys associated with it. Deleting the team will also delete all associated keys. This action is irreversible.`,message:"Are you sure you want to delete this team and all its keys? This action cannot be undone.",resourceInformationTitle:"Team Information",resourceInformation:[{label:"Team ID",value:eg?.team_id,code:!0},{label:"Team Name",value:eg?.team_alias},{label:"Keys",value:eg?.keys?.length},{label:"Members",value:eg?.members_with_roles?.length}],requiredConfirmation:eg?.team_alias,onCancel:()=>{eh(!1),ef(null)},onOk:eZ,confirmLoading:eN})]})},{key:"available-teams",label:"Available Teams",children:(0,t.jsx)(sv.default,{accessToken:a,userID:r})},...(0,ew.isProxyAdminRole)(n||"")?[{key:"default-settings",label:"Default Team Settings",children:(0,t.jsx)(sk.default,{accessToken:a,userID:r||"",userRole:n||""})}]:[]];return(0,t.jsxs)(e6,{style:{padding:e2.paddingLG,paddingInline:2*e2.paddingLG},children:[es?(0,t.jsx)(sw.default,{teamId:es,onUpdate:e=>{l(t=>null==t?t:t.map(t=>e.team_id===t.team_id?(0,eO.updateExistingKeys)(t,e):t)),K()},onClose:()=>{ea(null),er(!1)},accessToken:a,is_team_admin:(e=>{if(null==e||null==e.members_with_roles)return!1;for(let t=0;te.team_id===es)),is_proxy_admin:"Admin"==n,userModels:eu,editTeam:el,premiumUser:d}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(sC.Flex,{justify:"space-between",align:"center",style:{marginBottom:16},children:[(0,t.jsxs)(U.Space,{direction:"vertical",size:0,children:[(0,t.jsxs)(e4,{level:2,style:{margin:0},children:[(0,t.jsx)(sN.TeamOutlined,{style:{marginRight:8}}),"Teams"]}),(0,t.jsx)(e5,{type:"secondary",children:"Manage teams, members, and their access to models and budgets"})]}),sY(n,r,o)&&(0,t.jsx)(V.Button,{type:"primary",icon:(0,t.jsx)(H.PlusOutlined,{}),onClick:()=>en(!0),"data-testid":"create-team-button",children:"Create Team"})]}),(0,t.jsx)(t2.Tabs,{items:e7})]}),sY(n,r,o)&&(0,t.jsx)(y.Modal,{title:"Create Team",open:ei,width:1e3,footer:null,onOk:()=>{en(!1),W.resetFields(),eA([]),e$({}),eU(null),eY(e=>e+1)},onCancel:()=>{en(!1),W.resetFields(),eA([]),e$({}),eU(null),eY(e=>e+1)},children:(0,t.jsxs)(k.Form,{form:W,onFinish:e0,labelCol:{span:8},wrapperCol:{span:16},labelAlign:"left",children:[(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(k.Form.Item,{label:"Team Name",name:"team_alias",rules:[{required:!0,message:"Please input a team name"}],children:(0,t.jsx)(eQ.TextInput,{placeholder:"","data-testid":"team-name-input"})}),(c=sJ(n,r,o),m="Admin"!==n,u=1===c.length,p=0===c.length,(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{children:["Organization"," ",(0,t.jsx)(f.Tooltip,{title:(0,t.jsxs)("span",{children:["Organizations can have multiple teams. Learn more about"," ",(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/user_management_heirarchy",target:"_blank",rel:"noopener noreferrer",style:{color:"#1890ff",textDecoration:"underline"},onClick:e=>e.stopPropagation(),children:"user management hierarchy"})]}),children:(0,t.jsx)(E.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"organization_id",initialValue:M?M.organization_id:null,className:"mt-8",rules:m?[{required:!0,message:"Please select an organization"}]:[],help:u?"You can only create teams within this organization":m?"required":"",children:(0,t.jsx)(N.Select,{showSearch:!0,allowClear:!m,disabled:u,placeholder:p?"No organizations available":"Search or select an Organization",onChange:e=>{W.setFieldValue("organization_id",e),z(c?.find(t=>t.organization_id===e)||null)},filterOption:(e,t)=>!!t&&(t.children?.toString()||"").toLowerCase().includes(e.toLowerCase()),optionFilterProp:"children",children:c?.map(e=>(0,t.jsxs)(N.Select.Option,{value:e.organization_id,children:[(0,t.jsx)("span",{className:"font-medium",children:e.organization_alias})," ",(0,t.jsxs)("span",{className:"text-gray-500",children:["(",e.organization_id,")"]})]},e.organization_id))})}),m&&!u&&c.length>1&&(0,t.jsx)("div",{className:"mb-8 p-4 bg-blue-50 border border-blue-200 rounded-md",children:(0,t.jsx)(e5,{style:{color:"#1e40af",fontSize:14},children:"Please select an organization to create a team for. You can only create teams within organizations where you are an admin."})})]})),(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{children:["Models"," ",(0,t.jsx)(f.Tooltip,{title:"These are the models that your selected team has access to",children:(0,t.jsx)(E.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),rules:[{required:!0,message:"Please select at least one model"}],name:"models",children:(0,t.jsx)(sQ.ModelSelect,{value:W.getFieldValue("models")||[],onChange:e=>W.setFieldValue("models",e),organizationID:W.getFieldValue("organization_id"),options:{includeSpecialOptions:!0,showAllProxyModelsOverride:!W.getFieldValue("organization_id")},context:"team",dataTestId:"create-team-models-select"})}),(0,t.jsx)(k.Form.Item,{label:"Max Budget (USD)",name:"max_budget",children:(0,t.jsx)(sH.default,{step:.01,precision:2,width:200})}),(0,t.jsx)(k.Form.Item,{className:"mt-8",label:"Reset Budget",name:"budget_duration",children:(0,t.jsxs)(N.Select,{defaultValue:null,placeholder:"n/a",children:[(0,t.jsx)(N.Select.Option,{value:"24h",children:"daily"}),(0,t.jsx)(N.Select.Option,{value:"7d",children:"weekly"}),(0,t.jsx)(N.Select.Option,{value:"30d",children:"monthly"})]})}),(0,t.jsx)(k.Form.Item,{label:"Tokens per minute Limit (TPM)",name:"tpm_limit",children:(0,t.jsx)(sH.default,{step:1,width:400})}),(0,t.jsx)(k.Form.Item,{label:"Requests per minute Limit (RPM)",name:"rpm_limit",children:(0,t.jsx)(sH.default,{step:1,width:400})}),(0,t.jsxs)(eG.Accordion,{className:"mt-20 mb-8",onClick:()=>{eD||(eJ(),ez(!0))},children:[(0,t.jsx)(eK.AccordionHeader,{children:(0,t.jsx)("b",{children:"Additional Settings"})}),(0,t.jsxs)(eW.AccordionBody,{children:[(0,t.jsx)(k.Form.Item,{label:"Team ID",name:"team_id",help:"ID of the team you want to create. If not provided, it will be generated automatically.",children:(0,t.jsx)(eQ.TextInput,{onChange:e=>{e.target.value=e.target.value.trim()}})}),(0,t.jsx)(k.Form.Item,{label:"Team Member Budget (USD)",name:"team_member_budget",normalize:e=>e?Number(e):void 0,tooltip:"This is the individual budget for a user in the team.",children:(0,t.jsx)(sH.default,{step:.01,precision:2,width:200})}),(0,t.jsx)(k.Form.Item,{label:"Team Member Key Duration (eg: 1d, 1mo)",name:"team_member_key_duration",tooltip:"Set a limit to the duration of a team member's key. Format: 30s (seconds), 30m (minutes), 30h (hours), 30d (days), 1mo (month)",children:(0,t.jsx)(eQ.TextInput,{placeholder:"e.g., 30d"})}),(0,t.jsx)(k.Form.Item,{label:"Team Member RPM Limit",name:"team_member_rpm_limit",tooltip:"The RPM (Requests Per Minute) limit for individual team members",children:(0,t.jsx)(sH.default,{step:1,width:400})}),(0,t.jsx)(k.Form.Item,{label:"Team Member TPM Limit",name:"team_member_tpm_limit",tooltip:"The TPM (Tokens Per Minute) limit for individual team members",children:(0,t.jsx)(sH.default,{step:1,width:400})}),(0,t.jsx)(k.Form.Item,{label:"Metadata",name:"metadata",help:"Additional team metadata. Enter metadata as JSON object.",children:(0,t.jsx)(S.Input.TextArea,{rows:4})}),(0,t.jsx)(k.Form.Item,{label:"Secret Manager Settings",name:"secret_manager_settings",help:d?"Enter secret manager configuration as a JSON object.":"Premium feature - Upgrade to manage secret manager settings.",rules:[{validator:async(e,t)=>{if(!t)return Promise.resolve();try{return JSON.parse(t),Promise.resolve()}catch(e){return Promise.reject(Error("Please enter valid JSON"))}}}],children:(0,t.jsx)(S.Input.TextArea,{rows:4,placeholder:'{"namespace": "admin", "mount": "secret", "path_prefix": "litellm"}',disabled:!d})}),(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{children:["Guardrails"," ",(0,t.jsx)(f.Tooltip,{title:"Setup your first guardrail",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/guardrails/quick_start",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(E.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),name:"guardrails",className:"mt-8",help:"Select existing guardrails or enter new ones",children:(0,t.jsx)(N.Select,{mode:"tags",style:{width:"100%"},placeholder:"Select or enter guardrails",options:eC.map(e=>({value:e,label:e}))})}),(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{children:["Disable Global Guardrails"," ",(0,t.jsx)(f.Tooltip,{title:"When enabled, this team will bypass any guardrails configured to run on every request (global guardrails)",children:(0,t.jsx)(E.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"disable_global_guardrails",className:"mt-4",valuePropName:"checked",help:"Bypass global guardrails for this team",children:(0,t.jsx)(_.Switch,{disabled:!d,checkedChildren:d?"Yes":"Premium feature - Upgrade to disable global guardrails by team",unCheckedChildren:d?"No":"Premium feature - Upgrade to disable global guardrails by team"})}),(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{children:["Policies"," ",(0,t.jsx)(f.Tooltip,{title:"Apply policies to this team to control guardrails and other settings",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(E.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),name:"policies",className:"mt-8",help:"Select existing policies or enter new ones",children:(0,t.jsx)(N.Select,{mode:"tags",style:{width:"100%"},placeholder:"Select or enter policies",options:eI.map(e=>({value:e,label:e}))})}),(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{children:["Access Groups"," ",(0,t.jsx)(f.Tooltip,{title:"Assign access groups to this team. Access groups control which models, MCP servers, and agents this team can use",children:(0,t.jsx)(E.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"access_group_ids",className:"mt-8",help:"Select access groups to assign to this team",children:(0,t.jsx)(sB.default,{placeholder:"Select access groups (optional)"})}),(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{children:["Allowed Vector Stores"," ",(0,t.jsx)(f.Tooltip,{title:"Select which vector stores this team can access by default. Leave empty for access to all vector stores",children:(0,t.jsx)(E.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"allowed_vector_store_ids",className:"mt-8",help:"Select vector stores this team can access. Leave empty for access to all vector stores",children:(0,t.jsx)(sG.default,{onChange:e=>W.setFieldValue("allowed_vector_store_ids",e),value:W.getFieldValue("allowed_vector_store_ids"),accessToken:a||"",placeholder:"Select vector stores (optional)"})})]})]}),(0,t.jsxs)(eG.Accordion,{className:"mt-8 mb-8",children:[(0,t.jsx)(eK.AccordionHeader,{children:(0,t.jsx)("b",{children:"MCP Settings"})}),(0,t.jsxs)(eW.AccordionBody,{children:[(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{children:["Allowed MCP Servers"," ",(0,t.jsx)(f.Tooltip,{title:"Select which MCP servers or access groups this team can access",children:(0,t.jsx)(E.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"allowed_mcp_servers_and_groups",className:"mt-4",help:"Select MCP servers or access groups this team can access",children:(0,t.jsx)(ey.default,{onChange:e=>W.setFieldValue("allowed_mcp_servers_and_groups",e),value:W.getFieldValue("allowed_mcp_servers_and_groups"),accessToken:a||"",placeholder:"Select MCP servers or access groups (optional)"})}),(0,t.jsx)(k.Form.Item,{name:"mcp_tool_permissions",initialValue:{},hidden:!0,children:(0,t.jsx)(S.Input,{type:"hidden"})}),(0,t.jsx)(k.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.allowed_mcp_servers_and_groups!==t.allowed_mcp_servers_and_groups||e.mcp_tool_permissions!==t.mcp_tool_permissions,children:()=>(0,t.jsx)("div",{className:"mt-6",children:(0,t.jsx)(ej.default,{accessToken:a||"",selectedServers:W.getFieldValue("allowed_mcp_servers_and_groups")?.servers||[],toolPermissions:W.getFieldValue("mcp_tool_permissions")||{},onChange:e=>W.setFieldsValue({mcp_tool_permissions:e})})})})]})]}),(0,t.jsxs)(eG.Accordion,{className:"mt-8 mb-8",children:[(0,t.jsx)(eK.AccordionHeader,{children:(0,t.jsx)("b",{children:"Agent Settings"})}),(0,t.jsx)(eW.AccordionBody,{children:(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{children:["Allowed Agents"," ",(0,t.jsx)(f.Tooltip,{title:"Select which agents or access groups this team can access",children:(0,t.jsx)(E.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"allowed_agents_and_groups",className:"mt-4",help:"Select agents or access groups this team can access",children:(0,t.jsx)(s$.default,{onChange:e=>W.setFieldValue("allowed_agents_and_groups",e),value:W.getFieldValue("allowed_agents_and_groups"),accessToken:a||"",placeholder:"Select agents or access groups (optional)"})})})]}),(0,t.jsxs)(eG.Accordion,{className:"mt-8 mb-8",children:[(0,t.jsx)(eK.AccordionHeader,{children:(0,t.jsx)("b",{children:"Search Tool Settings"})}),(0,t.jsx)(eW.AccordionBody,{children:(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{children:["Allowed Search Tools"," ",(0,t.jsx)(f.Tooltip,{title:"Select which search tools this team can access. Leave empty to allow all search tools.",children:(0,t.jsx)(E.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"object_permission_search_tools",className:"mt-4",help:"Restrict which configured search tools keys on this team may call.",children:(0,t.jsx)(sK.default,{onChange:e=>W.setFieldValue("object_permission_search_tools",e),value:W.getFieldValue("object_permission_search_tools"),accessToken:a||"",placeholder:"Select search tools (optional, empty = all allowed)"})})})]}),(0,t.jsxs)(eG.Accordion,{className:"mt-8 mb-8",children:[(0,t.jsx)(eK.AccordionHeader,{children:(0,t.jsx)("b",{children:"Logging Settings"})}),(0,t.jsx)(eW.AccordionBody,{children:(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)(sU.default,{value:eL,onChange:eA,premiumUser:d})})})]}),(0,t.jsxs)(eG.Accordion,{className:"mt-8 mb-8",children:[(0,t.jsx)(eK.AccordionHeader,{children:(0,t.jsx)("b",{children:"Router Settings"})}),(0,t.jsx)(eW.AccordionBody,{children:(0,t.jsx)("div",{className:"mt-4 w-full",children:(0,t.jsx)(sV.default,{accessToken:a||"",value:eq||void 0,onChange:eU,modelData:eu.length>0?{data:eu.map(e=>({model_name:e}))}:void 0},eH)})})]},`router-settings-accordion-${eH}`),(0,t.jsxs)(eG.Accordion,{className:"mt-8 mb-8",children:[(0,t.jsx)(eK.AccordionHeader,{children:(0,t.jsx)("b",{children:"Model Aliases"})}),(0,t.jsx)(eW.AccordionBody,{children:(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsx)(e5,{type:"secondary",style:{fontSize:14,marginBottom:16,display:"block"},children:"Create custom aliases for models that can be used by team members in API calls. This allows you to create shortcuts for specific models."}),(0,t.jsx)(sq.default,{accessToken:a||"",initialModelAliases:eB,onAliasUpdate:e$,showExampleConfig:!1})]})})]})]}),(0,t.jsx)("div",{style:{textAlign:"right",marginTop:"10px"},children:(0,t.jsx)(V.Button,{htmlType:"submit","data-testid":"create-team-submit",children:"Create Team"})})]})})]})};var sZ=e.i(702597),s0=e.i(846835),s1=e.i(147612),s2=e.i(191403),s4=e.i(976883),s5=e.i(657688),s6=e.i(437902);let{Text:s3}=sn.Typography,s8=({litellmParams:e,accessToken:s,onTestComplete:a})=>{let[l,r]=(0,i.useState)(!0),[n,o]=(0,i.useState)(null),[d,c]=(0,i.useState)(!1);(0,i.useEffect)(()=>{(async()=>{r(!0);try{let t=await (0,w.testSearchToolConnection)(s,e);o(t),"success"===t.status&&eE.default.success("Connection test successful!")}catch(e){o({status:"error",message:e instanceof Error?e.message:"Unknown error occurred",error_type:"NetworkError"})}finally{r(!1),a&&a()}})()},[s,e,a]);let m=n?.message?(e=>{if(!e)return"Unknown error";let t=e.split("stack trace:")[0].trim().replace(/^litellm\.(.*?)Error:\s*/,"").replace(/^AuthenticationError:\s*/,"");if(t.includes("")||t.includes("(.*?)<\/title>/);return e?e[1]:t.includes("401")||t.includes("Authorization Required")?"Authentication failed: Invalid API key or credentials":"Authentication error - please check your API key"}return t.length>200?t.substring(0,200)+"...":t})(n.message):"Unknown error";return l?(0,t.jsx)("div",{style:{padding:"24px",borderRadius:"8px",backgroundColor:"#fff"},children:(0,t.jsxs)("div",{style:{textAlign:"center",padding:"32px 20px"},className:"jsx-dc9a0e2d897fe63b",children:[(0,t.jsx)("div",{style:{marginBottom:"16px"},className:"jsx-dc9a0e2d897fe63b loading-spinner",children:(0,t.jsx)("div",{style:{border:"3px solid #f3f3f3",borderTop:"3px solid #1890ff",borderRadius:"50%",width:"30px",height:"30px",animation:"spin 1s linear infinite",margin:"0 auto"},className:"jsx-dc9a0e2d897fe63b"})}),(0,t.jsxs)(s3,{style:{fontSize:"16px"},children:["Testing connection to ",e.search_provider||"search provider","..."]}),(0,t.jsx)(s6.default,{id:"dc9a0e2d897fe63b",children:"@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"})]})}):n?(0,t.jsxs)("div",{style:{padding:"24px",borderRadius:"8px",backgroundColor:"#fff"},children:["success"===n.status?(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"32px 20px"},children:[(0,t.jsx)("div",{style:{color:"#52c41a",fontSize:"24px",display:"flex",alignItems:"center"},children:(0,t.jsx)("svg",{viewBox:"64 64 896 896",focusable:"false","data-icon":"check-circle",width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z"})})}),(0,t.jsxs)("div",{style:{marginLeft:"12px"},children:[(0,t.jsxs)(s3,{type:"success",style:{fontSize:"18px",fontWeight:500,display:"block"},children:["Connection to ",e.search_provider," successful!"]}),n.test_query&&(0,t.jsxs)(s3,{style:{fontSize:"14px",color:"#666",marginTop:"8px",display:"block"},children:["Test query: ",(0,t.jsx)("code",{style:{backgroundColor:"#f0f0f0",padding:"2px 6px",borderRadius:"4px"},children:n.test_query})]}),void 0!==n.results_count&&(0,t.jsxs)(s3,{style:{fontSize:"14px",color:"#666",display:"block"},children:["Results retrieved: ",n.results_count]})]})]}):(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",marginBottom:"20px"},children:[(0,t.jsx)(t0.WarningOutlined,{style:{color:"#ff4d4f",fontSize:"24px",marginRight:"12px"}}),(0,t.jsxs)(s3,{type:"danger",style:{fontSize:"18px",fontWeight:500},children:["Connection to ",e.search_provider||"search provider"," failed"]})]}),(0,t.jsxs)("div",{style:{backgroundColor:"#fff2f0",border:"1px solid #ffccc7",borderRadius:"8px",padding:"16px",marginBottom:"20px",boxShadow:"0 1px 2px rgba(0, 0, 0, 0.03)"},children:[(0,t.jsxs)(s3,{strong:!0,style:{display:"block",marginBottom:"8px"},children:["Error:"," "]}),(0,t.jsx)(s3,{type:"danger",style:{fontSize:"14px",lineHeight:"1.5"},children:m}),n.error_type&&(0,t.jsx)("div",{style:{marginTop:"8px"},children:(0,t.jsxs)(s3,{style:{fontSize:"13px",color:"#666"},children:["Error type:"," ",(0,t.jsx)("code",{style:{backgroundColor:"#ffebee",padding:"2px 6px",borderRadius:"4px",color:"#d32f2f"},children:n.error_type})]})}),n.message&&(0,t.jsx)("div",{style:{marginTop:"12px"},children:(0,t.jsx)(V.Button,{type:"link",onClick:()=>c(!d),style:{paddingLeft:0,height:"auto"},children:d?"Hide Details":"Show Details"})})]}),d&&(0,t.jsxs)("div",{style:{marginBottom:"20px"},children:[(0,t.jsx)(s3,{strong:!0,style:{display:"block",marginBottom:"8px",fontSize:"15px"},children:"Full Error Details"}),(0,t.jsx)("pre",{style:{backgroundColor:"#f5f5f5",padding:"16px",borderRadius:"8px",fontSize:"13px",maxHeight:"200px",overflow:"auto",border:"1px solid #e8e8e8",lineHeight:"1.5",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:n.message})]}),(0,t.jsxs)("div",{style:{backgroundColor:"#fffbf0",border:"1px solid #ffe58f",borderLeft:"4px solid #faad14",borderRadius:"8px",padding:"16px"},children:[(0,t.jsx)(s3,{strong:!0,style:{display:"block",marginBottom:"8px",color:"#d48806"},children:"Troubleshooting tips:"}),(0,t.jsxs)("ul",{style:{margin:"8px 0",paddingLeft:"20px",color:"#ad6800"},children:[(0,t.jsx)("li",{style:{marginBottom:"6px"},children:"Verify your API key is correct and active"}),(0,t.jsx)("li",{style:{marginBottom:"6px"},children:"Check if the search provider service is operational"}),(0,t.jsx)("li",{style:{marginBottom:"6px"},children:"Ensure you have sufficient credits/quota with the provider"}),(0,t.jsx)("li",{style:{marginBottom:"6px"},children:"Review the provider's documentation for any additional requirements"})]})]})]})}),(0,t.jsx)(F.Divider,{style:{margin:"24px 0 16px"}}),(0,t.jsx)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:(0,t.jsx)(V.Button,{type:"link",href:"https://docs.litellm.ai/docs/search",target:"_blank",icon:(0,t.jsx)(E.InfoCircleOutlined,{}),children:"View Search Documentation"})})]}):null},{TextArea:s7}=S.Input,s9=({providerName:e,displayName:s})=>(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[(0,t.jsx)(s5.default,{src:`../ui/assets/logos/${e}.png`,alt:"",width:20,height:20,style:{marginRight:"8px",objectFit:"contain"},onError:e=>{e.currentTarget.style.display="none"}}),(0,t.jsx)("span",{children:s})]}),ae=({userRole:e,accessToken:s,onCreateSuccess:a,isModalVisible:l,setModalVisible:r})=>{let[o]=k.Form.useForm(),[d,c]=(0,i.useState)(!1),[m,u]=(0,i.useState)({}),[p,x]=(0,i.useState)(!1),[h,g]=(0,i.useState)(!1),[j,b]=(0,i.useState)(""),{data:_,isLoading:v}=(0,t1.useQuery)({queryKey:["searchProviders"],queryFn:()=>{if(!s)throw Error("Access Token required");return(0,w.fetchAvailableSearchProviders)(s)},enabled:!!s&&l}),S=_?.providers||[],C=async e=>{c(!0);try{let t={search_tool_name:e.search_tool_name,litellm_params:{search_provider:e.search_provider,api_key:e.api_key,api_base:e.api_base,timeout:e.timeout?parseFloat(e.timeout):void 0,max_retries:e.max_retries?parseInt(e.max_retries):void 0},search_tool_info:e.description?{description:e.description}:void 0};if(console.log("Creating search tool with payload:",t),null!=s){let e=await (0,w.createSearchTool)(s,t);eE.default.success("Search tool created successfully"),o.resetFields(),u({}),r(!1),a(e)}}catch(e){eE.default.error("Error creating search tool: "+e)}finally{c(!1)}},T=async()=>{try{await o.validateFields(["search_provider","api_key"]),g(!0),b(`test-${Date.now()}`),x(!0)}catch(e){eE.default.error("Please fill in Search Provider and API Key before testing")}};return(i.default.useEffect(()=>{l||u({})},[l]),(0,ew.isAdminRole)(e))?(0,t.jsxs)(y.Modal,{title:(0,t.jsxs)("div",{className:"flex items-center space-x-3 pb-4 border-b border-gray-100",children:[(0,t.jsx)("span",{className:"text-2xl",children:"🔍"}),(0,t.jsx)("h2",{className:"text-xl font-semibold text-gray-900",children:"Add New Search Tool"})]}),open:l,width:800,onCancel:()=>{o.resetFields(),u({}),r(!1)},footer:null,className:"top-8",styles:{body:{padding:"24px"},header:{padding:"24px 24px 0 24px",border:"none"}},children:[(0,t.jsx)("div",{className:"mt-6",children:(0,t.jsxs)(k.Form,{form:o,onFinish:C,onValuesChange:(e,t)=>u(t),layout:"vertical",className:"space-y-6",children:[(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-6",children:[(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Search Tool Name",(0,t.jsx)(f.Tooltip,{title:"A unique name to identify this search tool configuration (e.g., 'perplexity-search', 'tavily-news-search').",children:(0,t.jsx)(E.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"search_tool_name",rules:[{required:!0,message:"Please enter a search tool name"},{pattern:/^[a-zA-Z0-9_-]+$/,message:"Name can only contain letters, numbers, hyphens, and underscores"}],children:(0,t.jsx)(eQ.TextInput,{placeholder:"e.g., perplexity-search, my-tavily-tool",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["Search Provider",(0,t.jsx)(f.Tooltip,{title:"Select the search provider you want to use. Each provider has different capabilities and pricing.",children:(0,t.jsx)(E.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"search_provider",rules:[{required:!0,message:"Please select a search provider"}],children:(0,t.jsx)(N.Select,{placeholder:"Select a search provider",className:"rounded-lg",size:"large",loading:v,showSearch:!0,optionFilterProp:"children",optionLabelProp:"label",children:S.map(e=>(0,t.jsx)(N.Select.Option,{value:e.provider_name,label:(0,t.jsx)(s9,{providerName:e.provider_name,displayName:e.ui_friendly_name}),children:(0,t.jsx)(s9,{providerName:e.provider_name,displayName:e.ui_friendly_name})},e.provider_name))})}),(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{className:"text-sm font-medium text-gray-700 flex items-center",children:["API Key",(0,t.jsx)(f.Tooltip,{title:"The API key for authenticating with the search provider. This will be securely stored.",children:(0,t.jsx)(E.InfoCircleOutlined,{className:"ml-2 text-blue-400 hover:text-blue-600 cursor-help"})})]}),name:"api_key",rules:[{required:!1,message:"Please enter an API key"}],children:(0,t.jsx)(eQ.TextInput,{type:"password",placeholder:"Enter your API key",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})}),(0,t.jsx)(k.Form.Item,{label:(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700",children:"Description (Optional)"}),name:"description",children:(0,t.jsx)(s7,{rows:3,placeholder:"Brief description of this search tool's purpose",className:"rounded-lg border-gray-300 focus:border-blue-500 focus:ring-blue-500"})})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center pt-6 border-t border-gray-100",children:[(0,t.jsx)(f.Tooltip,{title:"Get help on our github",children:(0,t.jsx)(sn.Typography.Link,{href:"https://github.com/BerriAI/litellm/issues",target:"_blank",children:"Need Help?"})}),(0,t.jsxs)("div",{className:"space-x-2",children:[(0,t.jsx)(n.Button,{onClick:T,loading:h,children:"Test Connection"}),(0,t.jsx)(n.Button,{loading:d,type:"submit",children:"Add Search Tool"})]})]})]})}),(0,t.jsx)(y.Modal,{title:"Connection Test Results",open:p,onCancel:()=>{x(!1),g(!1)},footer:[(0,t.jsx)(n.Button,{onClick:()=>{x(!1),g(!1)},children:"Close"},"close")],width:700,children:p&&s&&(0,t.jsx)(s8,{litellmParams:{search_provider:m.search_provider,api_key:m.api_key,api_base:m.api_base},accessToken:s,onTestComplete:()=>g(!1)},j)})]}):null};var at=e.i(350967),as=e.i(678784),aa=e.i(118366),al=e.i(928685);let{Text:ar}=sn.Typography,ai=({searchToolName:e,accessToken:s,className:a=""})=>{let[l,r]=(0,i.useState)(""),[n,d]=(0,i.useState)(!1),[c,m]=(0,i.useState)([]),[u,p]=(0,i.useState)({}),[x,h]=(0,i.useState)(!1),g=async()=>{if(!l.trim())return void A.default.warning("Please enter a search query");d(!0);let t=performance.now();try{let a=await (0,w.searchToolQueryCall)(s,e,l),r=performance.now(),i=Math.round(r-t),n={query:l,response:a,timestamp:Date.now(),latency:i};m(e=>[n,...e])}catch(e){console.error("Error querying search tool:",e),eE.default.fromBackend("Failed to query search tool")}finally{d(!1)}},y=e=>new Date(e).toLocaleString(),j=(0,t.jsx)(tw.LoadingOutlined,{style:{fontSize:24},spin:!0}),f=c.length>0?c[0]:null;return(0,t.jsxs)(o.Card,{className:"mt-6",children:[(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsx)(ek.Title,{children:"Test Search Tool"})}),(0,t.jsxs)("div",{className:"flex flex-col",style:{minHeight:"600px"},children:[(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsxs)("div",{className:"flex items-stretch gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center flex-1 bg-white rounded-lg px-4 transition-all duration-200",style:{border:x?"2px solid #3b82f6":"2px solid #e5e7eb",boxShadow:x?"0 0 0 3px rgba(59, 130, 246, 0.1)":"0 1px 2px 0 rgba(0, 0, 0, 0.05)",height:"48px"},children:[(0,t.jsx)(al.SearchOutlined,{className:"text-gray-400 mr-3",style:{fontSize:"18px"}}),(0,t.jsx)(S.Input,{value:l,onChange:e=>r(e.target.value),onFocus:()=>h(!0),onBlur:()=>h(!1),onPressEnter:e=>{e.shiftKey||(e.preventDefault(),g())},placeholder:"Enter your search query...",disabled:n,bordered:!1,style:{fontSize:"15px",padding:0,height:"100%",boxShadow:"none"}})]}),(0,t.jsx)(V.Button,{type:"primary",onClick:g,disabled:n||!l.trim(),icon:(0,t.jsx)(al.SearchOutlined,{}),loading:n,style:{height:"48px",paddingLeft:"24px",paddingRight:"24px",borderRadius:"8px",fontWeight:500,fontSize:"15px",backgroundColor:n||!l.trim()?void 0:"#1890ff",borderColor:n||!l.trim()?void 0:"#1890ff",boxShadow:"0 1px 2px 0 rgba(0, 0, 0, 0.05)"},children:"Search"})]})}),(0,t.jsx)("div",{className:"flex-1",children:f||n?(0,t.jsxs)("div",{children:[n&&(0,t.jsxs)("div",{className:"flex flex-col justify-center items-center py-16",children:[(0,t.jsx)(eF.Spin,{indicator:j}),(0,t.jsx)(ar,{className:"mt-4 text-gray-600 font-medium",children:"Searching..."})]}),f&&!n&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"mb-6 p-4 bg-blue-50 border border-blue-200 rounded-lg",style:{boxShadow:"0 1px 2px 0 rgba(0, 0, 0, 0.05)"},children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)(ar,{className:"text-xs font-semibold text-gray-500 uppercase tracking-wide",children:"Search Query"}),(0,t.jsx)("div",{className:"text-base font-semibold text-gray-900 mt-1.5",children:f.query})]}),(0,t.jsxs)("div",{className:"text-right ml-4",children:[(0,t.jsx)(ar,{className:"text-xs text-gray-500",children:y(f.timestamp)}),(0,t.jsxs)("div",{className:"flex items-center gap-3 mt-1",children:[(0,t.jsxs)("div",{className:"text-sm font-semibold text-blue-600",children:[f.response?.results?.length||0," ",f.response?.results?.length===1?"result":"results"]}),void 0!==f.latency&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-gray-400",children:"•"}),(0,t.jsxs)("div",{className:"text-sm font-semibold text-green-600",children:[f.latency,"ms"]})]})]})]})]})}),f.response&&f.response.results&&f.response.results.length>0?(0,t.jsx)("div",{className:"space-y-3",children:f.response.results.map((e,s)=>{let a=u[`0-${s}`]||!1;return(0,t.jsx)("div",{className:"bg-white border border-gray-200 rounded-lg overflow-hidden transition-all duration-200",style:{boxShadow:"0 1px 2px 0 rgba(0, 0, 0, 0.05)"},onMouseEnter:e=>{e.currentTarget.style.boxShadow="0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",e.currentTarget.style.borderColor="#e0e7ff"},onMouseLeave:e=>{e.currentTarget.style.boxShadow="0 1px 2px 0 rgba(0, 0, 0, 0.05)",e.currentTarget.style.borderColor="#e5e7eb"},children:(0,t.jsxs)("div",{className:"p-5",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3 mb-2",children:[(0,t.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"text-lg font-semibold text-blue-600 hover:text-blue-700 flex-1 leading-snug",style:{textDecoration:"none"},onMouseEnter:e=>e.currentTarget.style.textDecoration="underline",onMouseLeave:e=>e.currentTarget.style.textDecoration="none",children:e.title}),(0,t.jsx)(V.Button,{type:"text",size:"small",className:"flex-shrink-0",icon:(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})}),onClick:()=>window.open(e.url,"_blank"),style:{color:"#6b7280"}})]}),(0,t.jsx)("div",{className:"text-sm text-green-700 mb-3 truncate font-medium",children:e.url}),(0,t.jsx)("div",{className:"text-sm text-gray-700 leading-relaxed",children:a?e.snippet:`${e.snippet.substring(0,200)}${e.snippet.length>200?"...":""}`}),e.snippet.length>200&&(0,t.jsx)(V.Button,{type:"link",size:"small",className:"mt-3 p-0 h-auto",onClick:()=>{let e;return e=`0-${s}`,void p(t=>({...t,[e]:!t[e]}))},style:{fontSize:"13px",fontWeight:500,color:"#3b82f6"},children:a?"Show less":"Show more"})]})},s)})}):(0,t.jsxs)("div",{className:"text-center py-12 bg-gray-50 border border-gray-200 rounded-lg",children:[(0,t.jsx)("div",{className:"flex items-center justify-center w-16 h-16 rounded-full bg-gray-100 mx-auto mb-4",children:(0,t.jsx)(al.SearchOutlined,{style:{fontSize:"24px",color:"#9ca3af"}})}),(0,t.jsx)(ar,{className:"text-gray-600 font-medium",children:"No results found"}),(0,t.jsx)(ar,{className:"text-sm text-gray-500 mt-1",children:"Try a different search query"})]})]}),c.length>1&&(0,t.jsxs)("div",{className:"mt-8 pt-6 border-t border-gray-200",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsx)(ar,{className:"text-sm font-semibold text-gray-700",children:"Previous Searches"}),(0,t.jsx)(V.Button,{onClick:()=>{m([]),p({}),eE.default.success("Search history cleared")},size:"small",type:"link",style:{fontSize:"13px",fontWeight:500},children:"Clear All"})]}),(0,t.jsx)("div",{className:"space-y-2",children:c.slice(1,6).map((e,s)=>(0,t.jsxs)("div",{className:"p-3 bg-gray-50 border border-gray-200 rounded-lg cursor-pointer transition-all duration-200 hover:bg-gray-100 hover:border-gray-300",onClick:()=>{r(e.query)},children:[(0,t.jsx)("div",{className:"text-sm font-medium text-gray-800 truncate",children:e.query}),(0,t.jsxs)("div",{className:"text-xs text-gray-500 mt-1.5 flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"font-medium text-blue-600",children:[e.response?.results?.length||0," ",e.response?.results?.length===1?"result":"results"]}),void 0!==e.latency&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{children:"•"}),(0,t.jsxs)("span",{className:"font-medium text-green-600",children:[e.latency,"ms"]})]}),(0,t.jsx)("span",{children:"•"}),(0,t.jsx)("span",{children:y(e.timestamp)})]})]},s+1))})]})]}):(0,t.jsxs)("div",{className:"h-full flex flex-col items-center justify-center p-8",children:[(0,t.jsx)("div",{className:"flex items-center justify-center w-24 h-24 rounded-full bg-gray-100 mb-6",children:(0,t.jsx)(al.SearchOutlined,{style:{fontSize:"48px",color:"#9ca3af"}})}),(0,t.jsx)(ar,{className:"text-lg text-gray-600 font-medium",children:"Test your search tool"}),(0,t.jsx)(ar,{className:"text-sm text-gray-500 mt-2",children:"Enter a query above to see search results"})]})})]})]})},an=({searchTool:e,onBack:s,isEditing:a,accessToken:l,availableProviders:r})=>{var d;let c,[m,u]=(0,i.useState)({}),p=async(e,t)=>{await (0,eO.copyToClipboard)(e)&&(u(e=>({...e,[t]:!0})),setTimeout(()=>{u(e=>({...e,[t]:!1}))},2e3))};return(0,t.jsxs)("div",{className:"p-4 max-w-full",children:[(0,t.jsx)("div",{className:"flex justify-between items-center mb-6",children:(0,t.jsxs)("div",{children:[(0,t.jsx)(n.Button,{icon:eA.ArrowLeftIcon,variant:"light",className:"mb-4",onClick:s,children:"Back to All Search Tools"}),(0,t.jsxs)("div",{className:"flex items-center cursor-pointer",children:[(0,t.jsx)(ek.Title,{children:e.search_tool_name}),(0,t.jsx)(V.Button,{type:"text",size:"small",icon:m["search-tool-name"]?(0,t.jsx)(as.CheckIcon,{size:12}):(0,t.jsx)(aa.CopyIcon,{size:12}),onClick:()=>p(e.search_tool_name,"search-tool-name"),className:`left-2 z-10 transition-all duration-200 ${m["search-tool-name"]?"text-green-600 bg-green-50 border-green-200":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"}`})]}),(0,t.jsxs)("div",{className:"flex items-center cursor-pointer",children:[(0,t.jsx)(g.Text,{className:"text-gray-500 font-mono",children:e.search_tool_id}),(0,t.jsx)(V.Button,{type:"text",size:"small",icon:m["search-tool-id"]?(0,t.jsx)(as.CheckIcon,{size:12}):(0,t.jsx)(aa.CopyIcon,{size:12}),onClick:()=>p(e.search_tool_id,"search-tool-id"),className:`left-2 z-10 transition-all duration-200 ${m["search-tool-id"]?"text-green-600 bg-green-50 border-green-200":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"}`})]})]})}),(0,t.jsxs)(at.Grid,{numItems:1,numItemsSm:2,numItemsLg:3,className:"gap-6",children:[(0,t.jsxs)(o.Card,{children:[(0,t.jsx)(g.Text,{children:"Provider"}),(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(ek.Title,{children:(d=e.litellm_params.search_provider,c=r.find(e=>e.provider_name===d),c?.ui_friendly_name||d)})})]}),(0,t.jsxs)(o.Card,{children:[(0,t.jsx)(g.Text,{children:"API Key"}),(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(g.Text,{children:e.litellm_params.api_key?"****":"Not set"})})]}),(0,t.jsxs)(o.Card,{children:[(0,t.jsx)(g.Text,{children:"Created At"}),(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(g.Text,{children:e.created_at?new Date(e.created_at).toLocaleString():"Unknown"})})]})]}),e.search_tool_info?.description&&(0,t.jsxs)(o.Card,{className:"mt-6",children:[(0,t.jsx)(g.Text,{children:"Description"}),(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(g.Text,{children:e.search_tool_info.description})})]}),(0,t.jsx)("div",{className:"mt-6",children:l&&(0,t.jsx)(ai,{searchToolName:e.search_tool_name,accessToken:l})})]})},ao=({accessToken:e,userRole:s,userID:a})=>{let{data:l,isLoading:r,refetch:o}=(0,t1.useQuery)({queryKey:["searchTools"],queryFn:()=>{if(!e)throw Error("Access Token required");return(0,w.fetchSearchTools)(e).then(e=>e.search_tools||[])},enabled:!!e}),{data:d,isLoading:c}=(0,t1.useQuery)({queryKey:["searchProviders"],queryFn:()=>{if(!e)throw Error("Access Token required");return(0,w.fetchAvailableSearchProviders)(e)},enabled:!!e}),m=d?.providers||[],[u,p]=(0,i.useState)(null),[x,h]=(0,i.useState)(!1),[j,f]=(0,i.useState)(!1),[b,_]=(0,i.useState)(null),[v,C]=(0,i.useState)(!1),[T,F]=(0,i.useState)(!1),[L,A]=(0,i.useState)(!1),[M]=k.Form.useForm(),P=i.default.useMemo(()=>{let e,s,a;return e=e=>{_(e),C(!1)},s=e=>{let t=l?.find(t=>t.search_tool_id===e);t&&(M.setFieldsValue({search_tool_name:t.search_tool_name,search_provider:t.litellm_params.search_provider,api_key:t.litellm_params.api_key,api_base:t.litellm_params.api_base,timeout:t.litellm_params.timeout,max_retries:t.litellm_params.max_retries,description:t.search_tool_info?.description}),_(e),A(!0))},a=D,[{title:"Search Tool ID",dataIndex:"search_tool_id",key:"search_tool_id",render:(s,a)=>a.is_from_config?(0,t.jsx)("span",{className:"text-xs",children:"-"}):(0,t.jsx)("button",{onClick:()=>e(a.search_tool_id),className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left cursor-pointer max-w-40",children:(0,t.jsx)("span",{className:"truncate block",children:a.search_tool_id})})},{title:"Name",dataIndex:"search_tool_name",key:"search_tool_name",render:e=>(0,t.jsx)("span",{className:"font-medium",children:e})},{title:"Provider",key:"provider",render:(e,s)=>{let a=s.litellm_params.search_provider,l=m.find(e=>e.provider_name===a),r=l?.ui_friendly_name||a;return(0,t.jsx)("span",{className:"text-sm",children:r})}},{title:"Created At",dataIndex:"created_at",key:"created_at",render:(e,s)=>(0,t.jsx)("span",{className:"text-xs",children:s.created_at?new Date(s.created_at).toLocaleDateString():"-"})},{title:"Updated At",dataIndex:"updated_at",key:"updated_at",render:(e,s)=>(0,t.jsx)("span",{className:"text-xs",children:s.updated_at?new Date(s.updated_at).toLocaleDateString():"-"})},{title:"Source",key:"source",render:(e,s)=>{let a=s.is_from_config??!1;return(0,t.jsx)(I.Tag,{color:a?"default":"blue",children:a?"Config":"DB"})}},{title:"Actions",key:"actions",render:(e,l)=>{let r=l.search_tool_id,i=l.is_from_config??!1;return(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(eR.default,{variant:"Edit",tooltipText:"Edit search tool",disabled:i,disabledTooltipText:"Config search tool cannot be edited on the dashboard. Please edit it from the config file.",onClick:()=>{r&&!i&&s(r)}}),(0,t.jsx)(eR.default,{variant:"Delete",tooltipText:"Delete search tool",disabled:i,disabledTooltipText:"Config search tool cannot be deleted on the dashboard. Please delete it from the config file.",onClick:()=>{r&&!i&&a(r)}})]})}}]},[m,l,M]);function D(e){p(e),h(!0)}let z=async()=>{if(null!=u&&null!=e){f(!0);try{await (0,w.deleteSearchTool)(e,u),eE.default.success("Deleted search tool successfully"),h(!1),p(null),o()}catch(e){console.error("Error deleting the search tool:",e),eE.default.error("Failed to delete search tool")}finally{f(!1)}}},E=l?.find(e=>e.search_tool_id===u),O=E?m.find(e=>e.provider_name===E.litellm_params.search_provider):null,R=async()=>{if(e&&b)try{let t=await M.validateFields(),s={search_tool_name:t.search_tool_name,litellm_params:{search_provider:t.search_provider,api_key:t.api_key,api_base:t.api_base,timeout:t.timeout?parseFloat(t.timeout):void 0,max_retries:t.max_retries?parseInt(t.max_retries):void 0},search_tool_info:t.description?{description:t.description}:void 0};await (0,w.updateSearchTool)(e,b,s),eE.default.success("Search tool updated successfully"),A(!1),M.resetFields(),_(null),o()}catch(e){console.error("Failed to update search tool:",e),eE.default.error("Failed to update search tool")}};return e&&s&&a?(0,t.jsxs)("div",{className:"w-full h-full p-6",children:[(0,t.jsx)(sW.default,{isOpen:x,title:"Delete Search Tool",message:"Are you sure you want to delete this search tool? This action cannot be undone.",resourceInformationTitle:"Search Tool Information",resourceInformation:E?[{label:"Name",value:E.search_tool_name},{label:"ID",value:E.search_tool_id,code:!0},{label:"Provider",value:O?.ui_friendly_name||E.litellm_params.search_provider},{label:"Description",value:E.search_tool_info?.description||"-"}]:[],onCancel:()=>{h(!1),p(null)},onOk:z,confirmLoading:j}),(0,t.jsx)(ae,{userRole:s,accessToken:e,onCreateSuccess:e=>{F(!1),o()},isModalVisible:T,setModalVisible:F}),(0,t.jsx)(y.Modal,{title:"Edit Search Tool",open:L,onOk:R,onCancel:()=>{A(!1),M.resetFields(),_(null)},width:600,children:(0,t.jsxs)(k.Form,{form:M,layout:"vertical",children:[(0,t.jsx)(k.Form.Item,{name:"search_tool_name",label:"Search Tool Name",rules:[{required:!0,message:"Please enter a search tool name"}],children:(0,t.jsx)(S.Input,{placeholder:"e.g., my-perplexity-search"})}),(0,t.jsx)(k.Form.Item,{name:"search_provider",label:"Search Provider",rules:[{required:!0,message:"Please select a search provider"}],children:(0,t.jsx)(N.Select,{placeholder:"Select a search provider",loading:c,children:m.map(e=>(0,t.jsx)(N.Select.Option,{value:e.provider_name,children:e.ui_friendly_name},e.provider_name))})}),(0,t.jsx)(k.Form.Item,{name:"api_key",label:"API Key",extra:"API key for the search provider",children:(0,t.jsx)(S.Input.Password,{placeholder:"Enter API key"})}),(0,t.jsx)(k.Form.Item,{name:"description",label:"Description",children:(0,t.jsx)(S.Input.TextArea,{rows:3,placeholder:"Description of this search tool"})})]})}),(0,t.jsx)(ek.Title,{children:"Search Tools"}),(0,t.jsx)(g.Text,{className:"text-tremor-content mt-2",children:"Configure and manage your search providers"}),(0,ew.isAdminRole)(s)&&(0,t.jsx)(n.Button,{className:"mt-4 mb-4",onClick:()=>F(!0),children:"+ Add New Search Tool"}),(0,t.jsx)(()=>b?(0,t.jsx)(an,{searchTool:l?.find(e=>e.search_tool_id===b)||{search_tool_id:"",search_tool_name:"",litellm_params:{search_provider:""}},onBack:()=>{C(!1),_(null),o()},isEditing:v,accessToken:e,availableProviders:m}):(0,t.jsx)("div",{className:"w-full h-full",children:(0,t.jsx)(eF.Spin,{spinning:r,indicator:(0,t.jsx)(tw.LoadingOutlined,{spin:!0}),size:"large",children:(0,t.jsx)(te.Table,{bordered:!0,dataSource:l||[],columns:P,rowKey:e=>e.search_tool_id||e.search_tool_name,pagination:!1,locale:{emptyText:"No search tools configured"},size:"small"})})}),{})]}):(console.log("Missing required authentication parameters",{accessToken:e,userRole:s,userID:a}),(0,t.jsx)("div",{className:"p-6 text-center text-gray-500",children:"Missing required authentication parameters."}))};var ad=e.i(700904),ac=e.i(686311),am=e.i(37727),au=e.i(643531),ap=e.i(636772),ax=e.i(115571);function ah({onOpen:e,onDismiss:s,isVisible:a,title:l,description:r,buttonText:n,icon:o,accentColor:d,buttonStyle:c}){let m=(0,ap.useDisableShowPrompts)(),[u,p]=(0,i.useState)(100),[x,h]=(0,i.useState)(!1);return((0,i.useEffect)(()=>{if(!a){p(100),h(!1);return}let e=Date.now(),t=setInterval(()=>{let s=Math.max(0,100-(Date.now()-e)/15e3*100);p(s),s<=0&&clearInterval(t)},50);return()=>clearInterval(t)},[a]),(0,i.useEffect)(()=>{if(x){let e=setTimeout(()=>{h(!1),s()},5e3);return()=>clearTimeout(e)}},[x,s]),x)?(0,t.jsx)("div",{className:`fixed bottom-6 right-6 z-40 w-80 bg-white rounded-lg shadow-xl border border-gray-200 overflow-hidden transform transition-all duration-300 ease-out ${a?"translate-y-0 opacity-100 scale-100":"translate-y-4 opacity-0 scale-95"}`,children:(0,t.jsx)("div",{className:"p-4",children:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"flex-shrink-0 w-8 h-8 rounded-full bg-green-100 flex items-center justify-center",children:(0,t.jsx)(au.Check,{className:"h-5 w-5 text-green-600"})}),(0,t.jsx)("div",{className:"flex-1",children:(0,t.jsx)("p",{className:"text-sm text-gray-700 font-medium",children:"Got it, we will not ask again. Reactivate this at any time in the User Menu."})})]})})}):!a||m?null:(0,t.jsxs)("div",{className:`fixed bottom-6 right-6 z-40 w-80 bg-white rounded-lg shadow-xl border border-gray-200 overflow-hidden transform transition-all duration-300 ease-out ${a?"translate-y-0 opacity-100 scale-100":"translate-y-4 opacity-0 scale-95"}`,children:[(0,t.jsx)("div",{className:"h-1 bg-gray-100 w-full",children:(0,t.jsx)("div",{className:"h-full transition-all duration-100 ease-linear",style:{width:`${u}%`,backgroundColor:d}})}),(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between mb-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",style:{color:d},children:[(0,t.jsx)(o,{className:"h-5 w-5"}),(0,t.jsx)("span",{className:"font-semibold text-sm",children:l})]}),(0,t.jsx)("button",{onClick:s,className:"text-gray-400 hover:text-gray-600 transition-colors p-0.5 rounded hover:bg-gray-100",children:(0,t.jsx)(am.X,{className:"h-4 w-4"})})]}),(0,t.jsx)("p",{className:"text-sm text-gray-600 mb-3",children:r}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(V.Button,{type:"primary",block:!0,onClick:e,style:c,children:n}),(0,t.jsx)(V.Button,{variant:"outlined",danger:!0,block:!0,onClick:()=>{(0,ax.setLocalStorageItem)("disableShowPrompts","true"),(0,ax.emitLocalStorageChange)("disableShowPrompts"),h(!0)},className:"text-xs",children:"Don't ask me again"})]})]})]})}function ag({onOpen:e,onDismiss:s,isVisible:a}){return(0,t.jsx)(ah,{onOpen:e,onDismiss:s,isVisible:a,title:"Quick feedback",description:"Help us improve LiteLLM! Share your experience in 5 quick questions.",buttonText:"Share feedback",icon:ac.MessageSquare,accentColor:"#3b82f6"})}var ay=e.i(972520),aj=e.i(180127),aj=aj,af=e.i(536916);let ab=[{id:"oss_adoption",label:"OSS Adoption",description:"Stars, contributors, forks, community support"},{id:"ai_integration",label:"AI Integration",description:"LiteLLM had the logging/guardrail integration we needed - Langfuse, OTEL, S3 logging, Azure Content Safety guardrails"},{id:"unified_api",label:"Unified API",description:"LiteLLM had the best OpenAI-compatible API across providers - OpenAI, Anthropic, Gemini, etc."},{id:"breadth_of_models",label:"Breadth of Models/Providers",description:"LiteLLM had the provider + endpoint combinations we needed - /ocr endpoint with Mistral OCR, /batches endppint with Bedrock API, etc."},{id:"other",label:"Other",description:"Something else not listed above"}];function a_({isOpen:e,onClose:s,onComplete:a}){let[l,r]=(0,i.useState)(1),[n,o]=(0,i.useState)({usingAtCompany:null,companyName:"",startDate:"",reasons:[],otherReason:"",email:""}),[d,c]=(0,i.useState)(!1),m=!0===n.usingAtCompany?5:4;if(!e)return null;let u=async()=>{c(!0);try{let e={oss_adoption:"OSS Adoption (stars, contributors, forks)",ai_integration:"AI Integration (Langfuse, OTEL, S3, Azure Content Safety)",unified_api:"Unified API (OpenAI-compatible)",breadth_of_models:"Breadth of Models/Providers (/ocr, /batches, Bedrock, Azure OCR)"},t=n.reasons.map(t=>"other"===t&&n.otherReason?`Other: ${n.otherReason}`:e[t]||t),s=new URLSearchParams({"entry.2015264290":n.usingAtCompany?"Yes":"No","entry.1876243786":n.companyName||"","entry.1282591459":n.startDate,"entry.393456108":t.join(", "),"entry.928142208":n.email||""});await fetch("https://feedback.litellm.ai/survey",{method:"POST",mode:"no-cors",body:s})}catch(e){console.error("Failed to submit survey:",e)}c(!1),a()},p=(e,t)=>{o(s=>({...s,[e]:t}))},x=e=>{o(t=>({...t,reasons:t.reasons.includes(e)?t.reasons.filter(t=>t!==e):[...t.reasons,e]}))},h=()=>{if(!1===n.usingAtCompany){if(1===l)return 1;if(3===l)return 2;if(4===l)return 3;if(5===l)return 4}return l},g=5===l;return(0,t.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4 sm:p-6",children:[(0,t.jsx)("div",{className:"fixed inset-0 bg-black/40 backdrop-blur-sm",onClick:s}),(0,t.jsxs)("div",{className:"relative w-full max-w-lg bg-white rounded-xl shadow-2xl overflow-hidden flex flex-col max-h-[90vh] transform transition-all duration-300 ease-out",children:[(0,t.jsxs)("div",{className:"px-6 py-4 border-b border-gray-100 flex items-center justify-between bg-gray-50/50",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-blue-600",children:[(0,t.jsx)(ac.MessageSquare,{className:"h-5 w-5"}),(0,t.jsx)("span",{className:"font-semibold text-sm tracking-wide uppercase",children:"Quick Feedback"})]}),(0,t.jsx)("button",{onClick:s,className:"text-gray-400 hover:text-gray-600 transition-colors p-1 rounded-full hover:bg-gray-100",children:(0,t.jsx)(am.X,{className:"h-5 w-5"})})]}),(0,t.jsx)(sF.Progress,{percent:h()/m*100,showInfo:!1,strokeColor:"#2563eb",className:"m-0"}),(0,t.jsx)("div",{className:"p-8 flex-1 overflow-y-auto",children:1===l?(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)("h2",{className:"text-2xl font-bold text-gray-900",children:"Are you using LiteLLM at your company?"}),(0,t.jsx)("p",{className:"text-gray-500",children:"Help us understand how our product is being used in professional environments."}),(0,t.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4 pt-4",children:[(0,t.jsxs)("button",{onClick:()=>p("usingAtCompany",!0),className:`p-6 rounded-lg border-2 text-left transition-all ${!0===n.usingAtCompany?"border-blue-600 bg-blue-50 ring-1 ring-blue-600":"border-gray-200 hover:border-blue-300 hover:bg-gray-50"}`,children:[(0,t.jsx)("span",{className:"block text-lg font-semibold text-gray-900 mb-1",children:"Yes"}),(0,t.jsx)("span",{className:"text-sm text-gray-500",children:"We use it for work"})]}),(0,t.jsxs)("button",{onClick:()=>p("usingAtCompany",!1),className:`p-6 rounded-lg border-2 text-left transition-all ${!1===n.usingAtCompany?"border-blue-600 bg-blue-50 ring-1 ring-blue-600":"border-gray-200 hover:border-blue-300 hover:bg-gray-50"}`,children:[(0,t.jsx)("span",{className:"block text-lg font-semibold text-gray-900 mb-1",children:"No"}),(0,t.jsx)("span",{className:"text-sm text-gray-500",children:"Personal project / Hobby"})]})]})]}):2===l&&!0===n.usingAtCompany?(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)("h2",{className:"text-2xl font-bold text-gray-900",children:"What company are you using LiteLLM at?"}),(0,t.jsx)("p",{className:"text-gray-500",children:"This helps us understand our user base better."}),(0,t.jsx)(S.Input,{size:"large",placeholder:"Enter your company name",value:n.companyName,onChange:e=>p("companyName",e.target.value),autoFocus:!0})]}):3===l?(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)("h2",{className:"text-2xl font-bold text-gray-900",children:"When did you start using LiteLLM?"}),(0,t.jsx)(T.Radio.Group,{value:n.startDate,onChange:e=>p("startDate",e.target.value),className:"w-full",children:(0,t.jsx)(U.Space,{direction:"vertical",className:"w-full",children:["Less than a month ago","1-3 months ago","3-6 months ago","More than 6 months ago"].map(e=>(0,t.jsx)("label",{className:`flex items-center p-4 rounded-lg border cursor-pointer transition-all w-full ${n.startDate===e?"border-blue-600 bg-blue-50 ring-1 ring-blue-600":"border-gray-200 hover:bg-gray-50"}`,children:(0,t.jsx)(T.Radio,{value:e,children:e})},e))})})]}):4===l?(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)("h2",{className:"text-2xl font-bold text-gray-900",children:"Why did you pick LiteLLM over other AI Gateways?"}),(0,t.jsx)("p",{className:"text-gray-500",children:"Select all that apply."}),(0,t.jsx)("div",{className:"space-y-3",children:ab.map(e=>{let s=n.reasons.includes(e.id);return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{role:"button",tabIndex:0,onClick:()=>x(e.id),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),x(e.id))},className:`flex items-start p-4 rounded-lg border cursor-pointer transition-all ${s?"border-blue-600 bg-blue-50 ring-1 ring-blue-600":"border-gray-200 hover:bg-gray-50"}`,children:[(0,t.jsx)(af.Checkbox,{checked:s,className:"mt-0.5 pointer-events-none"}),(0,t.jsxs)("div",{className:"ml-3",children:[(0,t.jsx)("span",{className:"block font-medium text-gray-900",children:e.label}),(0,t.jsx)("span",{className:"text-sm text-gray-500",children:e.description})]})]}),"other"===e.id&&s&&(0,t.jsx)(S.Input,{className:"mt-2 ml-7",placeholder:"Please specify...",value:n.otherReason,onChange:e=>p("otherReason",e.target.value),onClick:e=>e.stopPropagation(),autoFocus:!0})]},e.id)})})]}):5===l?(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)("h2",{className:"text-2xl font-bold text-gray-900",children:"Want to share more?"}),(0,t.jsx)("p",{className:"text-gray-500",children:"Leave your email and we may reach out to learn more about your experience. This is completely optional."}),(0,t.jsx)(S.Input,{size:"large",type:"email",placeholder:"your@email.com (optional)",value:n.email,onChange:e=>p("email",e.target.value),autoFocus:!0}),(0,t.jsx)("p",{className:"text-xs text-gray-400",children:"We will only use this to follow up on your feedback. No spam, ever."})]}):null}),(0,t.jsxs)("div",{className:"px-6 py-4 bg-gray-50 border-t border-gray-200 flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"text-sm text-gray-500 font-medium",children:["Step ",h()," of ",m]}),(0,t.jsxs)("div",{className:"flex gap-3",children:[l>1&&(0,t.jsx)(V.Button,{onClick:()=>{3===l&&!1===n.usingAtCompany?r(1):r(l-1)},disabled:d,icon:(0,t.jsx)(aj.default,{className:"h-4 w-4"}),children:"Back"}),(0,t.jsxs)(V.Button,{type:"primary",onClick:()=>{1===l&&!1===n.usingAtCompany?r(3):l<5?r(l+1):u()},disabled:!(1===l?null!==n.usingAtCompany:2===l?n.companyName.trim().length>0:3===l?""!==n.startDate:4===l?n.reasons.includes("other")?n.reasons.length>0&&n.otherReason.trim().length>0:n.reasons.length>0:5===l)||d,loading:d,className:"min-w-[100px]",children:[g?"Submit":"Next",!g&&(0,t.jsx)(ay.ArrowRight,{className:"ml-2 h-4 w-4"})]})]})]})]})]})}var av=e.i(758472);function aw({onOpen:e,onDismiss:s,isVisible:a}){return(0,t.jsx)(ah,{onOpen:e,onDismiss:s,isVisible:a,title:"Claude Code Feedback",description:"Help us improve your Claude Code experience with LiteLLM! Share your feedback in 4 quick questions.",buttonText:"Share feedback",icon:av.Code,accentColor:"#7c3aed",buttonStyle:{backgroundColor:"#7c3aed",borderColor:"#7c3aed"}})}function ak({isOpen:e,onClose:s,onComplete:a}){return e?(0,t.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4 sm:p-6",children:[(0,t.jsx)("div",{className:"fixed inset-0 bg-black/40 backdrop-blur-sm",onClick:s}),(0,t.jsxs)("div",{className:"relative w-full max-w-md bg-white rounded-xl shadow-2xl overflow-hidden transform transition-all duration-300 ease-out",children:[(0,t.jsxs)("div",{className:"px-6 py-4 border-b border-gray-100 flex items-center justify-between bg-gray-50/50",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-purple-600",children:[(0,t.jsx)(av.Code,{className:"h-5 w-5"}),(0,t.jsx)("span",{className:"font-semibold text-sm tracking-wide uppercase",children:"Claude Code Feedback"})]}),(0,t.jsx)("button",{onClick:s,className:"text-gray-400 hover:text-gray-600 transition-colors p-1 rounded-full hover:bg-gray-100",children:(0,t.jsx)(am.X,{className:"h-5 w-5"})})]}),(0,t.jsxs)("div",{className:"p-8",children:[(0,t.jsx)("h2",{className:"text-2xl font-bold text-gray-900 mb-4",children:"Help us improve your experience"}),(0,t.jsx)("p",{className:"text-gray-600 mb-6",children:"We'd love to hear about your experience using LiteLLM with Claude Code. Your feedback helps us improve the product for everyone."}),(0,t.jsx)("p",{className:"text-sm text-gray-500 mb-6",children:"This brief survey takes about 2-3 minutes to complete."}),(0,t.jsx)(V.Button,{type:"primary",size:"large",block:!0,onClick:()=>{window.open("https://forms.gle/LZeJQ3XytBakckYa9","_blank","noopener,noreferrer"),a()},icon:(0,t.jsx)(t$.ExternalLink,{className:"h-4 w-4"}),style:{backgroundColor:"#7c3aed",borderColor:"#7c3aed"},children:"Open Feedback Form"})]})]})]}):null}var aN=e.i(345244),aS=e.i(662316),aC=e.i(208075),aT=e.i(735042),aI=e.i(693569),aF=e.i(263147),aL=e.i(954616),aA=e.i(912598);let aM=async(e,t)=>{let s=(0,w.getProxyBaseUrl)(),a=`${s}/v1/access_group/${encodeURIComponent(t)}`,l=await fetch(a,{method:"DELETE",headers:{[(0,w.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok){let e=await l.json(),t=(0,w.deriveErrorMessage)(e);throw(0,w.handleError)(t),Error(t)}};var aP=e.i(152990),aD=e.i(682830),az=e.i(657150),az=az,aE=e.i(302202),aO=e.i(446891);let aR=async(e,t)=>{let s=(0,w.getProxyBaseUrl)(),a=`${s}/v1/access_group/${encodeURIComponent(t)}`,l=await fetch(a,{method:"GET",headers:{[(0,w.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok){let e=await l.json(),t=(0,w.deriveErrorMessage)(e);throw(0,w.handleError)(t),Error(t)}return l.json()};var aB=e.i(21548),a$=e.i(573421),aq=e.i(516430),az=az,aU=e.i(823429),aU=aU,sE=sE,aV=e.i(304911),aH=e.i(289793),aG=e.i(500727),az=az,aK=e.i(168118);let{TextArea:aW}=S.Input;function aQ({form:e,isNameDisabled:s=!1}){let{data:a}=(0,aH.useAgents)(),{data:l}=(0,aG.useMCPServers)(),r=a?.agents??[],i=[{key:"1",label:(0,t.jsxs)(U.Space,{align:"center",size:4,children:[(0,t.jsx)(aK.InfoIcon,{size:16}),"General Info"]}),children:(0,t.jsxs)("div",{style:{paddingTop:16},children:[(0,t.jsx)(k.Form.Item,{name:"name",label:"Group Name",rules:[{required:!0,message:"Please enter the access group name"}],children:(0,t.jsx)(S.Input,{placeholder:"e.g. Engineering Team",disabled:s})}),(0,t.jsx)(k.Form.Item,{name:"description",label:"Description",children:(0,t.jsx)(aW,{rows:4,placeholder:"Describe the purpose of this access group..."})})]})},{key:"2",label:(0,t.jsxs)(U.Space,{align:"center",size:4,children:[(0,t.jsx)(sD,{size:16}),"Models"]}),children:(0,t.jsx)("div",{style:{paddingTop:16},children:(0,t.jsx)(k.Form.Item,{name:"modelIds",label:"Allowed Models",children:(0,t.jsx)(sQ.ModelSelect,{context:"global",value:e.getFieldValue("modelIds")??[],onChange:t=>e.setFieldsValue({modelIds:t}),style:{width:"100%"}})})})},{key:"3",label:(0,t.jsxs)(U.Space,{align:"center",size:4,children:[(0,t.jsx)(aE.ServerIcon,{size:16}),"MCP Servers"]}),children:(0,t.jsx)("div",{style:{paddingTop:16},children:(0,t.jsx)(k.Form.Item,{name:"mcpServerIds",label:"Allowed MCP Servers",children:(0,t.jsx)(N.Select,{mode:"multiple",placeholder:"Select MCP servers",style:{width:"100%"},optionFilterProp:"label",allowClear:!0,options:(l??[]).map(e=>({label:e.server_name??e.server_id,value:e.server_id}))})})})},{key:"4",label:(0,t.jsxs)(U.Space,{align:"center",size:4,children:[(0,t.jsx)(az.default,{size:16}),"Agents"]}),children:(0,t.jsx)("div",{style:{paddingTop:16},children:(0,t.jsx)(k.Form.Item,{name:"agentIds",label:"Allowed Agents",children:(0,t.jsx)(N.Select,{mode:"multiple",placeholder:"Select agents",style:{width:"100%"},optionFilterProp:"label",allowClear:!0,options:r.map(e=>({label:e.agent_name,value:e.agent_id}))})})})}];return(0,t.jsx)(k.Form,{form:e,layout:"vertical",name:"access_group_form",initialValues:{modelIds:[],mcpServerIds:[],agentIds:[]},children:(0,t.jsx)(t2.Tabs,{defaultActiveKey:"1",items:i})})}let aY=async(e,t,s)=>{let a=(0,w.getProxyBaseUrl)(),l=`${a}/v1/access_group/${encodeURIComponent(t)}`,r=await fetch(l,{method:"PUT",headers:{[(0,w.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(s)});if(!r.ok){let e=await r.json(),t=(0,w.deriveErrorMessage)(e);throw(0,w.handleError)(t),Error(t)}return r.json()};function aJ({visible:e,accessGroup:s,onCancel:a,onSuccess:l}){let[r]=k.Form.useForm(),n=(()=>{let{accessToken:e}=(0,R.default)(),t=(0,aA.useQueryClient)();return(0,aL.useMutation)({mutationFn:async({accessGroupId:t,params:s})=>{if(!e)throw Error("Access token is required");return aY(e,t,s)},onSuccess:(e,{accessGroupId:s})=>{t.invalidateQueries({queryKey:aF.accessGroupKeys.all}),t.invalidateQueries({queryKey:aF.accessGroupKeys.detail(s)})}})})();return(0,i.useEffect)(()=>{e&&s&&r.setFieldsValue({name:s.access_group_name,description:s.description??"",modelIds:s.access_model_names??[],mcpServerIds:s.access_mcp_server_ids??[],agentIds:s.access_agent_ids??[]})},[e,s,r]),(0,t.jsx)(y.Modal,{title:"Edit Access Group",open:e,onOk:()=>{r.validateFields().then(e=>{let t={access_group_name:e.name,description:e.description,access_model_names:e.modelIds,access_mcp_server_ids:e.mcpServerIds,access_agent_ids:e.agentIds};n.mutate({accessGroupId:s.access_group_id,params:t},{onSuccess:()=>{A.default.success("Access group updated successfully"),l?.(),a()}})}).catch(e=>{console.log("Validate Failed:",e)})},onCancel:a,width:700,okText:"Save Changes",cancelText:"Cancel",confirmLoading:n.isPending,destroyOnHidden:!0,children:(0,t.jsx)(aQ,{form:r})})}let{Title:aX,Text:aZ}=sn.Typography,{Content:a0}=sT.Layout;function a1({accessGroupId:e,onBack:s}){let{data:a,isLoading:l}=(e=>{let{accessToken:t,userRole:s}=(0,R.default)(),a=(0,aA.useQueryClient)();return(0,t1.useQuery)({queryKey:aF.accessGroupKeys.detail(e),queryFn:async()=>aR(t,e),enabled:!!(t&&e)&&ew.all_admin_roles.includes(s||""),initialData:()=>{if(!e)return;let t=a.getQueryData(aF.accessGroupKeys.list({}));return t?.find(t=>t.access_group_id===e)}})})(e),{token:r}=sL.theme.useToken(),[n,o]=(0,i.useState)(!1),[d,c]=(0,i.useState)(!1),[m,u]=(0,i.useState)(!1);if(l)return(0,t.jsx)(a0,{style:{padding:r.paddingLG,paddingInline:2*r.paddingLG},children:(0,t.jsx)(sC.Flex,{justify:"center",align:"center",style:{minHeight:300},children:(0,t.jsx)(eF.Spin,{size:"large"})})});if(!a)return(0,t.jsxs)(a0,{style:{padding:r.paddingLG,paddingInline:2*r.paddingLG},children:[(0,t.jsx)(V.Button,{icon:(0,t.jsx)(aq.ArrowLeftIcon,{size:16}),onClick:s,type:"text",style:{marginBottom:16}}),(0,t.jsx)(aB.Empty,{description:"Access group not found"})]});let p=a.access_model_names??[],x=a.access_mcp_server_ids??[],h=a.access_agent_ids??[],g=a.assigned_key_ids??[],y=a.assigned_team_ids??[],j=d?g:g.slice(0,5),f=m?y:y.slice(0,5),b=[{key:"models",label:(0,t.jsxs)(sC.Flex,{align:"center",gap:8,children:[(0,t.jsx)(sD,{size:16}),"Models",(0,t.jsx)(I.Tag,{style:{marginInlineEnd:0},children:p?.length})]}),children:p?.length>0?(0,t.jsx)(a$.List,{grid:{gutter:16,xs:1,sm:2,md:3,lg:4},dataSource:p,renderItem:e=>(0,t.jsx)(a$.List.Item,{children:(0,t.jsx)(ts.Card,{size:"small",children:(0,t.jsx)(aZ,{code:!0,children:e})})})}):(0,t.jsx)(aB.Empty,{description:"No models assigned to this group"})},{key:"mcp",label:(0,t.jsxs)(sC.Flex,{align:"center",gap:8,children:[(0,t.jsx)(aE.ServerIcon,{size:16}),"MCP Servers",(0,t.jsx)(I.Tag,{children:x?.length})]}),children:x?.length>0?(0,t.jsx)(a$.List,{grid:{gutter:16,xs:1,sm:2,md:3,lg:4},dataSource:x,renderItem:e=>(0,t.jsx)(a$.List.Item,{children:(0,t.jsx)(ts.Card,{size:"small",children:(0,t.jsx)(aZ,{code:!0,children:e})})})}):(0,t.jsx)(aB.Empty,{description:"No MCP servers assigned to this group"})},{key:"agents",label:(0,t.jsxs)(sC.Flex,{align:"center",gap:8,children:[(0,t.jsx)(az.default,{size:16}),"Agents",(0,t.jsx)(I.Tag,{children:h?.length})]}),children:h?.length>0?(0,t.jsx)(a$.List,{grid:{gutter:16,xs:1,sm:2,md:3,lg:4},dataSource:h,renderItem:e=>(0,t.jsx)(a$.List.Item,{children:(0,t.jsx)(ts.Card,{size:"small",children:(0,t.jsx)(aZ,{code:!0,children:e})})})}):(0,t.jsx)(aB.Empty,{description:"No agents assigned to this group"})}];return(0,t.jsxs)(a0,{style:{padding:r.paddingLG,paddingInline:2*r.paddingLG},children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:24},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:16},children:[(0,t.jsx)(V.Button,{icon:(0,t.jsx)(aq.ArrowLeftIcon,{size:16}),onClick:s,type:"text"}),(0,t.jsxs)("div",{children:[(0,t.jsx)(aX,{level:2,style:{margin:0},children:a.access_group_name}),(0,t.jsxs)(aZ,{type:"secondary",children:["ID: ",(0,t.jsx)(aZ,{copyable:!0,children:a.access_group_id})]})]})]}),(0,t.jsx)(V.Button,{type:"primary",icon:(0,t.jsx)(aU.default,{size:16}),onClick:()=>{o(!0)},children:"Edit Access Group"})]}),(0,t.jsx)(t_.Row,{style:{marginBottom:24},children:(0,t.jsx)(ts.Card,{children:(0,t.jsxs)(eL.Descriptions,{title:"Group Details",column:1,children:[(0,t.jsx)(eL.Descriptions.Item,{label:"Description",children:a.description||"—"}),(0,t.jsxs)(eL.Descriptions.Item,{label:"Created",children:[new Date(a.created_at).toLocaleString(),a.created_by&&(0,t.jsxs)(aZ,{children:[" ","by"," ",(0,t.jsx)(aV.default,{userId:a.created_by})]})]}),(0,t.jsxs)(eL.Descriptions.Item,{label:"Last Updated",children:[new Date(a.updated_at).toLocaleString(),a.updated_by&&(0,t.jsxs)(aZ,{children:[" ","by"," ",(0,t.jsx)(aV.default,{userId:a.updated_by})]})]})]})})}),(0,t.jsxs)(t_.Row,{gutter:[16,16],style:{marginBottom:24},children:[(0,t.jsx)(tv.Col,{xs:24,lg:12,children:(0,t.jsx)(ts.Card,{title:(0,t.jsxs)(sC.Flex,{align:"center",gap:8,children:[(0,t.jsx)(sM.KeyIcon,{size:16}),"Attached Keys",(0,t.jsx)(I.Tag,{children:g?.length})]}),extra:g?.length>5?(0,t.jsx)(V.Button,{type:"link",onClick:()=>c(!d),children:d?"Show Less":`View All (${g?.length})`}):null,children:g?.length>0?(0,t.jsx)(sC.Flex,{wrap:"wrap",gap:8,children:j.map(e=>(0,t.jsx)(I.Tag,{children:(0,t.jsx)(aZ,{code:!0,style:{fontSize:12},children:e.length>20?`${e.slice(0,10)}...${e.slice(-6)}`:e})},e))}):(0,t.jsx)(aB.Empty,{description:"No keys attached",image:aB.Empty.PRESENTED_IMAGE_SIMPLE})})}),(0,t.jsx)(tv.Col,{xs:24,lg:12,children:(0,t.jsx)(ts.Card,{title:(0,t.jsxs)(sC.Flex,{align:"center",gap:8,children:[(0,t.jsx)(sE.default,{size:16}),"Attached Teams",(0,t.jsx)(I.Tag,{children:y?.length})]}),extra:y?.length>5?(0,t.jsx)(V.Button,{type:"link",onClick:()=>u(!m),children:m?"Show Less":`View All (${y?.length})`}):null,children:y?.length>0?(0,t.jsx)(sC.Flex,{wrap:"wrap",gap:8,children:f.map(e=>(0,t.jsx)(I.Tag,{children:(0,t.jsx)(aZ,{code:!0,style:{fontSize:12},children:e})},e))}):(0,t.jsx)(aB.Empty,{description:"No teams attached",image:aB.Empty.PRESENTED_IMAGE_SIMPLE})})})]}),(0,t.jsx)(ts.Card,{children:(0,t.jsx)(t2.Tabs,{defaultActiveKey:"models",items:b})}),(0,t.jsx)(aJ,{visible:n,accessGroup:a,onCancel:()=>o(!1)})]})}let a2=async(e,t)=>{let s=(0,w.getProxyBaseUrl)(),a=`${s}/v1/access_group`,l=await fetch(a,{method:"POST",headers:{[(0,w.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!l.ok){let e=await l.json(),t=(0,w.deriveErrorMessage)(e);throw(0,w.handleError)(t),Error(t)}return l.json()};function a4({visible:e,onCancel:s,onSuccess:a}){let[l]=k.Form.useForm(),r=(()=>{let{accessToken:e}=(0,R.default)(),t=(0,aA.useQueryClient)();return(0,aL.useMutation)({mutationFn:async t=>{if(!e)throw Error("Access token is required");return a2(e,t)},onSuccess:()=>{t.invalidateQueries({queryKey:aF.accessGroupKeys.all})}})})();return(0,t.jsx)(y.Modal,{title:"Create Access Group",open:e,onOk:()=>{l.validateFields().then(e=>{let t={access_group_name:e.name,description:e.description,access_model_names:e.modelIds,access_mcp_server_ids:e.mcpServerIds,access_agent_ids:e.agentIds};r.mutate(t,{onSuccess:()=>{A.default.success("Access group created successfully"),l.resetFields(),a?.(),s()}})}).catch(e=>{console.log("Validate Failed:",e)})},onCancel:s,width:700,okText:"Create Group",cancelText:"Cancel",confirmLoading:r.isPending,destroyOnClose:!0,children:(0,t.jsx)(aQ,{form:l})})}let{Title:a5,Text:a6}=sn.Typography,{Content:a3}=sT.Layout;function a8(e){return{id:e.access_group_id,name:e.access_group_name,description:e.description??"",modelIds:e.access_model_names,mcpServerIds:e.access_mcp_server_ids,agentIds:e.access_agent_ids,keyIds:e.assigned_key_ids,teamIds:e.assigned_team_ids,createdAt:e.created_at,createdBy:e.created_by??"",updatedAt:e.updated_at,updatedBy:e.updated_by??""}}function a7(){let{token:e}=sL.theme.useToken(),{userRole:s}=(0,R.default)(),a=(0,ew.isProxyAdminRole)(s??""),{data:l,isLoading:r}=(0,aF.useAccessGroups)(),n=(0,i.useMemo)(()=>(l??[]).map(a8),[l]),[o,d]=(0,i.useState)(null),[c,m]=(0,i.useState)(!1),[u,p]=(0,i.useState)(""),[x,h]=(0,i.useState)(1),[g,y]=(0,i.useState)([]),[j,b]=(0,i.useState)(null),_=(()=>{let{accessToken:e}=(0,R.default)(),t=(0,aA.useQueryClient)();return(0,aL.useMutation)({mutationFn:async t=>{if(!e)throw Error("Access token is required");return aM(e,t)},onSuccess:()=>{t.invalidateQueries({queryKey:aF.accessGroupKeys.all})}})})();(0,i.useEffect)(()=>{h(1)},[u]);let v=(0,i.useMemo)(()=>n.filter(e=>e.name.toLowerCase().includes(u.toLowerCase())||e.id.toLowerCase().includes(u.toLowerCase())||e.description.toLowerCase().includes(u.toLowerCase())),[n,u]),w=(0,i.useMemo)(()=>[{id:"id",accessorKey:"id",header:()=>(0,t.jsx)("span",{children:"ID"}),enableSorting:!1,size:170,cell:({row:e})=>{let s=e.original;return(0,t.jsx)(f.Tooltip,{title:s.id,children:(0,t.jsx)(a6,{ellipsis:!0,className:"text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs cursor-pointer",style:{fontSize:14,padding:"1px 8px"},onClick:()=>d(s.id),children:s.id})})}},{id:"name",accessorKey:"name",header:()=>(0,t.jsx)("span",{children:"Name"}),enableSorting:!0,cell:({getValue:e})=>e()},{id:"resources",header:()=>(0,t.jsx)("span",{children:"Resources"}),enableSorting:!1,cell:({row:e})=>{let s=e.original,a=s.modelIds??[],l=s.mcpServerIds??[],r=s.agentIds??[];return(0,t.jsxs)(sC.Flex,{gap:12,align:"center",children:[(0,t.jsx)(f.Tooltip,{title:`${a?.length} Models`,children:(0,t.jsx)(I.Tag,{color:"blue",style:{fontSize:14,padding:"2px 8px",margin:0},children:(0,t.jsxs)(sC.Flex,{align:"center",gap:6,children:[(0,t.jsx)(sD,{size:14}),a?.length]})})}),(0,t.jsx)(f.Tooltip,{title:`${l?.length} MCP Servers`,children:(0,t.jsx)(I.Tag,{color:"cyan",style:{fontSize:14,padding:"2px 8px",margin:0},children:(0,t.jsxs)(sC.Flex,{align:"center",gap:6,children:[(0,t.jsx)(aE.ServerIcon,{size:14}),l?.length]})})}),(0,t.jsx)(f.Tooltip,{title:`${r?.length} Agents`,children:(0,t.jsx)(I.Tag,{color:"purple",style:{fontSize:14,padding:"2px 8px",margin:0},children:(0,t.jsxs)(sC.Flex,{align:"center",gap:6,children:[(0,t.jsx)(az.default,{size:14}),r?.length]})})})]})}},{id:"createdAt",accessorKey:"createdAt",header:()=>(0,t.jsx)("span",{children:"Created"}),enableSorting:!0,sortingFn:"datetime",cell:({getValue:e})=>new Date(e()).toLocaleDateString(),meta:{responsive:["lg"]}},{id:"updatedAt",accessorKey:"updatedAt",header:()=>(0,t.jsx)("span",{children:"Updated"}),enableSorting:!1,cell:({getValue:e})=>new Date(e()).toLocaleDateString(),meta:{responsive:["xl"]}},...a?[{id:"actions",header:()=>(0,t.jsx)("span",{children:"Actions"}),enableSorting:!1,cell:({row:e})=>(0,t.jsx)(U.Space,{children:(0,t.jsx)(eR.default,{variant:"Delete",tooltipText:"Delete access group",onClick:()=>b(e.original)})})}]:[]],[a]),k=(0,aP.useReactTable)({data:v,columns:w,state:{sorting:g},onSortingChange:y,getCoreRowModel:(0,aD.getCoreRowModel)(),getSortedRowModel:(0,aD.getSortedRowModel)(),getRowId:e=>e.id}),N=k.getRowModel().rows,C=N.slice((x-1)*10,10*x),T=(0,i.useMemo)(()=>new Map(C.map(e=>[e.original.id,e])),[C]),F=(k.getHeaderGroups()[0]?.headers??[]).map(e=>{let s=e.column.getCanSort(),a=e.column.getIsSorted(),l=e.column.columnDef.meta,r={title:(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4},children:[e.isPlaceholder?null:(0,aP.flexRender)(e.column.columnDef.header,e.getContext()),s&&(0,t.jsx)(aO.TableHeaderSortDropdown,{sortState:!1!==a&&a,onSortChange:t=>{y(!1===t?[]:[{id:e.column.id,desc:"desc"===t}])},columnId:e.column.id})]}),key:e.id,width:e.column.columnDef.size,render:(t,s)=>{let a=T.get(s.id);if(!a)return null;let l=a.getVisibleCells().find(t=>t.column.id===e.id);return l?(0,aP.flexRender)(l.column.columnDef.cell,l.getContext()):null}};return l?.responsive&&(r.responsive=l.responsive),r}),L=C.map(e=>e.original);return o?(0,t.jsx)(a1,{accessGroupId:o,onBack:()=>d(null)}):(0,t.jsxs)(a3,{style:{padding:e.paddingLG,paddingInline:2*e.paddingLG},children:[(0,t.jsxs)(sC.Flex,{justify:"space-between",align:"center",style:{marginBottom:16},children:[(0,t.jsxs)(U.Space,{direction:"vertical",size:0,children:[(0,t.jsx)(a5,{level:2,style:{margin:0},children:"Access Groups"}),(0,t.jsx)(a6,{type:"secondary",children:"Manage resource permissions for your organization"})]}),a&&(0,t.jsx)(V.Button,{type:"primary",icon:(0,t.jsx)(H.PlusOutlined,{}),onClick:()=>m(!0),children:"Create Access Group"})]}),(0,t.jsxs)(ts.Card,{styles:{body:{padding:0}},children:[(0,t.jsxs)(sC.Flex,{justify:"space-between",align:"center",style:{padding:"12px 16px"},children:[(0,t.jsx)(S.Input,{prefix:(0,t.jsx)(sz.SearchIcon,{size:16}),placeholder:"Search groups by name, ID, or description...",style:{maxWidth:400},value:u,onChange:e=>p(e.target.value),allowClear:!0}),(0,t.jsx)(sI.Pagination,{current:x,total:N?.length,pageSize:10,onChange:e=>h(e),size:"small",showTotal:e=>`${e} groups`,showSizeChanger:!1})]}),(0,t.jsx)(te.Table,{columns:F,dataSource:L,rowKey:"id",loading:r,pagination:!1})]}),(0,t.jsx)(a4,{visible:c,onCancel:()=>m(!1)}),(0,t.jsx)(sW.default,{isOpen:!!j,title:"Delete Access Group",message:"Are you sure you want to delete this access group? This action cannot be undone.",resourceInformationTitle:"Access Group Information",resourceInformation:[{label:"ID",value:j?.id,code:!0},{label:"Name",value:j?.name},{label:"Description",value:j?.description||"—"}],onCancel:()=>b(null),onOk:()=>{j&&_.mutate(j.id,{onSuccess:()=>{b(null)}})},confirmLoading:_.isPending})]})}var a9=e.i(510674);let le={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M484 443.1V528h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H484v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V584h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H540v-84.9c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1zm396-144.7H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z"}}]},name:"folder-add",theme:"outlined"};var lt=i.forwardRef(function(e,t){return i.createElement(tF.default,(0,tT.default)({},e,{ref:t,icon:le}))});let ls=async(e,t)=>{let s=(0,w.getProxyBaseUrl)(),a=`${s}/project/new`,l=await fetch(a,{method:"POST",headers:{[(0,w.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!l.ok){let e=await l.json(),t=(0,w.deriveErrorMessage)(e);throw(0,w.handleError)(t),Error(t)}return l.json()};function la({form:e}){let{accessToken:s,userId:a,userRole:l}=(0,R.default)(),{data:r}=(0,eV.useTeams)(),[n,o]=(0,i.useState)(null),[d,c]=(0,i.useState)([]),[m,u]=(0,i.useState)([]);(0,i.useEffect)(()=>{(async()=>{if(s)try{let e=(await (0,w.getGuardrailsList)(s)).guardrails.map(e=>e.guardrail_name);u(e)}catch(e){console.error("Failed to fetch guardrails:",e)}})()},[s]);let p=k.Form.useWatch("team_id",e);return(0,i.useEffect)(()=>{if(p&&r){let e=r.find(e=>e.team_id===p)??null;e&&e.team_id!==n?.team_id&&o(e)}},[p,r,n?.team_id]),(0,i.useEffect)(()=>{a&&l&&s&&n?(0,sZ.fetchTeamModels)(a,l,s,n.team_id).then(e=>{c(Array.from(new Set([...n.models??[],...e])))}):c([])},[n,s,a,l]),(0,t.jsxs)(k.Form,{form:e,layout:"vertical",name:"project_form",initialValues:{isBlocked:!1},style:{marginTop:24},children:[(0,t.jsx)(sn.Typography.Text,{strong:!0,style:{fontSize:13,color:"#374151",textTransform:"uppercase",letterSpacing:"0.05em"},children:"Basic Information"}),(0,t.jsx)(F.Divider,{style:{marginTop:8,marginBottom:16}}),(0,t.jsxs)(t_.Row,{gutter:24,children:[(0,t.jsx)(tv.Col,{span:12,children:(0,t.jsx)(k.Form.Item,{name:"project_alias",label:"Project Name",rules:[{required:!0,message:"Please enter a project name"}],children:(0,t.jsx)(S.Input,{placeholder:"e.g. Customer Support Bot"})})}),(0,t.jsx)(tv.Col,{span:12,children:(0,t.jsx)(k.Form.Item,{name:"team_id",label:"Team",rules:[{required:!0,message:"Please select a team"}],children:(0,t.jsx)(N.Select,{showSearch:!0,placeholder:"Search or select a team",onChange:t=>{o(r?.find(e=>e.team_id===t)??null),e.setFieldValue("models",[])},allowClear:!0,optionLabelProp:"label",filterOption:(e,t)=>{let s=r?.find(e=>e.team_id===t?.value);if(!s)return!1;let a=e.toLowerCase().trim();return(s.team_alias||"").toLowerCase().includes(a)||s.team_id.toLowerCase().includes(a)},children:r?.map(e=>(0,t.jsxs)(N.Select.Option,{value:e.team_id,label:e.team_alias||e.team_id,children:[(0,t.jsx)("span",{style:{fontWeight:500},children:e.team_alias})," ",(0,t.jsxs)("span",{style:{color:"#9ca3af"},children:["(",e.team_id,")"]})]},e.team_id))})})})]}),(0,t.jsx)(t_.Row,{children:(0,t.jsx)(tv.Col,{span:24,children:(0,t.jsx)(k.Form.Item,{name:"description",label:"Description",children:(0,t.jsx)(S.Input.TextArea,{placeholder:"Describe the purpose of this project",rows:3})})})}),(0,t.jsx)(t_.Row,{children:(0,t.jsx)(tv.Col,{span:24,children:(0,t.jsx)(k.Form.Item,{name:"models",label:"Allowed Models (scoped to selected team's models)",help:n?void 0:"Select a team first to see available models",children:(0,t.jsxs)(N.Select,{mode:"multiple",placeholder:n?"Select models":"Select a team first",disabled:!n,allowClear:!0,maxTagCount:"responsive",onChange:t=>{t.includes("all-team-models")&&e.setFieldsValue({models:["all-team-models"]})},children:[(0,t.jsx)(N.Select.Option,{value:"all-team-models",children:"All Team Models"},"all-team-models"),d.map(e=>(0,t.jsx)(N.Select.Option,{value:e,children:(0,B.getModelDisplayName)(e)},e))]})})})}),(0,t.jsx)(t_.Row,{gutter:24,children:(0,t.jsx)(tv.Col,{span:12,children:(0,t.jsx)(k.Form.Item,{name:"max_budget",label:"Max Budget (USD)",children:(0,t.jsx)(L.InputNumber,{prefix:"$",style:{width:"100%"},placeholder:"0.00",min:0,precision:2})})})}),(0,t.jsx)(t_.Row,{children:(0,t.jsx)(tv.Col,{span:24,children:(0,t.jsx)(q.Collapse,{ghost:!0,style:{background:"#f9fafb",borderRadius:8,border:"1px solid #e5e7eb"},items:[{key:"1",label:(0,t.jsx)(sn.Typography.Text,{strong:!0,style:{color:"#374151"},children:"Advanced Settings"}),children:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(sC.Flex,{align:"center",gap:12,children:[(0,t.jsx)(sn.Typography.Text,{strong:!0,children:"Block Project"}),(0,t.jsx)(k.Form.Item,{name:"isBlocked",valuePropName:"checked",noStyle:!0,children:(0,t.jsx)(_.Switch,{})})]}),(0,t.jsx)(k.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.isBlocked!==t.isBlocked,children:({getFieldValue:e})=>e("isBlocked")?(0,t.jsx)(j.Alert,{banner:!0,type:"warning",showIcon:!0,message:"All API requests using keys under this project will be rejected.",style:{marginTop:12}}):null}),(0,t.jsx)(F.Divider,{}),(0,t.jsx)(k.Form.Item,{label:"Guardrails",name:"guardrails",help:"Select existing guardrails or enter new ones",children:(0,t.jsx)(N.Select,{mode:"tags",style:{width:"100%"},placeholder:"Select or enter guardrails",options:m.map(e=>({value:e,label:e}))})}),(0,t.jsx)(F.Divider,{}),(0,t.jsx)(sn.Typography.Text,{strong:!0,style:{display:"block",marginBottom:12},children:"Model-Specific Limits"}),(0,t.jsx)(k.Form.List,{name:"modelLimits",children:(s,{add:a,remove:l})=>(0,t.jsxs)(t.Fragment,{children:[s.map(({key:s,name:a,...r})=>(0,t.jsxs)(U.Space,{style:{display:"flex",marginBottom:8},align:"baseline",children:[(0,t.jsx)(k.Form.Item,{...r,name:[a,"model"],rules:[{required:!0,message:"Missing model"},{validator:(t,s)=>s&&(e.getFieldValue("modelLimits")??[]).filter(e=>e?.model===s).length>1?Promise.reject(Error("Duplicate model")):Promise.resolve()}],children:(0,t.jsx)(S.Input,{placeholder:"Model name (e.g. gpt-4)"})}),(0,t.jsx)(k.Form.Item,{...r,name:[a,"tpm"],children:(0,t.jsx)(L.InputNumber,{placeholder:"TPM Limit",min:0})}),(0,t.jsx)(k.Form.Item,{...r,name:[a,"rpm"],children:(0,t.jsx)(L.InputNumber,{placeholder:"RPM Limit",min:0})}),(0,t.jsx)(G.MinusCircleOutlined,{onClick:()=>l(a),style:{color:"#ef4444"}})]},s)),(0,t.jsx)(k.Form.Item,{children:(0,t.jsx)(V.Button,{type:"dashed",onClick:()=>a(),block:!0,icon:(0,t.jsx)(H.PlusOutlined,{}),children:"Add Model Limit"})})]})}),(0,t.jsx)(F.Divider,{}),(0,t.jsx)(sn.Typography.Text,{strong:!0,style:{display:"block",marginBottom:12},children:"Metadata"}),(0,t.jsx)(k.Form.List,{name:"metadata",children:(s,{add:a,remove:l})=>(0,t.jsxs)(t.Fragment,{children:[s.map(({key:s,name:a,...r})=>(0,t.jsxs)(U.Space,{style:{display:"flex",marginBottom:8},align:"baseline",children:[(0,t.jsx)(k.Form.Item,{...r,name:[a,"key"],rules:[{required:!0,message:"Missing key"},{validator:(t,s)=>s&&(e.getFieldValue("metadata")??[]).filter(e=>e?.key===s).length>1?Promise.reject(Error("Duplicate key")):Promise.resolve()}],children:(0,t.jsx)(S.Input,{placeholder:"Key"})}),(0,t.jsx)(k.Form.Item,{...r,name:[a,"value"],rules:[{required:!0,message:"Missing value"}],children:(0,t.jsx)(S.Input,{placeholder:"Value"})}),(0,t.jsx)(G.MinusCircleOutlined,{onClick:()=>l(a),style:{color:"#ef4444"}})]},s)),(0,t.jsx)(k.Form.Item,{children:(0,t.jsx)(V.Button,{type:"dashed",onClick:()=>a(),block:!0,icon:(0,t.jsx)(H.PlusOutlined,{}),children:"Add Key-Value Pair"})})]})})]})}]})})})]})}function ll(e){let t={},s={};for(let a of e.modelLimits??[])a.model&&(null!=a.rpm&&(t[a.model]=a.rpm),null!=a.tpm&&(s[a.model]=a.tpm));let a={};for(let t of e.metadata??[])t.key&&(a[t.key]=t.value);return{project_alias:e.project_alias,description:e.description,models:e.models??[],max_budget:e.max_budget,blocked:e.isBlocked??!1,...e.guardrails&&e.guardrails.length>0&&{guardrails:e.guardrails},...Object.keys(t).length>0&&{model_rpm_limit:t},...Object.keys(s).length>0&&{model_tpm_limit:s},...Object.keys(a).length>0&&{metadata:a}}}function lr({isOpen:e,onClose:s}){let[a]=k.Form.useForm(),l=(()=>{let{accessToken:e}=(0,R.default)(),t=(0,aA.useQueryClient)();return(0,aL.useMutation)({mutationFn:async t=>{if(!e)throw Error("Access token is required");return ls(e,t)},onSuccess:()=>{t.invalidateQueries({queryKey:a9.projectKeys.all})}})})(),r=async()=>{try{let e=await a.validateFields(),t={...ll(e),team_id:e.team_id};l.mutate(t,{onSuccess:()=>{A.default.success("Project created successfully"),a.resetFields(),s()},onError:e=>{A.default.error(e.message||"Failed to create project")}})}catch(e){console.error("Validation failed:",e)}},i=()=>{a.resetFields(),s()};return(0,t.jsx)(y.Modal,{title:(0,t.jsx)(sn.Typography.Text,{strong:!0,style:{fontSize:18},children:"Create New Project"}),open:e,onCancel:i,width:720,destroyOnHidden:!0,footer:[(0,t.jsx)(V.Button,{onClick:i,children:"Cancel"},"cancel"),(0,t.jsx)(V.Button,{type:"primary",icon:(0,t.jsx)(lt,{}),loading:l.isPending,onClick:r,children:"Create Project"},"submit")],children:(0,t.jsx)(la,{form:a})})}let li=async(e,t)=>{let s=(0,w.getProxyBaseUrl)(),a=`${s}/project/info?project_id=${encodeURIComponent(t)}`,l=await fetch(a,{method:"GET",headers:{[(0,w.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok){let e=await l.json(),t=(0,w.deriveErrorMessage)(e);throw(0,w.handleError)(t),Error(t)}return l.json()},ln=(0,sP.default)("dollar-sign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);var aU=aU,sE=sE,lo=e.i(987432);let ld=async(e,t,s)=>{let a=(0,w.getProxyBaseUrl)(),l=`${a}/project/update`,r=await fetch(l,{method:"POST",headers:{[(0,w.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({project_id:t,...s})});if(!r.ok){let e=await r.json(),t=(0,w.deriveErrorMessage)(e);throw(0,w.handleError)(t),Error(t)}return r.json()};function lc({isOpen:e,project:s,onClose:a,onSuccess:l}){let[r]=k.Form.useForm(),n=(()=>{let{accessToken:e}=(0,R.default)(),t=(0,aA.useQueryClient)();return(0,aL.useMutation)({mutationFn:async({projectId:t,params:s})=>{if(!e)throw Error("Access token is required");return ld(e,t,s)},onSuccess:()=>{t.invalidateQueries({queryKey:a9.projectKeys.all})}})})();(0,i.useEffect)(()=>{if(e&&s){let e=s.metadata??{},t=e.model_rpm_limit??{},a=e.model_tpm_limit??{},l=Array.isArray(e.guardrails)?e.guardrails:[],i=[];for(let e of new Set([...Object.keys(t),...Object.keys(a)]))i.push({model:e,rpm:t[e],tpm:a[e]});let n=new Set(["model_rpm_limit","model_tpm_limit","guardrails"]),o=[];for(let[t,s]of Object.entries(e))n.has(t)||o.push({key:t,value:String(s)});r.setFieldsValue({project_alias:s.project_alias??"",team_id:s.team_id??"",description:s.description??"",models:s.models??[],max_budget:s.litellm_budget_table?.max_budget??void 0,isBlocked:s.blocked,guardrails:l.length>0?l:void 0,modelLimits:i.length>0?i:void 0,metadata:o.length>0?o:void 0})}},[e,s,r]);let o=async()=>{try{let e=await r.validateFields(),t={...ll(e),team_id:e.team_id};n.mutate({projectId:s.project_id,params:t},{onSuccess:()=>{A.default.success("Project updated successfully"),l?.(),a()},onError:e=>{A.default.error(e.message||"Failed to update project")}})}catch(e){console.error("Validation failed:",e)}};return(0,t.jsx)(y.Modal,{title:(0,t.jsx)(sn.Typography.Text,{strong:!0,style:{fontSize:18},children:"Edit Project"}),open:e,onCancel:a,width:720,destroyOnHidden:!0,footer:[(0,t.jsx)(V.Button,{onClick:a,children:"Cancel"},"cancel"),(0,t.jsx)(V.Button,{type:"primary",icon:(0,t.jsx)(lo.SaveOutlined,{}),loading:n.isPending,onClick:o,children:"Save Changes"},"submit")],children:(0,t.jsx)(la,{form:r})})}let{Title:lm,Text:lu}=sn.Typography,{Content:lp}=sT.Layout;function lx({projectId:e,onBack:s}){let a,l,r,n,{data:o,isLoading:d}=(e=>{let{accessToken:t,userRole:s}=(0,R.default)(),a=(0,aA.useQueryClient)();return(0,t1.useQuery)({queryKey:a9.projectKeys.detail(e),queryFn:async()=>li(t,e),enabled:!!(t&&e)&&ew.all_admin_roles.includes(s||""),initialData:()=>{if(!e)return;let t=a.getQueryData(a9.projectKeys.list({}));return t?.find(t=>t.project_id===e)}})})(e),{data:c}=(0,eV.useTeam)(o?.team_id??void 0),m=c?.team_info??c,{token:u}=sL.theme.useToken(),[p,x]=(0,i.useState)(!1),h=o?.spend??0,g=o?.litellm_budget_table?.max_budget??null,y=null!=g&&g>0,j=y?Math.min(h/g*100,100):0,f=(0,i.useMemo)(()=>Object.entries(o?.model_spend??{}).map(([e,t])=>({model:e,spend:t})).sort((e,t)=>t.spend-e.spend),[o?.model_spend]);return d?(0,t.jsx)(lp,{style:{padding:u.paddingLG,paddingInline:2*u.paddingLG},children:(0,t.jsx)(sC.Flex,{justify:"center",align:"center",style:{minHeight:300},children:(0,t.jsx)(eF.Spin,{indicator:(0,t.jsx)(tw.LoadingOutlined,{spin:!0}),size:"large"})})}):o?(0,t.jsxs)(lp,{style:{padding:u.paddingLG,paddingInline:2*u.paddingLG},children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:24},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:16},children:[(0,t.jsx)(V.Button,{icon:(0,t.jsx)(aq.ArrowLeftIcon,{size:16}),onClick:s,type:"text"}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(sC.Flex,{align:"center",gap:8,children:[(0,t.jsx)(lm,{level:2,style:{margin:0},children:o.project_alias??o.project_id}),(0,t.jsx)(I.Tag,{color:o.blocked?"red":"green",children:o.blocked?"Blocked":"Active"})]}),(0,t.jsxs)(lu,{type:"secondary",children:["ID: ",(0,t.jsx)(lu,{copyable:!0,children:o.project_id})]})]})]}),(0,t.jsx)(V.Button,{type:"primary",icon:(0,t.jsx)(aU.default,{size:16}),onClick:()=>x(!0),children:"Edit Project"})]}),(0,t.jsx)(t_.Row,{style:{marginBottom:24},children:(0,t.jsx)(ts.Card,{children:(0,t.jsxs)(eL.Descriptions,{title:"Project Details",column:1,children:[(0,t.jsx)(eL.Descriptions.Item,{label:"Description",children:o.description||"—"}),(0,t.jsxs)(eL.Descriptions.Item,{label:"Created",children:[new Date(o.created_at).toLocaleString(),o.created_by&&(0,t.jsxs)(lu,{children:[" ","by"," ",(0,t.jsx)(aV.default,{userId:o.created_by})]})]}),(0,t.jsxs)(eL.Descriptions.Item,{label:"Last Updated",children:[new Date(o.updated_at).toLocaleString(),o.updated_by&&(0,t.jsxs)(lu,{children:[" ","by"," ",(0,t.jsx)(aV.default,{userId:o.updated_by})]})]})]})})}),(0,t.jsxs)(t_.Row,{gutter:[16,16],style:{marginBottom:24},children:[(0,t.jsx)(tv.Col,{xs:24,lg:8,children:(0,t.jsx)(ts.Card,{title:(0,t.jsxs)(sC.Flex,{align:"center",gap:8,children:[(0,t.jsx)(ln,{size:16}),"Budget"]}),style:{height:"100%"},children:(0,t.jsxs)(sC.Flex,{vertical:!0,gap:16,children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)(lu,{strong:!0,style:{fontSize:28,lineHeight:1},children:["$",h.toFixed(2)]}),(0,t.jsx)("br",{}),(0,t.jsx)(lu,{type:"secondary",children:y?`of $${g.toFixed(2)} budget`:"No budget limit"})]}),y&&(0,t.jsxs)("div",{children:[(0,t.jsx)(sF.Progress,{percent:Math.round(10*j)/10,strokeColor:j>=90?"#f5222d":j>=70?"#faad14":"#52c41a",showInfo:!1}),(0,t.jsxs)(lu,{type:"secondary",style:{fontSize:12},children:[(Math.round(10*j)/10).toFixed(1),"% utilized"]})]})]})})}),(0,t.jsx)(tv.Col,{xs:24,lg:16,children:(0,t.jsx)(ts.Card,{title:"Spend by Model",style:{height:"100%"},children:f.length>0?(0,t.jsx)(so.BarChart,{data:f,index:"model",categories:["spend"],colors:["cyan"],layout:"vertical",valueFormatter:e=>`$${e.toFixed(4)}`,yAxisWidth:140,showLegend:!1,style:{height:Math.max(40*f.length,120)}}):(0,t.jsx)(aB.Empty,{description:"No model spend recorded yet",image:aB.Empty.PRESENTED_IMAGE_SIMPLE})})})]}),(0,t.jsxs)(t_.Row,{gutter:[16,16],style:{marginBottom:24},children:[(0,t.jsx)(tv.Col,{xs:24,lg:12,children:(0,t.jsx)(ts.Card,{title:(0,t.jsxs)(sC.Flex,{align:"center",gap:8,children:[(0,t.jsx)(sM.KeyIcon,{size:16}),"Keys"]}),style:{height:"100%"},children:(0,t.jsx)(aB.Empty,{description:"No keys to display",image:aB.Empty.PRESENTED_IMAGE_SIMPLE})})}),(0,t.jsx)(tv.Col,{xs:24,lg:12,children:(0,t.jsx)(ts.Card,{title:(0,t.jsxs)(sC.Flex,{align:"center",gap:8,children:[(0,t.jsx)(sE.default,{size:16}),"Team"]}),style:{height:"100%"},children:m?(a=m.max_budget??null,l=m.spend??0,n=(r=null!=a&&a>0)?Math.min(l/a*100,100):0,(0,t.jsxs)(sC.Flex,{vertical:!0,gap:12,children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(lu,{strong:!0,style:{fontSize:16},children:m.team_alias||m.team_id}),(0,t.jsx)("br",{}),(0,t.jsxs)(lu,{type:"secondary",style:{fontSize:12},children:["ID:"," ",(0,t.jsx)(lu,{copyable:!0,style:{fontSize:12},children:m.team_id})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(lu,{type:"secondary",style:{fontSize:12,display:"block",marginBottom:4},children:"Models"}),(m.models?.length??0)>0?(0,t.jsx)(sC.Flex,{wrap:"wrap",gap:4,style:{maxHeight:60,overflow:"hidden"},children:m.models?.map(e=>(0,t.jsx)(I.Tag,{style:{margin:0},children:e},e))}):(0,t.jsx)(lu,{type:"secondary",children:"All models"})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(sC.Flex,{justify:"space-between",align:"center",style:{marginBottom:2},children:[(0,t.jsx)(lu,{type:"secondary",style:{fontSize:12},children:"Spend"}),(0,t.jsxs)(lu,{style:{fontSize:12},children:["$",l.toFixed(2),r?(0,t.jsxs)(lu,{type:"secondary",style:{fontSize:12},children:[" ","/ $",a.toFixed(2)]}):(0,t.jsxs)(lu,{type:"secondary",style:{fontSize:12},children:[" ","(Unlimited)"]})]})]}),r&&(0,t.jsx)(sF.Progress,{percent:Math.round(10*n)/10,strokeColor:n>=90?"#f5222d":n>=70?"#faad14":"#52c41a",size:"small",showInfo:!1})]}),(0,t.jsxs)(sC.Flex,{justify:"space-between",children:[(0,t.jsx)(lu,{type:"secondary",style:{fontSize:12},children:"Members"}),(0,t.jsx)(lu,{style:{fontSize:12},children:m.members_with_roles?.length??0})]})]})):o.team_id?(0,t.jsx)(sC.Flex,{justify:"center",align:"center",style:{padding:16},children:(0,t.jsx)(eF.Spin,{indicator:(0,t.jsx)(tw.LoadingOutlined,{spin:!0}),size:"small"})}):(0,t.jsx)(aB.Empty,{description:"No team assigned",image:aB.Empty.PRESENTED_IMAGE_SIMPLE})})})]}),(0,t.jsx)(lc,{isOpen:p,project:o,onClose:()=>x(!1)})]}):(0,t.jsxs)(lp,{style:{padding:u.paddingLG,paddingInline:2*u.paddingLG},children:[(0,t.jsx)(V.Button,{icon:(0,t.jsx)(aq.ArrowLeftIcon,{size:16}),onClick:s,type:"text",style:{marginBottom:16}}),(0,t.jsx)(aB.Empty,{description:"Project not found"})]})}let{Title:lh,Text:lg}=sn.Typography,{Content:ly}=sT.Layout;function lj(){let{token:e}=sL.theme.useToken(),{data:s,isLoading:a}=(0,a9.useProjects)(),{data:l,isLoading:r}=(0,eV.useTeams)(),[n,o]=(0,i.useState)(null),[d,c]=(0,i.useState)(!1),[m,u]=(0,i.useState)(""),[p,x]=(0,i.useState)(1);(0,i.useEffect)(()=>{x(1)},[m]);let h=(0,i.useMemo)(()=>{let e=new Map;for(let t of l??[])e.set(t.team_id,t.team_alias??t.team_id);return e},[l]),g=(0,i.useMemo)(()=>{let e=s??[];if(!m)return e;let t=m.toLowerCase();return e.filter(e=>{let s=h.get(e.team_id??"")??"";return(e.project_alias??"").toLowerCase().includes(t)||e.project_id.toLowerCase().includes(t)||(e.description??"").toLowerCase().includes(t)||s.toLowerCase().includes(t)})},[s,m,h]),y=[{title:"ID",dataIndex:"project_id",key:"project_id",width:170,render:e=>(0,t.jsx)(f.Tooltip,{title:e,children:(0,t.jsx)(lg,{ellipsis:!0,className:"text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs cursor-pointer",style:{fontSize:14,padding:"1px 8px"},onClick:()=>o(e),children:e})})},{title:"Name",dataIndex:"project_alias",key:"project_alias",sorter:(e,t)=>(e.project_alias??"").localeCompare(t.project_alias??""),render:e=>e??"—"},{title:"Team",key:"team",sorter:(e,t)=>{let s=h.get(e.team_id??"")??"",a=h.get(t.team_id??"")??"";return s.localeCompare(a)},render:(e,s)=>{if(!s.team_id)return"—";let a=h.get(s.team_id);return a||(r?(0,t.jsx)(eF.Spin,{indicator:(0,t.jsx)(tw.LoadingOutlined,{spin:!0}),size:"small"}):s.team_id)}},{title:"Models",key:"models",render:(e,s)=>{let a=s.models??[];return(0,t.jsx)(f.Tooltip,{title:a.length>0?a.join(", "):"No models",children:(0,t.jsx)(I.Tag,{color:"blue",style:{fontSize:14,padding:"2px 8px",margin:0},children:(0,t.jsxs)(sC.Flex,{align:"center",gap:6,children:[(0,t.jsx)(sD,{size:14}),a.length]})})})}},{title:"Status",dataIndex:"blocked",key:"status",render:e=>(0,t.jsx)(I.Tag,{color:e?"red":"green",children:e?"Blocked":"Active"})},{title:"Created",dataIndex:"created_at",key:"created_at",sorter:(e,t)=>new Date(e.created_at).getTime()-new Date(t.created_at).getTime(),responsive:["lg"],render:e=>new Date(e).toLocaleDateString()},{title:"Updated",dataIndex:"updated_at",key:"updated_at",responsive:["xl"],render:e=>new Date(e).toLocaleDateString()}];return n?(0,t.jsx)(lx,{projectId:n,onBack:()=>o(null)}):(0,t.jsxs)(ly,{style:{padding:e.paddingLG,paddingInline:2*e.paddingLG},children:[(0,t.jsxs)(sC.Flex,{justify:"space-between",align:"center",style:{marginBottom:16},children:[(0,t.jsxs)(U.Space,{direction:"vertical",size:0,children:[(0,t.jsx)(lh,{level:2,style:{margin:0},children:"Projects"}),(0,t.jsx)(lg,{type:"secondary",children:"Manage projects within your teams"})]}),(0,t.jsx)(V.Button,{type:"primary",icon:(0,t.jsx)(H.PlusOutlined,{}),onClick:()=>c(!0),children:"Create Project"})]}),(0,t.jsxs)(ts.Card,{styles:{body:{padding:0}},children:[(0,t.jsxs)(sC.Flex,{justify:"space-between",align:"center",style:{padding:"12px 16px"},children:[(0,t.jsx)(S.Input,{prefix:(0,t.jsx)(sz.SearchIcon,{size:16}),placeholder:"Search projects by name, ID, description, or team...",style:{maxWidth:400},value:m,onChange:e=>u(e.target.value),allowClear:!0}),(0,t.jsx)(sI.Pagination,{current:p,total:g.length,pageSize:10,onChange:e=>x(e),size:"small",showTotal:e=>`${e} projects`,showSizeChanger:!1})]}),(0,t.jsx)(te.Table,{columns:y,dataSource:g.slice((p-1)*10,10*p),rowKey:"project_id",loading:a,pagination:!1})]}),(0,t.jsx)(lr,{isOpen:d,onClose:()=>c(!1)})]})}var lf=e.i(241902);let lb={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M536.1 273H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.3 120.7c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.7-3.7 1.9-8.7-1.7-11.2L544.1 528.5V281c0-4.4-3.6-8-8-8zm219.8 75.2l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3L752.9 334.1a8 8 0 003 14.1zm167.7 301.1l-56.7-19.5a8 8 0 00-10.1 4.8c-1.9 5.1-3.9 10.1-6 15.1-17.8 42.1-43.3 80-75.9 112.5a353 353 0 01-112.5 75.9 352.18 352.18 0 01-137.7 27.8c-47.8 0-94.1-9.3-137.7-27.8a353 353 0 01-112.5-75.9c-32.5-32.5-58-70.4-75.9-112.5A353.44 353.44 0 01171 512c0-47.8 9.3-94.2 27.8-137.8 17.8-42.1 43.3-80 75.9-112.5a353 353 0 01112.5-75.9C430.6 167.3 477 158 524.8 158s94.1 9.3 137.7 27.8A353 353 0 01775 261.7c10.2 10.3 19.8 21 28.6 32.3l59.8-46.8C784.7 146.6 662.2 81.9 524.6 82 285 82.1 92.6 276.7 95 516.4 97.4 751.9 288.9 942 524.8 942c185.5 0 343.5-117.6 403.7-282.3 1.5-4.2-.7-8.9-4.9-10.4z"}}]},name:"history",theme:"outlined"};var l_=i.forwardRef(function(e,t){return i.createElement(tF.default,(0,tT.default)({},e,{ref:t,icon:lb}))}),lv=e.i(366308);let lw=[{value:"untrusted",label:"untrusted",color:"#92400e",bg:"#fef3c7",border:"#fcd34d"},{value:"trusted",label:"trusted",color:"#065f46",bg:"#d1fae5",border:"#6ee7b7"},{value:"blocked",label:"blocked",color:"#991b1b",bg:"#fee2e2",border:"#fca5a5"}],lk=[{value:"untrusted",label:"untrusted",color:"#92400e",bg:"#fef3c7",border:"#fcd34d"},{value:"trusted",label:"trusted",color:"#065f46",bg:"#d1fae5",border:"#6ee7b7"}],lN=({value:e,toolName:s,saving:a,onChange:l,policyType:r="input",size:i="small",minWidth:n=110,stopPropagation:o=!0})=>{let d="output"===r?lk:lw,c=lw.find(t=>t.value===e)??lw[0];return(0,t.jsx)(N.Select,{size:i,value:e,disabled:a,loading:a,onChange:e=>l(s,e),onClick:e=>o&&e.stopPropagation(),style:{minWidth:n,fontWeight:500,backgroundColor:c.bg,borderColor:c.border,color:c.color,borderRadius:999,fontSize:"small"===i?11:12},popupMatchSelectWidth:!1,options:d.map(e=>({value:e.value,label:(0,t.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6,fontSize:12,fontWeight:500,color:e.color},children:[(0,t.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",backgroundColor:e.color,display:"inline-block",flexShrink:0}}),e.label]})}))})},lS="tool-detail";function lC({toolName:e,onBack:s,accessToken:a}){let l=(0,aA.useQueryClient)(),[r,n]=(0,i.useState)(!1),[o,d]=(0,i.useState)(!1),[c,m]=(0,i.useState)(!1),[u,p]=(0,i.useState)("team"),[x,h]=(0,i.useState)(null),[g,y]=(0,i.useState)(null),j=(0,i.useMemo)(()=>{let e,t,s;return e=new Date,(t=new Date).setDate(t.getDate()-90),{start:(s=e=>e.toISOString().slice(0,19).replace("T"," "))(t),end:s(e)}},[]),{data:f,isLoading:b,error:_}=(0,t1.useQuery)({queryKey:[lS,e],queryFn:()=>(0,w.fetchToolDetail)(a,e),enabled:!!a&&!!e}),{data:v}=(0,t1.useQuery)({queryKey:["tool-policy-options"],queryFn:()=>(0,w.fetchToolPolicyOptions)(a),enabled:!!a,staleTime:6e4}),{data:k}=(0,t1.useQuery)({queryKey:["teams-list-tool-detail"],queryFn:()=>(0,w.teamListCall)(a,null,null),enabled:!!a}),{data:S}=(0,t1.useQuery)({queryKey:["keys-list-tool-detail"],queryFn:()=>(0,w.keyListCall)(a,null,null,null,null,null,1,100),enabled:!!a}),{data:C,isLoading:T}=(0,t1.useQuery)({queryKey:["tool-usage-logs",e,j.start,j.end],queryFn:()=>(0,w.getToolUsageLogs)(a,e,{page:1,pageSize:50,startDate:j.start,endDate:j.end}),enabled:!!a&&!!e}),I=(0,i.useMemo)(()=>(C?.logs??[]).map(e=>({id:e.id,timestamp:e.timestamp,action:"passed",model:e.model??void 0,input_snippet:e.input_snippet??void 0})),[C?.logs]);(0,i.useMemo)(()=>(Array.isArray(k)?k:k?.data??[]).map(e=>({team_id:e.team_id??e.id??"",team_alias:e.team_alias??e.team_id??"",models:[],max_budget:null,budget_duration:null,tpm_limit:null,rpm_limit:null,organization_id:"",created_at:"",keys:[],members_with_roles:[],spend:0})),[k]);let F=(0,i.useMemo)(()=>(S?.keys??S?.data??[]).map(e=>({token:e.token??e.api_key??e.key_hash??"",key_alias:e.key_alias??(e.token??e.api_key??e.key_hash)?.toString?.()?.substring?.(0,8)})),[S]),L=(0,i.useCallback)(()=>{l.invalidateQueries({queryKey:[lS,e]})},[l,e]),A=(0,i.useCallback)(async(t,s)=>{if(a){d(!0);try{await (0,w.updateToolPolicy)(a,e,{input_policy:s}),L()}catch(e){alert(`Failed to update input policy: ${e instanceof Error?e.message:String(e)}`)}finally{d(!1)}}},[a,e,L]),M=(0,i.useCallback)(async(t,s)=>{if(a){m(!0);try{await (0,w.updateToolPolicy)(a,e,{output_policy:s}),L()}catch(e){alert(`Failed to update output policy: ${e instanceof Error?e.message:String(e)}`)}finally{m(!1)}}},[a,e,L]),P=(0,i.useCallback)(async()=>{if(!a||!e)return;let t="team"===u;if((!t||x)&&(t||g?.token)){n(!0);try{await (0,w.updateToolPolicy)(a,e,{input_policy:"blocked"},{team_id:t?x:void 0,key_hash:t?void 0:g.token,key_alias:t?void 0:g.key_alias}),L(),h(null),y(null)}catch(e){alert(`Failed to add override: ${e instanceof Error?e.message:String(e)}`)}finally{n(!1)}}},[a,e,u,x,g,L]),D=(0,i.useCallback)(async t=>{if(a&&e){n(!0);try{await (0,w.deleteToolPolicyOverride)(a,e,{team_id:t.team_id??void 0,key_hash:t.key_hash??void 0}),L()}catch(e){alert(`Failed to remove override: ${e instanceof Error?e.message:String(e)}`)}finally{n(!1)}}},[a,e,L]);if(b&&!f)return(0,t.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,t.jsx)(eF.Spin,{size:"large"})});if(_&&!f)return(0,t.jsxs)("div",{children:[(0,t.jsx)(V.Button,{type:"link",icon:(0,t.jsx)(tJ.ArrowLeftOutlined,{}),onClick:s,className:"pl-0 mb-4",children:"Back to Tool Policies"}),(0,t.jsx)("p",{className:"text-red-600",children:"Failed to load tool details."})]});if(!f)return null;let{tool:z,overrides:E}=f,O=v?.input_policies?.find(e=>e.value===z.input_policy)?.description,R=v?.output_policies?.find(e=>e.value===z.output_policy)?.description;return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)(V.Button,{type:"link",icon:(0,t.jsx)(tJ.ArrowLeftOutlined,{}),onClick:s,className:"pl-0 mb-4",children:"Back to Tool Policies"}),(0,t.jsx)("div",{className:"flex items-start justify-between",children:(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-1 flex-wrap",children:[(0,t.jsx)(lv.ToolOutlined,{className:"text-xl text-gray-400"}),(0,t.jsx)("h1",{className:"text-xl font-semibold text-gray-900 font-mono",children:z.tool_name}),(0,t.jsx)("span",{className:"inline-flex items-center px-2.5 py-1 text-xs font-medium rounded-md bg-gray-100 text-gray-700 border border-gray-200",children:z.origin??"—"}),(0,t.jsxs)("span",{className:"inline-flex items-center px-2.5 py-1 text-xs font-medium rounded-md bg-indigo-50 text-indigo-700 border border-indigo-200",children:[(z.call_count??0).toLocaleString()," calls"]})]}),(0,t.jsxs)("dl",{className:"mt-3 flex flex-wrap gap-x-6 gap-y-1 text-sm text-gray-600",children:[z.user_agent&&(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("dt",{className:"font-medium text-gray-500 whitespace-nowrap",children:"User Agent:"}),(0,t.jsx)("dd",{className:"font-mono truncate max-w-[40ch]",title:z.user_agent,children:z.user_agent})]}),z.created_at&&(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("dt",{className:"font-medium text-gray-500 whitespace-nowrap",children:"First Discovered:"}),(0,t.jsx)("dd",{children:new Date(z.created_at).toLocaleString()})]}),z.last_used_at&&(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("dt",{className:"font-medium text-gray-500 whitespace-nowrap",children:"Last Used:"}),(0,t.jsx)("dd",{children:new Date(z.last_used_at).toLocaleString()})]})]})]})})]}),(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,t.jsxs)("section",{className:"bg-white rounded-lg border border-gray-200 p-5 shadow-sm",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold text-gray-700 mb-1",children:"Input Policy"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mb-3",children:O??"Controls what data this tool is allowed to accept."}),(0,t.jsx)(lN,{value:z.input_policy,toolName:z.tool_name,saving:o,onChange:A,policyType:"input",size:"middle",minWidth:140,stopPropagation:!1})]}),(0,t.jsxs)("section",{className:"bg-white rounded-lg border border-gray-200 p-5 shadow-sm",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold text-gray-700 mb-1",children:"Output Policy"}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mb-3",children:R??"Controls how this tool's output is trusted by downstream tools."}),(0,t.jsx)(lN,{value:z.output_policy,toolName:z.tool_name,saving:c,onChange:M,policyType:"output",size:"middle",minWidth:140,stopPropagation:!1})]})]}),E.length>0&&(0,t.jsxs)("section",{className:"bg-white rounded-lg border border-gray-200 p-5 shadow-sm",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold text-gray-700 mb-3",children:"Blocked for team or key"}),(0,t.jsx)("ul",{className:"border rounded-md divide-y divide-gray-100 bg-red-50/30",children:E.map(e=>(0,t.jsxs)("li",{className:"flex items-center justify-between px-3 py-2.5 text-sm",children:[(0,t.jsxs)("span",{className:"text-gray-700",children:[e.team_id?`Team: ${e.team_id}`:"",e.team_id&&e.key_hash?" · ":"",e.key_hash?`Key: ${e.key_alias||e.key_hash.substring(0,8)}`:"",e.team_id||e.key_hash?"":"—"]}),(0,t.jsx)(V.Button,{type:"link",danger:!0,size:"small",disabled:r,onClick:()=>D(e),children:"Remove"})]},e.override_id))})]}),(0,t.jsxs)("section",{className:"bg-white rounded-lg border border-gray-200 p-5 shadow-sm",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold text-gray-700 mb-3",children:"Block for team or key"}),(0,t.jsxs)("div",{className:"flex flex-col gap-4 max-w-md",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700 block mb-2",children:"Scope"}),(0,t.jsxs)("div",{className:"flex items-center gap-6",children:[(0,t.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer text-sm text-gray-700",children:[(0,t.jsx)("input",{type:"radio",checked:"team"===u,onChange:()=>p("team"),className:"align-middle"}),"Team"]}),(0,t.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer text-sm text-gray-700",children:[(0,t.jsx)("input",{type:"radio",checked:"key"===u,onChange:()=>p("key"),className:"align-middle"}),"Key"]})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-sm font-medium text-gray-700 block mb-2",children:"team"===u?"Team":"Key"}),"team"===u?(0,t.jsx)($.default,{value:x??void 0,onChange:e=>h(e||null)}):(0,t.jsx)(N.Select,{placeholder:"Select key",allowClear:!0,showSearch:!0,optionFilterProp:"label",value:g?g.token:void 0,onChange:e=>{y(F.find(t=>t.token===e)??null)},options:F.map(e=>({value:e.token,label:e.key_alias||e.token?.substring?.(0,12)||e.token})),className:"w-full",style:{minWidth:200}})]}),(0,t.jsxs)(V.Button,{type:"primary",danger:!0,disabled:r||("team"===u?!x:!g?.token),loading:r,onClick:P,children:["Block for ",u]})]})]}),(0,t.jsxs)("section",{className:"bg-white rounded-lg border border-gray-200 p-5 shadow-sm",children:[(0,t.jsxs)("h2",{className:"text-sm font-semibold text-gray-700 mb-3 flex items-center gap-2",children:[(0,t.jsx)(l_,{}),"Recent logs"]}),(0,t.jsx)(st,{guardrailName:z.tool_name,filterAction:"passed",logs:I,logsLoading:T,totalLogs:C?.total??0,accessToken:a,startDate:j.start,endDate:j.end})]})]})]})}var lT=e.i(307582),lI=e.i(969550);function lF(e){return`${e.getUTCFullYear()}-${String(e.getUTCMonth()+1).padStart(2,"0")}-${String(e.getUTCDate()).padStart(2,"0")}`}function lL(e,t){if(!e)return!1;try{let s=new Date(e);return lF(s)===t}catch{return!1}}function lA(e,t){return e.filter(e=>lL(e.created_at,t)).length}let lM=({accessToken:e,onSelectTool:s})=>{let[a,l]=(0,i.useState)([]),[r,n]=(0,i.useState)(!0),[o,h]=(0,i.useState)(!1),[g,y]=(0,i.useState)(null),[j,b]=(0,i.useState)(null),[v,k]=(0,i.useState)(null),[N,S]=(0,i.useState)(""),[C,T]=(0,i.useState)("created_at"),[I,F]=(0,i.useState)("desc"),[L,A]=(0,i.useState)(1),[M,P]=(0,i.useState)(!0),[D,z]=(0,i.useState)({}),E=(0,i.useDeferredValue)(o),O=o||E,R=(0,i.useCallback)(async()=>{if(e){h(!0),y(null);try{let t=await (0,w.fetchToolsList)(e);l(t)}catch(e){y(e.message??"Failed to load tools")}finally{h(!1),n(!1)}}},[e]);(0,i.useEffect)(()=>{R()},[R]),(0,i.useEffect)(()=>{if(!M)return;let e=setInterval(R,15e3);return()=>clearInterval(e)},[M,R]);let B=async(t,s)=>{if(e){b(t);try{await (0,w.updateToolPolicy)(e,t,{input_policy:s}),l(e=>e.map(e=>e.tool_name===t?{...e,input_policy:s}:e))}catch(e){alert(`Failed to update input policy: ${e.message}`)}finally{b(null)}}},$=async(t,s)=>{if(e){k(t);try{await (0,w.updateToolPolicy)(e,t,{output_policy:s}),l(e=>e.map(e=>e.tool_name===t?{...e,output_policy:s}:e))}catch(e){alert(`Failed to update output policy: ${e.message}`)}finally{k(null)}}},q=Array.from(new Set(a.map(e=>e.team_id).filter(Boolean))).map(e=>({label:e,value:e})),U=Array.from(new Set(a.map(e=>e.key_alias).filter(Boolean))).map(e=>({label:e,value:e})),V=[{name:"Input Policy",label:"Input Policy",options:lw.map(e=>({label:e.label,value:e.value}))},{name:"Output Policy",label:"Output Policy",options:lk.map(e=>({label:e.label,value:e.value}))},{name:"Team Name",label:"Team Name",options:q},{name:"Key Name",label:"Key Name",options:U}],{newToday:H,newYesterday:G,trendSubtitle:K,totalTools:W,blockedCount:Q,activeTeamsCount:Y,needsReviewTools:J}=(0,i.useMemo)(()=>{let e=new Date,t=lF(e),s=new Date(e);s.setUTCDate(s.getUTCDate()-1);let l=lF(s),r=lA(a,t),i=lA(a,l),n=function(e,t){let s=e-t;if(0!==s)return s>0?`+${s} since yesterday`:`${s} since yesterday`}(r,i),o=a.length,d=a.filter(e=>"blocked"===e.input_policy).length;return{newToday:r,newYesterday:i,trendSubtitle:n,totalTools:o,blockedCount:d,activeTeamsCount:new Set(a.map(e=>e.team_id).filter(Boolean)).size,needsReviewTools:a.filter(e=>lL(e.created_at,t)&&"untrusted"===e.input_policy)}},[a]),X=({label:e,field:s})=>(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{children:e}),(0,t.jsx)(aO.TableHeaderSortDropdown,{sortState:C===s&&I,onSortChange:e=>{!1===e?(T("created_at"),F("desc")):(T(s),F(e)),A(1)}})]}),Z=a.filter(e=>{if(N){let t=N.toLowerCase();if(!(e.tool_name.toLowerCase().includes(t)||(e.team_id??"").toLowerCase().includes(t)||(e.key_alias??"").toLowerCase().includes(t)||(e.key_hash??"").toLowerCase().includes(t)||e.input_policy.toLowerCase().includes(t)||e.output_policy.toLowerCase().includes(t)))return!1}return(!D["Input Policy"]||e.input_policy===D["Input Policy"])&&(!D["Output Policy"]||e.output_policy===D["Output Policy"])&&(!D["Team Name"]||e.team_id===D["Team Name"])&&(!D["Key Name"]||e.key_alias===D["Key Name"])}),ee=[...Z].sort((e,t)=>{let s=e[C]??"",a=t[C]??"";return sa?"desc"===I?-1:1:0}),et=Math.max(1,Math.ceil(ee.length/50)),es=ee.slice((L-1)*50,50*L);return(0,t.jsxs)("div",{className:"w-full",children:[(0,t.jsx)("h1",{className:"text-2xl font-semibold text-gray-900 mb-6",children:"Tool Policies"}),(0,t.jsxs)("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4 mb-6",children:[(0,t.jsx)(ss,{label:"New Today",value:H,valueColor:"text-green-600",subtitle:K,icon:(0,t.jsx)("svg",{className:"w-4 h-4 text-green-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"})})}),(0,t.jsx)(ss,{label:"Total Tools Discovered",value:W}),(0,t.jsx)(ss,{label:"Blocked Tools",value:Q,valueColor:Q>0?"text-red-600":void 0}),(0,t.jsx)(ss,{label:"Active Teams",value:Y>0?Y:"—"})]}),J.length>0&&(0,t.jsxs)("div",{className:"bg-amber-50 border border-amber-200 rounded-lg p-4 mb-6",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold text-amber-900 mb-1",children:"Needs Review"}),(0,t.jsxs)("p",{className:"text-sm text-amber-800 mb-3",children:[J.length," new tool",1!==J.length?"s":""," discovered that require policy decisions."]}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:J.map(e=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-2 px-3 py-1.5 bg-white border border-amber-200 rounded-md text-sm",children:[(0,t.jsx)("span",{className:"font-mono text-amber-900 truncate max-w-[200px]",title:e.tool_name,children:e.tool_name}),(0,t.jsx)("button",{type:"button",onClick:()=>(e=>{let t=ee.findIndex(t=>t.tool_id===e);if(t>=0){let s=Math.floor(t/50)+1;s!==L&&A(s),requestAnimationFrame(()=>{setTimeout(()=>{document.getElementById(`tool-row-${e}`)?.scrollIntoView({behavior:"smooth",block:"center"})},100)})}})(e.tool_id),className:"text-amber-700 hover:text-amber-900 font-medium text-xs whitespace-nowrap",children:"Review"})]},e.tool_id))})]}),(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow w-full max-w-full box-border",children:[(0,t.jsxs)("div",{className:"border-b px-6 py-4 w-full max-w-full box-border",children:[(0,t.jsxs)("div",{className:"flex flex-col md:flex-row items-start md:items-center justify-between space-y-4 md:space-y-0 w-full max-w-full box-border",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,t.jsxs)("div",{className:"relative w-64",children:[(0,t.jsx)("input",{type:"text",placeholder:"Search by Tool Name",className:"w-full px-3 py-2 pl-8 border rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",value:N,onChange:e=>{S(e.target.value),A(1)}}),(0,t.jsx)("svg",{className:"absolute left-2.5 top-2.5 h-4 w-4 text-gray-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-gray-900",children:"Live Tail"}),(0,t.jsx)(_.Switch,{checked:M,onChange:P})]}),(0,t.jsxs)("button",{onClick:R,disabled:O,className:"flex items-center gap-1.5 px-3 py-2 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-60",children:[(0,t.jsx)("svg",{className:`w-4 h-4 ${O?"animate-spin":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})}),O?"Fetching":"Fetch"]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-4 text-sm text-gray-600 whitespace-nowrap",children:[(0,t.jsxs)("span",{children:["Showing ",0===Z.length?0:(L-1)*50+1," -"," ",Math.min(50*L,Z.length)," of ",Z.length," results"]}),(0,t.jsxs)("span",{children:["Page ",L," of ",et]}),(0,t.jsxs)("div",{className:"flex gap-1",children:[(0,t.jsx)("button",{onClick:()=>A(e=>Math.max(1,e-1)),disabled:1===L,className:"px-3 py-1.5 border rounded-md text-sm hover:bg-gray-50 disabled:opacity-40",children:"Previous"}),(0,t.jsx)("button",{onClick:()=>A(e=>Math.min(et,e+1)),disabled:L===et,className:"px-3 py-1.5 border rounded-md text-sm hover:bg-gray-50 disabled:opacity-40",children:"Next"})]})]})]}),(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)(lI.default,{options:V,onApplyFilters:e=>{z(e),A(1)},onResetFilters:()=>{z({}),A(1)},buttonLabel:"Filters"})})]}),M&&(0,t.jsxs)("div",{className:"bg-green-50 border-b border-green-100 px-6 py-2 flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-sm text-green-700",children:"Auto-refreshing every 15 seconds"}),(0,t.jsx)("button",{onClick:()=>P(!1),className:"text-xs text-green-600 underline",children:"Stop"})]}),g&&(0,t.jsx)("div",{className:"mx-6 mt-4 p-3 bg-red-50 border border-red-200 rounded text-sm text-red-700",children:g}),(0,t.jsxs)(d.Table,{className:"[&_td]:py-0.5 [&_th]:py-1 w-full",children:[(0,t.jsx)(u.TableHead,{children:(0,t.jsxs)(x.TableRow,{children:[(0,t.jsx)(p.TableHeaderCell,{className:"py-1 h-8",children:(0,t.jsx)(X,{label:"Discovered",field:"created_at"})}),(0,t.jsx)(p.TableHeaderCell,{className:"py-1 h-8",children:(0,t.jsx)(X,{label:"Tool Name",field:"tool_name"})}),(0,t.jsx)(p.TableHeaderCell,{className:"py-1 h-8",children:(0,t.jsx)(X,{label:"Input Policy",field:"input_policy"})}),(0,t.jsx)(p.TableHeaderCell,{className:"py-1 h-8",children:(0,t.jsx)(X,{label:"Output Policy",field:"output_policy"})}),(0,t.jsx)(p.TableHeaderCell,{className:"py-1 h-8",children:(0,t.jsx)(X,{label:"# Calls",field:"call_count"})}),(0,t.jsx)(p.TableHeaderCell,{className:"py-1 h-8",children:(0,t.jsx)(X,{label:"Team Name",field:"team_id"})}),(0,t.jsx)(p.TableHeaderCell,{className:"py-1 h-8",children:"Key Hash"}),(0,t.jsx)(p.TableHeaderCell,{className:"py-1 h-8",children:(0,t.jsx)(X,{label:"Key Name",field:"key_alias"})}),(0,t.jsx)(p.TableHeaderCell,{className:"py-1 h-8",children:"User Agent"})]})}),(0,t.jsx)(c.TableBody,{children:r?(0,t.jsx)(x.TableRow,{children:(0,t.jsx)(m.TableCell,{colSpan:9,className:"h-8 text-center text-gray-500",children:"Loading tools…"})}):0===es.length?(0,t.jsx)(x.TableRow,{children:(0,t.jsx)(m.TableCell,{colSpan:9,className:"h-8 text-center text-gray-500",children:"No tools discovered yet. Make a chat completion that returns tool_calls to start auto-discovery."})}):es.map(e=>(0,t.jsxs)(x.TableRow,{id:`tool-row-${e.tool_id}`,className:"h-8 hover:bg-gray-50",children:[(0,t.jsx)(m.TableCell,{className:"py-0.5 max-h-8 overflow-hidden whitespace-nowrap",children:(0,t.jsx)(lT.TimeCell,{utcTime:e.created_at??""})}),(0,t.jsx)(m.TableCell,{className:"py-0.5 max-h-8 overflow-hidden",children:(0,t.jsx)("button",{type:"button",onClick:()=>s?.(e.tool_name),className:"text-left w-full font-mono text-xs max-w-[20ch] truncate block font-medium text-blue-600 hover:text-blue-800 hover:underline focus:outline-none focus:ring-0",children:(0,t.jsx)(f.Tooltip,{title:s?"Click to view details and block for team/key":e.tool_name,children:(0,t.jsx)("span",{children:e.tool_name})})})}),(0,t.jsx)(m.TableCell,{className:"py-0.5 max-h-8",children:(0,t.jsx)(lN,{value:e.input_policy,toolName:e.tool_name,saving:j===e.tool_name,onChange:B,policyType:"input"})}),(0,t.jsx)(m.TableCell,{className:"py-0.5 max-h-8",children:(0,t.jsx)(lN,{value:e.output_policy,toolName:e.tool_name,saving:v===e.tool_name,onChange:$,policyType:"output"})}),(0,t.jsx)(m.TableCell,{className:"py-0.5 max-h-8",children:(0,t.jsx)("div",{className:"flex items-center justify-end h-8 tabular-nums text-sm font-mono text-gray-700",children:(e.call_count??0).toLocaleString()})}),(0,t.jsx)(m.TableCell,{className:"py-0.5 max-h-8 overflow-hidden whitespace-nowrap",children:(0,t.jsx)(f.Tooltip,{title:e.team_id??"-",children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:e.team_id??"-"})})}),(0,t.jsx)(m.TableCell,{className:"py-0.5 max-h-8 overflow-hidden whitespace-nowrap",children:(0,t.jsx)(f.Tooltip,{title:e.key_hash??"-",children:(0,t.jsx)("span",{className:"font-mono max-w-[15ch] truncate block text-blue-600",children:e.key_hash??"-"})})}),(0,t.jsx)(m.TableCell,{className:"py-0.5 max-h-8 overflow-hidden whitespace-nowrap",children:(0,t.jsx)(f.Tooltip,{title:e.key_alias??"-",children:(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:e.key_alias??"-"})})}),(0,t.jsx)(m.TableCell,{className:"py-0.5 max-h-8 overflow-hidden whitespace-nowrap",children:(0,t.jsx)(f.Tooltip,{title:e.user_agent??"-",children:(0,t.jsx)("span",{className:"font-mono max-w-[20ch] truncate block text-xs text-gray-500",children:e.user_agent??"-"})})})]},e.tool_id))})]}),et>1&&(0,t.jsxs)("div",{className:"border-t px-6 py-3 flex items-center justify-between text-sm text-gray-600",children:[(0,t.jsxs)("span",{children:["Showing ",(L-1)*50+1," - ",Math.min(50*L,ee.length)," of"," ",ee.length]}),(0,t.jsxs)("div",{className:"flex gap-1",children:[(0,t.jsx)("button",{onClick:()=>A(e=>Math.max(1,e-1)),disabled:1===L,className:"px-3 py-1.5 border rounded-md hover:bg-gray-50 disabled:opacity-40",children:"Previous"}),(0,t.jsx)("button",{onClick:()=>A(e=>Math.min(et,e+1)),disabled:L===et,className:"px-3 py-1.5 border rounded-md hover:bg-gray-50 disabled:opacity-40",children:"Next"})]})]})]})]})};function lP({accessToken:e,userRole:s}){let[a,l]=(0,i.useState)({type:"overview"});return(0,t.jsx)("div",{className:"p-6 w-full min-w-0 flex-1",children:"detail"===a.type?(0,t.jsx)(lC,{toolName:a.toolName,onBack:()=>{l({type:"overview"})},accessToken:e}):(0,t.jsx)(lM,{accessToken:e,userRole:s,onSelectTool:e=>{l({type:"detail",toolName:e})}})})}var lD=e.i(608856),lz=e.i(751904),lE=e.i(123521);let{Text:lO}=sn.Typography,lR=({open:e,mode:s,initialRow:a,onClose:l,onSave:r})=>{let[n]=k.Form.useForm(),[o,d]=(0,i.useState)(!1);(0,i.useEffect)(()=>{e&&("edit"===s&&a?n.setFieldsValue({key:a.key,value:a.value,metadata:null!=a.metadata?JSON.stringify(a.metadata,null,2):""}):n.resetFields())},[e,s,a,n]);let c=async()=>{let e=await n.validateFields();d(!0);let t=await r(e.key.trim(),e.value??"",e.metadata??"","create"===s);d(!1),t&&(n.resetFields(),l())};return(0,t.jsx)(y.Modal,{open:e,title:"create"===s?"Create memory":`Edit ${a?.key??""}`,onCancel:()=>{n.resetFields(),l()},onOk:c,okText:"create"===s?"Create":"Save",confirmLoading:o,width:640,destroyOnClose:!0,children:(0,t.jsxs)(k.Form,{form:n,layout:"vertical",children:[(0,t.jsx)(k.Form.Item,{label:"Key",name:"key",rules:[{required:!0,message:"Key is required"}],tooltip:"Globally unique — two memories cannot share a key. Namespace your own keys if you need per-user isolation (e.g. user:123:notes).",children:(0,t.jsx)(S.Input,{placeholder:"e.g. user_role",disabled:"edit"===s})}),(0,t.jsx)(k.Form.Item,{label:"Value",name:"value",rules:[{required:!0,message:"Value is required"}],tooltip:"Markdown/text injected into LLM context. Plain strings are fine.",children:(0,t.jsx)(S.Input.TextArea,{rows:8,placeholder:"What the agent should remember…"})}),(0,t.jsx)(k.Form.Item,{label:(0,t.jsxs)("span",{children:["Metadata ",(0,t.jsx)(lO,{type:"secondary",children:"(optional JSON)"})]}),name:"metadata",tooltip:"Optional structured metadata — must be valid JSON if provided.",children:(0,t.jsx)(S.Input.TextArea,{rows:4,placeholder:'{"tags": ["example"]}',style:{fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"}})})]})})},{Text:lB,Paragraph:l$,Title:lq}=sn.Typography;function lU(e){if(!e)return"—";try{return new Date(e).toLocaleString()}catch{return e}}let lV=({accessToken:e})=>{let[s,a]=(0,i.useState)(""),[l,r]=(0,i.useState)(""),[n,o]=(0,i.useState)(null),[d,c]=(0,i.useState)(null),[m,u]=(0,i.useState)(null),[p,x]=(0,i.useState)(!1),[h,g]=(0,i.useState)(1);i.default.useEffect(()=>{g(1)},[l]);let y=(0,aA.useQueryClient)(),j="memoryList",{data:b,isLoading:_,isFetching:v}=(0,t1.useQuery)({queryKey:[j,l,h],queryFn:()=>{if(!e)throw Error("Access token required");return(0,w.fetchMemoryList)(e,{keyPrefix:l||void 0,page:h,pageSize:50})},enabled:!!e}),k=(0,i.useMemo)(()=>b?.memories??[],[b]),N=b?.total??0,C=()=>y.invalidateQueries({queryKey:[j]}),T=(0,aL.useMutation)({mutationFn:t=>{if(!e)throw Error("Access token required");return(0,w.createMemory)(e,t)},onSuccess:e=>{sA.message.success(`Created ${e.key}`),C()},onError:e=>{sA.message.error(`Save failed: ${e.message}`)}}),I=(0,aL.useMutation)({mutationFn:t=>{if(!e)throw Error("Access token required");let{key:s,...a}=t;return(0,w.updateMemory)(e,s,a)},onSuccess:e=>{sA.message.success(`Updated ${e.key}`),C()},onError:e=>{sA.message.error(`Save failed: ${e.message}`)}}),F=(0,aL.useMutation)({mutationFn:t=>{if(!e)throw Error("Access token required");return(0,w.deleteMemory)(e,t).then(()=>t)},onSuccess:e=>{sA.message.success(`Deleted ${e}`),C()},onError:e=>{sA.message.error(`Delete failed: ${e.message}`)}}),L=async()=>{if(m)try{await F.mutateAsync(m.key),u(null)}catch{}},A=async(t,s,a,l)=>{let r;if(!e)return!1;if(a.trim())try{r=JSON.parse(a)}catch{return sA.message.error("Metadata must be valid JSON (or leave empty)."),!1}else r=l?void 0:null;try{return l?await T.mutateAsync({key:t,value:s,metadata:r}):await I.mutateAsync({key:t,value:s,metadata:r}),!0}catch{return!1}},M=(e,s)=>{if(!e)return(0,t.jsx)(lB,{type:"secondary",children:"-"});let a=e.length>10?`${e.slice(0,7)}...`:e,l="font-mono text-blue-600 bg-blue-50 text-xs font-medium px-2 py-0.5 rounded-md border border-blue-200 inline-block max-w-[15ch] truncate whitespace-nowrap";return(0,t.jsx)(f.Tooltip,{title:e,children:s?(0,t.jsx)("button",{onClick:s,className:`${l} hover:bg-blue-100 cursor-pointer transition-colors text-left`,children:a}):(0,t.jsx)("span",{className:l,children:a})})},P=[{title:"ID",dataIndex:"memory_id",key:"memory_id",width:140,render:(e,t)=>M(t.memory_id,()=>o(t))},{title:"Name",dataIndex:"key",key:"key",width:200,render:e=>(0,t.jsx)(lB,{code:!0,children:e})},{title:"Preview",dataIndex:"value",key:"value",render:e=>(0,t.jsx)(lB,{type:"secondary",style:{whiteSpace:"pre-wrap"},children:function(e,t=120){if(!e)return"";let s=e.trim();return s.length<=t?s:`${s.slice(0,t)}…`}(e)})},{title:"User ID",dataIndex:"user_id",key:"user_id",width:160,render:e=>M(e)},{title:"Team ID",dataIndex:"team_id",key:"team_id",width:160,render:e=>M(e)},{title:"Updated",dataIndex:"updated_at",key:"updated_at",width:180,render:e=>(0,t.jsx)(lB,{type:"secondary",children:lU(e)})},{title:"",key:"actions",width:140,render:(e,s)=>(0,t.jsxs)(U.Space,{size:4,children:[(0,t.jsx)(V.Button,{size:"small",type:"text",icon:(0,t.jsx)(lE.EyeOutlined,{}),onClick:()=>o(s),"aria-label":"View"}),(0,t.jsx)(V.Button,{size:"small",type:"text",icon:(0,t.jsx)(lz.EditOutlined,{}),onClick:()=>c(s),"aria-label":"Edit"}),(0,t.jsx)(V.Button,{size:"small",type:"text",danger:!0,icon:(0,t.jsx)(tt.DeleteOutlined,{}),onClick:()=>{u(s)},"aria-label":"Delete"})]})}];return(0,t.jsxs)("div",{className:"w-full",style:{padding:24},children:[(0,t.jsxs)(U.Space,{direction:"vertical",size:"large",style:{width:"100%"},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(lq,{level:3,style:{marginBottom:4},children:"Memory"}),(0,t.jsxs)(l$,{type:"secondary",style:{marginBottom:0},children:["Inspect what your agents have stored under ",(0,t.jsx)(lB,{code:!0,children:"/v1/memory"}),". Scoped to memories visible to your user / team (admins see all)."]})]}),(0,t.jsxs)(ts.Card,{children:[(0,t.jsxs)(U.Space,{style:{width:"100%",justifyContent:"space-between",marginBottom:16},wrap:!0,children:[(0,t.jsxs)(U.Space,{children:[(0,t.jsx)(S.Input,{allowClear:!0,placeholder:'Filter by key prefix, e.g. "user:"',prefix:(0,t.jsx)(al.SearchOutlined,{}),value:s,onChange:e=>a(e.target.value),onPressEnter:()=>r(s.trim()),onClear:()=>{a(""),r("")},style:{width:280}}),(0,t.jsx)(V.Button,{type:"primary",ghost:!0,onClick:()=>r(s.trim()),children:"Search"}),(0,t.jsx)(V.Button,{icon:(0,t.jsx)(sS.ReloadOutlined,{}),onClick:()=>C(),loading:v&&!_,children:"Refresh"})]}),(0,t.jsx)(V.Button,{type:"primary",icon:(0,t.jsx)(H.PlusOutlined,{}),onClick:()=>x(!0),children:"New memory"})]}),(0,t.jsx)(te.Table,{rowKey:"memory_id",loading:_,dataSource:k,columns:P,pagination:{current:h,pageSize:50,total:N,showSizeChanger:!1,showTotal:(e,t)=>`${t[0]}–${t[1]} of ${e}`,onChange:e=>g(e)},locale:{emptyText:(0,t.jsx)(aB.Empty,{description:l?`No memories with keys starting with "${l}"`:"No memories stored yet"})}})]})]}),(0,t.jsx)(lD.Drawer,{open:!!n,onClose:()=>o(null),title:n?(0,t.jsx)(U.Space,{children:(0,t.jsx)(lB,{code:!0,children:n.key})}):"Memory",width:720,destroyOnClose:!0,children:n&&(0,t.jsxs)(U.Space,{direction:"vertical",size:"middle",style:{width:"100%"},children:[(0,t.jsxs)(U.Space,{size:"large",wrap:!0,children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(lB,{strong:!0,style:{display:"block"},children:"Memory ID"}),(0,t.jsx)(lB,{code:!0,style:{fontSize:12},children:n.memory_id})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(lB,{strong:!0,style:{display:"block"},children:"User ID"}),(0,t.jsx)(lB,{type:n.user_id?void 0:"secondary",children:n.user_id??"-"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(lB,{strong:!0,style:{display:"block"},children:"Team ID"}),(0,t.jsx)(lB,{type:n.team_id?void 0:"secondary",children:n.team_id??"-"})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(lB,{strong:!0,children:"Value"}),(0,t.jsx)(l$,{style:{background:"#fafafa",padding:12,borderRadius:6,whiteSpace:"pre-wrap",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:13},children:n.value})]}),void 0!==n.metadata&&null!==n.metadata&&(0,t.jsxs)("div",{children:[(0,t.jsx)(lB,{strong:!0,children:"Metadata"}),(0,t.jsx)(l$,{style:{background:"#fafafa",padding:12,borderRadius:6,whiteSpace:"pre-wrap",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:12},children:JSON.stringify(n.metadata,null,2)})]}),(0,t.jsxs)(U.Space,{split:(0,t.jsx)(lB,{type:"secondary",children:"·"}),wrap:!0,size:"small",style:{color:"rgba(0,0,0,0.45)"},children:[(0,t.jsxs)(lB,{type:"secondary",children:["Created ",lU(n.created_at),n.created_by?` by ${n.created_by}`:""]}),(0,t.jsxs)(lB,{type:"secondary",children:["Updated ",lU(n.updated_at),n.updated_by?` by ${n.updated_by}`:""]})]})]})}),(0,t.jsx)(lR,{open:p||!!d,mode:d?"edit":"create",initialRow:d??void 0,onClose:()=>{x(!1),c(null)},onSave:A}),(0,t.jsx)(sW.default,{isOpen:!!m,title:"Delete memory",message:"This action cannot be undone.",resourceInformationTitle:"Memory",resourceInformation:m?[{label:"Key",value:m.key,code:!0},{label:"Memory ID",value:m.memory_id,code:!0},{label:"User ID",value:m.user_id??"-",code:!0},{label:"Team ID",value:m.team_id??"-",code:!0}]:[],onCancel:()=>{F.isPending||u(null)},onOk:L,confirmLoading:F.isPending,requiredConfirmation:m?.key})]})},{Text:lH}=sn.Typography,lG={pending:"#a1a1aa",running:"#3b82f6",paused:"#f59e0b",completed:"#22c55e",failed:"#ef4444"},lK={"step.started":{bar:"#f0fdf4",border:"#86efac",text:"#16a34a"},"step.failed":{bar:"#fef2f2",border:"#fca5a5",text:"#dc2626"},"hook.waiting":{bar:"#fffbeb",border:"#fcd34d",text:"#d97706"},"hook.received":{bar:"#eff6ff",border:"#93c5fd",text:"#2563eb"}};function lW(e){let t=Date.now()-new Date(e).getTime();if(isNaN(t))return e;let s=Math.floor(t/1e3);if(s<60)return`${s}s ago`;let a=Math.floor(s/60);if(a<60)return`${a}m ago`;let l=Math.floor(a/60);return l<24?`${l}h ago`:`${Math.floor(l/24)}d ago`}function lQ(e){return e<0?"":e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`}function lY(e){let t=e.metadata?.title;return t?String(t):e.workflow_type??e.run_id.slice(0,8)}function lJ(e){return e.slice(0,8)}let lX=({status:e,size:s=8})=>(0,t.jsx)("span",{style:{display:"inline-block",width:s,height:s,borderRadius:"50%",background:lG[e]??"#a1a1aa",flexShrink:0}}),lZ=({value:e})=>{let[s,a]=(0,i.useState)(!1);return e.length<=120?(0,t.jsx)("span",{style:{color:"#27272a",wordBreak:"break-all"},children:e}):(0,t.jsxs)("span",{style:{color:"#27272a",wordBreak:"break-all"},children:[s?e:e.slice(0,120)+"…",(0,t.jsx)("button",{onClick:()=>a(e=>!e),style:{background:"none",border:"none",padding:"0 4px",cursor:"pointer",color:"#2563eb",fontSize:11,flexShrink:0},children:s?"less":"more"})]})},l0=({run:e})=>{let s=e.metadata??{},a=[{key:"state",label:"state"},{key:"worktree_path",label:"worktree"},{key:"grill_session_id",label:"grill session"},{key:"session_id",label:"session"}],l=new Set(["title",...a.map(e=>e.key)]),r=Object.entries(s).filter(([e,t])=>!l.has(e)&&null!=t&&""!==t);return(0,t.jsxs)("div",{style:{borderRadius:8,border:"1px solid #e4e4e7",marginBottom:16,overflow:"hidden"},children:[(0,t.jsxs)("div",{style:{padding:"14px 20px",borderBottom:"1px solid #f4f4f5",display:"flex",alignItems:"center",gap:10},children:[(0,t.jsx)(lX,{status:e.status,size:10}),(0,t.jsx)("span",{style:{fontSize:14,fontWeight:600,color:"#18181b",flex:1},children:lY(e)}),(0,t.jsx)("span",{style:{fontFamily:"monospace",fontSize:11,color:"#a1a1aa",background:"#f4f4f5",padding:"2px 8px",borderRadius:4},children:lJ(e.run_id)}),(0,t.jsx)("span",{style:{fontSize:11,color:"#a1a1aa",background:"#f4f4f5",padding:"2px 8px",borderRadius:4},children:e.workflow_type})]}),(0,t.jsxs)("div",{style:{padding:"12px 20px",display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(220px, 1fr))",gap:"8px 24px",fontFamily:"monospace",fontSize:12},children:[(0,t.jsx)(l1,{label:"status",children:(0,t.jsx)("span",{style:{textTransform:"capitalize",color:"#27272a"},children:e.status})}),(0,t.jsx)(l1,{label:"created",children:(0,t.jsx)("span",{style:{color:"#27272a"},children:lW(e.created_at)})}),s.pr_url&&(0,t.jsx)(l1,{label:"pr",children:(0,t.jsx)("a",{href:String(s.pr_url),target:"_blank",rel:"noopener noreferrer",style:{color:"#2563eb",textDecoration:"none",wordBreak:"break-all"},children:String(s.pr_url)})}),a.map(({key:e,label:a})=>{let l=s[e];if(null==l||""===l)return null;let r="object"==typeof l?JSON.stringify(l):String(l);return(0,t.jsx)(l1,{label:a,children:(0,t.jsx)(lZ,{value:r})},e)}),r.map(([e,s])=>{let a="object"==typeof s?JSON.stringify(s):String(s);return(0,t.jsx)(l1,{label:e,children:(0,t.jsx)(lZ,{value:a})},e)})]})]})},l1=({label:e,children:s})=>(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:1},children:[(0,t.jsx)("span",{style:{fontSize:10,color:"#a1a1aa",textTransform:"uppercase",letterSpacing:"0.06em"},children:e}),(0,t.jsx)("span",{style:{fontSize:12},children:s})]}),l2=({run:e,events:s})=>{if(0===s.length)return(0,t.jsx)("div",{style:{padding:"16px 0",color:"#a1a1aa",fontSize:12,fontFamily:"monospace"},children:"No events recorded"});let a=new Date(e.created_at).getTime(),l=Math.max(...s.map(e=>new Date(e.created_at).getTime())),r=Math.max(l-a,1),n=lQ(l-a);return(0,t.jsxs)("div",{style:{fontFamily:"monospace",fontSize:12},children:[(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"160px 1fr",gap:"0 12px",marginBottom:2},children:[(0,t.jsx)("div",{}),(0,t.jsx)("div",{style:{position:"relative",height:16},children:[0,100].map(e=>(0,t.jsx)("span",{style:{position:"absolute",left:`${e}%`,transform:100===e?"translateX(-100%)":void 0,fontSize:10,color:"#a1a1aa"},children:0===e?"0":n},e))})]}),(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"160px 1fr",gap:"0 12px",marginBottom:4},children:[(0,t.jsx)("div",{style:{color:"#3f3f46",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",paddingTop:2},children:lY(e)}),(0,t.jsx)("div",{style:{height:24,background:"#f4f4f5",border:"1px solid #d4d4d8",borderRadius:4,display:"flex",alignItems:"center",paddingLeft:8},children:(0,t.jsx)("span",{style:{color:"#71717a",fontSize:11},children:n})})]}),(0,t.jsx)("div",{style:{display:"grid",gridTemplateColumns:"160px 1fr",gap:"0 12px",rowGap:3},children:s.map(e=>{let n=new Date(e.created_at).getTime(),o=(n-a)/r*100,d=s.findIndex(t=>t.sequence_number>e.sequence_number),c=d>=0?new Date(s[d].created_at).getTime():l+Math.max(.12*r,500),m=Math.max(8,(c-n)/r*100),u=lK[e.event_type]??{bar:"#f4f4f5",border:"#d4d4d8",text:"#52525b"},p=lQ(c-n);return(0,t.jsxs)(i.default.Fragment,{children:[(0,t.jsx)("div",{style:{color:u.text,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",paddingTop:2,paddingLeft:12},children:e.step_name||e.event_type}),(0,t.jsx)("div",{style:{position:"relative",height:24},children:(0,t.jsx)(f.Tooltip,{title:(0,t.jsxs)("div",{style:{fontFamily:"monospace",fontSize:11,lineHeight:1.6},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{style:{color:"#a1a1aa"},children:"type: "}),(0,t.jsx)("span",{style:{color:u.text},children:e.event_type})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{style:{color:"#a1a1aa"},children:"step: "}),e.step_name]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{style:{color:"#a1a1aa"},children:"seq: "}),e.sequence_number]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{style:{color:"#a1a1aa"},children:"time: "}),lW(e.created_at)]}),e.data&&Object.keys(e.data).length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{style:{color:"#a1a1aa"},children:"data: "}),JSON.stringify(e.data)]})]}),children:(0,t.jsxs)("div",{style:{position:"absolute",left:`${Math.min(o,92)}%`,width:`${Math.min(m,100-Math.min(o,92))}%`,height:"100%",background:u.bar,border:`1px solid ${u.border}`,borderRadius:4,display:"flex",alignItems:"center",paddingLeft:8,cursor:"default",overflow:"hidden",gap:6},children:[(0,t.jsx)("span",{style:{color:u.text,whiteSpace:"nowrap",fontSize:11},children:e.event_type}),p&&(0,t.jsx)("span",{style:{color:"#a1a1aa",whiteSpace:"nowrap",fontSize:11},children:p})]})})})]},e.event_id)})})]})},l4=({msg:e})=>{let s={user:"#2563eb",assistant:"#16a34a",system:"#7c3aed",tool_result:"#d97706"}[e.role]??"#52525b";return(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"80px 1fr",gap:"0 16px",padding:"10px 0",borderBottom:"1px solid #f4f4f5",fontFamily:"monospace",fontSize:12,alignItems:"start"},children:[(0,t.jsxs)("span",{style:{color:s,paddingTop:1},children:["[",e.role,"]"]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{style:{color:"#27272a",lineHeight:1.6,whiteSpace:"pre-wrap",wordBreak:"break-word",display:"block"},children:e.content}),(0,t.jsx)("span",{style:{color:"#a1a1aa",fontSize:11,marginTop:2,display:"block"},children:lW(e.created_at)})]})]})},l5=({accessToken:e})=>{let[s,a]=(0,i.useState)([]),[l,r]=(0,i.useState)(!1),[n,o]=(0,i.useState)(null),[d,c]=(0,i.useState)([]),[m,u]=(0,i.useState)([]),[p,x]=(0,i.useState)(!1),[h,g]=(0,i.useState)(!1),y=(0,i.useCallback)(async()=>{if(e){r(!0);try{let t=await fetch(`${w.proxyBaseUrl??""}/v1/workflows/runs?limit=100`,{headers:{Authorization:`Bearer ${e}`}});if(!t.ok)throw Error(`HTTP ${t.status}`);let s=await t.json();a(s.runs??[])}catch(e){console.error("workflow runs fetch failed:",e)}finally{r(!1)}}},[e]),j=(0,i.useCallback)(async t=>{if(e){o(t),g(!0),x(!0),c([]),u([]);try{let s=w.proxyBaseUrl??"",[a,l]=await Promise.all([fetch(`${s}/v1/workflows/runs/${t.run_id}/events`,{headers:{Authorization:`Bearer ${e}`}}),fetch(`${s}/v1/workflows/runs/${t.run_id}/messages`,{headers:{Authorization:`Bearer ${e}`}})]),r=a.ok?await a.json():{events:[]},i=l.ok?await l.json():{messages:[]};c([...r.events??[]].sort((e,t)=>e.sequence_number-t.sequence_number)),u([...i.messages??[]].sort((e,t)=>e.sequence_number-t.sequence_number))}catch(e){console.error("workflow run detail fetch failed:",e)}finally{x(!1)}}},[e]);(0,i.useEffect)(()=>{y()},[y]);let f=[{title:"Run",dataIndex:"run_id",key:"run",render:(e,s)=>(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,t.jsx)(lX,{status:s.status,size:7}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{fontSize:13,color:"#18181b",fontWeight:500,lineHeight:1.4},children:lY(s)}),(0,t.jsx)("div",{style:{fontFamily:"monospace",fontSize:11,color:"#a1a1aa"},children:lJ(s.run_id)})]})]})},{title:"Type",dataIndex:"workflow_type",key:"workflow_type",render:e=>(0,t.jsx)("span",{style:{fontFamily:"monospace",fontSize:12,color:"#71717a"},children:e})},{title:"Status",dataIndex:"status",key:"status",render:(e,s)=>{let a=s.metadata?.state;return(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,t.jsx)(lX,{status:e,size:7}),(0,t.jsx)("span",{style:{fontSize:12,color:"#52525b",textTransform:"capitalize"},children:a??e})]})}},{title:"Created",dataIndex:"created_at",key:"created_at",render:e=>(0,t.jsx)("span",{style:{fontSize:12,color:"#a1a1aa"},children:lW(e)})}];return(0,t.jsxs)("div",{style:{padding:"24px 32px",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',minHeight:"calc(100vh - 64px)",background:"#fff"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:20},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{fontSize:18,fontWeight:600,color:"#18181b"},children:"Workflow Runs"}),(0,t.jsx)("div",{style:{fontSize:13,color:"#71717a",marginTop:2},children:"Durable state tracking for agents and automated workflows"})]}),(0,t.jsx)(V.Button,{icon:(0,t.jsx)(sS.ReloadOutlined,{}),onClick:y,loading:l,style:{color:"#71717a",borderColor:"#e4e4e7"},children:"Refresh"})]}),(0,t.jsx)("div",{className:"rounded-lg custom-border overflow-x-auto w-full",children:(0,t.jsx)(te.Table,{dataSource:s,columns:f,rowKey:"run_id",loading:l,size:"small",pagination:{pageSize:50,hideOnSinglePage:!0,size:"small"},onRow:e=>({onClick:()=>j(e),style:{cursor:"pointer"}}),locale:{emptyText:(0,t.jsx)(aB.Empty,{description:(0,t.jsx)("span",{style:{color:"#a1a1aa",fontSize:13},children:"No workflow runs yet"}),image:aB.Empty.PRESENTED_IMAGE_SIMPLE})},className:"[&_.ant-table-cell]:py-0.5 [&_.ant-table-thead_.ant-table-cell]:py-1",style:{border:"none"}})}),(0,t.jsx)(lD.Drawer,{open:h,onClose:()=>g(!1),width:680,title:null,closable:!1,bodyStyle:{padding:0},styles:{body:{padding:0}},children:n?p?(0,t.jsx)("div",{style:{display:"flex",justifyContent:"center",padding:80},children:(0,t.jsx)(eF.Spin,{})}):(0,t.jsxs)("div",{style:{padding:"24px 28px",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:16},children:[(0,t.jsx)("button",{onClick:()=>g(!1),style:{background:"none",border:"none",cursor:"pointer",padding:"4px 0",fontSize:12,color:"#a1a1aa",display:"flex",alignItems:"center",gap:4},children:"← close"}),(0,t.jsx)(V.Button,{size:"small",icon:(0,t.jsx)(sS.ReloadOutlined,{}),onClick:()=>j(n),loading:p,style:{color:"#71717a",borderColor:"#e4e4e7"},children:"Refresh"})]}),(0,t.jsx)(l0,{run:n}),(0,t.jsx)(q.Collapse,{defaultActiveKey:["timeline"],ghost:!1,style:{border:"1px solid #e4e4e7",borderRadius:8,overflow:"hidden"},items:[{key:"timeline",label:(0,t.jsxs)("span",{style:{fontSize:12,fontWeight:500,color:"#3f3f46"},children:["Timeline",(0,t.jsxs)("span",{style:{marginLeft:6,fontSize:11,color:"#a1a1aa",fontWeight:400},children:[d.length," ",1===d.length?"event":"events"]})]}),children:(0,t.jsx)("div",{style:{padding:"4px 4px 12px"},children:(0,t.jsx)(l2,{run:n,events:d})})},{key:"messages",label:(0,t.jsxs)("span",{style:{fontSize:12,fontWeight:500,color:"#3f3f46"},children:["Messages",(0,t.jsx)("span",{style:{marginLeft:6,fontSize:11,color:"#a1a1aa",fontWeight:400},children:m.length})]}),children:0===m.length?(0,t.jsx)("div",{style:{padding:"12px 4px",color:"#a1a1aa",fontSize:12,fontFamily:"monospace"},children:"No messages"}):(0,t.jsx)("div",{style:{paddingBottom:4},children:m.map(e=>(0,t.jsx)(l4,{msg:e},e.message_id))})}]})]}):null})]})};var l6=e.i(936190),l3=e.i(910119),l8=e.i(275144),l7=e.i(268004),l9=e.i(161281),re=e.i(321836),rt=e.i(947293),rs=e.i(618566),ra=e.i(592143);function rl(e,t="/"){document.cookie=`${e}=; Max-Age=0; Path=${t}`,"token"===e&&(0,l7.clearTokenCookies)()}let rr={api_ref:"api-reference","api-reference":"api-reference"};function ri(){let[e,n]=(0,i.useState)(""),[o,d]=(0,i.useState)(!1),[c,m]=(0,i.useState)(!1),[u,p]=(0,i.useState)(null),[x,h]=(0,i.useState)(null),[g,y]=(0,i.useState)([]),[j,f]=(0,i.useState)([]),[b,_]=(0,i.useState)([]),[v,k]=(0,i.useState)({PROXY_BASE_URL:"",PROXY_LOGOUT_URL:""}),[N,S]=(0,i.useState)(!0),C=(0,rs.useRouter)(),T=(0,rs.useSearchParams)(),[I,F]=(0,i.useState)({data:[]}),[L,A]=(0,i.useState)(null),[M,P]=(0,i.useState)(!1),[D,z]=(0,i.useState)(!0),[E,O]=(0,i.useState)(null),[R,B]=(0,i.useState)(!0),[$,q]=(0,i.useState)(!1),[U,V]=(0,i.useState)(!1),[H,G]=(0,i.useState)(!1),[K,W]=(0,i.useState)(!1),[Q,Y]=(0,i.useState)(!1),J=T.get("invitation_id"),X="true"===T.get("create"),Z=(0,i.useMemo)(()=>{if(!X)return;let e=T.get("owned_by"),t=T.get("team_id"),s=T.get("key_alias"),a=T.get("models"),l=T.get("key_type");if(!e&&!t&&!s&&!a&&!l)return;let r=e&&["you","service_account","another_user"].includes(e)?e:void 0,i=l&&["default","llm_api","management"].includes(l)?l:void 0,n=s?s.trim().slice(0,256):void 0,o=a?a.split(",").slice(0,100).map(e=>e.trim().slice(0,256)).filter(e=>e.length>0):void 0;return{owned_by:r,team_id:t?.trim()||void 0,key_alias:n,models:o&&o.length>0?o:void 0,key_type:i}},[T,X]),[ee,et]=(0,i.useState)(()=>T.get("page")||"api-keys"),[es,ea]=(0,i.useState)(null),[el,er]=(0,i.useState)(!1),ei=(0,i.useRef)(!1),en=e=>{y(t=>t?[...t,e]:[e]),P(()=>!M)},eo=!1===D&&null===L&&null===J;(0,i.useEffect)(()=>{let e=!1;return(async()=>{try{await (0,w.getUiConfig)()}catch{}if(e)return;let t=(0,l7.getCookie)("token"),s=t&&!(0,l9.isJwtExpired)(t)?t:null;t&&!s&&rl("token","/"),e||(A(s),z(!1))})(),()=>{e=!0}},[]),(0,i.useEffect)(()=>{if(eo){(0,re.storeReturnUrl)();let e=(w.proxyBaseUrl||"")+"/ui/login",t=(0,re.buildLoginUrlWithReturn)(e);window.location.replace(t)}},[eo]);let ed=ee in rr;return((0,i.useEffect)(()=>{if(!D&&ed){let e=(w.proxyBaseUrl||"")+"/ui";C.replace(`${e}/${rr[ee]}`)}},[D,ed,ee,C]),(0,i.useEffect)(()=>{if(D||!L||ei.current)return;ei.current=!0;let e=(0,re.consumeReturnUrl)();if(e&&(0,re.isValidReturnUrl)(e)){let t=new URL(e,window.location.origin);if(t.origin!==window.location.origin)return;let s=window.location.href;(0,re.normalizeUrlForCompare)(e)!==(0,re.normalizeUrlForCompare)(s)&&window.location.replace(t.href)}},[D,L]),(0,i.useEffect)(()=>{L||(ei.current=!1)},[L]),(0,i.useEffect)(()=>{if(!L)return;if((0,l9.isJwtExpired)(L)){rl("token","/"),A(null);return}let e=null;try{e=(0,rt.jwtDecode)(L)}catch{rl("token","/"),A(null);return}e&&(ea(e.key),m(e.disabled_non_admin_personal_key_creation),e.user_role&&n((0,ew.formatUserRole)(e.user_role)),e.user_email&&p(e.user_email),e.login_method&&S("username_password"==e.login_method),e.premium_user&&d(e.premium_user),e.auth_header_name&&(0,w.setGlobalLitellmHeaderName)(e.auth_header_name),e.user_id&&O(e.user_id))},[L]),(0,i.useEffect)(()=>{es&&E&&e&&(0,sZ.fetchUserModels)(E,e,es,_),es&&E&&e&&(0,eV.teamListCall)(es,1,100,{userID:"Admin"!==e&&"Admin Viewer"!==e?E:null}).then(e=>h(e.teams??[])).catch(console.error),es&&(0,s0.fetchOrganizations)(es,f)},[es,E,e]),(0,i.useEffect)(()=>{es&&L&&(async()=>{try{let e=await (0,w.getInProductNudgesCall)(es),t=e?.is_claude_code_enabled||!1;V(t),t&&(G(!0),B(!1))}catch(e){console.error("Failed to fetch in-product nudges:",e)}})()},[es,L]),(0,i.useEffect)(()=>{if(R&&!$){let e=setTimeout(()=>{B(!1)},15e3);return()=>clearTimeout(e)}},[R,$]),(0,i.useEffect)(()=>{if(H&&!K){let e=setTimeout(()=>{G(!1)},15e3);return()=>clearTimeout(e)}},[H,K]),D||eo||ed)?(0,t.jsx)(eH.default,{}):(0,t.jsx)(i.Suspense,{fallback:(0,t.jsx)(eH.default,{}),children:(0,t.jsx)(ra.ConfigProvider,{theme:{algorithm:Q?sL.theme.darkAlgorithm:sL.theme.defaultAlgorithm},children:(0,t.jsx)(l8.ThemeProvider,{accessToken:es,children:J?(0,t.jsx)(aI.default,{userID:E,userRole:e,premiumUser:o,teams:x,keys:g,setUserRole:n,userEmail:u,setUserEmail:p,setTeams:h,setKeys:y,organizations:j,addKey:en,createClicked:M}):(0,t.jsxs)("div",{className:"flex flex-col min-h-screen",children:[(0,t.jsx)(sf.default,{userID:E,userRole:e,premiumUser:o,userEmail:u,setProxySettings:k,proxySettings:v,accessToken:es,isPublicPage:!1,sidebarCollapsed:el,onToggleSidebar:()=>{er(!el)},isDarkMode:Q,toggleDarkMode:()=>{Y(!Q)}}),(0,t.jsxs)("div",{className:"flex flex-1",children:[(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(s.default,{setPage:e=>{let t=new URLSearchParams(T);t.set("page",e),window.history.pushState(null,"",`?${t.toString()}`),et(e)},defaultSelectedKey:ee,sidebarCollapsed:el})}),"api-keys"==ee?(0,t.jsx)(aI.default,{userID:E,userRole:e,premiumUser:o,teams:x,keys:g,setUserRole:n,userEmail:u,setUserEmail:p,setTeams:h,setKeys:y,organizations:j,addKey:en,createClicked:M,autoOpenCreate:X,prefillData:Z}):"models"==ee?(0,t.jsx)(a.default,{token:L,keys:g,modelData:I,setModelData:F,premiumUser:o,teams:x}):"llm-playground"==ee?(0,t.jsx)(l.default,{}):"users"==ee?(0,t.jsx)(l3.default,{userID:E,userRole:e,token:L,keys:g,teams:x,accessToken:es,setKeys:y}):"teams"==ee?(0,t.jsx)(sX,{teams:x,setTeams:h,accessToken:es,userID:E,userRole:e,organizations:j,premiumUser:o,searchParams:T}):"organizations"==ee?(0,t.jsx)(s0.default,{organizations:j,setOrganizations:f,userModels:b,accessToken:es,userRole:e,premiumUser:o}):"admin-panel"==ee?(0,t.jsx)(r.default,{proxySettings:v}):"logging-and-alerts"==ee?(0,t.jsx)(ad.default,{userID:E,userRole:e,accessToken:es,premiumUser:o}):"budgets"==ee?(0,t.jsx)(e$.default,{accessToken:es}):"guardrails"==ee?(0,t.jsx)(sh.default,{accessToken:es,userRole:e}):"policies"==ee?(0,t.jsx)(sg.default,{accessToken:es,userRole:e}):"agents"==ee?(0,t.jsx)(eB,{accessToken:es,userRole:e,teams:x}):"prompts"==ee?(0,t.jsx)(s2.default,{accessToken:es,userRole:e}):"transform-request"==ee?(0,t.jsx)(aS.default,{accessToken:es}):"router-settings"==ee?(0,t.jsx)(tQ.default,{userID:E,userRole:e,accessToken:es,modelData:I}):"ui-theme"==ee?(0,t.jsx)(aC.default,{userID:E,userRole:e,accessToken:es}):"cost-tracking"==ee?(0,t.jsx)(tW,{userID:E,userRole:e,accessToken:es}):"model-hub-table"==ee?(0,ew.isAdminRole)(e)?(0,t.jsx)(sj.default,{accessToken:es,publicPage:!1,premiumUser:o,userRole:e}):(0,t.jsx)(s4.default,{accessToken:es,isEmbedded:!0}):"caching"==ee?(0,t.jsx)(eq.default,{userID:E,userRole:e,token:L,accessToken:es,premiumUser:o}):"pass-through-settings"==ee?(0,t.jsx)(s1.default,{userID:E,userRole:e,accessToken:es,modelData:I,premiumUser:o}):"logs"==ee?(0,t.jsx)(l6.default,{userID:E,userRole:e,token:L,accessToken:es,premiumUser:o}):"mcp-servers"==ee?(0,t.jsx)(sy.MCPServers,{accessToken:es,userRole:e,userID:E}):"search-tools"==ee?(0,t.jsx)(ao,{accessToken:es,userRole:e,userID:E}):"tag-management"==ee?(0,t.jsx)(aN.default,{accessToken:es,userRole:e,userID:E}):"skills"==ee||"claude-code-plugins"==ee?(0,t.jsx)(eU.default,{accessToken:es,userRole:e}):"access-groups"==ee?(0,t.jsx)(a7,{}):"projects"==ee?(0,t.jsx)(lj,{}):"vector-stores"==ee?(0,t.jsx)(lf.default,{accessToken:es,userRole:e,userID:E}):"tool-policies"==ee?(0,t.jsx)(lP,{accessToken:es,userRole:e}):"workflows"==ee?(0,t.jsx)(l5,{accessToken:es}):"memory"==ee?(0,t.jsx)(lV,{accessToken:es,userID:E,userRole:e}):"guardrails-monitor"==ee?(0,t.jsx)(sx,{accessToken:es}):"new_usage"==ee?(0,t.jsx)(sb.default,{teams:x??[],organizations:j??[]}):(0,t.jsx)(aT.default,{userID:E,userRole:e,token:L,accessToken:es,keys:g,premiumUser:o})]}),(0,t.jsx)(ag,{isVisible:R,onOpen:()=>{B(!1),q(!0)},onDismiss:()=>{B(!1)}}),(0,t.jsx)(a_,{isOpen:$,onClose:()=>{q(!1),B(!0)},onComplete:()=>{q(!1)}}),(0,t.jsx)(aw,{isVisible:H,onOpen:()=>{G(!1),W(!0)},onDismiss:()=>{G(!1)}}),(0,t.jsx)(ak,{isOpen:K,onClose:()=>{W(!1),G(!0)},onComplete:()=>{W(!1)}})]})})})})}e.s(["default",0,function(){return(0,t.jsx)(i.Suspense,{fallback:(0,t.jsx)(eH.default,{}),children:(0,t.jsx)(ri,{})})}],952683)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0dlrukrl-wbwl.js b/litellm/proxy/_experimental/out/_next/static/chunks/0dlrukrl-wbwl.js new file mode 100644 index 00000000000..be7c693535b --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/0dlrukrl-wbwl.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,56567,838932,471145,e=>{"use strict";var t=e.i(843476),l=e.i(135214),a=e.i(109799),s=e.i(912598),r=e.i(907308),i=e.i(764205),n=e.i(266027);let o=(0,e.i(243652).createQueryKeys)("guardrails"),d=()=>{let{accessToken:e,userId:t,userRole:a}=(0,l.default)();return(0,n.useQuery)({queryKey:o.list({}),queryFn:async()=>(0,i.getGuardrailsList)(e),enabled:!!(e&&t&&a),select:e=>{let t=e?.guardrails??[],l=new Set,a=new Set;for(let e of t)e.litellm_params?.default_on?l.add(e.guardrail_name):a.add(e.guardrail_name);return{guardrails:t,globalGuardrailNames:l,optionalGuardrailNames:a}}})};e.s(["useGuardrails",0,d],838932);var m=e.i(500330),c=e.i(11751),u=e.i(708347),g=e.i(751904),h=e.i(160818),p=e.i(827252),x=e.i(564897),_=e.i(646563),b=e.i(987432),y=e.i(530212),j=e.i(677667),f=e.i(130643),v=e.i(898667),T=e.i(389083),S=e.i(304967),w=e.i(350967),N=e.i(599724),C=e.i(779241),k=e.i(629569),I=e.i(464571),M=e.i(808613),z=e.i(311451),A=e.i(28651),F=e.i(199133),P=e.i(770914),O=e.i(790848),D=e.i(653496),L=e.i(262218),R=e.i(592968),B=e.i(888259),U=e.i(678784),V=e.i(118366),E=e.i(271645),$=e.i(9314),K=e.i(552130),G=e.i(127952);function W({className:e,value:l,onChange:a}){return(0,t.jsxs)(F.Select,{className:e,value:l,onChange:a,children:[(0,t.jsx)(F.Select.Option,{value:"24h",children:"Daily"}),(0,t.jsx)(F.Select.Option,{value:"7d",children:"Weekly"}),(0,t.jsx)(F.Select.Option,{value:"30d",children:"Monthly"})]})}var q=e.i(844565),H=e.i(355619);let J=function({globalGuardrailNames:e,teamGuardrails:l=[],optedOutGlobalGuardrails:a=[],killSwitchOn:s=!1,variant:r="card",className:i=""}){let n=new Set(a),o=Array.from(e).filter(e=>!n.has(e)),d=l.filter(t=>!e.has(t)),m=s||0!==o.length||0!==d.length?(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("span",{className:"block text-sm font-medium text-gray-700 mb-2",children:[(0,t.jsx)(h.GlobalOutlined,{style:{marginInlineEnd:4},"aria-label":"Global guardrail"}),"Global"]}),s?(0,t.jsx)(L.Tag,{color:"gold",children:"Bypassed for this team"}):o.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:o.map(e=>(0,t.jsx)(L.Tag,{color:"blue",children:e},e))}):(0,t.jsx)("span",{className:"block text-sm text-gray-500",children:"None configured"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Team-specific"}),d.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:d.map(e=>(0,t.jsx)(L.Tag,{color:"blue",children:e},e))}):(0,t.jsx)("span",{className:"block text-sm text-gray-500",children:"None configured"})]})]}):(0,t.jsx)("span",{className:"block text-gray-500",children:"No guardrails configured"});return"card"===r?(0,t.jsxs)("div",{className:`bg-white border border-gray-200 rounded-lg p-6 ${i}`,children:[(0,t.jsx)("div",{className:"flex items-center gap-2 mb-6",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"block font-semibold text-gray-900",children:"Guardrails Settings"}),(0,t.jsx)("span",{className:"block text-xs text-gray-500",children:"Global and team-specific guardrails applied to this team"})]})}),m]}):(0,t.jsxs)("div",{className:`${i}`,children:[(0,t.jsx)("span",{className:"block font-medium text-gray-900 mb-3",children:"Guardrails Settings"}),m]})};var Q=e.i(643449),Y=e.i(75921),X=e.i(390605),Z=e.i(162386),ee=e.i(727749),et=e.i(384767),el=e.i(435451),ea=e.i(916940);let es=({onChange:e,value:l,className:a,accessToken:s,placeholder:r="Select search tools (optional)",disabled:n=!1})=>{let[o,d]=(0,E.useState)([]),[m,c]=(0,E.useState)(!1);return(0,E.useEffect)(()=>{(async()=>{if(s){c(!0);try{let e=await (0,i.fetchSearchTools)(s),t=Array.isArray(e?.search_tools)?e.search_tools:Array.isArray(e?.data)?e.data:[];d(t.map(e=>e?.search_tool_name).filter(e=>"string"==typeof e&&e.length>0).map(e=>({label:e,value:e})))}catch(e){console.error("Failed to load search tools:",e)}finally{c(!1)}}})()},[s]),(0,t.jsx)(F.Select,{mode:"multiple",allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:r,onChange:e,value:l,loading:m,className:a,options:o,style:{width:"100%"},disabled:n})};e.s(["default",0,es],471145);var er=e.i(183588),ei=e.i(460285),en=e.i(276173),eo=e.i(91979),ed=e.i(269200),em=e.i(942232),ec=e.i(977572),eu=e.i(427612),eg=e.i(64848),eh=e.i(496020),ep=e.i(536916),ex=e.i(21548);let e_={"/key/generate":"Member can generate a virtual key for this team","/key/service-account/generate":"Member can generate a service account key (not belonging to any user) for this team","/key/update":"Member can update a virtual key belonging to this team","/key/delete":"Member can delete a virtual key belonging to this team","/key/info":"Member can get info about a virtual key belonging to this team","/key/regenerate":"Member can regenerate a virtual key belonging to this team","/key/{key_id}/regenerate":"Member can regenerate a virtual key belonging to this team","/key/list":"Member can list virtual keys belonging to this team","/key/block":"Member can block a virtual key belonging to this team","/key/unblock":"Member can unblock a virtual key belonging to this team","/team/daily/activity":"Member can view all team usage data (not just their own)","/spend/logs":"Member can view spend logs for the entire team (not just their own)"},eb=({teamId:e,accessToken:l,canEditTeam:a})=>{let[s,r]=(0,E.useState)([]),[n,o]=(0,E.useState)([]),[d,m]=(0,E.useState)(!0),[c,u]=(0,E.useState)(!1),[g,h]=(0,E.useState)(!1),p=async()=>{try{if(m(!0),!l)return;let t=await (0,i.getTeamPermissionsCall)(l,e),a=t.all_available_permissions||[];r(a);let s=t.team_member_permissions||[];o(s),h(!1)}catch(e){ee.default.fromBackend("Failed to load permissions"),console.error("Error fetching permissions:",e)}finally{m(!1)}};(0,E.useEffect)(()=>{p()},[e,l]);let x=async()=>{try{if(!l)return;u(!0),await (0,i.teamPermissionsUpdateCall)(l,e,n),ee.default.success("Permissions updated successfully"),h(!1)}catch(e){ee.default.fromBackend("Failed to update permissions"),console.error("Error updating permissions:",e)}finally{u(!1)}};if(d)return(0,t.jsx)("div",{className:"p-6 text-center",children:"Loading permissions..."});let _=s.length>0;return(0,t.jsxs)(S.Card,{className:"bg-white shadow-md rounded-md p-6",children:[(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center border-b pb-4 mb-6",children:[(0,t.jsx)(k.Title,{className:"mb-2 sm:mb-0",children:"Member Permissions"}),a&&g&&(0,t.jsxs)("div",{className:"flex gap-3",children:[(0,t.jsx)(I.Button,{icon:(0,t.jsx)(eo.ReloadOutlined,{}),onClick:()=>{p()},children:"Reset"}),(0,t.jsx)(I.Button,{onClick:x,loading:c,type:"primary",icon:(0,t.jsx)(b.SaveOutlined,{}),children:"Save Changes"})]})]}),(0,t.jsx)(N.Text,{className:"mb-6 text-gray-600",children:"Control what team members can do when they are not team admins."}),_?(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(ed.Table,{className:" min-w-full",children:[(0,t.jsx)(eu.TableHead,{children:(0,t.jsxs)(eh.TableRow,{children:[(0,t.jsx)(eg.TableHeaderCell,{children:"Method"}),(0,t.jsx)(eg.TableHeaderCell,{children:"Endpoint"}),(0,t.jsx)(eg.TableHeaderCell,{children:"Description"}),(0,t.jsx)(eg.TableHeaderCell,{className:"sticky right-0 bg-white shadow-[-4px_0_4px_-4px_rgba(0,0,0,0.1)] text-center",children:"Allow Access"})]})}),(0,t.jsx)(em.TableBody,{children:s.map(e=>{let l=(e=>{let t=e.includes("/info")||e.includes("/list")||e.includes("/activity")||"/spend/logs"===e?"GET":"POST",l=e_[e];if(!l){for(let[t,a]of Object.entries(e_))if(e.includes(t)){l=a;break}}return l||(l=`Access ${e}`),{method:t,endpoint:e,description:l,route:e}})(e);return(0,t.jsxs)(eh.TableRow,{className:"hover:bg-gray-50 transition-colors",children:[(0,t.jsx)(ec.TableCell,{children:(0,t.jsx)("span",{className:`px-2 py-1 rounded text-xs font-medium ${"GET"===l.method?"bg-blue-100 text-blue-800":"bg-green-100 text-green-800"}`,children:l.method})}),(0,t.jsx)(ec.TableCell,{children:(0,t.jsx)("span",{className:"font-mono text-sm text-gray-800",children:l.endpoint})}),(0,t.jsx)(ec.TableCell,{className:"text-gray-700",children:l.description}),(0,t.jsx)(ec.TableCell,{className:"sticky right-0 bg-white shadow-[-4px_0_4px_-4px_rgba(0,0,0,0.1)] text-center",children:(0,t.jsx)(ep.Checkbox,{checked:n.includes(e),onChange:t=>{o(t.target.checked?[...n,e]:n.filter(t=>t!==e)),h(!0)},disabled:!a})})]},e)})})]})}):(0,t.jsx)("div",{className:"py-12",children:(0,t.jsx)(ex.Empty,{description:"No permissions available"})})]})};var ey=e.i(822315);function ej(e){if(!e)return null;let t=(0,ey.default)(e);return t.isValid()?t.format("MMM D, YYYY"):null}var ef=e.i(175712),ev=e.i(178654),eT=e.i(621192),eS=e.i(898586);let ew=async(e,t)=>{let l=(0,i.getProxyBaseUrl)(),a=l?`${l}/team/${encodeURIComponent(t)}/members/me`:`/team/${encodeURIComponent(t)}/members/me`,s=await fetch(a,{method:"GET",headers:{[(0,i.getGlobalLitellmHeaderName)()]:`Bearer ${e}`,"Content-Type":"application/json"}});if(404===s.status)return null;if(!s.ok){let e=await s.json().catch(()=>({}));throw Error((0,i.deriveErrorMessage)(e))}return await s.json()},eN=(e,l)=>(0,t.jsxs)(P.Space,{size:4,children:[(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:e}),(0,t.jsx)(R.Tooltip,{title:l,children:(0,t.jsx)(p.InfoCircleOutlined,{style:{color:"#8c8c8c"}})})]}),eC=(e,t=4)=>null==e?"0":(0,m.formatNumberWithCommas)(e,t),ek=e=>null==e?"Unlimited":(0,m.formatNumberWithCommas)(e,0);function eI({teamId:e}){let{data:a,isLoading:s,error:r}=(e=>{let{accessToken:t}=(0,l.default)();return(0,n.useQuery)({queryKey:["team",e,"members","me"],queryFn:()=>ew(t,e),enabled:!!(t&&e)})})(e);if(s)return(0,t.jsx)(ef.Card,{children:(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"Loading your membership info…"})});if(r)return(0,t.jsx)(ef.Card,{children:(0,t.jsx)(eS.Typography.Text,{type:"danger",children:r instanceof Error?r.message:"Failed to load your membership info for this team."})});if(!a)return(0,t.jsx)(ef.Card,{children:(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"No membership info available for the current user in this team."})});let i=a.litellm_budget_table??null,o=i?.max_budget??null,d=a.spend??0,m=a.total_spend??0,c=i?.tpm_limit??null,u=i?.rpm_limit??null,g=ej(i?.budget_reset_at),h=i?.allowed_models??null;return(0,t.jsxs)(P.Space,{direction:"vertical",size:"middle",style:{width:"100%"},children:[(0,t.jsx)(ef.Card,{children:(0,t.jsxs)(eT.Row,{gutter:[24,16],children:[(0,t.jsxs)(ev.Col,{xs:24,sm:12,md:8,children:[(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"User"}),(0,t.jsx)("div",{style:{marginTop:4},children:(0,t.jsx)(eS.Typography.Text,{strong:!0,children:a.user_email||a.user_id})}),(0,t.jsx)(eS.Typography.Text,{type:"secondary",style:{fontSize:12,fontFamily:"monospace"},children:a.user_id})]}),(0,t.jsxs)(ev.Col,{xs:24,sm:12,md:8,children:[(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"Team Role"}),(0,t.jsx)("div",{style:{marginTop:4},children:(0,t.jsx)(L.Tag,{color:"admin"===a.role?"blue":"default",children:a.role||"user"})})]})]})}),(0,t.jsxs)(eT.Row,{gutter:[16,16],children:[(0,t.jsx)(ev.Col,{xs:24,md:12,children:(0,t.jsxs)(ef.Card,{children:[eN("Current Cycle Spend (USD)","Spend for the current budget cycle. Resets to $0 when the budget window rolls over."),(0,t.jsxs)("div",{style:{marginTop:8},children:[(0,t.jsxs)(eS.Typography.Title,{level:3,style:{margin:0},children:["$",eC(d,4)]}),(0,t.jsxs)(eS.Typography.Text,{type:"secondary",children:["of ",null===o?"Unlimited":`$${eC(o,4)}`]})]}),g&&(0,t.jsx)("div",{style:{marginTop:4},children:(0,t.jsxs)(eS.Typography.Text,{type:"secondary",children:["Resets ",g]})})]})}),(0,t.jsx)(ev.Col,{xs:24,md:12,children:(0,t.jsxs)(ef.Card,{children:[eN("Rate Limits","Your per-member rate limits within this team."),(0,t.jsxs)("div",{style:{marginTop:8},children:[(0,t.jsxs)(eS.Typography.Text,{children:["TPM: ",ek(c)]}),(0,t.jsx)("br",{}),(0,t.jsxs)(eS.Typography.Text,{children:["RPM: ",ek(u)]})]})]})}),(0,t.jsx)(ev.Col,{xs:24,md:12,children:(0,t.jsxs)(ef.Card,{children:[eN("Total Spend (USD)","Cumulative spend across all budget cycles within this team."),(0,t.jsx)("div",{style:{marginTop:8},children:(0,t.jsxs)(eS.Typography.Title,{level:4,style:{margin:0},children:["$",eC(m,4)]})})]})}),(0,t.jsx)(ev.Col,{xs:24,md:12,children:(0,t.jsxs)(ef.Card,{children:[eN("Model Scope","Models you can access within this team."),(0,t.jsx)("div",{style:{marginTop:8},children:h&&h.length>0?(0,t.jsx)(P.Space,{wrap:!0,children:h.map(e=>(0,t.jsx)(L.Tag,{children:e},e))}):(0,t.jsx)(eS.Typography.Text,{children:"All Team Models"})})]})})]})]})}let eM="overview",ez="my-user",eA="virtual-keys",eF="members",eP="member-permissions",eO="settings",eD={[eM]:"Overview",[ez]:"My User",[eA]:"Virtual Keys",[eF]:"Members",[eP]:"Member Permissions",[eO]:"Settings"};var eL=e.i(292639),eR=e.i(294612);function eB({teamData:e,canEditTeam:a,handleMemberDelete:s,setSelectedEditMember:r,setIsEditMemberModalVisible:i,setIsAddMemberModalVisible:n}){let o=e=>{if(null==e)return"0";if("number"==typeof e){let t=Number(e);return t===Math.floor(t)?t.toString():(0,m.formatNumberWithCommas)(t,8).replace(/\.?0+$/,"")}return"0"},{data:d}=(0,eL.useUISettings)(),{userId:c,userRole:g}=(0,l.default)(),h=!!d?.values?.disable_team_admin_delete_team_user,x=(0,u.isUserTeamAdminForSingleTeam)(e.team_info.members_with_roles,c||""),_=(0,u.isProxyAdminRole)(g||""),b=[{title:(0,t.jsxs)(P.Space,{direction:"horizontal",children:["Model Scope",(0,t.jsx)(R.Tooltip,{title:"Models this member can access. Empty means they inherit all team models.",children:(0,t.jsx)(p.InfoCircleOutlined,{})})]}),key:"model_scope",render:(l,a)=>{let s=(t=>{if(!t)return null;let l=e.team_memberships.find(e=>e.user_id===t),a=l?.litellm_budget_table?.allowed_models;return a&&a.length>0?a:null})(a.user_id);if(!s)return(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"(all team models)"});let r=s.slice(0,2),i=s.length-r.length;return(0,t.jsxs)(P.Space,{wrap:!0,children:[r.map(e=>(0,t.jsx)(eS.Typography.Text,{code:!0,style:{fontSize:"12px"},children:e},e)),i>0&&(0,t.jsx)(R.Tooltip,{title:s.slice(2).join(", "),children:(0,t.jsxs)(eS.Typography.Text,{type:"secondary",children:["+",i," more"]})})]})}},{title:(0,t.jsxs)(P.Space,{direction:"horizontal",children:["Current Cycle Spend (USD)",(0,t.jsx)(R.Tooltip,{title:"Spend for the current budget cycle. Resets to $0 when the member's budget window rolls over. This is the value checked against the member's budget.",children:(0,t.jsx)(p.InfoCircleOutlined,{})})]}),key:"spend",render:(l,a)=>(0,t.jsxs)(eS.Typography.Text,{children:["$",(0,m.formatNumberWithCommas)((t=>{if(!t)return 0;let l=e.team_memberships.find(e=>e.user_id===t);return l?.spend??0})(a.user_id),4)]})},{title:(0,t.jsxs)(P.Space,{direction:"horizontal",children:["Total Spend (USD)",(0,t.jsx)(R.Tooltip,{title:"Cumulative spend by this member within this team, across all budget cycles. Tracking began 2026-04-21; spend from before that date is not included.",children:(0,t.jsx)(p.InfoCircleOutlined,{})})]}),key:"total_spend",render:(l,a)=>(0,t.jsxs)(eS.Typography.Text,{children:["$",(0,m.formatNumberWithCommas)((t=>{if(!t)return 0;let l=e.team_memberships.find(e=>e.user_id===t);return l?.total_spend??0})(a.user_id),4)]})},{title:"Team Member Budget (USD)",key:"budget",render:(l,a)=>{let s=(t=>{if(!t)return null;let l=e.team_memberships.find(e=>e.user_id===t),a=l?.litellm_budget_table?.max_budget;return null==a?null:o(a)})(a.user_id);return(0,t.jsx)(eS.Typography.Text,{children:s?`$${(0,m.formatNumberWithCommas)(Number(s),4)}`:"No Limit"})}},{title:"Budget Reset",key:"budget_reset",render:(l,a)=>{let s=(t=>{if(!t)return null;let l=e.team_memberships.find(e=>e.user_id===t);return ej(l?.litellm_budget_table?.budget_reset_at)})(a.user_id);return s?(0,t.jsx)(eS.Typography.Text,{children:s}):(0,t.jsx)(eS.Typography.Text,{type:"secondary",children:"—"})}},{title:(0,t.jsxs)(P.Space,{direction:"horizontal",children:["Team Member Rate Limits",(0,t.jsx)(R.Tooltip,{title:"Rate limits for this member's usage within this team.",children:(0,t.jsx)(p.InfoCircleOutlined,{})})]}),key:"rate_limits",render:(l,a)=>(0,t.jsx)(eS.Typography.Text,{children:(t=>{if(!t)return"No Limits";let l=e.team_memberships.find(e=>e.user_id===t),a=l?.litellm_budget_table?.rpm_limit,s=l?.litellm_budget_table?.tpm_limit,r=[a?`${o(a)} RPM`:null,s?`${o(s)} TPM`:null].filter(Boolean);return r.length>0?r.join(" / "):"No Limits"})(a.user_id)})}];return(0,t.jsx)(eR.default,{members:e.team_info.members_with_roles,canEdit:a,onEdit:t=>{let l=e.team_memberships.find(e=>e.user_id===t.user_id);r({...t,max_budget_in_team:l?.litellm_budget_table?.max_budget||null,tpm_limit:l?.litellm_budget_table?.tpm_limit||null,rpm_limit:l?.litellm_budget_table?.rpm_limit||null,allowed_models:l?.litellm_budget_table?.allowed_models||[]}),i(!0)},onDelete:s,onAddMember:()=>n(!0),roleColumnTitle:"Team Role",roleTooltip:"This role applies only to this team and is independent from the user's proxy-level role.",extraColumns:b,showDeleteForMember:()=>_||a&&!x||x&&!h})}var eU=e.i(207082),eV=e.i(871943),eE=e.i(502547),e$=e.i(360820),eK=e.i(94629),eG=e.i(152990),eW=e.i(682830),eq=e.i(994388),eH=e.i(752978),eJ=e.i(282786),eQ=e.i(981339),eY=e.i(304911),eX=e.i(969550),eZ=e.i(20147),e0=e.i(633627);function e1({teamId:e,teamAlias:a,organization:s}){let{accessToken:r}=(0,l.default)(),[i,o]=(0,E.useState)(null),[d,c]=(0,E.useState)([{id:"created_at",desc:!0}]),[u,g]=(0,E.useState)({pageIndex:0,pageSize:50}),[h,x]=(0,E.useState)({"Organization ID":"","Key Alias":"","User ID":"","Sort By":"created_at","Sort Order":"desc"}),_=d.length>0?d[0].id:"created_at",b=d.length>0?d[0].desc?"desc":"asc":"desc",y=u.pageIndex,j=u.pageSize,{data:f,isPending:v,isFetching:S,refetch:w}=(0,eU.useKeys)(y+1,j,{teamID:e,organizationID:h["Organization ID"]?.trim()||void 0,selectedKeyAlias:h["Key Alias"]?.trim()||void 0,userID:h["User ID"]?.trim()||void 0,sortBy:_||void 0,sortOrder:b||void 0,expand:"user"}),C=(0,E.useMemo)(()=>{let e=f?.keys||[],t=s?.organization_id;return t?e.map(e=>({...e,organization_id:(e.organization_id??e.org_id)||t})):e},[f?.keys,s?.organization_id]),k=f?.total_pages??0,[I,M]=(0,E.useState)({}),z=(0,E.useMemo)(()=>({team_id:e,team_alias:a||e,models:[],max_budget:null,budget_duration:null,tpm_limit:null,rpm_limit:null,organization_id:s?.organization_id||"",created_at:"",keys:[],members_with_roles:[],spend:0}),[e,a,s]),A=(0,n.useQuery)({queryKey:["teamFilterOptions",e,r],queryFn:async()=>(0,e0.fetchTeamFilterOptions)(r,e),enabled:!!r&&!!e,staleTime:3e4}).data||{keyAliases:[],organizationIds:[],userIds:[]},F=(0,E.useCallback)(()=>{w?.()},[w]);(0,E.useEffect)(()=>(window.addEventListener("storage",F),()=>window.removeEventListener("storage",F)),[F]);let P=(0,E.useCallback)((e,t=!1)=>{x(t=>({...t,"Organization ID":e["Organization ID"]??t["Organization ID"],"Key Alias":e["Key Alias"]??t["Key Alias"],"User ID":e["User ID"]??t["User ID"],"Sort By":e["Sort By"]??t["Sort By"]??"created_at","Sort Order":e["Sort Order"]??t["Sort Order"]??"desc"})),t||g(e=>({...e,pageIndex:0}))},[]),O=(0,E.useCallback)(()=>{x({"Organization ID":"","Key Alias":"","User ID":"","Sort By":"created_at","Sort Order":"desc"}),g(e=>({...e,pageIndex:0}))},[]),D=(0,E.useMemo)(()=>[{name:"Organization ID",label:"Organization ID",isSearchable:!0,searchFn:async e=>{let{organizationIds:t}=A;if(!t.length)return[];let l=e.toLowerCase();return(l?t.filter(e=>e.toLowerCase().includes(l)):t).map(e=>({label:e,value:e}))}},{name:"Key Alias",label:"Key Alias",isSearchable:!0,searchFn:async e=>{let{keyAliases:t}=A,l=e.toLowerCase();return(l?t.filter(e=>e.toLowerCase().includes(l)):t).map(e=>({label:e,value:e}))}},{name:"User ID",label:"User ID",isSearchable:!0,searchFn:async e=>{let{userIds:t}=A,l=e.toLowerCase();return(l?t.filter(e=>e.id.toLowerCase().includes(l)||e.email.toLowerCase().includes(l)):t).map(e=>({label:e.email?`${e.id} (${e.email})`:e.id,value:e.id}))}}],[A]),L=(0,E.useMemo)(()=>[{id:"token",accessorKey:"token",header:"Key ID",size:100,enableSorting:!0,cell:e=>{let l=e.getValue(),a=e.cell.column.getSize();return(0,t.jsx)(R.Tooltip,{title:l,children:(0,t.jsx)(eq.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left overflow-hidden truncate block",style:{maxWidth:a,overflow:"hidden"},onClick:()=>o(e.row.original),children:l??"-"})})}},{id:"key_alias",accessorKey:"key_alias",header:"Key Alias",size:150,enableSorting:!0,cell:e=>{let l=e.getValue(),a=e.cell.column.getSize();return(0,t.jsx)(R.Tooltip,{title:l,children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block",style:{maxWidth:a,overflow:"hidden"},children:l??"-"})})}},{id:"key_name",accessorKey:"key_name",header:"Secret Key",size:120,enableSorting:!1,cell:e=>(0,t.jsx)("span",{className:"font-mono text-xs",children:e.getValue()})},{id:"organization_id",accessorKey:"organization_id",header:"Organization ID",size:140,enableSorting:!1,cell:e=>e.getValue()?e.renderValue():"-"},{id:"user_email",accessorKey:"user",header:"User Email",size:160,enableSorting:!1,cell:e=>{let l=e.getValue(),a=l?.user_email,s=e.cell.column.getSize();return(0,t.jsx)(R.Tooltip,{title:a,children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block",style:{maxWidth:s,overflow:"hidden"},children:a??"-"})})}},{id:"user_id",accessorKey:"user_id",header:"User ID",size:70,enableSorting:!1,cell:e=>{let l=e.getValue(),a="default_user_id"===l?"Default Proxy Admin":l,s=e.cell.column.getSize();return(0,t.jsx)(R.Tooltip,{title:a,children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block",style:{maxWidth:s,overflow:"hidden"},children:a??"-"})})}},{id:"created_at",accessorKey:"created_at",header:"Created At",size:120,enableSorting:!0,cell:e=>{let t=e.getValue();return t?new Date(t).toLocaleDateString():"-"}},{id:"created_by",accessorKey:"created_by",header:"Created By",size:70,enableSorting:!1,cell:e=>{let l=e.getValue();if(!l)return"-";let{created_by_user:a}=e.row.original,s=a?.user_alias??null,r=a?.user_email??null,i="default_user_id"===l,n=s||r||l,o=e.cell.column.getSize(),d=(0,t.jsx)("div",{className:"flex flex-col gap-2 text-xs min-w-[200px] max-w-[300px]",children:[{label:"User Alias",value:s},{label:"User Email",value:r},{label:"User ID",value:l}].map(({label:e,value:l})=>(0,t.jsxs)("div",{className:"flex flex-col min-w-0",children:[(0,t.jsx)("span",{className:"text-gray-400",children:e}),l?(0,t.jsx)(eS.Typography.Text,{className:"font-mono text-xs",ellipsis:{tooltip:l},copyable:!0,children:l}):(0,t.jsx)("span",{className:"font-mono",children:"-"})]},e))});return!i||s||r?(0,t.jsx)(eJ.Popover,{content:d,trigger:"hover",placement:"bottomLeft",children:(0,t.jsx)("span",{className:"font-mono text-xs truncate block cursor-default",style:{maxWidth:o,overflow:"hidden"},children:n})}):(0,t.jsx)(eJ.Popover,{content:d,trigger:"hover",placement:"bottomLeft",children:(0,t.jsx)("span",{className:"cursor-default",children:(0,t.jsx)(eY.default,{userId:l})})})}},{id:"updated_at",accessorKey:"updated_at",header:"Updated At",size:120,enableSorting:!0,cell:e=>{let t=e.getValue();return t?new Date(t).toLocaleDateString():"Never"}},{id:"last_active",accessorKey:"last_active",header:()=>(0,t.jsxs)("span",{className:"flex items-center gap-1",children:["Last Active",(0,t.jsx)(eJ.Popover,{content:"This is a new field and is not backfilled. Only new key usage will update this value.",trigger:"hover",children:(0,t.jsx)(p.InfoCircleOutlined,{className:"text-gray-400 text-xs cursor-help"})})]}),size:130,enableSorting:!1,cell:e=>{let l=e.getValue();if(!l)return"Unknown";let a=new Date(l);return(0,t.jsx)(R.Tooltip,{title:a.toLocaleString(void 0,{dateStyle:"medium",timeStyle:"long"}),children:(0,t.jsx)("span",{children:a.toLocaleDateString()})})}},{id:"expires",accessorKey:"expires",header:"Expires",size:120,enableSorting:!1,cell:e=>{let t=e.getValue();return t?new Date(t).toLocaleDateString():"Never"}},{id:"spend",accessorKey:"spend",header:"Spend (USD)",size:100,enableSorting:!0,cell:e=>(0,m.formatNumberWithCommas)(e.getValue(),4)},{id:"max_budget",accessorKey:"max_budget",header:"Budget (USD)",size:110,enableSorting:!0,cell:e=>{let t=e.getValue();return null===t?"Unlimited":`$${(0,m.formatNumberWithCommas)(t)}`}},{id:"budget_reset_at",accessorKey:"budget_reset_at",header:"Budget Reset",size:130,enableSorting:!1,cell:e=>{let t=e.getValue();return t?new Date(t).toLocaleString():"Never"}},{id:"models",accessorKey:"models",header:"Models",size:200,enableSorting:!1,cell:e=>{let l=e.getValue();return(0,t.jsx)("div",{className:"flex flex-col py-2",children:Array.isArray(l)?(0,t.jsx)("div",{className:"flex flex-col",children:0===l.length?(0,t.jsx)(T.Badge,{size:"xs",className:"mb-1",color:"red",children:(0,t.jsx)(N.Text,{children:"All Proxy Models"})}):(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)("div",{className:"flex items-start",children:[l.length>3&&(0,t.jsx)("div",{children:(0,t.jsx)(eH.Icon,{icon:I[e.row.id]?eV.ChevronDownIcon:eE.ChevronRightIcon,className:"cursor-pointer",size:"xs",onClick:()=>M(t=>({...t,[e.row.id]:!t[e.row.id]}))})}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-1",children:[l.slice(0,3).map((e,l)=>"all-proxy-models"===e?(0,t.jsx)(T.Badge,{size:"xs",color:"red",children:(0,t.jsx)(N.Text,{children:"All Proxy Models"})},l):(0,t.jsx)(T.Badge,{size:"xs",color:"blue",children:(0,t.jsx)(N.Text,{children:e.length>30?`${(0,H.getModelDisplayName)(e).slice(0,30)}...`:(0,H.getModelDisplayName)(e)})},l)),l.length>3&&!I[e.row.id]&&(0,t.jsx)(T.Badge,{size:"xs",color:"gray",className:"cursor-pointer",children:(0,t.jsxs)(N.Text,{children:["+",l.length-3," ",l.length-3==1?"more model":"more models"]})}),I[e.row.id]&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:l.slice(3).map((e,l)=>"all-proxy-models"===e?(0,t.jsx)(T.Badge,{size:"xs",color:"red",children:(0,t.jsx)(N.Text,{children:"All Proxy Models"})},l+3):(0,t.jsx)(T.Badge,{size:"xs",color:"blue",children:(0,t.jsx)(N.Text,{children:e.length>30?`${(0,H.getModelDisplayName)(e).slice(0,30)}...`:(0,H.getModelDisplayName)(e)})},l+3))})]})]})})}):null})}},{id:"rate_limits",header:"Rate Limits",size:140,enableSorting:!1,cell:({row:e})=>{let l=e.original;return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{children:["TPM: ",null!==l.tpm_limit?l.tpm_limit:"Unlimited"]}),(0,t.jsxs)("div",{children:["RPM: ",null!==l.rpm_limit?l.rpm_limit:"Unlimited"]})]})}}],[I]),B=(0,E.useCallback)(e=>{let t="function"==typeof e?e(d):e;if(c(t),t?.length>0){let e=t[0];P({"Sort By":e.id,"Sort Order":e.desc?"desc":"asc"},!0)}},[d,P]),U=(0,eG.useReactTable)({data:C,columns:L,columnResizeMode:"onChange",columnResizeDirection:"ltr",state:{sorting:d,pagination:u},onSortingChange:B,onPaginationChange:g,getCoreRowModel:(0,eW.getCoreRowModel)(),enableSorting:!0,manualSorting:!0,manualPagination:!0,pageCount:k});return(0,t.jsx)("div",{className:"w-full h-full overflow-hidden",children:i?(0,t.jsx)(eZ.default,{keyId:i.token,onClose:()=>o(null),keyData:i,teams:[z],onDelete:w}):(0,t.jsxs)("div",{className:"border-b py-4 flex-1 overflow-hidden",children:[(0,t.jsx)("div",{className:"w-full mb-6",children:(0,t.jsx)(eX.default,{options:D,onApplyFilters:P,initialValues:h,onResetFilters:O})}),(0,t.jsx)("div",{className:"flex items-center justify-end w-full mb-4",children:(0,t.jsxs)("div",{className:"inline-flex items-center gap-2",children:[v||S?(0,t.jsx)(eQ.Skeleton.Node,{active:!0,style:{width:74,height:20}}):(0,t.jsxs)("span",{className:"text-sm text-gray-700",children:["Page ",y+1," of ",U.getPageCount()]}),v||S?(0,t.jsx)(eQ.Skeleton.Button,{active:!0,size:"small",style:{width:84,height:30}}):(0,t.jsx)("button",{onClick:()=>U.previousPage(),disabled:v||S||!U.getCanPreviousPage(),className:"px-3 py-1 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Previous"}),v||S?(0,t.jsx)(eQ.Skeleton.Button,{active:!0,size:"small",style:{width:58,height:30}}):(0,t.jsx)("button",{onClick:()=>U.nextPage(),disabled:v||S||!U.getCanNextPage(),className:"px-3 py-1 text-sm border rounded-md hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Next"})]})}),(0,t.jsx)("div",{className:"h-[75vh] overflow-auto",children:(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(ed.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",style:{width:U.getCenterTotalSize()},children:[(0,t.jsx)(eu.TableHead,{children:U.getHeaderGroups().map(e=>(0,t.jsx)(eh.TableRow,{children:e.headers.map(e=>(0,t.jsx)(eg.TableHeaderCell,{"data-header-id":e.id,className:`py-1 h-8 relative hover:bg-gray-50 ${"actions"===e.id?"sticky right-0 bg-white shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)]":""}`,style:{width:e.getSize(),position:"relative",cursor:e.column.getCanSort()?"pointer":"default"},onMouseEnter:()=>{let t=document.querySelector(`[data-header-id="${e.id}"] .resizer`);t&&(t.style.opacity="0.5")},onMouseLeave:()=>{let t=document.querySelector(`[data-header-id="${e.id}"] .resizer`);t&&!e.column.getIsResizing()&&(t.style.opacity="0")},onClick:e.column.getCanSort()?e.column.getToggleSortingHandler():void 0,children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,eG.flexRender)(e.column.columnDef.header,e.getContext())}),"actions"!==e.id&&e.column.getCanSort()&&(0,t.jsx)("div",{className:"w-4",children:e.column.getIsSorted()?({asc:(0,t.jsx)(e$.ChevronUpIcon,{className:"h-4 w-4 text-blue-500"}),desc:(0,t.jsx)(eV.ChevronDownIcon,{className:"h-4 w-4 text-blue-500"})})[e.column.getIsSorted()]:(0,t.jsx)(eK.SwitchVerticalIcon,{className:"h-4 w-4 text-gray-400"})}),(0,t.jsx)("div",{onDoubleClick:()=>e.column.resetSize(),onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:`resizer ${U.options.columnResizeDirection} ${e.column.getIsResizing()?"isResizing":""}`,style:{position:"absolute",right:0,top:0,height:"100%",width:"5px",background:e.column.getIsResizing()?"#3b82f6":"transparent",cursor:"col-resize",userSelect:"none",touchAction:"none",opacity:+!!e.column.getIsResizing()}})]})},e.id))},e.id))}),(0,t.jsx)(em.TableBody,{children:v||S?(0,t.jsx)(eh.TableRow,{children:(0,t.jsx)(ec.TableCell,{colSpan:L.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"Loading keys..."})})})}):C.length>0?U.getRowModel().rows.map(e=>(0,t.jsx)(eh.TableRow,{className:"h-8",children:e.getVisibleCells().map(e=>(0,t.jsx)(ec.TableCell,{style:{width:e.column.getSize(),maxWidth:"8-x",whiteSpace:"pre-wrap",overflow:"hidden"},className:`py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap ${"models"===e.column.id&&Array.isArray(e.getValue())&&e.getValue().length>3?"px-0":""}`,children:(0,eG.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(eh.TableRow,{children:(0,t.jsx)(ec.TableCell,{colSpan:L.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No keys found"})})})})})]})})})})]})})}e.s(["default",0,({teamId:e,onClose:n,accessToken:o,is_team_admin:eo,is_proxy_admin:ed,is_org_admin:em=!1,userModels:ec,editTeam:eu,premiumUser:eg=!1,onUpdate:eh})=>{let ep,ex,e_,ey,ej,ef,[ev,eT]=(0,E.useState)(null),[eS,ew]=(0,E.useState)(!0),[eN,eC]=(0,E.useState)(!1),[ek]=M.Form.useForm(),[eL,eR]=(0,E.useState)(!1),[eU,eV]=(0,E.useState)(null),[eE,e$]=(0,E.useState)(!1),[eK,eG]=(0,E.useState)([]),[eW,eq]=(0,E.useState)(!1),[eH,eJ]=(0,E.useState)({}),{data:eQ,isLoading:eY}=d(),eX=eQ?.globalGuardrailNames??new Set,[eZ,e0]=(0,E.useState)([]),[e4,e2]=(0,E.useState)({}),[e5,e3]=(0,E.useState)(!1),[e6,e8]=(0,E.useState)(null),[e7,e9]=(0,E.useState)(!1),[te,tt]=(0,E.useState)(!1),[tl,ta]=(0,E.useState)(!1),ts=E.default.useRef(null),[tr,ti]=(0,E.useState)(null),{userRole:tn,userId:to}=(0,l.default)(),{data:td=[]}=(0,a.useOrganizations)(),tm=(0,s.useQueryClient)(),tc=(0,E.useMemo)(()=>{let e=ev?.team_info?.organization_id;if(!e||!to)return!1;let t=td.find(t=>t.organization_id===e);return t?.members?.some(e=>e.user_id===to&&"org_admin"===e.user_role)??!1},[ev,td,to]),tu=M.Form.useWatch("models",ek),tg=M.Form.useWatch("disable_global_guardrails",ek),th=(0,E.useMemo)(()=>{let e=tu??ev?.team_info?.models??[];return e.includes("all-proxy-models")||e.includes("all-team-models")?ec:(0,H.unfurlWildcardModelsInList)(e,ec)},[tu,ev,ec]),tp=eo||ed||em||tc,tx=(0,E.useMemo)(()=>{let e;return e=[eM,ez,eA],tp?[...e,eF,eP,eO]:e},[tp]),t_=(0,E.useMemo)(()=>eu&&tp?eO:eM,[eu,tp]),tb=async()=>{try{if(ew(!0),!o)return;let t=await (0,i.teamInfoCall)(o,e);eT(t)}catch(e){ee.default.fromBackend("Failed to load team information"),console.error("Error fetching team info:",e)}finally{ew(!1)}};(0,E.useEffect)(()=>{tb()},[e,o]),(0,E.useEffect)(()=>{(async()=>{if(!o||!ev?.team_info?.organization_id)return ti(null);try{let e=await (0,i.organizationInfoCall)(o,ev.team_info.organization_id);ti(e)}catch(e){console.error("Error fetching organization info:",e),ti(null)}})()},[o,ev?.team_info?.organization_id]),(0,E.useMemo)(()=>{let e;return e=[],e=tr?tr.models.includes("all-proxy-models")?ec:tr.models.length>0?tr.models:ec:ec,(0,H.unfurlWildcardModelsInList)(e,ec)},[tr,ec]),(0,E.useEffect)(()=>{(async()=>{try{if(!o)return;let e=(await (0,i.getPoliciesList)(o)).policies.map(e=>e.policy_name);e0(e)}catch(e){console.error("Failed to fetch policies:",e)}})()},[o]),(0,E.useEffect)(()=>{(async()=>{if(!o||!ev?.team_info?.policies||0===ev.team_info.policies.length)return;e3(!0);let e={};try{await Promise.all(ev.team_info.policies.map(async t=>{try{let l=await (0,i.getPolicyInfoWithGuardrails)(o,t);e[t]=l.resolved_guardrails||[]}catch(l){console.error(`Failed to fetch guardrails for policy ${t}:`,l),e[t]=[]}})),e2(e)}catch(e){console.error("Failed to fetch policy guardrails:",e)}finally{e3(!1)}})()},[o,ev?.team_info?.policies]);let ty=async t=>{try{if(null==o)return;let l={user_email:t.user_email,user_id:t.user_id,role:t.role};await (0,i.teamMemberAddCall)(o,e,l),ee.default.success("Team member added successfully"),eC(!1),ek.resetFields();let a=await (0,i.teamInfoCall)(o,e);eT(a),eh(a)}catch(t){let e="Failed to add team member";t?.raw?.detail?.error?.includes("Assigning team admins is a premium feature")?e="Assigning admins is an enterprise-only feature. Please upgrade your LiteLLM plan to enable this.":t?.message&&(e=t.message),ee.default.fromBackend(e),console.error("Error adding team member:",t)}},tj=async t=>{try{if(null==o)return;let l={user_email:t.user_email,user_id:t.user_id,role:t.role,max_budget_in_team:t.max_budget_in_team,tpm_limit:t.tpm_limit,rpm_limit:t.rpm_limit,allowed_models:t.allowed_models};B.default.destroy(),await (0,i.teamMemberUpdateCall)(o,e,l),ee.default.success("Team member updated successfully"),eR(!1);let a=await (0,i.teamInfoCall)(o,e);eT(a),eh(a)}catch(t){let e="Failed to update team member";t?.raw?.detail?.includes("Assigning team admins is a premium feature")?e="Assigning admins is an enterprise-only feature. Please upgrade your LiteLLM plan to enable this.":t?.message&&(e=t.message),eR(!1),B.default.destroy(),ee.default.fromBackend(e),console.error("Error updating team member:",t)}},tf=async()=>{if(e6&&o){tt(!0);try{await (0,i.teamMemberDeleteCall)(o,e,e6),ee.default.success("Team member removed successfully");let t=await (0,i.teamInfoCall)(o,e);eT(t),eh(t)}catch(e){ee.default.fromBackend("Failed to remove team member"),console.error("Error removing team member:",e)}finally{tt(!1),e9(!1),e8(null)}}},tv=async t=>{try{let l;if(!o)return;ta(!0);let s={};try{let{soft_budget_alerting_emails:e,...l}=t.metadata?JSON.parse(t.metadata):{};s=l}catch(e){ee.default.fromBackend("Invalid JSON in metadata field");return}if("string"==typeof t.secret_manager_settings&&t.secret_manager_settings.trim().length>0)try{l=JSON.parse(t.secret_manager_settings)}catch(e){ee.default.fromBackend("Invalid JSON in secret manager settings");return}let r=e=>null==e||"string"==typeof e&&""===e.trim()||"number"==typeof e&&Number.isNaN(e)?null:e,n={},d={};for(let e of t.modelLimits??[])e?.model&&(null!=e.tpm&&(n[e.model]=e.tpm),null!=e.rpm&&(d[e.model]=e.rpm));let m=!0===t.disable_global_guardrails,u=m?Array.from(eX):Array.from(eX).filter(e=>!(t.guardrails||[]).includes(e)),g=ed?{allowed_passthrough_routes:t.allowed_passthrough_routes||[]}:tT.metadata?.allowed_passthrough_routes?{allowed_passthrough_routes:tT.metadata.allowed_passthrough_routes}:{},h={team_id:e,team_alias:t.team_alias,models:t.models,tpm_limit:r(t.tpm_limit),rpm_limit:r(t.rpm_limit),model_tpm_limit:n,model_rpm_limit:d,max_budget:t.max_budget,soft_budget:r(t.soft_budget),budget_duration:t.budget_duration,metadata:{...s,...g,guardrails:(t.guardrails||[]).filter(e=>!eX.has(e)),opted_out_global_guardrails:u,...t.logging_settings?.length>0?{logging:t.logging_settings}:{},disable_global_guardrails:m,soft_budget_alerting_emails:"string"==typeof t.soft_budget_alerting_emails?t.soft_budget_alerting_emails.split(",").map(e=>e.trim()).filter(e=>e.length>0):t.soft_budget_alerting_emails||[],...void 0!==l?{secret_manager_settings:l}:{}},...t.policies?.length>0?{policies:t.policies}:{},...t.organization_id!==tT.organization_id?{organization_id:t.organization_id??null}:{}};h.max_budget=(0,c.mapEmptyStringToNull)(h.max_budget),h.team_member_budget_duration=t.team_member_budget_duration,void 0!==t.team_member_budget&&(h.team_member_budget=Number(t.team_member_budget)),void 0!==t.team_member_key_duration&&(h.team_member_key_duration=t.team_member_key_duration),(void 0!==t.team_member_tpm_limit||void 0!==t.team_member_rpm_limit)&&(h.team_member_tpm_limit=r(t.team_member_tpm_limit),h.team_member_rpm_limit=r(t.team_member_rpm_limit));let{servers:p,accessGroups:x,toolsets:_}=t.mcp_servers_and_groups||{servers:[],accessGroups:[],toolsets:[]},b=new Set(p||[]),y=Object.fromEntries(Object.entries(t.mcp_tool_permissions||{}).filter(([e])=>b.has(e)));h.object_permission={},p&&(h.object_permission.mcp_servers=p),x&&(h.object_permission.mcp_access_groups=x),y&&(h.object_permission.mcp_tool_permissions=y),_&&(h.object_permission.mcp_toolsets=_),delete t.mcp_servers_and_groups,delete t.mcp_tool_permissions;let{agents:j,accessGroups:f}=t.agents_and_groups||{agents:[],accessGroups:[]};j&&j.length>0&&(h.object_permission.agents=j),f&&f.length>0&&(h.object_permission.agent_access_groups=f),delete t.agents_and_groups,t.vector_stores&&t.vector_stores.length>0&&(h.object_permission.vector_stores=t.vector_stores),Array.isArray(t.object_permission_search_tools)&&(h.object_permission.search_tools=t.object_permission_search_tools),void 0!==t.access_group_ids&&(h.access_group_ids=t.access_group_ids),void 0!==t.default_team_member_models&&(h.default_team_member_models=t.default_team_member_models);let v=ts.current?.getValue();if(v?.router_settings){let e=e=>null!=e&&""!==e&&!1!==e&&!(Array.isArray(e)&&0===e.length),t=Object.values(v.router_settings).some(e),l=tT.router_settings&&Object.values(tT.router_settings).some(e);(t||l)&&(h.router_settings=v.router_settings)}await (0,i.teamUpdateCall)(o,h),tm.invalidateQueries({queryKey:a.organizationKeys.all}),ee.default.success("Team settings updated successfully"),e$(!1),tb()}catch(e){console.error("Error updating team:",e)}finally{ta(!1)}};if(eS)return(0,t.jsx)("div",{className:"p-4",children:"Loading..."});if(!ev?.team_info)return(0,t.jsx)("div",{className:"p-4",children:"Team not found"});let{team_info:tT}=ev,tS=tT.metadata?.disable_global_guardrails===!0,tw=new Set(Array.isArray(tT.metadata?.opted_out_global_guardrails)?tT.metadata.opted_out_global_guardrails:[]),tN=(Array.isArray(tT.metadata?.guardrails)?tT.metadata.guardrails:[]).filter(e=>!eX.has(e)),tC=tS?tN:[...Array.from(eX).filter(e=>!tw.has(e)),...tN],tk=e=>{e.preventDefault(),e.stopPropagation()},tI=async(e,t)=>{await (0,m.copyToClipboard)(e)&&(eJ(e=>({...e,[t]:!0})),setTimeout(()=>{eJ(e=>({...e,[t]:!1}))},2e3))};return(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsx)("div",{className:"flex justify-between items-center mb-6",children:(0,t.jsxs)("div",{children:[(0,t.jsx)(I.Button,{type:"text",icon:(0,t.jsx)(y.ArrowLeftIcon,{className:"h-4 w-4"}),onClick:n,className:"mb-4",children:"Back to Teams"}),(0,t.jsx)(k.Title,{children:tT.team_alias}),(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(N.Text,{className:"text-gray-500 font-mono",children:tT.team_id}),(0,t.jsx)(I.Button,{type:"text",size:"small",icon:eH["team-id"]?(0,t.jsx)(U.CheckIcon,{size:12}):(0,t.jsx)(V.CopyIcon,{size:12}),onClick:()=>tI(tT.team_id,"team-id"),className:`left-2 z-10 transition-all duration-200 ${eH["team-id"]?"text-green-600 bg-green-50 border-green-200":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"}`})]})]})}),(0,t.jsx)(D.Tabs,{defaultActiveKey:t_,className:"mb-4",items:[{key:eM,label:eD[eM],children:(0,t.jsxs)(w.Grid,{numItems:1,numItemsSm:2,numItemsLg:3,className:"gap-6",children:[(0,t.jsxs)(S.Card,{children:[(0,t.jsx)(N.Text,{children:"Budget Status"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(k.Title,{children:["$",(0,m.formatNumberWithCommas)(tT.spend,4)]}),(0,t.jsxs)(N.Text,{children:["of ",null===tT.max_budget?"Unlimited":`$${(0,m.formatNumberWithCommas)(tT.max_budget,4)}`]}),tT.budget_duration&&(0,t.jsxs)(N.Text,{className:"text-gray-500",children:["Reset: ",tT.budget_duration]}),(0,t.jsx)("br",{}),tT.team_member_budget_table&&(0,t.jsxs)(N.Text,{className:"text-gray-500",children:["Team Member Budget: $",(0,m.formatNumberWithCommas)(tT.team_member_budget_table.max_budget,4)]})]})]}),(0,t.jsxs)(S.Card,{children:[(0,t.jsx)(N.Text,{children:"Rate Limits"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(N.Text,{children:["TPM: ",tT.tpm_limit||"Unlimited"]}),(0,t.jsxs)(N.Text,{children:["RPM: ",tT.rpm_limit||"Unlimited"]}),tT.max_parallel_requests&&(0,t.jsxs)(N.Text,{children:["Max Parallel Requests: ",tT.max_parallel_requests]}),(ep=tT.metadata?.model_tpm_limit??{},ex=tT.metadata?.model_rpm_limit??{},0===(e_=Array.from(new Set([...Object.keys(ep),...Object.keys(ex)]))).length?null:(0,t.jsxs)("div",{className:"mt-3",children:[(0,t.jsx)(N.Text,{className:"text-gray-500",children:"Per-model limits:"}),e_.map(e=>(0,t.jsxs)(N.Text,{className:"text-xs",children:[e,": TPM ",ep[e]??"—",", RPM ",ex[e]??"—"]},e))]}))]})]}),(0,t.jsxs)(S.Card,{children:[(0,t.jsx)(N.Text,{children:"Models"}),(0,t.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:0===tT.models.length||tT.models.includes("all-proxy-models")?(0,t.jsx)(T.Badge,{color:"red",children:"All proxy models"}):(0,t.jsxs)(t.Fragment,{children:[tT.models.map((e,l)=>(0,t.jsx)(T.Badge,{color:"blue",children:e},`direct-${l}`)),(tT.access_group_models||[]).map((e,l)=>(0,t.jsx)(T.Badge,{color:"green",title:"From access group",children:e},`ag-${l}`))]})})]}),(0,t.jsxs)(S.Card,{children:[(0,t.jsx)(N.Text,{className:"font-semibold text-gray-900",children:"Virtual Keys"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsxs)(N.Text,{children:["User Keys: ",ev.keys.filter(e=>e.user_id).length]}),(0,t.jsxs)(N.Text,{children:["Service Account Keys: ",ev.keys.filter(e=>!e.user_id).length]}),(0,t.jsxs)(N.Text,{className:"text-gray-500",children:["Total: ",ev.keys.length]})]})]}),(0,t.jsx)(et.default,{objectPermission:tT.object_permission,variant:"card",accessToken:o}),(0,t.jsx)(S.Card,{children:(0,t.jsx)(J,{globalGuardrailNames:eX,teamGuardrails:Array.isArray(tT.metadata?.guardrails)?tT.metadata.guardrails:[],optedOutGlobalGuardrails:Array.isArray(tT.metadata?.opted_out_global_guardrails)?tT.metadata.opted_out_global_guardrails:[],killSwitchOn:tS,variant:"inline"})}),(0,t.jsxs)(S.Card,{children:[(0,t.jsx)(N.Text,{className:"font-semibold text-gray-900 mb-3",children:"Policies"}),tT.policies&&tT.policies.length>0?(0,t.jsx)("div",{className:"space-y-4",children:tT.policies.map((e,l)=>(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(T.Badge,{color:"purple",children:e}),e5&&(0,t.jsx)(N.Text,{className:"text-xs text-gray-400",children:"Loading guardrails..."})]}),!e5&&e4[e]&&e4[e].length>0&&(0,t.jsxs)("div",{className:"ml-4 pl-3 border-l-2 border-gray-200",children:[(0,t.jsx)(N.Text,{className:"text-xs text-gray-500 mb-1",children:"Resolved Guardrails:"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:e4[e].map((e,l)=>(0,t.jsx)(T.Badge,{color:"blue",size:"xs",children:e},l))})]})]},l))}):(0,t.jsx)(N.Text,{className:"text-gray-500",children:"No policies configured"})]}),(0,t.jsx)(Q.default,{loggingConfigs:tT.metadata?.logging||[],disabledCallbacks:[],variant:"card"})]})},{key:ez,label:eD[ez],children:(0,t.jsx)(eI,{teamId:e})},{key:eA,label:eD[eA],children:(0,t.jsx)(e1,{teamId:e,teamAlias:tT.team_alias,organization:tr})},{key:eF,label:eD[eF],children:(0,t.jsx)(eB,{teamData:ev,canEditTeam:tp,handleMemberDelete:e=>{e8(e),e9(!0)},setSelectedEditMember:eV,setIsEditMemberModalVisible:eR,setIsAddMemberModalVisible:eC})},{key:eP,label:eD[eP],children:(0,t.jsx)(eb,{teamId:e,accessToken:o,canEditTeam:tp})},{key:eO,label:eD[eO],children:(0,t.jsxs)(S.Card,{className:"overflow-y-auto max-h-[65vh]",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(k.Title,{children:"Team Settings"}),tp&&!eE&&(0,t.jsx)(I.Button,{icon:(0,t.jsx)(g.EditOutlined,{className:"h-4 w-4"}),onClick:()=>e$(!0),children:"Edit Settings"})]}),eE&&eY?(0,t.jsx)("div",{className:"p-4",children:"Loading..."}):eE?(0,t.jsxs)(M.Form,{form:ek,onFinish:tv,onValuesChange:e=>{if("disable_global_guardrails"in e){let t=!0===e.disable_global_guardrails,l=(ek.getFieldValue("guardrails")||[]).filter(e=>!eX.has(e));ek.setFieldValue("guardrails",t?l:[...Array.from(eX),...l])}},initialValues:{...tT,team_alias:tT.team_alias,models:tT.models,tpm_limit:tT.tpm_limit,rpm_limit:tT.rpm_limit,object_permission_search_tools:tT.object_permission?.search_tools||[],modelLimits:Array.from(new Set([...Object.keys(tT.metadata?.model_tpm_limit??{}),...Object.keys(tT.metadata?.model_rpm_limit??{})])).map(e=>({model:e,tpm:tT.metadata?.model_tpm_limit?.[e],rpm:tT.metadata?.model_rpm_limit?.[e]})),max_budget:tT.max_budget,soft_budget:tT.soft_budget,budget_duration:tT.budget_duration,team_member_tpm_limit:tT.team_member_budget_table?.tpm_limit,team_member_rpm_limit:tT.team_member_budget_table?.rpm_limit,team_member_budget:tT.team_member_budget_table?.max_budget,team_member_budget_duration:tT.team_member_budget_table?.budget_duration,guardrails:tC,policies:tT.policies||[],disable_global_guardrails:tT.metadata?.disable_global_guardrails||!1,soft_budget_alerting_emails:Array.isArray(tT.metadata?.soft_budget_alerting_emails)?tT.metadata.soft_budget_alerting_emails.join(", "):"",metadata:tT.metadata?JSON.stringify((({logging:e,secret_manager_settings:t,soft_budget_alerting_emails:l,model_tpm_limit:a,model_rpm_limit:s,allowed_passthrough_routes:r,...i})=>i)(tT.metadata),null,2):"",logging_settings:tT.metadata?.logging||[],secret_manager_settings:tT.metadata?.secret_manager_settings?JSON.stringify(tT.metadata.secret_manager_settings,null,2):"",organization_id:tT.organization_id,vector_stores:tT.object_permission?.vector_stores||[],mcp_servers:tT.object_permission?.mcp_servers||[],mcp_access_groups:tT.object_permission?.mcp_access_groups||[],mcp_servers_and_groups:{servers:tT.object_permission?.mcp_servers||[],accessGroups:tT.object_permission?.mcp_access_groups||[],toolsets:tT.object_permission?.mcp_toolsets||[]},mcp_tool_permissions:tT.object_permission?.mcp_tool_permissions||{},agents_and_groups:{agents:tT.object_permission?.agents||[],accessGroups:tT.object_permission?.agent_access_groups||[]},access_group_ids:tT.access_group_ids||[],default_team_member_models:tT.default_team_member_models||[],allowed_passthrough_routes:tT.metadata?.allowed_passthrough_routes||[]},layout:"vertical",children:[(0,t.jsx)(M.Form.Item,{label:"Team Name",name:"team_alias",rules:[{required:!0,message:"Please input a team name"}],children:(0,t.jsx)(z.Input,{type:""})}),(0,t.jsx)(M.Form.Item,{label:"Models",name:"models",rules:[{required:!0,message:"Please select at least one model"}],children:(0,t.jsx)(Z.ModelSelect,{value:ek.getFieldValue("models")||[],onChange:e=>ek.setFieldValue("models",e),teamID:e,organizationID:ev?.team_info?.organization_id||void 0,options:{includeSpecialOptions:!0,includeUserModels:!ev?.team_info?.organization_id,showAllProxyModelsOverride:(0,u.isProxyAdminRole)(tn)&&!ev?.team_info?.organization_id},context:"team",dataTestId:"models-select"})}),(0,t.jsx)(M.Form.Item,{label:"Max Budget (USD)",name:"max_budget",children:(0,t.jsx)(el.default,{step:.01,precision:2,style:{width:"100%"}})}),(0,t.jsx)(M.Form.Item,{label:"Soft Budget (USD)",name:"soft_budget",children:(0,t.jsx)(el.default,{step:.01,precision:2,style:{width:"100%"}})}),(0,t.jsx)(M.Form.Item,{label:"Soft Budget Alerting Emails",name:"soft_budget_alerting_emails",tooltip:"Comma-separated email addresses to receive alerts when the soft budget is reached",children:(0,t.jsx)(z.Input,{placeholder:"example1@test.com, example2@test.com"})}),(0,t.jsxs)(j.Accordion,{className:"mt-4 mb-4",children:[(0,t.jsx)(v.AccordionHeader,{children:(0,t.jsx)("b",{children:"Team Member Settings"})}),(0,t.jsxs)(f.AccordionBody,{children:[(0,t.jsx)(N.Text,{className:"text-xs text-gray-500 mb-4",children:"Optional defaults applied when members join this team. All fields can be overridden per member."}),(0,t.jsx)(M.Form.Item,{label:(0,t.jsxs)("span",{children:["Default Model Access"," ",(0,t.jsx)(R.Tooltip,{title:"Optional. If set, new members can only access these models by default. Must be a subset of the team's models above. Leave empty to give all members access to all team models.",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"default_team_member_models",children:(0,t.jsx)(M.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.models!==t.models,children:({getFieldValue:e})=>{let l=e("models")||tT.models||[];return(0,t.jsx)(F.Select,{mode:"multiple",placeholder:"Leave empty — all team models accessible to every member",value:ek.getFieldValue("default_team_member_models")||[],onChange:e=>ek.setFieldValue("default_team_member_models",e),options:l.map(e=>({label:e,value:e}))})}})}),(0,t.jsx)(M.Form.Item,{label:"Default Budget (USD)",name:"team_member_budget",tooltip:"Default spend budget for each member in this team.",children:(0,t.jsx)(el.default,{step:.01,precision:2,style:{width:"100%"}})}),(0,t.jsx)(M.Form.Item,{label:"Default Budget Duration",name:"team_member_budget_duration",children:(0,t.jsx)(W,{onChange:e=>ek.setFieldValue("team_member_budget_duration",e),value:ek.getFieldValue("team_member_budget_duration")})}),(0,t.jsx)(M.Form.Item,{label:"Default Key Duration (eg: 1d, 1mo)",name:"team_member_key_duration",tooltip:"Set a limit to the duration of a team member's key. Format: 30s (seconds), 30m (minutes), 30h (hours), 30d (days), 1mo (month)",children:(0,t.jsx)(C.TextInput,{placeholder:"e.g., 30d"})}),(0,t.jsx)(M.Form.Item,{label:"Default TPM Limit",name:"team_member_tpm_limit",tooltip:"Default tokens per minute limit for each member. Can be overridden per member.",children:(0,t.jsx)(el.default,{step:1,style:{width:"100%"},placeholder:"e.g., 1000"})}),(0,t.jsx)(M.Form.Item,{label:"Default RPM Limit",name:"team_member_rpm_limit",tooltip:"Default requests per minute limit for each member. Can be overridden per member.",children:(0,t.jsx)(el.default,{step:1,style:{width:"100%"},placeholder:"e.g., 100"})})]})]}),(0,t.jsx)(M.Form.Item,{label:"Reset Budget",name:"budget_duration",children:(0,t.jsxs)(F.Select,{placeholder:"n/a",children:[(0,t.jsx)(F.Select.Option,{value:"24h",children:"daily"}),(0,t.jsx)(F.Select.Option,{value:"7d",children:"weekly"}),(0,t.jsx)(F.Select.Option,{value:"30d",children:"monthly"})]})}),(0,t.jsx)(M.Form.Item,{label:"Tokens per minute Limit (TPM)",name:"tpm_limit",children:(0,t.jsx)(el.default,{step:1,style:{width:"100%"}})}),(0,t.jsx)(M.Form.Item,{label:"Requests per minute Limit (RPM)",name:"rpm_limit",children:(0,t.jsx)(el.default,{step:1,style:{width:"100%"}})}),(0,t.jsx)(M.Form.Item,{label:"Model-Specific Rate Limits",tooltip:"Set per-model TPM/RPM limits that apply across the whole team.",children:(0,t.jsx)(M.Form.List,{name:"modelLimits",children:(e,{add:l,remove:a})=>(0,t.jsxs)(t.Fragment,{children:[e.map(({key:e,name:l,...s})=>(0,t.jsxs)(P.Space,{style:{display:"flex",marginBottom:8},align:"baseline",children:[(0,t.jsx)(M.Form.Item,{...s,name:[l,"model"],rules:[{required:!0,message:"Missing model"},{validator:(e,t)=>t&&(ek.getFieldValue("modelLimits")??[]).filter(e=>e?.model===t).length>1?Promise.reject(Error("Duplicate model")):Promise.resolve()}],style:{minWidth:240},children:(0,t.jsx)(F.Select,{showSearch:!0,placeholder:"Select model",allowClear:!0,options:th.map(e=>({value:e,label:e}))})}),(0,t.jsx)(M.Form.Item,{...s,name:[l,"tpm"],rules:[{validator:async(e,t)=>{let a=(ek.getFieldValue("modelLimits")??[])[l]??{};return a.model&&null==t&&null==a.rpm?Promise.reject(Error("Set at least one of TPM or RPM")):Promise.resolve()}}],children:(0,t.jsx)(A.InputNumber,{placeholder:"TPM Limit",min:0})}),(0,t.jsx)(M.Form.Item,{...s,name:[l,"rpm"],children:(0,t.jsx)(A.InputNumber,{placeholder:"RPM Limit",min:0})}),(0,t.jsx)(x.MinusCircleOutlined,{onClick:()=>a(l),style:{color:"#ef4444"}})]},e)),(0,t.jsx)(M.Form.Item,{children:(0,t.jsx)(I.Button,{type:"dashed",onClick:()=>l(),block:!0,icon:(0,t.jsx)(_.PlusOutlined,{}),children:"Add Model Limit"})})]})})}),(0,t.jsx)(M.Form.Item,{label:"Router Settings",children:(0,t.jsx)(ei.default,{ref:ts,accessToken:o||"",value:tT.router_settings?{router_settings:tT.router_settings}:void 0})}),(0,t.jsx)(M.Form.Item,{label:(0,t.jsxs)("span",{children:["Guardrails"," ",(0,t.jsx)(R.Tooltip,{title:"Select which guardrails apply to this team. Global guardrails are enabled by default — uncheck to opt out. Other guardrails are opt-in.",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/guardrails/quick_start",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),name:"guardrails",children:(0,t.jsxs)(F.Select,{mode:"multiple",placeholder:"Select guardrails",optionLabelProp:"label",tagRender:({label:e,value:l,closable:a,onClose:s})=>{let r=eX.has(l);return(0,t.jsxs)(L.Tag,{color:"blue",closable:a,onClose:s,onMouseDown:tk,style:{marginInlineEnd:4},children:[r&&(0,t.jsx)(h.GlobalOutlined,{style:{marginInlineEnd:4},"aria-label":"Global guardrail"}),e]})},children:[(0,t.jsx)(F.Select.OptGroup,{label:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(h.GlobalOutlined,{style:{marginInlineEnd:4}}),"Global"]}),children:(eQ?.guardrails??[]).filter(e=>e.litellm_params?.default_on).map(e=>(0,t.jsx)(F.Select.Option,{value:e.guardrail_name,label:e.guardrail_name,disabled:tg,children:e.guardrail_name},e.guardrail_name))}),(0,t.jsx)(F.Select.OptGroup,{label:"Other",children:(eQ?.guardrails??[]).filter(e=>!e.litellm_params?.default_on).map(e=>(0,t.jsx)(F.Select.Option,{value:e.guardrail_name,label:e.guardrail_name,children:e.guardrail_name},e.guardrail_name))})]})}),(0,t.jsx)(M.Form.Item,{label:(0,t.jsxs)("span",{children:["Disable all global guardrails"," ",(0,t.jsx)(R.Tooltip,{title:"Kill switch: bypass every global guardrail for this team, including any added in the future. For per-guardrail opt-out instead, use the Guardrails dropdown above.",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"disable_global_guardrails",valuePropName:"checked",children:(0,t.jsx)(O.Switch,{checkedChildren:"Yes",unCheckedChildren:"No"})}),(0,t.jsx)(M.Form.Item,{label:(0,t.jsxs)("span",{children:["Policies"," ",(0,t.jsx)(R.Tooltip,{title:"Apply policies to this team to control guardrails and other settings",children:(0,t.jsx)("a",{href:"https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})})]}),name:"policies",children:(0,t.jsx)(F.Select,{mode:"tags",placeholder:"Select or enter policies",options:eZ.map(e=>({value:e,label:e}))})}),(0,t.jsx)(M.Form.Item,{label:(0,t.jsxs)("span",{children:["Access Groups"," ",(0,t.jsx)(R.Tooltip,{title:"Assign access groups to this team. Access groups control which models, MCP servers, and agents this team can use",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),name:"access_group_ids",children:(0,t.jsx)($.default,{placeholder:"Select access groups (optional)"})}),(0,t.jsx)(M.Form.Item,{label:"Vector Stores",name:"vector_stores","aria-label":"Vector Stores",children:(0,t.jsx)(ea.default,{onChange:e=>ek.setFieldValue("vector_stores",e),value:ek.getFieldValue("vector_stores"),accessToken:o||"",placeholder:"Select vector stores"})}),(0,t.jsx)(M.Form.Item,{label:"Allowed Pass Through Routes",name:"allowed_passthrough_routes",children:(0,t.jsx)(R.Tooltip,{title:eg?ed?"":"Only proxy admins can set allowed pass through routes":"Premium feature - Upgrade to set allowed pass through routes",placement:"top",children:(0,t.jsx)(q.default,{onChange:e=>ek.setFieldValue("allowed_passthrough_routes",e),value:ek.getFieldValue("allowed_passthrough_routes"),accessToken:o||"",placeholder:"Select pass through routes",disabled:!eg||!ed})})}),(0,t.jsx)(M.Form.Item,{label:"MCP Servers / Access Groups",name:"mcp_servers_and_groups",children:(0,t.jsx)(Y.default,{onChange:e=>ek.setFieldValue("mcp_servers_and_groups",e),value:ek.getFieldValue("mcp_servers_and_groups"),accessToken:o||"",placeholder:"Select MCP servers or access groups (optional)"})}),(0,t.jsx)(M.Form.Item,{name:"mcp_tool_permissions",initialValue:{},hidden:!0,children:(0,t.jsx)(z.Input,{type:"hidden"})}),(0,t.jsx)(M.Form.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.mcp_servers_and_groups!==t.mcp_servers_and_groups||e.mcp_tool_permissions!==t.mcp_tool_permissions,children:()=>(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsx)(X.default,{accessToken:o||"",selectedServers:ek.getFieldValue("mcp_servers_and_groups")?.servers||[],toolPermissions:ek.getFieldValue("mcp_tool_permissions")||{},onChange:e=>ek.setFieldsValue({mcp_tool_permissions:e})})})}),(0,t.jsx)(M.Form.Item,{label:"Agents / Access Groups",name:"agents_and_groups",children:(0,t.jsx)(K.default,{onChange:e=>ek.setFieldValue("agents_and_groups",e),value:ek.getFieldValue("agents_and_groups"),accessToken:o||"",placeholder:"Select agents or access groups (optional)"})}),(0,t.jsxs)(j.Accordion,{className:"mt-4 mb-4",children:[(0,t.jsx)(v.AccordionHeader,{children:(0,t.jsx)("b",{children:"Search Tool Settings"})}),(0,t.jsx)(f.AccordionBody,{children:(0,t.jsx)(M.Form.Item,{label:"Allowed Search Tools",name:"object_permission_search_tools",tooltip:"Select which search tools this team can access. Leave empty to allow all search tools.",children:(0,t.jsx)(es,{onChange:e=>ek.setFieldValue("object_permission_search_tools",e),value:ek.getFieldValue("object_permission_search_tools"),accessToken:o||"",placeholder:"Select search tools (optional, empty = all allowed)"})})})]}),(0,t.jsx)(M.Form.Item,{label:"Organization",name:"organization_id",children:(0,t.jsx)(F.Select,{allowClear:!0,placeholder:"Select an organization",showSearch:!0,optionFilterProp:"label",options:td.map(e=>({value:e.organization_id,label:e.organization_alias||e.organization_id}))})}),(0,t.jsx)(M.Form.Item,{label:"Logging Settings",name:"logging_settings",children:(0,t.jsx)(er.default,{value:ek.getFieldValue("logging_settings"),onChange:e=>ek.setFieldValue("logging_settings",e)})}),(0,t.jsx)(M.Form.Item,{label:"Secret Manager Settings",name:"secret_manager_settings",help:eg?"Enter secret manager configuration as a JSON object.":"Premium feature - Upgrade to manage secret manager settings.",rules:[{validator:async(e,t)=>{if(!t)return Promise.resolve();try{return JSON.parse(t),Promise.resolve()}catch(e){return Promise.reject(Error("Please enter valid JSON"))}}}],children:(0,t.jsx)(z.Input.TextArea,{rows:6,placeholder:'{"namespace": "admin", "mount": "secret", "path_prefix": "litellm"}',disabled:!eg})}),(0,t.jsx)(M.Form.Item,{label:"Metadata",name:"metadata",children:(0,t.jsx)(z.Input.TextArea,{rows:10})}),(0,t.jsx)("div",{className:"sticky z-10 bg-white p-4 pr-0 border-t border-gray-200 bottom-[-1.5rem] inset-x-[-1.5rem]",children:(0,t.jsxs)("div",{className:"flex justify-end items-center gap-2",children:[(0,t.jsx)(I.Button,{onClick:()=>e$(!1),disabled:tl,children:"Cancel"}),(0,t.jsx)(I.Button,{icon:(0,t.jsx)(b.SaveOutlined,{className:"h-4 w-4"}),type:"primary",htmlType:"submit",loading:tl,children:"Save Changes"})]})})]}):(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Team Name"}),(0,t.jsx)("div",{children:tT.team_alias})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Team ID"}),(0,t.jsx)("div",{className:"font-mono",children:tT.team_id})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Created At"}),(0,t.jsx)("div",{children:new Date(tT.created_at).toLocaleString()})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Models"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2 mt-1",children:tT.models.map((e,l)=>(0,t.jsx)(T.Badge,{color:"red",children:e},l))})]}),tT.default_team_member_models&&tT.default_team_member_models.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Default Member Models"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2 mt-1",children:tT.default_team_member_models.map((e,l)=>(0,t.jsx)(T.Badge,{color:"blue",children:e},l))})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Rate Limits"}),(0,t.jsxs)("div",{children:["TPM: ",tT.tpm_limit||"Unlimited"]}),(0,t.jsxs)("div",{children:["RPM: ",tT.rpm_limit||"Unlimited"]}),(ey=tT.metadata?.model_tpm_limit??{},ej=tT.metadata?.model_rpm_limit??{},0===(ef=Array.from(new Set([...Object.keys(ey),...Object.keys(ej)]))).length?null:(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsx)(N.Text,{className:"text-gray-500",children:"Per-model limits:"}),ef.map(e=>(0,t.jsxs)("div",{className:"text-xs ml-2",children:[e,": TPM ",ey[e]??"—",", RPM ",ej[e]??"—"]},e))]}))]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Team Budget"}),(0,t.jsxs)("div",{children:["Max Budget:"," ",null!==tT.max_budget?`$${(0,m.formatNumberWithCommas)(tT.max_budget,4)}`:"No Limit"]}),(0,t.jsxs)("div",{children:["Soft Budget:"," ",null!==tT.soft_budget&&void 0!==tT.soft_budget?`$${(0,m.formatNumberWithCommas)(tT.soft_budget,4)}`:"No Limit"]}),(0,t.jsxs)("div",{children:["Budget Reset: ",tT.budget_duration||"Never"]}),tT.metadata?.soft_budget_alerting_emails&&Array.isArray(tT.metadata.soft_budget_alerting_emails)&&tT.metadata.soft_budget_alerting_emails.length>0&&(0,t.jsxs)("div",{children:["Soft Budget Alerting Emails: ",tT.metadata.soft_budget_alerting_emails.join(", ")]})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(N.Text,{className:"font-medium",children:["Team Member Settings"," ",(0,t.jsx)(R.Tooltip,{title:"These are limits on individual team members",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),(0,t.jsxs)("div",{children:["Max Budget: ",tT.team_member_budget_table?.max_budget||"No Limit"]}),(0,t.jsxs)("div",{children:["Budget Duration: ",tT.team_member_budget_table?.budget_duration||"No Limit"]}),(0,t.jsxs)("div",{children:["Key Duration: ",tT.metadata?.team_member_key_duration||"No Limit"]}),(0,t.jsxs)("div",{children:["TPM Limit: ",tT.team_member_budget_table?.tpm_limit||"No Limit"]}),(0,t.jsxs)("div",{children:["RPM Limit: ",tT.team_member_budget_table?.rpm_limit||"No Limit"]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Router Settings"}),tT.router_settings&&Object.values(tT.router_settings).some(e=>null!=e&&""!==e&&!(Array.isArray(e)&&0===e.length))?(0,t.jsxs)("div",{className:"mt-1 space-y-1",children:[tT.router_settings.routing_strategy&&(0,t.jsxs)("div",{children:["Routing Strategy:"," ",(0,t.jsx)(T.Badge,{color:"blue",children:tT.router_settings.routing_strategy})]}),null!=tT.router_settings.num_retries&&(0,t.jsxs)("div",{children:["Number of Retries: ",tT.router_settings.num_retries]}),null!=tT.router_settings.allowed_fails&&(0,t.jsxs)("div",{children:["Allowed Failures: ",tT.router_settings.allowed_fails]}),null!=tT.router_settings.cooldown_time&&(0,t.jsxs)("div",{children:["Cooldown Time: ",tT.router_settings.cooldown_time,"s"]}),null!=tT.router_settings.timeout&&(0,t.jsxs)("div",{children:["Timeout: ",tT.router_settings.timeout,"s"]}),null!=tT.router_settings.retry_after&&(0,t.jsxs)("div",{children:["Retry After: ",tT.router_settings.retry_after,"s"]}),tT.router_settings.fallbacks&&Array.isArray(tT.router_settings.fallbacks)&&tT.router_settings.fallbacks.length>0&&(0,t.jsxs)("div",{children:["Fallbacks: ",tT.router_settings.fallbacks.length," configured"]}),tT.router_settings.enable_tag_filtering&&(0,t.jsx)("div",{children:"Tag Filtering: Enabled"})]}):(0,t.jsx)("div",{className:"text-gray-400",children:"No router settings configured"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Organization ID"}),(0,t.jsx)("div",{children:tT.organization_id})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Status"}),(0,t.jsx)(T.Badge,{color:tT.blocked?"red":"green",children:tT.blocked?"Blocked":"Active"})]}),(0,t.jsx)(et.default,{objectPermission:tT.object_permission,variant:"inline",className:"pt-4 border-t border-gray-200",accessToken:o}),(0,t.jsx)(J,{globalGuardrailNames:eX,teamGuardrails:Array.isArray(tT.metadata?.guardrails)?tT.metadata.guardrails:[],optedOutGlobalGuardrails:Array.isArray(tT.metadata?.opted_out_global_guardrails)?tT.metadata.opted_out_global_guardrails:[],killSwitchOn:tS,variant:"inline",className:"pt-4 border-t border-gray-200"}),(0,t.jsx)(Q.default,{loggingConfigs:tT.metadata?.logging||[],disabledCallbacks:[],variant:"inline",className:"pt-4 border-t border-gray-200"}),tT.metadata?.secret_manager_settings&&(0,t.jsxs)("div",{className:"pt-4 border-t border-gray-200",children:[(0,t.jsx)(N.Text,{className:"font-medium",children:"Secret Manager Settings"}),(0,t.jsx)("pre",{className:"mt-2 bg-gray-50 p-3 rounded text-xs overflow-x-auto",children:JSON.stringify(tT.metadata.secret_manager_settings,null,2)})]})]})]})}].filter(e=>tx.includes(e.key))}),(0,t.jsx)(en.default,{visible:eL,onCancel:()=>eR(!1),onSubmit:tj,initialData:eU,mode:"edit",config:{title:"Edit Member",showEmail:!0,showUserId:!0,roleOptions:[{label:"Admin",value:"admin"},{label:"User",value:"user"}],additionalFields:[{name:"max_budget_in_team",label:(0,t.jsxs)("span",{children:["Team Member Budget (USD)"," ",(0,t.jsx)(R.Tooltip,{title:"Maximum amount in USD this member can spend within this team. This is separate from any global user budget limits",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),type:"numerical",step:.01,min:0,placeholder:"Budget limit for this member within this team"},{name:"tpm_limit",label:(0,t.jsxs)("span",{children:["Team Member TPM Limit"," ",(0,t.jsx)(R.Tooltip,{title:"Maximum tokens per minute this member can use within this team. This is separate from any global user TPM limit",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),type:"numerical",step:1,min:0,placeholder:"Tokens per minute limit for this member in this team"},{name:"rpm_limit",label:(0,t.jsxs)("span",{children:["Team Member RPM Limit"," ",(0,t.jsx)(R.Tooltip,{title:"Maximum requests per minute this member can make within this team. This is separate from any global user RPM limit",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),type:"numerical",step:1,min:0,placeholder:"Requests per minute limit for this member in this team"},{name:"allowed_models",label:(0,t.jsxs)("span",{children:["Allowed Models"," ",(0,t.jsx)(R.Tooltip,{title:"Models this member can access within this team. Leave empty to inherit all team models.",children:(0,t.jsx)(p.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}),type:"multi-select",options:(tT.models||[]).map(e=>({label:e,value:e})),placeholder:"Leave empty to inherit all team models"}]}}),(0,t.jsx)(r.default,{isVisible:eN,onCancel:()=>eC(!1),onSubmit:ty,accessToken:o,teamId:e}),(0,t.jsx)(G.default,{isOpen:e7,title:"Delete Team Member",alertMessage:"Removing team members will also delete any keys created by or created for this member.",message:"Are you sure you want to remove this member from the team? This action cannot be undone.",resourceInformationTitle:"Team Member Information",resourceInformation:[{label:"User ID",value:e6?.user_id,code:!0},{label:"Email",value:e6?.user_email},{label:"Role",value:e6?.role}],onCancel:()=>{e9(!1),e8(null)},onOk:tf,confirmLoading:te})]})}],56567)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0yjifm.h74~ec.js b/litellm/proxy/_experimental/out/_next/static/chunks/0dwmw2cspsg2a.js similarity index 81% rename from litellm/proxy/_experimental/out/_next/static/chunks/0yjifm.h74~ec.js rename to litellm/proxy/_experimental/out/_next/static/chunks/0dwmw2cspsg2a.js index e5f996629a4..cb7352ee973 100644 --- a/litellm/proxy/_experimental/out/_next/static/chunks/0yjifm.h74~ec.js +++ b/litellm/proxy/_experimental/out/_next/static/chunks/0dwmw2cspsg2a.js @@ -1,4 +1,4 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,268004,e=>{"use strict";function t(){let e=window.location.pathname.match(/\/ui(?=\/|$)/);return e&&void 0!==e.index?window.location.pathname.substring(0,e.index+3):"/ui"}e.s(["clearTokenCookies",0,function(){if("u"{document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t};`,document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${e};`,n.forEach(r=>{let o="None"===r?" Secure;":"";document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; SameSite=${r};${o}`,document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${e}; SameSite=${r};${o}`})});try{sessionStorage.removeItem("token")}catch{}},"getCookie",0,function(e){if("u"t.startsWith(e+"="));if(t){let e=t.split("=").slice(1).join("=");try{return decodeURIComponent(e)}catch{return e}}if("token"===e)try{return sessionStorage.getItem(e)}catch{}return null},"storeLoginToken",0,function(e){if(e&&e.trim()){try{let r="https:"===window.location.protocol?"; Secure":"",o=t();document.cookie=`token=${encodeURIComponent(e)}; path=${o}; SameSite=Lax${r}`}catch{}try{sessionStorage.setItem("token",e)}catch{}}}])},876556,e=>{"use strict";var t=e.i(565924),r=e.i(271645);e.s(["default",0,function e(o){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=[];return r.default.Children.forEach(o,function(r){(null!=r||n.keepEmpty)&&(Array.isArray(r)?a=a.concat(e(r)):(0,t.default)(r)&&r.props?a=a.concat(e(r.props.children,n)):a.push(r))}),a}])},495347,177886,786944,162129,197091,787894,696752,621796,e=>{"use strict";var t,r=e.i(271645);e.i(247167);var o=e.i(931067),n=e.i(703923),a=e.i(31575),i=e.i(33968),l=e.i(209428),s=e.i(8211),c=e.i(278409),u=e.i(233848),d=e.i(971151),f=e.i(868917),p=e.i(674813),h=e.i(211577),m=e.i(876556),g=e.i(929123),v=e.i(883110),y="RC_FORM_INTERNAL_HOOKS",b=function(){(0,v.default)(!1,"Can not find FormContext. Please make sure you wrap Field under Form.")},w=r.createContext({getFieldValue:b,getFieldsValue:b,getFieldError:b,getFieldWarning:b,getFieldsError:b,isFieldsTouched:b,isFieldTouched:b,isFieldValidating:b,isFieldsValidating:b,resetFields:b,setFields:b,setFieldValue:b,setFieldsValue:b,validateFields:b,submit:b,getInternalHooks:function(){return b(),{dispatch:b,initEntityValue:b,registerField:b,useSubscribe:b,setInitialValues:b,destroyForm:b,setCallbacks:b,registerWatch:b,getFields:b,setValidateMessages:b,setPreserve:b,getInitialValue:b}}});e.s(["HOOK_MARK",0,y,"default",0,w],177886);var $=r.createContext(null);function C(e){return null==e?[]:Array.isArray(e)?e:[e]}e.s(["default",0,$],786944);var x=e.i(410160);function E(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",tel:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var S=E(),k=e.i(487806),j=e.i(885963),O=e.i(479671);function T(e){var t="function"==typeof Map?new Map:void 0;return(T=function(e){if(null===e||!function(e){try{return -1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if((0,O.default)())return Reflect.construct.apply(null,arguments);var o=[null];o.push.apply(o,t);var n=new(e.bind.apply(e,o));return r&&(0,j.default)(n,r.prototype),n}(e,arguments,(0,k.default)(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),(0,j.default)(r,e)})(e)}var I=/%[sdj%]/g;function _(e){if(!e||!e.length)return null;var t={};return e.forEach(function(e){var r=e.field;t[r]=t[r]||[],t[r].push(e)}),t}function F(e){for(var t=arguments.length,r=Array(t>1?t-1:0),o=1;o=a)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}}):e}function P(e,t){return!!(null==e||"array"===t&&Array.isArray(e)&&!e.length)||("string"===t||"url"===t||"hex"===t||"email"===t||"date"===t||"pattern"===t||"tel"===t)&&"string"==typeof e&&!e||!1}function R(e,t,r){var o=0,n=e.length;!function a(i){if(i&&i.length)return void r(i);var l=o;o+=1,l()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,H=/^(\+[0-9]{1,3}[-\s\u2011]?)?(\([0-9]{1,4}\)[-\s\u2011]?)?([0-9]+[-\s\u2011]?)*[0-9]+$/,V=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,W={integer:function(e){return W.number(e)&&parseInt(e,10)===e},float:function(e){return W.number(e)&&!W.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return new RegExp(e),!0}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime())},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"===(0,x.default)(e)&&!W.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&e.length<=320&&!!e.match(D)},tel:function(e){return"string"==typeof e&&e.length<=32&&!!e.match(H)},url:function(e){return"string"==typeof e&&e.length<=2048&&!!e.match(L())},hex:function(e){return"string"==typeof e&&!!e.match(V)}};let U=z,G=function(e,t,r,o,n){(/^\s+$/.test(t)||""===t)&&o.push(F(n.messages.whitespace,e.fullField))},q=function(e,t,r,o,n){if(e.required&&void 0===t)return void z(e,t,r,o,n);var a=e.type;["integer","float","array","regexp","object","method","email","tel","number","date","url","hex"].indexOf(a)>-1?W[a](t)||o.push(F(n.messages.types[a],e.fullField,e.type)):a&&(0,x.default)(t)!==e.type&&o.push(F(n.messages.types[a],e.fullField,e.type))},J=function(e,t,r,o,n){var a="number"==typeof e.len,i="number"==typeof e.min,l="number"==typeof e.max,s=t,c=null,u="number"==typeof t,d="string"==typeof t,f=Array.isArray(t);if(u?c="number":d?c="string":f&&(c="array"),!c)return!1;f&&(s=t.length),d&&(s=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),a?s!==e.len&&o.push(F(n.messages[c].len,e.fullField,e.len)):i&&!l&&se.max?o.push(F(n.messages[c].max,e.fullField,e.max)):i&&l&&(se.max)&&o.push(F(n.messages[c].range,e.fullField,e.min,e.max))},K=function(e,t,r,o,n){e[A]=Array.isArray(e[A])?e[A]:[],-1===e[A].indexOf(t)&&o.push(F(n.messages[A],e.fullField,e[A].join(", ")))},X=function(e,t,r,o,n){e.pattern&&(e.pattern instanceof RegExp?(e.pattern.lastIndex=0,e.pattern.test(t)||o.push(F(n.messages.pattern.mismatch,e.fullField,t,e.pattern))):"string"==typeof e.pattern&&(new RegExp(e.pattern).test(t)||o.push(F(n.messages.pattern.mismatch,e.fullField,t,e.pattern))))},Q=function(e,t,r,o,n){var a=e.type,i=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,a)&&!e.required)return r();U(e,t,o,i,n,a),P(t,a)||q(e,t,o,i,n)}r(i)},Y={string:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,"string")&&!e.required)return r();U(e,t,o,a,n,"string"),P(t,"string")||(q(e,t,o,a,n),J(e,t,o,a,n),X(e,t,o,a,n),!0===e.whitespace&&G(e,t,o,a,n))}r(a)},method:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&q(e,t,o,a,n)}r(a)},number:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(""===t&&(t=void 0),P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},boolean:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&q(e,t,o,a,n)}r(a)},regexp:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),P(t)||q(e,t,o,a,n)}r(a)},integer:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},float:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},array:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();U(e,t,o,a,n,"array"),null!=t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},object:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&q(e,t,o,a,n)}r(a)},enum:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&K(e,t,o,a,n)}r(a)},pattern:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,"string")&&!e.required)return r();U(e,t,o,a,n),P(t,"string")||X(e,t,o,a,n)}r(a)},date:function(e,t,r,o,n){var a,i=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,"date")&&!e.required)return r();U(e,t,o,i,n),!P(t,"date")&&(a=t instanceof Date?t:new Date(t),q(e,a,o,i,n),a&&J(e,a.getTime(),o,i,n))}r(i)},url:Q,hex:Q,email:Q,tel:Q,required:function(e,t,r,o,n){var a=[],i=Array.isArray(t)?"array":(0,x.default)(t);U(e,t,o,a,n,i),r(a)},any:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n)}r(a)}};var Z=function(){function e(t){(0,c.default)(this,e),(0,h.default)(this,"rules",null),(0,h.default)(this,"_messages",S),this.define(t)}return(0,u.default)(e,[{key:"define",value:function(e){var t=this;if(!e)throw Error("Cannot configure a schema with no rules");if("object"!==(0,x.default)(e)||Array.isArray(e))throw Error("Rules must be an object");this.rules={},Object.keys(e).forEach(function(r){var o=e[r];t.rules[r]=Array.isArray(o)?o:[o]})}},{key:"messages",value:function(e){return e&&(this._messages=B(E(),e)),this._messages}},{key:"validate",value:function(t){var r=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},a=t,i=o,c=n;if("function"==typeof i&&(c=i,i={}),!this.rules||0===Object.keys(this.rules).length)return c&&c(null,a),Promise.resolve(a);if(i.messages){var u=this.messages();u===S&&(u=E()),B(u,i.messages),i.messages=u}else i.messages=this.messages();var d={};(i.keys||Object.keys(this.rules)).forEach(function(e){var o=r.rules[e],n=a[e];o.forEach(function(o){var i=o;"function"==typeof i.transform&&(a===t&&(a=(0,l.default)({},a)),null!=(n=a[e]=i.transform(n))&&(i.type=i.type||(Array.isArray(n)?"array":(0,x.default)(n)))),(i="function"==typeof i?{validator:i}:(0,l.default)({},i)).validator=r.getValidationMethod(i),i.validator&&(i.field=e,i.fullField=i.fullField||e,i.type=r.getType(i),d[e]=d[e]||[],d[e].push({rule:i,value:n,source:a,field:e}))})});var f={};return function(e,t,r,o,n){if(t.first){var a=new Promise(function(t,a){var i;R((i=[],Object.keys(e).forEach(function(t){i.push.apply(i,(0,s.default)(e[t]||[]))}),i),r,function(e){return o(e),e.length?a(new N(e,_(e))):t(n)})});return a.catch(function(e){return e}),a}var i=!0===t.firstFields?Object.keys(e):t.firstFields||[],l=Object.keys(e),c=l.length,u=0,d=[],f=new Promise(function(t,a){var f=function(e){if(d.push.apply(d,e),++u===c)return o(d),d.length?a(new N(d,_(d))):t(n)};l.length||(o(d),t(n)),l.forEach(function(t){var o=e[t];if(-1!==i.indexOf(t))R(o,r,f);else{var n=[],a=0,l=o.length;function c(e){n.push.apply(n,(0,s.default)(e||[])),++a===l&&f(n)}o.forEach(function(e){r(e,c)})}})});return f.catch(function(e){return e}),f}(d,i,function(t,r){var o,n,c,u=t.rule,d=("object"===u.type||"array"===u.type)&&("object"===(0,x.default)(u.fields)||"object"===(0,x.default)(u.defaultField));function p(e,t){return(0,l.default)((0,l.default)({},t),{},{fullField:"".concat(u.fullField,".").concat(e),fullFields:u.fullFields?[].concat((0,s.default)(u.fullFields),[e]):[e]})}function h(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=Array.isArray(o)?o:[o];!i.suppressWarning&&n.length&&e.warning("async-validator:",n),n.length&&void 0!==u.message&&null!==u.message&&(n=[].concat(u.message));var c=n.map(M(u,a));if(i.first&&c.length)return f[u.field]=1,r(c);if(d){if(u.required&&!t.value)return void 0!==u.message?c=[].concat(u.message).map(M(u,a)):i.error&&(c=[i.error(u,F(i.messages.required,u.field))]),r(c);var h={};u.defaultField&&Object.keys(t.value).map(function(e){h[e]=u.defaultField});var m={};Object.keys(h=(0,l.default)((0,l.default)({},h),t.rule.fields)).forEach(function(e){var t=h[e],r=Array.isArray(t)?t:[t];m[e]=r.map(p.bind(null,e))});var g=new e(m);g.messages(i.messages),t.rule.options&&(t.rule.options.messages=i.messages,t.rule.options.error=i.error),g.validate(t.value,t.rule.options||i,function(e){var t=[];c&&c.length&&t.push.apply(t,(0,s.default)(c)),e&&e.length&&t.push.apply(t,(0,s.default)(e)),r(t.length?t:null)})}else r(c)}if(d=d&&(u.required||!u.required&&t.value),u.field=t.field,u.asyncValidator)o=u.asyncValidator(u,t.value,h,t.source,i);else if(u.validator){try{o=u.validator(u,t.value,h,t.source,i)}catch(e){null==(n=(c=console).error)||n.call(c,e),i.suppressValidatorError||setTimeout(function(){throw e},0),h(e.message)}!0===o?h():!1===o?h("function"==typeof u.message?u.message(u.fullField||u.field):u.message||"".concat(u.fullField||u.field," fails")):o instanceof Array?h(o):o instanceof Error&&h(o.message)}o&&o.then&&o.then(function(){return h()},function(e){return h(e)})},function(e){for(var t=[],r={},o=0;o0)){e.next=23;break}return e.next=21,Promise.all(o.map(function(e,r){return en("".concat(t,".").concat(r),e,f,i,c)}));case 21:return v=e.sent,e.abrupt("return",v.reduce(function(e,t){return[].concat((0,s.default)(e),(0,s.default)(t))},[]));case 23:return y=(0,l.default)((0,l.default)({},n),{},{name:t,enum:(n.enum||[]).join(", ")},c),b=g.map(function(e){return"string"==typeof e?function(e,t){return e.replace(/\\?\$\{\w+\}/g,function(e){return e.startsWith("\\")?e.slice(1):t[e.slice(2,-1)]})}(e,y):e}),e.abrupt("return",b);case 26:case"end":return e.stop()}},e,null,[[10,15]])}))).apply(this,arguments)}function ei(){return(ei=(0,i.default)((0,a.default)().mark(function e(t){return(0,a.default)().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(t).then(function(e){var t;return(t=[]).concat.apply(t,(0,s.default)(e))}));case 1:case"end":return e.stop()}},e)}))).apply(this,arguments)}function el(){return(el=(0,i.default)((0,a.default)().mark(function e(t){var r;return(0,a.default)().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=0,e.abrupt("return",new Promise(function(e){t.forEach(function(o){o.then(function(o){o.errors.length&&e([o]),(r+=1)===t.length&&e([])})})}));case 2:case"end":return e.stop()}},e)}))).apply(this,arguments)}var es=e.i(657791);function ec(e){return C(e)}function eu(e,t){var r={};return t.forEach(function(t){var o=(0,es.default)(e,t);r=(0,er.default)(r,t,o)}),r}function ed(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return e&&e.some(function(e){return ef(t,e,r)})}function ef(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return!!e&&!!t&&(!!r||e.length===t.length)&&t.every(function(t,r){return e[r]===t})}function ep(e){var t=arguments.length<=1?void 0:arguments[1];return t&&t.target&&"object"===(0,x.default)(t.target)&&e in t.target?t.target[e]:t}function eh(e,t,r){var o=e.length;if(t<0||t>=o||r<0||r>=o)return e;var n=e[t],a=t-r;return a>0?[].concat((0,s.default)(e.slice(0,r)),[n],(0,s.default)(e.slice(r,t)),(0,s.default)(e.slice(t+1,o))):a<0?[].concat((0,s.default)(e.slice(0,t)),(0,s.default)(e.slice(t+1,r+1)),[n],(0,s.default)(e.slice(r+1,o))):e}var em=es,eg=["name"],ev=[];function ey(e,t,r,o,n,a){return"function"==typeof e?e(t,r,"source"in a?{source:a.source}:{}):o!==n}var eb=function(e){(0,f.default)(o,e);var t=(0,p.default)(o);function o(e){var n;return(0,c.default)(this,o),n=t.call(this,e),(0,h.default)((0,d.default)(n),"state",{resetCount:0}),(0,h.default)((0,d.default)(n),"cancelRegisterFunc",null),(0,h.default)((0,d.default)(n),"mounted",!1),(0,h.default)((0,d.default)(n),"touched",!1),(0,h.default)((0,d.default)(n),"dirty",!1),(0,h.default)((0,d.default)(n),"validatePromise",void 0),(0,h.default)((0,d.default)(n),"prevValidating",void 0),(0,h.default)((0,d.default)(n),"errors",ev),(0,h.default)((0,d.default)(n),"warnings",ev),(0,h.default)((0,d.default)(n),"cancelRegister",function(){var e=n.props,t=e.preserve,r=e.isListField,o=e.name;n.cancelRegisterFunc&&n.cancelRegisterFunc(r,t,ec(o)),n.cancelRegisterFunc=null}),(0,h.default)((0,d.default)(n),"getNamePath",function(){var e=n.props,t=e.name,r=e.fieldContext.prefixName;return void 0!==t?[].concat((0,s.default)(void 0===r?[]:r),(0,s.default)(t)):[]}),(0,h.default)((0,d.default)(n),"getRules",function(){var e=n.props,t=e.rules,r=e.fieldContext;return(void 0===t?[]:t).map(function(e){return"function"==typeof e?e(r):e})}),(0,h.default)((0,d.default)(n),"refresh",function(){n.mounted&&n.setState(function(e){return{resetCount:e.resetCount+1}})}),(0,h.default)((0,d.default)(n),"metaCache",null),(0,h.default)((0,d.default)(n),"triggerMetaEvent",function(e){var t=n.props.onMetaChange;if(t){var r=(0,l.default)((0,l.default)({},n.getMeta()),{},{destroy:e});(0,g.default)(n.metaCache,r)||t(r),n.metaCache=r}else n.metaCache=null}),(0,h.default)((0,d.default)(n),"onStoreChange",function(e,t,r){var o=n.props,a=o.shouldUpdate,i=o.dependencies,l=void 0===i?[]:i,s=o.onReset,c=r.store,u=n.getNamePath(),d=n.getValue(e),f=n.getValue(c),p=t&&ed(t,u);switch("valueUpdate"===r.type&&"external"===r.source&&!(0,g.default)(d,f)&&(n.touched=!0,n.dirty=!0,n.validatePromise=null,n.errors=ev,n.warnings=ev,n.triggerMetaEvent()),r.type){case"reset":if(!t||p){n.touched=!1,n.dirty=!1,n.validatePromise=void 0,n.errors=ev,n.warnings=ev,n.triggerMetaEvent(),null==s||s(),n.refresh();return}break;case"remove":if(a&&ey(a,e,c,d,f,r))return void n.reRender();break;case"setField":var h=r.data;if(p){"touched"in h&&(n.touched=h.touched),"validating"in h&&!("originRCField"in h)&&(n.validatePromise=h.validating?Promise.resolve([]):null),"errors"in h&&(n.errors=h.errors||ev),"warnings"in h&&(n.warnings=h.warnings||ev),n.dirty=!0,n.triggerMetaEvent(),n.reRender();return}if("value"in h&&ed(t,u,!0)||a&&!u.length&&ey(a,e,c,d,f,r))return void n.reRender();break;case"dependenciesUpdate":if(l.map(ec).some(function(e){return ed(r.relatedFields,e)}))return void n.reRender();break;default:if(p||(!l.length||u.length||a)&&ey(a,e,c,d,f,r))return void n.reRender()}!0===a&&n.reRender()}),(0,h.default)((0,d.default)(n),"validateRules",function(e){var t=n.getNamePath(),r=n.getValue(),o=e||{},c=o.triggerName,u=o.validateOnly,d=Promise.resolve().then((0,i.default)((0,a.default)().mark(function o(){var u,f,p,h,m,g,y;return(0,a.default)().wrap(function(o){for(;;)switch(o.prev=o.next){case 0:if(n.mounted){o.next=2;break}return o.abrupt("return",[]);case 2:if(p=void 0!==(f=(u=n.props).validateFirst)&&f,h=u.messageVariables,m=u.validateDebounce,g=n.getRules(),c&&(g=g.filter(function(e){return e}).filter(function(e){var t=e.validateTrigger;return!t||C(t).includes(c)})),!(m&&c)){o.next=10;break}return o.next=8,new Promise(function(e){setTimeout(e,m)});case 8:if(n.validatePromise===d){o.next=10;break}return o.abrupt("return",[]);case 10:return(y=function(e,t,r,o,n,s){var c,u,d=e.join("."),f=r.map(function(e,t){var r=e.validator,o=(0,l.default)((0,l.default)({},e),{},{ruleIndex:t});return r&&(o.validator=function(e,t,o){var n=!1,a=r(e,t,function(){for(var e=arguments.length,t=Array(e),r=0;r0&&void 0!==arguments[0]?arguments[0]:ev;if(n.validatePromise===d){n.validatePromise=null;var t,r=[],o=[];null==(t=e.forEach)||t.call(e,function(e){var t=e.rule.warningOnly,n=e.errors,a=void 0===n?ev:n;t?o.push.apply(o,(0,s.default)(a)):r.push.apply(r,(0,s.default)(a))}),n.errors=r,n.warnings=o,n.triggerMetaEvent(),n.reRender()}}),o.abrupt("return",y);case 13:case"end":return o.stop()}},o)})));return void 0!==u&&u||(n.validatePromise=d,n.dirty=!0,n.errors=ev,n.warnings=ev,n.triggerMetaEvent(),n.reRender()),d}),(0,h.default)((0,d.default)(n),"isFieldValidating",function(){return!!n.validatePromise}),(0,h.default)((0,d.default)(n),"isFieldTouched",function(){return n.touched}),(0,h.default)((0,d.default)(n),"isFieldDirty",function(){return!!n.dirty||void 0!==n.props.initialValue||void 0!==(0,n.props.fieldContext.getInternalHooks(y).getInitialValue)(n.getNamePath())}),(0,h.default)((0,d.default)(n),"getErrors",function(){return n.errors}),(0,h.default)((0,d.default)(n),"getWarnings",function(){return n.warnings}),(0,h.default)((0,d.default)(n),"isListField",function(){return n.props.isListField}),(0,h.default)((0,d.default)(n),"isList",function(){return n.props.isList}),(0,h.default)((0,d.default)(n),"isPreserve",function(){return n.props.preserve}),(0,h.default)((0,d.default)(n),"getMeta",function(){return n.prevValidating=n.isFieldValidating(),{touched:n.isFieldTouched(),validating:n.prevValidating,errors:n.errors,warnings:n.warnings,name:n.getNamePath(),validated:null===n.validatePromise}}),(0,h.default)((0,d.default)(n),"getOnlyChild",function(e){if("function"==typeof e){var t=n.getMeta();return(0,l.default)((0,l.default)({},n.getOnlyChild(e(n.getControlled(),t,n.props.fieldContext))),{},{isFunction:!0})}var o=(0,m.default)(e);return 1===o.length&&r.isValidElement(o[0])?{child:o[0],isFunction:!1}:{child:o,isFunction:!1}}),(0,h.default)((0,d.default)(n),"getValue",function(e){var t=n.props.fieldContext.getFieldsValue,r=n.getNamePath();return(0,em.default)(e||t(!0),r)}),(0,h.default)((0,d.default)(n),"getControlled",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=n.props,r=t.name,o=t.trigger,a=t.validateTrigger,i=t.getValueFromEvent,s=t.normalize,c=t.valuePropName,u=t.getValueProps,d=t.fieldContext,f=void 0!==a?a:d.validateTrigger,p=n.getNamePath(),m=d.getInternalHooks,g=d.getFieldsValue,v=m(y).dispatch,b=n.getValue(),w=u||function(e){return(0,h.default)({},c,e)},$=e[o],x=void 0!==r?w(b):{},E=(0,l.default)((0,l.default)({},e),x);return E[o]=function(){n.touched=!0,n.dirty=!0,n.triggerMetaEvent();for(var e,t=arguments.length,r=Array(t),o=0;o=0&&t<=r.length?(f.keys=[].concat((0,s.default)(f.keys.slice(0,t)),[f.id],(0,s.default)(f.keys.slice(t))),o([].concat((0,s.default)(r.slice(0,t)),[e],(0,s.default)(r.slice(t))))):(f.keys=[].concat((0,s.default)(f.keys),[f.id]),o([].concat((0,s.default)(r),[e]))),f.id+=1},remove:function(e){var t=i(),r=new Set(Array.isArray(e)?e:[e]);r.size<=0||(f.keys=f.keys.filter(function(e,t){return!r.has(t)}),o(t.filter(function(e,t){return!r.has(t)})))},move:function(e,t){if(e!==t){var r=i();e<0||e>=r.length||t<0||t>=r.length||(f.keys=eh(f.keys,e,t),o(eh(r,e,t)))}}},t)})))};e.s(["default",0,e$],197091);var eC=e.i(392221),ex="__@field_split__";function eE(e){return e.map(function(e){return"".concat((0,x.default)(e),":").concat(e)}).join(ex)}var eS=function(){function e(){(0,c.default)(this,e),(0,h.default)(this,"kvs",new Map)}return(0,u.default)(e,[{key:"set",value:function(e,t){this.kvs.set(eE(e),t)}},{key:"get",value:function(e){return this.kvs.get(eE(e))}},{key:"update",value:function(e,t){var r=t(this.get(e));r?this.set(e,r):this.delete(e)}},{key:"delete",value:function(e){this.kvs.delete(eE(e))}},{key:"map",value:function(e){return(0,s.default)(this.kvs.entries()).map(function(t){var r=(0,eC.default)(t,2),o=r[0],n=r[1];return e({key:o.split(ex).map(function(e){var t=e.match(/^([^:]*):(.*)$/),r=(0,eC.default)(t,3),o=r[1],n=r[2];return"number"===o?Number(n):n}),value:n})})}},{key:"toJSON",value:function(){var e={};return this.map(function(t){var r=t.key,o=t.value;return e[r.join(".")]=o,null}),e}}]),e}(),em=es,ek=["name"],ej=(0,u.default)(function e(t){var r=this;(0,c.default)(this,e),(0,h.default)(this,"formHooked",!1),(0,h.default)(this,"forceRootUpdate",void 0),(0,h.default)(this,"subscribable",!0),(0,h.default)(this,"store",{}),(0,h.default)(this,"fieldEntities",[]),(0,h.default)(this,"initialValues",{}),(0,h.default)(this,"callbacks",{}),(0,h.default)(this,"validateMessages",null),(0,h.default)(this,"preserve",null),(0,h.default)(this,"lastValidatePromise",null),(0,h.default)(this,"getForm",function(){return{getFieldValue:r.getFieldValue,getFieldsValue:r.getFieldsValue,getFieldError:r.getFieldError,getFieldWarning:r.getFieldWarning,getFieldsError:r.getFieldsError,isFieldsTouched:r.isFieldsTouched,isFieldTouched:r.isFieldTouched,isFieldValidating:r.isFieldValidating,isFieldsValidating:r.isFieldsValidating,resetFields:r.resetFields,setFields:r.setFields,setFieldValue:r.setFieldValue,setFieldsValue:r.setFieldsValue,validateFields:r.validateFields,submit:r.submit,_init:!0,getInternalHooks:r.getInternalHooks}}),(0,h.default)(this,"getInternalHooks",function(e){return e===y?(r.formHooked=!0,{dispatch:r.dispatch,initEntityValue:r.initEntityValue,registerField:r.registerField,useSubscribe:r.useSubscribe,setInitialValues:r.setInitialValues,destroyForm:r.destroyForm,setCallbacks:r.setCallbacks,setValidateMessages:r.setValidateMessages,getFields:r.getFields,setPreserve:r.setPreserve,getInitialValue:r.getInitialValue,registerWatch:r.registerWatch}):((0,v.default)(!1,"`getInternalHooks` is internal usage. Should not call directly."),null)}),(0,h.default)(this,"useSubscribe",function(e){r.subscribable=e}),(0,h.default)(this,"prevWithoutPreserves",null),(0,h.default)(this,"setInitialValues",function(e,t){if(r.initialValues=e||{},t){var o,n=(0,er.merge)(e,r.store);null==(o=r.prevWithoutPreserves)||o.map(function(t){var r=t.key;n=(0,er.default)(n,r,(0,em.default)(e,r))}),r.prevWithoutPreserves=null,r.updateStore(n)}}),(0,h.default)(this,"destroyForm",function(e){if(e)r.updateStore({});else{var t=new eS;r.getFieldEntities(!0).forEach(function(e){r.isMergedPreserve(e.isPreserve())||t.set(e.getNamePath(),!0)}),r.prevWithoutPreserves=t}}),(0,h.default)(this,"getInitialValue",function(e){var t=(0,em.default)(r.initialValues,e);return e.length?(0,er.merge)(t):t}),(0,h.default)(this,"setCallbacks",function(e){r.callbacks=e}),(0,h.default)(this,"setValidateMessages",function(e){r.validateMessages=e}),(0,h.default)(this,"setPreserve",function(e){r.preserve=e}),(0,h.default)(this,"watchList",[]),(0,h.default)(this,"registerWatch",function(e){return r.watchList.push(e),function(){r.watchList=r.watchList.filter(function(t){return t!==e})}}),(0,h.default)(this,"notifyWatch",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(r.watchList.length){var t=r.getFieldsValue(),o=r.getFieldsValue(!0);r.watchList.forEach(function(r){r(t,o,e)})}}),(0,h.default)(this,"timeoutId",null),(0,h.default)(this,"warningUnhooked",function(){}),(0,h.default)(this,"updateStore",function(e){r.store=e}),(0,h.default)(this,"getFieldEntities",function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return e?r.fieldEntities.filter(function(e){return e.getNamePath().length}):r.fieldEntities}),(0,h.default)(this,"getFieldsMap",function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=new eS;return r.getFieldEntities(e).forEach(function(e){var r=e.getNamePath();t.set(r,e)}),t}),(0,h.default)(this,"getFieldEntitiesForNamePathList",function(e){if(!e)return r.getFieldEntities(!0);var t=r.getFieldsMap(!0);return e.map(function(e){var r=ec(e);return t.get(r)||{INVALIDATE_NAME_PATH:ec(e)}})}),(0,h.default)(this,"getFieldsValue",function(e,t){if(r.warningUnhooked(),!0===e||Array.isArray(e)?(o=e,n=t):e&&"object"===(0,x.default)(e)&&(a=e.strict,n=e.filter),!0===o&&!n)return r.store;var o,n,a,i=r.getFieldEntitiesForNamePathList(Array.isArray(o)?o:null),l=[];return i.forEach(function(e){var t,r,i,s="INVALIDATE_NAME_PATH"in e?e.INVALIDATE_NAME_PATH:e.getNamePath();if(a){if(null!=(i=e.isList)&&i.call(e))return}else if(!o&&null!=(t=(r=e).isListField)&&t.call(r))return;if(n){var c="getMeta"in e?e.getMeta():null;n(c)&&l.push(s)}else l.push(s)}),eu(r.store,l.map(ec))}),(0,h.default)(this,"getFieldValue",function(e){r.warningUnhooked();var t=ec(e);return(0,em.default)(r.store,t)}),(0,h.default)(this,"getFieldsError",function(e){return r.warningUnhooked(),r.getFieldEntitiesForNamePathList(e).map(function(t,r){return!t||"INVALIDATE_NAME_PATH"in t?{name:ec(e[r]),errors:[],warnings:[]}:{name:t.getNamePath(),errors:t.getErrors(),warnings:t.getWarnings()}})}),(0,h.default)(this,"getFieldError",function(e){r.warningUnhooked();var t=ec(e);return r.getFieldsError([t])[0].errors}),(0,h.default)(this,"getFieldWarning",function(e){r.warningUnhooked();var t=ec(e);return r.getFieldsError([t])[0].warnings}),(0,h.default)(this,"isFieldsTouched",function(){r.warningUnhooked();for(var e,t=arguments.length,o=Array(t),n=0;n0&&void 0!==arguments[0]?arguments[0]:{},o=new eS,n=r.getFieldEntities(!0);n.forEach(function(e){var t=e.props.initialValue,r=e.getNamePath();if(void 0!==t){var n=o.get(r)||new Set;n.add({entity:e,value:t}),o.set(r,n)}}),t.entities?e=t.entities:t.namePathList?(e=[],t.namePathList.forEach(function(t){var r,n=o.get(t);n&&(r=e).push.apply(r,(0,s.default)((0,s.default)(n).map(function(e){return e.entity})))})):e=n,e.forEach(function(e){if(void 0!==e.props.initialValue){var n=e.getNamePath();if(void 0!==r.getInitialValue(n))(0,v.default)(!1,"Form already set 'initialValues' with path '".concat(n.join("."),"'. Field can not overwrite it."));else{var a=o.get(n);if(a&&a.size>1)(0,v.default)(!1,"Multiple Field with path '".concat(n.join("."),"' set 'initialValue'. Can not decide which one to pick."));else if(a){var i=r.getFieldValue(n);e.isListField()||t.skipExist&&void 0!==i||r.updateStore((0,er.default)(r.store,n,(0,s.default)(a)[0].value))}}}})}),(0,h.default)(this,"resetFields",function(e){r.warningUnhooked();var t=r.store;if(!e){r.updateStore((0,er.merge)(r.initialValues)),r.resetWithFieldInitialValue(),r.notifyObservers(t,null,{type:"reset"}),r.notifyWatch();return}var o=e.map(ec);o.forEach(function(e){var t=r.getInitialValue(e);r.updateStore((0,er.default)(r.store,e,t))}),r.resetWithFieldInitialValue({namePathList:o}),r.notifyObservers(t,o,{type:"reset"}),r.notifyWatch(o)}),(0,h.default)(this,"setFields",function(e){r.warningUnhooked();var t=r.store,o=[];e.forEach(function(e){var a=e.name,i=(0,n.default)(e,ek),l=ec(a);o.push(l),"value"in i&&r.updateStore((0,er.default)(r.store,l,i.value)),r.notifyObservers(t,[l],{type:"setField",data:e})}),r.notifyWatch(o)}),(0,h.default)(this,"getFields",function(){return r.getFieldEntities(!0).map(function(e){var t=e.getNamePath(),o=e.getMeta(),n=(0,l.default)((0,l.default)({},o),{},{name:t,value:r.getFieldValue(t)});return Object.defineProperty(n,"originRCField",{value:!0}),n})}),(0,h.default)(this,"initEntityValue",function(e){var t=e.props.initialValue;if(void 0!==t){var o=e.getNamePath();void 0===(0,em.default)(r.store,o)&&r.updateStore((0,er.default)(r.store,o,t))}}),(0,h.default)(this,"isMergedPreserve",function(e){var t=void 0!==e?e:r.preserve;return null==t||t}),(0,h.default)(this,"registerField",function(e){r.fieldEntities.push(e);var t=e.getNamePath();if(r.notifyWatch([t]),void 0!==e.props.initialValue){var o=r.store;r.resetWithFieldInitialValue({entities:[e],skipExist:!0}),r.notifyObservers(o,[e.getNamePath()],{type:"valueUpdate",source:"internal"})}return function(o,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(r.fieldEntities=r.fieldEntities.filter(function(t){return t!==e}),!r.isMergedPreserve(n)&&(!o||a.length>1)){var i=o?void 0:r.getInitialValue(t);if(t.length&&r.getFieldValue(t)!==i&&r.fieldEntities.every(function(e){return!ef(e.getNamePath(),t)})){var l=r.store;r.updateStore((0,er.default)(l,t,i,!0)),r.notifyObservers(l,[t],{type:"remove"}),r.triggerDependenciesUpdate(l,t)}}r.notifyWatch([t])}}),(0,h.default)(this,"dispatch",function(e){switch(e.type){case"updateValue":var t=e.namePath,o=e.value;r.updateValue(t,o);break;case"validateField":var n=e.namePath,a=e.triggerName;r.validateFields([n],{triggerName:a})}}),(0,h.default)(this,"notifyObservers",function(e,t,o){if(r.subscribable){var n=(0,l.default)((0,l.default)({},o),{},{store:r.getFieldsValue(!0)});r.getFieldEntities().forEach(function(r){(0,r.onStoreChange)(e,t,n)})}else r.forceRootUpdate()}),(0,h.default)(this,"triggerDependenciesUpdate",function(e,t){var o=r.getDependencyChildrenFields(t);return o.length&&r.validateFields(o),r.notifyObservers(e,o,{type:"dependenciesUpdate",relatedFields:[t].concat((0,s.default)(o))}),o}),(0,h.default)(this,"updateValue",function(e,t){var o=ec(e),n=r.store;r.updateStore((0,er.default)(r.store,o,t)),r.notifyObservers(n,[o],{type:"valueUpdate",source:"internal"}),r.notifyWatch([o]);var a=r.triggerDependenciesUpdate(n,o),i=r.callbacks.onValuesChange;i&&i(eu(r.store,[o]),r.getFieldsValue()),r.triggerOnFieldsChange([o].concat((0,s.default)(a)))}),(0,h.default)(this,"setFieldsValue",function(e){r.warningUnhooked();var t=r.store;if(e){var o=(0,er.merge)(r.store,e);r.updateStore(o)}r.notifyObservers(t,null,{type:"valueUpdate",source:"external"}),r.notifyWatch()}),(0,h.default)(this,"setFieldValue",function(e,t){r.setFields([{name:e,value:t,errors:[],warnings:[]}])}),(0,h.default)(this,"getDependencyChildrenFields",function(e){var t=new Set,o=[],n=new eS;return r.getFieldEntities().forEach(function(e){(e.props.dependencies||[]).forEach(function(t){var r=ec(t);n.update(r,function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Set;return t.add(e),t})})}),!function e(r){(n.get(r)||new Set).forEach(function(r){if(!t.has(r)){t.add(r);var n=r.getNamePath();r.isFieldDirty()&&n.length&&(o.push(n),e(n))}})}(e),o}),(0,h.default)(this,"triggerOnFieldsChange",function(e,t){var o=r.callbacks.onFieldsChange;if(o){var n=r.getFields();if(t){var a=new eS;t.forEach(function(e){var t=e.name,r=e.errors;a.set(t,r)}),n.forEach(function(e){e.errors=a.get(e.name)||e.errors})}var i=n.filter(function(t){return ed(e,t.name)});i.length&&o(i,n)}}),(0,h.default)(this,"validateFields",function(e,t){r.warningUnhooked(),Array.isArray(e)||"string"==typeof e||"string"==typeof t?(i=e,c=t):c=e;var o,n,a,i,c,u=!!i,d=u?i.map(ec):[],f=[],p=String(Date.now()),h=new Set,m=c||{},g=m.recursive,v=m.dirty;r.getFieldEntities(!0).forEach(function(e){if((u||d.push(e.getNamePath()),e.props.rules&&e.props.rules.length)&&(!v||e.isFieldDirty())){var t=e.getNamePath();if(h.add(t.join(p)),!u||ed(d,t,g)){var o=e.validateRules((0,l.default)({validateMessages:(0,l.default)((0,l.default)({},et),r.validateMessages)},c));f.push(o.then(function(){return{name:t,errors:[],warnings:[]}}).catch(function(e){var r,o=[],n=[];return(null==(r=e.forEach)||r.call(e,function(e){var t=e.rule.warningOnly,r=e.errors;t?n.push.apply(n,(0,s.default)(r)):o.push.apply(o,(0,s.default)(r))}),o.length)?Promise.reject({name:t,errors:o,warnings:n}):{name:t,errors:o,warnings:n}}))}}});var y=(o=!1,n=f.length,a=[],f.length?new Promise(function(e,t){f.forEach(function(r,i){r.catch(function(e){return o=!0,e}).then(function(r){n-=1,a[i]=r,n>0||(o&&t(a),e(a))})})}):Promise.resolve([]));r.lastValidatePromise=y,y.catch(function(e){return e}).then(function(e){var t=e.map(function(e){return e.name});r.notifyObservers(r.store,t,{type:"validateFinish"}),r.triggerOnFieldsChange(t,e)});var b=y.then(function(){return r.lastValidatePromise===y?Promise.resolve(r.getFieldsValue(d)):Promise.reject([])}).catch(function(e){var t=e.filter(function(e){return e&&e.errors.length});return Promise.reject({values:r.getFieldsValue(d),errorFields:t,outOfDate:r.lastValidatePromise!==y})});b.catch(function(e){return e});var w=d.filter(function(e){return h.has(e.join(p))});return r.triggerOnFieldsChange(w),b}),(0,h.default)(this,"submit",function(){r.warningUnhooked(),r.validateFields().then(function(e){var t=r.callbacks.onFinish;if(t)try{t(e)}catch(e){console.error(e)}}).catch(function(e){var t=r.callbacks.onFinishFailed;t&&t(e)})}),this.forceRootUpdate=t});let eO=function(e){var t=r.useRef(),o=r.useState({}),n=(0,eC.default)(o,2)[1];return t.current||(e?t.current=e:t.current=new ej(function(){n({})}).getForm()),[t.current]};e.s(["default",0,eO],787894);var eT=r.createContext({triggerFormChange:function(){},triggerFormFinish:function(){},registerForm:function(){},unregisterForm:function(){}}),eI=function(e){var t=e.validateMessages,o=e.onFormChange,n=e.onFormFinish,a=e.children,i=r.useContext(eT),s=r.useRef({});return r.createElement(eT.Provider,{value:(0,l.default)((0,l.default)({},i),{},{validateMessages:(0,l.default)((0,l.default)({},i.validateMessages),t),triggerFormChange:function(e,t){o&&o(e,{changedFields:t,forms:s.current}),i.triggerFormChange(e,t)},triggerFormFinish:function(e,t){n&&n(e,{values:t,forms:s.current}),i.triggerFormFinish(e,t)},registerForm:function(e,t){e&&(s.current=(0,l.default)((0,l.default)({},s.current),{},(0,h.default)({},e,t))),i.registerForm(e,t)},unregisterForm:function(e){var t=(0,l.default)({},s.current);delete t[e],s.current=t,i.unregisterForm(e)}})},a)};e.s(["FormProvider",0,eI,"default",0,eT],696752);var e_=["name","initialValues","fields","form","preserve","children","component","validateMessages","validateTrigger","onValuesChange","onFieldsChange","onFinish","onFinishFailed","clearOnDestroy"],em=es;function eF(e){try{return JSON.stringify(e)}catch(e){return Math.random()}}var eP=function(){};let eR=function(){for(var e=arguments.length,t=Array(e),o=0;o1?t-1:0),o=1;o{"use strict";e.s(["default",0,function(e,t){var r=Object.assign({},e);return Array.isArray(t)&&t.forEach(function(e){delete r[e]}),r}])},62139,e=>{"use strict";var t=e.i(271645);e.i(495347);var r=e.i(696752),o=e.i(529681);let n=t.createContext({labelAlign:"right",layout:"horizontal",itemRef:()=>{}}),a=t.createContext(null),i=t.createContext({prefixCls:""}),l=t.createContext({}),s=t.createContext(void 0);e.s(["FormContext",0,n,"FormItemInputContext",0,l,"FormItemPrefixContext",0,i,"FormProvider",0,e=>{let n=(0,o.default)(e,["prefixCls"]);return t.createElement(r.FormProvider,Object.assign({},n))},"NoFormStyle",0,({children:e,status:r,override:o})=>{let n=t.useContext(l),a=t.useMemo(()=>{let e=Object.assign({},n);return o&&delete e.isFormItemInput,r&&(delete e.status,delete e.hasFeedback,delete e.feedbackIcon),e},[r,o,n]);return t.createElement(l.Provider,{value:a},e)},"NoStyleItemContext",0,a,"VariantContext",0,s])},613541,e=>{"use strict";var t=e.i(242064);let r=()=>({height:0,opacity:0}),o=e=>{let{scrollHeight:t}=e;return{height:t,opacity:1}},n=e=>({height:e?e.offsetHeight:0}),a=(e,t)=>(null==t?void 0:t.deadline)===!0||"height"===t.propertyName;e.s(["default",0,(e=t.defaultPrefixCls)=>({motionName:`${e}-motion-collapse`,onAppearStart:r,onEnterStart:r,onAppearActive:o,onEnterActive:o,onLeaveStart:n,onLeaveActive:r,onAppearEnd:a,onEnterEnd:a,onLeaveEnd:a,motionDeadline:500}),"getTransitionName",0,(e,t,r)=>void 0!==r?r:`${e}-${t}`])},830919,e=>{"use strict";var t=e.i(271645);e.s(["default",0,function(e){let[r,o]=t.useState(e);return t.useEffect(()=>{let t=setTimeout(()=>{o(e)},10*!e.length);return()=>{clearTimeout(t)}},[e]),r}])},447580,e=>{"use strict";e.s(["genCollapseMotion",0,e=>({[e.componentCls]:{[`${e.antCls}-motion-collapse-legacy`]:{overflow:"hidden","&-active":{transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,268004,909119,e=>{"use strict";let t="mcp-session-token:";function r(e,r){let o=r?.trim()||"_anonymous";return`${t}${o}:${e}`}function o(e,t){try{let o=window.sessionStorage.getItem(r(e,t));if(!o)return null;return JSON.parse(o)}catch{return null}}function n(){try{let e=[];for(let r=0;rwindow.sessionStorage.removeItem(e))}catch{}}function a(){let e=window.location.pathname.match(/\/ui(?=\/|$)/);return e&&void 0!==e.index?window.location.pathname.substring(0,e.index+3):"/ui"}e.s(["clearAllMcpTokens",0,n,"getToken",0,o,"isTokenValid",0,function(e,t){let r=o(e,t);return!!r&&r.expires_at>Date.now()},"removeToken",0,function(e,t){try{window.sessionStorage.removeItem(r(e,t))}catch{}},"setToken",0,function(e,t,o){let n={access_token:t.access_token,expires_at:Date.now()+(null!=t.expires_in?1e3*t.expires_in:36e5),token_type:t.token_type??"bearer",...t.refresh_token?{refresh_token:t.refresh_token}:{}};try{window.sessionStorage.setItem(r(e,o),JSON.stringify(n))}catch{}}],909119),e.s(["clearTokenCookies",0,function(){if("u"{document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t};`,document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${e};`,o.forEach(r=>{let o="None"===r?" Secure;":"";document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; SameSite=${r};${o}`,document.cookie=`token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${e}; SameSite=${r};${o}`})});try{sessionStorage.removeItem("token")}catch{}n()},"getCookie",0,function(e){if("u"t.startsWith(e+"="));if(t){let e=t.split("=").slice(1).join("=");try{return decodeURIComponent(e)}catch{return e}}if("token"===e)try{return sessionStorage.getItem(e)}catch{}return null},"storeLoginToken",0,function(e){if(e&&e.trim()){try{let t="https:"===window.location.protocol?"; Secure":"",r=a();document.cookie=`token=${encodeURIComponent(e)}; path=${r}; SameSite=Lax${t}`}catch{}try{sessionStorage.setItem("token",e)}catch{}}}],268004)},876556,e=>{"use strict";var t=e.i(565924),r=e.i(271645);e.s(["default",0,function e(o){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=[];return r.default.Children.forEach(o,function(r){(null!=r||n.keepEmpty)&&(Array.isArray(r)?a=a.concat(e(r)):(0,t.default)(r)&&r.props?a=a.concat(e(r.props.children,n)):a.push(r))}),a}])},495347,177886,786944,162129,197091,787894,696752,621796,e=>{"use strict";var t,r=e.i(271645);e.i(247167);var o=e.i(931067),n=e.i(703923),a=e.i(31575),i=e.i(33968),l=e.i(209428),s=e.i(8211),c=e.i(278409),u=e.i(233848),d=e.i(971151),f=e.i(868917),p=e.i(674813),h=e.i(211577),m=e.i(876556),g=e.i(929123),v=e.i(883110),y="RC_FORM_INTERNAL_HOOKS",b=function(){(0,v.default)(!1,"Can not find FormContext. Please make sure you wrap Field under Form.")},w=r.createContext({getFieldValue:b,getFieldsValue:b,getFieldError:b,getFieldWarning:b,getFieldsError:b,isFieldsTouched:b,isFieldTouched:b,isFieldValidating:b,isFieldsValidating:b,resetFields:b,setFields:b,setFieldValue:b,setFieldsValue:b,validateFields:b,submit:b,getInternalHooks:function(){return b(),{dispatch:b,initEntityValue:b,registerField:b,useSubscribe:b,setInitialValues:b,destroyForm:b,setCallbacks:b,registerWatch:b,getFields:b,setValidateMessages:b,setPreserve:b,getInitialValue:b}}});e.s(["HOOK_MARK",0,y,"default",0,w],177886);var $=r.createContext(null);function C(e){return null==e?[]:Array.isArray(e)?e:[e]}e.s(["default",0,$],786944);var x=e.i(410160);function E(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",tel:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var S=E(),k=e.i(487806),j=e.i(885963),O=e.i(479671);function T(e){var t="function"==typeof Map?new Map:void 0;return(T=function(e){if(null===e||!function(e){try{return -1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if((0,O.default)())return Reflect.construct.apply(null,arguments);var o=[null];o.push.apply(o,t);var n=new(e.bind.apply(e,o));return r&&(0,j.default)(n,r.prototype),n}(e,arguments,(0,k.default)(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),(0,j.default)(r,e)})(e)}var I=/%[sdj%]/g;function _(e){if(!e||!e.length)return null;var t={};return e.forEach(function(e){var r=e.field;t[r]=t[r]||[],t[r].push(e)}),t}function F(e){for(var t=arguments.length,r=Array(t>1?t-1:0),o=1;o=a)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}}):e}function P(e,t){return!!(null==e||"array"===t&&Array.isArray(e)&&!e.length)||("string"===t||"url"===t||"hex"===t||"email"===t||"date"===t||"pattern"===t||"tel"===t)&&"string"==typeof e&&!e||!1}function R(e,t,r){var o=0,n=e.length;!function a(i){if(i&&i.length)return void r(i);var l=o;o+=1,l()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,H=/^(\+[0-9]{1,3}[-\s\u2011]?)?(\([0-9]{1,4}\)[-\s\u2011]?)?([0-9]+[-\s\u2011]?)*[0-9]+$/,V=/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,W={integer:function(e){return W.number(e)&&parseInt(e,10)===e},float:function(e){return W.number(e)&&!W.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return new RegExp(e),!0}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime())},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"===(0,x.default)(e)&&!W.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&e.length<=320&&!!e.match(D)},tel:function(e){return"string"==typeof e&&e.length<=32&&!!e.match(H)},url:function(e){return"string"==typeof e&&e.length<=2048&&!!e.match(L())},hex:function(e){return"string"==typeof e&&!!e.match(V)}};let U=z,G=function(e,t,r,o,n){(/^\s+$/.test(t)||""===t)&&o.push(F(n.messages.whitespace,e.fullField))},q=function(e,t,r,o,n){if(e.required&&void 0===t)return void z(e,t,r,o,n);var a=e.type;["integer","float","array","regexp","object","method","email","tel","number","date","url","hex"].indexOf(a)>-1?W[a](t)||o.push(F(n.messages.types[a],e.fullField,e.type)):a&&(0,x.default)(t)!==e.type&&o.push(F(n.messages.types[a],e.fullField,e.type))},J=function(e,t,r,o,n){var a="number"==typeof e.len,i="number"==typeof e.min,l="number"==typeof e.max,s=t,c=null,u="number"==typeof t,d="string"==typeof t,f=Array.isArray(t);if(u?c="number":d?c="string":f&&(c="array"),!c)return!1;f&&(s=t.length),d&&(s=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),a?s!==e.len&&o.push(F(n.messages[c].len,e.fullField,e.len)):i&&!l&&se.max?o.push(F(n.messages[c].max,e.fullField,e.max)):i&&l&&(se.max)&&o.push(F(n.messages[c].range,e.fullField,e.min,e.max))},K=function(e,t,r,o,n){e[A]=Array.isArray(e[A])?e[A]:[],-1===e[A].indexOf(t)&&o.push(F(n.messages[A],e.fullField,e[A].join(", ")))},X=function(e,t,r,o,n){e.pattern&&(e.pattern instanceof RegExp?(e.pattern.lastIndex=0,e.pattern.test(t)||o.push(F(n.messages.pattern.mismatch,e.fullField,t,e.pattern))):"string"==typeof e.pattern&&(new RegExp(e.pattern).test(t)||o.push(F(n.messages.pattern.mismatch,e.fullField,t,e.pattern))))},Q=function(e,t,r,o,n){var a=e.type,i=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,a)&&!e.required)return r();U(e,t,o,i,n,a),P(t,a)||q(e,t,o,i,n)}r(i)},Y={string:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,"string")&&!e.required)return r();U(e,t,o,a,n,"string"),P(t,"string")||(q(e,t,o,a,n),J(e,t,o,a,n),X(e,t,o,a,n),!0===e.whitespace&&G(e,t,o,a,n))}r(a)},method:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&q(e,t,o,a,n)}r(a)},number:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(""===t&&(t=void 0),P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},boolean:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&q(e,t,o,a,n)}r(a)},regexp:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),P(t)||q(e,t,o,a,n)}r(a)},integer:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},float:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},array:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(null==t&&!e.required)return r();U(e,t,o,a,n,"array"),null!=t&&(q(e,t,o,a,n),J(e,t,o,a,n))}r(a)},object:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&q(e,t,o,a,n)}r(a)},enum:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n),void 0!==t&&K(e,t,o,a,n)}r(a)},pattern:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,"string")&&!e.required)return r();U(e,t,o,a,n),P(t,"string")||X(e,t,o,a,n)}r(a)},date:function(e,t,r,o,n){var a,i=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t,"date")&&!e.required)return r();U(e,t,o,i,n),!P(t,"date")&&(a=t instanceof Date?t:new Date(t),q(e,a,o,i,n),a&&J(e,a.getTime(),o,i,n))}r(i)},url:Q,hex:Q,email:Q,tel:Q,required:function(e,t,r,o,n){var a=[],i=Array.isArray(t)?"array":(0,x.default)(t);U(e,t,o,a,n,i),r(a)},any:function(e,t,r,o,n){var a=[];if(e.required||!e.required&&o.hasOwnProperty(e.field)){if(P(t)&&!e.required)return r();U(e,t,o,a,n)}r(a)}};var Z=function(){function e(t){(0,c.default)(this,e),(0,h.default)(this,"rules",null),(0,h.default)(this,"_messages",S),this.define(t)}return(0,u.default)(e,[{key:"define",value:function(e){var t=this;if(!e)throw Error("Cannot configure a schema with no rules");if("object"!==(0,x.default)(e)||Array.isArray(e))throw Error("Rules must be an object");this.rules={},Object.keys(e).forEach(function(r){var o=e[r];t.rules[r]=Array.isArray(o)?o:[o]})}},{key:"messages",value:function(e){return e&&(this._messages=B(E(),e)),this._messages}},{key:"validate",value:function(t){var r=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},a=t,i=o,c=n;if("function"==typeof i&&(c=i,i={}),!this.rules||0===Object.keys(this.rules).length)return c&&c(null,a),Promise.resolve(a);if(i.messages){var u=this.messages();u===S&&(u=E()),B(u,i.messages),i.messages=u}else i.messages=this.messages();var d={};(i.keys||Object.keys(this.rules)).forEach(function(e){var o=r.rules[e],n=a[e];o.forEach(function(o){var i=o;"function"==typeof i.transform&&(a===t&&(a=(0,l.default)({},a)),null!=(n=a[e]=i.transform(n))&&(i.type=i.type||(Array.isArray(n)?"array":(0,x.default)(n)))),(i="function"==typeof i?{validator:i}:(0,l.default)({},i)).validator=r.getValidationMethod(i),i.validator&&(i.field=e,i.fullField=i.fullField||e,i.type=r.getType(i),d[e]=d[e]||[],d[e].push({rule:i,value:n,source:a,field:e}))})});var f={};return function(e,t,r,o,n){if(t.first){var a=new Promise(function(t,a){var i;R((i=[],Object.keys(e).forEach(function(t){i.push.apply(i,(0,s.default)(e[t]||[]))}),i),r,function(e){return o(e),e.length?a(new N(e,_(e))):t(n)})});return a.catch(function(e){return e}),a}var i=!0===t.firstFields?Object.keys(e):t.firstFields||[],l=Object.keys(e),c=l.length,u=0,d=[],f=new Promise(function(t,a){var f=function(e){if(d.push.apply(d,e),++u===c)return o(d),d.length?a(new N(d,_(d))):t(n)};l.length||(o(d),t(n)),l.forEach(function(t){var o=e[t];if(-1!==i.indexOf(t))R(o,r,f);else{var n=[],a=0,l=o.length;function c(e){n.push.apply(n,(0,s.default)(e||[])),++a===l&&f(n)}o.forEach(function(e){r(e,c)})}})});return f.catch(function(e){return e}),f}(d,i,function(t,r){var o,n,c,u=t.rule,d=("object"===u.type||"array"===u.type)&&("object"===(0,x.default)(u.fields)||"object"===(0,x.default)(u.defaultField));function p(e,t){return(0,l.default)((0,l.default)({},t),{},{fullField:"".concat(u.fullField,".").concat(e),fullFields:u.fullFields?[].concat((0,s.default)(u.fullFields),[e]):[e]})}function h(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=Array.isArray(o)?o:[o];!i.suppressWarning&&n.length&&e.warning("async-validator:",n),n.length&&void 0!==u.message&&null!==u.message&&(n=[].concat(u.message));var c=n.map(M(u,a));if(i.first&&c.length)return f[u.field]=1,r(c);if(d){if(u.required&&!t.value)return void 0!==u.message?c=[].concat(u.message).map(M(u,a)):i.error&&(c=[i.error(u,F(i.messages.required,u.field))]),r(c);var h={};u.defaultField&&Object.keys(t.value).map(function(e){h[e]=u.defaultField});var m={};Object.keys(h=(0,l.default)((0,l.default)({},h),t.rule.fields)).forEach(function(e){var t=h[e],r=Array.isArray(t)?t:[t];m[e]=r.map(p.bind(null,e))});var g=new e(m);g.messages(i.messages),t.rule.options&&(t.rule.options.messages=i.messages,t.rule.options.error=i.error),g.validate(t.value,t.rule.options||i,function(e){var t=[];c&&c.length&&t.push.apply(t,(0,s.default)(c)),e&&e.length&&t.push.apply(t,(0,s.default)(e)),r(t.length?t:null)})}else r(c)}if(d=d&&(u.required||!u.required&&t.value),u.field=t.field,u.asyncValidator)o=u.asyncValidator(u,t.value,h,t.source,i);else if(u.validator){try{o=u.validator(u,t.value,h,t.source,i)}catch(e){null==(n=(c=console).error)||n.call(c,e),i.suppressValidatorError||setTimeout(function(){throw e},0),h(e.message)}!0===o?h():!1===o?h("function"==typeof u.message?u.message(u.fullField||u.field):u.message||"".concat(u.fullField||u.field," fails")):o instanceof Array?h(o):o instanceof Error&&h(o.message)}o&&o.then&&o.then(function(){return h()},function(e){return h(e)})},function(e){for(var t=[],r={},o=0;o0)){e.next=23;break}return e.next=21,Promise.all(o.map(function(e,r){return en("".concat(t,".").concat(r),e,f,i,c)}));case 21:return v=e.sent,e.abrupt("return",v.reduce(function(e,t){return[].concat((0,s.default)(e),(0,s.default)(t))},[]));case 23:return y=(0,l.default)((0,l.default)({},n),{},{name:t,enum:(n.enum||[]).join(", ")},c),b=g.map(function(e){return"string"==typeof e?function(e,t){return e.replace(/\\?\$\{\w+\}/g,function(e){return e.startsWith("\\")?e.slice(1):t[e.slice(2,-1)]})}(e,y):e}),e.abrupt("return",b);case 26:case"end":return e.stop()}},e,null,[[10,15]])}))).apply(this,arguments)}function ei(){return(ei=(0,i.default)((0,a.default)().mark(function e(t){return(0,a.default)().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(t).then(function(e){var t;return(t=[]).concat.apply(t,(0,s.default)(e))}));case 1:case"end":return e.stop()}},e)}))).apply(this,arguments)}function el(){return(el=(0,i.default)((0,a.default)().mark(function e(t){var r;return(0,a.default)().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=0,e.abrupt("return",new Promise(function(e){t.forEach(function(o){o.then(function(o){o.errors.length&&e([o]),(r+=1)===t.length&&e([])})})}));case 2:case"end":return e.stop()}},e)}))).apply(this,arguments)}var es=e.i(657791);function ec(e){return C(e)}function eu(e,t){var r={};return t.forEach(function(t){var o=(0,es.default)(e,t);r=(0,er.default)(r,t,o)}),r}function ed(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return e&&e.some(function(e){return ef(t,e,r)})}function ef(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return!!e&&!!t&&(!!r||e.length===t.length)&&t.every(function(t,r){return e[r]===t})}function ep(e){var t=arguments.length<=1?void 0:arguments[1];return t&&t.target&&"object"===(0,x.default)(t.target)&&e in t.target?t.target[e]:t}function eh(e,t,r){var o=e.length;if(t<0||t>=o||r<0||r>=o)return e;var n=e[t],a=t-r;return a>0?[].concat((0,s.default)(e.slice(0,r)),[n],(0,s.default)(e.slice(r,t)),(0,s.default)(e.slice(t+1,o))):a<0?[].concat((0,s.default)(e.slice(0,t)),(0,s.default)(e.slice(t+1,r+1)),[n],(0,s.default)(e.slice(r+1,o))):e}var em=es,eg=["name"],ev=[];function ey(e,t,r,o,n,a){return"function"==typeof e?e(t,r,"source"in a?{source:a.source}:{}):o!==n}var eb=function(e){(0,f.default)(o,e);var t=(0,p.default)(o);function o(e){var n;return(0,c.default)(this,o),n=t.call(this,e),(0,h.default)((0,d.default)(n),"state",{resetCount:0}),(0,h.default)((0,d.default)(n),"cancelRegisterFunc",null),(0,h.default)((0,d.default)(n),"mounted",!1),(0,h.default)((0,d.default)(n),"touched",!1),(0,h.default)((0,d.default)(n),"dirty",!1),(0,h.default)((0,d.default)(n),"validatePromise",void 0),(0,h.default)((0,d.default)(n),"prevValidating",void 0),(0,h.default)((0,d.default)(n),"errors",ev),(0,h.default)((0,d.default)(n),"warnings",ev),(0,h.default)((0,d.default)(n),"cancelRegister",function(){var e=n.props,t=e.preserve,r=e.isListField,o=e.name;n.cancelRegisterFunc&&n.cancelRegisterFunc(r,t,ec(o)),n.cancelRegisterFunc=null}),(0,h.default)((0,d.default)(n),"getNamePath",function(){var e=n.props,t=e.name,r=e.fieldContext.prefixName;return void 0!==t?[].concat((0,s.default)(void 0===r?[]:r),(0,s.default)(t)):[]}),(0,h.default)((0,d.default)(n),"getRules",function(){var e=n.props,t=e.rules,r=e.fieldContext;return(void 0===t?[]:t).map(function(e){return"function"==typeof e?e(r):e})}),(0,h.default)((0,d.default)(n),"refresh",function(){n.mounted&&n.setState(function(e){return{resetCount:e.resetCount+1}})}),(0,h.default)((0,d.default)(n),"metaCache",null),(0,h.default)((0,d.default)(n),"triggerMetaEvent",function(e){var t=n.props.onMetaChange;if(t){var r=(0,l.default)((0,l.default)({},n.getMeta()),{},{destroy:e});(0,g.default)(n.metaCache,r)||t(r),n.metaCache=r}else n.metaCache=null}),(0,h.default)((0,d.default)(n),"onStoreChange",function(e,t,r){var o=n.props,a=o.shouldUpdate,i=o.dependencies,l=void 0===i?[]:i,s=o.onReset,c=r.store,u=n.getNamePath(),d=n.getValue(e),f=n.getValue(c),p=t&&ed(t,u);switch("valueUpdate"===r.type&&"external"===r.source&&!(0,g.default)(d,f)&&(n.touched=!0,n.dirty=!0,n.validatePromise=null,n.errors=ev,n.warnings=ev,n.triggerMetaEvent()),r.type){case"reset":if(!t||p){n.touched=!1,n.dirty=!1,n.validatePromise=void 0,n.errors=ev,n.warnings=ev,n.triggerMetaEvent(),null==s||s(),n.refresh();return}break;case"remove":if(a&&ey(a,e,c,d,f,r))return void n.reRender();break;case"setField":var h=r.data;if(p){"touched"in h&&(n.touched=h.touched),"validating"in h&&!("originRCField"in h)&&(n.validatePromise=h.validating?Promise.resolve([]):null),"errors"in h&&(n.errors=h.errors||ev),"warnings"in h&&(n.warnings=h.warnings||ev),n.dirty=!0,n.triggerMetaEvent(),n.reRender();return}if("value"in h&&ed(t,u,!0)||a&&!u.length&&ey(a,e,c,d,f,r))return void n.reRender();break;case"dependenciesUpdate":if(l.map(ec).some(function(e){return ed(r.relatedFields,e)}))return void n.reRender();break;default:if(p||(!l.length||u.length||a)&&ey(a,e,c,d,f,r))return void n.reRender()}!0===a&&n.reRender()}),(0,h.default)((0,d.default)(n),"validateRules",function(e){var t=n.getNamePath(),r=n.getValue(),o=e||{},c=o.triggerName,u=o.validateOnly,d=Promise.resolve().then((0,i.default)((0,a.default)().mark(function o(){var u,f,p,h,m,g,y;return(0,a.default)().wrap(function(o){for(;;)switch(o.prev=o.next){case 0:if(n.mounted){o.next=2;break}return o.abrupt("return",[]);case 2:if(p=void 0!==(f=(u=n.props).validateFirst)&&f,h=u.messageVariables,m=u.validateDebounce,g=n.getRules(),c&&(g=g.filter(function(e){return e}).filter(function(e){var t=e.validateTrigger;return!t||C(t).includes(c)})),!(m&&c)){o.next=10;break}return o.next=8,new Promise(function(e){setTimeout(e,m)});case 8:if(n.validatePromise===d){o.next=10;break}return o.abrupt("return",[]);case 10:return(y=function(e,t,r,o,n,s){var c,u,d=e.join("."),f=r.map(function(e,t){var r=e.validator,o=(0,l.default)((0,l.default)({},e),{},{ruleIndex:t});return r&&(o.validator=function(e,t,o){var n=!1,a=r(e,t,function(){for(var e=arguments.length,t=Array(e),r=0;r0&&void 0!==arguments[0]?arguments[0]:ev;if(n.validatePromise===d){n.validatePromise=null;var t,r=[],o=[];null==(t=e.forEach)||t.call(e,function(e){var t=e.rule.warningOnly,n=e.errors,a=void 0===n?ev:n;t?o.push.apply(o,(0,s.default)(a)):r.push.apply(r,(0,s.default)(a))}),n.errors=r,n.warnings=o,n.triggerMetaEvent(),n.reRender()}}),o.abrupt("return",y);case 13:case"end":return o.stop()}},o)})));return void 0!==u&&u||(n.validatePromise=d,n.dirty=!0,n.errors=ev,n.warnings=ev,n.triggerMetaEvent(),n.reRender()),d}),(0,h.default)((0,d.default)(n),"isFieldValidating",function(){return!!n.validatePromise}),(0,h.default)((0,d.default)(n),"isFieldTouched",function(){return n.touched}),(0,h.default)((0,d.default)(n),"isFieldDirty",function(){return!!n.dirty||void 0!==n.props.initialValue||void 0!==(0,n.props.fieldContext.getInternalHooks(y).getInitialValue)(n.getNamePath())}),(0,h.default)((0,d.default)(n),"getErrors",function(){return n.errors}),(0,h.default)((0,d.default)(n),"getWarnings",function(){return n.warnings}),(0,h.default)((0,d.default)(n),"isListField",function(){return n.props.isListField}),(0,h.default)((0,d.default)(n),"isList",function(){return n.props.isList}),(0,h.default)((0,d.default)(n),"isPreserve",function(){return n.props.preserve}),(0,h.default)((0,d.default)(n),"getMeta",function(){return n.prevValidating=n.isFieldValidating(),{touched:n.isFieldTouched(),validating:n.prevValidating,errors:n.errors,warnings:n.warnings,name:n.getNamePath(),validated:null===n.validatePromise}}),(0,h.default)((0,d.default)(n),"getOnlyChild",function(e){if("function"==typeof e){var t=n.getMeta();return(0,l.default)((0,l.default)({},n.getOnlyChild(e(n.getControlled(),t,n.props.fieldContext))),{},{isFunction:!0})}var o=(0,m.default)(e);return 1===o.length&&r.isValidElement(o[0])?{child:o[0],isFunction:!1}:{child:o,isFunction:!1}}),(0,h.default)((0,d.default)(n),"getValue",function(e){var t=n.props.fieldContext.getFieldsValue,r=n.getNamePath();return(0,em.default)(e||t(!0),r)}),(0,h.default)((0,d.default)(n),"getControlled",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=n.props,r=t.name,o=t.trigger,a=t.validateTrigger,i=t.getValueFromEvent,s=t.normalize,c=t.valuePropName,u=t.getValueProps,d=t.fieldContext,f=void 0!==a?a:d.validateTrigger,p=n.getNamePath(),m=d.getInternalHooks,g=d.getFieldsValue,v=m(y).dispatch,b=n.getValue(),w=u||function(e){return(0,h.default)({},c,e)},$=e[o],x=void 0!==r?w(b):{},E=(0,l.default)((0,l.default)({},e),x);return E[o]=function(){n.touched=!0,n.dirty=!0,n.triggerMetaEvent();for(var e,t=arguments.length,r=Array(t),o=0;o=0&&t<=r.length?(f.keys=[].concat((0,s.default)(f.keys.slice(0,t)),[f.id],(0,s.default)(f.keys.slice(t))),o([].concat((0,s.default)(r.slice(0,t)),[e],(0,s.default)(r.slice(t))))):(f.keys=[].concat((0,s.default)(f.keys),[f.id]),o([].concat((0,s.default)(r),[e]))),f.id+=1},remove:function(e){var t=i(),r=new Set(Array.isArray(e)?e:[e]);r.size<=0||(f.keys=f.keys.filter(function(e,t){return!r.has(t)}),o(t.filter(function(e,t){return!r.has(t)})))},move:function(e,t){if(e!==t){var r=i();e<0||e>=r.length||t<0||t>=r.length||(f.keys=eh(f.keys,e,t),o(eh(r,e,t)))}}},t)})))};e.s(["default",0,e$],197091);var eC=e.i(392221),ex="__@field_split__";function eE(e){return e.map(function(e){return"".concat((0,x.default)(e),":").concat(e)}).join(ex)}var eS=function(){function e(){(0,c.default)(this,e),(0,h.default)(this,"kvs",new Map)}return(0,u.default)(e,[{key:"set",value:function(e,t){this.kvs.set(eE(e),t)}},{key:"get",value:function(e){return this.kvs.get(eE(e))}},{key:"update",value:function(e,t){var r=t(this.get(e));r?this.set(e,r):this.delete(e)}},{key:"delete",value:function(e){this.kvs.delete(eE(e))}},{key:"map",value:function(e){return(0,s.default)(this.kvs.entries()).map(function(t){var r=(0,eC.default)(t,2),o=r[0],n=r[1];return e({key:o.split(ex).map(function(e){var t=e.match(/^([^:]*):(.*)$/),r=(0,eC.default)(t,3),o=r[1],n=r[2];return"number"===o?Number(n):n}),value:n})})}},{key:"toJSON",value:function(){var e={};return this.map(function(t){var r=t.key,o=t.value;return e[r.join(".")]=o,null}),e}}]),e}(),em=es,ek=["name"],ej=(0,u.default)(function e(t){var r=this;(0,c.default)(this,e),(0,h.default)(this,"formHooked",!1),(0,h.default)(this,"forceRootUpdate",void 0),(0,h.default)(this,"subscribable",!0),(0,h.default)(this,"store",{}),(0,h.default)(this,"fieldEntities",[]),(0,h.default)(this,"initialValues",{}),(0,h.default)(this,"callbacks",{}),(0,h.default)(this,"validateMessages",null),(0,h.default)(this,"preserve",null),(0,h.default)(this,"lastValidatePromise",null),(0,h.default)(this,"getForm",function(){return{getFieldValue:r.getFieldValue,getFieldsValue:r.getFieldsValue,getFieldError:r.getFieldError,getFieldWarning:r.getFieldWarning,getFieldsError:r.getFieldsError,isFieldsTouched:r.isFieldsTouched,isFieldTouched:r.isFieldTouched,isFieldValidating:r.isFieldValidating,isFieldsValidating:r.isFieldsValidating,resetFields:r.resetFields,setFields:r.setFields,setFieldValue:r.setFieldValue,setFieldsValue:r.setFieldsValue,validateFields:r.validateFields,submit:r.submit,_init:!0,getInternalHooks:r.getInternalHooks}}),(0,h.default)(this,"getInternalHooks",function(e){return e===y?(r.formHooked=!0,{dispatch:r.dispatch,initEntityValue:r.initEntityValue,registerField:r.registerField,useSubscribe:r.useSubscribe,setInitialValues:r.setInitialValues,destroyForm:r.destroyForm,setCallbacks:r.setCallbacks,setValidateMessages:r.setValidateMessages,getFields:r.getFields,setPreserve:r.setPreserve,getInitialValue:r.getInitialValue,registerWatch:r.registerWatch}):((0,v.default)(!1,"`getInternalHooks` is internal usage. Should not call directly."),null)}),(0,h.default)(this,"useSubscribe",function(e){r.subscribable=e}),(0,h.default)(this,"prevWithoutPreserves",null),(0,h.default)(this,"setInitialValues",function(e,t){if(r.initialValues=e||{},t){var o,n=(0,er.merge)(e,r.store);null==(o=r.prevWithoutPreserves)||o.map(function(t){var r=t.key;n=(0,er.default)(n,r,(0,em.default)(e,r))}),r.prevWithoutPreserves=null,r.updateStore(n)}}),(0,h.default)(this,"destroyForm",function(e){if(e)r.updateStore({});else{var t=new eS;r.getFieldEntities(!0).forEach(function(e){r.isMergedPreserve(e.isPreserve())||t.set(e.getNamePath(),!0)}),r.prevWithoutPreserves=t}}),(0,h.default)(this,"getInitialValue",function(e){var t=(0,em.default)(r.initialValues,e);return e.length?(0,er.merge)(t):t}),(0,h.default)(this,"setCallbacks",function(e){r.callbacks=e}),(0,h.default)(this,"setValidateMessages",function(e){r.validateMessages=e}),(0,h.default)(this,"setPreserve",function(e){r.preserve=e}),(0,h.default)(this,"watchList",[]),(0,h.default)(this,"registerWatch",function(e){return r.watchList.push(e),function(){r.watchList=r.watchList.filter(function(t){return t!==e})}}),(0,h.default)(this,"notifyWatch",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(r.watchList.length){var t=r.getFieldsValue(),o=r.getFieldsValue(!0);r.watchList.forEach(function(r){r(t,o,e)})}}),(0,h.default)(this,"timeoutId",null),(0,h.default)(this,"warningUnhooked",function(){}),(0,h.default)(this,"updateStore",function(e){r.store=e}),(0,h.default)(this,"getFieldEntities",function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return e?r.fieldEntities.filter(function(e){return e.getNamePath().length}):r.fieldEntities}),(0,h.default)(this,"getFieldsMap",function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=new eS;return r.getFieldEntities(e).forEach(function(e){var r=e.getNamePath();t.set(r,e)}),t}),(0,h.default)(this,"getFieldEntitiesForNamePathList",function(e){if(!e)return r.getFieldEntities(!0);var t=r.getFieldsMap(!0);return e.map(function(e){var r=ec(e);return t.get(r)||{INVALIDATE_NAME_PATH:ec(e)}})}),(0,h.default)(this,"getFieldsValue",function(e,t){if(r.warningUnhooked(),!0===e||Array.isArray(e)?(o=e,n=t):e&&"object"===(0,x.default)(e)&&(a=e.strict,n=e.filter),!0===o&&!n)return r.store;var o,n,a,i=r.getFieldEntitiesForNamePathList(Array.isArray(o)?o:null),l=[];return i.forEach(function(e){var t,r,i,s="INVALIDATE_NAME_PATH"in e?e.INVALIDATE_NAME_PATH:e.getNamePath();if(a){if(null!=(i=e.isList)&&i.call(e))return}else if(!o&&null!=(t=(r=e).isListField)&&t.call(r))return;if(n){var c="getMeta"in e?e.getMeta():null;n(c)&&l.push(s)}else l.push(s)}),eu(r.store,l.map(ec))}),(0,h.default)(this,"getFieldValue",function(e){r.warningUnhooked();var t=ec(e);return(0,em.default)(r.store,t)}),(0,h.default)(this,"getFieldsError",function(e){return r.warningUnhooked(),r.getFieldEntitiesForNamePathList(e).map(function(t,r){return!t||"INVALIDATE_NAME_PATH"in t?{name:ec(e[r]),errors:[],warnings:[]}:{name:t.getNamePath(),errors:t.getErrors(),warnings:t.getWarnings()}})}),(0,h.default)(this,"getFieldError",function(e){r.warningUnhooked();var t=ec(e);return r.getFieldsError([t])[0].errors}),(0,h.default)(this,"getFieldWarning",function(e){r.warningUnhooked();var t=ec(e);return r.getFieldsError([t])[0].warnings}),(0,h.default)(this,"isFieldsTouched",function(){r.warningUnhooked();for(var e,t=arguments.length,o=Array(t),n=0;n0&&void 0!==arguments[0]?arguments[0]:{},o=new eS,n=r.getFieldEntities(!0);n.forEach(function(e){var t=e.props.initialValue,r=e.getNamePath();if(void 0!==t){var n=o.get(r)||new Set;n.add({entity:e,value:t}),o.set(r,n)}}),t.entities?e=t.entities:t.namePathList?(e=[],t.namePathList.forEach(function(t){var r,n=o.get(t);n&&(r=e).push.apply(r,(0,s.default)((0,s.default)(n).map(function(e){return e.entity})))})):e=n,e.forEach(function(e){if(void 0!==e.props.initialValue){var n=e.getNamePath();if(void 0!==r.getInitialValue(n))(0,v.default)(!1,"Form already set 'initialValues' with path '".concat(n.join("."),"'. Field can not overwrite it."));else{var a=o.get(n);if(a&&a.size>1)(0,v.default)(!1,"Multiple Field with path '".concat(n.join("."),"' set 'initialValue'. Can not decide which one to pick."));else if(a){var i=r.getFieldValue(n);e.isListField()||t.skipExist&&void 0!==i||r.updateStore((0,er.default)(r.store,n,(0,s.default)(a)[0].value))}}}})}),(0,h.default)(this,"resetFields",function(e){r.warningUnhooked();var t=r.store;if(!e){r.updateStore((0,er.merge)(r.initialValues)),r.resetWithFieldInitialValue(),r.notifyObservers(t,null,{type:"reset"}),r.notifyWatch();return}var o=e.map(ec);o.forEach(function(e){var t=r.getInitialValue(e);r.updateStore((0,er.default)(r.store,e,t))}),r.resetWithFieldInitialValue({namePathList:o}),r.notifyObservers(t,o,{type:"reset"}),r.notifyWatch(o)}),(0,h.default)(this,"setFields",function(e){r.warningUnhooked();var t=r.store,o=[];e.forEach(function(e){var a=e.name,i=(0,n.default)(e,ek),l=ec(a);o.push(l),"value"in i&&r.updateStore((0,er.default)(r.store,l,i.value)),r.notifyObservers(t,[l],{type:"setField",data:e})}),r.notifyWatch(o)}),(0,h.default)(this,"getFields",function(){return r.getFieldEntities(!0).map(function(e){var t=e.getNamePath(),o=e.getMeta(),n=(0,l.default)((0,l.default)({},o),{},{name:t,value:r.getFieldValue(t)});return Object.defineProperty(n,"originRCField",{value:!0}),n})}),(0,h.default)(this,"initEntityValue",function(e){var t=e.props.initialValue;if(void 0!==t){var o=e.getNamePath();void 0===(0,em.default)(r.store,o)&&r.updateStore((0,er.default)(r.store,o,t))}}),(0,h.default)(this,"isMergedPreserve",function(e){var t=void 0!==e?e:r.preserve;return null==t||t}),(0,h.default)(this,"registerField",function(e){r.fieldEntities.push(e);var t=e.getNamePath();if(r.notifyWatch([t]),void 0!==e.props.initialValue){var o=r.store;r.resetWithFieldInitialValue({entities:[e],skipExist:!0}),r.notifyObservers(o,[e.getNamePath()],{type:"valueUpdate",source:"internal"})}return function(o,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(r.fieldEntities=r.fieldEntities.filter(function(t){return t!==e}),!r.isMergedPreserve(n)&&(!o||a.length>1)){var i=o?void 0:r.getInitialValue(t);if(t.length&&r.getFieldValue(t)!==i&&r.fieldEntities.every(function(e){return!ef(e.getNamePath(),t)})){var l=r.store;r.updateStore((0,er.default)(l,t,i,!0)),r.notifyObservers(l,[t],{type:"remove"}),r.triggerDependenciesUpdate(l,t)}}r.notifyWatch([t])}}),(0,h.default)(this,"dispatch",function(e){switch(e.type){case"updateValue":var t=e.namePath,o=e.value;r.updateValue(t,o);break;case"validateField":var n=e.namePath,a=e.triggerName;r.validateFields([n],{triggerName:a})}}),(0,h.default)(this,"notifyObservers",function(e,t,o){if(r.subscribable){var n=(0,l.default)((0,l.default)({},o),{},{store:r.getFieldsValue(!0)});r.getFieldEntities().forEach(function(r){(0,r.onStoreChange)(e,t,n)})}else r.forceRootUpdate()}),(0,h.default)(this,"triggerDependenciesUpdate",function(e,t){var o=r.getDependencyChildrenFields(t);return o.length&&r.validateFields(o),r.notifyObservers(e,o,{type:"dependenciesUpdate",relatedFields:[t].concat((0,s.default)(o))}),o}),(0,h.default)(this,"updateValue",function(e,t){var o=ec(e),n=r.store;r.updateStore((0,er.default)(r.store,o,t)),r.notifyObservers(n,[o],{type:"valueUpdate",source:"internal"}),r.notifyWatch([o]);var a=r.triggerDependenciesUpdate(n,o),i=r.callbacks.onValuesChange;i&&i(eu(r.store,[o]),r.getFieldsValue()),r.triggerOnFieldsChange([o].concat((0,s.default)(a)))}),(0,h.default)(this,"setFieldsValue",function(e){r.warningUnhooked();var t=r.store;if(e){var o=(0,er.merge)(r.store,e);r.updateStore(o)}r.notifyObservers(t,null,{type:"valueUpdate",source:"external"}),r.notifyWatch()}),(0,h.default)(this,"setFieldValue",function(e,t){r.setFields([{name:e,value:t,errors:[],warnings:[]}])}),(0,h.default)(this,"getDependencyChildrenFields",function(e){var t=new Set,o=[],n=new eS;return r.getFieldEntities().forEach(function(e){(e.props.dependencies||[]).forEach(function(t){var r=ec(t);n.update(r,function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Set;return t.add(e),t})})}),!function e(r){(n.get(r)||new Set).forEach(function(r){if(!t.has(r)){t.add(r);var n=r.getNamePath();r.isFieldDirty()&&n.length&&(o.push(n),e(n))}})}(e),o}),(0,h.default)(this,"triggerOnFieldsChange",function(e,t){var o=r.callbacks.onFieldsChange;if(o){var n=r.getFields();if(t){var a=new eS;t.forEach(function(e){var t=e.name,r=e.errors;a.set(t,r)}),n.forEach(function(e){e.errors=a.get(e.name)||e.errors})}var i=n.filter(function(t){return ed(e,t.name)});i.length&&o(i,n)}}),(0,h.default)(this,"validateFields",function(e,t){r.warningUnhooked(),Array.isArray(e)||"string"==typeof e||"string"==typeof t?(i=e,c=t):c=e;var o,n,a,i,c,u=!!i,d=u?i.map(ec):[],f=[],p=String(Date.now()),h=new Set,m=c||{},g=m.recursive,v=m.dirty;r.getFieldEntities(!0).forEach(function(e){if((u||d.push(e.getNamePath()),e.props.rules&&e.props.rules.length)&&(!v||e.isFieldDirty())){var t=e.getNamePath();if(h.add(t.join(p)),!u||ed(d,t,g)){var o=e.validateRules((0,l.default)({validateMessages:(0,l.default)((0,l.default)({},et),r.validateMessages)},c));f.push(o.then(function(){return{name:t,errors:[],warnings:[]}}).catch(function(e){var r,o=[],n=[];return(null==(r=e.forEach)||r.call(e,function(e){var t=e.rule.warningOnly,r=e.errors;t?n.push.apply(n,(0,s.default)(r)):o.push.apply(o,(0,s.default)(r))}),o.length)?Promise.reject({name:t,errors:o,warnings:n}):{name:t,errors:o,warnings:n}}))}}});var y=(o=!1,n=f.length,a=[],f.length?new Promise(function(e,t){f.forEach(function(r,i){r.catch(function(e){return o=!0,e}).then(function(r){n-=1,a[i]=r,n>0||(o&&t(a),e(a))})})}):Promise.resolve([]));r.lastValidatePromise=y,y.catch(function(e){return e}).then(function(e){var t=e.map(function(e){return e.name});r.notifyObservers(r.store,t,{type:"validateFinish"}),r.triggerOnFieldsChange(t,e)});var b=y.then(function(){return r.lastValidatePromise===y?Promise.resolve(r.getFieldsValue(d)):Promise.reject([])}).catch(function(e){var t=e.filter(function(e){return e&&e.errors.length});return Promise.reject({values:r.getFieldsValue(d),errorFields:t,outOfDate:r.lastValidatePromise!==y})});b.catch(function(e){return e});var w=d.filter(function(e){return h.has(e.join(p))});return r.triggerOnFieldsChange(w),b}),(0,h.default)(this,"submit",function(){r.warningUnhooked(),r.validateFields().then(function(e){var t=r.callbacks.onFinish;if(t)try{t(e)}catch(e){console.error(e)}}).catch(function(e){var t=r.callbacks.onFinishFailed;t&&t(e)})}),this.forceRootUpdate=t});let eO=function(e){var t=r.useRef(),o=r.useState({}),n=(0,eC.default)(o,2)[1];return t.current||(e?t.current=e:t.current=new ej(function(){n({})}).getForm()),[t.current]};e.s(["default",0,eO],787894);var eT=r.createContext({triggerFormChange:function(){},triggerFormFinish:function(){},registerForm:function(){},unregisterForm:function(){}}),eI=function(e){var t=e.validateMessages,o=e.onFormChange,n=e.onFormFinish,a=e.children,i=r.useContext(eT),s=r.useRef({});return r.createElement(eT.Provider,{value:(0,l.default)((0,l.default)({},i),{},{validateMessages:(0,l.default)((0,l.default)({},i.validateMessages),t),triggerFormChange:function(e,t){o&&o(e,{changedFields:t,forms:s.current}),i.triggerFormChange(e,t)},triggerFormFinish:function(e,t){n&&n(e,{values:t,forms:s.current}),i.triggerFormFinish(e,t)},registerForm:function(e,t){e&&(s.current=(0,l.default)((0,l.default)({},s.current),{},(0,h.default)({},e,t))),i.registerForm(e,t)},unregisterForm:function(e){var t=(0,l.default)({},s.current);delete t[e],s.current=t,i.unregisterForm(e)}})},a)};e.s(["FormProvider",0,eI,"default",0,eT],696752);var e_=["name","initialValues","fields","form","preserve","children","component","validateMessages","validateTrigger","onValuesChange","onFieldsChange","onFinish","onFinishFailed","clearOnDestroy"],em=es;function eF(e){try{return JSON.stringify(e)}catch(e){return Math.random()}}var eP=function(){};let eR=function(){for(var e=arguments.length,t=Array(e),o=0;o1?t-1:0),o=1;o{"use strict";e.s(["default",0,function(e,t){var r=Object.assign({},e);return Array.isArray(t)&&t.forEach(function(e){delete r[e]}),r}])},62139,e=>{"use strict";var t=e.i(271645);e.i(495347);var r=e.i(696752),o=e.i(529681);let n=t.createContext({labelAlign:"right",layout:"horizontal",itemRef:()=>{}}),a=t.createContext(null),i=t.createContext({prefixCls:""}),l=t.createContext({}),s=t.createContext(void 0);e.s(["FormContext",0,n,"FormItemInputContext",0,l,"FormItemPrefixContext",0,i,"FormProvider",0,e=>{let n=(0,o.default)(e,["prefixCls"]);return t.createElement(r.FormProvider,Object.assign({},n))},"NoFormStyle",0,({children:e,status:r,override:o})=>{let n=t.useContext(l),a=t.useMemo(()=>{let e=Object.assign({},n);return o&&delete e.isFormItemInput,r&&(delete e.status,delete e.hasFeedback,delete e.feedbackIcon),e},[r,o,n]);return t.createElement(l.Provider,{value:a},e)},"NoStyleItemContext",0,a,"VariantContext",0,s])},613541,e=>{"use strict";var t=e.i(242064);let r=()=>({height:0,opacity:0}),o=e=>{let{scrollHeight:t}=e;return{height:t,opacity:1}},n=e=>({height:e?e.offsetHeight:0}),a=(e,t)=>(null==t?void 0:t.deadline)===!0||"height"===t.propertyName;e.s(["default",0,(e=t.defaultPrefixCls)=>({motionName:`${e}-motion-collapse`,onAppearStart:r,onEnterStart:r,onAppearActive:o,onEnterActive:o,onLeaveStart:n,onLeaveActive:r,onAppearEnd:a,onEnterEnd:a,onLeaveEnd:a,motionDeadline:500}),"getTransitionName",0,(e,t,r)=>void 0!==r?r:`${e}-${t}`])},830919,e=>{"use strict";var t=e.i(271645);e.s(["default",0,function(e){let[r,o]=t.useState(e);return t.useEffect(()=>{let t=setTimeout(()=>{o(e)},10*!e.length);return()=>{clearTimeout(t)}},[e]),r}])},447580,e=>{"use strict";e.s(["genCollapseMotion",0,e=>({[e.componentCls]:{[`${e.antCls}-motion-collapse-legacy`]:{overflow:"hidden","&-active":{transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}},[`${e.antCls}-motion-collapse`]:{overflow:"hidden",transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}}})],447580)},402366,e=>{"use strict";e.s(["initMotion",0,(e,t,r,o,n=!1)=>{let a=n?"&":"";return{[` ${a}${e}-enter, @@ -95,4 +95,4 @@ ${u}${d}topRight `]:{animationName:i.slideDownOut},"&-hidden":{display:"none"},[n]:Object.assign(Object.assign({},l(e)),{cursor:"pointer",transition:`background ${e.motionDurationSlow} ease`,borderRadius:e.borderRadiusSM,"&-group":{color:e.colorTextDescription,fontSize:e.fontSizeSM,cursor:"default"},"&-option":{display:"flex","&-content":Object.assign({flex:"auto"},t.textEllipsis),"&-state":{flex:"none",display:"flex",alignItems:"center"},[`&-active:not(${n}-option-disabled)`]:{backgroundColor:e.optionActiveBg},[`&-selected:not(${n}-option-disabled)`]:{color:e.optionSelectedColor,fontWeight:e.optionSelectedFontWeight,backgroundColor:e.optionSelectedBg,[`${n}-option-state`]:{color:e.colorPrimary}},"&-disabled":{[`&${n}-option-selected`]:{backgroundColor:e.colorBgContainerDisabled},color:e.colorTextDisabled,cursor:"not-allowed"},"&-grouped":{paddingInlineStart:e.calc(e.controlPaddingHorizontal).mul(2).equal()}},"&-empty":Object.assign(Object.assign({},l(e)),{color:e.colorTextDisabled})}),[`${f}:has(+ ${f})`]:{borderEndStartRadius:0,borderEndEndRadius:0,[`& + ${f}`]:{borderStartStartRadius:0,borderStartEndRadius:0}},"&-rtl":{direction:"rtl"}})},(0,i.initSlideMotion)(e,"slide-up"),(0,i.initSlideMotion)(e,"slide-down"),(0,a.initMoveMotion)(e,"move-up"),(0,a.initMoveMotion)(e,"move-down")]})(e),{[`${o}-rtl`]:{direction:"rtl"}},(0,r.genCompactItemStyle)(e,{borderElCls:`${o}-selector`,focusElCls:`${o}-focused`})]})(v),{[v.componentCls]:Object.assign(Object.assign(Object.assign(Object.assign({},{"&-outlined":Object.assign(Object.assign(Object.assign(Object.assign({},d(v,{borderColor:v.colorBorder,hoverBorderHover:v.hoverBorderColor,activeBorderColor:v.activeBorderColor,activeOutlineColor:v.activeOutlineColor,color:v.colorText})),f(v,{status:"error",borderColor:v.colorError,hoverBorderHover:v.colorErrorHover,activeBorderColor:v.colorError,activeOutlineColor:v.colorErrorOutline,color:v.colorError})),f(v,{status:"warning",borderColor:v.colorWarning,hoverBorderHover:v.colorWarningHover,activeBorderColor:v.colorWarning,activeOutlineColor:v.colorWarningOutline,color:v.colorWarning})),{[`&${v.componentCls}-disabled`]:{[`&:not(${v.componentCls}-customize-input) ${v.componentCls}-selector`]:{background:v.colorBgContainerDisabled,color:v.colorTextDisabled}},[`&${v.componentCls}-multiple ${v.componentCls}-selection-item`]:{background:v.multipleItemBg,border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} ${v.multipleItemBorderColor}`}})}),{"&-filled":Object.assign(Object.assign(Object.assign(Object.assign({},p(v,{bg:v.colorFillTertiary,hoverBg:v.colorFillSecondary,activeBorderColor:v.activeBorderColor,color:v.colorText})),h(v,{status:"error",bg:v.colorErrorBg,hoverBg:v.colorErrorBgHover,activeBorderColor:v.colorError,color:v.colorError})),h(v,{status:"warning",bg:v.colorWarningBg,hoverBg:v.colorWarningBgHover,activeBorderColor:v.colorWarning,color:v.colorWarning})),{[`&${v.componentCls}-disabled`]:{[`&:not(${v.componentCls}-customize-input) ${v.componentCls}-selector`]:{borderColor:v.colorBorder,background:v.colorBgContainerDisabled,color:v.colorTextDisabled}},[`&${v.componentCls}-multiple ${v.componentCls}-selection-item`]:{background:v.colorBgContainer,border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} ${v.colorSplit}`}})}),{"&-borderless":{[`${v.componentCls}-selector`]:{background:"transparent",border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} transparent`},[`&${v.componentCls}-disabled`]:{[`&:not(${v.componentCls}-customize-input) ${v.componentCls}-selector`]:{color:v.colorTextDisabled}},[`&${v.componentCls}-multiple ${v.componentCls}-selection-item`]:{background:v.multipleItemBg,border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} ${v.multipleItemBorderColor}`},[`&${v.componentCls}-status-error`]:{[`${v.componentCls}-prefix, ${v.componentCls}-selection-item`]:{color:v.colorError}},[`&${v.componentCls}-status-warning`]:{[`${v.componentCls}-prefix, ${v.componentCls}-selection-item`]:{color:v.colorWarning}}}}),{"&-underlined":Object.assign(Object.assign(Object.assign(Object.assign({},m(v,{borderColor:v.colorBorder,hoverBorderHover:v.hoverBorderColor,activeBorderColor:v.activeBorderColor,activeOutlineColor:v.activeOutlineColor,color:v.colorText})),g(v,{status:"error",borderColor:v.colorError,hoverBorderHover:v.colorErrorHover,activeBorderColor:v.colorError,activeOutlineColor:v.colorErrorOutline,color:v.colorError})),g(v,{status:"warning",borderColor:v.colorWarning,hoverBorderHover:v.colorWarningHover,activeBorderColor:v.colorWarning,activeOutlineColor:v.colorWarningOutline,color:v.colorWarning})),{[`&${v.componentCls}-disabled`]:{[`&:not(${v.componentCls}-customize-input) ${v.componentCls}-selector`]:{color:v.colorTextDisabled}},[`&${v.componentCls}-multiple ${v.componentCls}-selection-item`]:{background:v.multipleItemBg,border:`${(0,s.unit)(v.lineWidth)} ${v.lineType} ${v.multipleItemBorderColor}`}})})}]},e=>{let{fontSize:t,lineHeight:r,lineWidth:o,controlHeight:n,controlHeightSM:a,controlHeightLG:i,paddingXXS:l,controlPaddingHorizontal:s,zIndexPopupBase:c,colorText:u,fontWeightStrong:d,controlItemBgActive:f,controlItemBgHover:p,colorBgContainer:h,colorFillSecondary:m,colorBgContainerDisabled:g,colorTextDisabled:v,colorPrimaryHover:y,colorPrimary:b,controlOutline:w}=e,$=2*l,C=2*o,x=Math.min(n-$,n-C),E=Math.min(a-$,a-C),S=Math.min(i-$,i-C);return{INTERNAL_FIXED_ITEM_MARGIN:Math.floor(l/2),zIndexPopup:c+50,optionSelectedColor:u,optionSelectedFontWeight:d,optionSelectedBg:f,optionActiveBg:p,optionPadding:`${(n-t*r)/2}px ${s}px`,optionFontSize:t,optionLineHeight:r,optionHeight:n,selectorBg:h,clearBg:h,singleItemHeightLG:i,multipleItemBg:m,multipleItemBorderColor:"transparent",multipleItemHeight:x,multipleItemHeightSM:E,multipleItemHeightLG:S,multipleSelectorBgDisabled:g,multipleItemColorDisabled:v,multipleItemBorderColorDisabled:"transparent",showArrowPaddingInlineEnd:Math.ceil(1.25*e.fontSize),hoverBorderColor:y,activeBorderColor:b,activeOutlineColor:w,selectAffixPadding:l}},{unitless:{optionLineHeight:!0,optionSelectedFontWeight:!0}});e.s(["default",0,v],950302)},121229,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"}}]},name:"check",theme:"outlined"};var n=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(n.default,(0,t.default)({},e,{ref:a,icon:o}))});e.s(["default",0,a],121229)},729151,e=>{"use strict";var t=e.i(271645),r=e.i(121229),o=e.i(726289),n=e.i(864517),a=e.i(247153),i=e.i(739295),l=e.i(38953);e.s(["default",0,function({suffixIcon:e,clearIcon:s,menuItemSelectedIcon:c,removeIcon:u,loading:d,multiple:f,hasFeedback:p,prefixCls:h,showSuffixIcon:m,feedbackIcon:g,showArrow:v,componentName:y}){let b=null!=s?s:t.createElement(o.default,null),w=r=>null!==e||p||v?t.createElement(t.Fragment,null,!1!==m&&r,p&&g):null,$=null;if(void 0!==e)$=w(e);else if(d)$=w(t.createElement(i.default,{spin:!0}));else{let e=`${h}-suffix`;$=({open:r,showSearch:o})=>r&&o?w(t.createElement(l.default,{className:e})):w(t.createElement(a.default,{className:e}))}let C=null;C=void 0!==c?c:f?t.createElement(r.default,null):null;return{clearIcon:b,suffixIcon:$,itemIcon:C,removeIcon:void 0!==u?u:t.createElement(n.default,null)}}])},327494,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(123829),n=e.i(955492),a=e.i(869301),i=e.i(529681),l=e.i(122767),s=e.i(613541),c=e.i(805484),u=e.i(52956),d=e.i(242064),f=e.i(721132),p=e.i(937328),h=e.i(321883),m=e.i(517455),g=e.i(62139),v=e.i(792812),y=e.i(249616),b=e.i(104458),w=e.i(85566),$=e.i(950302),C=e.i(729151),x=e.i(617206),E=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let S="SECRET_COMBOBOX_MODE_DO_NOT_USE",k=t.forwardRef((e,n)=>{var a,c,k,j,O,T,I,_;let F,{prefixCls:P,bordered:R,className:N,rootClassName:M,getPopupContainer:B,popupClassName:A,dropdownClassName:z,listHeight:L=256,placement:D,listItemHeight:H,size:V,disabled:W,notFoundContent:U,status:G,builtinPlacements:q,dropdownMatchSelectWidth:J,popupMatchSelectWidth:K,direction:X,style:Q,allowClear:Y,variant:Z,dropdownStyle:ee,transitionName:et,tagRender:er,maxCount:eo,prefix:en,dropdownRender:ea,popupRender:ei,onDropdownVisibleChange:el,onOpenChange:es,styles:ec,classNames:eu}=e,ed=E(e,["prefixCls","bordered","className","rootClassName","getPopupContainer","popupClassName","dropdownClassName","listHeight","placement","listItemHeight","size","disabled","notFoundContent","status","builtinPlacements","dropdownMatchSelectWidth","popupMatchSelectWidth","direction","style","allowClear","variant","dropdownStyle","transitionName","tagRender","maxCount","prefix","dropdownRender","popupRender","onDropdownVisibleChange","onOpenChange","styles","classNames"]),{getPopupContainer:ef,getPrefixCls:ep,renderEmpty:eh,direction:em,virtual:eg,popupMatchSelectWidth:ev,popupOverflow:ey}=t.useContext(d.ConfigContext),{showSearch:eb,style:ew,styles:e$,className:eC,classNames:ex}=(0,d.useComponentConfig)("select"),[,eE]=(0,b.useToken)(),eS=null!=H?H:null==eE?void 0:eE.controlHeight,ek=ep("select",P),ej=ep(),eO=null!=X?X:em,{compactSize:eT,compactItemClassnames:eI}=(0,y.useCompactItemContext)(ek,eO),[e_,eF]=(0,v.default)("select",Z,R),eP=(0,h.default)(ek),[eR,eN,eM]=(0,$.default)(ek,eP),eB=t.useMemo(()=>{let{mode:t}=e;if("combobox"!==t)return t===S?"combobox":t},[e.mode]),eA="multiple"===eB||"tags"===eB,ez=(T=e.suffixIcon,void 0!==(I=e.showArrow)?I:null!==T),eL=null!=(a=null!=K?K:J)?a:ev,eD=(null==(c=null==ec?void 0:ec.popup)?void 0:c.root)||(null==(k=e$.popup)?void 0:k.root)||ee,eH=(_=ei||ea,t.default.useMemo(()=>{if(_)return(...e)=>t.default.createElement(x.default,{space:!0},_.apply(void 0,e))},[_])),{status:eV,hasFeedback:eW,isFormItemInput:eU,feedbackIcon:eG}=t.useContext(g.FormItemInputContext),eq=(0,u.getMergedStatus)(eV,G);F=void 0!==U?U:"combobox"===eB?null:(null==eh?void 0:eh("Select"))||t.createElement(f.default,{componentName:"Select"});let{suffixIcon:eJ,itemIcon:eK,removeIcon:eX,clearIcon:eQ}=(0,C.default)(Object.assign(Object.assign({},ed),{multiple:eA,hasFeedback:eW,feedbackIcon:eG,showSuffixIcon:ez,prefixCls:ek,componentName:"Select"})),eY=(0,i.default)(ed,["suffixIcon","itemIcon"]),eZ=(0,r.default)((null==(j=null==eu?void 0:eu.popup)?void 0:j.root)||(null==(O=null==ex?void 0:ex.popup)?void 0:O.root)||A||z,{[`${ek}-dropdown-${eO}`]:"rtl"===eO},M,ex.root,null==eu?void 0:eu.root,eM,eP,eN),e0=(0,m.default)(e=>{var t;return null!=(t=null!=V?V:eT)?t:e}),e1=t.useContext(p.default),e2=(0,r.default)({[`${ek}-lg`]:"large"===e0,[`${ek}-sm`]:"small"===e0,[`${ek}-rtl`]:"rtl"===eO,[`${ek}-${e_}`]:eF,[`${ek}-in-form-item`]:eU},(0,u.getStatusClassNames)(ek,eq,eW),eI,eC,N,ex.root,null==eu?void 0:eu.root,M,eM,eP,eN),e4=t.useMemo(()=>void 0!==D?D:"rtl"===eO?"bottomRight":"bottomLeft",[D,eO]),[e6]=(0,l.useZIndex)("SelectLike",null==eD?void 0:eD.zIndex);return eR(t.createElement(o.default,Object.assign({ref:n,virtual:eg,showSearch:eb},eY,{style:Object.assign(Object.assign(Object.assign(Object.assign({},e$.root),null==ec?void 0:ec.root),ew),Q),dropdownMatchSelectWidth:eL,transitionName:(0,s.getTransitionName)(ej,"slide-up",et),builtinPlacements:(0,w.default)(q,ey),listHeight:L,listItemHeight:eS,mode:eB,prefixCls:ek,placement:e4,direction:eO,prefix:en,suffixIcon:eJ,menuItemSelectedIcon:eK,removeIcon:eX,allowClear:!0===Y?{clearIcon:eQ}:Y,notFoundContent:F,className:e2,getPopupContainer:B||ef,dropdownClassName:eZ,disabled:null!=W?W:e1,dropdownStyle:Object.assign(Object.assign({},eD),{zIndex:e6}),maxCount:eA?eo:void 0,tagRender:eA?er:void 0,dropdownRender:eH,onDropdownVisibleChange:es||el})))}),j=(0,c.default)(k,"dropdownAlign");k.SECRET_COMBOBOX_MODE_DO_NOT_USE=S,k.Option=a.Option,k.OptGroup=n.OptGroup,k._InternalPanelDoNotUseOrYouWillBeFired=j,e.s(["default",0,k],327494)},199133,e=>{"use strict";var t=e.i(327494);e.s(["Select",()=>t.default])},290571,e=>{"use strict";"function"==typeof SuppressedError&&SuppressedError,e.s(["__rest",0,function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r}])},480731,e=>{"use strict";e.s(["BaseColors",0,{Slate:"slate",Gray:"gray",Zinc:"zinc",Neutral:"neutral",Stone:"stone",Red:"red",Orange:"orange",Amber:"amber",Yellow:"yellow",Lime:"lime",Green:"green",Emerald:"emerald",Teal:"teal",Cyan:"cyan",Sky:"sky",Blue:"blue",Indigo:"indigo",Violet:"violet",Purple:"purple",Fuchsia:"fuchsia",Pink:"pink",Rose:"rose"},"DeltaTypes",0,{Increase:"increase",ModerateIncrease:"moderateIncrease",Decrease:"decrease",ModerateDecrease:"moderateDecrease",Unchanged:"unchanged"},"HorizontalPositions",0,{Left:"left",Right:"right"},"Sizes",0,{XS:"xs",SM:"sm",MD:"md",LG:"lg",XL:"xl"},"VerticalPositions",0,{Top:"top",Bottom:"bottom"}])},673706,e=>{"use strict";e.i(480731);let t=["slate","gray","zinc","neutral","stone","red","orange","amber","yellow","lime","green","emerald","teal","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose"];e.s(["defaultValueFormatter",0,e=>e.toString(),"getColorClassNames",0,function(e,r){let o=t.includes(e);if("white"===e||"black"===e||"transparent"===e||!r||!o){let t=e.includes("#")||e.includes("--")||e.includes("rgb")?`[${e}]`:e;return{bgColor:`bg-${t} dark:bg-${t}`,hoverBgColor:`hover:bg-${t} dark:hover:bg-${t}`,selectBgColor:`data-[selected]:bg-${t} dark:data-[selected]:bg-${t}`,textColor:`text-${t} dark:text-${t}`,selectTextColor:`data-[selected]:text-${t} dark:data-[selected]:text-${t}`,hoverTextColor:`hover:text-${t} dark:hover:text-${t}`,borderColor:`border-${t} dark:border-${t}`,selectBorderColor:`data-[selected]:border-${t} dark:data-[selected]:border-${t}`,hoverBorderColor:`hover:border-${t} dark:hover:border-${t}`,ringColor:`ring-${t} dark:ring-${t}`,strokeColor:`stroke-${t} dark:stroke-${t}`,fillColor:`fill-${t} dark:fill-${t}`}}return{bgColor:`bg-${e}-${r} dark:bg-${e}-${r}`,selectBgColor:`data-[selected]:bg-${e}-${r} dark:data-[selected]:bg-${e}-${r}`,hoverBgColor:`hover:bg-${e}-${r} dark:hover:bg-${e}-${r}`,textColor:`text-${e}-${r} dark:text-${e}-${r}`,selectTextColor:`data-[selected]:text-${e}-${r} dark:data-[selected]:text-${e}-${r}`,hoverTextColor:`hover:text-${e}-${r} dark:hover:text-${e}-${r}`,borderColor:`border-${e}-${r} dark:border-${e}-${r}`,selectBorderColor:`data-[selected]:border-${e}-${r} dark:data-[selected]:border-${e}-${r}`,hoverBorderColor:`hover:border-${e}-${r} dark:hover:border-${e}-${r}`,ringColor:`ring-${e}-${r} dark:ring-${e}-${r}`,strokeColor:`stroke-${e}-${r} dark:stroke-${e}-${r}`,fillColor:`fill-${e}-${r} dark:fill-${e}-${r}`}},"isValueInArray",0,(e,t)=>{for(let r=0;r`tremor-${e}-${t}`},"mergeRefs",0,function(e){return t=>{e.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}},"sumNumericArray",0,e=>e.reduce((e,t)=>e+t,0)],673706)},689074,21243,98801,e=>{"use strict";var t=e.i(290571),r=e.i(271645);e.s(["default",0,e=>{var o=(0,t.__rest)(e,[]);return r.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},o),r.default.createElement("path",{d:"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM11 15V17H13V15H11ZM11 7V13H13V7H11Z"}))}],689074),e.s(["default",0,e=>{var o=(0,t.__rest)(e,[]);return r.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},o),r.default.createElement("path",{d:"M1.18164 12C2.12215 6.87976 6.60812 3 12.0003 3C17.3924 3 21.8784 6.87976 22.8189 12C21.8784 17.1202 17.3924 21 12.0003 21C6.60812 21 2.12215 17.1202 1.18164 12ZM12.0003 17C14.7617 17 17.0003 14.7614 17.0003 12C17.0003 9.23858 14.7617 7 12.0003 7C9.23884 7 7.00026 9.23858 7.00026 12C7.00026 14.7614 9.23884 17 12.0003 17ZM12.0003 15C10.3434 15 9.00026 13.6569 9.00026 12C9.00026 10.3431 10.3434 9 12.0003 9C13.6571 9 15.0003 10.3431 15.0003 12C15.0003 13.6569 13.6571 15 12.0003 15Z"}))}],21243),e.s(["default",0,e=>{var o=(0,t.__rest)(e,[]);return r.default.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},o),r.default.createElement("path",{d:"M4.52047 5.93457L1.39366 2.80777L2.80788 1.39355L22.6069 21.1925L21.1927 22.6068L17.8827 19.2968C16.1814 20.3755 14.1638 21.0002 12.0003 21.0002C6.60812 21.0002 2.12215 17.1204 1.18164 12.0002C1.61832 9.62282 2.81932 7.5129 4.52047 5.93457ZM14.7577 16.1718L13.2937 14.7078C12.902 14.8952 12.4634 15.0002 12.0003 15.0002C10.3434 15.0002 9.00026 13.657 9.00026 12.0002C9.00026 11.537 9.10522 11.0984 9.29263 10.7067L7.82866 9.24277C7.30514 10.0332 7.00026 10.9811 7.00026 12.0002C7.00026 14.7616 9.23884 17.0002 12.0003 17.0002C13.0193 17.0002 13.9672 16.6953 14.7577 16.1718ZM7.97446 3.76015C9.22127 3.26959 10.5793 3.00016 12.0003 3.00016C17.3924 3.00016 21.8784 6.87992 22.8189 12.0002C22.5067 13.6998 21.8038 15.2628 20.8068 16.5925L16.947 12.7327C16.9821 12.4936 17.0003 12.249 17.0003 12.0002C17.0003 9.23873 14.7617 7.00016 12.0003 7.00016C11.7514 7.00016 11.5068 7.01833 11.2677 7.05343L7.97446 3.76015Z"}))}],98801)},444755,e=>{"use strict";let t=(e,r)=>{if(0===e.length)return r.classGroupId;let o=e[0],n=r.nextPart.get(o),a=n?t(e.slice(1),n):void 0;if(a)return a;if(0===r.validators.length)return;let i=e.join("-");return r.validators.find(({validator:e})=>e(i))?.classGroupId},r=/^\[(.+)\]$/,o=(e,t,r,i)=>{e.forEach(e=>{if("string"==typeof e){(""===e?t:n(t,e)).classGroupId=r;return}"function"==typeof e?a(e)?o(e(i),t,r,i):t.validators.push({validator:e,classGroupId:r}):Object.entries(e).forEach(([e,a])=>{o(a,n(t,e),r,i)})})},n=(e,t)=>{let r=e;return t.split("-").forEach(e=>{r.nextPart.has(e)||r.nextPart.set(e,{nextPart:new Map,validators:[]}),r=r.nextPart.get(e)}),r},a=e=>e.isThemeGetter,i=(e,t)=>t?e.map(([e,r])=>[e,r.map(e=>"string"==typeof e?t+e:"object"==typeof e?Object.fromEntries(Object.entries(e).map(([e,r])=>[t+e,r])):e)]):e,l=e=>{if(e.length<=1)return e;let t=[],r=[];return e.forEach(e=>{"["===e[0]?(t.push(...r.sort(),e),r=[]):r.push(e)}),t.push(...r.sort()),t},s=/\s+/;function c(){let e,t,r=0,o="";for(;r{let t;if("string"==typeof e)return e;let r="";for(let o=0;o{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,r=new Map,o=new Map,n=(n,a)=>{r.set(n,a),++t>e&&(t=0,o=r,r=new Map)};return{get(e){let t=r.get(e);return void 0!==t?t:void 0!==(t=o.get(e))?(n(e,t),t):void 0},set(e,t){r.has(e)?r.set(e,t):n(e,t)}}})((s=n.reduce((e,t)=>t(e),e())).cacheSize),parseClassName:(e=>{let{separator:t,experimentalParseClassName:r}=e,o=1===t.length,n=t[0],a=t.length,i=e=>{let r,i=[],l=0,s=0;for(let c=0;cs?r-s:void 0}};return r?e=>r({className:e,parseClassName:i}):i})(s),...(e=>{let n=(e=>{let{theme:t,prefix:r}=e,n={nextPart:new Map,validators:[]};return i(Object.entries(e.classGroups),r).forEach(([e,r])=>{o(r,n,e,t)}),n})(e),{conflictingClassGroups:a,conflictingClassGroupModifiers:l}=e;return{getClassGroupId:e=>{let o=e.split("-");return""===o[0]&&1!==o.length&&o.shift(),t(o,n)||(e=>{if(r.test(e)){let t=r.exec(e)[1],o=t?.substring(0,t.indexOf(":"));if(o)return"arbitrary.."+o}})(e)},getConflictingClassGroupIds:(e,t)=>{let r=a[e]||[];return t&&l[e]?[...r,...l[e]]:r}}})(s)}).cache.get,f=a.cache.set,p=h,h(l)};function h(e){let t=u(e);if(t)return t;let r=((e,t)=>{let{parseClassName:r,getClassGroupId:o,getConflictingClassGroupIds:n}=t,a=[],i=e.trim().split(s),c="";for(let e=i.length-1;e>=0;e-=1){let t=i[e],{modifiers:s,hasImportantModifier:u,baseClassName:d,maybePostfixModifierPosition:f}=r(t),p=!!f,h=o(p?d.substring(0,f):d);if(!h){if(!p||!(h=o(d))){c=t+(c.length>0?" "+c:c);continue}p=!1}let m=l(s).join(":"),g=u?m+"!":m,v=g+h;if(a.includes(v))continue;a.push(v);let y=n(h,p);for(let e=0;e0?" "+c:c)}return c})(e,a);return f(e,r),r}return function(){return p(c.apply(null,arguments))}}let f=e=>{let t=t=>t[e]||[];return t.isThemeGetter=!0,t},p=/^\[(?:([a-z-]+):)?(.+)\]$/i,h=/^\d+\/\d+$/,m=new Set(["px","full","screen"]),g=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,v=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,y=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,b=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,w=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,$=e=>x(e)||m.has(e)||h.test(e),C=e=>M(e,"length",B),x=e=>!!e&&!Number.isNaN(Number(e)),E=e=>M(e,"number",x),S=e=>!!e&&Number.isInteger(Number(e)),k=e=>e.endsWith("%")&&x(e.slice(0,-1)),j=e=>p.test(e),O=e=>g.test(e),T=new Set(["length","size","percentage"]),I=e=>M(e,T,A),_=e=>M(e,"position",A),F=new Set(["image","url"]),P=e=>M(e,F,L),R=e=>M(e,"",z),N=()=>!0,M=(e,t,r)=>{let o=p.exec(e);return!!o&&(o[1]?"string"==typeof t?o[1]===t:t.has(o[1]):r(o[2]))},B=e=>v.test(e)&&!y.test(e),A=()=>!1,z=e=>b.test(e),L=e=>w.test(e),D=()=>{let e=f("colors"),t=f("spacing"),r=f("blur"),o=f("brightness"),n=f("borderColor"),a=f("borderRadius"),i=f("borderSpacing"),l=f("borderWidth"),s=f("contrast"),c=f("grayscale"),u=f("hueRotate"),d=f("invert"),p=f("gap"),h=f("gradientColorStops"),m=f("gradientColorStopPositions"),g=f("inset"),v=f("margin"),y=f("opacity"),b=f("padding"),w=f("saturate"),T=f("scale"),F=f("sepia"),M=f("skew"),B=f("space"),A=f("translate"),z=()=>["auto","contain","none"],L=()=>["auto","hidden","clip","visible","scroll"],D=()=>["auto",j,t],H=()=>[j,t],V=()=>["",$,C],W=()=>["auto",x,j],U=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],G=()=>["solid","dashed","dotted","double","none"],q=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],J=()=>["start","end","center","between","around","evenly","stretch"],K=()=>["","0",j],X=()=>["auto","avoid","all","avoid-page","page","left","right","column"],Q=()=>[x,j];return{cacheSize:500,separator:":",theme:{colors:[N],spacing:[$,C],blur:["none","",O,j],brightness:Q(),borderColor:[e],borderRadius:["none","","full",O,j],borderSpacing:H(),borderWidth:V(),contrast:Q(),grayscale:K(),hueRotate:Q(),invert:K(),gap:H(),gradientColorStops:[e],gradientColorStopPositions:[k,C],inset:D(),margin:D(),opacity:Q(),padding:H(),saturate:Q(),scale:Q(),sepia:K(),skew:Q(),space:H(),translate:H()},classGroups:{aspect:[{aspect:["auto","square","video",j]}],container:["container"],columns:[{columns:[O]}],"break-after":[{"break-after":X()}],"break-before":[{"break-before":X()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...U(),j]}],overflow:[{overflow:L()}],"overflow-x":[{"overflow-x":L()}],"overflow-y":[{"overflow-y":L()}],overscroll:[{overscroll:z()}],"overscroll-x":[{"overscroll-x":z()}],"overscroll-y":[{"overscroll-y":z()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[g]}],"inset-x":[{"inset-x":[g]}],"inset-y":[{"inset-y":[g]}],start:[{start:[g]}],end:[{end:[g]}],top:[{top:[g]}],right:[{right:[g]}],bottom:[{bottom:[g]}],left:[{left:[g]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",S,j]}],basis:[{basis:D()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",j]}],grow:[{grow:K()}],shrink:[{shrink:K()}],order:[{order:["first","last","none",S,j]}],"grid-cols":[{"grid-cols":[N]}],"col-start-end":[{col:["auto",{span:["full",S,j]},j]}],"col-start":[{"col-start":W()}],"col-end":[{"col-end":W()}],"grid-rows":[{"grid-rows":[N]}],"row-start-end":[{row:["auto",{span:[S,j]},j]}],"row-start":[{"row-start":W()}],"row-end":[{"row-end":W()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",j]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",j]}],gap:[{gap:[p]}],"gap-x":[{"gap-x":[p]}],"gap-y":[{"gap-y":[p]}],"justify-content":[{justify:["normal",...J()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...J(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...J(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[b]}],px:[{px:[b]}],py:[{py:[b]}],ps:[{ps:[b]}],pe:[{pe:[b]}],pt:[{pt:[b]}],pr:[{pr:[b]}],pb:[{pb:[b]}],pl:[{pl:[b]}],m:[{m:[v]}],mx:[{mx:[v]}],my:[{my:[v]}],ms:[{ms:[v]}],me:[{me:[v]}],mt:[{mt:[v]}],mr:[{mr:[v]}],mb:[{mb:[v]}],ml:[{ml:[v]}],"space-x":[{"space-x":[B]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[B]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",j,t]}],"min-w":[{"min-w":[j,t,"min","max","fit"]}],"max-w":[{"max-w":[j,t,"none","full","min","max","fit","prose",{screen:[O]},O]}],h:[{h:[j,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[j,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[j,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[j,t,"auto","min","max","fit"]}],"font-size":[{text:["base",O,C]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",E]}],"font-family":[{font:[N]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",j]}],"line-clamp":[{"line-clamp":["none",x,E]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",$,j]}],"list-image":[{"list-image":["none",j]}],"list-style-type":[{list:["none","disc","decimal",j]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[y]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[y]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...G(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",$,C]}],"underline-offset":[{"underline-offset":["auto",$,j]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:H()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",j]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",j]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[y]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...U(),_]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",I]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},P]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[h]}],"gradient-via":[{via:[h]}],"gradient-to":[{to:[h]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[l]}],"border-w-x":[{"border-x":[l]}],"border-w-y":[{"border-y":[l]}],"border-w-s":[{"border-s":[l]}],"border-w-e":[{"border-e":[l]}],"border-w-t":[{"border-t":[l]}],"border-w-r":[{"border-r":[l]}],"border-w-b":[{"border-b":[l]}],"border-w-l":[{"border-l":[l]}],"border-opacity":[{"border-opacity":[y]}],"border-style":[{border:[...G(),"hidden"]}],"divide-x":[{"divide-x":[l]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[l]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[y]}],"divide-style":[{divide:G()}],"border-color":[{border:[n]}],"border-color-x":[{"border-x":[n]}],"border-color-y":[{"border-y":[n]}],"border-color-s":[{"border-s":[n]}],"border-color-e":[{"border-e":[n]}],"border-color-t":[{"border-t":[n]}],"border-color-r":[{"border-r":[n]}],"border-color-b":[{"border-b":[n]}],"border-color-l":[{"border-l":[n]}],"divide-color":[{divide:[n]}],"outline-style":[{outline:["",...G()]}],"outline-offset":[{"outline-offset":[$,j]}],"outline-w":[{outline:[$,C]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:V()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[y]}],"ring-offset-w":[{"ring-offset":[$,C]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",O,R]}],"shadow-color":[{shadow:[N]}],opacity:[{opacity:[y]}],"mix-blend":[{"mix-blend":[...q(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":q()}],filter:[{filter:["","none"]}],blur:[{blur:[r]}],brightness:[{brightness:[o]}],contrast:[{contrast:[s]}],"drop-shadow":[{"drop-shadow":["","none",O,j]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[d]}],saturate:[{saturate:[w]}],sepia:[{sepia:[F]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[r]}],"backdrop-brightness":[{"backdrop-brightness":[o]}],"backdrop-contrast":[{"backdrop-contrast":[s]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u]}],"backdrop-invert":[{"backdrop-invert":[d]}],"backdrop-opacity":[{"backdrop-opacity":[y]}],"backdrop-saturate":[{"backdrop-saturate":[w]}],"backdrop-sepia":[{"backdrop-sepia":[F]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[i]}],"border-spacing-x":[{"border-spacing-x":[i]}],"border-spacing-y":[{"border-spacing-y":[i]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",j]}],duration:[{duration:Q()}],ease:[{ease:["linear","in","out","in-out",j]}],delay:[{delay:Q()}],animate:[{animate:["none","spin","ping","pulse","bounce",j]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[T]}],"scale-x":[{"scale-x":[T]}],"scale-y":[{"scale-y":[T]}],rotate:[{rotate:[S,j]}],"translate-x":[{"translate-x":[A]}],"translate-y":[{"translate-y":[A]}],"skew-x":[{"skew-x":[M]}],"skew-y":[{"skew-y":[M]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",j]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",j]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":H()}],"scroll-mx":[{"scroll-mx":H()}],"scroll-my":[{"scroll-my":H()}],"scroll-ms":[{"scroll-ms":H()}],"scroll-me":[{"scroll-me":H()}],"scroll-mt":[{"scroll-mt":H()}],"scroll-mr":[{"scroll-mr":H()}],"scroll-mb":[{"scroll-mb":H()}],"scroll-ml":[{"scroll-ml":H()}],"scroll-p":[{"scroll-p":H()}],"scroll-px":[{"scroll-px":H()}],"scroll-py":[{"scroll-py":H()}],"scroll-ps":[{"scroll-ps":H()}],"scroll-pe":[{"scroll-pe":H()}],"scroll-pt":[{"scroll-pt":H()}],"scroll-pr":[{"scroll-pr":H()}],"scroll-pb":[{"scroll-pb":H()}],"scroll-pl":[{"scroll-pl":H()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",j]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[$,C,E]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},H=(e,t,r)=>{void 0!==r&&(e[t]=r)},V=(e,t)=>{if(t)for(let r in t)H(e,r,t[r])},W=(e,t)=>{if(t)for(let r in t){let o=t[r];void 0!==o&&(e[r]=(e[r]||[]).concat(o))}},U=((e,...t)=>"function"==typeof e?d(D,e,...t):d(()=>((e,{cacheSize:t,prefix:r,separator:o,experimentalParseClassName:n,extend:a={},override:i={}})=>{for(let a in H(e,"cacheSize",t),H(e,"prefix",r),H(e,"separator",o),H(e,"experimentalParseClassName",n),i)V(e[a],i[a]);for(let t in a)W(e[t],a[t]);return e})(D(),e),...t))({extend:{classGroups:{shadow:[{shadow:[{tremor:["input","card","dropdown"],"dark-tremor":["input","card","dropdown"]}]}],rounded:[{rounded:[{tremor:["small","default","full"],"dark-tremor":["small","default","full"]}]}],"font-size":[{text:[{tremor:["default","title","metric"],"dark-tremor":["default","title","metric"]}]}]}}});e.s(["tremorTwMerge",0,U],444755)},103471,e=>{"use strict";var t=e.i(444755),r=e.i(271645);let o=e=>["string","number"].includes(typeof e)?e:e instanceof Array?e.map(o).join(""):"object"==typeof e&&e?o(e.props.children):void 0;e.s(["constructValueToNameMapping",0,function(e){let t=new Map;return r.default.Children.map(e,e=>{var r;t.set(e.props.value,null!=(r=o(e))?r:e.props.value)}),t},"getFilteredOptions",0,function(e,t){return r.default.Children.map(t,t=>{var r;if((null!=(r=o(t))?r:t.props.value).toLowerCase().includes(e.toLowerCase()))return t})},"getNodeText",0,o,"getSelectButtonColors",0,(e,r,o=!1)=>(0,t.tremorTwMerge)(r?"bg-tremor-background-subtle dark:bg-dark-tremor-background-subtle":"bg-tremor-background dark:bg-dark-tremor-background",!r&&"hover:bg-tremor-background-muted dark:hover:bg-dark-tremor-background-muted",e?"text-tremor-content-emphasis dark:text-dark-tremor-content-emphasis":"text-tremor-content dark:text-dark-tremor-content",r&&"text-tremor-content-subtle dark:text-dark-tremor-content-subtle",o&&"text-red-500 placeholder:text-red-500 dark:text-red-500 dark:placeholder:text-red-500",o?"border-red-500 dark:border-red-500":"border-tremor-border dark:border-dark-tremor-border"),"hasValue",0,function(e){return null!=e&&""!==e}])},779241,677955,e=>{"use strict";var t=e.i(290571),r=e.i(271645),o=e.i(673706),n=e.i(689074),a=e.i(21243),i=e.i(98801),l=e.i(103471),s=e.i(444755);let c=r.default.forwardRef((e,c)=>{let{value:u,defaultValue:d,type:f,placeholder:p="Type...",icon:h,error:m=!1,errorMessage:g,disabled:v=!1,stepper:y,makeInputClassName:b,className:w,onChange:$,onValueChange:C,autoFocus:x,pattern:E}=e,S=(0,t.__rest)(e,["value","defaultValue","type","placeholder","icon","error","errorMessage","disabled","stepper","makeInputClassName","className","onChange","onValueChange","autoFocus","pattern"]),[k,j]=(0,r.useState)(x||!1),[O,T]=(0,r.useState)(!1),I=(0,r.useCallback)(()=>T(!O),[O,T]),_=(0,r.useRef)(null),F=(0,l.hasValue)(u||d);return r.default.useEffect(()=>{let e=()=>j(!0),t=()=>j(!1),r=_.current;return r&&(r.addEventListener("focus",e),r.addEventListener("blur",t),x&&r.focus()),()=>{r&&(r.removeEventListener("focus",e),r.removeEventListener("blur",t))}},[x]),r.default.createElement(r.default.Fragment,null,r.default.createElement("div",{className:(0,s.tremorTwMerge)(b("root"),"relative w-full flex items-center min-w-[10rem] outline-none rounded-tremor-default transition duration-100 border","shadow-tremor-input","dark:shadow-dark-tremor-input",(0,l.getSelectButtonColors)(F,v,m),k&&(0,s.tremorTwMerge)("ring-2","border-tremor-brand-subtle ring-tremor-brand-muted","dark:border-dark-tremor-brand-subtle dark:ring-dark-tremor-brand-muted"),w)},h?r.default.createElement(h,{className:(0,s.tremorTwMerge)(b("icon"),"shrink-0 h-5 w-5 mx-2.5 absolute left-0 flex items-center","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle")}):null,r.default.createElement("input",Object.assign({ref:(0,o.mergeRefs)([_,c]),defaultValue:d,value:u,type:O?"text":f,className:(0,s.tremorTwMerge)(b("input"),"w-full bg-transparent focus:outline-none focus:ring-0 border-none text-tremor-default rounded-tremor-default transition duration-100 py-2","text-tremor-content-emphasis","dark:text-dark-tremor-content-emphasis","[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none","password"===f?m?"pr-16":"pr-12":m?"pr-8":"pr-3",h?"pl-10":"pl-3",v?"placeholder:text-tremor-content-subtle dark:placeholder:text-dark-tremor-content-subtle":"placeholder:text-tremor-content dark:placeholder:text-dark-tremor-content"),placeholder:p,disabled:v,"data-testid":"base-input",onChange:e=>{null==$||$(e),null==C||C(e.target.value)},pattern:E},S)),"password"!==f||v?null:r.default.createElement("button",{className:(0,s.tremorTwMerge)(b("toggleButton"),"absolute inset-y-0 right-0 flex items-center px-2.5 rounded-lg"),type:"button",onClick:()=>I(),"aria-label":O?"Hide password":"Show Password"},O?r.default.createElement(i.default,{className:(0,s.tremorTwMerge)("flex-none h-5 w-5 transition","text-tremor-content-subtle hover:text-tremor-content","dark:text-dark-tremor-content-subtle hover:dark:text-dark-tremor-content"),"aria-hidden":!0}):r.default.createElement(a.default,{className:(0,s.tremorTwMerge)("flex-none h-5 w-5 transition","text-tremor-content-subtle hover:text-tremor-content","dark:text-dark-tremor-content-subtle hover:dark:text-dark-tremor-content"),"aria-hidden":!0})),m?r.default.createElement(n.default,{className:(0,s.tremorTwMerge)(b("errorIcon"),"text-red-500 shrink-0 h-5 w-5 absolute right-0 flex items-center","password"===f?"mr-10":"number"===f?y?"mr-20":"mr-3":"mx-2.5")}):null,null!=y?y:null),m&&g?r.default.createElement("p",{className:(0,s.tremorTwMerge)(b("errorMessage"),"text-sm text-red-500 mt-1")},g):null)});c.displayName="BaseInput",e.s(["default",0,c],677955);let u=(0,o.makeClassName)("TextInput"),d=r.default.forwardRef((e,o)=>{let{type:n="text"}=e,a=(0,t.__rest)(e,["type"]);return r.default.createElement(c,Object.assign({ref:o,type:n,makeInputClassName:u},a))});d.displayName="TextInput",e.s(["TextInput",0,d],779241)},827252,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z"}}]},name:"info-circle",theme:"outlined"};var n=e.i(9583),a=r.forwardRef(function(e,a){return r.createElement(n.default,(0,t.default)({},e,{ref:a,icon:o}))});e.s(["InfoCircleOutlined",0,a],827252)},592968,e=>{"use strict";var t=e.i(491816);e.s(["Tooltip",()=>t.default])},764205,122550,82946,e=>{"use strict";e.s(["addAllowedIP",()=>ez,"adminGlobalActivity",()=>eZ,"adminGlobalActivityPerModel",()=>e1,"adminGlobalCacheActivity",()=>e0,"adminSpendLogsCall",()=>eK,"adminTopEndUsersCall",()=>eQ,"adminTopKeysCall",()=>eX,"adminTopModelsCall",()=>e2,"adminspendByProvider",()=>eY,"agentDailyActivityCall",()=>eS,"agentHubPublicModelsCall",()=>eR,"alertingSettingsCall",()=>Z,"allEndUsersCall",()=>eG,"allTagNamesCall",()=>eU,"applyGuardrail",()=>op,"approveGuardrailSubmission",()=>tV,"approveMCPServer",()=>rR,"availableTeamListCall",()=>ef,"budgetCreateCall",()=>X,"budgetDeleteCall",()=>K,"budgetUpdateCall",()=>Q,"buildMcpOAuthAuthorizeUrl",()=>ok,"cacheTemporaryMcpServer",()=>oE,"cachingHealthCheckCall",()=>tR,"callMCPTool",()=>rV,"cancelModelCostMapReload",()=>W,"checkEuAiActCompliance",()=>oG,"checkGdprCompliance",()=>oq,"claimOnboardingToken",()=>ej,"convertPromptFileToJson",()=>rp,"createAgentCall",()=>rh,"createGuardrailCall",()=>rm,"createMCPServer",()=>rS,"createMCPToolset",()=>rT,"createMemory",()=>o7,"createPassThroughEndpoint",()=>tO,"createPolicyAttachmentCall",()=>rt,"createPolicyCall",()=>t4,"createPolicyVersion",()=>t7,"createPromptCall",()=>ru,"createSearchTool",()=>rB,"credentialCreateCall",()=>tt,"credentialDeleteCall",()=>tn,"credentialGetCall",()=>to,"credentialListCall",()=>tr,"credentialUpdateCall",()=>ta,"customerDailyActivityCall",()=>eE,"deleteAgentCall",()=>oe,"deleteAllowedIP",()=>eL,"deleteCallback",()=>oC,"deleteClaudeCodePlugin",()=>oU,"deleteConfigFieldSetting",()=>tI,"deleteGuardrailCall",()=>oo,"deleteMCPOAuthUserCredential",()=>o1,"deleteMCPServer",()=>rj,"deleteMCPToolset",()=>r_,"deleteMemory",()=>o9,"deletePassThroughEndpointsCall",()=>t_,"deletePolicyAttachmentCall",()=>rr,"deletePolicyCall",()=>t9,"deletePromptCall",()=>rf,"deleteSearchTool",()=>rz,"deleteToolPolicyOverride",()=>oZ,"deriveErrorMessage",()=>oM,"disableClaudeCodePlugin",()=>oW,"enableClaudeCodePlugin",()=>oV,"enrichPolicyTemplate",()=>tY,"enrichPolicyTemplateStream",()=>t1,"estimateAttachmentImpactCall",()=>ri,"exchangeLoginCode",()=>oA,"exchangeMcpOAuthToken",()=>oj,"fetchAvailableSearchProviders",()=>rL,"fetchDiscoverableMCPServers",()=>rw,"fetchMCPAccessGroups",()=>rx,"fetchMCPClientIp",()=>rE,"fetchMCPServerHealth",()=>rC,"fetchMCPServers",()=>r$,"fetchMCPSubmissions",()=>rP,"fetchMCPToolsets",()=>rO,"fetchMemoryList",()=>o3,"fetchOpenAPIRegistry",()=>rb,"fetchSearchTools",()=>rM,"fetchToolDetail",()=>oQ,"fetchToolPolicyOptions",()=>oJ,"fetchToolsList",()=>oK,"formatDate",()=>y,"getAgentCreateMetadata",()=>P,"getAgentInfo",()=>oc,"getAgentsList",()=>os,"getAllowedIPs",()=>eA,"getBudgetList",()=>tb,"getCacheSettingsCall",()=>tx,"getCallbackConfigsCall",()=>b,"getCallbacksCall",()=>tw,"getCategoryYaml",()=>oi,"getClaudeCodePluginsList",()=>oD,"getConfigFieldSetting",()=>tj,"getDefaultTeamSettings",()=>rX,"getEmailEventSettings",()=>r5,"getGeneralSettingsCall",()=>t$,"getGlobalLitellmHeaderName",()=>M,"getGuardrailInfo",()=>ou,"getGuardrailProviderSpecificParams",()=>oa,"getGuardrailUISettings",()=>on,"getGuardrailsList",()=>tD,"getGuardrailsUsageDetail",()=>tG,"getGuardrailsUsageLogs",()=>tq,"getGuardrailsUsageOverview",()=>tU,"getInProductNudgesCall",()=>w,"getInternalUserSettings",()=>rv,"getLicenseInfo",()=>ow,"getMCPOAuthUserCredentialStatus",()=>o2,"getMCPSemanticFilterSettings",()=>tA,"getMajorAirlines",()=>ol,"getModelCostMapReloadStatus",()=>G,"getModelCostMapSource",()=>U,"getOnboardingCredentials",()=>ek,"getOpenAPISchema",()=>L,"getPassThroughEndpointsCall",()=>tk,"getPoliciesList",()=>tJ,"getPolicyAttachmentsList",()=>re,"getPolicyInfo",()=>t8,"getPolicyInfoWithGuardrails",()=>tX,"getPolicyTemplates",()=>tQ,"getPossibleUserRoles",()=>e8,"getPromptInfo",()=>rs,"getPromptVersions",()=>rc,"getPromptsList",()=>rl,"getProviderCreateMetadata",()=>F,"getProxyBaseUrl",()=>k,"getProxyUISettings",()=>tM,"getPublicModelHubInfo",()=>z,"getRemainingUsers",()=>ob,"getResolvedGuardrails",()=>rn,"getRouterSettingsCall",()=>tC,"getSSOSettings",()=>og,"getTeamPermissionsCall",()=>rY,"getToolUsageLogs",()=>oX,"getUISettings",()=>tB,"getUiConfig",()=>A,"getUiSettings",()=>oz,"handleError",()=>_,"individualModelHealthCheckCall",()=>tP,"invitationCreateCall",()=>Y,"keyAliasesCall",()=>e5,"keyCreateCall",()=>et,"keyCreateForAgentCall",()=>er,"keyCreateServiceAccountCall",()=>ee,"keyDeleteCall",()=>en,"keyInfoCall",()=>e4,"keyInfoV1Call",()=>e3,"keyListCall",()=>e7,"keyUpdateCall",()=>ti,"latestHealthChecksCall",()=>tN,"listGuardrailSubmissions",()=>tH,"listMCPTools",()=>rH,"listMCPUserCredentials",()=>o4,"listPolicyVersions",()=>t3,"loginCall",()=>oB,"makeAgentsPublicCall",()=>ot,"makeMCPPublicCall",()=>or,"makeModelGroupPublic",()=>B,"mcpHubPublicServersCall",()=>eN,"modelAvailableCall",()=>eH,"modelCostMap",()=>D,"modelCreateCall",()=>q,"modelDeleteCall",()=>J,"modelHubCall",()=>eB,"modelHubPublicModelsCall",()=>eP,"modelInfoCall",()=>e_,"modelInfoV1Call",()=>eF,"modelPatchUpdateCall",()=>ts,"organizationCreateCall",()=>em,"organizationDailyActivityCall",()=>ex,"organizationDeleteCall",()=>ev,"organizationInfoCall",()=>eh,"organizationListCall",()=>ep,"organizationMemberAddCall",()=>tp,"organizationMemberDeleteCall",()=>th,"organizationMemberUpdateCall",()=>tm,"organizationUpdateCall",()=>eg,"patchAgentCall",()=>od,"perUserAnalyticsCall",()=>oN,"proxyBaseUrl",()=>S,"ragIngestCall",()=>r7,"regenerateKeyCall",()=>eO,"registerClaudeCodePlugin",()=>oH,"registerMCPServer",()=>rF,"registerMcpOAuthClient",()=>oS,"rejectGuardrailSubmission",()=>tW,"rejectMCPServer",()=>rN,"reloadModelCostMap",()=>H,"resetEmailEventSettings",()=>r8,"resolvePoliciesCall",()=>ra,"scheduleModelCostMapReload",()=>V,"searchToolQueryCall",()=>oT,"serverRootPath",()=>C,"serviceHealthCheck",()=>ty,"sessionSpendLogsCall",()=>r0,"setCallbacksCall",()=>tF,"setGlobalLitellmHeaderName",()=>N,"skillHubPublicCall",()=>eM,"storeMCPOAuthUserCredential",()=>o0,"suggestPolicyTemplates",()=>tZ,"switchToWorkerUrl",()=>j,"tagCreateCall",()=>rW,"tagDailyActivityCall",()=>e$,"tagDauCall",()=>oI,"tagDeleteCall",()=>rK,"tagDistinctCall",()=>oP,"tagInfoCall",()=>rG,"tagListCall",()=>rJ,"tagMauCall",()=>oF,"tagUpdateCall",()=>rU,"tagWauCall",()=>o_,"tagsSpendLogsCall",()=>eW,"teamBulkMemberAddCall",()=>tu,"teamCreateCall",()=>te,"teamDailyActivityCall",()=>eC,"teamDeleteCall",()=>ei,"teamInfoCall",()=>ec,"teamListCall",()=>ed,"teamMemberAddCall",()=>tc,"teamMemberDeleteCall",()=>tf,"teamMemberUpdateCall",()=>td,"teamPermissionsUpdateCall",()=>rZ,"teamSpendLogsCall",()=>eV,"teamUpdateCall",()=>tl,"testCacheConnectionCall",()=>tE,"testConnectionRequest",()=>e6,"testCustomCodeGuardrail",()=>oh,"testMCPSemanticFilter",()=>tL,"testMCPToolsListRequest",()=>ox,"testPipelineCall",()=>ro,"testPoliciesAndGuardrails",()=>tK,"testPolicyTemplate",()=>t0,"testSearchToolConnection",()=>rD,"transformRequestCall",()=>ey,"uiAuditLogsCall",()=>oy,"uiSpendLogDetailsCall",()=>rg,"uiSpendLogsCall",()=>eJ,"updateCacheSettingsCall",()=>tS,"updateConfigFieldSetting",()=>tT,"updateDefaultTeamSettings",()=>rQ,"updateEmailEventSettings",()=>r9,"updateGuardrailCall",()=>of,"updateInternalUserSettings",()=>ry,"updateMCPSemanticFilterSettings",()=>tz,"updateMCPServer",()=>rk,"updateMCPToolset",()=>rI,"updateMemory",()=>o5,"updatePassThroughEndpoint",()=>o$,"updatePolicyCall",()=>t6,"updatePolicyVersionStatus",()=>t5,"updatePromptCall",()=>rd,"updateSSOSettings",()=>ov,"updateSearchTool",()=>rA,"updateToolPolicy",()=>oY,"updateUiSettings",()=>oL,"updateUsefulLinksCall",()=>eD,"usageAiChatStream",()=>t2,"userAgentSummaryCall",()=>oR,"userBulkUpdateUserCall",()=>tv,"userCreateCall",()=>eo,"userDailyActivityAggregatedCall",()=>e9,"userDailyActivityCall",()=>ew,"userDeleteCall",()=>ea,"userFilterUICall",()=>eq,"userGetInfoV2",()=>es,"userListCall",()=>el,"userUpdateUserCall",()=>tg,"v2TeamListCall",()=>eu,"validateBlockedWordsFile",()=>om,"vectorStoreCreateCall",()=>r1,"vectorStoreDeleteCall",()=>r4,"vectorStoreInfoCall",()=>r6,"vectorStoreListCall",()=>r2,"vectorStoreSearchCall",()=>oO,"vectorStoreUpdateCall",()=>r3],764205);var t=e.i(247167),r=e.i(888259),o=e.i(268004);e.s(["default",()=>g,"jsonFields",()=>h],82946);var n=e.i(843476),a=e.i(271645),i=e.i(808613),l=e.i(311451),s=e.i(28651),c=e.i(199133),u=e.i(779241),d=e.i(827252),f=e.i(592968);let p=e=>e?e.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase()):e;e.s(["formItemValidateJSON",0,(e,t)=>{if(!t)return Promise.resolve();try{return JSON.parse(t),Promise.resolve()}catch(e){return Promise.reject("Please enter valid JSON")}},"formatLabel",0,p,"truncateString",0,function(e,t){return e.length>t?e.substring(0,t)+"...":e}],122550);let h=["metadata","config","enforced_params","aliases"],m=(e,t)=>h.includes(e)||"json"===t.format,g=({schemaComponent:e,excludedFields:t=[],form:r,overrideLabels:o={},overrideTooltips:h={},customValidation:g={},defaultValues:v={}})=>{let[y,b]=(0,a.useState)(null),[w,$]=(0,a.useState)(null);return((0,a.useEffect)(()=>{(async()=>{try{let o=(await L()).components.schemas[e];if(!o)throw Error(`Schema component "${e}" not found`);b(o);let n={};Object.keys(o.properties).filter(e=>!t.includes(e)&&void 0!==v[e]).forEach(e=>{n[e]=v[e]}),r.setFieldsValue(n)}catch(e){console.error("Schema fetch error:",e),$(e instanceof Error?e.message:"Failed to fetch schema")}})()},[e,r,t]),w)?(0,n.jsxs)("div",{className:"text-red-500",children:["Error: ",w]}):y?.properties?(0,n.jsx)("div",{children:Object.entries(y.properties).filter(([e])=>!t.includes(e)).map(([e,t])=>{let r,a,b,w,$,C,x,E;return a=(e=>{if(e.type)return e.type;if(e.anyOf){let t=e.anyOf.map(e=>e.type);if(t.includes("number")||t.includes("integer"))return"number";t.includes("string")}return"string"})(t),b=y?.required?.includes(e),w=o[e]||t.title||p(e),$=h[e]||t.description,C=[],b&&C.push({required:!0,message:`${w} is required`}),g[e]&&C.push({validator:g[e]}),m(e,t)&&C.push({validator:async(e,t)=>{if(t&&!(e=>{if(!e)return!0;try{return JSON.parse(e),!0}catch{return!1}})(t))throw Error("Please enter valid JSON")}}),x=$?(0,n.jsxs)("span",{children:[w," ",(0,n.jsx)(f.Tooltip,{title:$,children:(0,n.jsx)(d.InfoCircleOutlined,{style:{marginLeft:"4px"}})})]}):w,r=m(e,t)?(0,n.jsx)(l.Input.TextArea,{rows:4,placeholder:"Enter as JSON",className:"font-mono"}):t.enum?(0,n.jsx)(c.Select,{children:t.enum.map(e=>(0,n.jsx)(c.Select.Option,{value:e,children:e},e))}):"number"===a||"integer"===a?(0,n.jsx)(s.InputNumber,{style:{width:"100%"},precision:"integer"===a?0:void 0}):"duration"===e?(0,n.jsx)(u.TextInput,{placeholder:"eg: 30s, 30h, 30d"}):(0,n.jsx)(u.TextInput,{placeholder:$||""}),(0,n.jsx)(i.Form.Item,{label:x,name:e,className:"mt-8",rules:C,initialValue:v[e],help:(0,n.jsx)("div",{className:"text-xs text-gray-500",children:(E=({max_budget:"Enter maximum budget in USD (e.g., 100.50)",budget_duration:"Select a time period for budget reset",tpm_limit:"Enter maximum tokens per minute (whole number)",rpm_limit:"Enter maximum requests per minute (whole number)",duration:"Enter duration (e.g., 30s, 24h, 7d)",metadata:'Enter JSON object with key-value pairs\nExample: {"team": "research", "project": "nlp"}',config:'Enter configuration as JSON object\nExample: {"setting": "value"}',permissions:"Enter comma-separated permission strings",enforced_params:'Enter parameters as JSON object\nExample: {"param": "value"}',blocked:"Enter true/false or specific block conditions",aliases:'Enter aliases as JSON object\nExample: {"alias1": "value1", "alias2": "value2"}',models:"Select one or more model names",key_alias:"Enter a unique identifier for this key",tags:"Enter comma-separated tag strings"})[e]||({string:"Text input",number:"Numeric input",integer:"Whole number input",boolean:"True/False value"})[a]||"Text input",m(e,t)?`${E} Must be valid JSON format`:t.enum?`Select from available options -Allowed values: ${t.enum.join(", ")}`:E)}),children:r},e)})}):null};var v=e.i(727749);let y=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`},b=async e=>{try{let t=S?`${S}/callbacks/configs`:"/callbacks/configs",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},w=async e=>{try{let t=S?`${S}/in_product_nudges`:"/in_product_nudges",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get in-product nudges:",e),e}},$=t.default.env.NEXT_PUBLIC_BASE_URL?t.default.env.NEXT_PUBLIC_BASE_URL:null,C="/",x="litellm_worker_url",E=window.localStorage.getItem(x),S=(()=>{if(!E)return null;try{let e=new URL(E);if("http:"===e.protocol||"https:"===e.protocol)return E}catch{}return window.localStorage.removeItem(x),null})()??$;console.log=function(){};let k=()=>{if(S)return S;let e=window.location;return e?.origin??""};function j(e){(!e||function(e){try{let t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch{return!1}}(e))&&(e?window.localStorage.setItem(x,e):window.localStorage.removeItem(x),S=e??$)}let O="POST",T="DELETE",I=0,_=async e=>{let t=Date.now();if(t-I>6e4){if(("string"==typeof e?e:JSON.stringify(e)).includes("Authentication Error - Expired Key")){v.default.info("UI Session Expired. Logging out."),I=t,(0,o.clearTokenCookies)();let e=window.location;e&&(window.location.href=e.pathname)}I=t}else console.log("Error suppressed to prevent spam:",e)},F=async()=>{let e=S?`${S}/public/providers/fields`:"/public/providers/fields",t=await fetch(e,{method:"GET"});if(!t.ok){let e=await t.text();throw console.error("Failed to fetch provider create metadata:",t.status,e),Error("Failed to load provider configuration")}return await t.json()},P=async()=>{let e=S?`${S}/public/agents/fields`:"/public/agents/fields",t=await fetch(e,{method:"GET"});if(!t.ok){let e=await t.text();throw console.error("Failed to fetch agent create metadata:",t.status,e),Error("Failed to load agent configuration")}return await t.json()},R="Authorization";function N(e="Authorization"){console.log(`setGlobalLitellmHeaderName: ${e}`),R=e}function M(){return R}let B=async(e,t)=>{let r=S?`${S}/model_group/make_public`:"/model_group/make_public";return(await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({model_groups:t})})).json()},A=async()=>{console.log("Getting UI config");let e=$?`${$}/litellm/.well-known/litellm-ui-config`:"/litellm/.well-known/litellm-ui-config",r=await fetch(e),o=await r.json();return console.log("jsonData in getUiConfig:",o),((e,r=null)=>{if(window.localStorage.getItem(x))return;let o=window.location,n=t.default.env.NEXT_PUBLIC_BASE_URL?t.default.env.NEXT_PUBLIC_BASE_URL:o?.origin??null,a=r||n;if(console.log("proxyBaseUrl:",S),console.log("serverRootPath:",e),!a)return console.log("Updated proxyBaseUrl:",S=S??null);e.length>0&&!a.endsWith(e)&&"/"!=e&&(a+=e),console.log("Updated proxyBaseUrl:",S=a)})(o.server_root_path,o.proxy_base_url),o},z=async()=>{let e=S?`${S}/public/model_hub/info`:"/public/model_hub/info",t=await fetch(e);return await t.json()},L=async()=>{let e=S?`${S}/openapi.json`:"/openapi.json",t=await fetch(e);return await t.json()},D=async()=>{try{let e=S?`${S}/public/litellm_model_cost_map`:"/public/litellm_model_cost_map",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}}),r=await t.json();return console.log(`received litellm model cost data: ${r}`),r}catch(e){throw console.error("Failed to get model cost map:",e),e}},H=async e=>{try{let t=S?`${S}/reload/model_cost_map`:"/reload/model_cost_map",r=await fetch(t,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),o=await r.json();return console.log(`Model cost map reload response: ${o}`),o}catch(e){throw console.error("Failed to reload model cost map:",e),e}},V=async(e,t)=>{try{let r=S?`${S}/schedule/model_cost_map_reload?hours=${t}`:`/schedule/model_cost_map_reload?hours=${t}`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),n=await o.json();return console.log(`Schedule model cost map reload response: ${n}`),n}catch(e){throw console.error("Failed to schedule model cost map reload:",e),e}},W=async e=>{try{let t=S?`${S}/schedule/model_cost_map_reload`:"/schedule/model_cost_map_reload",r=await fetch(t,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),o=await r.json();return console.log(`Cancel model cost map reload response: ${o}`),o}catch(e){throw console.error("Failed to cancel model cost map reload:",e),e}},U=async e=>{try{let t=S?`${S}/model/cost_map/source`:"/model/cost_map/source",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw Error(`HTTP ${r.status}: ${e}`)}let o=await r.json();return console.log("Model cost map source info:",o),o}catch(e){throw console.error("Failed to get model cost map source info:",e),e}},G=async e=>{try{let t=S?`${S}/schedule/model_cost_map_reload/status`:"/schedule/model_cost_map_reload/status";console.log("Fetching status from URL:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){console.error(`Status request failed with status: ${r.status}`);let e=await r.text();throw console.error("Error response:",e),Error(`HTTP ${r.status}: ${e}`)}let o=await r.json();return console.log("Model cost map reload status:",o),o}catch(e){throw console.error("Failed to get model cost map reload status:",e),e}},q=async(e,t)=>{try{let o=S?`${S}/model/new`:"/model/new",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),r.default.destroy(),v.default.success(`Model ${t.model_name} created successfully`),a}catch(e){throw console.error("Failed to create key:",e),e}},J=async(e,t)=>{console.log(`model_id in model delete call: ${t}`);try{let r=S?`${S}/model/delete`:"/model/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},K=async(e,t)=>{if(console.log(`budget_id in budget delete call: ${t}`),null!=e)try{let r=S?`${S}/budget/delete`:"/budget/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},X=async(e,t)=>{try{console.log("Form Values in budgetCreateCall:",t),console.log("Form Values after check:",t);let r=S?`${S}/budget/new`:"/budget/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Q=async(e,t)=>{try{console.log("Form Values in budgetUpdateCall:",t),console.log("Form Values after check:",t);let r=S?`${S}/budget/update`:"/budget/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Y=async(e,t)=>{try{let r=S?`${S}/invitation/new`:"/invitation/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Z=async e=>{try{let t=S?`${S}/alerting/settings`:"/alerting/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},ee=async(e,t)=>{try{for(let e of(console.log("Form Values in keyCreateServiceAccountCall:",t),t.description&&(t.metadata||(t.metadata={}),t.metadata.description=t.description,delete t.description,t.metadata=JSON.stringify(t.metadata)),h))if(t[e]){console.log(`formValues.${e}:`,t[e]);try{t[e]=JSON.parse(t[e])}catch(t){throw Error(`Failed to parse ${e}: `+t)}}console.log("Form Values after check:",t);let r=S?`${S}/key/service-account/generate`:"/key/service-account/generate",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},et=async(e,t,r)=>{try{for(let e of(console.log("Form Values in keyCreateCall:",r),r.description&&(r.metadata||(r.metadata={}),r.metadata.description=r.description,delete r.description,r.metadata=JSON.stringify(r.metadata)),h))if(r[e]){console.log(`formValues.${e}:`,r[e]);try{r[e]=JSON.parse(r[e])}catch(t){throw Error(`Failed to parse ${e}: `+t)}}console.log("Form Values after check:",r);let o=S?`${S}/key/generate`:"/key/generate",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t,...r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},er=async(e,t,r,o,n,a)=>{let i=S?`${S}/key/generate`:"/key/generate",l={agent_id:t,key_alias:r,models:o.length>0?o:[]};a&&(l.team_id=a),n&&Object.keys(n).length>0&&(l.metadata=n);let s=await fetch(i,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(l)});if(!s.ok)throw _(await s.text()),Error("Failed to create key for agent");return s.json()},eo=async(e,t,r)=>{try{if(console.log("Form Values in keyCreateCall:",r),r.description&&(r.metadata||(r.metadata={}),r.metadata.description=r.description,delete r.description,r.metadata=JSON.stringify(r.metadata)),r.auto_create_key=!1,r.metadata){console.log("formValues.metadata:",r.metadata);try{r.metadata=JSON.parse(r.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}console.log("Form Values after check:",r);let o=S?`${S}/user/new`:"/user/new",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t,...r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},en=async(e,t)=>{try{let r=S?`${S}/key/delete`:"/key/delete";console.log("in keyDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({keys:[t]})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to create key:",e),e}},ea=async(e,t)=>{try{let r=S?`${S}/user/delete`:"/user/delete";console.log("in userDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_ids:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete user(s):",e),e}},ei=async(e,t)=>{try{let r=S?`${S}/team/delete`:"/team/delete";console.log("in teamDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_ids:[t]})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete key:",e),e}},el=async(e,t=null,r=null,o=null,n=null,a=null,i=null,l=null,s=null,c=null,u=null)=>{try{let d=S?`${S}/user/list`:"/user/list";console.log("in userListCall");let f=new URLSearchParams;if(t&&t.length>0){let e=t.join(",");f.append("user_ids",e)}r&&f.append("page",r.toString()),o&&f.append("page_size",o.toString()),n&&f.append("user_email",n),a&&f.append("role",a),i&&f.append("team",i),l&&f.append("sso_user_ids",l),s&&f.append("sort_by",s),c&&f.append("sort_order",c),u&&u.length>0&&f.append("organization_ids",u.join(","));let p=f.toString();p&&(d+=`?${p}`);let h=await fetch(d,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!h.ok){let e=await h.json(),t=oM(e);throw _(t),Error(t)}let m=await h.json();return console.log("/user/list API Response:",m),m}catch(e){throw console.error("Failed to create key:",e),e}},es=async(e,t)=>{try{let r=S?`${S}/v2/user/info`:"/v2/user/info";t&&(r+=`?user_id=${encodeURIComponent(t)}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to fetch user info v2:",e),e}},ec=async(e,t)=>{try{let r=S?`${S}/team/info`:"/team/info";t&&(r=`${r}?team_id=${encodeURIComponent(t)}`),console.log("in teamInfoCall");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eu=async(e,t,r=null,o=null,n=null,a=1,i=10,l=null,s=null)=>{try{let a=S?`${S}/v2/team/list`:"/v2/team/list";console.log("in teamInfoCall");let i=new URLSearchParams;r&&i.append("user_id",r.toString()),t&&i.append("organization_id",t.toString()),o&&i.append("team_id",o.toString()),n&&i.append("team_alias",n.toString());let l=i.toString();l&&(a+=`?${l}`);let s=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}let c=await s.json();return console.log("/v2/team/list API Response:",c),c}catch(e){throw console.error("Failed to create key:",e),e}},ed=async(e,t,r=null,o=null,n=null)=>{try{let a=S?`${S}/team/list`:"/team/list";console.log("in teamInfoCall");let i=new URLSearchParams;r&&i.append("user_id",r.toString()),t&&i.append("organization_id",t.toString()),o&&i.append("team_id",o.toString()),n&&i.append("team_alias",n.toString());let l=i.toString();l&&(a+=`?${l}`);let s=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}let c=await s.json();return console.log("/team/list API Response:",c),c}catch(e){throw console.error("Failed to create key:",e),e}},ef=async e=>{try{let t=S?`${S}/team/available`:"/team/available";console.log("in availableTeamListCall");let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("/team/available_teams API Response:",o),o}catch(e){throw e}},ep=async(e,t=null,r=null)=>{try{let o=S?`${S}/organization/list`:"/organization/list",n=new URLSearchParams;t&&n.append("org_id",t.toString()),r&&n.append("org_alias",r.toString());let a=n.toString();a&&(o+=`?${a}`);let i=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to create key:",e),e}},eh=async(e,t)=>{try{let r=S?`${S}/organization/info`:"/organization/info";t&&(r=`${r}?organization_id=${t}`),console.log("in teamInfoCall");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},em=async(e,t)=>{try{if(console.log("Form Values in organizationCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw console.error("Failed to parse metadata:",e),Error("Failed to parse metadata: "+e)}}let r=S?`${S}/organization/new`:"/organization/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eg=async(e,t)=>{try{console.log("Form Values in organizationUpdateCall:",t);let r=S?`${S}/organization/update`:"/organization/update",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Update Team Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},ev=async(e,t)=>{try{let r=S?`${S}/organization/delete`:"/organization/delete",o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_ids:[t]})});if(!o.ok){let e=await o.text();throw _(e),Error(`Error deleting organization: ${e}`)}return await o.json()}catch(e){throw console.error("Failed to delete organization:",e),e}},ey=async(e,t)=>{try{let r=S?`${S}/utils/transform_request`:"/utils/transform_request",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create key:",e),e}},eb=async({accessToken:e,endpoint:t,startTime:r,endTime:o,page:n=1,extraQueryParams:a})=>{try{let i,l,s,c,u=(i=t.startsWith("/")?t:`/${t}`,l=S?`${S}${i}`:i,(s=new URLSearchParams).append("start_date",y(r)),s.append("end_date",y(o)),s.append("page_size","1000"),s.append("page",n.toString()),s.append("timezone",new Date().getTimezoneOffset().toString()),a&&Object.entries(a).forEach(([e,t])=>{((e,t,r)=>{if(null!=r){if(Array.isArray(r)){r.length>0&&e.append(t,r.join(","));return}e.append(t,`${r}`)}})(s,e,t)}),(c=s.toString())?`${l}?${c}`:l),d=await fetch(u,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!d.ok){let e=await d.json(),t=oM(e);throw _(t),Error(t)}return await d.json()}catch(e){throw console.error(`Failed to fetch daily activity (${t}):`,e),e}},ew=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/user/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{user_id:n}}),e$=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/tag/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{tags:n}}),eC=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/team/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{team_ids:n,exclude_team_ids:"litellm-dashboard"}}),ex=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/organization/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{organization_ids:n}}),eE=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/customer/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{end_user_ids:n}}),eS=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/agent/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{agent_ids:n}}),ek=async e=>{try{let t=S?`${S}/onboarding/get_token`:"/onboarding/get_token";t+=`?invite_link=${e}`;let r=await fetch(t,{method:"GET",headers:{"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to create key:",e),e}},ej=async(e,t,r,o)=>{let n=S?`${S}/onboarding/claim_token`:"/onboarding/claim_token";try{let a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({invitation_link:t,user_id:r,password:o})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to delete key:",e),e}},eO=async(e,t,r)=>{try{let o=S?`${S}/key/${t}/regenerate`:`/key/${t}/regenerate`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Regenerate key Response:",a),a}catch(e){throw console.error("Failed to regenerate key:",e),e}},eT=!1,eI=null,e_=async(e,t,r,o=1,n=50,a,i,l,s,c)=>{try{console.log("modelInfoCall:",e,t,r,o,n,a,i,l,s,c);let u=S?`${S}/v2/model/info`:"/v2/model/info",d=new URLSearchParams;d.append("include_team_models","true"),d.append("page",o.toString()),d.append("size",n.toString()),a&&a.trim()&&d.append("search",a.trim()),i&&i.trim()&&d.append("modelId",i.trim()),l&&l.trim()&&d.append("teamId",l.trim()),s&&s.trim()&&d.append("sortBy",s.trim()),c&&c.trim()&&d.append("sortOrder",c.trim()),d.toString()&&(u+=`?${d.toString()}`);let f=await fetch(u,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!f.ok){let e=await f.text();throw e+=`error shown=${eT}`,eT||(e.includes("No model list passed")&&(e="No Models Exist. Click Add Model to get started."),v.default.info(e),eT=!0,eI&&clearTimeout(eI),eI=setTimeout(()=>{eT=!1},1e4)),Error("Network response was not ok")}let p=await f.json();return console.log("modelInfoCall:",p),p}catch(e){throw console.error("Failed to create key:",e),e}},eF=async(e,t)=>{try{let r=S?`${S}/v1/model/info`:"/v1/model/info";r+=`?litellm_model_id=${t}`;let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("modelInfoV1Call:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eP=async()=>{let e=S?`${S}/public/model_hub`:"/public/model_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`modelHubPublicModelsCall failed with status ${t.status}`),[])},eR=async()=>{let e=S?`${S}/public/agent_hub`:"/public/agent_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`agentHubPublicModelsCall failed with status ${t.status}`),[])},eN=async()=>{let e=S?`${S}/public/mcp_hub`:"/public/mcp_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`mcpHubPublicServersCall failed with status ${t.status}`),[])},eM=async()=>{let e=S?`${S}/public/skill_hub`:"/public/skill_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`skillHubPublicCall failed with status ${t.status}`),{plugins:[]})},eB=async e=>{try{let t=S?`${S}/model_group/info`:"/model_group/info",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("modelHubCall:",o),o}catch(e){throw console.error("Failed to create key:",e),e}},eA=async e=>{try{let t=S?`${S}/get/allowed_ips`:"/get/allowed_ips",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("getAllowedIPs:",o),o.data}catch(e){throw console.error("Failed to get allowed IPs:",e),e}},ez=async(e,t)=>{try{let r=S?`${S}/add/allowed_ip`:"/add/allowed_ip",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({ip:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("addAllowedIP:",n),n}catch(e){throw console.error("Failed to add allowed IP:",e),e}},eL=async(e,t)=>{try{let r=S?`${S}/delete/allowed_ip`:"/delete/allowed_ip",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({ip:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("deleteAllowedIP:",n),n}catch(e){throw console.error("Failed to delete allowed IP:",e),e}},eD=async(e,t)=>{try{let r=S?`${S}/model_hub/update_useful_links`:"/model_hub/update_useful_links",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({useful_links:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create key:",e),e}},eH=async(e,t,r,o=!1,n=null,a=!1,i=!1,l)=>{console.log("in /models calls, globalLitellmHeaderName",R);try{let t=S?`${S}/models`:"/models",r=new URLSearchParams;r.append("include_model_access_groups","True"),!0===o&&r.append("return_wildcard_routes","True"),!0===i&&r.append("only_model_access_groups","True"),n&&r.append("team_id",n.toString()),l&&r.append("scope",l),r.toString()&&(t+=`?${r.toString()}`);let a=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return await a.json()}catch(e){throw console.error("Failed to create key:",e),e}},eV=async e=>{try{let t=S?`${S}/global/spend/teams`:"/global/spend/teams";console.log("in teamSpendLogsCall:",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eW=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/tags`:"/global/spend/tags";t&&r&&(n=`${n}?start_date=${t}&end_date=${r}`),o&&(n+=`&tags=${o.join(",")}`),console.log("in tagsSpendLogsCall:",n);let a=await fetch(`${n}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to create key:",e),e}},eU=async e=>{try{let t=S?`${S}/global/spend/all_tag_names`:"/global/spend/all_tag_names";console.log("in global/spend/all_tag_names call",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eG=async e=>{try{let t=S?`${S}/customer/list`:"/customer/list";console.log("in customer/list",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to fetch end users:",e),e}},eq=async(e,t)=>{try{let r=S?`${S}/user/filter/ui`:"/user/filter/ui",o=new URLSearchParams;t.get("user_email")&&o.append("user_email",t.get("user_email")),t.get("user_id")&&o.append("user_id",t.get("user_id")),t.get("team_id")&&o.append("team_id",t.get("team_id"));let n=o.toString(),a=n?`${r}?${n}`:r,i=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to create key:",e),e}},eJ=async({accessToken:e,start_date:t,end_date:r,page:o=1,page_size:n=50,params:a={}})=>{try{let i=S?`${S}/spend/logs/ui`:"/spend/logs/ui",l=new URLSearchParams;for(let[e,i]of(l.append("start_date",t),l.append("end_date",r),l.append("page",o.toString()),l.append("page_size",n.toString()),Object.entries(a)))null!=i&&("min_spend"===e||"max_spend"===e?l.append(e,i.toString()):"string"==typeof i&&""!==i&&l.append(e,String(i)));let s=l.toString();s&&(i+=`?${s}`);let c=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!c.ok){let e=await c.json(),t=oM(e);throw _(t),Error(t)}let u=await c.json();return console.log("Spend Logs Response:",u),u}catch(e){throw console.error("Failed to fetch spend logs:",e),e}},eK=async e=>{try{let t=S?`${S}/global/spend/logs`:"/global/spend/logs",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eX=async e=>{try{let t=S?`${S}/global/spend/keys?limit=5`:"/global/spend/keys?limit=5",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eQ=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/end_users`:"/global/spend/end_users",a="";a=t?JSON.stringify({api_key:t,startTime:r,endTime:o}):JSON.stringify({startTime:r,endTime:o});let i={method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:a},l=await fetch(n,i);if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}let s=await l.json();return console.log(s),s}catch(e){throw console.error("Failed to create key:",e),e}},eY=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/provider`:"/global/spend/provider";r&&o&&(n+=`?start_date=${r}&end_date=${o}`),t&&(n+=`&api_key=${t}`);let a={method:"GET",headers:{[R]:`Bearer ${e}`}},i=await fetch(n,a);if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}let l=await i.json();return console.log(l),l}catch(e){throw console.error("Failed to fetch spend data:",e),e}},eZ=async(e,t,r)=>{try{let o=S?`${S}/global/activity`:"/global/activity";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e0=async(e,t,r)=>{try{let o=S?`${S}/global/activity/cache_hits`:"/global/activity/cache_hits";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e1=async(e,t,r)=>{try{let o=S?`${S}/global/activity/model`:"/global/activity/model";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e2=async e=>{try{let t=S?`${S}/global/spend/models?limit=5`:"/global/spend/models?limit=5",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},e4=async(e,t)=>{try{let r=S?`${S}/v2/key/info`:"/v2/key/info",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({keys:t})});if(!o.ok){let e=await o.text();if(e.includes("Invalid proxy server token passed"))throw Error("Invalid proxy server token passed");throw _(e),Error("Network response was not ok")}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to create key:",e),e}},e6=async(e,t,r,o)=>{try{console.log("Sending model connection test request:",JSON.stringify(t));let n=S?`${S}/health/test_connection`:"/health/test_connection",a=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({litellm_params:t,model_info:r,mode:o})}),i=a.headers.get("content-type");if(!i||!i.includes("application/json")){let e=await a.text();throw console.error("Received non-JSON response:",e),Error(`Received non-JSON response (${a.status}: ${a.statusText}). Check network tab for details.`)}let l=await a.json();if((!a.ok||"error"===l.status)&&"error"!==l.status)return{status:"error",message:l.error?.message||`Connection test failed: ${a.status} ${a.statusText}`};return l}catch(e){throw console.error("Model connection test error:",e),e}},e3=async(e,t)=>{try{console.log("entering keyInfoV1Call");let r=S?`${S}/key/info`:"/key/info";r=`${r}?key=${t}`;let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(console.log("response",o),!o.ok){let e=await o.text();_(e),v.default.fromBackend("Failed to fetch key info - "+e)}let n=await o.json();return console.log("data",n),n}catch(e){throw console.error("Failed to fetch key info:",e),e}},e7=async(e,t,r,o,n,a,i,l,s=null,c=null,u=null,d=null)=>{try{let f=S?`${S}/key/list`:"/key/list";console.log("in keyListCall");let p=new URLSearchParams;r&&p.append("team_id",r.toString()),t&&p.append("organization_id",t.toString()),o&&p.append("key_alias",o),a&&p.append("key_hash",a),n&&p.append("user_id",n.toString()),i&&p.append("page",i.toString()),l&&p.append("size",l.toString()),s&&p.append("sort_by",s),c&&p.append("sort_order",c),u&&p.append("expand",u),d&&p.append("status",d),p.append("return_full_object","true"),p.append("include_team_keys","true"),p.append("include_created_by_keys","true");let h=p.toString();h&&(f+=`?${h}`);let m=await fetch(f,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!m.ok){let e=await m.json(),t=oM(e);throw _(t),Error(t)}let g=await m.json();return console.log("/team/list API Response:",g),g}catch(e){throw console.error("Failed to create key:",e),e}},e5=async(e,t=1,r=50,o,n)=>{try{let a=new URLSearchParams(Object.entries({page:String(t),size:String(r),...o?{search:o}:{},...n?{team_id:n}:{}})),i=S?`${S}/key/aliases`:"/key/aliases";i=`${i}?${a}`;let l=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}let s=await l.json();return console.log("/key/aliases API Response:",s),s}catch(e){throw console.error("Failed to fetch key aliases:",e),e}},e9=async(e,t,r,o=null)=>{try{let n=S?`${S}/user/daily/activity/aggregated`:"/user/daily/activity/aggregated",a=new URLSearchParams,i=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`};a.append("start_date",i(t)),a.append("end_date",i(r)),a.append("timezone",new Date().getTimezoneOffset().toString()),o&&a.append("user_id",o);let l=a.toString();l&&(n+=`?${l}`);let s=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}return await s.json()}catch(e){throw console.error("Failed to fetch aggregated user daily activity:",e),e}},e8=async e=>{try{let t=S?`${S}/user/available_roles`:"/user/available_roles",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("response from user/available_role",o),o}catch(e){throw e}},te=async(e,t)=>{try{if(console.log("Form Values in teamCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let r=S?`${S}/team/new`:"/team/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tt=async(e,t)=>{try{if(console.log("Form Values in credentialCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let r=S?`${S}/credentials`:"/credentials",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tr=async e=>{try{let t=S?`${S}/credentials`:"/credentials";console.log("in credentialListCall");let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("/credentials API Response:",o),o}catch(e){throw console.error("Failed to create key:",e),e}},to=async(e,t,r)=>{try{let o=S?`${S}/credentials`:"/credentials";t?o+=`/by_name/${t}`:r&&(o+=`/by_model/${r}`),console.log("in credentialListCall");let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("/credentials API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tn=async(e,t)=>{try{let r=S?`${S}/credentials/${t}`:`/credentials/${t}`;console.log("in credentialDeleteCall:",t);let o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete key:",e),e}},ta=async(e,t,r)=>{try{if(console.log("Form Values in credentialUpdateCall:",r),r.metadata){console.log("formValues.metadata:",r.metadata);try{r.metadata=JSON.parse(r.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let o=S?`${S}/credentials/${t}`:`/credentials/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},ti=async(e,t)=>{try{if(console.log("Form Values in keyUpdateCall:",t),t.model_tpm_limit){console.log("formValues.model_tpm_limit:",t.model_tpm_limit);try{t.model_tpm_limit=JSON.parse(t.model_tpm_limit)}catch(e){throw Error("Failed to parse model_tpm_limit: "+e)}}if(t.model_rpm_limit){console.log("formValues.model_rpm_limit:",t.model_rpm_limit);try{t.model_rpm_limit=JSON.parse(t.model_rpm_limit)}catch(e){throw Error("Failed to parse model_rpm_limit: "+e)}}let r=S?`${S}/key/update`:"/key/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let n=await o.json();return console.log("Update key Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tl=async(e,t)=>{try{console.log("Form Values in teamUpateCall:",t);let r=S?`${S}/team/update`:"/team/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),v.default.fromBackend("Failed to update team settings: "+e),Error(e)}let n=await o.json();return console.log("Update Team Response:",n),n}catch(e){throw console.error("Failed to update team:",e),e}},ts=async(e,t,r)=>{try{console.log("Form Values in modelUpateCall:",t);let o=S?`${S}/model/${r}/update`:`/model/${r}/update`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error update from the server:",e),Error("Network response was not ok")}let a=await n.json();return console.log("Update model Response:",a),a}catch(e){throw console.error("Failed to update model:",e),e}},tc=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/team/member_add`:"/team/member_add",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_id:t,member:r})});if(!n.ok){let e=await n.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to add team member",o=Error(r);throw o.raw=t,o}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tu=async(e,t,r,o,n)=>{try{console.log("Bulk add team members:",{teamId:t,members:r,maxBudgetInTeam:o});let a=S?`${S}/team/bulk_member_add`:"/team/bulk_member_add",i={team_id:t};n?i.all_users=!0:i.members=r,null!=o&&(i.max_budget_in_team=o);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to bulk add team members",o=Error(r);throw o.raw=t,o}let s=await l.json();return console.log("Bulk team member add API Response:",s),s}catch(e){throw console.error("Failed to bulk add team members:",e),e}},td=async(e,t,r)=>{try{console.log("Form Values in teamMemberUpdateCall:",r),console.log("Budget value:",r.max_budget_in_team),console.log("TPM limit:",r.tpm_limit),console.log("RPM limit:",r.rpm_limit);let o=S?`${S}/team/member_update`:"/team/member_update",n={team_id:t,role:r.role,user_id:r.user_id};void 0!==r.user_email&&(n.user_email=r.user_email),void 0!==r.max_budget_in_team&&null!==r.max_budget_in_team&&(n.max_budget_in_team=r.max_budget_in_team),void 0!==r.tpm_limit&&null!==r.tpm_limit&&(n.tpm_limit=r.tpm_limit),void 0!==r.rpm_limit&&null!==r.rpm_limit&&(n.rpm_limit=r.rpm_limit),void 0!==r.allowed_models&&(n.allowed_models=r.allowed_models),console.log("Final request body:",n);let a=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(n)});if(!a.ok){let e=await a.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to add team member",o=Error(r);throw o.raw=t,o}let i=await a.json();return console.log("API Response:",i),i}catch(e){throw console.error("Failed to update team member:",e),e}},tf=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/team/member_delete`:"/team/member_delete",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_id:t,...void 0!==r.user_email&&{user_email:r.user_email},...void 0!==r.user_id&&{user_id:r.user_id}})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tp=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/organization/member_add`:"/organization/member_add",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,member:r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create organization member:",e),e}},th=async(e,t,r)=>{try{console.log("Form Values in organizationMemberDeleteCall:",r);let o=S?`${S}/organization/member_delete`:"/organization/member_delete",n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,user_id:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to delete organization member:",e),e}},tm=async(e,t,r)=>{try{console.log("Form Values in organizationMemberUpdateCall:",r);let o=S?`${S}/organization/member_update`:"/organization/member_update",n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,...r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to update organization member:",e),e}},tg=async(e,t,r)=>{try{console.log("Form Values in userUpdateUserCall:",t);let o=S?`${S}/user/update`:"/user/update",n={...t};null!==r&&(n.user_role=r),n=JSON.stringify(n);let a=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:n});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log("API Response:",i),i}catch(e){throw console.error("Failed to create key:",e),e}},tv=async(e,t,r,o=!1)=>{try{let n;console.log("Form Values in userUpdateUserCall:",t);let a=S?`${S}/user/bulk_update`:"/user/bulk_update";if(o)n=JSON.stringify({all_users:!0,user_updates:t});else if(r&&r.length>0){let e=[];for(let o of r)e.push({user_id:o,...t});n=JSON.stringify({users:e})}else throw Error("Must provide either userIds or set allUsers=true");let i=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:n});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}let l=await i.json();return console.log("API Response:",l),l}catch(e){throw console.error("Failed to create key:",e),e}},ty=async(e,t)=>{try{let r=S?`${S}/health/services?service=${t}`:`/health/services?service=${t}`;console.log("Checking Slack Budget Alerts service health");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}return await o.json()}catch(e){throw console.error("Failed to perform health check:",e),e}},tb=async e=>{try{let t=S?`${S}/budget/list`:"/budget/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tw=async(e,t,r)=>{try{let t=S?`${S}/get/config/callbacks`:"/get/config/callbacks",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},t$=async e=>{try{let t=S?`${S}/config/list?config_type=general_settings`:"/config/list?config_type=general_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tC=async e=>{try{let t=S?`${S}/router/settings`:"/router/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get router settings:",e),e}},tx=async e=>{try{let t=S?`${S}/cache/settings`:"/cache/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get cache settings:",e),e}},tE=async(e,t)=>{try{let r=S?`${S}/cache/settings/test`:"/cache/settings/test",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({cache_settings:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to test cache connection:",e),e}},tS=async(e,t)=>{try{let r=S?`${S}/cache/settings`:"/cache/settings",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({cache_settings:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update cache settings:",e),e}},tk=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint`:"/config/pass_through_endpoint";t&&(r+=`/team/${t}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tj=async(e,t)=>{try{let r=S?`${S}/config/field/info?field_name=${t}`:`/config/field/info?field_name=${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tO=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint`:"/config/pass_through_endpoint",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tT=async(e,t,r)=>{try{let o=S?`${S}/config/field/update`:"/config/field/update",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({field_name:t,field_value:r,config_type:"general_settings"})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return v.default.success("Successfully updated value!"),a}catch(e){throw console.error("Failed to set callbacks:",e),e}},tI=async(e,t)=>{try{let r=S?`${S}/config/field/delete`:"/config/field/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({field_name:t,config_type:"general_settings"})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return v.default.success("Field reset on proxy"),n}catch(e){throw console.error("Failed to get callbacks:",e),e}},t_=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint?endpoint_id=${t}`:`/config/pass_through_endpoint?endpoint_id=${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tF=async(e,t)=>{try{let r=S?`${S}/config/update`:"/config/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tP=async(e,t)=>{try{let r=S?`${S}/health?model_id=${encodeURIComponent(t)}`:`/health?model_id=${encodeURIComponent(t)}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error(`Failed to call /health for model id ${t}:`,e),e}},tR=async e=>{try{let t=S?`${S}/cache/ping`:"/cache/ping",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error(e)}return await r.json()}catch(e){throw console.error("Failed to call /cache/ping:",e),e}},tN=async e=>{try{let t=S?`${S}/health/latest`:"/health/latest",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error(e)}return await r.json()}catch(e){throw console.error("Failed to call /health/latest:",e),e}},tM=async e=>{try{console.log("Getting proxy UI settings"),console.log("proxyBaseUrl in getProxyUISettings:",S);let t=S?`${S}/sso/get/ui_settings`:"/sso/get/ui_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tB=async e=>{try{let t=S?`${S}/get/ui_settings`:"/get/ui_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);return console.error("Failed to get UI settings:",t),null}return await r.json()}catch(e){return console.error("Failed to get UI settings:",e),null}},tA=async e=>{try{let t=S?`${S}/get/mcp_semantic_filter_settings`:"/get/mcp_semantic_filter_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get MCP semantic filter settings:",e),e}},tz=async(e,t)=>{try{let r=S?`${S}/update/mcp_semantic_filter_settings`:"/update/mcp_semantic_filter_settings",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP semantic filter settings:",e),e}},tL=async(e,t,r)=>{try{let o=S?`${S}/v1/responses`:"/v1/responses",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({model:t,input:[{role:"user",content:r,type:"message"}],tools:[{type:"mcp",server_url:"litellm_proxy",require_approval:"never"}],tool_choice:"required"})}),a=n.headers.get("x-litellm-semantic-filter"),i=n.headers.get("x-litellm-semantic-filter-tools");if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return{data:await n.json(),headers:{filter:a,tools:i}}}catch(e){throw console.error("Failed to test MCP semantic filter:",e),e}},tD=async e=>{try{let t=S?`${S}/v2/guardrails/list`:"/v2/guardrails/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(`v2 guardrails/list returned ${r.status}`);return await r.json()}catch(t){console.log("v2/guardrails/list failed, falling back to v1:",t);try{let t=S?`${S}/guardrails/list`:"/guardrails/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get guardrails list:",e),e}}},tH=async(e,t)=>{let r=S?`${S}/guardrails/submissions`:"/guardrails/submissions",o=new URLSearchParams;t?.status&&o.set("status",t.status),t?.team_id&&o.set("team_id",t.team_id),t?.team_guardrail!==void 0&&o.set("team_guardrail",String(t.team_guardrail)),t?.search&&o.set("search",t.search);let n=o.toString()?`${r}?${o.toString()}`:r,a=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=oM(await a.json().catch(()=>({})));throw _(e),Error(e)}return a.json()},tV=async(e,t)=>{let r=S?`${S}/guardrails/submissions/${encodeURIComponent(t)}/approve`:`/guardrails/submissions/${encodeURIComponent(t)}/approve`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=oM(await o.json().catch(()=>({})));throw _(e),Error(e)}return o.json()},tW=async(e,t)=>{let r=S?`${S}/guardrails/submissions/${encodeURIComponent(t)}/reject`:`/guardrails/submissions/${encodeURIComponent(t)}/reject`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=oM(await o.json().catch(()=>({})));throw _(e),Error(e)}return o.json()},tU=async(e,t,r)=>{try{let o=S?`${S}/guardrails/usage/overview`:"/guardrails/usage/overview",n=new URLSearchParams;t&&n.append("start_date",t),r&&n.append("end_date",r),n.toString()&&(o+=`?${n.toString()}`);let a=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json();throw Error(oM(e))}return a.json()}catch(e){throw console.error("Failed to get guardrails usage overview:",e),e}},tG=async(e,t,r,o)=>{try{let n=S?`${S}/guardrails/usage/detail/${encodeURIComponent(t)}`:`/guardrails/usage/detail/${encodeURIComponent(t)}`,a=new URLSearchParams;r&&a.append("start_date",r),o&&a.append("end_date",o),a.toString()&&(n+=`?${a.toString()}`);let i=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json();throw Error(oM(e))}return i.json()}catch(e){throw console.error("Failed to get guardrails usage detail:",e),e}},tq=async(e,t)=>{try{let r=S?`${S}/guardrails/usage/logs`:"/guardrails/usage/logs",o=new URLSearchParams;t.guardrailId&&o.append("guardrail_id",t.guardrailId),t.policyId&&o.append("policy_id",t.policyId),null!=t.page&&o.append("page",String(t.page)),null!=t.pageSize&&o.append("page_size",String(t.pageSize)),t.action&&o.append("action",t.action),t.startDate&&o.append("start_date",t.startDate),t.endDate&&o.append("end_date",t.endDate),o.toString()&&(r+=`?${o.toString()}`);let n=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json();throw Error(oM(e))}return n.json()}catch(e){throw console.error("Failed to get guardrails usage logs:",e),e}},tJ=async e=>{try{let t=S?`${S}/policies/list`:"/policies/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policies list:",e),e}},tK=async(e,t,r)=>{try{let o=S?`${S}/utils/test_policies_and_guardrails`:"/utils/test_policies_and_guardrails",n=await fetch(o,{method:"POST",signal:r,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({policy_names:t.policy_names??null,guardrail_names:t.guardrail_names??null,inputs:t.inputs??null,inputs_list:t.inputs_list??null,request_data:t.request_data??{},input_type:t.input_type??"request",agent_id:t.agent_id??null})});if(!n.ok){let e=await n.text(),t="Failed to test policies and guardrails";try{let r=JSON.parse(e);r.detail?t="string"==typeof r.detail?r.detail:JSON.stringify(r.detail):r.message&&(t=r.message)}catch{t=e||t}throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to test policies and guardrails:",e),e}},tX=async(e,t)=>{try{let r=S?`${S}/policy/info/${t}`:`/policy/info/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error(`Failed to get policy info for ${t}:`,e),e}},tQ=async e=>{try{let t=S?`${S}/policy/templates`:"/policy/templates",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policy templates:",e),e}},tY=async(e,t,r,o,n)=>{try{let a=S?`${S}/policy/templates/enrich`:"/policy/templates/enrich",i={template_id:t,parameters:r};o&&(i.model=o),n&&(i.competitors=n);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}return await l.json()}catch(e){throw console.error("Failed to enrich policy template:",e),e}},tZ=async(e,t,r,o)=>{try{let n=S?`${S}/policy/templates/suggest`:"/policy/templates/suggest",a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({attack_examples:t.filter(e=>e.trim()),description:r,model:o})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return a.json()}catch(e){throw console.error("Failed to suggest policy templates:",e),e}},t0=async(e,t,r)=>{try{let o=S?`${S}/policy/templates/test`:"/policy/templates/test",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({guardrail_definitions:t,text:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return n.json()}catch(e){throw console.error("Failed to test policy template:",e),e}},t1=async(e,t,r,o,n,a,i,l,s)=>{let c=S?`${S}/policy/templates/enrich/stream`:"/policy/templates/enrich/stream",u={template_id:t,parameters:r,model:o};l?.instruction&&(u.instruction=l.instruction),l?.existingCompetitors&&(u.competitors=l.existingCompetitors);let d=await fetch(c,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(u)});if(!d.ok){let e=oM(await d.json());throw _(e),Error(e)}let f=d.body?.getReader();if(!f)throw Error("No response body");let p=new TextDecoder,h="";for(;;){let{done:e,value:t}=await f.read();if(e)break;let r=(h+=p.decode(t,{stream:!0})).split("\n");for(let e of(h=r.pop()||"",r))if(e.startsWith("data: "))try{let t=JSON.parse(e.slice(6));"competitor"===t.type?n(t.name):"status"===t.type?s?.(t.message):"done"===t.type?a(t):"error"===t.type&&i?.(t.message)}catch{}}},t2=async(e,t,r,o,n,a,i,l,s)=>{let c=S?`${S}/usage/ai/chat`:"/usage/ai/chat",u=await fetch(c,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({messages:t,model:r}),signal:s});if(!u.ok){let e=oM(await u.json());throw _(e),Error(e)}let d=u.body?.getReader();if(!d)throw Error("No response body");let f=new TextDecoder,p="";for(;;){let{done:e,value:t}=await d.read();if(e)break;let r=(p+=f.decode(t,{stream:!0})).split("\n");for(let e of(p=r.pop()||"",r))if(e.startsWith("data: "))try{let t=JSON.parse(e.slice(6));"chunk"===t.type?o(t.content):"status"===t.type?i?.(t.message):"tool_call"===t.type?l?.(t):"done"===t.type?n():"error"===t.type&&a?.(t.message)}catch{}}},t4=async(e,t)=>{try{let r=S?`${S}/policies`:"/policies",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create policy:",e),e}},t6=async(e,t,r)=>{try{let o=S?`${S}/policies/${t}`:`/policies/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update policy:",e),e}},t3=async(e,t)=>{try{let r=encodeURIComponent(t),o=S?`${S}/policies/name/${r}/versions`:`/policies/name/${r}/versions`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to list policy versions:",e),e}},t7=async(e,t,r)=>{try{let o=encodeURIComponent(t),n=S?`${S}/policies/name/${o}/versions`:`/policies/name/${o}/versions`,a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({source_policy_id:r??void 0})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return await a.json()}catch(e){throw console.error("Failed to create policy version:",e),e}},t5=async(e,t,r)=>{try{let o=S?`${S}/policies/${t}/status`:`/policies/${t}/status`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({version_status:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update policy version status:",e),e}},t9=async(e,t)=>{try{let r=S?`${S}/policies/${t}`:`/policies/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete policy:",e),e}},t8=async(e,t)=>{try{let r=S?`${S}/policies/${t}`:`/policies/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get policy info:",e),e}},re=async e=>{try{let t=S?`${S}/policies/attachments/list`:"/policies/attachments/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policy attachments list:",e),e}},rt=async(e,t)=>{try{let r=S?`${S}/policies/attachments`:"/policies/attachments",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create policy attachment:",e),e}},rr=async(e,t)=>{try{let r=S?`${S}/policies/attachments/${t}`:`/policies/attachments/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete policy attachment:",e),e}},ro=async(e,t,r)=>{try{let o=S?`${S}/policies/test-pipeline`:"/policies/test-pipeline",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({pipeline:t,test_messages:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to test pipeline:",e),e}},rn=async(e,t)=>{try{let r=S?`${S}/policies/${t}/resolved-guardrails`:`/policies/${t}/resolved-guardrails`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get resolved guardrails:",e),e}},ra=async(e,t)=>{try{let r=S?`${S}/policies/resolve`:"/policies/resolve",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to resolve policies:",e),e}},ri=async(e,t)=>{try{let r=S?`${S}/policies/attachments/estimate-impact`:"/policies/attachments/estimate-impact",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to estimate attachment impact:",e),e}},rl=async(e,t)=>{try{let r=S?`${S}/prompts/list`:"/prompts/list";t&&(r+=`?environment=${encodeURIComponent(t)}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get prompts list:",e),e}},rs=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}/info`:`/prompts/${t}/info`;r&&(o+=`?environment=${encodeURIComponent(r)}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to get prompt info:",e),e}},rc=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}/versions`:`/prompts/${t}/versions`;r&&(o+=`?environment=${encodeURIComponent(r)}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw 404!==n.status&&_(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to get prompt versions:",e),e}},ru=async(e,t)=>{try{let r=S?`${S}/prompts`:"/prompts",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create prompt:",e),e}},rd=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}`:`/prompts/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update prompt:",e),e}},rf=async(e,t)=>{try{let r=S?`${S}/prompts/${t}`:`/prompts/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete prompt:",e),e}},rp=async(e,t)=>{try{let r=new FormData;r.append("file",t);let o=S?`${S}/utils/dotprompt_json_converter`:"/utils/dotprompt_json_converter",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`},body:r});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to convert prompt file:",e),e}},rh=async(e,t)=>{try{let r=S?`${S}/v1/agents`:"/v1/agents",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Create agent response:",n),n}catch(e){throw console.error("Failed to create agent:",e),e}},rm=async(e,t)=>{try{let r=S?`${S}/guardrails`:"/guardrails",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({guardrail:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Create guardrail response:",n),n}catch(e){throw console.error("Failed to create guardrail:",e),e}},rg=async(e,t,r)=>{try{let o=S?`${S}/spend/logs/ui/${t}?start_date=${encodeURIComponent(r)}`:`/spend/logs/ui/${t}?start_date=${encodeURIComponent(r)}`;console.log("Fetching log details from:",o);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Fetched log details:",a),a}catch(e){throw console.error("Failed to fetch log details:",e),e}},rv=async e=>{try{let t=S?`${S}/get/internal_user_settings`:"/get/internal_user_settings";console.log("Fetching SSO settings from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched SSO settings:",o),o}catch(e){throw console.error("Failed to fetch SSO settings:",e),e}},ry=async(e,t)=>{try{let r=S?`${S}/update/internal_user_settings`:"/update/internal_user_settings";console.log("Updating internal user settings:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Updated internal user settings:",n),v.default.success("Internal user settings updated successfully"),n}catch(e){throw console.error("Failed to update internal user settings:",e),e}},rb=async e=>{try{let t=S?`${S}/v1/mcp/openapi-registry`:"/v1/mcp/openapi-registry",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json();throw Error(oM(e))}return await r.json()}catch(e){throw console.error("Failed to fetch OpenAPI registry:",e),e}},rw=async e=>{try{let t=S?`${S}/v1/mcp/discover`:"/v1/mcp/discover",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch discoverable MCP servers:",e),e}},r$=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server";if(t){let e=new URLSearchParams;e.append("team_id",t),r=`${r}?${e.toString()}`}console.log("Fetching MCP servers from:",r);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Fetched MCP servers:",n),n}catch(e){throw console.error("Failed to fetch MCP servers:",e),e}},rC=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server/health`:"/v1/mcp/server/health";if(t&&t.length>0){let e=new URLSearchParams;t.forEach(t=>e.append("server_ids",t)),r=`${r}?${e.toString()}`}console.log("Fetching MCP server health from:",r);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Fetched MCP server health:",n),n}catch(e){throw console.error("Failed to fetch MCP server health:",e),e}},rx=async e=>{try{let t=S?`${S}/v1/mcp/access_groups`:"/v1/mcp/access_groups";console.log("Fetching MCP access groups from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched MCP access groups:",o),o.access_groups||[]}catch(e){throw console.error("Failed to fetch MCP access groups:",e),e}},rE=async e=>{try{let t=S?`${S}/v1/mcp/network/client-ip`:"/v1/mcp/network/client-ip",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok)return null;return(await r.json()).ip||null}catch{return null}},rS=async(e,t)=>{try{console.log("Form Values in createMCPServer:",t);let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},rk=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server",o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP server:",e),e}},rj=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/server/${t}`;console.log("in deleteMCPServer:",t);let o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}}catch(e){throw console.error("Failed to delete key:",e),e}},rO=async e=>{try{let t=(S?`${S}`:"")+"/v1/mcp/toolset",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch MCP toolsets:",e),e}},rT=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/toolset",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create MCP toolset:",e),e}},rI=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/toolset",o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP toolset:",e),e}},r_=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/toolset/${t}`,o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}}catch(e){throw console.error("Failed to delete MCP toolset:",e),e}},rF=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/server/register",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return o.json()}catch(e){throw console.error("Failed to register MCP server:",e),e}},rP=async e=>{try{let t=(S?`${S}`:"")+"/v1/mcp/server/submissions",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return r.json()}catch(e){throw console.error("Failed to fetch MCP submissions:",e),e}},rR=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/server/${encodeURIComponent(t)}/approve`,o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return o.json()}catch(e){throw console.error("Failed to approve MCP server:",e),e}},rN=async(e,t,r)=>{try{let o=(S?`${S}`:"")+`/v1/mcp/server/${encodeURIComponent(t)}/reject`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({review_notes:r??null})});if(!n.ok){let e=await n.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return n.json()}catch(e){throw console.error("Failed to reject MCP server:",e),e}},rM=async e=>{try{let t=S?`${S}/search_tools/list`:"/search_tools/list";console.log("Fetching search tools from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched search tools:",o),o}catch(e){throw console.error("Failed to fetch search tools:",e),e}},rB=async(e,t)=>{try{console.log("Creating search tool with values:",t);let r=S?`${S}/search_tools`:"/search_tools",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({search_tool:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Created search tool:",n),n}catch(e){throw console.error("Failed to create search tool:",e),e}},rA=async(e,t,r)=>{try{console.log("Updating search tool with ID:",t,"values:",r);let o=S?`${S}/search_tools/${t}`:`/search_tools/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({search_tool:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Updated search tool:",a),a}catch(e){throw console.error("Failed to update search tool:",e),e}},rz=async(e,t)=>{try{let r=(S?`${S}`:"")+`/search_tools/${t}`;console.log("Deleting search tool:",t);let o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Deleted search tool:",n),n}catch(e){throw console.error("Failed to delete search tool:",e),e}},rL=async e=>{try{let t=S?`${S}/search_tools/ui/available_providers`:"/search_tools/ui/available_providers";console.log("Fetching available search providers from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched available search providers:",o),o}catch(e){throw console.error("Failed to fetch available search providers:",e),e}},rD=async(e,t)=>{try{let r=S?`${S}/search_tools/test_connection`:"/search_tools/test_connection";console.log("Testing search tool connection:",r);let o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({litellm_params:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Test connection response:",n),n}catch(e){throw console.error("Failed to test search tool connection:",e),e}},rH=async(e,t,r)=>{try{let o=S?`${S}/mcp-rest/tools/list?server_id=${t}`:`/mcp-rest/tools/list?server_id=${t}`;console.log("Fetching MCP tools from:",o);let n={[R]:`Bearer ${e}`,"Content-Type":"application/json",...r},a=await fetch(o,{method:"GET",headers:n}),i=await a.json();if(console.log("Fetched MCP tools response:",i),!a.ok){if(i.error&&i.message)throw Error(i.message);throw Error("Failed to fetch MCP tools")}return i}catch(e){return console.error("Failed to fetch MCP tools:",e),{tools:[],error:"network_error",message:e instanceof Error?e.message:"Failed to fetch MCP tools",stack_trace:null}}},rV=async(e,t,r,o,n)=>{try{let a=S?`${S}/mcp-rest/tools/call`:"/mcp-rest/tools/call";console.log("Calling MCP tool:",r,"with arguments:",o,"for server:",t);let i={[R]:`Bearer ${e}`,"Content-Type":"application/json",...n?.customHeaders||{}},l={server_id:t,name:r,arguments:o};n?.guardrails&&n.guardrails.length>0&&(l.litellm_metadata={guardrails:n.guardrails});let s=await fetch(a,{method:"POST",headers:i,body:JSON.stringify(l)});if(!s.ok){let e="Network response was not ok",t=null,r=await s.text();try{let o=JSON.parse(r);o.detail?"string"==typeof o.detail?e=o.detail:"object"==typeof o.detail&&(e=o.detail.message||o.detail.error||"An error occurred",t=o.detail):e=o.message||o.error||e}catch(t){console.error("Failed to parse JSON error response:",t),r&&(e=r)}let o=Error(e);throw o.status=s.status,o.statusText=s.statusText,o.details=t,_(e),o}let c=await s.json();return console.log("MCP tool call response:",c),c}catch(e){throw console.error("Failed to call MCP tool:",e),console.error("Error type:",typeof e),e instanceof Error&&(console.error("Error message:",e.message),console.error("Error stack:",e.stack)),e}},rW=async(e,t)=>{try{let r=S?`${S}/tag/new`:"/tag/new",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error creating tag:",e),e}},rU=async(e,t)=>{try{let r=S?`${S}/tag/update`:"/tag/update",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error updating tag:",e),e}},rG=async(e,t)=>{try{let r=S?`${S}/tag/info`:"/tag/info",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({names:t})});if(!o.ok){let e=await o.text();return await _(e),{}}return await o.json()}catch(e){throw console.error("Error getting tag info:",e),e}},rq=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`},rJ=async(e,t,r)=>{try{let o=S?`${S}/tag/list`:"/tag/list";if(t&&r){let e=new URLSearchParams({start_date:rq(t),end_date:rq(r)});o=`${o}?${e.toString()}`}let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!n.ok){let e=await n.text();return await _(e),{}}return await n.json()}catch(e){throw console.error("Error listing tags:",e),e}},rK=async(e,t)=>{try{let r=S?`${S}/tag/delete`:"/tag/delete",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({name:t})});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error deleting tag:",e),e}},rX=async e=>{try{let t=S?`${S}/get/default_team_settings`:"/get/default_team_settings";console.log("Fetching default team settings from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched default team settings:",o),o}catch(e){throw console.error("Failed to fetch default team settings:",e),e}},rQ=async(e,t)=>{try{let r=S?`${S}/update/default_team_settings`:"/update/default_team_settings";console.log("Updating default team settings:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Updated default team settings:",n),n}catch(e){throw console.error("Failed to update default team settings:",e),e}},rY=async(e,t)=>{try{let r=S?`${S}/team/permissions_list?team_id=${t}`:`/team/permissions_list?team_id=${t}`,o=await fetch(r,{method:"GET",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json(),t=oM(e);return console.error("Available permissions fetch failed:",t),{all_available_permissions:[],team_member_permissions:[]}}return await o.json()}catch(e){throw console.error("Failed to get team permissions:",e),e}},rZ=async(e,t,r)=>{try{let o=S?`${S}/team/permissions_update`:"/team/permissions_update",n=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({team_id:t,team_member_permissions:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Team permissions response:",a),a}catch(e){throw console.error("Failed to update team permissions:",e),e}},r0=async(e,t)=>{try{let r=S?`${S}/spend/logs/session/ui?session_id=${encodeURIComponent(t)}`:`/spend/logs/session/ui?session_id=${encodeURIComponent(t)}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to fetch session logs:",e),e}},r1=async(e,t)=>{try{let r=S?`${S}/vector_store/new`:"/vector_store/new",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to create vector store")}return await o.json()}catch(e){throw console.error("Error creating vector store:",e),e}},r2=async(e,t=1,r=100)=>{try{let t=S?`${S}/vector_store/list`:"/vector_store/list",r=await fetch(t,{method:"GET",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`}});if(!r.ok){let e=await r.json();throw Error(e.detail||"Failed to list vector stores")}return await r.json()}catch(e){throw console.error("Error listing vector stores:",e),e}},r4=async(e,t)=>{try{let r=S?`${S}/vector_store/delete`:"/vector_store/delete",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({vector_store_id:t})});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to delete vector store")}return await o.json()}catch(e){throw console.error("Error deleting vector store:",e),e}},r6=async(e,t)=>{try{let r=S?`${S}/vector_store/info`:"/vector_store/info",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({vector_store_id:t})});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to get vector store info")}return await o.json()}catch(e){throw console.error("Error getting vector store info:",e),e}},r3=async(e,t)=>{try{let r=S?`${S}/vector_store/update`:"/vector_store/update",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to update vector store")}return await o.json()}catch(e){throw console.error("Error updating vector store:",e),e}},r7=async(e,t,r,o,n,a,i)=>{try{let l=S?`${S}/rag/ingest`:"/rag/ingest",s=new FormData;s.append("file",t);let c={ingest_options:{vector_store:{custom_llm_provider:r,...o&&{vector_store_id:o},...i&&i}}};(n||a)&&(c.ingest_options.litellm_vector_store_params={},n&&(c.ingest_options.litellm_vector_store_params.vector_store_name=n),a&&(c.ingest_options.litellm_vector_store_params.vector_store_description=a)),s.append("request",JSON.stringify(c));let u=await fetch(l,{method:"POST",headers:{[R]:`Bearer ${e}`},body:s});if(!u.ok){let e=await u.json();throw Error(e.error?.message||e.detail||"Failed to ingest document")}return await u.json()}catch(e){throw console.error("Error ingesting document:",e),e}},r5=async e=>{try{let t=S?`${S}/email/event_settings`:"/email/event_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get email event settings")}let o=await r.json();return console.log("Email event settings response:",o),o}catch(e){throw console.error("Failed to get email event settings:",e),e}},r9=async(e,t)=>{try{let r=S?`${S}/email/event_settings`:"/email/event_settings",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to update email event settings")}let n=await o.json();return console.log("Update email event settings response:",n),n}catch(e){throw console.error("Failed to update email event settings:",e),e}},r8=async e=>{try{let t=S?`${S}/email/event_settings/reset`:"/email/event_settings/reset",r=await fetch(t,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to reset email event settings")}let o=await r.json();return console.log("Reset email event settings response:",o),o}catch(e){throw console.error("Failed to reset email event settings:",e),e}},oe=async(e,t)=>{try{let r=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Delete agent response:",n),n}catch(e){throw console.error("Failed to delete agent:",e),e}},ot=async(e,t)=>{try{let r=S?`${S}/v1/agents/make_public`:"/v1/agents/make_public",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({agent_ids:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Make agents public response:",n),n}catch(e){throw console.error("Failed to make agents public:",e),e}},or=async(e,t)=>{try{let r=S?`${S}/v1/mcp/make_public`:"/v1/mcp/make_public",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({mcp_server_ids:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Make agents public response:",n),n}catch(e){throw console.error("Failed to make agents public:",e),e}},oo=async(e,t)=>{try{let r=S?`${S}/guardrails/${t}`:`/guardrails/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Delete guardrail response:",n),n}catch(e){throw console.error("Failed to delete guardrail:",e),e}},on=async e=>{try{let t=S?`${S}/guardrails/ui/add_guardrail_settings`:"/guardrails/ui/add_guardrail_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get guardrail UI settings")}let o=await r.json();return console.log("Guardrail UI settings response:",o),o}catch(e){throw console.error("Failed to get guardrail UI settings:",e),e}},oa=async e=>{try{let t=S?`${S}/guardrails/ui/provider_specific_params`:"/guardrails/ui/provider_specific_params",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get guardrail provider specific parameters")}let o=await r.json();return console.log("Guardrail provider specific params response:",o),o}catch(e){throw console.error("Failed to get guardrail provider specific parameters:",e),e}},oi=async(e,t)=>{try{let r=encodeURIComponent(t),o=S?`${S}/guardrails/ui/category_yaml/${r}`:`/guardrails/ui/category_yaml/${r}`;console.log(`Fetching category YAML from: ${o}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text();throw console.error(`Failed to get category YAML. Status: ${n.status}, Error:`,e),_(e),Error(`Failed to get category YAML: ${n.status} ${e}`)}let a=await n.json();return console.log("Category YAML response:",a),a}catch(e){throw console.error("Failed to get category YAML:",e),e}},ol=async e=>{try{let t=S?`${S}/guardrails/ui/major_airlines`:"/guardrails/ui/major_airlines",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw console.error(`Failed to get major airlines. Status: ${r.status}, Error:`,e),_(e),Error(`Failed to get major airlines: ${r.status} ${e}`)}return await r.json()}catch(e){throw console.error("Failed to get major airlines:",e),e}},os=async(e,t=!1)=>{try{let r=t?"?health_check=true":"",o=S?`${S}/v1/agents${r}`:`/v1/agents${r}`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to get agents list")}let a=await n.json();return console.log("Agents list response:",a),{agents:a}}catch(e){throw console.error("Failed to get agents list:",e),e}},oc=async(e,t)=>{try{let r=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to get agent info")}let n=await o.json();return console.log("Agent info response:",n),n}catch(e){throw console.error("Failed to get agent info:",e),e}},ou=async(e,t)=>{try{let r=S?`${S}/guardrails/${t}/info`:`/guardrails/${t}/info`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to get guardrail info")}let n=await o.json();return console.log("Guardrail info response:",n),n}catch(e){throw console.error("Failed to get guardrail info:",e),e}},od=async(e,t,r)=>{try{let o=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to patch agent")}let a=await n.json();return console.log("Patch agent response:",a),a}catch(e){throw console.error("Failed to update guardrail:",e),e}},of=async(e,t,r)=>{try{let o=S?`${S}/guardrails/${t}`:`/guardrails/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to update guardrail")}let a=await n.json();return console.log("Update guardrail response:",a),a}catch(e){throw console.error("Failed to update guardrail:",e),e}},op=async(e,t,r,o,n)=>{try{let a=S?`${S}/guardrails/apply_guardrail`:"/guardrails/apply_guardrail",i={guardrail_name:t,text:r};o&&(i.language=o),n&&n.length>0&&(i.entities=n);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.text(),t="Failed to apply guardrail";try{let r=JSON.parse(e);r.error?.message?t=r.error.message:r.detail?t=r.detail:r.message&&(t=r.message)}catch(r){t=e||t}throw _(e),Error(t)}let s=await l.json();return console.log("Apply guardrail response:",s),s}catch(e){throw console.error("Failed to apply guardrail:",e),e}},oh=async(e,t)=>{try{let r=S?`${S}/guardrails/test_custom_code`:"/guardrails/test_custom_code",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text(),t="Failed to test custom code guardrail";try{let r=JSON.parse(e);r.error?.message?t=r.error.message:r.detail?t=r.detail:r.message&&(t=r.message)}catch(r){t=e||t}throw _(e),Error(t)}let n=await o.json();return console.log("Test custom code guardrail response:",n),n}catch(e){throw console.error("Failed to test custom code guardrail:",e),e}},om=async(e,t)=>{try{let r=S?`${S}/guardrails/validate_blocked_words_file`:"/guardrails/validate_blocked_words_file",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({file_content:t})});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to validate blocked words file")}let n=await o.json();return console.log("Validate blocked words file response:",n),n}catch(e){throw console.error("Failed to validate blocked words file:",e),e}},og=async e=>{try{let t=S?`${S}/get/sso_settings`:"/get/sso_settings";console.log("Fetching SSO configuration from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched SSO configuration:",o),o}catch(e){throw console.error("Failed to fetch SSO configuration:",e),e}},ov=async(e,t)=>{try{let r=S?`${S}/update/sso_settings`:"/update/sso_settings";console.log("Updating SSO configuration:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t="object"==typeof e?.detail?e.detail?.error||e.detail?.message:e?.detail,r="string"==typeof t&&t.length>0?t:oM(e);_(r);let n=Error(r);throw e?.detail!==void 0&&(n.detail=e.detail),n.rawError=e,n}let n=await o.json();return console.log("Updated SSO configuration:",n),n}catch(e){throw console.error("Failed to update SSO configuration:",e),e}},oy=async({accessToken:e,page:t=1,page_size:r=50,params:o={}})=>{try{let n=S?`${S}/audit`:"/audit",a=new URLSearchParams;for(let[e,n]of(a.append("page",t.toString()),a.append("page_size",r.toString()),Object.entries(o)))null!=n&&""!==n&&a.append(e,String(n));n+=`?${a.toString()}`;let i=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to fetch audit logs:",e),e}},ob=async e=>{try{let t=S?`${S}/user/available_users`:"/user/available_users",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok){if(404===r.status)return null;let e=await r.text();throw _(e),Error("Network response was not ok")}return await r.json()}catch(e){throw console.error("Failed to fetch remaining users:",e),e}},ow=async e=>{try{let t=S?`${S}/health/license`:"/health/license",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok){if(404===r.status)return null;let e=await r.text();throw _(e),Error("Network response was not ok")}return await r.json()}catch(e){throw console.error("Failed to fetch license info:",e),e}},o$=async(e,t,r)=>{try{let o=S?`${S}/config/pass_through_endpoint/${encodeURIComponent(t)}`:`/config/pass_through_endpoint/${encodeURIComponent(t)}`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return v.default.success("Pass through endpoint updated successfully"),a}catch(e){throw console.error("Failed to update pass through endpoint:",e),e}},oC=async(e,t)=>{try{let r=S?`${S}/config/callback/delete`:"/config/callback/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({callback_name:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete specific callback:",e),e}},ox=async(e,t,r)=>{try{console.log("Testing MCP tools list with config:",JSON.stringify(t));let o=S?`${S}/mcp-rest/test/tools/list`:"/mcp-rest/test/tools/list",n={"Content-Type":"application/json"};e&&(n["x-litellm-api-key"]=e),r?n.Authorization=`Bearer ${r}`:e&&(n[R]=`Bearer ${e}`);let a=await fetch(o,{method:"POST",headers:n,body:JSON.stringify(t)}),i=a.headers.get("content-type");if(!i||!i.includes("application/json")){let e=await a.text();throw console.error("Received non-JSON response:",e),Error(`Received non-JSON response (${a.status}: ${a.statusText}). Check network tab for details.`)}let l=await a.json();if((!a.ok||l.error)&&!l.error)return{tools:[],error:"request_failed",message:l.message||`MCP tools list failed: ${a.status} ${a.statusText}`};return l}catch(e){throw console.error("MCP tools list test error:",e),e}},oE=async(e,t)=>{let r=S?`${S}/v1/mcp/server/oauth/session`:"/v1/mcp/server/oauth/session",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)}),n=await o.json();if(!o.ok)throw Error(oM(n)||n?.error||"Failed to cache MCP server");return n},oS=async(e,t,r)=>{let o=k(),n=encodeURIComponent(t.trim()),a=`${o}/v1/mcp/server/oauth/${n}/register`,i=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json, text/event-stream"},body:JSON.stringify(r)}),l=await i.json();if(!i.ok)throw Error(oM(l)||l?.detail||"Failed to register OAuth client");return l},ok=({serverId:e,clientId:t,redirectUri:r,state:o,codeChallenge:n,scope:a})=>{let i=k(),l=encodeURIComponent(e.trim()),s=`${i}/v1/mcp/server/oauth/${l}/authorize`,c=new URLSearchParams({redirect_uri:r,state:o,response_type:"code",code_challenge:n,code_challenge_method:"S256"});return t&&t.trim().length>0&&c.set("client_id",t),a&&a.trim().length>0&&c.set("scope",a),`${s}?${c.toString()}`},oj=async({serverId:e,code:t,clientId:r,clientSecret:o,codeVerifier:n,redirectUri:a,accessToken:i})=>{let l=k(),s=encodeURIComponent(e.trim()),c=`${l}/v1/mcp/server/oauth/${s}/token`,u=new URLSearchParams;u.set("grant_type","authorization_code"),u.set("code",t),r&&r.trim().length>0&&u.set("client_id",r),o&&o.trim().length>0&&u.set("client_secret",o),u.set("code_verifier",n),u.set("redirect_uri",a);let d={"Content-Type":"application/x-www-form-urlencoded"};i&&(d.Authorization=`Bearer ${i}`);let f=await fetch(c,{method:"POST",headers:d,body:u.toString()}),p=await f.json();if(!f.ok)throw Error(oM(p)||p?.detail||"OAuth token exchange failed");return p},oO=async(e,t,r)=>{try{let o=`${k()}/v1/vector_stores/${t}/search`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({query:r})});if(!n.ok){let e=await n.text();return await _(e),null}return await n.json()}catch(e){throw console.error("Error testing vector store search:",e),e}},oT=async(e,t,r,o)=>{try{let n=`${k()}/v1/search/${t}`,a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({query:r,max_results:o||5})});if(!a.ok){let e=await a.text();return await _(e),null}return await a.json()}catch(e){throw console.error("Error querying search tool:",e),e}},oI=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/dau`:"/tag/dau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch DAU:",e),e}},o_=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/wau`:"/tag/wau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch WAU:",e),e}},oF=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/mau`:"/tag/mau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch MAU:",e),e}},oP=async e=>{try{let t=S?`${S}/tag/distinct`:"/tag/distinct",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch distinct tags:",e),e}},oR=async(e,t,r,o)=>{try{let n=S?`${S}/tag/summary`:"/tag/summary",a=new URLSearchParams,i=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`};a.append("start_date",i(t)),a.append("end_date",i(r)),o&&o.length>0&&o.forEach(e=>{a.append("tag_filters",e)});let l=a.toString();l&&(n+=`?${l}`);let s=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}return await s.json()}catch(e){throw console.error("Failed to fetch user agent summary:",e),e}},oN=async(e,t=1,r=50,o)=>{try{let n=S?`${S}/tag/user-agent/per-user-analytics`:"/tag/user-agent/per-user-analytics",a=new URLSearchParams;a.append("page",t.toString()),a.append("page_size",r.toString()),o&&o.length>0&&o.forEach(e=>{a.append("tag_filters",e)});let i=a.toString();i&&(n+=`?${i}`);let l=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}return await l.json()}catch(e){throw console.error("Failed to fetch per-user analytics:",e),e}},oM=e=>{let t=e?.detail,r=Array.isArray(t)?t.map(e=>e?.msg||JSON.stringify(e)).join("; "):"string"==typeof t?t:void 0;return e?.error&&(e.error.message||("string"==typeof e.error?e.error:void 0))||e?.message||r||JSON.stringify(e)},oB=async(e,t,r)=>{let n=k(),a=r?"/v3/login":"/v2/login",i=n?`${n}${a}`:a,l=JSON.stringify({username:e,password:t}),s=await fetch(i,{method:"POST",body:l,credentials:"include",headers:{"Content-Type":"application/json"}});if(!s.ok)throw Error(oM(await s.json()));let c=await s.json();if(r&&c.code){let e=n?`${n}/v3/login/exchange`:"/v3/login/exchange",t=await fetch(e,{method:"POST",body:JSON.stringify({code:c.code}),credentials:"include",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error(oM(await t.json()));let r=await t.json();return r.token&&(0,o.storeLoginToken)(r.token),r}return c.token&&(0,o.storeLoginToken)(c.token),c},oA=async(e,t)=>{let r=t||k(),o=await fetch(`${r}/v3/login/exchange`,{method:"POST",body:JSON.stringify({code:e}),headers:{"Content-Type":"application/json"}});if(!o.ok)throw Error(oM(await o.json()));let n=await o.json();return n.token&&(document.cookie=`token=${n.token}; path=/; SameSite=Lax`),n.token},oz=async()=>{let e=k(),t=e?`${e}/get/ui_settings`:"/get/ui_settings",r=await fetch(t,{method:"GET"});if(!r.ok)throw Error(oM(await r.json()));return await r.json()},oL=async(e,t)=>{let r=k(),o=r?`${r}/update/ui_settings`:"/update/ui_settings",n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok)throw Error(oM(await n.json()));return await n.json()},oD=async(e,t=!1)=>{try{let r=k(),o=r?`${r}/claude-code/plugins?enabled_only=${t}`:`/claude-code/plugins?enabled_only=${t}`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to fetch Claude Code plugins list:",e),e}},oH=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins`:"/claude-code/plugins",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to register Claude Code plugin:",e),e}},oV=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}/enable`:`/claude-code/plugins/${t}/enable`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to enable plugin "${t}":`,e),e}},oW=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}/disable`:`/claude-code/plugins/${t}/disable`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to disable plugin "${t}":`,e),e}},oU=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}`:`/claude-code/plugins/${t}`,n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to delete plugin "${t}":`,e),e}},oG=async(e,t)=>{let r=S?`${S}/compliance/eu-ai-act`:"/compliance/eu-ai-act",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok)throw Error(await o.text());return o.json()},oq=async(e,t)=>{let r=S?`${S}/compliance/gdpr`:"/compliance/gdpr",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok)throw Error(await o.text());return o.json()},oJ=async e=>{let t=S?`${S}/v1/tool/policy/options`:"/v1/tool/policy/options",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(await r.text());return r.json()},oK=async e=>{let t=S?`${S}/v1/tool/list`:"/v1/tool/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(await r.text());return(await r.json()).tools??[]},oX=async(e,t,r)=>{let o=encodeURIComponent(t),n=S?`${S}/v1/tool/${o}/logs`:`/v1/tool/${o}/logs`,a=new URLSearchParams;null!=r.page&&a.append("page",String(r.page)),null!=r.pageSize&&a.append("page_size",String(r.pageSize)),r.startDate&&a.append("start_date",r.startDate),r.endDate&&a.append("end_date",r.endDate);let i=a.toString()?`${n}?${a.toString()}`:n,l=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok)throw Error(oM(await l.json().catch(()=>({}))));return l.json()},oQ=async(e,t)=>{let r=encodeURIComponent(t),o=S?`${S}/v1/tool/${r}/detail`:`/v1/tool/${r}/detail`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok)throw Error(await n.text());return n.json()},oY=async(e,t,r,o)=>{let n=S?`${S}/v1/tool/policy`:"/v1/tool/policy",a={tool_name:t};null!=r.input_policy&&(a.input_policy=r.input_policy),null!=r.output_policy&&(a.output_policy=r.output_policy),o?.team_id!=null&&(a.team_id=o.team_id||void 0),o?.key_hash!=null&&(a.key_hash=o.key_hash||void 0),o?.key_alias!=null&&(a.key_alias=o.key_alias||void 0);let i=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(a)});if(!i.ok)throw Error(await i.text());return i.json()},oZ=async(e,t,r)=>{let o=encodeURIComponent(t),n=new URLSearchParams;null!=r.team_id&&""!==r.team_id&&n.set("team_id",r.team_id),null!=r.key_hash&&""!==r.key_hash&&n.set("key_hash",r.key_hash);let a=n.toString(),i=S?`${S}/v1/tool/${o}/overrides${a?`?${a}`:""}`:`/v1/tool/${o}/overrides${a?`?${a}`:""}`,l=await fetch(i,{method:"DELETE",headers:{[R]:`Bearer ${e}`}});if(!l.ok)throw Error(await l.text());return l.json()},o0=async(e,t,r)=>{let o=S?`${S}/v1/mcp/server/${t}/oauth-user-credential`:`/v1/mcp/server/${t}/oauth-user-credential`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json().catch(()=>({})),t=e?.detail;throw Error((Array.isArray(t)?t.map(e=>e&&"object"==typeof e?e.msg??JSON.stringify(e):String(e)).join("; "):"string"==typeof t?t:t&&"string"==typeof t.error?t.error:void 0)||"Failed to store OAuth credential")}return n.json()},o1=async(e,t)=>{let r=S?`${S}/v1/mcp/server/${t}/oauth-user-credential`:`/v1/mcp/server/${t}/oauth-user-credential`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json().catch(()=>({})),t=e?.detail;throw Error((Array.isArray(t)?t.map(e=>e&&"object"==typeof e?e.msg??JSON.stringify(e):String(e)).join("; "):"string"==typeof t?t:t&&"string"==typeof t.error?t.error:void 0)||"Failed to revoke OAuth credential")}return o.json()},o2=async(e,t)=>{let r=S?`${S}/v1/mcp/server/${t}/oauth-user-credential/status`:`/v1/mcp/server/${t}/oauth-user-credential/status`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`}});return o.ok?o.json():{server_id:t,has_credential:!1,is_expired:!1}},o4=async e=>{let t=S?`${S}/v1/mcp/user-credentials`:"/v1/mcp/user-credentials",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});return r.ok?r.json():[]},o6=e=>e.split("/").map(encodeURIComponent).join("/"),o3=async(e,t={})=>{let r=S?`${S}/v1/memory`:"/v1/memory",o=new URLSearchParams;t.keyPrefix?o.append("key_prefix",t.keyPrefix):t.key&&o.append("key",t.key),null!=t.page&&o.append("page",String(t.page)),null!=t.pageSize&&o.append("page_size",String(t.pageSize));let n=o.toString()?`${r}?${o.toString()}`:r,a=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok)throw Error(await a.text());return a.json()},o7=async(e,t)=>{let r=S?`${S}/v1/memory`:"/v1/memory",o={key:t.key,value:t.value};void 0!==t.metadata&&(o.metadata=t.metadata);let n=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(o)});if(!n.ok)throw Error(await n.text());return n.json()},o5=async(e,t,r)=>{let o=o6(t),n=S?`${S}/v1/memory/${o}`:`/v1/memory/${o}`,a=await fetch(n,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!a.ok)throw Error(await a.text());return a.json()},o9=async(e,t)=>{let r=o6(t),o=S?`${S}/v1/memory/${r}`:`/v1/memory/${r}`,n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok)throw Error(await n.text())}},266027,869230,469637,e=>{"use strict";let t;var r=e.i(175555),o=e.i(273911),n=e.i(540143),a=e.i(286491),i=e.i(915823),l=e.i(793803),s=e.i(619273),c=e.i(180166),u=class extends i.Subscribable{constructor(e,t){super(),this.options=t,this.#e=e,this.#t=null,this.#r=(0,l.pendingThenable)(),this.bindMethods(),this.setOptions(t)}#e;#o=void 0;#n=void 0;#a=void 0;#i;#l;#r;#t;#s;#c;#u;#d;#f;#p;#h=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#o.addObserver(this),d(this.#o,this.options)?this.#m():this.updateResult(),this.#g())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return f(this.#o,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return f(this.#o,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#v(),this.#y(),this.#o.removeObserver(this)}setOptions(e){let t=this.options,r=this.#o;if(this.options=this.#e.defaultQueryOptions(e),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,s.resolveQueryBoolean)(this.options.enabled,this.#o))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#b(),this.#o.setOptions(this.options),t._defaulted&&!(0,s.shallowEqualObjects)(this.options,t)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#o,observer:this});let o=this.hasListeners();o&&p(this.#o,r,this.options,t)&&this.#m(),this.updateResult(),o&&(this.#o!==r||(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)!==(0,s.resolveQueryBoolean)(t.enabled,this.#o)||(0,s.resolveStaleTime)(this.options.staleTime,this.#o)!==(0,s.resolveStaleTime)(t.staleTime,this.#o))&&this.#w();let n=this.#$();o&&(this.#o!==r||(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)!==(0,s.resolveQueryBoolean)(t.enabled,this.#o)||n!==this.#p)&&this.#C(n)}getOptimisticResult(e){var t,r;let o=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(o,e);return t=this,r=n,(0,s.shallowEqualObjects)(t.getCurrentResult(),r)||(this.#a=n,this.#l=this.options,this.#i=this.#o.state),n}getCurrentResult(){return this.#a}trackResult(e,t){return new Proxy(e,{get:(e,r)=>(this.trackProp(r),t?.(r),"promise"===r&&(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#r.status||this.#r.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(e,r))})}trackProp(e){this.#h.add(e)}getCurrentQuery(){return this.#o}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),r=this.#e.getQueryCache().build(this.#e,t);return r.fetch().then(()=>this.createResult(r,t))}fetch(e){return this.#m({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#a))}#m(e){this.#b();let t=this.#o.fetch(this.options,e);return e?.throwOnError||(t=t.catch(s.noop)),t}#w(){this.#v();let e=(0,s.resolveStaleTime)(this.options.staleTime,this.#o);if(o.environmentManager.isServer()||this.#a.isStale||!(0,s.isValidTimeout)(e))return;let t=(0,s.timeUntilStale)(this.#a.dataUpdatedAt,e);this.#d=c.timeoutManager.setTimeout(()=>{this.#a.isStale||this.updateResult()},t+1)}#$(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#o):this.options.refetchInterval)??!1}#C(e){this.#y(),this.#p=e,!o.environmentManager.isServer()&&!1!==(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)&&(0,s.isValidTimeout)(this.#p)&&0!==this.#p&&(this.#f=c.timeoutManager.setInterval(()=>{(this.options.refetchIntervalInBackground||r.focusManager.isFocused())&&this.#m()},this.#p))}#g(){this.#w(),this.#C(this.#$())}#v(){void 0!==this.#d&&(c.timeoutManager.clearTimeout(this.#d),this.#d=void 0)}#y(){void 0!==this.#f&&(c.timeoutManager.clearInterval(this.#f),this.#f=void 0)}createResult(e,t){let r,o=this.#o,n=this.options,i=this.#a,c=this.#i,u=this.#l,f=e!==o?e.state:this.#n,{state:m}=e,g={...m},v=!1;if(t._optimisticResults){let r=this.hasListeners(),i=!r&&d(e,t),l=r&&p(e,o,t,n);(i||l)&&(g={...g,...(0,a.fetchState)(m.data,e.options)}),"isRestoring"===t._optimisticResults&&(g.fetchStatus="idle")}let{error:y,errorUpdatedAt:b,status:w}=g;r=g.data;let $=!1;if(void 0!==t.placeholderData&&void 0===r&&"pending"===w){let e;i?.isPlaceholderData&&t.placeholderData===u?.placeholderData?(e=i.data,$=!0):e="function"==typeof t.placeholderData?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,void 0!==e&&(w="success",r=(0,s.replaceData)(i?.data,e,t),v=!0)}if(t.select&&void 0!==r&&!$)if(i&&r===c?.data&&t.select===this.#s)r=this.#c;else try{this.#s=t.select,r=t.select(r),r=(0,s.replaceData)(i?.data,r,t),this.#c=r,this.#t=null}catch(e){this.#t=e}this.#t&&(y=this.#t,r=this.#c,b=Date.now(),w="error");let C="fetching"===g.fetchStatus,x="pending"===w,E="error"===w,S=x&&C,k=void 0!==r,j={status:w,fetchStatus:g.fetchStatus,isPending:x,isSuccess:"success"===w,isError:E,isInitialLoading:S,isLoading:S,data:r,dataUpdatedAt:g.dataUpdatedAt,error:y,errorUpdatedAt:b,failureCount:g.fetchFailureCount,failureReason:g.fetchFailureReason,errorUpdateCount:g.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:g.dataUpdateCount>f.dataUpdateCount||g.errorUpdateCount>f.errorUpdateCount,isFetching:C,isRefetching:C&&!x,isLoadingError:E&&!k,isPaused:"paused"===g.fetchStatus,isPlaceholderData:v,isRefetchError:E&&k,isStale:h(e,t),refetch:this.refetch,promise:this.#r,isEnabled:!1!==(0,s.resolveQueryBoolean)(t.enabled,e)};if(this.options.experimental_prefetchInRender){let t=void 0!==j.data,r="error"===j.status&&!t,n=e=>{r?e.reject(j.error):t&&e.resolve(j.data)},a=()=>{n(this.#r=j.promise=(0,l.pendingThenable)())},i=this.#r;switch(i.status){case"pending":e.queryHash===o.queryHash&&n(i);break;case"fulfilled":(r||j.data!==i.value)&&a();break;case"rejected":r&&j.error===i.reason||a()}}return j}updateResult(){let e=this.#a,t=this.createResult(this.#o,this.options);if(this.#i=this.#o.state,this.#l=this.options,void 0!==this.#i.data&&(this.#u=this.#o),(0,s.shallowEqualObjects)(t,e))return;this.#a=t;let r=()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,r="function"==typeof t?t():t;if("all"===r||!r&&!this.#h.size)return!0;let o=new Set(r??this.#h);return this.options.throwOnError&&o.add("error"),Object.keys(this.#a).some(t=>this.#a[t]!==e[t]&&o.has(t))};this.#x({listeners:r()})}#b(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#o)return;let t=this.#o;this.#o=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#g()}#x(e){n.notifyManager.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#a)}),this.#e.getQueryCache().notify({query:this.#o,type:"observerResultsUpdated"})})}};function d(e,t){return!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&void 0===e.state.data&&("error"!==e.state.status||!1!==(0,s.resolveQueryBoolean)(t.retryOnMount,e))||void 0!==e.state.data&&f(e,t,t.refetchOnMount)}function f(e,t,r){if(!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&"static"!==(0,s.resolveStaleTime)(t.staleTime,e)){let o="function"==typeof r?r(e):r;return"always"===o||!1!==o&&h(e,t)}return!1}function p(e,t,r,o){return(e!==t||!1===(0,s.resolveQueryBoolean)(o.enabled,e))&&(!r.suspense||"error"!==e.state.status)&&h(e,r)}function h(e,t){return!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&e.isStaleByTime((0,s.resolveStaleTime)(t.staleTime,e))}e.s(["QueryObserver",0,u],869230),e.i(247167);var m=e.i(271645),g=e.i(912598);e.i(843476);var v=m.createContext((t=!1,{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t})),y=m.createContext(!1);y.Provider;var b=(e,t,r)=>t.fetchOptimistic(e).catch(()=>{r.clearReset()});function w(e,t,r){let a,i=m.useContext(y),l=m.useContext(v),c=(0,g.useQueryClient)(r),u=c.defaultQueryOptions(e);c.getDefaultOptions().queries?._experimental_beforeQuery?.(u);let d=c.getQueryCache().get(u.queryHash);if(u._optimisticResults=i?"isRestoring":"optimistic",u.suspense){let e=e=>"static"===e?e:Math.max(e??1e3,1e3),t=u.staleTime;u.staleTime="function"==typeof t?(...r)=>e(t(...r)):e(t),"number"==typeof u.gcTime&&(u.gcTime=Math.max(u.gcTime,1e3))}a=d?.state.error&&"function"==typeof u.throwOnError?(0,s.shouldThrowError)(u.throwOnError,[d.state.error,d]):u.throwOnError,(u.suspense||u.experimental_prefetchInRender||a)&&!l.isReset()&&(u.retryOnMount=!1),m.useEffect(()=>{l.clearReset()},[l]);let f=!c.getQueryCache().get(u.queryHash),[p]=m.useState(()=>new t(c,u)),h=p.getOptimisticResult(u),w=!i&&!1!==e.subscribed;if(m.useSyncExternalStore(m.useCallback(e=>{let t=w?p.subscribe(n.notifyManager.batchCalls(e)):s.noop;return p.updateResult(),t},[p,w]),()=>p.getCurrentResult(),()=>p.getCurrentResult()),m.useEffect(()=>{p.setOptions(u)},[u,p]),u?.suspense&&h.isPending)throw b(u,p,l);if((({result:e,errorResetBoundary:t,throwOnError:r,query:o,suspense:n})=>e.isError&&!t.isReset()&&!e.isFetching&&o&&(n&&void 0===e.data||(0,s.shouldThrowError)(r,[e.error,o])))({result:h,errorResetBoundary:l,throwOnError:u.throwOnError,query:d,suspense:u.suspense}))throw h.error;if(c.getDefaultOptions().queries?._experimental_afterQuery?.(u,h),u.experimental_prefetchInRender&&!o.environmentManager.isServer()&&h.isLoading&&h.isFetching&&!i){let e=f?b(u,p,l):d?.promise;e?.catch(s.noop).finally(()=>{p.updateResult()})}return u.notifyOnChangeProps?h:p.trackResult(h)}e.s(["useBaseQuery",0,w],469637),e.s(["useQuery",0,function(e,t){return w(e,u,t)}],266027)},243652,e=>{"use strict";e.s(["createQueryKeys",0,function(e){let t=[e];return{all:t,lists:()=>[...t,"list"],list:e=>[...t,"list",{params:e}],details:()=>[...t,"detail"],detail:e=>[...t,"detail",e]}}])},947293,e=>{"use strict";class t extends Error{}t.prototype.name="InvalidTokenError",e.s(["jwtDecode",0,function(e,r){let o;if("string"!=typeof e)throw new t("Invalid token specified: must be a string");r||(r={});let n=+(!0!==r.header),a=e.split(".")[n];if("string"!=typeof a)throw new t(`Invalid token specified: missing part #${n+1}`);try{o=function(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw Error("base64 string is not of the correct length")}try{var r;return r=t,decodeURIComponent(atob(r).replace(/(.)/g,(e,t)=>{let r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r}))}catch(e){return atob(t)}}(a)}catch(e){throw new t(`Invalid token specified: invalid base64 for part #${n+1} (${e.message})`)}try{return JSON.parse(o)}catch(e){throw new t(`Invalid token specified: invalid json for part #${n+1} (${e.message})`)}}])},612256,e=>{"use strict";var t=e.i(764205),r=e.i(266027);let o=(0,e.i(243652).createQueryKeys)("uiConfig");e.s(["useUIConfig",0,()=>(0,r.useQuery)({queryKey:o.list({}),queryFn:async()=>await (0,t.getUiConfig)(),staleTime:864e5,gcTime:864e5})])}]); \ No newline at end of file +Allowed values: ${t.enum.join(", ")}`:E)}),children:r},e)})}):null};var v=e.i(727749);let y=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`},b=async e=>{try{let t=S?`${S}/callbacks/configs`:"/callbacks/configs",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},w=async e=>{try{let t=S?`${S}/in_product_nudges`:"/in_product_nudges",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get in-product nudges:",e),e}},$=t.default.env.NEXT_PUBLIC_BASE_URL?t.default.env.NEXT_PUBLIC_BASE_URL:null,C="/",x="litellm_worker_url",E=window.localStorage.getItem(x),S=(()=>{if(!E)return null;try{let e=new URL(E);if("http:"===e.protocol||"https:"===e.protocol)return E}catch{}return window.localStorage.removeItem(x),null})()??$;console.log=function(){};let k=()=>{if(S)return S;let e=window.location;return e?.origin??""};function j(e){(!e||function(e){try{let t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch{return!1}}(e))&&(e?window.localStorage.setItem(x,e):window.localStorage.removeItem(x),S=e??$)}let O="POST",T="DELETE",I=0,_=async e=>{let t=Date.now();if(t-I>6e4){if(("string"==typeof e?e:JSON.stringify(e)).includes("Authentication Error - Expired Key")){v.default.info("UI Session Expired. Logging out."),I=t,(0,o.clearTokenCookies)();let e=window.location;e&&(window.location.href=e.pathname)}I=t}else console.log("Error suppressed to prevent spam:",e)},F=async()=>{let e=S?`${S}/public/providers/fields`:"/public/providers/fields",t=await fetch(e,{method:"GET"});if(!t.ok){let e=await t.text();throw console.error("Failed to fetch provider create metadata:",t.status,e),Error("Failed to load provider configuration")}return await t.json()},P=async()=>{let e=S?`${S}/public/agents/fields`:"/public/agents/fields",t=await fetch(e,{method:"GET"});if(!t.ok){let e=await t.text();throw console.error("Failed to fetch agent create metadata:",t.status,e),Error("Failed to load agent configuration")}return await t.json()},R="Authorization";function N(e="Authorization"){console.log(`setGlobalLitellmHeaderName: ${e}`),R=e}function M(){return R}let B=async(e,t)=>{let r=S?`${S}/model_group/make_public`:"/model_group/make_public";return(await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({model_groups:t})})).json()},A=async()=>{console.log("Getting UI config");let e=$?`${$}/litellm/.well-known/litellm-ui-config`:"/litellm/.well-known/litellm-ui-config",r=await fetch(e),o=await r.json();return console.log("jsonData in getUiConfig:",o),((e,r=null)=>{if(window.localStorage.getItem(x))return;let o=window.location,n=t.default.env.NEXT_PUBLIC_BASE_URL?t.default.env.NEXT_PUBLIC_BASE_URL:o?.origin??null,a=r||n;if(console.log("proxyBaseUrl:",S),console.log("serverRootPath:",e),!a)return console.log("Updated proxyBaseUrl:",S=S??null);e.length>0&&!a.endsWith(e)&&"/"!=e&&(a+=e),console.log("Updated proxyBaseUrl:",S=a)})(o.server_root_path,o.proxy_base_url),o},z=async()=>{let e=S?`${S}/public/model_hub/info`:"/public/model_hub/info",t=await fetch(e);return await t.json()},L=async()=>{let e=S?`${S}/openapi.json`:"/openapi.json",t=await fetch(e);return await t.json()},D=async()=>{try{let e=S?`${S}/public/litellm_model_cost_map`:"/public/litellm_model_cost_map",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}}),r=await t.json();return console.log(`received litellm model cost data: ${r}`),r}catch(e){throw console.error("Failed to get model cost map:",e),e}},H=async e=>{try{let t=S?`${S}/reload/model_cost_map`:"/reload/model_cost_map",r=await fetch(t,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),o=await r.json();return console.log(`Model cost map reload response: ${o}`),o}catch(e){throw console.error("Failed to reload model cost map:",e),e}},V=async(e,t)=>{try{let r=S?`${S}/schedule/model_cost_map_reload?hours=${t}`:`/schedule/model_cost_map_reload?hours=${t}`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),n=await o.json();return console.log(`Schedule model cost map reload response: ${n}`),n}catch(e){throw console.error("Failed to schedule model cost map reload:",e),e}},W=async e=>{try{let t=S?`${S}/schedule/model_cost_map_reload`:"/schedule/model_cost_map_reload",r=await fetch(t,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}}),o=await r.json();return console.log(`Cancel model cost map reload response: ${o}`),o}catch(e){throw console.error("Failed to cancel model cost map reload:",e),e}},U=async e=>{try{let t=S?`${S}/model/cost_map/source`:"/model/cost_map/source",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw Error(`HTTP ${r.status}: ${e}`)}let o=await r.json();return console.log("Model cost map source info:",o),o}catch(e){throw console.error("Failed to get model cost map source info:",e),e}},G=async e=>{try{let t=S?`${S}/schedule/model_cost_map_reload/status`:"/schedule/model_cost_map_reload/status";console.log("Fetching status from URL:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){console.error(`Status request failed with status: ${r.status}`);let e=await r.text();throw console.error("Error response:",e),Error(`HTTP ${r.status}: ${e}`)}let o=await r.json();return console.log("Model cost map reload status:",o),o}catch(e){throw console.error("Failed to get model cost map reload status:",e),e}},q=async(e,t)=>{try{let o=S?`${S}/model/new`:"/model/new",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),r.default.destroy(),v.default.success(`Model ${t.model_name} created successfully`),a}catch(e){throw console.error("Failed to create key:",e),e}},J=async(e,t)=>{console.log(`model_id in model delete call: ${t}`);try{let r=S?`${S}/model/delete`:"/model/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},K=async(e,t)=>{if(console.log(`budget_id in budget delete call: ${t}`),null!=e)try{let r=S?`${S}/budget/delete`:"/budget/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},X=async(e,t)=>{try{console.log("Form Values in budgetCreateCall:",t),console.log("Form Values after check:",t);let r=S?`${S}/budget/new`:"/budget/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Q=async(e,t)=>{try{console.log("Form Values in budgetUpdateCall:",t),console.log("Form Values after check:",t);let r=S?`${S}/budget/update`:"/budget/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Y=async(e,t)=>{try{let r=S?`${S}/invitation/new`:"/invitation/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},Z=async e=>{try{let t=S?`${S}/alerting/settings`:"/alerting/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},ee=async(e,t)=>{try{for(let e of(console.log("Form Values in keyCreateServiceAccountCall:",t),t.description&&(t.metadata||(t.metadata={}),t.metadata.description=t.description,delete t.description,t.metadata=JSON.stringify(t.metadata)),h))if(t[e]){console.log(`formValues.${e}:`,t[e]);try{t[e]=JSON.parse(t[e])}catch(t){throw Error(`Failed to parse ${e}: `+t)}}console.log("Form Values after check:",t);let r=S?`${S}/key/service-account/generate`:"/key/service-account/generate",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},et=async(e,t,r)=>{try{for(let e of(console.log("Form Values in keyCreateCall:",r),r.description&&(r.metadata||(r.metadata={}),r.metadata.description=r.description,delete r.description,r.metadata=JSON.stringify(r.metadata)),h))if(r[e]){console.log(`formValues.${e}:`,r[e]);try{r[e]=JSON.parse(r[e])}catch(t){throw Error(`Failed to parse ${e}: `+t)}}console.log("Form Values after check:",r);let o=S?`${S}/key/generate`:"/key/generate",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t,...r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},er=async(e,t,r,o,n,a)=>{let i=S?`${S}/key/generate`:"/key/generate",l={agent_id:t,key_alias:r,models:o.length>0?o:[]};a&&(l.team_id=a),n&&Object.keys(n).length>0&&(l.metadata=n);let s=await fetch(i,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(l)});if(!s.ok)throw _(await s.text()),Error("Failed to create key for agent");return s.json()},eo=async(e,t,r)=>{try{if(console.log("Form Values in keyCreateCall:",r),r.description&&(r.metadata||(r.metadata={}),r.metadata.description=r.description,delete r.description,r.metadata=JSON.stringify(r.metadata)),r.auto_create_key=!1,r.metadata){console.log("formValues.metadata:",r.metadata);try{r.metadata=JSON.parse(r.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}console.log("Form Values after check:",r);let o=S?`${S}/user/new`:"/user/new",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_id:t,...r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},en=async(e,t)=>{try{let r=S?`${S}/key/delete`:"/key/delete";console.log("in keyDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({keys:[t]})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to create key:",e),e}},ea=async(e,t)=>{try{let r=S?`${S}/user/delete`:"/user/delete";console.log("in userDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({user_ids:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete user(s):",e),e}},ei=async(e,t)=>{try{let r=S?`${S}/team/delete`:"/team/delete";console.log("in teamDeleteCall:",t);let o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_ids:[t]})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete key:",e),e}},el=async(e,t=null,r=null,o=null,n=null,a=null,i=null,l=null,s=null,c=null,u=null)=>{try{let d=S?`${S}/user/list`:"/user/list";console.log("in userListCall");let f=new URLSearchParams;if(t&&t.length>0){let e=t.join(",");f.append("user_ids",e)}r&&f.append("page",r.toString()),o&&f.append("page_size",o.toString()),n&&f.append("user_email",n),a&&f.append("role",a),i&&f.append("team",i),l&&f.append("sso_user_ids",l),s&&f.append("sort_by",s),c&&f.append("sort_order",c),u&&u.length>0&&f.append("organization_ids",u.join(","));let p=f.toString();p&&(d+=`?${p}`);let h=await fetch(d,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!h.ok){let e=await h.json(),t=oM(e);throw _(t),Error(t)}let m=await h.json();return console.log("/user/list API Response:",m),m}catch(e){throw console.error("Failed to create key:",e),e}},es=async(e,t)=>{try{let r=S?`${S}/v2/user/info`:"/v2/user/info";t&&(r+=`?user_id=${encodeURIComponent(t)}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to fetch user info v2:",e),e}},ec=async(e,t)=>{try{let r=S?`${S}/team/info`:"/team/info";t&&(r=`${r}?team_id=${encodeURIComponent(t)}`),console.log("in teamInfoCall");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eu=async(e,t,r=null,o=null,n=null,a=1,i=10,l=null,s=null)=>{try{let a=S?`${S}/v2/team/list`:"/v2/team/list";console.log("in teamInfoCall");let i=new URLSearchParams;r&&i.append("user_id",r.toString()),t&&i.append("organization_id",t.toString()),o&&i.append("team_id",o.toString()),n&&i.append("team_alias",n.toString());let l=i.toString();l&&(a+=`?${l}`);let s=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}let c=await s.json();return console.log("/v2/team/list API Response:",c),c}catch(e){throw console.error("Failed to create key:",e),e}},ed=async(e,t,r=null,o=null,n=null)=>{try{let a=S?`${S}/team/list`:"/team/list";console.log("in teamInfoCall");let i=new URLSearchParams;r&&i.append("user_id",r.toString()),t&&i.append("organization_id",t.toString()),o&&i.append("team_id",o.toString()),n&&i.append("team_alias",n.toString());let l=i.toString();l&&(a+=`?${l}`);let s=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}let c=await s.json();return console.log("/team/list API Response:",c),c}catch(e){throw console.error("Failed to create key:",e),e}},ef=async e=>{try{let t=S?`${S}/team/available`:"/team/available";console.log("in availableTeamListCall");let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("/team/available_teams API Response:",o),o}catch(e){throw e}},ep=async(e,t=null,r=null)=>{try{let o=S?`${S}/organization/list`:"/organization/list",n=new URLSearchParams;t&&n.append("org_id",t.toString()),r&&n.append("org_alias",r.toString());let a=n.toString();a&&(o+=`?${a}`);let i=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to create key:",e),e}},eh=async(e,t)=>{try{let r=S?`${S}/organization/info`:"/organization/info";t&&(r=`${r}?organization_id=${t}`),console.log("in teamInfoCall");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},em=async(e,t)=>{try{if(console.log("Form Values in organizationCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw console.error("Failed to parse metadata:",e),Error("Failed to parse metadata: "+e)}}let r=S?`${S}/organization/new`:"/organization/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eg=async(e,t)=>{try{console.log("Form Values in organizationUpdateCall:",t);let r=S?`${S}/organization/update`:"/organization/update",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Update Team Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},ev=async(e,t)=>{try{let r=S?`${S}/organization/delete`:"/organization/delete",o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_ids:[t]})});if(!o.ok){let e=await o.text();throw _(e),Error(`Error deleting organization: ${e}`)}return await o.json()}catch(e){throw console.error("Failed to delete organization:",e),e}},ey=async(e,t)=>{try{let r=S?`${S}/utils/transform_request`:"/utils/transform_request",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create key:",e),e}},eb=async({accessToken:e,endpoint:t,startTime:r,endTime:o,page:n=1,extraQueryParams:a})=>{try{let i,l,s,c,u=(i=t.startsWith("/")?t:`/${t}`,l=S?`${S}${i}`:i,(s=new URLSearchParams).append("start_date",y(r)),s.append("end_date",y(o)),s.append("page_size","1000"),s.append("page",n.toString()),s.append("timezone",new Date().getTimezoneOffset().toString()),a&&Object.entries(a).forEach(([e,t])=>{((e,t,r)=>{if(null!=r){if(Array.isArray(r)){r.length>0&&e.append(t,r.join(","));return}e.append(t,`${r}`)}})(s,e,t)}),(c=s.toString())?`${l}?${c}`:l),d=await fetch(u,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!d.ok){let e=await d.json(),t=oM(e);throw _(t),Error(t)}return await d.json()}catch(e){throw console.error(`Failed to fetch daily activity (${t}):`,e),e}},ew=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/user/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{user_id:n}}),e$=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/tag/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{tags:n}}),eC=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/team/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{team_ids:n,exclude_team_ids:"litellm-dashboard"}}),ex=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/organization/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{organization_ids:n}}),eE=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/customer/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{end_user_ids:n}}),eS=async(e,t,r,o=1,n=null)=>eb({accessToken:e,endpoint:"/agent/daily/activity",startTime:t,endTime:r,page:o,extraQueryParams:{agent_ids:n}}),ek=async e=>{try{let t=S?`${S}/onboarding/get_token`:"/onboarding/get_token";t+=`?invite_link=${e}`;let r=await fetch(t,{method:"GET",headers:{"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to create key:",e),e}},ej=async(e,t,r,o)=>{let n=S?`${S}/onboarding/claim_token`:"/onboarding/claim_token";try{let a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({invitation_link:t,user_id:r,password:o})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to delete key:",e),e}},eO=async(e,t,r)=>{try{let o=S?`${S}/key/${t}/regenerate`:`/key/${t}/regenerate`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Regenerate key Response:",a),a}catch(e){throw console.error("Failed to regenerate key:",e),e}},eT=!1,eI=null,e_=async(e,t,r,o=1,n=50,a,i,l,s,c)=>{try{console.log("modelInfoCall:",e,t,r,o,n,a,i,l,s,c);let u=S?`${S}/v2/model/info`:"/v2/model/info",d=new URLSearchParams;d.append("include_team_models","true"),d.append("page",o.toString()),d.append("size",n.toString()),a&&a.trim()&&d.append("search",a.trim()),i&&i.trim()&&d.append("modelId",i.trim()),l&&l.trim()&&d.append("teamId",l.trim()),s&&s.trim()&&d.append("sortBy",s.trim()),c&&c.trim()&&d.append("sortOrder",c.trim()),d.toString()&&(u+=`?${d.toString()}`);let f=await fetch(u,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!f.ok){let e=await f.text();throw e+=`error shown=${eT}`,eT||(e.includes("No model list passed")&&(e="No Models Exist. Click Add Model to get started."),v.default.info(e),eT=!0,eI&&clearTimeout(eI),eI=setTimeout(()=>{eT=!1},1e4)),Error("Network response was not ok")}let p=await f.json();return console.log("modelInfoCall:",p),p}catch(e){throw console.error("Failed to create key:",e),e}},eF=async(e,t)=>{try{let r=S?`${S}/v1/model/info`:"/v1/model/info";r+=`?litellm_model_id=${t}`;let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("modelInfoV1Call:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},eP=async()=>{let e=S?`${S}/public/model_hub`:"/public/model_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`modelHubPublicModelsCall failed with status ${t.status}`),[])},eR=async()=>{let e=S?`${S}/public/agent_hub`:"/public/agent_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`agentHubPublicModelsCall failed with status ${t.status}`),[])},eN=async()=>{let e=S?`${S}/public/mcp_hub`:"/public/mcp_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`mcpHubPublicServersCall failed with status ${t.status}`),[])},eM=async()=>{let e=S?`${S}/public/skill_hub`:"/public/skill_hub",t=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});return t.ok?t.json():(console.error(`skillHubPublicCall failed with status ${t.status}`),{plugins:[]})},eB=async e=>{try{let t=S?`${S}/model_group/info`:"/model_group/info",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("modelHubCall:",o),o}catch(e){throw console.error("Failed to create key:",e),e}},eA=async e=>{try{let t=S?`${S}/get/allowed_ips`:"/get/allowed_ips",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("getAllowedIPs:",o),o.data}catch(e){throw console.error("Failed to get allowed IPs:",e),e}},ez=async(e,t)=>{try{let r=S?`${S}/add/allowed_ip`:"/add/allowed_ip",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({ip:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("addAllowedIP:",n),n}catch(e){throw console.error("Failed to add allowed IP:",e),e}},eL=async(e,t)=>{try{let r=S?`${S}/delete/allowed_ip`:"/delete/allowed_ip",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({ip:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("deleteAllowedIP:",n),n}catch(e){throw console.error("Failed to delete allowed IP:",e),e}},eD=async(e,t)=>{try{let r=S?`${S}/model_hub/update_useful_links`:"/model_hub/update_useful_links",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({useful_links:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create key:",e),e}},eH=async(e,t,r,o=!1,n=null,a=!1,i=!1,l)=>{console.log("in /models calls, globalLitellmHeaderName",R);try{let t=S?`${S}/models`:"/models",r=new URLSearchParams;r.append("include_model_access_groups","True"),!0===o&&r.append("return_wildcard_routes","True"),!0===i&&r.append("only_model_access_groups","True"),n&&r.append("team_id",n.toString()),l&&r.append("scope",l),r.toString()&&(t+=`?${r.toString()}`);let a=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return await a.json()}catch(e){throw console.error("Failed to create key:",e),e}},eV=async e=>{try{let t=S?`${S}/global/spend/teams`:"/global/spend/teams";console.log("in teamSpendLogsCall:",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eW=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/tags`:"/global/spend/tags";t&&r&&(n=`${n}?start_date=${t}&end_date=${r}`),o&&(n+=`&tags=${o.join(",")}`),console.log("in tagsSpendLogsCall:",n);let a=await fetch(`${n}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to create key:",e),e}},eU=async e=>{try{let t=S?`${S}/global/spend/all_tag_names`:"/global/spend/all_tag_names";console.log("in global/spend/all_tag_names call",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eG=async e=>{try{let t=S?`${S}/customer/list`:"/customer/list";console.log("in customer/list",t);let r=await fetch(`${t}`,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to fetch end users:",e),e}},eq=async(e,t)=>{try{let r=S?`${S}/user/filter/ui`:"/user/filter/ui",o=new URLSearchParams;t.get("user_email")&&o.append("user_email",t.get("user_email")),t.get("user_id")&&o.append("user_id",t.get("user_id")),t.get("team_id")&&o.append("team_id",t.get("team_id"));let n=o.toString(),a=n?`${r}?${n}`:r,i=await fetch(a,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to create key:",e),e}},eJ=async({accessToken:e,start_date:t,end_date:r,page:o=1,page_size:n=50,params:a={}})=>{try{let i=S?`${S}/spend/logs/ui`:"/spend/logs/ui",l=new URLSearchParams;for(let[e,i]of(l.append("start_date",t),l.append("end_date",r),l.append("page",o.toString()),l.append("page_size",n.toString()),Object.entries(a)))null!=i&&("min_spend"===e||"max_spend"===e?l.append(e,i.toString()):"string"==typeof i&&""!==i&&l.append(e,String(i)));let s=l.toString();s&&(i+=`?${s}`);let c=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!c.ok){let e=await c.json(),t=oM(e);throw _(t),Error(t)}let u=await c.json();return console.log("Spend Logs Response:",u),u}catch(e){throw console.error("Failed to fetch spend logs:",e),e}},eK=async e=>{try{let t=S?`${S}/global/spend/logs`:"/global/spend/logs",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eX=async e=>{try{let t=S?`${S}/global/spend/keys?limit=5`:"/global/spend/keys?limit=5",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},eQ=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/end_users`:"/global/spend/end_users",a="";a=t?JSON.stringify({api_key:t,startTime:r,endTime:o}):JSON.stringify({startTime:r,endTime:o});let i={method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:a},l=await fetch(n,i);if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}let s=await l.json();return console.log(s),s}catch(e){throw console.error("Failed to create key:",e),e}},eY=async(e,t,r,o)=>{try{let n=S?`${S}/global/spend/provider`:"/global/spend/provider";r&&o&&(n+=`?start_date=${r}&end_date=${o}`),t&&(n+=`&api_key=${t}`);let a={method:"GET",headers:{[R]:`Bearer ${e}`}},i=await fetch(n,a);if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}let l=await i.json();return console.log(l),l}catch(e){throw console.error("Failed to fetch spend data:",e),e}},eZ=async(e,t,r)=>{try{let o=S?`${S}/global/activity`:"/global/activity";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e0=async(e,t,r)=>{try{let o=S?`${S}/global/activity/cache_hits`:"/global/activity/cache_hits";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e1=async(e,t,r)=>{try{let o=S?`${S}/global/activity/model`:"/global/activity/model";t&&r&&(o+=`?start_date=${t}&end_date=${r}`);let n={method:"GET",headers:{[R]:`Bearer ${e}`}},a=await fetch(o,n);if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log(i),i}catch(e){throw console.error("Failed to fetch spend data:",e),e}},e2=async e=>{try{let t=S?`${S}/global/spend/models?limit=5`:"/global/spend/models?limit=5",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log(o),o}catch(e){throw console.error("Failed to create key:",e),e}},e4=async(e,t)=>{try{let r=S?`${S}/v2/key/info`:"/v2/key/info",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({keys:t})});if(!o.ok){let e=await o.text();if(e.includes("Invalid proxy server token passed"))throw Error("Invalid proxy server token passed");throw _(e),Error("Network response was not ok")}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to create key:",e),e}},e6=async(e,t,r,o)=>{try{console.log("Sending model connection test request:",JSON.stringify(t));let n=S?`${S}/health/test_connection`:"/health/test_connection",a=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({litellm_params:t,model_info:r,mode:o})}),i=a.headers.get("content-type");if(!i||!i.includes("application/json")){let e=await a.text();throw console.error("Received non-JSON response:",e),Error(`Received non-JSON response (${a.status}: ${a.statusText}). Check network tab for details.`)}let l=await a.json();if((!a.ok||"error"===l.status)&&"error"!==l.status)return{status:"error",message:l.error?.message||`Connection test failed: ${a.status} ${a.statusText}`};return l}catch(e){throw console.error("Model connection test error:",e),e}},e3=async(e,t)=>{try{console.log("entering keyInfoV1Call");let r=S?`${S}/key/info`:"/key/info";r=`${r}?key=${t}`;let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(console.log("response",o),!o.ok){let e=await o.text();_(e),v.default.fromBackend("Failed to fetch key info - "+e)}let n=await o.json();return console.log("data",n),n}catch(e){throw console.error("Failed to fetch key info:",e),e}},e7=async(e,t,r,o,n,a,i,l,s=null,c=null,u=null,d=null)=>{try{let f=S?`${S}/key/list`:"/key/list";console.log("in keyListCall");let p=new URLSearchParams;r&&p.append("team_id",r.toString()),t&&p.append("organization_id",t.toString()),o&&p.append("key_alias",o),a&&p.append("key_hash",a),n&&p.append("user_id",n.toString()),i&&p.append("page",i.toString()),l&&p.append("size",l.toString()),s&&p.append("sort_by",s),c&&p.append("sort_order",c),u&&p.append("expand",u),d&&p.append("status",d),p.append("return_full_object","true"),p.append("include_team_keys","true"),p.append("include_created_by_keys","true");let h=p.toString();h&&(f+=`?${h}`);let m=await fetch(f,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!m.ok){let e=await m.json(),t=oM(e);throw _(t),Error(t)}let g=await m.json();return console.log("/team/list API Response:",g),g}catch(e){throw console.error("Failed to create key:",e),e}},e5=async(e,t=1,r=50,o,n)=>{try{let a=new URLSearchParams(Object.entries({page:String(t),size:String(r),...o?{search:o}:{},...n?{team_id:n}:{}})),i=S?`${S}/key/aliases`:"/key/aliases";i=`${i}?${a}`;let l=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}let s=await l.json();return console.log("/key/aliases API Response:",s),s}catch(e){throw console.error("Failed to fetch key aliases:",e),e}},e9=async(e,t,r,o=null)=>{try{let n=S?`${S}/user/daily/activity/aggregated`:"/user/daily/activity/aggregated",a=new URLSearchParams,i=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`};a.append("start_date",i(t)),a.append("end_date",i(r)),a.append("timezone",new Date().getTimezoneOffset().toString()),o&&a.append("user_id",o);let l=a.toString();l&&(n+=`?${l}`);let s=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}return await s.json()}catch(e){throw console.error("Failed to fetch aggregated user daily activity:",e),e}},e8=async e=>{try{let t=S?`${S}/user/available_roles`:"/user/available_roles",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("response from user/available_role",o),o}catch(e){throw e}},te=async(e,t)=>{try{if(console.log("Form Values in teamCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let r=S?`${S}/team/new`:"/team/new",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tt=async(e,t)=>{try{if(console.log("Form Values in credentialCreateCall:",t),t.metadata){console.log("formValues.metadata:",t.metadata);try{t.metadata=JSON.parse(t.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let r=S?`${S}/credentials`:"/credentials",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tr=async e=>{try{let t=S?`${S}/credentials`:"/credentials";console.log("in credentialListCall");let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("/credentials API Response:",o),o}catch(e){throw console.error("Failed to create key:",e),e}},to=async(e,t,r)=>{try{let o=S?`${S}/credentials`:"/credentials";t?o+=`/by_name/${t}`:r&&(o+=`/by_model/${r}`),console.log("in credentialListCall");let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("/credentials API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tn=async(e,t)=>{try{let r=S?`${S}/credentials/${t}`:`/credentials/${t}`;console.log("in credentialDeleteCall:",t);let o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log(n),n}catch(e){throw console.error("Failed to delete key:",e),e}},ta=async(e,t,r)=>{try{if(console.log("Form Values in credentialUpdateCall:",r),r.metadata){console.log("formValues.metadata:",r.metadata);try{r.metadata=JSON.parse(r.metadata)}catch(e){throw Error("Failed to parse metadata: "+e)}}let o=S?`${S}/credentials/${t}`:`/credentials/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},ti=async(e,t)=>{try{if(console.log("Form Values in keyUpdateCall:",t),t.model_tpm_limit){console.log("formValues.model_tpm_limit:",t.model_tpm_limit);try{t.model_tpm_limit=JSON.parse(t.model_tpm_limit)}catch(e){throw Error("Failed to parse model_tpm_limit: "+e)}}if(t.model_rpm_limit){console.log("formValues.model_rpm_limit:",t.model_rpm_limit);try{t.model_rpm_limit=JSON.parse(t.model_rpm_limit)}catch(e){throw Error("Failed to parse model_rpm_limit: "+e)}}let r=S?`${S}/key/update`:"/key/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let n=await o.json();return console.log("Update key Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},tl=async(e,t)=>{try{console.log("Form Values in teamUpateCall:",t);let r=S?`${S}/team/update`:"/team/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),console.error("Error response from the server:",e),v.default.fromBackend("Failed to update team settings: "+e),Error(e)}let n=await o.json();return console.log("Update Team Response:",n),n}catch(e){throw console.error("Failed to update team:",e),e}},ts=async(e,t,r)=>{try{console.log("Form Values in modelUpateCall:",t);let o=S?`${S}/model/${r}/update`:`/model/${r}/update`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error update from the server:",e),Error("Network response was not ok")}let a=await n.json();return console.log("Update model Response:",a),a}catch(e){throw console.error("Failed to update model:",e),e}},tc=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/team/member_add`:"/team/member_add",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_id:t,member:r})});if(!n.ok){let e=await n.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to add team member",o=Error(r);throw o.raw=t,o}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tu=async(e,t,r,o,n)=>{try{console.log("Bulk add team members:",{teamId:t,members:r,maxBudgetInTeam:o});let a=S?`${S}/team/bulk_member_add`:"/team/bulk_member_add",i={team_id:t};n?i.all_users=!0:i.members=r,null!=o&&(i.max_budget_in_team=o);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to bulk add team members",o=Error(r);throw o.raw=t,o}let s=await l.json();return console.log("Bulk team member add API Response:",s),s}catch(e){throw console.error("Failed to bulk add team members:",e),e}},td=async(e,t,r)=>{try{console.log("Form Values in teamMemberUpdateCall:",r),console.log("Budget value:",r.max_budget_in_team),console.log("TPM limit:",r.tpm_limit),console.log("RPM limit:",r.rpm_limit);let o=S?`${S}/team/member_update`:"/team/member_update",n={team_id:t,role:r.role,user_id:r.user_id};void 0!==r.user_email&&(n.user_email=r.user_email),void 0!==r.max_budget_in_team&&null!==r.max_budget_in_team&&(n.max_budget_in_team=r.max_budget_in_team),void 0!==r.tpm_limit&&null!==r.tpm_limit&&(n.tpm_limit=r.tpm_limit),void 0!==r.rpm_limit&&null!==r.rpm_limit&&(n.rpm_limit=r.rpm_limit),void 0!==r.allowed_models&&(n.allowed_models=r.allowed_models),console.log("Final request body:",n);let a=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(n)});if(!a.ok){let e=await a.text(),t={};try{t=JSON.parse(e)}catch(t){console.warn("Failed to parse error body as JSON:",e)}let r=t?.detail?.error||"Failed to add team member",o=Error(r);throw o.raw=t,o}let i=await a.json();return console.log("API Response:",i),i}catch(e){throw console.error("Failed to update team member:",e),e}},tf=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/team/member_delete`:"/team/member_delete",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({team_id:t,...void 0!==r.user_email&&{user_email:r.user_email},...void 0!==r.user_id&&{user_id:r.user_id}})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create key:",e),e}},tp=async(e,t,r)=>{try{console.log("Form Values in teamMemberAddCall:",r);let o=S?`${S}/organization/member_add`:"/organization/member_add",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,member:r})});if(!n.ok){let e=await n.text();throw _(e),console.error("Error response from the server:",e),Error(e)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to create organization member:",e),e}},th=async(e,t,r)=>{try{console.log("Form Values in organizationMemberDeleteCall:",r);let o=S?`${S}/organization/member_delete`:"/organization/member_delete",n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,user_id:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to delete organization member:",e),e}},tm=async(e,t,r)=>{try{console.log("Form Values in organizationMemberUpdateCall:",r);let o=S?`${S}/organization/member_update`:"/organization/member_update",n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({organization_id:t,...r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("API Response:",a),a}catch(e){throw console.error("Failed to update organization member:",e),e}},tg=async(e,t,r)=>{try{console.log("Form Values in userUpdateUserCall:",t);let o=S?`${S}/user/update`:"/user/update",n={...t};null!==r&&(n.user_role=r),n=JSON.stringify(n);let a=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:n});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}let i=await a.json();return console.log("API Response:",i),i}catch(e){throw console.error("Failed to create key:",e),e}},tv=async(e,t,r,o=!1)=>{try{let n;console.log("Form Values in userUpdateUserCall:",t);let a=S?`${S}/user/bulk_update`:"/user/bulk_update";if(o)n=JSON.stringify({all_users:!0,user_updates:t});else if(r&&r.length>0){let e=[];for(let o of r)e.push({user_id:o,...t});n=JSON.stringify({users:e})}else throw Error("Must provide either userIds or set allUsers=true");let i=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:n});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}let l=await i.json();return console.log("API Response:",l),l}catch(e){throw console.error("Failed to create key:",e),e}},ty=async(e,t)=>{try{let r=S?`${S}/health/services?service=${t}`:`/health/services?service=${t}`;console.log("Checking Slack Budget Alerts service health");let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}return await o.json()}catch(e){throw console.error("Failed to perform health check:",e),e}},tb=async e=>{try{let t=S?`${S}/budget/list`:"/budget/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tw=async(e,t,r)=>{try{let t=S?`${S}/get/config/callbacks`:"/get/config/callbacks",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},t$=async e=>{try{let t=S?`${S}/config/list?config_type=general_settings`:"/config/list?config_type=general_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tC=async e=>{try{let t=S?`${S}/router/settings`:"/router/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get router settings:",e),e}},tx=async e=>{try{let t=S?`${S}/cache/settings`:"/cache/settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get cache settings:",e),e}},tE=async(e,t)=>{try{let r=S?`${S}/cache/settings/test`:"/cache/settings/test",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({cache_settings:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to test cache connection:",e),e}},tS=async(e,t)=>{try{let r=S?`${S}/cache/settings`:"/cache/settings",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({cache_settings:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update cache settings:",e),e}},tk=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint`:"/config/pass_through_endpoint";t&&(r+=`/team/${t}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tj=async(e,t)=>{try{let r=S?`${S}/config/field/info?field_name=${t}`:`/config/field/info?field_name=${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tO=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint`:"/config/pass_through_endpoint",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tT=async(e,t,r)=>{try{let o=S?`${S}/config/field/update`:"/config/field/update",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({field_name:t,field_value:r,config_type:"general_settings"})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return v.default.success("Successfully updated value!"),a}catch(e){throw console.error("Failed to set callbacks:",e),e}},tI=async(e,t)=>{try{let r=S?`${S}/config/field/delete`:"/config/field/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({field_name:t,config_type:"general_settings"})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return v.default.success("Field reset on proxy"),n}catch(e){throw console.error("Failed to get callbacks:",e),e}},t_=async(e,t)=>{try{let r=S?`${S}/config/pass_through_endpoint?endpoint_id=${t}`:`/config/pass_through_endpoint?endpoint_id=${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tF=async(e,t)=>{try{let r=S?`${S}/config/update`:"/config/update",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to set callbacks:",e),e}},tP=async(e,t)=>{try{let r=S?`${S}/health?model_id=${encodeURIComponent(t)}`:`/health?model_id=${encodeURIComponent(t)}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error(`Failed to call /health for model id ${t}:`,e),e}},tR=async e=>{try{let t=S?`${S}/cache/ping`:"/cache/ping",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error(e)}return await r.json()}catch(e){throw console.error("Failed to call /cache/ping:",e),e}},tN=async e=>{try{let t=S?`${S}/health/latest`:"/health/latest",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error(e)}return await r.json()}catch(e){throw console.error("Failed to call /health/latest:",e),e}},tM=async e=>{try{console.log("Getting proxy UI settings"),console.log("proxyBaseUrl in getProxyUISettings:",S);let t=S?`${S}/sso/get/ui_settings`:"/sso/get/ui_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get callbacks:",e),e}},tB=async e=>{try{let t=S?`${S}/get/ui_settings`:"/get/ui_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);return console.error("Failed to get UI settings:",t),null}return await r.json()}catch(e){return console.error("Failed to get UI settings:",e),null}},tA=async e=>{try{let t=S?`${S}/get/mcp_semantic_filter_settings`:"/get/mcp_semantic_filter_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get MCP semantic filter settings:",e),e}},tz=async(e,t)=>{try{let r=S?`${S}/update/mcp_semantic_filter_settings`:"/update/mcp_semantic_filter_settings",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP semantic filter settings:",e),e}},tL=async(e,t,r)=>{try{let o=S?`${S}/v1/responses`:"/v1/responses",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({model:t,input:[{role:"user",content:r,type:"message"}],tools:[{type:"mcp",server_url:"litellm_proxy",require_approval:"never"}],tool_choice:"required"})}),a=n.headers.get("x-litellm-semantic-filter"),i=n.headers.get("x-litellm-semantic-filter-tools");if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return{data:await n.json(),headers:{filter:a,tools:i}}}catch(e){throw console.error("Failed to test MCP semantic filter:",e),e}},tD=async e=>{try{let t=S?`${S}/v2/guardrails/list`:"/v2/guardrails/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(`v2 guardrails/list returned ${r.status}`);return await r.json()}catch(t){console.log("v2/guardrails/list failed, falling back to v1:",t);try{let t=S?`${S}/guardrails/list`:"/guardrails/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get guardrails list:",e),e}}},tH=async(e,t)=>{let r=S?`${S}/guardrails/submissions`:"/guardrails/submissions",o=new URLSearchParams;t?.status&&o.set("status",t.status),t?.team_id&&o.set("team_id",t.team_id),t?.team_guardrail!==void 0&&o.set("team_guardrail",String(t.team_guardrail)),t?.search&&o.set("search",t.search);let n=o.toString()?`${r}?${o.toString()}`:r,a=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=oM(await a.json().catch(()=>({})));throw _(e),Error(e)}return a.json()},tV=async(e,t)=>{let r=S?`${S}/guardrails/submissions/${encodeURIComponent(t)}/approve`:`/guardrails/submissions/${encodeURIComponent(t)}/approve`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=oM(await o.json().catch(()=>({})));throw _(e),Error(e)}return o.json()},tW=async(e,t)=>{let r=S?`${S}/guardrails/submissions/${encodeURIComponent(t)}/reject`:`/guardrails/submissions/${encodeURIComponent(t)}/reject`,o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=oM(await o.json().catch(()=>({})));throw _(e),Error(e)}return o.json()},tU=async(e,t,r)=>{try{let o=S?`${S}/guardrails/usage/overview`:"/guardrails/usage/overview",n=new URLSearchParams;t&&n.append("start_date",t),r&&n.append("end_date",r),n.toString()&&(o+=`?${n.toString()}`);let a=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok){let e=await a.json();throw Error(oM(e))}return a.json()}catch(e){throw console.error("Failed to get guardrails usage overview:",e),e}},tG=async(e,t,r,o)=>{try{let n=S?`${S}/guardrails/usage/detail/${encodeURIComponent(t)}`:`/guardrails/usage/detail/${encodeURIComponent(t)}`,a=new URLSearchParams;r&&a.append("start_date",r),o&&a.append("end_date",o),a.toString()&&(n+=`?${a.toString()}`);let i=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json();throw Error(oM(e))}return i.json()}catch(e){throw console.error("Failed to get guardrails usage detail:",e),e}},tq=async(e,t)=>{try{let r=S?`${S}/guardrails/usage/logs`:"/guardrails/usage/logs",o=new URLSearchParams;t.guardrailId&&o.append("guardrail_id",t.guardrailId),t.policyId&&o.append("policy_id",t.policyId),null!=t.page&&o.append("page",String(t.page)),null!=t.pageSize&&o.append("page_size",String(t.pageSize)),t.action&&o.append("action",t.action),t.startDate&&o.append("start_date",t.startDate),t.endDate&&o.append("end_date",t.endDate),o.toString()&&(r+=`?${o.toString()}`);let n=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json();throw Error(oM(e))}return n.json()}catch(e){throw console.error("Failed to get guardrails usage logs:",e),e}},tJ=async e=>{try{let t=S?`${S}/policies/list`:"/policies/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policies list:",e),e}},tK=async(e,t,r)=>{try{let o=S?`${S}/utils/test_policies_and_guardrails`:"/utils/test_policies_and_guardrails",n=await fetch(o,{method:"POST",signal:r,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({policy_names:t.policy_names??null,guardrail_names:t.guardrail_names??null,inputs:t.inputs??null,inputs_list:t.inputs_list??null,request_data:t.request_data??{},input_type:t.input_type??"request",agent_id:t.agent_id??null})});if(!n.ok){let e=await n.text(),t="Failed to test policies and guardrails";try{let r=JSON.parse(e);r.detail?t="string"==typeof r.detail?r.detail:JSON.stringify(r.detail):r.message&&(t=r.message)}catch{t=e||t}throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to test policies and guardrails:",e),e}},tX=async(e,t)=>{try{let r=S?`${S}/policy/info/${t}`:`/policy/info/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error(`Failed to get policy info for ${t}:`,e),e}},tQ=async e=>{try{let t=S?`${S}/policy/templates`:"/policy/templates",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policy templates:",e),e}},tY=async(e,t,r,o,n)=>{try{let a=S?`${S}/policy/templates/enrich`:"/policy/templates/enrich",i={template_id:t,parameters:r};o&&(i.model=o),n&&(i.competitors=n);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}return await l.json()}catch(e){throw console.error("Failed to enrich policy template:",e),e}},tZ=async(e,t,r,o)=>{try{let n=S?`${S}/policy/templates/suggest`:"/policy/templates/suggest",a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({attack_examples:t.filter(e=>e.trim()),description:r,model:o})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return a.json()}catch(e){throw console.error("Failed to suggest policy templates:",e),e}},t0=async(e,t,r)=>{try{let o=S?`${S}/policy/templates/test`:"/policy/templates/test",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({guardrail_definitions:t,text:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return n.json()}catch(e){throw console.error("Failed to test policy template:",e),e}},t1=async(e,t,r,o,n,a,i,l,s)=>{let c=S?`${S}/policy/templates/enrich/stream`:"/policy/templates/enrich/stream",u={template_id:t,parameters:r,model:o};l?.instruction&&(u.instruction=l.instruction),l?.existingCompetitors&&(u.competitors=l.existingCompetitors);let d=await fetch(c,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(u)});if(!d.ok){let e=oM(await d.json());throw _(e),Error(e)}let f=d.body?.getReader();if(!f)throw Error("No response body");let p=new TextDecoder,h="";for(;;){let{done:e,value:t}=await f.read();if(e)break;let r=(h+=p.decode(t,{stream:!0})).split("\n");for(let e of(h=r.pop()||"",r))if(e.startsWith("data: "))try{let t=JSON.parse(e.slice(6));"competitor"===t.type?n(t.name):"status"===t.type?s?.(t.message):"done"===t.type?a(t):"error"===t.type&&i?.(t.message)}catch{}}},t2=async(e,t,r,o,n,a,i,l,s)=>{let c=S?`${S}/usage/ai/chat`:"/usage/ai/chat",u=await fetch(c,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({messages:t,model:r}),signal:s});if(!u.ok){let e=oM(await u.json());throw _(e),Error(e)}let d=u.body?.getReader();if(!d)throw Error("No response body");let f=new TextDecoder,p="";for(;;){let{done:e,value:t}=await d.read();if(e)break;let r=(p+=f.decode(t,{stream:!0})).split("\n");for(let e of(p=r.pop()||"",r))if(e.startsWith("data: "))try{let t=JSON.parse(e.slice(6));"chunk"===t.type?o(t.content):"status"===t.type?i?.(t.message):"tool_call"===t.type?l?.(t):"done"===t.type?n():"error"===t.type&&a?.(t.message)}catch{}}},t4=async(e,t)=>{try{let r=S?`${S}/policies`:"/policies",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create policy:",e),e}},t6=async(e,t,r)=>{try{let o=S?`${S}/policies/${t}`:`/policies/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update policy:",e),e}},t3=async(e,t)=>{try{let r=encodeURIComponent(t),o=S?`${S}/policies/name/${r}/versions`:`/policies/name/${r}/versions`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to list policy versions:",e),e}},t7=async(e,t,r)=>{try{let o=encodeURIComponent(t),n=S?`${S}/policies/name/${o}/versions`:`/policies/name/${o}/versions`,a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({source_policy_id:r??void 0})});if(!a.ok){let e=await a.json(),t=oM(e);throw _(t),Error(t)}return await a.json()}catch(e){throw console.error("Failed to create policy version:",e),e}},t5=async(e,t,r)=>{try{let o=S?`${S}/policies/${t}/status`:`/policies/${t}/status`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({version_status:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update policy version status:",e),e}},t9=async(e,t)=>{try{let r=S?`${S}/policies/${t}`:`/policies/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete policy:",e),e}},t8=async(e,t)=>{try{let r=S?`${S}/policies/${t}`:`/policies/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get policy info:",e),e}},re=async e=>{try{let t=S?`${S}/policies/attachments/list`:"/policies/attachments/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to get policy attachments list:",e),e}},rt=async(e,t)=>{try{let r=S?`${S}/policies/attachments`:"/policies/attachments",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create policy attachment:",e),e}},rr=async(e,t)=>{try{let r=S?`${S}/policies/attachments/${t}`:`/policies/attachments/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete policy attachment:",e),e}},ro=async(e,t,r)=>{try{let o=S?`${S}/policies/test-pipeline`:"/policies/test-pipeline",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({pipeline:t,test_messages:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to test pipeline:",e),e}},rn=async(e,t)=>{try{let r=S?`${S}/policies/${t}/resolved-guardrails`:`/policies/${t}/resolved-guardrails`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get resolved guardrails:",e),e}},ra=async(e,t)=>{try{let r=S?`${S}/policies/resolve`:"/policies/resolve",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to resolve policies:",e),e}},ri=async(e,t)=>{try{let r=S?`${S}/policies/attachments/estimate-impact`:"/policies/attachments/estimate-impact",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to estimate attachment impact:",e),e}},rl=async(e,t)=>{try{let r=S?`${S}/prompts/list`:"/prompts/list";t&&(r+=`?environment=${encodeURIComponent(t)}`);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to get prompts list:",e),e}},rs=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}/info`:`/prompts/${t}/info`;r&&(o+=`?environment=${encodeURIComponent(r)}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to get prompt info:",e),e}},rc=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}/versions`:`/prompts/${t}/versions`;r&&(o+=`?environment=${encodeURIComponent(r)}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw 404!==n.status&&_(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to get prompt versions:",e),e}},ru=async(e,t)=>{try{let r=S?`${S}/prompts`:"/prompts",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create prompt:",e),e}},rd=async(e,t,r)=>{try{let o=S?`${S}/prompts/${t}`:`/prompts/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to update prompt:",e),e}},rf=async(e,t)=>{try{let r=S?`${S}/prompts/${t}`:`/prompts/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete prompt:",e),e}},rp=async(e,t)=>{try{let r=new FormData;r.append("file",t);let o=S?`${S}/utils/dotprompt_json_converter`:"/utils/dotprompt_json_converter",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`},body:r});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to convert prompt file:",e),e}},rh=async(e,t)=>{try{let r=S?`${S}/v1/agents`:"/v1/agents",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Create agent response:",n),n}catch(e){throw console.error("Failed to create agent:",e),e}},rm=async(e,t)=>{try{let r=S?`${S}/guardrails`:"/guardrails",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({guardrail:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Create guardrail response:",n),n}catch(e){throw console.error("Failed to create guardrail:",e),e}},rg=async(e,t,r)=>{try{let o=S?`${S}/spend/logs/ui/${t}?start_date=${encodeURIComponent(r)}`:`/spend/logs/ui/${t}?start_date=${encodeURIComponent(r)}`;console.log("Fetching log details from:",o);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Fetched log details:",a),a}catch(e){throw console.error("Failed to fetch log details:",e),e}},rv=async e=>{try{let t=S?`${S}/get/internal_user_settings`:"/get/internal_user_settings";console.log("Fetching SSO settings from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched SSO settings:",o),o}catch(e){throw console.error("Failed to fetch SSO settings:",e),e}},ry=async(e,t)=>{try{let r=S?`${S}/update/internal_user_settings`:"/update/internal_user_settings";console.log("Updating internal user settings:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Updated internal user settings:",n),v.default.success("Internal user settings updated successfully"),n}catch(e){throw console.error("Failed to update internal user settings:",e),e}},rb=async e=>{try{let t=S?`${S}/v1/mcp/openapi-registry`:"/v1/mcp/openapi-registry",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json();throw Error(oM(e))}return await r.json()}catch(e){throw console.error("Failed to fetch OpenAPI registry:",e),e}},rw=async e=>{try{let t=S?`${S}/v1/mcp/discover`:"/v1/mcp/discover",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch discoverable MCP servers:",e),e}},r$=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server";if(t){let e=new URLSearchParams;e.append("team_id",t),r=`${r}?${e.toString()}`}console.log("Fetching MCP servers from:",r);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Fetched MCP servers:",n),n}catch(e){throw console.error("Failed to fetch MCP servers:",e),e}},rC=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server/health`:"/v1/mcp/server/health";if(t&&t.length>0){let e=new URLSearchParams;t.forEach(t=>e.append("server_ids",t)),r=`${r}?${e.toString()}`}console.log("Fetching MCP server health from:",r);let o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Fetched MCP server health:",n),n}catch(e){throw console.error("Failed to fetch MCP server health:",e),e}},rx=async e=>{try{let t=S?`${S}/v1/mcp/access_groups`:"/v1/mcp/access_groups";console.log("Fetching MCP access groups from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched MCP access groups:",o),o.access_groups||[]}catch(e){throw console.error("Failed to fetch MCP access groups:",e),e}},rE=async e=>{try{let t=S?`${S}/v1/mcp/network/client-ip`:"/v1/mcp/network/client-ip",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok)return null;return(await r.json()).ip||null}catch{return null}},rS=async(e,t)=>{try{console.log("Form Values in createMCPServer:",t);let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({...t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("API Response:",n),n}catch(e){throw console.error("Failed to create key:",e),e}},rk=async(e,t)=>{try{let r=S?`${S}/v1/mcp/server`:"/v1/mcp/server",o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP server:",e),e}},rj=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/server/${t}`;console.log("in deleteMCPServer:",t);let o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}}catch(e){throw console.error("Failed to delete key:",e),e}},rO=async e=>{try{let t=(S?`${S}`:"")+"/v1/mcp/toolset",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch MCP toolsets:",e),e}},rT=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/toolset",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to create MCP toolset:",e),e}},rI=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/toolset",o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to update MCP toolset:",e),e}},r_=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/toolset/${t}`,o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}}catch(e){throw console.error("Failed to delete MCP toolset:",e),e}},rF=async(e,t)=>{try{let r=(S?`${S}`:"")+"/v1/mcp/server/register",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return o.json()}catch(e){throw console.error("Failed to register MCP server:",e),e}},rP=async e=>{try{let t=(S?`${S}`:"")+"/v1/mcp/server/submissions",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return r.json()}catch(e){throw console.error("Failed to fetch MCP submissions:",e),e}},rR=async(e,t)=>{try{let r=(S?`${S}`:"")+`/v1/mcp/server/${encodeURIComponent(t)}/approve`,o=await fetch(r,{method:"PUT",headers:{[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return o.json()}catch(e){throw console.error("Failed to approve MCP server:",e),e}},rN=async(e,t,r)=>{try{let o=(S?`${S}`:"")+`/v1/mcp/server/${encodeURIComponent(t)}/reject`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({review_notes:r??null})});if(!n.ok){let e=await n.json().catch(()=>({})),t=oM(e);throw _(t),Error(t)}return n.json()}catch(e){throw console.error("Failed to reject MCP server:",e),e}},rM=async e=>{try{let t=S?`${S}/search_tools/list`:"/search_tools/list";console.log("Fetching search tools from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched search tools:",o),o}catch(e){throw console.error("Failed to fetch search tools:",e),e}},rB=async(e,t)=>{try{console.log("Creating search tool with values:",t);let r=S?`${S}/search_tools`:"/search_tools",o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({search_tool:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Created search tool:",n),n}catch(e){throw console.error("Failed to create search tool:",e),e}},rA=async(e,t,r)=>{try{console.log("Updating search tool with ID:",t,"values:",r);let o=S?`${S}/search_tools/${t}`:`/search_tools/${t}`,n=await fetch(o,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({search_tool:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Updated search tool:",a),a}catch(e){throw console.error("Failed to update search tool:",e),e}},rz=async(e,t)=>{try{let r=(S?`${S}`:"")+`/search_tools/${t}`;console.log("Deleting search tool:",t);let o=await fetch(r,{method:T,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Deleted search tool:",n),n}catch(e){throw console.error("Failed to delete search tool:",e),e}},rL=async e=>{try{let t=S?`${S}/search_tools/ui/available_providers`:"/search_tools/ui/available_providers";console.log("Fetching available search providers from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched available search providers:",o),o}catch(e){throw console.error("Failed to fetch available search providers:",e),e}},rD=async(e,t)=>{try{let r=S?`${S}/search_tools/test_connection`:"/search_tools/test_connection";console.log("Testing search tool connection:",r);let o=await fetch(r,{method:O,headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({litellm_params:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Test connection response:",n),n}catch(e){throw console.error("Failed to test search tool connection:",e),e}},rH=async(e,t,r)=>{let o,n=S?`${S}/mcp-rest/tools/list?server_id=${t}`:`/mcp-rest/tools/list?server_id=${t}`;console.log("Fetching MCP tools from:",n);let a={[R]:`Bearer ${e}`,"Content-Type":"application/json",...r};try{o=await fetch(n,{method:"GET",headers:a})}catch(e){return console.error("Failed to fetch MCP tools (network error):",e),{tools:[],error:"network_error",message:e instanceof Error?e.message:"Failed to fetch MCP tools",stack_trace:null}}let i=null;try{i=await o.json()}catch(e){return console.error("Failed to parse MCP tools response:",e),{tools:[],error:"parse_error",message:"Failed to parse MCP tools response",status:o.status,statusText:o.statusText,stack_trace:null}}if(console.log("Fetched MCP tools response:",i),!o.ok){let e=i&&(i.message||i.error)||"Failed to fetch MCP tools";return{tools:[],error:i&&i.error||`http_${o.status}`,message:e,status:o.status,statusText:o.statusText,details:i,stack_trace:null}}return i},rV=async(e,t,r,o,n)=>{try{let a=S?`${S}/mcp-rest/tools/call`:"/mcp-rest/tools/call";console.log("Calling MCP tool:",r,"with arguments:",o,"for server:",t);let i={[R]:`Bearer ${e}`,"Content-Type":"application/json",...n?.customHeaders||{}},l={server_id:t,name:r,arguments:o};n?.guardrails&&n.guardrails.length>0&&(l.litellm_metadata={guardrails:n.guardrails});let s=await fetch(a,{method:"POST",headers:i,body:JSON.stringify(l)});if(!s.ok){let e="Network response was not ok",t=null,r=await s.text();try{let o=JSON.parse(r);o.detail?"string"==typeof o.detail?e=o.detail:"object"==typeof o.detail&&(e=o.detail.message||o.detail.error||"An error occurred",t=o.detail):e=o.message||o.error||e}catch(t){console.error("Failed to parse JSON error response:",t),r&&(e=r)}let o=Error(e);throw o.status=s.status,o.statusText=s.statusText,o.details=t,_(e),o}let c=await s.json();return console.log("MCP tool call response:",c),c}catch(e){throw console.error("Failed to call MCP tool:",e),console.error("Error type:",typeof e),e instanceof Error&&(console.error("Error message:",e.message),console.error("Error stack:",e.stack)),e}},rW=async(e,t)=>{try{let r=S?`${S}/tag/new`:"/tag/new",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error creating tag:",e),e}},rU=async(e,t)=>{try{let r=S?`${S}/tag/update`:"/tag/update",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error updating tag:",e),e}},rG=async(e,t)=>{try{let r=S?`${S}/tag/info`:"/tag/info",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({names:t})});if(!o.ok){let e=await o.text();return await _(e),{}}return await o.json()}catch(e){throw console.error("Error getting tag info:",e),e}},rq=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`},rJ=async(e,t,r)=>{try{let o=S?`${S}/tag/list`:"/tag/list";if(t&&r){let e=new URLSearchParams({start_date:rq(t),end_date:rq(r)});o=`${o}?${e.toString()}`}let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!n.ok){let e=await n.text();return await _(e),{}}return await n.json()}catch(e){throw console.error("Error listing tags:",e),e}},rK=async(e,t)=>{try{let r=S?`${S}/tag/delete`:"/tag/delete",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({name:t})});if(!o.ok){let e=await o.text();await _(e);return}return await o.json()}catch(e){throw console.error("Error deleting tag:",e),e}},rX=async e=>{try{let t=S?`${S}/get/default_team_settings`:"/get/default_team_settings";console.log("Fetching default team settings from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched default team settings:",o),o}catch(e){throw console.error("Failed to fetch default team settings:",e),e}},rQ=async(e,t)=>{try{let r=S?`${S}/update/default_team_settings`:"/update/default_team_settings";console.log("Updating default team settings:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}let n=await o.json();return console.log("Updated default team settings:",n),n}catch(e){throw console.error("Failed to update default team settings:",e),e}},rY=async(e,t)=>{try{let r=S?`${S}/team/permissions_list?team_id=${t}`:`/team/permissions_list?team_id=${t}`,o=await fetch(r,{method:"GET",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json(),t=oM(e);return console.error("Available permissions fetch failed:",t),{all_available_permissions:[],team_member_permissions:[]}}return await o.json()}catch(e){throw console.error("Failed to get team permissions:",e),e}},rZ=async(e,t,r)=>{try{let o=S?`${S}/team/permissions_update`:"/team/permissions_update",n=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({team_id:t,team_member_permissions:r})});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return console.log("Team permissions response:",a),a}catch(e){throw console.error("Failed to update team permissions:",e),e}},r0=async(e,t)=>{try{let r=S?`${S}/spend/logs/session/ui?session_id=${encodeURIComponent(t)}`:`/spend/logs/session/ui?session_id=${encodeURIComponent(t)}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to fetch session logs:",e),e}},r1=async(e,t)=>{try{let r=S?`${S}/vector_store/new`:"/vector_store/new",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to create vector store")}return await o.json()}catch(e){throw console.error("Error creating vector store:",e),e}},r2=async(e,t=1,r=100)=>{try{let t=S?`${S}/vector_store/list`:"/vector_store/list",r=await fetch(t,{method:"GET",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`}});if(!r.ok){let e=await r.json();throw Error(e.detail||"Failed to list vector stores")}return await r.json()}catch(e){throw console.error("Error listing vector stores:",e),e}},r4=async(e,t)=>{try{let r=S?`${S}/vector_store/delete`:"/vector_store/delete",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({vector_store_id:t})});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to delete vector store")}return await o.json()}catch(e){throw console.error("Error deleting vector store:",e),e}},r6=async(e,t)=>{try{let r=S?`${S}/vector_store/info`:"/vector_store/info",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify({vector_store_id:t})});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to get vector store info")}return await o.json()}catch(e){throw console.error("Error getting vector store info:",e),e}},r3=async(e,t)=>{try{let r=S?`${S}/vector_store/update`:"/vector_store/update",o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",[R]:`Bearer ${e}`},body:JSON.stringify(t)});if(!o.ok){let e=await o.json();throw Error(e.detail||"Failed to update vector store")}return await o.json()}catch(e){throw console.error("Error updating vector store:",e),e}},r7=async(e,t,r,o,n,a,i)=>{try{let l=S?`${S}/rag/ingest`:"/rag/ingest",s=new FormData;s.append("file",t);let c={ingest_options:{vector_store:{custom_llm_provider:r,...o&&{vector_store_id:o},...i&&i}}};(n||a)&&(c.ingest_options.litellm_vector_store_params={},n&&(c.ingest_options.litellm_vector_store_params.vector_store_name=n),a&&(c.ingest_options.litellm_vector_store_params.vector_store_description=a)),s.append("request",JSON.stringify(c));let u=await fetch(l,{method:"POST",headers:{[R]:`Bearer ${e}`},body:s});if(!u.ok){let e=await u.json();throw Error(e.error?.message||e.detail||"Failed to ingest document")}return await u.json()}catch(e){throw console.error("Error ingesting document:",e),e}},r5=async e=>{try{let t=S?`${S}/email/event_settings`:"/email/event_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get email event settings")}let o=await r.json();return console.log("Email event settings response:",o),o}catch(e){throw console.error("Failed to get email event settings:",e),e}},r9=async(e,t)=>{try{let r=S?`${S}/email/event_settings`:"/email/event_settings",o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to update email event settings")}let n=await o.json();return console.log("Update email event settings response:",n),n}catch(e){throw console.error("Failed to update email event settings:",e),e}},r8=async e=>{try{let t=S?`${S}/email/event_settings/reset`:"/email/event_settings/reset",r=await fetch(t,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to reset email event settings")}let o=await r.json();return console.log("Reset email event settings response:",o),o}catch(e){throw console.error("Failed to reset email event settings:",e),e}},oe=async(e,t)=>{try{let r=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Delete agent response:",n),n}catch(e){throw console.error("Failed to delete agent:",e),e}},ot=async(e,t)=>{try{let r=S?`${S}/v1/agents/make_public`:"/v1/agents/make_public",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({agent_ids:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Make agents public response:",n),n}catch(e){throw console.error("Failed to make agents public:",e),e}},or=async(e,t)=>{try{let r=S?`${S}/v1/mcp/make_public`:"/v1/mcp/make_public",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({mcp_server_ids:t})});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Make agents public response:",n),n}catch(e){throw console.error("Failed to make agents public:",e),e}},oo=async(e,t)=>{try{let r=S?`${S}/guardrails/${t}`:`/guardrails/${t}`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error(e)}let n=await o.json();return console.log("Delete guardrail response:",n),n}catch(e){throw console.error("Failed to delete guardrail:",e),e}},on=async e=>{try{let t=S?`${S}/guardrails/ui/add_guardrail_settings`:"/guardrails/ui/add_guardrail_settings",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get guardrail UI settings")}let o=await r.json();return console.log("Guardrail UI settings response:",o),o}catch(e){throw console.error("Failed to get guardrail UI settings:",e),e}},oa=async e=>{try{let t=S?`${S}/guardrails/ui/provider_specific_params`:"/guardrails/ui/provider_specific_params",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw _(e),Error("Failed to get guardrail provider specific parameters")}let o=await r.json();return console.log("Guardrail provider specific params response:",o),o}catch(e){throw console.error("Failed to get guardrail provider specific parameters:",e),e}},oi=async(e,t)=>{try{let r=encodeURIComponent(t),o=S?`${S}/guardrails/ui/category_yaml/${r}`:`/guardrails/ui/category_yaml/${r}`;console.log(`Fetching category YAML from: ${o}`);let n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text();throw console.error(`Failed to get category YAML. Status: ${n.status}, Error:`,e),_(e),Error(`Failed to get category YAML: ${n.status} ${e}`)}let a=await n.json();return console.log("Category YAML response:",a),a}catch(e){throw console.error("Failed to get category YAML:",e),e}},ol=async e=>{try{let t=S?`${S}/guardrails/ui/major_airlines`:"/guardrails/ui/major_airlines",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.text();throw console.error(`Failed to get major airlines. Status: ${r.status}, Error:`,e),_(e),Error(`Failed to get major airlines: ${r.status} ${e}`)}return await r.json()}catch(e){throw console.error("Failed to get major airlines:",e),e}},os=async(e,t=!1)=>{try{let r=t?"?health_check=true":"",o=S?`${S}/v1/agents${r}`:`/v1/agents${r}`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to get agents list")}let a=await n.json();return console.log("Agents list response:",a),{agents:a}}catch(e){throw console.error("Failed to get agents list:",e),e}},oc=async(e,t)=>{try{let r=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to get agent info")}let n=await o.json();return console.log("Agent info response:",n),n}catch(e){throw console.error("Failed to get agent info:",e),e}},ou=async(e,t)=>{try{let r=S?`${S}/guardrails/${t}/info`:`/guardrails/${t}/info`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to get guardrail info")}let n=await o.json();return console.log("Guardrail info response:",n),n}catch(e){throw console.error("Failed to get guardrail info:",e),e}},od=async(e,t,r)=>{try{let o=S?`${S}/v1/agents/${t}`:`/v1/agents/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to patch agent")}let a=await n.json();return console.log("Patch agent response:",a),a}catch(e){throw console.error("Failed to update guardrail:",e),e}},of=async(e,t,r)=>{try{let o=S?`${S}/guardrails/${t}`:`/guardrails/${t}`,n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.text();throw _(e),Error("Failed to update guardrail")}let a=await n.json();return console.log("Update guardrail response:",a),a}catch(e){throw console.error("Failed to update guardrail:",e),e}},op=async(e,t,r,o,n)=>{try{let a=S?`${S}/guardrails/apply_guardrail`:"/guardrails/apply_guardrail",i={guardrail_name:t,text:r};o&&(i.language=o),n&&n.length>0&&(i.entities=n);let l=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok){let e=await l.text(),t="Failed to apply guardrail";try{let r=JSON.parse(e);r.error?.message?t=r.error.message:r.detail?t=r.detail:r.message&&(t=r.message)}catch(r){t=e||t}throw _(e),Error(t)}let s=await l.json();return console.log("Apply guardrail response:",s),s}catch(e){throw console.error("Failed to apply guardrail:",e),e}},oh=async(e,t)=>{try{let r=S?`${S}/guardrails/test_custom_code`:"/guardrails/test_custom_code",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.text(),t="Failed to test custom code guardrail";try{let r=JSON.parse(e);r.error?.message?t=r.error.message:r.detail?t=r.detail:r.message&&(t=r.message)}catch(r){t=e||t}throw _(e),Error(t)}let n=await o.json();return console.log("Test custom code guardrail response:",n),n}catch(e){throw console.error("Failed to test custom code guardrail:",e),e}},om=async(e,t)=>{try{let r=S?`${S}/guardrails/validate_blocked_words_file`:"/guardrails/validate_blocked_words_file",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({file_content:t})});if(!o.ok){let e=await o.text();throw _(e),Error("Failed to validate blocked words file")}let n=await o.json();return console.log("Validate blocked words file response:",n),n}catch(e){throw console.error("Failed to validate blocked words file:",e),e}},og=async e=>{try{let t=S?`${S}/get/sso_settings`:"/get/sso_settings";console.log("Fetching SSO configuration from:",t);let r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}let o=await r.json();return console.log("Fetched SSO configuration:",o),o}catch(e){throw console.error("Failed to fetch SSO configuration:",e),e}},ov=async(e,t)=>{try{let r=S?`${S}/update/sso_settings`:"/update/sso_settings";console.log("Updating SSO configuration:",t);let o=await fetch(r,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){let e=await o.json(),t="object"==typeof e?.detail?e.detail?.error||e.detail?.message:e?.detail,r="string"==typeof t&&t.length>0?t:oM(e);_(r);let n=Error(r);throw e?.detail!==void 0&&(n.detail=e.detail),n.rawError=e,n}let n=await o.json();return console.log("Updated SSO configuration:",n),n}catch(e){throw console.error("Failed to update SSO configuration:",e),e}},oy=async({accessToken:e,page:t=1,page_size:r=50,params:o={}})=>{try{let n=S?`${S}/audit`:"/audit",a=new URLSearchParams;for(let[e,n]of(a.append("page",t.toString()),a.append("page_size",r.toString()),Object.entries(o)))null!=n&&""!==n&&a.append(e,String(n));n+=`?${a.toString()}`;let i=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!i.ok){let e=await i.json(),t=oM(e);throw _(t),Error(t)}return await i.json()}catch(e){throw console.error("Failed to fetch audit logs:",e),e}},ob=async e=>{try{let t=S?`${S}/user/available_users`:"/user/available_users",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok){if(404===r.status)return null;let e=await r.text();throw _(e),Error("Network response was not ok")}return await r.json()}catch(e){throw console.error("Failed to fetch remaining users:",e),e}},ow=async e=>{try{let t=S?`${S}/health/license`:"/health/license",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});if(!r.ok){if(404===r.status)return null;let e=await r.text();throw _(e),Error("Network response was not ok")}return await r.json()}catch(e){throw console.error("Failed to fetch license info:",e),e}},o$=async(e,t,r)=>{try{let o=S?`${S}/config/pass_through_endpoint/${encodeURIComponent(t)}`:`/config/pass_through_endpoint/${encodeURIComponent(t)}`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json(),t=oM(e);throw _(t),Error(t)}let a=await n.json();return v.default.success("Pass through endpoint updated successfully"),a}catch(e){throw console.error("Failed to update pass through endpoint:",e),e}},oC=async(e,t)=>{try{let r=S?`${S}/config/callback/delete`:"/config/callback/delete",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({callback_name:t})});if(!o.ok){let e=await o.json(),t=oM(e);throw _(t),Error(t)}return await o.json()}catch(e){throw console.error("Failed to delete specific callback:",e),e}},ox=async(e,t,r)=>{try{console.log("Testing MCP tools list with config:",JSON.stringify(t));let o=S?`${S}/mcp-rest/test/tools/list`:"/mcp-rest/test/tools/list",n={"Content-Type":"application/json"};e&&(n["x-litellm-api-key"]=e),r?n.Authorization=`Bearer ${r}`:e&&(n[R]=`Bearer ${e}`);let a=await fetch(o,{method:"POST",headers:n,body:JSON.stringify(t)}),i=a.headers.get("content-type");if(!i||!i.includes("application/json")){let e=await a.text();throw console.error("Received non-JSON response:",e),Error(`Received non-JSON response (${a.status}: ${a.statusText}). Check network tab for details.`)}let l=await a.json();if((!a.ok||l.error)&&!l.error)return{tools:[],error:"request_failed",message:l.message||`MCP tools list failed: ${a.status} ${a.statusText}`};return l}catch(e){throw console.error("MCP tools list test error:",e),e}},oE=async(e,t)=>{let r=S?`${S}/v1/mcp/server/oauth/session`:"/v1/mcp/server/oauth/session",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)}),n=await o.json();if(!o.ok)throw Error(oM(n)||n?.error||"Failed to cache MCP server");return n},oS=async(e,t,r)=>{let o=k(),n=encodeURIComponent(t.trim()),a=`${o}/v1/mcp/server/oauth/${n}/register`,i=await fetch(a,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json, text/event-stream"},body:JSON.stringify(r)}),l=await i.json();if(!i.ok)throw Error(oM(l)||l?.detail||"Failed to register OAuth client");return l},ok=({serverId:e,clientId:t,redirectUri:r,state:o,codeChallenge:n,scope:a})=>{let i=k(),l=encodeURIComponent(e.trim()),s=`${i}/v1/mcp/server/oauth/${l}/authorize`,c=new URLSearchParams({redirect_uri:r,state:o,response_type:"code",code_challenge:n,code_challenge_method:"S256"});return t&&t.trim().length>0&&c.set("client_id",t),a&&a.trim().length>0&&c.set("scope",a),`${s}?${c.toString()}`},oj=async({serverId:e,code:t,clientId:r,clientSecret:o,codeVerifier:n,redirectUri:a,accessToken:i})=>{let l=k(),s=encodeURIComponent(e.trim()),c=`${l}/v1/mcp/server/oauth/${s}/token`,u=new URLSearchParams;u.set("grant_type","authorization_code"),u.set("code",t),r&&r.trim().length>0&&u.set("client_id",r),o&&o.trim().length>0&&u.set("client_secret",o),u.set("code_verifier",n),u.set("redirect_uri",a);let d={"Content-Type":"application/x-www-form-urlencoded"};i&&(d.Authorization=`Bearer ${i}`);let f=await fetch(c,{method:"POST",headers:d,body:u.toString()}),p=await f.json();if(!f.ok)throw Error(oM(p)||p?.detail||"OAuth token exchange failed");return p},oO=async(e,t,r)=>{try{let o=`${k()}/v1/vector_stores/${t}/search`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({query:r})});if(!n.ok){let e=await n.text();return await _(e),null}return await n.json()}catch(e){throw console.error("Error testing vector store search:",e),e}},oT=async(e,t,r,o)=>{try{let n=`${k()}/v1/search/${t}`,a=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({query:r,max_results:o||5})});if(!a.ok){let e=await a.text();return await _(e),null}return await a.json()}catch(e){throw console.error("Error querying search tool:",e),e}},oI=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/dau`:"/tag/dau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch DAU:",e),e}},o_=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/wau`:"/tag/wau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch WAU:",e),e}},oF=async(e,t,r,o)=>{try{let n,a,i,l=S?`${S}/tag/mau`:"/tag/mau",s=new URLSearchParams;s.append("end_date",(n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),`${n}-${a}-${i}`)),o&&o.length>0?o.forEach(e=>{s.append("tag_filters",e)}):r&&s.append("tag_filter",r);let c=s.toString();c&&(l+=`?${c}`);let u=await fetch(l,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!u.ok){let e=await u.json(),t=oM(e);throw _(t),Error(t)}return await u.json()}catch(e){throw console.error("Failed to fetch MAU:",e),e}},oP=async e=>{try{let t=S?`${S}/tag/distinct`:"/tag/distinct",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok){let e=await r.json(),t=oM(e);throw _(t),Error(t)}return await r.json()}catch(e){throw console.error("Failed to fetch distinct tags:",e),e}},oR=async(e,t,r,o)=>{try{let n=S?`${S}/tag/summary`:"/tag/summary",a=new URLSearchParams,i=e=>{let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${o}`};a.append("start_date",i(t)),a.append("end_date",i(r)),o&&o.length>0&&o.forEach(e=>{a.append("tag_filters",e)});let l=a.toString();l&&(n+=`?${l}`);let s=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!s.ok){let e=await s.json(),t=oM(e);throw _(t),Error(t)}return await s.json()}catch(e){throw console.error("Failed to fetch user agent summary:",e),e}},oN=async(e,t=1,r=50,o)=>{try{let n=S?`${S}/tag/user-agent/per-user-analytics`:"/tag/user-agent/per-user-analytics",a=new URLSearchParams;a.append("page",t.toString()),a.append("page_size",r.toString()),o&&o.length>0&&o.forEach(e=>{a.append("tag_filters",e)});let i=a.toString();i&&(n+=`?${i}`);let l=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok){let e=await l.json(),t=oM(e);throw _(t),Error(t)}return await l.json()}catch(e){throw console.error("Failed to fetch per-user analytics:",e),e}},oM=e=>{let t=e?.detail,r=Array.isArray(t)?t.map(e=>e?.msg||JSON.stringify(e)).join("; "):"string"==typeof t?t:void 0;return e?.error&&(e.error.message||("string"==typeof e.error?e.error:void 0))||e?.message||r||JSON.stringify(e)},oB=async(e,t,r)=>{let n=k(),a=r?"/v3/login":"/v2/login",i=n?`${n}${a}`:a,l=JSON.stringify({username:e,password:t}),s=await fetch(i,{method:"POST",body:l,credentials:"include",headers:{"Content-Type":"application/json"}});if(!s.ok)throw Error(oM(await s.json()));let c=await s.json();if(r&&c.code){let e=n?`${n}/v3/login/exchange`:"/v3/login/exchange",t=await fetch(e,{method:"POST",body:JSON.stringify({code:c.code}),credentials:"include",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error(oM(await t.json()));let r=await t.json();return r.token&&(0,o.storeLoginToken)(r.token),r}return c.token&&(0,o.storeLoginToken)(c.token),c},oA=async(e,t)=>{let r=t||k(),o=await fetch(`${r}/v3/login/exchange`,{method:"POST",body:JSON.stringify({code:e}),headers:{"Content-Type":"application/json"}});if(!o.ok)throw Error(oM(await o.json()));let n=await o.json();return n.token&&(document.cookie=`token=${n.token}; path=/; SameSite=Lax`),n.token},oz=async()=>{let e=k(),t=e?`${e}/get/ui_settings`:"/get/ui_settings",r=await fetch(t,{method:"GET"});if(!r.ok)throw Error(oM(await r.json()));return await r.json()},oL=async(e,t)=>{let r=k(),o=r?`${r}/update/ui_settings`:"/update/ui_settings",n=await fetch(o,{method:"PATCH",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok)throw Error(oM(await n.json()));return await n.json()},oD=async(e,t=!1)=>{try{let r=k(),o=r?`${r}/claude-code/plugins?enabled_only=${t}`:`/claude-code/plugins?enabled_only=${t}`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to fetch Claude Code plugins list:",e),e}},oH=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins`:"/claude-code/plugins",n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error("Failed to register Claude Code plugin:",e),e}},oV=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}/enable`:`/claude-code/plugins/${t}/enable`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to enable plugin "${t}":`,e),e}},oW=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}/disable`:`/claude-code/plugins/${t}/disable`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to disable plugin "${t}":`,e),e}},oU=async(e,t)=>{try{let r=k(),o=r?`${r}/claude-code/plugins/${t}`:`/claude-code/plugins/${t}`,n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok){let e=await n.text(),t=oM(JSON.parse(e));throw _(t),Error(t)}return await n.json()}catch(e){throw console.error(`Failed to delete plugin "${t}":`,e),e}},oG=async(e,t)=>{let r=S?`${S}/compliance/eu-ai-act`:"/compliance/eu-ai-act",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok)throw Error(await o.text());return o.json()},oq=async(e,t)=>{let r=S?`${S}/compliance/gdpr`:"/compliance/gdpr",o=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok)throw Error(await o.text());return o.json()},oJ=async e=>{let t=S?`${S}/v1/tool/policy/options`:"/v1/tool/policy/options",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(await r.text());return r.json()},oK=async e=>{let t=S?`${S}/v1/tool/list`:"/v1/tool/list",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!r.ok)throw Error(await r.text());return(await r.json()).tools??[]},oX=async(e,t,r)=>{let o=encodeURIComponent(t),n=S?`${S}/v1/tool/${o}/logs`:`/v1/tool/${o}/logs`,a=new URLSearchParams;null!=r.page&&a.append("page",String(r.page)),null!=r.pageSize&&a.append("page_size",String(r.pageSize)),r.startDate&&a.append("start_date",r.startDate),r.endDate&&a.append("end_date",r.endDate);let i=a.toString()?`${n}?${a.toString()}`:n,l=await fetch(i,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!l.ok)throw Error(oM(await l.json().catch(()=>({}))));return l.json()},oQ=async(e,t)=>{let r=encodeURIComponent(t),o=S?`${S}/v1/tool/${r}/detail`:`/v1/tool/${r}/detail`,n=await fetch(o,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok)throw Error(await n.text());return n.json()},oY=async(e,t,r,o)=>{let n=S?`${S}/v1/tool/policy`:"/v1/tool/policy",a={tool_name:t};null!=r.input_policy&&(a.input_policy=r.input_policy),null!=r.output_policy&&(a.output_policy=r.output_policy),o?.team_id!=null&&(a.team_id=o.team_id||void 0),o?.key_hash!=null&&(a.key_hash=o.key_hash||void 0),o?.key_alias!=null&&(a.key_alias=o.key_alias||void 0);let i=await fetch(n,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(a)});if(!i.ok)throw Error(await i.text());return i.json()},oZ=async(e,t,r)=>{let o=encodeURIComponent(t),n=new URLSearchParams;null!=r.team_id&&""!==r.team_id&&n.set("team_id",r.team_id),null!=r.key_hash&&""!==r.key_hash&&n.set("key_hash",r.key_hash);let a=n.toString(),i=S?`${S}/v1/tool/${o}/overrides${a?`?${a}`:""}`:`/v1/tool/${o}/overrides${a?`?${a}`:""}`,l=await fetch(i,{method:"DELETE",headers:{[R]:`Bearer ${e}`}});if(!l.ok)throw Error(await l.text());return l.json()},o0=async(e,t,r)=>{let o=S?`${S}/v1/mcp/server/${t}/oauth-user-credential`:`/v1/mcp/server/${t}/oauth-user-credential`,n=await fetch(o,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok){let e=await n.json().catch(()=>({})),t=e?.detail;throw Error((Array.isArray(t)?t.map(e=>e&&"object"==typeof e?e.msg??JSON.stringify(e):String(e)).join("; "):"string"==typeof t?t:t&&"string"==typeof t.error?t.error:void 0)||"Failed to store OAuth credential")}return n.json()},o1=async(e,t)=>{let r=S?`${S}/v1/mcp/server/${t}/oauth-user-credential`:`/v1/mcp/server/${t}/oauth-user-credential`,o=await fetch(r,{method:"DELETE",headers:{[R]:`Bearer ${e}`}});if(!o.ok){let e=await o.json().catch(()=>({})),t=e?.detail;throw Error((Array.isArray(t)?t.map(e=>e&&"object"==typeof e?e.msg??JSON.stringify(e):String(e)).join("; "):"string"==typeof t?t:t&&"string"==typeof t.error?t.error:void 0)||"Failed to revoke OAuth credential")}return o.json()},o2=async(e,t)=>{let r=S?`${S}/v1/mcp/server/${t}/oauth-user-credential/status`:`/v1/mcp/server/${t}/oauth-user-credential/status`,o=await fetch(r,{method:"GET",headers:{[R]:`Bearer ${e}`}});return o.ok?o.json():{server_id:t,has_credential:!1,is_expired:!1}},o4=async e=>{let t=S?`${S}/v1/mcp/user-credentials`:"/v1/mcp/user-credentials",r=await fetch(t,{method:"GET",headers:{[R]:`Bearer ${e}`}});return r.ok?r.json():[]},o6=e=>e.split("/").map(encodeURIComponent).join("/"),o3=async(e,t={})=>{let r=S?`${S}/v1/memory`:"/v1/memory",o=new URLSearchParams;t.keyPrefix?o.append("key_prefix",t.keyPrefix):t.key&&o.append("key",t.key),null!=t.page&&o.append("page",String(t.page)),null!=t.pageSize&&o.append("page_size",String(t.pageSize));let n=o.toString()?`${r}?${o.toString()}`:r,a=await fetch(n,{method:"GET",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!a.ok)throw Error(await a.text());return a.json()},o7=async(e,t)=>{let r=S?`${S}/v1/memory`:"/v1/memory",o={key:t.key,value:t.value};void 0!==t.metadata&&(o.metadata=t.metadata);let n=await fetch(r,{method:"POST",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(o)});if(!n.ok)throw Error(await n.text());return n.json()},o5=async(e,t,r)=>{let o=o6(t),n=S?`${S}/v1/memory/${o}`:`/v1/memory/${o}`,a=await fetch(n,{method:"PUT",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!a.ok)throw Error(await a.text());return a.json()},o9=async(e,t)=>{let r=o6(t),o=S?`${S}/v1/memory/${r}`:`/v1/memory/${r}`,n=await fetch(o,{method:"DELETE",headers:{[R]:`Bearer ${e}`,"Content-Type":"application/json"}});if(!n.ok)throw Error(await n.text())}},266027,869230,469637,e=>{"use strict";let t;var r=e.i(175555),o=e.i(273911),n=e.i(540143),a=e.i(286491),i=e.i(915823),l=e.i(793803),s=e.i(619273),c=e.i(180166),u=class extends i.Subscribable{constructor(e,t){super(),this.options=t,this.#e=e,this.#t=null,this.#r=(0,l.pendingThenable)(),this.bindMethods(),this.setOptions(t)}#e;#o=void 0;#n=void 0;#a=void 0;#i;#l;#r;#t;#s;#c;#u;#d;#f;#p;#h=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#o.addObserver(this),d(this.#o,this.options)?this.#m():this.updateResult(),this.#g())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return f(this.#o,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return f(this.#o,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#v(),this.#y(),this.#o.removeObserver(this)}setOptions(e){let t=this.options,r=this.#o;if(this.options=this.#e.defaultQueryOptions(e),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,s.resolveQueryBoolean)(this.options.enabled,this.#o))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#b(),this.#o.setOptions(this.options),t._defaulted&&!(0,s.shallowEqualObjects)(this.options,t)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#o,observer:this});let o=this.hasListeners();o&&p(this.#o,r,this.options,t)&&this.#m(),this.updateResult(),o&&(this.#o!==r||(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)!==(0,s.resolveQueryBoolean)(t.enabled,this.#o)||(0,s.resolveStaleTime)(this.options.staleTime,this.#o)!==(0,s.resolveStaleTime)(t.staleTime,this.#o))&&this.#w();let n=this.#$();o&&(this.#o!==r||(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)!==(0,s.resolveQueryBoolean)(t.enabled,this.#o)||n!==this.#p)&&this.#C(n)}getOptimisticResult(e){var t,r;let o=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(o,e);return t=this,r=n,(0,s.shallowEqualObjects)(t.getCurrentResult(),r)||(this.#a=n,this.#l=this.options,this.#i=this.#o.state),n}getCurrentResult(){return this.#a}trackResult(e,t){return new Proxy(e,{get:(e,r)=>(this.trackProp(r),t?.(r),"promise"===r&&(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#r.status||this.#r.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(e,r))})}trackProp(e){this.#h.add(e)}getCurrentQuery(){return this.#o}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),r=this.#e.getQueryCache().build(this.#e,t);return r.fetch().then(()=>this.createResult(r,t))}fetch(e){return this.#m({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#a))}#m(e){this.#b();let t=this.#o.fetch(this.options,e);return e?.throwOnError||(t=t.catch(s.noop)),t}#w(){this.#v();let e=(0,s.resolveStaleTime)(this.options.staleTime,this.#o);if(o.environmentManager.isServer()||this.#a.isStale||!(0,s.isValidTimeout)(e))return;let t=(0,s.timeUntilStale)(this.#a.dataUpdatedAt,e);this.#d=c.timeoutManager.setTimeout(()=>{this.#a.isStale||this.updateResult()},t+1)}#$(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#o):this.options.refetchInterval)??!1}#C(e){this.#y(),this.#p=e,!o.environmentManager.isServer()&&!1!==(0,s.resolveQueryBoolean)(this.options.enabled,this.#o)&&(0,s.isValidTimeout)(this.#p)&&0!==this.#p&&(this.#f=c.timeoutManager.setInterval(()=>{(this.options.refetchIntervalInBackground||r.focusManager.isFocused())&&this.#m()},this.#p))}#g(){this.#w(),this.#C(this.#$())}#v(){void 0!==this.#d&&(c.timeoutManager.clearTimeout(this.#d),this.#d=void 0)}#y(){void 0!==this.#f&&(c.timeoutManager.clearInterval(this.#f),this.#f=void 0)}createResult(e,t){let r,o=this.#o,n=this.options,i=this.#a,c=this.#i,u=this.#l,f=e!==o?e.state:this.#n,{state:m}=e,g={...m},v=!1;if(t._optimisticResults){let r=this.hasListeners(),i=!r&&d(e,t),l=r&&p(e,o,t,n);(i||l)&&(g={...g,...(0,a.fetchState)(m.data,e.options)}),"isRestoring"===t._optimisticResults&&(g.fetchStatus="idle")}let{error:y,errorUpdatedAt:b,status:w}=g;r=g.data;let $=!1;if(void 0!==t.placeholderData&&void 0===r&&"pending"===w){let e;i?.isPlaceholderData&&t.placeholderData===u?.placeholderData?(e=i.data,$=!0):e="function"==typeof t.placeholderData?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,void 0!==e&&(w="success",r=(0,s.replaceData)(i?.data,e,t),v=!0)}if(t.select&&void 0!==r&&!$)if(i&&r===c?.data&&t.select===this.#s)r=this.#c;else try{this.#s=t.select,r=t.select(r),r=(0,s.replaceData)(i?.data,r,t),this.#c=r,this.#t=null}catch(e){this.#t=e}this.#t&&(y=this.#t,r=this.#c,b=Date.now(),w="error");let C="fetching"===g.fetchStatus,x="pending"===w,E="error"===w,S=x&&C,k=void 0!==r,j={status:w,fetchStatus:g.fetchStatus,isPending:x,isSuccess:"success"===w,isError:E,isInitialLoading:S,isLoading:S,data:r,dataUpdatedAt:g.dataUpdatedAt,error:y,errorUpdatedAt:b,failureCount:g.fetchFailureCount,failureReason:g.fetchFailureReason,errorUpdateCount:g.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:g.dataUpdateCount>f.dataUpdateCount||g.errorUpdateCount>f.errorUpdateCount,isFetching:C,isRefetching:C&&!x,isLoadingError:E&&!k,isPaused:"paused"===g.fetchStatus,isPlaceholderData:v,isRefetchError:E&&k,isStale:h(e,t),refetch:this.refetch,promise:this.#r,isEnabled:!1!==(0,s.resolveQueryBoolean)(t.enabled,e)};if(this.options.experimental_prefetchInRender){let t=void 0!==j.data,r="error"===j.status&&!t,n=e=>{r?e.reject(j.error):t&&e.resolve(j.data)},a=()=>{n(this.#r=j.promise=(0,l.pendingThenable)())},i=this.#r;switch(i.status){case"pending":e.queryHash===o.queryHash&&n(i);break;case"fulfilled":(r||j.data!==i.value)&&a();break;case"rejected":r&&j.error===i.reason||a()}}return j}updateResult(){let e=this.#a,t=this.createResult(this.#o,this.options);if(this.#i=this.#o.state,this.#l=this.options,void 0!==this.#i.data&&(this.#u=this.#o),(0,s.shallowEqualObjects)(t,e))return;this.#a=t;let r=()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,r="function"==typeof t?t():t;if("all"===r||!r&&!this.#h.size)return!0;let o=new Set(r??this.#h);return this.options.throwOnError&&o.add("error"),Object.keys(this.#a).some(t=>this.#a[t]!==e[t]&&o.has(t))};this.#x({listeners:r()})}#b(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#o)return;let t=this.#o;this.#o=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#g()}#x(e){n.notifyManager.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#a)}),this.#e.getQueryCache().notify({query:this.#o,type:"observerResultsUpdated"})})}};function d(e,t){return!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&void 0===e.state.data&&("error"!==e.state.status||!1!==(0,s.resolveQueryBoolean)(t.retryOnMount,e))||void 0!==e.state.data&&f(e,t,t.refetchOnMount)}function f(e,t,r){if(!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&"static"!==(0,s.resolveStaleTime)(t.staleTime,e)){let o="function"==typeof r?r(e):r;return"always"===o||!1!==o&&h(e,t)}return!1}function p(e,t,r,o){return(e!==t||!1===(0,s.resolveQueryBoolean)(o.enabled,e))&&(!r.suspense||"error"!==e.state.status)&&h(e,r)}function h(e,t){return!1!==(0,s.resolveQueryBoolean)(t.enabled,e)&&e.isStaleByTime((0,s.resolveStaleTime)(t.staleTime,e))}e.s(["QueryObserver",0,u],869230),e.i(247167);var m=e.i(271645),g=e.i(912598);e.i(843476);var v=m.createContext((t=!1,{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t})),y=m.createContext(!1);y.Provider;var b=(e,t,r)=>t.fetchOptimistic(e).catch(()=>{r.clearReset()});function w(e,t,r){let a,i=m.useContext(y),l=m.useContext(v),c=(0,g.useQueryClient)(r),u=c.defaultQueryOptions(e);c.getDefaultOptions().queries?._experimental_beforeQuery?.(u);let d=c.getQueryCache().get(u.queryHash);if(u._optimisticResults=i?"isRestoring":"optimistic",u.suspense){let e=e=>"static"===e?e:Math.max(e??1e3,1e3),t=u.staleTime;u.staleTime="function"==typeof t?(...r)=>e(t(...r)):e(t),"number"==typeof u.gcTime&&(u.gcTime=Math.max(u.gcTime,1e3))}a=d?.state.error&&"function"==typeof u.throwOnError?(0,s.shouldThrowError)(u.throwOnError,[d.state.error,d]):u.throwOnError,(u.suspense||u.experimental_prefetchInRender||a)&&!l.isReset()&&(u.retryOnMount=!1),m.useEffect(()=>{l.clearReset()},[l]);let f=!c.getQueryCache().get(u.queryHash),[p]=m.useState(()=>new t(c,u)),h=p.getOptimisticResult(u),w=!i&&!1!==e.subscribed;if(m.useSyncExternalStore(m.useCallback(e=>{let t=w?p.subscribe(n.notifyManager.batchCalls(e)):s.noop;return p.updateResult(),t},[p,w]),()=>p.getCurrentResult(),()=>p.getCurrentResult()),m.useEffect(()=>{p.setOptions(u)},[u,p]),u?.suspense&&h.isPending)throw b(u,p,l);if((({result:e,errorResetBoundary:t,throwOnError:r,query:o,suspense:n})=>e.isError&&!t.isReset()&&!e.isFetching&&o&&(n&&void 0===e.data||(0,s.shouldThrowError)(r,[e.error,o])))({result:h,errorResetBoundary:l,throwOnError:u.throwOnError,query:d,suspense:u.suspense}))throw h.error;if(c.getDefaultOptions().queries?._experimental_afterQuery?.(u,h),u.experimental_prefetchInRender&&!o.environmentManager.isServer()&&h.isLoading&&h.isFetching&&!i){let e=f?b(u,p,l):d?.promise;e?.catch(s.noop).finally(()=>{p.updateResult()})}return u.notifyOnChangeProps?h:p.trackResult(h)}e.s(["useBaseQuery",0,w],469637),e.s(["useQuery",0,function(e,t){return w(e,u,t)}],266027)},243652,e=>{"use strict";e.s(["createQueryKeys",0,function(e){let t=[e];return{all:t,lists:()=>[...t,"list"],list:e=>[...t,"list",{params:e}],details:()=>[...t,"detail"],detail:e=>[...t,"detail",e]}}])},612256,e=>{"use strict";var t=e.i(764205),r=e.i(266027);let o=(0,e.i(243652).createQueryKeys)("uiConfig");e.s(["useUIConfig",0,()=>(0,r.useQuery)({queryKey:o.list({}),queryFn:async()=>await (0,t.getUiConfig)(),staleTime:864e5,gcTime:864e5})])},947293,e=>{"use strict";class t extends Error{}t.prototype.name="InvalidTokenError",e.s(["jwtDecode",0,function(e,r){let o;if("string"!=typeof e)throw new t("Invalid token specified: must be a string");r||(r={});let n=+(!0!==r.header),a=e.split(".")[n];if("string"!=typeof a)throw new t(`Invalid token specified: missing part #${n+1}`);try{o=function(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw Error("base64 string is not of the correct length")}try{var r;return r=t,decodeURIComponent(atob(r).replace(/(.)/g,(e,t)=>{let r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r}))}catch(e){return atob(t)}}(a)}catch(e){throw new t(`Invalid token specified: invalid base64 for part #${n+1} (${e.message})`)}try{return JSON.parse(o)}catch(e){throw new t(`Invalid token specified: invalid json for part #${n+1} (${e.message})`)}}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0eym_z87ts-j8.js b/litellm/proxy/_experimental/out/_next/static/chunks/0eym_z87ts-j8.js deleted file mode 100644 index 67e820f5b45..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/0eym_z87ts-j8.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,21548,e=>{"use strict";var t=e.i(616303);e.s(["Empty",()=>t.default])},888288,e=>{"use strict";var t=e.i(271645);e.s(["default",0,(e,r)=>{let o=void 0!==r,[n,a]=(0,t.useState)(e);return[o?r:n,e=>{o||a(e)}]}])},954616,e=>{"use strict";var t=e.i(271645),r=e.i(114272),o=e.i(540143),n=e.i(915823),a=e.i(619273),s=class extends n.Subscribable{#e;#t=void 0;#r;#o;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#n()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),(0,a.shallowEqualObjects)(this.options,t)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#r,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,a.hashKey)(t.mutationKey)!==(0,a.hashKey)(this.options.mutationKey)?this.reset():this.#r?.state.status==="pending"&&this.#r.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#r?.removeObserver(this)}onMutationUpdate(e){this.#n(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#r?.removeObserver(this),this.#r=void 0,this.#n(),this.#a()}mutate(e,t){return this.#o=t,this.#r?.removeObserver(this),this.#r=this.#e.getMutationCache().build(this.#e,this.options),this.#r.addObserver(this),this.#r.execute(e)}#n(){let e=this.#r?.state??(0,r.getDefaultState)();this.#t={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#a(e){o.notifyManager.batch(()=>{if(this.#o&&this.hasListeners()){let t=this.#t.variables,r=this.#t.context,o={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type==="success"){try{this.#o.onSuccess?.(e.data,t,r,o)}catch(e){Promise.reject(e)}try{this.#o.onSettled?.(e.data,null,t,r,o)}catch(e){Promise.reject(e)}}else if(e?.type==="error"){try{this.#o.onError?.(e.error,t,r,o)}catch(e){Promise.reject(e)}try{this.#o.onSettled?.(void 0,e.error,t,r,o)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},i=e.i(912598);e.s(["useMutation",0,function(e,r){let n=(0,i.useQueryClient)(r),[l]=t.useState(()=>new s(n,e));t.useEffect(()=>{l.setOptions(e)},[l,e]);let u=t.useSyncExternalStore(t.useCallback(e=>l.subscribe(o.notifyManager.batchCalls(e)),[l]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),c=t.useCallback((e,t)=>{l.mutate(e,t).catch(a.noop)},[l]);if(u.error&&(0,a.shouldThrowError)(l.options.throwOnError,[u.error]))throw u.error;return{...u,mutate:c,mutateAsync:u.mutate}}],954616)},829672,836938,310730,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),o=e.i(914949),n=e.i(404948);let a=e=>e?"function"==typeof e?e():e:null;e.s(["getRenderPropValue",0,a],836938);var s=e.i(613541),i=e.i(763731),l=e.i(242064),u=e.i(491816);e.i(793154);var c=e.i(880476),d=e.i(183293),p=e.i(717356),m=e.i(320560),f=e.i(307358),h=e.i(246422),b=e.i(838378),g=e.i(617933);let y=(0,h.genStyleHooks)("Popover",e=>{let{colorBgElevated:t,colorText:r}=e,o=(0,b.mergeToken)(e,{popoverBg:t,popoverColor:r});return[(e=>{let{componentCls:t,popoverColor:r,titleMinWidth:o,fontWeightStrong:n,innerPadding:a,boxShadowSecondary:s,colorTextHeading:i,borderRadiusLG:l,zIndexPopup:u,titleMarginBottom:c,colorBgElevated:p,popoverBg:f,titleBorderBottom:h,innerContentPadding:b,titlePadding:g}=e;return[{[t]:Object.assign(Object.assign({},(0,d.resetComponent)(e)),{position:"absolute",top:0,left:{_skip_check_:!0,value:0},zIndex:u,fontWeight:"normal",whiteSpace:"normal",textAlign:"start",cursor:"auto",userSelect:"text","--valid-offset-x":"var(--arrow-offset-horizontal, var(--arrow-x))",transformOrigin:"var(--valid-offset-x, 50%) var(--arrow-y, 50%)","--antd-arrow-background-color":p,width:"max-content",maxWidth:"100vw","&-rtl":{direction:"rtl"},"&-hidden":{display:"none"},[`${t}-content`]:{position:"relative"},[`${t}-inner`]:{backgroundColor:f,backgroundClip:"padding-box",borderRadius:l,boxShadow:s,padding:a},[`${t}-title`]:{minWidth:o,marginBottom:c,color:i,fontWeight:n,borderBottom:h,padding:g},[`${t}-inner-content`]:{color:r,padding:b}})},(0,m.default)(e,"var(--antd-arrow-background-color)"),{[`${t}-pure`]:{position:"relative",maxWidth:"none",margin:e.sizePopupArrow,display:"inline-block",[`${t}-content`]:{display:"inline-block"}}}]})(o),(e=>{let{componentCls:t}=e;return{[t]:g.PresetColors.map(r=>{let o=e[`${r}6`];return{[`&${t}-${r}`]:{"--antd-arrow-background-color":o,[`${t}-inner`]:{backgroundColor:o},[`${t}-arrow`]:{background:"transparent"}}}})}})(o),(0,p.initZoomMotion)(o,"zoom-big")]},e=>{let{lineWidth:t,controlHeight:r,fontHeight:o,padding:n,wireframe:a,zIndexPopupBase:s,borderRadiusLG:i,marginXS:l,lineType:u,colorSplit:c,paddingSM:d}=e,p=r-o;return Object.assign(Object.assign(Object.assign({titleMinWidth:177,zIndexPopup:s+30},(0,f.getArrowToken)(e)),(0,m.getArrowOffsetToken)({contentRadius:i,limitVerticalRadius:!0})),{innerPadding:12*!a,titleMarginBottom:a?0:l,titlePadding:a?`${p/2}px ${n}px ${p/2-t}px`:0,titleBorderBottom:a?`${t}px ${u} ${c}`:"none",innerContentPadding:a?`${d}px ${n}px`:0})},{resetStyle:!1,deprecatedTokens:[["width","titleMinWidth"],["minWidth","titleMinWidth"]]});var v=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let O=({title:e,content:r,prefixCls:o})=>e||r?t.createElement(t.Fragment,null,e&&t.createElement("div",{className:`${o}-title`},e),r&&t.createElement("div",{className:`${o}-inner-content`},r)):null,C=e=>{let{hashId:o,prefixCls:n,className:s,style:i,placement:l="top",title:u,content:d,children:p}=e,m=a(u),f=a(d),h=(0,r.default)(o,n,`${n}-pure`,`${n}-placement-${l}`,s);return t.createElement("div",{className:h,style:i},t.createElement("div",{className:`${n}-arrow`}),t.createElement(c.Popup,Object.assign({},e,{className:o,prefixCls:n}),p||t.createElement(O,{prefixCls:n,title:m,content:f})))},x=e=>{let{prefixCls:o,className:n}=e,a=v(e,["prefixCls","className"]),{getPrefixCls:s}=t.useContext(l.ConfigContext),i=s("popover",o),[u,c,d]=y(i);return u(t.createElement(C,Object.assign({},a,{prefixCls:i,hashId:c,className:(0,r.default)(n,d)})))};e.s(["Overlay",0,O,"default",0,x],310730);var k=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let w=t.forwardRef((e,c)=>{var d,p;let{prefixCls:m,title:f,content:h,overlayClassName:b,placement:g="top",trigger:v="hover",children:C,mouseEnterDelay:x=.1,mouseLeaveDelay:w=.1,onOpenChange:E,overlayStyle:j={},styles:P,classNames:S}=e,M=k(e,["prefixCls","title","content","overlayClassName","placement","trigger","children","mouseEnterDelay","mouseLeaveDelay","onOpenChange","overlayStyle","styles","classNames"]),{getPrefixCls:N,className:$,style:R,classNames:T,styles:D}=(0,l.useComponentConfig)("popover"),I=N("popover",m),[F,K,B]=y(I),V=N(),W=(0,r.default)(b,K,B,$,T.root,null==S?void 0:S.root),L=(0,r.default)(T.body,null==S?void 0:S.body),[z,A]=(0,o.default)(!1,{value:null!=(d=e.open)?d:e.visible,defaultValue:null!=(p=e.defaultOpen)?p:e.defaultVisible}),U=(e,t)=>{A(e,!0),null==E||E(e,t)},H=a(f),q=a(h);return F(t.createElement(u.default,Object.assign({placement:g,trigger:v,mouseEnterDelay:x,mouseLeaveDelay:w},M,{prefixCls:I,classNames:{root:W,body:L},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},D.root),R),j),null==P?void 0:P.root),body:Object.assign(Object.assign({},D.body),null==P?void 0:P.body)},ref:c,open:z,onOpenChange:e=>{U(e)},overlay:H||q?t.createElement(O,{prefixCls:I,title:H,content:q}):null,transitionName:(0,s.getTransitionName)(V,"zoom-big",M.transitionName),"data-popover-inject":!0}),(0,i.cloneElement)(C,{onKeyDown:e=>{var r,o;(0,t.isValidElement)(C)&&(null==(o=null==C?void 0:(r=C.props).onKeyDown)||o.call(r,e)),e.keyCode===n.default.ESC&&U(!1,e)}})))});w._InternalPanelDoNotUseOrYouWillBeFired=x,e.s(["default",0,w],829672)},793130,e=>{"use strict";var t=e.i(290571),r=e.i(783222),o=e.i(433336),n=e.i(271645),a=e.i(394487),s=e.i(503269),i=e.i(214520),l=e.i(746725),u=e.i(914189),c=e.i(144279),d=e.i(294316),p=e.i(601893),m=e.i(140721),f=e.i(942803),h=e.i(233538),b=e.i(694421),g=e.i(700020),y=e.i(35889),v=e.i(998348),O=e.i(722678);let C=(0,n.createContext)(null);C.displayName="GroupContext";let x=n.Fragment,k=Object.assign((0,g.forwardRefWithAs)(function(e,t){var x;let k=(0,n.useId)(),w=(0,f.useProvidedId)(),E=(0,p.useDisabled)(),{id:j=w||`headlessui-switch-${k}`,disabled:P=E||!1,checked:S,defaultChecked:M,onChange:N,name:$,value:R,form:T,autoFocus:D=!1,...I}=e,F=(0,n.useContext)(C),[K,B]=(0,n.useState)(null),V=(0,n.useRef)(null),W=(0,d.useSyncRefs)(V,t,null===F?null:F.setSwitch,B),L=(0,i.useDefaultValue)(M),[z,A]=(0,s.useControllable)(S,N,null!=L&&L),U=(0,l.useDisposables)(),[H,q]=(0,n.useState)(!1),_=(0,u.useEvent)(()=>{q(!0),null==A||A(!z),U.nextFrame(()=>{q(!1)})}),G=(0,u.useEvent)(e=>{if((0,h.isDisabledReactIssue7711)(e.currentTarget))return e.preventDefault();e.preventDefault(),_()}),Y=(0,u.useEvent)(e=>{e.key===v.Keys.Space?(e.preventDefault(),_()):e.key===v.Keys.Enter&&(0,b.attemptSubmit)(e.currentTarget)}),Q=(0,u.useEvent)(e=>e.preventDefault()),Z=(0,O.useLabelledBy)(),J=(0,y.useDescribedBy)(),{isFocusVisible:X,focusProps:ee}=(0,r.useFocusRing)({autoFocus:D}),{isHovered:et,hoverProps:er}=(0,o.useHover)({isDisabled:P}),{pressed:eo,pressProps:en}=(0,a.useActivePress)({disabled:P}),ea=(0,n.useMemo)(()=>({checked:z,disabled:P,hover:et,focus:X,active:eo,autofocus:D,changing:H}),[z,et,X,eo,P,H,D]),es=(0,g.mergeProps)({id:j,ref:W,role:"switch",type:(0,c.useResolveButtonType)(e,K),tabIndex:-1===e.tabIndex?0:null!=(x=e.tabIndex)?x:0,"aria-checked":z,"aria-labelledby":Z,"aria-describedby":J,disabled:P||void 0,autoFocus:D,onClick:G,onKeyUp:Y,onKeyPress:Q},ee,er,en),ei=(0,n.useCallback)(()=>{if(void 0!==L)return null==A?void 0:A(L)},[A,L]),el=(0,g.useRender)();return n.default.createElement(n.default.Fragment,null,null!=$&&n.default.createElement(m.FormFields,{disabled:P,data:{[$]:R||"on"},overrides:{type:"checkbox",checked:z},form:T,onReset:ei}),el({ourProps:es,theirProps:I,slot:ea,defaultTag:"button",name:"Switch"}))}),{Group:function(e){var t;let[r,o]=(0,n.useState)(null),[a,s]=(0,O.useLabels)(),[i,l]=(0,y.useDescriptions)(),u=(0,n.useMemo)(()=>({switch:r,setSwitch:o}),[r,o]),c=(0,g.useRender)();return n.default.createElement(l,{name:"Switch.Description",value:i},n.default.createElement(s,{name:"Switch.Label",value:a,props:{htmlFor:null==(t=u.switch)?void 0:t.id,onClick(e){r&&(e.currentTarget instanceof HTMLLabelElement&&e.preventDefault(),r.click(),r.focus({preventScroll:!0}))}}},n.default.createElement(C.Provider,{value:u},c({ourProps:{},theirProps:e,slot:{},defaultTag:x,name:"Switch.Group"}))))},Label:O.Label,Description:y.Description});var w=e.i(888288),E=e.i(95779),j=e.i(444755),P=e.i(673706),S=e.i(829087);let M=(0,P.makeClassName)("Switch"),N=n.default.forwardRef((e,r)=>{let{checked:o,defaultChecked:a=!1,onChange:s,color:i,name:l,error:u,errorMessage:c,disabled:d,required:p,tooltip:m,id:f}=e,h=(0,t.__rest)(e,["checked","defaultChecked","onChange","color","name","error","errorMessage","disabled","required","tooltip","id"]),b={bgColor:i?(0,P.getColorClassNames)(i,E.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",ringColor:i?(0,P.getColorClassNames)(i,E.colorPalette.ring).ringColor:"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"},[g,y]=(0,w.default)(a,o),[v,O]=(0,n.useState)(!1),{tooltipProps:C,getReferenceProps:x}=(0,S.useTooltip)(300);return n.default.createElement("div",{className:"flex flex-row items-center justify-start"},n.default.createElement(S.default,Object.assign({text:m},C)),n.default.createElement("div",Object.assign({ref:(0,P.mergeRefs)([r,C.refs.setReference]),className:(0,j.tremorTwMerge)(M("root"),"flex flex-row relative h-5")},h,x),n.default.createElement("input",{type:"checkbox",className:(0,j.tremorTwMerge)(M("input"),"absolute w-5 h-5 cursor-pointer left-0 top-0 opacity-0"),name:l,required:p,checked:g,onChange:e=>{e.preventDefault()}}),n.default.createElement(k,{checked:g,onChange:e=>{y(e),null==s||s(e)},disabled:d,className:(0,j.tremorTwMerge)(M("switch"),"w-10 h-5 group relative inline-flex shrink-0 cursor-pointer items-center justify-center rounded-tremor-full","focus:outline-none",d?"cursor-not-allowed":""),onFocus:()=>O(!0),onBlur:()=>O(!1),id:f},n.default.createElement("span",{className:(0,j.tremorTwMerge)(M("sr-only"),"sr-only")},"Switch ",g?"on":"off"),n.default.createElement("span",{"aria-hidden":"true",className:(0,j.tremorTwMerge)(M("background"),g?b.bgColor:"bg-tremor-border dark:bg-dark-tremor-border","pointer-events-none absolute mx-auto h-3 w-9 rounded-tremor-full transition-colors duration-100 ease-in-out")}),n.default.createElement("span",{"aria-hidden":"true",className:(0,j.tremorTwMerge)(M("round"),g?(0,j.tremorTwMerge)(b.bgColor,"translate-x-5 border-tremor-background dark:border-dark-tremor-background"):"translate-x-0 bg-tremor-border dark:bg-dark-tremor-border border-tremor-background dark:border-dark-tremor-background","pointer-events-none absolute left-0 inline-block h-5 w-5 transform rounded-tremor-full border-2 shadow-tremor-input duration-100 ease-in-out transition",v?(0,j.tremorTwMerge)("ring-2",b.ringColor):"")}))),u&&c?n.default.createElement("p",{className:(0,j.tremorTwMerge)(M("errorMessage"),"text-sm text-red-500 mt-1 ")},c):null)});N.displayName="Switch",e.s(["Switch",0,N],793130)},883552,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(562901),o=e.i(343794),n=e.i(914949),a=e.i(529681),s=e.i(242064),i=e.i(829672),l=e.i(285781),u=e.i(836938),c=e.i(920228),d=e.i(62405),p=e.i(408850),m=e.i(87414),f=e.i(310730);let h=(0,e.i(246422).genStyleHooks)("Popconfirm",e=>(e=>{let{componentCls:t,iconCls:r,antCls:o,zIndexPopup:n,colorText:a,colorWarning:s,marginXXS:i,marginXS:l,fontSize:u,fontWeightStrong:c,colorTextHeading:d}=e;return{[t]:{zIndex:n,[`&${o}-popover`]:{fontSize:u},[`${t}-message`]:{marginBottom:l,display:"flex",flexWrap:"nowrap",alignItems:"start",[`> ${t}-message-icon ${r}`]:{color:s,fontSize:u,lineHeight:1,marginInlineEnd:l},[`${t}-title`]:{fontWeight:c,color:d,"&:only-child":{fontWeight:"normal"}},[`${t}-description`]:{marginTop:i,color:a}},[`${t}-buttons`]:{textAlign:"end",whiteSpace:"nowrap",button:{marginInlineStart:l}}}}})(e),e=>{let{zIndexPopupBase:t}=e;return{zIndexPopup:t+60}},{resetStyle:!1});var b=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let g=e=>{let{prefixCls:o,okButtonProps:n,cancelButtonProps:a,title:i,description:f,cancelText:h,okText:b,okType:g="primary",icon:y=t.createElement(r.default,null),showCancel:v=!0,close:O,onConfirm:C,onCancel:x,onPopupClick:k}=e,{getPrefixCls:w}=t.useContext(s.ConfigContext),[E]=(0,p.useLocale)("Popconfirm",m.default.Popconfirm),j=(0,u.getRenderPropValue)(i),P=(0,u.getRenderPropValue)(f);return t.createElement("div",{className:`${o}-inner-content`,onClick:k},t.createElement("div",{className:`${o}-message`},y&&t.createElement("span",{className:`${o}-message-icon`},y),t.createElement("div",{className:`${o}-message-text`},j&&t.createElement("div",{className:`${o}-title`},j),P&&t.createElement("div",{className:`${o}-description`},P))),t.createElement("div",{className:`${o}-buttons`},v&&t.createElement(c.default,Object.assign({onClick:x,size:"small"},a),h||(null==E?void 0:E.cancelText)),t.createElement(l.default,{buttonProps:Object.assign(Object.assign({size:"small"},(0,d.convertLegacyProps)(g)),n),actionFn:C,close:O,prefixCls:w("btn"),quitOnNullishReturnValue:!0,emitEvent:!0},b||(null==E?void 0:E.okText))))};var y=function(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&0>t.indexOf(o)&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var n=0,o=Object.getOwnPropertySymbols(e);nt.indexOf(o[n])&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]]);return r};let v=t.forwardRef((e,l)=>{var u,c;let{prefixCls:d,placement:p="top",trigger:m="click",okType:f="primary",icon:b=t.createElement(r.default,null),children:v,overlayClassName:O,onOpenChange:C,onVisibleChange:x,overlayStyle:k,styles:w,classNames:E}=e,j=y(e,["prefixCls","placement","trigger","okType","icon","children","overlayClassName","onOpenChange","onVisibleChange","overlayStyle","styles","classNames"]),{getPrefixCls:P,className:S,style:M,classNames:N,styles:$}=(0,s.useComponentConfig)("popconfirm"),[R,T]=(0,n.default)(!1,{value:null!=(u=e.open)?u:e.visible,defaultValue:null!=(c=e.defaultOpen)?c:e.defaultVisible}),D=(e,t)=>{T(e,!0),null==x||x(e),null==C||C(e,t)},I=P("popconfirm",d),F=(0,o.default)(I,S,O,N.root,null==E?void 0:E.root),K=(0,o.default)(N.body,null==E?void 0:E.body),[B]=h(I);return B(t.createElement(i.default,Object.assign({},(0,a.default)(j,["title"]),{trigger:m,placement:p,onOpenChange:(t,r)=>{let{disabled:o=!1}=e;o||D(t,r)},open:R,ref:l,classNames:{root:F,body:K},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},$.root),M),k),null==w?void 0:w.root),body:Object.assign(Object.assign({},$.body),null==w?void 0:w.body)},content:t.createElement(g,Object.assign({okType:f,icon:b},e,{prefixCls:I,close:e=>{D(!1,e)},onConfirm:t=>{var r;return null==(r=e.onConfirm)?void 0:r.call(void 0,t)},onCancel:t=>{var r;D(!1,t),null==(r=e.onCancel)||r.call(void 0,t)}})),"data-popover-inject":!0}),v))});v._InternalPanelDoNotUseOrYouWillBeFired=e=>{let{prefixCls:r,placement:n,className:a,style:i}=e,l=b(e,["prefixCls","placement","className","style"]),{getPrefixCls:u}=t.useContext(s.ConfigContext),c=u("popconfirm",r),[d]=h(c);return d(t.createElement(f.default,{placement:n,className:(0,o.default)(c,a),style:i,content:t.createElement(g,Object.assign({prefixCls:c},l))}))},e.s(["Popconfirm",0,v],883552)},431343,569074,e=>{"use strict";var t=e.i(475254);let r=(0,t.default)("play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);e.s(["Play",0,r],431343);let o=(0,t.default)("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]);e.s(["Upload",0,o],569074)},727612,e=>{"use strict";let t=(0,e.i(475254).default)("trash-2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);e.s(["Trash2",0,t],727612)},688511,823429,e=>{"use strict";let t=(0,e.i(475254).default)("square-pen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);e.s(["default",0,t],823429),e.s(["Edit",0,t],688511)},764367,e=>{"use strict";var t=e.i(843476),r=e.i(700904),o=e.i(135214);e.s(["default",0,()=>{let{accessToken:e,userRole:n,userId:a,premiumUser:s}=(0,o.default)();return(0,t.jsx)(r.default,{accessToken:e,userRole:n,userID:a,premiumUser:s})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/16bbwf4tez3tz.js b/litellm/proxy/_experimental/out/_next/static/chunks/0f~8r5nzy0hm2.js similarity index 64% rename from litellm/proxy/_experimental/out/_next/static/chunks/16bbwf4tez3tz.js rename to litellm/proxy/_experimental/out/_next/static/chunks/0f~8r5nzy0hm2.js index cf68dcebe93..47719f058e1 100644 --- a/litellm/proxy/_experimental/out/_next/static/chunks/16bbwf4tez3tz.js +++ b/litellm/proxy/_experimental/out/_next/static/chunks/0f~8r5nzy0hm2.js @@ -1,8 +1,8 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,916925,e=>{"use strict";var t,a=((t={}).A2A_Agent="A2A Agent",t.AI21="Ai21",t.AI21_CHAT="Ai21 Chat",t.AIML="AI/ML API",t.AIOHTTP_OPENAI="Aiohttp Openai",t.Anthropic="Anthropic",t.ANTHROPIC_TEXT="Anthropic Text",t.AssemblyAI="AssemblyAI",t.AUTO_ROUTER="Auto Router",t.Bedrock="Amazon Bedrock",t.BedrockMantle="Amazon Bedrock Mantle",t.SageMaker="AWS SageMaker",t.Azure="Azure",t.Azure_AI_Studio="Azure AI Foundry (Studio)",t.AZURE_TEXT="Azure Text",t.BASETEN="Baseten",t.BYTEZ="Bytez",t.Cerebras="Cerebras",t.CLARIFAI="Clarifai",t.CLOUDFLARE="Cloudflare",t.CODESTRAL="Codestral",t.Cohere="Cohere",t.COHERE_CHAT="Cohere Chat",t.COMETAPI="Cometapi",t.COMPACTIFAI="Compactifai",t.Cursor="Cursor",t.Dashscope="Dashscope",t.Databricks="Databricks (Qwen API)",t.DATAROBOT="Datarobot",t.DeepInfra="DeepInfra",t.Deepgram="Deepgram",t.Deepseek="Deepseek",t.DOCKER_MODEL_RUNNER="Docker Model Runner",t.DOTPROMPT="Dotprompt",t.ElevenLabs="ElevenLabs",t.EMPOWER="Empower",t.FalAI="Fal AI",t.FEATHERLESS_AI="Featherless Ai",t.FireworksAI="Fireworks AI",t.FRIENDLIAI="Friendliai",t.GALADRIEL="Galadriel",t.GITHUB_COPILOT="Github Copilot",t.Google_AI_Studio="Google AI Studio",t.GradientAI="GradientAI",t.Groq="Groq",t.HEROKU="Heroku",t.Hosted_Vllm="vllm",t.HUGGINGFACE="Huggingface",t.HYPERBOLIC="Hyperbolic",t.Infinity="Infinity",t.JinaAI="Jina AI",t.LAMBDA_AI="Lambda Ai",t.LEMONADE="Lemonade",t.LLAMAFILE="Llamafile",t.LM_STUDIO="Lm Studio",t.LLAMA="Meta Llama",t.MARITALK="Maritalk",t.MiniMax="MiniMax",t.MistralAI="Mistral AI",t.MOONSHOT="Moonshot",t.MORPH="Morph",t.NEBIUS="Nebius",t.NLP_CLOUD="Nlp Cloud",t.NOVITA="Novita",t.NSCALE="Nscale",t.NVIDIA_NIM="Nvidia Nim",t.Ollama="Ollama",t.OLLAMA_CHAT="Ollama Chat",t.OOBABOOGA="Oobabooga",t.OpenAI="OpenAI",t.OPENAI_LIKE="Openai Like",t.OpenAI_Compatible="OpenAI-Compatible Endpoints (Together AI, etc.)",t.OpenAI_Text="OpenAI Text Completion",t.OpenAI_Text_Compatible="OpenAI-Compatible Text Completion Models (Together AI, etc.)",t.Openrouter="Openrouter",t.Oracle="Oracle Cloud Infrastructure (OCI)",t.OVHCLOUD="Ovhcloud",t.Perplexity="Perplexity",t.PETALS="Petals",t.PG_VECTOR="Pg Vector",t.PREDIBASE="Predibase",t.RECRAFT="Recraft",t.REPLICATE="Replicate",t.RunwayML="RunwayML",t.SAGEMAKER_LEGACY="Sagemaker",t.Sambanova="Sambanova",t.SAP="SAP Generative AI Hub",t.Snowflake="Snowflake",t.TEXT_COMPLETION_CODESTRAL="Text-Completion-Codestral",t.TogetherAI="TogetherAI",t.TOPAZ="Topaz",t.Triton="Triton",t.V0="V0",t.VERCEL_AI_GATEWAY="Vercel Ai Gateway",t.Vertex_AI="Vertex AI (Anthropic, Gemini, etc.)",t.VERTEX_AI_BETA="Vertex Ai Beta",t.VLLM="Vllm",t.VolcEngine="VolcEngine",t.Voyage="Voyage AI",t.WANDB="Wandb",t.WATSONX="Watsonx",t.WATSONX_TEXT="Watsonx Text",t.xAI="xAI",t.XINFERENCE="Xinference",t.ZAI="Z.AI (Zhipu AI)",t);let r={A2A_Agent:"a2a_agent",AI21:"ai21",AI21_CHAT:"ai21_chat",AIML:"aiml",AIOHTTP_OPENAI:"aiohttp_openai",Anthropic:"anthropic",ANTHROPIC_TEXT:"anthropic_text",AssemblyAI:"assemblyai",AUTO_ROUTER:"auto_router",Azure:"azure",Azure_AI_Studio:"azure_ai",AZURE_TEXT:"azure_text",BASETEN:"baseten",Bedrock:"bedrock",BedrockMantle:"bedrock_mantle",BYTEZ:"bytez",Cerebras:"cerebras",CLARIFAI:"clarifai",CLOUDFLARE:"cloudflare",CODESTRAL:"codestral",Cohere:"cohere",COHERE_CHAT:"cohere_chat",COMETAPI:"cometapi",COMPACTIFAI:"compactifai",Cursor:"cursor",Dashscope:"dashscope",Databricks:"databricks",DATAROBOT:"datarobot",DeepInfra:"deepinfra",Deepgram:"deepgram",Deepseek:"deepseek",DOCKER_MODEL_RUNNER:"docker_model_runner",DOTPROMPT:"dotprompt",ElevenLabs:"elevenlabs",EMPOWER:"empower",FalAI:"fal_ai",FEATHERLESS_AI:"featherless_ai",FireworksAI:"fireworks_ai",FRIENDLIAI:"friendliai",GALADRIEL:"galadriel",GITHUB_COPILOT:"github_copilot",Google_AI_Studio:"gemini",GradientAI:"gradient_ai",Groq:"groq",HEROKU:"heroku",Hosted_Vllm:"hosted_vllm",HUGGINGFACE:"huggingface",HYPERBOLIC:"hyperbolic",Infinity:"infinity",JinaAI:"jina_ai",LAMBDA_AI:"lambda_ai",LEMONADE:"lemonade",LLAMAFILE:"llamafile",LLAMA:"meta_llama",LM_STUDIO:"lm_studio",MARITALK:"maritalk",MiniMax:"minimax",MistralAI:"mistral",MOONSHOT:"moonshot",MORPH:"morph",NEBIUS:"nebius",NLP_CLOUD:"nlp_cloud",NOVITA:"novita",NSCALE:"nscale",NVIDIA_NIM:"nvidia_nim",Ollama:"ollama",OLLAMA_CHAT:"ollama_chat",OOBABOOGA:"oobabooga",OpenAI:"openai",OPENAI_LIKE:"openai_like",OpenAI_Compatible:"openai",OpenAI_Text:"text-completion-openai",OpenAI_Text_Compatible:"text-completion-openai",Openrouter:"openrouter",Oracle:"oci",OVHCLOUD:"ovhcloud",Perplexity:"perplexity",PETALS:"petals",PG_VECTOR:"pg_vector",PREDIBASE:"predibase",RECRAFT:"recraft",REPLICATE:"replicate",RunwayML:"runwayml",SAGEMAKER_LEGACY:"sagemaker",SageMaker:"sagemaker_chat",Sambanova:"sambanova",SAP:"sap",Snowflake:"snowflake",TEXT_COMPLETION_CODESTRAL:"text-completion-codestral",TogetherAI:"together_ai",TOPAZ:"topaz",Triton:"triton",V0:"v0",VERCEL_AI_GATEWAY:"vercel_ai_gateway",Vertex_AI:"vertex_ai",VERTEX_AI_BETA:"vertex_ai_beta",VLLM:"vllm",VolcEngine:"volcengine",Voyage:"voyage",WANDB:"wandb",WATSONX:"watsonx",WATSONX_TEXT:"watsonx_text",xAI:"xai",XINFERENCE:"xinference",ZAI:"zai"},l="../ui/assets/logos/",i={"A2A Agent":`${l}a2a_agent.png`,Ai21:`${l}ai21.svg`,"Ai21 Chat":`${l}ai21.svg`,"AI/ML API":`${l}aiml_api.svg`,"Aiohttp Openai":`${l}openai_small.svg`,Anthropic:`${l}anthropic.svg`,"Anthropic Text":`${l}anthropic.svg`,AssemblyAI:`${l}assemblyai_small.png`,Azure:`${l}microsoft_azure.svg`,"Azure AI Foundry (Studio)":`${l}microsoft_azure.svg`,"Azure Text":`${l}microsoft_azure.svg`,Baseten:`${l}baseten.svg`,"Amazon Bedrock":`${l}bedrock.svg`,"Amazon Bedrock Mantle":`${l}bedrock.svg`,"AWS SageMaker":`${l}bedrock.svg`,Cerebras:`${l}cerebras.svg`,Cloudflare:`${l}cloudflare.svg`,Codestral:`${l}mistral.svg`,Cohere:`${l}cohere.svg`,"Cohere Chat":`${l}cohere.svg`,Cometapi:`${l}cometapi.svg`,Cursor:`${l}cursor.svg`,"Databricks (Qwen API)":`${l}databricks.svg`,Dashscope:`${l}dashscope.svg`,Deepseek:`${l}deepseek.svg`,Deepgram:`${l}deepgram.png`,DeepInfra:`${l}deepinfra.png`,ElevenLabs:`${l}elevenlabs.png`,"Fal AI":`${l}fal_ai.jpg`,"Featherless Ai":`${l}featherless.svg`,"Fireworks AI":`${l}fireworks.svg`,Friendliai:`${l}friendli.svg`,"Github Copilot":`${l}github_copilot.svg`,"Google AI Studio":`${l}google.svg`,GradientAI:`${l}gradientai.svg`,Groq:`${l}groq.svg`,vllm:`${l}vllm.png`,Huggingface:`${l}huggingface.svg`,Hyperbolic:`${l}hyperbolic.svg`,Infinity:`${l}infinity.png`,"Jina AI":`${l}jina.png`,"Lambda Ai":`${l}lambda.svg`,"Lm Studio":`${l}lmstudio.svg`,"Meta Llama":`${l}meta_llama.svg`,MiniMax:`${l}minimax.svg`,"Mistral AI":`${l}mistral.svg`,Moonshot:`${l}moonshot.svg`,Morph:`${l}morph.svg`,Nebius:`${l}nebius.svg`,Novita:`${l}novita.svg`,"Nvidia Nim":`${l}nvidia_nim.svg`,Ollama:`${l}ollama.svg`,"Ollama Chat":`${l}ollama.svg`,Oobabooga:`${l}openai_small.svg`,OpenAI:`${l}openai_small.svg`,"Openai Like":`${l}openai_small.svg`,"OpenAI Text Completion":`${l}openai_small.svg`,"OpenAI-Compatible Text Completion Models (Together AI, etc.)":`${l}openai_small.svg`,"OpenAI-Compatible Endpoints (Together AI, etc.)":`${l}openai_small.svg`,Openrouter:`${l}openrouter.svg`,"Oracle Cloud Infrastructure (OCI)":`${l}oracle.svg`,Perplexity:`${l}perplexity-ai.svg`,Recraft:`${l}recraft.svg`,Replicate:`${l}replicate.svg`,RunwayML:`${l}runwayml.png`,Sagemaker:`${l}bedrock.svg`,Sambanova:`${l}sambanova.svg`,"SAP Generative AI Hub":`${l}sap.png`,Snowflake:`${l}snowflake.svg`,"Text-Completion-Codestral":`${l}mistral.svg`,TogetherAI:`${l}togetherai.svg`,Topaz:`${l}topaz.svg`,Triton:`${l}nvidia_triton.png`,V0:`${l}v0.svg`,"Vercel Ai Gateway":`${l}vercel.svg`,"Vertex AI (Anthropic, Gemini, etc.)":`${l}google.svg`,"Vertex Ai Beta":`${l}google.svg`,Vllm:`${l}vllm.png`,VolcEngine:`${l}volcengine.png`,"Voyage AI":`${l}voyage.webp`,Watsonx:`${l}watsonx.svg`,"Watsonx Text":`${l}watsonx.svg`,xAI:`${l}xai.svg`,Xinference:`${l}xinference.svg`};e.s(["Providers",()=>a,"getPlaceholder",0,e=>{if("AI/ML API"===e)return"aiml/flux-pro/v1.1";if("Vertex AI (Anthropic, Gemini, etc.)"===e)return"gemini-pro";if("Anthropic"==e)return"claude-3-opus";if("Amazon Bedrock"==e)return"claude-3-opus";if("AWS SageMaker"==e)return"sagemaker/jumpstart-dft-meta-textgeneration-llama-2-7b";else if("Google AI Studio"==e)return"gemini-pro";else if("Azure AI Foundry (Studio)"==e)return"azure_ai/command-r-plus";else if("Azure"==e)return"my-deployment";else if("Oracle Cloud Infrastructure (OCI)"==e)return"oci/xai.grok-4";else if("Snowflake"==e)return"snowflake/mistral-7b";else if("Voyage AI"==e)return"voyage/";else if("Jina AI"==e)return"jina_ai/";else if("VolcEngine"==e)return"volcengine/";else if("DeepInfra"==e)return"deepinfra/";else if("Fal AI"==e)return"fal_ai/fal-ai/flux-pro/v1.1-ultra";else if("RunwayML"==e)return"runwayml/gen4_turbo";else if("Watsonx"===e)return"watsonx/ibm/granite-3-3-8b-instruct";else if("Cursor"===e)return"cursor/claude-4-sonnet";else if("Z.AI (Zhipu AI)"===e)return"zai/glm-4.5";else return"gpt-3.5-turbo"},"getProviderLogoAndName",0,e=>{if(!e)return{logo:"",displayName:"-"};if("gemini"===e.toLowerCase()){let e="Google AI Studio";return{logo:i[e],displayName:e}}let t=Object.keys(r).find(t=>r[t].toLowerCase()===e.toLowerCase());if(!t)return{logo:"",displayName:e};let l=a[t];return{logo:i[l],displayName:l}},"getProviderModels",0,(e,t)=>{console.log(`Provider key: ${e}`);let a=r[e];console.log(`Provider mapped to: ${a}`);let l=[];return e&&"object"==typeof t&&(Object.entries(t).forEach(([e,t])=>{if(null!==t&&"object"==typeof t&&"litellm_provider"in t){let r=t.litellm_provider;(r===a||"string"==typeof r&&r.includes(a))&&l.push(e)}}),"Cohere"==e&&(console.log("Adding cohere chat models"),Object.entries(t).forEach(([e,t])=>{null!==t&&"object"==typeof t&&"litellm_provider"in t&&"cohere_chat"===t.litellm_provider&&l.push(e)})),"AWS SageMaker"==e&&(console.log("Adding sagemaker chat models"),Object.entries(t).forEach(([e,t])=>{null!==t&&"object"==typeof t&&"litellm_provider"in t&&"sagemaker_chat"===t.litellm_provider&&l.push(e)}))),l},"providerLogoMap",0,i,"provider_map",0,r])},362024,e=>{"use strict";var t=e.i(988122);e.s(["Collapse",()=>t.default])},240647,e=>{"use strict";var t=e.i(286612);e.s(["RightOutlined",()=>t.default])},185793,e=>{"use strict";e.i(247167);var t=e.i(271645),a=e.i(343794),r=e.i(242064),l=e.i(529681);let i=e=>{let{prefixCls:r,className:l,style:i,size:n,shape:o}=e,s=(0,a.default)({[`${r}-lg`]:"large"===n,[`${r}-sm`]:"small"===n}),c=(0,a.default)({[`${r}-circle`]:"circle"===o,[`${r}-square`]:"square"===o,[`${r}-round`]:"round"===o}),d=t.useMemo(()=>"number"==typeof n?{width:n,height:n,lineHeight:`${n}px`}:{},[n]);return t.createElement("span",{className:(0,a.default)(r,s,c,l),style:Object.assign(Object.assign({},d),i)})};e.i(296059);var n=e.i(694758),o=e.i(915654),s=e.i(246422),c=e.i(838378);let d=new n.Keyframes("ant-skeleton-loading",{"0%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),m=e=>({height:e,lineHeight:(0,o.unit)(e)}),u=e=>Object.assign({width:e},m(e)),g=(e,t)=>Object.assign({width:t(e).mul(5).equal(),minWidth:t(e).mul(5).equal()},m(e)),p=e=>Object.assign({width:e},m(e)),A=(e,t,a)=>{let{skeletonButtonCls:r}=e;return{[`${a}${r}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${a}${r}-round`]:{borderRadius:t}}},f=(e,t)=>Object.assign({width:t(e).mul(2).equal(),minWidth:t(e).mul(2).equal()},m(e)),b=(0,s.genStyleHooks)("Skeleton",e=>{let{componentCls:t,calc:a}=e;return(e=>{let{componentCls:t,skeletonAvatarCls:a,skeletonTitleCls:r,skeletonParagraphCls:l,skeletonButtonCls:i,skeletonInputCls:n,skeletonImageCls:o,controlHeight:s,controlHeightLG:c,controlHeightSM:m,gradientFromColor:b,padding:v,marginSM:h,borderRadius:C,titleHeight:O,blockRadius:I,paragraphLiHeight:E,controlHeightXS:$,paragraphMarginTop:T}=e;return{[t]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:v,verticalAlign:"top",[a]:Object.assign({display:"inline-block",verticalAlign:"top",background:b},u(s)),[`${a}-circle`]:{borderRadius:"50%"},[`${a}-lg`]:Object.assign({},u(c)),[`${a}-sm`]:Object.assign({},u(m))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[r]:{width:"100%",height:O,background:b,borderRadius:I,[`+ ${l}`]:{marginBlockStart:m}},[l]:{padding:0,"> li":{width:"100%",height:E,listStyle:"none",background:b,borderRadius:I,"+ li":{marginBlockStart:$}}},[`${l}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${r}, ${l} > li`]:{borderRadius:C}}},[`${t}-with-avatar ${t}-content`]:{[r]:{marginBlockStart:h,[`+ ${l}`]:{marginBlockStart:T}}},[`${t}${t}-element`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"inline-block",width:"auto"},(e=>{let{borderRadiusSM:t,skeletonButtonCls:a,controlHeight:r,controlHeightLG:l,controlHeightSM:i,gradientFromColor:n,calc:o}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[a]:Object.assign({display:"inline-block",verticalAlign:"top",background:n,borderRadius:t,width:o(r).mul(2).equal(),minWidth:o(r).mul(2).equal()},f(r,o))},A(e,r,a)),{[`${a}-lg`]:Object.assign({},f(l,o))}),A(e,l,`${a}-lg`)),{[`${a}-sm`]:Object.assign({},f(i,o))}),A(e,i,`${a}-sm`))})(e)),(e=>{let{skeletonAvatarCls:t,gradientFromColor:a,controlHeight:r,controlHeightLG:l,controlHeightSM:i}=e;return{[t]:Object.assign({display:"inline-block",verticalAlign:"top",background:a},u(r)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:Object.assign({},u(l)),[`${t}${t}-sm`]:Object.assign({},u(i))}})(e)),(e=>{let{controlHeight:t,borderRadiusSM:a,skeletonInputCls:r,controlHeightLG:l,controlHeightSM:i,gradientFromColor:n,calc:o}=e;return{[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:n,borderRadius:a},g(t,o)),[`${r}-lg`]:Object.assign({},g(l,o)),[`${r}-sm`]:Object.assign({},g(i,o))}})(e)),(e=>{let{skeletonImageCls:t,imageSizeBase:a,gradientFromColor:r,borderRadiusSM:l,calc:i}=e;return{[t]:Object.assign(Object.assign({display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"middle",background:r,borderRadius:l},p(i(a).mul(2).equal())),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:Object.assign(Object.assign({},p(a)),{maxWidth:i(a).mul(4).equal(),maxHeight:i(a).mul(4).equal()}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}})(e)),[`${t}${t}-block`]:{width:"100%",[i]:{width:"100%"},[n]:{width:"100%"}},[`${t}${t}-active`]:{[` +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,916925,e=>{"use strict";var t,a=((t={}).A2A_Agent="A2A Agent",t.AI21="Ai21",t.AI21_CHAT="Ai21 Chat",t.AIML="AI/ML API",t.AIOHTTP_OPENAI="Aiohttp Openai",t.Anthropic="Anthropic",t.ANTHROPIC_TEXT="Anthropic Text",t.AssemblyAI="AssemblyAI",t.AUTO_ROUTER="Auto Router",t.Bedrock="Amazon Bedrock",t.BedrockMantle="Amazon Bedrock Mantle",t.SageMaker="AWS SageMaker",t.Azure="Azure",t.Azure_AI_Studio="Azure AI Foundry (Studio)",t.AZURE_TEXT="Azure Text",t.BASETEN="Baseten",t.BYTEZ="Bytez",t.Cerebras="Cerebras",t.CLARIFAI="Clarifai",t.CLOUDFLARE="Cloudflare",t.CODESTRAL="Codestral",t.Cohere="Cohere",t.COHERE_CHAT="Cohere Chat",t.COMETAPI="Cometapi",t.COMPACTIFAI="Compactifai",t.Cursor="Cursor",t.Dashscope="Dashscope",t.Databricks="Databricks (Qwen API)",t.DATAROBOT="Datarobot",t.DeepInfra="DeepInfra",t.Deepgram="Deepgram",t.Deepseek="Deepseek",t.DOCKER_MODEL_RUNNER="Docker Model Runner",t.DOTPROMPT="Dotprompt",t.ElevenLabs="ElevenLabs",t.EMPOWER="Empower",t.FalAI="Fal AI",t.FEATHERLESS_AI="Featherless Ai",t.FireworksAI="Fireworks AI",t.FRIENDLIAI="Friendliai",t.GALADRIEL="Galadriel",t.GITHUB_COPILOT="Github Copilot",t.Google_AI_Studio="Google AI Studio",t.GradientAI="GradientAI",t.Groq="Groq",t.HEROKU="Heroku",t.Hosted_Vllm="vllm",t.HUGGINGFACE="Huggingface",t.HYPERBOLIC="Hyperbolic",t.Infinity="Infinity",t.JinaAI="Jina AI",t.LAMBDA_AI="Lambda Ai",t.LEMONADE="Lemonade",t.LLAMAFILE="Llamafile",t.LM_STUDIO="Lm Studio",t.LLAMA="Meta Llama",t.MARITALK="Maritalk",t.MiniMax="MiniMax",t.MistralAI="Mistral AI",t.MOONSHOT="Moonshot",t.MORPH="Morph",t.NEBIUS="Nebius",t.NLP_CLOUD="Nlp Cloud",t.NOVITA="Novita",t.NSCALE="Nscale",t.NVIDIA_NIM="Nvidia Nim",t.Ollama="Ollama",t.OLLAMA_CHAT="Ollama Chat",t.OOBABOOGA="Oobabooga",t.OpenAI="OpenAI",t.OPENAI_LIKE="Openai Like",t.OpenAI_Compatible="OpenAI-Compatible Endpoints (Together AI, etc.)",t.OpenAI_Text="OpenAI Text Completion",t.OpenAI_Text_Compatible="OpenAI-Compatible Text Completion Models (Together AI, etc.)",t.Openrouter="Openrouter",t.Oracle="Oracle Cloud Infrastructure (OCI)",t.OVHCLOUD="Ovhcloud",t.Perplexity="Perplexity",t.PETALS="Petals",t.PG_VECTOR="Pg Vector",t.PREDIBASE="Predibase",t.RECRAFT="Recraft",t.REPLICATE="Replicate",t.RunwayML="RunwayML",t.SAGEMAKER_LEGACY="Sagemaker",t.Sambanova="Sambanova",t.SAP="SAP Generative AI Hub",t.Snowflake="Snowflake",t.TEXT_COMPLETION_CODESTRAL="Text-Completion-Codestral",t.TogetherAI="TogetherAI",t.TOPAZ="Topaz",t.Triton="Triton",t.V0="V0",t.VERCEL_AI_GATEWAY="Vercel Ai Gateway",t.Vertex_AI="Vertex AI (Anthropic, Gemini, etc.)",t.VERTEX_AI_BETA="Vertex Ai Beta",t.VLLM="Vllm",t.VolcEngine="VolcEngine",t.Voyage="Voyage AI",t.WANDB="Wandb",t.WATSONX="Watsonx",t.WATSONX_TEXT="Watsonx Text",t.xAI="xAI",t.XINFERENCE="Xinference",t.ZAI="Z.AI (Zhipu AI)",t);let r={A2A_Agent:"a2a_agent",AI21:"ai21",AI21_CHAT:"ai21_chat",AIML:"aiml",AIOHTTP_OPENAI:"aiohttp_openai",Anthropic:"anthropic",ANTHROPIC_TEXT:"anthropic_text",AssemblyAI:"assemblyai",AUTO_ROUTER:"auto_router",Azure:"azure",Azure_AI_Studio:"azure_ai",AZURE_TEXT:"azure_text",BASETEN:"baseten",Bedrock:"bedrock",BedrockMantle:"bedrock_mantle",BYTEZ:"bytez",Cerebras:"cerebras",CLARIFAI:"clarifai",CLOUDFLARE:"cloudflare",CODESTRAL:"codestral",Cohere:"cohere",COHERE_CHAT:"cohere_chat",COMETAPI:"cometapi",COMPACTIFAI:"compactifai",Cursor:"cursor",Dashscope:"dashscope",Databricks:"databricks",DATAROBOT:"datarobot",DeepInfra:"deepinfra",Deepgram:"deepgram",Deepseek:"deepseek",DOCKER_MODEL_RUNNER:"docker_model_runner",DOTPROMPT:"dotprompt",ElevenLabs:"elevenlabs",EMPOWER:"empower",FalAI:"fal_ai",FEATHERLESS_AI:"featherless_ai",FireworksAI:"fireworks_ai",FRIENDLIAI:"friendliai",GALADRIEL:"galadriel",GITHUB_COPILOT:"github_copilot",Google_AI_Studio:"gemini",GradientAI:"gradient_ai",Groq:"groq",HEROKU:"heroku",Hosted_Vllm:"hosted_vllm",HUGGINGFACE:"huggingface",HYPERBOLIC:"hyperbolic",Infinity:"infinity",JinaAI:"jina_ai",LAMBDA_AI:"lambda_ai",LEMONADE:"lemonade",LLAMAFILE:"llamafile",LLAMA:"meta_llama",LM_STUDIO:"lm_studio",MARITALK:"maritalk",MiniMax:"minimax",MistralAI:"mistral",MOONSHOT:"moonshot",MORPH:"morph",NEBIUS:"nebius",NLP_CLOUD:"nlp_cloud",NOVITA:"novita",NSCALE:"nscale",NVIDIA_NIM:"nvidia_nim",Ollama:"ollama",OLLAMA_CHAT:"ollama_chat",OOBABOOGA:"oobabooga",OpenAI:"openai",OPENAI_LIKE:"openai_like",OpenAI_Compatible:"openai",OpenAI_Text:"text-completion-openai",OpenAI_Text_Compatible:"text-completion-openai",Openrouter:"openrouter",Oracle:"oci",OVHCLOUD:"ovhcloud",Perplexity:"perplexity",PETALS:"petals",PG_VECTOR:"pg_vector",PREDIBASE:"predibase",RECRAFT:"recraft",REPLICATE:"replicate",RunwayML:"runwayml",SAGEMAKER_LEGACY:"sagemaker",SageMaker:"sagemaker_chat",Sambanova:"sambanova",SAP:"sap",Snowflake:"snowflake",TEXT_COMPLETION_CODESTRAL:"text-completion-codestral",TogetherAI:"together_ai",TOPAZ:"topaz",Triton:"triton",V0:"v0",VERCEL_AI_GATEWAY:"vercel_ai_gateway",Vertex_AI:"vertex_ai",VERTEX_AI_BETA:"vertex_ai_beta",VLLM:"vllm",VolcEngine:"volcengine",Voyage:"voyage",WANDB:"wandb",WATSONX:"watsonx",WATSONX_TEXT:"watsonx_text",xAI:"xai",XINFERENCE:"xinference",ZAI:"zai"},l="../ui/assets/logos/",i={"A2A Agent":`${l}a2a_agent.png`,Ai21:`${l}ai21.svg`,"Ai21 Chat":`${l}ai21.svg`,"AI/ML API":`${l}aiml_api.svg`,"Aiohttp Openai":`${l}openai_small.svg`,Anthropic:`${l}anthropic.svg`,"Anthropic Text":`${l}anthropic.svg`,AssemblyAI:`${l}assemblyai_small.png`,Azure:`${l}microsoft_azure.svg`,"Azure AI Foundry (Studio)":`${l}microsoft_azure.svg`,"Azure Text":`${l}microsoft_azure.svg`,Baseten:`${l}baseten.svg`,"Amazon Bedrock":`${l}bedrock.svg`,"Amazon Bedrock Mantle":`${l}bedrock.svg`,"AWS SageMaker":`${l}bedrock.svg`,Cerebras:`${l}cerebras.svg`,Cloudflare:`${l}cloudflare.svg`,Codestral:`${l}mistral.svg`,Cohere:`${l}cohere.svg`,"Cohere Chat":`${l}cohere.svg`,Cometapi:`${l}cometapi.svg`,Cursor:`${l}cursor.svg`,"Databricks (Qwen API)":`${l}databricks.svg`,Dashscope:`${l}dashscope.svg`,Deepseek:`${l}deepseek.svg`,Deepgram:`${l}deepgram.png`,DeepInfra:`${l}deepinfra.png`,ElevenLabs:`${l}elevenlabs.png`,"Fal AI":`${l}fal_ai.jpg`,"Featherless Ai":`${l}featherless.svg`,"Fireworks AI":`${l}fireworks.svg`,Friendliai:`${l}friendli.svg`,"Github Copilot":`${l}github_copilot.svg`,"Google AI Studio":`${l}google.svg`,GradientAI:`${l}gradientai.svg`,Groq:`${l}groq.svg`,vllm:`${l}vllm.png`,Huggingface:`${l}huggingface.svg`,Hyperbolic:`${l}hyperbolic.svg`,Infinity:`${l}infinity.png`,"Jina AI":`${l}jina.png`,"Lambda Ai":`${l}lambda.svg`,"Lm Studio":`${l}lmstudio.svg`,"Meta Llama":`${l}meta_llama.svg`,MiniMax:`${l}minimax.svg`,"Mistral AI":`${l}mistral.svg`,Moonshot:`${l}moonshot.svg`,Morph:`${l}morph.svg`,Nebius:`${l}nebius.svg`,Novita:`${l}novita.svg`,"Nvidia Nim":`${l}nvidia_nim.svg`,Ollama:`${l}ollama.svg`,"Ollama Chat":`${l}ollama.svg`,Oobabooga:`${l}openai_small.svg`,OpenAI:`${l}openai_small.svg`,"Openai Like":`${l}openai_small.svg`,"OpenAI Text Completion":`${l}openai_small.svg`,"OpenAI-Compatible Text Completion Models (Together AI, etc.)":`${l}openai_small.svg`,"OpenAI-Compatible Endpoints (Together AI, etc.)":`${l}openai_small.svg`,Openrouter:`${l}openrouter.svg`,"Oracle Cloud Infrastructure (OCI)":`${l}oracle.svg`,Perplexity:`${l}perplexity-ai.svg`,Recraft:`${l}recraft.svg`,Replicate:`${l}replicate.svg`,RunwayML:`${l}runwayml.png`,Sagemaker:`${l}bedrock.svg`,Sambanova:`${l}sambanova.svg`,"SAP Generative AI Hub":`${l}sap.png`,Snowflake:`${l}snowflake.svg`,"Text-Completion-Codestral":`${l}mistral.svg`,TogetherAI:`${l}togetherai.svg`,Topaz:`${l}topaz.svg`,Triton:`${l}nvidia_triton.png`,V0:`${l}v0.svg`,"Vercel Ai Gateway":`${l}vercel.svg`,"Vertex AI (Anthropic, Gemini, etc.)":`${l}google.svg`,"Vertex Ai Beta":`${l}google.svg`,Vllm:`${l}vllm.png`,VolcEngine:`${l}volcengine.png`,"Voyage AI":`${l}voyage.webp`,Watsonx:`${l}watsonx.svg`,"Watsonx Text":`${l}watsonx.svg`,xAI:`${l}xai.svg`,Xinference:`${l}xinference.svg`};e.s(["Providers",()=>a,"getPlaceholder",0,e=>{if("AI/ML API"===e)return"aiml/flux-pro/v1.1";if("Vertex AI (Anthropic, Gemini, etc.)"===e)return"gemini-pro";if("Anthropic"==e)return"claude-3-opus";if("Amazon Bedrock"==e)return"claude-3-opus";if("AWS SageMaker"==e)return"sagemaker/jumpstart-dft-meta-textgeneration-llama-2-7b";else if("Google AI Studio"==e)return"gemini-pro";else if("Azure AI Foundry (Studio)"==e)return"azure_ai/command-r-plus";else if("Azure"==e)return"my-deployment";else if("Oracle Cloud Infrastructure (OCI)"==e)return"oci/xai.grok-4";else if("Snowflake"==e)return"snowflake/mistral-7b";else if("Voyage AI"==e)return"voyage/";else if("Jina AI"==e)return"jina_ai/";else if("VolcEngine"==e)return"volcengine/";else if("DeepInfra"==e)return"deepinfra/";else if("Fal AI"==e)return"fal_ai/fal-ai/flux-pro/v1.1-ultra";else if("RunwayML"==e)return"runwayml/gen4_turbo";else if("Watsonx"===e)return"watsonx/ibm/granite-3-3-8b-instruct";else if("Cursor"===e)return"cursor/claude-4-sonnet";else if("Z.AI (Zhipu AI)"===e)return"zai/glm-4.5";else return"gpt-3.5-turbo"},"getProviderLogoAndName",0,e=>{if(!e)return{logo:"",displayName:"-"};if("gemini"===e.toLowerCase()){let e="Google AI Studio";return{logo:i[e],displayName:e}}let t=Object.keys(r).find(t=>r[t].toLowerCase()===e.toLowerCase());if(!t)return{logo:"",displayName:e};let l=a[t];return{logo:i[l],displayName:l}},"getProviderModels",0,(e,t)=>{console.log(`Provider key: ${e}`);let a=r[e];console.log(`Provider mapped to: ${a}`);let l=[];return e&&"object"==typeof t&&(Object.entries(t).forEach(([e,t])=>{if(null!==t&&"object"==typeof t&&"litellm_provider"in t){let r=t.litellm_provider;(r===a||"string"==typeof r&&(r.startsWith(`${a}_`)||r.startsWith(`${a}-`)))&&l.push(e)}}),"Cohere"==e&&(console.log("Adding cohere chat models"),Object.entries(t).forEach(([e,t])=>{null!==t&&"object"==typeof t&&"litellm_provider"in t&&"cohere_chat"===t.litellm_provider&&l.push(e)})),"AWS SageMaker"==e&&(console.log("Adding sagemaker chat models"),Object.entries(t).forEach(([e,t])=>{null!==t&&"object"==typeof t&&"litellm_provider"in t&&"sagemaker_chat"===t.litellm_provider&&l.push(e)}))),l},"providerLogoMap",0,i,"provider_map",0,r])},362024,e=>{"use strict";var t=e.i(988122);e.s(["Collapse",()=>t.default])},240647,e=>{"use strict";var t=e.i(286612);e.s(["RightOutlined",()=>t.default])},571303,e=>{"use strict";var t=e.i(843476),a=e.i(271645),r=e.i(115504);e.s(["UiLoadingSpinner",0,function({className:e="",...l}){var i,n;let o=(0,a.useId)();return i=()=>{let e=document.getAnimations().filter(e=>e instanceof CSSAnimation&&"spin"===e.animationName),t=e.find(e=>e.effect.target?.getAttribute("data-spinner-id")===o),a=e.find(e=>e.effect instanceof KeyframeEffect&&e.effect.target?.getAttribute("data-spinner-id")!==o);t&&a&&(t.currentTime=a.currentTime)},n=[o],(0,a.useLayoutEffect)(i,n),(0,t.jsxs)("svg",{"data-spinner-id":o,className:(0,r.cx)("pointer-events-none size-12 animate-spin text-current",e),fill:"none",viewBox:"0 0 24 24",...l,children:[(0,t.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,t.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]})}],571303)},366283,e=>{"use strict";var t=e.i(290571),a=e.i(271645),r=e.i(95779),l=e.i(444755),i=e.i(673706);let n=(0,i.makeClassName)("Callout"),o=a.default.forwardRef((e,o)=>{let{title:s,icon:c,color:d,className:m,children:u}=e,g=(0,t.__rest)(e,["title","icon","color","className","children"]);return a.default.createElement("div",Object.assign({ref:o,className:(0,l.tremorTwMerge)(n("root"),"flex flex-col overflow-hidden rounded-tremor-default text-tremor-default border-l-4 py-3 pr-3 pl-4",d?(0,l.tremorTwMerge)((0,i.getColorClassNames)(d,r.colorPalette.background).bgColor,(0,i.getColorClassNames)(d,r.colorPalette.darkBorder).borderColor,(0,i.getColorClassNames)(d,r.colorPalette.darkText).textColor,"dark:bg-opacity-10 bg-opacity-10"):(0,l.tremorTwMerge)("bg-tremor-brand-faint border-tremor-brand-emphasis text-tremor-brand-emphasis","dark:bg-dark-tremor-brand-muted/70 dark:border-dark-tremor-brand-emphasis dark:text-dark-tremor-brand-emphasis"),m)},g),a.default.createElement("div",{className:(0,l.tremorTwMerge)(n("header"),"flex items-start")},c?a.default.createElement(c,{className:(0,l.tremorTwMerge)(n("icon"),"flex-none h-5 w-5 mr-1.5")}):null,a.default.createElement("h4",{className:(0,l.tremorTwMerge)(n("title"),"font-semibold")},s)),a.default.createElement("p",{className:(0,l.tremorTwMerge)(n("body"),"overflow-y-auto",u?"mt-2":"")},u))});o.displayName="Callout",e.s(["Callout",0,o],366283)},738014,e=>{"use strict";var t=e.i(135214),a=e.i(764205),r=e.i(266027);let l=(0,e.i(243652).createQueryKeys)("users");e.s(["useCurrentUser",0,()=>{let{accessToken:e,userId:i}=(0,t.default)();return(0,r.useQuery)({queryKey:l.detail(i),queryFn:async()=>await (0,a.userGetInfoV2)(e),enabled:!!(e&&i)})}])},980187,e=>{"use strict";e.s(["createTeamAliasMap",0,e=>e?e.reduce((e,t)=>(e[t.team_id]=t.team_alias,e),{}):{},"resolveTeamAliasFromTeamID",0,(e,t)=>{let a=t.find(t=>t.team_id===e);return a?a.team_alias:null}])},185793,e=>{"use strict";e.i(247167);var t=e.i(271645),a=e.i(343794),r=e.i(242064),l=e.i(529681);let i=e=>{let{prefixCls:r,className:l,style:i,size:n,shape:o}=e,s=(0,a.default)({[`${r}-lg`]:"large"===n,[`${r}-sm`]:"small"===n}),c=(0,a.default)({[`${r}-circle`]:"circle"===o,[`${r}-square`]:"square"===o,[`${r}-round`]:"round"===o}),d=t.useMemo(()=>"number"==typeof n?{width:n,height:n,lineHeight:`${n}px`}:{},[n]);return t.createElement("span",{className:(0,a.default)(r,s,c,l),style:Object.assign(Object.assign({},d),i)})};e.i(296059);var n=e.i(694758),o=e.i(915654),s=e.i(246422),c=e.i(838378);let d=new n.Keyframes("ant-skeleton-loading",{"0%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),m=e=>({height:e,lineHeight:(0,o.unit)(e)}),u=e=>Object.assign({width:e},m(e)),g=(e,t)=>Object.assign({width:t(e).mul(5).equal(),minWidth:t(e).mul(5).equal()},m(e)),p=e=>Object.assign({width:e},m(e)),A=(e,t,a)=>{let{skeletonButtonCls:r}=e;return{[`${a}${r}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${a}${r}-round`]:{borderRadius:t}}},f=(e,t)=>Object.assign({width:t(e).mul(2).equal(),minWidth:t(e).mul(2).equal()},m(e)),b=(0,s.genStyleHooks)("Skeleton",e=>{let{componentCls:t,calc:a}=e;return(e=>{let{componentCls:t,skeletonAvatarCls:a,skeletonTitleCls:r,skeletonParagraphCls:l,skeletonButtonCls:i,skeletonInputCls:n,skeletonImageCls:o,controlHeight:s,controlHeightLG:c,controlHeightSM:m,gradientFromColor:b,padding:v,marginSM:h,borderRadius:C,titleHeight:O,blockRadius:I,paragraphLiHeight:E,controlHeightXS:$,paragraphMarginTop:T}=e;return{[t]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:v,verticalAlign:"top",[a]:Object.assign({display:"inline-block",verticalAlign:"top",background:b},u(s)),[`${a}-circle`]:{borderRadius:"50%"},[`${a}-lg`]:Object.assign({},u(c)),[`${a}-sm`]:Object.assign({},u(m))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[r]:{width:"100%",height:O,background:b,borderRadius:I,[`+ ${l}`]:{marginBlockStart:m}},[l]:{padding:0,"> li":{width:"100%",height:E,listStyle:"none",background:b,borderRadius:I,"+ li":{marginBlockStart:$}}},[`${l}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${r}, ${l} > li`]:{borderRadius:C}}},[`${t}-with-avatar ${t}-content`]:{[r]:{marginBlockStart:h,[`+ ${l}`]:{marginBlockStart:T}}},[`${t}${t}-element`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"inline-block",width:"auto"},(e=>{let{borderRadiusSM:t,skeletonButtonCls:a,controlHeight:r,controlHeightLG:l,controlHeightSM:i,gradientFromColor:n,calc:o}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[a]:Object.assign({display:"inline-block",verticalAlign:"top",background:n,borderRadius:t,width:o(r).mul(2).equal(),minWidth:o(r).mul(2).equal()},f(r,o))},A(e,r,a)),{[`${a}-lg`]:Object.assign({},f(l,o))}),A(e,l,`${a}-lg`)),{[`${a}-sm`]:Object.assign({},f(i,o))}),A(e,i,`${a}-sm`))})(e)),(e=>{let{skeletonAvatarCls:t,gradientFromColor:a,controlHeight:r,controlHeightLG:l,controlHeightSM:i}=e;return{[t]:Object.assign({display:"inline-block",verticalAlign:"top",background:a},u(r)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:Object.assign({},u(l)),[`${t}${t}-sm`]:Object.assign({},u(i))}})(e)),(e=>{let{controlHeight:t,borderRadiusSM:a,skeletonInputCls:r,controlHeightLG:l,controlHeightSM:i,gradientFromColor:n,calc:o}=e;return{[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:n,borderRadius:a},g(t,o)),[`${r}-lg`]:Object.assign({},g(l,o)),[`${r}-sm`]:Object.assign({},g(i,o))}})(e)),(e=>{let{skeletonImageCls:t,imageSizeBase:a,gradientFromColor:r,borderRadiusSM:l,calc:i}=e;return{[t]:Object.assign(Object.assign({display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"middle",background:r,borderRadius:l},p(i(a).mul(2).equal())),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:Object.assign(Object.assign({},p(a)),{maxWidth:i(a).mul(4).equal(),maxHeight:i(a).mul(4).equal()}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}})(e)),[`${t}${t}-block`]:{width:"100%",[i]:{width:"100%"},[n]:{width:"100%"}},[`${t}${t}-active`]:{[` ${r}, ${l} > li, ${a}, ${i}, ${n}, ${o} - `]:Object.assign({},{background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:d,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"})}}})((0,c.mergeToken)(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:a(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"}))},e=>{let{colorFillContent:t,colorFill:a}=e;return{color:t,colorGradientEnd:a,gradientFromColor:t,gradientToColor:a,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),v=e=>{let{prefixCls:r,className:l,style:i,rows:n=0}=e,o=Array.from({length:n}).map((a,r)=>t.createElement("li",{key:r,style:{width:((e,t)=>{let{width:a,rows:r=2}=t;return Array.isArray(a)?a[e]:r-1===e?a:void 0})(r,e)}}));return t.createElement("ul",{className:(0,a.default)(r,l),style:i},o)},h=({prefixCls:e,className:r,width:l,style:i})=>t.createElement("h3",{className:(0,a.default)(e,r),style:Object.assign({width:l},i)});function C(e){return e&&"object"==typeof e?e:{}}let O=e=>{let{prefixCls:l,loading:n,className:o,rootClassName:s,style:c,children:d,avatar:m=!1,title:u=!0,paragraph:g=!0,active:p,round:A}=e,{getPrefixCls:f,direction:O,className:I,style:E}=(0,r.useComponentConfig)("skeleton"),$=f("skeleton",l),[T,k,_]=b($);if(n||!("loading"in e)){let e,r,l=!!m,n=!!u,d=!!g;if(l){let a=Object.assign(Object.assign({prefixCls:`${$}-avatar`},n&&!d?{size:"large",shape:"square"}:{size:"large",shape:"circle"}),C(m));e=t.createElement("div",{className:`${$}-header`},t.createElement(i,Object.assign({},a)))}if(n||d){let e,a;if(n){let a=Object.assign(Object.assign({prefixCls:`${$}-title`},!l&&d?{width:"38%"}:l&&d?{width:"50%"}:{}),C(u));e=t.createElement(h,Object.assign({},a))}if(d){let e,r=Object.assign(Object.assign({prefixCls:`${$}-paragraph`},(e={},l&&n||(e.width="61%"),!l&&n?e.rows=3:e.rows=2,e)),C(g));a=t.createElement(v,Object.assign({},r))}r=t.createElement("div",{className:`${$}-content`},e,a)}let f=(0,a.default)($,{[`${$}-with-avatar`]:l,[`${$}-active`]:p,[`${$}-rtl`]:"rtl"===O,[`${$}-round`]:A},I,o,s,k,_);return T(t.createElement("div",{className:f,style:Object.assign(Object.assign({},E),c)},e,r))}return null!=d?d:null};O.Button=e=>{let{prefixCls:n,className:o,rootClassName:s,active:c,block:d=!1,size:m="default"}=e,{getPrefixCls:u}=t.useContext(r.ConfigContext),g=u("skeleton",n),[p,A,f]=b(g),v=(0,l.default)(e,["prefixCls"]),h=(0,a.default)(g,`${g}-element`,{[`${g}-active`]:c,[`${g}-block`]:d},o,s,A,f);return p(t.createElement("div",{className:h},t.createElement(i,Object.assign({prefixCls:`${g}-button`,size:m},v))))},O.Avatar=e=>{let{prefixCls:n,className:o,rootClassName:s,active:c,shape:d="circle",size:m="default"}=e,{getPrefixCls:u}=t.useContext(r.ConfigContext),g=u("skeleton",n),[p,A,f]=b(g),v=(0,l.default)(e,["prefixCls","className"]),h=(0,a.default)(g,`${g}-element`,{[`${g}-active`]:c},o,s,A,f);return p(t.createElement("div",{className:h},t.createElement(i,Object.assign({prefixCls:`${g}-avatar`,shape:d,size:m},v))))},O.Input=e=>{let{prefixCls:n,className:o,rootClassName:s,active:c,block:d,size:m="default"}=e,{getPrefixCls:u}=t.useContext(r.ConfigContext),g=u("skeleton",n),[p,A,f]=b(g),v=(0,l.default)(e,["prefixCls"]),h=(0,a.default)(g,`${g}-element`,{[`${g}-active`]:c,[`${g}-block`]:d},o,s,A,f);return p(t.createElement("div",{className:h},t.createElement(i,Object.assign({prefixCls:`${g}-input`,size:m},v))))},O.Image=e=>{let{prefixCls:l,className:i,rootClassName:n,style:o,active:s}=e,{getPrefixCls:c}=t.useContext(r.ConfigContext),d=c("skeleton",l),[m,u,g]=b(d),p=(0,a.default)(d,`${d}-element`,{[`${d}-active`]:s},i,n,u,g);return m(t.createElement("div",{className:p},t.createElement("div",{className:(0,a.default)(`${d}-image`,i),style:o},t.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${d}-image-svg`},t.createElement("title",null,"Image placeholder"),t.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:`${d}-image-path`})))))},O.Node=e=>{let{prefixCls:l,className:i,rootClassName:n,style:o,active:s,children:c}=e,{getPrefixCls:d}=t.useContext(r.ConfigContext),m=d("skeleton",l),[u,g,p]=b(m),A=(0,a.default)(m,`${m}-element`,{[`${m}-active`]:s},g,i,n,p);return u(t.createElement("div",{className:A},t.createElement("div",{className:(0,a.default)(`${m}-image`,i),style:o},c)))},e.s(["default",0,O],185793)},959013,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"};var l=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(l.default,(0,t.default)({},e,{ref:i,icon:r}))});e.s(["default",0,i],959013)},269200,e=>{"use strict";var t=e.i(290571),a=e.i(271645),r=e.i(444755);let l=(0,e.i(673706).makeClassName)("Table"),i=a.default.forwardRef((e,i)=>{let{children:n,className:o}=e,s=(0,t.__rest)(e,["children","className"]);return a.default.createElement("div",{className:(0,r.tremorTwMerge)(l("root"),"overflow-auto",o)},a.default.createElement("table",Object.assign({ref:i,className:(0,r.tremorTwMerge)(l("table"),"w-full text-tremor-default","text-tremor-content","dark:text-dark-tremor-content")},s),n))});i.displayName="Table",e.s(["Table",0,i],269200)},427612,e=>{"use strict";var t=e.i(290571),a=e.i(271645),r=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableHead"),i=a.default.forwardRef((e,i)=>{let{children:n,className:o}=e,s=(0,t.__rest)(e,["children","className"]);return a.default.createElement(a.default.Fragment,null,a.default.createElement("thead",Object.assign({ref:i,className:(0,r.tremorTwMerge)(l("root"),"text-left","text-tremor-content","dark:text-dark-tremor-content",o)},s),n))});i.displayName="TableHead",e.s(["TableHead",0,i],427612)},496020,e=>{"use strict";var t=e.i(290571),a=e.i(271645),r=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableRow"),i=a.default.forwardRef((e,i)=>{let{children:n,className:o}=e,s=(0,t.__rest)(e,["children","className"]);return a.default.createElement(a.default.Fragment,null,a.default.createElement("tr",Object.assign({ref:i,className:(0,r.tremorTwMerge)(l("row"),o)},s),n))});i.displayName="TableRow",e.s(["TableRow",0,i],496020)},64848,e=>{"use strict";var t=e.i(290571),a=e.i(271645),r=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableHeaderCell"),i=a.default.forwardRef((e,i)=>{let{children:n,className:o}=e,s=(0,t.__rest)(e,["children","className"]);return a.default.createElement(a.default.Fragment,null,a.default.createElement("th",Object.assign({ref:i,className:(0,r.tremorTwMerge)(l("root"),"whitespace-nowrap text-left font-semibold top-0 px-4 py-3.5","text-tremor-content-strong","dark:text-dark-tremor-content-strong",o)},s),n))});i.displayName="TableHeaderCell",e.s(["TableHeaderCell",0,i],64848)},942232,e=>{"use strict";var t=e.i(290571),a=e.i(271645),r=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableBody"),i=a.default.forwardRef((e,i)=>{let{children:n,className:o}=e,s=(0,t.__rest)(e,["children","className"]);return a.default.createElement(a.default.Fragment,null,a.default.createElement("tbody",Object.assign({ref:i,className:(0,r.tremorTwMerge)(l("root"),"align-top divide-y","divide-tremor-border","dark:divide-dark-tremor-border",o)},s),n))});i.displayName="TableBody",e.s(["TableBody",0,i],942232)},977572,e=>{"use strict";var t=e.i(290571),a=e.i(271645),r=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableCell"),i=a.default.forwardRef((e,i)=>{let{children:n,className:o}=e,s=(0,t.__rest)(e,["children","className"]);return a.default.createElement(a.default.Fragment,null,a.default.createElement("td",Object.assign({ref:i,className:(0,r.tremorTwMerge)(l("root"),"align-middle whitespace-nowrap text-left p-4",o)},s),n))});i.displayName="TableCell",e.s(["TableCell",0,i],977572)},68155,e=>{"use strict";var t=e.i(271645);let a=t.forwardRef(function(e,a){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"}))});e.s(["TrashIcon",0,a],68155)},871943,e=>{"use strict";var t=e.i(271645);let a=t.forwardRef(function(e,a){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"}))});e.s(["ChevronDownIcon",0,a],871943)},360820,e=>{"use strict";var t=e.i(271645);let a=t.forwardRef(function(e,a){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"}))});e.s(["ChevronUpIcon",0,a],360820)},278587,e=>{"use strict";var t=e.i(271645);let a=t.forwardRef(function(e,a){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"}))});e.s(["RefreshIcon",0,a],278587)},207670,e=>{"use strict";function t(){for(var e,t,a=0,r="",l=arguments.length;a{"use strict";var t=e.i(135214),a=e.i(764205),r=e.i(266027);let l=(0,e.i(243652).createQueryKeys)("users");e.s(["useCurrentUser",0,()=>{let{accessToken:e,userId:i}=(0,t.default)();return(0,r.useQuery)({queryKey:l.detail(i),queryFn:async()=>await (0,a.userGetInfoV2)(e),enabled:!!(e&&i)})}])},980187,e=>{"use strict";e.s(["createTeamAliasMap",0,e=>e?e.reduce((e,t)=>(e[t.team_id]=t.team_alias,e),{}):{},"resolveTeamAliasFromTeamID",0,(e,t)=>{let a=t.find(t=>t.team_id===e);return a?a.team_alias:null}])},571303,e=>{"use strict";var t=e.i(843476),a=e.i(271645),r=e.i(115504);e.s(["UiLoadingSpinner",0,function({className:e="",...l}){var i,n;let o=(0,a.useId)();return i=()=>{let e=document.getAnimations().filter(e=>e instanceof CSSAnimation&&"spin"===e.animationName),t=e.find(e=>e.effect.target?.getAttribute("data-spinner-id")===o),a=e.find(e=>e.effect instanceof KeyframeEffect&&e.effect.target?.getAttribute("data-spinner-id")!==o);t&&a&&(t.currentTime=a.currentTime)},n=[o],(0,a.useLayoutEffect)(i,n),(0,t.jsxs)("svg",{"data-spinner-id":o,className:(0,r.cx)("pointer-events-none size-12 animate-spin text-current",e),fill:"none",viewBox:"0 0 24 24",...l,children:[(0,t.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,t.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]})}],571303)},366283,e=>{"use strict";var t=e.i(290571),a=e.i(271645),r=e.i(95779),l=e.i(444755),i=e.i(673706);let n=(0,i.makeClassName)("Callout"),o=a.default.forwardRef((e,o)=>{let{title:s,icon:c,color:d,className:m,children:u}=e,g=(0,t.__rest)(e,["title","icon","color","className","children"]);return a.default.createElement("div",Object.assign({ref:o,className:(0,l.tremorTwMerge)(n("root"),"flex flex-col overflow-hidden rounded-tremor-default text-tremor-default border-l-4 py-3 pr-3 pl-4",d?(0,l.tremorTwMerge)((0,i.getColorClassNames)(d,r.colorPalette.background).bgColor,(0,i.getColorClassNames)(d,r.colorPalette.darkBorder).borderColor,(0,i.getColorClassNames)(d,r.colorPalette.darkText).textColor,"dark:bg-opacity-10 bg-opacity-10"):(0,l.tremorTwMerge)("bg-tremor-brand-faint border-tremor-brand-emphasis text-tremor-brand-emphasis","dark:bg-dark-tremor-brand-muted/70 dark:border-dark-tremor-brand-emphasis dark:text-dark-tremor-brand-emphasis"),m)},g),a.default.createElement("div",{className:(0,l.tremorTwMerge)(n("header"),"flex items-start")},c?a.default.createElement(c,{className:(0,l.tremorTwMerge)(n("icon"),"flex-none h-5 w-5 mr-1.5")}):null,a.default.createElement("h4",{className:(0,l.tremorTwMerge)(n("title"),"font-semibold")},s)),a.default.createElement("p",{className:(0,l.tremorTwMerge)(n("body"),"overflow-y-auto",u?"mt-2":"")},u))});o.displayName="Callout",e.s(["Callout",0,o],366283)},986888,e=>{"use strict";var t=e.i(843476),a=e.i(797305),r=e.i(135214),l=e.i(214541);e.s(["default",0,()=>{let{accessToken:e,userRole:i,userId:n,premiumUser:o}=(0,r.default)(),{teams:s}=(0,l.default)();return(0,t.jsx)(a.default,{teams:s??[],organizations:[]})}])}]); \ No newline at end of file + `]:Object.assign({},{background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:d,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"})}}})((0,c.mergeToken)(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:a(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"}))},e=>{let{colorFillContent:t,colorFill:a}=e;return{color:t,colorGradientEnd:a,gradientFromColor:t,gradientToColor:a,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),v=e=>{let{prefixCls:r,className:l,style:i,rows:n=0}=e,o=Array.from({length:n}).map((a,r)=>t.createElement("li",{key:r,style:{width:((e,t)=>{let{width:a,rows:r=2}=t;return Array.isArray(a)?a[e]:r-1===e?a:void 0})(r,e)}}));return t.createElement("ul",{className:(0,a.default)(r,l),style:i},o)},h=({prefixCls:e,className:r,width:l,style:i})=>t.createElement("h3",{className:(0,a.default)(e,r),style:Object.assign({width:l},i)});function C(e){return e&&"object"==typeof e?e:{}}let O=e=>{let{prefixCls:l,loading:n,className:o,rootClassName:s,style:c,children:d,avatar:m=!1,title:u=!0,paragraph:g=!0,active:p,round:A}=e,{getPrefixCls:f,direction:O,className:I,style:E}=(0,r.useComponentConfig)("skeleton"),$=f("skeleton",l),[T,k,_]=b($);if(n||!("loading"in e)){let e,r,l=!!m,n=!!u,d=!!g;if(l){let a=Object.assign(Object.assign({prefixCls:`${$}-avatar`},n&&!d?{size:"large",shape:"square"}:{size:"large",shape:"circle"}),C(m));e=t.createElement("div",{className:`${$}-header`},t.createElement(i,Object.assign({},a)))}if(n||d){let e,a;if(n){let a=Object.assign(Object.assign({prefixCls:`${$}-title`},!l&&d?{width:"38%"}:l&&d?{width:"50%"}:{}),C(u));e=t.createElement(h,Object.assign({},a))}if(d){let e,r=Object.assign(Object.assign({prefixCls:`${$}-paragraph`},(e={},l&&n||(e.width="61%"),!l&&n?e.rows=3:e.rows=2,e)),C(g));a=t.createElement(v,Object.assign({},r))}r=t.createElement("div",{className:`${$}-content`},e,a)}let f=(0,a.default)($,{[`${$}-with-avatar`]:l,[`${$}-active`]:p,[`${$}-rtl`]:"rtl"===O,[`${$}-round`]:A},I,o,s,k,_);return T(t.createElement("div",{className:f,style:Object.assign(Object.assign({},E),c)},e,r))}return null!=d?d:null};O.Button=e=>{let{prefixCls:n,className:o,rootClassName:s,active:c,block:d=!1,size:m="default"}=e,{getPrefixCls:u}=t.useContext(r.ConfigContext),g=u("skeleton",n),[p,A,f]=b(g),v=(0,l.default)(e,["prefixCls"]),h=(0,a.default)(g,`${g}-element`,{[`${g}-active`]:c,[`${g}-block`]:d},o,s,A,f);return p(t.createElement("div",{className:h},t.createElement(i,Object.assign({prefixCls:`${g}-button`,size:m},v))))},O.Avatar=e=>{let{prefixCls:n,className:o,rootClassName:s,active:c,shape:d="circle",size:m="default"}=e,{getPrefixCls:u}=t.useContext(r.ConfigContext),g=u("skeleton",n),[p,A,f]=b(g),v=(0,l.default)(e,["prefixCls","className"]),h=(0,a.default)(g,`${g}-element`,{[`${g}-active`]:c},o,s,A,f);return p(t.createElement("div",{className:h},t.createElement(i,Object.assign({prefixCls:`${g}-avatar`,shape:d,size:m},v))))},O.Input=e=>{let{prefixCls:n,className:o,rootClassName:s,active:c,block:d,size:m="default"}=e,{getPrefixCls:u}=t.useContext(r.ConfigContext),g=u("skeleton",n),[p,A,f]=b(g),v=(0,l.default)(e,["prefixCls"]),h=(0,a.default)(g,`${g}-element`,{[`${g}-active`]:c,[`${g}-block`]:d},o,s,A,f);return p(t.createElement("div",{className:h},t.createElement(i,Object.assign({prefixCls:`${g}-input`,size:m},v))))},O.Image=e=>{let{prefixCls:l,className:i,rootClassName:n,style:o,active:s}=e,{getPrefixCls:c}=t.useContext(r.ConfigContext),d=c("skeleton",l),[m,u,g]=b(d),p=(0,a.default)(d,`${d}-element`,{[`${d}-active`]:s},i,n,u,g);return m(t.createElement("div",{className:p},t.createElement("div",{className:(0,a.default)(`${d}-image`,i),style:o},t.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${d}-image-svg`},t.createElement("title",null,"Image placeholder"),t.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:`${d}-image-path`})))))},O.Node=e=>{let{prefixCls:l,className:i,rootClassName:n,style:o,active:s,children:c}=e,{getPrefixCls:d}=t.useContext(r.ConfigContext),m=d("skeleton",l),[u,g,p]=b(m),A=(0,a.default)(m,`${m}-element`,{[`${m}-active`]:s},g,i,n,p);return u(t.createElement("div",{className:A},t.createElement("div",{className:(0,a.default)(`${m}-image`,i),style:o},c)))},e.s(["default",0,O],185793)},959013,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"};var l=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(l.default,(0,t.default)({},e,{ref:i,icon:r}))});e.s(["default",0,i],959013)},269200,e=>{"use strict";var t=e.i(290571),a=e.i(271645),r=e.i(444755);let l=(0,e.i(673706).makeClassName)("Table"),i=a.default.forwardRef((e,i)=>{let{children:n,className:o}=e,s=(0,t.__rest)(e,["children","className"]);return a.default.createElement("div",{className:(0,r.tremorTwMerge)(l("root"),"overflow-auto",o)},a.default.createElement("table",Object.assign({ref:i,className:(0,r.tremorTwMerge)(l("table"),"w-full text-tremor-default","text-tremor-content","dark:text-dark-tremor-content")},s),n))});i.displayName="Table",e.s(["Table",0,i],269200)},427612,e=>{"use strict";var t=e.i(290571),a=e.i(271645),r=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableHead"),i=a.default.forwardRef((e,i)=>{let{children:n,className:o}=e,s=(0,t.__rest)(e,["children","className"]);return a.default.createElement(a.default.Fragment,null,a.default.createElement("thead",Object.assign({ref:i,className:(0,r.tremorTwMerge)(l("root"),"text-left","text-tremor-content","dark:text-dark-tremor-content",o)},s),n))});i.displayName="TableHead",e.s(["TableHead",0,i],427612)},496020,e=>{"use strict";var t=e.i(290571),a=e.i(271645),r=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableRow"),i=a.default.forwardRef((e,i)=>{let{children:n,className:o}=e,s=(0,t.__rest)(e,["children","className"]);return a.default.createElement(a.default.Fragment,null,a.default.createElement("tr",Object.assign({ref:i,className:(0,r.tremorTwMerge)(l("row"),o)},s),n))});i.displayName="TableRow",e.s(["TableRow",0,i],496020)},64848,e=>{"use strict";var t=e.i(290571),a=e.i(271645),r=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableHeaderCell"),i=a.default.forwardRef((e,i)=>{let{children:n,className:o}=e,s=(0,t.__rest)(e,["children","className"]);return a.default.createElement(a.default.Fragment,null,a.default.createElement("th",Object.assign({ref:i,className:(0,r.tremorTwMerge)(l("root"),"whitespace-nowrap text-left font-semibold top-0 px-4 py-3.5","text-tremor-content-strong","dark:text-dark-tremor-content-strong",o)},s),n))});i.displayName="TableHeaderCell",e.s(["TableHeaderCell",0,i],64848)},942232,e=>{"use strict";var t=e.i(290571),a=e.i(271645),r=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableBody"),i=a.default.forwardRef((e,i)=>{let{children:n,className:o}=e,s=(0,t.__rest)(e,["children","className"]);return a.default.createElement(a.default.Fragment,null,a.default.createElement("tbody",Object.assign({ref:i,className:(0,r.tremorTwMerge)(l("root"),"align-top divide-y","divide-tremor-border","dark:divide-dark-tremor-border",o)},s),n))});i.displayName="TableBody",e.s(["TableBody",0,i],942232)},977572,e=>{"use strict";var t=e.i(290571),a=e.i(271645),r=e.i(444755);let l=(0,e.i(673706).makeClassName)("TableCell"),i=a.default.forwardRef((e,i)=>{let{children:n,className:o}=e,s=(0,t.__rest)(e,["children","className"]);return a.default.createElement(a.default.Fragment,null,a.default.createElement("td",Object.assign({ref:i,className:(0,r.tremorTwMerge)(l("root"),"align-middle whitespace-nowrap text-left p-4",o)},s),n))});i.displayName="TableCell",e.s(["TableCell",0,i],977572)},68155,e=>{"use strict";var t=e.i(271645);let a=t.forwardRef(function(e,a){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"}))});e.s(["TrashIcon",0,a],68155)},871943,e=>{"use strict";var t=e.i(271645);let a=t.forwardRef(function(e,a){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"}))});e.s(["ChevronDownIcon",0,a],871943)},360820,e=>{"use strict";var t=e.i(271645);let a=t.forwardRef(function(e,a){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"}))});e.s(["ChevronUpIcon",0,a],360820)},278587,e=>{"use strict";var t=e.i(271645);let a=t.forwardRef(function(e,a){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:a},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"}))});e.s(["RefreshIcon",0,a],278587)},207670,e=>{"use strict";function t(){for(var e,t,a=0,r="",l=arguments.length;a{"use strict";var t=e.i(271645);e.s(["default",0,(e,a)=>{let r=void 0!==a,[l,i]=(0,t.useState)(e);return[r?a:l,e=>{r||i(e)}]}])},160818,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.4 800.9c.2-.3.5-.6.7-.9C920.6 722.1 960 621.7 960 512s-39.4-210.1-104.8-288c-.2-.3-.5-.5-.7-.8-1.1-1.3-2.1-2.5-3.2-3.7-.4-.5-.8-.9-1.2-1.4l-4.1-4.7-.1-.1c-1.5-1.7-3.1-3.4-4.6-5.1l-.1-.1c-3.2-3.4-6.4-6.8-9.7-10.1l-.1-.1-4.8-4.8-.3-.3c-1.5-1.5-3-2.9-4.5-4.3-.5-.5-1-1-1.6-1.5-1-1-2-1.9-3-2.8-.3-.3-.7-.6-1-1C736.4 109.2 629.5 64 512 64s-224.4 45.2-304.3 119.2c-.3.3-.7.6-1 1-1 .9-2 1.9-3 2.9-.5.5-1 1-1.6 1.5-1.5 1.4-3 2.9-4.5 4.3l-.3.3-4.8 4.8-.1.1c-3.3 3.3-6.5 6.7-9.7 10.1l-.1.1c-1.6 1.7-3.1 3.4-4.6 5.1l-.1.1c-1.4 1.5-2.8 3.1-4.1 4.7-.4.5-.8.9-1.2 1.4-1.1 1.2-2.1 2.5-3.2 3.7-.2.3-.5.5-.7.8C103.4 301.9 64 402.3 64 512s39.4 210.1 104.8 288c.2.3.5.6.7.9l3.1 3.7c.4.5.8.9 1.2 1.4l4.1 4.7c0 .1.1.1.1.2 1.5 1.7 3 3.4 4.6 5l.1.1c3.2 3.4 6.4 6.8 9.6 10.1l.1.1c1.6 1.6 3.1 3.2 4.7 4.7l.3.3c3.3 3.3 6.7 6.5 10.1 9.6 80.1 74 187 119.2 304.5 119.2s224.4-45.2 304.3-119.2a300 300 0 0010-9.6l.3-.3c1.6-1.6 3.2-3.1 4.7-4.7l.1-.1c3.3-3.3 6.5-6.7 9.6-10.1l.1-.1c1.5-1.7 3.1-3.3 4.6-5 0-.1.1-.1.1-.2 1.4-1.5 2.8-3.1 4.1-4.7.4-.5.8-.9 1.2-1.4a99 99 0 003.3-3.7zm4.1-142.6c-13.8 32.6-32 62.8-54.2 90.2a444.07 444.07 0 00-81.5-55.9c11.6-46.9 18.8-98.4 20.7-152.6H887c-3 40.9-12.6 80.6-28.5 118.3zM887 484H743.5c-1.9-54.2-9.1-105.7-20.7-152.6 29.3-15.6 56.6-34.4 81.5-55.9A373.86 373.86 0 01887 484zM658.3 165.5c39.7 16.8 75.8 40 107.6 69.2a394.72 394.72 0 01-59.4 41.8c-15.7-45-35.8-84.1-59.2-115.4 3.7 1.4 7.4 2.9 11 4.4zm-90.6 700.6c-9.2 7.2-18.4 12.7-27.7 16.4V697a389.1 389.1 0 01115.7 26.2c-8.3 24.6-17.9 47.3-29 67.8-17.4 32.4-37.8 58.3-59 75.1zm59-633.1c11 20.6 20.7 43.3 29 67.8A389.1 389.1 0 01540 327V141.6c9.2 3.7 18.5 9.1 27.7 16.4 21.2 16.7 41.6 42.6 59 75zM540 640.9V540h147.5c-1.6 44.2-7.1 87.1-16.3 127.8l-.3 1.2A445.02 445.02 0 00540 640.9zm0-156.9V383.1c45.8-2.8 89.8-12.5 130.9-28.1l.3 1.2c9.2 40.7 14.7 83.5 16.3 127.8H540zm-56 56v100.9c-45.8 2.8-89.8 12.5-130.9 28.1l-.3-1.2c-9.2-40.7-14.7-83.5-16.3-127.8H484zm-147.5-56c1.6-44.2 7.1-87.1 16.3-127.8l.3-1.2c41.1 15.6 85 25.3 130.9 28.1V484H336.5zM484 697v185.4c-9.2-3.7-18.5-9.1-27.7-16.4-21.2-16.7-41.7-42.7-59.1-75.1-11-20.6-20.7-43.3-29-67.8 37.2-14.6 75.9-23.3 115.8-26.1zm0-370a389.1 389.1 0 01-115.7-26.2c8.3-24.6 17.9-47.3 29-67.8 17.4-32.4 37.8-58.4 59.1-75.1 9.2-7.2 18.4-12.7 27.7-16.4V327zM365.7 165.5c3.7-1.5 7.3-3 11-4.4-23.4 31.3-43.5 70.4-59.2 115.4-21-12-40.9-26-59.4-41.8 31.8-29.2 67.9-52.4 107.6-69.2zM165.5 365.7c13.8-32.6 32-62.8 54.2-90.2 24.9 21.5 52.2 40.3 81.5 55.9-11.6 46.9-18.8 98.4-20.7 152.6H137c3-40.9 12.6-80.6 28.5-118.3zM137 540h143.5c1.9 54.2 9.1 105.7 20.7 152.6a444.07 444.07 0 00-81.5 55.9A373.86 373.86 0 01137 540zm228.7 318.5c-39.7-16.8-75.8-40-107.6-69.2 18.5-15.8 38.4-29.7 59.4-41.8 15.7 45 35.8 84.1 59.2 115.4-3.7-1.4-7.4-2.9-11-4.4zm292.6 0c-3.7 1.5-7.3 3-11 4.4 23.4-31.3 43.5-70.4 59.2-115.4 21 12 40.9 26 59.4 41.8a373.81 373.81 0 01-107.6 69.2z"}}]},name:"global",theme:"outlined"};var l=e.i(9583),i=a.forwardRef(function(e,i){return a.createElement(l.default,(0,t.default)({},e,{ref:i,icon:r}))});e.s(["GlobalOutlined",0,i],160818)},986888,e=>{"use strict";var t=e.i(843476),a=e.i(797305),r=e.i(135214),l=e.i(214541);e.s(["default",0,()=>{let{accessToken:e,userRole:i,userId:n,premiumUser:o}=(0,r.default)(),{teams:s}=(0,l.default)();return(0,t.jsx)(a.default,{teams:s??[],organizations:[]})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0goq2snzui.n8.js b/litellm/proxy/_experimental/out/_next/static/chunks/0goq2snzui.n8.js deleted file mode 100644 index 49c6ce5dae3..00000000000 --- a/litellm/proxy/_experimental/out/_next/static/chunks/0goq2snzui.n8.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,916925,e=>{"use strict";var t,a=((t={}).A2A_Agent="A2A Agent",t.AI21="Ai21",t.AI21_CHAT="Ai21 Chat",t.AIML="AI/ML API",t.AIOHTTP_OPENAI="Aiohttp Openai",t.Anthropic="Anthropic",t.ANTHROPIC_TEXT="Anthropic Text",t.AssemblyAI="AssemblyAI",t.AUTO_ROUTER="Auto Router",t.Bedrock="Amazon Bedrock",t.BedrockMantle="Amazon Bedrock Mantle",t.SageMaker="AWS SageMaker",t.Azure="Azure",t.Azure_AI_Studio="Azure AI Foundry (Studio)",t.AZURE_TEXT="Azure Text",t.BASETEN="Baseten",t.BYTEZ="Bytez",t.Cerebras="Cerebras",t.CLARIFAI="Clarifai",t.CLOUDFLARE="Cloudflare",t.CODESTRAL="Codestral",t.Cohere="Cohere",t.COHERE_CHAT="Cohere Chat",t.COMETAPI="Cometapi",t.COMPACTIFAI="Compactifai",t.Cursor="Cursor",t.Dashscope="Dashscope",t.Databricks="Databricks (Qwen API)",t.DATAROBOT="Datarobot",t.DeepInfra="DeepInfra",t.Deepgram="Deepgram",t.Deepseek="Deepseek",t.DOCKER_MODEL_RUNNER="Docker Model Runner",t.DOTPROMPT="Dotprompt",t.ElevenLabs="ElevenLabs",t.EMPOWER="Empower",t.FalAI="Fal AI",t.FEATHERLESS_AI="Featherless Ai",t.FireworksAI="Fireworks AI",t.FRIENDLIAI="Friendliai",t.GALADRIEL="Galadriel",t.GITHUB_COPILOT="Github Copilot",t.Google_AI_Studio="Google AI Studio",t.GradientAI="GradientAI",t.Groq="Groq",t.HEROKU="Heroku",t.Hosted_Vllm="vllm",t.HUGGINGFACE="Huggingface",t.HYPERBOLIC="Hyperbolic",t.Infinity="Infinity",t.JinaAI="Jina AI",t.LAMBDA_AI="Lambda Ai",t.LEMONADE="Lemonade",t.LLAMAFILE="Llamafile",t.LM_STUDIO="Lm Studio",t.LLAMA="Meta Llama",t.MARITALK="Maritalk",t.MiniMax="MiniMax",t.MistralAI="Mistral AI",t.MOONSHOT="Moonshot",t.MORPH="Morph",t.NEBIUS="Nebius",t.NLP_CLOUD="Nlp Cloud",t.NOVITA="Novita",t.NSCALE="Nscale",t.NVIDIA_NIM="Nvidia Nim",t.Ollama="Ollama",t.OLLAMA_CHAT="Ollama Chat",t.OOBABOOGA="Oobabooga",t.OpenAI="OpenAI",t.OPENAI_LIKE="Openai Like",t.OpenAI_Compatible="OpenAI-Compatible Endpoints (Together AI, etc.)",t.OpenAI_Text="OpenAI Text Completion",t.OpenAI_Text_Compatible="OpenAI-Compatible Text Completion Models (Together AI, etc.)",t.Openrouter="Openrouter",t.Oracle="Oracle Cloud Infrastructure (OCI)",t.OVHCLOUD="Ovhcloud",t.Perplexity="Perplexity",t.PETALS="Petals",t.PG_VECTOR="Pg Vector",t.PREDIBASE="Predibase",t.RECRAFT="Recraft",t.REPLICATE="Replicate",t.RunwayML="RunwayML",t.SAGEMAKER_LEGACY="Sagemaker",t.Sambanova="Sambanova",t.SAP="SAP Generative AI Hub",t.Snowflake="Snowflake",t.TEXT_COMPLETION_CODESTRAL="Text-Completion-Codestral",t.TogetherAI="TogetherAI",t.TOPAZ="Topaz",t.Triton="Triton",t.V0="V0",t.VERCEL_AI_GATEWAY="Vercel Ai Gateway",t.Vertex_AI="Vertex AI (Anthropic, Gemini, etc.)",t.VERTEX_AI_BETA="Vertex Ai Beta",t.VLLM="Vllm",t.VolcEngine="VolcEngine",t.Voyage="Voyage AI",t.WANDB="Wandb",t.WATSONX="Watsonx",t.WATSONX_TEXT="Watsonx Text",t.xAI="xAI",t.XINFERENCE="Xinference",t.ZAI="Z.AI (Zhipu AI)",t);let r={A2A_Agent:"a2a_agent",AI21:"ai21",AI21_CHAT:"ai21_chat",AIML:"aiml",AIOHTTP_OPENAI:"aiohttp_openai",Anthropic:"anthropic",ANTHROPIC_TEXT:"anthropic_text",AssemblyAI:"assemblyai",AUTO_ROUTER:"auto_router",Azure:"azure",Azure_AI_Studio:"azure_ai",AZURE_TEXT:"azure_text",BASETEN:"baseten",Bedrock:"bedrock",BedrockMantle:"bedrock_mantle",BYTEZ:"bytez",Cerebras:"cerebras",CLARIFAI:"clarifai",CLOUDFLARE:"cloudflare",CODESTRAL:"codestral",Cohere:"cohere",COHERE_CHAT:"cohere_chat",COMETAPI:"cometapi",COMPACTIFAI:"compactifai",Cursor:"cursor",Dashscope:"dashscope",Databricks:"databricks",DATAROBOT:"datarobot",DeepInfra:"deepinfra",Deepgram:"deepgram",Deepseek:"deepseek",DOCKER_MODEL_RUNNER:"docker_model_runner",DOTPROMPT:"dotprompt",ElevenLabs:"elevenlabs",EMPOWER:"empower",FalAI:"fal_ai",FEATHERLESS_AI:"featherless_ai",FireworksAI:"fireworks_ai",FRIENDLIAI:"friendliai",GALADRIEL:"galadriel",GITHUB_COPILOT:"github_copilot",Google_AI_Studio:"gemini",GradientAI:"gradient_ai",Groq:"groq",HEROKU:"heroku",Hosted_Vllm:"hosted_vllm",HUGGINGFACE:"huggingface",HYPERBOLIC:"hyperbolic",Infinity:"infinity",JinaAI:"jina_ai",LAMBDA_AI:"lambda_ai",LEMONADE:"lemonade",LLAMAFILE:"llamafile",LLAMA:"meta_llama",LM_STUDIO:"lm_studio",MARITALK:"maritalk",MiniMax:"minimax",MistralAI:"mistral",MOONSHOT:"moonshot",MORPH:"morph",NEBIUS:"nebius",NLP_CLOUD:"nlp_cloud",NOVITA:"novita",NSCALE:"nscale",NVIDIA_NIM:"nvidia_nim",Ollama:"ollama",OLLAMA_CHAT:"ollama_chat",OOBABOOGA:"oobabooga",OpenAI:"openai",OPENAI_LIKE:"openai_like",OpenAI_Compatible:"openai",OpenAI_Text:"text-completion-openai",OpenAI_Text_Compatible:"text-completion-openai",Openrouter:"openrouter",Oracle:"oci",OVHCLOUD:"ovhcloud",Perplexity:"perplexity",PETALS:"petals",PG_VECTOR:"pg_vector",PREDIBASE:"predibase",RECRAFT:"recraft",REPLICATE:"replicate",RunwayML:"runwayml",SAGEMAKER_LEGACY:"sagemaker",SageMaker:"sagemaker_chat",Sambanova:"sambanova",SAP:"sap",Snowflake:"snowflake",TEXT_COMPLETION_CODESTRAL:"text-completion-codestral",TogetherAI:"together_ai",TOPAZ:"topaz",Triton:"triton",V0:"v0",VERCEL_AI_GATEWAY:"vercel_ai_gateway",Vertex_AI:"vertex_ai",VERTEX_AI_BETA:"vertex_ai_beta",VLLM:"vllm",VolcEngine:"volcengine",Voyage:"voyage",WANDB:"wandb",WATSONX:"watsonx",WATSONX_TEXT:"watsonx_text",xAI:"xai",XINFERENCE:"xinference",ZAI:"zai"},o="../ui/assets/logos/",n={"A2A Agent":`${o}a2a_agent.png`,Ai21:`${o}ai21.svg`,"Ai21 Chat":`${o}ai21.svg`,"AI/ML API":`${o}aiml_api.svg`,"Aiohttp Openai":`${o}openai_small.svg`,Anthropic:`${o}anthropic.svg`,"Anthropic Text":`${o}anthropic.svg`,AssemblyAI:`${o}assemblyai_small.png`,Azure:`${o}microsoft_azure.svg`,"Azure AI Foundry (Studio)":`${o}microsoft_azure.svg`,"Azure Text":`${o}microsoft_azure.svg`,Baseten:`${o}baseten.svg`,"Amazon Bedrock":`${o}bedrock.svg`,"Amazon Bedrock Mantle":`${o}bedrock.svg`,"AWS SageMaker":`${o}bedrock.svg`,Cerebras:`${o}cerebras.svg`,Cloudflare:`${o}cloudflare.svg`,Codestral:`${o}mistral.svg`,Cohere:`${o}cohere.svg`,"Cohere Chat":`${o}cohere.svg`,Cometapi:`${o}cometapi.svg`,Cursor:`${o}cursor.svg`,"Databricks (Qwen API)":`${o}databricks.svg`,Dashscope:`${o}dashscope.svg`,Deepseek:`${o}deepseek.svg`,Deepgram:`${o}deepgram.png`,DeepInfra:`${o}deepinfra.png`,ElevenLabs:`${o}elevenlabs.png`,"Fal AI":`${o}fal_ai.jpg`,"Featherless Ai":`${o}featherless.svg`,"Fireworks AI":`${o}fireworks.svg`,Friendliai:`${o}friendli.svg`,"Github Copilot":`${o}github_copilot.svg`,"Google AI Studio":`${o}google.svg`,GradientAI:`${o}gradientai.svg`,Groq:`${o}groq.svg`,vllm:`${o}vllm.png`,Huggingface:`${o}huggingface.svg`,Hyperbolic:`${o}hyperbolic.svg`,Infinity:`${o}infinity.png`,"Jina AI":`${o}jina.png`,"Lambda Ai":`${o}lambda.svg`,"Lm Studio":`${o}lmstudio.svg`,"Meta Llama":`${o}meta_llama.svg`,MiniMax:`${o}minimax.svg`,"Mistral AI":`${o}mistral.svg`,Moonshot:`${o}moonshot.svg`,Morph:`${o}morph.svg`,Nebius:`${o}nebius.svg`,Novita:`${o}novita.svg`,"Nvidia Nim":`${o}nvidia_nim.svg`,Ollama:`${o}ollama.svg`,"Ollama Chat":`${o}ollama.svg`,Oobabooga:`${o}openai_small.svg`,OpenAI:`${o}openai_small.svg`,"Openai Like":`${o}openai_small.svg`,"OpenAI Text Completion":`${o}openai_small.svg`,"OpenAI-Compatible Text Completion Models (Together AI, etc.)":`${o}openai_small.svg`,"OpenAI-Compatible Endpoints (Together AI, etc.)":`${o}openai_small.svg`,Openrouter:`${o}openrouter.svg`,"Oracle Cloud Infrastructure (OCI)":`${o}oracle.svg`,Perplexity:`${o}perplexity-ai.svg`,Recraft:`${o}recraft.svg`,Replicate:`${o}replicate.svg`,RunwayML:`${o}runwayml.png`,Sagemaker:`${o}bedrock.svg`,Sambanova:`${o}sambanova.svg`,"SAP Generative AI Hub":`${o}sap.png`,Snowflake:`${o}snowflake.svg`,"Text-Completion-Codestral":`${o}mistral.svg`,TogetherAI:`${o}togetherai.svg`,Topaz:`${o}topaz.svg`,Triton:`${o}nvidia_triton.png`,V0:`${o}v0.svg`,"Vercel Ai Gateway":`${o}vercel.svg`,"Vertex AI (Anthropic, Gemini, etc.)":`${o}google.svg`,"Vertex Ai Beta":`${o}google.svg`,Vllm:`${o}vllm.png`,VolcEngine:`${o}volcengine.png`,"Voyage AI":`${o}voyage.webp`,Watsonx:`${o}watsonx.svg`,"Watsonx Text":`${o}watsonx.svg`,xAI:`${o}xai.svg`,Xinference:`${o}xinference.svg`};e.s(["Providers",()=>a,"getPlaceholder",0,e=>{if("AI/ML API"===e)return"aiml/flux-pro/v1.1";if("Vertex AI (Anthropic, Gemini, etc.)"===e)return"gemini-pro";if("Anthropic"==e)return"claude-3-opus";if("Amazon Bedrock"==e)return"claude-3-opus";if("AWS SageMaker"==e)return"sagemaker/jumpstart-dft-meta-textgeneration-llama-2-7b";else if("Google AI Studio"==e)return"gemini-pro";else if("Azure AI Foundry (Studio)"==e)return"azure_ai/command-r-plus";else if("Azure"==e)return"my-deployment";else if("Oracle Cloud Infrastructure (OCI)"==e)return"oci/xai.grok-4";else if("Snowflake"==e)return"snowflake/mistral-7b";else if("Voyage AI"==e)return"voyage/";else if("Jina AI"==e)return"jina_ai/";else if("VolcEngine"==e)return"volcengine/";else if("DeepInfra"==e)return"deepinfra/";else if("Fal AI"==e)return"fal_ai/fal-ai/flux-pro/v1.1-ultra";else if("RunwayML"==e)return"runwayml/gen4_turbo";else if("Watsonx"===e)return"watsonx/ibm/granite-3-3-8b-instruct";else if("Cursor"===e)return"cursor/claude-4-sonnet";else if("Z.AI (Zhipu AI)"===e)return"zai/glm-4.5";else return"gpt-3.5-turbo"},"getProviderLogoAndName",0,e=>{if(!e)return{logo:"",displayName:"-"};if("gemini"===e.toLowerCase()){let e="Google AI Studio";return{logo:n[e],displayName:e}}let t=Object.keys(r).find(t=>r[t].toLowerCase()===e.toLowerCase());if(!t)return{logo:"",displayName:e};let o=a[t];return{logo:n[o],displayName:o}},"getProviderModels",0,(e,t)=>{console.log(`Provider key: ${e}`);let a=r[e];console.log(`Provider mapped to: ${a}`);let o=[];return e&&"object"==typeof t&&(Object.entries(t).forEach(([e,t])=>{if(null!==t&&"object"==typeof t&&"litellm_provider"in t){let r=t.litellm_provider;(r===a||"string"==typeof r&&r.includes(a))&&o.push(e)}}),"Cohere"==e&&(console.log("Adding cohere chat models"),Object.entries(t).forEach(([e,t])=>{null!==t&&"object"==typeof t&&"litellm_provider"in t&&"cohere_chat"===t.litellm_provider&&o.push(e)})),"AWS SageMaker"==e&&(console.log("Adding sagemaker chat models"),Object.entries(t).forEach(([e,t])=>{null!==t&&"object"==typeof t&&"litellm_provider"in t&&"sagemaker_chat"===t.litellm_provider&&o.push(e)}))),o},"providerLogoMap",0,n,"provider_map",0,r])},264843,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"}}]},name:"message",theme:"outlined"};var o=e.i(9583),n=a.forwardRef(function(e,n){return a.createElement(o.default,(0,t.default)({},e,{ref:n,icon:r}))});e.s(["MessageOutlined",0,n],264843)},700514,e=>{"use strict";var t=e.i(271645);e.s(["defaultPageSize",0,25,"useBaseUrl",0,()=>{let[e,a]=(0,t.useState)("http://localhost:4000");return(0,t.useEffect)(()=>{{let{protocol:e,host:t}=window.location;a(`${e}//${t}`)}},[]),e}])},50882,e=>{"use strict";var t=e.i(843476),a=e.i(621482),r=e.i(243652),o=e.i(764205),n=e.i(135214);let l=(0,r.createQueryKeys)("infiniteKeyAliases");var i=e.i(56456),s=e.i(152473),c=e.i(199133),d=e.i(271645);e.s(["PaginatedKeyAliasSelect",0,({value:e,onChange:r,placeholder:u="Select a key alias",style:m,pageSize:p=50,allowClear:g=!0,disabled:f=!1,allFilters:h})=>{let[v,b]=(0,d.useState)(""),[A,C]=(0,s.useDebouncedState)("",{wait:300}),{data:x,fetchNextPage:I,hasNextPage:y,isFetchingNextPage:w,isLoading:E}=((e=50,t,r)=>{let{accessToken:i}=(0,n.default)();return(0,a.useInfiniteQuery)({queryKey:l.list({filters:{size:e,...t&&{search:t},...r&&{team_id:r}}}),queryFn:async({pageParam:a})=>await (0,o.keyAliasesCall)(i,a,e,t,r),initialPageParam:1,getNextPageParam:e=>{if(e.current_page{if(!x?.pages)return[];let e=new Set,t=[];for(let a of x.pages)for(let r of a.aliases)!r||e.has(r)||(e.add(r),t.push({label:r,value:r}));return t},[x]);return(0,t.jsx)(c.Select,{value:e||void 0,onChange:e=>{r?.(e??"")},placeholder:u,style:{width:"100%",...m},allowClear:g,disabled:f,showSearch:!0,filterOption:!1,onSearch:e=>{b(e),C(e)},searchValue:v,onPopupScroll:e=>{let t=e.currentTarget;(t.scrollTop+t.clientHeight)/t.scrollHeight>=.8&&y&&!w&&I()},loading:E,notFoundContent:E?(0,t.jsx)(i.LoadingOutlined,{spin:!0}):"No key aliases found",options:O,popupRender:e=>(0,t.jsxs)(t.Fragment,{children:[e,w&&(0,t.jsx)("div",{style:{textAlign:"center",padding:8},children:(0,t.jsx)(i.LoadingOutlined,{spin:!0})})]})})}],50882)},362024,e=>{"use strict";var t=e.i(988122);e.s(["Collapse",()=>t.default])},240647,e=>{"use strict";var t=e.i(286612);e.s(["RightOutlined",()=>t.default])},245704,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"check-circle",theme:"outlined"};var o=e.i(9583),n=a.forwardRef(function(e,n){return a.createElement(o.default,(0,t.default)({},e,{ref:n,icon:r}))});e.s(["CheckCircleOutlined",0,n],245704)},149192,e=>{"use strict";var t=e.i(864517);e.s(["CloseOutlined",()=>t.default])},518617,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let r={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm0 76c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm128.01 198.83c.03 0 .05.01.09.06l45.02 45.01a.2.2 0 01.05.09.12.12 0 010 .07c0 .02-.01.04-.05.08L557.25 512l127.87 127.86a.27.27 0 01.05.06v.02a.12.12 0 010 .07c0 .03-.01.05-.05.09l-45.02 45.02a.2.2 0 01-.09.05.12.12 0 01-.07 0c-.02 0-.04-.01-.08-.05L512 557.25 384.14 685.12c-.04.04-.06.05-.08.05a.12.12 0 01-.07 0c-.03 0-.05-.01-.09-.05l-45.02-45.02a.2.2 0 01-.05-.09.12.12 0 010-.07c0-.02.01-.04.06-.08L466.75 512 338.88 384.14a.27.27 0 01-.05-.06l-.01-.02a.12.12 0 010-.07c0-.03.01-.05.05-.09l45.02-45.02a.2.2 0 01.09-.05.12.12 0 01.07 0c.02 0 .04.01.08.06L512 466.75l127.86-127.86c.04-.05.06-.06.08-.06a.12.12 0 01.07 0z"}}]},name:"close-circle",theme:"outlined"};var o=e.i(9583),n=a.forwardRef(function(e,n){return a.createElement(o.default,(0,t.default)({},e,{ref:n,icon:r}))});e.s(["CloseCircleOutlined",0,n],518617)},782273,793916,e=>{"use strict";e.i(247167);var t=e.i(931067),a=e.i(271645);let r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1zM586 803L293.4 611.7l-18-11.7H146V424h129.4l17.9-11.7L586 221v582zm348-327H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zm-41.9 261.8l-110.3-63.7a15.9 15.9 0 00-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0021.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM760 344a15.9 15.9 0 0021.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 00-21.7-5.9L746 287.8a15.99 15.99 0 00-5.8 21.8L760 344z"}}]},name:"sound",theme:"outlined"};var o=e.i(9583),n=a.forwardRef(function(e,n){return a.createElement(o.default,(0,t.default)({},e,{ref:n,icon:r}))});e.s(["SoundOutlined",0,n],782273);let l={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M842 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1zM512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm-94-392c0-50.6 41.9-92 94-92s94 41.4 94 92v224c0 50.6-41.9 92-94 92s-94-41.4-94-92V232z"}}]},name:"audio",theme:"outlined"};var i=a.forwardRef(function(e,r){return a.createElement(o.default,(0,t.default)({},e,{ref:r,icon:l}))});e.s(["AudioOutlined",0,i],793916)},531245,657150,e=>{"use strict";let t=(0,e.i(475254).default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);e.s(["default",0,t],657150),e.s(["Bot",0,t],531245)},888288,e=>{"use strict";var t=e.i(271645);e.s(["default",0,(e,a)=>{let r=void 0!==a,[o,n]=(0,t.useState)(e);return[r?a:o,e=>{r||n(e)}]}])},793130,e=>{"use strict";var t=e.i(290571),a=e.i(783222),r=e.i(433336),o=e.i(271645),n=e.i(394487),l=e.i(503269),i=e.i(214520),s=e.i(746725),c=e.i(914189),d=e.i(144279),u=e.i(294316),m=e.i(601893),p=e.i(140721),g=e.i(942803),f=e.i(233538),h=e.i(694421),v=e.i(700020),b=e.i(35889),A=e.i(998348),C=e.i(722678);let x=(0,o.createContext)(null);x.displayName="GroupContext";let I=o.Fragment,y=Object.assign((0,v.forwardRefWithAs)(function(e,t){var I;let y=(0,o.useId)(),w=(0,g.useProvidedId)(),E=(0,m.useDisabled)(),{id:O=w||`headlessui-switch-${y}`,disabled:k=E||!1,checked:T,defaultChecked:S,onChange:_,name:$,value:R,form:M,autoFocus:N=!1,...L}=e,D=(0,o.useContext)(x),[P,j]=(0,o.useState)(null),z=(0,o.useRef)(null),H=(0,u.useSyncRefs)(z,t,null===D?null:D.setSwitch,j),B=(0,i.useDefaultValue)(S),[V,F]=(0,l.useControllable)(T,_,null!=B&&B),G=(0,s.useDisposables)(),[U,K]=(0,o.useState)(!1),W=(0,c.useEvent)(()=>{K(!0),null==F||F(!V),G.nextFrame(()=>{K(!1)})}),X=(0,c.useEvent)(e=>{if((0,f.isDisabledReactIssue7711)(e.currentTarget))return e.preventDefault();e.preventDefault(),W()}),q=(0,c.useEvent)(e=>{e.key===A.Keys.Space?(e.preventDefault(),W()):e.key===A.Keys.Enter&&(0,h.attemptSubmit)(e.currentTarget)}),Y=(0,c.useEvent)(e=>e.preventDefault()),Z=(0,C.useLabelledBy)(),J=(0,b.useDescribedBy)(),{isFocusVisible:Q,focusProps:ee}=(0,a.useFocusRing)({autoFocus:N}),{isHovered:et,hoverProps:ea}=(0,r.useHover)({isDisabled:k}),{pressed:er,pressProps:eo}=(0,n.useActivePress)({disabled:k}),en=(0,o.useMemo)(()=>({checked:V,disabled:k,hover:et,focus:Q,active:er,autofocus:N,changing:U}),[V,et,Q,er,k,U,N]),el=(0,v.mergeProps)({id:O,ref:H,role:"switch",type:(0,d.useResolveButtonType)(e,P),tabIndex:-1===e.tabIndex?0:null!=(I=e.tabIndex)?I:0,"aria-checked":V,"aria-labelledby":Z,"aria-describedby":J,disabled:k||void 0,autoFocus:N,onClick:X,onKeyUp:q,onKeyPress:Y},ee,ea,eo),ei=(0,o.useCallback)(()=>{if(void 0!==B)return null==F?void 0:F(B)},[F,B]),es=(0,v.useRender)();return o.default.createElement(o.default.Fragment,null,null!=$&&o.default.createElement(p.FormFields,{disabled:k,data:{[$]:R||"on"},overrides:{type:"checkbox",checked:V},form:M,onReset:ei}),es({ourProps:el,theirProps:L,slot:en,defaultTag:"button",name:"Switch"}))}),{Group:function(e){var t;let[a,r]=(0,o.useState)(null),[n,l]=(0,C.useLabels)(),[i,s]=(0,b.useDescriptions)(),c=(0,o.useMemo)(()=>({switch:a,setSwitch:r}),[a,r]),d=(0,v.useRender)();return o.default.createElement(s,{name:"Switch.Description",value:i},o.default.createElement(l,{name:"Switch.Label",value:n,props:{htmlFor:null==(t=c.switch)?void 0:t.id,onClick(e){a&&(e.currentTarget instanceof HTMLLabelElement&&e.preventDefault(),a.click(),a.focus({preventScroll:!0}))}}},o.default.createElement(x.Provider,{value:c},d({ourProps:{},theirProps:e,slot:{},defaultTag:I,name:"Switch.Group"}))))},Label:C.Label,Description:b.Description});var w=e.i(888288),E=e.i(95779),O=e.i(444755),k=e.i(673706),T=e.i(829087);let S=(0,k.makeClassName)("Switch"),_=o.default.forwardRef((e,a)=>{let{checked:r,defaultChecked:n=!1,onChange:l,color:i,name:s,error:c,errorMessage:d,disabled:u,required:m,tooltip:p,id:g}=e,f=(0,t.__rest)(e,["checked","defaultChecked","onChange","color","name","error","errorMessage","disabled","required","tooltip","id"]),h={bgColor:i?(0,k.getColorClassNames)(i,E.colorPalette.background).bgColor:"bg-tremor-brand dark:bg-dark-tremor-brand",ringColor:i?(0,k.getColorClassNames)(i,E.colorPalette.ring).ringColor:"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"},[v,b]=(0,w.default)(n,r),[A,C]=(0,o.useState)(!1),{tooltipProps:x,getReferenceProps:I}=(0,T.useTooltip)(300);return o.default.createElement("div",{className:"flex flex-row items-center justify-start"},o.default.createElement(T.default,Object.assign({text:p},x)),o.default.createElement("div",Object.assign({ref:(0,k.mergeRefs)([a,x.refs.setReference]),className:(0,O.tremorTwMerge)(S("root"),"flex flex-row relative h-5")},f,I),o.default.createElement("input",{type:"checkbox",className:(0,O.tremorTwMerge)(S("input"),"absolute w-5 h-5 cursor-pointer left-0 top-0 opacity-0"),name:s,required:m,checked:v,onChange:e=>{e.preventDefault()}}),o.default.createElement(y,{checked:v,onChange:e=>{b(e),null==l||l(e)},disabled:u,className:(0,O.tremorTwMerge)(S("switch"),"w-10 h-5 group relative inline-flex shrink-0 cursor-pointer items-center justify-center rounded-tremor-full","focus:outline-none",u?"cursor-not-allowed":""),onFocus:()=>C(!0),onBlur:()=>C(!1),id:g},o.default.createElement("span",{className:(0,O.tremorTwMerge)(S("sr-only"),"sr-only")},"Switch ",v?"on":"off"),o.default.createElement("span",{"aria-hidden":"true",className:(0,O.tremorTwMerge)(S("background"),v?h.bgColor:"bg-tremor-border dark:bg-dark-tremor-border","pointer-events-none absolute mx-auto h-3 w-9 rounded-tremor-full transition-colors duration-100 ease-in-out")}),o.default.createElement("span",{"aria-hidden":"true",className:(0,O.tremorTwMerge)(S("round"),v?(0,O.tremorTwMerge)(h.bgColor,"translate-x-5 border-tremor-background dark:border-dark-tremor-background"):"translate-x-0 bg-tremor-border dark:bg-dark-tremor-border border-tremor-background dark:border-dark-tremor-background","pointer-events-none absolute left-0 inline-block h-5 w-5 transform rounded-tremor-full border-2 shadow-tremor-input duration-100 ease-in-out transition",A?(0,O.tremorTwMerge)("ring-2",h.ringColor):"")}))),c&&d?o.default.createElement("p",{className:(0,O.tremorTwMerge)(S("errorMessage"),"text-sm text-red-500 mt-1 ")},d):null)});_.displayName="Switch",e.s(["Switch",0,_],793130)},149121,e=>{"use strict";var t=e.i(843476),a=e.i(271645),r=e.i(152990),o=e.i(682830),n=e.i(269200),l=e.i(427612),i=e.i(64848),s=e.i(942232),c=e.i(496020),d=e.i(977572);e.s(["DataTable",0,function({data:e=[],columns:u,onRowClick:m,renderSubComponent:p,renderChildRows:g,getRowCanExpand:f,isLoading:h=!1,loadingMessage:v="🚅 Loading logs...",noDataMessage:b="No logs found",enableSorting:A=!1}){let C=!!(p||g)&&!!f,[x,I]=(0,a.useState)([]),y=(0,r.useReactTable)({data:e,columns:u,...A&&{state:{sorting:x},onSortingChange:I,enableSortingRemoval:!1},...C&&{getRowCanExpand:f},getRowId:(e,t)=>e?.request_id??String(t),getCoreRowModel:(0,o.getCoreRowModel)(),...A&&{getSortedRowModel:(0,o.getSortedRowModel)()},...C&&{getExpandedRowModel:(0,o.getExpandedRowModel)()}});return(0,t.jsx)("div",{className:"rounded-lg custom-border overflow-x-auto w-full max-w-full box-border",children:(0,t.jsxs)(n.Table,{className:"[&_td]:py-0.5 [&_th]:py-1 table-fixed w-full box-border",style:{minWidth:"400px"},children:[(0,t.jsx)(l.TableHead,{children:y.getHeaderGroups().map(e=>(0,t.jsx)(c.TableRow,{children:e.headers.map(e=>{let a=A&&e.column.getCanSort(),o=e.column.getIsSorted();return(0,t.jsx)(i.TableHeaderCell,{className:`py-1 h-8 ${a?"cursor-pointer select-none hover:bg-gray-50":""}`,onClick:a?e.column.getToggleSortingHandler():void 0,children:e.isPlaceholder?null:(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.flexRender)(e.column.columnDef.header,e.getContext()),a&&(0,t.jsx)("span",{className:"text-gray-400",children:"asc"===o?"↑":"desc"===o?"↓":"⇅"})]})},e.id)})},e.id))}),(0,t.jsx)(s.TableBody,{children:h?(0,t.jsx)(c.TableRow,{children:(0,t.jsx)(d.TableCell,{colSpan:u.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:v})})})}):y.getRowModel().rows.length>0?y.getRowModel().rows.map(e=>(0,t.jsxs)(a.Fragment,{children:[(0,t.jsx)(c.TableRow,{className:`h-8 ${m?"cursor-pointer hover:bg-gray-50":""}`,onClick:()=>m?.(e.original),children:e.getVisibleCells().map(e=>(0,t.jsx)(d.TableCell,{className:"py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap",children:(0,r.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))}),C&&e.getIsExpanded()&&g&&g({row:e}),C&&e.getIsExpanded()&&p&&!g&&(0,t.jsx)(c.TableRow,{children:(0,t.jsx)(d.TableCell,{colSpan:e.getVisibleCells().length,className:"p-0",children:(0,t.jsx)("div",{className:"w-full max-w-full overflow-hidden box-border",children:p({row:e})})})})]},e.id)):(0,t.jsx)(c.TableRow,{children:(0,t.jsx)(d.TableCell,{colSpan:u.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:b})})})})})]})})}])},446891,836991,e=>{"use strict";var t=e.i(843476),a=e.i(464571),r=e.i(326373),o=e.i(94629),n=e.i(360820),l=e.i(871943),i=e.i(271645);let s=i.forwardRef(function(e,t){return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:t},e),i.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"}))});e.s(["XIcon",0,s],836991),e.s(["TableHeaderSortDropdown",0,({sortState:e,onSortChange:i})=>{let c=[{key:"asc",label:"Ascending",icon:(0,t.jsx)(n.ChevronUpIcon,{className:"h-4 w-4"})},{key:"desc",label:"Descending",icon:(0,t.jsx)(l.ChevronDownIcon,{className:"h-4 w-4"})},{key:"reset",label:"Reset",icon:(0,t.jsx)(s,{className:"h-4 w-4"})}];return(0,t.jsx)(r.Dropdown,{menu:{items:c,onClick:({key:e})=>{"asc"===e?i("asc"):"desc"===e?i("desc"):"reset"===e&&i(!1)},selectable:!0,selectedKeys:e?[e]:[]},trigger:["click"],autoAdjustOverflow:!0,children:(0,t.jsx)(a.Button,{type:"text",onClick:e=>e.stopPropagation(),icon:"asc"===e?(0,t.jsx)(n.ChevronUpIcon,{className:"h-4 w-4"}):"desc"===e?(0,t.jsx)(l.ChevronDownIcon,{className:"h-4 w-4"}):(0,t.jsx)(o.SwitchVerticalIcon,{className:"h-4 w-4"}),className:e?"text-blue-500 hover:text-blue-600":"text-gray-400 hover:text-blue-500"})})}],446891)},608856,e=>{"use strict";e.i(247167);var t=e.i(271645),a=e.i(343794),r=e.i(209428),o=e.i(392221),n=e.i(951160),l=e.i(174428),i=t.createContext(null),s=t.createContext({}),c=e.i(211577),d=e.i(931067),u=e.i(361275),m=e.i(404948),p=e.i(244009),g=e.i(703923),f=e.i(611935),h=["prefixCls","className","containerRef"];let v=function(e){var r=e.prefixCls,o=e.className,n=e.containerRef,l=(0,g.default)(e,h),i=t.useContext(s).panel,c=(0,f.useComposeRef)(i,n);return t.createElement("div",(0,d.default)({className:(0,a.default)("".concat(r,"-content"),o),role:"dialog",ref:c},(0,p.default)(e,{aria:!0}),{"aria-modal":"true"},l))};var b=e.i(883110);function A(e){return"string"==typeof e&&String(Number(e))===e?((0,b.default)(!1,"Invalid value type of `width` or `height` which should be number type instead."),Number(e)):e}var C={width:0,height:0,overflow:"hidden",outline:"none",position:"absolute"},x=t.forwardRef(function(e,n){var l,s,g,f=e.prefixCls,h=e.open,b=e.placement,x=e.inline,I=e.push,y=e.forceRender,w=e.autoFocus,E=e.keyboard,O=e.classNames,k=e.rootClassName,T=e.rootStyle,S=e.zIndex,_=e.className,$=e.id,R=e.style,M=e.motion,N=e.width,L=e.height,D=e.children,P=e.mask,j=e.maskClosable,z=e.maskMotion,H=e.maskClassName,B=e.maskStyle,V=e.afterOpenChange,F=e.onClose,G=e.onMouseEnter,U=e.onMouseOver,K=e.onMouseLeave,W=e.onClick,X=e.onKeyDown,q=e.onKeyUp,Y=e.styles,Z=e.drawerRender,J=t.useRef(),Q=t.useRef(),ee=t.useRef();t.useImperativeHandle(n,function(){return J.current}),t.useEffect(function(){if(h&&w){var e;null==(e=J.current)||e.focus({preventScroll:!0})}},[h]);var et=t.useState(!1),ea=(0,o.default)(et,2),er=ea[0],eo=ea[1],en=t.useContext(i),el=null!=(l=null!=(s=null==(g="boolean"==typeof I?I?{}:{distance:0}:I||{})?void 0:g.distance)?s:null==en?void 0:en.pushDistance)?l:180,ei=t.useMemo(function(){return{pushDistance:el,push:function(){eo(!0)},pull:function(){eo(!1)}}},[el]);t.useEffect(function(){var e,t;h?null==en||null==(e=en.push)||e.call(en):null==en||null==(t=en.pull)||t.call(en)},[h]),t.useEffect(function(){return function(){var e;null==en||null==(e=en.pull)||e.call(en)}},[]);var es=t.createElement(u.default,(0,d.default)({key:"mask"},z,{visible:P&&h}),function(e,o){var n=e.className,l=e.style;return t.createElement("div",{className:(0,a.default)("".concat(f,"-mask"),n,null==O?void 0:O.mask,H),style:(0,r.default)((0,r.default)((0,r.default)({},l),B),null==Y?void 0:Y.mask),onClick:j&&h?F:void 0,ref:o})}),ec="function"==typeof M?M(b):M,ed={};if(er&&el)switch(b){case"top":ed.transform="translateY(".concat(el,"px)");break;case"bottom":ed.transform="translateY(".concat(-el,"px)");break;case"left":ed.transform="translateX(".concat(el,"px)");break;default:ed.transform="translateX(".concat(-el,"px)")}"left"===b||"right"===b?ed.width=A(N):ed.height=A(L);var eu={onMouseEnter:G,onMouseOver:U,onMouseLeave:K,onClick:W,onKeyDown:X,onKeyUp:q},em=t.createElement(u.default,(0,d.default)({key:"panel"},ec,{visible:h,forceRender:y,onVisibleChanged:function(e){null==V||V(e)},removeOnLeave:!1,leavedClassName:"".concat(f,"-content-wrapper-hidden")}),function(o,n){var l=o.className,i=o.style,s=t.createElement(v,(0,d.default)({id:$,containerRef:n,prefixCls:f,className:(0,a.default)(_,null==O?void 0:O.content),style:(0,r.default)((0,r.default)({},R),null==Y?void 0:Y.content)},(0,p.default)(e,{aria:!0}),eu),D);return t.createElement("div",(0,d.default)({className:(0,a.default)("".concat(f,"-content-wrapper"),null==O?void 0:O.wrapper,l),style:(0,r.default)((0,r.default)((0,r.default)({},ed),i),null==Y?void 0:Y.wrapper)},(0,p.default)(e,{data:!0})),Z?Z(s):s)}),ep=(0,r.default)({},T);return S&&(ep.zIndex=S),t.createElement(i.Provider,{value:ei},t.createElement("div",{className:(0,a.default)(f,"".concat(f,"-").concat(b),k,(0,c.default)((0,c.default)({},"".concat(f,"-open"),h),"".concat(f,"-inline"),x)),style:ep,tabIndex:-1,ref:J,onKeyDown:function(e){var t,a,r=e.keyCode,o=e.shiftKey;switch(r){case m.default.TAB:r===m.default.TAB&&(o||document.activeElement!==ee.current?o&&document.activeElement===Q.current&&(null==(a=ee.current)||a.focus({preventScroll:!0})):null==(t=Q.current)||t.focus({preventScroll:!0}));break;case m.default.ESC:F&&E&&(e.stopPropagation(),F(e))}}},es,t.createElement("div",{tabIndex:0,ref:Q,style:C,"aria-hidden":"true","data-sentinel":"start"}),em,t.createElement("div",{tabIndex:0,ref:ee,style:C,"aria-hidden":"true","data-sentinel":"end"})))});let I=function(e){var a=e.open,i=e.prefixCls,c=e.placement,d=e.autoFocus,u=e.keyboard,m=e.width,p=e.mask,g=void 0===p||p,f=e.maskClosable,h=e.getContainer,v=e.forceRender,b=e.afterOpenChange,A=e.destroyOnClose,C=e.onMouseEnter,I=e.onMouseOver,y=e.onMouseLeave,w=e.onClick,E=e.onKeyDown,O=e.onKeyUp,k=e.panelRef,T=t.useState(!1),S=(0,o.default)(T,2),_=S[0],$=S[1],R=t.useState(!1),M=(0,o.default)(R,2),N=M[0],L=M[1];(0,l.default)(function(){L(!0)},[]);var D=!!N&&void 0!==a&&a,P=t.useRef(),j=t.useRef();(0,l.default)(function(){D&&(j.current=document.activeElement)},[D]);var z=t.useMemo(function(){return{panel:k}},[k]);if(!v&&!_&&!D&&A)return null;var H=(0,r.default)((0,r.default)({},e),{},{open:D,prefixCls:void 0===i?"rc-drawer":i,placement:void 0===c?"right":c,autoFocus:void 0===d||d,keyboard:void 0===u||u,width:void 0===m?378:m,mask:g,maskClosable:void 0===f||f,inline:!1===h,afterOpenChange:function(e){var t,a;$(e),null==b||b(e),e||!j.current||null!=(t=P.current)&&t.contains(j.current)||null==(a=j.current)||a.focus({preventScroll:!0})},ref:P},{onMouseEnter:C,onMouseOver:I,onMouseLeave:y,onClick:w,onKeyDown:E,onKeyUp:O});return t.createElement(s.Provider,{value:z},t.createElement(n.default,{open:D||v||_,autoDestroy:!1,getContainer:h,autoLock:g&&(D||_)},t.createElement(x,H)))};var y=e.i(981444),w=e.i(617206),E=e.i(122767),O=e.i(613541),k=e.i(340010),T=e.i(242064),S=e.i(922611),_=e.i(563113),$=e.i(185793);let R=e=>{var r,o,n,l;let i,{prefixCls:s,ariaId:c,title:d,footer:u,extra:m,closable:p,loading:g,onClose:f,headerStyle:h,bodyStyle:v,footerStyle:b,children:A,classNames:C,styles:x}=e,I=(0,T.useComponentConfig)("drawer");i=!1===p?void 0:void 0===p||!0===p?"start":(null==p?void 0:p.placement)==="end"?"end":"start";let y=t.useCallback(e=>t.createElement("button",{type:"button",onClick:f,className:(0,a.default)(`${s}-close`,{[`${s}-close-${i}`]:"end"===i})},e),[f,s,i]),[w,E]=(0,_.useClosable)((0,_.pickClosable)(e),(0,_.pickClosable)(I),{closable:!0,closeIconRender:y});return t.createElement(t.Fragment,null,d||w?t.createElement("div",{style:Object.assign(Object.assign(Object.assign({},null==(n=I.styles)?void 0:n.header),h),null==x?void 0:x.header),className:(0,a.default)(`${s}-header`,{[`${s}-header-close-only`]:w&&!d&&!m},null==(l=I.classNames)?void 0:l.header,null==C?void 0:C.header)},t.createElement("div",{className:`${s}-header-title`},"start"===i&&E,d&&t.createElement("div",{className:`${s}-title`,id:c},d)),m&&t.createElement("div",{className:`${s}-extra`},m),"end"===i&&E):null,t.createElement("div",{className:(0,a.default)(`${s}-body`,null==C?void 0:C.body,null==(r=I.classNames)?void 0:r.body),style:Object.assign(Object.assign(Object.assign({},null==(o=I.styles)?void 0:o.body),v),null==x?void 0:x.body)},g?t.createElement($.default,{active:!0,title:!1,paragraph:{rows:5},className:`${s}-body-skeleton`}):A),(()=>{var e,r;if(!u)return null;let o=`${s}-footer`;return t.createElement("div",{className:(0,a.default)(o,null==(e=I.classNames)?void 0:e.footer,null==C?void 0:C.footer),style:Object.assign(Object.assign(Object.assign({},null==(r=I.styles)?void 0:r.footer),b),null==x?void 0:x.footer)},u)})())};e.i(296059);var M=e.i(915654),N=e.i(183293),L=e.i(246422),D=e.i(838378);let P=(e,t)=>({"&-enter, &-appear":Object.assign(Object.assign({},e),{"&-active":t}),"&-leave":Object.assign(Object.assign({},t),{"&-active":e})}),j=(e,t)=>Object.assign({"&-enter, &-appear, &-leave":{"&-start":{transition:"none"},"&-active":{transition:`all ${t}`}}},P({opacity:e},{opacity:1})),z=(0,L.genStyleHooks)("Drawer",e=>{let t=(0,D.mergeToken)(e,{});return[(e=>{let{borderRadiusSM:t,componentCls:a,zIndexPopup:r,colorBgMask:o,colorBgElevated:n,motionDurationSlow:l,motionDurationMid:i,paddingXS:s,padding:c,paddingLG:d,fontSizeLG:u,lineHeightLG:m,lineWidth:p,lineType:g,colorSplit:f,marginXS:h,colorIcon:v,colorIconHover:b,colorBgTextHover:A,colorBgTextActive:C,colorText:x,fontWeightStrong:I,footerPaddingBlock:y,footerPaddingInline:w,calc:E}=e,O=`${a}-content-wrapper`;return{[a]:{position:"fixed",inset:0,zIndex:r,pointerEvents:"none",color:x,"&-pure":{position:"relative",background:n,display:"flex",flexDirection:"column",[`&${a}-left`]:{boxShadow:e.boxShadowDrawerLeft},[`&${a}-right`]:{boxShadow:e.boxShadowDrawerRight},[`&${a}-top`]:{boxShadow:e.boxShadowDrawerUp},[`&${a}-bottom`]:{boxShadow:e.boxShadowDrawerDown}},"&-inline":{position:"absolute"},[`${a}-mask`]:{position:"absolute",inset:0,zIndex:r,background:o,pointerEvents:"auto"},[O]:{position:"absolute",zIndex:r,maxWidth:"100vw",transition:`all ${l}`,"&-hidden":{display:"none"}},[`&-left > ${O}`]:{top:0,bottom:0,left:{_skip_check_:!0,value:0},boxShadow:e.boxShadowDrawerLeft},[`&-right > ${O}`]:{top:0,right:{_skip_check_:!0,value:0},bottom:0,boxShadow:e.boxShadowDrawerRight},[`&-top > ${O}`]:{top:0,insetInline:0,boxShadow:e.boxShadowDrawerUp},[`&-bottom > ${O}`]:{bottom:0,insetInline:0,boxShadow:e.boxShadowDrawerDown},[`${a}-content`]:{display:"flex",flexDirection:"column",width:"100%",height:"100%",overflow:"auto",background:n,pointerEvents:"auto"},[`${a}-header`]:{display:"flex",flex:0,alignItems:"center",padding:`${(0,M.unit)(c)} ${(0,M.unit)(d)}`,fontSize:u,lineHeight:m,borderBottom:`${(0,M.unit)(p)} ${g} ${f}`,"&-title":{display:"flex",flex:1,alignItems:"center",minWidth:0,minHeight:0}},[`${a}-extra`]:{flex:"none"},[`${a}-close`]:Object.assign({display:"inline-flex",width:E(u).add(s).equal(),height:E(u).add(s).equal(),borderRadius:t,justifyContent:"center",alignItems:"center",color:v,fontWeight:I,fontSize:u,fontStyle:"normal",lineHeight:1,textAlign:"center",textTransform:"none",textDecoration:"none",background:"transparent",border:0,cursor:"pointer",transition:`all ${i}`,textRendering:"auto",[`&${a}-close-end`]:{marginInlineStart:h},[`&:not(${a}-close-end)`]:{marginInlineEnd:h},"&:hover":{color:b,backgroundColor:A,textDecoration:"none"},"&:active":{backgroundColor:C}},(0,N.genFocusStyle)(e)),[`${a}-title`]:{flex:1,margin:0,fontWeight:e.fontWeightStrong,fontSize:u,lineHeight:m},[`${a}-body`]:{flex:1,minWidth:0,minHeight:0,padding:d,overflow:"auto",[`${a}-body-skeleton`]:{width:"100%",height:"100%",display:"flex",justifyContent:"center"}},[`${a}-footer`]:{flexShrink:0,padding:`${(0,M.unit)(y)} ${(0,M.unit)(w)}`,borderTop:`${(0,M.unit)(p)} ${g} ${f}`},"&-rtl":{direction:"rtl"}}}})(t),(e=>{let{componentCls:t,motionDurationSlow:a}=e;return{[t]:{[`${t}-mask-motion`]:j(0,a),[`${t}-panel-motion`]:["left","right","top","bottom"].reduce((e,t)=>{let r;return Object.assign(Object.assign({},e),{[`&-${t}`]:[j(.7,a),P({transform:(r="100%",({left:`translateX(-${r})`,right:`translateX(${r})`,top:`translateY(-${r})`,bottom:`translateY(${r})`})[t])},{transform:"none"})]})},{})}}})(t)]},e=>({zIndexPopup:e.zIndexPopupBase,footerPaddingBlock:e.paddingXS,footerPaddingInline:e.padding}));var H=function(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,r=Object.getOwnPropertySymbols(e);ot.indexOf(r[o])&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(a[r[o]]=e[r[o]]);return a};let B={distance:180},V=e=>{let{rootClassName:r,width:o,height:n,size:l="default",mask:i=!0,push:s=B,open:c,afterOpenChange:d,onClose:u,prefixCls:m,getContainer:p,panelRef:g=null,style:h,className:v,"aria-labelledby":b,visible:A,afterVisibleChange:C,maskStyle:x,drawerStyle:_,contentWrapperStyle:$,destroyOnClose:M,destroyOnHidden:N}=e,L=H(e,["rootClassName","width","height","size","mask","push","open","afterOpenChange","onClose","prefixCls","getContainer","panelRef","style","className","aria-labelledby","visible","afterVisibleChange","maskStyle","drawerStyle","contentWrapperStyle","destroyOnClose","destroyOnHidden"]),D=(0,y.default)(),P=L.title?D:void 0,{getPopupContainer:j,getPrefixCls:V,direction:F,className:G,style:U,classNames:K,styles:W}=(0,T.useComponentConfig)("drawer"),X=V("drawer",m),[q,Y,Z]=z(X),J=void 0===p&&j?()=>j(document.body):p,Q=(0,a.default)({"no-mask":!i,[`${X}-rtl`]:"rtl"===F},r,Y,Z),ee=t.useMemo(()=>null!=o?o:"large"===l?736:378,[o,l]),et=t.useMemo(()=>null!=n?n:"large"===l?736:378,[n,l]),ea={motionName:(0,O.getTransitionName)(X,"mask-motion"),motionAppear:!0,motionEnter:!0,motionLeave:!0,motionDeadline:500},er=(0,S.usePanelRef)(),eo=(0,f.composeRef)(g,er),[en,el]=(0,E.useZIndex)("Drawer",L.zIndex),{classNames:ei={},styles:es={}}=L;return q(t.createElement(w.default,{form:!0,space:!0},t.createElement(k.default.Provider,{value:el},t.createElement(I,Object.assign({prefixCls:X,onClose:u,maskMotion:ea,motion:e=>({motionName:(0,O.getTransitionName)(X,`panel-motion-${e}`),motionAppear:!0,motionEnter:!0,motionLeave:!0,motionDeadline:500})},L,{classNames:{mask:(0,a.default)(ei.mask,K.mask),content:(0,a.default)(ei.content,K.content),wrapper:(0,a.default)(ei.wrapper,K.wrapper)},styles:{mask:Object.assign(Object.assign(Object.assign({},es.mask),x),W.mask),content:Object.assign(Object.assign(Object.assign({},es.content),_),W.content),wrapper:Object.assign(Object.assign(Object.assign({},es.wrapper),$),W.wrapper)},open:null!=c?c:A,mask:i,push:s,width:ee,height:et,style:Object.assign(Object.assign({},U),h),className:(0,a.default)(G,v),rootClassName:Q,getContainer:J,afterOpenChange:null!=d?d:C,panelRef:eo,zIndex:en,"aria-labelledby":null!=b?b:P,destroyOnClose:null!=N?N:M}),t.createElement(R,Object.assign({prefixCls:X},L,{ariaId:P,onClose:u}))))))};V._InternalPanelDoNotUseOrYouWillBeFired=e=>{let{prefixCls:r,style:o,className:n,placement:l="right"}=e,i=H(e,["prefixCls","style","className","placement"]),{getPrefixCls:s}=t.useContext(T.ConfigContext),c=s("drawer",r),[d,u,m]=z(c),p=(0,a.default)(c,`${c}-pure`,`${c}-${l}`,u,m,n);return d(t.createElement("div",{className:p,style:o},t.createElement(R,Object.assign({prefixCls:c},i))))},e.s(["Drawer",0,V],608856)},799062,e=>{"use strict";var t=e.i(843476),a=e.i(936190),r=e.i(135214);e.s(["default",0,()=>{let{accessToken:e,token:o,userRole:n,userId:l,premiumUser:i}=(0,r.default)();return(0,t.jsx)(a.default,{accessToken:e,token:o,userRole:n,userID:l,premiumUser:i})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0kle3tqsakb-1.js b/litellm/proxy/_experimental/out/_next/static/chunks/0hb6gdno.2mf_.js similarity index 97% rename from litellm/proxy/_experimental/out/_next/static/chunks/0kle3tqsakb-1.js rename to litellm/proxy/_experimental/out/_next/static/chunks/0hb6gdno.2mf_.js index 748c8ce285b..c1ad7de6901 100644 --- a/litellm/proxy/_experimental/out/_next/static/chunks/0kle3tqsakb-1.js +++ b/litellm/proxy/_experimental/out/_next/static/chunks/0hb6gdno.2mf_.js @@ -5,4 +5,4 @@ ${l}, ${n}, ${i} - `]:Object.assign({},{background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:c,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"})}}})((0,d.mergeToken)(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:r(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"}))},e=>{let{colorFillContent:t,colorFill:r}=e;return{color:t,colorGradientEnd:r,gradientFromColor:t,gradientToColor:r,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),C=e=>{let{prefixCls:a,className:o,style:l,rows:n=0}=e,i=Array.from({length:n}).map((r,a)=>t.createElement("li",{key:a,style:{width:((e,t)=>{let{width:r,rows:a=2}=t;return Array.isArray(r)?r[e]:a-1===e?r:void 0})(a,e)}}));return t.createElement("ul",{className:(0,r.default)(a,o),style:l},i)},k=({prefixCls:e,className:a,width:o,style:l})=>t.createElement("h3",{className:(0,r.default)(e,a),style:Object.assign({width:o},l)});function x(e){return e&&"object"==typeof e?e:{}}let w=e=>{let{prefixCls:o,loading:n,className:i,rootClassName:s,style:d,children:c,avatar:m=!1,title:g=!0,paragraph:u=!0,active:b,round:h}=e,{getPrefixCls:f,direction:w,className:v,style:N}=(0,a.useComponentConfig)("skeleton"),$=f("skeleton",o),[j,y,T]=p($);if(n||!("loading"in e)){let e,a,o=!!m,n=!!g,c=!!u;if(o){let r=Object.assign(Object.assign({prefixCls:`${$}-avatar`},n&&!c?{size:"large",shape:"square"}:{size:"large",shape:"circle"}),x(m));e=t.createElement("div",{className:`${$}-header`},t.createElement(l,Object.assign({},r)))}if(n||c){let e,r;if(n){let r=Object.assign(Object.assign({prefixCls:`${$}-title`},!o&&c?{width:"38%"}:o&&c?{width:"50%"}:{}),x(g));e=t.createElement(k,Object.assign({},r))}if(c){let e,a=Object.assign(Object.assign({prefixCls:`${$}-paragraph`},(e={},o&&n||(e.width="61%"),!o&&n?e.rows=3:e.rows=2,e)),x(u));r=t.createElement(C,Object.assign({},a))}a=t.createElement("div",{className:`${$}-content`},e,r)}let f=(0,r.default)($,{[`${$}-with-avatar`]:o,[`${$}-active`]:b,[`${$}-rtl`]:"rtl"===w,[`${$}-round`]:h},v,i,s,y,T);return j(t.createElement("div",{className:f,style:Object.assign(Object.assign({},N),d)},e,a))}return null!=c?c:null};w.Button=e=>{let{prefixCls:n,className:i,rootClassName:s,active:d,block:c=!1,size:m="default"}=e,{getPrefixCls:g}=t.useContext(a.ConfigContext),u=g("skeleton",n),[b,h,f]=p(u),C=(0,o.default)(e,["prefixCls"]),k=(0,r.default)(u,`${u}-element`,{[`${u}-active`]:d,[`${u}-block`]:c},i,s,h,f);return b(t.createElement("div",{className:k},t.createElement(l,Object.assign({prefixCls:`${u}-button`,size:m},C))))},w.Avatar=e=>{let{prefixCls:n,className:i,rootClassName:s,active:d,shape:c="circle",size:m="default"}=e,{getPrefixCls:g}=t.useContext(a.ConfigContext),u=g("skeleton",n),[b,h,f]=p(u),C=(0,o.default)(e,["prefixCls","className"]),k=(0,r.default)(u,`${u}-element`,{[`${u}-active`]:d},i,s,h,f);return b(t.createElement("div",{className:k},t.createElement(l,Object.assign({prefixCls:`${u}-avatar`,shape:c,size:m},C))))},w.Input=e=>{let{prefixCls:n,className:i,rootClassName:s,active:d,block:c,size:m="default"}=e,{getPrefixCls:g}=t.useContext(a.ConfigContext),u=g("skeleton",n),[b,h,f]=p(u),C=(0,o.default)(e,["prefixCls"]),k=(0,r.default)(u,`${u}-element`,{[`${u}-active`]:d,[`${u}-block`]:c},i,s,h,f);return b(t.createElement("div",{className:k},t.createElement(l,Object.assign({prefixCls:`${u}-input`,size:m},C))))},w.Image=e=>{let{prefixCls:o,className:l,rootClassName:n,style:i,active:s}=e,{getPrefixCls:d}=t.useContext(a.ConfigContext),c=d("skeleton",o),[m,g,u]=p(c),b=(0,r.default)(c,`${c}-element`,{[`${c}-active`]:s},l,n,g,u);return m(t.createElement("div",{className:b},t.createElement("div",{className:(0,r.default)(`${c}-image`,l),style:i},t.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${c}-image-svg`},t.createElement("title",null,"Image placeholder"),t.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:`${c}-image-path`})))))},w.Node=e=>{let{prefixCls:o,className:l,rootClassName:n,style:i,active:s,children:d}=e,{getPrefixCls:c}=t.useContext(a.ConfigContext),m=c("skeleton",o),[g,u,b]=p(m),h=(0,r.default)(m,`${m}-element`,{[`${m}-active`]:s},u,l,n,b);return g(t.createElement("div",{className:h},t.createElement("div",{className:(0,r.default)(`${m}-image`,l),style:i},d)))},e.s(["default",0,w],185793)},959013,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"};var o=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(o.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["default",0,l],959013)},269200,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("Table"),l=r.default.forwardRef((e,l)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement("div",{className:(0,a.tremorTwMerge)(o("root"),"overflow-auto",i)},r.default.createElement("table",Object.assign({ref:l,className:(0,a.tremorTwMerge)(o("table"),"w-full text-tremor-default","text-tremor-content","dark:text-dark-tremor-content")},s),n))});l.displayName="Table",e.s(["Table",0,l],269200)},942232,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableBody"),l=r.default.forwardRef((e,l)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tbody",Object.assign({ref:l,className:(0,a.tremorTwMerge)(o("root"),"align-top divide-y","divide-tremor-border","dark:divide-dark-tremor-border",i)},s),n))});l.displayName="TableBody",e.s(["TableBody",0,l],942232)},977572,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableCell"),l=r.default.forwardRef((e,l)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("td",Object.assign({ref:l,className:(0,a.tremorTwMerge)(o("root"),"align-middle whitespace-nowrap text-left p-4",i)},s),n))});l.displayName="TableCell",e.s(["TableCell",0,l],977572)},427612,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableHead"),l=r.default.forwardRef((e,l)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("thead",Object.assign({ref:l,className:(0,a.tremorTwMerge)(o("root"),"text-left","text-tremor-content","dark:text-dark-tremor-content",i)},s),n))});l.displayName="TableHead",e.s(["TableHead",0,l],427612)},64848,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableHeaderCell"),l=r.default.forwardRef((e,l)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("th",Object.assign({ref:l,className:(0,a.tremorTwMerge)(o("root"),"whitespace-nowrap text-left font-semibold top-0 px-4 py-3.5","text-tremor-content-strong","dark:text-dark-tremor-content-strong",i)},s),n))});l.displayName="TableHeaderCell",e.s(["TableHeaderCell",0,l],64848)},496020,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableRow"),l=r.default.forwardRef((e,l)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tr",Object.assign({ref:l,className:(0,a.tremorTwMerge)(o("row"),i)},s),n))});l.displayName="TableRow",e.s(["TableRow",0,l],496020)},68155,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"}))});e.s(["TrashIcon",0,r],68155)},360820,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"}))});e.s(["ChevronUpIcon",0,r],360820)},871943,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"}))});e.s(["ChevronDownIcon",0,r],871943)},278587,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"}))});e.s(["RefreshIcon",0,r],278587)},207670,e=>{"use strict";function t(){for(var e,t,r=0,a="",o=arguments.length;r{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z"}),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["PlayIcon",0,r],122577)},551332,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3"}))});e.s(["ClipboardCopyIcon",0,r],551332)},434626,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"}))});e.s(["ExternalLinkIcon",0,r],434626)},902555,e=>{"use strict";var t=e.i(843476),r=e.i(591935),a=e.i(122577),o=e.i(278587),l=e.i(68155),n=e.i(360820),i=e.i(871943),s=e.i(434626),d=e.i(551332),c=e.i(592968),m=e.i(115504),g=e.i(752978);function u({icon:e,onClick:r,className:a,disabled:o,dataTestId:l}){return o?(0,t.jsx)(g.Icon,{icon:e,size:"sm",className:"opacity-50 cursor-not-allowed","data-testid":l}):(0,t.jsx)(g.Icon,{icon:e,size:"sm",onClick:r,className:(0,m.cx)("cursor-pointer",a),"data-testid":l})}let b={Edit:{icon:r.PencilAltIcon,className:"hover:text-blue-600"},Delete:{icon:l.TrashIcon,className:"hover:text-red-600"},Test:{icon:a.PlayIcon,className:"hover:text-blue-600"},Regenerate:{icon:o.RefreshIcon,className:"hover:text-green-600"},Up:{icon:n.ChevronUpIcon,className:"hover:text-blue-600"},Down:{icon:i.ChevronDownIcon,className:"hover:text-blue-600"},Open:{icon:s.ExternalLinkIcon,className:"hover:text-green-600"},Copy:{icon:d.ClipboardCopyIcon,className:"hover:text-blue-600"}};e.s(["default",0,function({onClick:e,tooltipText:r,disabled:a=!1,disabledTooltipText:o,dataTestId:l,variant:n}){let{icon:i,className:s}=b[n];return(0,t.jsx)(c.Tooltip,{title:a?o:r,children:(0,t.jsx)("span",{children:(0,t.jsx)(u,{icon:i,onClick:e,className:s,disabled:a,dataTestId:l})})})}],902555)}]); \ No newline at end of file + `]:Object.assign({},{background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:c,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"})}}})((0,d.mergeToken)(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:r(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"}))},e=>{let{colorFillContent:t,colorFill:r}=e;return{color:t,colorGradientEnd:r,gradientFromColor:t,gradientToColor:r,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),C=e=>{let{prefixCls:a,className:o,style:l,rows:n=0}=e,i=Array.from({length:n}).map((r,a)=>t.createElement("li",{key:a,style:{width:((e,t)=>{let{width:r,rows:a=2}=t;return Array.isArray(r)?r[e]:a-1===e?r:void 0})(a,e)}}));return t.createElement("ul",{className:(0,r.default)(a,o),style:l},i)},k=({prefixCls:e,className:a,width:o,style:l})=>t.createElement("h3",{className:(0,r.default)(e,a),style:Object.assign({width:o},l)});function x(e){return e&&"object"==typeof e?e:{}}let w=e=>{let{prefixCls:o,loading:n,className:i,rootClassName:s,style:d,children:c,avatar:m=!1,title:g=!0,paragraph:u=!0,active:b,round:h}=e,{getPrefixCls:f,direction:w,className:v,style:N}=(0,a.useComponentConfig)("skeleton"),$=f("skeleton",o),[j,y,T]=p($);if(n||!("loading"in e)){let e,a,o=!!m,n=!!g,c=!!u;if(o){let r=Object.assign(Object.assign({prefixCls:`${$}-avatar`},n&&!c?{size:"large",shape:"square"}:{size:"large",shape:"circle"}),x(m));e=t.createElement("div",{className:`${$}-header`},t.createElement(l,Object.assign({},r)))}if(n||c){let e,r;if(n){let r=Object.assign(Object.assign({prefixCls:`${$}-title`},!o&&c?{width:"38%"}:o&&c?{width:"50%"}:{}),x(g));e=t.createElement(k,Object.assign({},r))}if(c){let e,a=Object.assign(Object.assign({prefixCls:`${$}-paragraph`},(e={},o&&n||(e.width="61%"),!o&&n?e.rows=3:e.rows=2,e)),x(u));r=t.createElement(C,Object.assign({},a))}a=t.createElement("div",{className:`${$}-content`},e,r)}let f=(0,r.default)($,{[`${$}-with-avatar`]:o,[`${$}-active`]:b,[`${$}-rtl`]:"rtl"===w,[`${$}-round`]:h},v,i,s,y,T);return j(t.createElement("div",{className:f,style:Object.assign(Object.assign({},N),d)},e,a))}return null!=c?c:null};w.Button=e=>{let{prefixCls:n,className:i,rootClassName:s,active:d,block:c=!1,size:m="default"}=e,{getPrefixCls:g}=t.useContext(a.ConfigContext),u=g("skeleton",n),[b,h,f]=p(u),C=(0,o.default)(e,["prefixCls"]),k=(0,r.default)(u,`${u}-element`,{[`${u}-active`]:d,[`${u}-block`]:c},i,s,h,f);return b(t.createElement("div",{className:k},t.createElement(l,Object.assign({prefixCls:`${u}-button`,size:m},C))))},w.Avatar=e=>{let{prefixCls:n,className:i,rootClassName:s,active:d,shape:c="circle",size:m="default"}=e,{getPrefixCls:g}=t.useContext(a.ConfigContext),u=g("skeleton",n),[b,h,f]=p(u),C=(0,o.default)(e,["prefixCls","className"]),k=(0,r.default)(u,`${u}-element`,{[`${u}-active`]:d},i,s,h,f);return b(t.createElement("div",{className:k},t.createElement(l,Object.assign({prefixCls:`${u}-avatar`,shape:c,size:m},C))))},w.Input=e=>{let{prefixCls:n,className:i,rootClassName:s,active:d,block:c,size:m="default"}=e,{getPrefixCls:g}=t.useContext(a.ConfigContext),u=g("skeleton",n),[b,h,f]=p(u),C=(0,o.default)(e,["prefixCls"]),k=(0,r.default)(u,`${u}-element`,{[`${u}-active`]:d,[`${u}-block`]:c},i,s,h,f);return b(t.createElement("div",{className:k},t.createElement(l,Object.assign({prefixCls:`${u}-input`,size:m},C))))},w.Image=e=>{let{prefixCls:o,className:l,rootClassName:n,style:i,active:s}=e,{getPrefixCls:d}=t.useContext(a.ConfigContext),c=d("skeleton",o),[m,g,u]=p(c),b=(0,r.default)(c,`${c}-element`,{[`${c}-active`]:s},l,n,g,u);return m(t.createElement("div",{className:b},t.createElement("div",{className:(0,r.default)(`${c}-image`,l),style:i},t.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${c}-image-svg`},t.createElement("title",null,"Image placeholder"),t.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:`${c}-image-path`})))))},w.Node=e=>{let{prefixCls:o,className:l,rootClassName:n,style:i,active:s,children:d}=e,{getPrefixCls:c}=t.useContext(a.ConfigContext),m=c("skeleton",o),[g,u,b]=p(m),h=(0,r.default)(m,`${m}-element`,{[`${m}-active`]:s},u,l,n,b);return g(t.createElement("div",{className:h},t.createElement("div",{className:(0,r.default)(`${m}-image`,l),style:i},d)))},e.s(["default",0,w],185793)},959013,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"};var o=e.i(9583),l=r.forwardRef(function(e,l){return r.createElement(o.default,(0,t.default)({},e,{ref:l,icon:a}))});e.s(["default",0,l],959013)},269200,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("Table"),l=r.default.forwardRef((e,l)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement("div",{className:(0,a.tremorTwMerge)(o("root"),"overflow-auto",i)},r.default.createElement("table",Object.assign({ref:l,className:(0,a.tremorTwMerge)(o("table"),"w-full text-tremor-default","text-tremor-content","dark:text-dark-tremor-content")},s),n))});l.displayName="Table",e.s(["Table",0,l],269200)},942232,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableBody"),l=r.default.forwardRef((e,l)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tbody",Object.assign({ref:l,className:(0,a.tremorTwMerge)(o("root"),"align-top divide-y","divide-tremor-border","dark:divide-dark-tremor-border",i)},s),n))});l.displayName="TableBody",e.s(["TableBody",0,l],942232)},977572,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableCell"),l=r.default.forwardRef((e,l)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("td",Object.assign({ref:l,className:(0,a.tremorTwMerge)(o("root"),"align-middle whitespace-nowrap text-left p-4",i)},s),n))});l.displayName="TableCell",e.s(["TableCell",0,l],977572)},427612,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableHead"),l=r.default.forwardRef((e,l)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("thead",Object.assign({ref:l,className:(0,a.tremorTwMerge)(o("root"),"text-left","text-tremor-content","dark:text-dark-tremor-content",i)},s),n))});l.displayName="TableHead",e.s(["TableHead",0,l],427612)},64848,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableHeaderCell"),l=r.default.forwardRef((e,l)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("th",Object.assign({ref:l,className:(0,a.tremorTwMerge)(o("root"),"whitespace-nowrap text-left font-semibold top-0 px-4 py-3.5","text-tremor-content-strong","dark:text-dark-tremor-content-strong",i)},s),n))});l.displayName="TableHeaderCell",e.s(["TableHeaderCell",0,l],64848)},496020,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableRow"),l=r.default.forwardRef((e,l)=>{let{children:n,className:i}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tr",Object.assign({ref:l,className:(0,a.tremorTwMerge)(o("row"),i)},s),n))});l.displayName="TableRow",e.s(["TableRow",0,l],496020)},68155,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"}))});e.s(["TrashIcon",0,r],68155)},360820,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"}))});e.s(["ChevronUpIcon",0,r],360820)},871943,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"}))});e.s(["ChevronDownIcon",0,r],871943)},278587,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"}))});e.s(["RefreshIcon",0,r],278587)},207670,e=>{"use strict";function t(){for(var e,t,r=0,a="",o=arguments.length;r{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z"}),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["PlayIcon",0,r],122577)},434626,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"}))});e.s(["ExternalLinkIcon",0,r],434626)},551332,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3"}))});e.s(["ClipboardCopyIcon",0,r],551332)},902555,e=>{"use strict";var t=e.i(843476),r=e.i(591935),a=e.i(122577),o=e.i(278587),l=e.i(68155),n=e.i(360820),i=e.i(871943),s=e.i(434626),d=e.i(551332),c=e.i(592968),m=e.i(115504),g=e.i(752978);function u({icon:e,onClick:r,className:a,disabled:o,dataTestId:l}){return o?(0,t.jsx)(g.Icon,{icon:e,size:"sm",className:"opacity-50 cursor-not-allowed","data-testid":l}):(0,t.jsx)(g.Icon,{icon:e,size:"sm",onClick:r,className:(0,m.cx)("cursor-pointer",a),"data-testid":l})}let b={Edit:{icon:r.PencilAltIcon,className:"hover:text-blue-600"},Delete:{icon:l.TrashIcon,className:"hover:text-red-600"},Test:{icon:a.PlayIcon,className:"hover:text-blue-600"},Regenerate:{icon:o.RefreshIcon,className:"hover:text-green-600"},Up:{icon:n.ChevronUpIcon,className:"hover:text-blue-600"},Down:{icon:i.ChevronDownIcon,className:"hover:text-blue-600"},Open:{icon:s.ExternalLinkIcon,className:"hover:text-green-600"},Copy:{icon:d.ClipboardCopyIcon,className:"hover:text-blue-600"}};e.s(["default",0,function({onClick:e,tooltipText:r,disabled:a=!1,disabledTooltipText:o,dataTestId:l,variant:n}){let{icon:i,className:s}=b[n];return(0,t.jsx)(c.Tooltip,{title:a?o:r,children:(0,t.jsx)("span",{children:(0,t.jsx)(u,{icon:i,onClick:e,className:s,disabled:a,dataTestId:l})})})}],902555)}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0q2o6z5qtf12d.js b/litellm/proxy/_experimental/out/_next/static/chunks/0i._fjbrwi_m_.js similarity index 56% rename from litellm/proxy/_experimental/out/_next/static/chunks/0q2o6z5qtf12d.js rename to litellm/proxy/_experimental/out/_next/static/chunks/0i._fjbrwi_m_.js index 846c94f2e74..8c7adbc6e91 100644 --- a/litellm/proxy/_experimental/out/_next/static/chunks/0q2o6z5qtf12d.js +++ b/litellm/proxy/_experimental/out/_next/static/chunks/0i._fjbrwi_m_.js @@ -5,10 +5,10 @@ ${n}, ${i}, ${l} - `]:Object.assign({},{background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:c,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"})}}})((0,d.mergeToken)(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:r(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"}))},e=>{let{colorFillContent:t,colorFill:r}=e;return{color:t,colorGradientEnd:r,gradientFromColor:t,gradientToColor:r,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),v=e=>{let{prefixCls:a,className:o,style:n,rows:i=0}=e,l=Array.from({length:i}).map((r,a)=>t.createElement("li",{key:a,style:{width:((e,t)=>{let{width:r,rows:a=2}=t;return Array.isArray(r)?r[e]:a-1===e?r:void 0})(a,e)}}));return t.createElement("ul",{className:(0,r.default)(a,o),style:n},l)},C=({prefixCls:e,className:a,width:o,style:n})=>t.createElement("h3",{className:(0,r.default)(e,a),style:Object.assign({width:o},n)});function x(e){return e&&"object"==typeof e?e:{}}let k=e=>{let{prefixCls:o,loading:i,className:l,rootClassName:s,style:d,children:c,avatar:u=!1,title:m=!0,paragraph:g=!0,active:p,round:f}=e,{getPrefixCls:b,direction:k,className:w,style:y}=(0,a.useComponentConfig)("skeleton"),$=b("skeleton",o),[O,E,S]=h($);if(i||!("loading"in e)){let e,a,o=!!u,i=!!m,c=!!g;if(o){let r=Object.assign(Object.assign({prefixCls:`${$}-avatar`},i&&!c?{size:"large",shape:"square"}:{size:"large",shape:"circle"}),x(u));e=t.createElement("div",{className:`${$}-header`},t.createElement(n,Object.assign({},r)))}if(i||c){let e,r;if(i){let r=Object.assign(Object.assign({prefixCls:`${$}-title`},!o&&c?{width:"38%"}:o&&c?{width:"50%"}:{}),x(m));e=t.createElement(C,Object.assign({},r))}if(c){let e,a=Object.assign(Object.assign({prefixCls:`${$}-paragraph`},(e={},o&&i||(e.width="61%"),!o&&i?e.rows=3:e.rows=2,e)),x(g));r=t.createElement(v,Object.assign({},a))}a=t.createElement("div",{className:`${$}-content`},e,r)}let b=(0,r.default)($,{[`${$}-with-avatar`]:o,[`${$}-active`]:p,[`${$}-rtl`]:"rtl"===k,[`${$}-round`]:f},w,l,s,E,S);return O(t.createElement("div",{className:b,style:Object.assign(Object.assign({},y),d)},e,a))}return null!=c?c:null};k.Button=e=>{let{prefixCls:i,className:l,rootClassName:s,active:d,block:c=!1,size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",i),[p,f,b]=h(g),v=(0,o.default)(e,["prefixCls"]),C=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},l,s,f,b);return p(t.createElement("div",{className:C},t.createElement(n,Object.assign({prefixCls:`${g}-button`,size:u},v))))},k.Avatar=e=>{let{prefixCls:i,className:l,rootClassName:s,active:d,shape:c="circle",size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",i),[p,f,b]=h(g),v=(0,o.default)(e,["prefixCls","className"]),C=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d},l,s,f,b);return p(t.createElement("div",{className:C},t.createElement(n,Object.assign({prefixCls:`${g}-avatar`,shape:c,size:u},v))))},k.Input=e=>{let{prefixCls:i,className:l,rootClassName:s,active:d,block:c,size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",i),[p,f,b]=h(g),v=(0,o.default)(e,["prefixCls"]),C=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},l,s,f,b);return p(t.createElement("div",{className:C},t.createElement(n,Object.assign({prefixCls:`${g}-input`,size:u},v))))},k.Image=e=>{let{prefixCls:o,className:n,rootClassName:i,style:l,active:s}=e,{getPrefixCls:d}=t.useContext(a.ConfigContext),c=d("skeleton",o),[u,m,g]=h(c),p=(0,r.default)(c,`${c}-element`,{[`${c}-active`]:s},n,i,m,g);return u(t.createElement("div",{className:p},t.createElement("div",{className:(0,r.default)(`${c}-image`,n),style:l},t.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${c}-image-svg`},t.createElement("title",null,"Image placeholder"),t.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:`${c}-image-path`})))))},k.Node=e=>{let{prefixCls:o,className:n,rootClassName:i,style:l,active:s,children:d}=e,{getPrefixCls:c}=t.useContext(a.ConfigContext),u=c("skeleton",o),[m,g,p]=h(u),f=(0,r.default)(u,`${u}-element`,{[`${u}-active`]:s},g,n,i,p);return m(t.createElement("div",{className:f},t.createElement("div",{className:(0,r.default)(`${u}-image`,n),style:l},d)))},e.s(["default",0,k],185793)},959013,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"};var o=e.i(9583),n=r.forwardRef(function(e,n){return r.createElement(o.default,(0,t.default)({},e,{ref:n,icon:a}))});e.s(["default",0,n],959013)},269200,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("Table"),n=r.default.forwardRef((e,n)=>{let{children:i,className:l}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement("div",{className:(0,a.tremorTwMerge)(o("root"),"overflow-auto",l)},r.default.createElement("table",Object.assign({ref:n,className:(0,a.tremorTwMerge)(o("table"),"w-full text-tremor-default","text-tremor-content","dark:text-dark-tremor-content")},s),i))});n.displayName="Table",e.s(["Table",0,n],269200)},942232,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableBody"),n=r.default.forwardRef((e,n)=>{let{children:i,className:l}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tbody",Object.assign({ref:n,className:(0,a.tremorTwMerge)(o("root"),"align-top divide-y","divide-tremor-border","dark:divide-dark-tremor-border",l)},s),i))});n.displayName="TableBody",e.s(["TableBody",0,n],942232)},977572,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableCell"),n=r.default.forwardRef((e,n)=>{let{children:i,className:l}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("td",Object.assign({ref:n,className:(0,a.tremorTwMerge)(o("root"),"align-middle whitespace-nowrap text-left p-4",l)},s),i))});n.displayName="TableCell",e.s(["TableCell",0,n],977572)},427612,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableHead"),n=r.default.forwardRef((e,n)=>{let{children:i,className:l}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("thead",Object.assign({ref:n,className:(0,a.tremorTwMerge)(o("root"),"text-left","text-tremor-content","dark:text-dark-tremor-content",l)},s),i))});n.displayName="TableHead",e.s(["TableHead",0,n],427612)},64848,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableHeaderCell"),n=r.default.forwardRef((e,n)=>{let{children:i,className:l}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("th",Object.assign({ref:n,className:(0,a.tremorTwMerge)(o("root"),"whitespace-nowrap text-left font-semibold top-0 px-4 py-3.5","text-tremor-content-strong","dark:text-dark-tremor-content-strong",l)},s),i))});n.displayName="TableHeaderCell",e.s(["TableHeaderCell",0,n],64848)},496020,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableRow"),n=r.default.forwardRef((e,n)=>{let{children:i,className:l}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tr",Object.assign({ref:n,className:(0,a.tremorTwMerge)(o("row"),l)},s),i))});n.displayName="TableRow",e.s(["TableRow",0,n],496020)},68155,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"}))});e.s(["TrashIcon",0,r],68155)},360820,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"}))});e.s(["ChevronUpIcon",0,r],360820)},871943,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"}))});e.s(["ChevronDownIcon",0,r],871943)},728889,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(829087),o=e.i(480731),n=e.i(444755),i=e.i(673706),l=e.i(95779);let s={xs:{paddingX:"px-1.5",paddingY:"py-1.5"},sm:{paddingX:"px-1.5",paddingY:"py-1.5"},md:{paddingX:"px-2",paddingY:"py-2"},lg:{paddingX:"px-2",paddingY:"py-2"},xl:{paddingX:"px-2.5",paddingY:"py-2.5"}},d={xs:{height:"h-3",width:"w-3"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-7",width:"w-7"},xl:{height:"h-9",width:"w-9"}},c={simple:{rounded:"",border:"",ring:"",shadow:""},light:{rounded:"rounded-tremor-default",border:"",ring:"",shadow:""},shadow:{rounded:"rounded-tremor-default",border:"border",ring:"",shadow:"shadow-tremor-card dark:shadow-dark-tremor-card"},solid:{rounded:"rounded-tremor-default",border:"border-2",ring:"ring-1",shadow:""},outlined:{rounded:"rounded-tremor-default",border:"border",ring:"ring-2",shadow:""}},u=(0,i.makeClassName)("Icon"),m=r.default.forwardRef((e,m)=>{let{icon:g,variant:p="simple",tooltip:f,size:b=o.Sizes.SM,color:h,className:v}=e,C=(0,t.__rest)(e,["icon","variant","tooltip","size","color","className"]),x=((e,t)=>{switch(e){case"simple":return{textColor:t?(0,i.getColorClassNames)(t,l.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:"",borderColor:"",ringColor:""};case"light":return{textColor:t?(0,i.getColorClassNames)(t,l.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,n.tremorTwMerge)((0,i.getColorClassNames)(t,l.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand-muted dark:bg-dark-tremor-brand-muted",borderColor:"",ringColor:""};case"shadow":return{textColor:t?(0,i.getColorClassNames)(t,l.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,n.tremorTwMerge)((0,i.getColorClassNames)(t,l.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:"border-tremor-border dark:border-dark-tremor-border",ringColor:""};case"solid":return{textColor:t?(0,i.getColorClassNames)(t,l.colorPalette.text).textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,n.tremorTwMerge)((0,i.getColorClassNames)(t,l.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand dark:bg-dark-tremor-brand",borderColor:"border-tremor-brand-inverted dark:border-dark-tremor-brand-inverted",ringColor:"ring-tremor-ring dark:ring-dark-tremor-ring"};case"outlined":return{textColor:t?(0,i.getColorClassNames)(t,l.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,n.tremorTwMerge)((0,i.getColorClassNames)(t,l.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:t?(0,i.getColorClassNames)(t,l.colorPalette.ring).borderColor:"border-tremor-brand-subtle dark:border-dark-tremor-brand-subtle",ringColor:t?(0,n.tremorTwMerge)((0,i.getColorClassNames)(t,l.colorPalette.ring).ringColor,"ring-opacity-40"):"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"}}})(p,h),{tooltipProps:k,getReferenceProps:w}=(0,a.useTooltip)();return r.default.createElement("span",Object.assign({ref:(0,i.mergeRefs)([m,k.refs.setReference]),className:(0,n.tremorTwMerge)(u("root"),"inline-flex shrink-0 items-center justify-center",x.bgColor,x.textColor,x.borderColor,x.ringColor,c[p].rounded,c[p].border,c[p].shadow,c[p].ring,s[b].paddingX,s[b].paddingY,v)},w,C),r.default.createElement(a.default,Object.assign({text:f},k)),r.default.createElement(g,{className:(0,n.tremorTwMerge)(u("icon"),"shrink-0",d[b].height,d[b].width)}))});m.displayName="Icon",e.s(["default",0,m],728889)},752978,e=>{"use strict";var t=e.i(728889);e.s(["Icon",()=>t.default])},21548,e=>{"use strict";var t=e.i(616303);e.s(["Empty",()=>t.default])},530212,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 19l-7-7m0 0l7-7m-7 7h18"}))});e.s(["ArrowLeftIcon",0,r],530212)},244451,e=>{"use strict";let t;e.i(247167);var r=e.i(271645),a=e.i(343794),o=e.i(242064),n=e.i(763731),i=e.i(174428);let l=80*Math.PI,s=e=>{let{dotClassName:t,style:o,hasCircleCls:n}=e;return r.createElement("circle",{className:(0,a.default)(`${t}-circle`,{[`${t}-circle-bg`]:n}),r:40,cx:50,cy:50,strokeWidth:20,style:o})},d=({percent:e,prefixCls:t})=>{let o=`${t}-dot`,n=`${o}-holder`,d=`${n}-hidden`,[c,u]=r.useState(!1);(0,i.default)(()=>{0!==e&&u(!0)},[0!==e]);let m=Math.max(Math.min(e,100),0);if(!c)return null;let g={strokeDashoffset:`${l/4}`,strokeDasharray:`${l*m/100} ${l*(100-m)/100}`};return r.createElement("span",{className:(0,a.default)(n,`${o}-progress`,m<=0&&d)},r.createElement("svg",{viewBox:"0 0 100 100",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":m},r.createElement(s,{dotClassName:o,hasCircleCls:!0}),r.createElement(s,{dotClassName:o,style:g})))};function c(e){let{prefixCls:t,percent:o=0}=e,n=`${t}-dot`,i=`${n}-holder`,l=`${i}-hidden`;return r.createElement(r.Fragment,null,r.createElement("span",{className:(0,a.default)(i,o>0&&l)},r.createElement("span",{className:(0,a.default)(n,`${t}-dot-spin`)},[1,2,3,4].map(e=>r.createElement("i",{className:`${t}-dot-item`,key:e})))),r.createElement(d,{prefixCls:t,percent:o}))}function u(e){var t;let{prefixCls:o,indicator:i,percent:l}=e,s=`${o}-dot`;return i&&r.isValidElement(i)?(0,n.cloneElement)(i,{className:(0,a.default)(null==(t=i.props)?void 0:t.className,s),percent:l}):r.createElement(c,{prefixCls:o,percent:l})}e.i(296059);var m=e.i(694758),g=e.i(183293),p=e.i(246422),f=e.i(838378);let b=new m.Keyframes("antSpinMove",{to:{opacity:1}}),h=new m.Keyframes("antRotate",{to:{transform:"rotate(405deg)"}}),v=(0,p.genStyleHooks)("Spin",e=>(e=>{let{componentCls:t,calc:r}=e;return{[t]:Object.assign(Object.assign({},(0,g.resetComponent)(e)),{position:"absolute",display:"none",color:e.colorPrimary,fontSize:0,textAlign:"center",verticalAlign:"middle",opacity:0,transition:`transform ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`,"&-spinning":{position:"relative",display:"inline-block",opacity:1},[`${t}-text`]:{fontSize:e.fontSize,paddingTop:r(r(e.dotSize).sub(e.fontSize)).div(2).add(2).equal()},"&-fullscreen":{position:"fixed",width:"100vw",height:"100vh",backgroundColor:e.colorBgMask,zIndex:e.zIndexPopupBase,inset:0,display:"flex",alignItems:"center",flexDirection:"column",justifyContent:"center",opacity:0,visibility:"hidden",transition:`all ${e.motionDurationMid}`,"&-show":{opacity:1,visibility:"visible"},[t]:{[`${t}-dot-holder`]:{color:e.colorWhite},[`${t}-text`]:{color:e.colorTextLightSolid}}},"&-nested-loading":{position:"relative",[`> div > ${t}`]:{position:"absolute",top:0,insetInlineStart:0,zIndex:4,display:"block",width:"100%",height:"100%",maxHeight:e.contentHeight,[`${t}-dot`]:{position:"absolute",top:"50%",insetInlineStart:"50%",margin:r(e.dotSize).mul(-1).div(2).equal()},[`${t}-text`]:{position:"absolute",top:"50%",width:"100%",textShadow:`0 1px 2px ${e.colorBgContainer}`},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSize).div(2).mul(-1).sub(10).equal()},"&-sm":{[`${t}-dot`]:{margin:r(e.dotSizeSM).mul(-1).div(2).equal()},[`${t}-text`]:{paddingTop:r(r(e.dotSizeSM).sub(e.fontSize)).div(2).add(2).equal()},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSizeSM).div(2).mul(-1).sub(10).equal()}},"&-lg":{[`${t}-dot`]:{margin:r(e.dotSizeLG).mul(-1).div(2).equal()},[`${t}-text`]:{paddingTop:r(r(e.dotSizeLG).sub(e.fontSize)).div(2).add(2).equal()},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSizeLG).div(2).mul(-1).sub(10).equal()}}},[`${t}-container`]:{position:"relative",transition:`opacity ${e.motionDurationSlow}`,"&::after":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:10,width:"100%",height:"100%",background:e.colorBgContainer,opacity:0,transition:`all ${e.motionDurationSlow}`,content:'""',pointerEvents:"none"}},[`${t}-blur`]:{clear:"both",opacity:.5,userSelect:"none",pointerEvents:"none","&::after":{opacity:.4,pointerEvents:"auto"}}},"&-tip":{color:e.spinDotDefault},[`${t}-dot-holder`]:{width:"1em",height:"1em",fontSize:e.dotSize,display:"inline-block",transition:`transform ${e.motionDurationSlow} ease, opacity ${e.motionDurationSlow} ease`,transformOrigin:"50% 50%",lineHeight:1,color:e.colorPrimary,"&-hidden":{transform:"scale(0.3)",opacity:0}},[`${t}-dot-progress`]:{position:"absolute",inset:0},[`${t}-dot`]:{position:"relative",display:"inline-block",fontSize:e.dotSize,width:"1em",height:"1em","&-item":{position:"absolute",display:"block",width:r(e.dotSize).sub(r(e.marginXXS).div(2)).div(2).equal(),height:r(e.dotSize).sub(r(e.marginXXS).div(2)).div(2).equal(),background:"currentColor",borderRadius:"100%",transform:"scale(0.75)",transformOrigin:"50% 50%",opacity:.3,animationName:b,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear",animationDirection:"alternate","&:nth-child(1)":{top:0,insetInlineStart:0,animationDelay:"0s"},"&:nth-child(2)":{top:0,insetInlineEnd:0,animationDelay:"0.4s"},"&:nth-child(3)":{insetInlineEnd:0,bottom:0,animationDelay:"0.8s"},"&:nth-child(4)":{bottom:0,insetInlineStart:0,animationDelay:"1.2s"}},"&-spin":{transform:"rotate(45deg)",animationName:h,animationDuration:"1.2s",animationIterationCount:"infinite",animationTimingFunction:"linear"},"&-circle":{strokeLinecap:"round",transition:["stroke-dashoffset","stroke-dasharray","stroke","stroke-width","opacity"].map(t=>`${t} ${e.motionDurationSlow} ease`).join(","),fillOpacity:0,stroke:"currentcolor"},"&-circle-bg":{stroke:e.colorFillSecondary}},[`&-sm ${t}-dot`]:{"&, &-holder":{fontSize:e.dotSizeSM}},[`&-sm ${t}-dot-holder`]:{i:{width:r(r(e.dotSizeSM).sub(r(e.marginXXS).div(2))).div(2).equal(),height:r(r(e.dotSizeSM).sub(r(e.marginXXS).div(2))).div(2).equal()}},[`&-lg ${t}-dot`]:{"&, &-holder":{fontSize:e.dotSizeLG}},[`&-lg ${t}-dot-holder`]:{i:{width:r(r(e.dotSizeLG).sub(e.marginXXS)).div(2).equal(),height:r(r(e.dotSizeLG).sub(e.marginXXS)).div(2).equal()}},[`&${t}-show-text ${t}-text`]:{display:"block"}})}})((0,f.mergeToken)(e,{spinDotDefault:e.colorTextDescription})),e=>{let{controlHeightLG:t,controlHeight:r}=e;return{contentHeight:400,dotSize:t/2,dotSizeSM:.35*t,dotSizeLG:r}}),C=[[30,.05],[70,.03],[96,.01]];var x=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,a=Object.getOwnPropertySymbols(e);ot.indexOf(a[o])&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(r[a[o]]=e[a[o]]);return r};let k=e=>{var n;let{prefixCls:i,spinning:l=!0,delay:s=0,className:d,rootClassName:c,size:m="default",tip:g,wrapperClassName:p,style:f,children:b,fullscreen:h=!1,indicator:k,percent:w}=e,y=x(e,["prefixCls","spinning","delay","className","rootClassName","size","tip","wrapperClassName","style","children","fullscreen","indicator","percent"]),{getPrefixCls:$,direction:O,className:E,style:S,indicator:N}=(0,o.useComponentConfig)("spin"),j=$("spin",i),[M,T,z]=v(j),[P,R]=r.useState(()=>l&&(!l||!s||!!Number.isNaN(Number(s)))),B=function(e,t){let[a,o]=r.useState(0),n=r.useRef(null),i="auto"===t;return r.useEffect(()=>(i&&e&&(o(0),n.current=setInterval(()=>{o(e=>{let t=100-e;for(let r=0;r{n.current&&(clearInterval(n.current),n.current=null)}),[i,e]),i?a:t}(P,w);r.useEffect(()=>{if(l){let e=function(e,t,r){var a,o=r||{},n=o.noTrailing,i=void 0!==n&&n,l=o.noLeading,s=void 0!==l&&l,d=o.debounceMode,c=void 0===d?void 0:d,u=!1,m=0;function g(){a&&clearTimeout(a)}function p(){for(var r=arguments.length,o=Array(r),n=0;ne?s?(m=Date.now(),i||(a=setTimeout(c?f:p,e))):p():!0!==i&&(a=setTimeout(c?f:p,void 0===c?e-d:e)))}return p.cancel=function(e){var t=(e||{}).upcomingOnly;g(),u=!(void 0!==t&&t)},p}(s,()=>{R(!0)},{debounceMode:false});return e(),()=>{var t;null==(t=null==e?void 0:e.cancel)||t.call(e)}}R(!1)},[s,l]);let I=r.useMemo(()=>void 0!==b&&!h,[b,h]),L=(0,a.default)(j,E,{[`${j}-sm`]:"small"===m,[`${j}-lg`]:"large"===m,[`${j}-spinning`]:P,[`${j}-show-text`]:!!g,[`${j}-rtl`]:"rtl"===O},d,!h&&c,T,z),q=(0,a.default)(`${j}-container`,{[`${j}-blur`]:P}),D=null!=(n=null!=k?k:N)?n:t,H=Object.assign(Object.assign({},S),f),X=r.createElement("div",Object.assign({},y,{style:H,className:L,"aria-live":"polite","aria-busy":P}),r.createElement(u,{prefixCls:j,indicator:D,percent:B}),g&&(I||h)?r.createElement("div",{className:`${j}-text`},g):null);return M(I?r.createElement("div",Object.assign({},y,{className:(0,a.default)(`${j}-nested-loading`,p,T,z)}),P&&r.createElement("div",{key:"loading"},X),r.createElement("div",{className:q,key:"container"},b)):h?r.createElement("div",{className:(0,a.default)(`${j}-fullscreen`,{[`${j}-fullscreen-show`]:P},c,T,z)},X):X)};k.setDefaultIndicator=e=>{t=e},e.s(["default",0,k],244451)},482725,e=>{"use strict";var t=e.i(244451);e.s(["Spin",()=>t.default])},91874,e=>{"use strict";var t=e.i(931067),r=e.i(209428),a=e.i(211577),o=e.i(392221),n=e.i(703923),i=e.i(343794),l=e.i(914949),s=e.i(271645),d=["prefixCls","className","style","checked","disabled","defaultChecked","type","title","onChange"],c=(0,s.forwardRef)(function(e,c){var u=e.prefixCls,m=void 0===u?"rc-checkbox":u,g=e.className,p=e.style,f=e.checked,b=e.disabled,h=e.defaultChecked,v=e.type,C=void 0===v?"checkbox":v,x=e.title,k=e.onChange,w=(0,n.default)(e,d),y=(0,s.useRef)(null),$=(0,s.useRef)(null),O=(0,l.default)(void 0!==h&&h,{value:f}),E=(0,o.default)(O,2),S=E[0],N=E[1];(0,s.useImperativeHandle)(c,function(){return{focus:function(e){var t;null==(t=y.current)||t.focus(e)},blur:function(){var e;null==(e=y.current)||e.blur()},input:y.current,nativeElement:$.current}});var j=(0,i.default)(m,g,(0,a.default)((0,a.default)({},"".concat(m,"-checked"),S),"".concat(m,"-disabled"),b));return s.createElement("span",{className:j,title:x,style:p,ref:$},s.createElement("input",(0,t.default)({},w,{className:"".concat(m,"-input"),ref:y,onChange:function(t){b||("checked"in e||N(t.target.checked),null==k||k({target:(0,r.default)((0,r.default)({},e),{},{type:C,checked:t.target.checked}),stopPropagation:function(){t.stopPropagation()},preventDefault:function(){t.preventDefault()},nativeEvent:t.nativeEvent}))},disabled:b,checked:!!S,type:C})),s.createElement("span",{className:"".concat(m,"-inner")}))});e.s(["default",0,c])},681216,e=>{"use strict";var t=e.i(271645),r=e.i(963188);e.s(["default",0,function(e){let a=t.default.useRef(null),o=()=>{r.default.cancel(a.current),a.current=null};return[()=>{o(),a.current=(0,r.default)(()=>{a.current=null})},t=>{a.current&&(t.stopPropagation(),o()),null==e||e(t)}]}])},421512,236836,e=>{"use strict";let t=e.i(271645).default.createContext(null);e.s(["default",0,t],421512),e.i(296059);var r=e.i(915654),a=e.i(183293),o=e.i(246422),n=e.i(838378);function i(e,t){return(e=>{let{checkboxCls:t}=e,o=`${t}-wrapper`;return[{[`${t}-group`]:Object.assign(Object.assign({},(0,a.resetComponent)(e)),{display:"inline-flex",flexWrap:"wrap",columnGap:e.marginXS,[`> ${e.antCls}-row`]:{flex:1}}),[o]:Object.assign(Object.assign({},(0,a.resetComponent)(e)),{display:"inline-flex",alignItems:"baseline",cursor:"pointer","&:after":{display:"inline-block",width:0,overflow:"hidden",content:"'\\a0'"},[`& + ${o}`]:{marginInlineStart:0},[`&${o}-in-form-item`]:{'input[type="checkbox"]':{width:14,height:14}}}),[t]:Object.assign(Object.assign({},(0,a.resetComponent)(e)),{position:"relative",whiteSpace:"nowrap",lineHeight:1,cursor:"pointer",borderRadius:e.borderRadiusSM,alignSelf:"center",[`${t}-input`]:{position:"absolute",inset:0,zIndex:1,cursor:"pointer",opacity:0,margin:0,[`&:focus-visible + ${t}-inner`]:(0,a.genFocusOutline)(e)},[`${t}-inner`]:{boxSizing:"border-box",display:"block",width:e.checkboxSize,height:e.checkboxSize,direction:"ltr",backgroundColor:e.colorBgContainer,border:`${(0,r.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadiusSM,borderCollapse:"separate",transition:`all ${e.motionDurationSlow}`,"&:after":{boxSizing:"border-box",position:"absolute",top:"50%",insetInlineStart:"25%",display:"table",width:e.calc(e.checkboxSize).div(14).mul(5).equal(),height:e.calc(e.checkboxSize).div(14).mul(8).equal(),border:`${(0,r.unit)(e.lineWidthBold)} solid ${e.colorWhite}`,borderTop:0,borderInlineStart:0,transform:"rotate(45deg) scale(0) translate(-50%,-50%)",opacity:0,content:'""',transition:`all ${e.motionDurationFast} ${e.motionEaseInBack}, opacity ${e.motionDurationFast}`}},"& + span":{paddingInlineStart:e.paddingXS,paddingInlineEnd:e.paddingXS}})},{[` + `]:Object.assign({},{background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:c,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"})}}})((0,d.mergeToken)(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:r(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"}))},e=>{let{colorFillContent:t,colorFill:r}=e;return{color:t,colorGradientEnd:r,gradientFromColor:t,gradientToColor:r,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),v=e=>{let{prefixCls:a,className:o,style:n,rows:i=0}=e,l=Array.from({length:i}).map((r,a)=>t.createElement("li",{key:a,style:{width:((e,t)=>{let{width:r,rows:a=2}=t;return Array.isArray(r)?r[e]:a-1===e?r:void 0})(a,e)}}));return t.createElement("ul",{className:(0,r.default)(a,o),style:n},l)},C=({prefixCls:e,className:a,width:o,style:n})=>t.createElement("h3",{className:(0,r.default)(e,a),style:Object.assign({width:o},n)});function x(e){return e&&"object"==typeof e?e:{}}let k=e=>{let{prefixCls:o,loading:i,className:l,rootClassName:s,style:d,children:c,avatar:u=!1,title:m=!0,paragraph:g=!0,active:p,round:f}=e,{getPrefixCls:b,direction:k,className:w,style:y}=(0,a.useComponentConfig)("skeleton"),$=b("skeleton",o),[O,E,S]=h($);if(i||!("loading"in e)){let e,a,o=!!u,i=!!m,c=!!g;if(o){let r=Object.assign(Object.assign({prefixCls:`${$}-avatar`},i&&!c?{size:"large",shape:"square"}:{size:"large",shape:"circle"}),x(u));e=t.createElement("div",{className:`${$}-header`},t.createElement(n,Object.assign({},r)))}if(i||c){let e,r;if(i){let r=Object.assign(Object.assign({prefixCls:`${$}-title`},!o&&c?{width:"38%"}:o&&c?{width:"50%"}:{}),x(m));e=t.createElement(C,Object.assign({},r))}if(c){let e,a=Object.assign(Object.assign({prefixCls:`${$}-paragraph`},(e={},o&&i||(e.width="61%"),!o&&i?e.rows=3:e.rows=2,e)),x(g));r=t.createElement(v,Object.assign({},a))}a=t.createElement("div",{className:`${$}-content`},e,r)}let b=(0,r.default)($,{[`${$}-with-avatar`]:o,[`${$}-active`]:p,[`${$}-rtl`]:"rtl"===k,[`${$}-round`]:f},w,l,s,E,S);return O(t.createElement("div",{className:b,style:Object.assign(Object.assign({},y),d)},e,a))}return null!=c?c:null};k.Button=e=>{let{prefixCls:i,className:l,rootClassName:s,active:d,block:c=!1,size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",i),[p,f,b]=h(g),v=(0,o.default)(e,["prefixCls"]),C=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},l,s,f,b);return p(t.createElement("div",{className:C},t.createElement(n,Object.assign({prefixCls:`${g}-button`,size:u},v))))},k.Avatar=e=>{let{prefixCls:i,className:l,rootClassName:s,active:d,shape:c="circle",size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",i),[p,f,b]=h(g),v=(0,o.default)(e,["prefixCls","className"]),C=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d},l,s,f,b);return p(t.createElement("div",{className:C},t.createElement(n,Object.assign({prefixCls:`${g}-avatar`,shape:c,size:u},v))))},k.Input=e=>{let{prefixCls:i,className:l,rootClassName:s,active:d,block:c,size:u="default"}=e,{getPrefixCls:m}=t.useContext(a.ConfigContext),g=m("skeleton",i),[p,f,b]=h(g),v=(0,o.default)(e,["prefixCls"]),C=(0,r.default)(g,`${g}-element`,{[`${g}-active`]:d,[`${g}-block`]:c},l,s,f,b);return p(t.createElement("div",{className:C},t.createElement(n,Object.assign({prefixCls:`${g}-input`,size:u},v))))},k.Image=e=>{let{prefixCls:o,className:n,rootClassName:i,style:l,active:s}=e,{getPrefixCls:d}=t.useContext(a.ConfigContext),c=d("skeleton",o),[u,m,g]=h(c),p=(0,r.default)(c,`${c}-element`,{[`${c}-active`]:s},n,i,m,g);return u(t.createElement("div",{className:p},t.createElement("div",{className:(0,r.default)(`${c}-image`,n),style:l},t.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${c}-image-svg`},t.createElement("title",null,"Image placeholder"),t.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:`${c}-image-path`})))))},k.Node=e=>{let{prefixCls:o,className:n,rootClassName:i,style:l,active:s,children:d}=e,{getPrefixCls:c}=t.useContext(a.ConfigContext),u=c("skeleton",o),[m,g,p]=h(u),f=(0,r.default)(u,`${u}-element`,{[`${u}-active`]:s},g,n,i,p);return m(t.createElement("div",{className:f},t.createElement("div",{className:(0,r.default)(`${u}-image`,n),style:l},d)))},e.s(["default",0,k],185793)},959013,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"};var o=e.i(9583),n=r.forwardRef(function(e,n){return r.createElement(o.default,(0,t.default)({},e,{ref:n,icon:a}))});e.s(["default",0,n],959013)},269200,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("Table"),n=r.default.forwardRef((e,n)=>{let{children:i,className:l}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement("div",{className:(0,a.tremorTwMerge)(o("root"),"overflow-auto",l)},r.default.createElement("table",Object.assign({ref:n,className:(0,a.tremorTwMerge)(o("table"),"w-full text-tremor-default","text-tremor-content","dark:text-dark-tremor-content")},s),i))});n.displayName="Table",e.s(["Table",0,n],269200)},942232,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableBody"),n=r.default.forwardRef((e,n)=>{let{children:i,className:l}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tbody",Object.assign({ref:n,className:(0,a.tremorTwMerge)(o("root"),"align-top divide-y","divide-tremor-border","dark:divide-dark-tremor-border",l)},s),i))});n.displayName="TableBody",e.s(["TableBody",0,n],942232)},977572,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableCell"),n=r.default.forwardRef((e,n)=>{let{children:i,className:l}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("td",Object.assign({ref:n,className:(0,a.tremorTwMerge)(o("root"),"align-middle whitespace-nowrap text-left p-4",l)},s),i))});n.displayName="TableCell",e.s(["TableCell",0,n],977572)},427612,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableHead"),n=r.default.forwardRef((e,n)=>{let{children:i,className:l}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("thead",Object.assign({ref:n,className:(0,a.tremorTwMerge)(o("root"),"text-left","text-tremor-content","dark:text-dark-tremor-content",l)},s),i))});n.displayName="TableHead",e.s(["TableHead",0,n],427612)},64848,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableHeaderCell"),n=r.default.forwardRef((e,n)=>{let{children:i,className:l}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("th",Object.assign({ref:n,className:(0,a.tremorTwMerge)(o("root"),"whitespace-nowrap text-left font-semibold top-0 px-4 py-3.5","text-tremor-content-strong","dark:text-dark-tremor-content-strong",l)},s),i))});n.displayName="TableHeaderCell",e.s(["TableHeaderCell",0,n],64848)},496020,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(444755);let o=(0,e.i(673706).makeClassName)("TableRow"),n=r.default.forwardRef((e,n)=>{let{children:i,className:l}=e,s=(0,t.__rest)(e,["children","className"]);return r.default.createElement(r.default.Fragment,null,r.default.createElement("tr",Object.assign({ref:n,className:(0,a.tremorTwMerge)(o("row"),l)},s),i))});n.displayName="TableRow",e.s(["TableRow",0,n],496020)},68155,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"}))});e.s(["TrashIcon",0,r],68155)},360820,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"}))});e.s(["ChevronUpIcon",0,r],360820)},871943,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"}))});e.s(["ChevronDownIcon",0,r],871943)},728889,e=>{"use strict";var t=e.i(290571),r=e.i(271645),a=e.i(829087),o=e.i(480731),n=e.i(444755),i=e.i(673706),l=e.i(95779);let s={xs:{paddingX:"px-1.5",paddingY:"py-1.5"},sm:{paddingX:"px-1.5",paddingY:"py-1.5"},md:{paddingX:"px-2",paddingY:"py-2"},lg:{paddingX:"px-2",paddingY:"py-2"},xl:{paddingX:"px-2.5",paddingY:"py-2.5"}},d={xs:{height:"h-3",width:"w-3"},sm:{height:"h-5",width:"w-5"},md:{height:"h-5",width:"w-5"},lg:{height:"h-7",width:"w-7"},xl:{height:"h-9",width:"w-9"}},c={simple:{rounded:"",border:"",ring:"",shadow:""},light:{rounded:"rounded-tremor-default",border:"",ring:"",shadow:""},shadow:{rounded:"rounded-tremor-default",border:"border",ring:"",shadow:"shadow-tremor-card dark:shadow-dark-tremor-card"},solid:{rounded:"rounded-tremor-default",border:"border-2",ring:"ring-1",shadow:""},outlined:{rounded:"rounded-tremor-default",border:"border",ring:"ring-2",shadow:""}},u=(0,i.makeClassName)("Icon"),m=r.default.forwardRef((e,m)=>{let{icon:g,variant:p="simple",tooltip:f,size:b=o.Sizes.SM,color:h,className:v}=e,C=(0,t.__rest)(e,["icon","variant","tooltip","size","color","className"]),x=((e,t)=>{switch(e){case"simple":return{textColor:t?(0,i.getColorClassNames)(t,l.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:"",borderColor:"",ringColor:""};case"light":return{textColor:t?(0,i.getColorClassNames)(t,l.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,n.tremorTwMerge)((0,i.getColorClassNames)(t,l.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand-muted dark:bg-dark-tremor-brand-muted",borderColor:"",ringColor:""};case"shadow":return{textColor:t?(0,i.getColorClassNames)(t,l.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,n.tremorTwMerge)((0,i.getColorClassNames)(t,l.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:"border-tremor-border dark:border-dark-tremor-border",ringColor:""};case"solid":return{textColor:t?(0,i.getColorClassNames)(t,l.colorPalette.text).textColor:"text-tremor-brand-inverted dark:text-dark-tremor-brand-inverted",bgColor:t?(0,n.tremorTwMerge)((0,i.getColorClassNames)(t,l.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-brand dark:bg-dark-tremor-brand",borderColor:"border-tremor-brand-inverted dark:border-dark-tremor-brand-inverted",ringColor:"ring-tremor-ring dark:ring-dark-tremor-ring"};case"outlined":return{textColor:t?(0,i.getColorClassNames)(t,l.colorPalette.text).textColor:"text-tremor-brand dark:text-dark-tremor-brand",bgColor:t?(0,n.tremorTwMerge)((0,i.getColorClassNames)(t,l.colorPalette.background).bgColor,"bg-opacity-20"):"bg-tremor-background dark:bg-dark-tremor-background",borderColor:t?(0,i.getColorClassNames)(t,l.colorPalette.ring).borderColor:"border-tremor-brand-subtle dark:border-dark-tremor-brand-subtle",ringColor:t?(0,n.tremorTwMerge)((0,i.getColorClassNames)(t,l.colorPalette.ring).ringColor,"ring-opacity-40"):"ring-tremor-brand-muted dark:ring-dark-tremor-brand-muted"}}})(p,h),{tooltipProps:k,getReferenceProps:w}=(0,a.useTooltip)();return r.default.createElement("span",Object.assign({ref:(0,i.mergeRefs)([m,k.refs.setReference]),className:(0,n.tremorTwMerge)(u("root"),"inline-flex shrink-0 items-center justify-center",x.bgColor,x.textColor,x.borderColor,x.ringColor,c[p].rounded,c[p].border,c[p].shadow,c[p].ring,s[b].paddingX,s[b].paddingY,v)},w,C),r.default.createElement(a.default,Object.assign({text:f},k)),r.default.createElement(g,{className:(0,n.tremorTwMerge)(u("icon"),"shrink-0",d[b].height,d[b].width)}))});m.displayName="Icon",e.s(["default",0,m],728889)},752978,e=>{"use strict";var t=e.i(728889);e.s(["Icon",()=>t.default])},220508,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["CheckCircleIcon",0,r],220508)},888288,e=>{"use strict";var t=e.i(271645);e.s(["default",0,(e,r)=>{let a=void 0!==r,[o,n]=(0,t.useState)(e);return[a?r:o,e=>{a||n(e)}]}])},954616,e=>{"use strict";var t=e.i(271645),r=e.i(114272),a=e.i(540143),o=e.i(915823),n=e.i(619273),i=class extends o.Subscribable{#e;#t=void 0;#r;#a;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#o()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),(0,n.shallowEqualObjects)(this.options,t)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#r,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,n.hashKey)(t.mutationKey)!==(0,n.hashKey)(this.options.mutationKey)?this.reset():this.#r?.state.status==="pending"&&this.#r.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#r?.removeObserver(this)}onMutationUpdate(e){this.#o(),this.#n(e)}getCurrentResult(){return this.#t}reset(){this.#r?.removeObserver(this),this.#r=void 0,this.#o(),this.#n()}mutate(e,t){return this.#a=t,this.#r?.removeObserver(this),this.#r=this.#e.getMutationCache().build(this.#e,this.options),this.#r.addObserver(this),this.#r.execute(e)}#o(){let e=this.#r?.state??(0,r.getDefaultState)();this.#t={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#n(e){a.notifyManager.batch(()=>{if(this.#a&&this.hasListeners()){let t=this.#t.variables,r=this.#t.context,a={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type==="success"){try{this.#a.onSuccess?.(e.data,t,r,a)}catch(e){Promise.reject(e)}try{this.#a.onSettled?.(e.data,null,t,r,a)}catch(e){Promise.reject(e)}}else if(e?.type==="error"){try{this.#a.onError?.(e.error,t,r,a)}catch(e){Promise.reject(e)}try{this.#a.onSettled?.(void 0,e.error,t,r,a)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},l=e.i(912598);e.s(["useMutation",0,function(e,r){let o=(0,l.useQueryClient)(r),[s]=t.useState(()=>new i(o,e));t.useEffect(()=>{s.setOptions(e)},[s,e]);let d=t.useSyncExternalStore(t.useCallback(e=>s.subscribe(a.notifyManager.batchCalls(e)),[s]),()=>s.getCurrentResult(),()=>s.getCurrentResult()),c=t.useCallback((e,t)=>{s.mutate(e,t).catch(n.noop)},[s]);if(d.error&&(0,n.shouldThrowError)(s.options.throwOnError,[d.error]))throw d.error;return{...d,mutate:c,mutateAsync:d.mutate}}],954616)},530212,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10 19l-7-7m0 0l7-7m-7 7h18"}))});e.s(["ArrowLeftIcon",0,r],530212)},244451,e=>{"use strict";let t;e.i(247167);var r=e.i(271645),a=e.i(343794),o=e.i(242064),n=e.i(763731),i=e.i(174428);let l=80*Math.PI,s=e=>{let{dotClassName:t,style:o,hasCircleCls:n}=e;return r.createElement("circle",{className:(0,a.default)(`${t}-circle`,{[`${t}-circle-bg`]:n}),r:40,cx:50,cy:50,strokeWidth:20,style:o})},d=({percent:e,prefixCls:t})=>{let o=`${t}-dot`,n=`${o}-holder`,d=`${n}-hidden`,[c,u]=r.useState(!1);(0,i.default)(()=>{0!==e&&u(!0)},[0!==e]);let m=Math.max(Math.min(e,100),0);if(!c)return null;let g={strokeDashoffset:`${l/4}`,strokeDasharray:`${l*m/100} ${l*(100-m)/100}`};return r.createElement("span",{className:(0,a.default)(n,`${o}-progress`,m<=0&&d)},r.createElement("svg",{viewBox:"0 0 100 100",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":m},r.createElement(s,{dotClassName:o,hasCircleCls:!0}),r.createElement(s,{dotClassName:o,style:g})))};function c(e){let{prefixCls:t,percent:o=0}=e,n=`${t}-dot`,i=`${n}-holder`,l=`${i}-hidden`;return r.createElement(r.Fragment,null,r.createElement("span",{className:(0,a.default)(i,o>0&&l)},r.createElement("span",{className:(0,a.default)(n,`${t}-dot-spin`)},[1,2,3,4].map(e=>r.createElement("i",{className:`${t}-dot-item`,key:e})))),r.createElement(d,{prefixCls:t,percent:o}))}function u(e){var t;let{prefixCls:o,indicator:i,percent:l}=e,s=`${o}-dot`;return i&&r.isValidElement(i)?(0,n.cloneElement)(i,{className:(0,a.default)(null==(t=i.props)?void 0:t.className,s),percent:l}):r.createElement(c,{prefixCls:o,percent:l})}e.i(296059);var m=e.i(694758),g=e.i(183293),p=e.i(246422),f=e.i(838378);let b=new m.Keyframes("antSpinMove",{to:{opacity:1}}),h=new m.Keyframes("antRotate",{to:{transform:"rotate(405deg)"}}),v=(0,p.genStyleHooks)("Spin",e=>(e=>{let{componentCls:t,calc:r}=e;return{[t]:Object.assign(Object.assign({},(0,g.resetComponent)(e)),{position:"absolute",display:"none",color:e.colorPrimary,fontSize:0,textAlign:"center",verticalAlign:"middle",opacity:0,transition:`transform ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`,"&-spinning":{position:"relative",display:"inline-block",opacity:1},[`${t}-text`]:{fontSize:e.fontSize,paddingTop:r(r(e.dotSize).sub(e.fontSize)).div(2).add(2).equal()},"&-fullscreen":{position:"fixed",width:"100vw",height:"100vh",backgroundColor:e.colorBgMask,zIndex:e.zIndexPopupBase,inset:0,display:"flex",alignItems:"center",flexDirection:"column",justifyContent:"center",opacity:0,visibility:"hidden",transition:`all ${e.motionDurationMid}`,"&-show":{opacity:1,visibility:"visible"},[t]:{[`${t}-dot-holder`]:{color:e.colorWhite},[`${t}-text`]:{color:e.colorTextLightSolid}}},"&-nested-loading":{position:"relative",[`> div > ${t}`]:{position:"absolute",top:0,insetInlineStart:0,zIndex:4,display:"block",width:"100%",height:"100%",maxHeight:e.contentHeight,[`${t}-dot`]:{position:"absolute",top:"50%",insetInlineStart:"50%",margin:r(e.dotSize).mul(-1).div(2).equal()},[`${t}-text`]:{position:"absolute",top:"50%",width:"100%",textShadow:`0 1px 2px ${e.colorBgContainer}`},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSize).div(2).mul(-1).sub(10).equal()},"&-sm":{[`${t}-dot`]:{margin:r(e.dotSizeSM).mul(-1).div(2).equal()},[`${t}-text`]:{paddingTop:r(r(e.dotSizeSM).sub(e.fontSize)).div(2).add(2).equal()},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSizeSM).div(2).mul(-1).sub(10).equal()}},"&-lg":{[`${t}-dot`]:{margin:r(e.dotSizeLG).mul(-1).div(2).equal()},[`${t}-text`]:{paddingTop:r(r(e.dotSizeLG).sub(e.fontSize)).div(2).add(2).equal()},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSizeLG).div(2).mul(-1).sub(10).equal()}}},[`${t}-container`]:{position:"relative",transition:`opacity ${e.motionDurationSlow}`,"&::after":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:10,width:"100%",height:"100%",background:e.colorBgContainer,opacity:0,transition:`all ${e.motionDurationSlow}`,content:'""',pointerEvents:"none"}},[`${t}-blur`]:{clear:"both",opacity:.5,userSelect:"none",pointerEvents:"none","&::after":{opacity:.4,pointerEvents:"auto"}}},"&-tip":{color:e.spinDotDefault},[`${t}-dot-holder`]:{width:"1em",height:"1em",fontSize:e.dotSize,display:"inline-block",transition:`transform ${e.motionDurationSlow} ease, opacity ${e.motionDurationSlow} ease`,transformOrigin:"50% 50%",lineHeight:1,color:e.colorPrimary,"&-hidden":{transform:"scale(0.3)",opacity:0}},[`${t}-dot-progress`]:{position:"absolute",inset:0},[`${t}-dot`]:{position:"relative",display:"inline-block",fontSize:e.dotSize,width:"1em",height:"1em","&-item":{position:"absolute",display:"block",width:r(e.dotSize).sub(r(e.marginXXS).div(2)).div(2).equal(),height:r(e.dotSize).sub(r(e.marginXXS).div(2)).div(2).equal(),background:"currentColor",borderRadius:"100%",transform:"scale(0.75)",transformOrigin:"50% 50%",opacity:.3,animationName:b,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear",animationDirection:"alternate","&:nth-child(1)":{top:0,insetInlineStart:0,animationDelay:"0s"},"&:nth-child(2)":{top:0,insetInlineEnd:0,animationDelay:"0.4s"},"&:nth-child(3)":{insetInlineEnd:0,bottom:0,animationDelay:"0.8s"},"&:nth-child(4)":{bottom:0,insetInlineStart:0,animationDelay:"1.2s"}},"&-spin":{transform:"rotate(45deg)",animationName:h,animationDuration:"1.2s",animationIterationCount:"infinite",animationTimingFunction:"linear"},"&-circle":{strokeLinecap:"round",transition:["stroke-dashoffset","stroke-dasharray","stroke","stroke-width","opacity"].map(t=>`${t} ${e.motionDurationSlow} ease`).join(","),fillOpacity:0,stroke:"currentcolor"},"&-circle-bg":{stroke:e.colorFillSecondary}},[`&-sm ${t}-dot`]:{"&, &-holder":{fontSize:e.dotSizeSM}},[`&-sm ${t}-dot-holder`]:{i:{width:r(r(e.dotSizeSM).sub(r(e.marginXXS).div(2))).div(2).equal(),height:r(r(e.dotSizeSM).sub(r(e.marginXXS).div(2))).div(2).equal()}},[`&-lg ${t}-dot`]:{"&, &-holder":{fontSize:e.dotSizeLG}},[`&-lg ${t}-dot-holder`]:{i:{width:r(r(e.dotSizeLG).sub(e.marginXXS)).div(2).equal(),height:r(r(e.dotSizeLG).sub(e.marginXXS)).div(2).equal()}},[`&${t}-show-text ${t}-text`]:{display:"block"}})}})((0,f.mergeToken)(e,{spinDotDefault:e.colorTextDescription})),e=>{let{controlHeightLG:t,controlHeight:r}=e;return{contentHeight:400,dotSize:t/2,dotSizeSM:.35*t,dotSizeLG:r}}),C=[[30,.05],[70,.03],[96,.01]];var x=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,a=Object.getOwnPropertySymbols(e);ot.indexOf(a[o])&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(r[a[o]]=e[a[o]]);return r};let k=e=>{var n;let{prefixCls:i,spinning:l=!0,delay:s=0,className:d,rootClassName:c,size:m="default",tip:g,wrapperClassName:p,style:f,children:b,fullscreen:h=!1,indicator:k,percent:w}=e,y=x(e,["prefixCls","spinning","delay","className","rootClassName","size","tip","wrapperClassName","style","children","fullscreen","indicator","percent"]),{getPrefixCls:$,direction:O,className:E,style:S,indicator:N}=(0,o.useComponentConfig)("spin"),j=$("spin",i),[M,T,z]=v(j),[P,R]=r.useState(()=>l&&(!l||!s||!!Number.isNaN(Number(s)))),B=function(e,t){let[a,o]=r.useState(0),n=r.useRef(null),i="auto"===t;return r.useEffect(()=>(i&&e&&(o(0),n.current=setInterval(()=>{o(e=>{let t=100-e;for(let r=0;r{n.current&&(clearInterval(n.current),n.current=null)}),[i,e]),i?a:t}(P,w);r.useEffect(()=>{if(l){let e=function(e,t,r){var a,o=r||{},n=o.noTrailing,i=void 0!==n&&n,l=o.noLeading,s=void 0!==l&&l,d=o.debounceMode,c=void 0===d?void 0:d,u=!1,m=0;function g(){a&&clearTimeout(a)}function p(){for(var r=arguments.length,o=Array(r),n=0;ne?s?(m=Date.now(),i||(a=setTimeout(c?f:p,e))):p():!0!==i&&(a=setTimeout(c?f:p,void 0===c?e-d:e)))}return p.cancel=function(e){var t=(e||{}).upcomingOnly;g(),u=!(void 0!==t&&t)},p}(s,()=>{R(!0)},{debounceMode:false});return e(),()=>{var t;null==(t=null==e?void 0:e.cancel)||t.call(e)}}R(!1)},[s,l]);let I=r.useMemo(()=>void 0!==b&&!h,[b,h]),L=(0,a.default)(j,E,{[`${j}-sm`]:"small"===m,[`${j}-lg`]:"large"===m,[`${j}-spinning`]:P,[`${j}-show-text`]:!!g,[`${j}-rtl`]:"rtl"===O},d,!h&&c,T,z),q=(0,a.default)(`${j}-container`,{[`${j}-blur`]:P}),D=null!=(n=null!=k?k:N)?n:t,H=Object.assign(Object.assign({},S),f),X=r.createElement("div",Object.assign({},y,{style:H,className:L,"aria-live":"polite","aria-busy":P}),r.createElement(u,{prefixCls:j,indicator:D,percent:B}),g&&(I||h)?r.createElement("div",{className:`${j}-text`},g):null);return M(I?r.createElement("div",Object.assign({},y,{className:(0,a.default)(`${j}-nested-loading`,p,T,z)}),P&&r.createElement("div",{key:"loading"},X),r.createElement("div",{className:q,key:"container"},b)):h?r.createElement("div",{className:(0,a.default)(`${j}-fullscreen`,{[`${j}-fullscreen-show`]:P},c,T,z)},X):X)};k.setDefaultIndicator=e=>{t=e},e.s(["default",0,k],244451)},482725,e=>{"use strict";var t=e.i(244451);e.s(["Spin",()=>t.default])},91874,e=>{"use strict";var t=e.i(931067),r=e.i(209428),a=e.i(211577),o=e.i(392221),n=e.i(703923),i=e.i(343794),l=e.i(914949),s=e.i(271645),d=["prefixCls","className","style","checked","disabled","defaultChecked","type","title","onChange"],c=(0,s.forwardRef)(function(e,c){var u=e.prefixCls,m=void 0===u?"rc-checkbox":u,g=e.className,p=e.style,f=e.checked,b=e.disabled,h=e.defaultChecked,v=e.type,C=void 0===v?"checkbox":v,x=e.title,k=e.onChange,w=(0,n.default)(e,d),y=(0,s.useRef)(null),$=(0,s.useRef)(null),O=(0,l.default)(void 0!==h&&h,{value:f}),E=(0,o.default)(O,2),S=E[0],N=E[1];(0,s.useImperativeHandle)(c,function(){return{focus:function(e){var t;null==(t=y.current)||t.focus(e)},blur:function(){var e;null==(e=y.current)||e.blur()},input:y.current,nativeElement:$.current}});var j=(0,i.default)(m,g,(0,a.default)((0,a.default)({},"".concat(m,"-checked"),S),"".concat(m,"-disabled"),b));return s.createElement("span",{className:j,title:x,style:p,ref:$},s.createElement("input",(0,t.default)({},w,{className:"".concat(m,"-input"),ref:y,onChange:function(t){b||("checked"in e||N(t.target.checked),null==k||k({target:(0,r.default)((0,r.default)({},e),{},{type:C,checked:t.target.checked}),stopPropagation:function(){t.stopPropagation()},preventDefault:function(){t.preventDefault()},nativeEvent:t.nativeEvent}))},disabled:b,checked:!!S,type:C})),s.createElement("span",{className:"".concat(m,"-inner")}))});e.s(["default",0,c])},681216,e=>{"use strict";var t=e.i(271645),r=e.i(963188);e.s(["default",0,function(e){let a=t.default.useRef(null),o=()=>{r.default.cancel(a.current),a.current=null};return[()=>{o(),a.current=(0,r.default)(()=>{a.current=null})},t=>{a.current&&(t.stopPropagation(),o()),null==e||e(t)}]}])},421512,236836,e=>{"use strict";let t=e.i(271645).default.createContext(null);e.s(["default",0,t],421512),e.i(296059);var r=e.i(915654),a=e.i(183293),o=e.i(246422),n=e.i(838378);function i(e,t){return(e=>{let{checkboxCls:t}=e,o=`${t}-wrapper`;return[{[`${t}-group`]:Object.assign(Object.assign({},(0,a.resetComponent)(e)),{display:"inline-flex",flexWrap:"wrap",columnGap:e.marginXS,[`> ${e.antCls}-row`]:{flex:1}}),[o]:Object.assign(Object.assign({},(0,a.resetComponent)(e)),{display:"inline-flex",alignItems:"baseline",cursor:"pointer","&:after":{display:"inline-block",width:0,overflow:"hidden",content:"'\\a0'"},[`& + ${o}`]:{marginInlineStart:0},[`&${o}-in-form-item`]:{'input[type="checkbox"]':{width:14,height:14}}}),[t]:Object.assign(Object.assign({},(0,a.resetComponent)(e)),{position:"relative",whiteSpace:"nowrap",lineHeight:1,cursor:"pointer",borderRadius:e.borderRadiusSM,alignSelf:"center",[`${t}-input`]:{position:"absolute",inset:0,zIndex:1,cursor:"pointer",opacity:0,margin:0,[`&:focus-visible + ${t}-inner`]:(0,a.genFocusOutline)(e)},[`${t}-inner`]:{boxSizing:"border-box",display:"block",width:e.checkboxSize,height:e.checkboxSize,direction:"ltr",backgroundColor:e.colorBgContainer,border:`${(0,r.unit)(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadiusSM,borderCollapse:"separate",transition:`all ${e.motionDurationSlow}`,"&:after":{boxSizing:"border-box",position:"absolute",top:"50%",insetInlineStart:"25%",display:"table",width:e.calc(e.checkboxSize).div(14).mul(5).equal(),height:e.calc(e.checkboxSize).div(14).mul(8).equal(),border:`${(0,r.unit)(e.lineWidthBold)} solid ${e.colorWhite}`,borderTop:0,borderInlineStart:0,transform:"rotate(45deg) scale(0) translate(-50%,-50%)",opacity:0,content:'""',transition:`all ${e.motionDurationFast} ${e.motionEaseInBack}, opacity ${e.motionDurationFast}`}},"& + span":{paddingInlineStart:e.paddingXS,paddingInlineEnd:e.paddingXS}})},{[` ${o}:not(${o}-disabled), ${t}:not(${t}-disabled) `]:{[`&:hover ${t}-inner`]:{borderColor:e.colorPrimary}},[`${o}:not(${o}-disabled)`]:{[`&:hover ${t}-checked:not(${t}-disabled) ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:"transparent"},[`&:hover ${t}-checked:not(${t}-disabled):after`]:{borderColor:e.colorPrimaryHover}}},{[`${t}-checked`]:{[`${t}-inner`]:{backgroundColor:e.colorPrimary,borderColor:e.colorPrimary,"&:after":{opacity:1,transform:"rotate(45deg) scale(1) translate(-50%,-50%)",transition:`all ${e.motionDurationMid} ${e.motionEaseOutBack} ${e.motionDurationFast}`}}},[` ${o}-checked:not(${o}-disabled), ${t}-checked:not(${t}-disabled) - `]:{[`&:hover ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:"transparent"}}},{[t]:{"&-indeterminate":{"&":{[`${t}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorBorder}`,"&:after":{top:"50%",insetInlineStart:"50%",width:e.calc(e.fontSizeLG).div(2).equal(),height:e.calc(e.fontSizeLG).div(2).equal(),backgroundColor:e.colorPrimary,border:0,transform:"translate(-50%, -50%) scale(1)",opacity:1,content:'""'}},[`&:hover ${t}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorPrimary}`}}}}},{[`${o}-disabled`]:{cursor:"not-allowed"},[`${t}-disabled`]:{[`&, ${t}-input`]:{cursor:"not-allowed",pointerEvents:"none"},[`${t}-inner`]:{background:e.colorBgContainerDisabled,borderColor:e.colorBorder,"&:after":{borderColor:e.colorTextDisabled}},"&:after":{display:"none"},"& + span":{color:e.colorTextDisabled},[`&${t}-indeterminate ${t}-inner::after`]:{background:e.colorTextDisabled}}}]})((0,n.mergeToken)(t,{checkboxCls:`.${e}`,checkboxSize:t.controlInteractiveSize}))}let l=(0,o.genStyleHooks)("Checkbox",(e,{prefixCls:t})=>[i(t,e)]);e.s(["default",0,l,"getStyle",0,i],236836)},374276,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(91874),o=e.i(611935),n=e.i(121872),i=e.i(26905),l=e.i(242064),s=e.i(937328),d=e.i(321883),c=e.i(62139),u=e.i(421512),m=e.i(236836),g=e.i(681216),p=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,a=Object.getOwnPropertySymbols(e);ot.indexOf(a[o])&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(r[a[o]]=e[a[o]]);return r};let f=t.forwardRef((e,f)=>{var b;let{prefixCls:h,className:v,rootClassName:C,children:x,indeterminate:k=!1,style:w,onMouseEnter:y,onMouseLeave:$,skipGroup:O=!1,disabled:E}=e,S=p(e,["prefixCls","className","rootClassName","children","indeterminate","style","onMouseEnter","onMouseLeave","skipGroup","disabled"]),{getPrefixCls:N,direction:j,checkbox:M}=t.useContext(l.ConfigContext),T=t.useContext(u.default),{isFormItemInput:z}=t.useContext(c.FormItemInputContext),P=t.useContext(s.default),R=null!=(b=(null==T?void 0:T.disabled)||E)?b:P,B=t.useRef(S.value),I=t.useRef(null),L=(0,o.composeRef)(f,I);t.useEffect(()=>{null==T||T.registerValue(S.value)},[]),t.useEffect(()=>{if(!O)return S.value!==B.current&&(null==T||T.cancelValue(B.current),null==T||T.registerValue(S.value),B.current=S.value),()=>null==T?void 0:T.cancelValue(S.value)},[S.value]),t.useEffect(()=>{var e;(null==(e=I.current)?void 0:e.input)&&(I.current.input.indeterminate=k)},[k]);let q=N("checkbox",h),D=(0,d.default)(q),[H,X,_]=(0,m.default)(q,D),W=Object.assign({},S);T&&!O&&(W.onChange=(...e)=>{S.onChange&&S.onChange.apply(S,e),T.toggleOption&&T.toggleOption({label:x,value:S.value})},W.name=T.name,W.checked=T.value.includes(S.value));let A=(0,r.default)(`${q}-wrapper`,{[`${q}-rtl`]:"rtl"===j,[`${q}-wrapper-checked`]:W.checked,[`${q}-wrapper-disabled`]:R,[`${q}-wrapper-in-form-item`]:z},null==M?void 0:M.className,v,C,_,D,X),F=(0,r.default)({[`${q}-indeterminate`]:k},i.TARGET_CLS,X),[V,Y]=(0,g.default)(W.onClick);return H(t.createElement(n.default,{component:"Checkbox",disabled:R},t.createElement("label",{className:A,style:Object.assign(Object.assign({},null==M?void 0:M.style),w),onMouseEnter:y,onMouseLeave:$,onClick:V},t.createElement(a.default,Object.assign({},W,{onClick:Y,prefixCls:q,className:F,disabled:R,ref:L})),null!=x&&t.createElement("span",{className:`${q}-label`},x))))});var b=e.i(8211),h=e.i(529681),v=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,a=Object.getOwnPropertySymbols(e);ot.indexOf(a[o])&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(r[a[o]]=e[a[o]]);return r};let C=t.forwardRef((e,a)=>{let{defaultValue:o,children:n,options:i=[],prefixCls:s,className:c,rootClassName:g,style:p,onChange:C}=e,x=v(e,["defaultValue","children","options","prefixCls","className","rootClassName","style","onChange"]),{getPrefixCls:k,direction:w}=t.useContext(l.ConfigContext),[y,$]=t.useState(x.value||o||[]),[O,E]=t.useState([]);t.useEffect(()=>{"value"in x&&$(x.value||[])},[x.value]);let S=t.useMemo(()=>i.map(e=>"string"==typeof e||"number"==typeof e?{label:e,value:e}:e),[i]),N=e=>{E(t=>t.filter(t=>t!==e))},j=e=>{E(t=>[].concat((0,b.default)(t),[e]))},M=e=>{let t=y.indexOf(e.value),r=(0,b.default)(y);-1===t?r.push(e.value):r.splice(t,1),"value"in x||$(r),null==C||C(r.filter(e=>O.includes(e)).sort((e,t)=>S.findIndex(t=>t.value===e)-S.findIndex(e=>e.value===t)))},T=k("checkbox",s),z=`${T}-group`,P=(0,d.default)(T),[R,B,I]=(0,m.default)(T,P),L=(0,h.default)(x,["value","disabled"]),q=i.length?S.map(e=>t.createElement(f,{prefixCls:T,key:e.value.toString(),disabled:"disabled"in e?e.disabled:x.disabled,value:e.value,checked:y.includes(e.value),onChange:e.onChange,className:(0,r.default)(`${z}-item`,e.className),style:e.style,title:e.title,id:e.id,required:e.required},e.label)):n,D=t.useMemo(()=>({toggleOption:M,value:y,disabled:x.disabled,name:x.name,registerValue:j,cancelValue:N}),[M,y,x.disabled,x.name,j,N]),H=(0,r.default)(z,{[`${z}-rtl`]:"rtl"===w},c,g,I,P,B);return R(t.createElement("div",Object.assign({className:H,style:p},L,{ref:a}),t.createElement(u.default.Provider,{value:D},q)))});f.Group=C,f.__ANT_CHECKBOX=!0,e.s(["default",0,f],374276)},536916,e=>{"use strict";var t=e.i(374276);e.s(["Checkbox",()=>t.default])},988297,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4v16m8-8H4"}))});e.s(["PlusIcon",0,r],988297)},797672,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"}))});e.s(["PencilIcon",0,r],797672)},91739,e=>{"use strict";var t=e.i(544195);e.s(["Radio",()=>t.default])},954616,e=>{"use strict";var t=e.i(271645),r=e.i(114272),a=e.i(540143),o=e.i(915823),n=e.i(619273),i=class extends o.Subscribable{#e;#t=void 0;#r;#a;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#o()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),(0,n.shallowEqualObjects)(this.options,t)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#r,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,n.hashKey)(t.mutationKey)!==(0,n.hashKey)(this.options.mutationKey)?this.reset():this.#r?.state.status==="pending"&&this.#r.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#r?.removeObserver(this)}onMutationUpdate(e){this.#o(),this.#n(e)}getCurrentResult(){return this.#t}reset(){this.#r?.removeObserver(this),this.#r=void 0,this.#o(),this.#n()}mutate(e,t){return this.#a=t,this.#r?.removeObserver(this),this.#r=this.#e.getMutationCache().build(this.#e,this.options),this.#r.addObserver(this),this.#r.execute(e)}#o(){let e=this.#r?.state??(0,r.getDefaultState)();this.#t={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#n(e){a.notifyManager.batch(()=>{if(this.#a&&this.hasListeners()){let t=this.#t.variables,r=this.#t.context,a={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type==="success"){try{this.#a.onSuccess?.(e.data,t,r,a)}catch(e){Promise.reject(e)}try{this.#a.onSettled?.(e.data,null,t,r,a)}catch(e){Promise.reject(e)}}else if(e?.type==="error"){try{this.#a.onError?.(e.error,t,r,a)}catch(e){Promise.reject(e)}try{this.#a.onSettled?.(void 0,e.error,t,r,a)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},l=e.i(912598);e.s(["useMutation",0,function(e,r){let o=(0,l.useQueryClient)(r),[s]=t.useState(()=>new i(o,e));t.useEffect(()=>{s.setOptions(e)},[s,e]);let d=t.useSyncExternalStore(t.useCallback(e=>s.subscribe(a.notifyManager.batchCalls(e)),[s]),()=>s.getCurrentResult(),()=>s.getCurrentResult()),c=t.useCallback((e,t)=>{s.mutate(e,t).catch(n.noop)},[s]);if(d.error&&(0,n.shouldThrowError)(s.options.throwOnError,[d.error]))throw d.error;return{...d,mutate:c,mutateAsync:d.mutate}}],954616)},220508,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["CheckCircleIcon",0,r],220508)},888288,e=>{"use strict";var t=e.i(271645);e.s(["default",0,(e,r)=>{let a=void 0!==r,[o,n]=(0,t.useState)(e);return[a?r:o,e=>{a||n(e)}]}])},829672,836938,310730,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(914949),o=e.i(404948);let n=e=>e?"function"==typeof e?e():e:null;e.s(["getRenderPropValue",0,n],836938);var i=e.i(613541),l=e.i(763731),s=e.i(242064),d=e.i(491816);e.i(793154);var c=e.i(880476),u=e.i(183293),m=e.i(717356),g=e.i(320560),p=e.i(307358),f=e.i(246422),b=e.i(838378),h=e.i(617933);let v=(0,f.genStyleHooks)("Popover",e=>{let{colorBgElevated:t,colorText:r}=e,a=(0,b.mergeToken)(e,{popoverBg:t,popoverColor:r});return[(e=>{let{componentCls:t,popoverColor:r,titleMinWidth:a,fontWeightStrong:o,innerPadding:n,boxShadowSecondary:i,colorTextHeading:l,borderRadiusLG:s,zIndexPopup:d,titleMarginBottom:c,colorBgElevated:m,popoverBg:p,titleBorderBottom:f,innerContentPadding:b,titlePadding:h}=e;return[{[t]:Object.assign(Object.assign({},(0,u.resetComponent)(e)),{position:"absolute",top:0,left:{_skip_check_:!0,value:0},zIndex:d,fontWeight:"normal",whiteSpace:"normal",textAlign:"start",cursor:"auto",userSelect:"text","--valid-offset-x":"var(--arrow-offset-horizontal, var(--arrow-x))",transformOrigin:"var(--valid-offset-x, 50%) var(--arrow-y, 50%)","--antd-arrow-background-color":m,width:"max-content",maxWidth:"100vw","&-rtl":{direction:"rtl"},"&-hidden":{display:"none"},[`${t}-content`]:{position:"relative"},[`${t}-inner`]:{backgroundColor:p,backgroundClip:"padding-box",borderRadius:s,boxShadow:i,padding:n},[`${t}-title`]:{minWidth:a,marginBottom:c,color:l,fontWeight:o,borderBottom:f,padding:h},[`${t}-inner-content`]:{color:r,padding:b}})},(0,g.default)(e,"var(--antd-arrow-background-color)"),{[`${t}-pure`]:{position:"relative",maxWidth:"none",margin:e.sizePopupArrow,display:"inline-block",[`${t}-content`]:{display:"inline-block"}}}]})(a),(e=>{let{componentCls:t}=e;return{[t]:h.PresetColors.map(r=>{let a=e[`${r}6`];return{[`&${t}-${r}`]:{"--antd-arrow-background-color":a,[`${t}-inner`]:{backgroundColor:a},[`${t}-arrow`]:{background:"transparent"}}}})}})(a),(0,m.initZoomMotion)(a,"zoom-big")]},e=>{let{lineWidth:t,controlHeight:r,fontHeight:a,padding:o,wireframe:n,zIndexPopupBase:i,borderRadiusLG:l,marginXS:s,lineType:d,colorSplit:c,paddingSM:u}=e,m=r-a;return Object.assign(Object.assign(Object.assign({titleMinWidth:177,zIndexPopup:i+30},(0,p.getArrowToken)(e)),(0,g.getArrowOffsetToken)({contentRadius:l,limitVerticalRadius:!0})),{innerPadding:12*!n,titleMarginBottom:n?0:s,titlePadding:n?`${m/2}px ${o}px ${m/2-t}px`:0,titleBorderBottom:n?`${t}px ${d} ${c}`:"none",innerContentPadding:n?`${u}px ${o}px`:0})},{resetStyle:!1,deprecatedTokens:[["width","titleMinWidth"],["minWidth","titleMinWidth"]]});var C=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,a=Object.getOwnPropertySymbols(e);ot.indexOf(a[o])&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(r[a[o]]=e[a[o]]);return r};let x=({title:e,content:r,prefixCls:a})=>e||r?t.createElement(t.Fragment,null,e&&t.createElement("div",{className:`${a}-title`},e),r&&t.createElement("div",{className:`${a}-inner-content`},r)):null,k=e=>{let{hashId:a,prefixCls:o,className:i,style:l,placement:s="top",title:d,content:u,children:m}=e,g=n(d),p=n(u),f=(0,r.default)(a,o,`${o}-pure`,`${o}-placement-${s}`,i);return t.createElement("div",{className:f,style:l},t.createElement("div",{className:`${o}-arrow`}),t.createElement(c.Popup,Object.assign({},e,{className:a,prefixCls:o}),m||t.createElement(x,{prefixCls:o,title:g,content:p})))},w=e=>{let{prefixCls:a,className:o}=e,n=C(e,["prefixCls","className"]),{getPrefixCls:i}=t.useContext(s.ConfigContext),l=i("popover",a),[d,c,u]=v(l);return d(t.createElement(k,Object.assign({},n,{prefixCls:l,hashId:c,className:(0,r.default)(o,u)})))};e.s(["Overlay",0,x,"default",0,w],310730);var y=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,a=Object.getOwnPropertySymbols(e);ot.indexOf(a[o])&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(r[a[o]]=e[a[o]]);return r};let $=t.forwardRef((e,c)=>{var u,m;let{prefixCls:g,title:p,content:f,overlayClassName:b,placement:h="top",trigger:C="hover",children:k,mouseEnterDelay:w=.1,mouseLeaveDelay:$=.1,onOpenChange:O,overlayStyle:E={},styles:S,classNames:N}=e,j=y(e,["prefixCls","title","content","overlayClassName","placement","trigger","children","mouseEnterDelay","mouseLeaveDelay","onOpenChange","overlayStyle","styles","classNames"]),{getPrefixCls:M,className:T,style:z,classNames:P,styles:R}=(0,s.useComponentConfig)("popover"),B=M("popover",g),[I,L,q]=v(B),D=M(),H=(0,r.default)(b,L,q,T,P.root,null==N?void 0:N.root),X=(0,r.default)(P.body,null==N?void 0:N.body),[_,W]=(0,a.default)(!1,{value:null!=(u=e.open)?u:e.visible,defaultValue:null!=(m=e.defaultOpen)?m:e.defaultVisible}),A=(e,t)=>{W(e,!0),null==O||O(e,t)},F=n(p),V=n(f);return I(t.createElement(d.default,Object.assign({placement:h,trigger:C,mouseEnterDelay:w,mouseLeaveDelay:$},j,{prefixCls:B,classNames:{root:H,body:X},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},R.root),z),E),null==S?void 0:S.root),body:Object.assign(Object.assign({},R.body),null==S?void 0:S.body)},ref:c,open:_,onOpenChange:e=>{A(e)},overlay:F||V?t.createElement(x,{prefixCls:B,title:F,content:V}):null,transitionName:(0,i.getTransitionName)(D,"zoom-big",j.transitionName),"data-popover-inject":!0}),(0,l.cloneElement)(k,{onKeyDown:e=>{var r,a;(0,t.isValidElement)(k)&&(null==(a=null==k?void 0:(r=k.props).onKeyDown)||a.call(r,e)),e.keyCode===o.default.ESC&&A(!1,e)}})))});$._InternalPanelDoNotUseOrYouWillBeFired=w,e.s(["default",0,$],829672)},282786,e=>{"use strict";var t=e.i(829672);e.s(["Popover",()=>t.default])},240647,e=>{"use strict";var t=e.i(286612);e.s(["RightOutlined",()=>t.default])},245704,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"check-circle",theme:"outlined"};var o=e.i(9583),n=r.forwardRef(function(e,n){return r.createElement(o.default,(0,t.default)({},e,{ref:n,icon:a}))});e.s(["CheckCircleOutlined",0,n],245704)},518617,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm0 76c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm128.01 198.83c.03 0 .05.01.09.06l45.02 45.01a.2.2 0 01.05.09.12.12 0 010 .07c0 .02-.01.04-.05.08L557.25 512l127.87 127.86a.27.27 0 01.05.06v.02a.12.12 0 010 .07c0 .03-.01.05-.05.09l-45.02 45.02a.2.2 0 01-.09.05.12.12 0 01-.07 0c-.02 0-.04-.01-.08-.05L512 557.25 384.14 685.12c-.04.04-.06.05-.08.05a.12.12 0 01-.07 0c-.03 0-.05-.01-.09-.05l-45.02-45.02a.2.2 0 01-.05-.09.12.12 0 010-.07c0-.02.01-.04.06-.08L466.75 512 338.88 384.14a.27.27 0 01-.05-.06l-.01-.02a.12.12 0 010-.07c0-.03.01-.05.05-.09l45.02-45.02a.2.2 0 01.09-.05.12.12 0 01.07 0c.02 0 .04.01.08.06L512 466.75l127.86-127.86c.04-.05.06-.06.08-.06a.12.12 0 01.07 0z"}}]},name:"close-circle",theme:"outlined"};var o=e.i(9583),n=r.forwardRef(function(e,n){return r.createElement(o.default,(0,t.default)({},e,{ref:n,icon:a}))});e.s(["CloseCircleOutlined",0,n],518617)},848725,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"}))});e.s(["EyeIcon",0,r],848725)},78085,e=>{"use strict";var t=e.i(290571),r=e.i(103471),a=e.i(888288),o=e.i(271645),n=e.i(444755),i=e.i(673706);let l=(0,i.makeClassName)("Textarea"),s=o.default.forwardRef((e,s)=>{let{value:d,defaultValue:c="",placeholder:u="Type...",error:m=!1,errorMessage:g,disabled:p=!1,className:f,onChange:b,onValueChange:h,autoHeight:v=!1}=e,C=(0,t.__rest)(e,["value","defaultValue","placeholder","error","errorMessage","disabled","className","onChange","onValueChange","autoHeight"]),[x,k]=(0,a.default)(c,d),w=(0,o.useRef)(null),y=(0,r.hasValue)(x);return(0,o.useEffect)(()=>{let e=w.current;if(v&&e){e.style.height="60px";let t=e.scrollHeight;e.style.height=t+"px"}},[v,w,x]),o.default.createElement(o.default.Fragment,null,o.default.createElement("textarea",Object.assign({ref:(0,i.mergeRefs)([w,s]),value:x,placeholder:u,disabled:p,className:(0,n.tremorTwMerge)(l("Textarea"),"w-full flex items-center outline-none rounded-tremor-default px-3 py-2 text-tremor-default focus:ring-2 transition duration-100 border","shadow-tremor-input focus:border-tremor-brand-subtle focus:ring-tremor-brand-muted","dark:shadow-dark-tremor-input focus:dark:border-dark-tremor-brand-subtle focus:dark:ring-dark-tremor-brand-muted",(0,r.getSelectButtonColors)(y,p,m),p?"placeholder:text-tremor-content-subtle dark:placeholder:text-dark-tremor-content-subtle":"placeholder:text-tremor-content dark:placeholder:text-dark-tremor-content",f),"data-testid":"text-area",onChange:e=>{null==b||b(e),k(e.target.value),null==h||h(e.target.value)}},C)),m&&g?o.default.createElement("p",{className:(0,n.tremorTwMerge)(l("errorMessage"),"text-sm text-red-500 mt-1")},g):null)});s.displayName="Textarea",e.s(["Textarea",0,s],78085)},102616,e=>{"use strict";var t=e.i(843476),r=e.i(760221),a=e.i(135214);e.s(["default",0,()=>{let{accessToken:e,userRole:o}=(0,a.default)();return(0,t.jsx)(r.default,{accessToken:e,userRole:o})}])}]); \ No newline at end of file + `]:{[`&:hover ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:"transparent"}}},{[t]:{"&-indeterminate":{"&":{[`${t}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorBorder}`,"&:after":{top:"50%",insetInlineStart:"50%",width:e.calc(e.fontSizeLG).div(2).equal(),height:e.calc(e.fontSizeLG).div(2).equal(),backgroundColor:e.colorPrimary,border:0,transform:"translate(-50%, -50%) scale(1)",opacity:1,content:'""'}},[`&:hover ${t}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorPrimary}`}}}}},{[`${o}-disabled`]:{cursor:"not-allowed"},[`${t}-disabled`]:{[`&, ${t}-input`]:{cursor:"not-allowed",pointerEvents:"none"},[`${t}-inner`]:{background:e.colorBgContainerDisabled,borderColor:e.colorBorder,"&:after":{borderColor:e.colorTextDisabled}},"&:after":{display:"none"},"& + span":{color:e.colorTextDisabled},[`&${t}-indeterminate ${t}-inner::after`]:{background:e.colorTextDisabled}}}]})((0,n.mergeToken)(t,{checkboxCls:`.${e}`,checkboxSize:t.controlInteractiveSize}))}let l=(0,o.genStyleHooks)("Checkbox",(e,{prefixCls:t})=>[i(t,e)]);e.s(["default",0,l,"getStyle",0,i],236836)},374276,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(91874),o=e.i(611935),n=e.i(121872),i=e.i(26905),l=e.i(242064),s=e.i(937328),d=e.i(321883),c=e.i(62139),u=e.i(421512),m=e.i(236836),g=e.i(681216),p=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,a=Object.getOwnPropertySymbols(e);ot.indexOf(a[o])&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(r[a[o]]=e[a[o]]);return r};let f=t.forwardRef((e,f)=>{var b;let{prefixCls:h,className:v,rootClassName:C,children:x,indeterminate:k=!1,style:w,onMouseEnter:y,onMouseLeave:$,skipGroup:O=!1,disabled:E}=e,S=p(e,["prefixCls","className","rootClassName","children","indeterminate","style","onMouseEnter","onMouseLeave","skipGroup","disabled"]),{getPrefixCls:N,direction:j,checkbox:M}=t.useContext(l.ConfigContext),T=t.useContext(u.default),{isFormItemInput:z}=t.useContext(c.FormItemInputContext),P=t.useContext(s.default),R=null!=(b=(null==T?void 0:T.disabled)||E)?b:P,B=t.useRef(S.value),I=t.useRef(null),L=(0,o.composeRef)(f,I);t.useEffect(()=>{null==T||T.registerValue(S.value)},[]),t.useEffect(()=>{if(!O)return S.value!==B.current&&(null==T||T.cancelValue(B.current),null==T||T.registerValue(S.value),B.current=S.value),()=>null==T?void 0:T.cancelValue(S.value)},[S.value]),t.useEffect(()=>{var e;(null==(e=I.current)?void 0:e.input)&&(I.current.input.indeterminate=k)},[k]);let q=N("checkbox",h),D=(0,d.default)(q),[H,X,_]=(0,m.default)(q,D),W=Object.assign({},S);T&&!O&&(W.onChange=(...e)=>{S.onChange&&S.onChange.apply(S,e),T.toggleOption&&T.toggleOption({label:x,value:S.value})},W.name=T.name,W.checked=T.value.includes(S.value));let A=(0,r.default)(`${q}-wrapper`,{[`${q}-rtl`]:"rtl"===j,[`${q}-wrapper-checked`]:W.checked,[`${q}-wrapper-disabled`]:R,[`${q}-wrapper-in-form-item`]:z},null==M?void 0:M.className,v,C,_,D,X),F=(0,r.default)({[`${q}-indeterminate`]:k},i.TARGET_CLS,X),[V,Y]=(0,g.default)(W.onClick);return H(t.createElement(n.default,{component:"Checkbox",disabled:R},t.createElement("label",{className:A,style:Object.assign(Object.assign({},null==M?void 0:M.style),w),onMouseEnter:y,onMouseLeave:$,onClick:V},t.createElement(a.default,Object.assign({},W,{onClick:Y,prefixCls:q,className:F,disabled:R,ref:L})),null!=x&&t.createElement("span",{className:`${q}-label`},x))))});var b=e.i(8211),h=e.i(529681),v=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,a=Object.getOwnPropertySymbols(e);ot.indexOf(a[o])&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(r[a[o]]=e[a[o]]);return r};let C=t.forwardRef((e,a)=>{let{defaultValue:o,children:n,options:i=[],prefixCls:s,className:c,rootClassName:g,style:p,onChange:C}=e,x=v(e,["defaultValue","children","options","prefixCls","className","rootClassName","style","onChange"]),{getPrefixCls:k,direction:w}=t.useContext(l.ConfigContext),[y,$]=t.useState(x.value||o||[]),[O,E]=t.useState([]);t.useEffect(()=>{"value"in x&&$(x.value||[])},[x.value]);let S=t.useMemo(()=>i.map(e=>"string"==typeof e||"number"==typeof e?{label:e,value:e}:e),[i]),N=e=>{E(t=>t.filter(t=>t!==e))},j=e=>{E(t=>[].concat((0,b.default)(t),[e]))},M=e=>{let t=y.indexOf(e.value),r=(0,b.default)(y);-1===t?r.push(e.value):r.splice(t,1),"value"in x||$(r),null==C||C(r.filter(e=>O.includes(e)).sort((e,t)=>S.findIndex(t=>t.value===e)-S.findIndex(e=>e.value===t)))},T=k("checkbox",s),z=`${T}-group`,P=(0,d.default)(T),[R,B,I]=(0,m.default)(T,P),L=(0,h.default)(x,["value","disabled"]),q=i.length?S.map(e=>t.createElement(f,{prefixCls:T,key:e.value.toString(),disabled:"disabled"in e?e.disabled:x.disabled,value:e.value,checked:y.includes(e.value),onChange:e.onChange,className:(0,r.default)(`${z}-item`,e.className),style:e.style,title:e.title,id:e.id,required:e.required},e.label)):n,D=t.useMemo(()=>({toggleOption:M,value:y,disabled:x.disabled,name:x.name,registerValue:j,cancelValue:N}),[M,y,x.disabled,x.name,j,N]),H=(0,r.default)(z,{[`${z}-rtl`]:"rtl"===w},c,g,I,P,B);return R(t.createElement("div",Object.assign({className:H,style:p},L,{ref:a}),t.createElement(u.default.Provider,{value:D},q)))});f.Group=C,f.__ANT_CHECKBOX=!0,e.s(["default",0,f],374276)},536916,e=>{"use strict";var t=e.i(374276);e.s(["Checkbox",()=>t.default])},988297,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4v16m8-8H4"}))});e.s(["PlusIcon",0,r],988297)},797672,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"}))});e.s(["PencilIcon",0,r],797672)},91739,e=>{"use strict";var t=e.i(544195);e.s(["Radio",()=>t.default])},21548,e=>{"use strict";var t=e.i(616303);e.s(["Empty",()=>t.default])},829672,836938,310730,e=>{"use strict";e.i(247167);var t=e.i(271645),r=e.i(343794),a=e.i(914949),o=e.i(404948);let n=e=>e?"function"==typeof e?e():e:null;e.s(["getRenderPropValue",0,n],836938);var i=e.i(613541),l=e.i(763731),s=e.i(242064),d=e.i(491816);e.i(793154);var c=e.i(880476),u=e.i(183293),m=e.i(717356),g=e.i(320560),p=e.i(307358),f=e.i(246422),b=e.i(838378),h=e.i(617933);let v=(0,f.genStyleHooks)("Popover",e=>{let{colorBgElevated:t,colorText:r}=e,a=(0,b.mergeToken)(e,{popoverBg:t,popoverColor:r});return[(e=>{let{componentCls:t,popoverColor:r,titleMinWidth:a,fontWeightStrong:o,innerPadding:n,boxShadowSecondary:i,colorTextHeading:l,borderRadiusLG:s,zIndexPopup:d,titleMarginBottom:c,colorBgElevated:m,popoverBg:p,titleBorderBottom:f,innerContentPadding:b,titlePadding:h}=e;return[{[t]:Object.assign(Object.assign({},(0,u.resetComponent)(e)),{position:"absolute",top:0,left:{_skip_check_:!0,value:0},zIndex:d,fontWeight:"normal",whiteSpace:"normal",textAlign:"start",cursor:"auto",userSelect:"text","--valid-offset-x":"var(--arrow-offset-horizontal, var(--arrow-x))",transformOrigin:"var(--valid-offset-x, 50%) var(--arrow-y, 50%)","--antd-arrow-background-color":m,width:"max-content",maxWidth:"100vw","&-rtl":{direction:"rtl"},"&-hidden":{display:"none"},[`${t}-content`]:{position:"relative"},[`${t}-inner`]:{backgroundColor:p,backgroundClip:"padding-box",borderRadius:s,boxShadow:i,padding:n},[`${t}-title`]:{minWidth:a,marginBottom:c,color:l,fontWeight:o,borderBottom:f,padding:h},[`${t}-inner-content`]:{color:r,padding:b}})},(0,g.default)(e,"var(--antd-arrow-background-color)"),{[`${t}-pure`]:{position:"relative",maxWidth:"none",margin:e.sizePopupArrow,display:"inline-block",[`${t}-content`]:{display:"inline-block"}}}]})(a),(e=>{let{componentCls:t}=e;return{[t]:h.PresetColors.map(r=>{let a=e[`${r}6`];return{[`&${t}-${r}`]:{"--antd-arrow-background-color":a,[`${t}-inner`]:{backgroundColor:a},[`${t}-arrow`]:{background:"transparent"}}}})}})(a),(0,m.initZoomMotion)(a,"zoom-big")]},e=>{let{lineWidth:t,controlHeight:r,fontHeight:a,padding:o,wireframe:n,zIndexPopupBase:i,borderRadiusLG:l,marginXS:s,lineType:d,colorSplit:c,paddingSM:u}=e,m=r-a;return Object.assign(Object.assign(Object.assign({titleMinWidth:177,zIndexPopup:i+30},(0,p.getArrowToken)(e)),(0,g.getArrowOffsetToken)({contentRadius:l,limitVerticalRadius:!0})),{innerPadding:12*!n,titleMarginBottom:n?0:s,titlePadding:n?`${m/2}px ${o}px ${m/2-t}px`:0,titleBorderBottom:n?`${t}px ${d} ${c}`:"none",innerContentPadding:n?`${u}px ${o}px`:0})},{resetStyle:!1,deprecatedTokens:[["width","titleMinWidth"],["minWidth","titleMinWidth"]]});var C=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,a=Object.getOwnPropertySymbols(e);ot.indexOf(a[o])&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(r[a[o]]=e[a[o]]);return r};let x=({title:e,content:r,prefixCls:a})=>e||r?t.createElement(t.Fragment,null,e&&t.createElement("div",{className:`${a}-title`},e),r&&t.createElement("div",{className:`${a}-inner-content`},r)):null,k=e=>{let{hashId:a,prefixCls:o,className:i,style:l,placement:s="top",title:d,content:u,children:m}=e,g=n(d),p=n(u),f=(0,r.default)(a,o,`${o}-pure`,`${o}-placement-${s}`,i);return t.createElement("div",{className:f,style:l},t.createElement("div",{className:`${o}-arrow`}),t.createElement(c.Popup,Object.assign({},e,{className:a,prefixCls:o}),m||t.createElement(x,{prefixCls:o,title:g,content:p})))},w=e=>{let{prefixCls:a,className:o}=e,n=C(e,["prefixCls","className"]),{getPrefixCls:i}=t.useContext(s.ConfigContext),l=i("popover",a),[d,c,u]=v(l);return d(t.createElement(k,Object.assign({},n,{prefixCls:l,hashId:c,className:(0,r.default)(o,u)})))};e.s(["Overlay",0,x,"default",0,w],310730);var y=function(e,t){var r={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&0>t.indexOf(a)&&(r[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,a=Object.getOwnPropertySymbols(e);ot.indexOf(a[o])&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(r[a[o]]=e[a[o]]);return r};let $=t.forwardRef((e,c)=>{var u,m;let{prefixCls:g,title:p,content:f,overlayClassName:b,placement:h="top",trigger:C="hover",children:k,mouseEnterDelay:w=.1,mouseLeaveDelay:$=.1,onOpenChange:O,overlayStyle:E={},styles:S,classNames:N}=e,j=y(e,["prefixCls","title","content","overlayClassName","placement","trigger","children","mouseEnterDelay","mouseLeaveDelay","onOpenChange","overlayStyle","styles","classNames"]),{getPrefixCls:M,className:T,style:z,classNames:P,styles:R}=(0,s.useComponentConfig)("popover"),B=M("popover",g),[I,L,q]=v(B),D=M(),H=(0,r.default)(b,L,q,T,P.root,null==N?void 0:N.root),X=(0,r.default)(P.body,null==N?void 0:N.body),[_,W]=(0,a.default)(!1,{value:null!=(u=e.open)?u:e.visible,defaultValue:null!=(m=e.defaultOpen)?m:e.defaultVisible}),A=(e,t)=>{W(e,!0),null==O||O(e,t)},F=n(p),V=n(f);return I(t.createElement(d.default,Object.assign({placement:h,trigger:C,mouseEnterDelay:w,mouseLeaveDelay:$},j,{prefixCls:B,classNames:{root:H,body:X},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},R.root),z),E),null==S?void 0:S.root),body:Object.assign(Object.assign({},R.body),null==S?void 0:S.body)},ref:c,open:_,onOpenChange:e=>{A(e)},overlay:F||V?t.createElement(x,{prefixCls:B,title:F,content:V}):null,transitionName:(0,i.getTransitionName)(D,"zoom-big",j.transitionName),"data-popover-inject":!0}),(0,l.cloneElement)(k,{onKeyDown:e=>{var r,a;(0,t.isValidElement)(k)&&(null==(a=null==k?void 0:(r=k.props).onKeyDown)||a.call(r,e)),e.keyCode===o.default.ESC&&A(!1,e)}})))});$._InternalPanelDoNotUseOrYouWillBeFired=w,e.s(["default",0,$],829672)},282786,e=>{"use strict";var t=e.i(829672);e.s(["Popover",()=>t.default])},240647,e=>{"use strict";var t=e.i(286612);e.s(["RightOutlined",()=>t.default])},245704,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"check-circle",theme:"outlined"};var o=e.i(9583),n=r.forwardRef(function(e,n){return r.createElement(o.default,(0,t.default)({},e,{ref:n,icon:a}))});e.s(["CheckCircleOutlined",0,n],245704)},518617,e=>{"use strict";e.i(247167);var t=e.i(931067),r=e.i(271645);let a={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm0 76c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm128.01 198.83c.03 0 .05.01.09.06l45.02 45.01a.2.2 0 01.05.09.12.12 0 010 .07c0 .02-.01.04-.05.08L557.25 512l127.87 127.86a.27.27 0 01.05.06v.02a.12.12 0 010 .07c0 .03-.01.05-.05.09l-45.02 45.02a.2.2 0 01-.09.05.12.12 0 01-.07 0c-.02 0-.04-.01-.08-.05L512 557.25 384.14 685.12c-.04.04-.06.05-.08.05a.12.12 0 01-.07 0c-.03 0-.05-.01-.09-.05l-45.02-45.02a.2.2 0 01-.05-.09.12.12 0 010-.07c0-.02.01-.04.06-.08L466.75 512 338.88 384.14a.27.27 0 01-.05-.06l-.01-.02a.12.12 0 010-.07c0-.03.01-.05.05-.09l45.02-45.02a.2.2 0 01.09-.05.12.12 0 01.07 0c.02 0 .04.01.08.06L512 466.75l127.86-127.86c.04-.05.06-.06.08-.06a.12.12 0 01.07 0z"}}]},name:"close-circle",theme:"outlined"};var o=e.i(9583),n=r.forwardRef(function(e,n){return r.createElement(o.default,(0,t.default)({},e,{ref:n,icon:a}))});e.s(["CloseCircleOutlined",0,n],518617)},848725,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"}))});e.s(["EyeIcon",0,r],848725)},78085,e=>{"use strict";var t=e.i(290571),r=e.i(103471),a=e.i(888288),o=e.i(271645),n=e.i(444755),i=e.i(673706);let l=(0,i.makeClassName)("Textarea"),s=o.default.forwardRef((e,s)=>{let{value:d,defaultValue:c="",placeholder:u="Type...",error:m=!1,errorMessage:g,disabled:p=!1,className:f,onChange:b,onValueChange:h,autoHeight:v=!1}=e,C=(0,t.__rest)(e,["value","defaultValue","placeholder","error","errorMessage","disabled","className","onChange","onValueChange","autoHeight"]),[x,k]=(0,a.default)(c,d),w=(0,o.useRef)(null),y=(0,r.hasValue)(x);return(0,o.useEffect)(()=>{let e=w.current;if(v&&e){e.style.height="60px";let t=e.scrollHeight;e.style.height=t+"px"}},[v,w,x]),o.default.createElement(o.default.Fragment,null,o.default.createElement("textarea",Object.assign({ref:(0,i.mergeRefs)([w,s]),value:x,placeholder:u,disabled:p,className:(0,n.tremorTwMerge)(l("Textarea"),"w-full flex items-center outline-none rounded-tremor-default px-3 py-2 text-tremor-default focus:ring-2 transition duration-100 border","shadow-tremor-input focus:border-tremor-brand-subtle focus:ring-tremor-brand-muted","dark:shadow-dark-tremor-input focus:dark:border-dark-tremor-brand-subtle focus:dark:ring-dark-tremor-brand-muted",(0,r.getSelectButtonColors)(y,p,m),p?"placeholder:text-tremor-content-subtle dark:placeholder:text-dark-tremor-content-subtle":"placeholder:text-tremor-content dark:placeholder:text-dark-tremor-content",f),"data-testid":"text-area",onChange:e=>{null==b||b(e),k(e.target.value),null==h||h(e.target.value)}},C)),m&&g?o.default.createElement("p",{className:(0,n.tremorTwMerge)(l("errorMessage"),"text-sm text-red-500 mt-1")},g):null)});s.displayName="Textarea",e.s(["Textarea",0,s],78085)},102616,e=>{"use strict";var t=e.i(843476),r=e.i(760221),a=e.i(135214);e.s(["default",0,()=>{let{accessToken:e,userRole:o}=(0,a.default)();return(0,t.jsx)(r.default,{accessToken:e,userRole:o})}])}]); \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/_next/static/chunks/0jg_5ratzsghh.js b/litellm/proxy/_experimental/out/_next/static/chunks/0jg_5ratzsghh.js new file mode 100644 index 00000000000..b31c93566dc --- /dev/null +++ b/litellm/proxy/_experimental/out/_next/static/chunks/0jg_5ratzsghh.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,888288,e=>{"use strict";var t=e.i(271645);e.s(["default",0,(e,r)=>{let l=void 0!==r,[a,s]=(0,t.useState)(e);return[l?r:a,e=>{l||s(e)}]}])},646563,e=>{"use strict";var t=e.i(959013);e.s(["PlusOutlined",()=>t.default])},220508,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor","aria-hidden":"true",ref:r},e),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"}))});e.s(["CheckCircleIcon",0,r],220508)},233538,e=>{"use strict";e.s(["isDisabledReactIssue7711",0,function(e){let t=e.parentElement,r=null;for(;t&&!(t instanceof HTMLFieldSetElement);)t instanceof HTMLLegendElement&&(r=t),t=t.parentElement;let l=(null==t?void 0:t.getAttribute("disabled"))==="";return!(l&&function(e){if(!e)return!1;let t=e.previousElementSibling;for(;null!==t;){if(t instanceof HTMLLegendElement)return!1;t=t.previousElementSibling}return!0}(r))&&l}])},503269,214520,601893,694421,140721,942803,35889,722678,e=>{"use strict";var t=e.i(271645),r=e.i(914189);e.s(["useControllable",0,function(e,l,a){let[s,n]=(0,t.useState)(a),i=void 0!==e,o=(0,t.useRef)(i),d=(0,t.useRef)(!1),c=(0,t.useRef)(!1);return!i||o.current||d.current?i||!o.current||c.current||(c.current=!0,o.current=i,console.error("A component is changing from controlled to uncontrolled. This may be caused by the value changing from a defined value to undefined, which should not happen.")):(d.current=!0,o.current=i,console.error("A component is changing from uncontrolled to controlled. This may be caused by the value changing from undefined to a defined value, which should not happen.")),[i?e:s,(0,r.useEvent)(e=>(i||n(e),null==l?void 0:l(e)))]}],503269),e.s(["useDefaultValue",0,function(e){let[r]=(0,t.useState)(e);return r}],214520);let l=(0,t.createContext)(void 0);function a(){return(0,t.useContext)(l)}e.s(["useDisabled",0,a],601893);var s=e.i(174080),n=e.i(746725);function i(e={},t=null,r=[]){for(let[l,a]of Object.entries(e))!function e(t,r,l){if(Array.isArray(l))for(let[a,s]of l.entries())e(t,o(r,a.toString()),s);else l instanceof Date?t.push([r,l.toISOString()]):"boolean"==typeof l?t.push([r,l?"1":"0"]):"string"==typeof l?t.push([r,l]):"number"==typeof l?t.push([r,`${l}`]):null==l?t.push([r,""]):i(l,r,t)}(r,o(t,l),a);return r}function o(e,t){return e?e+"["+t+"]":t}e.s(["attemptSubmit",0,function(e){var t,r;let l=null!=(t=null==e?void 0:e.form)?t:e.closest("form");if(l){for(let t of l.elements)if(t!==e&&("INPUT"===t.tagName&&"submit"===t.type||"BUTTON"===t.tagName&&"submit"===t.type||"INPUT"===t.nodeName&&"image"===t.type))return void t.click();null==(r=l.requestSubmit)||r.call(l)}},"objectToFormEntries",0,i],694421);var d=e.i(700020),c=e.i(2788);let u=(0,t.createContext)(null);function m({children:e}){let r=(0,t.useContext)(u);if(!r)return t.default.createElement(t.default.Fragment,null,e);let{target:l}=r;return l?(0,s.createPortal)(t.default.createElement(t.default.Fragment,null,e),l):null}function f({setForm:e,formId:r}){return(0,t.useEffect)(()=>{if(r){let t=document.getElementById(r);t&&e(t)}},[e,r]),r?null:t.default.createElement(c.Hidden,{features:c.HiddenFeatures.Hidden,as:"input",type:"hidden",hidden:!0,readOnly:!0,ref:t=>{if(!t)return;let r=t.closest("form");r&&e(r)}})}e.s(["FormFields",0,function({data:e,form:r,disabled:l,onReset:a,overrides:s}){let[o,u]=(0,t.useState)(null),g=(0,n.useDisposables)();return(0,t.useEffect)(()=>{if(a&&o)return g.addEventListener(o,"reset",a)},[o,r,a]),t.default.createElement(m,null,t.default.createElement(f,{setForm:u,formId:r}),i(e).map(([e,a])=>t.default.createElement(c.Hidden,{features:c.HiddenFeatures.Hidden,...(0,d.compact)({key:e,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:r,disabled:l,name:e,value:a,...s})})))}],140721);let g=(0,t.createContext)(void 0);function p(){return(0,t.useContext)(g)}e.s(["useProvidedId",0,p],942803);var h=e.i(835696),x=e.i(294316);let b=(0,t.createContext)(null);b.displayName="DescriptionContext";let y=Object.assign((0,d.forwardRefWithAs)(function(e,r){let l=(0,t.useId)(),s=a(),{id:n=`headlessui-description-${l}`,...i}=e,o=function e(){let r=(0,t.useContext)(b);if(null===r){let t=Error("You used a component, but it is not inside a relevant parent.");throw Error.captureStackTrace&&Error.captureStackTrace(t,e),t}return r}(),c=(0,x.useSyncRefs)(r);(0,h.useIsoMorphicEffect)(()=>o.register(n),[n,o.register]);let u=s||!1,m=(0,t.useMemo)(()=>({...o.slot,disabled:u}),[o.slot,u]),f={ref:c,...o.props,id:n};return(0,d.useRender)()({ourProps:f,theirProps:i,slot:m,defaultTag:"p",name:o.name||"Description"})}),{});e.s(["Description",0,y,"useDescribedBy",0,function(){var e,r;return null!=(r=null==(e=(0,t.useContext)(b))?void 0:e.value)?r:void 0},"useDescriptions",0,function(){let[e,l]=(0,t.useState)([]);return[e.length>0?e.join(" "):void 0,(0,t.useMemo)(()=>function(e){let a=(0,r.useEvent)(e=>(l(t=>[...t,e]),()=>l(t=>{let r=t.slice(),l=r.indexOf(e);return -1!==l&&r.splice(l,1),r}))),s=(0,t.useMemo)(()=>({register:a,slot:e.slot,name:e.name,props:e.props,value:e.value}),[a,e.slot,e.name,e.props,e.value]);return t.default.createElement(b.Provider,{value:s},e.children)},[l])]}],35889);let v=(0,t.createContext)(null);function j(e){var r,l,a;let s=null!=(l=null==(r=(0,t.useContext)(v))?void 0:r.value)?l:void 0;return(null!=(a=null==e?void 0:e.length)?a:0)>0?[s,...e].filter(Boolean).join(" "):s}v.displayName="LabelContext";let k=Object.assign((0,d.forwardRefWithAs)(function(e,l){var s;let n=(0,t.useId)(),i=function e(){let r=(0,t.useContext)(v);if(null===r){let t=Error("You used a