@odigos/ui-kit 0.0.303 → 0.0.304

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/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.0.304](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.303...ui-kit-v0.0.304) (2026-09-17)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **destinations:** read supported signals from the catalog (PLAT-1510) ([#1324](https://github.com/odigos-io/ui-kit/issues/1324)) ([38e52b6](https://github.com/odigos-io/ui-kit/commit/38e52b613714ab303fba6797cf5beaa273f8cd43))
9
+ * **navbar, tooltip:** side menu stacking + clipped labels (PLAT-1493), tooltip contrast on dark surfaces ([#1326](https://github.com/odigos-io/ui-kit/issues/1326)) ([9f0bccb](https://github.com/odigos-io/ui-kit/commit/9f0bccbe81ee939eac9f66b29d103fdf5fef001e))
10
+ * **onboarding:** drop the dirty-state footer note in wizard mode (PLAT-1492) ([#1325](https://github.com/odigos-io/ui-kit/issues/1325)) ([dbcd4e8](https://github.com/odigos-io/ui-kit/commit/dbcd4e845369089250545d2b5f5bbefca8150dd8))
11
+ * **overview:** key bulk source persist by cluster id, not namespace PLAT-1502 ([#1321](https://github.com/odigos-io/ui-kit/issues/1321)) ([a7136a9](https://github.com/odigos-io/ui-kit/commit/a7136a941431257b3be46ab85bcc61c662bd2fec))
12
+ * remove browser-community and ruby-enterprise distro options (PLAT-1512) ([#1322](https://github.com/odigos-io/ui-kit/issues/1322)) ([1c43c4a](https://github.com/odigos-io/ui-kit/commit/1c43c4a0500161961bf76b114872786f1c27285b))
13
+
3
14
  ## [0.0.303](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.302...ui-kit-v0.0.303) (2026-09-16)
4
15
 
5
16
 
@@ -1,4 +1,4 @@
1
- import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import{Fragment as n,useMemo as o,useContext as a,createContext as s}from"react";import{T as i,t as u,b as l,P as c}from"./ui-components-Bpkus_DD.js";import p from"styled-components";var d;(e=>{e.Default="default",e.Action="action",e.Endpoint="endpoint",e.Scope="scope",e.Duration="duration"})(d||(d={}));const f=[d.Action,d.Endpoint,d.Scope,d.Duration],h=p.span`
1
+ import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import{Fragment as n,useMemo as o,useContext as a,createContext as s}from"react";import{T as i,t as u,b as l,P as c}from"./ui-components-CM2SQ_TO.js";import p from"styled-components";var d;(e=>{e.Default="default",e.Action="action",e.Endpoint="endpoint",e.Scope="scope",e.Duration="duration"})(d||(d={}));const f=[d.Action,d.Endpoint,d.Scope,d.Duration],h=p.span`
2
2
  font-family: ${({theme:e,$isMono:t})=>t?e.font_family.secondary:e.font_family.primary};
3
3
  font-size: ${({theme:e})=>e.v2.text.size.xxs}px;
4
4
  line-height: 20px;
@@ -1,4 +1,4 @@
1
- import{jsx as e,jsxs as t,Fragment as a}from"react/jsx-runtime";import o,{css as r,useTheme as s}from"styled-components";import l from"elkjs/lib/elk.bundled.js";import i,{useMemo as n,useRef as c,useCallback as p,useState as d,memo as u,useEffect as h,Fragment as g,forwardRef as m,useImperativeHandle as f}from"react";import{Handle as v,Position as y,useReactFlow as b,ReactFlowProvider as C,ReactFlow as x,Background as $,getSmoothStepPath as w,BaseEdge as S,EdgeLabelRenderer as k,MarkerType as F}from"@xyflow/react";import{D as T,c as O,F as M,d as B,e as P,f as L,g as A,h as _,B as E,i as I,j as N,k as R,u as V,l as z,m as X,C as D,N as H,n as U,W as j,o as G,p as q,q as K,r as W,s as Y,v as Z,w as J,x as Q,I as ee,y as te,z as ae,E as oe,G as re,H as se,J as le,K as ie,S as ne,L as ce,M as pe,U as de,O as ue,Q as he,V as ge,X as me,Y as fe,Z as ve,_ as ye,$ as be,a0 as Ce,a1 as xe,a2 as $e,a3 as we,a4 as Se,a5 as ke,a6 as Fe,a7 as Te,T as Oe,a8 as Me,a9 as Be,aa as Pe,ab as Le,ac as Ae,ad as _e,ae as Ee,af as Ie,ag as Ne,ah as Re,ai as Ve,aj as ze,ak as Xe,b as De,al as He,am as Ue,an as je,ao as Ge,ap as qe,aq as Ke,ar as We,as as Ye,at as Ze,au as Je,av as Qe,aw as et,ax as tt,ay as at,az as ot,aA as rt,aB as st,aC as lt,aD as it,aE as nt,aF as ct,aG as pt,aH as dt,aI as ut,aJ as ht,aK as gt,aL as mt,aM as ft,aN as vt,aO as yt,aP as bt,aQ as Ct,aR as xt,aS as $t,aT as wt,aU as St,aV as kt,aW as Ft,aX as Tt,aY as Ot,aZ as Mt,a_ as Bt,a$ as Pt,b0 as Lt,b1 as At,b2 as _t,b3 as Et,b4 as It,b5 as Nt,b6 as Rt,R as Vt,b7 as zt,b8 as Xt,b9 as Dt,A as Ht,ba as Ut,bb as jt,bc as Gt}from"./ui-components-Bpkus_DD.js";import{UserIcon as qt,DestinationIcon as Kt,HomeIcon as Wt,TrashIcon as Yt,PlusIcon as Zt,VSquareIcon as Jt,XSquareIcon as Qt,EditIcon as ea,OdigosLogoTextCentral as ta,OdigosLogoTextEnterprise as aa,OdigosLogoTextCommunity as oa,OdigosLogoTextColoredCentral as ra,OdigosLogoTextColoredEnterprise as sa,OdigosLogoTextColoredCommunity as la,ArrowLeftIcon as ia,ArrowRightIcon as na,YamlIcon as ca}from"../icons.js";import"@xyflow/react/dist/style.css";import{i as pa,m as da,u as ua,n as ha,a as ga,C as ma,b as fa,d as va,e as ya,f as ba,g as Ca,h as xa,j as $a,k as wa}from"./helpers-COsrWsYw.js";const Sa=/^[a-zA-Z]$/,ka=new Set(["*","+","?"]),Fa=new Set(["^","$"]),Ta={group:"rgba(102, 242, 102, 0.5)","anchor-quantifier":"rgba(102, 191, 255, 0.5)","class-bracket":"rgba(255, 153, 153, 0.5)","class-content":"rgba(178, 1, 1, 0.5)",alternation:"rgba(255, 153, 153, 0.5)",literal:"transparent"},Oa=o.div`
1
+ import{jsx as e,jsxs as t,Fragment as a}from"react/jsx-runtime";import o,{css as r,useTheme as s}from"styled-components";import l from"elkjs/lib/elk.bundled.js";import i,{useMemo as n,useRef as c,useCallback as p,useState as d,memo as u,useEffect as h,Fragment as g,forwardRef as m,useImperativeHandle as f}from"react";import{Handle as v,Position as y,useReactFlow as b,ReactFlowProvider as C,ReactFlow as x,Background as $,getSmoothStepPath as w,BaseEdge as S,EdgeLabelRenderer as k,MarkerType as F}from"@xyflow/react";import{D as T,c as O,F as M,d as B,e as P,f as L,g as A,h as _,B as E,i as I,j as N,k as R,u as V,l as z,m as X,C as D,N as H,n as U,W as j,o as G,p as q,q as K,r as W,s as Y,v as Z,w as J,x as Q,I as ee,y as te,z as ae,E as oe,G as re,H as se,J as le,K as ie,S as ne,L as ce,M as pe,U as de,O as ue,Q as he,V as ge,X as me,Y as fe,Z as ve,_ as ye,$ as be,a0 as Ce,a1 as xe,a2 as $e,a3 as we,a4 as Se,a5 as ke,a6 as Fe,a7 as Te,T as Oe,a8 as Me,a9 as Be,aa as Pe,ab as Le,ac as Ae,ad as _e,ae as Ee,af as Ie,ag as Ne,ah as Re,ai as Ve,aj as ze,ak as Xe,b as De,al as He,am as Ue,an as je,ao as Ge,ap as qe,aq as Ke,ar as We,as as Ye,at as Ze,au as Je,av as Qe,aw as et,ax as tt,ay as at,az as ot,aA as rt,aB as st,aC as lt,aD as it,aE as nt,aF as ct,aG as pt,aH as dt,aI as ut,aJ as ht,aK as gt,aL as mt,aM as ft,aN as vt,aO as yt,aP as bt,aQ as Ct,aR as xt,aS as $t,aT as wt,aU as St,aV as kt,aW as Ft,aX as Tt,aY as Ot,aZ as Mt,a_ as Bt,a$ as Pt,b0 as Lt,b1 as At,b2 as _t,b3 as Et,b4 as It,b5 as Nt,b6 as Rt,R as Vt,b7 as zt,b8 as Xt,b9 as Dt,A as Ht,ba as Ut,bb as jt,bc as Gt}from"./ui-components-CM2SQ_TO.js";import{UserIcon as qt,DestinationIcon as Kt,HomeIcon as Wt,TrashIcon as Yt,PlusIcon as Zt,VSquareIcon as Jt,XSquareIcon as Qt,EditIcon as ea,OdigosLogoTextCentral as ta,OdigosLogoTextEnterprise as aa,OdigosLogoTextCommunity as oa,OdigosLogoTextColoredCentral as ra,OdigosLogoTextColoredEnterprise as sa,OdigosLogoTextColoredCommunity as la,ArrowLeftIcon as ia,ArrowRightIcon as na,YamlIcon as ca}from"../icons.js";import"@xyflow/react/dist/style.css";import{i as pa,m as da,u as ua,n as ha,a as ga,C as ma,b as fa,d as va,e as ya,f as ba,g as Ca,h as xa,j as $a,k as wa}from"./helpers-YkbGOGt5.js";const Sa=/^[a-zA-Z]$/,ka=new Set(["*","+","?"]),Fa=new Set(["^","$"]),Ta={group:"rgba(102, 242, 102, 0.5)","anchor-quantifier":"rgba(102, 191, 255, 0.5)","class-bracket":"rgba(255, 153, 153, 0.5)","class-content":"rgba(178, 1, 1, 0.5)",alternation:"rgba(255, 153, 153, 0.5)",literal:"transparent"},Oa=o.div`
2
2
  padding: 8px 16px;
3
3
  border-radius: 6px;
4
4
  border: 1px solid ${({theme:e})=>e.v2.colors.silver[500]};
@@ -331,7 +331,7 @@ import{jsx as e,jsxs as t,Fragment as a}from"react/jsx-runtime";import o,{css as
331
331
  padding: 5vh 10vw;
332
332
  border-radius: 12px;
333
333
  background-color: ${({theme:e})=>e.v2.colors.silver[800]};
334
- `,gs=m(({isOpen:a,withOverlay:o,disableAnimation:r,onClose:s,onBack:l,onNext:i,nextIsSkip:c,onSave:u,disableSave:h,connectionIds:g,header:m,subHeader:v,leftColumn:y,rightColumn:b,search:C,filters:x,errorMessage:$,isFormDirty:w,allowSaveWhenPristine:S,hideDirtyNote:k,forcedNote:F,isFetching:O,progress:M},B)=>{const[P,L]=d(!1),[_,E]=d(!1),[I,R]=d(void 0);f(B,()=>({clearErrors:()=>R(void 0)}));const V=_,z=p(()=>{w&&!P?L(!0):(L(!1),s?.())},[w,P,s]),X=h||_||!S&&"boolean"==typeof w&&!w,H=p(async()=>{E(!0);const e=await u();E(!1),!1!==e&&(e?.error?R(e.error):(g?.setValue([]),s?.()))},[u,g,s]),U=!!C||!!g||!!x,G=!!v,q=(U?48:0)+(G?50:0),K=n(()=>F||(O?{status:ne.Info,message:"Fetching Data..."}:_&&!M?{status:ne.Info,message:"Saving Changes..."}:I||$?{status:ne.Error,message:I||$}:"boolean"!=typeof w||k?void 0:w?{status:ne.Info,message:'The values don\'t reflect the current configurations of the selected clusters.\n"Save" will override the current configurations.'}:{status:ne.Success,message:"The values reflect the current configuration of the selected cluster."}),[O,_,M,I,$,w,k,F]),W=n(()=>l?{label:"Back",leftIcon:ia,variant:N.Secondary,onClick:l}:{label:"Cancel",variant:N.Secondary,onClick:z,disabled:V},[l,z,V]),[Y,Z]=d(!1),J=n(()=>i?c?{"data-id":"wide-drawer-skip",label:"Skip",rightIcon:na,variant:N.Secondary,onClick:()=>Z(!0)}:{"data-id":"wide-drawer-next",label:"Next",rightIcon:na,variant:N.Primary,onClick:i}:{"data-id":"wide-drawer-save",label:"Save",variant:N.Primary,onClick:H,disabled:X},[i,c,H,X]);return t(T,{width:ns,isOpen:a,disableAnimation:r,hideOverlay:!_&&!o,header:{...m,onClose:s?z:void 0,onCloseDisabled:V},footer:{note:K,actions:[W,J]},children:[_?e(D,{$height:"calc(100vh - 136px)",children:e(hs,{children:e(Rt,{titleSize:A.S,subTitleSize:A.XXXS,withGradient:!0,withSpinner:!0,...M})})}):t(cs,{children:[U&&t(ps,{children:[g&&e(Vt,{icon:Jt,title:"Selected Clusters",badge:{label:g.value.length}}),C&&e(zt,{...C,width:C.width??"100%"}),x]}),G&&e(ds,{children:e(Vt,{icon:v.icon,title:v.title,subTitle:v.description,badge:v.badge})}),t(us,{children:[e(is,{isLeft:!0,heightOffset:q,...y}),e(is,{isRight:!0,heightOffset:q,...b})]})]}),e(xo,{isOpen:P,onClose:()=>L(!1),onApprove:z}),e(j,{title:"Skip setup?",description:"Without completing setup, Odigos won't be able to collect and send your telemetry data. This may interrupt your data flow and limit the platform's ability to provide value.",isOpen:Y,onClose:()=>Z(!1),denyButton:{label:"Go Back",variant:N.Secondary,onClick:()=>Z(!1)},approveButton:{label:"Skip",variant:N.Primary,onClick:()=>{i?.(),Z(!1)}}})]})});gs.displayName=gs.name;const ms=o.div`
334
+ `,gs=m(({isOpen:a,withOverlay:o,disableAnimation:r,onClose:s,onBack:l,onNext:i,nextIsSkip:c,onSave:u,disableSave:h,connectionIds:g,header:m,subHeader:v,leftColumn:y,rightColumn:b,search:C,filters:x,errorMessage:$,isFormDirty:w,allowSaveWhenPristine:S,hideDirtyNote:k,forcedNote:F,isFetching:O,progress:M},B)=>{const[P,L]=d(!1),[_,E]=d(!1),[I,R]=d(void 0);f(B,()=>({clearErrors:()=>R(void 0)}));const V=_,z=p(()=>{w&&!P?L(!0):(L(!1),s?.())},[w,P,s]),X=h||_||!S&&"boolean"==typeof w&&!w,H=p(async()=>{E(!0);const e=await u();E(!1),!1!==e&&(e?.error?R(e.error):(g?.setValue([]),s?.()))},[u,g,s]),U=!!C||!!g||!!x,G=!!v,q=(U?48:0)+(G?50:0),K=n(()=>F||(O?{status:ne.Info,message:"Fetching Data..."}:_&&!M?{status:ne.Info,message:"Saving Changes..."}:I||$?{status:ne.Error,message:I||$}:"boolean"!=typeof w||k||i?void 0:w?{status:ne.Info,message:'The values don\'t reflect the current configurations of the selected clusters.\n"Save" will override the current configurations.'}:{status:ne.Success,message:"The values reflect the current configuration of the selected cluster."}),[O,_,M,I,$,w,k,F,i]),W=n(()=>l?{label:"Back",leftIcon:ia,variant:N.Secondary,onClick:l}:{label:"Cancel",variant:N.Secondary,onClick:z,disabled:V},[l,z,V]),[Y,Z]=d(!1),J=n(()=>i?c?{"data-id":"wide-drawer-skip",label:"Skip",rightIcon:na,variant:N.Secondary,onClick:()=>Z(!0)}:{"data-id":"wide-drawer-next",label:"Next",rightIcon:na,variant:N.Primary,onClick:i}:{"data-id":"wide-drawer-save",label:"Save",variant:N.Primary,onClick:H,disabled:X},[i,c,H,X]);return t(T,{width:ns,isOpen:a,disableAnimation:r,hideOverlay:!_&&!o,header:{...m,onClose:s?z:void 0,onCloseDisabled:V},footer:{note:K,actions:[W,J]},children:[_?e(D,{$height:"calc(100vh - 136px)",children:e(hs,{children:e(Rt,{titleSize:A.S,subTitleSize:A.XXXS,withGradient:!0,withSpinner:!0,...M})})}):t(cs,{children:[U&&t(ps,{children:[g&&e(Vt,{icon:Jt,title:"Selected Clusters",badge:{label:g.value.length}}),C&&e(zt,{...C,width:C.width??"100%"}),x]}),G&&e(ds,{children:e(Vt,{icon:v.icon,title:v.title,subTitle:v.description,badge:v.badge})}),t(us,{children:[e(is,{isLeft:!0,heightOffset:q,...y}),e(is,{isRight:!0,heightOffset:q,...b})]})]}),e(xo,{isOpen:P,onClose:()=>L(!1),onApprove:z}),e(j,{title:"Skip setup?",description:"Without completing setup, Odigos won't be able to collect and send your telemetry data. This may interrupt your data flow and limit the platform's ability to provide value.",isOpen:Y,onClose:()=>Z(!1),denyButton:{label:"Go Back",variant:N.Secondary,onClick:()=>Z(!1)},approveButton:{label:"Skip",variant:N.Primary,onClick:()=>{i?.(),Z(!1)}}})]})});gs.displayName=gs.name;const ms=o.div`
335
335
  padding: 0 24px;
336
336
  border-radius: 12px;
337
337
  background-color: ${({$codeBgColor:e})=>e||"transparent"};
@@ -1,5 +1,5 @@
1
- import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useMemo as a,useContext as r,createContext as n,useCallback as s,useState as o,useEffect as i,useRef as l}from"react";import{t as c,bd as d,be as u,b3 as m,S,bf as p,bg as E,bh as T,P as I,bi as y,bj as f,bk as _,bl as h,bm as g,bn as N,bo as v,bp as A,bq as R,br as O,bs as C,bt as D,bu as G,bv as b,bw as L,bx as w,by as P,bz as U,b1 as F,bA as k,bB as M,o as H,bC as x,bD as K,bE as $,bF as V,bG as Y,bH as B,y as W,bI as j,h as q,M as z,bJ as Q,T as X,bK as J,bL as Z,bM as ee,bN as te,bO as ae,bP as re,bQ as ne,bR as se,bS as oe,bT as ie,bU as le,bV as ce,bW as de,bX as ue,bY as me,bZ as Se,b_ as pe,b$ as Ee,c0 as Te,c1 as Ie,c2 as ye,c3 as fe,c4 as _e,c5 as he,c6 as ge,ah as Ne,ad as ve,af as Ae,ae as Re,ag as Oe,ac as Ce,c7 as De,b as Ge}from"./ui-components-Bpkus_DD.js";import{i as be,n as Le,m as we,l as Pe,o as Ue,p as Fe,v as ke,q as Me,u as He}from"./helpers-COsrWsYw.js";import{ApolloProvider as xe,useLazyQuery as Ke,useApolloClient as $e,useQuery as Ve}from"@apollo/client/react";import{ErrorLink as Ye}from"@apollo/client/link/error";import{SetContextLink as Be}from"@apollo/client/link/context";import{getMainDefinition as We}from"@apollo/client/utilities";import{CombinedGraphQLErrors as je,ServerError as qe}from"@apollo/client/errors";import{HttpLink as ze,ApolloLink as Qe,ApolloClient as Xe,InMemoryCache as Je,gql as Ze}from"@apollo/client";const et=e=>{if(!e)return!1;const t=e.toLowerCase();return t.includes("authentication required")||t.includes("authentication expired")||t.includes("http 401")},tt=n(null),at=()=>{const e=r(tt);if(!e)throw new Error("[ui-kit] useOdigosApi() / useXxxApi() called outside of <OdigosApiProvider>. Make sure the host app mounts the provider at its layout level.");return e},rt=({apolloConfig:t,operations:r,context:n,children:s})=>{const o=a(()=>(e=>{const t=new ze({uri:e.httpUrl,credentials:e.credentials??"same-origin"}),a=new Ye(({error:t})=>{je.is(t)?t.errors.some(e=>et(e.message))&&e.onAuthError?.():(qe.is(t)&&401===t.statusCode||et(t.message))&&e.onAuthError?.()}),r=new Be(async t=>{const a={...t.headers};if(e.authHeader){const t=await e.authHeader();Object.assign(a,t)}return e.csrfHeader&&Object.assign(a,e.csrfHeader()),{headers:a}}),n=[];e.additionalLinks?.length&&n.push(...e.additionalLinks),n.push(r,a,t);let s=Qe.from(n);e.wsLink&&(s=Qe.split(({query:e})=>{const t=We(e);return"OperationDefinition"===t.kind&&"subscription"===t.operation},e.wsLink,s));const o=e.defaultFetchPolicies;return new Xe({link:s,cache:new Je({typePolicies:e.cacheTypePolicies}),defaultOptions:{watchQuery:{fetchPolicy:o?.watchQuery??"cache-and-network"},query:{fetchPolicy:o?.query??"cache-first"},mutate:{fetchPolicy:o?.mutate??"network-only"}}})})(t),[t.httpUrl,t.wsLink,t.credentials,t.clientKey]),i=a(()=>({operations:r,context:n,apolloConfig:t}),[r,n,t]);return e(xe,{client:o,children:e(tt.Provider,{value:i,children:s})})},nt=tt,st=e=>e.map(e=>`${e.id}:${e.odigosVersion}:${e.type}`).join(","),ot=(e,t,a)=>{const r=t.length?t.map(e=>e.id):a??[],n={...e,connectionIds:r};if(!t.length||c(e.version)>0)return n;const s=t[0];return{...n,version:s.odigosVersion||e.version,platformType:s.type??e.platformType}},it=({connections:t,connectionIds:r,children:n})=>{const s=at(),o=a(()=>({operations:s.operations,context:ot(s.context,t,r),apolloConfig:s.apolloConfig}),[s.operations,s.context,s.apolloConfig,st(t),r?.join(",")]);return e(nt.Provider,{value:o,children:n})},lt=(e,t)=>{if(e)return"string"==typeof e?e:p(e,t)},ct=e=>{const{addNotification:t}=d(),a=(a,r,n,s,o)=>t({type:a,title:r,message:n,crdType:e,target:lt(s,e),hideFromHistory:o});return{notify:a,notifyError:(e,t,r)=>a(S.Error,e,t,r),notifySuccess:(e,t,r)=>a(S.Success,e,t,r),notifyPending:(e,t)=>a(S.Default,"Pending",e,t,!0),notifyReadonly:()=>{t({type:S.Warning,title:m.READONLY,message:u.READONLY_WARNING,hideFromHistory:!0})}}},dt=e=>{e({type:S.Warning,title:m.READONLY,message:u.READONLY_WARNING,hideFromHistory:!0})},ut=e=>({error:e,results:[],allSucceeded:!1,anySucceeded:!1,successCount:0,failureCount:0}),mt=(e,t)=>{if(e)return"function"==typeof e?e(t):e},St=e=>{if(!e)return"Unknown error";if(e instanceof Error)return e.cause instanceof Error?e.cause.message:e.message;if("object"==typeof e){const t=e;return t.cause?.message||t.message||String(e)}return String(e)},pt=(e,t)=>e.client??t,Et=async(e,t,a,r,n)=>{if(!t)return{error:"Query operation not configured"};if(t.canRun&&!t.canRun(r))return{data:void 0};if(t.run)try{return await t.run(pt(t,e),a,r)}catch(e){return{error:St(e)}}const s=mt(t.document,r);if(!s)return{error:"Query operation not supported in this context"};const o=t.transformVariables?t.transformVariables(a,r):a,i=pt(t,e);try{const e=await i.query({query:s,variables:o,fetchPolicy:n??"network-only"});return{data:t.transformResult?t.transformResult(e.data,r):e.data,error:e.error?St(e.error):void 0}}catch(e){return{error:St(e)}}},Tt=async(e,t,a,r)=>{if(!t)return{error:"Mutation operation not configured"};if(t.canRun&&!t.canRun(r))return{error:"Mutation operation not supported in this context"};if(t.run)try{return await t.run(pt(t,e),a,r)}catch(e){return{error:St(e)}}const n=mt(t.document,r);if(!n)return{error:"Mutation operation not supported in this context"};const s=t.transformVariables?t.transformVariables(a,r):a,o=pt(t,e);try{const e=await o.mutate({mutation:n,variables:s});return{data:t.transformResult?t.transformResult(e.data,r):e.data,error:void 0}}catch(e){return{error:St(e)}}},It=async(e,t,a,r,n)=>{if(!t)return ut("Multi fetch operation not configured");if(!a.length)return ut("No proxy ids supplied for multi fetch");const s=pt(t,e);if(t.transformVariablesMulti&&(t.documentMulti||t.document)){const e=t.transformVariablesMulti(a,r,n),o=[];for(const a of e)try{const e=await s.query({query:a.document,variables:a.variables,fetchPolicy:"network-only"});t.transformMultiResult?t.transformMultiResult(e.data,n).forEach(e=>o.push(e)):a.proxyIDs.forEach(t=>{o.push({proxyID:t,success:!e.error,data:e.data,error:e.error?.message})})}catch(e){const t=St(e);a.proxyIDs.forEach(e=>o.push({proxyID:e,success:!1,error:t}))}const i=o.filter(e=>e.success).length,l=o.length-i,c=Array.from(new Set(o.filter(e=>!!e.error).map(e=>e.error)));return{results:o,allSucceeded:0===l,anySucceeded:i>0,successCount:i,failureCount:l,error:c.length?c.join(", "):void 0}}const o=await Promise.all(a.map(async a=>{const s={...n,proxyID:a},o=await Et(e,t,r,s);return{proxyID:a,success:!o.error,data:o.data,error:o.error}})),i=o.filter(e=>e.success).length,l=o.length-i,c=Array.from(new Set(o.filter(e=>!!e.error).map(e=>e.error)));return{results:o,allSucceeded:0===l,anySucceeded:i>0,successCount:i,failureCount:l,error:c.length?c.join(", "):void 0}},yt=Ze`
1
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useMemo as a,useContext as r,createContext as n,useCallback as s,useState as o,useEffect as i,useRef as l}from"react";import{t as c,bd as d,be as u,b3 as m,S,bf as p,bg as E,bh as T,P as I,bi as y,bj as f,bk as _,bl as h,bm as g,bn as N,bo as v,bp as A,bq as R,br as O,bs as C,bt as D,bu as G,bv as b,bw as L,bx as w,by as P,bz as U,b1 as F,bA as k,bB as M,o as H,bC as x,bD as K,bE as $,bF as V,bG as Y,bH as B,y as W,bI as j,h as q,M as z,bJ as Q,T as X,bK as J,bL as Z,bM as ee,bN as te,bO as ae,bP as re,bQ as ne,bR as se,bS as oe,bT as ie,bU as le,bV as ce,bW as de,bX as ue,bY as me,bZ as Se,b_ as pe,b$ as Ee,c0 as Te,c1 as Ie,c2 as ye,c3 as fe,c4 as _e,c5 as he,c6 as ge,ah as Ne,ad as ve,af as Ae,ae as Re,ag as Oe,ac as Ce,c7 as De,b as Ge}from"./ui-components-CM2SQ_TO.js";import{i as be,n as Le,m as we,l as Pe,o as Ue,p as Fe,v as ke,q as Me,u as He}from"./helpers-YkbGOGt5.js";import{ApolloProvider as xe,useLazyQuery as Ke,useApolloClient as $e,useQuery as Ve}from"@apollo/client/react";import{ErrorLink as Ye}from"@apollo/client/link/error";import{SetContextLink as Be}from"@apollo/client/link/context";import{getMainDefinition as We}from"@apollo/client/utilities";import{CombinedGraphQLErrors as je,ServerError as qe}from"@apollo/client/errors";import{HttpLink as ze,ApolloLink as Qe,ApolloClient as Xe,InMemoryCache as Je,gql as Ze}from"@apollo/client";const et=e=>{if(!e)return!1;const t=e.toLowerCase();return t.includes("authentication required")||t.includes("authentication expired")||t.includes("http 401")},tt=n(null),at=()=>{const e=r(tt);if(!e)throw new Error("[ui-kit] useOdigosApi() / useXxxApi() called outside of <OdigosApiProvider>. Make sure the host app mounts the provider at its layout level.");return e},rt=({apolloConfig:t,operations:r,context:n,children:s})=>{const o=a(()=>(e=>{const t=new ze({uri:e.httpUrl,credentials:e.credentials??"same-origin"}),a=new Ye(({error:t})=>{je.is(t)?t.errors.some(e=>et(e.message))&&e.onAuthError?.():(qe.is(t)&&401===t.statusCode||et(t.message))&&e.onAuthError?.()}),r=new Be(async t=>{const a={...t.headers};if(e.authHeader){const t=await e.authHeader();Object.assign(a,t)}return e.csrfHeader&&Object.assign(a,e.csrfHeader()),{headers:a}}),n=[];e.additionalLinks?.length&&n.push(...e.additionalLinks),n.push(r,a,t);let s=Qe.from(n);e.wsLink&&(s=Qe.split(({query:e})=>{const t=We(e);return"OperationDefinition"===t.kind&&"subscription"===t.operation},e.wsLink,s));const o=e.defaultFetchPolicies;return new Xe({link:s,cache:new Je({typePolicies:e.cacheTypePolicies}),defaultOptions:{watchQuery:{fetchPolicy:o?.watchQuery??"cache-and-network"},query:{fetchPolicy:o?.query??"cache-first"},mutate:{fetchPolicy:o?.mutate??"network-only"}}})})(t),[t.httpUrl,t.wsLink,t.credentials,t.clientKey]),i=a(()=>({operations:r,context:n,apolloConfig:t}),[r,n,t]);return e(xe,{client:o,children:e(tt.Provider,{value:i,children:s})})},nt=tt,st=e=>e.map(e=>`${e.id}:${e.odigosVersion}:${e.type}`).join(","),ot=(e,t,a)=>{const r=t.length?t.map(e=>e.id):a??[],n={...e,connectionIds:r};if(!t.length||c(e.version)>0)return n;const s=t[0];return{...n,version:s.odigosVersion||e.version,platformType:s.type??e.platformType}},it=({connections:t,connectionIds:r,children:n})=>{const s=at(),o=a(()=>({operations:s.operations,context:ot(s.context,t,r),apolloConfig:s.apolloConfig}),[s.operations,s.context,s.apolloConfig,st(t),r?.join(",")]);return e(nt.Provider,{value:o,children:n})},lt=(e,t)=>{if(e)return"string"==typeof e?e:p(e,t)},ct=e=>{const{addNotification:t}=d(),a=(a,r,n,s,o)=>t({type:a,title:r,message:n,crdType:e,target:lt(s,e),hideFromHistory:o});return{notify:a,notifyError:(e,t,r)=>a(S.Error,e,t,r),notifySuccess:(e,t,r)=>a(S.Success,e,t,r),notifyPending:(e,t)=>a(S.Default,"Pending",e,t,!0),notifyReadonly:()=>{t({type:S.Warning,title:m.READONLY,message:u.READONLY_WARNING,hideFromHistory:!0})}}},dt=e=>{e({type:S.Warning,title:m.READONLY,message:u.READONLY_WARNING,hideFromHistory:!0})},ut=e=>({error:e,results:[],allSucceeded:!1,anySucceeded:!1,successCount:0,failureCount:0}),mt=(e,t)=>{if(e)return"function"==typeof e?e(t):e},St=e=>{if(!e)return"Unknown error";if(e instanceof Error)return e.cause instanceof Error?e.cause.message:e.message;if("object"==typeof e){const t=e;return t.cause?.message||t.message||String(e)}return String(e)},pt=(e,t)=>e.client??t,Et=async(e,t,a,r,n)=>{if(!t)return{error:"Query operation not configured"};if(t.canRun&&!t.canRun(r))return{data:void 0};if(t.run)try{return await t.run(pt(t,e),a,r)}catch(e){return{error:St(e)}}const s=mt(t.document,r);if(!s)return{error:"Query operation not supported in this context"};const o=t.transformVariables?t.transformVariables(a,r):a,i=pt(t,e);try{const e=await i.query({query:s,variables:o,fetchPolicy:n??"network-only"});return{data:t.transformResult?t.transformResult(e.data,r):e.data,error:e.error?St(e.error):void 0}}catch(e){return{error:St(e)}}},Tt=async(e,t,a,r)=>{if(!t)return{error:"Mutation operation not configured"};if(t.canRun&&!t.canRun(r))return{error:"Mutation operation not supported in this context"};if(t.run)try{return await t.run(pt(t,e),a,r)}catch(e){return{error:St(e)}}const n=mt(t.document,r);if(!n)return{error:"Mutation operation not supported in this context"};const s=t.transformVariables?t.transformVariables(a,r):a,o=pt(t,e);try{const e=await o.mutate({mutation:n,variables:s});return{data:t.transformResult?t.transformResult(e.data,r):e.data,error:void 0}}catch(e){return{error:St(e)}}},It=async(e,t,a,r,n)=>{if(!t)return ut("Multi fetch operation not configured");if(!a.length)return ut("No proxy ids supplied for multi fetch");const s=pt(t,e);if(t.transformVariablesMulti&&(t.documentMulti||t.document)){const e=t.transformVariablesMulti(a,r,n),o=[];for(const a of e)try{const e=await s.query({query:a.document,variables:a.variables,fetchPolicy:"network-only"});t.transformMultiResult?t.transformMultiResult(e.data,n).forEach(e=>o.push(e)):a.proxyIDs.forEach(t=>{o.push({proxyID:t,success:!e.error,data:e.data,error:e.error?.message})})}catch(e){const t=St(e);a.proxyIDs.forEach(e=>o.push({proxyID:e,success:!1,error:t}))}const i=o.filter(e=>e.success).length,l=o.length-i,c=Array.from(new Set(o.filter(e=>!!e.error).map(e=>e.error)));return{results:o,allSucceeded:0===l,anySucceeded:i>0,successCount:i,failureCount:l,error:c.length?c.join(", "):void 0}}const o=await Promise.all(a.map(async a=>{const s={...n,proxyID:a},o=await Et(e,t,r,s);return{proxyID:a,success:!o.error,data:o.data,error:o.error}})),i=o.filter(e=>e.success).length,l=o.length-i,c=Array.from(new Set(o.filter(e=>!!e.error).map(e=>e.error)));return{results:o,allSucceeded:0===l,anySucceeded:i>0,successCount:i,failureCount:l,error:c.length?c.join(", "):void 0}},yt=Ze`
2
2
  query OdigosApiNoop {
3
3
  __typename
4
4
  }
5
- `,ft=(e,t)=>{if(e)return"function"==typeof e?e(t):e},_t=(e,t)=>e[t],ht=(e,t,a)=>{if(void 0!==t)return e?.transformResult?e.transformResult(t,a):t},gt=(e,t,a)=>{if(!e)return;const r=e.transformVariables;return r?r(t,a):t},Nt=(e,t,r)=>{const{operations:n,context:o}=at(),l=_t(n,e),c=a(()=>ft(l?.document,o),[l,o]),d=a(()=>gt(l,t,o),[l,t,o]),u=!l||!c,m=!!l?.canRun&&!l.canRun(o),S=r?.skip||u||m,p=Ve(c??yt,{variables:d,skip:S,pollInterval:r?.pollInterval,fetchPolicy:r?.fetchPolicy??"cache-and-network",notifyOnNetworkStatusChange:r?.notifyOnNetworkStatusChange,client:l?.client}),E=a(()=>{if(!S)return ht(l,p.data,o)},[l,o,p.data,S]);i(()=>{S||void 0===E||r?.onCompleted?.(E)},[S,E,r?.onCompleted]),i(()=>{p.error&&r?.onError?.(p.error)},[p.error,r?.onError]);const T=s(async()=>{if(S)return{data:void 0};const e=await p.refetch();return{data:ht(l,e.data,o)}},[l,o,p,S]);return{data:E,loading:!S&&p.loading,error:p.error,refetch:T,unsupported:u}},vt=(e,t)=>{const{operations:r,context:n}=at(),o=_t(r,e),i=a(()=>ft(o?.document,n),[o,n]),l=!o||!i,[c,d]=Ke(i??yt,{fetchPolicy:t?.fetchPolicy??"network-only",notifyOnNetworkStatusChange:t?.notifyOnNetworkStatusChange,client:o?.client});return{execute:s(async e=>{if(l)return{error:void 0};if(o?.canRun&&!o.canRun(n))return{data:void 0};const t=gt(o,e,n),a=await c({variables:t});return a.error?{error:a.error}:{data:ht(o,a.data,n)}},[o,n,c,l]),data:a(()=>ht(o,d.data,n),[o,n,d.data]),loading:d.loading,error:d.error,called:d.called,unsupported:l}},At=(e,t)=>{const{operations:r,context:n}=at(),i=$e(),l=_t(r,e),c=a(()=>ft(l?.document,n),[l,n]),d=!l||!c,[u,m]=o({loading:!1,called:!1}),S=s(()=>m({loading:!1,called:!1}),[]);return[s(async e=>{if(d||!c)return{error:void 0};if(l?.canRun&&!l.canRun(n))return{data:void 0};const a=gt(l,e,n),r=l?.client??i;m(e=>({...e,loading:!0,called:!0}));try{const e=await r.mutate({mutation:c,variables:a}),s=ht(l,e.data,n);if(m({data:s,loading:!1,error:void 0,called:!0}),t?.refetchQueries){const e=r.refetchQueries({include:t.refetchQueries});t?.awaitRefetchQueries&&await e}return void 0!==s&&t?.onCompleted?.(s),{data:s}}catch(e){const a=e;return m({data:void 0,loading:!1,error:a,called:!0}),t?.onError?.(a),{error:a}}},[l,n,i,c,d,t]),{data:u.data,loading:u.loading,error:u.error,called:u.called,unsupported:d,reset:S}]},Rt=[],Ot=(e,t,a,r)=>{let n=!0;const s={sources:[]};for(const[o,i]of Object.entries(e)){if(!i.length)continue;n=!1;const e=i.map(({id:e,selected:t,currentStreamName:r})=>({namespace:e.namespace,name:e.name,kind:e.kind,selected:void 0!==t&&t,currentStreamName:r||a}));let l=0,c=0;for(const a of e){const e=t.find(e=>e.id.namespace===o&&e.id.name===a.name&&e.id.kind===a.kind),r=e?.dataStreamNames||[];a.selected&&!e?l++:!a.selected&&e&&r.length<=1&&c++}r(l,c),s.sources.push(...e)}return{payload:s,isEmpty:n}},Ct=(e,t)=>{let a=!0;const r={namespaces:[]};for(const[n,{selected:s,currentStreamName:o}]of Object.entries(e))"boolean"==typeof s&&(a=!1,r.namespaces.push({namespace:n,selected:s,currentStreamName:o||t}));return{payload:r,isEmpty:a}},Dt={filter:{markedForInstrumentation:!0}},Gt=[],bt=e=>{const t=e.markedForInstrumentation?.markedForInstrumentation;return"boolean"==typeof t?e:{...e,markedForInstrumentation:{...e.markedForInstrumentation??{markedForInstrumentation:!0},markedForInstrumentation:!0}}},Lt=e=>{let t=!1;const a=e.map(e=>{const a=bt(e);return a!==e&&(t=!0),a});return t?a:e},wt=[],Pt=[],Ut=[],Ft=(e,t)=>{const a=$e(),{notifyError:r,notifySuccess:n,notifyReadonly:s}=ct(A.Finding),o=async()=>{e.GET_INSIGHTS_FINDINGS&&await Et(a,e.GET_INSIGHTS_FINDINGS,void 0,t)},i=async()=>{e.GET_INSIGHTS_ANOMALIES&&await Et(a,e.GET_INSIGHTS_ANOMALIES,void 0,t)},l=async()=>{e.GET_INSIGHTS_TRANSACTIONS&&await Et(a,e.GET_INSIGHTS_TRANSACTIONS,void 0,t)},c=async()=>{if(!e.GET_INSIGHTS_POLICIES)return;const r="function"==typeof e.GET_INSIGHTS_POLICIES.document?e.GET_INSIGHTS_POLICIES.document(t):e.GET_INSIGHTS_POLICIES.document;r?await a.refetchQueries({include:[r]}):await Et(a,e.GET_INSIGHTS_POLICIES,void 0,t)},d=async()=>{e.GET_INSIGHTS_LEARNING_POLICIES&&await Et(a,e.GET_INSIGHTS_LEARNING_POLICIES,void 0,t)},u=async()=>{e.GET_INSIGHTS_GUARDRAILS&&await Et(a,e.GET_INSIGHTS_GUARDRAILS,void 0,t)},m=async()=>{e.GET_INSIGHTS_GUARDRAIL_VIOLATIONS&&await Et(a,e.GET_INSIGHTS_GUARDRAIL_VIOLATIONS,void 0,t)};return{useServices:e=>Nt("GET_INSIGHTS_SERVICES",void 0,e),useServiceNames:e=>Nt("GET_INSIGHTS_SERVICE_NAMES",void 0,e),useTransactions:(e,t)=>Nt("GET_INSIGHTS_TRANSACTIONS",e,t),useTransaction:(e,t)=>Nt("GET_INSIGHTS_TRANSACTION",e,t),useBaseline:(e,t)=>Nt("GET_INSIGHTS_BASELINE",e,t),useObservations:(e,t)=>Nt("GET_INSIGHTS_OBSERVATIONS",e,t),useObservation:(e,t)=>Nt("GET_INSIGHTS_OBSERVATION",e,t),useFindings:(e,t)=>Nt("GET_INSIGHTS_FINDINGS",e,t),useAnomalies:(e,t)=>Nt("GET_INSIGHTS_ANOMALIES",e,t),useAnomaly:(e,t)=>Nt("GET_INSIGHTS_ANOMALY",e,t),usePolicies:e=>Nt("GET_INSIGHTS_POLICIES",void 0,e),useLearningPolicies:e=>Nt("GET_INSIGHTS_LEARNING_POLICIES",void 0,e),useGuardrails:e=>Nt("GET_INSIGHTS_GUARDRAILS",void 0,e),useGuardrailViolations:(e,t)=>Nt("GET_INSIGHTS_GUARDRAIL_VIOLATIONS",e,t),useGuardrailViolation:(e,t)=>Nt("GET_INSIGHTS_GUARDRAIL_VIOLATION",e,t),useServiceProfile:(e,t)=>Nt("GET_INSIGHTS_SERVICE_PROFILE",e,t),useBlastRadius:(e,t)=>Nt("GET_INSIGHTS_BLAST_RADIUS",e,t),useCatalog:e=>Nt("GET_INSIGHTS_CATALOG",void 0,e),useSystemSettings:e=>Nt("GET_INSIGHTS_SYSTEM_SETTINGS",void 0,e),useStorageHealth:e=>Nt("GET_INSIGHTS_STORAGE_HEALTH",void 0,e),getServices:e.GET_INSIGHTS_SERVICES?async()=>Et(a,e.GET_INSIGHTS_SERVICES,void 0,t):void 0,getServiceNames:e.GET_INSIGHTS_SERVICE_NAMES?async()=>Et(a,e.GET_INSIGHTS_SERVICE_NAMES,void 0,t):void 0,getTransactions:e.GET_INSIGHTS_TRANSACTIONS?async r=>Et(a,e.GET_INSIGHTS_TRANSACTIONS,r,t):void 0,getTransaction:e.GET_INSIGHTS_TRANSACTION?async r=>Et(a,e.GET_INSIGHTS_TRANSACTION,r,t):void 0,getFindings:e.GET_INSIGHTS_FINDINGS?async r=>Et(a,e.GET_INSIGHTS_FINDINGS,r,t):void 0,getAnomalies:e.GET_INSIGHTS_ANOMALIES?async r=>Et(a,e.GET_INSIGHTS_ANOMALIES,r,t):void 0,getAnomaly:e.GET_INSIGHTS_ANOMALY?async r=>Et(a,e.GET_INSIGHTS_ANOMALY,r,t):void 0,getPolicies:e.GET_INSIGHTS_POLICIES?async()=>Et(a,e.GET_INSIGHTS_POLICIES,void 0,t):void 0,getLearningPolicies:e.GET_INSIGHTS_LEARNING_POLICIES?async()=>Et(a,e.GET_INSIGHTS_LEARNING_POLICIES,void 0,t):void 0,getGuardrails:e.GET_INSIGHTS_GUARDRAILS?async()=>Et(a,e.GET_INSIGHTS_GUARDRAILS,void 0,t):void 0,getGuardrailViolation:e.GET_INSIGHTS_GUARDRAIL_VIOLATION?async r=>Et(a,e.GET_INSIGHTS_GUARDRAIL_VIOLATION,r,t):void 0,getServiceProfile:e.GET_INSIGHTS_SERVICE_PROFILE?async r=>Et(a,e.GET_INSIGHTS_SERVICE_PROFILE,r,t):void 0,getBlastRadius:e.GET_INSIGHTS_BLAST_RADIUS?async r=>Et(a,e.GET_INSIGHTS_BLAST_RADIUS,r,t):void 0,getCatalog:e.GET_INSIGHTS_CATALOG?async()=>Et(a,e.GET_INSIGHTS_CATALOG,void 0,t):void 0,getSystemSettings:e.GET_INSIGHTS_SYSTEM_SETTINGS?async()=>Et(a,e.GET_INSIGHTS_SYSTEM_SETTINGS,void 0,t):void 0,getStorageHealth:e.GET_INSIGHTS_STORAGE_HEALTH?async()=>Et(a,e.GET_INSIGHTS_STORAGE_HEALTH,void 0,t):void 0,promoteBaselineClass:e.PROMOTE_INSIGHTS_BASELINE_CLASS?async o=>{if(t.isReadonly)return s();const{data:i,error:l}=await Tt(a,e.PROMOTE_INSIGHTS_BASELINE_CLASS,o,t);return l?r(E.Update,l):n(E.Update,"Successfully promoted baseline class"),{data:i,error:l}}:void 0,resetBaselineClass:e.RESET_INSIGHTS_BASELINE_CLASS?async(o,i)=>{if(t.isReadonly)return s();const{error:l}=await Tt(a,e.RESET_INSIGHTS_BASELINE_CLASS,{transactionId:o,class:i},t);return l?r(E.Update,l):n(E.Update,"Successfully reset baseline class"),l?{error:l}:void 0}:void 0,resetTransactionBaselines:e.RESET_INSIGHTS_TRANSACTION_BASELINES?async o=>{if(t.isReadonly)return s();const{error:i}=await Tt(a,e.RESET_INSIGHTS_TRANSACTION_BASELINES,{transactionId:o},t);return i?r(E.Update,i):n(E.Update,"Successfully reset transaction baselines"),i?{error:i}:void 0}:void 0,promoteTransactionBaselines:e.PROMOTE_INSIGHTS_TRANSACTION_BASELINES?async o=>{if(t.isReadonly)return s();const{error:i}=await Tt(a,e.PROMOTE_INSIGHTS_TRANSACTION_BASELINES,{transactionId:o},t);return i?r(E.Update,i):(n(E.Update,"Successfully promoted transaction baselines"),await Promise.all([l(),u()])),i?{error:i}:void 0}:void 0,bulkPromoteTransactions:e.BULK_PROMOTE_INSIGHTS_TRANSACTIONS?async o=>{if(t.isReadonly)return s();const i={transactionIds:o},{data:c,error:d}=await Tt(a,e.BULK_PROMOTE_INSIGHTS_TRANSACTIONS,i,t);return d?r(E.Update,d):(n(E.Update,`Successfully promoted ${c?.promoted??o.length} transactions`),await Promise.all([l(),u()])),{data:c,error:d}}:void 0,forcePromoteService:e.FORCE_PROMOTE_INSIGHTS_SERVICE?async o=>{if(t.isReadonly)return s();const{error:i}=await Tt(a,e.FORCE_PROMOTE_INSIGHTS_SERVICE,o,t);return i?r(E.Update,i):(n(E.Update,"Successfully force-promoted service transactions"),await Promise.all([l(),u()])),i?{error:i}:void 0}:void 0,enableTransactionGuardrail:e.ENABLE_INSIGHTS_TRANSACTION_GUARDRAIL?async o=>{if(t.isReadonly)return s();const{error:i}=await Tt(a,e.ENABLE_INSIGHTS_TRANSACTION_GUARDRAIL,o,t);return i?r(E.Update,i):(n(E.Update,"Successfully enabled transaction guardrail"),await u()),i?{error:i}:void 0}:void 0,disableTransactionGuardrail:e.DISABLE_INSIGHTS_TRANSACTION_GUARDRAIL?async o=>{if(t.isReadonly)return s();const{error:i}=await Tt(a,e.DISABLE_INSIGHTS_TRANSACTION_GUARDRAIL,o,t);return i?r(E.Update,i):(n(E.Update,"Successfully disabled transaction guardrail"),await u()),i?{error:i}:void 0}:void 0,deleteTransaction:e.DELETE_INSIGHTS_TRANSACTION?async c=>{if(t.isReadonly)return s();const{error:d}=await Tt(a,e.DELETE_INSIGHTS_TRANSACTION,{transactionId:c},t);return d?r(E.Delete,d):(n(E.Delete,"Successfully deleted transaction"),await Promise.all([l(),o(),i()])),d?{error:d}:void 0}:void 0,bulkDeleteTransactions:e.BULK_DELETE_INSIGHTS_TRANSACTIONS?async c=>{if(t.isReadonly)return s();const d={transactionIds:c},{data:u,error:m}=await Tt(a,e.BULK_DELETE_INSIGHTS_TRANSACTIONS,d,t);return m?r(E.Delete,m):(n(E.Delete,`Successfully deleted ${u?.deleted??c.length} transactions`),await Promise.all([l(),o(),i()])),{data:u,error:m}}:void 0,upsertPolicy:e.UPSERT_INSIGHTS_POLICY?async o=>{if(t.isReadonly)return s();const{data:i,error:l}=await Tt(a,e.UPSERT_INSIGHTS_POLICY,{policy:o},t);return l?r(E.Update,l):(n(E.Update,`Successfully saved policy "${o.name}"`),await c()),{data:i,error:l}}:void 0,deletePolicy:e.DELETE_INSIGHTS_POLICY?async(o,i)=>{if(t.isReadonly)return s();const{error:l}=await Tt(a,e.DELETE_INSIGHTS_POLICY,{scope:o,scopeKey:i},t);return l?r(E.Delete,l):(n(E.Delete,"Successfully deleted policy"),await c()),l?{error:l}:void 0}:void 0,upsertLearningPolicy:e.UPSERT_INSIGHTS_LEARNING_POLICY?async o=>{if(t.isReadonly)return s();const{data:i,error:l}=await Tt(a,e.UPSERT_INSIGHTS_LEARNING_POLICY,{policy:o},t);return l?r(E.Update,l):(n(E.Update,"Successfully saved learning policy"),await d()),{data:i,error:l}}:void 0,deleteLearningPolicy:e.DELETE_INSIGHTS_LEARNING_POLICY?async(o,i,l)=>{if(t.isReadonly)return s();const{error:c}=await Tt(a,e.DELETE_INSIGHTS_LEARNING_POLICY,{class:o,scope:i,scopeKey:l},t);return c?r(E.Delete,c):(n(E.Delete,"Successfully deleted learning policy"),await d()),c?{error:c}:void 0}:void 0,resolveAnomaly:e.RESOLVE_INSIGHTS_ANOMALY?async l=>{if(t.isReadonly)return s();const{error:c}=await Tt(a,e.RESOLVE_INSIGHTS_ANOMALY,l,t);return c?r(E.Update,c):(n(E.Update,`Successfully ${l.resolution}ed anomaly`),await Promise.all([i(),o()])),c?{error:c}:void 0}:void 0,bulkResolveAnomalies:e.BULK_RESOLVE_INSIGHTS_ANOMALIES?async(l,c)=>{if(t.isReadonly)return s();const d={resolution:l,items:c},{data:u,error:m}=await Tt(a,e.BULK_RESOLVE_INSIGHTS_ANOMALIES,d,t);return m?r(E.Update,m):(n(E.Update,`Successfully ${l}ed ${u?.resolved??c.length} anomalies`),await Promise.all([i(),o()])),{data:u,error:m}}:void 0,upsertGuardrail:e.UPSERT_INSIGHTS_GUARDRAIL?async o=>{if(t.isReadonly)return s();const{data:i,error:l}=await Tt(a,e.UPSERT_INSIGHTS_GUARDRAIL,{guardrail:o},t);return l?r(E.Update,l):(n(E.Update,"Successfully saved guardrail"),await u()),{data:i,error:l}}:void 0,deleteGuardrail:e.DELETE_INSIGHTS_GUARDRAIL?async(o,i)=>{if(t.isReadonly)return s();const{error:l}=await Tt(a,e.DELETE_INSIGHTS_GUARDRAIL,{scopeKey:o,scope:i},t);return l?r(E.Delete,l):(n(E.Delete,"Successfully deleted guardrail"),await u()),l?{error:l}:void 0}:void 0,seedGuardrail:e.SEED_INSIGHTS_GUARDRAIL?async o=>{if(t.isReadonly)return s();const{error:i}=await Tt(a,e.SEED_INSIGHTS_GUARDRAIL,{seed:o},t);return i?r(E.Create,i):(n(E.Create,"Successfully seeded guardrail"),await u()),i?{error:i}:void 0}:void 0,acceptViolation:e.ACCEPT_INSIGHTS_GUARDRAIL_VIOLATION?async i=>{if(t.isReadonly)return s();const{error:l}=await Tt(a,e.ACCEPT_INSIGHTS_GUARDRAIL_VIOLATION,{action:i},t);return l?r(E.Update,l):(n(E.Update,"Successfully accepted violation"),await Promise.all([m(),o()])),l?{error:l}:void 0}:void 0,dismissViolation:e.DISMISS_INSIGHTS_GUARDRAIL_VIOLATION?async i=>{if(t.isReadonly)return s();const{error:l}=await Tt(a,e.DISMISS_INSIGHTS_GUARDRAIL_VIOLATION,{action:i},t);return l?r(E.Update,l):(n(E.Update,"Successfully dismissed violation"),await Promise.all([m(),o()])),l?{error:l}:void 0}:void 0,reopenViolation:e.REOPEN_INSIGHTS_GUARDRAIL_VIOLATION?async i=>{if(t.isReadonly)return s();const{error:l}=await Tt(a,e.REOPEN_INSIGHTS_GUARDRAIL_VIOLATION,{action:i},t);return l?r(E.Update,l):(n(E.Update,"Successfully reopened violation"),await Promise.all([m(),o()])),l?{error:l}:void 0}:void 0,updateSystemSettings:e.UPDATE_INSIGHTS_SYSTEM_SETTINGS?async o=>{if(t.isReadonly)return s();const{data:i,error:l}=await Tt(a,e.UPDATE_INSIGHTS_SYSTEM_SETTINGS,{settings:o},t);return l?r(E.Update,l):(n(E.Update,"Successfully updated system settings"),await(async()=>{e.GET_INSIGHTS_SYSTEM_SETTINGS&&await Et(a,e.GET_INSIGHTS_SYSTEM_SETTINGS,void 0,t)})()),{data:i,error:l}}:void 0}},kt=[],Mt=e=>{if(e)return{clusters:[e],totalNamespaces:e.namespaces?.length??0,totalWorkloads:(e.namespaces??[]).reduce((e,t)=>e+(t.workloads?.length??0),0),lastUpdated:e.timestamp}},Ht=[],xt=[],Kt=[],$t=[],Vt=(e,t)=>({...e,fields:e.fields.filter(({value:e})=>void 0!==e),currentStreamName:t}),Yt=[],Bt=[],Wt=()=>{const{operations:e,context:t}=at(),r=$e(),n=((e,t)=>{const r=$e(),{notifyError:n,notifySuccess:o,notifyPending:i,notifyReadonly:l}=ct(T.Source),{selectedStreamName:c}=y(),{setProgress:d,resetProgress:u}=f(),{setConfiguredSources:m,setConfiguredFutureApps:S}=_(),p=(e,t)=>{const{progress:a}=f.getState();e>0&&d(h.Instrumenting,{total:(a[h.Instrumenting]?.total||0)+e,current:a[h.Instrumenting]?.current||0}),t>0&&d(h.Uninstrumenting,{total:(a[h.Uninstrumenting]?.total||0)+t,current:a[h.Uninstrumenting]?.current||0})},I=s(async()=>{const{error:a}=await Et(r,e.GET_WORKLOADS,Dt,t);a&&n(E.Read,a)},[r,e.GET_WORKLOADS,t,n]);return{useSources:()=>{const e=Nt("GET_WORKLOADS",Dt,{fetchPolicy:"cache-first"}),t=e.data?.workloads;return{items:a(()=>t?Lt(t):Gt,[t]),loading:e.loading,refetch:I}},fetchAll:I,fetchByTargets:async(a,s)=>{const o=!!s?.slim,i=a.map(e=>g(e,T.Source)).filter(e=>e.namespace&&e.name&&e.kind);if(0===i.length)return;if(i.length>50)return void await I();const l=o&&e.GET_WORKLOADS_BY_IDS_SLIM?e.GET_WORKLOADS_BY_IDS_SLIM:e.GET_WORKLOADS_BY_IDS,{error:c}=await Et(r,l,{ids:i.map(({namespace:e,kind:t,name:a,region:r})=>({namespace:e,kind:t,name:a,region:r||void 0}))},t);c?n(E.Read,c):await I()},fetchById:async a=>{const{data:s,error:o}=await Et(r,e.GET_WORKLOADS_BY_IDS,{ids:[{namespace:a.namespace,kind:a.kind,name:a.name,...a.region?{region:a.region}:{}}]},t);if(o)return void n(E.Read,o);const i=s?.workloadsByIds?.find(e=>e.id.namespace===a.namespace&&e.id.kind===a.kind&&e.id.name===a.name&&(e.id.region??"")===(a.region??""));return i?bt(i):void 0},fetchLibraries:async a=>Et(r,e.GET_SOURCE_LIBRARIES,a,t),fetchPeerSources:async a=>Et(r,e.GET_PEER_SOURCES,{serviceName:a},t),usePeerSources:(e,t)=>Nt("GET_PEER_SOURCES",e,t),useInstrumentationInstructions:(e,t)=>Nt("GET_INSTRUMENTATION_INSTRUCTIONS",e,{...t,skip:t?.skip||!e?.name}),persist:async(a,s)=>{if(t.isReadonly)return l();const{data:o}=await Et(r,e.GET_WORKLOADS,Dt,t,"cache-first"),d=Lt(o?.workloads??Gt),{payload:T,isEmpty:I}=Ot(a,d,c,p),{payload:y,isEmpty:f}=Ct(s,c);let _=!1;I||(_=!0,i("Persisting sources...")),f||_||i("Persisting namespaces...");const{error:g}=await Tt(r,e.PERSIST_SOURCES,T,t);if(g&&(u(h.Instrumenting),u(h.Uninstrumenting),n(E.Update,g)),e.PERSIST_NAMESPACES){const{error:a}=await Tt(r,e.PERSIST_NAMESPACES,y,t);a&&n(E.Update,a)}m({}),S({})},persistV2:async a=>{if(t.isReadonly)return l(),{error:"readonly"};const n=[];for(const[s,o]of Object.entries(a)){const a={sources:[]},i={namespaces:[]};for(const e of o)e.name&&e.kind?a.sources.push(e):i.namespaces.push(e);const l=s&&s!==N?{...t,proxyID:s}:t,c=e=>s&&s!==N?`${s}: ${e}`:e;if(i.namespaces.length>0&&e.PERSIST_NAMESPACES){const{error:t}=await Tt(r,e.PERSIST_NAMESPACES,i,l);t&&n.push(c(t))}if(a.sources.length>0){const{error:t}=await Tt(r,e.PERSIST_SOURCES,a,l);t&&n.push(c(t))}}return n.length?{error:n.join(", ")}:void 0},update:async(a,s)=>{if(t.isReadonly)return l();i("Updating source...");const d={sourceId:a,patchSourceRequest:{...s,currentStreamName:c}},{data:u,error:m}=await Tt(r,e.UPDATE_SOURCE,d,t);m?n(E.Update,m,a):u?.updateK8sActualSource&&o(E.Update,`Successfully updated "${a.name}" source`,a)},restartWorkloads:async a=>{if(t.isReadonly)return l();i("Restarting sources...");const{data:s,error:c}=await Tt(r,e.RESTART_WORKLOADS,{sourceIds:a},t);c?n(E.Update,c):s?.restartWorkloads&&o(E.Update,`Successfully restarted ${a.length} sources`)},restartPod:async(a,s)=>{if(t.isReadonly)return l();i("Restarting pod...");const{data:c,error:d}=await Tt(r,e.RESTART_POD,{namespace:a,name:s},t);d?n(E.Update,d):c?.restartPod&&o(E.Update,`Successfully restarted pod ${a}/${s}`)},recoverFromRollback:async a=>{if(t.isReadonly)return l();i("Recovering from rollback...");const{data:s,error:c}=await Tt(r,e.RECOVER_FROM_ROLLBACK,{sourceId:a},t);c?n(E.Update,c,a):s?.recoverFromRollbackForWorkload&&o(E.Update,"Successfully triggered recovery from rollback")}}})(e,t),o=((e,t)=>{const a=$e(),{notifyError:r,notifySuccess:n,notifyReadonly:s}=ct(T.Destination),{selectedStreamName:o}=y(),i=async()=>{const{error:n}=await Et(a,e.GET_DESTINATIONS,void 0,t);n&&r(E.Read,n)};return{useDestinations:()=>{const e=Nt("GET_DESTINATIONS",void 0,{fetchPolicy:"cache-first"});return{items:e.data?.computePlatform?.destinations??e.data?.destinations??$t,loading:e.loading,refetch:i}},useDestinationCategories:()=>{const e=Nt("GET_DESTINATION_CATEGORIES",void 0);return{data:e.data,loading:e.loading}},usePotentialDestinations:()=>{const e=Nt("GET_POTENTIAL_DESTINATIONS",void 0);return{data:e.data,loading:e.loading}},fetchAll:i,testConnection:async r=>{const{data:n}=await Tt(a,e.TEST_DESTINATION_CONNECTION,{destination:Vt(r,o)},t);return n},create:async l=>{if(t.isReadonly)return s();const{error:c}=await Tt(a,e.CREATE_DESTINATION,{destination:Vt(l,o)},t);c?r(E.Create,c):(n(E.Create,`Successfully created "${l.type}" destination`),await i())},update:async(l,c)=>{if(t.isReadonly)return s();const{data:d,error:u}=await Tt(a,e.UPDATE_DESTINATION,{id:l,destination:Vt(c,o)},t);u?r(E.Update,u,l):d?.updateDestination&&(n(E.Update,`Successfully updated "${c.type}" destination`,l),await i())},remove:async l=>{if(t.isReadonly)return s();const{data:c}=await Et(a,e.GET_DESTINATIONS,void 0,t,"cache-first"),d=c?.computePlatform?.destinations??c?.destinations??$t,u=d.find(e=>O(e)===l)?.destinationType?.type,{error:m}=await Tt(a,e.DELETE_DESTINATION,{id:l,currentStreamName:o},t);m?r(E.Delete,m,l):(n(E.Delete,`Successfully deleted "${u??l}" destination`,l),await i())}}})(e,t),l=((e,t)=>{const r=$e(),{notifyError:n,notifySuccess:s,notifyReadonly:o}=ct(T.Action),i=async()=>{const{error:a}=await Et(r,e.GET_ACTIONS,void 0,t);a&&n(E.Read,a)};return{useActions:()=>{const e=Nt("GET_ACTIONS",void 0,{fetchPolicy:"cache-first"});return{items:e.data?.computePlatform?.actions??e.data?.actions??wt,loading:e.loading,refetch:i}},useActionTypes:()=>{const e=Nt("GET_ACTION_TYPES",void 0,{fetchPolicy:"cache-first"});return{options:a(()=>v(e.data)||Pt,[e.data]),loading:e.loading}},fetchAll:i,create:async a=>{if(t.isReadonly)return o(),{error:u.READONLY_WARNING};if(!e.CREATE_ACTION)return{error:"Action creation is not supported"};const{error:l}=await Tt(r,e.CREATE_ACTION,{action:a},t);return l?n(E.Create,l):(s(E.Create,`Successfully created "${a.type}" action`),await i()),l?{error:l}:void 0},update:async(a,l)=>{if(t.isReadonly)return o();if(!e.UPDATE_ACTION)return;const{error:c}=await Tt(r,e.UPDATE_ACTION,{id:a,action:l},t);c?n(E.Update,c,a):(s(E.Update,`Successfully updated "${l.type}" action`,a),await i())},remove:async(a,l)=>{if(t.isReadonly)return o();if(!e.DELETE_ACTION)return;const{error:c}=await Tt(r,e.DELETE_ACTION,{id:a,actionType:l},t);c?n(E.Delete,c,a):(s(E.Delete,`Successfully deleted "${l}" action`,a),await i())}}})(e,t),c=((e,t)=>{const r=$e(),{notifyError:n,notifySuccess:s,notifyReadonly:o}=ct(T.InstrumentationRule),i=async()=>{const{error:a}=await Et(r,e.GET_INSTRUMENTATION_RULES,void 0,t);a&&n(E.Read,a)};return{useRules:()=>{const e=Nt("GET_INSTRUMENTATION_RULES",void 0,{fetchPolicy:"cache-first"});return{items:a(()=>(e.data?.computePlatform?.instrumentationRules??e.data?.instrumentationRules??[]).map(P),[e.data]),loading:e.loading,refetch:i}},useRuleTypes:()=>{const e=Nt("GET_INSTRUMENTATION_RULE_TYPES",void 0,{fetchPolicy:"cache-first"});return{options:a(()=>w(e.data)||Bt,[e.data]),loading:e.loading}},fetchAll:i,create:async(a,l)=>{if(t.isReadonly)return o();if(!e.CREATE_INSTRUMENTATION_RULE)return;const{error:c}=await Tt(r,e.CREATE_INSTRUMENTATION_RULE,{instrumentationRule:L(a)},t);c?n(E.Create,c):(s(E.Create,`Successfully created${l?` "${l}"`:""} rule`),await i())},update:async(a,l,c)=>{if(t.isReadonly)return o();if(!e.UPDATE_INSTRUMENTATION_RULE)return;const{error:d}=await Tt(r,e.UPDATE_INSTRUMENTATION_RULE,{ruleId:a,instrumentationRule:L(l)},t);d?n(E.Update,d,a):(s(E.Update,`Successfully updated${c?` "${c}"`:""} rule`,a),await i())},remove:async(a,l)=>{if(t.isReadonly)return o();if(!e.DELETE_INSTRUMENTATION_RULE)return;const{error:c}=await Tt(r,e.DELETE_INSTRUMENTATION_RULE,{ruleId:a},t);c?n(E.Delete,c,a):(s(E.Delete,`Successfully deleted${l?` "${l}"`:""} rule`,a),await i())}}})(e,t),m=((e,t)=>{const a=$e(),{addNotification:r}=d(),{setDataStreams:n}=y(),s=(e,t)=>r({type:S.Error,title:e,message:t}),o=async()=>{const{data:r,error:o}=await Et(a,e.GET_DATA_STREAMS,void 0,t);if(o)s(E.Read,o);else if(r){const e=r.computePlatform?.dataStreams??r.dataStreams??[];n(e)}},l=e.CREATE_DATA_STREAM?async n=>{if(t.isReadonly)return dt(r);const{error:i}=await Tt(a,e.CREATE_DATA_STREAM,{stream:n},t);i?s(E.Create,i):await o()}:void 0;return{useDataStreams:()=>{const e=Nt("GET_DATA_STREAMS",void 0,{fetchPolicy:"cache-first"}),t=e.data?.computePlatform?.dataStreams??e.data?.dataStreams??Kt;return i(()=>{n(t)},[JSON.stringify(t.map(e=>e.name))]),{items:t,loading:e.loading,refetch:o}},fetchAll:o,create:l,update:async(n,i)=>{if(t.isReadonly)return dt(r);const{error:l}=await Tt(a,e.UPDATE_DATA_STREAM,{id:n,dataStream:i},t);l?s(E.Update,l):await o()},remove:async n=>{if(t.isReadonly)return dt(r);const{error:i}=await Tt(a,e.DELETE_DATA_STREAM,{id:n},t);i?s(E.Delete,i):await o()}}})(e,t),p=((e,t)=>{const a=$e(),{notifyError:r,notifyReadonly:n}=ct(T.Namespace),s=async()=>{const n=await Et(a,e.GET_NAMESPACES_WITH_WORKLOADS,void 0,t);return n.error&&r(E.Read,n.error),n};return{useNamespaces:e=>{const t=Nt("GET_NAMESPACES_WITH_WORKLOADS",void 0,{fetchPolicy:"cache-and-network",skip:e?.skip});return{items:t.data?.namespaces??kt,loading:t.loading,refetch:s}},fetchAll:s,persist:async s=>{if(t.isReadonly)return n();const{error:o}=await Tt(a,e.PERSIST_NAMESPACES,s,t);return o&&r(E.Update,o),o?{error:o}:void 0}}})(e,t),A=((e,t)=>{const a=$e(),{notifyError:r}=ct(T.Source);return{fetch:async n=>{const s=await Et(a,e.GET_K8S_MANIFEST,n,t);return s.error&&r(E.Read,s.error),s}}})(e,t),U=((e,t)=>{const a=$e(),{notifyError:r,notifySuccess:n,notifyReadonly:s}=ct(T.Source);return{useEffectiveConfig:(e,t)=>Nt("GET_EFFECTIVE_CONFIG",e,t),useConfigYamls:e=>Nt("GET_CONFIG_YAMLS",void 0,e),getEffectiveConfig:async r=>e.GET_EFFECTIVE_CONFIG?Et(a,e.GET_EFFECTIVE_CONFIG,{id:r},t):{error:"GET_EFFECTIVE_CONFIG not configured"},applyConfigurations:e.UPDATE_REMOTE_CONFIG?async(n,o)=>{if(t.isReadonly)return s();if(!o.length)return{error:"No connections selected"};const i={formData:n,connectionIds:o},l=e.UPDATE_REMOTE_CONFIG;let c;return 1===o.length?({error:c}=await Tt(a,l,i,t)):({error:c}=await It(a,l,o,i,t)),c&&r(E.Update,c),c?{error:c}:void 0}:void 0,getConfigYamls:e.GET_CONFIG_YAMLS?async()=>Et(a,e.GET_CONFIG_YAMLS,void 0,t):void 0,updateLocalUiConfig:e.UPDATE_LOCAL_UI_CONFIG?async o=>{if(t.isReadonly)return s();const{error:i}=await Tt(a,e.UPDATE_LOCAL_UI_CONFIG,{config:o},t);return i?r(E.Update,i):n(E.Update,"Local UI configuration updated successfully"),i?{error:i}:void 0}:void 0,resetLocalUiConfigToDefaults:e.RESET_LOCAL_UI_CONFIG_TO_FACTORY_DEFAULTS?async()=>{if(t.isReadonly)return s();const{error:o}=await Tt(a,e.RESET_LOCAL_UI_CONFIG_TO_FACTORY_DEFAULTS,void 0,t);return o?r(E.Update,o):n(E.Update,"Local UI configuration reset to factory defaults"),o?{error:o}:void 0}:void 0}})(e,t),F=((e,t)=>{const a=$e(),{apolloConfig:r}=at();return{fetchDescribeOdigos:e.GET_DESCRIBE_ODIGOS?async()=>Et(a,e.GET_DESCRIBE_ODIGOS,void 0,t):void 0,fetchDescribeSource:e.GET_DESCRIBE_SOURCE?async r=>Et(a,e.GET_DESCRIBE_SOURCE,r,t):void 0,downloadDiagnose:e.GET_DIAGNOSE?async(n,s)=>{const o=await Et(a,e.GET_DIAGNOSE,{input:n,dryRun:s?.dryRun??!1},t),i=o?.data?.stats?.fileCount??0;return!o.error&&i>0&&!s?.dryRun&&await(async e=>{const t=(e=>{try{return new URL("/diagnose/download",e).toString()}catch{return null}})(e.httpUrl);if(t)try{const[a,r]=await Promise.all([Promise.resolve(e.authHeader?.()??{}),Promise.resolve(e.csrfHeader?.()??{})]),n=await fetch(t,{credentials:e.credentials??"same-origin",headers:{...a,...r}});if(!n.ok)throw new Error(`Failed to download diagnose archive: ${n.status} ${n.statusText}`);((e,t)=>{if("undefined"==typeof document)return;const a=URL.createObjectURL(e),r=document.createElement("a");r.href=a,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(a)})(await n.blob(),`odigos-diagnose-${Date.now()}.tar.gz`)}catch(e){}})(r),o}:void 0}})(e,t),k=((e,t)=>{const a=$e(),{notifyError:r,notifyReadonly:n}=ct(T.Source),s=async()=>{e.GET_TOKENS&&await Et(a,e.GET_TOKENS,void 0,t)};return{useTokens:()=>{const e=Nt("GET_TOKENS",void 0,{fetchPolicy:"cache-first"});return{items:e.data??Rt,loading:e.loading,refetch:s}},updateToken:e.UPDATE_TOKEN?async s=>{if(t.isReadonly)return n();const{error:o}=await Tt(a,e.UPDATE_TOKEN,{token:s},t);return o&&r(E.Update,o),o?{error:o}:void 0}:void 0}})(e,t),M=((e,t)=>{const a=$e();return{useMetrics:e=>Nt("GET_METRICS",void 0,e),fetch:async()=>Et(a,e.GET_METRICS,void 0,t)}})(e,t),H=((e,t)=>{const a=$e();return{useServiceMap:e=>Nt("GET_SERVICE_MAP",void 0,e),fetch:e.GET_SERVICE_MAP?async()=>Et(a,e.GET_SERVICE_MAP,void 0,t):void 0}})(e,t),x=((e,t)=>{const a=$e();return{useSlots:e=>Nt("GET_PROFILING_SLOTS",void 0,e),useSourceProfiling:(e,t)=>Nt("GET_SOURCE_PROFILING",e,t),useHotFunctions:(e,t)=>Nt("GET_PROFILE_HOT_FUNCTIONS",e,t),fetchSlots:e.GET_PROFILING_SLOTS?async()=>Et(a,e.GET_PROFILING_SLOTS,void 0,t):void 0,fetchSourceProfiling:e.GET_SOURCE_PROFILING?async r=>Et(a,e.GET_SOURCE_PROFILING,r,t):void 0,enableProfiling:e.ENABLE_SOURCE_PROFILING?async r=>Tt(a,e.ENABLE_SOURCE_PROFILING,r,t):void 0,fetchHotFunctions:e.GET_PROFILE_HOT_FUNCTIONS?async r=>Et(a,e.GET_PROFILE_HOT_FUNCTIONS,r,t):void 0,clearProfileCache:e.CLEAR_PROFILE_CACHE?async()=>Tt(a,e.CLEAR_PROFILE_CACHE,void 0,t):void 0}})(e,t),K=((e,t)=>{const a=$e();return{useGatewayInfo:e=>Nt("GET_GATEWAY_INFO",void 0,e),useGatewayPods:e=>Nt("GET_GATEWAY_PODS",void 0,e),useNodeCollectorInfo:e=>Nt("GET_NODE_COLLECTOR_INFO",void 0,e),useNodeCollectorPods:e=>Nt("GET_NODE_COLLECTOR_PODS",void 0,e),usePodInfo:(e,t)=>Nt("GET_COLLECTOR_POD_INFO",e,t),getGatewayInfo:e.GET_GATEWAY_INFO?async()=>Et(a,e.GET_GATEWAY_INFO,void 0,t):void 0,getGatewayPods:e.GET_GATEWAY_PODS?async()=>Et(a,e.GET_GATEWAY_PODS,void 0,t):void 0,getNodeCollectorInfo:e.GET_NODE_COLLECTOR_INFO?async()=>Et(a,e.GET_NODE_COLLECTOR_INFO,void 0,t):void 0,getNodeCollectorPods:e.GET_NODE_COLLECTOR_PODS?async()=>Et(a,e.GET_NODE_COLLECTOR_PODS,void 0,t):void 0,getExtendedPodInfo:e.GET_COLLECTOR_POD_INFO?async(r,n)=>Et(a,e.GET_COLLECTOR_POD_INFO,{namespace:r,name:n},t):void 0}})(e,t),$=((e,t)=>{const a=$e(),{notifyError:r,notifySuccess:n,notifyReadonly:s}=ct(T.SamplingRule),o=async()=>{e.GET_SAMPLING_RULES&&await Et(a,e.GET_SAMPLING_RULES,void 0,t)},i=(e,i)=>e?async l=>{if(t.isReadonly)return s();const{error:c}=await Tt(a,e,l,t);return c?r(i,c):(n(E.Create,"Successfully created sampling rule"),await o()),c?{error:c}:void 0}:void 0,l=(e,i)=>e?async(l,c)=>{if(t.isReadonly)return s();const{error:d}=await Tt(a,e,{samplingId:c.samplingId,ruleId:l,rule:c.rule},t);return d?r(i,d):(n(E.Update,"Successfully updated sampling rule"),await o()),d?{error:d}:void 0}:void 0,c=e=>e?async(i,l)=>{if(t.isReadonly)return s();const{error:c}=await Tt(a,e,{samplingId:l,ruleId:i},t);return c?r(E.Delete,c):(n(E.Delete,"Successfully deleted sampling rule"),await o()),c?{error:c}:void 0}:void 0;return{useSamplingRules:()=>{const e=Nt("GET_SAMPLING_RULES",void 0,{fetchPolicy:"cache-first"});return{items:e.data?.computePlatform?.samplingRules??e.data?.samplingRules??Ut,k8sHealthProbesConfig:e.data?.computePlatform?.k8sHealthProbesConfig??e.data?.k8sHealthProbesConfig??null,loading:e.loading,refetch:o}},fetchAll:e.GET_SAMPLING_RULES?async()=>Et(a,e.GET_SAMPLING_RULES,void 0,t):void 0,createNoisy:i(e.CREATE_NOISY_OPERATION_RULE,E.Create),updateNoisy:l(e.UPDATE_NOISY_OPERATION_RULE,E.Update),deleteNoisy:c(e.DELETE_NOISY_OPERATION_RULE),createHighlyRelevant:i(e.CREATE_HIGHLY_RELEVANT_OPERATION_RULE,E.Create),updateHighlyRelevant:l(e.UPDATE_HIGHLY_RELEVANT_OPERATION_RULE,E.Update),deleteHighlyRelevant:c(e.DELETE_HIGHLY_RELEVANT_OPERATION_RULE),createCostReduction:i(e.CREATE_COST_REDUCTION_RULE,E.Create),updateCostReduction:l(e.UPDATE_COST_REDUCTION_RULE,E.Update),deleteCostReduction:c(e.DELETE_COST_REDUCTION_RULE),updateK8sHealthProbesConfig:e.UPDATE_LOCAL_UI_SAMPLING_CONFIG?async n=>{if(t.isReadonly)return s();const{error:i}=await Tt(a,e.UPDATE_LOCAL_UI_SAMPLING_CONFIG,{config:{k8sHealthProbesSampling:n}},t);return i?r(E.Update,i):await o(),i?{error:i}:void 0}:void 0}})(e,t),V=((e,t)=>{const a=$e(),{notifyError:r,notifySuccess:n,notifyReadonly:s}=ct(T.Recommendation),o=async()=>{e.GET_RECOMMENDATIONS&&await Et(a,e.GET_RECOMMENDATIONS,void 0,t)};return{useRecommendations:()=>{const e=Nt("GET_RECOMMENDATIONS",void 0,{fetchPolicy:"cache-first"});return{items:e.data?.computePlatform?.recommendations??e.data?.recommendations??Yt,loading:e.loading,refetch:o}},fetchAll:e.GET_RECOMMENDATIONS?async()=>Et(a,e.GET_RECOMMENDATIONS,void 0,t):void 0,setDismissed:e.SET_RECOMMENDATION_DISMISSED?async(i,l)=>{if(t.isReadonly)return s(),{error:u.READONLY_WARNING};const{error:c}=await Tt(a,e.SET_RECOMMENDATION_DISMISSED,{name:i,dismissed:l},t);return c?r(E.Update,c):(n(E.Update,l?G:b),await o()),c?{error:c}:void 0}:void 0,applyRemediation:e.APPLY_RECOMMENDATION_REMEDIATION?async(i,l)=>{if(t.isReadonly)return s(),{error:u.READONLY_WARNING};const{data:c,error:d}=await Tt(a,e.APPLY_RECOMMENDATION_REMEDIATION,{recommendationType:i,remediationType:l},t),m=d||!c?.applyRecommendationRemediation;return m?r(E.Update,d||C):(n(E.Update,D),await o()),m?{error:d||C}:void 0}:void 0}})(e,t),Y=((e,t)=>{const r=$e();return{useSnapshots:()=>{const e=t.proxyID,r=!!e,n=Nt("GET_ALL_CLUSTER_SNAPSHOTS",void 0,{fetchPolicy:"cache-and-network",skip:r}),o=Nt("GET_CLUSTER_SNAPSHOT",e?{clusterId:e}:void 0,{fetchPolicy:"cache-and-network",skip:!r}),i=a(()=>r?Mt(o.data):n.data,[r,o.data,n.data]),l=r?o.loading:n.loading,c=s(async()=>{if(!r)return n.refetch();const{data:e}=await o.refetch();return{data:Mt(e)}},[r,n.refetch,o.refetch]);return{data:i,loading:l,pending:l&&!i,unsupported:r?o.unsupported:n.unsupported,refetch:c}},getAllClusterSnapshots:e.GET_ALL_CLUSTER_SNAPSHOTS?async()=>Et(r,e.GET_ALL_CLUSTER_SNAPSHOTS,void 0,t):void 0,getClusterSnapshot:e.GET_CLUSTER_SNAPSHOT?async a=>Et(r,e.GET_CLUSTER_SNAPSHOT,{clusterId:a},t):void 0}})(e,t),B=((e,t)=>{const a=$e(),{notifyError:r,notifySuccess:n,notifyReadonly:o}=ct(R.Connection),i=s(async()=>{if(!e.GET_COMPUTE_PLATFORMS)return[];const{data:n,error:s}=await Et(a,e.GET_COMPUTE_PLATFORMS,void 0,t);return s&&r(E.Read,s),n??[]},[a,e.GET_COMPUTE_PLATFORMS,t,r]);return{useConnections:()=>{const e=Nt("GET_COMPUTE_PLATFORMS",void 0,{fetchPolicy:"cache-and-network"});return{items:e.data??Ht,loading:e.loading,unsupported:e.unsupported,refetch:i}},useCloudConnectorProviders:()=>{const e=Nt("GET_CLOUD_CONNECTOR_PROVIDERS",void 0,{fetchPolicy:"cache-first"});return{items:e.data??xt,loading:e.loading,unsupported:e.unsupported}},createCloudConnector:e.CREATE_CLOUD_CONNECTOR?async n=>{if(t.isReadonly)throw o(),new Error("Readonly");const{data:s,error:l}=await Tt(a,e.CREATE_CLOUD_CONNECTOR,{input:n},t);if(l)throw r(E.Create,l),new Error(l);if(!s)throw new Error("No result returned from create connector");return s.created&&await i(),s}:void 0,deleteConnection:e.DELETE_PROXY_CONNECTION||e.DELETE_CLOUD_CONNECTOR?async(s,l)=>{if(t.isReadonly)return o();if(l===I.Connector){if(!e.DELETE_CLOUD_CONNECTOR)return r(E.Delete,"DELETE_CLOUD_CONNECTOR not configured"),{success:!1,error:"DELETE_CLOUD_CONNECTOR not configured"};const{data:o,error:l}=await Tt(a,e.DELETE_CLOUD_CONNECTOR,{connectorId:s},t);if(l)return r(E.Delete,l),{success:!1,error:l};const c=o??{success:!1,error:"Failed to delete connection"};return c.success?(n(E.Delete,"Connection deleted successfully"),await i(),c):(r(E.Delete,c.error||"Failed to delete connection"),c)}if(!e.DELETE_PROXY_CONNECTION)return r(E.Delete,"DELETE_PROXY_CONNECTION not configured"),{success:!1,error:"DELETE_PROXY_CONNECTION not configured"};const{data:c,error:d}=await Tt(a,e.DELETE_PROXY_CONNECTION,{proxyID:s},t);if(d)return r(E.Delete,d),{success:!1,error:d};const u=c??{success:!1,error:"Failed to delete connection"};return u.success?(n(E.Delete,"Connection deleted successfully"),await i(),u):(r(E.Delete,u.error||"Failed to delete connection"),u)}:void 0}})(e,t);return{sourcesApi:n,destinationsApi:o,actionsApi:l,instrumentationRulesApi:c,dataStreamsApi:m,namespacesApi:p,k8sManifestApi:A,configApi:U,describeApi:F,tokensApi:k,metricsApi:M,serviceMapApi:H,profilingApi:x,collectorsApi:K,samplingApi:$,recommendationsApi:V,snapshotsApi:Y,connectionsApi:B,insightsApi:Ft(e,t),capabilities:a(()=>((e,t)=>{const a=t.platformType===I.K8s,r=a,n=a,s=t.platformType===I.Vm,o=!s,i=!(t.platformType===I.Connector);return{canBulkPersistSources:o&&!!e.PERSIST_SOURCES,canInstrumentNamespaces:n&&!!e.PERSIST_NAMESPACES,canFetchSnapshots:r&&!!e.GET_ALL_CLUSTER_SNAPSHOTS,canRecoverFromRollback:r&&!!e.RECOVER_FROM_ROLLBACK,canRestartWorkloads:r&&!!e.RESTART_WORKLOADS,canFetchPeerSources:!!e.GET_PEER_SOURCES,canFetchSourceLibraries:!!e.GET_SOURCE_LIBRARIES,canFetchInstrumentationInstructions:!!e.GET_INSTRUMENTATION_INSTRUCTIONS,canFetchK8sManifest:r&&!!e.GET_K8S_MANIFEST,canCreateDestination:!!e.CREATE_DESTINATION,canTestConnection:o&&!!e.TEST_DESTINATION_CONNECTION,canFetchDestinationCategories:!!e.GET_DESTINATION_CATEGORIES,canFetchPotentialDestinations:o&&!!e.GET_POTENTIAL_DESTINATIONS,canManageActions:i&&!!e.GET_ACTIONS,canCreateAction:i&&!!e.CREATE_ACTION,canFetchActionTypes:i&&!!e.GET_ACTION_TYPES,canManageInstrumentationRules:i&&!!e.GET_INSTRUMENTATION_RULES,canCreateInstrumentationRule:i&&!!e.CREATE_INSTRUMENTATION_RULE,canFetchInstrumentationRuleTypes:i&&!!e.GET_INSTRUMENTATION_RULE_TYPES,canApplyEffectiveConfig:o&&!!e.UPDATE_REMOTE_CONFIG,canFetchEffectiveConfig:!!e.GET_EFFECTIVE_CONFIG,canFetchConfigYamls:!!e.GET_CONFIG_YAMLS,canFetchProfiling:r&&!!e.GET_PROFILING_SLOTS||s&&(!!e.GET_SOURCE_PROFILING||!!e.GET_PROFILE_HOT_FUNCTIONS),canFetchCollectorInfo:r&&!!e.GET_GATEWAY_INFO,canManageSamplingRules:!!e.GET_SAMPLING_RULES,canManageInsightsPolicies:!!e.GET_INSIGHTS_POLICIES,canFetchInsights:!!e.GET_INSIGHTS_FINDINGS,canManageRecommendations:r&&!!e.GET_RECOMMENDATIONS}})(e,t),[e,t]),resetCache:s(async()=>{await r.cache.reset()},[r])}},jt={type:"",disabled:!1,name:"",notes:"",signals:[],fields:{}},qt=n(null),zt=e=>e?.length?e.map(e=>!e.fromSources?.length&&e.from?{...e,fromSources:[e.from]}:e):e,Qt=(e,t)=>{const a=F(e??{}),r=a[M.ExtractAttribute];var n;r?.extractions?.length&&(r.extractions=r.extractions.map(e=>{const t=e;return{...t,method:t.method||(t.regex?.trim()?"regex":"preset")}})),a[M.LabelsAttributes]&&(a[M.LabelsAttributes]=zt(a[M.LabelsAttributes])),a[M.AnnotationsAttributes]&&(a[M.AnnotationsAttributes]=zt(a[M.AnnotationsAttributes])),a[M.UrlTemplatizationRulesGroups]&&(a[M.UrlTemplatizationRulesGroups]=(n=a[M.UrlTemplatizationRulesGroups],n?.length?n.map(e=>{const t=e.filterK8sWorkloadKind,a=e.filterK8sWorkloadName;return e.workloadFilters?.length||!t&&!a?e:{...e,workloadFilters:[{kind:t,name:a||void 0}]}}):n));const s=new Set((t?.fields||[]).filter(e=>e.componentType===H.SourceScopes).map(e=>e.name));return void 0!==a[M.Scopes]&&s.add(M.Scopes),s.forEach(e=>{const t=e;a[t]=Le(a[t])}),a},Xt="All row fields are required",Jt="At least one row is required",Zt=(e,t)=>!!e&&t.every(t=>{const a=e[t];return Array.isArray(a)?a.length>0:!("string"==typeof(r=a)?!r.trim():K(r));var r}),ea=({children:t,sourceOptions:r=[],namespaceOptions:n=[]})=>{const[i,l]=o(null),c=U(jt),d=s(e=>{c.resetFormData(),c.handleErrorChange(void 0,void 0,{}),e?.type&&c.handleFormChange("type",e.type),l(e)},[]),m=s((e,t)=>{const a=t??(r=e.type,k.find(e=>e.type===r)??null);var r;c.resetFormData((({type:e,name:t,notes:a,disabled:r,signals:n,fields:s},o)=>({type:e,name:t||"",notes:a||"",disabled:!!r,signals:n??[],fields:Qt(s,o)}))(e,a)),c.handleErrorChange(void 0,void 0,{}),l(a)},[]),S=s(()=>{if(!i)return{errorMessage:"No action type selected",preparedFormData:F(jt)};const e=((e,t)=>{const a=F(e),r=a.fields||{},n=r[M.UrlTemplatizationRulesGroups];n?.length&&(r[M.UrlTemplatizationRulesGroups]=n.map(e=>({...e,templatizationRules:(e.templatizationRules||[]).filter(e=>!!e.template?.trim())})));const s=r[M.AttributeNamesToDelete];s?.length&&(r[M.AttributeNamesToDelete]=s.filter(e=>!!e?.trim()));const o=r[M.Renames];if(o){const e=Array.isArray(o)?o.map(e=>[e?.key??"",e?.value??""]):Object.entries(o);r[M.Renames]=Object.fromEntries(e.filter(([e,t])=>!!e?.trim()&&!!t?.trim()))}const i=new Set((t?.fields||[]).filter(e=>e.componentType===H.SourceScopes).map(e=>e.name));void 0!==r[M.Scopes]&&i.add(M.Scopes),i.forEach(e=>{const t=r[e];void 0!==t&&(r[e]=be(t)?null:t)});const l=r[M.ExtractAttribute];return l?.extractions?.length&&(r[M.ExtractAttribute]={extractions:l.extractions.map(e=>{const t=e,a=t.method||(t.regex?.trim()?"regex":"preset"),r=t.targetAttributeName?.trim()||"";if("regex"===a)return{targetAttributeName:r,lookupKey:"",regex:t.regex?.trim()||""};const n={targetAttributeName:r,lookupKey:t.lookupKey?.trim()||"",regex:""};return t.dataFormat&&(n.dataFormat=t.dataFormat),n}).filter(e=>!!(e.targetAttributeName||e.lookupKey||e.dataFormat||e.regex))}),a.fields=r,a})(c.formData,i),t={};return K(e.signals)&&(t.signals=u.FIELD_IS_REQUIRED),i.type&&Object.assign(t,((e,t,a)=>{const r={},n=t.fields||{},s=a.fields||{};switch(e){case x.K8sAttributes:{const e=!(n[M.CollectContainerAttributes]||n[M.CollectReplicaSetAttributes]||n[M.CollectWorkloadId]||n[M.CollectClusterId]),t=!n[M.LabelsAttributes]?.length,a=!n[M.AnnotationsAttributes]?.length;e&&t&&a&&(r[M.CollectContainerAttributes]="Enable at least one option or add a label/annotation row");const s=n[M.LabelsAttributes];s?.some(e=>!Zt(e,["labelKey","attributeKey","fromSources"]))&&(r[M.LabelsAttributes]=Xt);const o=n[M.AnnotationsAttributes];o?.some(e=>!Zt(e,["annotationKey","attributeKey","fromSources"]))&&(r[M.AnnotationsAttributes]=Xt);break}case x.AddClusterInfo:{const e=n[M.ClusterAttributes];e?.length?e.some(e=>!Zt(e,["attributeName","attributeStringValue"]))&&(r[M.ClusterAttributes]=Xt):r[M.ClusterAttributes]=Jt;break}case x.DeleteAttributes:{const e=s[M.AttributeNamesToDelete]||[],t=n[M.AttributeNamesToDelete]||[];t.length?e.length>t.length&&(r[M.AttributeNamesToDelete]=Xt):r[M.AttributeNamesToDelete]=e.length?Xt:Jt;break}case x.RenameAttributes:{const e=Object.entries(s[M.Renames]||{}),t=Object.entries(n[M.Renames]||{}),a=e.some(([e,t])=>!e?.trim()||!t?.trim());t.length?a&&(r[M.Renames]=Xt):r[M.Renames]=e.length?Xt:Jt;break}case x.PiiMasking:{const e=n[M.PiiCategories];e?.length||(r[M.PiiCategories]="Select at least one attribute to mask");break}case x.URLTemplatization:{const e=n[M.UrlTemplatizationRulesGroups];(!e?.length||e.some(e=>!e.templatizationRules?.length))&&(r[M.UrlTemplatizationRulesGroups]="Each rule group needs at least one non-blank template");break}case x.ExtractAttribute:{const e=n[M.ExtractAttribute]?.extractions||[],t=s[M.ExtractAttribute]?.extractions||[];if(e.length)if(e.some(e=>{if(!e.targetAttributeName?.trim())return!0;const t=!!e.regex?.trim(),a=!!e.lookupKey?.trim();return a!==!!e.dataFormat||t===a}))r[M.ExtractAttribute]="Each row needs a target attribute name and either a regex or both lookup key and data format";else{const t=new Set;e.some(e=>{const a=e.targetAttributeName?.trim()||"";return!!t.has(a)||(t.add(a),!1)})&&(r[M.ExtractAttribute]="Each new span attribute name must be unique")}else r[M.ExtractAttribute]=t.length?Xt:Jt;break}}return r})(i.type,e,c.formData)),c.handleErrorChange(void 0,void 0,t),{errorMessage:Object.keys(t).length>0?"Invalid form values":void 0,preparedFormData:e}},[c,i]),p=a(()=>({selectedOption:i,onSelectOption:d,loadAction:m,genericForm:c,validateFormData:S,sourceOptions:r,namespaceOptions:n}),[i,d,m,c,S,r,n]);return e(qt.Provider,{value:p,children:t})},ta=()=>{const e=r(qt);if(!e)throw new Error("useActionFormContext must be used within an ActionFormContextProvider");return e},aa={provider:"",permission:"",customCapabilities:{},authMethod:"",setupMethod:"",accountId:"",credentials:{},accessToken:"",secretId:"",name:""},ra=n(null),na=({children:t})=>{const{connectionsApi:r}=Wt(),{items:n}=r.useCloudConnectorProviders(),o=U(aa),i=s(()=>{const e=F(o.formData);return e.provider?e.permission?{errorMessage:void 0,preparedFormData:e}:{errorMessage:"Please select a permission level",preparedFormData:e}:{errorMessage:"Please select a provider",preparedFormData:e}},[o]),l=a(()=>({providers:n,genericForm:o,validateFormData:i}),[n,o,i]);return e(ra.Provider,{value:l,children:t})},sa=()=>{const e=r(ra);if(!e)throw new Error("useCloudConnectorFormContext must be used within a CloudConnectorFormContextProvider");return e},oa={name:""},ia=n(null),la=({children:t,defaultExcludeName:r=""})=>{const{dataStreams:n}=y(),[i,c]=o(void 0),[d,m]=o(r),[S,p]=o(void 0),[E,T]=o(null),I=l(null),f=U(oa),_=s(e=>{f.resetFormData({name:e}),f.handleErrorChange(void 0,void 0,{}),c(void 0),m(e),p(e),T(null),I.current=null},[]),h=s(()=>{const e=F(f.formData),t=(e=>{const t={};return e.name?$(e.name)||(t.name=u.ILLEGAL_K8S_LABEL):t.name=u.FIELD_IS_REQUIRED,t})(e);f.handleErrorChange(void 0,void 0,t);const a=Object.keys(t).length>0?u.REQUIRED_FIELDS:void 0;return c(a),{errorMessage:a,preparedFormData:e}},[f]),g=s(async e=>{const{errorMessage:t,preparedFormData:a}=h();if(t)return;const r=n.find(e=>e.name===a.name&&e.name!==d);if(r)return I.current=e,void T({preparedFormData:a,existingName:r.name,editingName:S});await e(a)},[h,n,d,S]),N=s(async()=>{const e=I.current,t=E?.preparedFormData;I.current=null,T(null),e&&t&&await e(t)},[E]),v=s(()=>{I.current=null,T(null)},[]),A=a(()=>({genericForm:f,loadDataStream:_,editingName:S,validateFormData:h,requestSubmit:g,pendingMerge:E,confirmMerge:N,cancelMerge:v,errorMessage:i,excludeName:d,setExcludeName:m}),[f,_,S,h,g,E,N,v,i,d]);return e(ia.Provider,{value:A,children:t})},ca=()=>{const e=r(ia);if(!e)throw new Error("useDataStreamFormContext must be used within a DataStreamFormContextProvider");return e},da={type:"",name:"",currentStreamName:"",disabled:!1,exportedSignals:{logs:!1,metrics:!1,traces:!1,profiles:!1},fields:[]},ua={activeForm:null,onChangeActiveForm:()=>{},loadDestination:()=>{},genericForm:void 0,validateFormData:()=>({isOk:!1,preparedFormData:F(da)}),unsavedDestinations:[],thisUnsavedDestination:void 0,setUnsavedDestinations:()=>{},addUnsavedDestination:()=>{},updateUnsavedDestination:()=>{},deleteUnsavedDestination:()=>{}},ma=n(ua),Sa=e=>e.filter(e=>!!e).map(e=>{const{name:t,componentType:a,componentProperties:r,displayName:n,initialValue:s,renderCondition:o}=e,i=a===H.Dropdown,l=W(r,{});return{componentType:a,renderCondition:o,name:t,title:n,value:s,placeholder:l.placeholder||(i?"Select an option":void 0),options:i&&Array.isArray(l.values)?l.values.map(e=>({id:e,label:e})):void 0,...l}}),pa=({children:t})=>{const{selectedStreamName:r}=y(),{items:n}=Wt().destinationsApi.useDestinations(),[l,c]=o(null),[d,m]=o(ua.unsavedDestinations),S=a(()=>"number"==typeof l?.unsavedIdx?d[l.unsavedIdx]:void 0,[l,d]),p=s((e,t)=>{l&&(m(t=>[...t,{...e,option:l.option}]),c(t?e=>e?{...e,listType:V.UNSAVED,unsavedIdx:d.length}:null:null))},[l,d.length]),E=s((e,t,a)=>{l&&(m(a=>a.map((a,r)=>r===e?{...a,...t,option:l.option}:a)),c(a?e=>e?{...e,listType:V.UNSAVED}:null:null))},[l]),T=s(e=>{m(t=>t.filter((t,a)=>a!==e)),c(null)},[]),I=U({...da,currentStreamName:r});i(()=>{if(!l)return;if(S)return void I.resetFormData({...S.formData});if(l.listType===V.EXISTS&&l.option.id){const e=n.find(e=>e.id===l.option.id);if(e)return void I.resetFormData({type:e.destinationType.type,name:e.name||e.destinationType.displayName,currentStreamName:r,disabled:!!e.disabled,exportedSignals:{logs:!!e.exportedSignals?.logs,metrics:!!e.exportedSignals?.metrics,traces:!!e.exportedSignals?.traces,profiles:!!e.exportedSignals?.profiles},fields:l.dynamicFields.map(e=>({key:e.name,value:e.value}))})}const e=Y(l.option.supportedSignals);I.resetFormData({type:l.option.type,name:l.option.displayName,currentStreamName:r,disabled:!1,exportedSignals:{logs:e.includes(B.Logs),metrics:e.includes(B.Metrics),traces:e.includes(B.Traces),profiles:e.includes(B.Profiles)},fields:l.dynamicFields.map(e=>({key:e.name,value:e.value}))})},[l,S]);const f=s(e=>{I.resetFormData(),I.handleErrorChange(void 0,void 0,{}),c(e?{...e,dynamicFields:e.option?.fields?Sa(e.option.fields):[]}:null)},[]),_=s((e,t)=>{let a;for(const r of t){const t=r.items.find(t=>t.type===e.destinationType.type);if(t){a=t;break}}const r=W(e.fields,{}),n={id:e.id,type:e.destinationType.type,displayName:e.name||e.destinationType.displayName,selected:!0,testConnectionSupported:a?.testConnectionSupported??!1,supportedSignals:e.destinationType.supportedSignals,fields:a?a.fields.map(e=>({...e,initialValue:r[e.name]??e.initialValue})):[]},s=Sa(n.fields);c({listType:V.EXISTS,option:n,dynamicFields:s})},[]),h=s(()=>{const e=F(I.formData),t={};return l?.dynamicFields.forEach(({name:a,required:r})=>{if(r){const r=e.fields.find(e=>e.key===a)?.value;K(r)&&(t[a]=u.FIELD_IS_REQUIRED)}}),j(e.exportedSignals).length||(t.exportedSignals=u.FIELD_IS_REQUIRED),I.handleErrorChange(void 0,void 0,t),{errorMessage:0===Object.keys(t).length?void 0:"Invalid form values",preparedFormData:e}},[I,l]);return e(ma.Provider,{value:{activeForm:l,onChangeActiveForm:f,loadDestination:_,genericForm:I,validateFormData:h,unsavedDestinations:d,thisUnsavedDestination:S,setUnsavedDestinations:m,addUnsavedDestination:p,updateUnsavedDestination:E,deleteUnsavedDestination:T},children:t})},Ea=()=>r(ma),Ta="http.response.status_code",Ia="rpc.grpc.status_code",ya="http.status_code",fa=(e,t)=>{switch(e){case Ta:case ya:return t;case Ia:return`gRPC ${t}`;default:return t}},_a=({operationName:e,identityDimensions:t})=>{const a=e||"",r=t??[];return r.length?`${a} · ${r.map(e=>fa(e.key,e.value)).join(" · ")}`:a},ha=e=>{const t=e.indexOf("\t"),a=t>=0?e.slice(0,t):"",r=t>=0?e.slice(t+1):e,{operationName:n,identityDimensions:s}=ga(r),o=_a({operationName:n,identityDimensions:s});return a?`${a} ${o}`:o},ga=e=>{const t=e.indexOf(" [");if(t<0)return{operationName:e,identityDimensions:[]};const a=e.slice(0,t),r=[];let n=e.slice(t+1);for(;n.startsWith("[");){const e=n.indexOf("="),t=n.indexOf("]");if(e<0||t<0||e>t)break;r.push({key:n.slice(1,e),value:n.slice(e+1,t)}),n=n.slice(t+1)}return{operationName:a,identityDimensions:r}},Na=e=>{const t=`${e.namespace}/${e.service}`,a=_a(e);return a?`${t} · ${a}`:t},va=({operationName:a,identityDimensions:r,tagVariant:n=Q.Blue,fallback:s="-"})=>{const o=r??[];return t(q,{$gap:6,$alignItems:"center",children:[e(z,{label:a||s,variant:n}),o.map(t=>e(X,{text:t.key,children:e(z,{label:fa(t.key,t.value)})},`${t.key}=${t.value}`))]})};var Aa,Ra;(e=>{e.Global="global",e.Service="service",e.Transaction="transaction"})(Aa||(Aa={})),(e=>{e.Low="low",e.Medium="medium",e.High="high",e.Critical="critical"})(Ra||(Ra={}));const Oa=e=>e.scope===Aa.Global,Ca=n(null),Da=(e,t)=>`${e}/${t}`,Ga={scopeType:Aa.Service,selectedKey:""},ba=({children:t,services:r,transactions:n,existingScopeKeys:l,onSubmit:c})=>{const d=U(Ga),[u,m]=o(!1),{scopeType:S,selectedKey:p}=d.formData,E=a(()=>{const e=new Set,t=[];for(const a of r){if(!a.namespace||!a.service)continue;const r=Da(a.namespace,a.service);e.has(r)||(e.add(r),t.push({id:r,label:r}))}return t.sort((e,t)=>e.label.localeCompare(t.label))},[r]),T=a(()=>n.filter(e=>!!e.id).map(e=>({id:e.id,label:Na(e)})).sort((e,t)=>e.label.localeCompare(t.label)),[n]),I=S===Aa.Service?E:T;i(()=>{const e=I.find(e=>!l.includes(e.id))?.id||I[0]?.id||"";p&&I.some(e=>e.id===p)||d.handleFormChange("selectedKey",e)},[I,l,p,d]);const y=!!p&&!u,f=s(async()=>{if(!y)return;const e=I.find(e=>e.id===p);m(!0);try{await c({scope:S,scopeKey:p,name:e?.label||p})}finally{m(!1)}},[y,I,p,S,c]),_=a(()=>({services:r,transactions:n,existingScopeKeys:l,genericForm:d,serviceOptions:E,transactionOptions:T,options:I,canCreate:y,submitting:u,handleSubmit:f}),[r,n,l,d,E,T,I,y,u,f]);return e(Ca.Provider,{value:_,children:t})},La=()=>{const e=r(Ca);if(!e)throw new Error("useDetectionOverrideFormContext must be used within a DetectionOverrideFormContextProvider");return e},wa=[{id:Ra.Low,label:J},{id:Ra.Medium,label:Z},{id:Ra.High,label:ee},{id:Ra.Critical,label:te}],Pa={[Ra.Low]:20,[Ra.Medium]:40,[Ra.High]:60,[Ra.Critical]:75},Ua=n(null),Fa=({children:t,policy:r,onSave:n,onDelete:l})=>{const c=U(r),[d,u]=o(!1),[m,S]=o(!1);i(()=>{c.resetFormData(r)},[r]);const p=c.isFormDirty,E=d||m,T=p&&!E,I=p&&!E,y=s(e=>{const t=e[0]||Ra.Medium,a=c.formData;c.handleFormChange(void 0,void 0,{...a,riskLevel:t,fireAtScore:Pa[t],summary:Oa(a)?a.summary:ae(Pa[t],a.signalWeightOverrideCount)})},[c]),f=s(e=>{const t=c.formData;c.handleFormChange(void 0,void 0,{...t,signalWeights:e.signalWeights,enricherLists:e.enricherLists,signalWeightOverrideCount:e.overrideCount,summary:Oa(t)?t.summary:ae(t.fireAtScore,e.overrideCount)})},[c]),_=s(async()=>{if(T){u(!0);try{await n(c.formData)}finally{u(!1)}}},[c.formData,T,n]),h=s(()=>{c.resetFormData(r)},[c,r]),g=s(async()=>{if(l){S(!0);try{await l()}finally{S(!1)}}},[l]),N=a(()=>({policy:r,genericForm:c,isDirty:p,canUpdate:T,canDiscard:I,isSaving:d,isDeleting:m,handleSave:_,handleDiscard:h,handleDelete:g,handleRiskLevelChange:y,handleSignalWeightsChange:f}),[r,c,p,T,I,d,m,_,h,g,y,f]);return e(Ua.Provider,{value:N,children:t})},ka=()=>{const e=r(Ua);if(!e)throw new Error("useDetectionPolicyFormContext must be used within a DetectionPolicyFormContextProvider");return e},Ma=()=>({name:"",left:{service:"",span:"",attr:"",extract:""},right:{service:"",span:"",attr:"",extract:""},relation:ne.Equals,severity:re.Critical,why:""}),Ha=e=>({name:e.name,left:{service:e.left.service,span:e.left.span,attr:e.left.attr,extract:e.left.extract??""},right:{service:e.right.service,span:e.right.span,attr:e.right.attr,extract:e.right.extract??""},relation:e.relation,severity:e.severity,why:e.why??""}),xa=(e,t)=>{const a=e.rules.map(e=>({key:e.key,label:e.label,allowlistCount:e.allowlist?.length??0,correlationCount:e.correlations?.length??0,isAuto:e.origin===Se}));return{id:(r=e.scope,n=e.scopeKey,`${r}::${n}`),scope:e.scope,scopeKey:e.scopeKey,title:t||e.scopeKey,rules:a,mode:Va(e),hasAuto:a.some(e=>e.isAuto)};var r,n},Ka=(e,t)=>e.rules.find(e=>e.key===t)?.allowlist?.filter(Boolean)??[],$a=(e,t=oe)=>(e.rules.find(e=>e.key===t)?.correlations??[]).map(Ha),Va=e=>e.rules[0]?.mode||le.Suggest,Ya=(...e)=>{const t=new Set,a=[];for(const r of e)for(const e of r??[])e&&!t.has(e)&&(t.add(e),a.push(e));return a},Ba=e=>{const t=e.name.trim(),a={service:e.left.service.trim(),span:e.left.span.trim(),attr:e.left.attr.trim(),extract:e.left.extract?.trim()||void 0},r={service:e.right.service.trim(),span:e.right.span.trim(),attr:e.right.attr.trim(),extract:e.right.extract?.trim()||void 0};return t&&a.service&&a.span&&a.attr&&r.service&&r.span&&r.attr?{name:t,left:a,right:r,relation:e.relation||ne.Equals,severity:e.severity||re.Critical,why:e.why?.trim()||void 0}:null},Wa=e=>!!Ba(e),ja=[""],qa={scopeType:ie.Service,mode:le.Enforce,callers:[],callees:[],egress:[],transactions:[],extraCallers:ja,extraCallees:ja,extraEgress:ja,correlations:[Ma()]},za=e=>{const t=e.scope===ie.Transaction;return{scopeType:t?ie.Transaction:ie.Service,mode:Va(e),callers:Ka(e,ce),callees:Ka(e,de),egress:Ka(e,ue),transactions:Ka(e,me),extraCallers:ja,extraCallees:ja,extraEgress:ja,correlations:t?$a(e):[Ma()]}},Qa=(e,t)=>({scopeType:t,mode:le.Enforce,callers:e?.callers??[],callees:e?.callees??[],egress:e?.egress??[],transactions:e?.transactions??[],extraCallers:ja,extraCallees:ja,extraEgress:ja,correlations:[Ma()]}),Xa=e=>e.map(e=>e.trim()).filter(Boolean),Ja=n(null),Za=(e,t,a)=>a?Array.from(new Set([...e,t])):e.filter(e=>e!==t),er=({children:t,profile:r,profileLoading:n=!1,transactions:l=[],guardrail:c=null,namespace:d="",service:u="",transactionId:m="",initialScopeType:S=ie.Service,onTransactionChange:p,hideActions:E=!1,onSubmit:T,onDelete:I})=>{const y=!!c,f=U({...qa,scopeType:S}),[_,h]=o(!1);i(()=>{c?f.resetFormData(za(c)):f.resetFormData(Qa(r,f.formData.scopeType))},[c,r]);const g=a(()=>c&&c.scope===ie.Service?(e=>{const t=e.indexOf("/");return t<0?{namespace:"",service:e}:{namespace:e.slice(0,t),service:e.slice(t+1)}})(c.scopeKey):null,[c]),N=y?g?.namespace||"":d,v=y?g?.service||"":u,A=y&&c?.scope===ie.Transaction?c.scopeKey:m,{scopeType:R,mode:O,callers:C,callees:D,egress:G,transactions:b,extraCallers:L,extraCallees:w,extraEgress:P,correlations:F}=f.formData,k=a(()=>c?Ya(Ka(c,ce),r?.callers):r?.callers??[],[c,r?.callers]),M=a(()=>c?Ya(Ka(c,de),r?.callees):r?.callees??[],[c,r?.callees]),H=a(()=>c?Ya(Ka(c,ue),r?.egress):r?.egress??[],[c,r?.egress]),x=a(()=>c?Ya(Ka(c,me),r?.transactions):r?.transactions??[],[c,r?.transactions]),K=a(()=>Xa(L),[L]),$=a(()=>Xa(w),[w]),V=a(()=>Xa(P),[P]),Y=a(()=>c?{callers:k.length>0||K.length>0||c.rules.some(e=>e.key===ce),callees:M.length>0||$.length>0||c.rules.some(e=>e.key===de),egress:H.length>0||V.length>0||c.rules.some(e=>e.key===ue),transactions:x.length>0||c.rules.some(e=>e.key===me)}:{callers:k.length>0||K.length>0,callees:M.length>0||$.length>0,egress:H.length>0||V.length>0,transactions:(r?.transactions?.length??0)>0},[c,r,k,M,H,x,K,$,V]),B=f.isFormDirty,W=!!N&&!!v,j=!!A,q=F.some(Wa),z=!y&&!_&&(R===ie.Service?W:j&&q),Q=y&&!_&&B&&(R===ie.Service||q),X=y&&B&&!_,J=y&&!!I,Z=s(()=>{y&&f.resetFormData(c?za(c):Qa(r,R))},[y,c,r,R,f]),ee=s(e=>f.handleFormChange("mode",e),[f]),te=s(e=>{y||f.handleFormChange("scopeType",e)},[f,y]),ae=s(e=>f.handleFormChange("correlations",e),[f]),re=s(e=>f.handleFormChange("extraCallers",e),[f]),ne=s(e=>f.handleFormChange("extraCallees",e),[f]),le=s(e=>f.handleFormChange("extraEgress",e),[f]),Se=s((e,t)=>f.handleFormChange("callers",Za(f.formData.callers,e,t)),[f]),pe=s((e,t)=>f.handleFormChange("callees",Za(f.formData.callees,e,t)),[f]),Ee=s((e,t)=>f.handleFormChange("egress",Za(f.formData.egress,e,t)),[f]),Te=s((e,t)=>f.handleFormChange("transactions",Za(f.formData.transactions,e,t)),[f]),Ie=s(e=>f.handleFormChange("callers",e?[...k]:[]),[f,k]),ye=s(e=>f.handleFormChange("callees",e?[...M]:[]),[f,M]),fe=s(e=>f.handleFormChange("egress",e?[...H]:[]),[f,H]),_e=s(e=>f.handleFormChange("transactions",e?[...x]:[]),[f,x]),he=s(()=>{if(R===ie.Transaction){const e=c?.rules.find(e=>e.key===oe)?.origin;return(e=>{const t=e.correlations.map(Ba).filter(e=>!!e);return e.scopeKey.trim()&&t.length?{scope:ie.Transaction,scopeKey:e.scopeKey.trim(),rules:[{key:oe,label:se,mode:e.mode,correlations:t,origin:e.origin||void 0}]}:null})({scopeKey:A,mode:O,correlations:F,origin:e})}return W?(e=>{const t=e.governed??{},a=e.origins??{},r=[{key:ce,label:"Allowed callers",allowlist:e.callers,keep:e.callers.length>0||!!t.callers},{key:de,label:"Allowed callees",allowlist:e.callees,keep:e.callees.length>0||!!t.callees},{key:ue,label:"Allowed egress",allowlist:e.egress,keep:e.egress.length>0||!!t.egress},{key:me,label:"Allowed transactions",allowlist:e.transactions,keep:e.transactions.length>0||!!t.transactions}].filter(e=>e.keep).map(t=>({key:t.key,label:t.label,allowlist:t.allowlist,mode:e.mode,origin:a[t.key]||void 0}));return{scope:e.scope,scopeKey:e.scopeKey,rules:r}})({scope:ie.Service,scopeKey:y&&c?c.scopeKey:`${N}/${v}`,mode:O,callers:Ya(C,K),callees:Ya(D,$),egress:Ya(G,V),transactions:b,governed:Y,origins:c?Object.fromEntries(c.rules.map(e=>[e.key,e.origin])):void 0}):null},[R,A,O,F,W,y,c,N,v,C,D,G,b,K,$,V,Y]),ge=s(async()=>{if(!(y?Q:z))return;const e=he();if(e){h(!0);try{await T(e)}finally{h(!1)}}},[y,Q,z,he,T]),Ne=s(async()=>{if(I&&c&&!_){h(!0);try{await I(c.scopeKey,c.scope)}finally{h(!1)}}},[I,c,_]),ve=a(()=>({profile:r,profileLoading:n,guardrail:c,isEdit:y,namespace:N,service:v,transactionId:A,transactions:l,onTransactionChange:p,genericForm:f,isDirty:B,isSubmitting:_,canCreate:z,canUpdate:Q,canDiscard:X,canDelete:J,hideActions:E,handleDiscard:Z,handleSubmit:ge,handleDelete:Ne,setMode:ee,setScopeType:te,setCorrelations:ae,callerItems:k,calleeItems:M,egressItems:H,transactionItems:x,setExtraCallers:re,setExtraCallees:ne,setExtraEgress:le,toggleCaller:Se,toggleCallee:pe,toggleEgress:Ee,toggleTransaction:Te,toggleAllCallers:Ie,toggleAllCallees:ye,toggleAllEgress:fe,toggleAllTransactions:_e}),[r,n,c,y,N,v,A,l,p,f,B,_,z,Q,X,J,E,Z,ge,Ne,ee,te,ae,k,M,H,x,re,ne,le,Se,pe,Ee,Te,Ie,ye,fe,_e]);return e(Ja.Provider,{value:ve,children:t})},tr=()=>{const e=r(Ja);if(!e)throw new Error("useGuardrailFormContext must be used within a GuardrailFormContextProvider");return e};var ar;(e=>{e.Minutes="minutes",e.Hours="hours",e.Days="days"})(ar||(ar={}));const rr=e=>e.scope===ie.Global,nr=[pe.D1_call_edges,pe.D2_egress,pe.D3_latency,pe.D5_libraries,pe.D7_db_access,pe.D8_payload_size],sr=n(null),or=(e,t)=>`${e}/${t}`,ir=({children:t,services:r,transactions:n,existingOverrides:l,initialClass:c,onSubmit:d})=>{const u=U((e=>({deviationClass:e||nr[0],scopeType:ie.Service,selectedKey:""}))(c)),[m,S]=o(!1),{deviationClass:p,scopeType:E,selectedKey:T}=u.formData;i(()=>{c&&u.handleFormChange("deviationClass",c)},[c,u]);const I=a(()=>l.filter(e=>e.class===p).map(e=>e.scopeKey),[l,p]),y=a(()=>{const e=new Set,t=[];for(const a of r){if(!a.namespace||!a.service)continue;const r=or(a.namespace,a.service);e.has(r)||(e.add(r),t.push({id:r,label:r}))}return t.sort((e,t)=>e.label.localeCompare(t.label))},[r]),f=a(()=>n.filter(e=>!!e.id).map(e=>({id:String(e.id),label:Na(e)})).sort((e,t)=>e.label.localeCompare(t.label)),[n]),_=E===ie.Service?y:f;i(()=>{const e=_.find(e=>!I.includes(e.id))?.id||_[0]?.id||"";T&&_.some(e=>e.id===T)||u.handleFormChange("selectedKey",e)},[_,I,T,u]);const h=!!p&&!!T&&!m,g=s(async()=>{if(!h)return;const e=_.find(e=>e.id===T);S(!0);try{await d({class:p,scope:E,scopeKey:T,name:e?.label||T})}finally{S(!1)}},[h,_,T,p,E,d]),N=a(()=>({services:r,transactions:n,existingOverrides:l,genericForm:u,options:_,canCreate:h,submitting:m,handleSubmit:g}),[r,n,l,u,_,h,m,g]);return e(sr.Provider,{value:N,children:t})},lr=()=>{const e=r(sr);if(!e)throw new Error("useLearningOverrideFormContext must be used within a LearningOverrideFormContextProvider");return e};let cr=0;const dr=()=>"cond-"+ ++cr,ur=(e,t,a)=>`${e}:${t||"global"}:${a}`,mr=(e,t)=>{switch(t){case ar.Days:return Math.max(0,Math.round(24*e*60));case ar.Hours:return Math.max(0,Math.round(60*e));case ar.Minutes:default:return Math.max(0,Math.round(e))}},Sr=e=>e<=0?{value:0,unit:ar.Minutes}:e%1440==0?{value:e/1440,unit:ar.Days}:e%60==0?{value:e/60,unit:ar.Hours}:{value:e,unit:ar.Minutes},pr=e=>{const{value:t,unit:a}=Sr(e);return a===ar.Days?7===t?"1w":`${t}d`:a===ar.Hours?`${t}h`:`${t}m`},Er=e=>{const{value:t,unit:a}=Sr(e);return a===ar.Days?1===t?"1 day":`${t} days`:a===ar.Hours?1===t?"1 hour":`${t} hours`:1===t?"1 minute":`${t} minutes`},Tr=e=>{switch(e.type){case Te.StableObservations:return`Unchanged for ${e.value} observations`;case Te.StableDuration:return`unchanged for ${pr(mr(e.value,e.durationUnit))}`;case Te.MinObservations:return`Min ${e.value} observations`;case Te.MinDuration:return`min ${pr(mr(e.value,e.durationUnit))}`;default:return""}},Ir=e=>{switch(e.type){case Te.StableObservations:return`unchanged for ${e.value} observations`;case Te.StableDuration:return`unchanged for ${Er(mr(e.value,e.durationUnit))}`;case Te.MinObservations:return`at least ${e.value} observations`;case Te.MinDuration:return`at least ${Er(mr(e.value,e.durationUnit))}`;default:return""}},yr=(e,t,a)=>t.length?((e,t,a)=>{if(!e.length)return"";const r=e.map((e,t)=>0===t?e.charAt(0).toUpperCase()+e.slice(1):0===t?e:e.charAt(0).toLowerCase()+e.slice(1));if(1===r.length)return r[0];const n=t===ye.All?" AND ":t===ye.KOf?` (${Ee} ${a??1}) `:" OR ";return r.join(n)})(t.map(Tr),e,a):"Falls back to count-only default",fr=e=>{const{value:t,durationUnit:a}=(e=>{switch(e.type){case Te.StableObservations:return{value:e.stableObservations??0,durationUnit:ar.Hours};case Te.MinObservations:return{value:e.minObservations??0,durationUnit:ar.Hours};case Te.StableDuration:{const t=e.stableMinutes??0,a=Sr(t);return{value:a.value,durationUnit:a.unit}}case Te.MinDuration:{const t=e.minDurationMinutes??0,a=Sr(t);return{value:a.value,durationUnit:a.unit}}default:return{value:0,durationUnit:ar.Hours}}})(e);return{key:dr(),type:e.type,value:t,durationUnit:a}},_r=e=>{const t=mr(e.value,e.durationUnit);switch(e.type){case Te.StableObservations:return{type:e.type,minObservations:null,minDurationMinutes:null,stableObservations:e.value,stableMinutes:null};case Te.MinObservations:return{type:e.type,minObservations:e.value,minDurationMinutes:null,stableObservations:null,stableMinutes:null};case Te.StableDuration:return{type:e.type,minObservations:null,minDurationMinutes:null,stableObservations:null,stableMinutes:t};case Te.MinDuration:return{type:e.type,minObservations:null,minDurationMinutes:t,stableObservations:null,stableMinutes:null};default:return{type:e.type}}},hr=(e=Te.StableObservations)=>({key:dr(),type:e,value:Ie(e)?1:100,durationUnit:ar.Hours}),gr=e=>{const t=(e.conditions??[]).map(fr),a=e.mode,r=e.minMatches??null,n=e.scope,s=fe[e.class],o=n===ie.Global?s:`${s} · ${e.scopeKey}`;return{id:ur(n,e.scopeKey,e.class),name:o,class:e.class,mode:a,conditions:t,minMatches:r,scope:n,scopeKey:e.scopeKey,summary:yr(a,t,r)}},Nr=(e,t)=>{if(!t.length)return e;const a=new Map(t.map(e=>[String(e.id),e]));return e.map(e=>{if(e.scope!==ie.Transaction)return e;const t=a.get(e.scopeKey);return t?{...e,name:`${fe[e.class]} · ${Na(t)}`}:e})},vr=e=>({class:e.class,mode:e.mode,conditions:e.conditions.map(_r),minMatches:e.mode===ye.KOf?e.minMatches??1:null,scope:e.scope,scopeKey:e.scopeKey}),Ar=({scope:e,scopeKey:t,source:a,displayName:r})=>{const n=a.conditions.map(e=>({...e,key:dr()})),s=r||t;return{id:ur(e,t,a.class),name:`${fe[a.class]} · ${s}`,class:a.class,mode:a.mode,conditions:n,minMatches:a.minMatches,scope:e,scopeKey:t,summary:yr(a.mode,n,a.minMatches)}},Rr=e=>{const t=[hr()],a=ye.Any;return{id:ur(ie.Global,"",e),name:fe[e],class:e,mode:a,conditions:t,minMatches:null,scope:ie.Global,scopeKey:"",summary:yr(a,t,null)}},Or=e=>({...e,summary:yr(e.mode,e.conditions,e.minMatches)}),Cr=n(null),Dr=({children:t,policy:r,onSave:n,onDelete:l})=>{const c=U(r),[d,u]=o(!1),[m,S]=o(!1),p=c.formData,E=!rr(p);i(()=>{c.resetFormData(r)},[r]);const T=c.isFormDirty,I=d||m,y=T&&!I,f=T&&!I,_=a(()=>((e,t,a)=>{if(!t.length)return{parts:["Falls back to the count-only default"],joiner:null};const r=t.map(Ir).map((e,t)=>0===t?e:e.charAt(0).toLowerCase()+e.slice(1));return 1===r.length?{parts:r,joiner:null}:{parts:r,joiner:e===ye.All?"AND":e===ye.KOf?`${Ee} ${a??1}`:"OR"}})(p.mode,p.conditions,p.minMatches),[p.mode,p.conditions,p.minMatches]),h=a(()=>yr(p.mode,p.conditions,p.minMatches),[p.mode,p.conditions,p.minMatches]),g=s(e=>{c.handleFormChange(void 0,void 0,Or({...c.formData,conditions:e(c.formData.conditions)}))},[c]),N=s(e=>{const t=e[0]||ye.Any,a=c.formData;c.handleFormChange(void 0,void 0,Or({...a,mode:t,minMatches:t===ye.KOf?a.minMatches??1:null}))},[c]),v=s((e,t)=>{g(a=>a.map(a=>a.key===e?((e,t)=>{const a=Ie(e.type),r=Ie(t);return a===r?{...e,type:t}:{...e,type:t,value:r?1:100,durationUnit:e.durationUnit||ar.Hours}})(a,t):a))},[g]),A=s((e,t)=>{const a=Number(t);g(t=>t.map(t=>t.key===e?{...t,value:Number.isFinite(a)?a:0}:t))},[g]),R=s((e,t)=>{g(a=>a.map(a=>a.key===e?{...a,durationUnit:t}:a))},[g]),O=s(e=>{g(t=>t.filter(t=>t.key!==e))},[g]),C=s(()=>{g(e=>[...e,hr()])},[g]),D=s(e=>{c.handleFormChange(void 0,void 0,Or({...c.formData,minMatches:Math.max(1,e||1)}))},[c]),G=s(async()=>{if(y){u(!0);try{await n(Or(c.formData))}finally{u(!1)}}},[c.formData,y,n]),b=s(()=>{c.resetFormData(r)},[c,r]),L=s(async()=>{if(l){S(!0);try{await l()}finally{S(!1)}}},[l]),w=a(()=>({policy:r,genericForm:c,isDirty:T,canUpdate:y,canDiscard:f,isOverride:E,isSaving:d,isDeleting:m,promotesWhen:_,currently:h,handleModeChange:N,handleConditionTypeChange:v,handleConditionValueChange:A,handleDurationUnitChange:R,handleRemoveCondition:O,handleAddCondition:C,handleMinMatchesChange:D,handleSave:G,handleDiscard:b,handleDelete:L}),[r,c,T,y,f,E,d,m,_,h,N,v,A,R,O,C,D,G,b,L]);return e(Cr.Provider,{value:w,children:t})},Gr=()=>{const e=r(Cr);if(!e)throw new Error("useLearningPolicyFormContext must be used within a LearningPolicyFormContextProvider");return e},br={examplesPerTransaction:0,exampleSampleIntervalSeconds:0,observationRetentionDays:0,maxResidentTransactions:0,maxBaselineSetMembers:0,flushIntervalSeconds:0,autoTransactionGuardrail:!0,identityDimensions:[..._e]},Lr=e=>e.map(e=>({key:e.key.trim(),enabled:e.enabled})).filter(e=>e.key.length>0),wr=e=>({examplesPerTransaction:e.sampling.examplesPerTransaction,exampleSampleIntervalSeconds:e.sampling.exampleSampleIntervalSeconds,observationRetentionDays:e.retention.observationRetentionDays,maxResidentTransactions:e.capacity.maxResidentTransactions,maxBaselineSetMembers:e.capacity.maxBaselineSetMembers,flushIntervalSeconds:e.writeback.flushIntervalSeconds,autoTransactionGuardrail:e.detection?.autoTransactionGuardrail??!0,identityDimensions:e.identity?.transactionIdentityDimensions?.length?e.identity.transactionIdentityDimensions.map(e=>({key:e.key,enabled:e.enabled})):[..._e]}),Pr=n(null),Ur=({children:t,settings:r,onSave:n})=>{const l=U(br),[c,d]=o(!1),[u,m]=o(!1),S=a(()=>r?JSON.stringify(wr(r)):"",[r]);i(()=>{r&&S&&l.resetFormData(wr(r))},[S]);const p=l.formData,E=!!r&&l.isFormDirty,T=E&&(e=>{const t=e.identityDimensions.filter(e=>e.enabled&&e.key.trim()).length,a=e.identityDimensions.map(e=>e.key.trim()).filter(Boolean),r=new Set(a);return[e.examplesPerTransaction,e.exampleSampleIntervalSeconds,e.observationRetentionDays,e.maxResidentTransactions,e.maxBaselineSetMembers,e.flushIntervalSeconds].every(e=>Number.isFinite(e)&&e>0)&&t<=he&&r.size===a.length})(p)&&!c,I=E&&!c,y=p.identityDimensions.filter(e=>e.enabled&&e.key.trim()).length,f=s(async e=>{if(r){d(!0);try{await n(((e,t)=>({sampling:{examplesPerTransaction:e.examplesPerTransaction,exampleSampleIntervalSeconds:e.exampleSampleIntervalSeconds},retention:{observationRetentionDays:e.observationRetentionDays},capacity:{maxResidentTransactions:e.maxResidentTransactions,maxBaselineSetMembers:e.maxBaselineSetMembers},writeback:{flushIntervalSeconds:e.flushIntervalSeconds},detection:{autoTransactionGuardrail:e.autoTransactionGuardrail},identity:{transactionIdentityDimensions:Lr(e.identityDimensions)},resetTransactions:t||void 0}))(p,e))}finally{d(!1),m(!1)}}},[r,p,n]),_=s(async()=>{r&&T&&(((e,t)=>{const a=wr(t);return r=Lr(e.identityDimensions),n=Lr(a.identityDimensions),!(r.length===n.length&&r.every((e,t)=>e.key===n[t].key&&e.enabled===n[t].enabled));var r,n})(p,r)?m(!0):await f(!1))},[r,T,p,f]),h=s(()=>{r&&I&&l.resetFormData(wr(r))},[r,I,l]),g=s((e,t)=>{l.handleFormChange(void 0,void 0,{...l.formData,identityDimensions:l.formData.identityDimensions.map((a,r)=>r===e?{...a,...t}:a)})},[l]),N=s(e=>{l.handleFormChange(void 0,void 0,{...l.formData,identityDimensions:l.formData.identityDimensions.filter((t,a)=>a!==e)})},[l]),v=s(()=>{const e=l.formData.identityDimensions.filter(e=>e.enabled&&e.key.trim()).length;l.handleFormChange(void 0,void 0,{...l.formData,identityDimensions:[...l.formData.identityDimensions,{key:"",enabled:e<he}]})},[l]),A=a(()=>({settings:r,genericForm:l,isDirty:E,canUpdate:T,canDiscard:I,isSaving:c,enabledDimCount:y,identityConfirmOpen:u,setIdentityConfirmOpen:m,handleSave:_,handleDiscard:h,persist:f,updateDim:g,removeDim:N,addDim:v}),[r,l,E,T,I,c,y,u,_,h,f,g,N,v]);return e(Pr.Provider,{value:A,children:t})},Fr=()=>{const e=r(Pr);if(!e)throw new Error("useSystemSettingsFormContext must be used within a SystemSettingsFormContextProvider");return e},kr={disabled:!1,ruleName:"",notes:"",sourceScopes:we(),workloads:null,instrumentationLibraries:null,payloadCollection:null,codeAttributes:null,headersCollection:null,customInstrumentations:null,networkMetrics:null},Mr=n(null),Hr=({children:t,sourceOptions:r=[],namespaceOptions:n=[]})=>{const[i,l]=o(null),c=U(kr),d=s(e=>{c.resetFormData(),c.handleErrorChange(void 0,void 0,{}),l(e)},[]),u=s((e,t)=>{var a;c.resetFormData((({ruleName:e,notes:t,disabled:a,sourceScopes:r,instrumentationLibraries:n,payloadCollection:s,codeAttributes:o,headersCollection:i,customInstrumentations:l,networkMetrics:c,workloads:d})=>({ruleName:e||"",notes:t||"",disabled:!!a,sourceScopes:Le(r),workloads:d??null,instrumentationLibraries:n??null,payloadCollection:s??null,codeAttributes:o??null,headersCollection:i??null,customInstrumentations:l??null,networkMetrics:c??null}))(e)),c.handleErrorChange(void 0,void 0,{}),l(t??(a=e.type,ge.find(e=>e.type===a)??null))},[]),m=s(()=>{if(!i)return{errorMessage:"No rule type selected",preparedFormData:F(kr)};const e=((e,t)=>{const a=F(e),{workloads:r,...n}=a,s={...n,sourceScopes:be(a.sourceScopes)?null:a.sourceScopes,...r?.length?{workloads:r}:{}};return s.headersCollection?.[Ne.HeaderKeys]?.length&&(s.headersCollection[Ne.HeaderKeys]=s.headersCollection[Ne.HeaderKeys].map(e=>e.trim()).filter(e=>e)),s.customInstrumentations?.[ve.Golang]?.length&&(s.customInstrumentations[ve.Golang]=s.customInstrumentations[ve.Golang].map(e=>new Ae(e.packageName,e.functionName,e.receiverName,e.receiverMethodName)).filter(e=>{return t=e,!!(t.packageName?.trim()||t.functionName?.trim()||t.receiverName?.trim()||t.receiverMethodName?.trim());var t})),s.customInstrumentations?.[ve.Java]?.length&&(s.customInstrumentations[ve.Java]=s.customInstrumentations[ve.Java].map(e=>new Re(e.className,e.methodName)).filter(e=>{return t=e,!(!t.className?.trim()&&!t.methodName?.trim());var t})),s.customInstrumentations?.[ve.Php]?.length&&(s.customInstrumentations[ve.Php]=s.customInstrumentations[ve.Php].map(e=>new Oe(e.className,e.functionName)).filter(e=>{return t=e,!(!t.className?.trim()&&!t.functionName?.trim());var t})),t===Ce.NetworkMetrics&&(s.networkMetrics=!0),s})(c.formData,i.type),t=((e,t)=>{const a={};switch(e){case Ce.CodeAttributes:Object.values(t.codeAttributes||{}).some(e=>null!=e)||(a.codeAttributes="Code attributes are required");break;case Ce.PayloadCollection:Object.values(t.payloadCollection||{}).some(e=>null!=e)||(a.payloadCollection="Payload collection are required");break;case Ce.HeadersCollection:t.headersCollection?.[Ne.HeaderKeys]?.length||(a.headersCollection="Header keys are required");break;case Ce.CustomInstrumentation:{const e=t.customInstrumentations?.[ve.Golang]||[],r=t.customInstrumentations?.[ve.Java]||[],n=t.customInstrumentations?.[ve.Php]||[];if(!e.length&&!r.length&&!n.length){a.customInstrumentations="Custom instrumentation are required";break}const s=e.findIndex(e=>!new Ae(e.packageName,e.functionName,e.receiverName,e.receiverMethodName).Verify());if(-1!==s){a.customInstrumentations=`Golang probe #${s+1} is invalid: provide a package name plus either a function name OR both a receiver name and receiver method name`;break}const o=r.findIndex(e=>!new Re(e.className,e.methodName).Verify());if(-1!==o){a.customInstrumentations=`Java probe #${o+1} is invalid: both class name and method name are required`;break}const i=n.findIndex(e=>!new Oe(e.className,e.functionName).Verify());if(-1!==i){a.customInstrumentations=`PHP probe #${i+1} is invalid: function name is required`;break}break}}return a})(i.type,e);return c.handleErrorChange(void 0,void 0,t),{errorMessage:Object.keys(t).length>0?"Invalid form values":void 0,preparedFormData:e}},[c,i]),S=a(()=>({selectedOption:i,onSelectOption:d,loadRule:u,genericForm:c,validateFormData:m,sourceOptions:r,namespaceOptions:n}),[i,d,u,c,m,r,n]);return e(Mr.Provider,{value:S,children:t})},xr=()=>{const e=r(Mr);if(!e)throw new Error("useRuleFormContext must be used within a RuleFormContextProvider");return e};var Kr;(e=>{e.Create="create",e.View="view",e.EditAutoNoisy="edit-auto-noisy",e.EditAutoCostReduction="edit-auto-cost-reduction",e.EditAutoHighlyRelevant="edit-auto-highly-relevant"})(Kr||(Kr={}));const $r=n(null),Vr=["50","25","10","1"];function Yr(e){const t=String(e);return Vr.includes(t)?t:"custom"}const Br=({category:t,sourceOptions:r=[],namespaceOptions:n=[],children:l})=>{const{formData:c,handleFormChange:d,resetFormData:u}=U(Me(t)),[m,S]=o(null);i(()=>{u(Me(t)),S(null)},[t]);const p=s(e=>{S(null),d(void 0,void 0,{...c,...e})},[c,d]),E=s(()=>{u(Me(t)),S(null)},[t,u]),T=a(()=>({formType:Kr.Create,category:t,formData:c,handleChange:p,resetForm:E,duplicateWarning:m,setDuplicateWarning:S,sourceOptions:r,namespaceOptions:n}),[t,c,p,E,m,r,n]);return e($r.Provider,{value:T,children:l})},Wr=({data:t,defaultEditMode:r,sourceOptions:n=[],namespaceOptions:c=[],children:d})=>{const[u,m]=o(!1),{formData:S,handleFormChange:p,resetFormData:E}=U(void 0),T=l(null),[I,y]=o(null);i(()=>{t!==T.current&&(T.current=t,t&&r?(E(ke(t)),y(null),m(!0)):(m(!1),y(null)))},[t,r]);const f=s(e=>{y(null),p(void 0,void 0,{...S,...e})},[S,p]),_=s(()=>{t&&(E(ke(t)),y(null),m(!0))},[t,E]),h=s(()=>{m(!1),y(null)},[]),g=a(()=>({formType:Kr.View,data:t,isEditing:u,formData:S,handleChange:f,handleEdit:_,handleCancelEdit:h,duplicateWarning:I,setDuplicateWarning:y,sourceOptions:n,namespaceOptions:c}),[t,u,S,f,_,h,I,n,c]);return e($r.Provider,{value:g,children:d})};function jr(e){const[t,r]=o(()=>0===e?"all":"sample"),[n,s]=o(()=>Yr(e)),[l,c]=o(()=>"custom"===Yr(e)?String(e):"");i(()=>{r(0===e?"all":"sample");const t=Yr(e);s(t),c("custom"===t?String(e):"")},[e]);const d=a(()=>"all"===t?0:"custom"===n?Number(l)||0:Number(n),[t,n,l]);return{percentageMode:t,setPercentageMode:r,percentagePreset:n,setPercentagePreset:s,customPercentage:l,setCustomPercentage:c,resolvedPercentage:d}}const qr=({enabled:t,keepPercentage:r,children:n})=>{const[s,l]=o(t),c=jr(r);i(()=>{l(t)},[t]);const d=a(()=>Fe({enabled:s,keepPercentage:c.resolvedPercentage}),[s,c.resolvedPercentage]),u=a(()=>({formType:Kr.EditAutoNoisy,localEnabled:s,setLocalEnabled:l,...c,summary:d}),[s,c,d]);return e($r.Provider,{value:u,children:n})},zr=({enabled:t,dropPercentage:r,children:n})=>{const[s,l]=o(t),c=jr(r);i(()=>{l(t)},[t]);const d=a(()=>Ue(s?{disabled:!1,percentageAtMost:c.resolvedPercentage}:null),[s,c.resolvedPercentage]),u=a(()=>({formType:Kr.EditAutoCostReduction,localEnabled:s,setLocalEnabled:l,...c,summary:d}),[s,c,d]);return e($r.Provider,{value:u,children:n})},Qr=({enabled:t,children:r})=>{const[n,s]=o(t);i(()=>{s(t)},[t]);const l=a(()=>Pe(n?{disabled:!1}:null),[n]),c=a(()=>({formType:Kr.EditAutoHighlyRelevant,localEnabled:n,setLocalEnabled:s,summary:l}),[n,l]);return e($r.Provider,{value:c,children:r})},Xr=t=>{switch(t.formType){case Kr.Create:return e(Br,{...t});case Kr.View:return e(Wr,{...t});case Kr.EditAutoNoisy:return e(qr,{...t});case Kr.EditAutoCostReduction:return e(zr,{...t});case Kr.EditAutoHighlyRelevant:return e(Qr,{...t})}};function Jr(e){const t=r($r);if(!t)throw new Error("useSamplingRulesFormContext must be used within a SamplingRulesFormProvider");if(e&&t.formType!==e)throw new Error(`Expected formType "${e}" but found "${t.formType}"`);return t}const Zr={otelServiceName:"",currentStreamName:""},en=n(null),tn=({children:t})=>{const[r,n]=o(void 0),i=U(Zr),l=s(e=>{i.resetFormData((({serviceName:e,id:t})=>({otelServiceName:e||t.name||"",currentStreamName:""}))(e)),i.handleErrorChange(void 0,void 0,{}),n(void 0)},[]),c=s(()=>{const e=F(i.formData);return i.handleErrorChange(void 0,void 0,{}),n(void 0),{errorMessage:void 0,preparedFormData:e}},[i]),d=a(()=>({loadSource:l,genericForm:i,validateFormData:c,errorMessage:r}),[l,i,c,r]);return e(en.Provider,{value:d,children:t})},an=()=>{const e=r(en);if(!e)throw new Error("useSourceEditFormContext must be used within a SourceEditFormContextProvider");return e},rn=new Set([De.StaticPod]),nn=e=>{const t=e.workloads.filter(({selected:e})=>e).length,a=e.workloads.length;return{selectedCount:t,isAllSourced:t>0&&t===a,isSomeSourced:t>0&&t<a,isFutureApps:e.selected||!1}},sn=(e,t,a)=>{if(t&&!e.name.toLowerCase().includes(t.toLowerCase()))return!1;if(a.showOnlySelected){const{isAllSourced:t,isSomeSourced:a,isFutureApps:r}=nn(e);return t||a||r}return!0},on=(e,t,a)=>!(t&&!e.name.toLowerCase().includes(t.toLowerCase()))&&(!a.showOnlySelected||e.selected),ln=n({snapshots:null,setSnapshots:()=>{},isFetching:!1,setIsFetching:()=>{},formData:[],handleSourceChange:()=>{},handleSelectAll:()=>{},formDiff:{},isFormDirty:!1}),cn=(e,t)=>`${e}\0${t}`,dn=(e,t,a,r)=>`${e}\0${t}\0${a}/${r}`,un=(e,t)=>e.name===t.name&&e.kind===t.kind&&(e.region??"")===(t.region??""),mn=(e,t,a)=>{const r=[];return t.workloads.forEach(n=>{const s=e?.workloads.find(e=>un(e,n));n.selected!==s?.selected&&r.push({namespace:t.name,name:n.name,kind:n.kind,region:n.region||void 0,selected:n.selected||!1,currentStreamName:a})}),r},Sn=({children:t,selectedConnectionIds:r,initialInputs:n})=>{const{tier:c}=He(),d=c===Ge.Onprem,{capabilities:u}=Wt(),m=u.canInstrumentNamespaces,{selectedStreamName:S}=y(),[p,E]=o(!1),[I,f]=o(null),[_,h]=o([]),g=l(new Set),N=s((e,t)=>{t.forEach(t=>{const a=e.find(e=>e.clusterId===t.clusterId);a&&t.namespaces.forEach(e=>{const r=a.namespaces.find(t=>t.name===e.name);r&&(r.selected!==e.selected&&g.current.add(cn(t.clusterId,e.name)),e.workloads.forEach(a=>{const n=r.workloads.find(e=>e.name===a.name&&e.kind===a.kind);n&&n.selected!==a.selected&&g.current.add(dn(t.clusterId,e.name,a.kind,a.name))}))})})},[]);i(()=>{I&&h(e=>{const t=((e,t)=>F(((e,t)=>e.clusters.filter(({clusterId:e})=>!t||t.includes(e)))(e,t)))(I,r);return t.map(t=>{const a=e?.find(e=>e.clusterId===t.clusterId),r=((e,t,a)=>{if(!t)return e;const r=new Map(t.namespaces.map(e=>[e.name,e]));return{...e,namespaces:e.namespaces.map(t=>{const n=r.get(t.name);if(!n)return t;const s=new Map(n.workloads.map(e=>[`${e.kind}/${e.name}`,e])),o=a.has(cn(e.clusterId,t.name));return{...t,selected:o?n.selected:t.selected,workloads:t.workloads.map(r=>{const n=s.get(`${r.kind}/${r.name}`),o=a.has(dn(e.clusterId,t.name,r.kind,r.name));return n&&o?{...r,selected:n.selected}:r})}})}})(t,a,g.current);if(n?.[t.clusterId]){const e=n[t.clusterId],a=F(r);return e.forEach(e=>{const t=a.namespaces.find(t=>t.name===e.namespace);if(t)if(e.name&&e.kind){const a=t.workloads.find(t=>t.name===e.name&&t.kind===e.kind);a&&(a.selected=e.selected)}else t.selected=e.selected,e.selected&&t.workloads.forEach(e=>{rn.has(e.kind)&&!d||(e.selected=!0)})}),a}return r})})},[I,r,n]);const{formDiff:v,isFormDirty:A}=a(()=>{const e=((e,t,a,r)=>{const n={};return e.forEach(e=>{e.namespaces.forEach(s=>{const o=t.find(t=>t.clusterId===e.clusterId)?.namespaces.find(e=>e.name===s.name);if(!r){const t=mn(o,s,a);return void(t.length>0&&(n[e.clusterId]||(n[e.clusterId]=[]),n[e.clusterId].push(...t)))}const i=s.selected||!1;if(i!==o?.selected)n[e.clusterId]||(n[e.clusterId]=[]),n[e.clusterId].push({namespace:s.name,selected:i,currentStreamName:a}),i?n[e.clusterId]=n[e.clusterId].filter(e=>e.namespace!==s.name||e.namespace===s.name&&(!e.name||!e.kind)):s.workloads.forEach(t=>{t.selected&&n[e.clusterId].push({namespace:s.name,name:t.name,kind:t.kind,region:t.region||void 0,selected:!0,currentStreamName:a})});else{const t=mn(o,s,a);t.length>0&&(n[e.clusterId]||(n[e.clusterId]=[]),n[e.clusterId].push(...t))}})}),n})(_,I?.clusters||[],S,m);return{formDiff:e,isFormDirty:Object.keys(e).length>0}},[_,I,S,m]),R=s(e=>!d&&rn.has(e),[d]),O=s(({clusterId:e,workloadId:t,selected:a,auto:r})=>{h(n=>{const s=F(n),o=s.findIndex(t=>t.clusterId===e);if(-1===o)return s;const i=s[o].namespaces.findIndex(e=>e.name===t.namespace);if(-1===i)return s;if(t.kind&&t.name){const e=s[o].namespaces[i].workloads.findIndex(e=>un(e,{name:t.name,kind:t.kind,region:t.region}));if(-1===e)return s;const r="boolean"==typeof a?a:!s[o].namespaces[i].workloads[e].selected;s[o].namespaces[i].workloads[e].selected=r,m&&(r?s[o].namespaces[i].workloads.filter(e=>!R(e.kind)).every(e=>e.selected)&&(s[o].namespaces[i].selected=!0):s[o].namespaces[i].selected=!1)}else if(m){const e="boolean"==typeof r?r:!s[o].namespaces[i].selected;s[o].namespaces[i].selected=e,e?s[o].namespaces[i].workloads.forEach(e=>{R(e.kind)||(e.selected=!0)}):"boolean"!=typeof a||a||s[o].namespaces[i].workloads.forEach(e=>{e.selected=!1})}else{const e="boolean"==typeof a?a:"boolean"!=typeof r||r;s[o].namespaces[i].workloads.forEach(t=>{e&&R(t.kind)||(t.selected=e)})}return N(n,s),s})},[R,m,N]),C=s(({clusterId:e,namespaceName:t,boolean:a,searchText:r="",searchBy:n="",filters:s})=>{h(o=>{const i=F(o),l=n===T.Namespace?r:"",c=n===T.Source?r:"",d=!!l||!!c||!!s?.showOnlySelected;return i.forEach((r,n)=>{e&&r.clusterId!==e||r.namespaces.forEach(({name:e,workloads:r},o)=>{if(!t||e===t)if(d)if(t){if(r.forEach((e,t)=>{a&&R(e.kind)||on(e,c,s||{showOnlySelected:!1})&&(i[n].namespaces[o].workloads[t].selected=a)}),m){const e=i[n].namespaces[o].workloads.filter(e=>!R(e.kind)).every(e=>e.selected);i[n].namespaces[o].selected=e}}else{if(!sn(i[n].namespaces[o],l,s||{showOnlySelected:!1}))return;m&&(i[n].namespaces[o].selected=a),r.forEach((e,t)=>{a&&R(e.kind)||(i[n].namespaces[o].workloads[t].selected=a)})}else m&&(i[n].namespaces[o].selected=a),r.forEach((e,t)=>{a&&R(e.kind)||(i[n].namespaces[o].workloads[t].selected=a)})})}),N(o,i),i})},[R,m,N]);return e(ln.Provider,{value:{snapshots:I,setSnapshots:f,isFetching:p,setIsFetching:E,formData:_,handleSourceChange:O,handleSelectAll:C,formDiff:v,isFormDirty:A},children:t})},pn=()=>r(ln);export{rn as $,ea as A,Wt as B,na as C,la as D,xr as E,Jr as F,er as G,an as H,pn as I,Fr as J,Ta as K,ir as L,ya as M,Ia as N,it as O,Na as P,fa as Q,Hr as R,Kr as S,ha as T,ar as U,nr as V,wa as W,Oa as X,Aa as Y,Ra as Z,on as _,It as a,sn as a0,nn as a1,va as a2,_a as a3,rr as a4,Rr as a5,Ar as a6,Nr as a7,gr as a8,vr as a9,Pa as aa,xa as ab,pa as b,ba as c,Fa as d,Dr as e,rt as f,Xr as g,tn as h,Sn as i,Ur as j,Ot as k,ta as l,vt as m,At as n,Nt as o,Ct as p,sa as q,Tt as r,ca as s,Ea as t,at as u,La as v,ka as w,tr as x,lr as y,Gr as z};
5
+ `,ft=(e,t)=>{if(e)return"function"==typeof e?e(t):e},_t=(e,t)=>e[t],ht=(e,t,a)=>{if(void 0!==t)return e?.transformResult?e.transformResult(t,a):t},gt=(e,t,a)=>{if(!e)return;const r=e.transformVariables;return r?r(t,a):t},Nt=(e,t,r)=>{const{operations:n,context:o}=at(),l=_t(n,e),c=a(()=>ft(l?.document,o),[l,o]),d=a(()=>gt(l,t,o),[l,t,o]),u=!l||!c,m=!!l?.canRun&&!l.canRun(o),S=r?.skip||u||m,p=Ve(c??yt,{variables:d,skip:S,pollInterval:r?.pollInterval,fetchPolicy:r?.fetchPolicy??"cache-and-network",notifyOnNetworkStatusChange:r?.notifyOnNetworkStatusChange,client:l?.client}),E=a(()=>{if(!S)return ht(l,p.data,o)},[l,o,p.data,S]);i(()=>{S||void 0===E||r?.onCompleted?.(E)},[S,E,r?.onCompleted]),i(()=>{p.error&&r?.onError?.(p.error)},[p.error,r?.onError]);const T=s(async()=>{if(S)return{data:void 0};const e=await p.refetch();return{data:ht(l,e.data,o)}},[l,o,p,S]);return{data:E,loading:!S&&p.loading,error:p.error,refetch:T,unsupported:u}},vt=(e,t)=>{const{operations:r,context:n}=at(),o=_t(r,e),i=a(()=>ft(o?.document,n),[o,n]),l=!o||!i,[c,d]=Ke(i??yt,{fetchPolicy:t?.fetchPolicy??"network-only",notifyOnNetworkStatusChange:t?.notifyOnNetworkStatusChange,client:o?.client});return{execute:s(async e=>{if(l)return{error:void 0};if(o?.canRun&&!o.canRun(n))return{data:void 0};const t=gt(o,e,n),a=await c({variables:t});return a.error?{error:a.error}:{data:ht(o,a.data,n)}},[o,n,c,l]),data:a(()=>ht(o,d.data,n),[o,n,d.data]),loading:d.loading,error:d.error,called:d.called,unsupported:l}},At=(e,t)=>{const{operations:r,context:n}=at(),i=$e(),l=_t(r,e),c=a(()=>ft(l?.document,n),[l,n]),d=!l||!c,[u,m]=o({loading:!1,called:!1}),S=s(()=>m({loading:!1,called:!1}),[]);return[s(async e=>{if(d||!c)return{error:void 0};if(l?.canRun&&!l.canRun(n))return{data:void 0};const a=gt(l,e,n),r=l?.client??i;m(e=>({...e,loading:!0,called:!0}));try{const e=await r.mutate({mutation:c,variables:a}),s=ht(l,e.data,n);if(m({data:s,loading:!1,error:void 0,called:!0}),t?.refetchQueries){const e=r.refetchQueries({include:t.refetchQueries});t?.awaitRefetchQueries&&await e}return void 0!==s&&t?.onCompleted?.(s),{data:s}}catch(e){const a=e;return m({data:void 0,loading:!1,error:a,called:!0}),t?.onError?.(a),{error:a}}},[l,n,i,c,d,t]),{data:u.data,loading:u.loading,error:u.error,called:u.called,unsupported:d,reset:S}]},Rt=[],Ot=(e,t,a,r)=>{let n=!0;const s={sources:[]};for(const[o,i]of Object.entries(e)){if(!i.length)continue;n=!1;const e=i.map(({id:e,selected:t,currentStreamName:r})=>({namespace:e.namespace,name:e.name,kind:e.kind,selected:void 0!==t&&t,currentStreamName:r||a}));let l=0,c=0;for(const a of e){const e=t.find(e=>e.id.namespace===o&&e.id.name===a.name&&e.id.kind===a.kind),r=e?.dataStreamNames||[];a.selected&&!e?l++:!a.selected&&e&&r.length<=1&&c++}r(l,c),s.sources.push(...e)}return{payload:s,isEmpty:n}},Ct=(e,t)=>{let a=!0;const r={namespaces:[]};for(const[n,{selected:s,currentStreamName:o}]of Object.entries(e))"boolean"==typeof s&&(a=!1,r.namespaces.push({namespace:n,selected:s,currentStreamName:o||t}));return{payload:r,isEmpty:a}},Dt={filter:{markedForInstrumentation:!0}},Gt=[],bt=e=>{const t=e.markedForInstrumentation?.markedForInstrumentation;return"boolean"==typeof t?e:{...e,markedForInstrumentation:{...e.markedForInstrumentation??{markedForInstrumentation:!0},markedForInstrumentation:!0}}},Lt=e=>{let t=!1;const a=e.map(e=>{const a=bt(e);return a!==e&&(t=!0),a});return t?a:e},wt=[],Pt=[],Ut=[],Ft=(e,t)=>{const a=$e(),{notifyError:r,notifySuccess:n,notifyReadonly:s}=ct(A.Finding),o=async()=>{e.GET_INSIGHTS_FINDINGS&&await Et(a,e.GET_INSIGHTS_FINDINGS,void 0,t)},i=async()=>{e.GET_INSIGHTS_ANOMALIES&&await Et(a,e.GET_INSIGHTS_ANOMALIES,void 0,t)},l=async()=>{e.GET_INSIGHTS_TRANSACTIONS&&await Et(a,e.GET_INSIGHTS_TRANSACTIONS,void 0,t)},c=async()=>{if(!e.GET_INSIGHTS_POLICIES)return;const r="function"==typeof e.GET_INSIGHTS_POLICIES.document?e.GET_INSIGHTS_POLICIES.document(t):e.GET_INSIGHTS_POLICIES.document;r?await a.refetchQueries({include:[r]}):await Et(a,e.GET_INSIGHTS_POLICIES,void 0,t)},d=async()=>{e.GET_INSIGHTS_LEARNING_POLICIES&&await Et(a,e.GET_INSIGHTS_LEARNING_POLICIES,void 0,t)},u=async()=>{e.GET_INSIGHTS_GUARDRAILS&&await Et(a,e.GET_INSIGHTS_GUARDRAILS,void 0,t)},m=async()=>{e.GET_INSIGHTS_GUARDRAIL_VIOLATIONS&&await Et(a,e.GET_INSIGHTS_GUARDRAIL_VIOLATIONS,void 0,t)};return{useServices:e=>Nt("GET_INSIGHTS_SERVICES",void 0,e),useServiceNames:e=>Nt("GET_INSIGHTS_SERVICE_NAMES",void 0,e),useTransactions:(e,t)=>Nt("GET_INSIGHTS_TRANSACTIONS",e,t),useTransaction:(e,t)=>Nt("GET_INSIGHTS_TRANSACTION",e,t),useBaseline:(e,t)=>Nt("GET_INSIGHTS_BASELINE",e,t),useObservations:(e,t)=>Nt("GET_INSIGHTS_OBSERVATIONS",e,t),useObservation:(e,t)=>Nt("GET_INSIGHTS_OBSERVATION",e,t),useFindings:(e,t)=>Nt("GET_INSIGHTS_FINDINGS",e,t),useAnomalies:(e,t)=>Nt("GET_INSIGHTS_ANOMALIES",e,t),useAnomaly:(e,t)=>Nt("GET_INSIGHTS_ANOMALY",e,t),usePolicies:e=>Nt("GET_INSIGHTS_POLICIES",void 0,e),useLearningPolicies:e=>Nt("GET_INSIGHTS_LEARNING_POLICIES",void 0,e),useGuardrails:e=>Nt("GET_INSIGHTS_GUARDRAILS",void 0,e),useGuardrailViolations:(e,t)=>Nt("GET_INSIGHTS_GUARDRAIL_VIOLATIONS",e,t),useGuardrailViolation:(e,t)=>Nt("GET_INSIGHTS_GUARDRAIL_VIOLATION",e,t),useServiceProfile:(e,t)=>Nt("GET_INSIGHTS_SERVICE_PROFILE",e,t),useBlastRadius:(e,t)=>Nt("GET_INSIGHTS_BLAST_RADIUS",e,t),useCatalog:e=>Nt("GET_INSIGHTS_CATALOG",void 0,e),useSystemSettings:e=>Nt("GET_INSIGHTS_SYSTEM_SETTINGS",void 0,e),useStorageHealth:e=>Nt("GET_INSIGHTS_STORAGE_HEALTH",void 0,e),getServices:e.GET_INSIGHTS_SERVICES?async()=>Et(a,e.GET_INSIGHTS_SERVICES,void 0,t):void 0,getServiceNames:e.GET_INSIGHTS_SERVICE_NAMES?async()=>Et(a,e.GET_INSIGHTS_SERVICE_NAMES,void 0,t):void 0,getTransactions:e.GET_INSIGHTS_TRANSACTIONS?async r=>Et(a,e.GET_INSIGHTS_TRANSACTIONS,r,t):void 0,getTransaction:e.GET_INSIGHTS_TRANSACTION?async r=>Et(a,e.GET_INSIGHTS_TRANSACTION,r,t):void 0,getFindings:e.GET_INSIGHTS_FINDINGS?async r=>Et(a,e.GET_INSIGHTS_FINDINGS,r,t):void 0,getAnomalies:e.GET_INSIGHTS_ANOMALIES?async r=>Et(a,e.GET_INSIGHTS_ANOMALIES,r,t):void 0,getAnomaly:e.GET_INSIGHTS_ANOMALY?async r=>Et(a,e.GET_INSIGHTS_ANOMALY,r,t):void 0,getPolicies:e.GET_INSIGHTS_POLICIES?async()=>Et(a,e.GET_INSIGHTS_POLICIES,void 0,t):void 0,getLearningPolicies:e.GET_INSIGHTS_LEARNING_POLICIES?async()=>Et(a,e.GET_INSIGHTS_LEARNING_POLICIES,void 0,t):void 0,getGuardrails:e.GET_INSIGHTS_GUARDRAILS?async()=>Et(a,e.GET_INSIGHTS_GUARDRAILS,void 0,t):void 0,getGuardrailViolation:e.GET_INSIGHTS_GUARDRAIL_VIOLATION?async r=>Et(a,e.GET_INSIGHTS_GUARDRAIL_VIOLATION,r,t):void 0,getServiceProfile:e.GET_INSIGHTS_SERVICE_PROFILE?async r=>Et(a,e.GET_INSIGHTS_SERVICE_PROFILE,r,t):void 0,getBlastRadius:e.GET_INSIGHTS_BLAST_RADIUS?async r=>Et(a,e.GET_INSIGHTS_BLAST_RADIUS,r,t):void 0,getCatalog:e.GET_INSIGHTS_CATALOG?async()=>Et(a,e.GET_INSIGHTS_CATALOG,void 0,t):void 0,getSystemSettings:e.GET_INSIGHTS_SYSTEM_SETTINGS?async()=>Et(a,e.GET_INSIGHTS_SYSTEM_SETTINGS,void 0,t):void 0,getStorageHealth:e.GET_INSIGHTS_STORAGE_HEALTH?async()=>Et(a,e.GET_INSIGHTS_STORAGE_HEALTH,void 0,t):void 0,promoteBaselineClass:e.PROMOTE_INSIGHTS_BASELINE_CLASS?async o=>{if(t.isReadonly)return s();const{data:i,error:l}=await Tt(a,e.PROMOTE_INSIGHTS_BASELINE_CLASS,o,t);return l?r(E.Update,l):n(E.Update,"Successfully promoted baseline class"),{data:i,error:l}}:void 0,resetBaselineClass:e.RESET_INSIGHTS_BASELINE_CLASS?async(o,i)=>{if(t.isReadonly)return s();const{error:l}=await Tt(a,e.RESET_INSIGHTS_BASELINE_CLASS,{transactionId:o,class:i},t);return l?r(E.Update,l):n(E.Update,"Successfully reset baseline class"),l?{error:l}:void 0}:void 0,resetTransactionBaselines:e.RESET_INSIGHTS_TRANSACTION_BASELINES?async o=>{if(t.isReadonly)return s();const{error:i}=await Tt(a,e.RESET_INSIGHTS_TRANSACTION_BASELINES,{transactionId:o},t);return i?r(E.Update,i):n(E.Update,"Successfully reset transaction baselines"),i?{error:i}:void 0}:void 0,promoteTransactionBaselines:e.PROMOTE_INSIGHTS_TRANSACTION_BASELINES?async o=>{if(t.isReadonly)return s();const{error:i}=await Tt(a,e.PROMOTE_INSIGHTS_TRANSACTION_BASELINES,{transactionId:o},t);return i?r(E.Update,i):(n(E.Update,"Successfully promoted transaction baselines"),await Promise.all([l(),u()])),i?{error:i}:void 0}:void 0,bulkPromoteTransactions:e.BULK_PROMOTE_INSIGHTS_TRANSACTIONS?async o=>{if(t.isReadonly)return s();const i={transactionIds:o},{data:c,error:d}=await Tt(a,e.BULK_PROMOTE_INSIGHTS_TRANSACTIONS,i,t);return d?r(E.Update,d):(n(E.Update,`Successfully promoted ${c?.promoted??o.length} transactions`),await Promise.all([l(),u()])),{data:c,error:d}}:void 0,forcePromoteService:e.FORCE_PROMOTE_INSIGHTS_SERVICE?async o=>{if(t.isReadonly)return s();const{error:i}=await Tt(a,e.FORCE_PROMOTE_INSIGHTS_SERVICE,o,t);return i?r(E.Update,i):(n(E.Update,"Successfully force-promoted service transactions"),await Promise.all([l(),u()])),i?{error:i}:void 0}:void 0,enableTransactionGuardrail:e.ENABLE_INSIGHTS_TRANSACTION_GUARDRAIL?async o=>{if(t.isReadonly)return s();const{error:i}=await Tt(a,e.ENABLE_INSIGHTS_TRANSACTION_GUARDRAIL,o,t);return i?r(E.Update,i):(n(E.Update,"Successfully enabled transaction guardrail"),await u()),i?{error:i}:void 0}:void 0,disableTransactionGuardrail:e.DISABLE_INSIGHTS_TRANSACTION_GUARDRAIL?async o=>{if(t.isReadonly)return s();const{error:i}=await Tt(a,e.DISABLE_INSIGHTS_TRANSACTION_GUARDRAIL,o,t);return i?r(E.Update,i):(n(E.Update,"Successfully disabled transaction guardrail"),await u()),i?{error:i}:void 0}:void 0,deleteTransaction:e.DELETE_INSIGHTS_TRANSACTION?async c=>{if(t.isReadonly)return s();const{error:d}=await Tt(a,e.DELETE_INSIGHTS_TRANSACTION,{transactionId:c},t);return d?r(E.Delete,d):(n(E.Delete,"Successfully deleted transaction"),await Promise.all([l(),o(),i()])),d?{error:d}:void 0}:void 0,bulkDeleteTransactions:e.BULK_DELETE_INSIGHTS_TRANSACTIONS?async c=>{if(t.isReadonly)return s();const d={transactionIds:c},{data:u,error:m}=await Tt(a,e.BULK_DELETE_INSIGHTS_TRANSACTIONS,d,t);return m?r(E.Delete,m):(n(E.Delete,`Successfully deleted ${u?.deleted??c.length} transactions`),await Promise.all([l(),o(),i()])),{data:u,error:m}}:void 0,upsertPolicy:e.UPSERT_INSIGHTS_POLICY?async o=>{if(t.isReadonly)return s();const{data:i,error:l}=await Tt(a,e.UPSERT_INSIGHTS_POLICY,{policy:o},t);return l?r(E.Update,l):(n(E.Update,`Successfully saved policy "${o.name}"`),await c()),{data:i,error:l}}:void 0,deletePolicy:e.DELETE_INSIGHTS_POLICY?async(o,i)=>{if(t.isReadonly)return s();const{error:l}=await Tt(a,e.DELETE_INSIGHTS_POLICY,{scope:o,scopeKey:i},t);return l?r(E.Delete,l):(n(E.Delete,"Successfully deleted policy"),await c()),l?{error:l}:void 0}:void 0,upsertLearningPolicy:e.UPSERT_INSIGHTS_LEARNING_POLICY?async o=>{if(t.isReadonly)return s();const{data:i,error:l}=await Tt(a,e.UPSERT_INSIGHTS_LEARNING_POLICY,{policy:o},t);return l?r(E.Update,l):(n(E.Update,"Successfully saved learning policy"),await d()),{data:i,error:l}}:void 0,deleteLearningPolicy:e.DELETE_INSIGHTS_LEARNING_POLICY?async(o,i,l)=>{if(t.isReadonly)return s();const{error:c}=await Tt(a,e.DELETE_INSIGHTS_LEARNING_POLICY,{class:o,scope:i,scopeKey:l},t);return c?r(E.Delete,c):(n(E.Delete,"Successfully deleted learning policy"),await d()),c?{error:c}:void 0}:void 0,resolveAnomaly:e.RESOLVE_INSIGHTS_ANOMALY?async l=>{if(t.isReadonly)return s();const{error:c}=await Tt(a,e.RESOLVE_INSIGHTS_ANOMALY,l,t);return c?r(E.Update,c):(n(E.Update,`Successfully ${l.resolution}ed anomaly`),await Promise.all([i(),o()])),c?{error:c}:void 0}:void 0,bulkResolveAnomalies:e.BULK_RESOLVE_INSIGHTS_ANOMALIES?async(l,c)=>{if(t.isReadonly)return s();const d={resolution:l,items:c},{data:u,error:m}=await Tt(a,e.BULK_RESOLVE_INSIGHTS_ANOMALIES,d,t);return m?r(E.Update,m):(n(E.Update,`Successfully ${l}ed ${u?.resolved??c.length} anomalies`),await Promise.all([i(),o()])),{data:u,error:m}}:void 0,upsertGuardrail:e.UPSERT_INSIGHTS_GUARDRAIL?async o=>{if(t.isReadonly)return s();const{data:i,error:l}=await Tt(a,e.UPSERT_INSIGHTS_GUARDRAIL,{guardrail:o},t);return l?r(E.Update,l):(n(E.Update,"Successfully saved guardrail"),await u()),{data:i,error:l}}:void 0,deleteGuardrail:e.DELETE_INSIGHTS_GUARDRAIL?async(o,i)=>{if(t.isReadonly)return s();const{error:l}=await Tt(a,e.DELETE_INSIGHTS_GUARDRAIL,{scopeKey:o,scope:i},t);return l?r(E.Delete,l):(n(E.Delete,"Successfully deleted guardrail"),await u()),l?{error:l}:void 0}:void 0,seedGuardrail:e.SEED_INSIGHTS_GUARDRAIL?async o=>{if(t.isReadonly)return s();const{error:i}=await Tt(a,e.SEED_INSIGHTS_GUARDRAIL,{seed:o},t);return i?r(E.Create,i):(n(E.Create,"Successfully seeded guardrail"),await u()),i?{error:i}:void 0}:void 0,acceptViolation:e.ACCEPT_INSIGHTS_GUARDRAIL_VIOLATION?async i=>{if(t.isReadonly)return s();const{error:l}=await Tt(a,e.ACCEPT_INSIGHTS_GUARDRAIL_VIOLATION,{action:i},t);return l?r(E.Update,l):(n(E.Update,"Successfully accepted violation"),await Promise.all([m(),o()])),l?{error:l}:void 0}:void 0,dismissViolation:e.DISMISS_INSIGHTS_GUARDRAIL_VIOLATION?async i=>{if(t.isReadonly)return s();const{error:l}=await Tt(a,e.DISMISS_INSIGHTS_GUARDRAIL_VIOLATION,{action:i},t);return l?r(E.Update,l):(n(E.Update,"Successfully dismissed violation"),await Promise.all([m(),o()])),l?{error:l}:void 0}:void 0,reopenViolation:e.REOPEN_INSIGHTS_GUARDRAIL_VIOLATION?async i=>{if(t.isReadonly)return s();const{error:l}=await Tt(a,e.REOPEN_INSIGHTS_GUARDRAIL_VIOLATION,{action:i},t);return l?r(E.Update,l):(n(E.Update,"Successfully reopened violation"),await Promise.all([m(),o()])),l?{error:l}:void 0}:void 0,updateSystemSettings:e.UPDATE_INSIGHTS_SYSTEM_SETTINGS?async o=>{if(t.isReadonly)return s();const{data:i,error:l}=await Tt(a,e.UPDATE_INSIGHTS_SYSTEM_SETTINGS,{settings:o},t);return l?r(E.Update,l):(n(E.Update,"Successfully updated system settings"),await(async()=>{e.GET_INSIGHTS_SYSTEM_SETTINGS&&await Et(a,e.GET_INSIGHTS_SYSTEM_SETTINGS,void 0,t)})()),{data:i,error:l}}:void 0}},kt=[],Mt=e=>{if(e)return{clusters:[e],totalNamespaces:e.namespaces?.length??0,totalWorkloads:(e.namespaces??[]).reduce((e,t)=>e+(t.workloads?.length??0),0),lastUpdated:e.timestamp}},Ht=[],xt=[],Kt=[],$t=[],Vt=(e,t)=>({...e,fields:e.fields.filter(({value:e})=>void 0!==e),currentStreamName:t}),Yt=[],Bt=[],Wt=()=>{const{operations:e,context:t}=at(),r=$e(),n=((e,t)=>{const r=$e(),{notifyError:n,notifySuccess:o,notifyPending:i,notifyReadonly:l}=ct(T.Source),{selectedStreamName:c}=y(),{setProgress:d,resetProgress:u}=f(),{setConfiguredSources:m,setConfiguredFutureApps:S}=_(),p=(e,t)=>{const{progress:a}=f.getState();e>0&&d(h.Instrumenting,{total:(a[h.Instrumenting]?.total||0)+e,current:a[h.Instrumenting]?.current||0}),t>0&&d(h.Uninstrumenting,{total:(a[h.Uninstrumenting]?.total||0)+t,current:a[h.Uninstrumenting]?.current||0})},I=s(async()=>{const{error:a}=await Et(r,e.GET_WORKLOADS,Dt,t);a&&n(E.Read,a)},[r,e.GET_WORKLOADS,t,n]);return{useSources:()=>{const e=Nt("GET_WORKLOADS",Dt,{fetchPolicy:"cache-first"}),t=e.data?.workloads;return{items:a(()=>t?Lt(t):Gt,[t]),loading:e.loading,refetch:I}},fetchAll:I,fetchByTargets:async(a,s)=>{const o=!!s?.slim,i=a.map(e=>g(e,T.Source)).filter(e=>e.namespace&&e.name&&e.kind);if(0===i.length)return;if(i.length>50)return void await I();const l=o&&e.GET_WORKLOADS_BY_IDS_SLIM?e.GET_WORKLOADS_BY_IDS_SLIM:e.GET_WORKLOADS_BY_IDS,{error:c}=await Et(r,l,{ids:i.map(({namespace:e,kind:t,name:a,region:r})=>({namespace:e,kind:t,name:a,region:r||void 0}))},t);c?n(E.Read,c):await I()},fetchById:async a=>{const{data:s,error:o}=await Et(r,e.GET_WORKLOADS_BY_IDS,{ids:[{namespace:a.namespace,kind:a.kind,name:a.name,...a.region?{region:a.region}:{}}]},t);if(o)return void n(E.Read,o);const i=s?.workloadsByIds?.find(e=>e.id.namespace===a.namespace&&e.id.kind===a.kind&&e.id.name===a.name&&(e.id.region??"")===(a.region??""));return i?bt(i):void 0},fetchLibraries:async a=>Et(r,e.GET_SOURCE_LIBRARIES,a,t),fetchPeerSources:async a=>Et(r,e.GET_PEER_SOURCES,{serviceName:a},t),usePeerSources:(e,t)=>Nt("GET_PEER_SOURCES",e,t),useInstrumentationInstructions:(e,t)=>Nt("GET_INSTRUMENTATION_INSTRUCTIONS",e,{...t,skip:t?.skip||!e?.name}),persist:async(a,s)=>{if(t.isReadonly)return l();const{data:o}=await Et(r,e.GET_WORKLOADS,Dt,t,"cache-first"),d=Lt(o?.workloads??Gt),{payload:T,isEmpty:I}=Ot(a,d,c,p),{payload:y,isEmpty:f}=Ct(s,c);let _=!1;I||(_=!0,i("Persisting sources...")),f||_||i("Persisting namespaces...");const{error:g}=await Tt(r,e.PERSIST_SOURCES,T,t);if(g&&(u(h.Instrumenting),u(h.Uninstrumenting),n(E.Update,g)),e.PERSIST_NAMESPACES){const{error:a}=await Tt(r,e.PERSIST_NAMESPACES,y,t);a&&n(E.Update,a)}m({}),S({})},persistV2:async a=>{if(t.isReadonly)return l(),{error:"readonly"};const n=[];for(const[s,o]of Object.entries(a)){const a={sources:[]},i={namespaces:[]};for(const e of o)e.name&&e.kind?a.sources.push(e):i.namespaces.push(e);const l=s&&s!==N?{...t,proxyID:s}:t,c=e=>s&&s!==N?`${s}: ${e}`:e;if(i.namespaces.length>0&&e.PERSIST_NAMESPACES){const{error:t}=await Tt(r,e.PERSIST_NAMESPACES,i,l);t&&n.push(c(t))}if(a.sources.length>0){const{error:t}=await Tt(r,e.PERSIST_SOURCES,a,l);t&&n.push(c(t))}}return n.length?{error:n.join(", ")}:void 0},update:async(a,s)=>{if(t.isReadonly)return l();i("Updating source...");const d={sourceId:a,patchSourceRequest:{...s,currentStreamName:c}},{data:u,error:m}=await Tt(r,e.UPDATE_SOURCE,d,t);m?n(E.Update,m,a):u?.updateK8sActualSource&&o(E.Update,`Successfully updated "${a.name}" source`,a)},restartWorkloads:async a=>{if(t.isReadonly)return l();i("Restarting sources...");const{data:s,error:c}=await Tt(r,e.RESTART_WORKLOADS,{sourceIds:a},t);c?n(E.Update,c):s?.restartWorkloads&&o(E.Update,`Successfully restarted ${a.length} sources`)},restartPod:async(a,s)=>{if(t.isReadonly)return l();i("Restarting pod...");const{data:c,error:d}=await Tt(r,e.RESTART_POD,{namespace:a,name:s},t);d?n(E.Update,d):c?.restartPod&&o(E.Update,`Successfully restarted pod ${a}/${s}`)},recoverFromRollback:async a=>{if(t.isReadonly)return l();i("Recovering from rollback...");const{data:s,error:c}=await Tt(r,e.RECOVER_FROM_ROLLBACK,{sourceId:a},t);c?n(E.Update,c,a):s?.recoverFromRollbackForWorkload&&o(E.Update,"Successfully triggered recovery from rollback")}}})(e,t),o=((e,t)=>{const a=$e(),{notifyError:r,notifySuccess:n,notifyReadonly:s}=ct(T.Destination),{selectedStreamName:o}=y(),i=async()=>{const{error:n}=await Et(a,e.GET_DESTINATIONS,void 0,t);n&&r(E.Read,n)};return{useDestinations:()=>{const e=Nt("GET_DESTINATIONS",void 0,{fetchPolicy:"cache-first"});return{items:e.data?.computePlatform?.destinations??e.data?.destinations??$t,loading:e.loading,refetch:i}},useDestinationCategories:()=>{const e=Nt("GET_DESTINATION_CATEGORIES",void 0);return{data:e.data,loading:e.loading}},usePotentialDestinations:()=>{const e=Nt("GET_POTENTIAL_DESTINATIONS",void 0);return{data:e.data,loading:e.loading}},fetchAll:i,testConnection:async r=>{const{data:n}=await Tt(a,e.TEST_DESTINATION_CONNECTION,{destination:Vt(r,o)},t);return n},create:async l=>{if(t.isReadonly)return s();const{error:c}=await Tt(a,e.CREATE_DESTINATION,{destination:Vt(l,o)},t);c?r(E.Create,c):(n(E.Create,`Successfully created "${l.type}" destination`),await i())},update:async(l,c)=>{if(t.isReadonly)return s();const{data:d,error:u}=await Tt(a,e.UPDATE_DESTINATION,{id:l,destination:Vt(c,o)},t);u?r(E.Update,u,l):d?.updateDestination&&(n(E.Update,`Successfully updated "${c.type}" destination`,l),await i())},remove:async l=>{if(t.isReadonly)return s();const{data:c}=await Et(a,e.GET_DESTINATIONS,void 0,t,"cache-first"),d=c?.computePlatform?.destinations??c?.destinations??$t,u=d.find(e=>O(e)===l)?.destinationType?.type,{error:m}=await Tt(a,e.DELETE_DESTINATION,{id:l,currentStreamName:o},t);m?r(E.Delete,m,l):(n(E.Delete,`Successfully deleted "${u??l}" destination`,l),await i())}}})(e,t),l=((e,t)=>{const r=$e(),{notifyError:n,notifySuccess:s,notifyReadonly:o}=ct(T.Action),i=async()=>{const{error:a}=await Et(r,e.GET_ACTIONS,void 0,t);a&&n(E.Read,a)};return{useActions:()=>{const e=Nt("GET_ACTIONS",void 0,{fetchPolicy:"cache-first"});return{items:e.data?.computePlatform?.actions??e.data?.actions??wt,loading:e.loading,refetch:i}},useActionTypes:()=>{const e=Nt("GET_ACTION_TYPES",void 0,{fetchPolicy:"cache-first"});return{options:a(()=>v(e.data)||Pt,[e.data]),loading:e.loading}},fetchAll:i,create:async a=>{if(t.isReadonly)return o(),{error:u.READONLY_WARNING};if(!e.CREATE_ACTION)return{error:"Action creation is not supported"};const{error:l}=await Tt(r,e.CREATE_ACTION,{action:a},t);return l?n(E.Create,l):(s(E.Create,`Successfully created "${a.type}" action`),await i()),l?{error:l}:void 0},update:async(a,l)=>{if(t.isReadonly)return o();if(!e.UPDATE_ACTION)return;const{error:c}=await Tt(r,e.UPDATE_ACTION,{id:a,action:l},t);c?n(E.Update,c,a):(s(E.Update,`Successfully updated "${l.type}" action`,a),await i())},remove:async(a,l)=>{if(t.isReadonly)return o();if(!e.DELETE_ACTION)return;const{error:c}=await Tt(r,e.DELETE_ACTION,{id:a,actionType:l},t);c?n(E.Delete,c,a):(s(E.Delete,`Successfully deleted "${l}" action`,a),await i())}}})(e,t),c=((e,t)=>{const r=$e(),{notifyError:n,notifySuccess:s,notifyReadonly:o}=ct(T.InstrumentationRule),i=async()=>{const{error:a}=await Et(r,e.GET_INSTRUMENTATION_RULES,void 0,t);a&&n(E.Read,a)};return{useRules:()=>{const e=Nt("GET_INSTRUMENTATION_RULES",void 0,{fetchPolicy:"cache-first"});return{items:a(()=>(e.data?.computePlatform?.instrumentationRules??e.data?.instrumentationRules??[]).map(P),[e.data]),loading:e.loading,refetch:i}},useRuleTypes:()=>{const e=Nt("GET_INSTRUMENTATION_RULE_TYPES",void 0,{fetchPolicy:"cache-first"});return{options:a(()=>w(e.data)||Bt,[e.data]),loading:e.loading}},fetchAll:i,create:async(a,l)=>{if(t.isReadonly)return o();if(!e.CREATE_INSTRUMENTATION_RULE)return;const{error:c}=await Tt(r,e.CREATE_INSTRUMENTATION_RULE,{instrumentationRule:L(a)},t);c?n(E.Create,c):(s(E.Create,`Successfully created${l?` "${l}"`:""} rule`),await i())},update:async(a,l,c)=>{if(t.isReadonly)return o();if(!e.UPDATE_INSTRUMENTATION_RULE)return;const{error:d}=await Tt(r,e.UPDATE_INSTRUMENTATION_RULE,{ruleId:a,instrumentationRule:L(l)},t);d?n(E.Update,d,a):(s(E.Update,`Successfully updated${c?` "${c}"`:""} rule`,a),await i())},remove:async(a,l)=>{if(t.isReadonly)return o();if(!e.DELETE_INSTRUMENTATION_RULE)return;const{error:c}=await Tt(r,e.DELETE_INSTRUMENTATION_RULE,{ruleId:a},t);c?n(E.Delete,c,a):(s(E.Delete,`Successfully deleted${l?` "${l}"`:""} rule`,a),await i())}}})(e,t),m=((e,t)=>{const a=$e(),{addNotification:r}=d(),{setDataStreams:n}=y(),s=(e,t)=>r({type:S.Error,title:e,message:t}),o=async()=>{const{data:r,error:o}=await Et(a,e.GET_DATA_STREAMS,void 0,t);if(o)s(E.Read,o);else if(r){const e=r.computePlatform?.dataStreams??r.dataStreams??[];n(e)}},l=e.CREATE_DATA_STREAM?async n=>{if(t.isReadonly)return dt(r);const{error:i}=await Tt(a,e.CREATE_DATA_STREAM,{stream:n},t);i?s(E.Create,i):await o()}:void 0;return{useDataStreams:()=>{const e=Nt("GET_DATA_STREAMS",void 0,{fetchPolicy:"cache-first"}),t=e.data?.computePlatform?.dataStreams??e.data?.dataStreams??Kt;return i(()=>{n(t)},[JSON.stringify(t.map(e=>e.name))]),{items:t,loading:e.loading,refetch:o}},fetchAll:o,create:l,update:async(n,i)=>{if(t.isReadonly)return dt(r);const{error:l}=await Tt(a,e.UPDATE_DATA_STREAM,{id:n,dataStream:i},t);l?s(E.Update,l):await o()},remove:async n=>{if(t.isReadonly)return dt(r);const{error:i}=await Tt(a,e.DELETE_DATA_STREAM,{id:n},t);i?s(E.Delete,i):await o()}}})(e,t),p=((e,t)=>{const a=$e(),{notifyError:r,notifyReadonly:n}=ct(T.Namespace),s=async()=>{const n=await Et(a,e.GET_NAMESPACES_WITH_WORKLOADS,void 0,t);return n.error&&r(E.Read,n.error),n};return{useNamespaces:e=>{const t=Nt("GET_NAMESPACES_WITH_WORKLOADS",void 0,{fetchPolicy:"cache-and-network",skip:e?.skip});return{items:t.data?.namespaces??kt,loading:t.loading,refetch:s}},fetchAll:s,persist:async s=>{if(t.isReadonly)return n();const{error:o}=await Tt(a,e.PERSIST_NAMESPACES,s,t);return o&&r(E.Update,o),o?{error:o}:void 0}}})(e,t),A=((e,t)=>{const a=$e(),{notifyError:r}=ct(T.Source);return{fetch:async n=>{const s=await Et(a,e.GET_K8S_MANIFEST,n,t);return s.error&&r(E.Read,s.error),s}}})(e,t),U=((e,t)=>{const a=$e(),{notifyError:r,notifySuccess:n,notifyReadonly:s}=ct(T.Source);return{useEffectiveConfig:(e,t)=>Nt("GET_EFFECTIVE_CONFIG",e,t),useConfigYamls:e=>Nt("GET_CONFIG_YAMLS",void 0,e),getEffectiveConfig:async r=>e.GET_EFFECTIVE_CONFIG?Et(a,e.GET_EFFECTIVE_CONFIG,{id:r},t):{error:"GET_EFFECTIVE_CONFIG not configured"},applyConfigurations:e.UPDATE_REMOTE_CONFIG?async(n,o)=>{if(t.isReadonly)return s();if(!o.length)return{error:"No connections selected"};const i={formData:n,connectionIds:o},l=e.UPDATE_REMOTE_CONFIG;let c;return 1===o.length?({error:c}=await Tt(a,l,i,t)):({error:c}=await It(a,l,o,i,t)),c&&r(E.Update,c),c?{error:c}:void 0}:void 0,getConfigYamls:e.GET_CONFIG_YAMLS?async()=>Et(a,e.GET_CONFIG_YAMLS,void 0,t):void 0,updateLocalUiConfig:e.UPDATE_LOCAL_UI_CONFIG?async o=>{if(t.isReadonly)return s();const{error:i}=await Tt(a,e.UPDATE_LOCAL_UI_CONFIG,{config:o},t);return i?r(E.Update,i):n(E.Update,"Local UI configuration updated successfully"),i?{error:i}:void 0}:void 0,resetLocalUiConfigToDefaults:e.RESET_LOCAL_UI_CONFIG_TO_FACTORY_DEFAULTS?async()=>{if(t.isReadonly)return s();const{error:o}=await Tt(a,e.RESET_LOCAL_UI_CONFIG_TO_FACTORY_DEFAULTS,void 0,t);return o?r(E.Update,o):n(E.Update,"Local UI configuration reset to factory defaults"),o?{error:o}:void 0}:void 0}})(e,t),F=((e,t)=>{const a=$e(),{apolloConfig:r}=at();return{fetchDescribeOdigos:e.GET_DESCRIBE_ODIGOS?async()=>Et(a,e.GET_DESCRIBE_ODIGOS,void 0,t):void 0,fetchDescribeSource:e.GET_DESCRIBE_SOURCE?async r=>Et(a,e.GET_DESCRIBE_SOURCE,r,t):void 0,downloadDiagnose:e.GET_DIAGNOSE?async(n,s)=>{const o=await Et(a,e.GET_DIAGNOSE,{input:n,dryRun:s?.dryRun??!1},t),i=o?.data?.stats?.fileCount??0;return!o.error&&i>0&&!s?.dryRun&&await(async e=>{const t=(e=>{try{return new URL("/diagnose/download",e).toString()}catch{return null}})(e.httpUrl);if(t)try{const[a,r]=await Promise.all([Promise.resolve(e.authHeader?.()??{}),Promise.resolve(e.csrfHeader?.()??{})]),n=await fetch(t,{credentials:e.credentials??"same-origin",headers:{...a,...r}});if(!n.ok)throw new Error(`Failed to download diagnose archive: ${n.status} ${n.statusText}`);((e,t)=>{if("undefined"==typeof document)return;const a=URL.createObjectURL(e),r=document.createElement("a");r.href=a,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(a)})(await n.blob(),`odigos-diagnose-${Date.now()}.tar.gz`)}catch(e){}})(r),o}:void 0}})(e,t),k=((e,t)=>{const a=$e(),{notifyError:r,notifyReadonly:n}=ct(T.Source),s=async()=>{e.GET_TOKENS&&await Et(a,e.GET_TOKENS,void 0,t)};return{useTokens:()=>{const e=Nt("GET_TOKENS",void 0,{fetchPolicy:"cache-first"});return{items:e.data??Rt,loading:e.loading,refetch:s}},updateToken:e.UPDATE_TOKEN?async s=>{if(t.isReadonly)return n();const{error:o}=await Tt(a,e.UPDATE_TOKEN,{token:s},t);return o&&r(E.Update,o),o?{error:o}:void 0}:void 0}})(e,t),M=((e,t)=>{const a=$e();return{useMetrics:e=>Nt("GET_METRICS",void 0,e),fetch:async()=>Et(a,e.GET_METRICS,void 0,t)}})(e,t),H=((e,t)=>{const a=$e();return{useServiceMap:e=>Nt("GET_SERVICE_MAP",void 0,e),fetch:e.GET_SERVICE_MAP?async()=>Et(a,e.GET_SERVICE_MAP,void 0,t):void 0}})(e,t),x=((e,t)=>{const a=$e();return{useSlots:e=>Nt("GET_PROFILING_SLOTS",void 0,e),useSourceProfiling:(e,t)=>Nt("GET_SOURCE_PROFILING",e,t),useHotFunctions:(e,t)=>Nt("GET_PROFILE_HOT_FUNCTIONS",e,t),fetchSlots:e.GET_PROFILING_SLOTS?async()=>Et(a,e.GET_PROFILING_SLOTS,void 0,t):void 0,fetchSourceProfiling:e.GET_SOURCE_PROFILING?async r=>Et(a,e.GET_SOURCE_PROFILING,r,t):void 0,enableProfiling:e.ENABLE_SOURCE_PROFILING?async r=>Tt(a,e.ENABLE_SOURCE_PROFILING,r,t):void 0,fetchHotFunctions:e.GET_PROFILE_HOT_FUNCTIONS?async r=>Et(a,e.GET_PROFILE_HOT_FUNCTIONS,r,t):void 0,clearProfileCache:e.CLEAR_PROFILE_CACHE?async()=>Tt(a,e.CLEAR_PROFILE_CACHE,void 0,t):void 0}})(e,t),K=((e,t)=>{const a=$e();return{useGatewayInfo:e=>Nt("GET_GATEWAY_INFO",void 0,e),useGatewayPods:e=>Nt("GET_GATEWAY_PODS",void 0,e),useNodeCollectorInfo:e=>Nt("GET_NODE_COLLECTOR_INFO",void 0,e),useNodeCollectorPods:e=>Nt("GET_NODE_COLLECTOR_PODS",void 0,e),usePodInfo:(e,t)=>Nt("GET_COLLECTOR_POD_INFO",e,t),getGatewayInfo:e.GET_GATEWAY_INFO?async()=>Et(a,e.GET_GATEWAY_INFO,void 0,t):void 0,getGatewayPods:e.GET_GATEWAY_PODS?async()=>Et(a,e.GET_GATEWAY_PODS,void 0,t):void 0,getNodeCollectorInfo:e.GET_NODE_COLLECTOR_INFO?async()=>Et(a,e.GET_NODE_COLLECTOR_INFO,void 0,t):void 0,getNodeCollectorPods:e.GET_NODE_COLLECTOR_PODS?async()=>Et(a,e.GET_NODE_COLLECTOR_PODS,void 0,t):void 0,getExtendedPodInfo:e.GET_COLLECTOR_POD_INFO?async(r,n)=>Et(a,e.GET_COLLECTOR_POD_INFO,{namespace:r,name:n},t):void 0}})(e,t),$=((e,t)=>{const a=$e(),{notifyError:r,notifySuccess:n,notifyReadonly:s}=ct(T.SamplingRule),o=async()=>{e.GET_SAMPLING_RULES&&await Et(a,e.GET_SAMPLING_RULES,void 0,t)},i=(e,i)=>e?async l=>{if(t.isReadonly)return s();const{error:c}=await Tt(a,e,l,t);return c?r(i,c):(n(E.Create,"Successfully created sampling rule"),await o()),c?{error:c}:void 0}:void 0,l=(e,i)=>e?async(l,c)=>{if(t.isReadonly)return s();const{error:d}=await Tt(a,e,{samplingId:c.samplingId,ruleId:l,rule:c.rule},t);return d?r(i,d):(n(E.Update,"Successfully updated sampling rule"),await o()),d?{error:d}:void 0}:void 0,c=e=>e?async(i,l)=>{if(t.isReadonly)return s();const{error:c}=await Tt(a,e,{samplingId:l,ruleId:i},t);return c?r(E.Delete,c):(n(E.Delete,"Successfully deleted sampling rule"),await o()),c?{error:c}:void 0}:void 0;return{useSamplingRules:()=>{const e=Nt("GET_SAMPLING_RULES",void 0,{fetchPolicy:"cache-first"});return{items:e.data?.computePlatform?.samplingRules??e.data?.samplingRules??Ut,k8sHealthProbesConfig:e.data?.computePlatform?.k8sHealthProbesConfig??e.data?.k8sHealthProbesConfig??null,loading:e.loading,refetch:o}},fetchAll:e.GET_SAMPLING_RULES?async()=>Et(a,e.GET_SAMPLING_RULES,void 0,t):void 0,createNoisy:i(e.CREATE_NOISY_OPERATION_RULE,E.Create),updateNoisy:l(e.UPDATE_NOISY_OPERATION_RULE,E.Update),deleteNoisy:c(e.DELETE_NOISY_OPERATION_RULE),createHighlyRelevant:i(e.CREATE_HIGHLY_RELEVANT_OPERATION_RULE,E.Create),updateHighlyRelevant:l(e.UPDATE_HIGHLY_RELEVANT_OPERATION_RULE,E.Update),deleteHighlyRelevant:c(e.DELETE_HIGHLY_RELEVANT_OPERATION_RULE),createCostReduction:i(e.CREATE_COST_REDUCTION_RULE,E.Create),updateCostReduction:l(e.UPDATE_COST_REDUCTION_RULE,E.Update),deleteCostReduction:c(e.DELETE_COST_REDUCTION_RULE),updateK8sHealthProbesConfig:e.UPDATE_LOCAL_UI_SAMPLING_CONFIG?async n=>{if(t.isReadonly)return s();const{error:i}=await Tt(a,e.UPDATE_LOCAL_UI_SAMPLING_CONFIG,{config:{k8sHealthProbesSampling:n}},t);return i?r(E.Update,i):await o(),i?{error:i}:void 0}:void 0}})(e,t),V=((e,t)=>{const a=$e(),{notifyError:r,notifySuccess:n,notifyReadonly:s}=ct(T.Recommendation),o=async()=>{e.GET_RECOMMENDATIONS&&await Et(a,e.GET_RECOMMENDATIONS,void 0,t)};return{useRecommendations:()=>{const e=Nt("GET_RECOMMENDATIONS",void 0,{fetchPolicy:"cache-first"});return{items:e.data?.computePlatform?.recommendations??e.data?.recommendations??Yt,loading:e.loading,refetch:o}},fetchAll:e.GET_RECOMMENDATIONS?async()=>Et(a,e.GET_RECOMMENDATIONS,void 0,t):void 0,setDismissed:e.SET_RECOMMENDATION_DISMISSED?async(i,l)=>{if(t.isReadonly)return s(),{error:u.READONLY_WARNING};const{error:c}=await Tt(a,e.SET_RECOMMENDATION_DISMISSED,{name:i,dismissed:l},t);return c?r(E.Update,c):(n(E.Update,l?G:b),await o()),c?{error:c}:void 0}:void 0,applyRemediation:e.APPLY_RECOMMENDATION_REMEDIATION?async(i,l)=>{if(t.isReadonly)return s(),{error:u.READONLY_WARNING};const{data:c,error:d}=await Tt(a,e.APPLY_RECOMMENDATION_REMEDIATION,{recommendationType:i,remediationType:l},t),m=d||!c?.applyRecommendationRemediation;return m?r(E.Update,d||C):(n(E.Update,D),await o()),m?{error:d||C}:void 0}:void 0}})(e,t),Y=((e,t)=>{const r=$e();return{useSnapshots:()=>{const e=t.proxyID,r=!!e,n=Nt("GET_ALL_CLUSTER_SNAPSHOTS",void 0,{fetchPolicy:"cache-and-network",skip:r}),o=Nt("GET_CLUSTER_SNAPSHOT",e?{clusterId:e}:void 0,{fetchPolicy:"cache-and-network",skip:!r}),i=a(()=>r?Mt(o.data):n.data,[r,o.data,n.data]),l=r?o.loading:n.loading,c=s(async()=>{if(!r)return n.refetch();const{data:e}=await o.refetch();return{data:Mt(e)}},[r,n.refetch,o.refetch]);return{data:i,loading:l,pending:l&&!i,unsupported:r?o.unsupported:n.unsupported,refetch:c}},getAllClusterSnapshots:e.GET_ALL_CLUSTER_SNAPSHOTS?async()=>Et(r,e.GET_ALL_CLUSTER_SNAPSHOTS,void 0,t):void 0,getClusterSnapshot:e.GET_CLUSTER_SNAPSHOT?async a=>Et(r,e.GET_CLUSTER_SNAPSHOT,{clusterId:a},t):void 0}})(e,t),B=((e,t)=>{const a=$e(),{notifyError:r,notifySuccess:n,notifyReadonly:o}=ct(R.Connection),i=s(async()=>{if(!e.GET_COMPUTE_PLATFORMS)return[];const{data:n,error:s}=await Et(a,e.GET_COMPUTE_PLATFORMS,void 0,t);return s&&r(E.Read,s),n??[]},[a,e.GET_COMPUTE_PLATFORMS,t,r]);return{useConnections:()=>{const e=Nt("GET_COMPUTE_PLATFORMS",void 0,{fetchPolicy:"cache-and-network"});return{items:e.data??Ht,loading:e.loading,unsupported:e.unsupported,refetch:i}},useCloudConnectorProviders:()=>{const e=Nt("GET_CLOUD_CONNECTOR_PROVIDERS",void 0,{fetchPolicy:"cache-first"});return{items:e.data??xt,loading:e.loading,unsupported:e.unsupported}},createCloudConnector:e.CREATE_CLOUD_CONNECTOR?async n=>{if(t.isReadonly)throw o(),new Error("Readonly");const{data:s,error:l}=await Tt(a,e.CREATE_CLOUD_CONNECTOR,{input:n},t);if(l)throw r(E.Create,l),new Error(l);if(!s)throw new Error("No result returned from create connector");return s.created&&await i(),s}:void 0,deleteConnection:e.DELETE_PROXY_CONNECTION||e.DELETE_CLOUD_CONNECTOR?async(s,l)=>{if(t.isReadonly)return o();if(l===I.Connector){if(!e.DELETE_CLOUD_CONNECTOR)return r(E.Delete,"DELETE_CLOUD_CONNECTOR not configured"),{success:!1,error:"DELETE_CLOUD_CONNECTOR not configured"};const{data:o,error:l}=await Tt(a,e.DELETE_CLOUD_CONNECTOR,{connectorId:s},t);if(l)return r(E.Delete,l),{success:!1,error:l};const c=o??{success:!1,error:"Failed to delete connection"};return c.success?(n(E.Delete,"Connection deleted successfully"),await i(),c):(r(E.Delete,c.error||"Failed to delete connection"),c)}if(!e.DELETE_PROXY_CONNECTION)return r(E.Delete,"DELETE_PROXY_CONNECTION not configured"),{success:!1,error:"DELETE_PROXY_CONNECTION not configured"};const{data:c,error:d}=await Tt(a,e.DELETE_PROXY_CONNECTION,{proxyID:s},t);if(d)return r(E.Delete,d),{success:!1,error:d};const u=c??{success:!1,error:"Failed to delete connection"};return u.success?(n(E.Delete,"Connection deleted successfully"),await i(),u):(r(E.Delete,u.error||"Failed to delete connection"),u)}:void 0}})(e,t);return{sourcesApi:n,destinationsApi:o,actionsApi:l,instrumentationRulesApi:c,dataStreamsApi:m,namespacesApi:p,k8sManifestApi:A,configApi:U,describeApi:F,tokensApi:k,metricsApi:M,serviceMapApi:H,profilingApi:x,collectorsApi:K,samplingApi:$,recommendationsApi:V,snapshotsApi:Y,connectionsApi:B,insightsApi:Ft(e,t),capabilities:a(()=>((e,t)=>{const a=t.platformType===I.K8s,r=a,n=a,s=t.platformType===I.Vm,o=!s,i=!(t.platformType===I.Connector);return{canBulkPersistSources:o&&!!e.PERSIST_SOURCES,canInstrumentNamespaces:n&&!!e.PERSIST_NAMESPACES,canFetchSnapshots:r&&!!e.GET_ALL_CLUSTER_SNAPSHOTS,canRecoverFromRollback:r&&!!e.RECOVER_FROM_ROLLBACK,canRestartWorkloads:r&&!!e.RESTART_WORKLOADS,canFetchPeerSources:!!e.GET_PEER_SOURCES,canFetchSourceLibraries:!!e.GET_SOURCE_LIBRARIES,canFetchInstrumentationInstructions:!!e.GET_INSTRUMENTATION_INSTRUCTIONS,canFetchK8sManifest:r&&!!e.GET_K8S_MANIFEST,canCreateDestination:!!e.CREATE_DESTINATION,canTestConnection:o&&!!e.TEST_DESTINATION_CONNECTION,canFetchDestinationCategories:!!e.GET_DESTINATION_CATEGORIES,canFetchPotentialDestinations:o&&!!e.GET_POTENTIAL_DESTINATIONS,canManageActions:i&&!!e.GET_ACTIONS,canCreateAction:i&&!!e.CREATE_ACTION,canFetchActionTypes:i&&!!e.GET_ACTION_TYPES,canManageInstrumentationRules:i&&!!e.GET_INSTRUMENTATION_RULES,canCreateInstrumentationRule:i&&!!e.CREATE_INSTRUMENTATION_RULE,canFetchInstrumentationRuleTypes:i&&!!e.GET_INSTRUMENTATION_RULE_TYPES,canApplyEffectiveConfig:o&&!!e.UPDATE_REMOTE_CONFIG,canFetchEffectiveConfig:!!e.GET_EFFECTIVE_CONFIG,canFetchConfigYamls:!!e.GET_CONFIG_YAMLS,canFetchProfiling:r&&!!e.GET_PROFILING_SLOTS||s&&(!!e.GET_SOURCE_PROFILING||!!e.GET_PROFILE_HOT_FUNCTIONS),canFetchCollectorInfo:r&&!!e.GET_GATEWAY_INFO,canManageSamplingRules:!!e.GET_SAMPLING_RULES,canManageInsightsPolicies:!!e.GET_INSIGHTS_POLICIES,canFetchInsights:!!e.GET_INSIGHTS_FINDINGS,canManageRecommendations:r&&!!e.GET_RECOMMENDATIONS}})(e,t),[e,t]),resetCache:s(async()=>{await r.cache.reset()},[r])}},jt={type:"",disabled:!1,name:"",notes:"",signals:[],fields:{}},qt=n(null),zt=e=>e?.length?e.map(e=>!e.fromSources?.length&&e.from?{...e,fromSources:[e.from]}:e):e,Qt=(e,t)=>{const a=F(e??{}),r=a[M.ExtractAttribute];var n;r?.extractions?.length&&(r.extractions=r.extractions.map(e=>{const t=e;return{...t,method:t.method||(t.regex?.trim()?"regex":"preset")}})),a[M.LabelsAttributes]&&(a[M.LabelsAttributes]=zt(a[M.LabelsAttributes])),a[M.AnnotationsAttributes]&&(a[M.AnnotationsAttributes]=zt(a[M.AnnotationsAttributes])),a[M.UrlTemplatizationRulesGroups]&&(a[M.UrlTemplatizationRulesGroups]=(n=a[M.UrlTemplatizationRulesGroups],n?.length?n.map(e=>{const t=e.filterK8sWorkloadKind,a=e.filterK8sWorkloadName;return e.workloadFilters?.length||!t&&!a?e:{...e,workloadFilters:[{kind:t,name:a||void 0}]}}):n));const s=new Set((t?.fields||[]).filter(e=>e.componentType===H.SourceScopes).map(e=>e.name));return void 0!==a[M.Scopes]&&s.add(M.Scopes),s.forEach(e=>{const t=e;a[t]=Le(a[t])}),a},Xt="All row fields are required",Jt="At least one row is required",Zt=(e,t)=>!!e&&t.every(t=>{const a=e[t];return Array.isArray(a)?a.length>0:!("string"==typeof(r=a)?!r.trim():K(r));var r}),ea=({children:t,sourceOptions:r=[],namespaceOptions:n=[]})=>{const[i,l]=o(null),c=U(jt),d=s(e=>{c.resetFormData(),c.handleErrorChange(void 0,void 0,{}),e?.type&&c.handleFormChange("type",e.type),l(e)},[]),m=s((e,t)=>{const a=t??(r=e.type,k.find(e=>e.type===r)??null);var r;c.resetFormData((({type:e,name:t,notes:a,disabled:r,signals:n,fields:s},o)=>({type:e,name:t||"",notes:a||"",disabled:!!r,signals:n??[],fields:Qt(s,o)}))(e,a)),c.handleErrorChange(void 0,void 0,{}),l(a)},[]),S=s(()=>{if(!i)return{errorMessage:"No action type selected",preparedFormData:F(jt)};const e=((e,t)=>{const a=F(e),r=a.fields||{},n=r[M.UrlTemplatizationRulesGroups];n?.length&&(r[M.UrlTemplatizationRulesGroups]=n.map(e=>({...e,templatizationRules:(e.templatizationRules||[]).filter(e=>!!e.template?.trim())})));const s=r[M.AttributeNamesToDelete];s?.length&&(r[M.AttributeNamesToDelete]=s.filter(e=>!!e?.trim()));const o=r[M.Renames];if(o){const e=Array.isArray(o)?o.map(e=>[e?.key??"",e?.value??""]):Object.entries(o);r[M.Renames]=Object.fromEntries(e.filter(([e,t])=>!!e?.trim()&&!!t?.trim()))}const i=new Set((t?.fields||[]).filter(e=>e.componentType===H.SourceScopes).map(e=>e.name));void 0!==r[M.Scopes]&&i.add(M.Scopes),i.forEach(e=>{const t=r[e];void 0!==t&&(r[e]=be(t)?null:t)});const l=r[M.ExtractAttribute];return l?.extractions?.length&&(r[M.ExtractAttribute]={extractions:l.extractions.map(e=>{const t=e,a=t.method||(t.regex?.trim()?"regex":"preset"),r=t.targetAttributeName?.trim()||"";if("regex"===a)return{targetAttributeName:r,lookupKey:"",regex:t.regex?.trim()||""};const n={targetAttributeName:r,lookupKey:t.lookupKey?.trim()||"",regex:""};return t.dataFormat&&(n.dataFormat=t.dataFormat),n}).filter(e=>!!(e.targetAttributeName||e.lookupKey||e.dataFormat||e.regex))}),a.fields=r,a})(c.formData,i),t={};return K(e.signals)&&(t.signals=u.FIELD_IS_REQUIRED),i.type&&Object.assign(t,((e,t,a)=>{const r={},n=t.fields||{},s=a.fields||{};switch(e){case x.K8sAttributes:{const e=!(n[M.CollectContainerAttributes]||n[M.CollectReplicaSetAttributes]||n[M.CollectWorkloadId]||n[M.CollectClusterId]),t=!n[M.LabelsAttributes]?.length,a=!n[M.AnnotationsAttributes]?.length;e&&t&&a&&(r[M.CollectContainerAttributes]="Enable at least one option or add a label/annotation row");const s=n[M.LabelsAttributes];s?.some(e=>!Zt(e,["labelKey","attributeKey","fromSources"]))&&(r[M.LabelsAttributes]=Xt);const o=n[M.AnnotationsAttributes];o?.some(e=>!Zt(e,["annotationKey","attributeKey","fromSources"]))&&(r[M.AnnotationsAttributes]=Xt);break}case x.AddClusterInfo:{const e=n[M.ClusterAttributes];e?.length?e.some(e=>!Zt(e,["attributeName","attributeStringValue"]))&&(r[M.ClusterAttributes]=Xt):r[M.ClusterAttributes]=Jt;break}case x.DeleteAttributes:{const e=s[M.AttributeNamesToDelete]||[],t=n[M.AttributeNamesToDelete]||[];t.length?e.length>t.length&&(r[M.AttributeNamesToDelete]=Xt):r[M.AttributeNamesToDelete]=e.length?Xt:Jt;break}case x.RenameAttributes:{const e=Object.entries(s[M.Renames]||{}),t=Object.entries(n[M.Renames]||{}),a=e.some(([e,t])=>!e?.trim()||!t?.trim());t.length?a&&(r[M.Renames]=Xt):r[M.Renames]=e.length?Xt:Jt;break}case x.PiiMasking:{const e=n[M.PiiCategories];e?.length||(r[M.PiiCategories]="Select at least one attribute to mask");break}case x.URLTemplatization:{const e=n[M.UrlTemplatizationRulesGroups];(!e?.length||e.some(e=>!e.templatizationRules?.length))&&(r[M.UrlTemplatizationRulesGroups]="Each rule group needs at least one non-blank template");break}case x.ExtractAttribute:{const e=n[M.ExtractAttribute]?.extractions||[],t=s[M.ExtractAttribute]?.extractions||[];if(e.length)if(e.some(e=>{if(!e.targetAttributeName?.trim())return!0;const t=!!e.regex?.trim(),a=!!e.lookupKey?.trim();return a!==!!e.dataFormat||t===a}))r[M.ExtractAttribute]="Each row needs a target attribute name and either a regex or both lookup key and data format";else{const t=new Set;e.some(e=>{const a=e.targetAttributeName?.trim()||"";return!!t.has(a)||(t.add(a),!1)})&&(r[M.ExtractAttribute]="Each new span attribute name must be unique")}else r[M.ExtractAttribute]=t.length?Xt:Jt;break}}return r})(i.type,e,c.formData)),c.handleErrorChange(void 0,void 0,t),{errorMessage:Object.keys(t).length>0?"Invalid form values":void 0,preparedFormData:e}},[c,i]),p=a(()=>({selectedOption:i,onSelectOption:d,loadAction:m,genericForm:c,validateFormData:S,sourceOptions:r,namespaceOptions:n}),[i,d,m,c,S,r,n]);return e(qt.Provider,{value:p,children:t})},ta=()=>{const e=r(qt);if(!e)throw new Error("useActionFormContext must be used within an ActionFormContextProvider");return e},aa={provider:"",permission:"",customCapabilities:{},authMethod:"",setupMethod:"",accountId:"",credentials:{},accessToken:"",secretId:"",name:""},ra=n(null),na=({children:t})=>{const{connectionsApi:r}=Wt(),{items:n}=r.useCloudConnectorProviders(),o=U(aa),i=s(()=>{const e=F(o.formData);return e.provider?e.permission?{errorMessage:void 0,preparedFormData:e}:{errorMessage:"Please select a permission level",preparedFormData:e}:{errorMessage:"Please select a provider",preparedFormData:e}},[o]),l=a(()=>({providers:n,genericForm:o,validateFormData:i}),[n,o,i]);return e(ra.Provider,{value:l,children:t})},sa=()=>{const e=r(ra);if(!e)throw new Error("useCloudConnectorFormContext must be used within a CloudConnectorFormContextProvider");return e},oa={name:""},ia=n(null),la=({children:t,defaultExcludeName:r=""})=>{const{dataStreams:n}=y(),[i,c]=o(void 0),[d,m]=o(r),[S,p]=o(void 0),[E,T]=o(null),I=l(null),f=U(oa),_=s(e=>{f.resetFormData({name:e}),f.handleErrorChange(void 0,void 0,{}),c(void 0),m(e),p(e),T(null),I.current=null},[]),h=s(()=>{const e=F(f.formData),t=(e=>{const t={};return e.name?$(e.name)||(t.name=u.ILLEGAL_K8S_LABEL):t.name=u.FIELD_IS_REQUIRED,t})(e);f.handleErrorChange(void 0,void 0,t);const a=Object.keys(t).length>0?u.REQUIRED_FIELDS:void 0;return c(a),{errorMessage:a,preparedFormData:e}},[f]),g=s(async e=>{const{errorMessage:t,preparedFormData:a}=h();if(t)return;const r=n.find(e=>e.name===a.name&&e.name!==d);if(r)return I.current=e,void T({preparedFormData:a,existingName:r.name,editingName:S});await e(a)},[h,n,d,S]),N=s(async()=>{const e=I.current,t=E?.preparedFormData;I.current=null,T(null),e&&t&&await e(t)},[E]),v=s(()=>{I.current=null,T(null)},[]),A=a(()=>({genericForm:f,loadDataStream:_,editingName:S,validateFormData:h,requestSubmit:g,pendingMerge:E,confirmMerge:N,cancelMerge:v,errorMessage:i,excludeName:d,setExcludeName:m}),[f,_,S,h,g,E,N,v,i,d]);return e(ia.Provider,{value:A,children:t})},ca=()=>{const e=r(ia);if(!e)throw new Error("useDataStreamFormContext must be used within a DataStreamFormContextProvider");return e},da={type:"",name:"",currentStreamName:"",disabled:!1,exportedSignals:{logs:!1,metrics:!1,traces:!1,profiles:!1},fields:[]},ua={activeForm:null,onChangeActiveForm:()=>{},loadDestination:()=>{},genericForm:void 0,validateFormData:()=>({isOk:!1,preparedFormData:F(da)}),unsavedDestinations:[],thisUnsavedDestination:void 0,setUnsavedDestinations:()=>{},addUnsavedDestination:()=>{},updateUnsavedDestination:()=>{},deleteUnsavedDestination:()=>{}},ma=n(ua),Sa=e=>e.filter(e=>!!e).map(e=>{const{name:t,componentType:a,componentProperties:r,displayName:n,initialValue:s,renderCondition:o}=e,i=a===H.Dropdown,l=W(r,{});return{componentType:a,renderCondition:o,name:t,title:n,value:s,placeholder:l.placeholder||(i?"Select an option":void 0),options:i&&Array.isArray(l.values)?l.values.map(e=>({id:e,label:e})):void 0,...l}}),pa=({children:t})=>{const{selectedStreamName:r}=y(),{items:n}=Wt().destinationsApi.useDestinations(),[l,c]=o(null),[d,m]=o(ua.unsavedDestinations),S=a(()=>"number"==typeof l?.unsavedIdx?d[l.unsavedIdx]:void 0,[l,d]),p=s((e,t)=>{l&&(m(t=>[...t,{...e,option:l.option}]),c(t?e=>e?{...e,listType:V.UNSAVED,unsavedIdx:d.length}:null:null))},[l,d.length]),E=s((e,t,a)=>{l&&(m(a=>a.map((a,r)=>r===e?{...a,...t,option:l.option}:a)),c(a?e=>e?{...e,listType:V.UNSAVED}:null:null))},[l]),T=s(e=>{m(t=>t.filter((t,a)=>a!==e)),c(null)},[]),I=U({...da,currentStreamName:r});i(()=>{if(!l)return;if(S)return void I.resetFormData({...S.formData});if(l.listType===V.EXISTS&&l.option.id){const e=n.find(e=>e.id===l.option.id);if(e)return void I.resetFormData({type:e.destinationType.type,name:e.name||e.destinationType.displayName,currentStreamName:r,disabled:!!e.disabled,exportedSignals:{logs:!!e.exportedSignals?.logs,metrics:!!e.exportedSignals?.metrics,traces:!!e.exportedSignals?.traces,profiles:!!e.exportedSignals?.profiles},fields:l.dynamicFields.map(e=>({key:e.name,value:e.value}))})}const e=Y(l.option.supportedSignals);I.resetFormData({type:l.option.type,name:l.option.displayName,currentStreamName:r,disabled:!1,exportedSignals:{logs:e.includes(B.Logs),metrics:e.includes(B.Metrics),traces:e.includes(B.Traces),profiles:e.includes(B.Profiles)},fields:l.dynamicFields.map(e=>({key:e.name,value:e.value}))})},[l,S]);const f=s(e=>{I.resetFormData(),I.handleErrorChange(void 0,void 0,{}),c(e?{...e,dynamicFields:e.option?.fields?Sa(e.option.fields):[]}:null)},[]),_=s((e,t)=>{let a;for(const r of t){const t=r.items.find(t=>t.type===e.destinationType.type);if(t){a=t;break}}const r=W(e.fields,{}),n={id:e.id,type:e.destinationType.type,displayName:e.name||e.destinationType.displayName,selected:!0,testConnectionSupported:a?.testConnectionSupported??!1,supportedSignals:a?.supportedSignals??e.destinationType.supportedSignals,fields:a?a.fields.map(e=>({...e,initialValue:r[e.name]??e.initialValue})):[]},s=Sa(n.fields);c({listType:V.EXISTS,option:n,dynamicFields:s})},[]),h=s(()=>{const e=F(I.formData),t={};return l?.dynamicFields.forEach(({name:a,required:r})=>{if(r){const r=e.fields.find(e=>e.key===a)?.value;K(r)&&(t[a]=u.FIELD_IS_REQUIRED)}}),j(e.exportedSignals).length||(t.exportedSignals=u.FIELD_IS_REQUIRED),I.handleErrorChange(void 0,void 0,t),{errorMessage:0===Object.keys(t).length?void 0:"Invalid form values",preparedFormData:e}},[I,l]);return e(ma.Provider,{value:{activeForm:l,onChangeActiveForm:f,loadDestination:_,genericForm:I,validateFormData:h,unsavedDestinations:d,thisUnsavedDestination:S,setUnsavedDestinations:m,addUnsavedDestination:p,updateUnsavedDestination:E,deleteUnsavedDestination:T},children:t})},Ea=()=>r(ma),Ta="http.response.status_code",Ia="rpc.grpc.status_code",ya="http.status_code",fa=(e,t)=>{switch(e){case Ta:case ya:return t;case Ia:return`gRPC ${t}`;default:return t}},_a=({operationName:e,identityDimensions:t})=>{const a=e||"",r=t??[];return r.length?`${a} · ${r.map(e=>fa(e.key,e.value)).join(" · ")}`:a},ha=e=>{const t=e.indexOf("\t"),a=t>=0?e.slice(0,t):"",r=t>=0?e.slice(t+1):e,{operationName:n,identityDimensions:s}=ga(r),o=_a({operationName:n,identityDimensions:s});return a?`${a} ${o}`:o},ga=e=>{const t=e.indexOf(" [");if(t<0)return{operationName:e,identityDimensions:[]};const a=e.slice(0,t),r=[];let n=e.slice(t+1);for(;n.startsWith("[");){const e=n.indexOf("="),t=n.indexOf("]");if(e<0||t<0||e>t)break;r.push({key:n.slice(1,e),value:n.slice(e+1,t)}),n=n.slice(t+1)}return{operationName:a,identityDimensions:r}},Na=e=>{const t=`${e.namespace}/${e.service}`,a=_a(e);return a?`${t} · ${a}`:t},va=({operationName:a,identityDimensions:r,tagVariant:n=Q.Blue,fallback:s="-"})=>{const o=r??[];return t(q,{$gap:6,$alignItems:"center",children:[e(z,{label:a||s,variant:n}),o.map(t=>e(X,{text:t.key,children:e(z,{label:fa(t.key,t.value)})},`${t.key}=${t.value}`))]})};var Aa,Ra;(e=>{e.Global="global",e.Service="service",e.Transaction="transaction"})(Aa||(Aa={})),(e=>{e.Low="low",e.Medium="medium",e.High="high",e.Critical="critical"})(Ra||(Ra={}));const Oa=e=>e.scope===Aa.Global,Ca=n(null),Da=(e,t)=>`${e}/${t}`,Ga={scopeType:Aa.Service,selectedKey:""},ba=({children:t,services:r,transactions:n,existingScopeKeys:l,onSubmit:c})=>{const d=U(Ga),[u,m]=o(!1),{scopeType:S,selectedKey:p}=d.formData,E=a(()=>{const e=new Set,t=[];for(const a of r){if(!a.namespace||!a.service)continue;const r=Da(a.namespace,a.service);e.has(r)||(e.add(r),t.push({id:r,label:r}))}return t.sort((e,t)=>e.label.localeCompare(t.label))},[r]),T=a(()=>n.filter(e=>!!e.id).map(e=>({id:e.id,label:Na(e)})).sort((e,t)=>e.label.localeCompare(t.label)),[n]),I=S===Aa.Service?E:T;i(()=>{const e=I.find(e=>!l.includes(e.id))?.id||I[0]?.id||"";p&&I.some(e=>e.id===p)||d.handleFormChange("selectedKey",e)},[I,l,p,d]);const y=!!p&&!u,f=s(async()=>{if(!y)return;const e=I.find(e=>e.id===p);m(!0);try{await c({scope:S,scopeKey:p,name:e?.label||p})}finally{m(!1)}},[y,I,p,S,c]),_=a(()=>({services:r,transactions:n,existingScopeKeys:l,genericForm:d,serviceOptions:E,transactionOptions:T,options:I,canCreate:y,submitting:u,handleSubmit:f}),[r,n,l,d,E,T,I,y,u,f]);return e(Ca.Provider,{value:_,children:t})},La=()=>{const e=r(Ca);if(!e)throw new Error("useDetectionOverrideFormContext must be used within a DetectionOverrideFormContextProvider");return e},wa=[{id:Ra.Low,label:J},{id:Ra.Medium,label:Z},{id:Ra.High,label:ee},{id:Ra.Critical,label:te}],Pa={[Ra.Low]:20,[Ra.Medium]:40,[Ra.High]:60,[Ra.Critical]:75},Ua=n(null),Fa=({children:t,policy:r,onSave:n,onDelete:l})=>{const c=U(r),[d,u]=o(!1),[m,S]=o(!1);i(()=>{c.resetFormData(r)},[r]);const p=c.isFormDirty,E=d||m,T=p&&!E,I=p&&!E,y=s(e=>{const t=e[0]||Ra.Medium,a=c.formData;c.handleFormChange(void 0,void 0,{...a,riskLevel:t,fireAtScore:Pa[t],summary:Oa(a)?a.summary:ae(Pa[t],a.signalWeightOverrideCount)})},[c]),f=s(e=>{const t=c.formData;c.handleFormChange(void 0,void 0,{...t,signalWeights:e.signalWeights,enricherLists:e.enricherLists,signalWeightOverrideCount:e.overrideCount,summary:Oa(t)?t.summary:ae(t.fireAtScore,e.overrideCount)})},[c]),_=s(async()=>{if(T){u(!0);try{await n(c.formData)}finally{u(!1)}}},[c.formData,T,n]),h=s(()=>{c.resetFormData(r)},[c,r]),g=s(async()=>{if(l){S(!0);try{await l()}finally{S(!1)}}},[l]),N=a(()=>({policy:r,genericForm:c,isDirty:p,canUpdate:T,canDiscard:I,isSaving:d,isDeleting:m,handleSave:_,handleDiscard:h,handleDelete:g,handleRiskLevelChange:y,handleSignalWeightsChange:f}),[r,c,p,T,I,d,m,_,h,g,y,f]);return e(Ua.Provider,{value:N,children:t})},ka=()=>{const e=r(Ua);if(!e)throw new Error("useDetectionPolicyFormContext must be used within a DetectionPolicyFormContextProvider");return e},Ma=()=>({name:"",left:{service:"",span:"",attr:"",extract:""},right:{service:"",span:"",attr:"",extract:""},relation:ne.Equals,severity:re.Critical,why:""}),Ha=e=>({name:e.name,left:{service:e.left.service,span:e.left.span,attr:e.left.attr,extract:e.left.extract??""},right:{service:e.right.service,span:e.right.span,attr:e.right.attr,extract:e.right.extract??""},relation:e.relation,severity:e.severity,why:e.why??""}),xa=(e,t)=>{const a=e.rules.map(e=>({key:e.key,label:e.label,allowlistCount:e.allowlist?.length??0,correlationCount:e.correlations?.length??0,isAuto:e.origin===Se}));return{id:(r=e.scope,n=e.scopeKey,`${r}::${n}`),scope:e.scope,scopeKey:e.scopeKey,title:t||e.scopeKey,rules:a,mode:Va(e),hasAuto:a.some(e=>e.isAuto)};var r,n},Ka=(e,t)=>e.rules.find(e=>e.key===t)?.allowlist?.filter(Boolean)??[],$a=(e,t=oe)=>(e.rules.find(e=>e.key===t)?.correlations??[]).map(Ha),Va=e=>e.rules[0]?.mode||le.Suggest,Ya=(...e)=>{const t=new Set,a=[];for(const r of e)for(const e of r??[])e&&!t.has(e)&&(t.add(e),a.push(e));return a},Ba=e=>{const t=e.name.trim(),a={service:e.left.service.trim(),span:e.left.span.trim(),attr:e.left.attr.trim(),extract:e.left.extract?.trim()||void 0},r={service:e.right.service.trim(),span:e.right.span.trim(),attr:e.right.attr.trim(),extract:e.right.extract?.trim()||void 0};return t&&a.service&&a.span&&a.attr&&r.service&&r.span&&r.attr?{name:t,left:a,right:r,relation:e.relation||ne.Equals,severity:e.severity||re.Critical,why:e.why?.trim()||void 0}:null},Wa=e=>!!Ba(e),ja=[""],qa={scopeType:ie.Service,mode:le.Enforce,callers:[],callees:[],egress:[],transactions:[],extraCallers:ja,extraCallees:ja,extraEgress:ja,correlations:[Ma()]},za=e=>{const t=e.scope===ie.Transaction;return{scopeType:t?ie.Transaction:ie.Service,mode:Va(e),callers:Ka(e,ce),callees:Ka(e,de),egress:Ka(e,ue),transactions:Ka(e,me),extraCallers:ja,extraCallees:ja,extraEgress:ja,correlations:t?$a(e):[Ma()]}},Qa=(e,t)=>({scopeType:t,mode:le.Enforce,callers:e?.callers??[],callees:e?.callees??[],egress:e?.egress??[],transactions:e?.transactions??[],extraCallers:ja,extraCallees:ja,extraEgress:ja,correlations:[Ma()]}),Xa=e=>e.map(e=>e.trim()).filter(Boolean),Ja=n(null),Za=(e,t,a)=>a?Array.from(new Set([...e,t])):e.filter(e=>e!==t),er=({children:t,profile:r,profileLoading:n=!1,transactions:l=[],guardrail:c=null,namespace:d="",service:u="",transactionId:m="",initialScopeType:S=ie.Service,onTransactionChange:p,hideActions:E=!1,onSubmit:T,onDelete:I})=>{const y=!!c,f=U({...qa,scopeType:S}),[_,h]=o(!1);i(()=>{c?f.resetFormData(za(c)):f.resetFormData(Qa(r,f.formData.scopeType))},[c,r]);const g=a(()=>c&&c.scope===ie.Service?(e=>{const t=e.indexOf("/");return t<0?{namespace:"",service:e}:{namespace:e.slice(0,t),service:e.slice(t+1)}})(c.scopeKey):null,[c]),N=y?g?.namespace||"":d,v=y?g?.service||"":u,A=y&&c?.scope===ie.Transaction?c.scopeKey:m,{scopeType:R,mode:O,callers:C,callees:D,egress:G,transactions:b,extraCallers:L,extraCallees:w,extraEgress:P,correlations:F}=f.formData,k=a(()=>c?Ya(Ka(c,ce),r?.callers):r?.callers??[],[c,r?.callers]),M=a(()=>c?Ya(Ka(c,de),r?.callees):r?.callees??[],[c,r?.callees]),H=a(()=>c?Ya(Ka(c,ue),r?.egress):r?.egress??[],[c,r?.egress]),x=a(()=>c?Ya(Ka(c,me),r?.transactions):r?.transactions??[],[c,r?.transactions]),K=a(()=>Xa(L),[L]),$=a(()=>Xa(w),[w]),V=a(()=>Xa(P),[P]),Y=a(()=>c?{callers:k.length>0||K.length>0||c.rules.some(e=>e.key===ce),callees:M.length>0||$.length>0||c.rules.some(e=>e.key===de),egress:H.length>0||V.length>0||c.rules.some(e=>e.key===ue),transactions:x.length>0||c.rules.some(e=>e.key===me)}:{callers:k.length>0||K.length>0,callees:M.length>0||$.length>0,egress:H.length>0||V.length>0,transactions:(r?.transactions?.length??0)>0},[c,r,k,M,H,x,K,$,V]),B=f.isFormDirty,W=!!N&&!!v,j=!!A,q=F.some(Wa),z=!y&&!_&&(R===ie.Service?W:j&&q),Q=y&&!_&&B&&(R===ie.Service||q),X=y&&B&&!_,J=y&&!!I,Z=s(()=>{y&&f.resetFormData(c?za(c):Qa(r,R))},[y,c,r,R,f]),ee=s(e=>f.handleFormChange("mode",e),[f]),te=s(e=>{y||f.handleFormChange("scopeType",e)},[f,y]),ae=s(e=>f.handleFormChange("correlations",e),[f]),re=s(e=>f.handleFormChange("extraCallers",e),[f]),ne=s(e=>f.handleFormChange("extraCallees",e),[f]),le=s(e=>f.handleFormChange("extraEgress",e),[f]),Se=s((e,t)=>f.handleFormChange("callers",Za(f.formData.callers,e,t)),[f]),pe=s((e,t)=>f.handleFormChange("callees",Za(f.formData.callees,e,t)),[f]),Ee=s((e,t)=>f.handleFormChange("egress",Za(f.formData.egress,e,t)),[f]),Te=s((e,t)=>f.handleFormChange("transactions",Za(f.formData.transactions,e,t)),[f]),Ie=s(e=>f.handleFormChange("callers",e?[...k]:[]),[f,k]),ye=s(e=>f.handleFormChange("callees",e?[...M]:[]),[f,M]),fe=s(e=>f.handleFormChange("egress",e?[...H]:[]),[f,H]),_e=s(e=>f.handleFormChange("transactions",e?[...x]:[]),[f,x]),he=s(()=>{if(R===ie.Transaction){const e=c?.rules.find(e=>e.key===oe)?.origin;return(e=>{const t=e.correlations.map(Ba).filter(e=>!!e);return e.scopeKey.trim()&&t.length?{scope:ie.Transaction,scopeKey:e.scopeKey.trim(),rules:[{key:oe,label:se,mode:e.mode,correlations:t,origin:e.origin||void 0}]}:null})({scopeKey:A,mode:O,correlations:F,origin:e})}return W?(e=>{const t=e.governed??{},a=e.origins??{},r=[{key:ce,label:"Allowed callers",allowlist:e.callers,keep:e.callers.length>0||!!t.callers},{key:de,label:"Allowed callees",allowlist:e.callees,keep:e.callees.length>0||!!t.callees},{key:ue,label:"Allowed egress",allowlist:e.egress,keep:e.egress.length>0||!!t.egress},{key:me,label:"Allowed transactions",allowlist:e.transactions,keep:e.transactions.length>0||!!t.transactions}].filter(e=>e.keep).map(t=>({key:t.key,label:t.label,allowlist:t.allowlist,mode:e.mode,origin:a[t.key]||void 0}));return{scope:e.scope,scopeKey:e.scopeKey,rules:r}})({scope:ie.Service,scopeKey:y&&c?c.scopeKey:`${N}/${v}`,mode:O,callers:Ya(C,K),callees:Ya(D,$),egress:Ya(G,V),transactions:b,governed:Y,origins:c?Object.fromEntries(c.rules.map(e=>[e.key,e.origin])):void 0}):null},[R,A,O,F,W,y,c,N,v,C,D,G,b,K,$,V,Y]),ge=s(async()=>{if(!(y?Q:z))return;const e=he();if(e){h(!0);try{await T(e)}finally{h(!1)}}},[y,Q,z,he,T]),Ne=s(async()=>{if(I&&c&&!_){h(!0);try{await I(c.scopeKey,c.scope)}finally{h(!1)}}},[I,c,_]),ve=a(()=>({profile:r,profileLoading:n,guardrail:c,isEdit:y,namespace:N,service:v,transactionId:A,transactions:l,onTransactionChange:p,genericForm:f,isDirty:B,isSubmitting:_,canCreate:z,canUpdate:Q,canDiscard:X,canDelete:J,hideActions:E,handleDiscard:Z,handleSubmit:ge,handleDelete:Ne,setMode:ee,setScopeType:te,setCorrelations:ae,callerItems:k,calleeItems:M,egressItems:H,transactionItems:x,setExtraCallers:re,setExtraCallees:ne,setExtraEgress:le,toggleCaller:Se,toggleCallee:pe,toggleEgress:Ee,toggleTransaction:Te,toggleAllCallers:Ie,toggleAllCallees:ye,toggleAllEgress:fe,toggleAllTransactions:_e}),[r,n,c,y,N,v,A,l,p,f,B,_,z,Q,X,J,E,Z,ge,Ne,ee,te,ae,k,M,H,x,re,ne,le,Se,pe,Ee,Te,Ie,ye,fe,_e]);return e(Ja.Provider,{value:ve,children:t})},tr=()=>{const e=r(Ja);if(!e)throw new Error("useGuardrailFormContext must be used within a GuardrailFormContextProvider");return e};var ar;(e=>{e.Minutes="minutes",e.Hours="hours",e.Days="days"})(ar||(ar={}));const rr=e=>e.scope===ie.Global,nr=[pe.D1_call_edges,pe.D2_egress,pe.D3_latency,pe.D5_libraries,pe.D7_db_access,pe.D8_payload_size],sr=n(null),or=(e,t)=>`${e}/${t}`,ir=({children:t,services:r,transactions:n,existingOverrides:l,initialClass:c,onSubmit:d})=>{const u=U((e=>({deviationClass:e||nr[0],scopeType:ie.Service,selectedKey:""}))(c)),[m,S]=o(!1),{deviationClass:p,scopeType:E,selectedKey:T}=u.formData;i(()=>{c&&u.handleFormChange("deviationClass",c)},[c,u]);const I=a(()=>l.filter(e=>e.class===p).map(e=>e.scopeKey),[l,p]),y=a(()=>{const e=new Set,t=[];for(const a of r){if(!a.namespace||!a.service)continue;const r=or(a.namespace,a.service);e.has(r)||(e.add(r),t.push({id:r,label:r}))}return t.sort((e,t)=>e.label.localeCompare(t.label))},[r]),f=a(()=>n.filter(e=>!!e.id).map(e=>({id:String(e.id),label:Na(e)})).sort((e,t)=>e.label.localeCompare(t.label)),[n]),_=E===ie.Service?y:f;i(()=>{const e=_.find(e=>!I.includes(e.id))?.id||_[0]?.id||"";T&&_.some(e=>e.id===T)||u.handleFormChange("selectedKey",e)},[_,I,T,u]);const h=!!p&&!!T&&!m,g=s(async()=>{if(!h)return;const e=_.find(e=>e.id===T);S(!0);try{await d({class:p,scope:E,scopeKey:T,name:e?.label||T})}finally{S(!1)}},[h,_,T,p,E,d]),N=a(()=>({services:r,transactions:n,existingOverrides:l,genericForm:u,options:_,canCreate:h,submitting:m,handleSubmit:g}),[r,n,l,u,_,h,m,g]);return e(sr.Provider,{value:N,children:t})},lr=()=>{const e=r(sr);if(!e)throw new Error("useLearningOverrideFormContext must be used within a LearningOverrideFormContextProvider");return e};let cr=0;const dr=()=>"cond-"+ ++cr,ur=(e,t,a)=>`${e}:${t||"global"}:${a}`,mr=(e,t)=>{switch(t){case ar.Days:return Math.max(0,Math.round(24*e*60));case ar.Hours:return Math.max(0,Math.round(60*e));case ar.Minutes:default:return Math.max(0,Math.round(e))}},Sr=e=>e<=0?{value:0,unit:ar.Minutes}:e%1440==0?{value:e/1440,unit:ar.Days}:e%60==0?{value:e/60,unit:ar.Hours}:{value:e,unit:ar.Minutes},pr=e=>{const{value:t,unit:a}=Sr(e);return a===ar.Days?7===t?"1w":`${t}d`:a===ar.Hours?`${t}h`:`${t}m`},Er=e=>{const{value:t,unit:a}=Sr(e);return a===ar.Days?1===t?"1 day":`${t} days`:a===ar.Hours?1===t?"1 hour":`${t} hours`:1===t?"1 minute":`${t} minutes`},Tr=e=>{switch(e.type){case Te.StableObservations:return`Unchanged for ${e.value} observations`;case Te.StableDuration:return`unchanged for ${pr(mr(e.value,e.durationUnit))}`;case Te.MinObservations:return`Min ${e.value} observations`;case Te.MinDuration:return`min ${pr(mr(e.value,e.durationUnit))}`;default:return""}},Ir=e=>{switch(e.type){case Te.StableObservations:return`unchanged for ${e.value} observations`;case Te.StableDuration:return`unchanged for ${Er(mr(e.value,e.durationUnit))}`;case Te.MinObservations:return`at least ${e.value} observations`;case Te.MinDuration:return`at least ${Er(mr(e.value,e.durationUnit))}`;default:return""}},yr=(e,t,a)=>t.length?((e,t,a)=>{if(!e.length)return"";const r=e.map((e,t)=>0===t?e.charAt(0).toUpperCase()+e.slice(1):0===t?e:e.charAt(0).toLowerCase()+e.slice(1));if(1===r.length)return r[0];const n=t===ye.All?" AND ":t===ye.KOf?` (${Ee} ${a??1}) `:" OR ";return r.join(n)})(t.map(Tr),e,a):"Falls back to count-only default",fr=e=>{const{value:t,durationUnit:a}=(e=>{switch(e.type){case Te.StableObservations:return{value:e.stableObservations??0,durationUnit:ar.Hours};case Te.MinObservations:return{value:e.minObservations??0,durationUnit:ar.Hours};case Te.StableDuration:{const t=e.stableMinutes??0,a=Sr(t);return{value:a.value,durationUnit:a.unit}}case Te.MinDuration:{const t=e.minDurationMinutes??0,a=Sr(t);return{value:a.value,durationUnit:a.unit}}default:return{value:0,durationUnit:ar.Hours}}})(e);return{key:dr(),type:e.type,value:t,durationUnit:a}},_r=e=>{const t=mr(e.value,e.durationUnit);switch(e.type){case Te.StableObservations:return{type:e.type,minObservations:null,minDurationMinutes:null,stableObservations:e.value,stableMinutes:null};case Te.MinObservations:return{type:e.type,minObservations:e.value,minDurationMinutes:null,stableObservations:null,stableMinutes:null};case Te.StableDuration:return{type:e.type,minObservations:null,minDurationMinutes:null,stableObservations:null,stableMinutes:t};case Te.MinDuration:return{type:e.type,minObservations:null,minDurationMinutes:t,stableObservations:null,stableMinutes:null};default:return{type:e.type}}},hr=(e=Te.StableObservations)=>({key:dr(),type:e,value:Ie(e)?1:100,durationUnit:ar.Hours}),gr=e=>{const t=(e.conditions??[]).map(fr),a=e.mode,r=e.minMatches??null,n=e.scope,s=fe[e.class],o=n===ie.Global?s:`${s} · ${e.scopeKey}`;return{id:ur(n,e.scopeKey,e.class),name:o,class:e.class,mode:a,conditions:t,minMatches:r,scope:n,scopeKey:e.scopeKey,summary:yr(a,t,r)}},Nr=(e,t)=>{if(!t.length)return e;const a=new Map(t.map(e=>[String(e.id),e]));return e.map(e=>{if(e.scope!==ie.Transaction)return e;const t=a.get(e.scopeKey);return t?{...e,name:`${fe[e.class]} · ${Na(t)}`}:e})},vr=e=>({class:e.class,mode:e.mode,conditions:e.conditions.map(_r),minMatches:e.mode===ye.KOf?e.minMatches??1:null,scope:e.scope,scopeKey:e.scopeKey}),Ar=({scope:e,scopeKey:t,source:a,displayName:r})=>{const n=a.conditions.map(e=>({...e,key:dr()})),s=r||t;return{id:ur(e,t,a.class),name:`${fe[a.class]} · ${s}`,class:a.class,mode:a.mode,conditions:n,minMatches:a.minMatches,scope:e,scopeKey:t,summary:yr(a.mode,n,a.minMatches)}},Rr=e=>{const t=[hr()],a=ye.Any;return{id:ur(ie.Global,"",e),name:fe[e],class:e,mode:a,conditions:t,minMatches:null,scope:ie.Global,scopeKey:"",summary:yr(a,t,null)}},Or=e=>({...e,summary:yr(e.mode,e.conditions,e.minMatches)}),Cr=n(null),Dr=({children:t,policy:r,onSave:n,onDelete:l})=>{const c=U(r),[d,u]=o(!1),[m,S]=o(!1),p=c.formData,E=!rr(p);i(()=>{c.resetFormData(r)},[r]);const T=c.isFormDirty,I=d||m,y=T&&!I,f=T&&!I,_=a(()=>((e,t,a)=>{if(!t.length)return{parts:["Falls back to the count-only default"],joiner:null};const r=t.map(Ir).map((e,t)=>0===t?e:e.charAt(0).toLowerCase()+e.slice(1));return 1===r.length?{parts:r,joiner:null}:{parts:r,joiner:e===ye.All?"AND":e===ye.KOf?`${Ee} ${a??1}`:"OR"}})(p.mode,p.conditions,p.minMatches),[p.mode,p.conditions,p.minMatches]),h=a(()=>yr(p.mode,p.conditions,p.minMatches),[p.mode,p.conditions,p.minMatches]),g=s(e=>{c.handleFormChange(void 0,void 0,Or({...c.formData,conditions:e(c.formData.conditions)}))},[c]),N=s(e=>{const t=e[0]||ye.Any,a=c.formData;c.handleFormChange(void 0,void 0,Or({...a,mode:t,minMatches:t===ye.KOf?a.minMatches??1:null}))},[c]),v=s((e,t)=>{g(a=>a.map(a=>a.key===e?((e,t)=>{const a=Ie(e.type),r=Ie(t);return a===r?{...e,type:t}:{...e,type:t,value:r?1:100,durationUnit:e.durationUnit||ar.Hours}})(a,t):a))},[g]),A=s((e,t)=>{const a=Number(t);g(t=>t.map(t=>t.key===e?{...t,value:Number.isFinite(a)?a:0}:t))},[g]),R=s((e,t)=>{g(a=>a.map(a=>a.key===e?{...a,durationUnit:t}:a))},[g]),O=s(e=>{g(t=>t.filter(t=>t.key!==e))},[g]),C=s(()=>{g(e=>[...e,hr()])},[g]),D=s(e=>{c.handleFormChange(void 0,void 0,Or({...c.formData,minMatches:Math.max(1,e||1)}))},[c]),G=s(async()=>{if(y){u(!0);try{await n(Or(c.formData))}finally{u(!1)}}},[c.formData,y,n]),b=s(()=>{c.resetFormData(r)},[c,r]),L=s(async()=>{if(l){S(!0);try{await l()}finally{S(!1)}}},[l]),w=a(()=>({policy:r,genericForm:c,isDirty:T,canUpdate:y,canDiscard:f,isOverride:E,isSaving:d,isDeleting:m,promotesWhen:_,currently:h,handleModeChange:N,handleConditionTypeChange:v,handleConditionValueChange:A,handleDurationUnitChange:R,handleRemoveCondition:O,handleAddCondition:C,handleMinMatchesChange:D,handleSave:G,handleDiscard:b,handleDelete:L}),[r,c,T,y,f,E,d,m,_,h,N,v,A,R,O,C,D,G,b,L]);return e(Cr.Provider,{value:w,children:t})},Gr=()=>{const e=r(Cr);if(!e)throw new Error("useLearningPolicyFormContext must be used within a LearningPolicyFormContextProvider");return e},br={examplesPerTransaction:0,exampleSampleIntervalSeconds:0,observationRetentionDays:0,maxResidentTransactions:0,maxBaselineSetMembers:0,flushIntervalSeconds:0,autoTransactionGuardrail:!0,identityDimensions:[..._e]},Lr=e=>e.map(e=>({key:e.key.trim(),enabled:e.enabled})).filter(e=>e.key.length>0),wr=e=>({examplesPerTransaction:e.sampling.examplesPerTransaction,exampleSampleIntervalSeconds:e.sampling.exampleSampleIntervalSeconds,observationRetentionDays:e.retention.observationRetentionDays,maxResidentTransactions:e.capacity.maxResidentTransactions,maxBaselineSetMembers:e.capacity.maxBaselineSetMembers,flushIntervalSeconds:e.writeback.flushIntervalSeconds,autoTransactionGuardrail:e.detection?.autoTransactionGuardrail??!0,identityDimensions:e.identity?.transactionIdentityDimensions?.length?e.identity.transactionIdentityDimensions.map(e=>({key:e.key,enabled:e.enabled})):[..._e]}),Pr=n(null),Ur=({children:t,settings:r,onSave:n})=>{const l=U(br),[c,d]=o(!1),[u,m]=o(!1),S=a(()=>r?JSON.stringify(wr(r)):"",[r]);i(()=>{r&&S&&l.resetFormData(wr(r))},[S]);const p=l.formData,E=!!r&&l.isFormDirty,T=E&&(e=>{const t=e.identityDimensions.filter(e=>e.enabled&&e.key.trim()).length,a=e.identityDimensions.map(e=>e.key.trim()).filter(Boolean),r=new Set(a);return[e.examplesPerTransaction,e.exampleSampleIntervalSeconds,e.observationRetentionDays,e.maxResidentTransactions,e.maxBaselineSetMembers,e.flushIntervalSeconds].every(e=>Number.isFinite(e)&&e>0)&&t<=he&&r.size===a.length})(p)&&!c,I=E&&!c,y=p.identityDimensions.filter(e=>e.enabled&&e.key.trim()).length,f=s(async e=>{if(r){d(!0);try{await n(((e,t)=>({sampling:{examplesPerTransaction:e.examplesPerTransaction,exampleSampleIntervalSeconds:e.exampleSampleIntervalSeconds},retention:{observationRetentionDays:e.observationRetentionDays},capacity:{maxResidentTransactions:e.maxResidentTransactions,maxBaselineSetMembers:e.maxBaselineSetMembers},writeback:{flushIntervalSeconds:e.flushIntervalSeconds},detection:{autoTransactionGuardrail:e.autoTransactionGuardrail},identity:{transactionIdentityDimensions:Lr(e.identityDimensions)},resetTransactions:t||void 0}))(p,e))}finally{d(!1),m(!1)}}},[r,p,n]),_=s(async()=>{r&&T&&(((e,t)=>{const a=wr(t);return r=Lr(e.identityDimensions),n=Lr(a.identityDimensions),!(r.length===n.length&&r.every((e,t)=>e.key===n[t].key&&e.enabled===n[t].enabled));var r,n})(p,r)?m(!0):await f(!1))},[r,T,p,f]),h=s(()=>{r&&I&&l.resetFormData(wr(r))},[r,I,l]),g=s((e,t)=>{l.handleFormChange(void 0,void 0,{...l.formData,identityDimensions:l.formData.identityDimensions.map((a,r)=>r===e?{...a,...t}:a)})},[l]),N=s(e=>{l.handleFormChange(void 0,void 0,{...l.formData,identityDimensions:l.formData.identityDimensions.filter((t,a)=>a!==e)})},[l]),v=s(()=>{const e=l.formData.identityDimensions.filter(e=>e.enabled&&e.key.trim()).length;l.handleFormChange(void 0,void 0,{...l.formData,identityDimensions:[...l.formData.identityDimensions,{key:"",enabled:e<he}]})},[l]),A=a(()=>({settings:r,genericForm:l,isDirty:E,canUpdate:T,canDiscard:I,isSaving:c,enabledDimCount:y,identityConfirmOpen:u,setIdentityConfirmOpen:m,handleSave:_,handleDiscard:h,persist:f,updateDim:g,removeDim:N,addDim:v}),[r,l,E,T,I,c,y,u,_,h,f,g,N,v]);return e(Pr.Provider,{value:A,children:t})},Fr=()=>{const e=r(Pr);if(!e)throw new Error("useSystemSettingsFormContext must be used within a SystemSettingsFormContextProvider");return e},kr={disabled:!1,ruleName:"",notes:"",sourceScopes:we(),workloads:null,instrumentationLibraries:null,payloadCollection:null,codeAttributes:null,headersCollection:null,customInstrumentations:null,networkMetrics:null},Mr=n(null),Hr=({children:t,sourceOptions:r=[],namespaceOptions:n=[]})=>{const[i,l]=o(null),c=U(kr),d=s(e=>{c.resetFormData(),c.handleErrorChange(void 0,void 0,{}),l(e)},[]),u=s((e,t)=>{var a;c.resetFormData((({ruleName:e,notes:t,disabled:a,sourceScopes:r,instrumentationLibraries:n,payloadCollection:s,codeAttributes:o,headersCollection:i,customInstrumentations:l,networkMetrics:c,workloads:d})=>({ruleName:e||"",notes:t||"",disabled:!!a,sourceScopes:Le(r),workloads:d??null,instrumentationLibraries:n??null,payloadCollection:s??null,codeAttributes:o??null,headersCollection:i??null,customInstrumentations:l??null,networkMetrics:c??null}))(e)),c.handleErrorChange(void 0,void 0,{}),l(t??(a=e.type,ge.find(e=>e.type===a)??null))},[]),m=s(()=>{if(!i)return{errorMessage:"No rule type selected",preparedFormData:F(kr)};const e=((e,t)=>{const a=F(e),{workloads:r,...n}=a,s={...n,sourceScopes:be(a.sourceScopes)?null:a.sourceScopes,...r?.length?{workloads:r}:{}};return s.headersCollection?.[Ne.HeaderKeys]?.length&&(s.headersCollection[Ne.HeaderKeys]=s.headersCollection[Ne.HeaderKeys].map(e=>e.trim()).filter(e=>e)),s.customInstrumentations?.[ve.Golang]?.length&&(s.customInstrumentations[ve.Golang]=s.customInstrumentations[ve.Golang].map(e=>new Ae(e.packageName,e.functionName,e.receiverName,e.receiverMethodName)).filter(e=>{return t=e,!!(t.packageName?.trim()||t.functionName?.trim()||t.receiverName?.trim()||t.receiverMethodName?.trim());var t})),s.customInstrumentations?.[ve.Java]?.length&&(s.customInstrumentations[ve.Java]=s.customInstrumentations[ve.Java].map(e=>new Re(e.className,e.methodName)).filter(e=>{return t=e,!(!t.className?.trim()&&!t.methodName?.trim());var t})),s.customInstrumentations?.[ve.Php]?.length&&(s.customInstrumentations[ve.Php]=s.customInstrumentations[ve.Php].map(e=>new Oe(e.className,e.functionName)).filter(e=>{return t=e,!(!t.className?.trim()&&!t.functionName?.trim());var t})),t===Ce.NetworkMetrics&&(s.networkMetrics=!0),s})(c.formData,i.type),t=((e,t)=>{const a={};switch(e){case Ce.CodeAttributes:Object.values(t.codeAttributes||{}).some(e=>null!=e)||(a.codeAttributes="Code attributes are required");break;case Ce.PayloadCollection:Object.values(t.payloadCollection||{}).some(e=>null!=e)||(a.payloadCollection="Payload collection are required");break;case Ce.HeadersCollection:t.headersCollection?.[Ne.HeaderKeys]?.length||(a.headersCollection="Header keys are required");break;case Ce.CustomInstrumentation:{const e=t.customInstrumentations?.[ve.Golang]||[],r=t.customInstrumentations?.[ve.Java]||[],n=t.customInstrumentations?.[ve.Php]||[];if(!e.length&&!r.length&&!n.length){a.customInstrumentations="Custom instrumentation are required";break}const s=e.findIndex(e=>!new Ae(e.packageName,e.functionName,e.receiverName,e.receiverMethodName).Verify());if(-1!==s){a.customInstrumentations=`Golang probe #${s+1} is invalid: provide a package name plus either a function name OR both a receiver name and receiver method name`;break}const o=r.findIndex(e=>!new Re(e.className,e.methodName).Verify());if(-1!==o){a.customInstrumentations=`Java probe #${o+1} is invalid: both class name and method name are required`;break}const i=n.findIndex(e=>!new Oe(e.className,e.functionName).Verify());if(-1!==i){a.customInstrumentations=`PHP probe #${i+1} is invalid: function name is required`;break}break}}return a})(i.type,e);return c.handleErrorChange(void 0,void 0,t),{errorMessage:Object.keys(t).length>0?"Invalid form values":void 0,preparedFormData:e}},[c,i]),S=a(()=>({selectedOption:i,onSelectOption:d,loadRule:u,genericForm:c,validateFormData:m,sourceOptions:r,namespaceOptions:n}),[i,d,u,c,m,r,n]);return e(Mr.Provider,{value:S,children:t})},xr=()=>{const e=r(Mr);if(!e)throw new Error("useRuleFormContext must be used within a RuleFormContextProvider");return e};var Kr;(e=>{e.Create="create",e.View="view",e.EditAutoNoisy="edit-auto-noisy",e.EditAutoCostReduction="edit-auto-cost-reduction",e.EditAutoHighlyRelevant="edit-auto-highly-relevant"})(Kr||(Kr={}));const $r=n(null),Vr=["50","25","10","1"];function Yr(e){const t=String(e);return Vr.includes(t)?t:"custom"}const Br=({category:t,sourceOptions:r=[],namespaceOptions:n=[],children:l})=>{const{formData:c,handleFormChange:d,resetFormData:u}=U(Me(t)),[m,S]=o(null);i(()=>{u(Me(t)),S(null)},[t]);const p=s(e=>{S(null),d(void 0,void 0,{...c,...e})},[c,d]),E=s(()=>{u(Me(t)),S(null)},[t,u]),T=a(()=>({formType:Kr.Create,category:t,formData:c,handleChange:p,resetForm:E,duplicateWarning:m,setDuplicateWarning:S,sourceOptions:r,namespaceOptions:n}),[t,c,p,E,m,r,n]);return e($r.Provider,{value:T,children:l})},Wr=({data:t,defaultEditMode:r,sourceOptions:n=[],namespaceOptions:c=[],children:d})=>{const[u,m]=o(!1),{formData:S,handleFormChange:p,resetFormData:E}=U(void 0),T=l(null),[I,y]=o(null);i(()=>{t!==T.current&&(T.current=t,t&&r?(E(ke(t)),y(null),m(!0)):(m(!1),y(null)))},[t,r]);const f=s(e=>{y(null),p(void 0,void 0,{...S,...e})},[S,p]),_=s(()=>{t&&(E(ke(t)),y(null),m(!0))},[t,E]),h=s(()=>{m(!1),y(null)},[]),g=a(()=>({formType:Kr.View,data:t,isEditing:u,formData:S,handleChange:f,handleEdit:_,handleCancelEdit:h,duplicateWarning:I,setDuplicateWarning:y,sourceOptions:n,namespaceOptions:c}),[t,u,S,f,_,h,I,n,c]);return e($r.Provider,{value:g,children:d})};function jr(e){const[t,r]=o(()=>0===e?"all":"sample"),[n,s]=o(()=>Yr(e)),[l,c]=o(()=>"custom"===Yr(e)?String(e):"");i(()=>{r(0===e?"all":"sample");const t=Yr(e);s(t),c("custom"===t?String(e):"")},[e]);const d=a(()=>"all"===t?0:"custom"===n?Number(l)||0:Number(n),[t,n,l]);return{percentageMode:t,setPercentageMode:r,percentagePreset:n,setPercentagePreset:s,customPercentage:l,setCustomPercentage:c,resolvedPercentage:d}}const qr=({enabled:t,keepPercentage:r,children:n})=>{const[s,l]=o(t),c=jr(r);i(()=>{l(t)},[t]);const d=a(()=>Fe({enabled:s,keepPercentage:c.resolvedPercentage}),[s,c.resolvedPercentage]),u=a(()=>({formType:Kr.EditAutoNoisy,localEnabled:s,setLocalEnabled:l,...c,summary:d}),[s,c,d]);return e($r.Provider,{value:u,children:n})},zr=({enabled:t,dropPercentage:r,children:n})=>{const[s,l]=o(t),c=jr(r);i(()=>{l(t)},[t]);const d=a(()=>Ue(s?{disabled:!1,percentageAtMost:c.resolvedPercentage}:null),[s,c.resolvedPercentage]),u=a(()=>({formType:Kr.EditAutoCostReduction,localEnabled:s,setLocalEnabled:l,...c,summary:d}),[s,c,d]);return e($r.Provider,{value:u,children:n})},Qr=({enabled:t,children:r})=>{const[n,s]=o(t);i(()=>{s(t)},[t]);const l=a(()=>Pe(n?{disabled:!1}:null),[n]),c=a(()=>({formType:Kr.EditAutoHighlyRelevant,localEnabled:n,setLocalEnabled:s,summary:l}),[n,l]);return e($r.Provider,{value:c,children:r})},Xr=t=>{switch(t.formType){case Kr.Create:return e(Br,{...t});case Kr.View:return e(Wr,{...t});case Kr.EditAutoNoisy:return e(qr,{...t});case Kr.EditAutoCostReduction:return e(zr,{...t});case Kr.EditAutoHighlyRelevant:return e(Qr,{...t})}};function Jr(e){const t=r($r);if(!t)throw new Error("useSamplingRulesFormContext must be used within a SamplingRulesFormProvider");if(e&&t.formType!==e)throw new Error(`Expected formType "${e}" but found "${t.formType}"`);return t}const Zr={otelServiceName:"",currentStreamName:""},en=n(null),tn=({children:t})=>{const[r,n]=o(void 0),i=U(Zr),l=s(e=>{i.resetFormData((({serviceName:e,id:t})=>({otelServiceName:e||t.name||"",currentStreamName:""}))(e)),i.handleErrorChange(void 0,void 0,{}),n(void 0)},[]),c=s(()=>{const e=F(i.formData);return i.handleErrorChange(void 0,void 0,{}),n(void 0),{errorMessage:void 0,preparedFormData:e}},[i]),d=a(()=>({loadSource:l,genericForm:i,validateFormData:c,errorMessage:r}),[l,i,c,r]);return e(en.Provider,{value:d,children:t})},an=()=>{const e=r(en);if(!e)throw new Error("useSourceEditFormContext must be used within a SourceEditFormContextProvider");return e},rn=new Set([De.StaticPod]),nn=e=>{const t=e.workloads.filter(({selected:e})=>e).length,a=e.workloads.length;return{selectedCount:t,isAllSourced:t>0&&t===a,isSomeSourced:t>0&&t<a,isFutureApps:e.selected||!1}},sn=(e,t,a)=>{if(t&&!e.name.toLowerCase().includes(t.toLowerCase()))return!1;if(a.showOnlySelected){const{isAllSourced:t,isSomeSourced:a,isFutureApps:r}=nn(e);return t||a||r}return!0},on=(e,t,a)=>!(t&&!e.name.toLowerCase().includes(t.toLowerCase()))&&(!a.showOnlySelected||e.selected),ln=n({snapshots:null,setSnapshots:()=>{},isFetching:!1,setIsFetching:()=>{},formData:[],handleSourceChange:()=>{},handleSelectAll:()=>{},formDiff:{},isFormDirty:!1}),cn=(e,t)=>`${e}\0${t}`,dn=(e,t,a,r)=>`${e}\0${t}\0${a}/${r}`,un=(e,t)=>e.name===t.name&&e.kind===t.kind&&(e.region??"")===(t.region??""),mn=(e,t,a)=>{const r=[];return t.workloads.forEach(n=>{const s=e?.workloads.find(e=>un(e,n));n.selected!==s?.selected&&r.push({namespace:t.name,name:n.name,kind:n.kind,region:n.region||void 0,selected:n.selected||!1,currentStreamName:a})}),r},Sn=({children:t,selectedConnectionIds:r,initialInputs:n})=>{const{tier:c}=He(),d=c===Ge.Onprem,{capabilities:u}=Wt(),m=u.canInstrumentNamespaces,{selectedStreamName:S}=y(),[p,E]=o(!1),[I,f]=o(null),[_,h]=o([]),g=l(new Set),N=s((e,t)=>{t.forEach(t=>{const a=e.find(e=>e.clusterId===t.clusterId);a&&t.namespaces.forEach(e=>{const r=a.namespaces.find(t=>t.name===e.name);r&&(r.selected!==e.selected&&g.current.add(cn(t.clusterId,e.name)),e.workloads.forEach(a=>{const n=r.workloads.find(e=>e.name===a.name&&e.kind===a.kind);n&&n.selected!==a.selected&&g.current.add(dn(t.clusterId,e.name,a.kind,a.name))}))})})},[]);i(()=>{I&&h(e=>{const t=((e,t)=>F(((e,t)=>e.clusters.filter(({clusterId:e})=>!t||t.includes(e)))(e,t)))(I,r);return t.map(t=>{const a=e?.find(e=>e.clusterId===t.clusterId),r=((e,t,a)=>{if(!t)return e;const r=new Map(t.namespaces.map(e=>[e.name,e]));return{...e,namespaces:e.namespaces.map(t=>{const n=r.get(t.name);if(!n)return t;const s=new Map(n.workloads.map(e=>[`${e.kind}/${e.name}`,e])),o=a.has(cn(e.clusterId,t.name));return{...t,selected:o?n.selected:t.selected,workloads:t.workloads.map(r=>{const n=s.get(`${r.kind}/${r.name}`),o=a.has(dn(e.clusterId,t.name,r.kind,r.name));return n&&o?{...r,selected:n.selected}:r})}})}})(t,a,g.current);if(n?.[t.clusterId]){const e=n[t.clusterId],a=F(r);return e.forEach(e=>{const t=a.namespaces.find(t=>t.name===e.namespace);if(t)if(e.name&&e.kind){const a=t.workloads.find(t=>t.name===e.name&&t.kind===e.kind);a&&(a.selected=e.selected)}else t.selected=e.selected,e.selected&&t.workloads.forEach(e=>{rn.has(e.kind)&&!d||(e.selected=!0)})}),a}return r})})},[I,r,n]);const{formDiff:v,isFormDirty:A}=a(()=>{const e=((e,t,a,r)=>{const n={};return e.forEach(e=>{e.namespaces.forEach(s=>{const o=t.find(t=>t.clusterId===e.clusterId)?.namespaces.find(e=>e.name===s.name);if(!r){const t=mn(o,s,a);return void(t.length>0&&(n[e.clusterId]||(n[e.clusterId]=[]),n[e.clusterId].push(...t)))}const i=s.selected||!1;if(i!==o?.selected)n[e.clusterId]||(n[e.clusterId]=[]),n[e.clusterId].push({namespace:s.name,selected:i,currentStreamName:a}),i?n[e.clusterId]=n[e.clusterId].filter(e=>e.namespace!==s.name||e.namespace===s.name&&(!e.name||!e.kind)):s.workloads.forEach(t=>{t.selected&&n[e.clusterId].push({namespace:s.name,name:t.name,kind:t.kind,region:t.region||void 0,selected:!0,currentStreamName:a})});else{const t=mn(o,s,a);t.length>0&&(n[e.clusterId]||(n[e.clusterId]=[]),n[e.clusterId].push(...t))}})}),n})(_,I?.clusters||[],S,m);return{formDiff:e,isFormDirty:Object.keys(e).length>0}},[_,I,S,m]),R=s(e=>!d&&rn.has(e),[d]),O=s(({clusterId:e,workloadId:t,selected:a,auto:r})=>{h(n=>{const s=F(n),o=s.findIndex(t=>t.clusterId===e);if(-1===o)return s;const i=s[o].namespaces.findIndex(e=>e.name===t.namespace);if(-1===i)return s;if(t.kind&&t.name){const e=s[o].namespaces[i].workloads.findIndex(e=>un(e,{name:t.name,kind:t.kind,region:t.region}));if(-1===e)return s;const r="boolean"==typeof a?a:!s[o].namespaces[i].workloads[e].selected;s[o].namespaces[i].workloads[e].selected=r,m&&(r?s[o].namespaces[i].workloads.filter(e=>!R(e.kind)).every(e=>e.selected)&&(s[o].namespaces[i].selected=!0):s[o].namespaces[i].selected=!1)}else if(m){const e="boolean"==typeof r?r:!s[o].namespaces[i].selected;s[o].namespaces[i].selected=e,e?s[o].namespaces[i].workloads.forEach(e=>{R(e.kind)||(e.selected=!0)}):"boolean"!=typeof a||a||s[o].namespaces[i].workloads.forEach(e=>{e.selected=!1})}else{const e="boolean"==typeof a?a:"boolean"!=typeof r||r;s[o].namespaces[i].workloads.forEach(t=>{e&&R(t.kind)||(t.selected=e)})}return N(n,s),s})},[R,m,N]),C=s(({clusterId:e,namespaceName:t,boolean:a,searchText:r="",searchBy:n="",filters:s})=>{h(o=>{const i=F(o),l=n===T.Namespace?r:"",c=n===T.Source?r:"",d=!!l||!!c||!!s?.showOnlySelected;return i.forEach((r,n)=>{e&&r.clusterId!==e||r.namespaces.forEach(({name:e,workloads:r},o)=>{if(!t||e===t)if(d)if(t){if(r.forEach((e,t)=>{a&&R(e.kind)||on(e,c,s||{showOnlySelected:!1})&&(i[n].namespaces[o].workloads[t].selected=a)}),m){const e=i[n].namespaces[o].workloads.filter(e=>!R(e.kind)).every(e=>e.selected);i[n].namespaces[o].selected=e}}else{if(!sn(i[n].namespaces[o],l,s||{showOnlySelected:!1}))return;m&&(i[n].namespaces[o].selected=a),r.forEach((e,t)=>{a&&R(e.kind)||(i[n].namespaces[o].workloads[t].selected=a)})}else m&&(i[n].namespaces[o].selected=a),r.forEach((e,t)=>{a&&R(e.kind)||(i[n].namespaces[o].workloads[t].selected=a)})})}),N(o,i),i})},[R,m,N]);return e(ln.Provider,{value:{snapshots:I,setSnapshots:f,isFetching:p,setIsFetching:E,formData:_,handleSourceChange:O,handleSelectAll:C,formDiff:v,isFormDirty:A},children:t})},pn=()=>r(ln);export{rn as $,ea as A,Wt as B,na as C,la as D,xr as E,Jr as F,er as G,an as H,pn as I,Fr as J,Ta as K,ir as L,ya as M,Ia as N,it as O,Na as P,fa as Q,Hr as R,Kr as S,ha as T,ar as U,nr as V,wa as W,Oa as X,Aa as Y,Ra as Z,on as _,It as a,sn as a0,nn as a1,va as a2,_a as a3,rr as a4,Rr as a5,Ar as a6,Nr as a7,gr as a8,vr as a9,Pa as aa,xa as ab,pa as b,ba as c,Fa as d,Dr as e,rt as f,Xr as g,tn as h,Sn as i,Ur as j,Ot as k,ta as l,vt as m,At as n,Nt as o,Ct as p,sa as q,Tt as r,ca as s,Ea as t,at as u,La as v,ka as w,tr as x,lr as y,Gr as z};