@grafana/assistant 0.1.10 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -531,6 +531,65 @@ A React hook to check terms and conditions acceptance status. Automatically fetc
531
531
  - `loading: boolean` - Whether the check is in progress
532
532
  - `error: string | null` - Error message if the check failed, null otherwise
533
533
 
534
+ #### `useLimits(): LimitsHookResult`
535
+
536
+ A React hook to check user prompt limits. Automatically fetches limits data on mount and listens to real-time updates via custom events when the Assistant plugin updates limits.
537
+
538
+ **Returns:** An object with the following properties:
539
+
540
+ - `count: number` - Current prompt count for the month
541
+ - `limit: number` - Monthly prompt limit (0 = unlimited)
542
+ - `month: string` - Current month in YYYY-MM format
543
+ - `isLimitReached: boolean` - Whether the limit has been reached
544
+ - `loading: boolean` - Whether the initial fetch is in progress
545
+ - `error: string | null` - Error message if the fetch failed, null otherwise
546
+ - `refetch: () => void` - Function to manually refetch limits
547
+
548
+ **Example:**
549
+
550
+ ```typescript
551
+ import { useLimits } from '@grafana/assistant';
552
+
553
+ function MyComponent() {
554
+ const { count, limit, isLimitReached, loading, error } = useLimits();
555
+
556
+ if (loading) return <div>Loading...</div>;
557
+ if (error) return <div>Error: {error}</div>;
558
+ if (isLimitReached) {
559
+ return <div>Monthly limit reached ({count}/{limit})</div>;
560
+ }
561
+ return <div>Prompts used: {count}/{limit || 'unlimited'}</div>;
562
+ }
563
+ ```
564
+
565
+ #### `checkLimits(): Promise<LimitsData>`
566
+
567
+ An async function to check user prompt limits. Returns a promise with the limits data.
568
+
569
+ **Returns:** A promise that resolves to an object with:
570
+
571
+ - `count: number` - Current prompt count for the month
572
+ - `limit: number` - Monthly prompt limit (0 = unlimited)
573
+ - `month: string` - Current month in YYYY-MM format
574
+ - `isLimitReached: boolean` - Whether the limit has been reached
575
+
576
+ **Example:**
577
+
578
+ ```typescript
579
+ import { checkLimits } from '@grafana/assistant';
580
+
581
+ async function checkUserLimits() {
582
+ try {
583
+ const { isLimitReached, count, limit } = await checkLimits();
584
+ if (isLimitReached) {
585
+ console.log(`Limit reached: ${count}/${limit}`);
586
+ }
587
+ } catch (error) {
588
+ console.error('Failed to check limits:', error);
589
+ }
590
+ }
591
+ ```
592
+
534
593
  #### `usePageContext(): ChatContextItem[]`
535
594
 
536
595
  A React hook that returns all active context items for the current page based on registered URL patterns.
@@ -803,6 +862,43 @@ export function WeatherComponent() {
803
862
  }
