@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.
Files changed (37) hide show
  1. package/README.md +208 -0
  2. package/dist/context/chat.d.ts.map +1 -1
  3. package/dist/context/index.d.ts +1 -0
  4. package/dist/context/index.d.ts.map +1 -1
  5. package/dist/context/page.d.ts +2 -2
  6. package/dist/context/page.d.ts.map +1 -1
  7. package/dist/context/playbook.d.ts +13 -0
  8. package/dist/context/playbook.d.ts.map +1 -0
  9. package/dist/context/questions.d.ts +1 -0
  10. package/dist/context/questions.d.ts.map +1 -1
  11. package/dist/context/types.d.ts +5 -1
  12. package/dist/context/types.d.ts.map +1 -1
  13. package/dist/index.d.ts +3 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/inline/inlineAssistant.d.ts +2 -0
  18. package/dist/inline/inlineAssistant.d.ts.map +1 -1
  19. package/dist/inline/types.d.ts +3 -0
  20. package/dist/inline/types.d.ts.map +1 -1
  21. package/dist/inline/useInlineAssistant.d.ts +21 -0
  22. package/dist/inline/useInlineAssistant.d.ts.map +1 -1
  23. package/dist/sidebar.d.ts +2 -2
  24. package/dist/sidebar.d.ts.map +1 -1
  25. package/dist/terms/index.d.ts +57 -0
  26. package/dist/terms/index.d.ts.map +1 -0
  27. package/dist/terms/settings.gen.d.ts +312 -0
  28. package/dist/terms/settings.gen.d.ts.map +1 -0
  29. package/dist/terms/versionCompare.d.ts +16 -0
  30. package/dist/terms/versionCompare.d.ts.map +1 -0
  31. package/dist/tools/index.d.ts +3 -0
  32. package/dist/tools/index.d.ts.map +1 -0
  33. package/dist/tools/toolFactory.d.ts +22 -0
  34. package/dist/tools/toolFactory.d.ts.map +1 -0
  35. package/dist/tools/types.d.ts +174 -0
  36. package/dist/tools/types.d.ts.map +1 -0
  37. 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;AA2BxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
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"}
@@ -7,6 +7,7 @@ export * from './entity';
7
7
  export * from './factory';
8
8
  export * from './label';
9
9
  export * from './page';
10
+ export * from './playbook';
10
11
  export * from './questions';
11
12
  export * from './types';
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -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 ChatContextItem to provide when the pattern matches
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 ChatContextItem to provide when the pattern matches
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,CAgCtC;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;AAyBD;;;;;GAKG;AACH,wBAAgB,oCAAoC,IAAI,IAAI,CAE3D"}
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,6 +1,7 @@
1
1
  import { ChatContextItem } from './types';
2
2
  export interface Question {
3
3
  prompt: string;
4
+ title?: string;
4
5
  context?: ChatContextItem[];
5
6
  }
6
7
  export interface QuestionRegistration {
@@ -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,CAmChE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,GAAG,MAAM,EAC3B,gBAAgB,GAAE,QAAQ,EAAO,GAChC,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,IAAI,CAmCjC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,QAAQ,EAAE,CAKzC"}
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"}
@@ -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;AAEb,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,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB"}
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
@@ -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