From 0262a23d7f4e7a2026ad9a32489ddfaf5b24180b Mon Sep 17 00:00:00 2001 From: Kevin Adam <16607163+kevelopment@users.noreply.github.com> Date: Thu, 21 Aug 2025 12:07:47 +0200 Subject: [PATCH] feat(@grafana/assistant): bump assistant sdk (#109911) Co-authored-by: Sven Grossmann --- package.json | 2 +- .../src/AnalyzeFlameGraphButton.tsx | 1 + .../logs/components/panel/LogListContext.tsx | 29 ++++++------------- .../utils.test.ts | 18 ++++-------- .../grafana-pyroscope-datasource/utils.ts | 8 ++--- yarn.lock | 10 +++---- 6 files changed, 25 insertions(+), 43 deletions(-) diff --git a/package.json b/package.json index fe416513c6c..b410a50e5a3 100644 --- a/package.json +++ b/package.json @@ -273,7 +273,7 @@ "@formatjs/intl-durationformat": "^0.7.0", "@glideapps/glide-data-grid": "^6.0.0", "@grafana/alerting": "workspace:*", - "@grafana/assistant": "0.0.14", + "@grafana/assistant": "0.0.16", "@grafana/aws-sdk": "0.7.1", "@grafana/azure-sdk": "0.0.7", "@grafana/data": "workspace:*", diff --git a/packages/grafana-flamegraph/src/AnalyzeFlameGraphButton.tsx b/packages/grafana-flamegraph/src/AnalyzeFlameGraphButton.tsx index 005e1d9b21a..696a1798ad4 100644 --- a/packages/grafana-flamegraph/src/AnalyzeFlameGraphButton.tsx +++ b/packages/grafana-flamegraph/src/AnalyzeFlameGraphButton.tsx @@ -19,6 +19,7 @@ export function AnalyzeFlameGraphButton(props: Props) { className={className} onClick={() => openAssistant({ + origin: 'analyze-flame-graph', prompt: 'Analyze Flame Graph', context: assistantContext, }) diff --git a/public/app/features/logs/components/panel/LogListContext.tsx b/public/app/features/logs/components/panel/LogListContext.tsx index 711cda9dbe2..5ba76f50518 100644 --- a/public/app/features/logs/components/panel/LogListContext.tsx +++ b/public/app/features/logs/components/panel/LogListContext.tsx @@ -11,12 +11,7 @@ import { useState, } from 'react'; -import { - createContext as createAssistantContext, - ItemDataType, - OpenAssistantProps, - useAssistant, -} from '@grafana/assistant'; +import { createAssistantContextItem, OpenAssistantProps, useAssistant } from '@grafana/assistant'; import { CoreApp, DataFrame, @@ -728,25 +723,19 @@ async function handleOpenAssistant(openAssistant: (props: OpenAssistantProps) => const datasource = await getDataSourceSrv().get(log.datasourceUid); const context = []; if (datasource) { - context.push( - createAssistantContext(ItemDataType.Datasource, { - datasourceUid: datasource.uid, - datasourceName: datasource.name, - datasourceType: datasource.type, - img: datasource.meta?.info?.logos?.small, - }) - ); + context.push(createAssistantContextItem('datasource', { datasourceUid: datasource.uid })); } openAssistant({ prompt: `${t('logs.log-line-menu.log-line-explainer', 'Explain this log line in a concise way')}: - - \`\`\` -${log.entry.replaceAll('`', '\\`')} - \`\`\` - `, + + \`\`\` + ${log.entry.replaceAll('`', '\\`')} + \`\`\` + `, + origin: 'explain-log-line', context: [ ...context, - createAssistantContext(ItemDataType.Structured, { + createAssistantContextItem('structured', { title: t('logs.log-line-menu.log-line', 'Log line'), data: { labels: log.labels, diff --git a/public/app/plugins/datasource/grafana-pyroscope-datasource/utils.test.ts b/public/app/plugins/datasource/grafana-pyroscope-datasource/utils.test.ts index e8c17b0fac1..af17dae040f 100644 --- a/public/app/plugins/datasource/grafana-pyroscope-datasource/utils.test.ts +++ b/public/app/plugins/datasource/grafana-pyroscope-datasource/utils.test.ts @@ -1,4 +1,4 @@ -import { createContext, ItemDataType } from '@grafana/assistant'; +import { createAssistantContextItem } from '@grafana/assistant'; import { DataFrame, DataQueryResponse, @@ -14,14 +14,10 @@ import { enrichDataFrameWithAssistantContentMapper } from './utils'; // Mock the createContext function jest.mock('@grafana/assistant', () => ({ - createContext: jest.fn(), - ItemDataType: { - Datasource: 'datasource', - Structured: 'structured', - }, + createAssistantContextItem: jest.fn(), })); -const mockCreateContext = createContext as jest.MockedFunction; +const mockCreateContext = createAssistantContextItem as jest.MockedFunction; describe('enrichDataFrameWithAssistantContentMapper', () => { beforeEach(() => { @@ -113,14 +109,12 @@ describe('enrichDataFrameWithAssistantContentMapper', () => { expect(mockCreateContext).toHaveBeenCalledTimes(2); // Verify datasource context - expect(mockCreateContext).toHaveBeenCalledWith(ItemDataType.Datasource, { - datasourceName: 'PyroscopeDatasource', + expect(mockCreateContext).toHaveBeenCalledWith('datasource', { datasourceUid: 'test-uid', - datasourceType: 'grafana-pyroscope-datasource', }); // Verify structured context - expect(mockCreateContext).toHaveBeenCalledWith(ItemDataType.Structured, { + expect(mockCreateContext).toHaveBeenCalledWith('structured', { title: 'Analyze Flame Graph', data: { start: request.range.from.valueOf(), @@ -327,7 +321,7 @@ describe('enrichDataFrameWithAssistantContentMapper', () => { const mapper = enrichDataFrameWithAssistantContentMapper(request, 'TestDatasource'); mapper(response); - expect(mockCreateContext).toHaveBeenCalledWith(ItemDataType.Structured, { + expect(mockCreateContext).toHaveBeenCalledWith('structured', { title: 'Analyze Flame Graph', data: { start: fromTime.valueOf(), diff --git a/public/app/plugins/datasource/grafana-pyroscope-datasource/utils.ts b/public/app/plugins/datasource/grafana-pyroscope-datasource/utils.ts index 3440d29d584..6d95e974456 100644 --- a/public/app/plugins/datasource/grafana-pyroscope-datasource/utils.ts +++ b/public/app/plugins/datasource/grafana-pyroscope-datasource/utils.ts @@ -1,7 +1,7 @@ import { invert } from 'lodash'; import Prism, { Grammar, Token } from 'prismjs'; -import { createContext, ItemDataType } from '@grafana/assistant'; +import { createAssistantContextItem } from '@grafana/assistant'; import { AbstractLabelMatcher, AbstractLabelOperator, @@ -158,12 +158,10 @@ export function enrichDataFrameWithAssistantContentMapper( } const context = [ - createContext(ItemDataType.Datasource, { - datasourceName: datasourceName, + createAssistantContextItem('datasource', { datasourceUid: query.datasource.uid, - datasourceType: query.datasource.type, }), - createContext(ItemDataType.Structured, { + createAssistantContextItem('structured', { title: 'Analyze Flame Graph', data: { start: request.range.from.valueOf(), diff --git a/yarn.lock b/yarn.lock index e7ae89eb4b6..682b1078897 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3056,9 +3056,9 @@ __metadata: languageName: unknown linkType: soft -"@grafana/assistant@npm:0.0.14": - version: 0.0.14 - resolution: "@grafana/assistant@npm:0.0.14" +"@grafana/assistant@npm:0.0.16": + version: 0.0.16 + resolution: "@grafana/assistant@npm:0.0.16" peerDependencies: "@grafana/data": ">=12.1.0" "@grafana/runtime": ">=12.1.0" @@ -3066,7 +3066,7 @@ __metadata: "@grafana/ui": ">=12.1.0" react: ">=18.0.0" rxjs: ">=7.0.0" - checksum: 10/3e85effd69494b023d395940f5f926da1d2868850db613581d7b2f398e8f00fe07339fdb6fa12b3029603cd394d012104f187f2fd2fcb85196dac72cd6e072df + checksum: 10/8482e09d3e86a865a8cf90908ae1438317b994798b5bf5d1a2369154b786e1ba20f30e208d48bed249c8427f11f87307b338c5307a8cb5143cffb2ef02050847 languageName: node linkType: hard @@ -18299,7 +18299,7 @@ __metadata: "@formatjs/intl-durationformat": "npm:^0.7.0" "@glideapps/glide-data-grid": "npm:^6.0.0" "@grafana/alerting": "workspace:*" - "@grafana/assistant": "npm:0.0.14" + "@grafana/assistant": "npm:0.0.16" "@grafana/aws-sdk": "npm:0.7.1" "@grafana/azure-sdk": "npm:0.0.7" "@grafana/data": "workspace:*"