diff --git a/apps/beeai-ui/package.json b/apps/beeai-ui/package.json index 67348395..6b5ceaa1 100644 --- a/apps/beeai-ui/package.json +++ b/apps/beeai-ui/package.json @@ -10,7 +10,8 @@ "check": "prettier --log-level silent --check src && eslint src && tsc --noEmit && stylelint src/styles", "fix": "prettier --log-level silent --write src && eslint --fix src && stylelint --fix=lax src/styles", "preview": "vite preview", - "clean": "rm -rf node_modules && rm -rf dist" + "clean": "rm -rf node_modules && rm -rf dist", + "schema:generate": "pnpm dlx openapi-typescript 'http://localhost:8333/api/v1/openapi.json' -o ./src/api/schema.d.ts --alphabetize" }, "exports": { ".": "./src/index.ts" @@ -26,9 +27,11 @@ "@carbon/motion": "^11.24.0", "@carbon/react": "^1.75.0", "@carbon/styles": "^1.74.0", + "@floating-ui/react": "^0.27.4", "@i-am-bee/acp-sdk": "^0.0.1", "@i-am-bee/beeai-sdk": "workspace:*", "@ibm/plex": "^6.4.1", + "@radix-ui/react-slot": "^1.1.2", "@tanstack/react-query": "^5.66.0", "@types/react-resizable": "^3.0.8", "clsx": "^2.1.1", @@ -39,6 +42,7 @@ "lottie-react": "^2.4.1", "mdast-util-to-hast": "^13.1.0", "millify": "^6.1.0", + "openapi-fetch": "^0.13.4", "pluralize": "^8.0.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/apps/beeai-ui/src/@types/utils.ts b/apps/beeai-ui/src/@types/utils.ts new file mode 100644 index 00000000..51d966fa --- /dev/null +++ b/apps/beeai-ui/src/@types/utils.ts @@ -0,0 +1,72 @@ +/** + * Copyright 2025 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { paths } from '#api/schema.js'; + +export type ApiResponse< + Path extends keyof paths, + Method extends keyof paths[Path] & ('get' | 'post' | 'delete') = 'get', + ContentType extends 'application/json' | 'text/event-stream' = 'application/json', +> = paths[Path][Method] extends { + responses: { + 200: { + content: { + 'application/json'?: infer JSON; + 'text/event-stream'?: infer EventStream; + }; + }; + }; +} + ? ContentType extends 'application/json' + ? JSON extends Record + ? JSON + : never + : EventStream extends Record + ? EventStream + : never + : never; + +export type ApiRequestBody< + Path extends keyof paths, + Method extends keyof paths[Path] & ('get' | 'post' | 'delete' | 'put') = 'post', + ContentType extends 'application/json' | 'multipart/form-data' = 'application/json', +> = paths[Path][Method] extends { + requestBody?: { + content: { + 'application/json'?: infer JSON; + 'multipart/form-data'?: infer FormData; + }; + }; +} + ? ContentType extends 'application/json' + ? JSON extends Record + ? JSON + : never + : FormData extends Record + ? FormData + : never + : never; + +export type ApiQuery< + Path extends keyof paths, + Method extends keyof paths[Path] & 'get' = 'get', +> = paths[Path][Method] extends { + parameters: { query?: infer Q }; +} + ? Q extends Record + ? Q + : never + : never; diff --git a/apps/beeai-ui/src/App.tsx b/apps/beeai-ui/src/App.tsx index 2dcea85b..4ec46447 100644 --- a/apps/beeai-ui/src/App.tsx +++ b/apps/beeai-ui/src/App.tsx @@ -14,13 +14,13 @@ * limitations under the License. */ -import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { ErrorBoundary } from 'react-error-boundary'; import { BrowserRouter, Route, Routes } from 'react-router'; import { ErrorFallback } from './components/fallbacks/ErrorFallback'; import { AppLayout } from './components/layouts/AppLayout'; import { MCPClientProvider } from './contexts/MCPClient/MCPClientProvider'; import { ModalProvider } from './contexts/Modal/ModalProvider'; +import { QueryProvider } from './contexts/QueryProvider/QueryProvider'; import { ToastProvider } from './contexts/Toast/ToastProvider'; import { Agents } from './pages/Agents'; import { Agent } from './pages/agents/Agent'; @@ -29,14 +29,12 @@ import { NotFound } from './pages/NotFound'; import { AgentRunPage } from './pages/run/AgentRunPage'; import { routeDefinitions } from './utils/router'; -const queryClient = new QueryClient(); - export function App() { return ( - - - + + + @@ -51,9 +49,9 @@ export function App() { - - - + + + ); } diff --git a/apps/beeai-ui/src/api/index.ts b/apps/beeai-ui/src/api/index.ts index bfd73ebd..1268f8bf 100644 --- a/apps/beeai-ui/src/api/index.ts +++ b/apps/beeai-ui/src/api/index.ts @@ -14,6 +14,9 @@ * limitations under the License. */ -import ky from 'ky'; +import createClient from 'openapi-fetch'; +import { paths } from './schema'; -export const api = ky.create({ prefixUrl: '/api/v1/' }); +export const api = createClient({ + baseUrl: '/', +}); diff --git a/apps/beeai-ui/src/api/schema.d.ts b/apps/beeai-ui/src/api/schema.d.ts new file mode 100644 index 00000000..11e79906 --- /dev/null +++ b/apps/beeai-ui/src/api/schema.d.ts @@ -0,0 +1,618 @@ +/** + * Copyright 2025 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +export interface paths { + '/api/v1/env': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** List Env */ + get: operations['list_env_api_v1_env_get']; + /** Update Env */ + put: operations['update_env_api_v1_env_put']; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/api/v1/env/sync': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + /** + * Sync Provider Repository + * @description Sync external changes to an env repository. + */ + put: operations['sync_provider_repository_api_v1_env_sync_put']; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/api/v1/provider': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** List Providers */ + get: operations['list_providers_api_v1_provider_get']; + put?: never; + /** Create Provider */ + post: operations['create_provider_api_v1_provider_post']; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/api/v1/provider/delete': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** Delete Provider */ + post: operations['delete_provider_api_v1_provider_delete_post']; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/api/v1/provider/preview': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** Preview Provider */ + post: operations['preview_provider_api_v1_provider_preview_post']; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/api/v1/provider/sync': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + /** + * Sync Provider Repository + * @description Sync external changes to a provider repository. + */ + put: operations['sync_provider_repository_api_v1_provider_sync_put']; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; +} +export type webhooks = Record; +export interface components { + schemas: { + /** ContainerProvider */ + ContainerProvider: { + /** Base File Path */ + base_file_path?: string | null; + /** + * Command + * @description Command with arguments to run + */ + command?: string[]; + /** + * Driver + * @default container + * @constant + */ + driver: 'container'; + /** + * Env + * @description For configuration -- passed to the process + */ + env?: components['schemas']['EnvVar'][]; + /** + * Image + * @description Container image identifier, e.g. 'docker.io/something/here:latest' + */ + image: string; + /** Manifestversion */ + manifestVersion: number; + /** + * Mcpendpoint + * @description Valid for serverType http + * @default /sse + */ + mcpEndpoint: string; + /** + * @description Valid for serverType http + * @default sse + */ + mcpTransport: components['schemas']['McpTransport']; + /** @default stdio */ + serverType: components['schemas']['ServerType']; + /** Ui */ + ui?: string[]; + }; + /** CreateProviderRequest */ + CreateProviderRequest: { + /** Location */ + location: components['schemas']['GitHubManifestLocation'] | components['schemas']['LocalFileManifestLocation']; + }; + /** EnvVar */ + EnvVar: { + /** Description */ + description: string; + /** Name */ + name: string; + /** + * Required + * @default false + */ + required: boolean; + }; + /** GitHubManifestLocation */ + GitHubManifestLocation: components['schemas']['GithubUrl']; + /** GithubUrl */ + GithubUrl: string; + /** HTTPValidationError */ + HTTPValidationError: { + /** Detail */ + detail?: components['schemas']['ValidationError'][]; + }; + /** + * LoadedProviderStatus + * @enum {string} + */ + LoadedProviderStatus: 'initializing' | 'ready' | 'error' | 'unsupported'; + /** LoadProviderErrorMessage */ + LoadProviderErrorMessage: { + /** Message */ + message: string; + }; + /** + * LocalFileManifestLocation + * Format: uri + */ + LocalFileManifestLocation: string; + /** + * McpTransport + * @enum {string} + */ + McpTransport: 'sse' | 'none'; + /** NodeJsProvider */ + NodeJsProvider: { + /** Base File Path */ + base_file_path?: string | null; + /** + * Command + * @description Command with arguments to run + */ + command?: string[]; + /** + * Driver + * @default nodejs + * @constant + */ + driver: 'nodejs'; + /** + * Env + * @description For configuration -- passed to the process + */ + env?: components['schemas']['EnvVar'][]; + /** Manifestversion */ + manifestVersion: number; + /** + * Mcpendpoint + * @description Valid for serverType http + * @default /sse + */ + mcpEndpoint: string; + /** + * @description Valid for serverType http + * @default sse + */ + mcpTransport: components['schemas']['McpTransport']; + /** + * Package + * @description NPM package or "git+https://..." URL, or "file://..." URL (not allowed in remote manifests) + */ + package?: string; + /** @default stdio */ + serverType: components['schemas']['ServerType']; + /** Ui */ + ui?: string[]; + }; + /** PaginatedResponse[ProviderWithStatus] */ + PaginatedResponse_ProviderWithStatus_: { + /** Items */ + items: components['schemas']['ProviderWithStatus'][]; + /** Total Count */ + total_count: number; + }; + /** ProviderWithStatus */ + ProviderWithStatus: { + /** Id */ + id: string; + last_error?: components['schemas']['LoadProviderErrorMessage'] | null; + /** Manifest */ + manifest: + | components['schemas']['UnmanagedProvider'] + | components['schemas']['NodeJsProvider'] + | components['schemas']['PythonProvider'] + | components['schemas']['ContainerProvider']; + /** Missing Configuration */ + missing_configuration?: components['schemas']['EnvVar'][]; + registry?: components['schemas']['GithubUrl'] | null; + status: components['schemas']['LoadedProviderStatus']; + } & { + [key: string]: unknown; + }; + /** PythonProvider */ + PythonProvider: { + /** Base File Path */ + base_file_path?: string | null; + /** + * Command + * @description Command with arguments to run + */ + command: string[]; + /** + * Driver + * @default python + * @constant + */ + driver: 'python'; + /** + * Env + * @description For configuration -- passed to the process + */ + env?: components['schemas']['EnvVar'][]; + /** Manifestversion */ + manifestVersion: number; + /** + * Mcpendpoint + * @description Valid for serverType http + * @default /sse + */ + mcpEndpoint: string; + /** + * @description Valid for serverType http + * @default sse + */ + mcpTransport: components['schemas']['McpTransport']; + /** + * Package + * @description PyPI package or "git+https://..." URL, or "file://..." URL (not allowed in remote manifests) + */ + package?: string; + /** Pythonversion */ + pythonVersion?: string | null; + /** @default stdio */ + serverType: components['schemas']['ServerType']; + /** Ui */ + ui?: string[]; + }; + /** + * ServerType + * @enum {string} + */ + ServerType: 'stdio' | 'http'; + /** UnmanagedProvider */ + UnmanagedProvider: { + /** Base File Path */ + base_file_path?: string | null; + /** + * Driver + * @default unmanaged + * @constant + */ + driver: 'unmanaged'; + /** + * Env + * @description Not supported for unmanaged provider + */ + env?: components['schemas']['EnvVar'][]; + /** Manifestversion */ + manifestVersion: number; + /** + * Mcpendpoint + * @description Valid for serverType http + * @default /sse + */ + mcpEndpoint: string; + /** + * @description Valid for serverType http + * @default sse + */ + mcpTransport: components['schemas']['McpTransport']; + /** + * Servertype + * @default http + * @constant + */ + serverType: 'http'; + /** Ui */ + ui?: string[]; + }; + /** UpdateEnvRequest */ + UpdateEnvRequest: { + /** Env */ + env: { + [key: string]: string; + }; + }; + /** ValidationError */ + ValidationError: { + /** Location */ + loc: (string | number)[]; + /** Message */ + msg: string; + /** Error Type */ + type: string; + }; + }; + responses: never; + parameters: never; + requestBodies: never; + headers: never; + pathItems: never; +} +export type $defs = Record; +export interface operations { + list_env_api_v1_env_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': unknown; + }; + }; + }; + }; + update_env_api_v1_env_put: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + 'application/json': components['schemas']['UpdateEnvRequest']; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['HTTPValidationError']; + }; + }; + }; + }; + sync_provider_repository_api_v1_env_sync_put: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': unknown; + }; + }; + }; + }; + list_providers_api_v1_provider_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['PaginatedResponse_ProviderWithStatus_']; + }; + }; + }; + }; + create_provider_api_v1_provider_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + 'application/json': components['schemas']['CreateProviderRequest']; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ProviderWithStatus']; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['HTTPValidationError']; + }; + }; + }; + }; + delete_provider_api_v1_provider_delete_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + 'application/json': components['schemas']['CreateProviderRequest']; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['HTTPValidationError']; + }; + }; + }; + }; + preview_provider_api_v1_provider_preview_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + 'application/json': components['schemas']['CreateProviderRequest']; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['ProviderWithStatus']; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['HTTPValidationError']; + }; + }; + }; + }; + sync_provider_repository_api_v1_provider_sync_put: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': unknown; + }; + }; + }; + }; +} diff --git a/apps/beeai-ui/src/components/ErrorMessage/ErrorMessage.module.scss b/apps/beeai-ui/src/components/ErrorMessage/ErrorMessage.module.scss index 99592469..5b1203d6 100644 --- a/apps/beeai-ui/src/components/ErrorMessage/ErrorMessage.module.scss +++ b/apps/beeai-ui/src/components/ErrorMessage/ErrorMessage.module.scss @@ -14,25 +14,8 @@ * limitations under the License. */ -.root { - inline-size: 100%; - max-inline-size: none; -} - .body { display: flex; flex-direction: column; gap: $spacing-04; - margin-block-start: $spacing-02; - - p { - font-size: rem(14px); - } - - button { - max-block-size: rem(20px); - } - :global(.cds--inline-loading) { - min-block-size: 0; - } } diff --git a/apps/beeai-ui/src/components/ErrorMessage/ErrorMessage.tsx b/apps/beeai-ui/src/components/ErrorMessage/ErrorMessage.tsx index 354416f7..8ba0e7be 100644 --- a/apps/beeai-ui/src/components/ErrorMessage/ErrorMessage.tsx +++ b/apps/beeai-ui/src/components/ErrorMessage/ErrorMessage.tsx @@ -19,7 +19,7 @@ import { ReactNode } from 'react'; import classes from './ErrorMessage.module.scss'; interface Props { - title: string; + title?: string; subtitle?: string; onRetry?: () => void; isRefetching?: boolean; @@ -28,16 +28,19 @@ interface Props { export function ErrorMessage({ title, subtitle, onRetry, isRefetching, children }: Props) { return ( - -
- {subtitle &&

{subtitle}

} - {onRetry && ( - - )} - {children} -
+ + {(subtitle || onRetry) && ( +
+ {subtitle &&

{subtitle}

} + + {onRetry && ( + + )} + {children} +
+ )}
); } diff --git a/apps/beeai-ui/src/components/MarkdownContent/MarkdownContent.module.scss b/apps/beeai-ui/src/components/MarkdownContent/MarkdownContent.module.scss index 1b3307df..bdee0a07 100644 --- a/apps/beeai-ui/src/components/MarkdownContent/MarkdownContent.module.scss +++ b/apps/beeai-ui/src/components/MarkdownContent/MarkdownContent.module.scss @@ -73,6 +73,10 @@ } } + pre { + white-space: pre-wrap; + } + code { background-color: $layer-02; font-size: math.div(16em, 18); diff --git a/apps/beeai-ui/src/components/MarkdownContent/plugins/rehypeCarbonLists.ts b/apps/beeai-ui/src/components/MarkdownContent/plugins/rehypeCarbonLists.ts index 3ce30e9c..a49c10a6 100644 --- a/apps/beeai-ui/src/components/MarkdownContent/plugins/rehypeCarbonLists.ts +++ b/apps/beeai-ui/src/components/MarkdownContent/plugins/rehypeCarbonLists.ts @@ -18,21 +18,19 @@ import { Root } from 'hast'; import { visit } from 'unist-util-visit'; export function rehypeCarbonLists() { - // we cannot use `usePrefix` obviously but this doesn't change anyway - const prefix = 'cds'; return (tree: Root) => { visit(tree, (node, _, parent) => { if (node.type !== 'element') return; if (node.tagName === 'li') { - node.properties.className = `${prefix}--list__item`; + node.properties.className = 'cds--list__item'; } if (node.tagName === 'ul' || node.tagName === 'ol') { - let className = node.tagName === 'ul' ? `${prefix}--list--unordered` : `${prefix}--list--ordered--native`; + let className = node.tagName === 'ul' ? 'cds--list--unordered' : 'cds--list--ordered--native'; const isNested = parent?.type === 'element' && parent.tagName === 'li'; if (isNested) { - className += ` ${prefix}--list--nested`; + className += ' cds--list--nested'; } node.properties.className = className; } diff --git a/apps/beeai-ui/src/components/Modal/Modal.module.scss b/apps/beeai-ui/src/components/Modal/Modal.module.scss index 6619da9b..62e24599 100644 --- a/apps/beeai-ui/src/components/Modal/Modal.module.scss +++ b/apps/beeai-ui/src/components/Modal/Modal.module.scss @@ -25,10 +25,11 @@ scrollbar-gutter: stable; overflow-y: auto; } + :global(.cds--modal-container) { inline-size: 100%; box-shadow: $box-shadow; - border-radius: $spacing-03; + border-radius: $border-radius; min-block-size: 0; margin-inline: auto; max-inline-size: rem(608px); @@ -50,20 +51,33 @@ max-inline-size: rem(928px); } } + :global(.cds--modal-header) { padding: $spacing-05; + margin-block-end: 0; h2 { font-size: rem(32px); - line-height: math.div(41.6, 32); - letter-spacing: rem(0.16px); + line-height: math.div(42, 32); font-weight: 400; + padding-inline-end: 0; + + * { + margin-block-start: $spacing-05; + } } } + + :global(.cds--modal-header:has(.cds--modal-close-button)) { + padding-inline-end: $spacing-10; + } + + :global(.cds--modal-header + .cds--modal-content) { + padding-block-start: 0; + } + :global(.cds--modal-content) { - padding: 0 $spacing-05 $spacing-05; + padding: $spacing-05; &:global(.cds--modal-scroll-content) { mask-image: none; - padding-block-end: $spacing-09; border-block-end: 0; > :last-child { margin-block-end: 0; @@ -73,9 +87,14 @@ outline: none; } } + + :global(.cds--modal-content:has(+ .cds--modal-footer)) { + padding-block-end: 0; + } + :global(.cds--modal-footer) { border-radius: 0 0 $spacing-03 $spacing-03; - padding: $spacing-03 $spacing-05 $spacing-05 $spacing-05; + padding: $spacing-06 $spacing-05 $spacing-05; &:global(.cds--btn-set) { block-size: auto; @@ -84,18 +103,27 @@ :global(.cds--btn) { block-size: rem(48px); - padding-block: 0; display: flex; align-items: center; flex: 0 1 auto; white-space: nowrap; inline-size: auto; - // padding-inline-end: $spacing-10; - box-shadow: none !important; - + &:not(:focus) { + box-shadow: none; + } + &, + &:global(:not(.cds--skeleton)) { + padding-block: 0; + } &:last-child { flex-grow: 0; } + &:global(.cds--btn--ghost) { + padding-inline-end: rem(39px); + &:last-child { + padding-inline-end: rem(23px); + } + } } } @@ -104,18 +132,18 @@ background-color: $background-hover; } } + :global(.cds--modal-close-button) { - inset-block-start: $spacing-04; - inset-inline-end: $spacing-04; + inset-block-start: $spacing-03; + inset-inline-end: $spacing-03; :global(.cds--btn) { - block-size: auto; - inline-size: auto; svg { min-inline-size: rem(24px); block-size: rem(24px); } } + :global(.cds--popover) { display: none; } @@ -125,20 +153,29 @@ @include breakpoint-up(md) { .modal { :global(.cds--modal-header) { - padding: $spacing-06 $spacing-07; + padding: $spacing-07; + } + + :global(.cds--modal-header:has(.cds--modal-close-button)) { + padding-inline-end: rem(88px); } :global(.cds--modal-content) { - padding: $spacing-03 $spacing-07 $spacing-07; + padding: $spacing-07; } :global(.cds--modal-footer) { - padding: $spacing-03 $spacing-06 $spacing-06 $spacing-06; + padding: $spacing-09 $spacing-07 $spacing-07; - :global(.cds--btn):global(.cds--btn) { - padding-inline-end: $spacing-10; + :global(.cds--btn) { + padding-inline-end: rem(49px); padding-block: 0; } } + + :global(.cds--modal-close-button) { + inset-block-start: rem(20px); + inset-inline-end: rem(20px); + } } } diff --git a/apps/beeai-ui/src/components/Tooltip/Tooltip.module.scss b/apps/beeai-ui/src/components/Tooltip/Tooltip.module.scss new file mode 100644 index 00000000..5479d211 --- /dev/null +++ b/apps/beeai-ui/src/components/Tooltip/Tooltip.module.scss @@ -0,0 +1,37 @@ +/** + * Copyright 2025 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +.root { + z-index: z('modal'); +} + +.content { + @include type-style(label-02); + background-color: $background-inverse; + color: $text-inverse; + border-radius: $border-radius; + max-inline-size: rem(264px); + .root.sm & { + padding: $spacing-02 $spacing-03; + } + .root.md & { + padding: $spacing-03 $spacing-05; + } +} + +.arrow { + fill: $background-inverse; +} diff --git a/apps/beeai-ui/src/components/Tooltip/Tooltip.tsx b/apps/beeai-ui/src/components/Tooltip/Tooltip.tsx new file mode 100644 index 00000000..29e71101 --- /dev/null +++ b/apps/beeai-ui/src/components/Tooltip/Tooltip.tsx @@ -0,0 +1,118 @@ +/** + * Copyright 2025 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + arrow, + autoUpdate, + flip, + FloatingArrow, + FloatingPortal, + offset, + Placement, + safePolygon, + shift, + useDismiss, + useFloating, + useFocus, + useHover, + useInteractions, + useRole, +} from '@floating-ui/react'; +import { Slot } from '@radix-ui/react-slot'; +import clsx from 'clsx'; +import { PropsWithChildren, ReactNode, useRef, useState } from 'react'; +import classes from './Tooltip.module.scss'; + +interface Props { + content: ReactNode; + placement?: Placement; + size?: 'sm' | 'md'; + asChild?: boolean; +} + +export function Tooltip({ content, placement = 'bottom', size = 'md', asChild, children }: PropsWithChildren) { + const arrowRef = useRef(null); + + const SIZE = { + sm: { + ArrowWidth: 8, + ArrowHeight: 4, + Offset: 3, + }, + md: { + ArrowWidth: 12, + ArrowHeight: 6, + Offset: 8, + }, + }[size]; + + const [isOpen, setIsOpen] = useState(false); + + const { refs, floatingStyles, context } = useFloating({ + placement, + open: isOpen, + onOpenChange: setIsOpen, + whileElementsMounted: autoUpdate, + middleware: [ + offset(SIZE.ArrowHeight + SIZE.Offset), + flip({ + fallbackAxisSideDirection: 'start', + }), + shift(), + arrow({ + element: arrowRef, + }), + ], + }); + + const hover = useHover(context, { move: false, handleClose: safePolygon() }); + const focus = useFocus(context); + const dismiss = useDismiss(context); + const role = useRole(context, { role: 'tooltip' }); + + const { getReferenceProps, getFloatingProps } = useInteractions([hover, focus, dismiss, role]); + + const Comp = asChild ? Slot : 'button'; + + return ( + <> + + {children} + + + {isOpen && ( + +
+
{content}
+ + +
+
+ )} + + ); +} diff --git a/apps/beeai-ui/src/components/layouts/AppFooter.module.scss b/apps/beeai-ui/src/components/layouts/AppFooter.module.scss index 0f81a793..62cf779f 100644 --- a/apps/beeai-ui/src/components/layouts/AppFooter.module.scss +++ b/apps/beeai-ui/src/components/layouts/AppFooter.module.scss @@ -20,5 +20,5 @@ justify-content: flex-end; align-items: center; padding-block: $spacing-07; - border-block-start: 1px solid $border-subtle; + border-block-start: 1px solid $border-subtle-00; } diff --git a/apps/beeai-ui/src/components/layouts/AppHeader.module.scss b/apps/beeai-ui/src/components/layouts/AppHeader.module.scss index 8ae15ef3..e879b1d0 100644 --- a/apps/beeai-ui/src/components/layouts/AppHeader.module.scss +++ b/apps/beeai-ui/src/components/layouts/AppHeader.module.scss @@ -18,7 +18,7 @@ position: sticky; inset-block-start: 0; background-color: $background; - border-block-end: 1px solid $border-subtle; + border-block-end: 1px solid $border-subtle-00; } .holder { diff --git a/apps/beeai-ui/src/components/layouts/AppLayout.module.scss b/apps/beeai-ui/src/components/layouts/AppLayout.module.scss index 33e482d5..ad83ea1f 100644 --- a/apps/beeai-ui/src/components/layouts/AppLayout.module.scss +++ b/apps/beeai-ui/src/components/layouts/AppLayout.module.scss @@ -35,7 +35,6 @@ overflow-y: auto; scrollbar-gutter: stable; grid-area: main; - scroll-behavior: smooth; view-transition-name: main; } diff --git a/apps/beeai-ui/src/contexts/QueryProvider/QueryProvider.tsx b/apps/beeai-ui/src/contexts/QueryProvider/QueryProvider.tsx new file mode 100644 index 00000000..31c7abb5 --- /dev/null +++ b/apps/beeai-ui/src/contexts/QueryProvider/QueryProvider.tsx @@ -0,0 +1,59 @@ +/** + * Copyright 2025 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { useHandleError } from '#hooks/useHandleError.ts'; +import { matchQuery, MutationCache, QueryCache, QueryClient, QueryClientProvider } from '@tanstack/react-query'; +import { PropsWithChildren } from 'react'; +import { HandleError } from './types'; + +const createQueryClient = ({ handleError }: { handleError: HandleError }) => { + const queryClient = new QueryClient({ + defaultOptions: { + queries: { + staleTime: 60 * 1000, + }, + }, + queryCache: new QueryCache({ + onError: (error, query) => { + handleError(error, { + errorToast: query.meta?.errorToast, + }); + }, + }), + mutationCache: new MutationCache({ + onError: (error, _variables, _context, mutation) => { + handleError(error, { + errorToast: mutation.meta?.errorToast, + }); + }, + onSuccess: (_data, _variables, _context, mutation) => { + queryClient.invalidateQueries({ + predicate: (query) => + mutation.meta?.invalidates?.some((queryKey) => matchQuery({ queryKey }, query)) ?? false, + }); + }, + }), + }); + + return queryClient; +}; + +export function QueryProvider({ children }: PropsWithChildren) { + const handleError = useHandleError(); + const queryClient = createQueryClient({ handleError }); + + return {children}; +} diff --git a/apps/beeai-ui/src/contexts/QueryProvider/types.ts b/apps/beeai-ui/src/contexts/QueryProvider/types.ts new file mode 100644 index 00000000..a8433237 --- /dev/null +++ b/apps/beeai-ui/src/contexts/QueryProvider/types.ts @@ -0,0 +1,38 @@ +/** + * Copyright 2025 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { useHandleError } from '#hooks/useHandleError.ts'; +import { QueryKey } from '@tanstack/react-query'; + +export interface QueryMetadata extends Record { + errorToast?: + | false + | { + title?: string; + includeErrorMessage?: boolean; + }; +} + +export type HandleError = ReturnType; + +declare module '@tanstack/react-query' { + interface Register { + queryMeta: QueryMetadata; + mutationMeta: QueryMetadata & { + invalidates?: QueryKey[]; + }; + } +} diff --git a/apps/beeai-ui/src/contexts/Toast/ToastProvider.module.scss b/apps/beeai-ui/src/contexts/Toast/ToastProvider.module.scss index c0782a5f..0863189a 100644 --- a/apps/beeai-ui/src/contexts/Toast/ToastProvider.module.scss +++ b/apps/beeai-ui/src/contexts/Toast/ToastProvider.module.scss @@ -15,25 +15,35 @@ */ .toasts { + @include scrollbar(); + display: flex; + flex-direction: column; + row-gap: $spacing-03; position: fixed; - inset-block-start: 0; - inset-inline-end: 0; - max-inline-size: 100%; - // Set the z-index between the modal and dropdown. + inset-block-start: rem(49px); + inset-inline-end: $spacing-05; + max-block-size: calc(100% - rem(49px)); + padding: $spacing-05; + overflow-y: auto; z-index: z('modal') + 1; - > * { - margin-block-start: $spacing-03; - margin-inline-end: $spacing-03; - } - :global(.cds--toast-notification) { - inline-size: rem(360px); - max-inline-size: 100%; + inline-size: rem(288px); } - :global(.cds--toast-notification__details) { - flex-grow: 1; - margin-inline-end: 0; +} + +.clearButton { + display: flex; + margin-inline-start: auto; + background-color: $layer; + border-radius: $border-radius; + position: sticky; + inset-block-start: 0; + z-index: 1; + :global(.cds--btn) { + box-shadow: $box-shadow; + padding-inline-end: rem(15px); + background-color: $layer; } } diff --git a/apps/beeai-ui/src/contexts/Toast/ToastProvider.tsx b/apps/beeai-ui/src/contexts/Toast/ToastProvider.tsx index eb454d34..09d6ee94 100644 --- a/apps/beeai-ui/src/contexts/Toast/ToastProvider.tsx +++ b/apps/beeai-ui/src/contexts/Toast/ToastProvider.tsx @@ -14,7 +14,8 @@ * limitations under the License. */ -import { ToastNotification, usePrefix } from '@carbon/react'; +import { Button, ToastNotification } from '@carbon/react'; +import clsx from 'clsx'; import { PropsWithChildren, useCallback, useMemo, useState } from 'react'; import { v4 as uuid } from 'uuid'; import classes from './ToastProvider.module.scss'; @@ -22,19 +23,21 @@ import { Toast, ToastContext, ToastWithKey } from './toast-context'; export function ToastProvider({ children }: PropsWithChildren) { const [toasts, setToasts] = useState([]); - const prefix = usePrefix(); - const toastPrefix = `${prefix}--toast-notification`; const addToast = useCallback( (toast: Toast) => { setToasts((existing) => { - const key = uuid(); - const caption = new Date().toLocaleString('en-US', { - hour: '2-digit', - minute: '2-digit', - second: '2-digit', - }); - return [{ caption, ...toast, key }, ...existing]; + const defaults = { + lowContrast: true, + timeout: 10000, + key: uuid(), + caption: new Date().toLocaleString('en-US', { + hour: '2-digit', + minute: '2-digit', + second: '2-digit', + }), + }; + return [{ ...defaults, ...toast }, ...existing]; }); }, [setToasts], @@ -44,20 +47,37 @@ export function ToastProvider({ children }: PropsWithChildren) { return ( {children} +
- {toasts.map(({ key, caption, subtitle, apiError, ...toast }) => ( + {toasts.length > 1 && ( +
+ +
+ )} + + {toasts.map(({ key, icon: Icon, caption, title, subtitle, apiError, ...toast }) => ( { setToasts((existing) => existing.filter((toast) => toast.key !== key)); }} + className={clsx({ 'cds--toast-notification--custom-icon': Icon })} > -
- {subtitle &&
{subtitle}
} - {apiError &&
{apiError}
} -
-
{caption}
+ {Icon && } + + {caption &&
{caption}
} + + {title &&
{title}
} + + {(subtitle || apiError) && ( +
+ {subtitle &&
{subtitle}
} + {apiError &&
{apiError}
} +
+ )}
))}
diff --git a/apps/beeai-ui/src/contexts/Toast/toast-context.ts b/apps/beeai-ui/src/contexts/Toast/toast-context.ts index 12617fca..eab8d1c2 100644 --- a/apps/beeai-ui/src/contexts/Toast/toast-context.ts +++ b/apps/beeai-ui/src/contexts/Toast/toast-context.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { createContext, ReactNode } from 'react'; +import { IconProps } from '@carbon/icons-react/lib/Icon'; +import { ComponentType, createContext, ReactNode } from 'react'; export interface Toast { /** @@ -34,6 +35,7 @@ export interface Toast { timeout?: number; title?: string; apiError?: string; + icon?: ComponentType; } export interface ToastContextValue { diff --git a/apps/beeai-ui/src/hooks/useHandleError.ts b/apps/beeai-ui/src/hooks/useHandleError.ts new file mode 100644 index 00000000..2dc0a0a6 --- /dev/null +++ b/apps/beeai-ui/src/hooks/useHandleError.ts @@ -0,0 +1,41 @@ +/** + * Copyright 2025 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { QueryMetadata } from '#contexts/QueryProvider/types.ts'; +import { useToast } from '#contexts/Toast/index.ts'; +import { useCallback } from 'react'; + +export function useHandleError() { + const { addToast } = useToast(); + + const handleError = useCallback( + (error: unknown, options: QueryMetadata = {}) => { + const { errorToast } = options; + + if (errorToast !== false) { + addToast({ + title: errorToast?.title ?? 'An error occured', + subtitle: error instanceof Error && errorToast?.includeErrorMessage ? error.message : undefined, + }); + } else { + console.error(error); + } + }, + [addToast], + ); + + return handleError; +} diff --git a/apps/beeai-ui/src/main.tsx b/apps/beeai-ui/src/main.tsx index 6a4955a3..384165ff 100644 --- a/apps/beeai-ui/src/main.tsx +++ b/apps/beeai-ui/src/main.tsx @@ -16,8 +16,9 @@ import { StrictMode } from 'react'; import { createRoot } from 'react-dom/client'; -import { App } from './App'; import './styles/style.scss'; +// Needs to be after style.scss +import { App } from './App'; createRoot(document.getElementById('root')!).render( diff --git a/apps/beeai-ui/src/modules/agents/api/queries/useListAgents.ts b/apps/beeai-ui/src/modules/agents/api/queries/useListAgents.ts index ea1b7e6d..cc978d9e 100644 --- a/apps/beeai-ui/src/modules/agents/api/queries/useListAgents.ts +++ b/apps/beeai-ui/src/modules/agents/api/queries/useListAgents.ts @@ -20,16 +20,19 @@ import { agentKeys } from '../keys'; import { Agent, ListAgentsParams } from '../types'; interface Props { + enabled?: boolean; params?: ListAgentsParams; } -export function useListAgents({ params }: Props = {}) { +export function useListAgents({ enabled = true, params }: Props = {}) { const client = useMCPClient(); - return useQuery({ + const query = useQuery({ queryKey: agentKeys.list(params), queryFn: () => client!.listAgents(params), - enabled: Boolean(client), + enabled: Boolean(client) && enabled, select: (data) => data?.agents as Agent[], }); + + return query; } diff --git a/apps/beeai-ui/src/modules/agents/api/types.ts b/apps/beeai-ui/src/modules/agents/api/types.ts index e50be760..dda60431 100644 --- a/apps/beeai-ui/src/modules/agents/api/types.ts +++ b/apps/beeai-ui/src/modules/agents/api/types.ts @@ -20,7 +20,3 @@ import { Metadata } from '@i-am-bee/beeai-sdk/schemas/metadata'; export type Agent = SdkAgent & Metadata; export type ListAgentsParams = ListAgentsRequest['params']; - -export interface CreateProviderBody { - location: string; -} diff --git a/apps/beeai-ui/src/modules/agents/components/AgentCard.module.scss b/apps/beeai-ui/src/modules/agents/components/AgentCard.module.scss index d7513da1..2a053d71 100644 --- a/apps/beeai-ui/src/modules/agents/components/AgentCard.module.scss +++ b/apps/beeai-ui/src/modules/agents/components/AgentCard.module.scss @@ -15,7 +15,7 @@ */ .root { - border-block-end: 1px solid $border-subtle; + border-block-end: 1px solid $border-subtle-00; padding-block: $spacing-06; position: relative; display: flex; @@ -58,12 +58,19 @@ display: flex; flex-direction: column; row-gap: $spacing-05; + + :global(.cds--tag) { + position: relative; + z-index: 1; + } } .description { - @include line-clamp(2); max-inline-size: 90%; color: $text-secondary; font-size: rem(18px); line-height: math.div(24, 18); + &:global(:not(.cds--skeleton__text)) { + @include line-clamp(2); + } } diff --git a/apps/beeai-ui/src/modules/agents/components/AgentMetadata.module.scss b/apps/beeai-ui/src/modules/agents/components/AgentMetadata.module.scss index 8c60b303..f22c0aa5 100644 --- a/apps/beeai-ui/src/modules/agents/components/AgentMetadata.module.scss +++ b/apps/beeai-ui/src/modules/agents/components/AgentMetadata.module.scss @@ -27,6 +27,6 @@ gap: $spacing-02; &:not(:last-child) { padding-inline-end: $spacing-03; - border-inline-end: 1px solid $border-subtle; + border-inline-end: 1px solid $border-subtle-00; } } diff --git a/apps/beeai-ui/src/modules/agents/components/AgentTags.tsx b/apps/beeai-ui/src/modules/agents/components/AgentTags.tsx index 5d0e0063..5df53749 100644 --- a/apps/beeai-ui/src/modules/agents/components/AgentTags.tsx +++ b/apps/beeai-ui/src/modules/agents/components/AgentTags.tsx @@ -15,7 +15,9 @@ */ import { TagsList } from '#components/TagsList/TagsList.tsx'; +import { Tooltip } from '#components/Tooltip/Tooltip.tsx'; import Bee from '#svgs/Bee.svg'; +import { BEE_AI_FRAMEWORK_TAG } from '#utils/constants.ts'; import { isNotNull } from '#utils/helpers.ts'; import { Tag } from '@carbon/react'; import { Agent } from '../api/types'; @@ -32,10 +34,12 @@ export function AgentTags({ agent, className }: Props) { } function AgentTag({ name }: { name: string }) { - return name === 'BeeAI' ? ( - - {name} - + return name === BEE_AI_FRAMEWORK_TAG ? ( + + + {name} + + ) : ( {name} ); diff --git a/apps/beeai-ui/src/modules/agents/components/AgentsFilters.module.scss b/apps/beeai-ui/src/modules/agents/components/AgentsFilters.module.scss index 276bfe57..4ade90a4 100644 --- a/apps/beeai-ui/src/modules/agents/components/AgentsFilters.module.scss +++ b/apps/beeai-ui/src/modules/agents/components/AgentsFilters.module.scss @@ -35,11 +35,6 @@ } } -.frameworks { - display: flex; - gap: $spacing-03; -} - .frameworkAll { &:global(.cds--tag.cds--tag--operational.selected) { background-color: $layer-02; diff --git a/apps/beeai-ui/src/modules/agents/components/AgentsFilters.tsx b/apps/beeai-ui/src/modules/agents/components/AgentsFilters.tsx index 2ce57beb..c85207e5 100644 --- a/apps/beeai-ui/src/modules/agents/components/AgentsFilters.tsx +++ b/apps/beeai-ui/src/modules/agents/components/AgentsFilters.tsx @@ -14,9 +14,11 @@ * limitations under the License. */ +import { TagsList } from '#components/TagsList/TagsList.tsx'; +import { BEE_AI_FRAMEWORK_TAG } from '#utils/constants.ts'; import { isNotNull } from '#utils/helpers.ts'; import { Search } from '@carbon/icons-react'; -import { OperationalTag, TextInput } from '@carbon/react'; +import { OperationalTag, TextInput, TextInputSkeleton } from '@carbon/react'; import clsx from 'clsx'; import { useId, useMemo } from 'react'; import { useFormContext } from 'react-hook-form'; @@ -27,14 +29,20 @@ import classes from './AgentsFilters.module.scss'; export function AgentsFilters() { const id = useId(); const { - agentsQuery: { data }, + agentsQuery: { data, isPending }, } = useAgents(); const { watch, setValue } = useFormContext(); const frameworks = useMemo(() => { if (!data) return []; - return [...new Set(data.map(({ framework }) => framework))].filter(isNotNull); + return [...new Set(data.map(({ framework }) => framework))].filter(isNotNull).sort((a, b) => { + // BeeAI framework should be always first + if (a === BEE_AI_FRAMEWORK_TAG) return -1; + if (b === BEE_AI_FRAMEWORK_TAG) return 1; + + return a.localeCompare(b); + }); }, [data]); const selectFramework = (framework: string | null) => { @@ -43,7 +51,7 @@ export function AgentsFilters() { const selectedFramework = watch('framework'); - return ( + return !isPending ? (
@@ -57,22 +65,39 @@ export function AgentsFilters() { />
-
- selectFramework(null)} - text="All" - className={clsx(classes.frameworkAll, { selected: !isNotNull(selectedFramework) })} - /> - - {frameworks?.map((framework) => ( + selectFramework(framework)} - text={framework} - className={clsx({ selected: selectedFramework === framework })} - /> - ))} -
+ onClick={() => selectFramework(null)} + text="All" + className={clsx(classes.frameworkAll, { selected: !isNotNull(selectedFramework) })} + />, + ...(frameworks + ? frameworks.map((framework) => ( + selectFramework(framework)} + text={framework} + className={clsx({ selected: selectedFramework === framework })} + /> + )) + : []), + ]} + />
+ ) : ( + ); } + +AgentsFilters.Skeleton = function AgentsFiltersSkeleton() { + return ( +
+
+ +
+ + +
+ ); +}; diff --git a/apps/beeai-ui/src/modules/agents/components/AgentsList.tsx b/apps/beeai-ui/src/modules/agents/components/AgentsList.tsx index bfd977a3..bad1dba8 100644 --- a/apps/beeai-ui/src/modules/agents/components/AgentsList.tsx +++ b/apps/beeai-ui/src/modules/agents/components/AgentsList.tsx @@ -15,10 +15,7 @@ */ import { ErrorMessage } from '#components/ErrorMessage/ErrorMessage.tsx'; -import { useModal } from '#contexts/Modal/index.tsx'; -import { ImportAgentsModal } from '#modules/agents/components/ImportAgentsModal.tsx'; -import { Add } from '@carbon/icons-react'; -import { Button } from '@carbon/react'; +import { SkeletonText } from '@carbon/react'; import pluralize from 'pluralize'; import { useFormContext } from 'react-hook-form'; import { useAgents } from '../contexts'; @@ -26,9 +23,9 @@ import { AgentsFiltersParams } from '../contexts/agents-context'; import { useFilteredAgents } from '../hooks/useFilteredAgents'; import { AgentCard } from './AgentCard'; import classes from './AgentsList.module.scss'; +import { ImportAgents } from './ImportAgents'; export function AgentsList() { - const { openModal } = useModal(); const { agentsQuery: { data, isPending, error, refetch, isRefetching }, } = useAgents(); @@ -51,21 +48,18 @@ export function AgentsList() { return (
- {totalCount > 0 && ( -

- Showing {totalCount === filteredCount ? totalCount : `${filteredCount} of ${totalCount}`}{' '} - {pluralize('agent', totalCount)} -

+ {!isPending ? ( + totalCount > 0 && ( +

+ Showing {totalCount === filteredCount ? totalCount : `${filteredCount} of ${totalCount}`}{' '} + {pluralize('agent', totalCount)} +

+ ) + ) : ( + )} - +
    diff --git a/apps/beeai-ui/src/modules/agents/components/ImportAgents.tsx b/apps/beeai-ui/src/modules/agents/components/ImportAgents.tsx new file mode 100644 index 00000000..add2929d --- /dev/null +++ b/apps/beeai-ui/src/modules/agents/components/ImportAgents.tsx @@ -0,0 +1,35 @@ +/** + * Copyright 2025 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { useModal } from '#contexts/Modal/index.tsx'; +import { Add } from '@carbon/icons-react'; +import { Button } from '@carbon/react'; +import { ImportAgentsModal } from './ImportAgentsModal'; + +export function ImportAgents() { + const { openModal } = useModal(); + + return ( + + ); +} diff --git a/apps/beeai-ui/src/modules/agents/components/ImportAgentsModal.module.scss b/apps/beeai-ui/src/modules/agents/components/ImportAgentsModal.module.scss index 99645210..00888c43 100644 --- a/apps/beeai-ui/src/modules/agents/components/ImportAgentsModal.module.scss +++ b/apps/beeai-ui/src/modules/agents/components/ImportAgentsModal.module.scss @@ -14,5 +14,34 @@ * limitations under the License. */ -.root { +.stack { + display: flex; + flex-direction: column; + row-gap: $spacing-05; +} + +.locationInput { + min-block-size: rem(92px); +} + +.description { + font-size: rem(18px); + line-height: math.div(20, 18); + color: $text-secondary; +} + +.agents { + &, + :global(.cds--list--unordered) { + display: flex; + flex-direction: column; + row-gap: $spacing-03; + } + :global(.cds--list--unordered) { + padding-block: $spacing-02; + margin-inline-start: $spacing-06; + > :global(.cds--list__item::before) { + content: '•'; + } + } } diff --git a/apps/beeai-ui/src/modules/agents/components/ImportAgentsModal.tsx b/apps/beeai-ui/src/modules/agents/components/ImportAgentsModal.tsx index a9b5e9de..e5fc7182 100644 --- a/apps/beeai-ui/src/modules/agents/components/ImportAgentsModal.tsx +++ b/apps/beeai-ui/src/modules/agents/components/ImportAgentsModal.tsx @@ -14,59 +14,164 @@ * limitations under the License. */ -import { Button, InlineLoading, ModalBody, ModalFooter, ModalHeader, TextInput } from '@carbon/react'; -import { ModalProps } from '#contexts/Modal/modal-context.ts'; +import { ErrorMessage } from '#components/ErrorMessage/ErrorMessage.tsx'; import { Modal } from '#components/Modal/Modal.tsx'; -import classes from './AgentModal.module.scss'; -import { useImportProvider } from '../api/mutations/useImportAgents'; -import { useForm } from 'react-hook-form'; -import { useCallback, useId } from 'react'; -import { useToast } from '#contexts/Toast/index.ts'; +import { ModalProps } from '#contexts/Modal/modal-context.ts'; +import { useCreateProvider } from '#modules/providers/api/mutations/useCreateProvider.ts'; +import { CreateProviderBody } from '#modules/providers/api/types.ts'; +import { useCheckProviderStatus } from '#modules/providers/hooks/useCheckProviderStatus.ts'; +import { + Button, + FormLabel, + InlineLoading, + ListItem, + ModalBody, + ModalFooter, + ModalHeader, + RadioButton, + RadioButtonGroup, + TextInput, + UnorderedList, +} from '@carbon/react'; +import pluralize from 'pluralize'; +import { useCallback, useEffect, useId, useState } from 'react'; +import { useController, useForm } from 'react-hook-form'; +import classes from './ImportAgentsModal.module.scss'; export function ImportAgentsModal({ onRequestClose, ...modalProps }: ModalProps) { const id = useId(); - const { addToast } = useToast(); - const { mutate, isPending } = useImportProvider({ - onSuccess: () => { - addToast({ title: 'Provider was imported successfuly' }); - onRequestClose(); + const [createdProviderId, setCreatedProviderId] = useState(); + const { status, agents } = useCheckProviderStatus({ id: createdProviderId }); + const agentsCount = agents.length; + + const { mutate: createProvider, isPending } = useCreateProvider({ + onSuccess: (provider) => { + setCreatedProviderId(provider.id); }, }); const { register, handleSubmit, + setValue, formState: { isValid }, + control, } = useForm({ mode: 'onChange', + defaultValues: { + source: Source.LocalPath, + }, }); + const { field: sourceField } = useController({ name: 'source', control }); + const onSubmit = useCallback( - ({ url }: FormValues) => { - mutate({ location: url }); + ({ location, source }: FormValues) => { + createProvider({ + location: `${LOCATION_PREFIXES[source]}${location}`, + }); }, - [mutate], + [createProvider], ); + const locationInputProps = INPUTS_PROPS[sourceField.value]; + + useEffect(() => { + setValue('location', ''); + }, [sourceField.value, setValue]); + return ( - + onRequestClose()}>

    Import your agents

    + + {status === 'initializing' && ( +

    + This could take a few minutes, you will be notified once your agents have been imported successfully. +

    + )}
    - + +
    - + {status !== 'initializing' && status !== 'ready' && ( +
    + + + + + + + +
    + )} + + {status === 'ready' && agentsCount > 0 && ( +
    + + {agentsCount} {pluralize('agent', agentsCount)} found + + + + {agents.map((agent) => ( + {agent.name} + ))} + +
    + )} + + {status === 'initializing' && } + + {status === 'error' && ( + + )}
    + - + + {status !== 'initializing' && status !== 'ready' && ( + + )}
    ); } -interface FormValues { - url: string; +enum Source { + LocalPath = 'LocalPath', + GitHub = 'GitHub', } + +type FormValues = CreateProviderBody & { source: Source }; + +const LOCATION_PREFIXES = { + [Source.LocalPath]: 'file://', + [Source.GitHub]: 'git+', +}; + +const INPUTS_PROPS = { + [Source.LocalPath]: { + labelText: 'Agent provider path', + }, + [Source.GitHub]: { + labelText: 'GitHub repository URL', + helperText: 'Make sure to provide a public link', + }, +}; diff --git a/apps/beeai-ui/src/modules/agents/detail/AgentDetail.module.scss b/apps/beeai-ui/src/modules/agents/detail/AgentDetail.module.scss index 5ca1e9b5..091f0791 100644 --- a/apps/beeai-ui/src/modules/agents/detail/AgentDetail.module.scss +++ b/apps/beeai-ui/src/modules/agents/detail/AgentDetail.module.scss @@ -59,7 +59,7 @@ .divider { inline-size: 100%; border: none; - border-block-start: 1px solid $border-subtle; + border-block-start: 1px solid $border-subtle-00; margin-block: $spacing-09; } } diff --git a/apps/beeai-ui/src/modules/home/components/GettingStarted.module.scss b/apps/beeai-ui/src/modules/home/components/GettingStarted.module.scss index b90983af..6624aad2 100644 --- a/apps/beeai-ui/src/modules/home/components/GettingStarted.module.scss +++ b/apps/beeai-ui/src/modules/home/components/GettingStarted.module.scss @@ -49,6 +49,11 @@ &:global(.cds--btn) { inline-size: 100%; border-color: $text-dark; + &:hover { + color: $text-inverse; + background-color: $layer-selected-inverse; + border-color: $layer-selected-inverse; + } } } diff --git a/apps/beeai-ui/src/modules/home/components/InstallInstructions.tsx b/apps/beeai-ui/src/modules/home/components/InstallInstructions.tsx index 086d9c5b..6704308f 100644 --- a/apps/beeai-ui/src/modules/home/components/InstallInstructions.tsx +++ b/apps/beeai-ui/src/modules/home/components/InstallInstructions.tsx @@ -45,11 +45,11 @@ enum Language { } const COMMANDS = { - python: { + [Language.Python]: { command: 'pip install beeai-framework', switchToLabel: 'TypeScript', }, - typescript: { + [Language.TypeScript]: { command: 'npm install beeai-framework', switchToLabel: 'Python', }, diff --git a/apps/beeai-ui/src/modules/agents/api/index.ts b/apps/beeai-ui/src/modules/providers/api/index.ts similarity index 67% rename from apps/beeai-ui/src/modules/agents/api/index.ts rename to apps/beeai-ui/src/modules/providers/api/index.ts index dea620e7..a7a90dfb 100644 --- a/apps/beeai-ui/src/modules/agents/api/index.ts +++ b/apps/beeai-ui/src/modules/providers/api/index.ts @@ -18,11 +18,21 @@ import { api } from '#api/index.ts'; import { CreateProviderBody } from './types'; export async function createProvider(body: CreateProviderBody) { - const response = await api.post('provider', { json: body }); + const response = await api.POST('/api/v1/provider', { body }); - if (!response.ok) { - throw new Error('Failed to post data'); + if (response.error) { + throw new Error('Failed to create provider.'); } - return response.json(); // Return the response JSON + return response.data; +} + +export async function getProviders() { + const response = await api.GET('/api/v1/provider'); + + if (response.error) { + throw new Error('Failed to get providers.'); + } + + return response.data; } diff --git a/apps/beeai-ui/src/modules/providers/api/keys.ts b/apps/beeai-ui/src/modules/providers/api/keys.ts new file mode 100644 index 00000000..f7f293f9 --- /dev/null +++ b/apps/beeai-ui/src/modules/providers/api/keys.ts @@ -0,0 +1,21 @@ +/** + * Copyright 2025 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export const providerKeys = { + all: () => ['providers'] as const, + lists: () => [...providerKeys.all(), 'list'] as const, + list: () => [...providerKeys.lists()] as const, +}; diff --git a/apps/beeai-ui/src/modules/agents/api/mutations/useImportAgents.ts b/apps/beeai-ui/src/modules/providers/api/mutations/useCreateProvider.ts similarity index 50% rename from apps/beeai-ui/src/modules/agents/api/mutations/useImportAgents.ts rename to apps/beeai-ui/src/modules/providers/api/mutations/useCreateProvider.ts index 0751afa4..8c6e1727 100644 --- a/apps/beeai-ui/src/modules/agents/api/mutations/useImportAgents.ts +++ b/apps/beeai-ui/src/modules/providers/api/mutations/useCreateProvider.ts @@ -14,32 +14,27 @@ * limitations under the License. */ -import { useMutation, useQueryClient } from '@tanstack/react-query'; +import { agentKeys } from '#modules/agents/api/keys.ts'; +import { useMutation } from '@tanstack/react-query'; import { createProvider } from '..'; -import { agentKeys } from '../keys'; -import { useToast } from '#contexts/Toast/index.ts'; +import { providerKeys } from '../keys'; +import { CreateProviderResponse } from '../types'; interface Props { - onSuccess?: () => void; + onSuccess?: (data: CreateProviderResponse) => void; } -export function useImportProvider({ onSuccess }: Props = {}) { - const queryClient = useQueryClient(); - const { addToast } = useToast(); - - return useMutation({ +export function useCreateProvider({ onSuccess }: Props = {}) { + const mutation = useMutation({ mutationFn: createProvider, - onSuccess: () => { - queryClient.invalidateQueries({ queryKey: agentKeys.lists() }); - onSuccess?.(); - }, - // TODO: handle api errors globally - onError: (error) => { - addToast({ - title: 'Importing agents failed', - subtitle: error instanceof Error ? error.message : undefined, - timeout: 10000, - }); + onSuccess, + meta: { + invalidates: [providerKeys.list(), agentKeys.lists()], + errorToast: { + title: 'Error during agents import. Check the files in the URL provided.', + }, }, }); + + return mutation; } diff --git a/apps/beeai-ui/src/modules/providers/api/queries/useListProviders.ts b/apps/beeai-ui/src/modules/providers/api/queries/useListProviders.ts new file mode 100644 index 00000000..98da56b9 --- /dev/null +++ b/apps/beeai-ui/src/modules/providers/api/queries/useListProviders.ts @@ -0,0 +1,28 @@ +/** + * Copyright 2025 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { useQuery } from '@tanstack/react-query'; +import { getProviders } from '..'; +import { providerKeys } from '../keys'; + +export function useListProviders() { + const query = useQuery({ + queryKey: providerKeys.list(), + queryFn: () => getProviders(), + }); + + return query; +} diff --git a/apps/beeai-ui/src/modules/providers/api/queries/useProvider.ts b/apps/beeai-ui/src/modules/providers/api/queries/useProvider.ts new file mode 100644 index 00000000..1966357d --- /dev/null +++ b/apps/beeai-ui/src/modules/providers/api/queries/useProvider.ts @@ -0,0 +1,34 @@ +/** + * Copyright 2025 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { useQuery } from '@tanstack/react-query'; +import { getProviders } from '..'; +import { providerKeys } from '../keys'; + +interface Props { + id?: string; +} + +export function useProvider({ id }: Props) { + const query = useQuery({ + queryKey: providerKeys.list(), + queryFn: () => getProviders(), + select: (data) => data?.items.find((item) => id === item.id), + enabled: Boolean(id), + }); + + return query; +} diff --git a/apps/beeai-ui/src/modules/providers/api/types.ts b/apps/beeai-ui/src/modules/providers/api/types.ts new file mode 100644 index 00000000..a9c4a43e --- /dev/null +++ b/apps/beeai-ui/src/modules/providers/api/types.ts @@ -0,0 +1,25 @@ +/** + * Copyright 2025 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ApiRequestBody, ApiResponse } from '#@types/utils.ts'; + +export type Provider = ApiResponse<'/api/v1/provider'>['items'][number]; + +export type CreateProviderBody = ApiRequestBody<'/api/v1/provider'>; + +export type CreateProviderResponse = ApiResponse<'/api/v1/provider', 'post'>; + +export type ProviderStatus = Provider['status']; diff --git a/apps/beeai-ui/src/modules/providers/hooks/useCheckProviderStatus.ts b/apps/beeai-ui/src/modules/providers/hooks/useCheckProviderStatus.ts new file mode 100644 index 00000000..ecfa8a61 --- /dev/null +++ b/apps/beeai-ui/src/modules/providers/hooks/useCheckProviderStatus.ts @@ -0,0 +1,69 @@ +/** + * Copyright 2025 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { agentKeys } from '#modules/agents/api/keys.ts'; +import { useListAgents } from '#modules/agents/api/queries/useListAgents.ts'; +import { useQueryClient } from '@tanstack/react-query'; +import { useEffect, useState } from 'react'; +import { useProvider } from '../api/queries/useProvider'; +import { ProviderStatus } from '../api/types'; + +interface Props { + id?: string; +} + +export function useCheckProviderStatus({ id }: Props) { + const queryClient = useQueryClient(); + const [status, setStatus] = useState(); + const { data: agents } = useListAgents({ enabled: status === 'ready' }); + + const { refetch } = useProvider({ id }); + + useEffect(() => { + if (!id) { + return; + } + + let timeoutId: NodeJS.Timeout | undefined; + + const checkProviderStatus = async () => { + const { data } = await refetch(); + + setStatus(data?.status); + + if (data?.status === 'ready') { + queryClient.invalidateQueries({ queryKey: agentKeys.lists() }); + } else { + timeoutId = setTimeout(checkProviderStatus, CHECK_PROVIDER_STATUS_INTERVAL); + } + }; + + checkProviderStatus(); + + return () => { + if (timeoutId) { + clearTimeout(timeoutId); + } + }; + }, [id, refetch, queryClient]); + + return { + status, + agents: agents?.filter((agent) => agent.provider === id) || [], + }; +} + +const CHECK_PROVIDER_STATUS_INTERVAL = 5000; diff --git a/apps/beeai-ui/src/modules/run/chat/Chat.module.scss b/apps/beeai-ui/src/modules/run/chat/Chat.module.scss index d7f15694..95d89103 100644 --- a/apps/beeai-ui/src/modules/run/chat/Chat.module.scss +++ b/apps/beeai-ui/src/modules/run/chat/Chat.module.scss @@ -45,7 +45,6 @@ display: flex; flex-direction: column-reverse; overflow-y: auto; - scroll-behavior: smooth; scrollbar-gutter: stable; padding-block: $spacing-06; diff --git a/apps/beeai-ui/src/modules/run/chat/InputBar.module.scss b/apps/beeai-ui/src/modules/run/chat/InputBar.module.scss index b8cf0733..0cc1add2 100644 --- a/apps/beeai-ui/src/modules/run/chat/InputBar.module.scss +++ b/apps/beeai-ui/src/modules/run/chat/InputBar.module.scss @@ -23,7 +23,7 @@ .textarea { max-block-size: rem(192px); overflow-y: auto; - border: 1px solid $border-subtle; + border: 1px solid $border-subtle-00; border-radius: $spacing-03; &::after, > textarea { diff --git a/apps/beeai-ui/src/styles/_mixins.scss b/apps/beeai-ui/src/styles/_mixins.scss index d6b968c4..47adf732 100644 --- a/apps/beeai-ui/src/styles/_mixins.scss +++ b/apps/beeai-ui/src/styles/_mixins.scss @@ -38,6 +38,7 @@ } @mixin scrollbar() { + scroll-behavior: smooth; scrollbar-width: thin; scrollbar-color: $layer-03 transparent; &::-webkit-scrollbar { diff --git a/apps/beeai-ui/src/styles/_theme.scss b/apps/beeai-ui/src/styles/_theme.scss index 2402038f..bce4b361 100644 --- a/apps/beeai-ui/src/styles/_theme.scss +++ b/apps/beeai-ui/src/styles/_theme.scss @@ -44,6 +44,7 @@ $light: map.merge( border-subtle-00: $cool-gray-20, + support-error-30: rgba($red-60, 0.3), text-dark: $black, text-placeholder: $cool-gray-40, box-shadow-color: rgba(193, 199, 205, 0.45), @@ -61,6 +62,7 @@ $dark: map.merge( border-subtle-00: $cool-gray-80, + support-error-30: rgba($red-50, 0.3), text-dark: $white, text-placeholder: $cool-gray-60, box-shadow-color: rgba($cool-gray-70, 0.45), @@ -158,6 +160,8 @@ $box-shadow: 0px 2px 8px 0px $box-shadow-color; $button-tertiary: var(--cds-button-tertiary); $button-tertiary-hover: var(--cds-button-tertiary-hover); +$support-error-30: var(--cds-support-error-30); + $modal-background: var(--cds-modal-background); @forward '@carbon/styles/scss/theme'; diff --git a/apps/beeai-ui/src/styles/components/_button.scss b/apps/beeai-ui/src/styles/components/_button.scss index 990adb22..d0b44ab9 100644 --- a/apps/beeai-ui/src/styles/components/_button.scss +++ b/apps/beeai-ui/src/styles/components/_button.scss @@ -39,7 +39,7 @@ } .cds--btn--tertiary { - border-color: $border-subtle; + border-color: $border-subtle-00; &:hover, &:active, &:focus { @@ -53,7 +53,7 @@ &:active { background-color: $background-active; &:not(:focus) { - border-color: $border-subtle; + border-color: $border-subtle-00; } } } diff --git a/apps/beeai-ui/src/styles/components/_index.scss b/apps/beeai-ui/src/styles/components/_index.scss index 8a72e058..af6ebd16 100644 --- a/apps/beeai-ui/src/styles/components/_index.scss +++ b/apps/beeai-ui/src/styles/components/_index.scss @@ -50,6 +50,7 @@ // @forward '@carbon/styles/scss/components/form'; // @forward '@carbon/styles/scss/components/icon-indicator'; @forward '@carbon/styles/scss/components/inline-loading'; +@forward 'inline-loading'; // @forward '@carbon/styles/scss/components/link'; @forward '@carbon/styles/scss/components/list'; // @forward '@carbon/styles/scss/components/list-box'; @@ -59,6 +60,7 @@ @forward '@carbon/styles/scss/components/modal'; // @forward '@carbon/styles/scss/components/multiselect'; @forward '@carbon/styles/scss/components/notification'; +@forward 'notification'; // @forward '@carbon/styles/scss/components/number-input'; // @forward '@carbon/styles/scss/components/overflow-menu'; // @forward 'overflow-menu'; @@ -67,7 +69,8 @@ // @forward '@carbon/styles/scss/components/popover'; // @forward '@carbon/styles/scss/components/progress-bar'; // @forward '@carbon/styles/scss/components/progress-indicator'; -// @forward '@carbon/styles/scss/components/radio-button'; +@forward '@carbon/styles/scss/components/radio-button'; +@forward 'radio-button'; @forward '@carbon/styles/scss/components/search'; // @forward '@carbon/styles/scss/components/select'; @forward '@carbon/styles/scss/components/skeleton-styles'; diff --git a/apps/beeai-ui/src/styles/components/_inline-loading.scss b/apps/beeai-ui/src/styles/components/_inline-loading.scss new file mode 100644 index 00000000..6c4a35f9 --- /dev/null +++ b/apps/beeai-ui/src/styles/components/_inline-loading.scss @@ -0,0 +1,23 @@ +/** + * Copyright 2025 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +.cds--inline-loading { + min-block-size: 0; +} + +.cds--inline-loading__animation { + overflow: hidden; +} diff --git a/apps/beeai-ui/src/styles/components/_input.scss b/apps/beeai-ui/src/styles/components/_input.scss index baac9a84..76949178 100644 --- a/apps/beeai-ui/src/styles/components/_input.scss +++ b/apps/beeai-ui/src/styles/components/_input.scss @@ -18,7 +18,7 @@ .cds--text-area, .cds--text-input { - border: 1px solid $border-subtle; + border: 1px solid $border-subtle-00; border-radius: $spacing-03; background-color: $layer; &, @@ -33,3 +33,12 @@ .cds--text-area { padding-block: $spacing-05; } + +.cds--form__helper-text { + color: $text-helper; +} + +.cds--skeleton.cds--text-area, +.cds--skeleton.cds--text-input { + overflow: hidden; +} diff --git a/apps/beeai-ui/src/styles/components/_notification.scss b/apps/beeai-ui/src/styles/components/_notification.scss new file mode 100644 index 00000000..31ac6cf0 --- /dev/null +++ b/apps/beeai-ui/src/styles/components/_notification.scss @@ -0,0 +1,137 @@ +/** + * Copyright 2025 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@use 'styles/common' as *; +@use 'sass:math'; + +.cds--actionable-notification { + max-inline-size: none; + + .cds--toast-notification__icon { + margin-block-start: rem(14px); + } +} + +.cds--actionable-notification--toast { + box-shadow: none; + + .cds--actionable-notification__text-wrapper { + padding-block: rem(15px); + } +} + +.cds--actionable-notification__content { + &, + p { + font-size: rem(14px); + line-height: math.div(18, 14); + letter-spacing: rem(0.16px); + } +} + +.cds--actionable-notification__title + * { + margin-block-start: $spacing-03; +} + +.cds--actionable-notification--low-contrast.cds--actionable-notification--error { + &::before { + content: ''; + position: absolute; + inset: 0; + border-block: 1px solid $support-error-30; + border-inline-end: 1px solid $support-error-30; + } +} + +.cds--toast-notification { + padding: $spacing-05 $spacing-05 $spacing-05 rem(13px); + display: flex; + flex-direction: column; + row-gap: $spacing-03; + position: relative; + box-shadow: $box-shadow; + &.cds--toast-notification--custom-icon > .cds--toast-notification__icon { + display: none; + } + + .cds--toast-notification__icon { + margin: 0; + } +} + +.cds--toast-notification.cds--toast-notification--low-contrast { + border-radius: $border-radius; + border: 0; + padding: $spacing-05; + + .cds--toast-notification__details, + .cds--toast-notification__title, + .cds--toast-notification__subtitle, + .cds--toast-notification__caption { + color: $text-secondary; + } + + .cds--toast-notification__details .cds--toast-notification__icon { + fill: $text-dark; + inline-size: rem(16px); + block-size: rem(16px); + margin-block: rem(2px); + } +} + +.cds--toast-notification__details, +.cds--toast-notification__title, +.cds--toast-notification__subtitle { + margin: 0; + font-size: rem(14px); + line-height: math.div(20, 14); + letter-spacing: rem(0.16px); +} + +.cds--toast-notification__details { + display: flex; + flex-direction: column; + row-gap: $spacing-03; +} + +.cds--toast-notification__caption { + font-size: rem(12px); + line-height: math.div(16, 12); + letter-spacing: rem(0.16px); + padding-block: rem(2px); + padding-inline: rem(28px) rem(32px); + margin-block-start: rem(-28px); +} + +.cds--toast-notification__close-button { + min-inline-size: 0; + min-block-size: 0; + inline-size: rem(32px); + block-size: rem(32px); + border-radius: $border-radius; + position: absolute; + inset-block-start: rem(10px); + inset-inline-end: $spacing-03; + opacity: 0; + + .cds--toast-notification:hover & { + opacity: 1; + } +} + +.cds--toast-notification--low-contrast.cds--toast-notification--info { + background-color: $layer; +} diff --git a/apps/beeai-ui/src/styles/components/_radio-button.scss b/apps/beeai-ui/src/styles/components/_radio-button.scss new file mode 100644 index 00000000..ae6ed6cd --- /dev/null +++ b/apps/beeai-ui/src/styles/components/_radio-button.scss @@ -0,0 +1,27 @@ +/** + * Copyright 2025 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@use 'styles/common' as *; + +.cds--radio-button__label { + padding-block: 1px; + column-gap: $spacing-03; +} + +.cds--radio-button__appearance { + margin: 0 1px; + border-color: $text-placeholder; +} diff --git a/apps/beeai-ui/src/styles/components/_tag.scss b/apps/beeai-ui/src/styles/components/_tag.scss index 9ae7568e..efb56c19 100644 --- a/apps/beeai-ui/src/styles/components/_tag.scss +++ b/apps/beeai-ui/src/styles/components/_tag.scss @@ -21,7 +21,7 @@ min-inline-size: 0; &.cds--tag--selectable.cds--tag--outline:not(:disabled) { - border: 1px solid $border-subtle; + border: 1px solid $border-subtle-00; outline: none; &:hover { background-color: $layer-hover-01; @@ -33,7 +33,7 @@ } &.cds--tag--operational { - border-color: $border-subtle; + border-color: $border-subtle-00; background-color: $layer; &:hover { background-color: $layer-hover-01; diff --git a/apps/beeai-ui/src/utils/constants.ts b/apps/beeai-ui/src/utils/constants.ts index 7fc215c0..7dcff663 100644 --- a/apps/beeai-ui/src/utils/constants.ts +++ b/apps/beeai-ui/src/utils/constants.ts @@ -28,3 +28,5 @@ export const BLUESKY_LINK = 'https://bsky.app/profile/beeaiagents.bsky.social'; export const DOCUMENTATION_LINK = ''; export const GET_STARTED_PYTHON_LINK = ''; export const GET_STARTED_TYPESCRIPT_LINK = ''; + +export const BEE_AI_FRAMEWORK_TAG = 'BeeAI'; diff --git a/apps/beeai-ui/tasks.toml b/apps/beeai-ui/tasks.toml index eb73f2de..b0b252c0 100644 --- a/apps/beeai-ui/tasks.toml +++ b/apps/beeai-ui/tasks.toml @@ -79,3 +79,9 @@ outputs = ["dist/**/*"] ["beeai-ui:clean"] dir = "{{config_root}}/apps/beeai-ui" run = "rm -rf ./dist" + +# schema + +["beeai-ui:schema:generate"] +dir = "{{config_root}}/apps/beeai-ui" +run = "pnpm schema:generate" diff --git a/packages/beeai-sdk/src/beeai_sdk/schemas/metadata.py b/packages/beeai-sdk/src/beeai_sdk/schemas/metadata.py index f56b577c..01ff78de 100644 --- a/packages/beeai-sdk/src/beeai_sdk/schemas/metadata.py +++ b/packages/beeai-sdk/src/beeai_sdk/schemas/metadata.py @@ -27,5 +27,6 @@ class Metadata(BaseModel): avgRunTokens: Optional[float] = None tags: Optional[list[str]] = None ui: Optional[str] = None + provider: Optional[str] = None model_config = ConfigDict(extra="allow") diff --git a/packages/beeai-sdk/src/beeai_sdk/schemas/metadata.ts b/packages/beeai-sdk/src/beeai_sdk/schemas/metadata.ts index 9c8b5ec6..4f4f0142 100644 --- a/packages/beeai-sdk/src/beeai_sdk/schemas/metadata.ts +++ b/packages/beeai-sdk/src/beeai_sdk/schemas/metadata.ts @@ -27,6 +27,7 @@ export const metadataSchema = z avgRunTokens: z.number(), tags: z.array(z.string()), ui: z.string(), + provider: z.string(), }) .partial() .passthrough(); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e6e00f72..40613e2e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,10 +8,10 @@ catalogs: default: '@eslint/js': specifier: ^9.20.0 - version: 9.21.0 + version: 9.20.0 eslint: specifier: ^9.17.0 - version: 9.21.0 + version: 9.20.1 eslint-plugin-react-hooks: specifier: ^5.0.0 version: 5.1.0 @@ -23,13 +23,13 @@ catalogs: version: 15.15.0 prettier: specifier: ^3.4.2 - version: 3.5.2 + version: 3.5.1 typescript: specifier: ^5.7.3 version: 5.7.3 typescript-eslint: specifier: ^8.23.0 - version: 8.25.0 + version: 8.24.1 importers: @@ -37,7 +37,7 @@ importers: dependencies: '@ai-sdk/openai': specifier: ^1.1.13 - version: 1.1.14(zod@3.24.2) + version: 1.1.13(zod@3.24.2) '@i-am-bee/acp-sdk': specifier: ^0.0.1 version: 0.0.1 @@ -46,7 +46,7 @@ importers: version: 0.0.4 beeai-framework: specifier: ^0.1.2 - version: 0.1.2(@ai-sdk/openai@1.1.14(zod@3.24.2))(@aws-sdk/client-bedrock-runtime@3.755.0)(ollama-ai-provider@1.2.0(zod@3.24.2))(react@19.0.0)(yaml@2.7.0) + version: 0.1.2(@ai-sdk/openai@1.1.13(zod@3.24.2))(@aws-sdk/client-bedrock-runtime@3.751.0)(ollama-ai-provider@1.2.0(zod@3.24.2))(react@19.0.0)(yaml@2.7.0) ollama-ai-provider: specifier: ^1.2.0 version: 1.2.0(zod@3.24.2) @@ -80,10 +80,13 @@ importers: version: 11.24.0 '@carbon/react': specifier: ^1.75.0 - version: 1.76.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.85.1) + version: 1.76.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.85.0) '@carbon/styles': specifier: ^1.74.0 - version: 1.75.0(sass@1.85.1) + version: 1.75.0(sass@1.85.0) + '@floating-ui/react': + specifier: ^0.27.4 + version: 0.27.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@i-am-bee/acp-sdk': specifier: ^0.0.1 version: 0.0.1 @@ -93,9 +96,12 @@ importers: '@ibm/plex': specifier: ^6.4.1 version: 6.4.1 + '@radix-ui/react-slot': + specifier: ^1.1.2 + version: 1.1.2(@types/react@19.0.10)(react@19.0.0) '@tanstack/react-query': specifier: ^5.66.0 - version: 5.66.9(react@19.0.0) + version: 5.66.7(react@19.0.0) '@types/react-resizable': specifier: ^3.0.8 version: 3.0.8 @@ -104,7 +110,7 @@ importers: version: 2.1.1 framer-motion: specifier: ^12.3.1 - version: 12.4.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 12.4.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0) immer: specifier: ^10.1.1 version: 10.1.1 @@ -123,6 +129,9 @@ importers: millify: specifier: ^6.1.0 version: 6.1.0 + openapi-fetch: + specifier: ^0.13.4 + version: 0.13.4 pluralize: specifier: ^8.0.0 version: 8.0.0 @@ -140,7 +149,7 @@ importers: version: 7.54.2(react@19.0.0) react-markdown: specifier: ^9.0.1 - version: 9.1.0(@types/react@19.0.10)(react@19.0.0) + version: 9.0.3(@types/react@19.0.10)(react@19.0.0) react-merge-refs: specifier: ^2.1.1 version: 2.1.1 @@ -161,14 +170,14 @@ importers: version: 5.0.0 uuid: specifier: ^11.0.5 - version: 11.1.0 + version: 11.0.5 zod: specifier: ^3.24.1 version: 3.24.2 devDependencies: '@eslint/js': specifier: ^9.17.0 - version: 9.21.0 + version: 9.20.0 '@types/hast': specifier: ^3.0.4 version: 3.0.4 @@ -186,16 +195,16 @@ importers: version: 19.0.4(@types/react@19.0.10) '@vitejs/plugin-react-swc': specifier: ^3.5.0 - version: 3.8.0(@swc/helpers@0.5.15)(vite@6.2.0(@types/node@22.13.5)(sass-embedded@1.85.1)(sass@1.85.1)(tsx@4.19.3)(yaml@2.7.0)) + version: 3.8.0(@swc/helpers@0.5.15)(vite@6.1.1(@types/node@22.13.4)(sass-embedded@1.85.0)(sass@1.85.0)(tsx@4.19.3)(yaml@2.7.0)) eslint: specifier: 'catalog:' - version: 9.21.0 + version: 9.20.1 eslint-plugin-react-hooks: specifier: 'catalog:' - version: 5.1.0(eslint@9.21.0) + version: 5.1.0(eslint@9.20.1) eslint-plugin-react-refresh: specifier: 'catalog:' - version: 0.4.19(eslint@9.21.0) + version: 0.4.19(eslint@9.20.1) globals: specifier: 'catalog:' version: 15.15.0 @@ -204,10 +213,10 @@ importers: version: 3.1.0 prettier: specifier: 'catalog:' - version: 3.5.2 + version: 3.5.1 sass-embedded: specifier: ^1.83.4 - version: 1.85.1 + version: 1.85.0 stylelint: specifier: ^16.14.1 version: 16.14.1(typescript@5.7.3) @@ -225,13 +234,13 @@ importers: version: 5.7.3 typescript-eslint: specifier: 'catalog:' - version: 8.25.0(eslint@9.21.0)(typescript@5.7.3) + version: 8.24.1(eslint@9.20.1)(typescript@5.7.3) vite: specifier: ^6.0.5 - version: 6.2.0(@types/node@22.13.5)(sass-embedded@1.85.1)(sass@1.85.1)(tsx@4.19.3)(yaml@2.7.0) + version: 6.1.1(@types/node@22.13.4)(sass-embedded@1.85.0)(sass@1.85.0)(tsx@4.19.3)(yaml@2.7.0) vite-plugin-svgr: specifier: ^4.3.0 - version: 4.3.0(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.5)(sass-embedded@1.85.1)(sass@1.85.1)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.3.0(rollup@4.34.8)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(sass-embedded@1.85.0)(sass@1.85.0)(tsx@4.19.3)(yaml@2.7.0)) apps/beeai-web: dependencies: @@ -240,10 +249,10 @@ importers: version: link:../beeai-ui '@tanstack/react-query': specifier: ^5.66.0 - version: 5.66.9(react@19.0.0) + version: 5.66.7(react@19.0.0) next: specifier: 15.1.7 - version: 15.1.7(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.85.1) + version: 15.1.7(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.85.0) react: specifier: ^19.0.0 version: 19.0.0 @@ -253,7 +262,7 @@ importers: devDependencies: '@eslint/eslintrc': specifier: ^3 - version: 3.3.0 + version: 3.2.0 '@svgr/webpack': specifier: ^8.1.0 version: 8.1.0(typescript@5.7.3) @@ -268,13 +277,13 @@ importers: version: 19.0.4(@types/react@19.0.10) eslint: specifier: 'catalog:' - version: 9.21.0 + version: 9.20.1 eslint-config-next: specifier: 15.1.7 - version: 15.1.7(eslint@9.21.0)(typescript@5.7.3) + version: 15.1.7(eslint@9.20.1)(typescript@5.7.3) sass-embedded: specifier: ^1.83.4 - version: 1.85.1 + version: 1.85.0 typescript: specifier: 'catalog:' version: 5.7.3 @@ -283,7 +292,7 @@ importers: devDependencies: mintlify: specifier: ^4.0.392 - version: 4.0.405(@types/node@22.13.5)(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) + version: 4.0.395(@types/node@22.13.4)(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) packages/acp-typescript-sdk: dependencies: @@ -304,11 +313,11 @@ importers: version: 3.24.2 zod-to-json-schema: specifier: ^3.24.1 - version: 3.24.3(zod@3.24.2) + version: 3.24.1(zod@3.24.2) devDependencies: '@eslint/js': specifier: ^9.8.0 - version: 9.21.0 + version: 9.20.0 '@types/content-type': specifier: ^1.1.8 version: 1.1.8 @@ -326,25 +335,25 @@ importers: version: 29.5.14 '@types/node': specifier: ^22.0.2 - version: 22.13.5 + version: 22.13.4 '@types/ws': specifier: ^8.5.12 version: 8.5.14 eslint: specifier: ^9.8.0 - version: 9.21.0 + version: 9.20.1 express: specifier: ^4.19.2 version: 4.21.2 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.13.5) + version: 29.7.0(@types/node@22.13.4) prettier: specifier: ^3.4.2 - version: 3.5.2 + version: 3.5.1 ts-jest: specifier: ^29.2.4 - version: 29.2.6(@babel/core@7.26.9)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.9))(jest@29.7.0(@types/node@22.13.5))(typescript@5.7.3) + version: 29.2.5(@babel/core@7.26.9)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.9))(jest@29.7.0(@types/node@22.13.4))(typescript@5.7.3) tsx: specifier: ^4.16.5 version: 4.19.3 @@ -353,10 +362,10 @@ importers: version: 5.7.3 typescript-eslint: specifier: ^8.0.0 - version: 8.25.0(eslint@9.21.0)(typescript@5.7.3) + version: 8.24.1(eslint@9.20.1)(typescript@5.7.3) ws: specifier: ^8.18.0 - version: 8.18.1 + version: 8.18.0 packages/beeai-sdk: dependencies: @@ -387,10 +396,10 @@ importers: devDependencies: '@eslint/js': specifier: 'catalog:' - version: 9.21.0 + version: 9.20.0 '@swc/core': specifier: ^1.10.16 - version: 1.11.1(@swc/helpers@0.5.15) + version: 1.10.18(@swc/helpers@0.5.15) '@swc/types': specifier: ^0.1.17 version: 0.1.17 @@ -399,22 +408,22 @@ importers: version: 4.17.21 '@types/node': specifier: ^22.13.4 - version: 22.13.5 + version: 22.13.4 eslint: specifier: 'catalog:' - version: 9.21.0 + version: 9.20.1 globals: specifier: 'catalog:' version: 15.15.0 prettier: specifier: 'catalog:' - version: 3.5.2 + version: 3.5.1 rimraf: specifier: ^6.0.1 version: 6.0.1 tsup: specifier: ^8.3.6 - version: 8.3.6(@swc/core@1.11.1(@swc/helpers@0.5.15))(postcss@8.5.3)(tsx@4.19.3)(typescript@5.7.3)(yaml@2.7.0) + version: 8.3.6(@swc/core@1.10.18(@swc/helpers@0.5.15))(postcss@8.5.3)(tsx@4.19.3)(typescript@5.7.3)(yaml@2.7.0) tsx: specifier: ^4.19.3 version: 4.19.3 @@ -423,18 +432,18 @@ importers: version: 5.7.3 typescript-eslint: specifier: 'catalog:' - version: 8.25.0(eslint@9.21.0)(typescript@5.7.3) + version: 8.24.1(eslint@9.20.1)(typescript@5.7.3) packages: - '@ai-sdk/openai@1.1.14': - resolution: {integrity: sha512-r5oD+Sz7z8kfxnXfqR53fYQ1xbT/BeUGhQ26FWzs5gO4j52pGUpzCt0SBm3SH1ZSjFY5O/zoKRnsbrPeBe1sNA==} + '@ai-sdk/openai@1.1.13': + resolution: {integrity: sha512-IdChK1pJTW3NQis02PG/hHTG0gZSyQIMOLPt7f7ES56C0xH2yaKOU1Tp2aib7pZzWGwDlzTOW2h5TtAB8+V6CQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 - '@ai-sdk/provider-utils@2.1.10': - resolution: {integrity: sha512-4GZ8GHjOFxePFzkl3q42AU0DQOtTQ5w09vmaWUf/pKFXJPizlnzKSUkF0f+VkapIUfDugyMqPMT1ge8XQzVI7Q==} + '@ai-sdk/provider-utils@2.1.9': + resolution: {integrity: sha512-NerKjTuuUUs6glJGaentaXEBH52jRM0pR+cRCzc7aWke/K5jYBD6Frv1JYBpcxS7gnnCqSQZR9woiyS+6jrdjw==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -442,12 +451,12 @@ packages: zod: optional: true - '@ai-sdk/provider@1.0.9': - resolution: {integrity: sha512-jie6ZJT2ZR0uVOVCDc9R2xCX5I/Dum/wEK28lx21PJx6ZnFAN9EzD2WsPhcDWfCgGx3OAZZ0GyM3CEobXpa9LA==} + '@ai-sdk/provider@1.0.8': + resolution: {integrity: sha512-f9jSYwKMdXvm44Dmab1vUBnfCDSFfI5rOtvV1W9oKB7WYHR5dGvCC6x68Mk3NUfrdmNoMVHGoh6JT9HCVMlMow==} engines: {node: '>=18'} - '@ai-sdk/react@1.1.18': - resolution: {integrity: sha512-2wlWug6NVAc8zh3pgqtvwPkSNTdA6Q4x9CmrNXCeHcXfJkJ+MuHFQz/I7Wb7mLRajf0DAxsFLIhHyBCEuTkDNw==} + '@ai-sdk/react@1.1.17': + resolution: {integrity: sha512-NAuEflFvjw1uh1AOmpyi7rBF4xasWsiWUb86JQ8ScjDGxoGDYEdBnaHOxUpooLna0dGNbSPkvDMnVRhoLKoxPQ==} engines: {node: '>=18'} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc @@ -458,8 +467,8 @@ packages: zod: optional: true - '@ai-sdk/ui-utils@1.1.16': - resolution: {integrity: sha512-jfblR2yZVISmNK2zyNzJZFtkgX57WDAUQXcmn3XUBJyo8LFsADu+/vYMn5AOyBi9qJT0RBk11PEtIxIqvByw3Q==} + '@ai-sdk/ui-utils@1.1.15': + resolution: {integrity: sha512-NsV/3CMmjc4m53snzRdtZM6teTQUXIKi8u0Kf7GBruSzaMSuZ4DWaAAlUshhR3p2FpZgtsogW+vYG1/rXsGu+Q==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -491,8 +500,8 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-bedrock-runtime@3.755.0': - resolution: {integrity: sha512-g5Adp2haJn3d1M7he4KSBUO/QAJuDNhnCNSZ4Ud30F0WvX07C7nZUDzKOi8cYa8xeXK6gpSlk6DdgcJflXdfXA==} + '@aws-sdk/client-bedrock-runtime@3.751.0': + resolution: {integrity: sha512-pKw4TDhO9oUnSvmTMLj2oG/SHZ1Q3tQb3DNkpdCbWqjBJ9pL0Dl+YZagLkHm0RZNp2jqAiHL7jiTCnfOAhPaBw==} engines: {node: '>=18.0.0'} '@aws-sdk/client-sso@3.750.0': @@ -1594,24 +1603,24 @@ packages: resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.12.0': - resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} + '@eslint/core@0.11.0': + resolution: {integrity: sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.3.0': - resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==} + '@eslint/eslintrc@3.2.0': + resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.21.0': - resolution: {integrity: sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==} + '@eslint/js@9.20.0': + resolution: {integrity: sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.7': - resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==} + '@eslint/plugin-kit@0.2.6': + resolution: {integrity: sha512-+0TjwR1eAUdZtvv/ir1mGX+v0tUoR3VEPB8Up0LLJC+whRW0GgBBtpbOkg/a/U4Dxa6l5a3l9AJ1aWIQVyoWJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@floating-ui/core@1.6.9': @@ -1632,6 +1641,12 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' + '@floating-ui/react@0.27.4': + resolution: {integrity: sha512-05mXdkUiVh8NCEcYKQ2C9SV9IkZ9k/dFtYmaEIN2riLv80UHoXylgBM76cgPJYfLJM3dJz7UE5MOVH0FypMd2Q==} + peerDependencies: + react: '>=17.0.0' + react-dom: '>=17.0.0' + '@floating-ui/utils@0.2.9': resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} @@ -1660,8 +1675,8 @@ packages: resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} - '@humanwhocodes/retry@0.4.2': - resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} + '@humanwhocodes/retry@0.4.1': + resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} engines: {node: '>=18.18'} '@i-am-bee/acp-sdk@0.0.1': @@ -2046,16 +2061,16 @@ packages: '@types/react': '>=16' react: '>=16' - '@mintlify/cli@4.0.405': - resolution: {integrity: sha512-4f/6qfuFOY2dYmte47TUTHszdizcX0Ndsib0Bqa9S3W+39iLM9IdIMWRaMRWCyaObJ7eowbd5zCeQn3AKfNKhw==} + '@mintlify/cli@4.0.395': + resolution: {integrity: sha512-DKEvNKm8V0Oofhs8DMNXGw1mouNAz2PsQA5clO2OR19usTmf5Cwq6rVDTvBt4RXmLUMhb5nhYlooX6rVSKsgbA==} engines: {node: '>=18.0.0'} hasBin: true - '@mintlify/common@1.0.287': - resolution: {integrity: sha512-l8eTofV/Ujic6UrJVwm4RYD9BJUxo5awO3O73/or4fh3lqzcDbiFF49ppZLcMUXiY3aC/TJbztDct/zxMYqjfA==} + '@mintlify/common@1.0.279': + resolution: {integrity: sha512-sHCNrDXQO1pKQ5EQxfD/4oCrUfZnV3NyBXk6/0IY+wd70m5V+R+rtaT/+VxsFvuCHUk9JMZzuHA1CdfBV+XmYA==} - '@mintlify/link-rot@3.0.385': - resolution: {integrity: sha512-gKSGkg7xZ/O/uVFBwsgrecbrbXs6A4uVXPHgUFAreEL+iZqkYpuepOCMiQRLMRj4jUZslVhLecBksZ8RsyAfWA==} + '@mintlify/link-rot@3.0.377': + resolution: {integrity: sha512-5Fksi9gp1yUPCQjBnggm0fir/hEQPaZBXWyclzaVy1rRhtGgn/QYcMyAHdJFbaM/NYrlCnk5PUfs6myslhsWCQ==} engines: {node: '>=18.0.0'} '@mintlify/mdx@1.0.1': @@ -2064,28 +2079,28 @@ packages: react: ^18.3.1 react-dom: ^18.3.1 - '@mintlify/models@0.0.175': - resolution: {integrity: sha512-MGqtoQI19zJZ5mHpKRaSu/YTsAYasHA1OLQLSsd6FjZrA0hybqV3mrsWzQbuRNcd7MHcijMaPwEDN/YDwOIkSA==} + '@mintlify/models@0.0.174': + resolution: {integrity: sha512-TFbzkAuPgC0HVeLDHFRukCaVYwNlvj7oUXdeGyo3n+XWZfU7WNMjPZgpIr3MgTI5gg+Z1/VLG2eXp6DGZlGbYw==} engines: {node: '>=18.0.0'} '@mintlify/openapi-parser@0.0.7': resolution: {integrity: sha512-3ecbkzPbsnkKVZJypVL0H5pCTR7a4iLv4cP7zbffzAwy+vpH70JmPxNVpPPP62yLrdZlfNcMxu5xKeT7fllgMg==} engines: {node: '>=18'} - '@mintlify/prebuild@1.0.382': - resolution: {integrity: sha512-OnALNl1A0uLZ0vjdLVxFm4Sk2tsos8QyYxs00KGL68bCbwdk17YJWHz6NxVOFDLeDOPX4fHaCk4XOw40qg4LkA==} + '@mintlify/prebuild@1.0.374': + resolution: {integrity: sha512-MfoCpMqjcKihPNpYW4eGWMzFGGsqnl4x159gNaQd+ckid5wO2XTUNrvsjdNHKtCu8sMgvuThLuutdCtjuatjYA==} - '@mintlify/previewing@4.0.397': - resolution: {integrity: sha512-kqbXt3v9Mc2/s3SSQahZE564L8mTtE37mCclWn5PGnpYfpwwnEqywtqO7QWqTAYzblLAVtXShyvL1rhDKfZICQ==} + '@mintlify/previewing@4.0.387': + resolution: {integrity: sha512-y8I2vSVjhIqQ1meJ8LFmSAg89Ab4hsOeF9Nhs5o00TCOAy9+Tp2g/VVTtWyEoZH1eA5B7RxGqmL0Vb9DIux3iw==} engines: {node: '>=18.0.0'} - '@mintlify/scraping@4.0.133': - resolution: {integrity: sha512-KLI4Ai94kvjDAVFN7f9JaZ7iYzlotHXdYCt8uFrbM0el2Yl9qOq+mOaVvUcDRBx496/iiiKOBCgbvWEqJ1jhkg==} + '@mintlify/scraping@4.0.125': + resolution: {integrity: sha512-o234LtHeixho2xSIXuUpVeWvH5DqtbYL7DoZk8Y8SM5fPK0TbdFD74rMrAdn8jsHxGkkGOFJPFXMwJkl5Dz9wA==} engines: {node: '>=18.0.0'} hasBin: true - '@mintlify/validation@0.1.306': - resolution: {integrity: sha512-yxxtQPnNUXfBqVFi2zt4STwYtyjz/ue3T3+vct7cvKE39V2rPnAfzpXiidwsC6Wa7ti8+15m/rAjIP2iE3Q/Qw==} + '@mintlify/validation@0.1.299': + resolution: {integrity: sha512-uRLpKwmPs+6Ep0YF+kahptKyiXSmnqXiAxZFkPRx68+CTjr7ln7SrtjOtIt8F/NrM9kMtmKbR2UEoB29G8DpFg==} '@mixmark-io/domino@2.2.0': resolution: {integrity: sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==} @@ -2447,6 +2462,24 @@ packages: engines: {node: '>=18'} hasBin: true + '@radix-ui/react-compose-refs@1.1.1': + resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-slot@1.1.2': + resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@rollup/pluginutils@5.1.4': resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} engines: {node: '>=14.0.0'} @@ -2590,8 +2623,8 @@ packages: resolution: {integrity: sha512-Igfg8lKu3dRVkTSEm98QpZUvKEOa71jDX4vKRcvJVyRc3UgN3j7vFMf0s7xLQhYmKa8kyJGQgUJDOV5V3neVlQ==} engines: {node: '>=18.0.0'} - '@smithy/core@3.1.5': - resolution: {integrity: sha512-HLclGWPkCsekQgsyzxLhCQLa8THWXtB5PxyYN+2O6nkyLt550KQKTlbV2D1/j5dNIQapAZM1+qFnpBFxZQkgCA==} + '@smithy/core@3.1.4': + resolution: {integrity: sha512-wFExFGK+7r2wYriOqe7RRIBNpvxwiS95ih09+GSLRBdoyK/O1uZA7K7pKesj5CBvwJuSBeXwLyR88WwIAY+DGA==} engines: {node: '>=18.0.0'} '@smithy/credential-provider-imds@4.0.1': @@ -2642,12 +2675,12 @@ packages: resolution: {integrity: sha512-OGXo7w5EkB5pPiac7KNzVtfCW2vKBTZNuCctn++TTSOMpe6RZO/n6WEC1AxJINn3+vWLKW49uad3lo/u0WJ9oQ==} engines: {node: '>=18.0.0'} - '@smithy/middleware-endpoint@4.0.6': - resolution: {integrity: sha512-ftpmkTHIFqgaFugcjzLZv3kzPEFsBFSnq1JsIkr2mwFzCraZVhQk2gqN51OOeRxqhbPTkRFj39Qd2V91E/mQxg==} + '@smithy/middleware-endpoint@4.0.5': + resolution: {integrity: sha512-cPzGZV7qStHwboFrm6GfrzQE+YDiCzWcTh4+7wKrP/ZQ4gkw+r7qDjV8GjM4N0UYsuUyLfpzLGg5hxsYTU11WA==} engines: {node: '>=18.0.0'} - '@smithy/middleware-retry@4.0.7': - resolution: {integrity: sha512-58j9XbUPLkqAcV1kHzVX/kAR16GT+j7DUZJqwzsxh1jtz7G82caZiGyyFgUvogVfNTg3TeAOIJepGc8TXF4AVQ==} + '@smithy/middleware-retry@4.0.6': + resolution: {integrity: sha512-s8QzuOQnbdvRymD9Gt9c9zMq10wUQAHQ3z72uirrBHCwZcLTrL5iCOuVTMdka2IXOYhQE890WD5t6G24+F+Qcg==} engines: {node: '>=18.0.0'} '@smithy/middleware-serde@4.0.2': @@ -2662,8 +2695,8 @@ packages: resolution: {integrity: sha512-8mRTjvCtVET8+rxvmzRNRR0hH2JjV0DFOmwXPrISmTIJEfnCBugpYYGAsCj8t41qd+RB5gbheSQ/6aKZCQvFLQ==} engines: {node: '>=18.0.0'} - '@smithy/node-http-handler@4.0.3': - resolution: {integrity: sha512-dYCLeINNbYdvmMLtW0VdhW1biXt+PPCGazzT5ZjKw46mOtdgToQEwjqZSS9/EN8+tNs/RO0cEWG044+YZs97aA==} + '@smithy/node-http-handler@4.0.2': + resolution: {integrity: sha512-X66H9aah9hisLLSnGuzRYba6vckuFtGE+a5DcHLliI/YlqKrGoxhisD5XbX44KyoeRzoNlGr94eTsMVHFAzPOw==} engines: {node: '>=18.0.0'} '@smithy/property-provider@4.0.1': @@ -2694,8 +2727,8 @@ packages: resolution: {integrity: sha512-nCe6fQ+ppm1bQuw5iKoeJ0MJfz2os7Ic3GBjOkLOPtavbD1ONoyE3ygjBfz2ythFWm4YnRm6OxW+8p/m9uCoIA==} engines: {node: '>=18.0.0'} - '@smithy/smithy-client@4.1.6': - resolution: {integrity: sha512-UYDolNg6h2O0L+cJjtgSyKKvEKCOa/8FHYJnBobyeoeWDmNpXjwOAtw16ezyeu1ETuuLEOZbrynK0ZY1Lx9Jbw==} + '@smithy/smithy-client@4.1.5': + resolution: {integrity: sha512-DMXYoYeL4QkElr216n1yodTFeATbfb4jwYM9gKn71Rw/FNA1/Sm36tkTSCsZEs7mgpG3OINmkxL9vgVFzyGPaw==} engines: {node: '>=18.0.0'} '@smithy/types@4.1.0': @@ -2730,12 +2763,12 @@ packages: resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-browser@4.0.7': - resolution: {integrity: sha512-CZgDDrYHLv0RUElOsmZtAnp1pIjwDVCSuZWOPhIOBvG36RDfX1Q9+6lS61xBf+qqvHoqRjHxgINeQz47cYFC2Q==} + '@smithy/util-defaults-mode-browser@4.0.6': + resolution: {integrity: sha512-N8+VCt+piupH1A7DgSVDNrVHqRLz8r6DvBkpS7EWHiIxsUk4jqGuQLjqC/gnCzmwGkVBdNruHoYAzzaSQ8e80w==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-node@4.0.7': - resolution: {integrity: sha512-79fQW3hnfCdrfIi1soPbK3zmooRFnLpSx3Vxi6nUlqaaQeC5dm8plt4OTNDNqEEEDkvKghZSaoti684dQFVrGQ==} + '@smithy/util-defaults-mode-node@4.0.6': + resolution: {integrity: sha512-9zhx1shd1VwSSVvLZB8CM3qQ3RPD3le7A3h/UPuyh/PC7g4OaWDi2xUNzamsVoSmCGtmUBONl56lM2EU6LcH7A==} engines: {node: '>=18.0.0'} '@smithy/util-endpoints@3.0.1': @@ -2754,8 +2787,8 @@ packages: resolution: {integrity: sha512-WmRHqNVwn3kI3rKk1LsKcVgPBG6iLTBGC1iYOV3GQegwJ3E8yjzHytPt26VNzOWr1qu0xE03nK0Ug8S7T7oufw==} engines: {node: '>=18.0.0'} - '@smithy/util-stream@4.1.2': - resolution: {integrity: sha512-44PKEqQ303d3rlQuiDpcCcu//hV8sn+u2JBo84dWCE0rvgeiVl0IlLMagbU++o0jCWhYCsHaAt9wZuZqNe05Hw==} + '@smithy/util-stream@4.1.1': + resolution: {integrity: sha512-+Xvh8nhy0Wjv1y71rBVyV3eJU3356XsFQNI8dEZVNrQju7Eib8G31GWtO+zMa9kTCGd41Mflu+ZKfmQL/o2XzQ==} engines: {node: '>=18.0.0'} '@smithy/util-uri-escape@4.0.0': @@ -2854,68 +2887,68 @@ packages: resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} engines: {node: '>=14'} - '@swc/core-darwin-arm64@1.11.1': - resolution: {integrity: sha512-bJbqZ51JghEZ8WaFetofkfkS3MWsS/V3vDvY+0r+SlLeocZwf8q8/GqcafnElHcU+zLV6yTi13fJwUce6ULiUQ==} + '@swc/core-darwin-arm64@1.10.18': + resolution: {integrity: sha512-FdGqzAIKVQJu8ROlnHElP59XAUsUzCFSNsou+tY/9ba+lhu8R9v0OI5wXiPErrKGZpQFMmx/BPqqhx3X4SuGNg==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.11.1': - resolution: {integrity: sha512-9GGEoN0uxkLg3KocOVzMfe9c9/DxESXclsL/U2xVLa3pTFB5YnXhiCP5YBT/3Q7nSGLD+R2ALqkNlDoueUjvPw==} + '@swc/core-darwin-x64@1.10.18': + resolution: {integrity: sha512-RZ73gZRituL/ZVLgrW6BYnQ5g8tuStG4cLUiPGJsUZpUm0ullSH6lHFvZTCBNFTfpQChG6eEhi2IdG6DwFp1lw==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.11.1': - resolution: {integrity: sha512-Lt7l/l0nfSTUzsWcVY3dtOPl5RtgCJ+Ya8IG4Aa3l6c7kLc6Sx4JpylpEIY9yhGidDy/uQ8KUg5kqUPtUrXrvQ==} + '@swc/core-linux-arm-gnueabihf@1.10.18': + resolution: {integrity: sha512-8iJqI3EkxJuuq21UHoen1VS+QlS23RvynRuk95K+Q2HBjygetztCGGEc+Xelx9a0uPkDaaAtFvds4JMDqb9SAA==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.11.1': - resolution: {integrity: sha512-oe826cfuGukctTSpDjk7RJRDEJihQMAzvO5tdWK0wcy+zvMPFyH5Fg6cW0X4ST3M7fcV91/1T/iuiiD2SVamYw==} + '@swc/core-linux-arm64-gnu@1.10.18': + resolution: {integrity: sha512-8f1kSktWzMB6PG+r8lOlCfXz5E8Qhsmfwonn77T/OfjvGwQaWrcoASh2cdjpk3dydbf8jsKGPQE1lSc7GyjXRQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.11.1': - resolution: {integrity: sha512-ABb4pnYeQp/JBJS5Qd2apTwOzpzrTebQFUiFjk0WgTKIr9T6SL3tLXMjgvbSXIath+1HnbCKFUwDXNQhgGFFTg==} + '@swc/core-linux-arm64-musl@1.10.18': + resolution: {integrity: sha512-4rv+E4VLdgQw6zjbTAauCAEExxChvxMpBUMCiZweTNPKbJJ2dY6BX2WGJ1ea8+RcgqR/Xysj3AFbOz1LBz6dGA==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.11.1': - resolution: {integrity: sha512-E09TcHv40bV0mOHTKquZw0IOcQ+lzzpQjyOhCa7+GBpbS3eg5/35Gu7DfToN2bomz74LPKW/l7jZRG+ZNOYNHQ==} + '@swc/core-linux-x64-gnu@1.10.18': + resolution: {integrity: sha512-vTNmyRBVP+sZca+vtwygYPGTNudTU6Gl6XhaZZ7cEUTBr8xvSTgEmYXoK/2uzyXpaTUI4Bmtp1x81cGN0mMoLQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.11.1': - resolution: {integrity: sha512-cuW4r7GbvQt9uv+rGdYLHUjDvGjHmr1nYE7iFVk6r4i+byZuXBK6M7P1p+/dTzacshOc05I9n/eUV+Hfjp9a3A==} + '@swc/core-linux-x64-musl@1.10.18': + resolution: {integrity: sha512-1TZPReKhFCeX776XaT6wegknfg+g3zODve+r4oslFHI+g7cInfWlxoGNDS3niPKyuafgCdOjme2g3OF+zzxfsQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.11.1': - resolution: {integrity: sha512-H8Q78GwaKnCL4isHx8JRTRi6vUU6iMLbpegS2jzWWC1On7EePhkLx2eR8nEsaRIQB6rc3WqdIj74OgOpNoPi7g==} + '@swc/core-win32-arm64-msvc@1.10.18': + resolution: {integrity: sha512-o/2CsaWSN3bkzVQ6DA+BiFKSVEYvhWGA1h+wnL2zWmIDs2Knag54sOEXZkCaf8YQyZesGeXJtPEy9hh/vjJgkA==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.11.1': - resolution: {integrity: sha512-Rx7cZ0OvqMb16fgmUSlPWQbH1+X355IDJhVQpUlpL+ezD/kkWmJix+4u2GVE/LHrfbdyZ4sjjIzSsCQxJV05Mw==} + '@swc/core-win32-ia32-msvc@1.10.18': + resolution: {integrity: sha512-eTPASeJtk4mJDfWiYEiOC6OYUi/N7meHbNHcU8e+aKABonhXrIo/FmnTE8vsUtC6+jakT1TQBdiQ8fzJ1kJVwA==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.11.1': - resolution: {integrity: sha512-6bEEC/XU1lwYzUXY7BXj3nhe7iBF9+i9dVo+hbiVxXZMrD0LUd+7urOBM3NtVnDsUaR6Ge/g7aR+OfpgYscKOg==} + '@swc/core-win32-x64-msvc@1.10.18': + resolution: {integrity: sha512-1Dud8CDBnc34wkBOboFBQud9YlV1bcIQtKSg7zC8LtwR3h+XAaCayZPkpGmmAlCv1DLQPvkF+s0JcaVC9mfffQ==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.11.1': - resolution: {integrity: sha512-67+lBHZ1lAJQKoOhBHl9DE2iugPYAulRVArZjoF+DnIY3G9wLXCXxw5It0IaCnzvJVvUPxGmr0rHViXKBDP5Vg==} + '@swc/core@1.10.18': + resolution: {integrity: sha512-IUWKD6uQYGRy8w2X9EZrtYg1O3SCijlHbCXzMaHQYc1X7yjijQh4H3IVL9ssZZyVp2ZDfQZu4bD5DWxxvpyjvg==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -2932,9 +2965,6 @@ packages: '@swc/types@0.1.17': resolution: {integrity: sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==} - '@swc/types@0.1.18': - resolution: {integrity: sha512-NZghLaQvF3eFdj2DUjGkpwaunbZYaRcxciHINnwA4n3FrLAI8hKFOBqs2wkcOiLQfWkIdfuG6gBkNFrkPNji5g==} - '@szmarczak/http-timer@5.0.1': resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} engines: {node: '>=14.16'} @@ -2942,8 +2972,8 @@ packages: '@tanstack/query-core@5.66.4': resolution: {integrity: sha512-skM/gzNX4shPkqmdTCSoHtJAPMTtmIJNS0hE+xwTTUVYwezArCT34NMermABmBVUg5Ls5aiUXEDXfqwR1oVkcA==} - '@tanstack/react-query@5.66.9': - resolution: {integrity: sha512-NRI02PHJsP5y2gAuWKP+awamTIBFBSKMnO6UVzi03GTclmHHHInH5UzVgzi5tpu4+FmGfsdT7Umqegobtsp23A==} + '@tanstack/react-query@5.66.7': + resolution: {integrity: sha512-qd3q/tUpF2K1xItfPZddk1k/8pSXnovg41XyCqJgPoyYEirMBtB0sVEVVQ/CsAOngzgWtBPXimVf4q4kM9uO6A==} peerDependencies: react: ^18 || ^19 @@ -3071,8 +3101,8 @@ packages: '@types/node@20.17.19': resolution: {integrity: sha512-LEwC7o1ifqg/6r2gn9Dns0f1rhK+fPFDoMiceTJ6kWmVk6bgXBI/9IOWfVan4WiAavK9pIVWdX0/e3J+eEUh5A==} - '@types/node@22.13.5': - resolution: {integrity: sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==} + '@types/node@22.13.4': + resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==} '@types/pluralize@0.0.33': resolution: {integrity: sha512-JOqsl+ZoCpP4e8TDke9W79FDcSgPAR0l6pixx2JHkhnRjvShyYiAYw2LVsnA7K08Y6DeOnaU6ujmENO4os/cYg==} @@ -3133,51 +3163,51 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.25.0': - resolution: {integrity: sha512-VM7bpzAe7JO/BFf40pIT1lJqS/z1F8OaSsUB3rpFJucQA4cOSuH2RVVVkFULN+En0Djgr29/jb4EQnedUo95KA==} + '@typescript-eslint/eslint-plugin@8.24.1': + resolution: {integrity: sha512-ll1StnKtBigWIGqvYDVuDmXJHVH4zLVot1yQ4fJtLpL7qacwkxJc1T0bptqw+miBQ/QfUbhl1TcQ4accW5KUyA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/parser@8.25.0': - resolution: {integrity: sha512-4gbs64bnbSzu4FpgMiQ1A+D+urxkoJk/kqlDJ2W//5SygaEiAP2B4GoS7TEdxgwol2el03gckFV9lJ4QOMiiHg==} + '@typescript-eslint/parser@8.24.1': + resolution: {integrity: sha512-Tqoa05bu+t5s8CTZFaGpCH2ub3QeT9YDkXbPd3uQ4SfsLoh1/vv2GEYAioPoxCWJJNsenXlC88tRjwoHNts1oQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/scope-manager@8.25.0': - resolution: {integrity: sha512-6PPeiKIGbgStEyt4NNXa2ru5pMzQ8OYKO1hX1z53HMomrmiSB+R5FmChgQAP1ro8jMtNawz+TRQo/cSXrauTpg==} + '@typescript-eslint/scope-manager@8.24.1': + resolution: {integrity: sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.25.0': - resolution: {integrity: sha512-d77dHgHWnxmXOPJuDWO4FDWADmGQkN5+tt6SFRZz/RtCWl4pHgFl3+WdYCn16+3teG09DY6XtEpf3gGD0a186g==} + '@typescript-eslint/type-utils@8.24.1': + resolution: {integrity: sha512-/Do9fmNgCsQ+K4rCz0STI7lYB4phTtEXqqCAs3gZW0pnK7lWNkvWd5iW545GSmApm4AzmQXmSqXPO565B4WVrw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/types@8.25.0': - resolution: {integrity: sha512-+vUe0Zb4tkNgznQwicsvLUJgZIRs6ITeWSCclX1q85pR1iOiaj+4uZJIUp//Z27QWu5Cseiw3O3AR8hVpax7Aw==} + '@typescript-eslint/types@8.24.1': + resolution: {integrity: sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.25.0': - resolution: {integrity: sha512-ZPaiAKEZ6Blt/TPAx5Ot0EIB/yGtLI2EsGoY6F7XKklfMxYQyvtL+gT/UCqkMzO0BVFHLDlzvFqQzurYahxv9Q==} + '@typescript-eslint/typescript-estree@8.24.1': + resolution: {integrity: sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.25.0': - resolution: {integrity: sha512-syqRbrEv0J1wywiLsK60XzHnQe/kRViI3zwFALrNEgnntn1l24Ra2KvOAWwWbWZ1lBZxZljPDGOq967dsl6fkA==} + '@typescript-eslint/utils@8.24.1': + resolution: {integrity: sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@8.25.0': - resolution: {integrity: sha512-kCYXKAum9CecGVHGij7muybDfTS2sD3t0L4bJsEZLkyrXUImiCTq1M3LG2SRtOhiHFwMR9wAFplpT6XHYjTkwQ==} + '@typescript-eslint/visitor-keys@8.24.1': + resolution: {integrity: sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -3223,8 +3253,8 @@ packages: resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} engines: {node: '>=12'} - ai@4.1.46: - resolution: {integrity: sha512-VTvAktT69IN1qcNAv7OlcOuR0q4HqUlhkVacrWmMlEoprYykF9EL5RY8IECD5d036Wqg0walwbSKZlA2noHm1A==} + ai@4.1.44: + resolution: {integrity: sha512-2THAHlSdZkRemTu7XinH5wckO3QprrniKg31fczgg4RKvsow0OztsLalwcIGoo69S0WN4BErNKkBisT+wXREZg==} engines: {node: '>=18'} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc @@ -4111,8 +4141,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.104: - resolution: {integrity: sha512-Us9M2L4cO/zMBqVkJtnj353nQhMju9slHm62NprKTmdF3HH8wYOtNvDFq/JB2+ZRoGLzdvYDiATlMHs98XBM1g==} + electron-to-chromium@1.5.102: + resolution: {integrity: sha512-eHhqaja8tE/FNpIiBrvBjFV/SSKpyWHLvxuR9dPTdo+3V9ppdLmFB7ZZQ98qNovcngPLYIz0oOBF9P0FfZef5Q==} emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -4327,8 +4357,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.21.0: - resolution: {integrity: sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==} + eslint@9.20.1: + resolution: {integrity: sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -4464,8 +4494,8 @@ packages: resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==} hasBin: true - fast-xml-parser@4.5.3: - resolution: {integrity: sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==} + fast-xml-parser@4.5.2: + resolution: {integrity: sha512-xmnYV9o0StIz/0ArdzmWTxn9oDy0lH8Z80/8X/TD2EUQKXY4DHxoT9mYBqgGIG17DgddCJtH1M6DriMbalNsAA==} hasBin: true fastest-levenshtein@1.0.16: @@ -4548,8 +4578,8 @@ packages: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} - foreground-child@3.3.1: - resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} form-data-encoder@2.1.4: @@ -4572,8 +4602,8 @@ packages: resolution: {integrity: sha512-Ah6t/7YCYjrPUFUFsOsRLMXAdnYM+aQwmojD2Ayb/Ezr82SwES0vuyQ8qZ3QO8n9j7W14VJuVZZet8U3bhSdQQ==} engines: {node: '>= 12'} - framer-motion@12.4.7: - resolution: {integrity: sha512-VhrcbtcAMXfxlrjeHPpWVu2+mkcoR31e02aNSR7OUS/hZAciKa8q6o3YN2mA1h+jjscRsSyKvX6E1CiY/7OLMw==} + framer-motion@12.4.5: + resolution: {integrity: sha512-9+8wglyIJFeUpVg4U8Ohvoo5x7zmvRqawWXhEUThcYdwL/5A1/OkLvQo68Zz5taUE11HKG/Ex+LPaN2+fMkRdA==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -4630,8 +4660,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + get-intrinsic@1.2.7: + resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} engines: {node: '>= 0.4'} get-package-type@0.1.0: @@ -4804,8 +4834,8 @@ packages: hast-util-to-html@9.0.5: resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} - hast-util-to-jsx-runtime@2.3.5: - resolution: {integrity: sha512-gHD+HoFxOMmmXLuq9f2dZDMQHVcplCVpMfBNRpJsF03yyLZvJGzsFORe8orVuYDX9k2w0VH0uF8oryFd1whqKQ==} + hast-util-to-jsx-runtime@2.3.3: + resolution: {integrity: sha512-pdpkP8YD4v+qMKn2lnKSiJvZvb3FunDmFYQvVOsoO08+eTNWdaWKPMrC5wwNICtU3dQWHhElj5Sf5jPEnv4qJg==} hast-util-to-mdast@10.1.2: resolution: {integrity: sha512-FiCRI7NmOvM4y+f5w32jPRzcxDIz+PUqDwEqn1A+1q2cdp3B8Gx7aVrXORdOKjMNDQsD1ogOr896+0jJHW1EFQ==} @@ -5175,8 +5205,8 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jackspeak@4.1.0: - resolution: {integrity: sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==} + jackspeak@4.0.3: + resolution: {integrity: sha512-oSwM7q8PTHQWuZAlp995iPpPJ4Vkl7qT0ZRD+9duL9j2oBy6KcTfyxc8mEuHJYC+z/kbps80aJLkaNzTOrf/kw==} engines: {node: 20 || >=22} jake@10.9.2: @@ -5627,8 +5657,8 @@ packages: mdn-data@2.12.2: resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} - mdn-data@2.16.0: - resolution: {integrity: sha512-FYRGKJUm9JD7JMUXwIi0dPkIozBqiSlz7Cx458FpEhTT3rQieI4sPL1LhY80FS3MIC6AJ/FWNJ2039GnIBJySg==} + mdn-data@2.15.0: + resolution: {integrity: sha512-KIrS0lFPOqA4DgeO16vI5fkAsy8p++WBlbXtB5P1EQs8ubBgguAInNd1DnrCeTRfGchY0kgThgDOOIPyOLH2dQ==} media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} @@ -5830,8 +5860,8 @@ packages: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} - mintlify@4.0.405: - resolution: {integrity: sha512-jWDOx6WYcDD4K0F3s6pBLL6Ixcs+TlW2rYlLpI5Bilyng12KkUalPJONUjrYPFUTHiWlJim1rHH0EQ+byUM7ZA==} + mintlify@4.0.395: + resolution: {integrity: sha512-gFReDFjWgTIWTw55Naefoe7r802uaPIytJWXoIhfFG/zsji1LD3FYWLIhTO+/5V6ioTEIN7WVLgdzl+YcDkNCg==} engines: {node: '>=18.0.0'} hasBin: true @@ -6021,9 +6051,15 @@ packages: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} + openapi-fetch@0.13.4: + resolution: {integrity: sha512-JHX7UYjLEiHuQGCPxa3CCCIqe/nc4bTIF9c4UYVC8BegAbWoS3g4gJxKX5XcG7UtYQs2060kY6DH64KkvNZahg==} + openapi-types@12.1.3: resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} + openapi-typescript-helpers@0.0.15: + resolution: {integrity: sha512-opyTPaunsklCBpTK8JGef6mfPhLSnyy5a0IN9vKtx3+4aExf+KxEqYwIy3hqkedXIB97u357uLMJsOnm3GVjsw==} + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -6252,8 +6288,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@3.5.2: - resolution: {integrity: sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==} + prettier@3.5.1: + resolution: {integrity: sha512-hPpFQvHwL3Qv5AdRvBFMhnKo4tYxp0ReXiPn2bxkiohEX6mBeBwEpBSQTkD458RaaDKQMYSp4hX4UtfUTA5wDw==} engines: {node: '>=14'} hasBin: true @@ -6398,8 +6434,8 @@ packages: react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - react-markdown@9.1.0: - resolution: {integrity: sha512-xaijuJB0kzGiUdG7nc2MOMDUDBWPyGAjZtUrow9XxUeua8IqeP+VlIfAZ3bphpcLTnSZXz6z9jcVC/TCwbfgdw==} + react-markdown@9.0.3: + resolution: {integrity: sha512-Yk7Z94dbgYTOrdk41Z74GoKA7rThnsbbqBTRYuxoe08qvfQ9tJVhmAKw6BJS/ZORG7kTy/s1QvYzSuaoBA1qfw==} peerDependencies: '@types/react': '>=18' react: '>=18' @@ -6543,8 +6579,8 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - require-in-the-middle@7.5.2: - resolution: {integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==} + require-in-the-middle@7.5.1: + resolution: {integrity: sha512-fgZEz/t3FDrU9o7EhI+iNNq1pNNpJImOvX72HUd6RoFiw8MaKd8/gR5tLuc8A0G0e55LMbP6ImjnmXY6zrTmjw==} engines: {node: '>=8.6.0'} resize-observer-polyfill@1.5.1: @@ -6625,8 +6661,8 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - rxjs@7.8.2: - resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} safe-array-concat@1.1.3: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} @@ -6650,133 +6686,133 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass-embedded-android-arm64@1.85.1: - resolution: {integrity: sha512-27oRheqNA3SJM2hAxpVbs7mCKUwKPWmEEhyiNFpBINb5ELVLg+Ck5RsGg+SJmo130ul5YX0vinmVB5uPWc8X5w==} + sass-embedded-android-arm64@1.85.0: + resolution: {integrity: sha512-4itDzRwezwrW8+YzMLIwHtMeH+qrBNdBsRn9lTVI15K+cNLC8z5JWJi6UCZ8TNNZr9LDBfsh5jUdjSub0yF7jg==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [android] - sass-embedded-android-arm@1.85.1: - resolution: {integrity: sha512-GkcgUGMZtEF9gheuE1dxCU0ZSAifuaFXi/aX7ZXvjtdwmTl9Zc/OHR9oiUJkc8IW9UI7H8TuwlTAA8+SwgwIeQ==} + sass-embedded-android-arm@1.85.0: + resolution: {integrity: sha512-pPBT7Ad6G8Mlao8ypVNXW2ya7I/Bhcny+RYZ/EmrunEXfhzCNp4PWV2VAweitPO9RnPIJwvUTkLc8Fu6K3nVmw==} engines: {node: '>=14.0.0'} cpu: [arm] os: [android] - sass-embedded-android-ia32@1.85.1: - resolution: {integrity: sha512-f3x16NyRgtXFksIaO/xXKrUhttUBv8V0XsAR2Dhdb/yz4yrDrhzw9Wh8fmw7PlQqECcQvFaoDr3XIIM6lKzasw==} + sass-embedded-android-ia32@1.85.0: + resolution: {integrity: sha512-bwqKq95hzbGbMTeXCMQhH7yEdc2xJVwIXj7rGdD3McvyFWbED6362XRFFPI5YyjfD2wRJd9yWLh/hn+6VyjcYA==} engines: {node: '>=14.0.0'} cpu: [ia32] os: [android] - sass-embedded-android-riscv64@1.85.1: - resolution: {integrity: sha512-IP6OijpJ8Mqo7XqCe0LsuZVbAxEFVboa0kXqqR5K55LebEplsTIA2GnmRyMay3Yr/2FVGsZbCb6Wlgkw23eCiA==} + sass-embedded-android-riscv64@1.85.0: + resolution: {integrity: sha512-Fgkgay+5EePJXZFHR5Vlkutnsmox2V6nX4U3mfGbSN1xjLRm8F5ST72V2s5Z0mnIFpGvEu/v7hfptgViqMvaxg==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [android] - sass-embedded-android-x64@1.85.1: - resolution: {integrity: sha512-Mh7CA53wR3ADvXAYipFc/R3vV4PVOzoKwWzPxmq+7i8UZrtsVjKONxGtqWe9JG1mna0C9CRZAx0sv/BzbOJxWg==} + sass-embedded-android-x64@1.85.0: + resolution: {integrity: sha512-/bG3JgTn3eoIDHCiJNVkLeJgUesat4ghxqYmKMZUJx++4e6iKCDj8XwQTJAgm+QDrsPKXHBacHEANJ9LEAuTqg==} engines: {node: '>=14.0.0'} cpu: [x64] os: [android] - sass-embedded-darwin-arm64@1.85.1: - resolution: {integrity: sha512-msWxzhvcP9hqGVegxVePVEfv9mVNTlUgGr6k7O7Ihji702mbtrH/lKwF4aRkkt4g1j7tv10+JtQXmTNi/pi9kA==} + sass-embedded-darwin-arm64@1.85.0: + resolution: {integrity: sha512-plp8TyMz97YFBCB3ndftEvoW29vyfsSBJILM5U84cGzr06SvLh/Npjj8psfUeRw+upEk1zkFtw5u61sRCdgwIw==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [darwin] - sass-embedded-darwin-x64@1.85.1: - resolution: {integrity: sha512-J4UFHUiyI9Z+mwYMwz11Ky9TYr3hY1fCxeQddjNGL/+ovldtb0yAIHvoVM0BGprQDm5JqhtUk8KyJ3RMJqpaAA==} + sass-embedded-darwin-x64@1.85.0: + resolution: {integrity: sha512-LP8Zv8DG57Gn6PmSwWzC0gEZUsGdg36Ps3m0i1fVTOelql7N3HZIrlPYRjJvidL8ZlB3ISxNANebTREUHn/wkQ==} engines: {node: '>=14.0.0'} cpu: [x64] os: [darwin] - sass-embedded-linux-arm64@1.85.1: - resolution: {integrity: sha512-jGadetB03BMFG2rq3OXub/uvC/lGpbQOiLGEz3NLb2nRZWyauRhzDtvZqkr6BEhxgIWtMtz2020yD8ZJSw/r2w==} + sass-embedded-linux-arm64@1.85.0: + resolution: {integrity: sha512-JRIRKVOY5Y8M1zlUOv9AQGju4P6lj8i5vLJZsVYVN/uY8Cd2dDJZPC8EOhjntp+IpF8AOGIHqCeCkHBceIyIjA==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [linux] - sass-embedded-linux-arm@1.85.1: - resolution: {integrity: sha512-X0fDh95nNSw1wfRlnkE4oscoEA5Au4nnk785s9jghPFkTBg+A+5uB6trCjf0fM22+Iw6kiP4YYmDdw3BqxAKLQ==} + sass-embedded-linux-arm@1.85.0: + resolution: {integrity: sha512-18xOAEfazJt1MMVS2TRHV94n81VyMnywOoJ7/S7I79qno/zx26OoqqP4XvH107xu8+mZ9Gg54LrUH6ZcgHk08g==} engines: {node: '>=14.0.0'} cpu: [arm] os: [linux] - sass-embedded-linux-ia32@1.85.1: - resolution: {integrity: sha512-7HlYY90d9mitDtNi5s+S+5wYZrTVbkBH2/kf7ixrzh2BFfT0YM81UHLJRnGX93y9aOMBL6DSZAIfkt1RsV9bkQ==} + sass-embedded-linux-ia32@1.85.0: + resolution: {integrity: sha512-4JH+h+gLt9So22nNPQtsKojEsLzjld9ol3zWcOtMGclv+HojZGbCuhJUrLUcK72F8adXYsULmWhJPKROLIwYMA==} engines: {node: '>=14.0.0'} cpu: [ia32] os: [linux] - sass-embedded-linux-musl-arm64@1.85.1: - resolution: {integrity: sha512-FLkIT0p18XOkR6wryJ13LqGBDsrYev2dRk9dtiU18NCpNXruKsdBQ1ZnWHVKB3h1dA9lFyEEisC0sooKdNfeOQ==} + sass-embedded-linux-musl-arm64@1.85.0: + resolution: {integrity: sha512-aoQjUjK28bvdw9XKTjQeayn8oWQ2QqvoTD11myklGd3IHH7Jj0nwXUstI4NxDueCKt3wghuZoIQkjOheReQxlg==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [linux] - sass-embedded-linux-musl-arm@1.85.1: - resolution: {integrity: sha512-5vcdEqE8QZnu6i6shZo7x2N36V7YUoFotWj2rGekII5ty7Nkaj+VtZhUEOp9tAzEOlaFuDp5CyO1kUCvweT64A==} + sass-embedded-linux-musl-arm@1.85.0: + resolution: {integrity: sha512-Z1j4ageDVFihqNUBnm89fxY46pY0zD/Clp1D3ZdI7S+D280+AEpbm5vMoH8LLhBQfQLf2w7H++SZGpQwrisudQ==} engines: {node: '>=14.0.0'} cpu: [arm] os: [linux] - sass-embedded-linux-musl-ia32@1.85.1: - resolution: {integrity: sha512-N1093T84zQJor1yyIAdYScB5eAuQarGK1tKgZ4uTnxVlgA7Xi1lXV8Eh7ox9sDqKCaWkVQ3MjqU26vYRBeRWyw==} + sass-embedded-linux-musl-ia32@1.85.0: + resolution: {integrity: sha512-/cJCSXOfXmQFH8deE+3U9x+BSz8i0d1Tt9gKV/Gat1Xm43Oumw8pmZgno+cDuGjYQInr9ryW5121pTMlj/PBXQ==} engines: {node: '>=14.0.0'} cpu: [ia32] os: [linux] - sass-embedded-linux-musl-riscv64@1.85.1: - resolution: {integrity: sha512-WRsZS/7qlfYXsa93FBpSruieuURIu7ySfFhzYfF1IbKrNAGwmbduutkHZh2ddm5/vQMvQ0Rdosgv+CslaQHMcw==} + sass-embedded-linux-musl-riscv64@1.85.0: + resolution: {integrity: sha512-l+FJxMXkmg42RZq5RFKXg4InX0IA7yEiPHe4kVSdrczP7z3NLxk+W9wVkPnoRKYIMe1qZPPQ25y0TgI4HNWouA==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [linux] - sass-embedded-linux-musl-x64@1.85.1: - resolution: {integrity: sha512-+OlLIilA5TnP0YEqTQ8yZtkW+bJIQYvzoGoNLUEskeyeGuOiIyn2CwL6G4JQB4xZQFaxPHb7JD3EueFkQbH0Pw==} + sass-embedded-linux-musl-x64@1.85.0: + resolution: {integrity: sha512-M9ffjcYfFcRvkFA6V3DpOS955AyvmpvPAhL/xNK45d/ma1n1ehTWpd24tVeKiNK5CZkNjjMEfyw2fHa6MpqmEA==} engines: {node: '>=14.0.0'} cpu: [x64] os: [linux] - sass-embedded-linux-riscv64@1.85.1: - resolution: {integrity: sha512-mKKlOwMGLN7yP1p0gB5yG/HX4fYLnpWaqstNuOOXH+fOzTaNg0+1hALg0H0CDIqypPO74M5MS9T6FAJZGdT6dQ==} + sass-embedded-linux-riscv64@1.85.0: + resolution: {integrity: sha512-yqPXQWfM+qiIPkfn++48GOlbmSvUZIyL9nwFstBk0k4x40UhbhilfknqeTUpxoHfQzylTGVhrm5JE7MjM+LNZA==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [linux] - sass-embedded-linux-x64@1.85.1: - resolution: {integrity: sha512-uKRTv0z8NgtHV7xSren78+yoWB79sNi7TMqI7Bxd8fcRNIgHQSA8QBdF8led2ETC004hr8h71BrY60RPO+SSvA==} + sass-embedded-linux-x64@1.85.0: + resolution: {integrity: sha512-NTDeQFZcuVR7COoaRy8pZD6/+QznwBR8kVFsj7NpmvX9aJ7TX/q+OQZHX7Bfb3tsfKXhf1YZozegPuYxRnMKAQ==} engines: {node: '>=14.0.0'} cpu: [x64] os: [linux] - sass-embedded-win32-arm64@1.85.1: - resolution: {integrity: sha512-/GMiZXBOc6AEMBC3g25Rp+x8fq9Z6Ql7037l5rajBPhZ+DdFwtdHY0Ou3oIU6XuWUwD06U3ii4XufXVFhsP6PA==} + sass-embedded-win32-arm64@1.85.0: + resolution: {integrity: sha512-gO0VAuxC4AdV+uZYJESRWVVHQWCGzNs0C3OKCAdH4r1vGRugooMi7J/5wbwUdXDA1MV9ICfhlKsph2n3GiPdqA==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [win32] - sass-embedded-win32-ia32@1.85.1: - resolution: {integrity: sha512-L+4BWkKKBGFOKVQ2PQ5HwFfkM5FvTf1Xx2VSRvEWt9HxPXp6SPDho6zC8fqNQ3hSjoaoASEIJcSvgfdQYO0gdg==} + sass-embedded-win32-ia32@1.85.0: + resolution: {integrity: sha512-PCyn6xeFIBUgBceNypuf73/5DWF2VWPlPqPuBprPsTvpZOMUJeBtP+Lf4mnu3dNy1z76mYVnpaCnQmzZ0zHZaA==} engines: {node: '>=14.0.0'} cpu: [ia32] os: [win32] - sass-embedded-win32-x64@1.85.1: - resolution: {integrity: sha512-/FO0AGKWxVfCk4GKsC0yXWBpUZdySe3YAAbQQL0lL6xUd1OiUY8Kow6g4Kc1TB/+z0iuQKKTqI/acJMEYl4iTQ==} + sass-embedded-win32-x64@1.85.0: + resolution: {integrity: sha512-AknE2jLp6OBwrR5hQ8pDsG94KhJCeSheFJ2xgbnk8RUjZX909JiNbgh2sNt9LG+RXf4xZa55dDL537gZoCx/iw==} engines: {node: '>=14.0.0'} cpu: [x64] os: [win32] - sass-embedded@1.85.1: - resolution: {integrity: sha512-0i+3h2Df/c71afluxC1SXqyyMmJlnKWfu9ZGdzwuKRM1OftEa2XM2myt5tR36CF3PanYrMjFKtRIj8PfSf838w==} + sass-embedded@1.85.0: + resolution: {integrity: sha512-x3Vv54g0jv1aPSW8OTA/0GzQCs/HMQOjIkLtZJ3Xsn/I4vnyjKbVTQmFTax9bQjldqLEEkdbvy6ES/cOOnYNwA==} engines: {node: '>=16.0.0'} hasBin: true - sass@1.85.1: - resolution: {integrity: sha512-Uk8WpxM5v+0cMR0XjX9KfRIacmSG86RH4DCCZjLU2rFh5tyutt9siAXJ7G+YfxQ99Q6wrRMbMlVl6KqUms71ag==} + sass@1.85.0: + resolution: {integrity: sha512-3ToiC1xZ1Y8aU7+CkgCI/tqyuPXEmYGJXO7H4uqp0xkLXUqp88rQQ4j1HmP37xSJLbCJPaIiv+cT1y+grssrww==} engines: {node: '>=14.0.0'} hasBin: true @@ -7067,8 +7103,8 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - strnum@1.1.1: - resolution: {integrity: sha512-O7aCHfYCamLCctjAiaucmE+fHf2DYHkus2OKCn4Wv03sykfFtgeECn505X6K4mPl8CRNd/qurC9guq+ynoN4pw==} + strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} style-to-object@1.0.8: resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} @@ -7113,8 +7149,8 @@ packages: peerDependencies: stylelint: ^14.0.0 || ^15.0.0 || ^16.0.0 - stylelint-scss@6.11.1: - resolution: {integrity: sha512-e4rYo0UY+BIMtGeGanghrvHTjcryxgZbyFxUedp8dLFqC4P70aawNdYjRrQxbnKhu3BNr4+lt5e/53tcKXiwFA==} + stylelint-scss@6.11.0: + resolution: {integrity: sha512-AvJ6LVzz2iXHxPlPTR9WVy73FC/vmohH54VySNlCKX1NIXNAeuzy/VbIkMJLMyw/xKYqkgY4kAgB+qy5BfCaCg==} engines: {node: '>=18.12.0'} peerDependencies: stylelint: ^16.0.2 @@ -7223,6 +7259,10 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + tinyglobby@0.2.11: + resolution: {integrity: sha512-32TmKeeKUahv0Go8WmQgiEp9Y21NuxjwjqiRC1nrUB51YacfSwuB44xgXD+HdIppmMRgjQNPdrHyA6vIybYZ+g==} + engines: {node: '>=12.0.0'} + tinyglobby@0.2.12: resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} engines: {node: '>=12.0.0'} @@ -7277,8 +7317,8 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - ts-jest@29.2.6: - resolution: {integrity: sha512-yTNZVZqc8lSixm+QGVFcPe6+yj7+TWZwIesuOWvfcn4B9bz5x4NDzVCQQjOs7Hfouu36aEqfEbo9Qpo+gq8dDg==} + ts-jest@29.2.5: + resolution: {integrity: sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==} engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -7385,8 +7425,8 @@ packages: resolution: {integrity: sha512-q7QNVDGTdl702bVFiI5eY4l/HkgCM6at9KhcFbgUAzezHFbOVy4+0O/lCjsABEQwbZPravVfBIiBVGo89yzHFg==} engines: {node: '>= 0.4'} - typescript-eslint@8.25.0: - resolution: {integrity: sha512-TxRdQQLH4g7JkoFlYG3caW5v1S6kEkz8rqt80iQJZUYPq1zD1Ra7HfQBJJ88ABRaMvHAXnwRvRB4V+6sQ9xN5Q==} + typescript-eslint@8.24.1: + resolution: {integrity: sha512-cw3rEdzDqBs70TIcb0Gdzbt6h11BSs2pS0yaq7hDWDBtCCSei1pPSUXE9qUdQ/Wm9NgFg8mKtMt1b8fTHIl1jA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7515,8 +7555,8 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} - uuid@11.1.0: - resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} + uuid@11.0.5: + resolution: {integrity: sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==} hasBin: true uuid@9.0.1: @@ -7555,8 +7595,8 @@ packages: peerDependencies: vite: '>=2.6.0' - vite@6.2.0: - resolution: {integrity: sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ==} + vite@6.1.1: + resolution: {integrity: sha512-4GgM54XrwRfrOp297aIYspIti66k56v16ZnqHvrIM7mG+HjDlAwS7p+Srr7J6fGvEdOJ5JcQ/D9T7HhtdXDTzA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -7687,8 +7727,8 @@ packages: utf-8-validate: optional: true - ws@8.18.1: - resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -7741,8 +7781,8 @@ packages: resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} engines: {node: '>=18'} - zod-to-json-schema@3.24.3: - resolution: {integrity: sha512-HIAfWdYIt1sssHfYZFCXp4rU1w2r8hVVXYIlmoa0r0gABLs5di3RCqPU5DDROogVz1pAdYBaz7HK5n9pSUNs3A==} + zod-to-json-schema@3.24.1: + resolution: {integrity: sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==} peerDependencies: zod: ^3.24.1 @@ -7757,40 +7797,40 @@ packages: snapshots: - '@ai-sdk/openai@1.1.14(zod@3.24.2)': + '@ai-sdk/openai@1.1.13(zod@3.24.2)': dependencies: - '@ai-sdk/provider': 1.0.9 - '@ai-sdk/provider-utils': 2.1.10(zod@3.24.2) + '@ai-sdk/provider': 1.0.8 + '@ai-sdk/provider-utils': 2.1.9(zod@3.24.2) zod: 3.24.2 - '@ai-sdk/provider-utils@2.1.10(zod@3.24.2)': + '@ai-sdk/provider-utils@2.1.9(zod@3.24.2)': dependencies: - '@ai-sdk/provider': 1.0.9 + '@ai-sdk/provider': 1.0.8 eventsource-parser: 3.0.0 nanoid: 3.3.8 secure-json-parse: 2.7.0 optionalDependencies: zod: 3.24.2 - '@ai-sdk/provider@1.0.9': + '@ai-sdk/provider@1.0.8': dependencies: json-schema: 0.4.0 - '@ai-sdk/react@1.1.18(react@19.0.0)(zod@3.24.2)': + '@ai-sdk/react@1.1.17(react@19.0.0)(zod@3.24.2)': dependencies: - '@ai-sdk/provider-utils': 2.1.10(zod@3.24.2) - '@ai-sdk/ui-utils': 1.1.16(zod@3.24.2) + '@ai-sdk/provider-utils': 2.1.9(zod@3.24.2) + '@ai-sdk/ui-utils': 1.1.15(zod@3.24.2) swr: 2.3.2(react@19.0.0) throttleit: 2.1.0 optionalDependencies: react: 19.0.0 zod: 3.24.2 - '@ai-sdk/ui-utils@1.1.16(zod@3.24.2)': + '@ai-sdk/ui-utils@1.1.15(zod@3.24.2)': dependencies: - '@ai-sdk/provider': 1.0.9 - '@ai-sdk/provider-utils': 2.1.10(zod@3.24.2) - zod-to-json-schema: 3.24.3(zod@3.24.2) + '@ai-sdk/provider': 1.0.8 + '@ai-sdk/provider-utils': 2.1.9(zod@3.24.2) + zod-to-json-schema: 3.24.1(zod@3.24.2) optionalDependencies: zod: 3.24.2 @@ -7837,7 +7877,7 @@ snapshots: '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-bedrock-runtime@3.755.0': + '@aws-sdk/client-bedrock-runtime@3.751.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 @@ -7853,7 +7893,7 @@ snapshots: '@aws-sdk/util-user-agent-browser': 3.734.0 '@aws-sdk/util-user-agent-node': 3.750.0 '@smithy/config-resolver': 4.0.1 - '@smithy/core': 3.1.5 + '@smithy/core': 3.1.4 '@smithy/eventstream-serde-browser': 4.0.1 '@smithy/eventstream-serde-config-resolver': 4.0.1 '@smithy/eventstream-serde-node': 4.0.1 @@ -7861,25 +7901,25 @@ snapshots: '@smithy/hash-node': 4.0.1 '@smithy/invalid-dependency': 4.0.1 '@smithy/middleware-content-length': 4.0.1 - '@smithy/middleware-endpoint': 4.0.6 - '@smithy/middleware-retry': 4.0.7 + '@smithy/middleware-endpoint': 4.0.5 + '@smithy/middleware-retry': 4.0.6 '@smithy/middleware-serde': 4.0.2 '@smithy/middleware-stack': 4.0.1 '@smithy/node-config-provider': 4.0.1 - '@smithy/node-http-handler': 4.0.3 + '@smithy/node-http-handler': 4.0.2 '@smithy/protocol-http': 5.0.1 - '@smithy/smithy-client': 4.1.6 + '@smithy/smithy-client': 4.1.5 '@smithy/types': 4.1.0 '@smithy/url-parser': 4.0.1 '@smithy/util-base64': 4.0.0 '@smithy/util-body-length-browser': 4.0.0 '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.7 - '@smithy/util-defaults-mode-node': 4.0.7 + '@smithy/util-defaults-mode-browser': 4.0.6 + '@smithy/util-defaults-mode-node': 4.0.6 '@smithy/util-endpoints': 3.0.1 '@smithy/util-middleware': 4.0.1 '@smithy/util-retry': 4.0.1 - '@smithy/util-stream': 4.1.2 + '@smithy/util-stream': 4.1.1 '@smithy/util-utf8': 4.0.0 '@types/uuid': 9.0.8 tslib: 2.8.1 @@ -7902,26 +7942,26 @@ snapshots: '@aws-sdk/util-user-agent-browser': 3.734.0 '@aws-sdk/util-user-agent-node': 3.750.0 '@smithy/config-resolver': 4.0.1 - '@smithy/core': 3.1.5 + '@smithy/core': 3.1.4 '@smithy/fetch-http-handler': 5.0.1 '@smithy/hash-node': 4.0.1 '@smithy/invalid-dependency': 4.0.1 '@smithy/middleware-content-length': 4.0.1 - '@smithy/middleware-endpoint': 4.0.6 - '@smithy/middleware-retry': 4.0.7 + '@smithy/middleware-endpoint': 4.0.5 + '@smithy/middleware-retry': 4.0.6 '@smithy/middleware-serde': 4.0.2 '@smithy/middleware-stack': 4.0.1 '@smithy/node-config-provider': 4.0.1 - '@smithy/node-http-handler': 4.0.3 + '@smithy/node-http-handler': 4.0.2 '@smithy/protocol-http': 5.0.1 - '@smithy/smithy-client': 4.1.6 + '@smithy/smithy-client': 4.1.5 '@smithy/types': 4.1.0 '@smithy/url-parser': 4.0.1 '@smithy/util-base64': 4.0.0 '@smithy/util-body-length-browser': 4.0.0 '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.7 - '@smithy/util-defaults-mode-node': 4.0.7 + '@smithy/util-defaults-mode-browser': 4.0.6 + '@smithy/util-defaults-mode-node': 4.0.6 '@smithy/util-endpoints': 3.0.1 '@smithy/util-middleware': 4.0.1 '@smithy/util-retry': 4.0.1 @@ -7933,12 +7973,12 @@ snapshots: '@aws-sdk/core@3.750.0': dependencies: '@aws-sdk/types': 3.734.0 - '@smithy/core': 3.1.5 + '@smithy/core': 3.1.4 '@smithy/node-config-provider': 4.0.1 '@smithy/property-provider': 4.0.1 '@smithy/protocol-http': 5.0.1 '@smithy/signature-v4': 5.0.1 - '@smithy/smithy-client': 4.1.6 + '@smithy/smithy-client': 4.1.5 '@smithy/types': 4.1.0 '@smithy/util-middleware': 4.0.1 fast-xml-parser: 4.4.1 @@ -7957,12 +7997,12 @@ snapshots: '@aws-sdk/core': 3.750.0 '@aws-sdk/types': 3.734.0 '@smithy/fetch-http-handler': 5.0.1 - '@smithy/node-http-handler': 4.0.3 + '@smithy/node-http-handler': 4.0.2 '@smithy/property-provider': 4.0.1 '@smithy/protocol-http': 5.0.1 - '@smithy/smithy-client': 4.1.6 + '@smithy/smithy-client': 4.1.5 '@smithy/types': 4.1.0 - '@smithy/util-stream': 4.1.2 + '@smithy/util-stream': 4.1.1 tslib: 2.8.1 '@aws-sdk/credential-provider-ini@3.750.0': @@ -8058,7 +8098,7 @@ snapshots: '@aws-sdk/core': 3.750.0 '@aws-sdk/types': 3.734.0 '@aws-sdk/util-endpoints': 3.743.0 - '@smithy/core': 3.1.5 + '@smithy/core': 3.1.4 '@smithy/protocol-http': 5.0.1 '@smithy/types': 4.1.0 tslib: 2.8.1 @@ -8078,26 +8118,26 @@ snapshots: '@aws-sdk/util-user-agent-browser': 3.734.0 '@aws-sdk/util-user-agent-node': 3.750.0 '@smithy/config-resolver': 4.0.1 - '@smithy/core': 3.1.5 + '@smithy/core': 3.1.4 '@smithy/fetch-http-handler': 5.0.1 '@smithy/hash-node': 4.0.1 '@smithy/invalid-dependency': 4.0.1 '@smithy/middleware-content-length': 4.0.1 - '@smithy/middleware-endpoint': 4.0.6 - '@smithy/middleware-retry': 4.0.7 + '@smithy/middleware-endpoint': 4.0.5 + '@smithy/middleware-retry': 4.0.6 '@smithy/middleware-serde': 4.0.2 '@smithy/middleware-stack': 4.0.1 '@smithy/node-config-provider': 4.0.1 - '@smithy/node-http-handler': 4.0.3 + '@smithy/node-http-handler': 4.0.2 '@smithy/protocol-http': 5.0.1 - '@smithy/smithy-client': 4.1.6 + '@smithy/smithy-client': 4.1.5 '@smithy/types': 4.1.0 '@smithy/url-parser': 4.0.1 '@smithy/util-base64': 4.0.0 '@smithy/util-body-length-browser': 4.0.0 '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.7 - '@smithy/util-defaults-mode-node': 4.0.7 + '@smithy/util-defaults-mode-browser': 4.0.6 + '@smithy/util-defaults-mode-node': 4.0.6 '@smithy/util-endpoints': 3.0.1 '@smithy/util-middleware': 4.0.1 '@smithy/util-retry': 4.0.1 @@ -8980,13 +9020,13 @@ snapshots: dependencies: '@ibm/telemetry-js': 1.9.1 - '@carbon/react@1.76.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.85.1)': + '@carbon/react@1.76.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.85.0)': dependencies: '@babel/runtime': 7.26.9 '@carbon/feature-flags': 0.24.0 '@carbon/icons-react': 11.55.0(react@19.0.0) '@carbon/layout': 11.29.0 - '@carbon/styles': 1.75.0(sass@1.85.1) + '@carbon/styles': 1.75.0(sass@1.85.0) '@floating-ui/react': 0.26.28(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@ibm/telemetry-js': 1.9.1 classnames: 2.5.1 @@ -9000,12 +9040,12 @@ snapshots: react-dom: 19.0.0(react@19.0.0) react-fast-compare: 3.2.2 react-is: 18.3.1 - sass: 1.85.1 + sass: 1.85.0 tabbable: 6.2.0 use-resize-observer: 6.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) window-or-global: 1.0.1 - '@carbon/styles@1.75.0(sass@1.85.1)': + '@carbon/styles@1.75.0(sass@1.85.0)': dependencies: '@carbon/colors': 11.29.0 '@carbon/feature-flags': 0.24.0 @@ -9025,7 +9065,7 @@ snapshots: '@ibm/plex-serif': 0.0.3-alpha.0 '@ibm/telemetry-js': 1.9.1 optionalDependencies: - sass: 1.85.1 + sass: 1.85.0 '@carbon/themes@11.46.0': dependencies: @@ -9213,9 +9253,9 @@ snapshots: '@esbuild/win32-x64@0.25.0': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.21.0)': + '@eslint-community/eslint-utils@4.4.1(eslint@9.20.1)': dependencies: - eslint: 9.21.0 + eslint: 9.20.1 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -9228,11 +9268,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/core@0.12.0': + '@eslint/core@0.11.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.3.0': + '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 debug: 4.4.0 @@ -9246,13 +9286,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.21.0': {} + '@eslint/js@9.20.0': {} '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.2.7': + '@eslint/plugin-kit@0.2.6': dependencies: - '@eslint/core': 0.12.0 + '@eslint/core': 0.11.0 levn: 0.4.1 '@floating-ui/core@1.6.9': @@ -9278,6 +9318,14 @@ snapshots: react-dom: 19.0.0(react@19.0.0) tabbable: 6.2.0 + '@floating-ui/react@0.27.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@floating-ui/utils': 0.2.9 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + tabbable: 6.2.0 + '@floating-ui/utils@0.2.9': {} '@grpc/grpc-js@1.12.6': @@ -9303,7 +9351,7 @@ snapshots: '@humanwhocodes/retry@0.3.1': {} - '@humanwhocodes/retry@0.4.2': {} + '@humanwhocodes/retry@0.4.1': {} '@i-am-bee/acp-sdk@0.0.1': dependencies: @@ -9312,7 +9360,7 @@ snapshots: eventsource: 3.0.5 raw-body: 3.0.0 zod: 3.24.2 - zod-to-json-schema: 3.24.3(zod@3.24.2) + zod-to-json-schema: 3.24.1(zod@3.24.2) '@i-am-bee/beeai-sdk@0.0.4': dependencies: @@ -9426,27 +9474,27 @@ snapshots: '@img/sharp-win32-x64@0.33.5': optional: true - '@inquirer/checkbox@4.1.2(@types/node@22.13.5)': + '@inquirer/checkbox@4.1.2(@types/node@22.13.4)': dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) + '@inquirer/core': 10.1.7(@types/node@22.13.4) '@inquirer/figures': 1.0.10 - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/type': 3.0.4(@types/node@22.13.4) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 - '@inquirer/confirm@5.1.6(@types/node@22.13.5)': + '@inquirer/confirm@5.1.6(@types/node@22.13.4)': dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/core': 10.1.7(@types/node@22.13.4) + '@inquirer/type': 3.0.4(@types/node@22.13.4) optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 - '@inquirer/core@10.1.7(@types/node@22.13.5)': + '@inquirer/core@10.1.7(@types/node@22.13.4)': dependencies: '@inquirer/figures': 1.0.10 - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/type': 3.0.4(@types/node@22.13.4) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -9454,93 +9502,93 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 - '@inquirer/editor@4.2.7(@types/node@22.13.5)': + '@inquirer/editor@4.2.7(@types/node@22.13.4)': dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/core': 10.1.7(@types/node@22.13.4) + '@inquirer/type': 3.0.4(@types/node@22.13.4) external-editor: 3.1.0 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 - '@inquirer/expand@4.0.9(@types/node@22.13.5)': + '@inquirer/expand@4.0.9(@types/node@22.13.4)': dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/core': 10.1.7(@types/node@22.13.4) + '@inquirer/type': 3.0.4(@types/node@22.13.4) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 '@inquirer/figures@1.0.10': {} - '@inquirer/input@4.1.6(@types/node@22.13.5)': + '@inquirer/input@4.1.6(@types/node@22.13.4)': dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/core': 10.1.7(@types/node@22.13.4) + '@inquirer/type': 3.0.4(@types/node@22.13.4) optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 - '@inquirer/number@3.0.9(@types/node@22.13.5)': + '@inquirer/number@3.0.9(@types/node@22.13.4)': dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/core': 10.1.7(@types/node@22.13.4) + '@inquirer/type': 3.0.4(@types/node@22.13.4) optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 - '@inquirer/password@4.0.9(@types/node@22.13.5)': + '@inquirer/password@4.0.9(@types/node@22.13.4)': dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/core': 10.1.7(@types/node@22.13.4) + '@inquirer/type': 3.0.4(@types/node@22.13.4) ansi-escapes: 4.3.2 optionalDependencies: - '@types/node': 22.13.5 - - '@inquirer/prompts@7.3.2(@types/node@22.13.5)': - dependencies: - '@inquirer/checkbox': 4.1.2(@types/node@22.13.5) - '@inquirer/confirm': 5.1.6(@types/node@22.13.5) - '@inquirer/editor': 4.2.7(@types/node@22.13.5) - '@inquirer/expand': 4.0.9(@types/node@22.13.5) - '@inquirer/input': 4.1.6(@types/node@22.13.5) - '@inquirer/number': 3.0.9(@types/node@22.13.5) - '@inquirer/password': 4.0.9(@types/node@22.13.5) - '@inquirer/rawlist': 4.0.9(@types/node@22.13.5) - '@inquirer/search': 3.0.9(@types/node@22.13.5) - '@inquirer/select': 4.0.9(@types/node@22.13.5) + '@types/node': 22.13.4 + + '@inquirer/prompts@7.3.2(@types/node@22.13.4)': + dependencies: + '@inquirer/checkbox': 4.1.2(@types/node@22.13.4) + '@inquirer/confirm': 5.1.6(@types/node@22.13.4) + '@inquirer/editor': 4.2.7(@types/node@22.13.4) + '@inquirer/expand': 4.0.9(@types/node@22.13.4) + '@inquirer/input': 4.1.6(@types/node@22.13.4) + '@inquirer/number': 3.0.9(@types/node@22.13.4) + '@inquirer/password': 4.0.9(@types/node@22.13.4) + '@inquirer/rawlist': 4.0.9(@types/node@22.13.4) + '@inquirer/search': 3.0.9(@types/node@22.13.4) + '@inquirer/select': 4.0.9(@types/node@22.13.4) optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 - '@inquirer/rawlist@4.0.9(@types/node@22.13.5)': + '@inquirer/rawlist@4.0.9(@types/node@22.13.4)': dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/core': 10.1.7(@types/node@22.13.4) + '@inquirer/type': 3.0.4(@types/node@22.13.4) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 - '@inquirer/search@3.0.9(@types/node@22.13.5)': + '@inquirer/search@3.0.9(@types/node@22.13.4)': dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) + '@inquirer/core': 10.1.7(@types/node@22.13.4) '@inquirer/figures': 1.0.10 - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/type': 3.0.4(@types/node@22.13.4) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 - '@inquirer/select@4.0.9(@types/node@22.13.5)': + '@inquirer/select@4.0.9(@types/node@22.13.4)': dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) + '@inquirer/core': 10.1.7(@types/node@22.13.4) '@inquirer/figures': 1.0.10 - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/type': 3.0.4(@types/node@22.13.4) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 - '@inquirer/type@3.0.4(@types/node@22.13.5)': + '@inquirer/type@3.0.4(@types/node@22.13.4)': optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 '@isaacs/cliui@8.0.2': dependencies: @@ -9564,7 +9612,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.13.5 + '@types/node': 22.13.4 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -9577,14 +9625,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.5 + '@types/node': 22.13.4 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.13.5) + jest-config: 29.7.0(@types/node@22.13.4) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -9609,7 +9657,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.5 + '@types/node': 22.13.4 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -9627,7 +9675,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.13.5 + '@types/node': 22.13.4 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -9649,7 +9697,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.13.5 + '@types/node': 22.13.4 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -9719,7 +9767,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.13.5 + '@types/node': 22.13.4 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -9759,7 +9807,7 @@ snapshots: estree-util-is-identifier-name: 3.0.0 estree-util-scope: 1.0.0 estree-walker: 3.0.3 - hast-util-to-jsx-runtime: 2.3.5 + hast-util-to-jsx-runtime: 2.3.3 markdown-extensions: 2.0.0 recma-build-jsx: 1.0.0 recma-jsx: 1.0.0(acorn@8.14.0) @@ -9784,18 +9832,18 @@ snapshots: '@types/react': 19.0.10 react: 19.0.0 - '@mintlify/cli@4.0.405(@types/node@22.13.5)(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)': + '@mintlify/cli@4.0.395(@types/node@22.13.4)(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)': dependencies: - '@mintlify/common': 1.0.287(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@mintlify/link-rot': 3.0.385(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) - '@mintlify/models': 0.0.175 - '@mintlify/prebuild': 1.0.382(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) - '@mintlify/previewing': 4.0.397(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) - '@mintlify/validation': 0.1.306 + '@mintlify/common': 1.0.279(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@mintlify/link-rot': 3.0.377(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) + '@mintlify/models': 0.0.174 + '@mintlify/prebuild': 1.0.374(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) + '@mintlify/previewing': 4.0.387(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) + '@mintlify/validation': 0.1.299 chalk: 5.4.1 detect-port: 1.6.1 fs-extra: 11.3.0 - inquirer: 12.4.2(@types/node@22.13.5) + inquirer: 12.4.2(@types/node@22.13.4) js-yaml: 4.1.0 ora: 6.3.1 yargs: 17.7.2 @@ -9811,12 +9859,12 @@ snapshots: - typescript - utf-8-validate - '@mintlify/common@1.0.287(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@mintlify/common@1.0.279(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@mintlify/mdx': 1.0.1(@types/react@19.0.10)(acorn@8.14.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@mintlify/models': 0.0.175 + '@mintlify/models': 0.0.174 '@mintlify/openapi-parser': 0.0.7 - '@mintlify/validation': 0.1.306 + '@mintlify/validation': 0.1.299 '@sindresorhus/slugify': 2.2.1 acorn: 8.14.0 estree-util-to-js: 2.0.0 @@ -9853,10 +9901,10 @@ snapshots: - react-dom - supports-color - '@mintlify/link-rot@3.0.385(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)': + '@mintlify/link-rot@3.0.377(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)': dependencies: - '@mintlify/common': 1.0.287(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@mintlify/prebuild': 1.0.382(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) + '@mintlify/common': 1.0.279(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@mintlify/prebuild': 1.0.374(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) fs-extra: 11.3.0 is-absolute-url: 4.0.1 unist-util-visit: 4.1.2 @@ -9891,7 +9939,7 @@ snapshots: - acorn - supports-color - '@mintlify/models@0.0.175': + '@mintlify/models@0.0.174': dependencies: axios: 1.7.9 openapi-types: 12.1.3 @@ -9907,12 +9955,12 @@ snapshots: leven: 4.0.0 yaml: 2.7.0 - '@mintlify/prebuild@1.0.382(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)': + '@mintlify/prebuild@1.0.374(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)': dependencies: - '@mintlify/common': 1.0.287(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@mintlify/common': 1.0.279(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@mintlify/openapi-parser': 0.0.7 - '@mintlify/scraping': 4.0.133(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) - '@mintlify/validation': 0.1.306 + '@mintlify/scraping': 4.0.125(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) + '@mintlify/validation': 0.1.299 axios: 1.7.9 chalk: 5.4.1 favicons: 7.2.0 @@ -9933,11 +9981,11 @@ snapshots: - typescript - utf-8-validate - '@mintlify/previewing@4.0.397(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)': + '@mintlify/previewing@4.0.387(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)': dependencies: - '@mintlify/common': 1.0.287(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@mintlify/prebuild': 1.0.382(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) - '@mintlify/validation': 0.1.306 + '@mintlify/common': 1.0.279(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@mintlify/prebuild': 1.0.374(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) + '@mintlify/validation': 0.1.299 better-opn: 3.0.2 chalk: 5.4.1 chokidar: 3.6.0 @@ -9965,9 +10013,9 @@ snapshots: - typescript - utf-8-validate - '@mintlify/scraping@4.0.133(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)': + '@mintlify/scraping@4.0.125(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)': dependencies: - '@mintlify/common': 1.0.287(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@mintlify/common': 1.0.279(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@mintlify/openapi-parser': 0.0.7 fs-extra: 11.3.0 hast-util-to-mdast: 10.1.2 @@ -9995,15 +10043,15 @@ snapshots: - typescript - utf-8-validate - '@mintlify/validation@0.1.306': + '@mintlify/validation@0.1.299': dependencies: - '@mintlify/models': 0.0.175 + '@mintlify/models': 0.0.174 is-absolute-url: 4.0.1 lcm: 0.0.3 lodash: 4.17.21 openapi-types: 12.1.3 zod: 3.24.2 - zod-to-json-schema: 3.24.3(zod@3.24.2) + zod-to-json-schema: 3.24.1(zod@3.24.2) transitivePeerDependencies: - debug @@ -10179,7 +10227,7 @@ snapshots: '@opentelemetry/api-logs': 0.57.2 '@types/shimmer': 1.2.0 import-in-the-middle: 1.13.0 - require-in-the-middle: 7.5.2 + require-in-the-middle: 7.5.1 semver: 7.7.1 shimmer: 1.2.1 transitivePeerDependencies: @@ -10387,6 +10435,19 @@ snapshots: - bare-buffer - supports-color + '@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.10)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + + '@radix-ui/react-slot@1.1.2(@types/react@19.0.10)(react@19.0.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + '@rollup/pluginutils@5.1.4(rollup@4.34.8)': dependencies: '@types/estree': 1.0.6 @@ -10492,14 +10553,14 @@ snapshots: '@smithy/util-middleware': 4.0.1 tslib: 2.8.1 - '@smithy/core@3.1.5': + '@smithy/core@3.1.4': dependencies: '@smithy/middleware-serde': 4.0.2 '@smithy/protocol-http': 5.0.1 '@smithy/types': 4.1.0 '@smithy/util-body-length-browser': 4.0.0 '@smithy/util-middleware': 4.0.1 - '@smithy/util-stream': 4.1.2 + '@smithy/util-stream': 4.1.1 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 @@ -10575,9 +10636,9 @@ snapshots: '@smithy/types': 4.1.0 tslib: 2.8.1 - '@smithy/middleware-endpoint@4.0.6': + '@smithy/middleware-endpoint@4.0.5': dependencies: - '@smithy/core': 3.1.5 + '@smithy/core': 3.1.4 '@smithy/middleware-serde': 4.0.2 '@smithy/node-config-provider': 4.0.1 '@smithy/shared-ini-file-loader': 4.0.1 @@ -10586,12 +10647,12 @@ snapshots: '@smithy/util-middleware': 4.0.1 tslib: 2.8.1 - '@smithy/middleware-retry@4.0.7': + '@smithy/middleware-retry@4.0.6': dependencies: '@smithy/node-config-provider': 4.0.1 '@smithy/protocol-http': 5.0.1 '@smithy/service-error-classification': 4.0.1 - '@smithy/smithy-client': 4.1.6 + '@smithy/smithy-client': 4.1.5 '@smithy/types': 4.1.0 '@smithy/util-middleware': 4.0.1 '@smithy/util-retry': 4.0.1 @@ -10615,7 +10676,7 @@ snapshots: '@smithy/types': 4.1.0 tslib: 2.8.1 - '@smithy/node-http-handler@4.0.3': + '@smithy/node-http-handler@4.0.2': dependencies: '@smithy/abort-controller': 4.0.1 '@smithy/protocol-http': 5.0.1 @@ -10664,14 +10725,14 @@ snapshots: '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@smithy/smithy-client@4.1.6': + '@smithy/smithy-client@4.1.5': dependencies: - '@smithy/core': 3.1.5 - '@smithy/middleware-endpoint': 4.0.6 + '@smithy/core': 3.1.4 + '@smithy/middleware-endpoint': 4.0.5 '@smithy/middleware-stack': 4.0.1 '@smithy/protocol-http': 5.0.1 '@smithy/types': 4.1.0 - '@smithy/util-stream': 4.1.2 + '@smithy/util-stream': 4.1.1 tslib: 2.8.1 '@smithy/types@4.1.0': @@ -10712,21 +10773,21 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/util-defaults-mode-browser@4.0.7': + '@smithy/util-defaults-mode-browser@4.0.6': dependencies: '@smithy/property-provider': 4.0.1 - '@smithy/smithy-client': 4.1.6 + '@smithy/smithy-client': 4.1.5 '@smithy/types': 4.1.0 bowser: 2.11.0 tslib: 2.8.1 - '@smithy/util-defaults-mode-node@4.0.7': + '@smithy/util-defaults-mode-node@4.0.6': dependencies: '@smithy/config-resolver': 4.0.1 '@smithy/credential-provider-imds': 4.0.1 '@smithy/node-config-provider': 4.0.1 '@smithy/property-provider': 4.0.1 - '@smithy/smithy-client': 4.1.6 + '@smithy/smithy-client': 4.1.5 '@smithy/types': 4.1.0 tslib: 2.8.1 @@ -10751,10 +10812,10 @@ snapshots: '@smithy/types': 4.1.0 tslib: 2.8.1 - '@smithy/util-stream@4.1.2': + '@smithy/util-stream@4.1.1': dependencies: '@smithy/fetch-http-handler': 5.0.1 - '@smithy/node-http-handler': 4.0.3 + '@smithy/node-http-handler': 4.0.2 '@smithy/types': 4.1.0 '@smithy/util-base64': 4.0.0 '@smithy/util-buffer-from': 4.0.0 @@ -10873,51 +10934,51 @@ snapshots: - supports-color - typescript - '@swc/core-darwin-arm64@1.11.1': + '@swc/core-darwin-arm64@1.10.18': optional: true - '@swc/core-darwin-x64@1.11.1': + '@swc/core-darwin-x64@1.10.18': optional: true - '@swc/core-linux-arm-gnueabihf@1.11.1': + '@swc/core-linux-arm-gnueabihf@1.10.18': optional: true - '@swc/core-linux-arm64-gnu@1.11.1': + '@swc/core-linux-arm64-gnu@1.10.18': optional: true - '@swc/core-linux-arm64-musl@1.11.1': + '@swc/core-linux-arm64-musl@1.10.18': optional: true - '@swc/core-linux-x64-gnu@1.11.1': + '@swc/core-linux-x64-gnu@1.10.18': optional: true - '@swc/core-linux-x64-musl@1.11.1': + '@swc/core-linux-x64-musl@1.10.18': optional: true - '@swc/core-win32-arm64-msvc@1.11.1': + '@swc/core-win32-arm64-msvc@1.10.18': optional: true - '@swc/core-win32-ia32-msvc@1.11.1': + '@swc/core-win32-ia32-msvc@1.10.18': optional: true - '@swc/core-win32-x64-msvc@1.11.1': + '@swc/core-win32-x64-msvc@1.10.18': optional: true - '@swc/core@1.11.1(@swc/helpers@0.5.15)': + '@swc/core@1.10.18(@swc/helpers@0.5.15)': dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.18 + '@swc/types': 0.1.17 optionalDependencies: - '@swc/core-darwin-arm64': 1.11.1 - '@swc/core-darwin-x64': 1.11.1 - '@swc/core-linux-arm-gnueabihf': 1.11.1 - '@swc/core-linux-arm64-gnu': 1.11.1 - '@swc/core-linux-arm64-musl': 1.11.1 - '@swc/core-linux-x64-gnu': 1.11.1 - '@swc/core-linux-x64-musl': 1.11.1 - '@swc/core-win32-arm64-msvc': 1.11.1 - '@swc/core-win32-ia32-msvc': 1.11.1 - '@swc/core-win32-x64-msvc': 1.11.1 + '@swc/core-darwin-arm64': 1.10.18 + '@swc/core-darwin-x64': 1.10.18 + '@swc/core-linux-arm-gnueabihf': 1.10.18 + '@swc/core-linux-arm64-gnu': 1.10.18 + '@swc/core-linux-arm64-musl': 1.10.18 + '@swc/core-linux-x64-gnu': 1.10.18 + '@swc/core-linux-x64-musl': 1.10.18 + '@swc/core-win32-arm64-msvc': 1.10.18 + '@swc/core-win32-ia32-msvc': 1.10.18 + '@swc/core-win32-x64-msvc': 1.10.18 '@swc/helpers': 0.5.15 '@swc/counter@0.1.3': {} @@ -10930,17 +10991,13 @@ snapshots: dependencies: '@swc/counter': 0.1.3 - '@swc/types@0.1.18': - dependencies: - '@swc/counter': 0.1.3 - '@szmarczak/http-timer@5.0.1': dependencies: defer-to-connect: 2.0.1 '@tanstack/query-core@5.66.4': {} - '@tanstack/react-query@5.66.9(react@19.0.0)': + '@tanstack/react-query@5.66.7(react@19.0.0)': dependencies: '@tanstack/query-core': 5.66.4 react: 19.0.0 @@ -10977,11 +11034,11 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.13.5 + '@types/node': 22.13.4 '@types/connect@3.4.38': dependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 '@types/content-type@1.1.8': {} @@ -10989,7 +11046,7 @@ snapshots: '@types/cors@2.8.17': dependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 '@types/debug@4.1.12': dependencies: @@ -11016,7 +11073,7 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -11030,7 +11087,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 '@types/hast@2.3.10': dependencies: @@ -11089,7 +11146,7 @@ snapshots: dependencies: undici-types: 6.19.8 - '@types/node@22.13.5': + '@types/node@22.13.4': dependencies: undici-types: 6.20.0 @@ -11116,12 +11173,12 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.13.5 + '@types/node': 22.13.4 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.13.5 + '@types/node': 22.13.4 '@types/send': 0.17.4 '@types/shimmer@1.2.0': {} @@ -11130,7 +11187,7 @@ snapshots: '@types/stoppable@1.1.3': dependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 '@types/unist@2.0.11': {} @@ -11140,7 +11197,7 @@ snapshots: '@types/ws@8.5.14': dependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 '@types/yargs-parser@21.0.3': {} @@ -11150,18 +11207,18 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 optional: true - '@typescript-eslint/eslint-plugin@8.25.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0)(typescript@5.7.3))(eslint@9.21.0)(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint@9.20.1)(typescript@5.7.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.25.0(eslint@9.21.0)(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.25.0 - '@typescript-eslint/type-utils': 8.25.0(eslint@9.21.0)(typescript@5.7.3) - '@typescript-eslint/utils': 8.25.0(eslint@9.21.0)(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.25.0 - eslint: 9.21.0 + '@typescript-eslint/parser': 8.24.1(eslint@9.20.1)(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.24.1 + '@typescript-eslint/type-utils': 8.24.1(eslint@9.20.1)(typescript@5.7.3) + '@typescript-eslint/utils': 8.24.1(eslint@9.20.1)(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.24.1 + eslint: 9.20.1 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -11170,40 +11227,40 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.25.0(eslint@9.21.0)(typescript@5.7.3)': + '@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3)': dependencies: - '@typescript-eslint/scope-manager': 8.25.0 - '@typescript-eslint/types': 8.25.0 - '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.25.0 + '@typescript-eslint/scope-manager': 8.24.1 + '@typescript-eslint/types': 8.24.1 + '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.24.1 debug: 4.4.0 - eslint: 9.21.0 + eslint: 9.20.1 typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.25.0': + '@typescript-eslint/scope-manager@8.24.1': dependencies: - '@typescript-eslint/types': 8.25.0 - '@typescript-eslint/visitor-keys': 8.25.0 + '@typescript-eslint/types': 8.24.1 + '@typescript-eslint/visitor-keys': 8.24.1 - '@typescript-eslint/type-utils@8.25.0(eslint@9.21.0)(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.24.1(eslint@9.20.1)(typescript@5.7.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.25.0(eslint@9.21.0)(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3) + '@typescript-eslint/utils': 8.24.1(eslint@9.20.1)(typescript@5.7.3) debug: 4.4.0 - eslint: 9.21.0 + eslint: 9.20.1 ts-api-utils: 2.0.1(typescript@5.7.3) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.25.0': {} + '@typescript-eslint/types@8.24.1': {} - '@typescript-eslint/typescript-estree@8.25.0(typescript@5.7.3)': + '@typescript-eslint/typescript-estree@8.24.1(typescript@5.7.3)': dependencies: - '@typescript-eslint/types': 8.25.0 - '@typescript-eslint/visitor-keys': 8.25.0 + '@typescript-eslint/types': 8.24.1 + '@typescript-eslint/visitor-keys': 8.24.1 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -11214,28 +11271,28 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.25.0(eslint@9.21.0)(typescript@5.7.3)': + '@typescript-eslint/utils@8.24.1(eslint@9.20.1)(typescript@5.7.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0) - '@typescript-eslint/scope-manager': 8.25.0 - '@typescript-eslint/types': 8.25.0 - '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.7.3) - eslint: 9.21.0 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1) + '@typescript-eslint/scope-manager': 8.24.1 + '@typescript-eslint/types': 8.24.1 + '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3) + eslint: 9.20.1 typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.25.0': + '@typescript-eslint/visitor-keys@8.24.1': dependencies: - '@typescript-eslint/types': 8.25.0 + '@typescript-eslint/types': 8.24.1 eslint-visitor-keys: 4.2.0 '@ungap/structured-clone@1.3.0': {} - '@vitejs/plugin-react-swc@3.8.0(@swc/helpers@0.5.15)(vite@6.2.0(@types/node@22.13.5)(sass-embedded@1.85.1)(sass@1.85.1)(tsx@4.19.3)(yaml@2.7.0))': + '@vitejs/plugin-react-swc@3.8.0(@swc/helpers@0.5.15)(vite@6.1.1(@types/node@22.13.4)(sass-embedded@1.85.0)(sass@1.85.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: - '@swc/core': 1.11.1(@swc/helpers@0.5.15) - vite: 6.2.0(@types/node@22.13.5)(sass-embedded@1.85.1)(sass@1.85.1)(tsx@4.19.3)(yaml@2.7.0) + '@swc/core': 1.10.18(@swc/helpers@0.5.15) + vite: 6.1.1(@types/node@22.13.4)(sass-embedded@1.85.0)(sass@1.85.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - '@swc/helpers' @@ -11265,12 +11322,12 @@ snapshots: clean-stack: 4.2.0 indent-string: 5.0.0 - ai@4.1.46(react@19.0.0)(zod@3.24.2): + ai@4.1.44(react@19.0.0)(zod@3.24.2): dependencies: - '@ai-sdk/provider': 1.0.9 - '@ai-sdk/provider-utils': 2.1.10(zod@3.24.2) - '@ai-sdk/react': 1.1.18(react@19.0.0)(zod@3.24.2) - '@ai-sdk/ui-utils': 1.1.16(zod@3.24.2) + '@ai-sdk/provider': 1.0.8 + '@ai-sdk/provider-utils': 2.1.9(zod@3.24.2) + '@ai-sdk/react': 1.1.17(react@19.0.0)(zod@3.24.2) + '@ai-sdk/ui-utils': 1.1.15(zod@3.24.2) '@opentelemetry/api': 1.9.0 jsondiffpatch: 0.6.0 optionalDependencies: @@ -11343,7 +11400,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 is-string: 1.1.1 array-iterate@2.0.1: {} @@ -11397,7 +11454,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 is-array-buffer: 3.0.5 ast-types-flow@0.0.8: {} @@ -11554,17 +11611,17 @@ snapshots: basic-ftp@5.0.5: {} - beeai-framework@0.1.2(@ai-sdk/openai@1.1.14(zod@3.24.2))(@aws-sdk/client-bedrock-runtime@3.755.0)(ollama-ai-provider@1.2.0(zod@3.24.2))(react@19.0.0)(yaml@2.7.0): + beeai-framework@0.1.2(@ai-sdk/openai@1.1.13(zod@3.24.2))(@aws-sdk/client-bedrock-runtime@3.751.0)(ollama-ai-provider@1.2.0(zod@3.24.2))(react@19.0.0)(yaml@2.7.0): dependencies: '@ai-zen/node-fetch-event-source': 2.1.4 - '@aws-sdk/client-bedrock-runtime': 3.755.0 + '@aws-sdk/client-bedrock-runtime': 3.751.0 '@opentelemetry/api': 1.9.0 '@streamparser/json': 0.0.21 - ai: 4.1.46(react@19.0.0)(zod@3.24.2) + ai: 4.1.44(react@19.0.0)(zod@3.24.2) ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) duck-duck-scrape: 2.2.7 - fast-xml-parser: 4.5.3 + fast-xml-parser: 4.5.2 header-generator: 2.1.62 joplin-turndown-plugin-gfm: 1.0.12 jsonrepair: 3.12.0 @@ -11583,9 +11640,9 @@ snapshots: turndown: 7.2.0 wikipedia: 2.1.2 zod: 3.24.2 - zod-to-json-schema: 3.24.3(zod@3.24.2) + zod-to-json-schema: 3.24.1(zod@3.24.2) optionalDependencies: - '@ai-sdk/openai': 1.1.14(zod@3.24.2) + '@ai-sdk/openai': 1.1.13(zod@3.24.2) yaml: 2.7.0 transitivePeerDependencies: - debug @@ -11641,7 +11698,7 @@ snapshots: browserslist@4.24.4: dependencies: caniuse-lite: 1.0.30001700 - electron-to-chromium: 1.5.104 + electron-to-chromium: 1.5.102 node-releases: 2.0.19 update-browserslist-db: 1.1.2(browserslist@4.24.4) @@ -11708,13 +11765,13 @@ snapshots: dependencies: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 set-function-length: 1.2.2 call-bound@1.0.3: dependencies: call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 callsites@3.1.0: {} @@ -11901,13 +11958,13 @@ snapshots: optionalDependencies: typescript: 5.7.3 - create-jest@29.7.0(@types/node@22.13.5): + create-jest@29.7.0(@types/node@22.13.4): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.13.5) + jest-config: 29.7.0(@types/node@22.13.4) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -12146,7 +12203,7 @@ snapshots: dependencies: jake: 10.9.2 - electron-to-chromium@1.5.104: {} + electron-to-chromium@1.5.102: {} emittery@0.13.1: {} @@ -12167,7 +12224,7 @@ snapshots: engine.io@6.6.4: dependencies: '@types/cors': 2.8.17 - '@types/node': 22.13.5 + '@types/node': 22.13.4 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -12209,7 +12266,7 @@ snapshots: es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 function.prototype.name: 1.1.8 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 get-proto: 1.0.1 get-symbol-description: 1.1.0 globalthis: 1.0.4 @@ -12260,7 +12317,7 @@ snapshots: es-errors: 1.3.0 es-set-tostringtag: 2.1.0 function-bind: 1.1.2 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 globalthis: 1.0.4 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -12277,7 +12334,7 @@ snapshots: es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -12383,19 +12440,19 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-next@15.1.7(eslint@9.21.0)(typescript@5.7.3): + eslint-config-next@15.1.7(eslint@9.20.1)(typescript@5.7.3): dependencies: '@next/eslint-plugin-next': 15.1.7 '@rushstack/eslint-patch': 1.10.5 - '@typescript-eslint/eslint-plugin': 8.25.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0)(typescript@5.7.3))(eslint@9.21.0)(typescript@5.7.3) - '@typescript-eslint/parser': 8.25.0(eslint@9.21.0)(typescript@5.7.3) - eslint: 9.21.0 + '@typescript-eslint/eslint-plugin': 8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint@9.20.1)(typescript@5.7.3) + '@typescript-eslint/parser': 8.24.1(eslint@9.20.1)(typescript@5.7.3) + eslint: 9.20.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.8.3(eslint-plugin-import@2.31.0)(eslint@9.21.0) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.3)(eslint@9.21.0) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.21.0) - eslint-plugin-react: 7.37.4(eslint@9.21.0) - eslint-plugin-react-hooks: 5.1.0(eslint@9.21.0) + eslint-import-resolver-typescript: 3.8.3(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint@9.20.1))(eslint@9.20.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.3(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint@9.20.1))(eslint@9.20.1))(eslint@9.20.1) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.20.1) + eslint-plugin-react: 7.37.4(eslint@9.20.1) + eslint-plugin-react-hooks: 5.1.0(eslint@9.20.1) optionalDependencies: typescript: 5.7.3 transitivePeerDependencies: @@ -12411,33 +12468,33 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.8.3(eslint-plugin-import@2.31.0)(eslint@9.21.0): + eslint-import-resolver-typescript@3.8.3(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint@9.20.1))(eslint@9.20.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.0 enhanced-resolve: 5.18.1 - eslint: 9.21.0 + eslint: 9.20.1 get-tsconfig: 4.10.0 is-bun-module: 1.3.0 stable-hash: 0.0.4 tinyglobby: 0.2.12 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.3)(eslint@9.21.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.3(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint@9.20.1))(eslint@9.20.1))(eslint@9.20.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.8.3(eslint-plugin-import@2.31.0)(eslint@9.21.0))(eslint@9.21.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.8.3(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint@9.20.1))(eslint@9.20.1))(eslint@9.20.1): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.25.0(eslint@9.21.0)(typescript@5.7.3) - eslint: 9.21.0 + '@typescript-eslint/parser': 8.24.1(eslint@9.20.1)(typescript@5.7.3) + eslint: 9.20.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.8.3(eslint-plugin-import@2.31.0)(eslint@9.21.0) + eslint-import-resolver-typescript: 3.8.3(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint@9.20.1))(eslint@9.20.1) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.3)(eslint@9.21.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.3(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint@9.20.1))(eslint@9.20.1))(eslint@9.20.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -12446,9 +12503,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.21.0 + eslint: 9.20.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.8.3(eslint-plugin-import@2.31.0)(eslint@9.21.0))(eslint@9.21.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.8.3(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint@9.20.1))(eslint@9.20.1))(eslint@9.20.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -12460,13 +12517,13 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.25.0(eslint@9.21.0)(typescript@5.7.3) + '@typescript-eslint/parser': 8.24.1(eslint@9.20.1)(typescript@5.7.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.10.2(eslint@9.21.0): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.20.1): dependencies: aria-query: 5.3.2 array-includes: 3.1.8 @@ -12476,7 +12533,7 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.21.0 + eslint: 9.20.1 hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -12485,15 +12542,15 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-react-hooks@5.1.0(eslint@9.21.0): + eslint-plugin-react-hooks@5.1.0(eslint@9.20.1): dependencies: - eslint: 9.21.0 + eslint: 9.20.1 - eslint-plugin-react-refresh@0.4.19(eslint@9.21.0): + eslint-plugin-react-refresh@0.4.19(eslint@9.20.1): dependencies: - eslint: 9.21.0 + eslint: 9.20.1 - eslint-plugin-react@7.37.4(eslint@9.21.0): + eslint-plugin-react@7.37.4(eslint@9.20.1): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -12501,7 +12558,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.21.0 + eslint: 9.20.1 estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -12524,18 +12581,18 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.21.0: + eslint@9.20.1: dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.19.2 - '@eslint/core': 0.12.0 - '@eslint/eslintrc': 3.3.0 - '@eslint/js': 9.21.0 - '@eslint/plugin-kit': 0.2.7 + '@eslint/core': 0.11.0 + '@eslint/eslintrc': 3.2.0 + '@eslint/js': 9.20.0 + '@eslint/plugin-kit': 0.2.6 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.2 + '@humanwhocodes/retry': 0.4.1 '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 ajv: 6.12.6 @@ -12738,11 +12795,11 @@ snapshots: fast-xml-parser@4.4.1: dependencies: - strnum: 1.1.1 + strnum: 1.0.5 - fast-xml-parser@4.5.3: + fast-xml-parser@4.5.2: dependencies: - strnum: 1.1.1 + strnum: 1.0.5 fastest-levenshtein@1.0.16: {} @@ -12831,7 +12888,7 @@ snapshots: dependencies: is-callable: 1.2.7 - foreground-child@3.3.1: + foreground-child@3.3.0: dependencies: cross-spawn: 7.0.6 signal-exit: 4.1.0 @@ -12851,7 +12908,7 @@ snapshots: fraction.js@5.2.1: {} - framer-motion@12.4.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + framer-motion@12.4.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: motion-dom: 12.4.5 motion-utils: 12.0.0 @@ -12901,7 +12958,7 @@ snapshots: get-caller-file@2.0.5: {} - get-intrinsic@1.3.0: + get-intrinsic@1.2.7: dependencies: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 @@ -12931,7 +12988,7 @@ snapshots: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 get-tsconfig@4.10.0: dependencies: @@ -12955,7 +13012,7 @@ snapshots: glob@10.4.5: dependencies: - foreground-child: 3.3.1 + foreground-child: 3.3.0 jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 @@ -12964,8 +13021,8 @@ snapshots: glob@11.0.1: dependencies: - foreground-child: 3.3.1 - jackspeak: 4.1.0 + foreground-child: 3.3.0 + jackspeak: 4.0.3 minimatch: 10.0.1 minipass: 7.1.2 package-json-from-dist: 1.0.1 @@ -13184,7 +13241,7 @@ snapshots: stringify-entities: 4.0.4 zwitch: 2.0.4 - hast-util-to-jsx-runtime@2.3.5: + hast-util-to-jsx-runtime@2.3.3: dependencies: '@types/estree': 1.0.6 '@types/hast': 3.0.4 @@ -13356,17 +13413,17 @@ snapshots: inline-style-parser@0.2.4: {} - inquirer@12.4.2(@types/node@22.13.5): + inquirer@12.4.2(@types/node@22.13.4): dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) - '@inquirer/prompts': 7.3.2(@types/node@22.13.5) - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/core': 10.1.7(@types/node@22.13.4) + '@inquirer/prompts': 7.3.2(@types/node@22.13.4) + '@inquirer/type': 3.0.4(@types/node@22.13.4) ansi-escapes: 4.3.2 mute-stream: 2.0.0 run-async: 3.0.0 - rxjs: 7.8.2 + rxjs: 7.8.1 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 internal-slot@1.1.0: dependencies: @@ -13400,7 +13457,7 @@ snapshots: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 is-arrayish@0.2.1: {} @@ -13440,7 +13497,7 @@ snapshots: is-data-view@1.0.2: dependencies: call-bound: 1.0.3 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 is-typed-array: 1.1.15 is-date-object@1.1.0: @@ -13546,7 +13603,7 @@ snapshots: is-weakset@2.0.4: dependencies: call-bound: 1.0.3 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 is-wsl@2.2.0: dependencies: @@ -13601,7 +13658,7 @@ snapshots: dependencies: define-data-property: 1.1.4 es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 get-proto: 1.0.1 has-symbols: 1.1.0 set-function-name: 2.0.2 @@ -13612,7 +13669,7 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jackspeak@4.1.0: + jackspeak@4.0.3: dependencies: '@isaacs/cliui': 8.0.2 @@ -13637,7 +13694,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.5 + '@types/node': 22.13.4 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3 @@ -13657,16 +13714,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.13.5): + jest-cli@29.7.0(@types/node@22.13.4): dependencies: '@jest/core': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.13.5) + create-jest: 29.7.0(@types/node@22.13.4) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.13.5) + jest-config: 29.7.0(@types/node@22.13.4) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -13676,7 +13733,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.13.5): + jest-config@29.7.0(@types/node@22.13.4): dependencies: '@babel/core': 7.26.9 '@jest/test-sequencer': 29.7.0 @@ -13701,7 +13758,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -13730,7 +13787,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.5 + '@types/node': 22.13.4 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -13740,7 +13797,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.13.5 + '@types/node': 22.13.4 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -13779,7 +13836,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.13.5 + '@types/node': 22.13.4 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -13814,7 +13871,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.5 + '@types/node': 22.13.4 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -13842,7 +13899,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.5 + '@types/node': 22.13.4 chalk: 4.1.2 cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.2 @@ -13888,7 +13945,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.13.5 + '@types/node': 22.13.4 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -13907,7 +13964,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.5 + '@types/node': 22.13.4 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -13916,17 +13973,17 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.13.5): + jest@29.7.0(@types/node@22.13.4): dependencies: '@jest/core': 29.7.0 '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.13.5) + jest-cli: 29.7.0(@types/node@22.13.4) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -14327,7 +14384,7 @@ snapshots: mdn-data@2.12.2: {} - mdn-data@2.16.0: {} + mdn-data@2.15.0: {} media-typer@0.3.0: {} @@ -14678,9 +14735,9 @@ snapshots: minipass: 3.3.6 yallist: 4.0.0 - mintlify@4.0.405(@types/node@22.13.5)(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3): + mintlify@4.0.395(@types/node@22.13.4)(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3): dependencies: - '@mintlify/cli': 4.0.405(@types/node@22.13.5)(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) + '@mintlify/cli': 4.0.395(@types/node@22.13.4)(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) transitivePeerDependencies: - '@types/node' - '@types/react' @@ -14748,7 +14805,7 @@ snapshots: - acorn - supports-color - next@15.1.7(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.85.1): + next@15.1.7(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.85.0): dependencies: '@next/env': 15.1.7 '@swc/counter': 0.1.3 @@ -14769,7 +14826,7 @@ snapshots: '@next/swc-win32-arm64-msvc': 15.1.7 '@next/swc-win32-x64-msvc': 15.1.7 '@opentelemetry/api': 1.9.0 - sass: 1.85.1 + sass: 1.85.0 sharp: 0.33.5 transitivePeerDependencies: - '@babel/core' @@ -14852,8 +14909,8 @@ snapshots: ollama-ai-provider@1.2.0(zod@3.24.2): dependencies: - '@ai-sdk/provider': 1.0.9 - '@ai-sdk/provider-utils': 2.1.10(zod@3.24.2) + '@ai-sdk/provider': 1.0.8 + '@ai-sdk/provider-utils': 2.1.9(zod@3.24.2) partial-json: 0.1.7 optionalDependencies: zod: 3.24.2 @@ -14878,8 +14935,14 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 + openapi-fetch@0.13.4: + dependencies: + openapi-typescript-helpers: 0.0.15 + openapi-types@12.1.3: {} + openapi-typescript-helpers@0.0.15: {} + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -14913,7 +14976,7 @@ snapshots: own-keys@1.0.1: dependencies: - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 object-keys: 1.1.1 safe-push-apply: 1.0.0 @@ -15117,7 +15180,7 @@ snapshots: prelude-ls@1.2.1: {} - prettier@3.5.2: {} + prettier@3.5.1: {} pretty-format@29.7.0: dependencies: @@ -15158,7 +15221,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.13.5 + '@types/node': 22.13.4 long: 5.3.1 proxy-addr@2.0.7: @@ -15200,7 +15263,7 @@ snapshots: chromium-bidi: 0.6.3(devtools-protocol@0.0.1312386) debug: 4.4.0 devtools-protocol: 0.0.1312386 - ws: 8.18.1 + ws: 8.18.0 transitivePeerDependencies: - bare-buffer - bufferutil @@ -15296,13 +15359,12 @@ snapshots: react-is@18.3.1: {} - react-markdown@9.1.0(@types/react@19.0.10)(react@19.0.0): + react-markdown@9.0.3(@types/react@19.0.10)(react@19.0.0): dependencies: '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 '@types/react': 19.0.10 devlop: 1.1.0 - hast-util-to-jsx-runtime: 2.3.5 + hast-util-to-jsx-runtime: 2.3.3 html-url-attributes: 3.0.1 mdast-util-to-hast: 13.2.0 react: 19.0.0 @@ -15387,7 +15449,7 @@ snapshots: es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 get-proto: 1.0.1 which-builtin-type: 1.2.1 @@ -15554,7 +15616,7 @@ snapshots: require-from-string@2.0.2: {} - require-in-the-middle@7.5.2: + require-in-the-middle@7.5.1: dependencies: debug: 4.4.0 module-details-from-path: 1.0.3 @@ -15664,7 +15726,7 @@ snapshots: dependencies: queue-microtask: 1.2.3 - rxjs@7.8.2: + rxjs@7.8.1: dependencies: tslib: 2.8.1 @@ -15672,7 +15734,7 @@ snapshots: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 has-symbols: 1.1.0 isarray: 2.0.5 @@ -15693,99 +15755,99 @@ snapshots: safer-buffer@2.1.2: {} - sass-embedded-android-arm64@1.85.1: + sass-embedded-android-arm64@1.85.0: optional: true - sass-embedded-android-arm@1.85.1: + sass-embedded-android-arm@1.85.0: optional: true - sass-embedded-android-ia32@1.85.1: + sass-embedded-android-ia32@1.85.0: optional: true - sass-embedded-android-riscv64@1.85.1: + sass-embedded-android-riscv64@1.85.0: optional: true - sass-embedded-android-x64@1.85.1: + sass-embedded-android-x64@1.85.0: optional: true - sass-embedded-darwin-arm64@1.85.1: + sass-embedded-darwin-arm64@1.85.0: optional: true - sass-embedded-darwin-x64@1.85.1: + sass-embedded-darwin-x64@1.85.0: optional: true - sass-embedded-linux-arm64@1.85.1: + sass-embedded-linux-arm64@1.85.0: optional: true - sass-embedded-linux-arm@1.85.1: + sass-embedded-linux-arm@1.85.0: optional: true - sass-embedded-linux-ia32@1.85.1: + sass-embedded-linux-ia32@1.85.0: optional: true - sass-embedded-linux-musl-arm64@1.85.1: + sass-embedded-linux-musl-arm64@1.85.0: optional: true - sass-embedded-linux-musl-arm@1.85.1: + sass-embedded-linux-musl-arm@1.85.0: optional: true - sass-embedded-linux-musl-ia32@1.85.1: + sass-embedded-linux-musl-ia32@1.85.0: optional: true - sass-embedded-linux-musl-riscv64@1.85.1: + sass-embedded-linux-musl-riscv64@1.85.0: optional: true - sass-embedded-linux-musl-x64@1.85.1: + sass-embedded-linux-musl-x64@1.85.0: optional: true - sass-embedded-linux-riscv64@1.85.1: + sass-embedded-linux-riscv64@1.85.0: optional: true - sass-embedded-linux-x64@1.85.1: + sass-embedded-linux-x64@1.85.0: optional: true - sass-embedded-win32-arm64@1.85.1: + sass-embedded-win32-arm64@1.85.0: optional: true - sass-embedded-win32-ia32@1.85.1: + sass-embedded-win32-ia32@1.85.0: optional: true - sass-embedded-win32-x64@1.85.1: + sass-embedded-win32-x64@1.85.0: optional: true - sass-embedded@1.85.1: + sass-embedded@1.85.0: dependencies: '@bufbuild/protobuf': 2.2.3 buffer-builder: 0.2.0 colorjs.io: 0.5.2 immutable: 5.0.3 - rxjs: 7.8.2 + rxjs: 7.8.1 supports-color: 8.1.1 sync-child-process: 1.0.2 varint: 6.0.0 optionalDependencies: - sass-embedded-android-arm: 1.85.1 - sass-embedded-android-arm64: 1.85.1 - sass-embedded-android-ia32: 1.85.1 - sass-embedded-android-riscv64: 1.85.1 - sass-embedded-android-x64: 1.85.1 - sass-embedded-darwin-arm64: 1.85.1 - sass-embedded-darwin-x64: 1.85.1 - sass-embedded-linux-arm: 1.85.1 - sass-embedded-linux-arm64: 1.85.1 - sass-embedded-linux-ia32: 1.85.1 - sass-embedded-linux-musl-arm: 1.85.1 - sass-embedded-linux-musl-arm64: 1.85.1 - sass-embedded-linux-musl-ia32: 1.85.1 - sass-embedded-linux-musl-riscv64: 1.85.1 - sass-embedded-linux-musl-x64: 1.85.1 - sass-embedded-linux-riscv64: 1.85.1 - sass-embedded-linux-x64: 1.85.1 - sass-embedded-win32-arm64: 1.85.1 - sass-embedded-win32-ia32: 1.85.1 - sass-embedded-win32-x64: 1.85.1 - - sass@1.85.1: + sass-embedded-android-arm: 1.85.0 + sass-embedded-android-arm64: 1.85.0 + sass-embedded-android-ia32: 1.85.0 + sass-embedded-android-riscv64: 1.85.0 + sass-embedded-android-x64: 1.85.0 + sass-embedded-darwin-arm64: 1.85.0 + sass-embedded-darwin-x64: 1.85.0 + sass-embedded-linux-arm: 1.85.0 + sass-embedded-linux-arm64: 1.85.0 + sass-embedded-linux-ia32: 1.85.0 + sass-embedded-linux-musl-arm: 1.85.0 + sass-embedded-linux-musl-arm64: 1.85.0 + sass-embedded-linux-musl-ia32: 1.85.0 + sass-embedded-linux-musl-riscv64: 1.85.0 + sass-embedded-linux-musl-x64: 1.85.0 + sass-embedded-linux-riscv64: 1.85.0 + sass-embedded-linux-x64: 1.85.0 + sass-embedded-win32-arm64: 1.85.0 + sass-embedded-win32-ia32: 1.85.0 + sass-embedded-win32-x64: 1.85.0 + + sass@1.85.0: dependencies: chokidar: 4.0.3 immutable: 5.0.3 @@ -15852,7 +15914,7 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -15914,14 +15976,14 @@ snapshots: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 object-inspect: 1.13.4 side-channel-weakmap@1.0.2: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 object-inspect: 1.13.4 side-channel-map: 1.0.1 @@ -16103,7 +16165,7 @@ snapshots: es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 gopd: 1.2.0 has-symbols: 1.1.0 internal-slot: 1.1.0 @@ -16166,7 +16228,7 @@ snapshots: strip-json-comments@3.1.1: {} - strnum@1.1.1: {} + strnum@1.0.5: {} style-to-object@1.0.8: dependencies: @@ -16183,14 +16245,14 @@ snapshots: dependencies: stylelint: 16.14.1(typescript@5.7.3) optionalDependencies: - stylelint-scss: 6.11.1(stylelint@16.14.1(typescript@5.7.3)) + stylelint-scss: 6.11.0(stylelint@16.14.1(typescript@5.7.3)) stylelint-config-recommended-scss@14.1.0(postcss@8.5.3)(stylelint@16.14.1(typescript@5.7.3)): dependencies: postcss-scss: 4.0.9(postcss@8.5.3) stylelint: 16.14.1(typescript@5.7.3) stylelint-config-recommended: 14.0.1(stylelint@16.14.1(typescript@5.7.3)) - stylelint-scss: 6.11.1(stylelint@16.14.1(typescript@5.7.3)) + stylelint-scss: 6.11.0(stylelint@16.14.1(typescript@5.7.3)) optionalDependencies: postcss: 8.5.3 @@ -16202,12 +16264,12 @@ snapshots: dependencies: stylelint: 16.14.1(typescript@5.7.3) - stylelint-scss@6.11.1(stylelint@16.14.1(typescript@5.7.3)): + stylelint-scss@6.11.0(stylelint@16.14.1(typescript@5.7.3)): dependencies: css-tree: 3.1.0 is-plain-object: 5.0.0 known-css-properties: 0.35.0 - mdn-data: 2.16.0 + mdn-data: 2.15.0 postcss-media-query-parser: 0.2.3 postcss-resolve-nested-selector: 0.1.6 postcss-selector-parser: 7.1.0 @@ -16378,6 +16440,11 @@ snapshots: tinyexec@0.3.2: {} + tinyglobby@0.2.11: + dependencies: + fdir: 6.4.3(picomatch@4.0.2) + picomatch: 4.0.2 + tinyglobby@0.2.12: dependencies: fdir: 6.4.3(picomatch@4.0.2) @@ -16423,12 +16490,12 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-jest@29.2.6(@babel/core@7.26.9)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.9))(jest@29.7.0(@types/node@22.13.5))(typescript@5.7.3): + ts-jest@29.2.5(@babel/core@7.26.9)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.9))(jest@29.7.0(@types/node@22.13.4))(typescript@5.7.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.13.5) + jest: 29.7.0(@types/node@22.13.4) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -16451,7 +16518,7 @@ snapshots: tslib@2.8.1: {} - tsup@8.3.6(@swc/core@1.11.1(@swc/helpers@0.5.15))(postcss@8.5.3)(tsx@4.19.3)(typescript@5.7.3)(yaml@2.7.0): + tsup@8.3.6(@swc/core@1.10.18(@swc/helpers@0.5.15))(postcss@8.5.3)(tsx@4.19.3)(typescript@5.7.3)(yaml@2.7.0): dependencies: bundle-require: 5.1.0(esbuild@0.24.2) cac: 6.7.14 @@ -16467,10 +16534,10 @@ snapshots: source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 - tinyglobby: 0.2.12 + tinyglobby: 0.2.11 tree-kill: 1.2.2 optionalDependencies: - '@swc/core': 1.11.1(@swc/helpers@0.5.15) + '@swc/core': 1.10.18(@swc/helpers@0.5.15) postcss: 8.5.3 typescript: 5.7.3 transitivePeerDependencies: @@ -16555,12 +16622,12 @@ snapshots: typed-array-buffer: 1.0.3 typed-array-byte-offset: 1.0.4 - typescript-eslint@8.25.0(eslint@9.21.0)(typescript@5.7.3): + typescript-eslint@8.24.1(eslint@9.20.1)(typescript@5.7.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.25.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0)(typescript@5.7.3))(eslint@9.21.0)(typescript@5.7.3) - '@typescript-eslint/parser': 8.25.0(eslint@9.21.0)(typescript@5.7.3) - '@typescript-eslint/utils': 8.25.0(eslint@9.21.0)(typescript@5.7.3) - eslint: 9.21.0 + '@typescript-eslint/eslint-plugin': 8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint@9.20.1)(typescript@5.7.3) + '@typescript-eslint/parser': 8.24.1(eslint@9.20.1)(typescript@5.7.3) + '@typescript-eslint/utils': 8.24.1(eslint@9.20.1)(typescript@5.7.3) + eslint: 9.20.1 typescript: 5.7.3 transitivePeerDependencies: - supports-color @@ -16709,7 +16776,7 @@ snapshots: utils-merge@1.0.1: {} - uuid@11.1.0: {} + uuid@11.0.5: {} uuid@9.0.1: {} @@ -16745,27 +16812,27 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-plugin-svgr@4.3.0(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.0(@types/node@22.13.5)(sass-embedded@1.85.1)(sass@1.85.1)(tsx@4.19.3)(yaml@2.7.0)): + vite-plugin-svgr@4.3.0(rollup@4.34.8)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(sass-embedded@1.85.0)(sass@1.85.0)(tsx@4.19.3)(yaml@2.7.0)): dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.34.8) '@svgr/core': 8.1.0(typescript@5.7.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.7.3)) - vite: 6.2.0(@types/node@22.13.5)(sass-embedded@1.85.1)(sass@1.85.1)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.1.1(@types/node@22.13.4)(sass-embedded@1.85.0)(sass@1.85.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - rollup - supports-color - typescript - vite@6.2.0(@types/node@22.13.5)(sass-embedded@1.85.1)(sass@1.85.1)(tsx@4.19.3)(yaml@2.7.0): + vite@6.1.1(@types/node@22.13.4)(sass-embedded@1.85.0)(sass@1.85.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: - esbuild: 0.25.0 + esbuild: 0.24.2 postcss: 8.5.3 rollup: 4.34.8 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.4 fsevents: 2.3.3 - sass: 1.85.1 - sass-embedded: 1.85.1 + sass: 1.85.0 + sass-embedded: 1.85.0 tsx: 4.19.3 yaml: 2.7.0 @@ -16885,7 +16952,7 @@ snapshots: ws@8.17.1: {} - ws@8.18.1: {} + ws@8.18.0: {} xml2js@0.6.2: dependencies: @@ -16923,7 +16990,7 @@ snapshots: yoctocolors-cjs@2.1.2: {} - zod-to-json-schema@3.24.3(zod@3.24.2): + zod-to-json-schema@3.24.1(zod@3.24.2): dependencies: zod: 3.24.2