From 7b6424516e3f37d69e9b9762311588a93c39c625 Mon Sep 17 00:00:00 2001 From: Ben Sully Date: Wed, 26 Mar 2025 11:37:19 +0000 Subject: [PATCH] [release-11.5.3] Dashboards: update `@grafana/llm` to v0.13.2 and update usage (#102006) Dashboards: update `@grafana/llm` to v0.13.2 and update usage (#101814) This version of the package deprecates the `openai` object in favour of the vendor-agnostic `llm` object, so this PR also updates the usage of the package to use the new object and take advantage of the vendor-agnostic APIs. (cherry picked from commit 89882749124f6d6e1ffb521bd89378e525756e13) --- package.json | 1 + .../components/GenAI/GenAIButton.test.tsx | 20 +- .../components/GenAI/GenAIButton.tsx | 13 +- .../GenAI/GenAIDashboardChangesButton.tsx | 4 +- .../components/GenAI/GenAIHistory.tsx | 8 +- .../dashboard/components/GenAI/hooks.ts | 20 +- .../dashboard/components/GenAI/utils.test.ts | 27 +- .../dashboard/components/GenAI/utils.ts | 15 +- yarn.lock | 554 +++++++++++++++--- 9 files changed, 542 insertions(+), 120 deletions(-) diff --git a/package.json b/package.json index a4377ab347a..51476b43e5c 100644 --- a/package.json +++ b/package.json @@ -265,6 +265,7 @@ "@grafana/flamegraph": "workspace:*", "@grafana/google-sdk": "0.1.2", "@grafana/lezer-logql": "0.2.6", + "@grafana/llm": "0.13.2", "@grafana/monaco-logql": "^0.0.7", "@grafana/o11y-ds-frontend": "workspace:*", "@grafana/prometheus": "workspace:*", diff --git a/public/app/features/dashboard/components/GenAI/GenAIButton.test.tsx b/public/app/features/dashboard/components/GenAI/GenAIButton.test.tsx index ab003448e23..0f4e44263a9 100644 --- a/public/app/features/dashboard/components/GenAI/GenAIButton.test.tsx +++ b/public/app/features/dashboard/components/GenAI/GenAIButton.test.tsx @@ -6,11 +6,11 @@ import { render } from 'test/test-utils'; import { selectors } from '@grafana/e2e-selectors'; import { GenAIButton, GenAIButtonProps } from './GenAIButton'; -import { StreamStatus, useOpenAIStream } from './hooks'; +import { StreamStatus, useLLMStream } from './hooks'; import { EventTrackingSrc } from './tracking'; import { Role } from './utils'; -const mockedUseOpenAiStreamState = { +const mockedUseLLMStreamState = { messages: [], setMessages: jest.fn(), reply: 'I am a robot', @@ -20,7 +20,7 @@ const mockedUseOpenAiStreamState = { }; jest.mock('./hooks', () => ({ - useOpenAIStream: jest.fn(() => mockedUseOpenAiStreamState), + useLLMStream: jest.fn(() => mockedUseLLMStreamState), StreamStatus: { IDLE: 'idle', GENERATING: 'generating', @@ -37,7 +37,7 @@ describe('GenAIButton', () => { describe('when LLM plugin is not configured', () => { beforeAll(() => { - jest.mocked(useOpenAIStream).mockReturnValue({ + jest.mocked(useLLMStream).mockReturnValue({ messages: [], error: undefined, streamStatus: StreamStatus.IDLE, @@ -65,7 +65,7 @@ describe('GenAIButton', () => { setMessagesMock.mockClear(); setShouldStopMock.mockClear(); - jest.mocked(useOpenAIStream).mockReturnValue({ + jest.mocked(useLLMStream).mockReturnValue({ messages: [], error: undefined, streamStatus: StreamStatus.IDLE, @@ -151,7 +151,7 @@ describe('GenAIButton', () => { const setShouldStopMock = jest.fn(); beforeEach(() => { - jest.mocked(useOpenAIStream).mockReturnValue({ + jest.mocked(useLLMStream).mockReturnValue({ messages: [], error: undefined, streamStatus: StreamStatus.GENERATING, @@ -222,7 +222,7 @@ describe('GenAIButton', () => { }; jest - .mocked(useOpenAIStream) + .mocked(useLLMStream) .mockImplementationOnce((options) => { options?.onResponse?.(reply); return returnValue; @@ -257,7 +257,7 @@ describe('GenAIButton', () => { setMessagesMock.mockClear(); setShouldStopMock.mockClear(); - jest.mocked(useOpenAIStream).mockReturnValue({ + jest.mocked(useLLMStream).mockReturnValue({ messages: [], error: new Error('Something went wrong'), streamStatus: StreamStatus.IDLE, @@ -308,7 +308,7 @@ describe('GenAIButton', () => { await userEvent.hover(tooltip); expect(tooltip).toBeVisible(); expect(tooltip).toHaveTextContent( - 'Failed to generate content using OpenAI. Please try again or if the problem persists, contact your organization admin.' + 'Failed to generate content using LLM. Please try again or if the problem persists, contact your organization admin.' ); }); @@ -331,7 +331,7 @@ describe('GenAIButton', () => { await userEvent.hover(tooltip); expect(tooltip).toBeVisible(); expect(tooltip).toHaveTextContent( - 'Failed to generate content using OpenAI. Please try again or if the problem persists, contact your organization admin.' + 'Failed to generate content using LLM. Please try again or if the problem persists, contact your organization admin.' ); }); diff --git a/public/app/features/dashboard/components/GenAI/GenAIButton.tsx b/public/app/features/dashboard/components/GenAI/GenAIButton.tsx index 6b6f55823ae..ec51fc91275 100644 --- a/public/app/features/dashboard/components/GenAI/GenAIButton.tsx +++ b/public/app/features/dashboard/components/GenAI/GenAIButton.tsx @@ -3,12 +3,13 @@ import { useCallback, useState } from 'react'; import * as React from 'react'; import { GrafanaTheme2 } from '@grafana/data'; +import { llm } from '@grafana/llm'; import { Button, Spinner, useStyles2, Tooltip, Toggletip, Text } from '@grafana/ui'; import { GenAIHistory } from './GenAIHistory'; -import { StreamStatus, useOpenAIStream } from './hooks'; +import { StreamStatus, useLLMStream } from './hooks'; import { AutoGenerateItem, EventTrackingSrc, reportAutoGenerateInteraction } from './tracking'; -import { OAI_MODEL, DEFAULT_OAI_MODEL, Message, sanitizeReply } from './utils'; +import { DEFAULT_LLM_MODEL, Message, sanitizeReply } from './utils'; export interface GenAIButtonProps { // Button label text @@ -23,7 +24,7 @@ export interface GenAIButtonProps { // Temperature for the LLM plugin. Default is 1. // Closer to 0 means more conservative, closer to 1 means more creative. temperature?: number; - model?: OAI_MODEL; + model?: llm.Model; // Event tracking source. Send as `src` to Rudderstack event eventTrackingSrc: EventTrackingSrc; // Whether the button should be disabled @@ -42,7 +43,7 @@ export const GenAIButton = ({ text = 'Auto-generate', toggleTipTitle = '', onClick: onClickProp, - model = DEFAULT_OAI_MODEL, + model = DEFAULT_LLM_MODEL, messages, onGenerate, temperature = 1, @@ -66,7 +67,7 @@ export const GenAIButton = ({ [onGenerate, unshiftHistoryEntry] ); - const { setMessages, stopGeneration, value, error, streamStatus } = useOpenAIStream({ + const { setMessages, stopGeneration, value, error, streamStatus } = useLLMStream({ model, temperature, onResponse, @@ -85,7 +86,7 @@ export const GenAIButton = ({ const showTooltip = error || tooltip ? undefined : false; const tooltipContent = error - ? 'Failed to generate content using OpenAI. Please try again or if the problem persists, contact your organization admin.' + ? 'Failed to generate content using LLM. Please try again or if the problem persists, contact your organization admin.' : tooltip || ''; const onClick = (e: React.MouseEvent) => { diff --git a/public/app/features/dashboard/components/GenAI/GenAIDashboardChangesButton.tsx b/public/app/features/dashboard/components/GenAI/GenAIDashboardChangesButton.tsx index 73be188f57e..0c3b1bdd774 100644 --- a/public/app/features/dashboard/components/GenAI/GenAIDashboardChangesButton.tsx +++ b/public/app/features/dashboard/components/GenAI/GenAIDashboardChangesButton.tsx @@ -1,5 +1,7 @@ import { useCallback } from 'react'; +import { llm } from '@grafana/llm'; + import { DashboardModel } from '../../state/DashboardModel'; import { GenAIButton } from './GenAIButton'; @@ -42,7 +44,7 @@ export const GenAIDashboardChangesButton = ({ dashboard, onGenerate, disabled }: messages={messages} onGenerate={onGenerate} temperature={0} - model={'gpt-3.5-turbo-16k'} + model={llm.Model.BASE} eventTrackingSrc={EventTrackingSrc.dashboardChanges} toggleTipTitle={'Improve your dashboard changes summary'} disabled={disabled} diff --git a/public/app/features/dashboard/components/GenAI/GenAIHistory.tsx b/public/app/features/dashboard/components/GenAI/GenAIHistory.tsx index 68cf5d68712..05a825bdf1d 100644 --- a/public/app/features/dashboard/components/GenAI/GenAIHistory.tsx +++ b/public/app/features/dashboard/components/GenAI/GenAIHistory.tsx @@ -8,9 +8,9 @@ import { Trans } from 'app/core/internationalization'; import { STOP_GENERATION_TEXT } from './GenAIButton'; import { GenerationHistoryCarousel } from './GenerationHistoryCarousel'; import { QuickFeedback } from './QuickFeedback'; -import { StreamStatus, useOpenAIStream } from './hooks'; +import { StreamStatus, useLLMStream } from './hooks'; import { AutoGenerateItem, EventTrackingSrc, reportAutoGenerateInteraction } from './tracking'; -import { getFeedbackMessage, Message, DEFAULT_OAI_MODEL, QuickFeedbackType, sanitizeReply } from './utils'; +import { getFeedbackMessage, Message, DEFAULT_LLM_MODEL, QuickFeedbackType, sanitizeReply } from './utils'; export interface GenAIHistoryProps { history: string[]; @@ -41,8 +41,8 @@ export const GenAIHistory = ({ [updateHistory] ); - const { setMessages, stopGeneration, reply, streamStatus, error } = useOpenAIStream({ - model: DEFAULT_OAI_MODEL, + const { setMessages, stopGeneration, reply, streamStatus, error } = useLLMStream({ + model: DEFAULT_LLM_MODEL, temperature, onResponse, }); diff --git a/public/app/features/dashboard/components/GenAI/hooks.ts b/public/app/features/dashboard/components/GenAI/hooks.ts index eb0dc9ca9ae..e3640bd5a70 100644 --- a/public/app/features/dashboard/components/GenAI/hooks.ts +++ b/public/app/features/dashboard/components/GenAI/hooks.ts @@ -2,15 +2,15 @@ import { Dispatch, SetStateAction, useCallback, useEffect, useState } from 'reac import { useAsync } from 'react-use'; import { Subscription } from 'rxjs'; -import { llms } from '@grafana/experimental'; +import { llm } from '@grafana/llm'; import { createMonitoringLogger } from '@grafana/runtime'; import { useAppNotification } from 'app/core/copy/appNotification'; -import { isLLMPluginEnabled, DEFAULT_OAI_MODEL } from './utils'; +import { isLLMPluginEnabled, DEFAULT_LLM_MODEL } from './utils'; // Declared instead of imported from utils to make this hook modular // Ideally we will want to move the hook itself to a different scope later. -type Message = llms.openai.Message; +type Message = llm.Message; const genAILogger = createMonitoringLogger('features.dashboards.genai'); @@ -29,11 +29,11 @@ interface Options { } const defaultOptions = { - model: DEFAULT_OAI_MODEL, + model: DEFAULT_LLM_MODEL, temperature: 1, }; -interface UseOpenAIStreamResponse { +interface UseLLMStreamResponse { setMessages: Dispatch>; stopGeneration: () => void; messages: Message[]; @@ -47,7 +47,7 @@ interface UseOpenAIStreamResponse { } // TODO: Add tests -export function useOpenAIStream({ model, temperature, onResponse }: Options = defaultOptions): UseOpenAIStreamResponse { +export function useLLMStream({ model, temperature, onResponse }: Options = defaultOptions): UseLLMStreamResponse { // The messages array to send to the LLM, updated when the button is clicked. const [messages, setMessages] = useState([]); @@ -65,7 +65,7 @@ export function useOpenAIStream({ model, temperature, onResponse }: Options = de setMessages([]); setError(e); notifyError( - 'Failed to generate content using OpenAI', + 'Failed to generate content using LLM', 'Please try again or if the problem persists, contact your organization admin.' ); console.error(e); @@ -93,7 +93,7 @@ export function useOpenAIStream({ model, temperature, onResponse }: Options = de setStreamStatus(StreamStatus.GENERATING); setError(undefined); // Stream the completions. Each element is the next stream chunk. - const stream = llms.openai + const stream = llm .streamChatCompletions({ model, temperature, @@ -102,7 +102,7 @@ export function useOpenAIStream({ model, temperature, onResponse }: Options = de .pipe( // Accumulate the stream content into a stream of strings, where each // element contains the accumulated message so far. - llms.openai.accumulateContent() + llm.accumulateContent() // The stream is just a regular Observable, so we can use standard rxjs // functionality to update state, e.g. recording when the stream // has completed. @@ -148,7 +148,7 @@ export function useOpenAIStream({ model, temperature, onResponse }: Options = de let timeout: NodeJS.Timeout | undefined; if (streamStatus === StreamStatus.GENERATING && reply === '') { timeout = setTimeout(() => { - onError(new Error(`OpenAI stream timed out after ${TIMEOUT}ms`)); + onError(new Error(`LLM stream timed out after ${TIMEOUT}ms`)); }, TIMEOUT); } diff --git a/public/app/features/dashboard/components/GenAI/utils.test.ts b/public/app/features/dashboard/components/GenAI/utils.test.ts index 5707b1c3195..80060af4c7d 100644 --- a/public/app/features/dashboard/components/GenAI/utils.test.ts +++ b/public/app/features/dashboard/components/GenAI/utils.test.ts @@ -1,4 +1,4 @@ -import { llms } from '@grafana/experimental'; +import { llm } from '@grafana/llm'; import { DASHBOARD_SCHEMA_VERSION } from '../../state/DashboardMigrator'; import { createDashboardModelFixture, createPanelSaveModel } from '../../state/__fixtures__/dashboardFixtures'; @@ -6,15 +6,14 @@ import { NEW_PANEL_TITLE } from '../../utils/dashboard'; import { getDashboardChanges, getPanelStrings, isLLMPluginEnabled, sanitizeReply } from './utils'; -// Mock the llms.openai module -jest.mock('@grafana/experimental', () => ({ - ...jest.requireActual('@grafana/experimental'), - llms: { - openai: { - streamChatCompletions: jest.fn(), - accumulateContent: jest.fn(), - health: jest.fn(), - }, +// Mock the llm module +jest.mock('@grafana/llm', () => ({ + ...jest.requireActual('@grafana/llm'), + llm: { + streamChatCompletions: jest.fn(), + accumulateContent: jest.fn(), + health: jest.fn(), + Model: { LARGE: 'large' }, }, })); @@ -101,8 +100,8 @@ describe('getDashboardChanges', () => { describe('isLLMPluginEnabled', () => { it('should return false if LLM plugin is not enabled', async () => { - // Mock llms.openai.health to return false - jest.mocked(llms.openai.health).mockResolvedValue({ ok: false, configured: false }); + // Mock llm.health to return false + jest.mocked(llm.health).mockResolvedValue({ ok: false, configured: false }); const enabled = await isLLMPluginEnabled(); @@ -110,8 +109,8 @@ describe('isLLMPluginEnabled', () => { }); it('should return true if LLM plugin is enabled', async () => { - // Mock llms.openai.health to return true - jest.mocked(llms.openai.health).mockResolvedValue({ ok: true, configured: false }); + // Mock llm.health to return true + jest.mocked(llm.health).mockResolvedValue({ ok: true, configured: false }); const enabled = await isLLMPluginEnabled(); diff --git a/public/app/features/dashboard/components/GenAI/utils.ts b/public/app/features/dashboard/components/GenAI/utils.ts index bad69a59e44..ffc3740b57c 100644 --- a/public/app/features/dashboard/components/GenAI/utils.ts +++ b/public/app/features/dashboard/components/GenAI/utils.ts @@ -1,6 +1,6 @@ import { pick } from 'lodash'; -import { llms } from '@grafana/experimental'; +import { llm } from '@grafana/llm'; import { config } from '@grafana/runtime'; import { Panel } from '@grafana/schema'; @@ -18,7 +18,7 @@ export enum Role { 'user' = 'user', } -export type Message = llms.openai.Message; +export type Message = llm.Message; export enum QuickFeedbackType { Shorter = 'Even shorter', @@ -27,11 +27,12 @@ export enum QuickFeedbackType { } /** - * The OpenAI model to be used. + * The LLM model to be used. + * + * The LLM app abstracts the actual model name since it depends on the provider. + * We want to default to whatever the 'large' model is. */ -export const DEFAULT_OAI_MODEL = 'gpt-4'; - -export type OAI_MODEL = 'gpt-4' | 'gpt-4-32k' | 'gpt-3.5-turbo' | 'gpt-3.5-turbo-16k'; +export const DEFAULT_LLM_MODEL: llm.Model = llm.Model.LARGE; /** * Sanitize the reply from OpenAI by removing the leading and trailing quotes. @@ -80,7 +81,7 @@ export async function isLLMPluginEnabled(): Promise { // Check if the LLM plugin is enabled. // If not, we won't be able to make requests, so return early. llmHealthCheck = new Promise((resolve) => { - llms.openai.health().then((response) => { + llm.health().then((response) => { if (!response.ok) { // Health check fail clear cached promise so we can try again later llmHealthCheck = undefined; diff --git a/yarn.lock b/yarn.lock index d9f7be8097c..3bb88862cea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -81,7 +81,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.3, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.24.2, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.3, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.24.2, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0, @babel/code-frame@npm:^7.26.2": version: 7.26.2 resolution: "@babel/code-frame@npm:7.26.2" dependencies: @@ -92,14 +92,21 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.9, @babel/compat-data@npm:^7.26.0": +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.26.5": + version: 7.26.8 + resolution: "@babel/compat-data@npm:7.26.8" + checksum: 10/bdddf577f670e0e12996ef37e134856c8061032edb71a13418c3d4dae8135da28910b7cd6dec6e668ab3a41e42089ef7ee9c54ef52fe0860b54cb420b0d14948 + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.26.0": version: 7.26.2 resolution: "@babel/compat-data@npm:7.26.2" checksum: 10/ed9eed6b62ce803ef4a320b1dac76b0302abbb29c49dddf96f3e3207d9717eb34e299a8651bb1582e9c3346ead74b6d595ffced5b3dae718afa08b18741f8402 languageName: node linkType: hard -"@babel/core@npm:7.26.0, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.18.9, @babel/core@npm:^7.21.3, @babel/core@npm:^7.22.9": +"@babel/core@npm:7.26.0": version: 7.26.0 resolution: "@babel/core@npm:7.26.0" dependencies: @@ -122,7 +129,43 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.22.9, @babel/generator@npm:^7.25.9, @babel/generator@npm:^7.26.0, @babel/generator@npm:^7.7.2": +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.18.9, @babel/core@npm:^7.21.3, @babel/core@npm:^7.22.9": + version: 7.26.9 + resolution: "@babel/core@npm:7.26.9" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.26.2" + "@babel/generator": "npm:^7.26.9" + "@babel/helper-compilation-targets": "npm:^7.26.5" + "@babel/helper-module-transforms": "npm:^7.26.0" + "@babel/helpers": "npm:^7.26.9" + "@babel/parser": "npm:^7.26.9" + "@babel/template": "npm:^7.26.9" + "@babel/traverse": "npm:^7.26.9" + "@babel/types": "npm:^7.26.9" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10/ceed199dbe25f286a0a59a2ea7879aed37c1f3bb289375d061eda4752cab2ba365e7f9e969c7fd3b9b95c930493db6eeb5a6d6f017dd135fb5a4503449aad753 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.22.9, @babel/generator@npm:^7.26.9, @babel/generator@npm:^7.7.2": + version: 7.26.9 + resolution: "@babel/generator@npm:7.26.9" + dependencies: + "@babel/parser": "npm:^7.26.9" + "@babel/types": "npm:^7.26.9" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^3.0.2" + checksum: 10/95075dd6158a49efcc71d7f2c5d20194fcf245348de7723ca35e37cd5800587f1d4de2be6c4ba87b5f5fbb967c052543c109eaab14b43f6a73eb05ccd9a5bb44 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.26.0": version: 7.26.2 resolution: "@babel/generator@npm:7.26.2" dependencies: @@ -154,16 +197,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-compilation-targets@npm:7.25.9" +"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.9, @babel/helper-compilation-targets@npm:^7.26.5": + version: 7.26.5 + resolution: "@babel/helper-compilation-targets@npm:7.26.5" dependencies: - "@babel/compat-data": "npm:^7.25.9" + "@babel/compat-data": "npm:^7.26.5" "@babel/helper-validator-option": "npm:^7.25.9" browserslist: "npm:^4.24.0" lru-cache: "npm:^5.1.1" semver: "npm:^6.3.1" - checksum: 10/8053fbfc21e8297ab55c8e7f9f119e4809fa7e505268691e1bedc2cf5e7a5a7de8c60ad13da2515378621b7601c42e101d2d679904da395fa3806a1edef6b92e + checksum: 10/f3b5f0bfcd7b6adf03be1a494b269782531c6e415afab2b958c077d570371cf1bfe001c442508092c50ed3711475f244c05b8f04457d8dea9c34df2b741522bf languageName: node linkType: hard @@ -197,7 +240,22 @@ __metadata: languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.6.1, @babel/helper-define-polyfill-provider@npm:^0.6.2": +"@babel/helper-define-polyfill-provider@npm:^0.6.1": + version: 0.6.3 + resolution: "@babel/helper-define-polyfill-provider@npm:0.6.3" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.22.6" + "@babel/helper-plugin-utils": "npm:^7.22.5" + debug: "npm:^4.1.1" + lodash.debounce: "npm:^4.0.8" + resolve: "npm:^1.14.2" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 10/b79a77ac8fbf1aaf6c7f99191871760508e87d75a374ff3c39c6599a17d9bb82284797cd451769305764e504546caf22ae63367b22d6e45e32d0a8f4a34aab53 + languageName: node + linkType: hard + +"@babel/helper-define-polyfill-provider@npm:^0.6.2": version: 0.6.2 resolution: "@babel/helper-define-polyfill-provider@npm:0.6.2" dependencies: @@ -359,6 +417,16 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.26.9": + version: 7.26.9 + resolution: "@babel/helpers@npm:7.26.9" + dependencies: + "@babel/template": "npm:^7.26.9" + "@babel/types": "npm:^7.26.9" + checksum: 10/267dfa7d04dff7720610497f466aa7b60652b7ec8dde5914527879350c9d655271e892117c5b2f0f083d92d2a8e5e2cf9832d4f98cd7fb72d78f796002af19a1 + languageName: node + linkType: hard + "@babel/highlight@npm:^7.25.7": version: 7.25.9 resolution: "@babel/highlight@npm:7.25.9" @@ -371,7 +439,18 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.2": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.26.9": + version: 7.26.9 + resolution: "@babel/parser@npm:7.26.9" + dependencies: + "@babel/types": "npm:^7.26.9" + bin: + parser: ./bin/babel-parser.js + checksum: 10/cb84fe3ba556d6a4360f3373cf7eb0901c46608c8d77330cc1ca021d60f5d6ebb4056a8e7f9dd0ef231923ef1fe69c87b11ce9e160d2252e089a20232a2b942b + languageName: node + linkType: hard + +"@babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.2": version: 7.26.2 resolution: "@babel/parser@npm:7.26.2" dependencies: @@ -944,7 +1023,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.22.5, @babel/plugin-transform-modules-commonjs@npm:^7.25.9": +"@babel/plugin-transform-modules-commonjs@npm:^7.22.5": + version: 7.26.3 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.26.3" + dependencies: + "@babel/helper-module-transforms": "npm:^7.26.0" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/f817f02fa04d13f1578f3026239b57f1003bebcf9f9b8d854714bed76a0e4986c79bd6d2e0ac14282c5d309454a8dab683c179709ca753b0152a69c69f3a78e3 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-commonjs@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.9" dependencies: @@ -1438,7 +1529,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:7.26.0, @babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.1, @babel/runtime@npm:^7.11.1, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.14.0, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.0, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.0, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.9, @babel/runtime@npm:^7.24.1, @babel/runtime@npm:^7.24.5, @babel/runtime@npm:^7.25.0, @babel/runtime@npm:^7.25.6, @babel/runtime@npm:^7.25.7, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7": +"@babel/runtime@npm:7.26.0, @babel/runtime@npm:^7.14.0, @babel/runtime@npm:^7.24.1": version: 7.26.0 resolution: "@babel/runtime@npm:7.26.0" dependencies: @@ -1447,6 +1538,15 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.1, @babel/runtime@npm:^7.11.1, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.0, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.0, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.9, @babel/runtime@npm:^7.24.5, @babel/runtime@npm:^7.25.0, @babel/runtime@npm:^7.25.6, @babel/runtime@npm:^7.25.7, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7": + version: 7.26.9 + resolution: "@babel/runtime@npm:7.26.9" + dependencies: + regenerator-runtime: "npm:^0.14.0" + checksum: 10/08edd07d774eafbf157fdc8450ed6ddd22416fdd8e2a53e4a00349daba1b502c03ab7f7ad3ad3a7c46b9a24d99b5697591d0f852ee2f84642082ef7dda90b83d + languageName: node + linkType: hard + "@babel/template@npm:^7.22.5, @babel/template@npm:^7.24.7, @babel/template@npm:^7.25.9, @babel/template@npm:^7.3.3": version: 7.25.9 resolution: "@babel/template@npm:7.25.9" @@ -1458,22 +1558,43 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.22.8, @babel/traverse@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/traverse@npm:7.25.9" +"@babel/template@npm:^7.26.9": + version: 7.26.9 + resolution: "@babel/template@npm:7.26.9" dependencies: - "@babel/code-frame": "npm:^7.25.9" - "@babel/generator": "npm:^7.25.9" - "@babel/parser": "npm:^7.25.9" - "@babel/template": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" - debug: "npm:^4.3.1" - globals: "npm:^11.1.0" - checksum: 10/7431614d76d4a053e429208db82f2846a415833f3d9eb2e11ef72eeb3c64dfd71f4a4d983de1a4a047b36165a1f5a64de8ca2a417534cc472005c740ffcb9c6a + "@babel/code-frame": "npm:^7.26.2" + "@babel/parser": "npm:^7.26.9" + "@babel/types": "npm:^7.26.9" + checksum: 10/240288cebac95b1cc1cb045ad143365643da0470e905e11731e63280e43480785bd259924f4aea83898ef68e9fa7c176f5f2d1e8b0a059b27966e8ca0b41a1b6 languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.22.5, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": +"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.22.8, @babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.9": + version: 7.26.9 + resolution: "@babel/traverse@npm:7.26.9" + dependencies: + "@babel/code-frame": "npm:^7.26.2" + "@babel/generator": "npm:^7.26.9" + "@babel/parser": "npm:^7.26.9" + "@babel/template": "npm:^7.26.9" + "@babel/types": "npm:^7.26.9" + debug: "npm:^4.3.1" + globals: "npm:^11.1.0" + checksum: 10/c16a79522eafa0a7e40eb556bf1e8a3d50dbb0ff943a80f2c06cee2ec7ff87baa0c5d040a5cff574d9bcb3bed05e7d8c6f13b238a931c97267674b02c6cf45b4 + languageName: node + linkType: hard + +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.22.5, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.9, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": + version: 7.26.9 + resolution: "@babel/types@npm:7.26.9" + dependencies: + "@babel/helper-string-parser": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + checksum: 10/11b62ea7ed64ef7e39cc9b33852c1084064c3b970ae0eaa5db659241cfb776577d1e68cbff4de438bada885d3a827b52cc0f3746112d8e1bc672bb99a8eb5b56 + languageName: node + linkType: hard + +"@babel/types@npm:^7.26.0": version: 7.26.0 resolution: "@babel/types@npm:7.26.0" dependencies: @@ -3372,6 +3493,22 @@ __metadata: languageName: node linkType: hard +"@grafana/llm@npm:0.13.2": + version: 0.13.2 + resolution: "@grafana/llm@npm:0.13.2" + dependencies: + react-use: "npm:^17.6.0" + semver: "npm:^7.6.3" + uuid: "npm:^11.0.5" + peerDependencies: + "@grafana/data": ^10.4.0 ||^11 + "@grafana/runtime": ^10.4.0 || ^11 + react: ^18 + rxjs: ^7.8.1 + checksum: 10/f30a637902cd8a2de6c9bb82ed9e31d98a7817c833023c0930c658a4087a299d2e40036b0262fd4acca1335e029994664a221037cc9279d99bebe3e3f43322ac + languageName: node + linkType: hard + "@grafana/monaco-logql@npm:^0.0.7": version: 0.0.7 resolution: "@grafana/monaco-logql@npm:0.0.7" @@ -4448,6 +4585,15 @@ __metadata: languageName: node linkType: hard +"@keyv/serialize@npm:^1.0.2": + version: 1.0.2 + resolution: "@keyv/serialize@npm:1.0.2" + dependencies: + buffer: "npm:^6.0.3" + checksum: 10/6a42a5778a6b4542f6903ba7e6a17c5bd116441798d75c95fba9908c76c7606db527fad710b5c54abc6175e49b1bbaaafe3b836ad4b91e1af701394134f1d504 + languageName: node + linkType: hard + "@kusto/language-service-next@npm:11.5.3": version: 11.5.3 resolution: "@kusto/language-service-next@npm:11.5.3" @@ -5069,7 +5215,7 @@ __metadata: languageName: node linkType: hard -"@npmcli/package-json@npm:5.2.0, @npmcli/package-json@npm:^5.0.0, @npmcli/package-json@npm:^5.1.0": +"@npmcli/package-json@npm:5.2.0": version: 5.2.0 resolution: "@npmcli/package-json@npm:5.2.0" dependencies: @@ -5084,6 +5230,21 @@ __metadata: languageName: node linkType: hard +"@npmcli/package-json@npm:^5.0.0, @npmcli/package-json@npm:^5.1.0": + version: 5.2.1 + resolution: "@npmcli/package-json@npm:5.2.1" + dependencies: + "@npmcli/git": "npm:^5.0.0" + glob: "npm:^10.2.2" + hosted-git-info: "npm:^7.0.0" + json-parse-even-better-errors: "npm:^3.0.0" + normalize-package-data: "npm:^6.0.0" + proc-log: "npm:^4.0.0" + semver: "npm:^7.5.3" + checksum: 10/304a819b93f79a6e0e56cb371961a66d2db72142e310d545ecbbbe4d917025a30601aa8e63a5f0cc28f0fe281c116bdaf79b334619b105a1d027a2b769ecd137 + languageName: node + linkType: hard + "@npmcli/promise-spawn@npm:^7.0.0": version: 7.0.2 resolution: "@npmcli/promise-spawn@npm:7.0.2" @@ -8265,11 +8426,11 @@ __metadata: linkType: hard "@swc/types@npm:^0.1.17": - version: 0.1.17 - resolution: "@swc/types@npm:0.1.17" + version: 0.1.19 + resolution: "@swc/types@npm:0.1.19" dependencies: "@swc/counter": "npm:^0.1.3" - checksum: 10/ddef1ad5bfead3acdfc41f14e79ba43a99200eb325afbad5716058dbe36358b0513400e9f22aff32432be84a98ae93df95a20b94192f69b8687144270e4eaa18 + checksum: 10/693147cc9b23147164ddff9cb89477c369fbeb103319584779352a9ff1c72e0a70b97a89dfd97629040db8956d668d7b7a8fed328ffea46a3e8c18577e396994 languageName: node linkType: hard @@ -9299,7 +9460,14 @@ __metadata: languageName: node linkType: hard -"@types/lodash@npm:*, @types/lodash@npm:4.17.14, @types/lodash@npm:^4.14.172": +"@types/lodash@npm:*, @types/lodash@npm:^4.14.172": + version: 4.17.15 + resolution: "@types/lodash@npm:4.17.15" + checksum: 10/27b348b5971b9c670215331b52448a13d7d65bf1fbd320a7049c9c153c1186ff5d116ba75f05f07d32d7ece8a992b26a30c7bdc9be22a3d1e4e3e6068aa04603 + languageName: node + linkType: hard + +"@types/lodash@npm:4.17.14": version: 4.17.14 resolution: "@types/lodash@npm:4.17.14" checksum: 10/6ee40725f3e192f5ef1f493caca19210aa7acd7adc3136b8dba84d418a35be0abea0668105aed9f696ad62a54310a9c0d328971ad4b157f5bcda700424ed5aae @@ -9390,12 +9558,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:22.10.5, @types/node@npm:>=10.0.0, @types/node@npm:>=13.7.0, @types/node@npm:>=13.7.4, @types/node@npm:^22.0.0": - version: 22.10.5 - resolution: "@types/node@npm:22.10.5" +"@types/node@npm:*, @types/node@npm:>=10.0.0, @types/node@npm:>=13.7.0, @types/node@npm:>=13.7.4": + version: 22.12.0 + resolution: "@types/node@npm:22.12.0" dependencies: undici-types: "npm:~6.20.0" - checksum: 10/a5366961ffa9921e8f15435bc18ea9f8b7a7bb6b3d92dd5e93ebcd25e8af65708872bd8e6fee274b4655bab9ca80fbff9f0e42b5b53857790f13cf68cf4cbbfc + checksum: 10/aac2b6f6a845ec3540c3d979b3150efe3162165bfda953af10b579df2d1cc4f5c48506922bf6bf661a2e5a7ebb571c5729bf1f9f12488a810bb1a5fa9522ef9d languageName: node linkType: hard @@ -9408,6 +9576,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:22.10.5, @types/node@npm:^22.0.0": + version: 22.10.5 + resolution: "@types/node@npm:22.10.5" + dependencies: + undici-types: "npm:~6.20.0" + checksum: 10/a5366961ffa9921e8f15435bc18ea9f8b7a7bb6b3d92dd5e93ebcd25e8af65708872bd8e6fee274b4655bab9ca80fbff9f0e42b5b53857790f13cf68cf4cbbfc + languageName: node + linkType: hard + "@types/nodemailer@npm:*": version: 6.4.15 resolution: "@types/nodemailer@npm:6.4.15" @@ -9525,7 +9702,16 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:*, @types/react-dom@npm:18.2.25": +"@types/react-dom@npm:*": + version: 18.3.5 + resolution: "@types/react-dom@npm:18.3.5" + peerDependencies: + "@types/react": ^18.0.0 + checksum: 10/02095b326f373867498e0eb2b5ebb60f9bd9535db0d757ea13504c4b7d75e16605cf1d43ce7a2e67893d177b51db4357cabb2842fb4257c49427d02da1a14e09 + languageName: node + linkType: hard + +"@types/react-dom@npm:18.2.25": version: 18.2.25 resolution: "@types/react-dom@npm:18.2.25" dependencies: @@ -10012,7 +10198,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.18.1, @typescript-eslint/scope-manager@npm:^8.15.0": +"@typescript-eslint/scope-manager@npm:8.18.1": version: 8.18.1 resolution: "@typescript-eslint/scope-manager@npm:8.18.1" dependencies: @@ -10022,6 +10208,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/scope-manager@npm:8.22.0, @typescript-eslint/scope-manager@npm:^8.15.0": + version: 8.22.0 + resolution: "@typescript-eslint/scope-manager@npm:8.22.0" + dependencies: + "@typescript-eslint/types": "npm:8.22.0" + "@typescript-eslint/visitor-keys": "npm:8.22.0" + checksum: 10/7fb4bae6d9f8b86a43405b24828cd36ba0751cce4346d86821a4827cded93227f92668044e5e6d802a32096b50cfcaf2ce9ab65322310fa68f5e3819bef70168 + languageName: node + linkType: hard + "@typescript-eslint/type-utils@npm:8.18.1": version: 8.18.1 resolution: "@typescript-eslint/type-utils@npm:8.18.1" @@ -10044,13 +10240,20 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.18.1, @typescript-eslint/types@npm:^8.9.0": +"@typescript-eslint/types@npm:8.18.1": version: 8.18.1 resolution: "@typescript-eslint/types@npm:8.18.1" checksum: 10/57a6141ba17be929291a644991f3a76f94fce330376f6a079decb20fb53378d636ad6878f8f9b6fcb8244cf1ca8b118f9e8901ae04cf3de2aa9f9ff57791d97a languageName: node linkType: hard +"@typescript-eslint/types@npm:8.22.0, @typescript-eslint/types@npm:^8.9.0": + version: 8.22.0 + resolution: "@typescript-eslint/types@npm:8.22.0" + checksum: 10/b43ea5b05ed0b43dcee8d2fa98b2c3f79c604780cbd56e6ba7f89e3066798b7169848694f59523fd2003e8fa699ddc97f28b0860a4eb04eea26c96d5ac9346bd + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:5.62.0": version: 5.62.0 resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" @@ -10087,7 +10290,25 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.18.1, @typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0, @typescript-eslint/utils@npm:^8.13.0, @typescript-eslint/utils@npm:^8.15.0, @typescript-eslint/utils@npm:^8.9.0": +"@typescript-eslint/typescript-estree@npm:8.22.0": + version: 8.22.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.22.0" + dependencies: + "@typescript-eslint/types": "npm:8.22.0" + "@typescript-eslint/visitor-keys": "npm:8.22.0" + debug: "npm:^4.3.4" + fast-glob: "npm:^3.3.2" + is-glob: "npm:^4.0.3" + minimatch: "npm:^9.0.4" + semver: "npm:^7.6.0" + ts-api-utils: "npm:^2.0.0" + peerDependencies: + typescript: ">=4.8.4 <5.8.0" + checksum: 10/e3c0b191e2a0f55101c3e3333904f3a255d635e4ea0d026981cc25e83b62660a3a8a7993ac4a3d0c8756afb7dc272099eec48fd93e100a2b8467a5b80ef0026c + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:8.18.1": version: 8.18.1 resolution: "@typescript-eslint/utils@npm:8.18.1" dependencies: @@ -10120,6 +10341,21 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0, @typescript-eslint/utils@npm:^8.13.0, @typescript-eslint/utils@npm:^8.15.0, @typescript-eslint/utils@npm:^8.9.0": + version: 8.22.0 + resolution: "@typescript-eslint/utils@npm:8.22.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.0" + "@typescript-eslint/scope-manager": "npm:8.22.0" + "@typescript-eslint/types": "npm:8.22.0" + "@typescript-eslint/typescript-estree": "npm:8.22.0" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: 10/92a5ae5d79a5988e88fdda8d5e88f73e7b9ce24b339098d72698dba766ded274c24d0e2857bcb799c0aa7a59257e54a273eabdaaab39a5cd20283669201eeb53 + languageName: node + linkType: hard + "@typescript-eslint/visitor-keys@npm:5.62.0": version: 5.62.0 resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" @@ -10140,6 +10376,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/visitor-keys@npm:8.22.0": + version: 8.22.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.22.0" + dependencies: + "@typescript-eslint/types": "npm:8.22.0" + eslint-visitor-keys: "npm:^4.2.0" + checksum: 10/1a172620d46e23362c5d1e1e7c8186856dff6b6f1c2697d67f9aac1b3dfd0de96c2c73487e4deed80fad3bfa5cf74cfed3519221657c6ede602b04ac091525a4 + languageName: node + linkType: hard + "@visx/bounds@npm:3.12.0": version: 3.12.0 resolution: "@visx/bounds@npm:3.12.0" @@ -11778,7 +12024,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.0.0, browserslist@npm:^4.21.10, browserslist@npm:^4.21.4, browserslist@npm:^4.23.3, browserslist@npm:^4.24.0": +"browserslist@npm:^4.0.0, browserslist@npm:^4.21.10, browserslist@npm:^4.21.4, browserslist@npm:^4.23.3, browserslist@npm:^4.24.0, browserslist@npm:^4.24.3": version: 4.24.4 resolution: "browserslist@npm:4.24.4" dependencies: @@ -11943,6 +12189,16 @@ __metadata: languageName: node linkType: hard +"cacheable@npm:^1.8.7": + version: 1.8.7 + resolution: "cacheable@npm:1.8.7" + dependencies: + hookified: "npm:^1.6.0" + keyv: "npm:^5.2.3" + checksum: 10/dce96e947c5b879a58ce024fd2d08a4c44ee328e8406cd6243da2d0e3a17579d63108c80e9272f64190d2d2f00e26a307b3e3ff65b6665abc70956714442897b + languageName: node + linkType: hard + "cachedir@npm:^2.3.0": version: 2.3.0 resolution: "cachedir@npm:2.3.0" @@ -13038,7 +13294,7 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.38.0, core-js-compat@npm:^3.38.1": +"core-js-compat@npm:^3.38.0": version: 3.38.1 resolution: "core-js-compat@npm:3.38.1" dependencies: @@ -13047,6 +13303,15 @@ __metadata: languageName: node linkType: hard +"core-js-compat@npm:^3.38.1": + version: 3.40.0 + resolution: "core-js-compat@npm:3.40.0" + dependencies: + browserslist: "npm:^4.24.3" + checksum: 10/3dd3d717b3d4ae0d9c2930d39c0f2a21ca6f195fcdd5711bda833557996c4d9f90277eab576423478e95689257e2de8d1a2623d6618084416bd224d10d5df9a4 + languageName: node + linkType: hard + "core-js-pure@npm:^3.23.3, core-js-pure@npm:^3.30.2": version: 3.30.2 resolution: "core-js-pure@npm:3.30.2" @@ -13435,7 +13700,7 @@ __metadata: languageName: node linkType: hard -"css-tree@npm:^3.0.1": +"css-tree@npm:^3.0.1, css-tree@npm:^3.1.0": version: 3.1.0 resolution: "css-tree@npm:3.1.0" dependencies: @@ -15117,7 +15382,14 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.3.1, es-module-lexer@npm:^1.5.0, es-module-lexer@npm:^1.5.3": +"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.5.0, es-module-lexer@npm:^1.5.3": + version: 1.6.0 + resolution: "es-module-lexer@npm:1.6.0" + checksum: 10/807ee7020cc46a9c970c78cad1f2f3fc139877e5ebad7f66dbfbb124d451189ba1c48c1c632bd5f8ce1b8af2caef3fca340ba044a410fa890d17b080a59024bb + languageName: node + linkType: hard + +"es-module-lexer@npm:^1.3.1": version: 1.5.4 resolution: "es-module-lexer@npm:1.5.4" checksum: 10/f29c7c97a58eb17640dcbd71bd6ef754ad4f58f95c3073894573d29dae2cad43ecd2060d97ed5b866dfb7804d5590fb7de1d2c5339a5fceae8bd60b580387fc5 @@ -16115,16 +16387,16 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": - version: 3.3.2 - resolution: "fast-glob@npm:3.3.2" +"fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2, fast-glob@npm:^3.3.3": + version: 3.3.3 + resolution: "fast-glob@npm:3.3.3" dependencies: "@nodelib/fs.stat": "npm:^2.0.2" "@nodelib/fs.walk": "npm:^1.2.3" glob-parent: "npm:^5.1.2" merge2: "npm:^1.3.0" - micromatch: "npm:^4.0.4" - checksum: 10/222512e9315a0efca1276af9adb2127f02105d7288fa746145bf45e2716383fb79eb983c89601a72a399a56b7c18d38ce70457c5466218c5f13fad957cee16df + micromatch: "npm:^4.0.8" + checksum: 10/dcc6432b269762dd47381d8b8358bf964d8f4f60286ac6aa41c01ade70bda459ff2001b516690b96d5365f68a49242966112b5d5cc9cd82395fa8f9d017c90ad languageName: node linkType: hard @@ -16268,6 +16540,15 @@ __metadata: languageName: node linkType: hard +"file-entry-cache@npm:^10.0.5": + version: 10.0.5 + resolution: "file-entry-cache@npm:10.0.5" + dependencies: + flat-cache: "npm:^6.1.5" + checksum: 10/57439b39635e75aa900ccdaad9167b85a500a559dd8f0902509189849784e9255d43cd3d8307f918dbd19f48b02562b5e354bcf7bfa23afe3985485504eb7a5e + languageName: node + linkType: hard + "file-entry-cache@npm:^8.0.0": version: 8.0.0 resolution: "file-entry-cache@npm:8.0.0" @@ -16464,6 +16745,17 @@ __metadata: languageName: node linkType: hard +"flat-cache@npm:^6.1.5": + version: 6.1.5 + resolution: "flat-cache@npm:6.1.5" + dependencies: + cacheable: "npm:^1.8.7" + flatted: "npm:^3.3.2" + hookified: "npm:^1.6.0" + checksum: 10/c98d7635316ceee08b74c1dd3f05eda6a5f2f073688af927de68193ca992ab09eb9f0ee7d5fac40f53280844f11cf368b90dc43f73fee358165dc84e13828674 + languageName: node + linkType: hard + "flat@npm:^5.0.2": version: 5.0.2 resolution: "flat@npm:5.0.2" @@ -16473,7 +16765,14 @@ __metadata: languageName: node linkType: hard -"flatted@npm:^3.2.9, flatted@npm:^3.3.1": +"flatted@npm:^3.2.9, flatted@npm:^3.3.2": + version: 3.3.2 + resolution: "flatted@npm:3.3.2" + checksum: 10/ac3c159742e01d0e860a861164bcfd35bb567ccbebb8a0dd041e61cf3c64a435b917dd1e7ed1c380c2ebca85735fb16644485ec33665bc6aafc3b316aa1eed44 + languageName: node + linkType: hard + +"flatted@npm:^3.3.1": version: 3.3.1 resolution: "flatted@npm:3.3.1" checksum: 10/7b8376061d5be6e0d3658bbab8bde587647f68797cf6bfeae9dea0e5137d9f27547ab92aaff3512dd9d1299086a6d61be98e9d48a56d17531b634f77faadbc49 @@ -17330,6 +17629,7 @@ __metadata: "@grafana/flamegraph": "workspace:*" "@grafana/google-sdk": "npm:0.1.2" "@grafana/lezer-logql": "npm:0.2.6" + "@grafana/llm": "npm:0.13.2" "@grafana/monaco-logql": "npm:^0.0.7" "@grafana/o11y-ds-frontend": "workspace:*" "@grafana/plugin-e2e": "npm:^1.11.0" @@ -17916,6 +18216,13 @@ __metadata: languageName: node linkType: hard +"hookified@npm:^1.6.0": + version: 1.7.0 + resolution: "hookified@npm:1.7.0" + checksum: 10/87fb8f2ae170f28b1e0b903f2b0b40fb2a92a0364baab7c54121db1c871a2e81c589d778b48e1a35462181b8840764caf6cac3744330e5687a05a4b4d2ad729d + languageName: node + linkType: hard + "hosted-git-info@npm:^2.1.4": version: 2.8.9 resolution: "hosted-git-info@npm:2.8.9" @@ -18453,6 +18760,13 @@ __metadata: languageName: node linkType: hard +"ignore@npm:^7.0.3": + version: 7.0.3 + resolution: "ignore@npm:7.0.3" + checksum: 10/ce5e812af3acd6607a3fe0a9f9b5f01d53f009a5ace8cbf5b6491d05a481b55d65186e6a7eaa13126e93f15276bcf3d1e8d6ff3ce5549c312f9bb313fff33365 + languageName: node + linkType: hard + "immer@npm:10.1.1, immer@npm:^10.0.3": version: 10.1.1 resolution: "immer@npm:10.1.1" @@ -20475,6 +20789,15 @@ __metadata: languageName: node linkType: hard +"keyv@npm:^5.2.3": + version: 5.2.3 + resolution: "keyv@npm:5.2.3" + dependencies: + "@keyv/serialize": "npm:^1.0.2" + checksum: 10/47b4e9deb33e6a80e5ea79f3022ed3a14bc9fe553b7527ffff0a70b10c7a6c1a5d7e49b9bcfdbd8e8b9fb4632d68baa19d09e82628bcf853103e750e56d49a9e + languageName: node + linkType: hard + "kind-of@npm:^6.0.2, kind-of@npm:^6.0.3": version: 6.0.3 resolution: "kind-of@npm:6.0.3" @@ -22104,7 +22427,7 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.3.7": +"nanoid@npm:^3.3.7, nanoid@npm:^3.3.8": version: 3.3.8 resolution: "nanoid@npm:3.3.8" bin: @@ -24148,7 +24471,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.49, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.4.49": +"postcss@npm:8.4.49, postcss@npm:^8.4.49": version: 8.4.49 resolution: "postcss@npm:8.4.49" dependencies: @@ -24159,6 +24482,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.5.1": + version: 8.5.1 + resolution: "postcss@npm:8.5.1" + dependencies: + nanoid: "npm:^3.3.8" + picocolors: "npm:^1.1.1" + source-map-js: "npm:^1.2.1" + checksum: 10/1fbd28753143f7f03e4604813639918182b15343c7ad0f4e72f3875fc2cc0b8494c887f55dc05008fad5fbf1e1e908ce2edbbce364a91f84dcefb71edf7cd31d + languageName: node + linkType: hard + "prefix-style@npm:2.0.1": version: 2.0.1 resolution: "prefix-style@npm:2.0.1" @@ -24491,7 +24825,7 @@ __metadata: languageName: node linkType: hard -"qs@npm:6.13.0, qs@npm:^6.11.2, qs@npm:^6.4.0": +"qs@npm:6.13.0": version: 6.13.0 resolution: "qs@npm:6.13.0" dependencies: @@ -24500,6 +24834,15 @@ __metadata: languageName: node linkType: hard +"qs@npm:^6.11.2, qs@npm:^6.4.0": + version: 6.13.1 + resolution: "qs@npm:6.13.1" + dependencies: + side-channel: "npm:^1.0.6" + checksum: 10/53cf5fdc5f342a9ffd3968f20c8c61624924cf928d86fff525240620faba8ca5cfd6c3f12718cc755561bfc3dc9721bc8924e38f53d8925b03940f0b8a902212 + languageName: node + linkType: hard + "querystringify@npm:^2.1.1": version: 2.2.0 resolution: "querystringify@npm:2.2.0" @@ -24771,8 +25114,8 @@ __metadata: linkType: hard "rc-overflow@npm:^1.3.1": - version: 1.3.2 - resolution: "rc-overflow@npm:1.3.2" + version: 1.4.1 + resolution: "rc-overflow@npm:1.4.1" dependencies: "@babel/runtime": "npm:^7.11.1" classnames: "npm:^2.2.1" @@ -24781,22 +25124,22 @@ __metadata: peerDependencies: react: ">=16.9.0" react-dom: ">=16.9.0" - checksum: 10/a35d6f035de9e5b71f5762ddaf9757770fadab7d5f5e6bf0451346cffb06027e9de75a8104ca782c71e381f55552588a350905a61083cd23d2fb6f24e2807007 + checksum: 10/c5f1daf4ed74ff4d76d593237233a28260d48170deaa87e48b552c0a60ed9cffd23be78bf04472b98da91c2a17f8182589aff7a865c2d66a04731bab6455d216 languageName: node linkType: hard "rc-resize-observer@npm:^1.0.0, rc-resize-observer@npm:^1.3.1": - version: 1.3.1 - resolution: "rc-resize-observer@npm:1.3.1" + version: 1.4.3 + resolution: "rc-resize-observer@npm:1.4.3" dependencies: "@babel/runtime": "npm:^7.20.7" classnames: "npm:^2.2.1" - rc-util: "npm:^5.27.0" + rc-util: "npm:^5.44.1" resize-observer-polyfill: "npm:^1.5.1" peerDependencies: react: ">=16.9.0" react-dom: ">=16.9.0" - checksum: 10/71add2ac032464b8ef62a044559396728249fc01cffcd5084c4d9e3b69b22f4ad85308f90e2dea6fce8e23d6a72325f8ba9a2c96697e82d31d6c16453fb2642c + checksum: 10/aff63c93e811440617d0d2c628a8c1b5e2516e5a26e2d8fc99560fd822d06b9de56cd826fb64b094fc3dc8e926e60e2e38bf594134b17a5024c61cd5a406e4cd languageName: node linkType: hard @@ -24918,16 +25261,16 @@ __metadata: languageName: node linkType: hard -"rc-util@npm:^5.0.1, rc-util@npm:^5.0.6, rc-util@npm:^5.15.0, rc-util@npm:^5.16.1, rc-util@npm:^5.21.0, rc-util@npm:^5.24.4, rc-util@npm:^5.26.0, rc-util@npm:^5.27.0, rc-util@npm:^5.36.0, rc-util@npm:^5.37.0, rc-util@npm:^5.38.0, rc-util@npm:^5.38.1, rc-util@npm:^5.43.0": - version: 5.44.2 - resolution: "rc-util@npm:5.44.2" +"rc-util@npm:^5.0.1, rc-util@npm:^5.0.6, rc-util@npm:^5.15.0, rc-util@npm:^5.16.1, rc-util@npm:^5.21.0, rc-util@npm:^5.24.4, rc-util@npm:^5.26.0, rc-util@npm:^5.36.0, rc-util@npm:^5.37.0, rc-util@npm:^5.38.0, rc-util@npm:^5.38.1, rc-util@npm:^5.43.0, rc-util@npm:^5.44.1": + version: 5.44.3 + resolution: "rc-util@npm:5.44.3" dependencies: "@babel/runtime": "npm:^7.18.3" react-is: "npm:^18.2.0" peerDependencies: react: ">=16.9.0" react-dom: ">=16.9.0" - checksum: 10/5be4e632e453c4e4134a136045225af264c8e1f36354c12c40ff86d7ea7ad34ea15a57f74706d91f9c3fc1ec9e080f6c64b2914f742714e37130b06dd91a9702 + checksum: 10/d254f339b10d7bb850cf3d792371a3ae569a4d768ceccbd5dc52779ac6edcd2aa2eb94859b10fce782f2baee4fdf5582a3d8a2293208a77edd07309c577e55f8 languageName: node linkType: hard @@ -25753,7 +26096,7 @@ __metadata: languageName: node linkType: hard -"react-use@npm:17.6.0, react-use@npm:^17.4.0, react-use@npm:^17.4.2, react-use@npm:^17.5.0": +"react-use@npm:17.6.0, react-use@npm:^17.4.0, react-use@npm:^17.4.2, react-use@npm:^17.5.0, react-use@npm:^17.6.0": version: 17.6.0 resolution: "react-use@npm:17.6.0" dependencies: @@ -26990,7 +27333,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.6.3, semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.2, semver@npm:^7.6.3": +"semver@npm:7.6.3": version: 7.6.3 resolution: "semver@npm:7.6.3" bin: @@ -27008,6 +27351,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.2, semver@npm:^7.6.3": + version: 7.7.1 + resolution: "semver@npm:7.7.1" + bin: + semver: bin/semver.js + checksum: 10/4cfa1eb91ef3751e20fc52e47a935a0118d56d6f15a837ab814da0c150778ba2ca4f1a4d9068b33070ea4273629e615066664c2cfcd7c272caf7a8a0f6518b2c + languageName: node + linkType: hard + "send@npm:0.19.0": version: 0.19.0 resolution: "send@npm:0.19.0" @@ -28441,7 +28793,7 @@ __metadata: languageName: node linkType: hard -"stylelint@npm:16.12.0, stylelint@npm:^16.8.2": +"stylelint@npm:16.12.0": version: 16.12.0 resolution: "stylelint@npm:16.12.0" dependencies: @@ -28489,6 +28841,54 @@ __metadata: languageName: node linkType: hard +"stylelint@npm:^16.8.2": + version: 16.14.1 + resolution: "stylelint@npm:16.14.1" + dependencies: + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" + "@csstools/media-query-list-parser": "npm:^4.0.2" + "@csstools/selector-specificity": "npm:^5.0.0" + "@dual-bundle/import-meta-resolve": "npm:^4.1.0" + balanced-match: "npm:^2.0.0" + colord: "npm:^2.9.3" + cosmiconfig: "npm:^9.0.0" + css-functions-list: "npm:^3.2.3" + css-tree: "npm:^3.1.0" + debug: "npm:^4.3.7" + fast-glob: "npm:^3.3.3" + fastest-levenshtein: "npm:^1.0.16" + file-entry-cache: "npm:^10.0.5" + global-modules: "npm:^2.0.0" + globby: "npm:^11.1.0" + globjoin: "npm:^0.1.4" + html-tags: "npm:^3.3.1" + ignore: "npm:^7.0.3" + imurmurhash: "npm:^0.1.4" + is-plain-object: "npm:^5.0.0" + known-css-properties: "npm:^0.35.0" + mathml-tag-names: "npm:^2.1.3" + meow: "npm:^13.2.0" + micromatch: "npm:^4.0.8" + normalize-path: "npm:^3.0.0" + picocolors: "npm:^1.1.1" + postcss: "npm:^8.5.1" + postcss-resolve-nested-selector: "npm:^0.1.6" + postcss-safe-parser: "npm:^7.0.1" + postcss-selector-parser: "npm:^7.0.0" + postcss-value-parser: "npm:^4.2.0" + resolve-from: "npm:^5.0.0" + string-width: "npm:^4.2.3" + supports-hyperlinks: "npm:^3.1.0" + svg-tags: "npm:^1.0.0" + table: "npm:^6.9.0" + write-file-atomic: "npm:^5.0.1" + bin: + stylelint: bin/stylelint.mjs + checksum: 10/2c0c95e5ee77d946efdbe58573da75ff4b12bc89c220e78b69f0c2f94251f5e5a1096f5ab583f28f56ae14f298b1335e212d52fe066719d63b8a41d6cc8083b6 + languageName: node + linkType: hard + "stylis@npm:4.2.0": version: 4.2.0 resolution: "stylis@npm:4.2.0" @@ -29180,6 +29580,15 @@ __metadata: languageName: node linkType: hard +"ts-api-utils@npm:^2.0.0": + version: 2.0.0 + resolution: "ts-api-utils@npm:2.0.0" + peerDependencies: + typescript: ">=4.8.4" + checksum: 10/485bdf8bbba98d58712243d958f4fd44742bbe49e559cd77882fb426d866eec6dd05c67ef91935dc4f8a3c776f235859735e1f05be399e4dc9e7ffd580120974 + languageName: node + linkType: hard + "ts-dedent@npm:^2.0.0": version: 2.2.0 resolution: "ts-dedent@npm:2.2.0" @@ -29965,6 +30374,15 @@ __metadata: languageName: node linkType: hard +"uuid@npm:^11.0.5": + version: 11.1.0 + resolution: "uuid@npm:11.1.0" + bin: + uuid: dist/esm/bin/uuid + checksum: 10/d2da43b49b154d154574891ced66d0c83fc70caaad87e043400cf644423b067542d6f3eb641b7c819224a7cd3b4c2f21906acbedd6ec9c6a05887aa9115a9cf5 + languageName: node + linkType: hard + "uuid@npm:^8.3.2": version: 8.3.2 resolution: "uuid@npm:8.3.2" @@ -31130,9 +31548,9 @@ __metadata: linkType: hard "zod@npm:^3.23.8": - version: 3.23.8 - resolution: "zod@npm:3.23.8" - checksum: 10/846fd73e1af0def79c19d510ea9e4a795544a67d5b34b7e1c4d0425bf6bfd1c719446d94cdfa1721c1987d891321d61f779e8236fde517dc0e524aa851a6eff1 + version: 3.24.1 + resolution: "zod@npm:3.24.1" + checksum: 10/54e25956495dec22acb9399c168c6ba657ff279801a7fcd0530c414d867f1dcca279335e160af9b138dd70c332e17d548be4bc4d2f7eaf627dead50d914fec27 languageName: node linkType: hard