@grafana/assistant 0.1.1 → 0.1.3

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 (31) hide show
  1. package/README.md +87 -2
  2. package/dist/components/{OpenAssistantButton.d.ts → button/OpenAssistantButton.d.ts} +2 -2
  3. package/dist/components/button/OpenAssistantButton.d.ts.map +1 -0
  4. package/dist/components/button/OpenAssistantButton.stories.d.ts.map +1 -0
  5. package/dist/components/index.d.ts +3 -1
  6. package/dist/components/index.d.ts.map +1 -1
  7. package/dist/components/input/AITextArea.d.ts +12 -0
  8. package/dist/components/input/AITextArea.d.ts.map +1 -0
  9. package/dist/components/input/AITextArea.stories.d.ts +26 -0
  10. package/dist/components/input/AITextArea.stories.d.ts.map +1 -0
  11. package/dist/components/input/AITextInput.d.ts +10 -0
  12. package/dist/components/input/AITextInput.d.ts.map +1 -0
  13. package/dist/components/input/AITextInput.stories.d.ts +22 -0
  14. package/dist/components/input/AITextInput.stories.d.ts.map +1 -0
  15. package/dist/components/input/types.d.ts +14 -0
  16. package/dist/components/input/types.d.ts.map +1 -0
  17. package/dist/context/component.d.ts +13 -7
  18. package/dist/context/component.d.ts.map +1 -1
  19. package/dist/context/page.d.ts +5 -0
  20. package/dist/context/page.d.ts.map +1 -1
  21. package/dist/index.js +1 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/inline/types.d.ts +2 -0
  24. package/dist/inline/types.d.ts.map +1 -1
  25. package/dist/inline/useInlineAssistant.d.ts.map +1 -1
  26. package/dist/utils/theme.d.ts +30 -0
  27. package/dist/utils/theme.d.ts.map +1 -0
  28. package/package.json +1 -1
  29. package/dist/components/OpenAssistantButton.d.ts.map +0 -1
  30. package/dist/components/OpenAssistantButton.stories.d.ts.map +0 -1
  31. /package/dist/components/{OpenAssistantButton.stories.d.ts → button/OpenAssistantButton.stories.d.ts} +0 -0
package/README.md CHANGED
@@ -570,9 +570,94 @@ A pre-built React component that renders a button to open the Grafana Assistant
570
570
  - `title?: string` - Text to display on the button (defaults to `'Analyze with Assistant'`)
571
571
  - `size?: 'xs' | 'sm' | 'md' | 'lg'` - Button size (defaults to `'sm'`)
572
572
  - `iconOnlyButton?: boolean` - If `true`, renders as an icon-only button with tooltip (defaults to `false`)
573
- - `onClick?`- Function to call when the button is clicked (defaults to undefined)
574
573
 
575
- **Returns:** JSX element or `null` if assistant is not available
574
+ #### `<AITextInput />`
575
+
576
+ An AI-powered text input component that uses the inline assistant to generate content. Features a gradient border animation while generating and an integrated send button. Perfect for generating short-form content like titles, labels, or names.
577
+
578
+ **Parameters:**
579
+
580
+ - `value: string` - **Required** The current value of the input (controlled component)
581
+ - `onChange: (value: string) => void` - **Required** Called when the input value changes
582
+ - `origin: string` - **Required** Origin for analytics tracking (e.g., 'grafana/panel-editor/title')
583
+ - `placeholder?: string` - Placeholder text (defaults to 'Ask AI to generate...')
584
+ - `systemPrompt?: string` - Optional system prompt to guide the assistant's behavior
585
+ - `onComplete?: (text: string) => void` - Callback when generation completes successfully
586
+ - `onError?: (error: Error) => void` - Callback if an error occurs during generation
587
+ - `onDelta?: (delta: string) => void` - Callback for streaming tokens as they are received during generation
588
+ - `disabled?: boolean` - Whether the input is disabled
589
+ - `className?: string` - Additional CSS class name
590
+ - `data-testid?: string` - Test ID for testing
591
+
592
+ **Example:**
593
+
594
+ ```typescript
595
+ import { AITextInput } from '@grafana/assistant';
596
+ import { useState } from 'react';
597
+
598
+ function PanelEditor() {
599
+ const [title, setTitle] = useState('');
600
+
601
+ return (
602
+ <AITextInput
603
+ value={title}
604
+ onChange={setTitle}
605
+ origin="grafana/panel-editor/title"
606
+ systemPrompt="Generate a concise, descriptive panel title. Return only the title text."
607
+ placeholder="Ask AI to generate a title..."
608
+ onComplete={(text) => {
609
+ setTitle(text); // Update state to display the generated text
610
+ console.log('Generated:', text);
611
+ }}
612
+ />
613
+ );
614
+ }
615
+ ```
616
+
617
+ #### `<AITextArea />`
618
+
619
+ An AI-powered textarea component that uses the inline assistant to generate longer content. Features a gradient border animation while generating and an integrated send button. Use Cmd/Ctrl+Enter to submit. Ideal for descriptions, documentation, or multi-line content generation.
620
+
621
+ **Parameters:**
622
+
623
+ - `value: string` - **Required** The current value of the textarea (controlled component)
624
+ - `onChange: (value: string) => void` - **Required** Called when the textarea value changes
625
+ - `origin: string` - **Required** Origin for analytics tracking (e.g., 'grafana/panel-editor/description')
626
+ - `placeholder?: string` - Placeholder text (defaults to 'Ask AI to generate... (Cmd/Ctrl+Enter to send)')
627
+ - `systemPrompt?: string` - Optional system prompt to guide the assistant's behavior
628
+ - `onComplete?: (text: string) => void` - Callback when generation completes successfully
629
+ - `onError?: (error: Error) => void` - Callback if an error occurs during generation
630
+ - `onDelta?: (delta: string) => void` - Callback for streaming tokens as they are received during generation
631
+ - `disabled?: boolean` - Whether the textarea is disabled
632
+ - `rows?: number` - Number of rows for the textarea (defaults to 4)
633
+ - `className?: string` - Additional CSS class name
634
+ - `data-testid?: string` - Test ID for testing
635
+
636
+ **Example:**
637
+
638
+ ```typescript
639
+ import { AITextArea } from '@grafana/assistant';
640
+ import { useState } from 'react';
641
+
642
+ function DashboardEditor() {
643
+ const [description, setDescription] = useState('');
644
+
645
+ return (
646
+ <AITextArea
647
+ value={description}
648
+ onChange={setDescription}
649
+ origin="grafana/dashboard-editor/description"
650
+ systemPrompt="Generate a clear dashboard description in 2-3 sentences."
651
+ placeholder="Ask AI to generate a description... (Cmd/Ctrl+Enter to send)"
652
+ rows={6}
653
+ onComplete={(text) => {
654
+ setDescription(text); // Update state to display the generated text
655
+ console.log('Generated:', text);
656
+ }}
657
+ />
658
+ );
659
+ }
660
+ ```
576
661
 
577
662
  ### Availability Functions