804
863
  ```
805
864
 
865
+ ### Investigation Events
866
+
867
+ Subscribe to investigation lifecycle events to react when investigations are created.
868
+
869
+ #### `onInvestigationCreated(callback: (payload: InvestigationCreatedPayload) => void): () => void`
870
+
871
+ Subscribe to investigation created events.
872
+
873
+ **Parameters:**
874
+
875
+ - `callback` - Function called when an investigation is created, receives `{ investigationId: string }`
876
+
877
+ **Returns:** An unsubscribe function to stop listening for events
878
+
879
+ **Example:**
880
+
881
+ ```typescript
882
+ import { onInvestigationCreated } from '@grafana/assistant';
883
+
884
+ // Subscribe to investigation creation events
885
+ const unsubscribe = onInvestigationCreated((payload) => {
886
+ console.log('Investigation created:', payload.investigationId);
887
+ // Navigate to the investigation, update UI, etc.
888
+ });
889
+
890
+ // Later, when you want to stop listening
891
+ unsubscribe();
892
+ ```
893
+
894
+ #### `emitInvestigationCreated(investigationId: string): void`
895
+
896
+ Emit an investigation created event. This is typically used internally by the Assistant but can be called by external integrations if needed.
897
+
898
+ **Parameters:**
899
+
900
+ - `investigationId` - The ID of the newly created investigation
901
+
806
902
  ### Availability Functions
807
903
 
808
904
  #### `isAssistantAvailable(): Observable<boolean>`
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
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
+ export * from './investigations';
2
3
  export * from './functions';
3
4
  export * from './hook';
4
5
  export * from './plugin';
@@ -7,4 +8,5 @@ export * from './components';
7
8
  export * from './inline';
8
9
  export * from './terms';
9
10
  export * from './tools';
11
+ export * from './limits';
10
12
  //# 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,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"}
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,kBAAkB,CAAC;AACjC,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;AACxB,cAAc,UAAU,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 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:()=>qt,AITextInput:()=>Ft,ASSISTANT_PLUGIN_ID:()=>G,ASSISTANT_PLUGIN_TITLE:()=>B,CALLBACK_EXTENSION_POINT:()=>M,ComponentNodeData:()=>k,DashboardNodeData:()=>$,DatasourceNodeData:()=>I,EntityNodeData:()=>S,FolderNodeData:()=>C,LabelNameNodeData:()=>N,LabelValueNodeData:()=>_,OpenAssistantButton:()=>At,OpenAssistantSplitButton:()=>It,PlaybookNodeData:()=>U,StructuredNodeData:()=>a,TERMS_AND_CONDITIONS_REFRESH_EVENT:()=>Wt,checkTerms:()=>Kt,closeAssistant:()=>ee,createAssistantContextItem:()=>P,createTool:()=>Ht,ensureInlineAssistantInitialized:()=>Ot,getExposeAssistantFunctionsConfig:()=>j,getInlineAssistantFactory:()=>Rt,isAssistantAvailable:()=>Q,newFunctionNamespace:()=>F,openAssistant:()=>Y,provideComponents:()=>A,providePageContext:()=>g,provideQuestions:()=>O,setInlineAssistantFactory:()=>Pt,setInlineAssistantInitializer:()=>Ut,toggleAssistant:()=>te,useAssistant:()=>ne,useInlineAssistant:()=>zt,usePageComponents:()=>E,usePageContext:()=>y,useProvidePageContext:()=>b,useProvideQuestions:()=>R,useQuestions:()=>z,useTerms:()=>Qt});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){var n;(n=e)instanceof RegExp?n.source:"string"!=typeof n||n&&""!==n.trim()||console.warn("useProvidePageContext: Empty string passed as urlPattern. This will cause the context to not match any pages.");const r={id:w(),urlPattern:e,context:[...t]};f([...m(),r]),window.dispatchEvent(new CustomEvent(u,{detail:r}));const a=e=>{const t=m(),n=t.findIndex((e=>e.id===r.id));if(-1!==n){const r=[...t];r[n]={...r[n],context:[...e]},f(r),window.dispatchEvent(new CustomEvent(u,{detail:r[n]}))}};return a.unregister=()=>{const e=m(),t=e.findIndex((e=>e.id===r.id));-1!==t&&(f(e.filter(((e,n)=>n!==t))),window.dispatchEvent(new CustomEvent(d,{detail:{id:r.id}})))},a}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)})));const v=[];function b(e,t=v){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 y(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)x(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 w(e="page-context"){return`${e}-${Date.now()}-${Math.random().toString(36).slice(2,11)}`}function x(e,t){if(t instanceof RegExp)return t.test(e);if("string"==typeof t){if(!t||""===t.trim())return!1;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}class k 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 E(){const e=y({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 A(e,t,n,r=/.*/){if((a=r)instanceof RegExp?".*"===a.source&&""===a.flags:".*"===a||"/.*/"===a){const r=g(/.*/,[P("component",{components:n,prompt:e,namespace:t})]),a=(e,n)=>{r([P("component",{components:e,prompt:n,namespace:t})])};return a.unregister=r.unregister,a}var a;const o=g(/.*/,[P("component",{components:n,prompt:"",namespace:t})]),s=g(r,[P("component",{components:{},prompt:e,namespace:t})]),i=(e,n)=>{o([P("component",{components:e,prompt:"",namespace:t})]),s([P("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 C 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 I 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 N 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 _ 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 L={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 P(e,t){var n,o,s;const i=function(e,t){switch(e){case"datasource":return new I({...t,...T(t.datasourceUid)});case"label_name":return new N({...t,...T(t.datasourceUid)});case"label_value":return new _({...t,...T(t.datasourceUid)});case"dashboard":return new $(t);case"dashboard_folder":return new C(t);case"structured":return new a(t);case"component":return new k({...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:L[e],navigable:!1,selectable:!0,data:i},occurrences:[]}}class U 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 O(e,t){const n=w("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 R(e,t=[]){const n=(0,s.useMemo)((()=>w("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=b(e,r(t));return e=>{a(r(e))}}function z(){const e=y({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,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)||[]}})),M="grafana-assistant-app/callback/v0-alpha";function F(e,t){return{namespace:e,functions:t}}function j(e){return{title:"callback",targets:[M],fn:()=>e.map((e=>({namespace:e.namespace,functions:e.functions})))}}const q=require("rxjs"),G="grafana-assistant-app",B="Grafana Assistant",W=10,V=100,K=5e3;function Q(){return o.getObservablePluginLinks?(0,q.defer)((()=>{try{return(0,o.getObservablePluginLinks)({extensionPointId:"grafana/extension-sidebar/v0-alpha"}).pipe((0,q.map)((e=>e.some((e=>e.pluginId===G&&e.title===B)))))}catch(e){return(0,q.throwError)((()=>e))}})).pipe((0,q.retry)({count:W,delay:(e,t)=>{var n;const r=(null===(n=null==e?void 0:e.message)||void 0===n?void 0:n.toLowerCase())||"";if(!(r.includes("can only be used after")||r.includes("grafana instance has started")||r.includes("not started")))throw e;const a=Math.min(V*Math.pow(2,t-1),K);return(0,q.timer)(a)}}),(0,q.catchError)((()=>(0,q.of)(!1)))):(0,q.of)(!1)}const H=require("@grafana/data");class J extends H.BusEventWithPayload{}J.type="open-extension-sidebar";class X extends H.BusEventBase{}X.type="close-extension-sidebar";class Z extends H.BusEventWithPayload{}function Y(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 J({pluginId:e,componentTitle:t,props:n});(0,o.getAppEvents)().publish(r)}(G,B,{initialPrompt:e.prompt,initialContext:e.context,initialAutoSend:null===(n=e.autoSend)||void 0===n||n,origin:e.origin,initialMode:e.mode})}function ee(){!function(){const e=new X;(0,o.getAppEvents)().publish(e)}()}function te(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 Z({pluginId:e,componentTitle:t,props:n});(0,o.getAppEvents)().publish(r)}(G,B,{initialPrompt:e.prompt,initialContext:e.context,initialAutoSend:null===(n=e.autoSend)||void 0===n||n,origin:e.origin,initialMode:e.mode})}function ne(){const[e,t]=(0,s.useState)(!1);return(0,s.useEffect)((()=>{const e=Q().subscribe((e=>t(e)));return()=>{e.unsubscribe()}}),[]),{isAvailable:e,openAssistant:e?Y:void 0,closeAssistant:e?ee:void 0,toggleAssistant:e?te:void 0}}Z.type="toggle-extension-sidebar";const re=require("@grafana/ui");var ae=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}(),oe=Math.abs,se=String.fromCharCode,ie=Object.assign;function ce(e){return e.trim()}function le(e,t,n){return e.replace(t,n)}function ue(e,t){return e.indexOf(t)}function de(e,t){return 0|e.charCodeAt(t)}function pe(e,t,n){return e.slice(t,n)}function me(e){return e.length}function fe(e){return e.length}function he(e,t){return t.push(e),e}var ge=1,ve=1,be=0,ye=0,we=0,xe="";function ke(e,t,n,r,a,o,s){return{value:e,root:t,parent:n,type:r,props:a,children:o,line:ge,column:ve,length:s,return:""}}function Ee(e,t){return ie(ke("",null,null,"",null,null,0),e,{length:-e.length},t)}function Ae(){return we=ye>0?de(xe,--ye):0,ve--,10===we&&(ve=1,ge--),we}function $e(){return we=ye<be?de(xe,ye++):0,ve++,10===we&&(ve=1,ge++),we}function Ce(){return de(xe,ye)}function Ie(){return ye}function Se(e,t){return pe(xe,e,t)}function Ne(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 ge=ve=1,be=me(xe=e),ye=0,[]}function Te(e){return xe="",e}function Le(e){return ce(Se(ye-1,Oe(91===e?e+2:40===e?e+1:e)))}function Pe(e){for(;(we=Ce())&&we<33;)$e();return Ne(e)>2||Ne(we)>3?"":" "}function Ue(e,t){for(;--t&&$e()&&!(we<48||we>102||we>57&&we<65||we>70&&we<97););return Se(e,Ie()+(t<6&&32==Ce()&&32==$e()))}function Oe(e){for(;$e();)switch(we){case e:return ye;case 34:case 39:34!==e&&39!==e&&Oe(we);break;case 40:41===e&&Oe(e);break;case 92:$e()}return ye}function Re(e,t){for(;$e()&&e+we!==57&&(e+we!==84||47!==Ce()););return"/*"+Se(t,ye-1)+"*"+se(47===e?e:$e())}function ze(e){for(;!Ne(Ce());)$e();return Se(e,ye)}var De="-ms-",Me="-moz-",Fe="-webkit-",je="comm",qe="rule",Ge="decl",Be="@keyframes";function We(e,t){for(var n="",r=fe(e),a=0;a<r;a++)n+=t(e[a],a,e,t)||"";return n}function Ve(e,t,n,r){switch(e.type){case"@layer":if(e.children.length)break;case"@import":case Ge:return e.return=e.return||e.value;case je:return"";case Be:return e.return=e.value+"{"+We(e.children,r)+"}";case qe:e.value=e.props.join(",")}return me(n=We(e.children,r))?e.return=e.value+"{"+n+"}":""}function Ke(e){return Te(Qe("",null,null,null,[""],e=_e(e),0,[0],e))}function Qe(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=$e()){case 40:if(108!=f&&58==de(E,d-1)){-1!=ue(E+=le(Le(b),"&","&\f"),"&\f")&&(v=-1);break}case 34:case 39:case 91:E+=Le(b);break;case 9:case 10:case 13:case 32:E+=Pe(f);break;case 92:E+=Ue(Ie()-1,7);continue;case 47:switch(Ce()){case 42:case 47:he(Je(Re($e(),Ie()),t,n),c);break;default:E+="/"}break;case 123*h:i[l++]=me(E)*v;case 125*h:case 59:case 0:switch(b){case 0:case 125:g=0;case 59+u:-1==v&&(E=le(E,/\f/g,"")),m>0&&me(E)-d&&he(m>32?Xe(E+";",r,n,d-1):Xe(le(E," ","")+";",r,n,d-2),c);break;case 59:E+=";";default:if(he(k=He(E,t,n,l,u,a,i,y,w=[],x=[],d),o),123===b)if(0===u)Qe(E,t,k,k,w,o,d,i,x);else switch(99===p&&110===de(E,3)?100:p){case 100:case 108:case 109:case 115:Qe(e,k,k,r&&he(He(e,k,k,0,0,a,i,y,a,w=[],d),x),a,x,d,i,r?w:x);break;default:Qe(E,k,k,k,[""],x,0,i,x)}}l=u=m=0,h=v=1,y=E="",d=s;break;case 58:d=1+me(E),m=f;default:if(h<1)if(123==b)--h;else if(125==b&&0==h++&&125==Ae())continue;switch(E+=se(b),b*h){case 38:v=u>0?1:(E+="\f",-1);break;case 44:i[l++]=(me(E)-1)*v,v=1;break;case 64:45===Ce()&&(E+=Le($e())),p=Ce(),u=d=me(y=E+=ze(Ie())),b++;break;case 45:45===f&&2==me(E)&&(h=0)}}return o}function He(e,t,n,r,a,o,s,i,c,l,u){for(var d=a-1,p=0===a?o:[""],m=fe(p),f=0,h=0,g=0;f<r;++f)for(var v=0,b=pe(e,d+1,d=oe(h=s[f])),y=e;v<m;++v)(y=ce(h>0?p[v]+" "+b:le(b,/&\f/g,p[v])))&&(c[g++]=y);return ke(e,t,n,0===a?qe:i,c,l,u)}function Je(e,t,n){return ke(e,t,n,je,se(we),pe(e,2,-2),0)}function Xe(e,t,n,r){return ke(e,t,n,Ge,pe(e,0,r),pe(e,r+1,-1),r)}var Ze=function(e,t,n){for(var r=0,a=0;r=a,a=Ce(),38===r&&12===a&&(t[n]=1),!Ne(a);)$e();return Se(e,ye)},Ye=new WeakMap,et=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)||Ye.get(n))&&!r){Ye.set(e,!0);for(var a=[],o=function(e,t){return Te(function(e,t){var n=-1,r=44;do{switch(Ne(r)){case 0:38===r&&12===Ce()&&(t[n]=1),e[n]+=Ze(ye-1,t,n);break;case 2:e[n]+=Le(r);break;case 4:if(44===r){e[++n]=58===Ce()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=se(r)}}while(r=$e());return e}(_e(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]}}},tt=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}};function nt(e,t){switch(function(e,t){return 45^de(e,0)?(((t<<2^de(e,0))<<2^de(e,1))<<2^de(e,2))<<2^de(e,3):0}(e,t)){case 5103:return Fe+"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 Fe+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return Fe+e+Me+e+De+e+e;case 6828:case 4268:return Fe+e+De+e+e;case 6165:return Fe+e+De+"flex-"+e+e;case 5187:return Fe+e+le(e,/(\w+).+(:[^]+)/,Fe+"box-$1$2"+De+"flex-$1$2")+e;case 5443:return Fe+e+De+"flex-item-"+le(e,/flex-|-self/,"")+e;case 4675:return Fe+e+De+"flex-line-pack"+le(e,/align-content|flex-|-self/,"")+e;case 5548:return Fe+e+De+le(e,"shrink","negative")+e;case 5292:return Fe+e+De+le(e,"basis","preferred-size")+e;case 6060:return Fe+"box-"+le(e,"-grow","")+Fe+e+De+le(e,"grow","positive")+e;case 4554:return Fe+le(e,/([^-])(transform)/g,"$1"+Fe+"$2")+e;case 6187:return le(le(le(e,/(zoom-|grab)/,Fe+"$1"),/(image-set)/,Fe+"$1"),e,"")+e;case 5495:case 3959:return le(e,/(image-set\([^]*)/,Fe+"$1$`$1");case 4968:return le(le(e,/(.+:)(flex-)?(.*)/,Fe+"box-pack:$3"+De+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+Fe+e+e;case 4095:case 3583:case 4068:case 2532:return le(e,/(.+)-inline(.+)/,Fe+"$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(me(e)-1-t>6)switch(de(e,t+1)){case 109:if(45!==de(e,t+4))break;case 102:return le(e,/(.+:)(.+)-([^]+)/,"$1"+Fe+"$2-$3$1"+Me+(108==de(e,t+3)?"$3":"$2-$3"))+e;case 115:return~ue(e,"stretch")?nt(le(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==de(e,t+1))break;case 6444:switch(de(e,me(e)-3-(~ue(e,"!important")&&10))){case 107:return le(e,":",":"+Fe)+e;case 101:return le(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+Fe+(45===de(e,14)?"inline-":"")+"box$3$1"+Fe+"$2$3$1"+De+"$2box$3")+e}break;case 5936:switch(de(e,t+11)){case 114:return Fe+e+De+le(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return Fe+e+De+le(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return Fe+e+De+le(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return Fe+e+De+e+e}return e}var rt=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case Ge:e.return=nt(e.value,e.length);break;case Be:return We([Ee(e,{value:le(e.value,"@","@"+Fe)})],r);case qe: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 We([Ee(e,{props:[le(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return We([Ee(e,{props:[le(t,/:(plac\w+)/,":"+Fe+"input-$1")]}),Ee(e,{props:[le(t,/:(plac\w+)/,":-moz-$1")]}),Ee(e,{props:[le(t,/:(plac\w+)/,De+"input-$1")]})],r)}return""}))}}],at={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 ot(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}var st=/[A-Z]|^ms/g,it=/_EMO_([^_]+?)_([^]*?)_EMO_/g,ct=function(e){return 45===e.charCodeAt(1)},lt=function(e){return null!=e&&"boolean"!=typeof e},ut=ot((function(e){return ct(e)?e:e.replace(st,"-$&").toLowerCase()})),dt=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(it,(function(e,t,n){return mt={name:t,styles:n,next:mt},t}))}return 1===at[e]||ct(e)||"number"!=typeof t||0===t?t:t+"px"};function pt(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 mt={name:a.name,styles:a.styles,next:mt},a.name;var o=n;if(void 0!==o.styles){var s=o.next;if(void 0!==s)for(;void 0!==s;)mt={name:s.name,styles:s.styles,next:mt},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+=pt(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]+"}":lt(i)&&(r+=ut(o)+":"+dt(o,i)+";")}else if(!Array.isArray(s)||"string"!=typeof s[0]||null!=t&&void 0!==t[s[0]]){var c=pt(e,t,s);switch(o){case"animation":case"animationName":r+=ut(o)+":"+c+";";break;default:r+=o+"{"+c+"}"}}else for(var l=0;l<s.length;l++)lt(s[l])&&(r+=ut(o)+":"+dt(o,s[l])+";")}return r}(e,t,n);case"function":if(void 0!==e){var i=mt,c=n(e);return mt=i,pt(e,t,c)}}var l=n;if(null==t)return l;var u=t[l];return void 0!==u?u:l}var mt,ft=/label:\s*([^\s;{]+)\s*(;|$)/g;function ht(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="";mt=void 0;var o=e[0];null==o||void 0===o.raw?(r=!1,a+=pt(n,t,o)):a+=o[0];for(var s=1;s<e.length;s++)a+=pt(n,t,e[s]),r&&(a+=o[s]);ft.lastIndex=0;for(var i,c="";null!==(i=ft.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:mt}}function gt(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):n&&(r+=n+" ")})),r}function vt(e,t){if(void 0===e.inserted[t.name])return e.insert("",t,e.sheet,!0)}function bt(e,t,n){var r=[],a=gt(e,r,n);return r.length<2?n:a+t(r)}var yt=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 wt=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||rt,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=[Ve,(d=function(e){c.insert(e)},function(e){e.root||(e=e.return)&&d(e)})],m=(l=[et,tt].concat(o,p),u=fe(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,We(Ke(e?e+"{"+t.styles+"}":t.styles),m),r&&(f.inserted[t.name]=!0)};var f={key:t,sheet:new ae({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=ht(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 bt(t.registered,n,yt(r))},injectGlobal:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];var a=ht(n,t.registered);vt(t,a)},keyframes:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];var a=ht(n,t.registered),o="animation-"+a.name;return vt(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:gt.bind(null,t.registered),merge:bt.bind(null,t.registered,n)}}({key:"css"}),xt=(wt.flush,wt.hydrate,wt.cx),kt=(wt.merge,wt.getRegisteredStyles,wt.injectGlobal,wt.keyframes),Et=wt.css;function At(e){const{isAvailable:t,openAssistant:n}=ne();return t&&n?i().createElement($t,{...e,openAssistant:n}):null}function $t({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,re.useStyles2)(Ct);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(re.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(re.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))}wt.sheet,wt.cache;const Ct=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:Et({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:Et({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 It(e){const{isAvailable:t,openAssistant:n}=ne();return t&&n?i().createElement(St,{...e,openAssistant:n}):null}function St({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,re.useStyles2)(Nt);(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(re.ButtonGroup,{className:m.buttonGroup},i().createElement(re.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(re.Dropdown,{overlay:u},i().createElement(re.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(re.Tooltip,{content:d},f):f}const Nt=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:Et({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:Et({label:"assistant-split-button-group",gap:0,position:"relative",zIndex:1,"& button":{border:"none",background:"transparent !important","&:hover":{background:"transparent !important"}}}),dropdownButton:Et({padding:"0 6px"})}},_t="__grafanaAssistantInlineFactory__",Tt="__grafanaAssistantInlineInitializer__",Lt="__grafanaAssistantInlineInitPromise__";function Pt(e){const t=window[_t];t&&t!==e?console.warn("InlineAssistant factory already set; ignoring subsequent setInlineAssistantFactory call"):t||(window[_t]=e)}function Ut(e){const t=window[Tt];t&&t!==e?console.warn("InlineAssistant initializer already set; ignoring subsequent setInlineAssistantInitializer call"):t||(window[Tt]=e)}async function Ot(){if(window[_t])return;const e=window[Tt];if(!e)throw new Error("InlineAssistant not initialized. Make sure the Grafana Assistant plugin is loaded and initialized.");const t=window[Lt];if(t)return t;const n=(async()=>{try{await e()}catch(e){throw window[Lt]=null,e}})();return window[Lt]=n,n}function Rt(){const e=window[_t];if(!e)throw new Error("InlineAssistant factory not initialized. Make sure the Grafana Assistant plugin is loaded.");return e}function zt(){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 Ot();const n=Rt();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 Dt=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]]},Mt=(e,t,n,r)=>{const a=Array.from({length:101},((e,t)=>t)),o={},[s,i]=Dt(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 Ft({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}=zt(),g=!e.trim()||l||m,v=(0,re.useStyles2)(jt),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(re.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:xt(v.wrapper,{[v.animatedWrapper]:m},u),"data-testid":d},i().createElement(re.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 jt=e=>{const t=e.colors.background.primary,n=kt({label:"ai-input-border-animation",...Mt(e,t)}),[r,a]=Dt(e);return{wrapper:Et({label:"ai-text-input-wrapper",position:"relative",borderRadius:e.shape.radius.default,cornerShape:"squircle"}),animatedWrapper:Et({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 qt({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}=zt(),v=!e.trim()||l||f,b=(0,re.useStyles2)(Gt),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:xt(b.textareaWrapper,{[b.animatedWrapper]:f},d),"data-testid":p},i().createElement(re.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(re.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 Gt=e=>{const t=e.colors.background.primary,n=kt({label:"ai-textarea-border-animation",...Mt(e,t)}),[r,a]=Dt(e);return{textareaWrapper:Et({label:"ai-textarea-wrapper",position:"relative",borderRadius:e.shape.radius.default,cornerShape:"squircle"}),animatedWrapper:Et({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:Et({label:"ai-textarea",paddingRight:e.spacing(4),scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),sendButton:Et({label:"ai-textarea-send",position:"absolute",right:e.spacing(1),top:e.spacing(1)})}};function Bt(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}}const Wt="grafana-assistant-terms-and-conditions-refresh";async function Vt(){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/${G}/resources/api/v1/settings/terms`,a=(await(0,q.lastValueFrom)(n.fetch({url:r,method:"GET"}))).data.data,s=null!==(t=a.acceptedTermsAndConditions)&&void 0!==t&&t,i=a.acceptedVersion,c=a.version,l=a.termsType;if("msa"===l)return{accepted:s,termsType:l};if(!s||!i||!c)return{accepted:!1,termsType:l};const u=1===function(e,t){const n=Bt(e),r=Bt(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}(c,i);return{accepted:s&&!u,termsType:l}}async function Kt(){try{return(await Vt()).accepted}catch(e){throw new Error(`Failed to check terms requirements: ${e instanceof Error?e.message:String(e)}`)}}function Qt(){const[e,t]=(0,s.useState)(!1),[n,r]=(0,s.useState)(null),[a,o]=(0,s.useState)(!0),[i,c]=(0,s.useState)(null);return(0,s.useEffect)((()=>{!async function(){try{o(!0),c(null);const e=await Vt();t(e.accepted),r(e.termsType)}catch(e){const n=e instanceof Error?e.message:"Failed to check terms";c(n),t(!1),r(null)}finally{o(!1)}}()}),[]),{accepted:e,termsType:n,loading:a,error:i}}function Ht(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})();
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:()=>Wt,AITextInput:()=>Bt,ASSISTANT_PLUGIN_ID:()=>K,ASSISTANT_PLUGIN_TITLE:()=>Q,CALLBACK_EXTENSION_POINT:()=>B,ComponentNodeData:()=>E,DashboardNodeData:()=>$,DatasourceNodeData:()=>I,EntityNodeData:()=>C,FolderNodeData:()=>S,InvestigationCreatedEvent:()=>M,LIMITS_UPDATED_EVENT:()=>Yt,LabelNameNodeData:()=>T,LabelValueNodeData:()=>N,OpenAssistantButton:()=>It,OpenAssistantSplitButton:()=>Nt,PlaybookNodeData:()=>U,StructuredNodeData:()=>a,TERMS_AND_CONDITIONS_REFRESH_EVENT:()=>Qt,checkLimits:()=>tn,checkTerms:()=>Jt,closeAssistant:()=>re,createAssistantContextItem:()=>P,createTool:()=>Zt,emitInvestigationCreated:()=>j,ensureInlineAssistantInitialized:()=>zt,getExposeAssistantFunctionsConfig:()=>W,getInlineAssistantFactory:()=>Ft,isAssistantAvailable:()=>Z,newFunctionNamespace:()=>G,onInvestigationCreated:()=>q,openAssistant:()=>ne,provideComponents:()=>A,providePageContext:()=>g,provideQuestions:()=>O,setInlineAssistantFactory:()=>Rt,setInlineAssistantInitializer:()=>Dt,toggleAssistant:()=>ae,useAssistant:()=>oe,useInlineAssistant:()=>Mt,useLimits:()=>nn,usePageComponents:()=>k,usePageContext:()=>y,useProvidePageContext:()=>b,useProvideQuestions:()=>R,useQuestions:()=>D,useTerms:()=>Xt});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 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){var n;(n=e)instanceof RegExp?n.source:"string"!=typeof n||n&&""!==n.trim()||console.warn("useProvidePageContext: Empty string passed as urlPattern. This will cause the context to not match any pages.");const r={id:w(),urlPattern:e,context:[...t]};f([...m(),r]),window.dispatchEvent(new CustomEvent(u,{detail:r}));const a=e=>{const t=m(),n=t.findIndex((e=>e.id===r.id));if(-1!==n){const r=[...t];r[n]={...r[n],context:[...e]},f(r),window.dispatchEvent(new CustomEvent(u,{detail:r[n]}))}};return a.unregister=()=>{const e=m(),t=e.findIndex((e=>e.id===r.id));-1!==t&&(f(e.filter(((e,n)=>n!==t))),window.dispatchEvent(new CustomEvent(d,{detail:{id:r.id}})))},a}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)})));const v=[];function b(e,t=v){const n=(0,i.useRef)(void 0),r=(0,i.useRef)(void 0),a=(0,i.useRef)(!1);return(0,i.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,i.useEffect)((()=>{!a.current&&n.current&&n.current(t)}),[t]),(0,i.useCallback)((e=>{a.current=!0,n.current?n.current(e):r.current=e}),[])}function y(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=m();for(const r of n)x(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 w(e="page-context"){return`${e}-${Date.now()}-${Math.random().toString(36).slice(2,11)}`}function x(e,t){if(t instanceof RegExp)return t.test(e);if("string"==typeof t){if(!t||""===t.trim())return!1;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}class E 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=y({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 A(e,t,n,r=/.*/){if((a=r)instanceof RegExp?".*"===a.source&&""===a.flags:".*"===a||"/.*/"===a){const r=g(/.*/,[P("component",{components:n,prompt:e,namespace:t})]),a=(e,n)=>{r([P("component",{components:e,prompt:n,namespace:t})])};return a.unregister=r.unregister,a}var a;const o=g(/.*/,[P("component",{components:n,prompt:"",namespace:t})]),i=g(r,[P("component",{components:{},prompt:e,namespace:t})]),s=(e,n)=>{o([P("component",{components:e,prompt:"",namespace:t})]),i([P("component",{components:{},prompt:n,namespace:t})])};return s.unregister=()=>{o.unregister(),i.unregister()},s}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 S 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 I 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 C 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 T 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 _(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 L={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 P(e,t){var n,o,i;const s=function(e,t){switch(e){case"datasource":return new I({...t,..._(t.datasourceUid)});case"label_name":return new T({...t,..._(t.datasourceUid)});case"label_value":return new N({...t,..._(t.datasourceUid)});case"dashboard":return new $(t);case"dashboard_folder":return new S(t);case"structured":return new a(t);case"component":return new E({...t,hidden:!0});case"entity":return new C(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:L[e],navigable:!1,selectable:!0,data:s},occurrences:[]}}class U 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 O(e,t){const n=w("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 R(e,t=[]){const n=(0,i.useMemo)((()=>w("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=b(e,r(t));return e=>{a(r(e))}}function D(){const e=y({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=require("@grafana/data");class M extends F.BusEventWithPayload{}function j(e){const t=new M({investigationId:e});(0,o.getAppEvents)().publish(t)}function q(e){const t=(0,o.getAppEvents)().subscribe(M,(t=>{e(t.payload)}));return()=>t.unsubscribe()}M.type="grafana-assistant:investigation-created";const B="grafana-assistant-app/callback/v0-alpha";function G(e,t){return{namespace:e,functions:t}}function W(e){return{title:"callback",targets:[B],fn:()=>e.map((e=>({namespace:e.namespace,functions:e.functions})))}}const V=require("rxjs"),K="grafana-assistant-app",Q="Grafana Assistant",H=10,J=100,X=5e3;function Z(){return o.getObservablePluginLinks?(0,V.defer)((()=>{try{return(0,o.getObservablePluginLinks)({extensionPointId:"grafana/extension-sidebar/v0-alpha"}).pipe((0,V.map)((e=>e.some((e=>e.pluginId===K&&e.title===Q)))))}catch(e){return(0,V.throwError)((()=>e))}})).pipe((0,V.retry)({count:H,delay:(e,t)=>{var n;const r=(null===(n=null==e?void 0:e.message)||void 0===n?void 0:n.toLowerCase())||"";if(!(r.includes("can only be used after")||r.includes("grafana instance has started")||r.includes("not started")))throw e;const a=Math.min(J*Math.pow(2,t-1),X);return(0,V.timer)(a)}}),(0,V.catchError)((()=>(0,V.of)(!1)))):(0,V.of)(!1)}class Y extends F.BusEventWithPayload{}Y.type="open-extension-sidebar";class ee extends F.BusEventBase{}ee.type="close-extension-sidebar";class te extends F.BusEventWithPayload{}function ne(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 Y({pluginId:e,componentTitle:t,props:n});(0,o.getAppEvents)().publish(r)}(K,Q,{initialPrompt:e.prompt,initialContext:e.context,initialAutoSend:null===(n=e.autoSend)||void 0===n||n,origin:e.origin,initialMode:e.mode})}function re(){!function(){const e=new ee;(0,o.getAppEvents)().publish(e)}()}function ae(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 te({pluginId:e,componentTitle:t,props:n});(0,o.getAppEvents)().publish(r)}(K,Q,{initialPrompt:e.prompt,initialContext:e.context,initialAutoSend:null===(n=e.autoSend)||void 0===n||n,origin:e.origin,initialMode:e.mode})}function oe(){const[e,t]=(0,i.useState)(!1);return(0,i.useEffect)((()=>{const e=Z().subscribe((e=>t(e)));return()=>{e.unsubscribe()}}),[]),{isAvailable:e,openAssistant:e?ne:void 0,closeAssistant:e?re:void 0,toggleAssistant:e?ae:void 0}}te.type="toggle-extension-sidebar";const ie=require("@grafana/ui");var se=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}(),ce=Math.abs,le=String.fromCharCode,ue=Object.assign;function de(e){return e.trim()}function pe(e,t,n){return e.replace(t,n)}function me(e,t){return e.indexOf(t)}function fe(e,t){return 0|e.charCodeAt(t)}function he(e,t,n){return e.slice(t,n)}function ge(e){return e.length}function ve(e){return e.length}function be(e,t){return t.push(e),e}var ye=1,we=1,xe=0,Ee=0,ke=0,Ae="";function $e(e,t,n,r,a,o,i){return{value:e,root:t,parent:n,type:r,props:a,children:o,line:ye,column:we,length:i,return:""}}function Se(e,t){return ue($e("",null,null,"",null,null,0),e,{length:-e.length},t)}function Ie(){return ke=Ee>0?fe(Ae,--Ee):0,we--,10===ke&&(we=1,ye--),ke}function Ce(){return ke=Ee<xe?fe(Ae,Ee++):0,we++,10===ke&&(we=1,ye++),ke}function Te(){return fe(Ae,Ee)}function Ne(){return Ee}function _e(e,t){return he(Ae,e,t)}function Le(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 Pe(e){return ye=we=1,xe=ge(Ae=e),Ee=0,[]}function Ue(e){return Ae="",e}function Oe(e){return de(_e(Ee-1,ze(91===e?e+2:40===e?e+1:e)))}function Re(e){for(;(ke=Te())&&ke<33;)Ce();return Le(e)>2||Le(ke)>3?"":" "}function De(e,t){for(;--t&&Ce()&&!(ke<48||ke>102||ke>57&&ke<65||ke>70&&ke<97););return _e(e,Ne()+(t<6&&32==Te()&&32==Ce()))}function ze(e){for(;Ce();)switch(ke){case e:return Ee;case 34:case 39:34!==e&&39!==e&&ze(ke);break;case 40:41===e&&ze(e);break;case 92:Ce()}return Ee}function Fe(e,t){for(;Ce()&&e+ke!==57&&(e+ke!==84||47!==Te()););return"/*"+_e(t,Ee-1)+"*"+le(47===e?e:Ce())}function Me(e){for(;!Le(Te());)Ce();return _e(e,Ee)}var je="-ms-",qe="-moz-",Be="-webkit-",Ge="comm",We="rule",Ve="decl",Ke="@keyframes";function Qe(e,t){for(var n="",r=ve(e),a=0;a<r;a++)n+=t(e[a],a,e,t)||"";return n}function He(e,t,n,r){switch(e.type){case"@layer":if(e.children.length)break;case"@import":case Ve:return e.return=e.return||e.value;case Ge:return"";case Ke:return e.return=e.value+"{"+Qe(e.children,r)+"}";case We:e.value=e.props.join(",")}return ge(n=Qe(e.children,r))?e.return=e.value+"{"+n+"}":""}function Je(e){return Ue(Xe("",null,null,null,[""],e=Pe(e),0,[0],e))}function Xe(e,t,n,r,a,o,i,s,c){for(var l=0,u=0,d=i,p=0,m=0,f=0,h=1,g=1,v=1,b=0,y="",w=a,x=o,E=r,k=y;g;)switch(f=b,b=Ce()){case 40:if(108!=f&&58==fe(k,d-1)){-1!=me(k+=pe(Oe(b),"&","&\f"),"&\f")&&(v=-1);break}case 34:case 39:case 91:k+=Oe(b);break;case 9:case 10:case 13:case 32:k+=Re(f);break;case 92:k+=De(Ne()-1,7);continue;case 47:switch(Te()){case 42:case 47:be(Ye(Fe(Ce(),Ne()),t,n),c);break;default:k+="/"}break;case 123*h:s[l++]=ge(k)*v;case 125*h:case 59:case 0:switch(b){case 0:case 125:g=0;case 59+u:-1==v&&(k=pe(k,/\f/g,"")),m>0&&ge(k)-d&&be(m>32?et(k+";",r,n,d-1):et(pe(k," ","")+";",r,n,d-2),c);break;case 59:k+=";";default:if(be(E=Ze(k,t,n,l,u,a,s,y,w=[],x=[],d),o),123===b)if(0===u)Xe(k,t,E,E,w,o,d,s,x);else switch(99===p&&110===fe(k,3)?100:p){case 100:case 108:case 109:case 115:Xe(e,E,E,r&&be(Ze(e,E,E,0,0,a,s,y,a,w=[],d),x),a,x,d,s,r?w:x);break;default:Xe(k,E,E,E,[""],x,0,s,x)}}l=u=m=0,h=v=1,y=k="",d=i;break;case 58:d=1+ge(k),m=f;default:if(h<1)if(123==b)--h;else if(125==b&&0==h++&&125==Ie())continue;switch(k+=le(b),b*h){case 38:v=u>0?1:(k+="\f",-1);break;case 44:s[l++]=(ge(k)-1)*v,v=1;break;case 64:45===Te()&&(k+=Oe(Ce())),p=Te(),u=d=ge(y=k+=Me(Ne())),b++;break;case 45:45===f&&2==ge(k)&&(h=0)}}return o}function Ze(e,t,n,r,a,o,i,s,c,l,u){for(var d=a-1,p=0===a?o:[""],m=ve(p),f=0,h=0,g=0;f<r;++f)for(var v=0,b=he(e,d+1,d=ce(h=i[f])),y=e;v<m;++v)(y=de(h>0?p[v]+" "+b:pe(b,/&\f/g,p[v])))&&(c[g++]=y);return $e(e,t,n,0===a?We:s,c,l,u)}function Ye(e,t,n){return $e(e,t,n,Ge,le(ke),he(e,2,-2),0)}function et(e,t,n,r){return $e(e,t,n,Ve,he(e,0,r),he(e,r+1,-1),r)}var tt=function(e,t,n){for(var r=0,a=0;r=a,a=Te(),38===r&&12===a&&(t[n]=1),!Le(a);)Ce();return _e(e,Ee)},nt=new WeakMap,rt=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)||nt.get(n))&&!r){nt.set(e,!0);for(var a=[],o=function(e,t){return Ue(function(e,t){var n=-1,r=44;do{switch(Le(r)){case 0:38===r&&12===Te()&&(t[n]=1),e[n]+=tt(Ee-1,t,n);break;case 2:e[n]+=Oe(r);break;case 4:if(44===r){e[++n]=58===Te()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=le(r)}}while(r=Ce());return e}(Pe(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]}}},at=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}};function ot(e,t){switch(function(e,t){return 45^fe(e,0)?(((t<<2^fe(e,0))<<2^fe(e,1))<<2^fe(e,2))<<2^fe(e,3):0}(e,t)){case 5103:return Be+"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 Be+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return Be+e+qe+e+je+e+e;case 6828:case 4268:return Be+e+je+e+e;case 6165:return Be+e+je+"flex-"+e+e;case 5187:return Be+e+pe(e,/(\w+).+(:[^]+)/,Be+"box-$1$2"+je+"flex-$1$2")+e;case 5443:return Be+e+je+"flex-item-"+pe(e,/flex-|-self/,"")+e;case 4675:return Be+e+je+"flex-line-pack"+pe(e,/align-content|flex-|-self/,"")+e;case 5548:return Be+e+je+pe(e,"shrink","negative")+e;case 5292:return Be+e+je+pe(e,"basis","preferred-size")+e;case 6060:return Be+"box-"+pe(e,"-grow","")+Be+e+je+pe(e,"grow","positive")+e;case 4554:return Be+pe(e,/([^-])(transform)/g,"$1"+Be+"$2")+e;case 6187:return pe(pe(pe(e,/(zoom-|grab)/,Be+"$1"),/(image-set)/,Be+"$1"),e,"")+e;case 5495:case 3959:return pe(e,/(image-set\([^]*)/,Be+"$1$`$1");case 4968:return pe(pe(e,/(.+:)(flex-)?(.*)/,Be+"box-pack:$3"+je+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+Be+e+e;case 4095:case 3583:case 4068:case 2532:return pe(e,/(.+)-inline(.+)/,Be+"$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(ge(e)-1-t>6)switch(fe(e,t+1)){case 109:if(45!==fe(e,t+4))break;case 102:return pe(e,/(.+:)(.+)-([^]+)/,"$1"+Be+"$2-$3$1"+qe+(108==fe(e,t+3)?"$3":"$2-$3"))+e;case 115:return~me(e,"stretch")?ot(pe(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==fe(e,t+1))break;case 6444:switch(fe(e,ge(e)-3-(~me(e,"!important")&&10))){case 107:return pe(e,":",":"+Be)+e;case 101:return pe(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+Be+(45===fe(e,14)?"inline-":"")+"box$3$1"+Be+"$2$3$1"+je+"$2box$3")+e}break;case 5936:switch(fe(e,t+11)){case 114:return Be+e+je+pe(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return Be+e+je+pe(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return Be+e+je+pe(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return Be+e+je+e+e}return e}var it=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case Ve:e.return=ot(e.value,e.length);break;case Ke:return Qe([Se(e,{value:pe(e.value,"@","@"+Be)})],r);case We: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([Se(e,{props:[pe(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return Qe([Se(e,{props:[pe(t,/:(plac\w+)/,":"+Be+"input-$1")]}),Se(e,{props:[pe(t,/:(plac\w+)/,":-moz-$1")]}),Se(e,{props:[pe(t,/:(plac\w+)/,je+"input-$1")]})],r)}return""}))}}],st={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 ct(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}var lt=/[A-Z]|^ms/g,ut=/_EMO_([^_]+?)_([^]*?)_EMO_/g,dt=function(e){return 45===e.charCodeAt(1)},pt=function(e){return null!=e&&"boolean"!=typeof e},mt=ct((function(e){return dt(e)?e:e.replace(lt,"-$&").toLowerCase()})),ft=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(ut,(function(e,t,n){return gt={name:t,styles:n,next:gt},t}))}return 1===st[e]||dt(e)||"number"!=typeof t||0===t?t:t+"px"};function ht(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 gt={name:a.name,styles:a.styles,next:gt},a.name;var o=n;if(void 0!==o.styles){var i=o.next;if(void 0!==i)for(;void 0!==i;)gt={name:i.name,styles:i.styles,next:gt},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+=ht(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]+"}":pt(s)&&(r+=mt(o)+":"+ft(o,s)+";")}else if(!Array.isArray(i)||"string"!=typeof i[0]||null!=t&&void 0!==t[i[0]]){var c=ht(e,t,i);switch(o){case"animation":case"animationName":r+=mt(o)+":"+c+";";break;default:r+=o+"{"+c+"}"}}else for(var l=0;l<i.length;l++)pt(i[l])&&(r+=mt(o)+":"+ft(o,i[l])+";")}return r}(e,t,n);case"function":if(void 0!==e){var s=gt,c=n(e);return gt=s,ht(e,t,c)}}var l=n;if(null==t)return l;var u=t[l];return void 0!==u?u:l}var gt,vt=/label:\s*([^\s;{]+)\s*(;|$)/g;function bt(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="";gt=void 0;var o=e[0];null==o||void 0===o.raw?(r=!1,a+=ht(n,t,o)):a+=o[0];for(var i=1;i<e.length;i++)a+=ht(n,t,e[i]),r&&(a+=o[i]);vt.lastIndex=0;for(var s,c="";null!==(s=vt.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:gt}}function yt(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):n&&(r+=n+" ")})),r}function wt(e,t){if(void 0===e.inserted[t.name])return e.insert("",t,e.sheet,!0)}function xt(e,t,n){var r=[],a=yt(e,r,n);return r.length<2?n:a+t(r)}var Et=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 kt=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||it,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=[He,(d=function(e){c.insert(e)},function(e){e.root||(e=e.return)&&d(e)})],m=(l=[rt,at].concat(o,p),u=ve(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(Je(e?e+"{"+t.styles+"}":t.styles),m),r&&(f.inserted[t.name]=!0)};var f={key:t,sheet:new se({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 f.sheet.hydrate(s),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=bt(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 xt(t.registered,n,Et(r))},injectGlobal:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];var a=bt(n,t.registered);wt(t,a)},keyframes:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];var a=bt(n,t.registered),o="animation-"+a.name;return wt(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:yt.bind(null,t.registered),merge:xt.bind(null,t.registered,n)}}({key:"css"}),At=(kt.flush,kt.hydrate,kt.cx),$t=(kt.merge,kt.getRegisteredStyles,kt.injectGlobal,kt.keyframes),St=kt.css;function It(e){const{isAvailable:t,openAssistant:n}=oe();return t&&n?s().createElement(Ct,{...e,openAssistant:n}):null}function Ct({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,ie.useStyles2)(Tt);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(ie.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(ie.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))}kt.sheet,kt.cache;const Tt=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,cornerShape:"squircle",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,cornerShape:"squircle",background:`linear-gradient(${e}, ${e}), ${r}`,zIndex:-1,transition:"none",pointerEvents:"none"});return{button:St({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:St({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}`}})}};function Nt(e){const{isAvailable:t,openAssistant:n}=oe();return t&&n?s().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,ie.useStyles2)(Lt);(0,i.useEffect)((()=>{(0,o.reportInteraction)("grafana_assistant_app_open_sidebar_split_button_displayed",{from:t})}),[t]);const f=s().createElement("div",{className:m.wrapper},s().createElement(ie.ButtonGroup,{className:m.buttonGroup},s().createElement(ie.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&&s().createElement(ie.Dropdown,{overlay:u},s().createElement(ie.Button,{variant:"secondary",icon:"angle-down",size:c,"aria-label":"More AI actions",className:m.dropdownButton,"data-testid":"assistant-split-button-dropdown"}))));return d?s().createElement(ie.Tooltip,{content:d},f):f}const Lt=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:St({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:St({label:"assistant-split-button-group",gap:0,position:"relative",zIndex:1,"& button":{border:"none",background:"transparent !important","&:hover":{background:"transparent !important"}}}),dropdownButton:St({padding:"0 6px"})}},Pt="__grafanaAssistantInlineFactory__",Ut="__grafanaAssistantInlineInitializer__",Ot="__grafanaAssistantInlineInitPromise__";function Rt(e){const t=window[Pt];t&&t!==e?console.warn("InlineAssistant factory already set; ignoring subsequent setInlineAssistantFactory call"):t||(window[Pt]=e)}function Dt(e){const t=window[Ut];t&&t!==e?console.warn("InlineAssistant initializer already set; ignoring subsequent setInlineAssistantInitializer call"):t||(window[Ut]=e)}async function zt(){if(window[Pt])return;const e=window[Ut];if(!e)throw new Error("InlineAssistant not initialized. Make sure the Grafana Assistant plugin is loaded and initialized.");const t=window[Ot];if(t)return t;const n=(async()=>{try{await e()}catch(e){throw window[Ot]=null,e}})();return window[Ot]=n,n}function Ft(){const e=window[Pt];if(!e)throw new Error("InlineAssistant factory not initialized. Make sure the Grafana Assistant plugin is loaded.");return e}function Mt(){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 zt();const n=Ft();s.current||(s.current=await n(e.origin)),await s.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,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 jt=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]]},qt=(e,t,n,r)=>{const a=Array.from({length:101},((e,t)=>t)),o={},[i,s]=jt(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 Bt({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:m,error:f,reset:h}=Mt(),g=!e.trim()||l||m,v=(0,ie.useStyles2)(Gt),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(ie.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:At(v.wrapper,{[v.animatedWrapper]:m},u),"data-testid":d},s().createElement(ie.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 Gt=e=>{const t=e.colors.background.primary,n=$t({label:"ai-input-border-animation",...qt(e,t)}),[r,a]=jt(e);return{wrapper:St({label:"ai-text-input-wrapper",position:"relative",borderRadius:e.shape.radius.default,cornerShape:"squircle"}),animatedWrapper:St({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 Wt({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:m,isGenerating:f,error:h,reset:g}=Mt(),v=!e.trim()||l||f,b=(0,ie.useStyles2)(Vt),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==i||i(e)},onDelta:e=>{null==c||c(e)}})};return s().createElement("div",{className:At(b.textareaWrapper,{[b.animatedWrapper]:f},d),"data-testid":p},s().createElement(ie.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}),s().createElement(ie.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 Vt=e=>{const t=e.colors.background.primary,n=$t({label:"ai-textarea-border-animation",...qt(e,t)}),[r,a]=jt(e);return{textareaWrapper:St({label:"ai-textarea-wrapper",position:"relative",borderRadius:e.shape.radius.default,cornerShape:"squircle"}),animatedWrapper:St({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:St({label:"ai-textarea",paddingRight:e.spacing(4),scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),sendButton:St({label:"ai-textarea-send",position:"absolute",right:e.spacing(1),top:e.spacing(1)})}};function Kt(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}}const Qt="grafana-assistant-terms-and-conditions-refresh";async function Ht(){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/${K}/resources/api/v1/settings/terms`,a=(await(0,V.lastValueFrom)(n.fetch({url:r,method:"GET"}))).data.data,i=null!==(t=a.acceptedTermsAndConditions)&&void 0!==t&&t,s=a.acceptedVersion,c=a.version,l=a.termsType;if("msa"===l)return{accepted:i,termsType:l};if(!i||!s||!c)return{accepted:!1,termsType:l};const u=1===function(e,t){const n=Kt(e),r=Kt(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}(c,s);return{accepted:i&&!u,termsType:l}}async function Jt(){try{return(await Ht()).accepted}catch(e){throw new Error(`Failed to check terms requirements: ${e instanceof Error?e.message:String(e)}`)}}function Xt(){const[e,t]=(0,i.useState)(!1),[n,r]=(0,i.useState)(null),[a,o]=(0,i.useState)(!0),[s,c]=(0,i.useState)(null);return(0,i.useEffect)((()=>{!async function(){try{o(!0),c(null);const e=await Ht();t(e.accepted),r(e.termsType)}catch(e){const n=e instanceof Error?e.message:"Failed to check terms";c(n),t(!1),r(null)}finally{o(!1)}}()}),[]),{accepted:e,termsType:n,loading:a,error:s}}function Zt(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),i=[e(o,r)];return r.signal&&i.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&&i.push(new Promise(((e,n)=>{setTimeout((()=>{n(new Error(`Tool ${t.name} execution timed out after ${r.timeout}ms`))}),r.timeout)}))),Promise.race(i)}catch(e){throw t.verboseParsingErrors&&console.error(`Error invoking tool ${t.name}:`,e,n),e}}};return o}const Yt="grafana-assistant-limits-updated";async function en(){var e,t,n,r;const a=(0,o.getBackendSrv)(),i=`${null!==(e=null===o.config||void 0===o.config?void 0:o.config.appSubUrl)&&void 0!==e?e:""}/api/plugins/${K}/resources/api/v1/usage/limits/prompt`,s=(await(0,V.lastValueFrom)(a.fetch({url:i,method:"GET"}))).data.data,c=null!==(t=s.total)&&void 0!==t?t:0,l=null!==(n=s.limit)&&void 0!==n?n:0;return{count:c,limit:l,month:null!==(r=s.month)&&void 0!==r?r:"",isLimitReached:l>0&&c>=l}}async function tn(){try{return await en()}catch(e){throw new Error(`Failed to check limits: ${e instanceof Error?e.message:String(e)}`)}}function nn(){const[e,t]=(0,i.useState)(0),[n,r]=(0,i.useState)(0),[a,o]=(0,i.useState)(""),[s,c]=(0,i.useState)(!0),[l,u]=(0,i.useState)(null),d=(0,i.useCallback)((async()=>{try{c(!0),u(null);const e=await en();t(e.count),r(e.limit),o(e.month)}catch(e){const n=e instanceof Error?e.message:"Failed to fetch limits";u(n),t(0),r(0),o("")}finally{c(!1)}}),[]);return(0,i.useEffect)((()=>{d()}),[d]),(0,i.useEffect)((()=>{const e=e=>{const n=e;n.detail&&(t(n.detail.count),r(n.detail.limit),u(null))};return window.addEventListener(Yt,e),()=>{window.removeEventListener(Yt,e)}}),[]),{count:e,limit:n,month:a,isLimitReached:n>0&&e>=n,loading:s,error:l,refetch:d}}module.exports=t})();
2
2
  //# sourceMappingURL=index.js.map