@grafana/assistant 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +208 -0
- package/dist/context/chat.d.ts.map +1 -1
- package/dist/context/index.d.ts +1 -0
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/page.d.ts +2 -2
- package/dist/context/page.d.ts.map +1 -1
- package/dist/context/playbook.d.ts +13 -0
- package/dist/context/playbook.d.ts.map +1 -0
- package/dist/context/questions.d.ts +1 -0
- package/dist/context/questions.d.ts.map +1 -1
- package/dist/context/types.d.ts +5 -1
- package/dist/context/types.d.ts.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/inline/inlineAssistant.d.ts +2 -0
- package/dist/inline/inlineAssistant.d.ts.map +1 -1
- package/dist/inline/types.d.ts +3 -0
- package/dist/inline/types.d.ts.map +1 -1
- package/dist/inline/useInlineAssistant.d.ts +21 -0
- package/dist/inline/useInlineAssistant.d.ts.map +1 -1
- package/dist/sidebar.d.ts +2 -2
- package/dist/sidebar.d.ts.map +1 -1
- package/dist/terms/index.d.ts +57 -0
- package/dist/terms/index.d.ts.map +1 -0
- package/dist/terms/settings.gen.d.ts +312 -0
- package/dist/terms/settings.gen.d.ts.map +1 -0
- package/dist/terms/versionCompare.d.ts +16 -0
- package/dist/terms/versionCompare.d.ts.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/toolFactory.d.ts +22 -0
- package/dist/tools/toolFactory.d.ts.map +1 -0
- package/dist/tools/types.d.ts +174 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/package.json +5 -3
package/README.md
CHANGED
|
@@ -516,6 +516,16 @@ A React hook that provides assistant availability status and control functions.
|
|
|
516
516
|
- `closeAssistant?: () => void` - Function to close the assistant (undefined if not available)
|
|
517
517
|
- `toggleAssistant?: (props: OpenAssistantProps) => void` - Function to toggle the assistant (undefined if not available)
|
|
518
518
|
|
|
519
|
+
#### `useTerms(): { accepted: boolean; loading: boolean; error: string | null; acceptTerms: () => Promise<void> }`
|
|
520
|
+
|
|
521
|
+
A React hook to check terms and conditions acceptance status. Automatically fetches terms data on mount and provides loading/error states.
|
|
522
|
+
|
|
523
|
+
**Returns:** An object with the following properties:
|
|
524
|
+
- `accepted: boolean` - Whether terms are accepted and up-to-date
|
|
525
|
+
- `loading: boolean` - Whether the check is in progress
|
|
526
|
+
- `error: string | null` - Error message if the check failed, null otherwise
|
|
527
|
+
- `acceptTerms: () => Promise<void>` - Function to accept the current terms and conditions
|
|
528
|
+
|
|
519
529
|
#### `usePageContext(): ChatContextItem[]`
|
|
520
530
|
|
|
521
531
|
A React hook that returns all active context items for the current page based on registered URL patterns.
|
|
@@ -659,6 +669,131 @@ function DashboardEditor() {
|
|
|
659
669
|
}
|
|
660
670
|
```
|
|
661
671
|
|
|
672
|
+
### Using the Inline Assistant
|
|
673
|
+
|
|
674
|
+
The `useInlineAssistant` hook generates content inline without opening the sidebar — perfect for filling form fields with AI-generated text.
|
|
675
|
+
|
|
676
|
+
```typescript
|
|
677
|
+
import { useInlineAssistant } from '@grafana/assistant';
|
|
678
|
+
import { useState } from 'react';
|
|
679
|
+
|
|
680
|
+
export function PanelEditor() {
|
|
681
|
+
const [title, setTitle] = useState('');
|
|
682
|
+
const titleGen = useInlineAssistant();
|
|
683
|
+
|
|
684
|
+
return (
|
|
685
|
+
<div>
|
|
686
|
+
<Input
|
|
687
|
+
value={titleGen.isGenerating ? titleGen.content : title}
|
|
688
|
+
onChange={(e) => setTitle(e.target.value)}
|
|
689
|
+
/>
|
|
690
|
+
<Button
|
|
691
|
+
onClick={() => {
|
|
692
|
+
titleGen.generate({
|
|
693
|
+
prompt: 'Generate a panel title for CPU metrics',
|
|
694
|
+
origin: 'my-plugin/panel-editor',
|
|
695
|
+
onComplete: (text) => setTitle(text),
|
|
696
|
+
onError: (err) => console.error(err)
|
|
697
|
+
});
|
|
698
|
+
}}
|
|
699
|
+
disabled={titleGen.isGenerating}
|
|
700
|
+
>
|
|
701
|
+
{titleGen.isGenerating ? 'Generating...' : 'Generate'}
|
|
702
|
+
</Button>
|
|
703
|
+
</div>
|
|
704
|
+
);
|
|
705
|
+
}
|
|
706
|
+
```
|
|
707
|
+
|
|
708
|
+
**Key Features:**
|
|
709
|
+
- `isGenerating` - Boolean indicating generation is in progress
|
|
710
|
+
- `content` - Current streaming content (updates in real-time)
|
|
711
|
+
- `generate(options)` - Start a new generation
|
|
712
|
+
- Each instance is independent—use multiple for concurrent fields
|
|
713
|
+
|
|
714
|
+
#### Using Tools with Inline Assistant
|
|
715
|
+
|
|
716
|
+
Tools extend the assistant's capabilities with custom actions. Tools can return both text and structured data (artifacts). To access artifact data, include an `onToolComplete` callback in your tool implementation.
|
|
717
|
+
|
|
718
|
+
```typescript
|
|
719
|
+
import { createTool } from '@grafana/assistant';
|
|
720
|
+
import { z } from 'zod';
|
|
721
|
+
import type { ToolInvokeOptions, ToolOutput } from '@grafana/assistant';
|
|
722
|
+
|
|
723
|
+
// Define artifact type
|
|
724
|
+
interface WeatherData {
|
|
725
|
+
city: string;
|
|
726
|
+
temperature: { celsius: number; fahrenheit: number };
|
|
727
|
+
conditions: string;
|
|
728
|
+
humidity: number;
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
// Create tool schema
|
|
732
|
+
const weatherSchema = z.object({
|
|
733
|
+
city: z.string().describe('The city name to get weather for'),
|
|
734
|
+
});
|
|
735
|
+
|
|
736
|
+
// Create tool that accepts onToolComplete callback
|
|
737
|
+
export const createWeatherTool = (onToolComplete: (data: WeatherData) => void) => {
|
|
738
|
+
return createTool(
|
|
739
|
+
async (input: z.infer<typeof weatherSchema>): Promise<ToolOutput> => {
|
|
740
|
+
const { city } = input;
|
|
741
|
+
|
|
742
|
+
// Fetch weather data (simplified example)
|
|
743
|
+
const weatherData: WeatherData = {
|
|
744
|
+
city,
|
|
745
|
+
temperature: { celsius: 22, fahrenheit: 72 },
|
|
746
|
+
conditions: 'Sunny',
|
|
747
|
+
humidity: 65,
|
|
748
|
+
};
|
|
749
|
+
|
|
750
|
+
// Call the callback to pass artifact data
|
|
751
|
+
onToolComplete(weatherData);
|
|
752
|
+
|
|
753
|
+
// Return tuple: [text response, artifact]
|
|
754
|
+
return [
|
|
755
|
+
`Current weather in ${city}: ${weatherData.temperature.celsius}°C, ${weatherData.conditions}`,
|
|
756
|
+
weatherData,
|
|
757
|
+
];
|
|
758
|
+
},
|
|
759
|
+
{
|
|
760
|
+
name: 'get_weather',
|
|
761
|
+
description: 'Fetches weather information and returns structured data.',
|
|
762
|
+
inputSchema: z.toJSONSchema(weatherSchema),
|
|
763
|
+
validate: (input) => weatherSchema.parse(input),
|
|
764
|
+
responseFormat: 'content_and_artifact',
|
|
765
|
+
}
|
|
766
|
+
);
|
|
767
|
+
};
|
|
768
|
+
|
|
769
|
+
// Use the tool with inline assistant
|
|
770
|
+
export function WeatherComponent() {
|
|
771
|
+
const [result, setResult] = useState('');
|
|
772
|
+
const [weatherData, setWeatherData] = useState<WeatherData | null>(null);
|
|
773
|
+
const gen = useInlineAssistant();
|
|
774
|
+
|
|
775
|
+
const handleGetWeather = () => {
|
|
776
|
+
gen.generate({
|
|
777
|
+
prompt: 'What is the weather in San Francisco?',
|
|
778
|
+
origin: 'my-plugin/weather',
|
|
779
|
+
tools: [createWeatherTool((data) => setWeatherData(data))], // Pass callback
|
|
780
|
+
onComplete: (text) => setResult(text),
|
|
781
|
+
onError: (err) => console.error(err),
|
|
782
|
+
});
|
|
783
|
+
};
|
|
784
|
+
|
|
785
|
+
return (
|
|
786
|
+
<div>
|
|
787
|
+
<Button onClick={handleGetWeather} disabled={gen.isGenerating}>
|
|
788
|
+
Get Weather
|
|
789
|
+
</Button>
|
|
790
|
+
{result && <div>{result}</div>}
|
|
791
|
+
{weatherData && <pre>{JSON.stringify(weatherData, null, 2)}</pre>}
|
|
792
|
+
</div>
|
|
793
|
+
);
|
|
794
|
+
}
|
|
795
|
+
```
|
|
796
|
+
|
|
662
797
|
### Availability Functions
|
|
663
798
|
|
|
664
799
|
#### `isAssistantAvailable(): Observable<boolean>`
|
|
@@ -667,6 +802,79 @@ Checks if the assistant plugin is available.
|
|
|
667
802
|
|
|
668
803
|
**Returns:** An RxJS Observable that emits `true` if the assistant is available, `false` otherwise.
|
|
669
804
|
|
|
805
|
+
### Terms and Conditions Functions
|
|
806
|
+
|
|
807
|
+
#### `checkTerms(): Promise<boolean>`
|
|
808
|
+
|
|
809
|
+
Checks whether terms and conditions are accepted and up-to-date. This function verifies that:
|
|
810
|
+
1. Terms have been accepted
|
|
811
|
+
2. The accepted version matches or exceeds the current version
|
|
812
|
+
|
|
813
|
+
**Returns:** A promise that resolves to `true` if terms are accepted and up-to-date, `false` otherwise.
|
|
814
|
+
|
|
815
|
+
**Throws:** Error if the API call fails.
|
|
816
|
+
|
|
817
|
+
**Example:**
|
|
818
|
+
```typescript
|
|
819
|
+
import { checkTerms } from '@grafana/assistant';
|
|
820
|
+
|
|
821
|
+
try {
|
|
822
|
+
const accepted = await checkTerms();
|
|
823
|
+
if (!accepted) {
|
|
824
|
+
// Show terms acceptance UI
|
|
825
|
+
}
|
|
826
|
+
} catch (error) {
|
|
827
|
+
// Handle error
|
|
828
|
+
console.error('Failed to check terms:', error);
|
|
829
|
+
}
|
|
830
|
+
```
|
|
831
|
+
|
|
832
|
+
#### `acceptTerms(): Promise<void>`
|
|
833
|
+
|
|
834
|
+
Accepts terms and conditions for the current tenant. This function sends a PUT request to mark the current terms version as accepted.
|
|
835
|
+
|
|
836
|
+
**Returns:** A promise that resolves when terms are successfully accepted.
|
|
837
|
+
|
|
838
|
+
**Throws:** Error if the API call fails.
|
|
839
|
+
|
|
840
|
+
**Example:**
|
|
841
|
+
|
|
842
|
+
```typescript
|
|
843
|
+
import { acceptTerms } from '@grafana/assistant';
|
|
844
|
+
|
|
845
|
+
try {
|
|
846
|
+
await acceptTerms();
|
|
847
|
+
console.log('Terms accepted successfully');
|
|
848
|
+
} catch (error) {
|
|
849
|
+
// Handle error
|
|
850
|
+
console.error('Failed to accept terms:', error);
|
|
851
|
+
}
|
|
852
|
+
```
|
|
853
|
+
|
|
854
|
+
**Example with `useTerms` hook:**
|
|
855
|
+
|
|
856
|
+
```typescript
|
|
857
|
+
import { useTerms } from '@grafana/assistant';
|
|
858
|
+
|
|
859
|
+
function TermsComponent() {
|
|
860
|
+
const { accepted, loading, error, acceptTerms } = useTerms();
|
|
861
|
+
|
|
862
|
+
if (loading) return <div>Loading...</div>;
|
|
863
|
+
if (error) return <div>Error: {error}</div>;
|
|
864
|
+
|
|
865
|
+
if (!accepted) {
|
|
866
|
+
return (
|
|
867
|
+
<div>
|
|
868
|
+
<p>Please accept the terms and conditions</p>
|
|
869
|
+
<button onClick={() => acceptTerms()}>Accept Terms</button>
|
|
870
|
+
</div>
|
|
871
|
+
);
|
|
872
|
+
}
|
|
873
|
+
|
|
874
|
+
return <div>Terms accepted</div>;
|
|
875
|
+
}
|
|
876
|
+
```
|
|
877
|
+
|
|
670
878
|
### Sidebar Functions
|
|
671
879
|
|
|
672
880
|
#### `openAssistant(props: OpenAssistantProps): void`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/context/chat.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,eAAe,EAAgB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/context/chat.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,eAAe,EAAgB,MAAM,SAAS,CAAC;AA4BxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,MAAM,mBAAmB,EAC5E,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GACvC,eAAe,CAgBjB"}
|
package/dist/context/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
|
package/dist/context/page.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export interface PageContextRegistration {
|
|
|
17
17
|
* when the pattern matches. Each call creates a new independent registration.
|
|
18
18
|
*
|
|
19
19
|
* @param urlPattern - URL pattern (string or RegExp) to match against page URLs
|
|
20
|
-
* @param initialContext - Initial array of
|
|
20
|
+
* @param initialContext - *Initial* array of ContextItems to provide when the pattern matches. IMPORTANT: will be overwritten when setContext is used to update the context.
|
|
21
21
|
* @returns A setter function to update the context, with an unregister method attached
|
|
22
22
|
*/
|
|
23
23
|
export declare function providePageContext(urlPattern: string | RegExp, initialContext: ChatContextItem[]): ((context: ChatContextItem[]) => void) & {
|
|
@@ -28,7 +28,7 @@ export declare function providePageContext(urlPattern: string | RegExp, initialC
|
|
|
28
28
|
* This is the recommended way to use page context in React components.
|
|
29
29
|
*
|
|
30
30
|
* @param urlPattern - URL pattern (string or RegExp) to match against page URLs
|
|
31
|
-
* @param initialContext - Initial array of
|
|
31
|
+
* @param initialContext - Initial array of ContextItems to provide when the pattern matches. IMPORTANT: will be overwritten when setContext is used to update the context.
|
|
32
32
|
* @returns A setter function to update the context
|
|
33
33
|
*/
|
|
34
34
|
export declare function useProvidePageContext(urlPattern: string | RegExp, initialContext?: ChatContextItem[]): (context: ChatContextItem[]) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/context/page.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI1C,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB;CACF;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAuID;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,GAAG,MAAM,EAC3B,cAAc,EAAE,eAAe,EAAE,GAChC,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC,GAAG;IAAE,UAAU,EAAE,MAAM,IAAI,CAAA;CAAE,CAyDrE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,GAAG,MAAM,EAC3B,cAAc,GAAE,eAAe,EAAO,GACrC,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/context/page.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI1C,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB;CACF;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAuID;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,GAAG,MAAM,EAC3B,cAAc,EAAE,eAAe,EAAE,GAChC,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC,GAAG;IAAE,UAAU,EAAE,MAAM,IAAI,CAAA;CAAE,CAyDrE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,GAAG,MAAM,EAC3B,cAAc,GAAE,eAAe,EAAO,GACrC,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,IAAI,CAmDtC;AA0BD,wBAAgB,cAAc,CAC5B,OAAO,GAAE;IAAE,cAAc,EAAE,OAAO,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAsD,GACjH,eAAe,EAAE,CA4DnB;AAED,wBAAgB,sBAAsB,CAAC,MAAM,SAAiB,GAAG,MAAM,CAEtE;AAiDD;;;;;GAKG;AACH,wBAAgB,oCAAoC,IAAI,IAAI,CAE3D"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseParams, NodeData } from './base';
|
|
2
|
+
import { type ContextItemData } from './types';
|
|
3
|
+
export interface CreatePlaybookContextParams extends BaseParams {
|
|
4
|
+
playbookId: string;
|
|
5
|
+
playbookName: string;
|
|
6
|
+
}
|
|
7
|
+
export declare class PlaybookNodeData extends NodeData {
|
|
8
|
+
playbookId: string;
|
|
9
|
+
playbookName: string;
|
|
10
|
+
constructor(params: CreatePlaybookContextParams);
|
|
11
|
+
formatForLLM(codeElementIds?: string[]): ContextItemData;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=playbook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playbook.d.ts","sourceRoot":"","sources":["../../src/context/playbook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,SAAS,CAAC;AAEtE,MAAM,WAAW,2BAA4B,SAAQ,UAAU;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,gBAAiB,SAAQ,QAAQ;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;gBAEhB,MAAM,EAAE,2BAA2B;IAY/C,YAAY,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,eAAe;CAYzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../src/context/questions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,GAAG,MAAM,EAC3B,gBAAgB,EAAE,QAAQ,EAAE,GAC3B,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC,GAAG;IAAE,UAAU,EAAE,MAAM,IAAI,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../src/context/questions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,GAAG,MAAM,EAC3B,gBAAgB,EAAE,QAAQ,EAAE,GAC3B,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC,GAAG;IAAE,UAAU,EAAE,MAAM,IAAI,CAAA;CAAE,CAoChE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,GAAG,MAAM,EAC3B,gBAAgB,GAAE,QAAQ,EAAO,GAChC,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,IAAI,CAoCjC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,QAAQ,EAAE,CAKzC"}
|
package/dist/context/types.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export interface BaseItemData {
|
|
|
6
6
|
}
|
|
7
7
|
export interface UnknownItemData extends BaseItemData {
|
|
8
8
|
}
|
|
9
|
-
export type ItemDataType = 'unknown' | 'datasource' | 'label_name' | 'label_value' | 'dashboard' | 'dashboard_folder' | 'structured' | 'component' | 'entity';
|
|
9
|
+
export type ItemDataType = 'unknown' | 'datasource' | 'label_name' | 'label_value' | 'dashboard' | 'dashboard_folder' | 'structured' | 'component' | 'entity' | 'playbook';
|
|
10
10
|
export interface ContextItemData {
|
|
11
11
|
type: ItemDataType;
|
|
12
12
|
codeElementIds?: string[];
|
|
@@ -62,6 +62,10 @@ export interface EntityItemData extends BaseItemData {
|
|
|
62
62
|
};
|
|
63
63
|
properties?: Record<string, any>;
|
|
64
64
|
}
|
|
65
|
+
export interface PlaybookItemData extends BaseItemData {
|
|
66
|
+
playbookId: string;
|
|
67
|
+
playbookName: string;
|
|
68
|
+
}
|
|
65
69
|
export interface ChatContextItem {
|
|
66
70
|
node: TreeNode;
|
|
67
71
|
occurrences: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAgB,SAAQ,YAAY;CAAG;AACxD,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,WAAW,GACX,kBAAkB,GAClB,YAAY,GACZ,WAAW,GACX,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAgB,SAAQ,YAAY;CAAG;AACxD,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,WAAW,GACX,kBAAkB,GAClB,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,UAAU,CAAC;AAEf,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B;AAGD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEtB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,SAAS,EAAE,OAAO,CAAC;IAEnB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE;QACN,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
export { createAssistantContextItem, ChatContextItem, ComponentNodeData, DashboardNodeData, DatasourceNodeData, EntityNodeData, FolderNodeData, ItemDataType, LabelNameNodeData, LabelValueNodeData, StructuredNodeData, TreeNode, providePageContext, useProvidePageContext, PageContextRegistration, usePageContext, provideQuestions, useProvideQuestions, useQuestions, Question, QuestionRegistration, usePageComponents, provideComponents, ComponentImplementation, NamedComponents, } from './context/index';
|
|
1
|
+
export { createAssistantContextItem, ChatContextItem, ComponentNodeData, DashboardNodeData, DatasourceNodeData, EntityNodeData, FolderNodeData, ItemDataType, LabelNameNodeData, LabelValueNodeData, PlaybookNodeData, StructuredNodeData, TreeNode, providePageContext, useProvidePageContext, PageContextRegistration, usePageContext, provideQuestions, useProvideQuestions, useQuestions, Question, QuestionRegistration, usePageComponents, provideComponents, ComponentImplementation, NamedComponents, } from './context/index';
|
|
2
2
|
export * from './functions';
|
|
3
3
|
export * from './hook';
|
|
4
4
|
export * from './plugin';
|
|
5
5
|
export * from './sidebar';
|
|
6
6
|
export * from './components';
|
|
7
7
|
export * from './inline';
|
|
8
|
+
export * from './terms';
|
|
9
|
+
export * from './tools';
|
|
8
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,oBAAoB,EAEpB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,oBAAoB,EAEpB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{"use strict";var e={n:t=>{var n=t&&t.__esModule?()=>t.default:()=>t;return e.d(n,{a:n}),n},d:(t,n)=>{for(var a in n)e.o(n,a)&&!e.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:n[a]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function n(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n);return(t>>>0).toString(16)}e.r(t),e.d(t,{AITextArea:()=>Dt,AITextInput:()=>Ot,ASSISTANT_PLUGIN_ID:()=>B,ASSISTANT_PLUGIN_TITLE:()=>j,CALLBACK_EXTENSION_POINT:()=>D,ComponentNodeData:()=>x,DashboardNodeData:()=>E,DatasourceNodeData:()=>C,EntityNodeData:()=>I,FolderNodeData:()=>$,LabelNameNodeData:()=>_,LabelValueNodeData:()=>S,OpenAssistantButton:()=>yt,OpenAssistantSplitButton:()=>kt,StructuredNodeData:()=>r,closeAssistant:()=>H,createAssistantContextItem:()=>L,ensureInlineAssistantInitialized:()=>Nt,getExposeAssistantFunctionsConfig:()=>M,getInlineAssistantFactory:()=>Tt,isAssistantAvailable:()=>F,newFunctionNamespace:()=>R,openAssistant:()=>Q,provideComponents:()=>A,providePageContext:()=>g,provideQuestions:()=>P,setInlineAssistantFactory:()=>_t,setInlineAssistantInitializer:()=>St,toggleAssistant:()=>J,useAssistant:()=>X,useInlineAssistant:()=>Lt,usePageComponents:()=>k,usePageContext:()=>b,useProvidePageContext:()=>v,useProvideQuestions:()=>U,useQuestions:()=>O});class a{constructor(e){this.params=e,this.text="",this.id=n(e.id),this.type=e.type}formatForLLM(e){var t,n;return{type:this.type,codeElementIds:e,data:{name:null!==(t=this.params.text)&&void 0!==t?t:"",text:null!==(n=this.params.text)&&void 0!==n?n:""}}}equals(e){return e instanceof a&&this.id===e.id&&this.type===e.type}}class r extends a{constructor(e){super({...e,id:n(JSON.stringify(e.data)),type:"structured"}),this.data=e.data}formatForLLM(e){return{type:this.type,codeElementIds:e,data:this.data}}}const o=require("@grafana/runtime"),i=require("react");var s=e.n(i);const c="__grafanaAssistantPageContextRegistry__",l="grafana-assistant:page-context-registry-changed",u="grafana-assistant:page-context-update",d="grafana-assistant:page-context-remove",p="grafana-assistant:page-context-sync";function f(){return window[c]}function m(e,t=!1){window[c]=e,window.dispatchEvent(new CustomEvent(l)),t||window.dispatchEvent(new CustomEvent(p,{detail:{registry:e}}))}window[c]||(window[c]=[]);let h=!1;function g(e,t){const n={id:y(),urlPattern:e,context:[...t]};m([...f(),n]),window.dispatchEvent(new CustomEvent(u,{detail:n}));const a=e=>{const t=f(),a=t.findIndex((e=>e.id===n.id));if(-1!==a){const n=[...t];n[a]={...n[a],context:[...e]},m(n),window.dispatchEvent(new CustomEvent(u,{detail:n[a]}))}};return a.unregister=()=>{const e=f(),t=e.findIndex((e=>e.id===n.id));-1!==t&&(m(e.filter(((e,n)=>n!==t))),window.dispatchEvent(new CustomEvent(d,{detail:{id:n.id}})))},a}function v(e,t=[]){const n=(0,i.useRef)(void 0),a=(0,i.useRef)(t);return a.current=t,(0,i.useEffect)((()=>(n.current=g(e,a.current),()=>{var e;null===(e=n.current)||void 0===e||e.unregister()})),[e]),(0,i.useEffect)((()=>{n.current&&n.current(t)}),[t]),(0,i.useCallback)((e=>{var t;null===(t=n.current)||void 0===t||t.call(n,e)}),[])}function b(e={allowQuestions:!1,allowComponents:!1}){const[t,n]=(0,i.useState)([]),a=(0,o.useLocationService)(),r=(0,i.useRef)("");(0,i.useEffect)((()=>{const e=()=>{const e=function(e){if(!e)return[];const t=[],n=f();for(const a of n)w(e,a.urlPattern)&&t.push(...a.context);return t}(a.getLocation().pathname);n(e)},t=()=>{e()},o=a.getLocationObservable().subscribe((t=>{const n=t.pathname;n!==r.current&&(r.current=n,e())}));return window.addEventListener(l,t),window.addEventListener(u,t),window.addEventListener(d,t),window.addEventListener(p,t),e(),()=>{o.unsubscribe(),window.removeEventListener(l,t),window.removeEventListener(u,t),window.removeEventListener(d,t),window.removeEventListener(p,t)}}),[a]);let s=t;return e.allowQuestions||(s=s.filter((e=>{var t;return"question"!==(null===(t=e.node.data)||void 0===t?void 0:t.type)}))),e.allowComponents||(s=s.filter((e=>{var t;return"component"!==(null===(t=e.node.data)||void 0===t?void 0:t.type)}))),s}function y(e="page-context"){return`${e}-${Date.now()}-${Math.random().toString(36).slice(2,11)}`}function w(e,t){if(t instanceof RegExp)return t.test(e);if("string"==typeof t){const n=t.replace(/\*\*/g,"\0DOUBLE_STAR\0").replace(/\*/g,"[^/]*").replace(/\u0000DOUBLE_STAR\u0000/g,".*").replace(/\?/g,".");return new RegExp(`^${n}$`).test(e)}return!1}h||(h=!0,window.addEventListener(u,(e=>{const t=e.detail;if(!t||!t.id)return;const n=f(),a=n.findIndex((e=>e.id===t.id));if(-1!==a){const e=[...n];e[a]=t,m(e,!0)}else m([...n,t],!0)})),window.addEventListener(d,(e=>{var t;const n=null===(t=e.detail)||void 0===t?void 0:t.id;if(!n)return;const a=f(),r=a.findIndex((e=>e.id===n));-1!==r&&m(a.filter(((e,t)=>t!==r)),!0)})),window.addEventListener(p,(e=>{var t;const n=null===(t=e.detail)||void 0===t?void 0:t.registry;if(!Array.isArray(n))return;const a=f(),r=new Set(a.map((e=>e.id))),o=n.filter((e=>!r.has(e.id)));o.length>0&&m([...a,...o],!0)})));class x extends a{constructor(e){const t=e.namespace||"components";super({...e,id:`${t}-${Object.keys(e.components).join("-")}`,type:"component"}),this.components=e.components,this.prompt=e.prompt,this.namespace=t}formatForLLM(e){return{type:this.type,codeElementIds:e,data:{name:`${this.namespace} components`,prompt:this.prompt,namespace:this.namespace}}}}function k(){const e=b({allowComponents:!0,allowQuestions:!1});return(0,i.useMemo)((()=>{const t={};return e.filter((e=>{var t;return null===(t=e.node.data)||void 0===t?void 0:t.components})).forEach((e=>{const n=e.node.data;if((null==n?void 0:n.components)&&Object.keys(n.components).length>0){const e=n.namespace||n.name||"components";Object.entries(n.components).forEach((([n,a])=>{t[`${e}_${n}`]=a}))}})),t}),[e])}function A(e,t,n,a=/.*/){if((r=a)instanceof RegExp?".*"===r.source&&""===r.flags:".*"===r||"/.*/"===r){const a=g(/.*/,[L("component",{components:n,prompt:e,namespace:t})]),r=(e,n)=>{a([L("component",{components:e,prompt:n,namespace:t})])};return r.unregister=a.unregister,r}var r;const o=g(/.*/,[L("component",{components:n,prompt:"",namespace:t})]),i=g(a,[L("component",{components:{},prompt:e,namespace:t})]),s=(e,n)=>{o([L("component",{components:e,prompt:"",namespace:t})]),i([L("component",{components:{},prompt:n,namespace:t})])};return s.unregister=()=>{o.unregister(),i.unregister()},s}class E extends a{constructor(e){super({...e,id:e.dashboardUid,type:"dashboard"}),this.dashboardUid=e.dashboardUid,this.dashboardTitle=e.dashboardTitle,this.folderUid=e.folderUid,this.folderTitle=e.folderTitle,this.text=e.dashboardTitle}formatForLLM(e){return{type:this.type,codeElementIds:e,data:{name:this.dashboardTitle,dashboardUid:this.dashboardUid,dashboardTitle:this.dashboardTitle,folderUid:this.folderUid,folderTitle:this.folderTitle,text:this.text}}}}class $ extends a{constructor(e){super({...e,id:e.folderUid,type:"dashboard_folder"}),this.text="",this.folderUid=e.folderUid,this.folderTitle=e.folderTitle,this.text=e.folderTitle}formatForLLM(e){return{type:this.type,codeElementIds:e,data:{name:this.folderTitle,folderUid:this.folderUid,folderTitle:this.folderTitle,text:this.text}}}}class C extends a{constructor(e){super({...e,id:e.datasourceUid,type:"datasource"}),this.datasourceUid=e.datasourceUid,this.datasourceType=e.datasourceType,this.datasourceName=e.datasourceName,this.img=e.img,this.text=e.datasourceName}formatForLLM(e){return{type:this.type,codeElementIds:e,data:{name:this.datasourceName,uid:this.datasourceUid,type:this.datasourceType,text:this.text,img:this.img}}}}class I extends a{constructor(e){var t,n,a;super({id:`${e.type}-${e.name}-${[null===(t=e.scope)||void 0===t?void 0:t.env,null===(n=e.scope)||void 0===n?void 0:n.site,null===(a=e.scope)||void 0===a?void 0:a.namespace].filter(Boolean).join("-")}`,type:"entity",title:e.title,hidden:e.hidden,img:e.img,icon:e.icon,text:e.name}),this.entityType=e.type,this.name=e.name,this.scope=e.scope,this.properties=e.properties,this.text=e.name}formatForLLM(e){return{type:"entity",codeElementIds:e,data:{name:this.name,text:this.text,type:this.entityType,scope:this.scope,properties:this.properties}}}}class _ extends a{constructor(e){super({...e,id:`${e.datasourceUid}-${e.labelName}`,type:"label_name"}),this.datasourceUid=e.datasourceUid,this.datasourceType=e.datasourceType,this.datasourceName=e.datasourceName,this.labelName=e.labelName,this.text=e.labelName,this.img=e.img}formatForLLM(e){return{type:this.type,codeElementIds:e,data:{name:this.labelName,datasourceUid:this.datasourceUid,datasourceType:this.datasourceType,datasourceName:this.datasourceName,labelName:this.labelName,img:this.img,text:this.text}}}}class S extends a{constructor(e){super({...e,id:`${e.datasourceUid}-${e.labelName}-${e.labelValue}`,type:"label_value"}),this.datasourceUid=e.datasourceUid,this.datasourceType=e.datasourceType,this.datasourceName=e.datasourceName,this.labelName=e.labelName,this.labelValue=e.labelValue,this.text=e.labelValue,this.img=e.img}formatForLLM(e){return{type:this.type,codeElementIds:e,data:{name:this.labelValue,datasourceUid:this.datasourceUid,datasourceType:this.datasourceType,datasourceName:this.datasourceName,labelName:this.labelName,labelValue:this.labelValue,text:this.text,img:this.img}}}}function N(e){var t,n,a,r,i;const s=(0,o.getDataSourceSrv)().getInstanceSettings(e);return{datasourceType:null!==(t=null==s?void 0:s.type)&&void 0!==t?t:"unknown",datasourceName:null!==(n=null==s?void 0:s.name)&&void 0!==n?n:e,img:null===(i=null===(r=null===(a=null==s?void 0:s.meta)||void 0===a?void 0:a.info)||void 0===r?void 0:r.logos)||void 0===i?void 0:i.small}}const T={datasource:"database",label_name:"database",label_value:"database",dashboard:"dashboard",dashboard_folder:"folder",unknown:"circle-mono",structured:"gf-grid",component:"gf-grid",entity:"asserts"};function L(e,t){var n,o,i;const s=function(e,t){switch(e){case"datasource":return new C({...t,...N(t.datasourceUid)});case"label_name":return new _({...t,...N(t.datasourceUid)});case"label_value":return new S({...t,...N(t.datasourceUid)});case"dashboard":return new E(t);case"dashboard_folder":return new $(t);case"structured":return new r(t);case"component":return new x({...t,hidden:!0});case"entity":return new I(t);case"unknown":return new a(t);default:return console.error(`Unknown context type: ${e}`),new a(t)}}(e,t),c=null!==(n=t.title)&&void 0!==n?n:function(e){var t;return e instanceof r?e.formatForLLM().data.name:null!==(t=e.text)&&void 0!==t?t:"Given Context"}(s),l=null!==(o=t.img)&&void 0!==o?o:function(e){if("img"in e)return e.img}(s);return{node:{id:s.id,name:c,img:l,icon:null!==(i=t.icon)&&void 0!==i?i:T[e],navigable:!1,selectable:!0,data:s},occurrences:[]}}function P(e,t){const n=y("question"),a=e=>e.map(((e,t)=>({node:{id:`question-${n}-${t}`,name:e.prompt,navigable:!1,selectable:!0,icon:"question-circle",data:{type:"question",prompt:e.prompt,context:e.context||[]}},occurrences:[]}))),r=g(e,a(t)),o=e=>{r(a(e))};return o.unregister=r.unregister,o}function U(e,t=[]){const n=(0,i.useMemo)((()=>y("question")),[]),a=e=>e.map(((e,t)=>({node:{id:`question-${n}-${t}`,name:e.prompt,navigable:!1,selectable:!0,icon:"question-circle",data:{type:"question",prompt:e.prompt,context:e.context||[]}},occurrences:[]}))),r=v(e,a(t));return e=>{r(a(e))}}function O(){const e=b({allowQuestions:!0,allowComponents:!1});return z(e)}const z=e=>e.filter((e=>{var t;return"question"===(null===(t=e.node.data)||void 0===t?void 0:t.type)})).map((e=>{var t,n;return{prompt:(null===(t=e.node.data)||void 0===t?void 0:t.prompt)||e.node.name,context:(null===(n=e.node.data)||void 0===n?void 0:n.context)||[]}})),D="grafana-assistant-app/callback/v0-alpha";function R(e,t){return{namespace:e,functions:t}}function M(e){return{title:"callback",targets:[D],fn:()=>e.map((e=>({namespace:e.namespace,functions:e.functions})))}}const G=require("rxjs"),B="grafana-assistant-app",j="Grafana Assistant";function F(){if(!o.getObservablePluginLinks)return(0,G.of)(!1);return(0,o.getObservablePluginLinks)({extensionPointId:"grafana/extension-sidebar/v0-alpha"}).pipe((0,G.map)((e=>e.some((e=>e.pluginId===B&&e.title===j)))))}const q=require("@grafana/data");class W extends q.BusEventWithPayload{}W.type="open-extension-sidebar";class V extends q.BusEventBase{}V.type="close-extension-sidebar";class K extends q.BusEventWithPayload{}function Q(e){var t,n;(0,o.reportInteraction)("grafana_assistant_app_opened_sidebar",{from:e.origin,prompt:null!==(t=e.prompt)&&void 0!==t?t:""}),function(e,t,n){const a=new W({pluginId:e,componentTitle:t,props:n});(0,o.getAppEvents)().publish(a)}(B,j,{initialPrompt:e.prompt,initialContext:e.context,initialAutoSend:null===(n=e.autoSend)||void 0===n||n,origin:e.origin,initialMode:e.mode})}function H(){!function(){const e=new V;(0,o.getAppEvents)().publish(e)}()}function J(e){var t,n;(0,o.reportInteraction)("grafana_assistant_app_toggled_sidebar",{from:e.origin,prompt:null!==(t=e.prompt)&&void 0!==t?t:""}),function(e,t,n){const a=new K({pluginId:e,componentTitle:t,props:n});(0,o.getAppEvents)().publish(a)}(B,j,{initialPrompt:e.prompt,initialContext:e.context,initialAutoSend:null===(n=e.autoSend)||void 0===n||n,origin:e.origin,initialMode:e.mode})}function X(){const[e,t]=(0,i.useState)(!1);return(0,i.useEffect)((()=>{const e=F().subscribe((e=>t(e)));return()=>{e.unsubscribe()}}),[]),{isAvailable:e,openAssistant:e?Q:void 0,closeAssistant:e?H:void 0,toggleAssistant:e?J:void 0}}K.type="toggle-extension-sidebar";const Z=require("@grafana/ui");var Y=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(t);try{n.insertRule(e,n.cssRules.length)}catch(e){}}else t.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach((function(e){var t;return null==(t=e.parentNode)?void 0:t.removeChild(e)})),this.tags=[],this.ctr=0},e}(),ee=Math.abs,te=String.fromCharCode,ne=Object.assign;function ae(e){return e.trim()}function re(e,t,n){return e.replace(t,n)}function oe(e,t){return e.indexOf(t)}function ie(e,t){return 0|e.charCodeAt(t)}function se(e,t,n){return e.slice(t,n)}function ce(e){return e.length}function le(e){return e.length}function ue(e,t){return t.push(e),e}var de=1,pe=1,fe=0,me=0,he=0,ge="";function ve(e,t,n,a,r,o,i){return{value:e,root:t,parent:n,type:a,props:r,children:o,line:de,column:pe,length:i,return:""}}function be(e,t){return ne(ve("",null,null,"",null,null,0),e,{length:-e.length},t)}function ye(){return he=me>0?ie(ge,--me):0,pe--,10===he&&(pe=1,de--),he}function we(){return he=me<fe?ie(ge,me++):0,pe++,10===he&&(pe=1,de++),he}function xe(){return ie(ge,me)}function ke(){return me}function Ae(e,t){return se(ge,e,t)}function Ee(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function $e(e){return de=pe=1,fe=ce(ge=e),me=0,[]}function Ce(e){return ge="",e}function Ie(e){return ae(Ae(me-1,Ne(91===e?e+2:40===e?e+1:e)))}function _e(e){for(;(he=xe())&&he<33;)we();return Ee(e)>2||Ee(he)>3?"":" "}function Se(e,t){for(;--t&&we()&&!(he<48||he>102||he>57&&he<65||he>70&&he<97););return Ae(e,ke()+(t<6&&32==xe()&&32==we()))}function Ne(e){for(;we();)switch(he){case e:return me;case 34:case 39:34!==e&&39!==e&&Ne(he);break;case 40:41===e&&Ne(e);break;case 92:we()}return me}function Te(e,t){for(;we()&&e+he!==57&&(e+he!==84||47!==xe()););return"/*"+Ae(t,me-1)+"*"+te(47===e?e:we())}function Le(e){for(;!Ee(xe());)we();return Ae(e,me)}var Pe="-ms-",Ue="-moz-",Oe="-webkit-",ze="comm",De="rule",Re="decl",Me="@keyframes";function Ge(e,t){for(var n="",a=le(e),r=0;r<a;r++)n+=t(e[r],r,e,t)||"";return n}function Be(e,t,n,a){switch(e.type){case"@layer":if(e.children.length)break;case"@import":case Re:return e.return=e.return||e.value;case ze:return"";case Me:return e.return=e.value+"{"+Ge(e.children,a)+"}";case De:e.value=e.props.join(",")}return ce(n=Ge(e.children,a))?e.return=e.value+"{"+n+"}":""}function je(e){return Ce(Fe("",null,null,null,[""],e=$e(e),0,[0],e))}function Fe(e,t,n,a,r,o,i,s,c){for(var l=0,u=0,d=i,p=0,f=0,m=0,h=1,g=1,v=1,b=0,y="",w=r,x=o,k=a,A=y;g;)switch(m=b,b=we()){case 40:if(108!=m&&58==ie(A,d-1)){-1!=oe(A+=re(Ie(b),"&","&\f"),"&\f")&&(v=-1);break}case 34:case 39:case 91:A+=Ie(b);break;case 9:case 10:case 13:case 32:A+=_e(m);break;case 92:A+=Se(ke()-1,7);continue;case 47:switch(xe()){case 42:case 47:ue(We(Te(we(),ke()),t,n),c);break;default:A+="/"}break;case 123*h:s[l++]=ce(A)*v;case 125*h:case 59:case 0:switch(b){case 0:case 125:g=0;case 59+u:-1==v&&(A=re(A,/\f/g,"")),f>0&&ce(A)-d&&ue(f>32?Ve(A+";",a,n,d-1):Ve(re(A," ","")+";",a,n,d-2),c);break;case 59:A+=";";default:if(ue(k=qe(A,t,n,l,u,r,s,y,w=[],x=[],d),o),123===b)if(0===u)Fe(A,t,k,k,w,o,d,s,x);else switch(99===p&&110===ie(A,3)?100:p){case 100:case 108:case 109:case 115:Fe(e,k,k,a&&ue(qe(e,k,k,0,0,r,s,y,r,w=[],d),x),r,x,d,s,a?w:x);break;default:Fe(A,k,k,k,[""],x,0,s,x)}}l=u=f=0,h=v=1,y=A="",d=i;break;case 58:d=1+ce(A),f=m;default:if(h<1)if(123==b)--h;else if(125==b&&0==h++&&125==ye())continue;switch(A+=te(b),b*h){case 38:v=u>0?1:(A+="\f",-1);break;case 44:s[l++]=(ce(A)-1)*v,v=1;break;case 64:45===xe()&&(A+=Ie(we())),p=xe(),u=d=ce(y=A+=Le(ke())),b++;break;case 45:45===m&&2==ce(A)&&(h=0)}}return o}function qe(e,t,n,a,r,o,i,s,c,l,u){for(var d=r-1,p=0===r?o:[""],f=le(p),m=0,h=0,g=0;m<a;++m)for(var v=0,b=se(e,d+1,d=ee(h=i[m])),y=e;v<f;++v)(y=ae(h>0?p[v]+" "+b:re(b,/&\f/g,p[v])))&&(c[g++]=y);return ve(e,t,n,0===r?De:s,c,l,u)}function We(e,t,n){return ve(e,t,n,ze,te(he),se(e,2,-2),0)}function Ve(e,t,n,a){return ve(e,t,n,Re,se(e,0,a),se(e,a+1,-1),a)}var Ke=function(e,t,n){for(var a=0,r=0;a=r,r=xe(),38===a&&12===r&&(t[n]=1),!Ee(r);)we();return Ae(e,me)},Qe=new WeakMap,He=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,a=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||Qe.get(n))&&!a){Qe.set(e,!0);for(var r=[],o=function(e,t){return Ce(function(e,t){var n=-1,a=44;do{switch(Ee(a)){case 0:38===a&&12===xe()&&(t[n]=1),e[n]+=Ke(me-1,t,n);break;case 2:e[n]+=Ie(a);break;case 4:if(44===a){e[++n]=58===xe()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=te(a)}}while(a=we());return e}($e(e),t))}(t,r),i=n.props,s=0,c=0;s<o.length;s++)for(var l=0;l<i.length;l++,c++)e.props[c]=r[s]?o[s].replace(/&\f/g,i[l]):i[l]+" "+o[s]}}},Je=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}};function Xe(e,t){switch(function(e,t){return 45^ie(e,0)?(((t<<2^ie(e,0))<<2^ie(e,1))<<2^ie(e,2))<<2^ie(e,3):0}(e,t)){case 5103:return Oe+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return Oe+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return Oe+e+Ue+e+Pe+e+e;case 6828:case 4268:return Oe+e+Pe+e+e;case 6165:return Oe+e+Pe+"flex-"+e+e;case 5187:return Oe+e+re(e,/(\w+).+(:[^]+)/,Oe+"box-$1$2"+Pe+"flex-$1$2")+e;case 5443:return Oe+e+Pe+"flex-item-"+re(e,/flex-|-self/,"")+e;case 4675:return Oe+e+Pe+"flex-line-pack"+re(e,/align-content|flex-|-self/,"")+e;case 5548:return Oe+e+Pe+re(e,"shrink","negative")+e;case 5292:return Oe+e+Pe+re(e,"basis","preferred-size")+e;case 6060:return Oe+"box-"+re(e,"-grow","")+Oe+e+Pe+re(e,"grow","positive")+e;case 4554:return Oe+re(e,/([^-])(transform)/g,"$1"+Oe+"$2")+e;case 6187:return re(re(re(e,/(zoom-|grab)/,Oe+"$1"),/(image-set)/,Oe+"$1"),e,"")+e;case 5495:case 3959:return re(e,/(image-set\([^]*)/,Oe+"$1$`$1");case 4968:return re(re(e,/(.+:)(flex-)?(.*)/,Oe+"box-pack:$3"+Pe+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+Oe+e+e;case 4095:case 3583:case 4068:case 2532:return re(e,/(.+)-inline(.+)/,Oe+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(ce(e)-1-t>6)switch(ie(e,t+1)){case 109:if(45!==ie(e,t+4))break;case 102:return re(e,/(.+:)(.+)-([^]+)/,"$1"+Oe+"$2-$3$1"+Ue+(108==ie(e,t+3)?"$3":"$2-$3"))+e;case 115:return~oe(e,"stretch")?Xe(re(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==ie(e,t+1))break;case 6444:switch(ie(e,ce(e)-3-(~oe(e,"!important")&&10))){case 107:return re(e,":",":"+Oe)+e;case 101:return re(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+Oe+(45===ie(e,14)?"inline-":"")+"box$3$1"+Oe+"$2$3$1"+Pe+"$2box$3")+e}break;case 5936:switch(ie(e,t+11)){case 114:return Oe+e+Pe+re(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return Oe+e+Pe+re(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return Oe+e+Pe+re(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return Oe+e+Pe+e+e}return e}var Ze=[function(e,t,n,a){if(e.length>-1&&!e.return)switch(e.type){case Re:e.return=Xe(e.value,e.length);break;case Me:return Ge([be(e,{value:re(e.value,"@","@"+Oe)})],a);case De:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e){return(e=/(::plac\w+|:read-\w+)/.exec(e))?e[0]:e}(t)){case":read-only":case":read-write":return Ge([be(e,{props:[re(t,/:(read-\w+)/,":-moz-$1")]})],a);case"::placeholder":return Ge([be(e,{props:[re(t,/:(plac\w+)/,":"+Oe+"input-$1")]}),be(e,{props:[re(t,/:(plac\w+)/,":-moz-$1")]}),be(e,{props:[re(t,/:(plac\w+)/,Pe+"input-$1")]})],a)}return""}))}}],Ye={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};function et(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}var tt=/[A-Z]|^ms/g,nt=/_EMO_([^_]+?)_([^]*?)_EMO_/g,at=function(e){return 45===e.charCodeAt(1)},rt=function(e){return null!=e&&"boolean"!=typeof e},ot=et((function(e){return at(e)?e:e.replace(tt,"-$&").toLowerCase()})),it=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(nt,(function(e,t,n){return ct={name:t,styles:n,next:ct},t}))}return 1===Ye[e]||at(e)||"number"!=typeof t||0===t?t:t+"px"};function st(e,t,n){if(null==n)return"";var a=n;if(void 0!==a.__emotion_styles)return a;switch(typeof n){case"boolean":return"";case"object":var r=n;if(1===r.anim)return ct={name:r.name,styles:r.styles,next:ct},r.name;var o=n;if(void 0!==o.styles){var i=o.next;if(void 0!==i)for(;void 0!==i;)ct={name:i.name,styles:i.styles,next:ct},i=i.next;return o.styles+";"}return function(e,t,n){var a="";if(Array.isArray(n))for(var r=0;r<n.length;r++)a+=st(e,t,n[r])+";";else for(var o in n){var i=n[o];if("object"!=typeof i){var s=i;null!=t&&void 0!==t[s]?a+=o+"{"+t[s]+"}":rt(s)&&(a+=ot(o)+":"+it(o,s)+";")}else if(!Array.isArray(i)||"string"!=typeof i[0]||null!=t&&void 0!==t[i[0]]){var c=st(e,t,i);switch(o){case"animation":case"animationName":a+=ot(o)+":"+c+";";break;default:a+=o+"{"+c+"}"}}else for(var l=0;l<i.length;l++)rt(i[l])&&(a+=ot(o)+":"+it(o,i[l])+";")}return a}(e,t,n);case"function":if(void 0!==e){var s=ct,c=n(e);return ct=s,st(e,t,c)}}var l=n;if(null==t)return l;var u=t[l];return void 0!==u?u:l}var ct,lt=/label:\s*([^\s;{]+)\s*(;|$)/g;function ut(e,t,n){if(1===e.length&&"object"==typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];var a=!0,r="";ct=void 0;var o=e[0];null==o||void 0===o.raw?(a=!1,r+=st(n,t,o)):r+=o[0];for(var i=1;i<e.length;i++)r+=st(n,t,e[i]),a&&(r+=o[i]);lt.lastIndex=0;for(var s,c="";null!==(s=lt.exec(r));)c+="-"+s[1];var l=function(e){for(var t,n=0,a=0,r=e.length;r>=4;++a,r-=4)t=1540483477*(65535&(t=255&e.charCodeAt(a)|(255&e.charCodeAt(++a))<<8|(255&e.charCodeAt(++a))<<16|(255&e.charCodeAt(++a))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(r){case 3:n^=(255&e.charCodeAt(a+2))<<16;case 2:n^=(255&e.charCodeAt(a+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(a)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(r)+c;return{name:l,styles:r,next:ct}}function dt(e,t,n){var a="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):n&&(a+=n+" ")})),a}function pt(e,t){if(void 0===e.inserted[t.name])return e.insert("",t,e.sheet,!0)}function ft(e,t,n){var a=[],r=dt(e,a,n);return a.length<2?n:r+t(a)}var mt=function e(t){for(var n="",a=0;a<t.length;a++){var r=t[a];if(null!=r){var o=void 0;switch(typeof r){case"boolean":break;case"object":if(Array.isArray(r))o=e(r);else for(var i in o="",r)r[i]&&i&&(o&&(o+=" "),o+=i);break;default:o=r}o&&(n&&(n+=" "),n+=o)}}return n};var ht=function(e){var t=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var a,r,o=e.stylisPlugins||Ze,i={},s=[];a=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n<t.length;n++)i[t[n]]=!0;s.push(e)}));var c,l,u,d,p=[Be,(d=function(e){c.insert(e)},function(e){e.root||(e=e.return)&&d(e)})],f=(l=[He,Je].concat(o,p),u=le(l),function(e,t,n,a){for(var r="",o=0;o<u;o++)r+=l[o](e,t,n,a)||"";return r});r=function(e,t,n,a){c=n,Ge(je(e?e+"{"+t.styles+"}":t.styles),f),a&&(m.inserted[t.name]=!0)};var m={key:t,sheet:new Y({key:t,container:a,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:i,registered:{},insert:r};return m.sheet.hydrate(s),m}(e);t.sheet.speedy=function(e){this.isSpeedy=e},t.compat=!0;var n=function(){for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];var r=ut(n,t.registered,void 0);return function(e,t){!function(e,t){var n=e.key+"-"+t.name;void 0===e.registered[n]&&(e.registered[n]=t.styles)}(e,t);var n=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var a=t;do{e.insert(t===a?"."+n:"",a,e.sheet,!0),a=a.next}while(void 0!==a)}}(t,r),t.key+"-"+r.name};return{css:n,cx:function(){for(var e=arguments.length,a=new Array(e),r=0;r<e;r++)a[r]=arguments[r];return ft(t.registered,n,mt(a))},injectGlobal:function(){for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];var r=ut(n,t.registered);pt(t,r)},keyframes:function(){for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];var r=ut(n,t.registered),o="animation-"+r.name;return pt(t,{name:r.name,styles:"@keyframes "+o+"{"+r.styles+"}"}),o},hydrate:function(e){e.forEach((function(e){t.inserted[e]=!0}))},flush:function(){t.registered={},t.inserted={},t.sheet.flush()},sheet:t.sheet,cache:t,getRegisteredStyles:dt.bind(null,t.registered),merge:ft.bind(null,t.registered,n)}}({key:"css"}),gt=(ht.flush,ht.hydrate,ht.cx),vt=(ht.merge,ht.getRegisteredStyles,ht.injectGlobal,ht.keyframes),bt=ht.css;function yt(e){const{isAvailable:t,openAssistant:n}=X();return t&&n?s().createElement(wt,{...e,openAssistant:n}):null}function wt({prompt:e,origin:t,context:n,autoSend:a=!0,title:r="Analyze with Assistant",size:c="sm",iconOnlyButton:l=!1,openAssistant:u,onClick:d}){const p=(0,Z.useStyles2)(xt);return(0,i.useEffect)((()=>{(0,o.reportInteraction)("grafana_assistant_app_open_sidebar_button_displayed",{from:t})}),[t]),s().createElement(s().Fragment,null,l?s().createElement(Z.IconButton,{name:"ai-sparkle",onClick:()=>{null==d||d(),u({prompt:e,context:n,autoSend:a,origin:t})},variant:"secondary",size:c,"aria-label":r,className:p.icon,tooltip:r,"data-testid":"assistant-icon-button"}):s().createElement(Z.Button,{icon:"ai-sparkle",onClick:()=>{null==d||d(),u({prompt:e,context:n,autoSend:a,origin:t})},variant:"secondary",fill:"solid",size:c,title:r,"aria-label":r,className:p.button,"data-testid":"assistant-button"},r))}ht.sheet,ht.cache;const xt=e=>{const t=e.colors.secondary.main,n=e.colors.emphasize(t,.05),a=e.colors.background.canvas,r=e.shape.radius.default,o=`max(calc(${r} - 1px), 1px)`,i={content:'""',position:"absolute",inset:0,borderRadius:r,background:"linear-gradient(90deg, rgb(168, 85, 247), rgb(249, 115, 22))",zIndex:-2,pointerEvents:"none"},s=e=>({content:'""',position:"absolute",inset:"1px",borderRadius:o,background:`linear-gradient(${e}, ${e}), ${a}`,zIndex:-1,transition:"none",pointerEvents:"none"});return{button:bt({label:"assistant-button",position:"relative",isolation:"isolate",border:"none",transition:"none !important","&::before":i,"&::after":{...s(t),transition:"none"},"&:hover":{transition:"none !important"},"&:hover::after":{background:`linear-gradient(${n}, ${n}), ${a}`}}),icon:bt({label:"assistant-icon",position:"relative",isolation:"isolate",border:"none",background:"none",padding:e.spacing(.5),"&::before":{...i,transition:"background 0.1s ease"},"&:hover::after":{...s(t),background:`linear-gradient(${n}, ${n}), ${a}`}})}};function kt(e){const{isAvailable:t,openAssistant:n}=X();return t&&n?s().createElement(At,{...e,openAssistant:n}):null}function At({prompt:e,origin:t,context:n,autoSend:a=!0,title:r="Chat with Assistant",size:c="sm",onClick:l,menuItems:u,tooltip:d,openAssistant:p}){const f=(0,Z.useStyles2)(Et);(0,i.useEffect)((()=>{(0,o.reportInteraction)("grafana_assistant_app_open_sidebar_split_button_displayed",{from:t})}),[t]);const m=s().createElement("div",{className:f.wrapper},s().createElement(Z.ButtonGroup,{className:f.buttonGroup},s().createElement(Z.Button,{icon:"ai-sparkle",onClick:()=>{null==l||l(),p({prompt:e,context:n,autoSend:a,origin:t})},variant:"secondary",fill:"solid",size:c,"aria-label":r,"data-testid":"assistant-split-button-main"},r),u&&s().createElement(Z.Dropdown,{overlay:u},s().createElement(Z.Button,{variant:"secondary",icon:"angle-down",size:c,"aria-label":"More AI actions",className:f.dropdownButton,"data-testid":"assistant-split-button-dropdown"}))));return d?s().createElement(Z.Tooltip,{content:d},m):m}const Et=e=>{const t=e.colors.secondary.main,n=e.colors.emphasize(t,.05),a=e.colors.background.canvas,r=e.shape.radius.default;return{wrapper:bt({label:"assistant-split-button-wrapper",position:"relative",isolation:"isolate",display:"inline-block","&::before":{content:'""',position:"absolute",inset:0,borderRadius:r,background:"linear-gradient(90deg, rgb(168, 85, 247), rgb(249, 115, 22))",zIndex:-1,pointerEvents:"none"},"&::after":{content:'""',position:"absolute",inset:"1px",borderRadius:`max(calc(${r} - 1px), 1px)`,background:`linear-gradient(${t}, ${t}), ${a}`,zIndex:-1,pointerEvents:"none"},"&:hover::after":{background:`linear-gradient(${n}, ${n}), ${a}`}}),buttonGroup:bt({label:"assistant-split-button-group",gap:0,position:"relative",zIndex:1,"& button":{border:"none",background:"transparent !important","&:hover":{background:"transparent !important"}}}),dropdownButton:bt({padding:"0 6px"})}},$t="__grafanaAssistantInlineFactory__",Ct="__grafanaAssistantInlineInitializer__",It="__grafanaAssistantInlineInitPromise__";function _t(e){const t=window[$t];t&&t!==e?console.warn("InlineAssistant factory already set; ignoring subsequent setInlineAssistantFactory call"):t||(window[$t]=e)}function St(e){const t=window[Ct];t&&t!==e?console.warn("InlineAssistant initializer already set; ignoring subsequent setInlineAssistantInitializer call"):t||(window[Ct]=e)}async function Nt(){if(window[$t])return;const e=window[Ct];if(!e)throw new Error("InlineAssistant not initialized. Make sure the Grafana Assistant plugin is loaded and initialized.");const t=window[It];if(t)return t;const n=(async()=>{try{await e()}catch(e){throw window[It]=null,e}})();return window[It]=n,n}function Tt(){const e=window[$t];if(!e)throw new Error("InlineAssistant factory not initialized. Make sure the Grafana Assistant plugin is loaded.");return e}function Lt(){const[e,t]=(0,i.useState)(!1),[n,a]=(0,i.useState)(""),[r,o]=(0,i.useState)(null),s=(0,i.useRef)(null),c=(0,i.useCallback)((()=>{o(null),a("")}),[]),l=(0,i.useCallback)((()=>{s.current&&s.current.cancel(),t(!1)}),[]),u=(0,i.useCallback)((async e=>{var n;o(null),a(""),t(!0);try{await Nt();const n=Tt();s.current||(s.current=await n(e.origin)),await s.current.sendPrompt({prompt:e.prompt,systemPrompt:e.systemPrompt,onStart:()=>{t(!0)},onDelta:t=>{var n;a((e=>e+t)),null===(n=e.onDelta)||void 0===n||n.call(e,t)},onComplete:n=>{var r;a(n),t(!1),null===(r=e.onComplete)||void 0===r||r.call(e,n)},onError:n=>{var a;o(n),t(!1),null===(a=e.onError)||void 0===a||a.call(e,n)}})}catch(a){const r=a instanceof Error?a:new Error(String(a));o(r),t(!1),null===(n=e.onError)||void 0===n||n.call(e,r)}}),[]);return(0,i.useEffect)((()=>()=>{s.current&&(s.current.cancel(),s.current.dispose(),s.current=null)}),[]),{generate:u,isGenerating:e,content:n,error:r,cancel:l,reset:c}}const Pt=e=>{const t=["rgb(168, 85, 247)","rgb(249, 115, 22)"];if("dark"===e.name.toLowerCase()||"light"===e.name.toLowerCase())return t;const n=e.colors.gradients.brandHorizontal.match(/#[0-9A-Fa-f]{6}/g);return!n||n.length<2?t:[n[0],n[1]]},Ut=(e,t,n,a)=>{const r=Array.from({length:101},((e,t)=>t)),o={},[i,s]=Pt(e),c=null!=n?n:i,l=null!=a?a:s;return r.forEach((e=>{o[`${e}%`]={backgroundImage:`\n linear-gradient(${t}, ${t}),\n conic-gradient(from ${3.6*e}deg, transparent 60%, ${c} 80%, ${l} 100%, transparent 15%)\n `}})),o};function Ot({value:e,onChange:t,placeholder:n,origin:a,systemPrompt:r,onComplete:o,onError:i,onDelta:c,disabled:l=!1,className:u,"data-testid":d}){const{generate:p,isGenerating:f,error:m,reset:h}=Lt(),g=!e.trim()||l||f,v=(0,Z.useStyles2)(zt),b=async()=>{if(g)return;const t=e.trim();h(),await p({prompt:t,origin:a,systemPrompt:r,onComplete:e=>{null==o||o(e)},onError:e=>{null==i||i(e)},onDelta:e=>{null==c||c(e)}})},y=s().createElement(Z.IconButton,{name:"ai-sparkle",onClick:b,disabled:g,tooltip:g?"Enter text to generate":"Generate with AI","data-testid":d?`${d}-send`:void 0});return s().createElement("div",{className:gt(v.wrapper,{[v.animatedWrapper]:f},u),"data-testid":d},s().createElement(Z.Input,{value:e,onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),b())},onChange:e=>t(e.currentTarget.value),placeholder:null!=n?n:"Ask AI to generate...",disabled:l||f,suffix:y,invalid:!!m,"data-testid":d?`${d}-input`:void 0}))}const zt=e=>{const t=e.colors.background.primary,n=vt({label:"ai-input-border-animation",...Ut(e,t)}),[a,r]=Pt(e);return{wrapper:bt({label:"ai-text-input-wrapper",position:"relative",borderRadius:e.shape.radius.default}),animatedWrapper:bt({label:"ai-text-input-animated",border:"1px solid transparent",backgroundImage:`\n linear-gradient(${t}, ${t}),\n conic-gradient(from 0deg, transparent 60%, ${a} 80%, ${r} 100%, transparent 15%)\n `,backgroundOrigin:"border-box",backgroundClip:"padding-box, border-box",animation:`${n} 2s linear infinite`,"& input":{border:"none !important"}})}};function Dt({value:e,onChange:t,placeholder:n,origin:a,systemPrompt:r,onComplete:o,onError:i,onDelta:c,disabled:l=!1,rows:u=4,className:d,"data-testid":p}){const{generate:f,isGenerating:m,error:h,reset:g}=Lt(),v=!e.trim()||l||m,b=(0,Z.useStyles2)(Rt),y=async()=>{if(v)return;const t=e.trim();g(),await f({prompt:t,origin:a,systemPrompt:r,onComplete:e=>{null==o||o(e)},onError:e=>{null==i||i(e)},onDelta:e=>{null==c||c(e)}})};return s().createElement("div",{className:gt(b.textareaWrapper,{[b.animatedWrapper]:m},d),"data-testid":p},s().createElement(Z.TextArea,{value:e,onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),y())},onChange:e=>t(e.currentTarget.value),placeholder:null!=n?n:"Ask AI to generate... (Cmd/Ctrl+Enter to send)",disabled:l||m,rows:u,className:b.textarea,invalid:!!h,"data-testid":p?`${p}-textarea`:void 0}),s().createElement(Z.IconButton,{name:"ai-sparkle",onClick:y,disabled:v,className:b.sendButton,"aria-label":"Generate with AI",tooltip:v?"Enter text to generate":"Generate with AI (Cmd/Ctrl+Enter)","data-testid":p?`${p}-send`:void 0}))}const Rt=e=>{const t=e.colors.background.primary,n=vt({label:"ai-textarea-border-animation",...Ut(e,t)}),[a,r]=Pt(e);return{textareaWrapper:bt({label:"ai-textarea-wrapper",position:"relative",borderRadius:e.shape.radius.default}),animatedWrapper:bt({label:"ai-textarea-animated",border:"1px solid transparent",backgroundImage:`\n linear-gradient(${t}, ${t}),\n conic-gradient(from 0deg, transparent 60%, ${a} 80%, ${r} 100%, transparent 15%)\n `,backgroundOrigin:"border-box",backgroundClip:"padding-box, border-box",animation:`${n} 2s linear infinite`,"& textarea":{border:"none !important"}}),textarea:bt({label:"ai-textarea",paddingRight:e.spacing(4),scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),sendButton:bt({label:"ai-textarea-send",position:"absolute",right:e.spacing(1),top:e.spacing(1)})}};module.exports=t})();
|
|
1
|
+
(()=>{"use strict";var e={n:t=>{var n=t&&t.__esModule?()=>t.default:()=>t;return e.d(n,{a:n}),n},d:(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function n(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n);return(t>>>0).toString(16)}e.r(t),e.d(t,{AITextArea:()=>Ft,AITextInput:()=>Rt,ASSISTANT_PLUGIN_ID:()=>M,ASSISTANT_PLUGIN_TITLE:()=>B,CALLBACK_EXTENSION_POINT:()=>F,ComponentNodeData:()=>x,DashboardNodeData:()=>$,DatasourceNodeData:()=>C,EntityNodeData:()=>S,FolderNodeData:()=>A,LabelNameNodeData:()=>I,LabelValueNodeData:()=>N,OpenAssistantButton:()=>wt,OpenAssistantSplitButton:()=>Et,PlaybookNodeData:()=>P,StructuredNodeData:()=>a,acceptTerms:()=>Mt,checkTerms:()=>qt,closeAssistant:()=>J,createAssistantContextItem:()=>L,createTool:()=>Gt,ensureInlineAssistantInitialized:()=>_t,getExposeAssistantFunctionsConfig:()=>j,getInlineAssistantFactory:()=>Lt,isAssistantAvailable:()=>G,newFunctionNamespace:()=>D,openAssistant:()=>H,provideComponents:()=>E,providePageContext:()=>g,provideQuestions:()=>U,setInlineAssistantFactory:()=>Nt,setInlineAssistantInitializer:()=>Tt,toggleAssistant:()=>X,useAssistant:()=>Z,useInlineAssistant:()=>Pt,usePageComponents:()=>k,usePageContext:()=>b,useProvidePageContext:()=>v,useProvideQuestions:()=>O,useQuestions:()=>R,useTerms:()=>Bt});class r{constructor(e){this.params=e,this.text="",this.id=n(e.id),this.type=e.type}formatForLLM(e){var t,n;return{type:this.type,codeElementIds:e,data:{name:null!==(t=this.params.text)&&void 0!==t?t:"",text:null!==(n=this.params.text)&&void 0!==n?n:""}}}equals(e){return e instanceof r&&this.id===e.id&&this.type===e.type}}class a extends r{constructor(e){super({...e,id:n(JSON.stringify(e.data)),type:"structured"}),this.data=e.data}formatForLLM(e){return{type:this.type,codeElementIds:e,data:this.data}}}const o=require("@grafana/runtime"),s=require("react");var i=e.n(s);const c="__grafanaAssistantPageContextRegistry__",l="grafana-assistant:page-context-registry-changed",u="grafana-assistant:page-context-update",d="grafana-assistant:page-context-remove",p="grafana-assistant:page-context-sync";function m(){return window[c]}function f(e,t=!1){window[c]=e,window.dispatchEvent(new CustomEvent(l)),t||window.dispatchEvent(new CustomEvent(p,{detail:{registry:e}}))}window[c]||(window[c]=[]);let h=!1;function g(e,t){const n={id:y(),urlPattern:e,context:[...t]};f([...m(),n]),window.dispatchEvent(new CustomEvent(u,{detail:n}));const r=e=>{const t=m(),r=t.findIndex((e=>e.id===n.id));if(-1!==r){const n=[...t];n[r]={...n[r],context:[...e]},f(n),window.dispatchEvent(new CustomEvent(u,{detail:n[r]}))}};return r.unregister=()=>{const e=m(),t=e.findIndex((e=>e.id===n.id));-1!==t&&(f(e.filter(((e,n)=>n!==t))),window.dispatchEvent(new CustomEvent(d,{detail:{id:n.id}})))},r}function v(e,t=[]){const n=(0,s.useRef)(void 0),r=(0,s.useRef)(void 0),a=(0,s.useRef)(!1);return(0,s.useEffect)((()=>{a.current=!1;const o=void 0!==r.current?r.current:t;return n.current=g(e,o),void 0!==r.current&&(r.current=void 0),()=>{var e;null===(e=n.current)||void 0===e||e.unregister(),n.current=void 0}}),[e]),(0,s.useEffect)((()=>{!a.current&&n.current&&n.current(t)}),[t]),(0,s.useCallback)((e=>{a.current=!0,n.current?n.current(e):r.current=e}),[])}function b(e={allowQuestions:!1,allowComponents:!1}){const[t,n]=(0,s.useState)([]),r=(0,o.useLocationService)(),a=(0,s.useRef)("");(0,s.useEffect)((()=>{const e=()=>{const e=function(e){if(!e)return[];const t=[],n=m();for(const r of n)w(e,r.urlPattern)&&t.push(...r.context);return t}(r.getLocation().pathname);n(e)},t=()=>{e()},o=r.getLocationObservable().subscribe((t=>{const n=t.pathname;n!==a.current&&(a.current=n,e())}));return window.addEventListener(l,t),window.addEventListener(u,t),window.addEventListener(d,t),window.addEventListener(p,t),e(),()=>{o.unsubscribe(),window.removeEventListener(l,t),window.removeEventListener(u,t),window.removeEventListener(d,t),window.removeEventListener(p,t)}}),[r]);let i=t;return e.allowQuestions||(i=i.filter((e=>{var t;return"question"!==(null===(t=e.node.data)||void 0===t?void 0:t.type)}))),e.allowComponents||(i=i.filter((e=>{var t;return"component"!==(null===(t=e.node.data)||void 0===t?void 0:t.type)}))),i}function y(e="page-context"){return`${e}-${Date.now()}-${Math.random().toString(36).slice(2,11)}`}function w(e,t){if(t instanceof RegExp){const n=t.source;return".*"!==n&&"^.*$"!==n&&"^.*"!==n&&".*$"!==n||console.warn("useProvidePageContext: RegExp pattern matches all URLs (e.g., /.*/). This will cause the context to match every page, which may be unintended."),t.test(e)}if("string"==typeof t){if(!t||""===t.trim())return console.warn("useProvidePageContext: Empty string passed as urlPattern. This will cause the context to not match any pages."),!1;const n=`^${t.replace(/\*\*/g,"\0DOUBLE_STAR\0").replace(/\*/g,"[^/]*").replace(/\u0000DOUBLE_STAR\u0000/g,".*").replace(/\?/g,".")}$`;return"^.*$"===n&&console.warn("useProvidePageContext: URL pattern matches all URLs (e.g., **). This will cause the context to match every page, which may be unintended."),new RegExp(n).test(e)}return!1}h||(h=!0,window.addEventListener(u,(e=>{const t=e.detail;if(!t||!t.id)return;const n=m(),r=n.findIndex((e=>e.id===t.id));if(-1!==r){const e=[...n];e[r]=t,f(e,!0)}else f([...n,t],!0)})),window.addEventListener(d,(e=>{var t;const n=null===(t=e.detail)||void 0===t?void 0:t.id;if(!n)return;const r=m(),a=r.findIndex((e=>e.id===n));-1!==a&&f(r.filter(((e,t)=>t!==a)),!0)})),window.addEventListener(p,(e=>{var t;const n=null===(t=e.detail)||void 0===t?void 0:t.registry;if(!Array.isArray(n))return;const r=m(),a=new Set(r.map((e=>e.id))),o=n.filter((e=>!a.has(e.id)));o.length>0&&f([...r,...o],!0)})));class x extends r{constructor(e){const t=e.namespace||"components";super({...e,id:`${t}-${Object.keys(e.components).join("-")}`,type:"component"}),this.components=e.components,this.prompt=e.prompt,this.namespace=t}formatForLLM(e){return{type:this.type,codeElementIds:e,data:{name:`${this.namespace} components`,prompt:this.prompt,namespace:this.namespace}}}}function k(){const e=b({allowComponents:!0,allowQuestions:!1});return(0,s.useMemo)((()=>{const t={};return e.filter((e=>{var t;return null===(t=e.node.data)||void 0===t?void 0:t.components})).forEach((e=>{const n=e.node.data;if((null==n?void 0:n.components)&&Object.keys(n.components).length>0){const e=n.namespace||n.name||"components";Object.entries(n.components).forEach((([n,r])=>{t[`${e}_${n}`]=r}))}})),t}),[e])}function E(e,t,n,r=/.*/){if((a=r)instanceof RegExp?".*"===a.source&&""===a.flags:".*"===a||"/.*/"===a){const r=g(/.*/,[L("component",{components:n,prompt:e,namespace:t})]),a=(e,n)=>{r([L("component",{components:e,prompt:n,namespace:t})])};return a.unregister=r.unregister,a}var a;const o=g(/.*/,[L("component",{components:n,prompt:"",namespace:t})]),s=g(r,[L("component",{components:{},prompt:e,namespace:t})]),i=(e,n)=>{o([L("component",{components:e,prompt:"",namespace:t})]),s([L("component",{components:{},prompt:n,namespace:t})])};return i.unregister=()=>{o.unregister(),s.unregister()},i}class $ extends r{constructor(e){super({...e,id:e.dashboardUid,type:"dashboard"}),this.dashboardUid=e.dashboardUid,this.dashboardTitle=e.dashboardTitle,this.folderUid=e.folderUid,this.folderTitle=e.folderTitle,this.text=e.dashboardTitle}formatForLLM(e){return{type:this.type,codeElementIds:e,data:{name:this.dashboardTitle,dashboardUid:this.dashboardUid,dashboardTitle:this.dashboardTitle,folderUid:this.folderUid,folderTitle:this.folderTitle,text:this.text}}}}class A extends r{constructor(e){super({...e,id:e.folderUid,type:"dashboard_folder"}),this.text="",this.folderUid=e.folderUid,this.folderTitle=e.folderTitle,this.text=e.folderTitle}formatForLLM(e){return{type:this.type,codeElementIds:e,data:{name:this.folderTitle,folderUid:this.folderUid,folderTitle:this.folderTitle,text:this.text}}}}class C extends r{constructor(e){super({...e,id:e.datasourceUid,type:"datasource"}),this.datasourceUid=e.datasourceUid,this.datasourceType=e.datasourceType,this.datasourceName=e.datasourceName,this.img=e.img,this.text=e.datasourceName}formatForLLM(e){return{type:this.type,codeElementIds:e,data:{name:this.datasourceName,uid:this.datasourceUid,type:this.datasourceType,text:this.text,img:this.img}}}}class S extends r{constructor(e){var t,n,r;super({id:`${e.type}-${e.name}-${[null===(t=e.scope)||void 0===t?void 0:t.env,null===(n=e.scope)||void 0===n?void 0:n.site,null===(r=e.scope)||void 0===r?void 0:r.namespace].filter(Boolean).join("-")}`,type:"entity",title:e.title,hidden:e.hidden,img:e.img,icon:e.icon,text:e.name}),this.entityType=e.type,this.name=e.name,this.scope=e.scope,this.properties=e.properties,this.text=e.name}formatForLLM(e){return{type:"entity",codeElementIds:e,data:{name:this.name,text:this.text,type:this.entityType,scope:this.scope,properties:this.properties}}}}class I extends r{constructor(e){super({...e,id:`${e.datasourceUid}-${e.labelName}`,type:"label_name"}),this.datasourceUid=e.datasourceUid,this.datasourceType=e.datasourceType,this.datasourceName=e.datasourceName,this.labelName=e.labelName,this.text=e.labelName,this.img=e.img}formatForLLM(e){return{type:this.type,codeElementIds:e,data:{name:this.labelName,datasourceUid:this.datasourceUid,datasourceType:this.datasourceType,datasourceName:this.datasourceName,labelName:this.labelName,img:this.img,text:this.text}}}}class N extends r{constructor(e){super({...e,id:`${e.datasourceUid}-${e.labelName}-${e.labelValue}`,type:"label_value"}),this.datasourceUid=e.datasourceUid,this.datasourceType=e.datasourceType,this.datasourceName=e.datasourceName,this.labelName=e.labelName,this.labelValue=e.labelValue,this.text=e.labelValue,this.img=e.img}formatForLLM(e){return{type:this.type,codeElementIds:e,data:{name:this.labelValue,datasourceUid:this.datasourceUid,datasourceType:this.datasourceType,datasourceName:this.datasourceName,labelName:this.labelName,labelValue:this.labelValue,text:this.text,img:this.img}}}}function T(e){var t,n,r,a,s;const i=(0,o.getDataSourceSrv)().getInstanceSettings(e);return{datasourceType:null!==(t=null==i?void 0:i.type)&&void 0!==t?t:"unknown",datasourceName:null!==(n=null==i?void 0:i.name)&&void 0!==n?n:e,img:null===(s=null===(a=null===(r=null==i?void 0:i.meta)||void 0===r?void 0:r.info)||void 0===a?void 0:a.logos)||void 0===s?void 0:s.small}}const _={datasource:"database",label_name:"database",label_value:"database",dashboard:"dashboard",dashboard_folder:"folder",unknown:"circle-mono",structured:"gf-grid",component:"gf-grid",entity:"asserts",playbook:"play"};function L(e,t){var n,o,s;const i=function(e,t){switch(e){case"datasource":return new C({...t,...T(t.datasourceUid)});case"label_name":return new I({...t,...T(t.datasourceUid)});case"label_value":return new N({...t,...T(t.datasourceUid)});case"dashboard":return new $(t);case"dashboard_folder":return new A(t);case"structured":return new a(t);case"component":return new x({...t,hidden:!0});case"entity":return new S(t);case"unknown":return new r(t);default:return console.error(`Unknown context type: ${e}`),new r(t)}}(e,t),c=null!==(n=t.title)&&void 0!==n?n:function(e){var t;return e instanceof a?e.formatForLLM().data.name:null!==(t=e.text)&&void 0!==t?t:"Given Context"}(i),l=null!==(o=t.img)&&void 0!==o?o:function(e){if("img"in e)return e.img}(i);return{node:{id:i.id,name:c,img:l,icon:null!==(s=t.icon)&&void 0!==s?s:_[e],navigable:!1,selectable:!0,data:i},occurrences:[]}}class P extends r{constructor(e){super({...e,id:e.playbookId,type:"playbook",text:e.playbookName}),this.playbookId=e.playbookId,this.playbookName=e.playbookName,this.text=e.playbookName}formatForLLM(e){return{type:this.type,codeElementIds:e,data:{name:this.playbookName,playbookId:this.playbookId,playbookName:this.playbookName,text:this.text}}}}function U(e,t){const n=y("question"),r=e=>e.map(((e,t)=>({node:{id:`question-${n}-${t}`,name:e.title||e.prompt,navigable:!1,selectable:!0,icon:"question-circle",data:{type:"question",prompt:e.prompt,title:e.title,context:e.context||[]}},occurrences:[]}))),a=g(e,r(t)),o=e=>{a(r(e))};return o.unregister=a.unregister,o}function O(e,t=[]){const n=(0,s.useMemo)((()=>y("question")),[]),r=e=>e.map(((e,t)=>{var r;return{node:{id:`question-${n}-${t}`,name:null!==(r=e.title)&&void 0!==r?r:e.prompt,navigable:!1,selectable:!0,icon:"question-circle",data:{type:"question",prompt:e.prompt,title:e.title,context:e.context||[]}},occurrences:[]}})),a=v(e,r(t));return e=>{a(r(e))}}function R(){const e=b({allowQuestions:!0,allowComponents:!1});return z(e)}const z=e=>e.filter((e=>{var t;return"question"===(null===(t=e.node.data)||void 0===t?void 0:t.type)})).map((e=>{var t,n,r;return{prompt:(null===(t=e.node.data)||void 0===t?void 0:t.prompt)||e.node.name,title:null===(n=e.node.data)||void 0===n?void 0:n.title,context:(null===(r=e.node.data)||void 0===r?void 0:r.context)||[]}})),F="grafana-assistant-app/callback/v0-alpha";function D(e,t){return{namespace:e,functions:t}}function j(e){return{title:"callback",targets:[F],fn:()=>e.map((e=>({namespace:e.namespace,functions:e.functions})))}}const q=require("rxjs"),M="grafana-assistant-app",B="Grafana Assistant";function G(){if(!o.getObservablePluginLinks)return(0,q.of)(!1);return(0,o.getObservablePluginLinks)({extensionPointId:"grafana/extension-sidebar/v0-alpha"}).pipe((0,q.map)((e=>e.some((e=>e.pluginId===M&&e.title===B)))))}const W=require("@grafana/data");class V extends W.BusEventWithPayload{}V.type="open-extension-sidebar";class K extends W.BusEventBase{}K.type="close-extension-sidebar";class Q extends W.BusEventWithPayload{}function H(e){var t,n;(0,o.reportInteraction)("grafana_assistant_app_opened_sidebar",{from:e.origin,prompt:null!==(t=e.prompt)&&void 0!==t?t:""}),function(e,t,n){const r=new V({pluginId:e,componentTitle:t,props:n});(0,o.getAppEvents)().publish(r)}(M,B,{initialPrompt:e.prompt,initialContext:e.context,initialAutoSend:null===(n=e.autoSend)||void 0===n||n,origin:e.origin,initialMode:e.mode})}function J(){!function(){const e=new K;(0,o.getAppEvents)().publish(e)}()}function X(e){var t,n;(0,o.reportInteraction)("grafana_assistant_app_toggled_sidebar",{from:e.origin,prompt:null!==(t=e.prompt)&&void 0!==t?t:""}),function(e,t,n){const r=new Q({pluginId:e,componentTitle:t,props:n});(0,o.getAppEvents)().publish(r)}(M,B,{initialPrompt:e.prompt,initialContext:e.context,initialAutoSend:null===(n=e.autoSend)||void 0===n||n,origin:e.origin,initialMode:e.mode})}function Z(){const[e,t]=(0,s.useState)(!1);return(0,s.useEffect)((()=>{const e=G().subscribe((e=>t(e)));return()=>{e.unsubscribe()}}),[]),{isAvailable:e,openAssistant:e?H:void 0,closeAssistant:e?J:void 0,toggleAssistant:e?X:void 0}}Q.type="toggle-extension-sidebar";const Y=require("@grafana/ui");var ee=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(t);try{n.insertRule(e,n.cssRules.length)}catch(e){}}else t.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach((function(e){var t;return null==(t=e.parentNode)?void 0:t.removeChild(e)})),this.tags=[],this.ctr=0},e}(),te=Math.abs,ne=String.fromCharCode,re=Object.assign;function ae(e){return e.trim()}function oe(e,t,n){return e.replace(t,n)}function se(e,t){return e.indexOf(t)}function ie(e,t){return 0|e.charCodeAt(t)}function ce(e,t,n){return e.slice(t,n)}function le(e){return e.length}function ue(e){return e.length}function de(e,t){return t.push(e),e}var pe=1,me=1,fe=0,he=0,ge=0,ve="";function be(e,t,n,r,a,o,s){return{value:e,root:t,parent:n,type:r,props:a,children:o,line:pe,column:me,length:s,return:""}}function ye(e,t){return re(be("",null,null,"",null,null,0),e,{length:-e.length},t)}function we(){return ge=he>0?ie(ve,--he):0,me--,10===ge&&(me=1,pe--),ge}function xe(){return ge=he<fe?ie(ve,he++):0,me++,10===ge&&(me=1,pe++),ge}function ke(){return ie(ve,he)}function Ee(){return he}function $e(e,t){return ce(ve,e,t)}function Ae(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function Ce(e){return pe=me=1,fe=le(ve=e),he=0,[]}function Se(e){return ve="",e}function Ie(e){return ae($e(he-1,_e(91===e?e+2:40===e?e+1:e)))}function Ne(e){for(;(ge=ke())&&ge<33;)xe();return Ae(e)>2||Ae(ge)>3?"":" "}function Te(e,t){for(;--t&&xe()&&!(ge<48||ge>102||ge>57&&ge<65||ge>70&&ge<97););return $e(e,Ee()+(t<6&&32==ke()&&32==xe()))}function _e(e){for(;xe();)switch(ge){case e:return he;case 34:case 39:34!==e&&39!==e&&_e(ge);break;case 40:41===e&&_e(e);break;case 92:xe()}return he}function Le(e,t){for(;xe()&&e+ge!==57&&(e+ge!==84||47!==ke()););return"/*"+$e(t,he-1)+"*"+ne(47===e?e:xe())}function Pe(e){for(;!Ae(ke());)xe();return $e(e,he)}var Ue="-ms-",Oe="-moz-",Re="-webkit-",ze="comm",Fe="rule",De="decl",je="@keyframes";function qe(e,t){for(var n="",r=ue(e),a=0;a<r;a++)n+=t(e[a],a,e,t)||"";return n}function Me(e,t,n,r){switch(e.type){case"@layer":if(e.children.length)break;case"@import":case De:return e.return=e.return||e.value;case ze:return"";case je:return e.return=e.value+"{"+qe(e.children,r)+"}";case Fe:e.value=e.props.join(",")}return le(n=qe(e.children,r))?e.return=e.value+"{"+n+"}":""}function Be(e){return Se(Ge("",null,null,null,[""],e=Ce(e),0,[0],e))}function Ge(e,t,n,r,a,o,s,i,c){for(var l=0,u=0,d=s,p=0,m=0,f=0,h=1,g=1,v=1,b=0,y="",w=a,x=o,k=r,E=y;g;)switch(f=b,b=xe()){case 40:if(108!=f&&58==ie(E,d-1)){-1!=se(E+=oe(Ie(b),"&","&\f"),"&\f")&&(v=-1);break}case 34:case 39:case 91:E+=Ie(b);break;case 9:case 10:case 13:case 32:E+=Ne(f);break;case 92:E+=Te(Ee()-1,7);continue;case 47:switch(ke()){case 42:case 47:de(Ve(Le(xe(),Ee()),t,n),c);break;default:E+="/"}break;case 123*h:i[l++]=le(E)*v;case 125*h:case 59:case 0:switch(b){case 0:case 125:g=0;case 59+u:-1==v&&(E=oe(E,/\f/g,"")),m>0&&le(E)-d&&de(m>32?Ke(E+";",r,n,d-1):Ke(oe(E," ","")+";",r,n,d-2),c);break;case 59:E+=";";default:if(de(k=We(E,t,n,l,u,a,i,y,w=[],x=[],d),o),123===b)if(0===u)Ge(E,t,k,k,w,o,d,i,x);else switch(99===p&&110===ie(E,3)?100:p){case 100:case 108:case 109:case 115:Ge(e,k,k,r&&de(We(e,k,k,0,0,a,i,y,a,w=[],d),x),a,x,d,i,r?w:x);break;default:Ge(E,k,k,k,[""],x,0,i,x)}}l=u=m=0,h=v=1,y=E="",d=s;break;case 58:d=1+le(E),m=f;default:if(h<1)if(123==b)--h;else if(125==b&&0==h++&&125==we())continue;switch(E+=ne(b),b*h){case 38:v=u>0?1:(E+="\f",-1);break;case 44:i[l++]=(le(E)-1)*v,v=1;break;case 64:45===ke()&&(E+=Ie(xe())),p=ke(),u=d=le(y=E+=Pe(Ee())),b++;break;case 45:45===f&&2==le(E)&&(h=0)}}return o}function We(e,t,n,r,a,o,s,i,c,l,u){for(var d=a-1,p=0===a?o:[""],m=ue(p),f=0,h=0,g=0;f<r;++f)for(var v=0,b=ce(e,d+1,d=te(h=s[f])),y=e;v<m;++v)(y=ae(h>0?p[v]+" "+b:oe(b,/&\f/g,p[v])))&&(c[g++]=y);return be(e,t,n,0===a?Fe:i,c,l,u)}function Ve(e,t,n){return be(e,t,n,ze,ne(ge),ce(e,2,-2),0)}function Ke(e,t,n,r){return be(e,t,n,De,ce(e,0,r),ce(e,r+1,-1),r)}var Qe=function(e,t,n){for(var r=0,a=0;r=a,a=ke(),38===r&&12===a&&(t[n]=1),!Ae(a);)xe();return $e(e,he)},He=new WeakMap,Je=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||He.get(n))&&!r){He.set(e,!0);for(var a=[],o=function(e,t){return Se(function(e,t){var n=-1,r=44;do{switch(Ae(r)){case 0:38===r&&12===ke()&&(t[n]=1),e[n]+=Qe(he-1,t,n);break;case 2:e[n]+=Ie(r);break;case 4:if(44===r){e[++n]=58===ke()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=ne(r)}}while(r=xe());return e}(Ce(e),t))}(t,a),s=n.props,i=0,c=0;i<o.length;i++)for(var l=0;l<s.length;l++,c++)e.props[c]=a[i]?o[i].replace(/&\f/g,s[l]):s[l]+" "+o[i]}}},Xe=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}};function Ze(e,t){switch(function(e,t){return 45^ie(e,0)?(((t<<2^ie(e,0))<<2^ie(e,1))<<2^ie(e,2))<<2^ie(e,3):0}(e,t)){case 5103:return Re+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return Re+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return Re+e+Oe+e+Ue+e+e;case 6828:case 4268:return Re+e+Ue+e+e;case 6165:return Re+e+Ue+"flex-"+e+e;case 5187:return Re+e+oe(e,/(\w+).+(:[^]+)/,Re+"box-$1$2"+Ue+"flex-$1$2")+e;case 5443:return Re+e+Ue+"flex-item-"+oe(e,/flex-|-self/,"")+e;case 4675:return Re+e+Ue+"flex-line-pack"+oe(e,/align-content|flex-|-self/,"")+e;case 5548:return Re+e+Ue+oe(e,"shrink","negative")+e;case 5292:return Re+e+Ue+oe(e,"basis","preferred-size")+e;case 6060:return Re+"box-"+oe(e,"-grow","")+Re+e+Ue+oe(e,"grow","positive")+e;case 4554:return Re+oe(e,/([^-])(transform)/g,"$1"+Re+"$2")+e;case 6187:return oe(oe(oe(e,/(zoom-|grab)/,Re+"$1"),/(image-set)/,Re+"$1"),e,"")+e;case 5495:case 3959:return oe(e,/(image-set\([^]*)/,Re+"$1$`$1");case 4968:return oe(oe(e,/(.+:)(flex-)?(.*)/,Re+"box-pack:$3"+Ue+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+Re+e+e;case 4095:case 3583:case 4068:case 2532:return oe(e,/(.+)-inline(.+)/,Re+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(le(e)-1-t>6)switch(ie(e,t+1)){case 109:if(45!==ie(e,t+4))break;case 102:return oe(e,/(.+:)(.+)-([^]+)/,"$1"+Re+"$2-$3$1"+Oe+(108==ie(e,t+3)?"$3":"$2-$3"))+e;case 115:return~se(e,"stretch")?Ze(oe(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==ie(e,t+1))break;case 6444:switch(ie(e,le(e)-3-(~se(e,"!important")&&10))){case 107:return oe(e,":",":"+Re)+e;case 101:return oe(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+Re+(45===ie(e,14)?"inline-":"")+"box$3$1"+Re+"$2$3$1"+Ue+"$2box$3")+e}break;case 5936:switch(ie(e,t+11)){case 114:return Re+e+Ue+oe(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return Re+e+Ue+oe(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return Re+e+Ue+oe(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return Re+e+Ue+e+e}return e}var Ye=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case De:e.return=Ze(e.value,e.length);break;case je:return qe([ye(e,{value:oe(e.value,"@","@"+Re)})],r);case Fe:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e){return(e=/(::plac\w+|:read-\w+)/.exec(e))?e[0]:e}(t)){case":read-only":case":read-write":return qe([ye(e,{props:[oe(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return qe([ye(e,{props:[oe(t,/:(plac\w+)/,":"+Re+"input-$1")]}),ye(e,{props:[oe(t,/:(plac\w+)/,":-moz-$1")]}),ye(e,{props:[oe(t,/:(plac\w+)/,Ue+"input-$1")]})],r)}return""}))}}],et={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};function tt(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}var nt=/[A-Z]|^ms/g,rt=/_EMO_([^_]+?)_([^]*?)_EMO_/g,at=function(e){return 45===e.charCodeAt(1)},ot=function(e){return null!=e&&"boolean"!=typeof e},st=tt((function(e){return at(e)?e:e.replace(nt,"-$&").toLowerCase()})),it=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(rt,(function(e,t,n){return lt={name:t,styles:n,next:lt},t}))}return 1===et[e]||at(e)||"number"!=typeof t||0===t?t:t+"px"};function ct(e,t,n){if(null==n)return"";var r=n;if(void 0!==r.__emotion_styles)return r;switch(typeof n){case"boolean":return"";case"object":var a=n;if(1===a.anim)return lt={name:a.name,styles:a.styles,next:lt},a.name;var o=n;if(void 0!==o.styles){var s=o.next;if(void 0!==s)for(;void 0!==s;)lt={name:s.name,styles:s.styles,next:lt},s=s.next;return o.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var a=0;a<n.length;a++)r+=ct(e,t,n[a])+";";else for(var o in n){var s=n[o];if("object"!=typeof s){var i=s;null!=t&&void 0!==t[i]?r+=o+"{"+t[i]+"}":ot(i)&&(r+=st(o)+":"+it(o,i)+";")}else if(!Array.isArray(s)||"string"!=typeof s[0]||null!=t&&void 0!==t[s[0]]){var c=ct(e,t,s);switch(o){case"animation":case"animationName":r+=st(o)+":"+c+";";break;default:r+=o+"{"+c+"}"}}else for(var l=0;l<s.length;l++)ot(s[l])&&(r+=st(o)+":"+it(o,s[l])+";")}return r}(e,t,n);case"function":if(void 0!==e){var i=lt,c=n(e);return lt=i,ct(e,t,c)}}var l=n;if(null==t)return l;var u=t[l];return void 0!==u?u:l}var lt,ut=/label:\s*([^\s;{]+)\s*(;|$)/g;function dt(e,t,n){if(1===e.length&&"object"==typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];var r=!0,a="";lt=void 0;var o=e[0];null==o||void 0===o.raw?(r=!1,a+=ct(n,t,o)):a+=o[0];for(var s=1;s<e.length;s++)a+=ct(n,t,e[s]),r&&(a+=o[s]);ut.lastIndex=0;for(var i,c="";null!==(i=ut.exec(a));)c+="-"+i[1];var l=function(e){for(var t,n=0,r=0,a=e.length;a>=4;++r,a-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(a){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(a)+c;return{name:l,styles:a,next:lt}}function pt(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):n&&(r+=n+" ")})),r}function mt(e,t){if(void 0===e.inserted[t.name])return e.insert("",t,e.sheet,!0)}function ft(e,t,n){var r=[],a=pt(e,r,n);return r.length<2?n:a+t(r)}var ht=function e(t){for(var n="",r=0;r<t.length;r++){var a=t[r];if(null!=a){var o=void 0;switch(typeof a){case"boolean":break;case"object":if(Array.isArray(a))o=e(a);else for(var s in o="",a)a[s]&&s&&(o&&(o+=" "),o+=s);break;default:o=a}o&&(n&&(n+=" "),n+=o)}}return n};var gt=function(e){var t=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var r,a,o=e.stylisPlugins||Ye,s={},i=[];r=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n<t.length;n++)s[t[n]]=!0;i.push(e)}));var c,l,u,d,p=[Me,(d=function(e){c.insert(e)},function(e){e.root||(e=e.return)&&d(e)})],m=(l=[Je,Xe].concat(o,p),u=ue(l),function(e,t,n,r){for(var a="",o=0;o<u;o++)a+=l[o](e,t,n,r)||"";return a});a=function(e,t,n,r){c=n,qe(Be(e?e+"{"+t.styles+"}":t.styles),m),r&&(f.inserted[t.name]=!0)};var f={key:t,sheet:new ee({key:t,container:r,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:s,registered:{},insert:a};return f.sheet.hydrate(i),f}(e);t.sheet.speedy=function(e){this.isSpeedy=e},t.compat=!0;var n=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];var a=dt(n,t.registered,void 0);return function(e,t){!function(e,t){var n=e.key+"-"+t.name;void 0===e.registered[n]&&(e.registered[n]=t.styles)}(e,t);var n=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var r=t;do{e.insert(t===r?"."+n:"",r,e.sheet,!0),r=r.next}while(void 0!==r)}}(t,a),t.key+"-"+a.name};return{css:n,cx:function(){for(var e=arguments.length,r=new Array(e),a=0;a<e;a++)r[a]=arguments[a];return ft(t.registered,n,ht(r))},injectGlobal:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];var a=dt(n,t.registered);mt(t,a)},keyframes:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];var a=dt(n,t.registered),o="animation-"+a.name;return mt(t,{name:a.name,styles:"@keyframes "+o+"{"+a.styles+"}"}),o},hydrate:function(e){e.forEach((function(e){t.inserted[e]=!0}))},flush:function(){t.registered={},t.inserted={},t.sheet.flush()},sheet:t.sheet,cache:t,getRegisteredStyles:pt.bind(null,t.registered),merge:ft.bind(null,t.registered,n)}}({key:"css"}),vt=(gt.flush,gt.hydrate,gt.cx),bt=(gt.merge,gt.getRegisteredStyles,gt.injectGlobal,gt.keyframes),yt=gt.css;function wt(e){const{isAvailable:t,openAssistant:n}=Z();return t&&n?i().createElement(xt,{...e,openAssistant:n}):null}function xt({prompt:e,origin:t,context:n,autoSend:r=!0,title:a="Analyze with Assistant",size:c="sm",iconOnlyButton:l=!1,openAssistant:u,onClick:d}){const p=(0,Y.useStyles2)(kt);return(0,s.useEffect)((()=>{(0,o.reportInteraction)("grafana_assistant_app_open_sidebar_button_displayed",{from:t})}),[t]),i().createElement(i().Fragment,null,l?i().createElement(Y.IconButton,{name:"ai-sparkle",onClick:()=>{null==d||d(),u({prompt:e,context:n,autoSend:r,origin:t})},variant:"secondary",size:c,"aria-label":a,className:p.icon,tooltip:a,"data-testid":"assistant-icon-button"}):i().createElement(Y.Button,{icon:"ai-sparkle",onClick:()=>{null==d||d(),u({prompt:e,context:n,autoSend:r,origin:t})},variant:"secondary",fill:"solid",size:c,title:a,"aria-label":a,className:p.button,"data-testid":"assistant-button"},a))}gt.sheet,gt.cache;const kt=e=>{const t=e.colors.secondary.main,n=e.colors.emphasize(t,.05),r=e.colors.background.canvas,a=e.shape.radius.default,o=`max(calc(${a} - 1px), 1px)`,s={content:'""',position:"absolute",inset:0,borderRadius:a,cornerShape:"squircle",background:"linear-gradient(90deg, rgb(168, 85, 247), rgb(249, 115, 22))",zIndex:-2,pointerEvents:"none"},i=e=>({content:'""',position:"absolute",inset:"1px",borderRadius:o,cornerShape:"squircle",background:`linear-gradient(${e}, ${e}), ${r}`,zIndex:-1,transition:"none",pointerEvents:"none"});return{button:yt({label:"assistant-button",position:"relative",isolation:"isolate",border:"none",transition:"none !important","&::before":s,"&::after":{...i(t),transition:"none"},"&:hover":{transition:"none !important"},"&:hover::after":{background:`linear-gradient(${n}, ${n}), ${r}`}}),icon:yt({label:"assistant-icon",position:"relative",isolation:"isolate",border:"none",background:"none",padding:e.spacing(.5),"&::before":{...s,transition:"background 0.1s ease"},"&:hover::after":{...i(t),background:`linear-gradient(${n}, ${n}), ${r}`}})}};function Et(e){const{isAvailable:t,openAssistant:n}=Z();return t&&n?i().createElement($t,{...e,openAssistant:n}):null}function $t({prompt:e,origin:t,context:n,autoSend:r=!0,title:a="Chat with Assistant",size:c="sm",onClick:l,menuItems:u,tooltip:d,openAssistant:p}){const m=(0,Y.useStyles2)(At);(0,s.useEffect)((()=>{(0,o.reportInteraction)("grafana_assistant_app_open_sidebar_split_button_displayed",{from:t})}),[t]);const f=i().createElement("div",{className:m.wrapper},i().createElement(Y.ButtonGroup,{className:m.buttonGroup},i().createElement(Y.Button,{icon:"ai-sparkle",onClick:()=>{null==l||l(),p({prompt:e,context:n,autoSend:r,origin:t})},variant:"secondary",fill:"solid",size:c,"aria-label":a,"data-testid":"assistant-split-button-main"},a),u&&i().createElement(Y.Dropdown,{overlay:u},i().createElement(Y.Button,{variant:"secondary",icon:"angle-down",size:c,"aria-label":"More AI actions",className:m.dropdownButton,"data-testid":"assistant-split-button-dropdown"}))));return d?i().createElement(Y.Tooltip,{content:d},f):f}const At=e=>{const t=e.colors.secondary.main,n=e.colors.emphasize(t,.05),r=e.colors.background.canvas,a=e.shape.radius.default;return{wrapper:yt({label:"assistant-split-button-wrapper",position:"relative",isolation:"isolate",display:"inline-block","&::before":{content:'""',position:"absolute",inset:0,borderRadius:a,cornerShape:"squircle",background:"linear-gradient(90deg, rgb(168, 85, 247), rgb(249, 115, 22))",zIndex:-1,pointerEvents:"none"},"&::after":{content:'""',position:"absolute",inset:"1px",borderRadius:`max(calc(${a} - 1px), 1px)`,cornerShape:"squircle",background:`linear-gradient(${t}, ${t}), ${r}`,zIndex:-1,pointerEvents:"none"},"&:hover::after":{background:`linear-gradient(${n}, ${n}), ${r}`}}),buttonGroup:yt({label:"assistant-split-button-group",gap:0,position:"relative",zIndex:1,"& button":{border:"none",background:"transparent !important","&:hover":{background:"transparent !important"}}}),dropdownButton:yt({padding:"0 6px"})}},Ct="__grafanaAssistantInlineFactory__",St="__grafanaAssistantInlineInitializer__",It="__grafanaAssistantInlineInitPromise__";function Nt(e){const t=window[Ct];t&&t!==e?console.warn("InlineAssistant factory already set; ignoring subsequent setInlineAssistantFactory call"):t||(window[Ct]=e)}function Tt(e){const t=window[St];t&&t!==e?console.warn("InlineAssistant initializer already set; ignoring subsequent setInlineAssistantInitializer call"):t||(window[St]=e)}async function _t(){if(window[Ct])return;const e=window[St];if(!e)throw new Error("InlineAssistant not initialized. Make sure the Grafana Assistant plugin is loaded and initialized.");const t=window[It];if(t)return t;const n=(async()=>{try{await e()}catch(e){throw window[It]=null,e}})();return window[It]=n,n}function Lt(){const e=window[Ct];if(!e)throw new Error("InlineAssistant factory not initialized. Make sure the Grafana Assistant plugin is loaded.");return e}function Pt(){const[e,t]=(0,s.useState)(!1),[n,r]=(0,s.useState)(""),[a,o]=(0,s.useState)(null),i=(0,s.useRef)(null),c=(0,s.useCallback)((()=>{o(null),r("")}),[]),l=(0,s.useCallback)((()=>{i.current&&i.current.cancel(),t(!1)}),[]),u=(0,s.useCallback)((async e=>{var n;o(null),r(""),t(!0);try{await _t();const n=Lt();i.current||(i.current=await n(e.origin)),await i.current.sendPrompt({prompt:e.prompt,systemPrompt:e.systemPrompt,tools:e.tools,onStart:()=>{t(!0)},onDelta:t=>{var n;r((e=>e+t)),null===(n=e.onDelta)||void 0===n||n.call(e,t)},onComplete:n=>{var a;r(n),t(!1),null===(a=e.onComplete)||void 0===a||a.call(e,n)},onError:n=>{var r;o(n),t(!1),null===(r=e.onError)||void 0===r||r.call(e,n)}})}catch(r){const a=r instanceof Error?r:new Error(String(r));o(a),t(!1),null===(n=e.onError)||void 0===n||n.call(e,a)}}),[]);return(0,s.useEffect)((()=>()=>{i.current&&(i.current.cancel(),i.current.dispose(),i.current=null)}),[]),{generate:u,isGenerating:e,content:n,error:a,cancel:l,reset:c}}const Ut=e=>{const t=["rgb(168, 85, 247)","rgb(249, 115, 22)"];if("dark"===e.name.toLowerCase()||"light"===e.name.toLowerCase())return t;const n=e.colors.gradients.brandHorizontal.match(/#[0-9A-Fa-f]{6}/g);return!n||n.length<2?t:[n[0],n[1]]},Ot=(e,t,n,r)=>{const a=Array.from({length:101},((e,t)=>t)),o={},[s,i]=Ut(e),c=null!=n?n:s,l=null!=r?r:i;return a.forEach((e=>{o[`${e}%`]={backgroundImage:`\n linear-gradient(${t}, ${t}),\n conic-gradient(from ${3.6*e}deg, transparent 60%, ${c} 80%, ${l} 100%, transparent 15%)\n `}})),o};function Rt({value:e,onChange:t,placeholder:n,origin:r,systemPrompt:a,onComplete:o,onError:s,onDelta:c,disabled:l=!1,className:u,"data-testid":d}){const{generate:p,isGenerating:m,error:f,reset:h}=Pt(),g=!e.trim()||l||m,v=(0,Y.useStyles2)(zt),b=async()=>{if(g)return;const t=e.trim();h(),await p({prompt:t,origin:r,systemPrompt:a,onComplete:e=>{null==o||o(e)},onError:e=>{null==s||s(e)},onDelta:e=>{null==c||c(e)}})},y=i().createElement(Y.IconButton,{name:"ai-sparkle",onClick:b,disabled:g,tooltip:g?"Enter text to generate":"Generate with AI","data-testid":d?`${d}-send`:void 0});return i().createElement("div",{className:vt(v.wrapper,{[v.animatedWrapper]:m},u),"data-testid":d},i().createElement(Y.Input,{value:e,onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),b())},onChange:e=>t(e.currentTarget.value),placeholder:null!=n?n:"Ask AI to generate...",disabled:l||m,suffix:y,invalid:!!f,"data-testid":d?`${d}-input`:void 0}))}const zt=e=>{const t=e.colors.background.primary,n=bt({label:"ai-input-border-animation",...Ot(e,t)}),[r,a]=Ut(e);return{wrapper:yt({label:"ai-text-input-wrapper",position:"relative",borderRadius:e.shape.radius.default,cornerShape:"squircle"}),animatedWrapper:yt({label:"ai-text-input-animated",border:"1px solid transparent",backgroundImage:`\n linear-gradient(${t}, ${t}),\n conic-gradient(from 0deg, transparent 60%, ${r} 80%, ${a} 100%, transparent 15%)\n `,backgroundOrigin:"border-box",backgroundClip:"padding-box, border-box",animation:`${n} 2s linear infinite`,"& input":{border:"none !important"}})}};function Ft({value:e,onChange:t,placeholder:n,origin:r,systemPrompt:a,onComplete:o,onError:s,onDelta:c,disabled:l=!1,rows:u=4,className:d,"data-testid":p}){const{generate:m,isGenerating:f,error:h,reset:g}=Pt(),v=!e.trim()||l||f,b=(0,Y.useStyles2)(Dt),y=async()=>{if(v)return;const t=e.trim();g(),await m({prompt:t,origin:r,systemPrompt:a,onComplete:e=>{null==o||o(e)},onError:e=>{null==s||s(e)},onDelta:e=>{null==c||c(e)}})};return i().createElement("div",{className:vt(b.textareaWrapper,{[b.animatedWrapper]:f},d),"data-testid":p},i().createElement(Y.TextArea,{value:e,onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),y())},onChange:e=>t(e.currentTarget.value),placeholder:null!=n?n:"Ask AI to generate... (Cmd/Ctrl+Enter to send)",disabled:l||f,rows:u,className:b.textarea,invalid:!!h,"data-testid":p?`${p}-textarea`:void 0}),i().createElement(Y.IconButton,{name:"ai-sparkle",onClick:y,disabled:v,className:b.sendButton,"aria-label":"Generate with AI",tooltip:v?"Enter text to generate":"Generate with AI (Cmd/Ctrl+Enter)","data-testid":p?`${p}-send`:void 0}))}const Dt=e=>{const t=e.colors.background.primary,n=bt({label:"ai-textarea-border-animation",...Ot(e,t)}),[r,a]=Ut(e);return{textareaWrapper:yt({label:"ai-textarea-wrapper",position:"relative",borderRadius:e.shape.radius.default,cornerShape:"squircle"}),animatedWrapper:yt({label:"ai-textarea-animated",border:"1px solid transparent",backgroundImage:`\n linear-gradient(${t}, ${t}),\n conic-gradient(from 0deg, transparent 60%, ${r} 80%, ${a} 100%, transparent 15%)\n `,backgroundOrigin:"border-box",backgroundClip:"padding-box, border-box",animation:`${n} 2s linear infinite`,"& textarea":{border:"none !important"}}),textarea:yt({label:"ai-textarea",paddingRight:e.spacing(4),scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),sendButton:yt({label:"ai-textarea-send",position:"absolute",right:e.spacing(1),top:e.spacing(1)})}};function jt(e){const t=e.split("+")[0].split("-"),n=t[0],r=t.length>1?t.slice(1).join("-"):void 0,a=n.split(".").map(Number);return 3!==a.length||a.some(isNaN)?null:{major:a[0],minor:a[1],patch:a[2],prerelease:r}}async function qt(){var e,t;const n=(0,o.getBackendSrv)(),r=`${null!==(e=null===o.config||void 0===o.config?void 0:o.config.appSubUrl)&&void 0!==e?e:""}/api/plugins/${M}/resources/api/v1/settings/terms`;try{const e=(await(0,q.lastValueFrom)(n.fetch({url:r,method:"GET"}))).data.data,a=null!==(t=e.acceptedTermsAndConditions)&&void 0!==t&&t,o=e.acceptedVersion,s=e.version;if(!a||!o||!s)return!1;const i=1===function(e,t){const n=jt(e),r=jt(t);return n&&r?n.major!==r.major?n.major>r.major?1:-1:n.minor!==r.minor?n.minor>r.minor?1:-1:n.patch!==r.patch?n.patch>r.patch?1:-1:n.prerelease&&r.prerelease?n.prerelease===r.prerelease?0:n.prerelease>r.prerelease?1:-1:n.prerelease&&!r.prerelease?-1:!n.prerelease&&r.prerelease?1:0:null}(s,o);return a&&!i}catch(e){throw new Error(`Failed to check terms requirements: ${e instanceof Error?e.message:String(e)}`)}}async function Mt(){var e;const t=(0,o.getBackendSrv)(),n=`${null!==(e=null===o.config||void 0===o.config?void 0:o.config.appSubUrl)&&void 0!==e?e:""}/api/plugins/${M}/resources/api/v1/settings/accept-terms`;try{await(0,q.lastValueFrom)(t.fetch({url:n,method:"PUT",data:{acceptedTermsAndConditions:!0}}))}catch(e){throw new Error(`Failed to accept terms: ${e instanceof Error?e.message:String(e)}`)}}function Bt(){const[e,t]=(0,s.useState)(!1),[n,r]=(0,s.useState)(!0),[a,o]=(0,s.useState)(null);return(0,s.useEffect)((()=>{!async function(){try{r(!0),o(null);const e=await qt();t(e)}catch(e){const n=e instanceof Error?e.message:"Failed to check terms";o(n),t(!1)}finally{r(!1)}}()}),[]),{accepted:e,loading:n,error:a,acceptTerms:(0,s.useCallback)((async()=>{try{r(!0),o(null),await Mt();const e=await qt();t(e)}catch(e){const n=e instanceof Error?e.message:"Failed to accept terms";o(n),t(!1)}finally{r(!1)}}),[])}}function Gt(e,t){var n;const{explainer:r,...a}=null!==(n=t.metadata)&&void 0!==n?n:{},o={name:t.name,description:t.description,inputSchema:t.inputSchema,metadata:r?{...a,explainer:e=>r(e)}:a,responseFormat:t.responseFormat,verboseParsingErrors:t.verboseParsingErrors,async invoke(n,r){var a;try{if(null===(a=r.signal)||void 0===a?void 0:a.aborted)throw new Error(`Tool ${t.name} execution was aborted`);const o=t.validate(n),s=[e(o,r)];return r.signal&&s.push(new Promise(((e,n)=>{var a;null===(a=r.signal)||void 0===a||a.addEventListener("abort",(()=>{n(new Error(`Tool ${t.name} execution was aborted`))}),{once:!0})}))),r.timeout&&r.timeout>0&&s.push(new Promise(((e,n)=>{setTimeout((()=>{n(new Error(`Tool ${t.name} execution timed out after ${r.timeout}ms`))}),r.timeout)}))),Promise.race(s)}catch(e){throw t.verboseParsingErrors&&console.error(`Error invoking tool ${t.name}:`,e,n),e}}};return o}module.exports=t})();
|
|
2
2
|
//# sourceMappingURL=index.js.map
|