[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 8988274912)
This commit is contained in:
Ben Sully
2025-03-26 11:37:19 +00:00
committed by GitHub
parent 797c085005
commit 7b6424516e
9 changed files with 542 additions and 120 deletions
+1
View File
@@ -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:*",
@@ -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.'
);
});
@@ -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<HTMLButtonElement>) => {
@@ -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}
@@ -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,
});
@@ -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<SetStateAction<Message[]>>;
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<Message[]>([]);
@@ -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);
}
@@ -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();
@@ -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<boolean> {
// 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;
+486 -68
View File
@@ -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