578
663
 
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { ChatContextItem } from '../context/types';
3
- import { OpenAssistantProps } from '../sidebar';
2
+ import { ChatContextItem } from '../../context/types';
3
+ import { OpenAssistantProps } from '../../sidebar';
4
4
  export interface OpenAssistantButtonProps {
5
5
  /** Prompt to pass to the openAssistant function. */
6
6
  prompt: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAssistantButton.d.ts","sourceRoot":"","sources":["../../../src/components/button/OpenAssistantButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAGzC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGnD,MAAM,WAAW,wBAAwB;IACvC,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,iUAAiU;IACjU,MAAM,EAAE,MAAM,CAAC;IACf,iIAAiI;IACjI,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,6FAA6F;IAC7F,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,4BAOlE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,MAAM,EACN,MAAM,EACN,OAAO,EACP,QAAe,EACf,KAAgC,EAChC,IAAW,EACX,cAAsB,EACtB,aAAa,EACb,OAAO,GACR,EAAE,wBAAwB,GAAG;IAC5B,aAAa,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACpD,qBA6CA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAssistantButton.stories.d.ts","sourceRoot":"","sources":["../../../src/components/button/OpenAssistantButton.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGhE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,uBAAuB,CA0B9C,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEtD,eAAO,MAAM,OAAO,EAAE,KASrB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAStB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KASzB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KASzB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAgC5B,CAAC"}
@@ -1,2 +1,4 @@
1
- export { OpenAssistantButton, type OpenAssistantButtonProps } from './OpenAssistantButton';
1
+ export { OpenAssistantButton, type OpenAssistantButtonProps } from './button/OpenAssistantButton';
2
+ export { AITextInput, type AITextInputProps } from './input/AITextInput';
3
+ export { AITextArea, type AITextAreaProps } from './input/AITextArea';
2
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { AIInputProps } from './types';
3
+ export interface AITextAreaProps extends AIInputProps {
4
+ /** Number of rows for the textarea */
5
+ rows?: number;
6
+ }
7
+ /**
8
+ * An AI-powered controlled textarea component that uses the Grafana Assistant engine to generate content.
9
+ * Features an integrated send button as well as a gradient border animation while generating.
10
+ */
11
+ export declare function AITextArea({ value, onChange, placeholder, origin, systemPrompt, onComplete, onError, onDelta, disabled, rows, className, 'data-testid': dataTestId, }: AITextAreaProps): React.JSX.Element;
12
+ //# sourceMappingURL=AITextArea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AITextArea.d.ts","sourceRoot":"","sources":["../../../src/components/input/AITextArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAM7C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,WAAW,EACX,MAAM,EACN,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,EACP,QAAgB,EAChB,IAAQ,EACR,SAAS,EACT,aAAa,EAAE,UAAU,GAC1B,EAAE,eAAe,qBAkEjB"}
@@ -0,0 +1,26 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { AITextArea } from './AITextArea';
3
+ declare const meta: Meta<typeof AITextArea>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof AITextArea>;
6
+ /**
7
+ * Basic usage with controlled state
8
+ */
9
+ export declare const Basic: Story;
10
+ /**
11
+ * Larger textarea for longer content
12
+ */
13
+ export declare const LargeTextArea: Story;
14
+ /**
15
+ * Disabled state
16
+ */
17
+ export declare const Disabled: Story;
18
+ /**
19
+ * Custom width
20
+ */
21
+ export declare const CustomWidth: Story;
22
+ /**
23
+ * With error handling
24
+ */
25
+ export declare const WithErrorHandling: Story;
26
+ //# sourceMappingURL=AITextArea.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AITextArea.stories.d.ts","sourceRoot":"","sources":["../../../src/components/input/AITextArea.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CAyCjC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,UAAU,CAAC,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,KA6BnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,KAuB3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,KAatB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,KAazB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAiD/B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { AIInputProps } from './types';
3
+ export interface AITextInputProps extends AIInputProps {
4
+ }
5
+ /**
6
+ * An AI-powered controlled text input component that uses the Grafana Assistant engine to generate content.
7
+ * Features an integrated send button as well as a gradient border animation while generating.
8
+ */
9
+ export declare function AITextInput({ value, onChange, placeholder, origin, systemPrompt, onComplete, onError, onDelta, disabled, className, 'data-testid': dataTestId, }: AITextInputProps): React.JSX.Element;
10
+ //# sourceMappingURL=AITextInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AITextInput.d.ts","sourceRoot":"","sources":["../../../src/components/input/AITextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAM7C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,WAAW,gBAAiB,SAAQ,YAAY;CAAG;AAEzD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,WAAW,EACX,MAAM,EACN,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,EACP,QAAgB,EAChB,SAAS,EACT,aAAa,EAAE,UAAU,GAC1B,EAAE,gBAAgB,qBA+DlB"}
@@ -0,0 +1,22 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { AITextInput } from './AITextInput';
3
+ declare const meta: Meta<typeof AITextInput>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof AITextInput>;
6
+ /**
7
+ * Basic usage with controlled state
8
+ */
9
+ export declare const Basic: Story;
10
+ /**
11
+ * Disabled state
12
+ */
13
+ export declare const Disabled: Story;
14
+ /**
15
+ * Custom width
16
+ */
17
+ export declare const CustomWidth: Story;
18
+ /**
19
+ * With error handling
20
+ */
21
+ export declare const WithErrorHandling: Story;
22
+ //# sourceMappingURL=AITextInput.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AITextInput.stories.d.ts","sourceRoot":"","sources":["../../../src/components/input/AITextInput.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAqClC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,KA0BnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,KAatB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,KAazB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAsC/B,CAAC"}
@@ -0,0 +1,14 @@
1
+ export interface AIInputProps {
2
+ value: string;
3
+ onChange: (value: string) => void;
4
+ placeholder?: string;
5
+ origin: string;
6
+ systemPrompt?: string;
7
+ onComplete?: (text: string) => void;
8
+ onError?: (error: Error) => void;
9
+ onDelta?: (delta: string) => void;
10
+ disabled?: boolean;
11
+ className?: string;
12
+ 'data-testid'?: string;
13
+ }
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/input/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
@@ -19,21 +19,27 @@ export declare class ComponentNodeData extends NodeData {
19
19
  formatForLLM(codeElementIds?: string[]): ContextItemData;
20
20
  }
21
21
  /**
22
- * React hook that provides all components available for the current page.
23
- * This hook automatically updates when the URL changes or when component registrations change.
22
+ * React hook that provides all components available globally.
23
+ * Components are available everywhere, regardless of URL patterns.
24
24
  *
25
- * @returns Object containing all components available for the current page, keyed by namespace.componentName
25
+ * @returns Object containing all components available globally, keyed by namespace.componentName
26
26
  */
27
27
  export declare function usePageComponents(): Record<string, ComponentImplementation>;
28
28
  /**
29
29
  * Provide components to the assistant.
30
30
  *
31
- * @param prompt - The prompt to use for the components.
31
+ * Components are always available globally, but the prompt is only applied when the URL pattern matches.
32
+ *
33
+ * For catch-all URL patterns, returns a setter that takes a context array.
34
+ * For specific URL patterns, returns a setter that takes components and prompt separately.
35
+ *
36
+ * @param prompt - The prompt to use for the components (only applied when URL matches).
32
37
  * @param namespace - The namespace to use for the components.
33
- * @param components - The components to provide.
34
- * @param urlPattern - The URL pattern to match for the components.
38
+ * @param components - The components to provide (always available).
39
+ * @param urlPattern - The URL pattern to match for the prompt (components are always available).
40
+ * @returns A setter function to update the context, with an unregister method attached
35
41
  */
36
- export declare function provideComponents(prompt: string, namespace: string, components: Record<string, ComponentImplementation>, urlPattern?: string | RegExp): ((context: import("./types").ChatContextItem[]) => void) & {
42
+ export declare function provideComponents(prompt: string, namespace: string, components: Record<string, ComponentImplementation>, urlPattern?: string | RegExp): ((newComponents: Record<string, ComponentImplementation>, newPrompt: string) => void) & {
37
43
  unregister: () => void;
38
44
  };
39
45
  //# sourceMappingURL=component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/context/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAW,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,KAAK,eAAe,EAA0B,MAAM,SAAS,CAAC;AAIvE,MAAM,MAAM,uBAAuB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AACzD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,4BAA6B,SAAQ,UAAU;IAC9D,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,iBAAkB,SAAQ,QAAQ;IACtC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;gBAEb,MAAM,EAAE,4BAA4B;IAQhD,YAAY,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,eAAe;CAWzD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CA0B3E;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,EACnD,UAAU,GAAE,MAAM,GAAG,MAAa;;EASnC"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/context/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAW,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,KAAK,eAAe,EAA0B,MAAM,SAAS,CAAC;AAIvE,MAAM,MAAM,uBAAuB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AACzD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,4BAA6B,SAAQ,UAAU;IAC9D,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,iBAAkB,SAAQ,QAAQ;IACtC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;gBAEb,MAAM,EAAE,4BAA4B;IAQhD,YAAY,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,eAAe;CAWzD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CA0B3E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,EACnD,UAAU,GAAE,MAAM,GAAG,MAAa,GACjC,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG;IAAE,UAAU,EAAE,MAAM,IAAI,CAAA;CAAE,CAmFpH"}
@@ -1,4 +1,9 @@
1
1
  import { ChatContextItem } from './types';
2
+ declare global {
3
+ interface Window {
4
+ [key: string]: any;
5
+ }
6
+ }
2
7
  export interface PageContextRegistration {
3
8
  id: string;
4
9
  urlPattern: string | RegExp;
@@ -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;AAG1C,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AA8DD;;;;;;;;;;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,CAiDrE;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;AAoCD,wBAAgB,cAAc,CAC5B,OAAO,GAAE;IAAE,cAAc,EAAE,OAAO,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAsD,GACjH,eAAe,EAAE,CAkEnB;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,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"}
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 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,{ASSISTANT_PLUGIN_ID:()=>z,ASSISTANT_PLUGIN_TITLE:()=>q,CALLBACK_EXTENSION_POINT:()=>O,ComponentNodeData:()=>y,DashboardNodeData:()=>k,DatasourceNodeData:()=>A,EntityNodeData:()=>$,FolderNodeData:()=>E,LabelNameNodeData:()=>S,LabelValueNodeData:()=>C,OpenAssistantButton:()=>mt,StructuredNodeData:()=>a,closeAssistant:()=>W,createAssistantContextItem:()=>I,ensureInlineAssistantInitialized:()=>Et,getExposeAssistantFunctionsConfig:()=>R,getInlineAssistantFactory:()=>At,isAssistantAvailable:()=>D,newFunctionNamespace:()=>M,openAssistant:()=>Q,provideComponents:()=>x,providePageContext:()=>h,provideQuestions:()=>L,setInlineAssistantFactory:()=>xt,setInlineAssistantInitializer:()=>kt,toggleAssistant:()=>H,useAssistant:()=>J,useInlineAssistant:()=>$t,usePageComponents:()=>w,usePageContext:()=>v,useProvidePageContext:()=>m,useProvideQuestions:()=>_,useQuestions:()=>U});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 s=require("@grafana/runtime"),i=require("react");var o=e.n(i);const c=[],u="grafana-assistant:page-context-sync",l="grafana-assistant:page-context-update",d="grafana-assistant:page-context-remove",p="grafana-assistant:location-changed";let f=!1;function h(e,t){const n={id:g(),urlPattern:e,context:[...t]};c.push(n),window.dispatchEvent(new CustomEvent(l,{detail:n})),window.dispatchEvent(new CustomEvent(u,{detail:{registry:c}}));const r=e=>{const t=c.findIndex((e=>e.id===n.id));-1!==t&&(c[t].context=[...e],window.dispatchEvent(new CustomEvent(l,{detail:c[t]})))};return r.unregister=()=>{const e=c.findIndex((e=>e.id===n.id));-1!==e&&(c.splice(e,1),window.dispatchEvent(new CustomEvent(d,{detail:{id:n.id}})))},r}function m(e,t=[]){const n=(0,i.useRef)(void 0),r=(0,i.useRef)(t);return r.current=t,(0,i.useEffect)((()=>(n.current=h(e,r.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 v(e={allowQuestions:!1,allowComponents:!1}){const[t,n]=(0,i.useState)([]),r=(0,s.useLocationService)(),a=(0,i.useRef)("");(0,i.useEffect)((()=>{const e=()=>{const e=function(e,t){if(!e)return[];const n=[];for(const r of t)b(e,r.urlPattern)&&n.push(...r.context);return n}(r.getLocation().pathname,c);n(e)},t=()=>{e()},s=t=>{var n;const a=null===(n=t.detail)||void 0===n?void 0:n.pathname;a&&a===r.getLocation().pathname&&e()},i=r.getLocationObservable().subscribe((t=>{const n=t.pathname;n!==a.current&&(a.current=n,function(e){window.dispatchEvent(new CustomEvent(p,{detail:{pathname:e}}))}(n),e())}));return e(),window.addEventListener(u,t),window.addEventListener(l,t),window.addEventListener(d,t),window.addEventListener(p,s),()=>{i.unsubscribe(),window.removeEventListener(u,t),window.removeEventListener(l,t),window.removeEventListener(d,t),window.removeEventListener(p,s)}}),[r]);let o=t;return e.allowQuestions||(o=o.filter((e=>{var t;return"question"!==(null===(t=e.node.data)||void 0===t?void 0:t.type)}))),e.allowComponents||(o=o.filter((e=>{var t;return"component"!==(null===(t=e.node.data)||void 0===t?void 0:t.type)}))),o}function g(e="page-context"){return`${e}-${Date.now()}-${Math.random().toString(36).slice(2,11)}`}function b(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}f||(window.addEventListener(u,(e=>{var t;const n=null===(t=e.detail)||void 0===t?void 0:t.registry;if(n){const e=new Set(c.map((e=>e.id))),t=n.filter((t=>!e.has(t.id)));c.push(...t)}})),window.addEventListener(l,(e=>{const t=e.detail;if(t){const e=c.findIndex((e=>e.id===t.id));-1!==e?c[e]=t:c.push(t)}})),window.addEventListener(d,(e=>{var t;const n=null===(t=e.detail)||void 0===t?void 0:t.id;if(n){const e=c.findIndex((e=>e.id===n));-1!==e&&c.splice(e,1)}})),f=!0);class y 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 w(){const e=v({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){const e=n.namespace||n.name||"components";Object.entries(n.components).forEach((([n,r])=>{t[`${e}_${n}`]=r}))}})),t}),[e])}function x(e,t,n,r=/.*/){return h(r,[I("component",{components:n,prompt:e,namespace:t})])}class k 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 E 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 A 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 $ 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 S 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 C 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 N(e){var t,n,r,a,i;const o=(0,s.getDataSourceSrv)().getInstanceSettings(e);return{datasourceType:null!==(t=null==o?void 0:o.type)&&void 0!==t?t:"unknown",datasourceName:null!==(n=null==o?void 0:o.name)&&void 0!==n?n:e,img:null===(i=null===(a=null===(r=null==o?void 0:o.meta)||void 0===r?void 0:r.info)||void 0===a?void 0:a.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 I(e,t){var n,s,i;const o=function(e,t){switch(e){case"datasource":return new A({...t,...N(t.datasourceUid)});case"label_name":return new S({...t,...N(t.datasourceUid)});case"label_value":return new C({...t,...N(t.datasourceUid)});case"dashboard":return new k(t);case"dashboard_folder":return new E(t);case"structured":return new a(t);case"component":return new y({...t,hidden:!0});case"entity":return new $(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"}(o),u=null!==(s=t.img)&&void 0!==s?s:function(e){if("img"in e)return e.img}(o);return{node:{id:o.id,name:c,img:u,icon:null!==(i=t.icon)&&void 0!==i?i:T[e],navigable:!1,selectable:!0,data:o},occurrences:[]}}function L(e,t){const n=g("question"),r=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:[]}))),a=h(e,r(t)),s=e=>{a(r(e))};return s.unregister=a.unregister,s}function _(e,t=[]){const n=(0,i.useMemo)((()=>g("question")),[]),r=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:[]}))),a=m(e,r(t));return e=>{a(r(e))}}function U(){const e=v({allowQuestions:!0,allowComponents:!1});return P(e)}const P=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)||[]}})),O="grafana-assistant-app/callback/v0-alpha";function M(e,t){return{namespace:e,functions:t}}function R(e){return{title:"callback",targets:[O],fn:()=>e.map((e=>({namespace:e.namespace,functions:e.functions})))}}const j=require("rxjs"),z="grafana-assistant-app",q="Grafana Assistant";function D(){if(!s.getObservablePluginLinks)return(0,j.of)(!1);return(0,s.getObservablePluginLinks)({extensionPointId:"grafana/extension-sidebar/v0-alpha"}).pipe((0,j.map)((e=>e.some((e=>e.pluginId===z&&e.title===q)))))}const F=require("@grafana/data");class G extends F.BusEventWithPayload{}G.type="open-extension-sidebar";class B extends F.BusEventBase{}B.type="close-extension-sidebar";class V extends F.BusEventWithPayload{}function Q(e){var t,n;(0,s.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 G({pluginId:e,componentTitle:t,props:n});(0,s.getAppEvents)().publish(r)}(z,q,{initialPrompt:e.prompt,initialContext:e.context,initialAutoSend:null===(n=e.autoSend)||void 0===n||n,origin:e.origin,initialMode:e.mode})}function W(){!function(){const e=new B;(0,s.getAppEvents)().publish(e)}()}function H(e){var t,n;(0,s.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 V({pluginId:e,componentTitle:t,props:n});(0,s.getAppEvents)().publish(r)}(z,q,{initialPrompt:e.prompt,initialContext:e.context,initialAutoSend:null===(n=e.autoSend)||void 0===n||n,origin:e.origin,initialMode:e.mode})}function J(){const[e,t]=(0,i.useState)(!1);return(0,i.useEffect)((()=>{const e=D().subscribe((e=>t(e)));return()=>{e.unsubscribe()}}),[]),{isAvailable:e,openAssistant:e?Q:void 0,closeAssistant:e?W:void 0,toggleAssistant:e?H:void 0}}V.type="toggle-extension-sidebar";const K=require("@grafana/ui");var X=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}(),Z=Math.abs,Y=String.fromCharCode,ee=Object.assign;function te(e){return e.trim()}function ne(e,t,n){return e.replace(t,n)}function re(e,t){return e.indexOf(t)}function ae(e,t){return 0|e.charCodeAt(t)}function se(e,t,n){return e.slice(t,n)}function ie(e){return e.length}function oe(e){return e.length}function ce(e,t){return t.push(e),e}var ue=1,le=1,de=0,pe=0,fe=0,he="";function me(e,t,n,r,a,s,i){return{value:e,root:t,parent:n,type:r,props:a,children:s,line:ue,column:le,length:i,return:""}}function ve(e,t){return ee(me("",null,null,"",null,null,0),e,{length:-e.length},t)}function ge(){return fe=pe>0?ae(he,--pe):0,le--,10===fe&&(le=1,ue--),fe}function be(){return fe=pe<de?ae(he,pe++):0,le++,10===fe&&(le=1,ue++),fe}function ye(){return ae(he,pe)}function we(){return pe}function xe(e,t){return se(he,e,t)}function ke(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 Ee(e){return ue=le=1,de=ie(he=e),pe=0,[]}function Ae(e){return he="",e}function $e(e){return te(xe(pe-1,Ne(91===e?e+2:40===e?e+1:e)))}function Se(e){for(;(fe=ye())&&fe<33;)be();return ke(e)>2||ke(fe)>3?"":" "}function Ce(e,t){for(;--t&&be()&&!(fe<48||fe>102||fe>57&&fe<65||fe>70&&fe<97););return xe(e,we()+(t<6&&32==ye()&&32==be()))}function Ne(e){for(;be();)switch(fe){case e:return pe;case 34:case 39:34!==e&&39!==e&&Ne(fe);break;case 40:41===e&&Ne(e);break;case 92:be()}return pe}function Te(e,t){for(;be()&&e+fe!==57&&(e+fe!==84||47!==ye()););return"/*"+xe(t,pe-1)+"*"+Y(47===e?e:be())}function Ie(e){for(;!ke(ye());)be();return xe(e,pe)}var Le="-ms-",_e="-moz-",Ue="-webkit-",Pe="comm",Oe="rule",Me="decl",Re="@keyframes";function je(e,t){for(var n="",r=oe(e),a=0;a<r;a++)n+=t(e[a],a,e,t)||"";return n}function ze(e,t,n,r){switch(e.type){case"@layer":if(e.children.length)break;case"@import":case Me:return e.return=e.return||e.value;case Pe:return"";case Re:return e.return=e.value+"{"+je(e.children,r)+"}";case Oe:e.value=e.props.join(",")}return ie(n=je(e.children,r))?e.return=e.value+"{"+n+"}":""}function qe(e){return Ae(De("",null,null,null,[""],e=Ee(e),0,[0],e))}function De(e,t,n,r,a,s,i,o,c){for(var u=0,l=0,d=i,p=0,f=0,h=0,m=1,v=1,g=1,b=0,y="",w=a,x=s,k=r,E=y;v;)switch(h=b,b=be()){case 40:if(108!=h&&58==ae(E,d-1)){-1!=re(E+=ne($e(b),"&","&\f"),"&\f")&&(g=-1);break}case 34:case 39:case 91:E+=$e(b);break;case 9:case 10:case 13:case 32:E+=Se(h);break;case 92:E+=Ce(we()-1,7);continue;case 47:switch(ye()){case 42:case 47:ce(Ge(Te(be(),we()),t,n),c);break;default:E+="/"}break;case 123*m:o[u++]=ie(E)*g;case 125*m:case 59:case 0:switch(b){case 0:case 125:v=0;case 59+l:-1==g&&(E=ne(E,/\f/g,"")),f>0&&ie(E)-d&&ce(f>32?Be(E+";",r,n,d-1):Be(ne(E," ","")+";",r,n,d-2),c);break;case 59:E+=";";default:if(ce(k=Fe(E,t,n,u,l,a,o,y,w=[],x=[],d),s),123===b)if(0===l)De(E,t,k,k,w,s,d,o,x);else switch(99===p&&110===ae(E,3)?100:p){case 100:case 108:case 109:case 115:De(e,k,k,r&&ce(Fe(e,k,k,0,0,a,o,y,a,w=[],d),x),a,x,d,o,r?w:x);break;default:De(E,k,k,k,[""],x,0,o,x)}}u=l=f=0,m=g=1,y=E="",d=i;break;case 58:d=1+ie(E),f=h;default:if(m<1)if(123==b)--m;else if(125==b&&0==m++&&125==ge())continue;switch(E+=Y(b),b*m){case 38:g=l>0?1:(E+="\f",-1);break;case 44:o[u++]=(ie(E)-1)*g,g=1;break;case 64:45===ye()&&(E+=$e(be())),p=ye(),l=d=ie(y=E+=Ie(we())),b++;break;case 45:45===h&&2==ie(E)&&(m=0)}}return s}function Fe(e,t,n,r,a,s,i,o,c,u,l){for(var d=a-1,p=0===a?s:[""],f=oe(p),h=0,m=0,v=0;h<r;++h)for(var g=0,b=se(e,d+1,d=Z(m=i[h])),y=e;g<f;++g)(y=te(m>0?p[g]+" "+b:ne(b,/&\f/g,p[g])))&&(c[v++]=y);return me(e,t,n,0===a?Oe:o,c,u,l)}function Ge(e,t,n){return me(e,t,n,Pe,Y(fe),se(e,2,-2),0)}function Be(e,t,n,r){return me(e,t,n,Me,se(e,0,r),se(e,r+1,-1),r)}var Ve=function(e,t,n){for(var r=0,a=0;r=a,a=ye(),38===r&&12===a&&(t[n]=1),!ke(a);)be();return xe(e,pe)},Qe=new WeakMap,We=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)||Qe.get(n))&&!r){Qe.set(e,!0);for(var a=[],s=function(e,t){return Ae(function(e,t){var n=-1,r=44;do{switch(ke(r)){case 0:38===r&&12===ye()&&(t[n]=1),e[n]+=Ve(pe-1,t,n);break;case 2:e[n]+=$e(r);break;case 4:if(44===r){e[++n]=58===ye()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=Y(r)}}while(r=be());return e}(Ee(e),t))}(t,a),i=n.props,o=0,c=0;o<s.length;o++)for(var u=0;u<i.length;u++,c++)e.props[c]=a[o]?s[o].replace(/&\f/g,i[u]):i[u]+" "+s[o]}}},He=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}};function Je(e,t){switch(function(e,t){return 45^ae(e,0)?(((t<<2^ae(e,0))<<2^ae(e,1))<<2^ae(e,2))<<2^ae(e,3):0}(e,t)){case 5103:return Ue+"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 Ue+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return Ue+e+_e+e+Le+e+e;case 6828:case 4268:return Ue+e+Le+e+e;case 6165:return Ue+e+Le+"flex-"+e+e;case 5187:return Ue+e+ne(e,/(\w+).+(:[^]+)/,Ue+"box-$1$2"+Le+"flex-$1$2")+e;case 5443:return Ue+e+Le+"flex-item-"+ne(e,/flex-|-self/,"")+e;case 4675:return Ue+e+Le+"flex-line-pack"+ne(e,/align-content|flex-|-self/,"")+e;case 5548:return Ue+e+Le+ne(e,"shrink","negative")+e;case 5292:return Ue+e+Le+ne(e,"basis","preferred-size")+e;case 6060:return Ue+"box-"+ne(e,"-grow","")+Ue+e+Le+ne(e,"grow","positive")+e;case 4554:return Ue+ne(e,/([^-])(transform)/g,"$1"+Ue+"$2")+e;case 6187:return ne(ne(ne(e,/(zoom-|grab)/,Ue+"$1"),/(image-set)/,Ue+"$1"),e,"")+e;case 5495:case 3959:return ne(e,/(image-set\([^]*)/,Ue+"$1$`$1");case 4968:return ne(ne(e,/(.+:)(flex-)?(.*)/,Ue+"box-pack:$3"+Le+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+Ue+e+e;case 4095:case 3583:case 4068:case 2532:return ne(e,/(.+)-inline(.+)/,Ue+"$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(ie(e)-1-t>6)switch(ae(e,t+1)){case 109:if(45!==ae(e,t+4))break;case 102:return ne(e,/(.+:)(.+)-([^]+)/,"$1"+Ue+"$2-$3$1"+_e+(108==ae(e,t+3)?"$3":"$2-$3"))+e;case 115:return~re(e,"stretch")?Je(ne(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==ae(e,t+1))break;case 6444:switch(ae(e,ie(e)-3-(~re(e,"!important")&&10))){case 107:return ne(e,":",":"+Ue)+e;case 101:return ne(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+Ue+(45===ae(e,14)?"inline-":"")+"box$3$1"+Ue+"$2$3$1"+Le+"$2box$3")+e}break;case 5936:switch(ae(e,t+11)){case 114:return Ue+e+Le+ne(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return Ue+e+Le+ne(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return Ue+e+Le+ne(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return Ue+e+Le+e+e}return e}var Ke=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case Me:e.return=Je(e.value,e.length);break;case Re:return je([ve(e,{value:ne(e.value,"@","@"+Ue)})],r);case Oe: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 je([ve(e,{props:[ne(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return je([ve(e,{props:[ne(t,/:(plac\w+)/,":"+Ue+"input-$1")]}),ve(e,{props:[ne(t,/:(plac\w+)/,":-moz-$1")]}),ve(e,{props:[ne(t,/:(plac\w+)/,Le+"input-$1")]})],r)}return""}))}}],Xe={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 Ze(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}var Ye=/[A-Z]|^ms/g,et=/_EMO_([^_]+?)_([^]*?)_EMO_/g,tt=function(e){return 45===e.charCodeAt(1)},nt=function(e){return null!=e&&"boolean"!=typeof e},rt=Ze((function(e){return tt(e)?e:e.replace(Ye,"-$&").toLowerCase()})),at=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(et,(function(e,t,n){return it={name:t,styles:n,next:it},t}))}return 1===Xe[e]||tt(e)||"number"!=typeof t||0===t?t:t+"px"};function st(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 it={name:a.name,styles:a.styles,next:it},a.name;var s=n;if(void 0!==s.styles){var i=s.next;if(void 0!==i)for(;void 0!==i;)it={name:i.name,styles:i.styles,next:it},i=i.next;return s.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var a=0;a<n.length;a++)r+=st(e,t,n[a])+";";else for(var s in n){var i=n[s];if("object"!=typeof i){var o=i;null!=t&&void 0!==t[o]?r+=s+"{"+t[o]+"}":nt(o)&&(r+=rt(s)+":"+at(s,o)+";")}else if(!Array.isArray(i)||"string"!=typeof i[0]||null!=t&&void 0!==t[i[0]]){var c=st(e,t,i);switch(s){case"animation":case"animationName":r+=rt(s)+":"+c+";";break;default:r+=s+"{"+c+"}"}}else for(var u=0;u<i.length;u++)nt(i[u])&&(r+=rt(s)+":"+at(s,i[u])+";")}return r}(e,t,n);case"function":if(void 0!==e){var o=it,c=n(e);return it=o,st(e,t,c)}}var u=n;if(null==t)return u;var l=t[u];return void 0!==l?l:u}var it,ot=/label:\s*([^\s;{]+)\s*(;|$)/g;function ct(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="";it=void 0;var s=e[0];null==s||void 0===s.raw?(r=!1,a+=st(n,t,s)):a+=s[0];for(var i=1;i<e.length;i++)a+=st(n,t,e[i]),r&&(a+=s[i]);ot.lastIndex=0;for(var o,c="";null!==(o=ot.exec(a));)c+="-"+o[1];var u=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:u,styles:a,next:it}}function ut(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):n&&(r+=n+" ")})),r}function lt(e,t){if(void 0===e.inserted[t.name])return e.insert("",t,e.sheet,!0)}function dt(e,t,n){var r=[],a=ut(e,r,n);return r.length<2?n:a+t(r)}var pt=function e(t){for(var n="",r=0;r<t.length;r++){var a=t[r];if(null!=a){var s=void 0;switch(typeof a){case"boolean":break;case"object":if(Array.isArray(a))s=e(a);else for(var i in s="",a)a[i]&&i&&(s&&(s+=" "),s+=i);break;default:s=a}s&&(n&&(n+=" "),n+=s)}}return n};var ft=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,s=e.stylisPlugins||Ke,i={},o=[];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++)i[t[n]]=!0;o.push(e)}));var c,u,l,d,p=[ze,(d=function(e){c.insert(e)},function(e){e.root||(e=e.return)&&d(e)})],f=(u=[We,He].concat(s,p),l=oe(u),function(e,t,n,r){for(var a="",s=0;s<l;s++)a+=u[s](e,t,n,r)||"";return a});a=function(e,t,n,r){c=n,je(qe(e?e+"{"+t.styles+"}":t.styles),f),r&&(h.inserted[t.name]=!0)};var h={key:t,sheet:new X({key:t,container:r,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:i,registered:{},insert:a};return h.sheet.hydrate(o),h}(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=ct(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 dt(t.registered,n,pt(r))},injectGlobal:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];var a=ct(n,t.registered);lt(t,a)},keyframes:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];var a=ct(n,t.registered),s="animation-"+a.name;return lt(t,{name:a.name,styles:"@keyframes "+s+"{"+a.styles+"}"}),s},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:ut.bind(null,t.registered),merge:dt.bind(null,t.registered,n)}}({key:"css"}),ht=(ft.flush,ft.hydrate,ft.cx,ft.merge,ft.getRegisteredStyles,ft.injectGlobal,ft.keyframes,ft.css);function mt(e){const{isAvailable:t,openAssistant:n}=J();return t&&n?o().createElement(vt,{...e,openAssistant:n}):null}function vt({prompt:e,origin:t,context:n,autoSend:r=!0,title:a="Analyze with Assistant",size:c="sm",iconOnlyButton:u=!1,openAssistant:l,onClick:d}){const p=(0,K.useStyles2)(gt);return(0,i.useEffect)((()=>{(0,s.reportInteraction)("grafana_assistant_app_open_sidebar_button_displayed",{from:t})}),[t]),o().createElement(o().Fragment,null,u?o().createElement(K.IconButton,{name:"ai-sparkle",onClick:()=>{null==d||d(),l({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"}):o().createElement(K.Button,{icon:"ai-sparkle",onClick:()=>{null==d||d(),l({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))}ft.sheet,ft.cache;const gt=e=>{const t=e.colors.secondary.main,n=e.colors.emphasize(t,.05),r=e.colors.background.canvas,a=e.shape.radius.default,s=`max(calc(${a} - 1px), 1px)`,i={content:'""',position:"absolute",inset:0,borderRadius:a,background:"linear-gradient(90deg, rgb(168, 85, 247), rgb(249, 115, 22))",zIndex:-2,pointerEvents:"none"},o=e=>({content:'""',position:"absolute",inset:"1px",borderRadius:s,background:`linear-gradient(${e}, ${e}), ${r}`,zIndex:-1,transition:"none",pointerEvents:"none"});return{button:ht({label:"assistant-button",position:"relative",isolation:"isolate",border:"none",transition:"none !important","&::before":i,"&::after":{...o(t),transition:"none"},"&:hover":{transition:"none !important"},"&:hover::after":{background:`linear-gradient(${n}, ${n}), ${r}`}}),icon:ht({label:"assistant-icon",position:"relative",isolation:"isolate",border:"none",background:"none",padding:e.spacing(.5),"&::before":{...i,transition:"background 0.1s ease"},"&:hover::after":{...o(t),background:`linear-gradient(${n}, ${n}), ${r}`}})}};let bt=null,yt=null,wt=null;function xt(e){bt=e}function kt(e){yt=e}async function Et(){if(!bt){if(!yt)throw new Error("InlineAssistant not initialized. Make sure the Grafana Assistant plugin is loaded and initialized.");return wt||(wt=(async()=>{try{await yt()}catch(e){throw wt=null,e}})(),wt)}}function At(){if(!bt)throw new Error("InlineAssistant factory not initialized. Make sure the Grafana Assistant plugin is loaded.");return bt}function $t(){const[e,t]=(0,i.useState)(!1),[n,r]=(0,i.useState)(""),[a,s]=(0,i.useState)(null),o=(0,i.useRef)(null),c=(0,i.useCallback)((()=>{s(null),r("")}),[]),u=(0,i.useCallback)((()=>{o.current&&o.current.cancel(),t(!1)}),[]),l=(0,i.useCallback)((async e=>{var n;s(null),r(""),t(!0);try{await Et();const n=At();o.current||(o.current=await n(e.origin)),await o.current.sendPrompt({prompt:e.prompt,systemPrompt:e.systemPrompt,onStart:()=>{t(!0)},onDelta:e=>{r((t=>t+e))},onComplete:n=>{var a;r(n),t(!1),null===(a=e.onComplete)||void 0===a||a.call(e,n)},onError:n=>{var r;s(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));s(a),t(!1),null===(n=e.onError)||void 0===n||n.call(e,a)}}),[]);return(0,i.useEffect)((()=>()=>{o.current&&(o.current.cancel(),o.current.dispose(),o.current=null)}),[]),{generate:l,isGenerating:e,content:n,error:a,cancel:u,reset:c}}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:()=>Ut,AITextInput:()=>Lt,ASSISTANT_PLUGIN_ID:()=>G,ASSISTANT_PLUGIN_TITLE:()=>F,CALLBACK_EXTENSION_POINT:()=>R,ComponentNodeData:()=>x,DashboardNodeData:()=>A,DatasourceNodeData:()=>C,EntityNodeData:()=>S,FolderNodeData:()=>$,LabelNameNodeData:()=>I,LabelValueNodeData:()=>N,OpenAssistantButton:()=>yt,StructuredNodeData:()=>a,closeAssistant:()=>H,createAssistantContextItem:()=>L,ensureInlineAssistantInitialized:()=>St,getExposeAssistantFunctionsConfig:()=>j,getInlineAssistantFactory:()=>It,isAssistantAvailable:()=>q,newFunctionNamespace:()=>M,openAssistant:()=>Q,provideComponents:()=>E,providePageContext:()=>g,provideQuestions:()=>P,setInlineAssistantFactory:()=>$t,setInlineAssistantInitializer:()=>Ct,toggleAssistant:()=>J,useAssistant:()=>X,useInlineAssistant:()=>Nt,usePageComponents:()=>k,usePageContext:()=>b,useProvidePageContext:()=>v,useProvideQuestions:()=>U,useQuestions:()=>O});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"),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 r=e=>{const t=f(),r=t.findIndex((e=>e.id===n.id));if(-1!==r){const n=[...t];n[r]={...n[r],context:[...e]},m(n),window.dispatchEvent(new CustomEvent(u,{detail:n[r]}))}};return r.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}})))},r}function v(e,t=[]){const n=(0,i.useRef)(void 0),r=(0,i.useRef)(t);return r.current=t,(0,i.useEffect)((()=>(n.current=g(e,r.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)([]),r=(0,o.useLocationService)(),a=(0,i.useRef)("");(0,i.useEffect)((()=>{const e=()=>{const e=function(e){if(!e)return[];const t=[],n=f();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 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(),r=n.findIndex((e=>e.id===t.id));if(-1!==r){const e=[...n];e[r]=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 r=f(),a=r.findIndex((e=>e.id===n));-1!==a&&m(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=f(),a=new Set(r.map((e=>e.id))),o=n.filter((e=>!a.has(e.id)));o.length>0&&m([...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,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,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})]),i=g(r,[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 A 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 $ 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,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===(a=null===(r=null==s?void 0:s.meta)||void 0===r?void 0:r.info)||void 0===a?void 0:a.logos)||void 0===i?void 0:i.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"};function L(e,t){var n,o,i;const s=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 A(t);case"dashboard_folder":return new $(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"}(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:_[e],navigable:!1,selectable:!0,data:s},occurrences:[]}}function P(e,t){const n=y("question"),r=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:[]}))),a=g(e,r(t)),o=e=>{a(r(e))};return o.unregister=a.unregister,o}function U(e,t=[]){const n=(0,i.useMemo)((()=>y("question")),[]),r=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:[]}))),a=v(e,r(t));return e=>{a(r(e))}}function O(){const e=b({allowQuestions:!0,allowComponents:!1});return D(e)}const D=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)||[]}})),R="grafana-assistant-app/callback/v0-alpha";function M(e,t){return{namespace:e,functions:t}}function j(e){return{title:"callback",targets:[R],fn:()=>e.map((e=>({namespace:e.namespace,functions:e.functions})))}}const z=require("rxjs"),G="grafana-assistant-app",F="Grafana Assistant";function q(){if(!o.getObservablePluginLinks)return(0,z.of)(!1);return(0,o.getObservablePluginLinks)({extensionPointId:"grafana/extension-sidebar/v0-alpha"}).pipe((0,z.map)((e=>e.some((e=>e.pluginId===G&&e.title===F)))))}const B=require("@grafana/data");class W extends B.BusEventWithPayload{}W.type="open-extension-sidebar";class V extends B.BusEventBase{}V.type="close-extension-sidebar";class K extends B.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 r=new W({pluginId:e,componentTitle:t,props:n});(0,o.getAppEvents)().publish(r)}(G,F,{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 r=new K({pluginId:e,componentTitle:t,props:n});(0,o.getAppEvents)().publish(r)}(G,F,{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=q().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 re(e){return e.trim()}function ae(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,r,a,o,i){return{value:e,root:t,parent:n,type:r,props:a,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 Ee(e,t){return se(ge,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 $e(e){return de=pe=1,fe=ce(ge=e),me=0,[]}function Ce(e){return ge="",e}function Se(e){return re(Ee(me-1,Te(91===e?e+2:40===e?e+1:e)))}function Ie(e){for(;(he=xe())&&he<33;)we();return Ae(e)>2||Ae(he)>3?"":" "}function Ne(e,t){for(;--t&&we()&&!(he<48||he>102||he>57&&he<65||he>70&&he<97););return Ee(e,ke()+(t<6&&32==xe()&&32==we()))}function Te(e){for(;we();)switch(he){case e:return me;case 34:case 39:34!==e&&39!==e&&Te(he);break;case 40:41===e&&Te(e);break;case 92:we()}return me}function _e(e,t){for(;we()&&e+he!==57&&(e+he!==84||47!==xe()););return"/*"+Ee(t,me-1)+"*"+te(47===e?e:we())}function Le(e){for(;!Ae(xe());)we();return Ee(e,me)}var Pe="-ms-",Ue="-moz-",Oe="-webkit-",De="comm",Re="rule",Me="decl",je="@keyframes";function ze(e,t){for(var n="",r=le(e),a=0;a<r;a++)n+=t(e[a],a,e,t)||"";return n}function Ge(e,t,n,r){switch(e.type){case"@layer":if(e.children.length)break;case"@import":case Me:return e.return=e.return||e.value;case De:return"";case je:return e.return=e.value+"{"+ze(e.children,r)+"}";case Re:e.value=e.props.join(",")}return ce(n=ze(e.children,r))?e.return=e.value+"{"+n+"}":""}function Fe(e){return Ce(qe("",null,null,null,[""],e=$e(e),0,[0],e))}function qe(e,t,n,r,a,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=a,x=o,k=r,E=y;g;)switch(m=b,b=we()){case 40:if(108!=m&&58==ie(E,d-1)){-1!=oe(E+=ae(Se(b),"&","&\f"),"&\f")&&(v=-1);break}case 34:case 39:case 91:E+=Se(b);break;case 9:case 10:case 13:case 32:E+=Ie(m);break;case 92:E+=Ne(ke()-1,7);continue;case 47:switch(xe()){case 42:case 47:ue(We(_e(we(),ke()),t,n),c);break;default:E+="/"}break;case 123*h:s[l++]=ce(E)*v;case 125*h:case 59:case 0:switch(b){case 0:case 125:g=0;case 59+u:-1==v&&(E=ae(E,/\f/g,"")),f>0&&ce(E)-d&&ue(f>32?Ve(E+";",r,n,d-1):Ve(ae(E," ","")+";",r,n,d-2),c);break;case 59:E+=";";default:if(ue(k=Be(E,t,n,l,u,a,s,y,w=[],x=[],d),o),123===b)if(0===u)qe(E,t,k,k,w,o,d,s,x);else switch(99===p&&110===ie(E,3)?100:p){case 100:case 108:case 109:case 115:qe(e,k,k,r&&ue(Be(e,k,k,0,0,a,s,y,a,w=[],d),x),a,x,d,s,r?w:x);break;default:qe(E,k,k,k,[""],x,0,s,x)}}l=u=f=0,h=v=1,y=E="",d=i;break;case 58:d=1+ce(E),f=m;default:if(h<1)if(123==b)--h;else if(125==b&&0==h++&&125==ye())continue;switch(E+=te(b),b*h){case 38:v=u>0?1:(E+="\f",-1);break;case 44:s[l++]=(ce(E)-1)*v,v=1;break;case 64:45===xe()&&(E+=Se(we())),p=xe(),u=d=ce(y=E+=Le(ke())),b++;break;case 45:45===m&&2==ce(E)&&(h=0)}}return o}function Be(e,t,n,r,a,o,i,s,c,l,u){for(var d=a-1,p=0===a?o:[""],f=le(p),m=0,h=0,g=0;m<r;++m)for(var v=0,b=se(e,d+1,d=ee(h=i[m])),y=e;v<f;++v)(y=re(h>0?p[v]+" "+b:ae(b,/&\f/g,p[v])))&&(c[g++]=y);return ve(e,t,n,0===a?Re:s,c,l,u)}function We(e,t,n){return ve(e,t,n,De,te(he),se(e,2,-2),0)}function Ve(e,t,n,r){return ve(e,t,n,Me,se(e,0,r),se(e,r+1,-1),r)}var Ke=function(e,t,n){for(var r=0,a=0;r=a,a=xe(),38===r&&12===a&&(t[n]=1),!Ae(a);)we();return Ee(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,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)||Qe.get(n))&&!r){Qe.set(e,!0);for(var a=[],o=function(e,t){return Ce(function(e,t){var n=-1,r=44;do{switch(Ae(r)){case 0:38===r&&12===xe()&&(t[n]=1),e[n]+=Ke(me-1,t,n);break;case 2:e[n]+=Se(r);break;case 4:if(44===r){e[++n]=58===xe()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=te(r)}}while(r=we());return e}($e(e),t))}(t,a),i=n.props,s=0,c=0;s<o.length;s++)for(var l=0;l<i.length;l++,c++)e.props[c]=a[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+ae(e,/(\w+).+(:[^]+)/,Oe+"box-$1$2"+Pe+"flex-$1$2")+e;case 5443:return Oe+e+Pe+"flex-item-"+ae(e,/flex-|-self/,"")+e;case 4675:return Oe+e+Pe+"flex-line-pack"+ae(e,/align-content|flex-|-self/,"")+e;case 5548:return Oe+e+Pe+ae(e,"shrink","negative")+e;case 5292:return Oe+e+Pe+ae(e,"basis","preferred-size")+e;case 6060:return Oe+"box-"+ae(e,"-grow","")+Oe+e+Pe+ae(e,"grow","positive")+e;case 4554:return Oe+ae(e,/([^-])(transform)/g,"$1"+Oe+"$2")+e;case 6187:return ae(ae(ae(e,/(zoom-|grab)/,Oe+"$1"),/(image-set)/,Oe+"$1"),e,"")+e;case 5495:case 3959:return ae(e,/(image-set\([^]*)/,Oe+"$1$`$1");case 4968:return ae(ae(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 ae(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 ae(e,/(.+:)(.+)-([^]+)/,"$1"+Oe+"$2-$3$1"+Ue+(108==ie(e,t+3)?"$3":"$2-$3"))+e;case 115:return~oe(e,"stretch")?Xe(ae(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 ae(e,":",":"+Oe)+e;case 101:return ae(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+ae(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return Oe+e+Pe+ae(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return Oe+e+Pe+ae(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return Oe+e+Pe+e+e}return e}var Ze=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case Me:e.return=Xe(e.value,e.length);break;case je:return ze([be(e,{value:ae(e.value,"@","@"+Oe)})],r);case Re: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 ze([be(e,{props:[ae(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return ze([be(e,{props:[ae(t,/:(plac\w+)/,":"+Oe+"input-$1")]}),be(e,{props:[ae(t,/:(plac\w+)/,":-moz-$1")]}),be(e,{props:[ae(t,/:(plac\w+)/,Pe+"input-$1")]})],r)}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,rt=function(e){return 45===e.charCodeAt(1)},at=function(e){return null!=e&&"boolean"!=typeof e},ot=et((function(e){return rt(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]||rt(e)||"number"!=typeof t||0===t?t:t+"px"};function st(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 ct={name:a.name,styles:a.styles,next:ct},a.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 r="";if(Array.isArray(n))for(var a=0;a<n.length;a++)r+=st(e,t,n[a])+";";else for(var o in n){var i=n[o];if("object"!=typeof i){var s=i;null!=t&&void 0!==t[s]?r+=o+"{"+t[s]+"}":at(s)&&(r+=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":r+=ot(o)+":"+c+";";break;default:r+=o+"{"+c+"}"}}else for(var l=0;l<i.length;l++)at(i[l])&&(r+=ot(o)+":"+it(o,i[l])+";")}return r}(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 r=!0,a="";ct=void 0;var o=e[0];null==o||void 0===o.raw?(r=!1,a+=st(n,t,o)):a+=o[0];for(var i=1;i<e.length;i++)a+=st(n,t,e[i]),r&&(a+=o[i]);lt.lastIndex=0;for(var s,c="";null!==(s=lt.exec(a));)c+="-"+s[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:ct}}function dt(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):n&&(r+=n+" ")})),r}function pt(e,t){if(void 0===e.inserted[t.name])return e.insert("",t,e.sheet,!0)}function ft(e,t,n){var r=[],a=dt(e,r,n);return r.length<2?n:a+t(r)}var mt=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 i in o="",a)a[i]&&i&&(o&&(o+=" "),o+=i);break;default:o=a}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 r,a,o=e.stylisPlugins||Ze,i={},s=[];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++)i[t[n]]=!0;s.push(e)}));var c,l,u,d,p=[Ge,(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,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,ze(Fe(e?e+"{"+t.styles+"}":t.styles),f),r&&(m.inserted[t.name]=!0)};var m={key:t,sheet:new Y({key:t,container:r,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:i,registered:{},insert:a};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),r=0;r<e;r++)n[r]=arguments[r];var a=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 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,mt(r))},injectGlobal:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];var a=ut(n,t.registered);pt(t,a)},keyframes:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];var a=ut(n,t.registered),o="animation-"+a.name;return pt(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: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:r=!0,title:a="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:r,origin:t})},variant:"secondary",size:c,"aria-label":a,className:p.icon,tooltip:a,"data-testid":"assistant-icon-button"}):s().createElement(Z.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))}ht.sheet,ht.cache;const xt=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)`,i={content:'""',position:"absolute",inset:0,borderRadius:a,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}), ${r}`,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}), ${r}`}}),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}), ${r}`}})}};let kt=null,Et=null,At=null;function $t(e){kt=e}function Ct(e){Et=e}async function St(){if(!kt){if(!Et)throw new Error("InlineAssistant not initialized. Make sure the Grafana Assistant plugin is loaded and initialized.");return At||(At=(async()=>{try{await Et()}catch(e){throw At=null,e}})(),At)}}function It(){if(!kt)throw new Error("InlineAssistant factory not initialized. Make sure the Grafana Assistant plugin is loaded.");return kt}function Nt(){const[e,t]=(0,i.useState)(!1),[n,r]=(0,i.useState)(""),[a,o]=(0,i.useState)(null),s=(0,i.useRef)(null),c=(0,i.useCallback)((()=>{o(null),r("")}),[]),l=(0,i.useCallback)((()=>{s.current&&s.current.cancel(),t(!1)}),[]),u=(0,i.useCallback)((async e=>{var n;o(null),r(""),t(!0);try{await St();const n=It();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;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,i.useEffect)((()=>()=>{s.current&&(s.current.cancel(),s.current.dispose(),s.current=null)}),[]),{generate:u,isGenerating:e,content:n,error:a,cancel:l,reset:c}}const Tt=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]]},_t=(e,t,n,r)=>{const a=Array.from({length:101},((e,t)=>t)),o={},[i,s]=Tt(e),c=null!=n?n:i,l=null!=r?r:s;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 Lt({value:e,onChange:t,placeholder:n,origin:r,systemPrompt:a,onComplete:o,onError:i,onDelta:c,disabled:l=!1,className:u,"data-testid":d}){const{generate:p,isGenerating:f,error:m,reset:h}=Nt(),g=!e.trim()||l||f,v=(0,Z.useStyles2)(Pt),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==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 Pt=e=>{const t=e.colors.background.primary,n=vt({label:"ai-input-border-animation",..._t(e,t)}),[r,a]=Tt(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%, ${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 Ut({value:e,onChange:t,placeholder:n,origin:r,systemPrompt:a,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}=Nt(),v=!e.trim()||l||m,b=(0,Z.useStyles2)(Ot),y=async()=>{if(v)return;const t=e.trim();g(),await f({prompt:t,origin:r,systemPrompt:a,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 Ot=e=>{const t=e.colors.background.primary,n=vt({label:"ai-textarea-border-animation",..._t(e,t)}),[r,a]=Tt(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%, ${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: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})();
2
2
  //# sourceMappingURL=index.js.map