@odigos/ui-kit 0.0.305 → 0.0.306
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 +7 -0
- package/lib/chunks/{helpers-D9jCyoin.js → helpers-Cnnu6nDZ.js} +1 -1
- package/lib/chunks/{index-C9PqEBy4.js → index-qLBXdBIN.js} +1 -1
- package/lib/chunks/source-instrument-form-context-CB8LQMmT.js +5 -0
- package/lib/chunks/ui-components-DRnj62bc.js +2298 -0
- package/lib/components.js +1 -1
- package/lib/constants/insights/index.d.ts +1 -0
- package/lib/constants/insights/recommendations.d.ts +78 -0
- package/lib/constants.js +1 -1
- package/lib/containers/insights/consts.d.ts +1 -0
- package/lib/containers/insights/recommendations/card-primitives.d.ts +69 -0
- package/lib/containers/insights/recommendations/drawer.d.ts +12 -0
- package/lib/containers/insights/recommendations/edit-apply-drawer.d.ts +8 -0
- package/lib/containers/insights/recommendations/grouped.d.ts +11 -0
- package/lib/containers/insights/recommendations/guardrail-card.d.ts +22 -0
- package/lib/containers/insights/recommendations/helpers.d.ts +200 -0
- package/lib/containers/insights/recommendations/index.d.ts +2 -0
- package/lib/containers/insights/recommendations/rule-card.d.ts +11 -0
- package/lib/containers.js +642 -567
- package/lib/contexts/odigos-api/capabilities.d.ts +2 -0
- package/lib/contexts/odigos-api/hooks/use-insights-api.d.ts +42 -2
- package/lib/contexts/odigos-api/types.d.ts +56 -1
- package/lib/contexts.js +1 -1
- package/lib/functions.js +1 -1
- package/lib/hooks.js +1 -1
- package/lib/snippets.js +1 -1
- package/lib/store.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/types/insights/index.d.ts +292 -0
- package/lib/types.js +1 -1
- package/lib/visuals.js +1 -1
- package/package.json +1 -1
- package/lib/chunks/source-instrument-form-context-BLqtizcA.js +0 -5
- package/lib/chunks/ui-components-B-AB4_8e.js +0 -2298
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.0.306](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.305...ui-kit-v0.0.306) (2026-09-22)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **insights:** recommendations tab with quick apply (PLAT-1508) ([#1320](https://github.com/odigos-io/ui-kit/issues/1320)) ([5702a8c](https://github.com/odigos-io/ui-kit/commit/5702a8c3c578b98c1a77c0514d9e2de5d6d195bd))
|
|
9
|
+
|
|
3
10
|
## [0.0.305](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.304...ui-kit-v0.0.305) (2026-09-22)
|
|
4
11
|
|
|
5
12
|
|
|
@@ -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-
|
|
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-DRnj62bc.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-
|
|
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-DRnj62bc.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-Cnnu6nDZ.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]};
|
|
@@ -0,0 +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 o,useState as s,useEffect as i,useRef as c}from"react";import{t as l,bd as d,be as u,b3 as m,S,bf as E,bg as p,bh as T,P as I,bi as y,bj as f,bk as _,bl as N,bm as h,bn as g,bo as v,bp as A,bq as R,br as O,bs as C,bt as G,bu as D,bv as b,bw as w,bx as L,by as P,bz as U,bA as M,bB as F,bC as k,bD as H,bE as x,bF as $,bG as K,b1 as V,bH as Y,bI as B,o as W,bJ as j,bK as q,bL as Q,bM as z,bN as X,bO as J,y as Z,bP as ee,h as te,M as ae,bQ as re,T as ne,bR as oe,bS as se,bT as ie,bU as ce,bV as le,bW as de,bX as ue,bY as me,bZ as Se,b_ as Ee,b$ as pe,c0 as Te,c1 as Ie,c2 as ye,c3 as fe,c4 as _e,c5 as Ne,c6 as he,c7 as ge,c8 as ve,c9 as Ae,ca as Re,cb as Oe,cc as Ce,cd as Ge,ah as De,ad as be,af as we,ae as Le,ag as Pe,ac as Ue,ce as Me,b as Fe}from"./ui-components-DRnj62bc.js";import{i as ke,n as He,m as xe,l as $e,o as Ke,p as Ve,v as Ye,q as Be,u as We}from"./helpers-Cnnu6nDZ.js";import{ApolloProvider as je,useLazyQuery as qe,useApolloClient as Qe,useQuery as ze}from"@apollo/client/react";import{ErrorLink as Xe}from"@apollo/client/link/error";import{SetContextLink as Je}from"@apollo/client/link/context";import{getMainDefinition as Ze}from"@apollo/client/utilities";import{CombinedGraphQLErrors as et,ServerError as tt}from"@apollo/client/errors";import{HttpLink as at,ApolloLink as rt,ApolloClient as nt,InMemoryCache as ot,gql as st}from"@apollo/client";const it=e=>{if(!e)return!1;const t=e.toLowerCase();return t.includes("authentication required")||t.includes("authentication expired")||t.includes("http 401")},ct=n(null),lt=()=>{const e=r(ct);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},dt=({apolloConfig:t,operations:r,context:n,children:o})=>{const s=a(()=>(e=>{const t=new at({uri:e.httpUrl,credentials:e.credentials??"same-origin"}),a=new Xe(({error:t})=>{et.is(t)?t.errors.some(e=>it(e.message))&&e.onAuthError?.():(tt.is(t)&&401===t.statusCode||it(t.message))&&e.onAuthError?.()}),r=new Je(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 o=rt.from(n);e.wsLink&&(o=rt.split(({query:e})=>{const t=Ze(e);return"OperationDefinition"===t.kind&&"subscription"===t.operation},e.wsLink,o));const s=e.defaultFetchPolicies;return new nt({link:o,cache:new ot({typePolicies:e.cacheTypePolicies}),defaultOptions:{watchQuery:{fetchPolicy:s?.watchQuery??"cache-and-network"},query:{fetchPolicy:s?.query??"cache-first"},mutate:{fetchPolicy:s?.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(je,{client:s,children:e(ct.Provider,{value:i,children:o})})},ut=ct,mt=e=>e.map(e=>`${e.id}:${e.odigosVersion}:${e.type}`).join(","),St=(e,t,a)=>{const r=t.length?t.map(e=>e.id):a??[],n={...e,connectionIds:r};if(!t.length||l(e.version)>0)return n;const o=t[0];return{...n,version:o.odigosVersion||e.version,platformType:o.type??e.platformType}},Et=({connections:t,connectionIds:r,children:n})=>{const o=lt(),s=a(()=>({operations:o.operations,context:St(o.context,t,r),apolloConfig:o.apolloConfig}),[o.operations,o.context,o.apolloConfig,mt(t),r?.join(",")]);return e(ut.Provider,{value:s,children:n})},pt=(e,t)=>{if(e)return"string"==typeof e?e:E(e,t)},Tt=e=>{const{addNotification:t}=d(),a=(a,r,n,o,s)=>t({type:a,title:r,message:n,crdType:e,target:pt(o,e),hideFromHistory:s});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})}}},It=e=>{e({type:S.Warning,title:m.READONLY,message:u.READONLY_WARNING,hideFromHistory:!0})},yt=e=>({error:e,results:[],allSucceeded:!1,anySucceeded:!1,successCount:0,failureCount:0}),ft=(e,t)=>{if(e)return"function"==typeof e?e(t):e},_t=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)},Nt=(e,t)=>e.client??t,ht=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(Nt(t,e),a,r)}catch(e){return{error:_t(e)}}const o=ft(t.document,r);if(!o)return{error:"Query operation not supported in this context"};const s=t.transformVariables?t.transformVariables(a,r):a,i=Nt(t,e);try{const e=await i.query({query:o,variables:s,fetchPolicy:n??"network-only"});return{data:t.transformResult?t.transformResult(e.data,r):e.data,error:e.error?_t(e.error):void 0}}catch(e){return{error:_t(e)}}},gt=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(Nt(t,e),a,r)}catch(e){return{error:_t(e)}}const n=ft(t.document,r);if(!n)return{error:"Mutation operation not supported in this context"};const o=t.transformVariables?t.transformVariables(a,r):a,s=Nt(t,e);try{const e=await s.mutate({mutation:n,variables:o});return{data:t.transformResult?t.transformResult(e.data,r):e.data,error:void 0}}catch(e){return{error:_t(e)}}},vt=async(e,t,a,r,n)=>{if(!t)return yt("Multi fetch operation not configured");if(!a.length)return yt("No proxy ids supplied for multi fetch");const o=Nt(t,e);if(t.transformVariablesMulti&&(t.documentMulti||t.document)){const e=t.transformVariablesMulti(a,r,n),s=[];for(const a of e)try{const e=await o.query({query:a.document,variables:a.variables,fetchPolicy:"network-only"});t.transformMultiResult?t.transformMultiResult(e.data,n).forEach(e=>s.push(e)):a.proxyIDs.forEach(t=>{s.push({proxyID:t,success:!e.error,data:e.data,error:e.error?.message})})}catch(e){const t=_t(e);a.proxyIDs.forEach(e=>s.push({proxyID:e,success:!1,error:t}))}const i=s.filter(e=>e.success).length,c=s.length-i,l=Array.from(new Set(s.filter(e=>!!e.error).map(e=>e.error)));return{results:s,allSucceeded:0===c,anySucceeded:i>0,successCount:i,failureCount:c,error:l.length?l.join(", "):void 0}}const s=await Promise.all(a.map(async a=>{const o={...n,proxyID:a},s=await ht(e,t,r,o);return{proxyID:a,success:!s.error,data:s.data,error:s.error}})),i=s.filter(e=>e.success).length,c=s.length-i,l=Array.from(new Set(s.filter(e=>!!e.error).map(e=>e.error)));return{results:s,allSucceeded:0===c,anySucceeded:i>0,successCount:i,failureCount:c,error:l.length?l.join(", "):void 0}},At=st`
|
|
2
|
+
query OdigosApiNoop {
|
|
3
|
+
__typename
|
|
4
|
+
}
|
|
5
|
+
`,Rt=(e,t)=>{if(e)return"function"==typeof e?e(t):e},Ot=(e,t)=>e[t],Ct=(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},Dt=(e,t,r)=>{const{operations:n,context:s}=lt(),c=Ot(n,e),l=a(()=>Rt(c?.document,s),[c,s]),d=a(()=>Gt(c,t,s),[c,t,s]),u=!c||!l,m=!!c?.canRun&&!c.canRun(s),S=r?.skip||u||m,E=ze(l??At,{variables:d,skip:S,pollInterval:r?.pollInterval,fetchPolicy:r?.fetchPolicy??"cache-and-network",notifyOnNetworkStatusChange:r?.notifyOnNetworkStatusChange,client:c?.client}),p=a(()=>{if(!S)return Ct(c,E.data,s)},[c,s,E.data,S]);i(()=>{S||void 0===p||r?.onCompleted?.(p)},[S,p,r?.onCompleted]),i(()=>{E.error&&r?.onError?.(E.error)},[E.error,r?.onError]);const T=o(async()=>{if(S)return{data:void 0};const e=await E.refetch();return{data:Ct(c,e.data,s)}},[c,s,E,S]);return{data:p,loading:!S&&E.loading,error:E.error,refetch:T,unsupported:u}},bt=(e,t)=>{const{operations:r,context:n}=lt(),s=Ot(r,e),i=a(()=>Rt(s?.document,n),[s,n]),c=!s||!i,[l,d]=qe(i??At,{fetchPolicy:t?.fetchPolicy??"network-only",notifyOnNetworkStatusChange:t?.notifyOnNetworkStatusChange,client:s?.client});return{execute:o(async e=>{if(c)return{error:void 0};if(s?.canRun&&!s.canRun(n))return{data:void 0};const t=Gt(s,e,n),a=await l({variables:t});return a.error?{error:a.error}:{data:Ct(s,a.data,n)}},[s,n,l,c]),data:a(()=>Ct(s,d.data,n),[s,n,d.data]),loading:d.loading,error:d.error,called:d.called,unsupported:c}},wt=(e,t)=>{const{operations:r,context:n}=lt(),i=Qe(),c=Ot(r,e),l=a(()=>Rt(c?.document,n),[c,n]),d=!c||!l,[u,m]=s({loading:!1,called:!1}),S=o(()=>m({loading:!1,called:!1}),[]);return[o(async e=>{if(d||!l)return{error:void 0};if(c?.canRun&&!c.canRun(n))return{data:void 0};const a=Gt(c,e,n),r=c?.client??i;m(e=>({...e,loading:!0,called:!0}));try{const e=await r.mutate({mutation:l,variables:a}),o=Ct(c,e.data,n);if(m({data:o,loading:!1,error:void 0,called:!0}),t?.refetchQueries){const e=r.refetchQueries({include:t.refetchQueries});t?.awaitRefetchQueries&&await e}return void 0!==o&&t?.onCompleted?.(o),{data:o}}catch(e){const a=e;return m({data:void 0,loading:!1,error:a,called:!0}),t?.onError?.(a),{error:a}}},[c,n,i,l,d,t]),{data:u.data,loading:u.loading,error:u.error,called:u.called,unsupported:d,reset:S}]},Lt=[],Pt=(e,t,a,r)=>{let n=!0;const o={sources:[]};for(const[s,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 c=0,l=0;for(const a of e){const e=t.find(e=>e.id.namespace===s&&e.id.name===a.name&&e.id.kind===a.kind),r=e?.dataStreamNames||[];a.selected&&!e?c++:!a.selected&&e&&r.length<=1&&l++}r(c,l),o.sources.push(...e)}return{payload:o,isEmpty:n}},Ut=(e,t)=>{let a=!0;const r={namespaces:[]};for(const[n,{selected:o,currentStreamName:s}]of Object.entries(e))"boolean"==typeof o&&(a=!1,r.namespaces.push({namespace:n,selected:o,currentStreamName:s||t}));return{payload:r,isEmpty:a}},Mt={filter:{markedForInstrumentation:!0}},Ft=[],kt=e=>{const t=e.markedForInstrumentation?.markedForInstrumentation;return"boolean"==typeof t?e:{...e,markedForInstrumentation:{...e.markedForInstrumentation??{markedForInstrumentation:!0},markedForInstrumentation:!0}}},Ht=e=>{let t=!1;const a=e.map(e=>{const a=kt(e);return a!==e&&(t=!0),a});return t?a:e},xt=[],$t=[],Kt=[],Vt=(e,t)=>{const a=Qe(),{notifyError:r,notifySuccess:n,notifyReadonly:o}=Tt(A.Finding),s=async()=>{e.GET_INSIGHTS_FINDINGS&&await ht(a,e.GET_INSIGHTS_FINDINGS,void 0,t)},i=async()=>{e.GET_INSIGHTS_ANOMALIES&&await ht(a,e.GET_INSIGHTS_ANOMALIES,void 0,t)},c=async()=>{e.GET_INSIGHTS_TRANSACTIONS&&await ht(a,e.GET_INSIGHTS_TRANSACTIONS,void 0,t)},l=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 ht(a,e.GET_INSIGHTS_POLICIES,void 0,t)},d=async()=>{e.GET_INSIGHTS_LEARNING_POLICIES&&await ht(a,e.GET_INSIGHTS_LEARNING_POLICIES,void 0,t)},u=async()=>{e.GET_INSIGHTS_GUARDRAILS&&await ht(a,e.GET_INSIGHTS_GUARDRAILS,void 0,t)},m=async()=>{e.GET_INSIGHTS_GUARDRAIL_VIOLATIONS&&await ht(a,e.GET_INSIGHTS_GUARDRAIL_VIOLATIONS,void 0,t)},S=async()=>{if(!e.GET_INSIGHTS_RECOMMENDATIONS)return;const r="function"==typeof e.GET_INSIGHTS_RECOMMENDATIONS.document?e.GET_INSIGHTS_RECOMMENDATIONS.document(t):e.GET_INSIGHTS_RECOMMENDATIONS.document;r?await a.refetchQueries({include:[r]}):await ht(a,e.GET_INSIGHTS_RECOMMENDATIONS,void 0,t)},E=async(e,t,a,o)=>{const{data:s,error:i}=a;if(i)return r(e,i),a;await Promise.all([S(),...o?[u()]:[]]);const c=s?.done??0,l=s?.failed??0;return l>0?r(e,s?.errors?.[0]?.error??`${l} of ${l+c} recommendations could not be ${t}`):n(e,`Successfully ${t} ${c} recommendation${1===c?"":"s"}`),a};return{useServices:e=>Dt("GET_INSIGHTS_SERVICES",void 0,e),useServiceNames:e=>Dt("GET_INSIGHTS_SERVICE_NAMES",void 0,e),useTransactions:(e,t)=>Dt("GET_INSIGHTS_TRANSACTIONS",e,t),useTransaction:(e,t)=>Dt("GET_INSIGHTS_TRANSACTION",e,t),useBaseline:(e,t)=>Dt("GET_INSIGHTS_BASELINE",e,t),useObservations:(e,t)=>Dt("GET_INSIGHTS_OBSERVATIONS",e,t),useObservation:(e,t)=>Dt("GET_INSIGHTS_OBSERVATION",e,t),useFindings:(e,t)=>Dt("GET_INSIGHTS_FINDINGS",e,t),useAnomalies:(e,t)=>Dt("GET_INSIGHTS_ANOMALIES",e,t),useAnomaly:(e,t)=>Dt("GET_INSIGHTS_ANOMALY",e,t),usePolicies:e=>Dt("GET_INSIGHTS_POLICIES",void 0,e),useLearningPolicies:e=>Dt("GET_INSIGHTS_LEARNING_POLICIES",void 0,e),useGuardrails:e=>Dt("GET_INSIGHTS_GUARDRAILS",void 0,e),useGuardrailViolations:(e,t)=>Dt("GET_INSIGHTS_GUARDRAIL_VIOLATIONS",e,t),useGuardrailViolation:(e,t)=>Dt("GET_INSIGHTS_GUARDRAIL_VIOLATION",e,t),useServiceProfile:(e,t)=>Dt("GET_INSIGHTS_SERVICE_PROFILE",e,t),useBlastRadius:(e,t)=>Dt("GET_INSIGHTS_BLAST_RADIUS",e,t),useCatalog:e=>Dt("GET_INSIGHTS_CATALOG",void 0,e),useSystemSettings:e=>Dt("GET_INSIGHTS_SYSTEM_SETTINGS",void 0,e),useStorageHealth:e=>Dt("GET_INSIGHTS_STORAGE_HEALTH",void 0,e),useRecommendations:(e,t)=>Dt("GET_INSIGHTS_RECOMMENDATIONS",e,t),useRecommendation:(e,t)=>Dt("GET_INSIGHTS_RECOMMENDATION",e,t),getServices:e.GET_INSIGHTS_SERVICES?async()=>ht(a,e.GET_INSIGHTS_SERVICES,void 0,t):void 0,getServiceNames:e.GET_INSIGHTS_SERVICE_NAMES?async()=>ht(a,e.GET_INSIGHTS_SERVICE_NAMES,void 0,t):void 0,getTransactions:e.GET_INSIGHTS_TRANSACTIONS?async r=>ht(a,e.GET_INSIGHTS_TRANSACTIONS,r,t):void 0,getTransaction:e.GET_INSIGHTS_TRANSACTION?async r=>ht(a,e.GET_INSIGHTS_TRANSACTION,r,t):void 0,getFindings:e.GET_INSIGHTS_FINDINGS?async r=>ht(a,e.GET_INSIGHTS_FINDINGS,r,t):void 0,getAnomalies:e.GET_INSIGHTS_ANOMALIES?async r=>ht(a,e.GET_INSIGHTS_ANOMALIES,r,t):void 0,getAnomaly:e.GET_INSIGHTS_ANOMALY?async r=>ht(a,e.GET_INSIGHTS_ANOMALY,r,t):void 0,getPolicies:e.GET_INSIGHTS_POLICIES?async()=>ht(a,e.GET_INSIGHTS_POLICIES,void 0,t):void 0,getLearningPolicies:e.GET_INSIGHTS_LEARNING_POLICIES?async()=>ht(a,e.GET_INSIGHTS_LEARNING_POLICIES,void 0,t):void 0,getGuardrails:e.GET_INSIGHTS_GUARDRAILS?async()=>ht(a,e.GET_INSIGHTS_GUARDRAILS,void 0,t):void 0,getGuardrailViolation:e.GET_INSIGHTS_GUARDRAIL_VIOLATION?async r=>ht(a,e.GET_INSIGHTS_GUARDRAIL_VIOLATION,r,t):void 0,getServiceProfile:e.GET_INSIGHTS_SERVICE_PROFILE?async r=>ht(a,e.GET_INSIGHTS_SERVICE_PROFILE,r,t):void 0,getBlastRadius:e.GET_INSIGHTS_BLAST_RADIUS?async r=>ht(a,e.GET_INSIGHTS_BLAST_RADIUS,r,t):void 0,getCatalog:e.GET_INSIGHTS_CATALOG?async()=>ht(a,e.GET_INSIGHTS_CATALOG,void 0,t):void 0,getSystemSettings:e.GET_INSIGHTS_SYSTEM_SETTINGS?async()=>ht(a,e.GET_INSIGHTS_SYSTEM_SETTINGS,void 0,t):void 0,getStorageHealth:e.GET_INSIGHTS_STORAGE_HEALTH?async()=>ht(a,e.GET_INSIGHTS_STORAGE_HEALTH,void 0,t):void 0,getRecommendations:e.GET_INSIGHTS_RECOMMENDATIONS?async r=>ht(a,e.GET_INSIGHTS_RECOMMENDATIONS,r,t):void 0,getRecommendation:e.GET_INSIGHTS_RECOMMENDATION?async r=>ht(a,e.GET_INSIGHTS_RECOMMENDATION,r,t):void 0,promoteBaselineClass:e.PROMOTE_INSIGHTS_BASELINE_CLASS?async s=>{if(t.isReadonly)return o();const{data:i,error:c}=await gt(a,e.PROMOTE_INSIGHTS_BASELINE_CLASS,s,t);return c?r(p.Update,c):n(p.Update,"Successfully promoted baseline class"),{data:i,error:c}}:void 0,resetBaselineClass:e.RESET_INSIGHTS_BASELINE_CLASS?async(s,i)=>{if(t.isReadonly)return o();const{error:c}=await gt(a,e.RESET_INSIGHTS_BASELINE_CLASS,{transactionId:s,class:i},t);return c?r(p.Update,c):n(p.Update,"Successfully reset baseline class"),c?{error:c}:void 0}:void 0,resetTransactionBaselines:e.RESET_INSIGHTS_TRANSACTION_BASELINES?async s=>{if(t.isReadonly)return o();const{error:i}=await gt(a,e.RESET_INSIGHTS_TRANSACTION_BASELINES,{transactionId:s},t);return i?r(p.Update,i):n(p.Update,"Successfully reset transaction baselines"),i?{error:i}:void 0}:void 0,promoteTransactionBaselines:e.PROMOTE_INSIGHTS_TRANSACTION_BASELINES?async s=>{if(t.isReadonly)return o();const{error:i}=await gt(a,e.PROMOTE_INSIGHTS_TRANSACTION_BASELINES,{transactionId:s},t);return i?r(p.Update,i):(n(p.Update,"Successfully promoted transaction baselines"),await Promise.all([c(),u()])),i?{error:i}:void 0}:void 0,bulkPromoteTransactions:e.BULK_PROMOTE_INSIGHTS_TRANSACTIONS?async s=>{if(t.isReadonly)return o();const i={transactionIds:s},{data:l,error:d}=await gt(a,e.BULK_PROMOTE_INSIGHTS_TRANSACTIONS,i,t);return d?r(p.Update,d):(n(p.Update,`Successfully promoted ${l?.promoted??s.length} transactions`),await Promise.all([c(),u()])),{data:l,error:d}}:void 0,forcePromoteService:e.FORCE_PROMOTE_INSIGHTS_SERVICE?async s=>{if(t.isReadonly)return o();const{error:i}=await gt(a,e.FORCE_PROMOTE_INSIGHTS_SERVICE,s,t);return i?r(p.Update,i):(n(p.Update,"Successfully force-promoted service transactions"),await Promise.all([c(),u()])),i?{error:i}:void 0}:void 0,enableTransactionGuardrail:e.ENABLE_INSIGHTS_TRANSACTION_GUARDRAIL?async s=>{if(t.isReadonly)return o();const{error:i}=await gt(a,e.ENABLE_INSIGHTS_TRANSACTION_GUARDRAIL,s,t);return i?r(p.Update,i):(n(p.Update,"Successfully enabled transaction guardrail"),await u()),i?{error:i}:void 0}:void 0,disableTransactionGuardrail:e.DISABLE_INSIGHTS_TRANSACTION_GUARDRAIL?async s=>{if(t.isReadonly)return o();const{error:i}=await gt(a,e.DISABLE_INSIGHTS_TRANSACTION_GUARDRAIL,s,t);return i?r(p.Update,i):(n(p.Update,"Successfully disabled transaction guardrail"),await u()),i?{error:i}:void 0}:void 0,deleteTransaction:e.DELETE_INSIGHTS_TRANSACTION?async l=>{if(t.isReadonly)return o();const{error:d}=await gt(a,e.DELETE_INSIGHTS_TRANSACTION,{transactionId:l},t);return d?r(p.Delete,d):(n(p.Delete,"Successfully deleted transaction"),await Promise.all([c(),s(),i()])),d?{error:d}:void 0}:void 0,bulkDeleteTransactions:e.BULK_DELETE_INSIGHTS_TRANSACTIONS?async l=>{if(t.isReadonly)return o();const d={transactionIds:l},{data:u,error:m}=await gt(a,e.BULK_DELETE_INSIGHTS_TRANSACTIONS,d,t);return m?r(p.Delete,m):(n(p.Delete,`Successfully deleted ${u?.deleted??l.length} transactions`),await Promise.all([c(),s(),i()])),{data:u,error:m}}:void 0,upsertPolicy:e.UPSERT_INSIGHTS_POLICY?async s=>{if(t.isReadonly)return o();const{data:i,error:c}=await gt(a,e.UPSERT_INSIGHTS_POLICY,{policy:s},t);return c?r(p.Update,c):(n(p.Update,`Successfully saved policy "${s.name}"`),await l()),{data:i,error:c}}:void 0,deletePolicy:e.DELETE_INSIGHTS_POLICY?async(s,i)=>{if(t.isReadonly)return o();const{error:c}=await gt(a,e.DELETE_INSIGHTS_POLICY,{scope:s,scopeKey:i},t);return c?r(p.Delete,c):(n(p.Delete,"Successfully deleted policy"),await l()),c?{error:c}:void 0}:void 0,upsertLearningPolicy:e.UPSERT_INSIGHTS_LEARNING_POLICY?async s=>{if(t.isReadonly)return o();const{data:i,error:c}=await gt(a,e.UPSERT_INSIGHTS_LEARNING_POLICY,{policy:s},t);return c?r(p.Update,c):(n(p.Update,"Successfully saved learning policy"),await d()),{data:i,error:c}}:void 0,deleteLearningPolicy:e.DELETE_INSIGHTS_LEARNING_POLICY?async(s,i,c)=>{if(t.isReadonly)return o();const{error:l}=await gt(a,e.DELETE_INSIGHTS_LEARNING_POLICY,{class:s,scope:i,scopeKey:c},t);return l?r(p.Delete,l):(n(p.Delete,"Successfully deleted learning policy"),await d()),l?{error:l}:void 0}:void 0,resolveAnomaly:e.RESOLVE_INSIGHTS_ANOMALY?async c=>{if(t.isReadonly)return o();const{error:l}=await gt(a,e.RESOLVE_INSIGHTS_ANOMALY,c,t);return l?r(p.Update,l):(n(p.Update,`Successfully ${c.resolution}ed anomaly`),await Promise.all([i(),s()])),l?{error:l}:void 0}:void 0,bulkResolveAnomalies:e.BULK_RESOLVE_INSIGHTS_ANOMALIES?async(c,l)=>{if(t.isReadonly)return o();const d={resolution:c,items:l},{data:u,error:m}=await gt(a,e.BULK_RESOLVE_INSIGHTS_ANOMALIES,d,t);return m?r(p.Update,m):(n(p.Update,`Successfully ${c}ed ${u?.resolved??l.length} anomalies`),await Promise.all([i(),s()])),{data:u,error:m}}:void 0,upsertGuardrail:e.UPSERT_INSIGHTS_GUARDRAIL?async s=>{if(t.isReadonly)return o();const{data:i,error:c}=await gt(a,e.UPSERT_INSIGHTS_GUARDRAIL,{guardrail:s},t);return c?r(p.Update,c):(n(p.Update,"Successfully saved guardrail"),await u()),{data:i,error:c}}:void 0,deleteGuardrail:e.DELETE_INSIGHTS_GUARDRAIL?async(s,i)=>{if(t.isReadonly)return o();const{error:c}=await gt(a,e.DELETE_INSIGHTS_GUARDRAIL,{scopeKey:s,scope:i},t);return c?r(p.Delete,c):(n(p.Delete,"Successfully deleted guardrail"),await u()),c?{error:c}:void 0}:void 0,seedGuardrail:e.SEED_INSIGHTS_GUARDRAIL?async s=>{if(t.isReadonly)return o();const{error:i}=await gt(a,e.SEED_INSIGHTS_GUARDRAIL,{seed:s},t);return i?r(p.Create,i):(n(p.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 o();const{error:c}=await gt(a,e.ACCEPT_INSIGHTS_GUARDRAIL_VIOLATION,{action:i},t);return c?r(p.Update,c):(n(p.Update,"Successfully accepted violation"),await Promise.all([m(),s()])),c?{error:c}:void 0}:void 0,dismissViolation:e.DISMISS_INSIGHTS_GUARDRAIL_VIOLATION?async i=>{if(t.isReadonly)return o();const{error:c}=await gt(a,e.DISMISS_INSIGHTS_GUARDRAIL_VIOLATION,{action:i},t);return c?r(p.Update,c):(n(p.Update,"Successfully dismissed violation"),await Promise.all([m(),s()])),c?{error:c}:void 0}:void 0,reopenViolation:e.REOPEN_INSIGHTS_GUARDRAIL_VIOLATION?async i=>{if(t.isReadonly)return o();const{error:c}=await gt(a,e.REOPEN_INSIGHTS_GUARDRAIL_VIOLATION,{action:i},t);return c?r(p.Update,c):(n(p.Update,"Successfully reopened violation"),await Promise.all([m(),s()])),c?{error:c}:void 0}:void 0,updateSystemSettings:e.UPDATE_INSIGHTS_SYSTEM_SETTINGS?async s=>{if(t.isReadonly)return o();const{data:i,error:c}=await gt(a,e.UPDATE_INSIGHTS_SYSTEM_SETTINGS,{settings:s},t);return c?r(p.Update,c):(n(p.Update,"Successfully updated system settings"),await(async()=>{e.GET_INSIGHTS_SYSTEM_SETTINGS&&await ht(a,e.GET_INSIGHTS_SYSTEM_SETTINGS,void 0,t)})()),{data:i,error:c}}:void 0,applyRecommendations:e.APPLY_INSIGHTS_RECOMMENDATIONS?async r=>{if(t.isReadonly)return o();const n=await gt(a,e.APPLY_INSIGHTS_RECOMMENDATIONS,{items:r},t);return E(p.Create,"applied",n,!0)}:void 0,dismissRecommendations:e.DISMISS_INSIGHTS_RECOMMENDATIONS?async r=>{if(t.isReadonly)return o();const n=await gt(a,e.DISMISS_INSIGHTS_RECOMMENDATIONS,{ids:r},t);return E(p.Update,"dismissed",n,!1)}:void 0,restoreRecommendations:e.RESTORE_INSIGHTS_RECOMMENDATIONS?async r=>{if(t.isReadonly)return o();const n=await gt(a,e.RESTORE_INSIGHTS_RECOMMENDATIONS,{ids:r},t);return E(p.Update,"restored",n,!1)}:void 0,revertRecommendations:e.REVERT_INSIGHTS_RECOMMENDATIONS?async r=>{if(t.isReadonly)return o();const n=await gt(a,e.REVERT_INSIGHTS_RECOMMENDATIONS,{ids:r},t);return E(p.Delete,"reverted",n,!0)}:void 0,previewRecommendation:e.PREVIEW_INSIGHTS_RECOMMENDATION?async n=>{if(t.isReadonly)return o();const{data:s,error:i}=await gt(a,e.PREVIEW_INSIGHTS_RECOMMENDATION,n,t);return i&&r(p.Read,i),{data:s,error:i}}:void 0,recomputeRecommendations:e.RECOMPUTE_INSIGHTS_RECOMMENDATIONS?async s=>{if(t.isReadonly)return o();const{error:i}=await gt(a,e.RECOMPUTE_INSIGHTS_RECOMMENDATIONS,{transactionId:s?.transactionId??null,namespace:s?.namespace??null,service:s?.service??null},t);return i?r(p.Update,i):n(p.Update,"Mining run queued"),i?{error:i}:void 0}:void 0}},Yt=[],Bt=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}},Wt=[],jt=[],qt=[],Qt=[],zt=(e,t)=>({...e,fields:e.fields.filter(({value:e})=>void 0!==e),currentStreamName:t}),Xt=[],Jt=[],Zt=async()=>{const e=await fetch($);if(!e.ok)throw new Error(`${k} (HTTP ${e.status})`);return e.text()},ea=()=>{const{operations:e,context:t}=lt(),r=Qe(),n=((e,t)=>{const r=Qe(),{notifyError:n,notifySuccess:s,notifyPending:i,notifyReadonly:c}=Tt(T.Source),{selectedStreamName:l}=y(),{setProgress:d,resetProgress:u}=f(),{setConfiguredSources:m,setConfiguredFutureApps:S}=_(),E=(e,t)=>{const{progress:a}=f.getState();e>0&&d(N.Instrumenting,{total:(a[N.Instrumenting]?.total||0)+e,current:a[N.Instrumenting]?.current||0}),t>0&&d(N.Uninstrumenting,{total:(a[N.Uninstrumenting]?.total||0)+t,current:a[N.Uninstrumenting]?.current||0})},I=o(async()=>{const{error:a}=await ht(r,e.GET_WORKLOADS,Mt,t);a&&n(p.Read,a)},[r,e.GET_WORKLOADS,t,n]);return{useSources:()=>{const e=Dt("GET_WORKLOADS",Mt,{fetchPolicy:"cache-first"}),t=e.data?.workloads;return{items:a(()=>t?Ht(t):Ft,[t]),loading:e.loading,refetch:I}},fetchAll:I,fetchByTargets:async(a,o)=>{const s=!!o?.slim,i=a.map(e=>h(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 c=s&&e.GET_WORKLOADS_BY_IDS_SLIM?e.GET_WORKLOADS_BY_IDS_SLIM:e.GET_WORKLOADS_BY_IDS,{error:l}=await ht(r,c,{ids:i.map(({namespace:e,kind:t,name:a,region:r})=>({namespace:e,kind:t,name:a,region:r||void 0}))},t);l?n(p.Read,l):await I()},fetchById:async a=>{const{data:o,error:s}=await ht(r,e.GET_WORKLOADS_BY_IDS,{ids:[{namespace:a.namespace,kind:a.kind,name:a.name,...a.region?{region:a.region}:{}}]},t);if(s)return void n(p.Read,s);const i=o?.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?kt(i):void 0},fetchLibraries:async a=>ht(r,e.GET_SOURCE_LIBRARIES,a,t),fetchPeerSources:async a=>ht(r,e.GET_PEER_SOURCES,{serviceName:a},t),usePeerSources:(e,t)=>Dt("GET_PEER_SOURCES",e,t),useInstrumentationInstructions:(e,t)=>Dt("GET_INSTRUMENTATION_INSTRUCTIONS",e,{...t,skip:t?.skip||!e?.name}),persist:async(a,o)=>{if(t.isReadonly)return c();const{data:s}=await ht(r,e.GET_WORKLOADS,Mt,t,"cache-first"),d=Ht(s?.workloads??Ft),{payload:T,isEmpty:I}=Pt(a,d,l,E),{payload:y,isEmpty:f}=Ut(o,l);let _=!1;I||(_=!0,i("Persisting sources...")),f||_||i("Persisting namespaces...");const{error:h}=await gt(r,e.PERSIST_SOURCES,T,t);if(h&&(u(N.Instrumenting),u(N.Uninstrumenting),n(p.Update,h)),e.PERSIST_NAMESPACES){const{error:a}=await gt(r,e.PERSIST_NAMESPACES,y,t);a&&n(p.Update,a)}m({}),S({})},persistV2:async a=>{if(t.isReadonly)return c(),{error:"readonly"};const n=[];for(const[o,s]of Object.entries(a)){const a={sources:[]},i={namespaces:[]};for(const e of s)e.name&&e.kind?a.sources.push(e):i.namespaces.push(e);const c=o&&o!==g?{...t,proxyID:o}:t,l=e=>o&&o!==g?`${o}: ${e}`:e;if(i.namespaces.length>0&&e.PERSIST_NAMESPACES){const{error:t}=await gt(r,e.PERSIST_NAMESPACES,i,c);t&&n.push(l(t))}if(a.sources.length>0){const{error:t}=await gt(r,e.PERSIST_SOURCES,a,c);t&&n.push(l(t))}}return n.length?{error:n.join(", ")}:void 0},update:async(a,o)=>{if(t.isReadonly)return c();i("Updating source...");const d={sourceId:a,patchSourceRequest:{...o,currentStreamName:l}},{data:u,error:m}=await gt(r,e.UPDATE_SOURCE,d,t);m?n(p.Update,m,a):u?.updateK8sActualSource&&s(p.Update,`Successfully updated "${a.name}" source`,a)},restartWorkloads:async a=>{if(t.isReadonly)return c();i("Restarting sources...");const{data:o,error:l}=await gt(r,e.RESTART_WORKLOADS,{sourceIds:a},t);l?n(p.Update,l):o?.restartWorkloads&&s(p.Update,`Successfully restarted ${a.length} sources`)},restartPod:async(a,o)=>{if(t.isReadonly)return c();i("Restarting pod...");const{data:l,error:d}=await gt(r,e.RESTART_POD,{namespace:a,name:o},t);d?n(p.Update,d):l?.restartPod&&s(p.Update,`Successfully restarted pod ${a}/${o}`)},recoverFromRollback:async a=>{if(t.isReadonly)return c();i("Recovering from rollback...");const{data:o,error:l}=await gt(r,e.RECOVER_FROM_ROLLBACK,{sourceId:a},t);l?n(p.Update,l,a):o?.recoverFromRollbackForWorkload&&s(p.Update,"Successfully triggered recovery from rollback")}}})(e,t),s=((e,t)=>{const a=Qe(),{notifyError:r,notifySuccess:n,notifyReadonly:o}=Tt(T.Destination),{selectedStreamName:s}=y(),i=async()=>{const{error:n}=await ht(a,e.GET_DESTINATIONS,void 0,t);n&&r(p.Read,n)};return{useDestinations:()=>{const e=Dt("GET_DESTINATIONS",void 0,{fetchPolicy:"cache-first"});return{items:e.data?.computePlatform?.destinations??e.data?.destinations??Qt,loading:e.loading,refetch:i}},useDestinationCategories:()=>{const e=Dt("GET_DESTINATION_CATEGORIES",void 0);return{data:e.data,loading:e.loading}},usePotentialDestinations:()=>{const e=Dt("GET_POTENTIAL_DESTINATIONS",void 0);return{data:e.data,loading:e.loading}},fetchAll:i,testConnection:async r=>{const{data:n}=await gt(a,e.TEST_DESTINATION_CONNECTION,{destination:zt(r,s)},t);return n},create:async c=>{if(t.isReadonly)return o();const{error:l}=await gt(a,e.CREATE_DESTINATION,{destination:zt(c,s)},t);l?r(p.Create,l):(n(p.Create,`Successfully created "${c.type}" destination`),await i())},update:async(c,l)=>{if(t.isReadonly)return o();const{data:d,error:u}=await gt(a,e.UPDATE_DESTINATION,{id:c,destination:zt(l,s)},t);u?r(p.Update,u,c):d?.updateDestination&&(n(p.Update,`Successfully updated "${l.type}" destination`,c),await i())},remove:async c=>{if(t.isReadonly)return o();const{data:l}=await ht(a,e.GET_DESTINATIONS,void 0,t,"cache-first"),d=l?.computePlatform?.destinations??l?.destinations??Qt,u=d.find(e=>O(e)===c)?.destinationType?.type,{error:m}=await gt(a,e.DELETE_DESTINATION,{id:c,currentStreamName:s},t);m?r(p.Delete,m,c):(n(p.Delete,`Successfully deleted "${u??c}" destination`,c),await i())}}})(e,t),l=((e,t)=>{const r=Qe(),{notifyError:n,notifySuccess:o,notifyReadonly:s}=Tt(T.Action),i=async()=>{const{error:a}=await ht(r,e.GET_ACTIONS,void 0,t);a&&n(p.Read,a)};return{useActions:()=>{const e=Dt("GET_ACTIONS",void 0,{fetchPolicy:"cache-first"});return{items:e.data?.computePlatform?.actions??e.data?.actions??xt,loading:e.loading,refetch:i}},useActionTypes:()=>{const e=Dt("GET_ACTION_TYPES",void 0,{fetchPolicy:"cache-first"});return{options:a(()=>v(e.data)||$t,[e.data]),loading:e.loading}},fetchAll:i,create:async a=>{if(t.isReadonly)return s(),{error:u.READONLY_WARNING};if(!e.CREATE_ACTION)return{error:"Action creation is not supported"};const{error:c}=await gt(r,e.CREATE_ACTION,{action:a},t);return c?n(p.Create,c):(o(p.Create,`Successfully created "${a.type}" action`),await i()),c?{error:c}:void 0},update:async(a,c)=>{if(t.isReadonly)return s();if(!e.UPDATE_ACTION)return;const{error:l}=await gt(r,e.UPDATE_ACTION,{id:a,action:c},t);l?n(p.Update,l,a):(o(p.Update,`Successfully updated "${c.type}" action`,a),await i())},remove:async(a,c)=>{if(t.isReadonly)return s();if(!e.DELETE_ACTION)return;const{error:l}=await gt(r,e.DELETE_ACTION,{id:a,actionType:c},t);l?n(p.Delete,l,a):(o(p.Delete,`Successfully deleted "${c}" action`,a),await i())}}})(e,t),m=((e,t)=>{const r=Qe(),{notifyError:n,notifySuccess:o,notifyReadonly:s}=Tt(T.InstrumentationRule),i=async()=>{const{error:a}=await ht(r,e.GET_INSTRUMENTATION_RULES,void 0,t);a&&n(p.Read,a)};return{useRules:()=>{const e=Dt("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=Dt("GET_INSTRUMENTATION_RULE_TYPES",void 0,{fetchPolicy:"cache-first"});return{options:a(()=>L(e.data)||Jt,[e.data]),loading:e.loading}},fetchAll:i,create:async(a,c)=>{if(t.isReadonly)return s();if(!e.CREATE_INSTRUMENTATION_RULE)return;const{error:l}=await gt(r,e.CREATE_INSTRUMENTATION_RULE,{instrumentationRule:w(a)},t);l?n(p.Create,l):(o(p.Create,`Successfully created${c?` "${c}"`:""} rule`),await i())},update:async(a,c,l)=>{if(t.isReadonly)return s();if(!e.UPDATE_INSTRUMENTATION_RULE)return;const{error:d}=await gt(r,e.UPDATE_INSTRUMENTATION_RULE,{ruleId:a,instrumentationRule:w(c)},t);d?n(p.Update,d,a):(o(p.Update,`Successfully updated${l?` "${l}"`:""} rule`,a),await i())},remove:async(a,c)=>{if(t.isReadonly)return s();if(!e.DELETE_INSTRUMENTATION_RULE)return;const{error:l}=await gt(r,e.DELETE_INSTRUMENTATION_RULE,{ruleId:a},t);l?n(p.Delete,l,a):(o(p.Delete,`Successfully deleted${c?` "${c}"`:""} rule`,a),await i())}}})(e,t),E=((e,t)=>{const a=Qe(),{notifyError:r,notifySuccess:n,notifyReadonly:s}=Tt(R.InstrumentationAgent),i=c(r);i.current=r;const l=o(e=>{i.current(U,e?.message??M)},[]);return{useInstrumentationAgents:e=>Dt("GET_INSTRUMENTATION_AGENTS",void 0,e),useGoOffsets:e=>Dt("GET_GO_OFFSETS",void 0,{...e,onError:e?.onError??l}),getInstrumentationAgents:e.GET_INSTRUMENTATION_AGENTS?async()=>ht(a,e.GET_INSTRUMENTATION_AGENTS,void 0,t):void 0,getGoOffsets:e.GET_GO_OFFSETS?async()=>ht(a,e.GET_GO_OFFSETS,void 0,t):void 0,checkGoOffsetsUpdates:e.CHECK_GO_OFFSETS_UPDATES?async()=>{let n;try{n=await Zt()}catch(e){const t=e instanceof Error?e.message:k;return r(x,t),{error:t}}const{data:o,error:s}=await gt(a,e.CHECK_GO_OFFSETS_UPDATES,{content:n},t);return s&&r(x,s),{data:o,error:s}}:void 0,updateGoOffsets:e.UPDATE_GO_OFFSETS?async()=>{if(t.isReadonly)return s();let o;try{o=await Zt()}catch(e){const t=e instanceof Error?e.message:k;return r(F,t),{error:t}}const{error:i}=await gt(a,e.UPDATE_GO_OFFSETS,{content:o},t);return i?r(F,i):(n(p.Update,H),await(async()=>{e.GET_GO_OFFSETS&&await ht(a,e.GET_GO_OFFSETS,void 0,t)})()),i?{error:i}:void 0}:void 0}})(e,t),A=((e,t)=>{const a=Qe(),{addNotification:r}=d(),{setDataStreams:n}=y(),o=(e,t)=>r({type:S.Error,title:e,message:t}),s=async()=>{const{data:r,error:s}=await ht(a,e.GET_DATA_STREAMS,void 0,t);if(s)o(p.Read,s);else if(r){const e=r.computePlatform?.dataStreams??r.dataStreams??[];n(e)}},c=e.CREATE_DATA_STREAM?async n=>{if(t.isReadonly)return It(r);const{error:i}=await gt(a,e.CREATE_DATA_STREAM,{stream:n},t);i?o(p.Create,i):await s()}:void 0;return{useDataStreams:()=>{const e=Dt("GET_DATA_STREAMS",void 0,{fetchPolicy:"cache-first"}),t=e.data?.computePlatform?.dataStreams??e.data?.dataStreams??qt;return i(()=>{n(t)},[JSON.stringify(t.map(e=>e.name))]),{items:t,loading:e.loading,refetch:s}},fetchAll:s,create:c,update:async(n,i)=>{if(t.isReadonly)return It(r);const{error:c}=await gt(a,e.UPDATE_DATA_STREAM,{id:n,dataStream:i},t);c?o(p.Update,c):await s()},remove:async n=>{if(t.isReadonly)return It(r);const{error:i}=await gt(a,e.DELETE_DATA_STREAM,{id:n},t);i?o(p.Delete,i):await s()}}})(e,t),$=((e,t)=>{const a=Qe(),{notifyError:r,notifyReadonly:n}=Tt(T.Namespace),o=async()=>{const n=await ht(a,e.GET_NAMESPACES_WITH_WORKLOADS,void 0,t);return n.error&&r(p.Read,n.error),n};return{useNamespaces:e=>{const t=Dt("GET_NAMESPACES_WITH_WORKLOADS",void 0,{fetchPolicy:"cache-and-network",skip:e?.skip});return{items:t.data?.namespaces??Yt,loading:t.loading,refetch:o}},fetchAll:o,persist:async o=>{if(t.isReadonly)return n();const{error:s}=await gt(a,e.PERSIST_NAMESPACES,o,t);return s&&r(p.Update,s),s?{error:s}:void 0}}})(e,t),K=((e,t)=>{const a=Qe(),{notifyError:r}=Tt(T.Source);return{fetch:async n=>{const o=await ht(a,e.GET_K8S_MANIFEST,n,t);return o.error&&r(p.Read,o.error),o}}})(e,t),V=((e,t)=>{const a=Qe(),{notifyError:r,notifySuccess:n,notifyReadonly:o}=Tt(T.Source);return{useEffectiveConfig:(e,t)=>Dt("GET_EFFECTIVE_CONFIG",e,t),useConfigYamls:e=>Dt("GET_CONFIG_YAMLS",void 0,e),getEffectiveConfig:async r=>e.GET_EFFECTIVE_CONFIG?ht(a,e.GET_EFFECTIVE_CONFIG,{id:r},t):{error:"GET_EFFECTIVE_CONFIG not configured"},applyConfigurations:e.UPDATE_REMOTE_CONFIG?async(n,s)=>{if(t.isReadonly)return o();if(!s.length)return{error:"No connections selected"};const i={formData:n,connectionIds:s},c=e.UPDATE_REMOTE_CONFIG;let l;return 1===s.length?({error:l}=await gt(a,c,i,t)):({error:l}=await vt(a,c,s,i,t)),l&&r(p.Update,l),l?{error:l}:void 0}:void 0,getConfigYamls:e.GET_CONFIG_YAMLS?async()=>ht(a,e.GET_CONFIG_YAMLS,void 0,t):void 0,updateLocalUiConfig:e.UPDATE_LOCAL_UI_CONFIG?async s=>{if(t.isReadonly)return o();const{error:i}=await gt(a,e.UPDATE_LOCAL_UI_CONFIG,{config:s},t);return i?r(p.Update,i):n(p.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 o();const{error:s}=await gt(a,e.RESET_LOCAL_UI_CONFIG_TO_FACTORY_DEFAULTS,void 0,t);return s?r(p.Update,s):n(p.Update,"Local UI configuration reset to factory defaults"),s?{error:s}:void 0}:void 0}})(e,t),Y=((e,t)=>{const a=Qe(),{apolloConfig:r}=lt();return{fetchDescribeOdigos:e.GET_DESCRIBE_ODIGOS?async()=>ht(a,e.GET_DESCRIBE_ODIGOS,void 0,t):void 0,fetchDescribeSource:e.GET_DESCRIBE_SOURCE?async r=>ht(a,e.GET_DESCRIBE_SOURCE,r,t):void 0,downloadDiagnose:e.GET_DIAGNOSE?async(n,o)=>{const s=await ht(a,e.GET_DIAGNOSE,{input:n,dryRun:o?.dryRun??!1},t),i=s?.data?.stats?.fileCount??0;return!s.error&&i>0&&!o?.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),s}:void 0}})(e,t),B=((e,t)=>{const a=Qe(),{notifyError:r,notifyReadonly:n}=Tt(T.Source),o=async()=>{e.GET_TOKENS&&await ht(a,e.GET_TOKENS,void 0,t)};return{useTokens:()=>{const e=Dt("GET_TOKENS",void 0,{fetchPolicy:"cache-first"});return{items:e.data??Lt,loading:e.loading,refetch:o}},updateToken:e.UPDATE_TOKEN?async o=>{if(t.isReadonly)return n();const{error:s}=await gt(a,e.UPDATE_TOKEN,{token:o},t);return s&&r(p.Update,s),s?{error:s}:void 0}:void 0}})(e,t),W=((e,t)=>{const a=Qe();return{useMetrics:e=>Dt("GET_METRICS",void 0,e),fetch:async()=>ht(a,e.GET_METRICS,void 0,t)}})(e,t),j=((e,t)=>{const a=Qe();return{useServiceMap:e=>Dt("GET_SERVICE_MAP",void 0,e),fetch:e.GET_SERVICE_MAP?async()=>ht(a,e.GET_SERVICE_MAP,void 0,t):void 0}})(e,t),q=((e,t)=>{const a=Qe();return{useSlots:e=>Dt("GET_PROFILING_SLOTS",void 0,e),useSourceProfiling:(e,t)=>Dt("GET_SOURCE_PROFILING",e,t),useHotFunctions:(e,t)=>Dt("GET_PROFILE_HOT_FUNCTIONS",e,t),fetchSlots:e.GET_PROFILING_SLOTS?async()=>ht(a,e.GET_PROFILING_SLOTS,void 0,t):void 0,fetchSourceProfiling:e.GET_SOURCE_PROFILING?async r=>ht(a,e.GET_SOURCE_PROFILING,r,t):void 0,enableProfiling:e.ENABLE_SOURCE_PROFILING?async r=>gt(a,e.ENABLE_SOURCE_PROFILING,r,t):void 0,fetchHotFunctions:e.GET_PROFILE_HOT_FUNCTIONS?async r=>ht(a,e.GET_PROFILE_HOT_FUNCTIONS,r,t):void 0,clearProfileCache:e.CLEAR_PROFILE_CACHE?async()=>gt(a,e.CLEAR_PROFILE_CACHE,void 0,t):void 0}})(e,t),Q=((e,t)=>{const a=Qe();return{useGatewayInfo:e=>Dt("GET_GATEWAY_INFO",void 0,e),useGatewayPods:e=>Dt("GET_GATEWAY_PODS",void 0,e),useNodeCollectorInfo:e=>Dt("GET_NODE_COLLECTOR_INFO",void 0,e),useNodeCollectorPods:e=>Dt("GET_NODE_COLLECTOR_PODS",void 0,e),usePodInfo:(e,t)=>Dt("GET_COLLECTOR_POD_INFO",e,t),getGatewayInfo:e.GET_GATEWAY_INFO?async()=>ht(a,e.GET_GATEWAY_INFO,void 0,t):void 0,getGatewayPods:e.GET_GATEWAY_PODS?async()=>ht(a,e.GET_GATEWAY_PODS,void 0,t):void 0,getNodeCollectorInfo:e.GET_NODE_COLLECTOR_INFO?async()=>ht(a,e.GET_NODE_COLLECTOR_INFO,void 0,t):void 0,getNodeCollectorPods:e.GET_NODE_COLLECTOR_PODS?async()=>ht(a,e.GET_NODE_COLLECTOR_PODS,void 0,t):void 0,getExtendedPodInfo:e.GET_COLLECTOR_POD_INFO?async(r,n)=>ht(a,e.GET_COLLECTOR_POD_INFO,{namespace:r,name:n},t):void 0}})(e,t),z=((e,t)=>{const a=Qe(),{notifyError:r,notifySuccess:n,notifyReadonly:o}=Tt(T.SamplingRule),s=async()=>{e.GET_SAMPLING_RULES&&await ht(a,e.GET_SAMPLING_RULES,void 0,t)},i=(e,i)=>e?async c=>{if(t.isReadonly)return o();const{error:l}=await gt(a,e,c,t);return l?r(i,l):(n(p.Create,"Successfully created sampling rule"),await s()),l?{error:l}:void 0}:void 0,c=(e,i)=>e?async(c,l)=>{if(t.isReadonly)return o();const{error:d}=await gt(a,e,{samplingId:l.samplingId,ruleId:c,rule:l.rule},t);return d?r(i,d):(n(p.Update,"Successfully updated sampling rule"),await s()),d?{error:d}:void 0}:void 0,l=e=>e?async(i,c)=>{if(t.isReadonly)return o();const{error:l}=await gt(a,e,{samplingId:c,ruleId:i},t);return l?r(p.Delete,l):(n(p.Delete,"Successfully deleted sampling rule"),await s()),l?{error:l}:void 0}:void 0;return{useSamplingRules:()=>{const e=Dt("GET_SAMPLING_RULES",void 0,{fetchPolicy:"cache-first"});return{items:e.data?.computePlatform?.samplingRules??e.data?.samplingRules??Kt,k8sHealthProbesConfig:e.data?.computePlatform?.k8sHealthProbesConfig??e.data?.k8sHealthProbesConfig??null,loading:e.loading,refetch:s}},fetchAll:e.GET_SAMPLING_RULES?async()=>ht(a,e.GET_SAMPLING_RULES,void 0,t):void 0,createNoisy:i(e.CREATE_NOISY_OPERATION_RULE,p.Create),updateNoisy:c(e.UPDATE_NOISY_OPERATION_RULE,p.Update),deleteNoisy:l(e.DELETE_NOISY_OPERATION_RULE),createHighlyRelevant:i(e.CREATE_HIGHLY_RELEVANT_OPERATION_RULE,p.Create),updateHighlyRelevant:c(e.UPDATE_HIGHLY_RELEVANT_OPERATION_RULE,p.Update),deleteHighlyRelevant:l(e.DELETE_HIGHLY_RELEVANT_OPERATION_RULE),createCostReduction:i(e.CREATE_COST_REDUCTION_RULE,p.Create),updateCostReduction:c(e.UPDATE_COST_REDUCTION_RULE,p.Update),deleteCostReduction:l(e.DELETE_COST_REDUCTION_RULE),updateK8sHealthProbesConfig:e.UPDATE_LOCAL_UI_SAMPLING_CONFIG?async n=>{if(t.isReadonly)return o();const{error:i}=await gt(a,e.UPDATE_LOCAL_UI_SAMPLING_CONFIG,{config:{k8sHealthProbesSampling:n}},t);return i?r(p.Update,i):await s(),i?{error:i}:void 0}:void 0}})(e,t),X=((e,t)=>{const a=Qe(),{notifyError:r,notifySuccess:n,notifyReadonly:o}=Tt(T.Recommendation),s=async()=>{e.GET_RECOMMENDATIONS&&await ht(a,e.GET_RECOMMENDATIONS,void 0,t)};return{useRecommendations:()=>{const e=Dt("GET_RECOMMENDATIONS",void 0,{fetchPolicy:"cache-first"});return{items:e.data?.computePlatform?.recommendations??e.data?.recommendations??Xt,loading:e.loading,refetch:s}},fetchAll:e.GET_RECOMMENDATIONS?async()=>ht(a,e.GET_RECOMMENDATIONS,void 0,t):void 0,setDismissed:e.SET_RECOMMENDATION_DISMISSED?async(i,c)=>{if(t.isReadonly)return o(),{error:u.READONLY_WARNING};const{error:l}=await gt(a,e.SET_RECOMMENDATION_DISMISSED,{name:i,dismissed:c},t);return l?r(p.Update,l):(n(p.Update,c?D:b),await s()),l?{error:l}:void 0}:void 0,applyRemediation:e.APPLY_RECOMMENDATION_REMEDIATION?async(i,c)=>{if(t.isReadonly)return o(),{error:u.READONLY_WARNING};const{data:l,error:d}=await gt(a,e.APPLY_RECOMMENDATION_REMEDIATION,{recommendationType:i,remediationType:c},t),m=d||!l?.applyRecommendationRemediation;return m?r(p.Update,d||C):(n(p.Update,G),await s()),m?{error:d||C}:void 0}:void 0}})(e,t),J=((e,t)=>{const r=Qe();return{useSnapshots:()=>{const e=t.proxyID,r=!!e,n=Dt("GET_ALL_CLUSTER_SNAPSHOTS",void 0,{fetchPolicy:"cache-and-network",skip:r}),s=Dt("GET_CLUSTER_SNAPSHOT",e?{clusterId:e}:void 0,{fetchPolicy:"cache-and-network",skip:!r}),i=a(()=>r?Bt(s.data):n.data,[r,s.data,n.data]),c=r?s.loading:n.loading,l=o(async()=>{if(!r)return n.refetch();const{data:e}=await s.refetch();return{data:Bt(e)}},[r,n.refetch,s.refetch]);return{data:i,loading:c,pending:c&&!i,unsupported:r?s.unsupported:n.unsupported,refetch:l}},getAllClusterSnapshots:e.GET_ALL_CLUSTER_SNAPSHOTS?async()=>ht(r,e.GET_ALL_CLUSTER_SNAPSHOTS,void 0,t):void 0,getClusterSnapshot:e.GET_CLUSTER_SNAPSHOT?async a=>ht(r,e.GET_CLUSTER_SNAPSHOT,{clusterId:a},t):void 0}})(e,t),Z=((e,t)=>{const a=Qe(),{notifyError:r,notifySuccess:n,notifyReadonly:s}=Tt(R.Connection),i=o(async()=>{if(!e.GET_COMPUTE_PLATFORMS)return[];const{data:n,error:o}=await ht(a,e.GET_COMPUTE_PLATFORMS,void 0,t);return o&&r(p.Read,o),n??[]},[a,e.GET_COMPUTE_PLATFORMS,t,r]);return{useConnections:()=>{const e=Dt("GET_COMPUTE_PLATFORMS",void 0,{fetchPolicy:"cache-and-network"});return{items:e.data??Wt,loading:e.loading,unsupported:e.unsupported,refetch:i}},useCloudConnectorProviders:()=>{const e=Dt("GET_CLOUD_CONNECTOR_PROVIDERS",void 0,{fetchPolicy:"cache-first"});return{items:e.data??jt,loading:e.loading,unsupported:e.unsupported}},createCloudConnector:e.CREATE_CLOUD_CONNECTOR?async n=>{if(t.isReadonly)throw s(),new Error("Readonly");const{data:o,error:c}=await gt(a,e.CREATE_CLOUD_CONNECTOR,{input:n},t);if(c)throw r(p.Create,c),new Error(c);if(!o)throw new Error("No result returned from create connector");return o.created&&await i(),o}:void 0,deleteConnection:e.DELETE_PROXY_CONNECTION||e.DELETE_CLOUD_CONNECTOR?async(o,c)=>{if(t.isReadonly)return s();if(c===I.Connector){if(!e.DELETE_CLOUD_CONNECTOR)return r(p.Delete,"DELETE_CLOUD_CONNECTOR not configured"),{success:!1,error:"DELETE_CLOUD_CONNECTOR not configured"};const{data:s,error:c}=await gt(a,e.DELETE_CLOUD_CONNECTOR,{connectorId:o},t);if(c)return r(p.Delete,c),{success:!1,error:c};const l=s??{success:!1,error:"Failed to delete connection"};return l.success?(n(p.Delete,"Connection deleted successfully"),await i(),l):(r(p.Delete,l.error||"Failed to delete connection"),l)}if(!e.DELETE_PROXY_CONNECTION)return r(p.Delete,"DELETE_PROXY_CONNECTION not configured"),{success:!1,error:"DELETE_PROXY_CONNECTION not configured"};const{data:l,error:d}=await gt(a,e.DELETE_PROXY_CONNECTION,{proxyID:o},t);if(d)return r(p.Delete,d),{success:!1,error:d};const u=l??{success:!1,error:"Failed to delete connection"};return u.success?(n(p.Delete,"Connection deleted successfully"),await i(),u):(r(p.Delete,u.error||"Failed to delete connection"),u)}:void 0}})(e,t);return{sourcesApi:n,destinationsApi:s,actionsApi:l,instrumentationRulesApi:m,instrumentationAgentsApi:E,dataStreamsApi:A,namespacesApi:$,k8sManifestApi:K,configApi:V,describeApi:Y,tokensApi:B,metricsApi:W,serviceMapApi:j,profilingApi:q,collectorsApi:Q,samplingApi:z,recommendationsApi:X,snapshotsApi:J,connectionsApi:Z,insightsApi:Vt(e,t),capabilities:a(()=>((e,t)=>{const a=t.platformType===I.K8s,r=a,n=a,o=t.platformType===I.Vm,s=!o,i=!(t.platformType===I.Connector);return{canBulkPersistSources:s&&!!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:s&&!!e.TEST_DESTINATION_CONNECTION,canFetchDestinationCategories:!!e.GET_DESTINATION_CATEGORIES,canFetchPotentialDestinations:s&&!!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:s&&!!e.UPDATE_REMOTE_CONFIG,canFetchEffectiveConfig:!!e.GET_EFFECTIVE_CONFIG,canFetchConfigYamls:!!e.GET_CONFIG_YAMLS,canFetchProfiling:r&&!!e.GET_PROFILING_SLOTS||o&&(!!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,canManageInsightsRecommendations:!!e.GET_INSIGHTS_RECOMMENDATIONS,canManageRecommendations:r&&!!e.GET_RECOMMENDATIONS}})(e,t),[e,t]),resetCache:o(async()=>{await r.cache.reset()},[r])}},ta={type:"",disabled:!1,name:"",notes:"",signals:[],fields:{}},aa=n(null),ra=e=>e?.length?e.map(e=>!e.fromSources?.length&&e.from?{...e,fromSources:[e.from]}:e):e,na=(e,t)=>{const a=V(e??{}),r=a[B.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[B.LabelsAttributes]&&(a[B.LabelsAttributes]=ra(a[B.LabelsAttributes])),a[B.AnnotationsAttributes]&&(a[B.AnnotationsAttributes]=ra(a[B.AnnotationsAttributes])),a[B.UrlTemplatizationRulesGroups]&&(a[B.UrlTemplatizationRulesGroups]=(n=a[B.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 o=new Set((t?.fields||[]).filter(e=>e.componentType===W.SourceScopes).map(e=>e.name));return void 0!==a[B.Scopes]&&o.add(B.Scopes),o.forEach(e=>{const t=e;a[t]=He(a[t])}),a},oa="All row fields are required",sa="At least one row is required",ia=(e,t)=>!!e&&t.every(t=>{const a=e[t];return Array.isArray(a)?a.length>0:!("string"==typeof(r=a)?!r.trim():q(r));var r}),ca=({children:t,sourceOptions:r=[],namespaceOptions:n=[]})=>{const[i,c]=s(null),l=K(ta),d=o(e=>{l.resetFormData(),l.handleErrorChange(void 0,void 0,{}),e?.type&&l.handleFormChange("type",e.type),c(e)},[]),m=o((e,t)=>{const a=t??(r=e.type,Y.find(e=>e.type===r)??null);var r;l.resetFormData((({type:e,name:t,notes:a,disabled:r,signals:n,fields:o},s)=>({type:e,name:t||"",notes:a||"",disabled:!!r,signals:n??[],fields:na(o,s)}))(e,a)),l.handleErrorChange(void 0,void 0,{}),c(a)},[]),S=o(()=>{if(!i)return{errorMessage:"No action type selected",preparedFormData:V(ta)};const e=((e,t)=>{const a=V(e),r=a.fields||{},n=r[B.UrlTemplatizationRulesGroups];n?.length&&(r[B.UrlTemplatizationRulesGroups]=n.map(e=>({...e,templatizationRules:(e.templatizationRules||[]).filter(e=>!!e.template?.trim())})));const o=r[B.AttributeNamesToDelete];o?.length&&(r[B.AttributeNamesToDelete]=o.filter(e=>!!e?.trim()));const s=r[B.Renames];if(s){const e=Array.isArray(s)?s.map(e=>[e?.key??"",e?.value??""]):Object.entries(s);r[B.Renames]=Object.fromEntries(e.filter(([e,t])=>!!e?.trim()&&!!t?.trim()))}const i=new Set((t?.fields||[]).filter(e=>e.componentType===W.SourceScopes).map(e=>e.name));void 0!==r[B.Scopes]&&i.add(B.Scopes),i.forEach(e=>{const t=r[e];void 0!==t&&(r[e]=ke(t)?null:t)});const c=r[B.ExtractAttribute];return c?.extractions?.length&&(r[B.ExtractAttribute]={extractions:c.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})(l.formData,i),t={};return q(e.signals)&&(t.signals=u.FIELD_IS_REQUIRED),i.type&&Object.assign(t,((e,t,a)=>{const r={},n=t.fields||{},o=a.fields||{};switch(e){case j.K8sAttributes:{const e=!(n[B.CollectContainerAttributes]||n[B.CollectReplicaSetAttributes]||n[B.CollectWorkloadId]||n[B.CollectClusterId]),t=!n[B.LabelsAttributes]?.length,a=!n[B.AnnotationsAttributes]?.length;e&&t&&a&&(r[B.CollectContainerAttributes]="Enable at least one option or add a label/annotation row");const o=n[B.LabelsAttributes];o?.some(e=>!ia(e,["labelKey","attributeKey","fromSources"]))&&(r[B.LabelsAttributes]=oa);const s=n[B.AnnotationsAttributes];s?.some(e=>!ia(e,["annotationKey","attributeKey","fromSources"]))&&(r[B.AnnotationsAttributes]=oa);break}case j.AddClusterInfo:{const e=n[B.ClusterAttributes];e?.length?e.some(e=>!ia(e,["attributeName","attributeStringValue"]))&&(r[B.ClusterAttributes]=oa):r[B.ClusterAttributes]=sa;break}case j.DeleteAttributes:{const e=o[B.AttributeNamesToDelete]||[],t=n[B.AttributeNamesToDelete]||[];t.length?e.length>t.length&&(r[B.AttributeNamesToDelete]=oa):r[B.AttributeNamesToDelete]=e.length?oa:sa;break}case j.RenameAttributes:{const e=Object.entries(o[B.Renames]||{}),t=Object.entries(n[B.Renames]||{}),a=e.some(([e,t])=>!e?.trim()||!t?.trim());t.length?a&&(r[B.Renames]=oa):r[B.Renames]=e.length?oa:sa;break}case j.PiiMasking:{const e=n[B.PiiCategories];e?.length||(r[B.PiiCategories]="Select at least one attribute to mask");break}case j.URLTemplatization:{const e=n[B.UrlTemplatizationRulesGroups];(!e?.length||e.some(e=>!e.templatizationRules?.length))&&(r[B.UrlTemplatizationRulesGroups]="Each rule group needs at least one non-blank template");break}case j.ExtractAttribute:{const e=n[B.ExtractAttribute]?.extractions||[],t=o[B.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[B.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[B.ExtractAttribute]="Each new span attribute name must be unique")}else r[B.ExtractAttribute]=t.length?oa:sa;break}}return r})(i.type,e,l.formData)),l.handleErrorChange(void 0,void 0,t),{errorMessage:Object.keys(t).length>0?"Invalid form values":void 0,preparedFormData:e}},[l,i]),E=a(()=>({selectedOption:i,onSelectOption:d,loadAction:m,genericForm:l,validateFormData:S,sourceOptions:r,namespaceOptions:n}),[i,d,m,l,S,r,n]);return e(aa.Provider,{value:E,children:t})},la=()=>{const e=r(aa);if(!e)throw new Error("useActionFormContext must be used within an ActionFormContextProvider");return e},da={provider:"",permission:"",customCapabilities:{},authMethod:"",setupMethod:"",accountId:"",credentials:{},accessToken:"",secretId:"",name:""},ua=n(null),ma=({children:t})=>{const{connectionsApi:r}=ea(),{items:n}=r.useCloudConnectorProviders(),s=K(da),i=o(()=>{const e=V(s.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}},[s]),c=a(()=>({providers:n,genericForm:s,validateFormData:i}),[n,s,i]);return e(ua.Provider,{value:c,children:t})},Sa=()=>{const e=r(ua);if(!e)throw new Error("useCloudConnectorFormContext must be used within a CloudConnectorFormContextProvider");return e},Ea={name:""},pa=n(null),Ta=({children:t,defaultExcludeName:r=""})=>{const{dataStreams:n}=y(),[i,l]=s(void 0),[d,m]=s(r),[S,E]=s(void 0),[p,T]=s(null),I=c(null),f=K(Ea),_=o(e=>{f.resetFormData({name:e}),f.handleErrorChange(void 0,void 0,{}),l(void 0),m(e),E(e),T(null),I.current=null},[]),N=o(()=>{const e=V(f.formData),t=(e=>{const t={};return e.name?Q(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 l(a),{errorMessage:a,preparedFormData:e}},[f]),h=o(async e=>{const{errorMessage:t,preparedFormData:a}=N();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)},[N,n,d,S]),g=o(async()=>{const e=I.current,t=p?.preparedFormData;I.current=null,T(null),e&&t&&await e(t)},[p]),v=o(()=>{I.current=null,T(null)},[]),A=a(()=>({genericForm:f,loadDataStream:_,editingName:S,validateFormData:N,requestSubmit:h,pendingMerge:p,confirmMerge:g,cancelMerge:v,errorMessage:i,excludeName:d,setExcludeName:m}),[f,_,S,N,h,p,g,v,i,d]);return e(pa.Provider,{value:A,children:t})},Ia=()=>{const e=r(pa);if(!e)throw new Error("useDataStreamFormContext must be used within a DataStreamFormContextProvider");return e},ya={type:"",name:"",currentStreamName:"",disabled:!1,exportedSignals:{logs:!1,metrics:!1,traces:!1,profiles:!1},fields:[]},fa={activeForm:null,onChangeActiveForm:()=>{},loadDestination:()=>{},genericForm:void 0,validateFormData:()=>({isOk:!1,preparedFormData:V(ya)}),unsavedDestinations:[],thisUnsavedDestination:void 0,setUnsavedDestinations:()=>{},addUnsavedDestination:()=>{},updateUnsavedDestination:()=>{},deleteUnsavedDestination:()=>{}},_a=n(fa),Na=e=>e.filter(e=>!!e).map(e=>{const{name:t,componentType:a,componentProperties:r,displayName:n,initialValue:o,renderCondition:s}=e,i=a===W.Dropdown,c=Z(r,{});return{componentType:a,renderCondition:s,name:t,title:n,value:o,placeholder:c.placeholder||(i?"Select an option":void 0),options:i&&Array.isArray(c.values)?c.values.map(e=>({id:e,label:e})):void 0,...c}}),ha=({children:t})=>{const{selectedStreamName:r}=y(),{items:n}=ea().destinationsApi.useDestinations(),[c,l]=s(null),[d,m]=s(fa.unsavedDestinations),S=a(()=>"number"==typeof c?.unsavedIdx?d[c.unsavedIdx]:void 0,[c,d]),E=o((e,t)=>{c&&(m(t=>[...t,{...e,option:c.option}]),l(t?e=>e?{...e,listType:z.UNSAVED,unsavedIdx:d.length}:null:null))},[c,d.length]),p=o((e,t,a)=>{c&&(m(a=>a.map((a,r)=>r===e?{...a,...t,option:c.option}:a)),l(a?e=>e?{...e,listType:z.UNSAVED}:null:null))},[c]),T=o(e=>{m(t=>t.filter((t,a)=>a!==e)),l(null)},[]),I=K({...ya,currentStreamName:r});i(()=>{if(!c)return;if(S)return void I.resetFormData({...S.formData});if(c.listType===z.EXISTS&&c.option.id){const e=n.find(e=>e.id===c.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:c.dynamicFields.map(e=>({key:e.name,value:e.value}))})}const e=X(c.option.supportedSignals);I.resetFormData({type:c.option.type,name:c.option.displayName,currentStreamName:r,disabled:!1,exportedSignals:{logs:e.includes(J.Logs),metrics:e.includes(J.Metrics),traces:e.includes(J.Traces),profiles:e.includes(J.Profiles)},fields:c.dynamicFields.map(e=>({key:e.name,value:e.value}))})},[c,S]);const f=o(e=>{I.resetFormData(),I.handleErrorChange(void 0,void 0,{}),l(e?{...e,dynamicFields:e.option?.fields?Na(e.option.fields):[]}:null)},[]),_=o((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=Z(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})):[]},o=Na(n.fields);l({listType:z.EXISTS,option:n,dynamicFields:o})},[]),N=o(()=>{const e=V(I.formData),t={};return c?.dynamicFields.forEach(({name:a,required:r})=>{if(r){const r=e.fields.find(e=>e.key===a)?.value;q(r)&&(t[a]=u.FIELD_IS_REQUIRED)}}),ee(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,c]);return e(_a.Provider,{value:{activeForm:c,onChangeActiveForm:f,loadDestination:_,genericForm:I,validateFormData:N,unsavedDestinations:d,thisUnsavedDestination:S,setUnsavedDestinations:m,addUnsavedDestination:E,updateUnsavedDestination:p,deleteUnsavedDestination:T},children:t})},ga=()=>r(_a),va="http.response.status_code",Aa="rpc.grpc.status_code",Ra="http.status_code",Oa=(e,t)=>{switch(e){case va:case Ra:return t;case Aa:return`gRPC ${t}`;default:return t}},Ca=({operationName:e,identityDimensions:t})=>{const a=e||"",r=t??[];return r.length?`${a} · ${r.map(e=>Oa(e.key,e.value)).join(" · ")}`:a},Ga=e=>{const t=e.indexOf("\t"),a=t>=0?e.slice(0,t):"",r=t>=0?e.slice(t+1):e,{operationName:n,identityDimensions:o}=Da(r),s=Ca({operationName:n,identityDimensions:o});return a?`${a} ${s}`:s},Da=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}},ba=e=>{const t=`${e.namespace}/${e.service}`,a=Ca(e);return a?`${t} · ${a}`:t},wa=({operationName:a,identityDimensions:r,tagVariant:n=re.Blue,fallback:o="-"})=>{const s=r??[];return t(te,{$gap:6,$alignItems:"center",children:[e(ae,{label:a||o,variant:n}),s.map(t=>e(ne,{text:t.key,children:e(ae,{label:Oa(t.key,t.value)})},`${t.key}=${t.value}`))]})};var La,Pa;(e=>{e.Global="global",e.Service="service",e.Transaction="transaction"})(La||(La={})),(e=>{e.Low="low",e.Medium="medium",e.High="high",e.Critical="critical"})(Pa||(Pa={}));const Ua=e=>e.scope===La.Global,Ma=n(null),Fa=(e,t)=>`${e}/${t}`,ka={scopeType:La.Service,selectedKey:""},Ha=({children:t,services:r,transactions:n,existingScopeKeys:c,onSubmit:l})=>{const d=K(ka),[u,m]=s(!1),{scopeType:S,selectedKey:E}=d.formData,p=a(()=>{const e=new Set,t=[];for(const a of r){if(!a.namespace||!a.service)continue;const r=Fa(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:ba(e)})).sort((e,t)=>e.label.localeCompare(t.label)),[n]),I=S===La.Service?p:T;i(()=>{const e=I.find(e=>!c.includes(e.id))?.id||I[0]?.id||"";E&&I.some(e=>e.id===E)||d.handleFormChange("selectedKey",e)},[I,c,E,d]);const y=!!E&&!u,f=o(async()=>{if(!y)return;const e=I.find(e=>e.id===E);m(!0);try{await l({scope:S,scopeKey:E,name:e?.label||E})}finally{m(!1)}},[y,I,E,S,l]),_=a(()=>({services:r,transactions:n,existingScopeKeys:c,genericForm:d,serviceOptions:p,transactionOptions:T,options:I,canCreate:y,submitting:u,handleSubmit:f}),[r,n,c,d,p,T,I,y,u,f]);return e(Ma.Provider,{value:_,children:t})},xa=()=>{const e=r(Ma);if(!e)throw new Error("useDetectionOverrideFormContext must be used within a DetectionOverrideFormContextProvider");return e},$a=[{id:Pa.Low,label:oe},{id:Pa.Medium,label:se},{id:Pa.High,label:ie},{id:Pa.Critical,label:ce}],Ka={[Pa.Low]:20,[Pa.Medium]:40,[Pa.High]:60,[Pa.Critical]:75},Va=n(null),Ya=({children:t,policy:r,onSave:n,onDelete:c})=>{const l=K(r),[d,u]=s(!1),[m,S]=s(!1);i(()=>{l.resetFormData(r)},[r]);const E=l.isFormDirty,p=d||m,T=E&&!p,I=E&&!p,y=o(e=>{const t=e[0]||Pa.Medium,a=l.formData;l.handleFormChange(void 0,void 0,{...a,riskLevel:t,fireAtScore:Ka[t],summary:Ua(a)?a.summary:le(Ka[t],a.signalWeightOverrideCount)})},[l]),f=o(e=>{const t=l.formData;l.handleFormChange(void 0,void 0,{...t,signalWeights:e.signalWeights,enricherLists:e.enricherLists,signalWeightOverrideCount:e.overrideCount,summary:Ua(t)?t.summary:le(t.fireAtScore,e.overrideCount)})},[l]),_=o(async()=>{if(T){u(!0);try{await n(l.formData)}finally{u(!1)}}},[l.formData,T,n]),N=o(()=>{l.resetFormData(r)},[l,r]),h=o(async()=>{if(c){S(!0);try{await c()}finally{S(!1)}}},[c]),g=a(()=>({policy:r,genericForm:l,isDirty:E,canUpdate:T,canDiscard:I,isSaving:d,isDeleting:m,handleSave:_,handleDiscard:N,handleDelete:h,handleRiskLevelChange:y,handleSignalWeightsChange:f}),[r,l,E,T,I,d,m,_,N,h,y,f]);return e(Va.Provider,{value:g,children:t})},Ba=()=>{const e=r(Va);if(!e)throw new Error("useDetectionPolicyFormContext must be used within a DetectionPolicyFormContextProvider");return e},Wa=()=>({name:"",left:{service:"",span:"",attr:"",extract:""},right:{service:"",span:"",attr:"",extract:""},relation:ue.Equals,severity:de.Critical,why:""}),ja=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??""}),qa=(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===_e}));return{id:(r=e.scope,n=e.scopeKey,`${r}::${n}`),scope:e.scope,scopeKey:e.scopeKey,title:t||e.scopeKey,rules:a,mode:Xa(e),hasAuto:a.some(e=>e.isAuto)};var r,n},Qa=(e,t)=>e.rules.find(e=>e.key===t)?.allowlist?.filter(Boolean)??[],za=(e,t=Se)=>(e.rules.find(e=>e.key===t)?.correlations??[]).map(ja),Xa=e=>e.rules[0]?.mode||pe.Suggest,Ja=(...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},Za=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||ue.Equals,severity:e.severity||de.Critical,why:e.why?.trim()||void 0}:null},er=e=>!!Za(e),tr=[""],ar={scopeType:Ee.Service,mode:pe.Enforce,callers:[],callees:[],egress:[],transactions:[],extraCallers:tr,extraCallees:tr,extraEgress:tr,correlations:[Wa()]},rr=e=>{const t=e.scope===Ee.Transaction;return{scopeType:t?Ee.Transaction:Ee.Service,mode:Xa(e),callers:Qa(e,Te),callees:Qa(e,Ie),egress:Qa(e,ye),transactions:Qa(e,fe),extraCallers:tr,extraCallees:tr,extraEgress:tr,correlations:t?za(e):[Wa()]}},nr=(e,t)=>({scopeType:t,mode:pe.Enforce,callers:e?.callers??[],callees:e?.callees??[],egress:e?.egress??[],transactions:e?.transactions??[],extraCallers:tr,extraCallees:tr,extraEgress:tr,correlations:[Wa()]}),or=e=>e.map(e=>e.trim()).filter(Boolean),sr=n(null),ir=(e,t,a)=>a?Array.from(new Set([...e,t])):e.filter(e=>e!==t),cr=({children:t,profile:r,profileLoading:n=!1,transactions:c=[],guardrail:l=null,namespace:d="",service:u="",transactionId:m="",initialScopeType:S=Ee.Service,onTransactionChange:E,hideActions:p=!1,onSubmit:T,onDelete:I})=>{const y=!!l,f=K({...ar,scopeType:S}),[_,N]=s(!1);i(()=>{l?f.resetFormData(rr(l)):f.resetFormData(nr(r,f.formData.scopeType))},[l,r]);const h=a(()=>l&&l.scope===Ee.Service?(e=>{const t=e.indexOf("/");return t<0?{namespace:"",service:e}:{namespace:e.slice(0,t),service:e.slice(t+1)}})(l.scopeKey):null,[l]),g=y?h?.namespace||"":d,v=y?h?.service||"":u,A=y&&l?.scope===Ee.Transaction?l.scopeKey:m,{scopeType:R,mode:O,callers:C,callees:G,egress:D,transactions:b,extraCallers:w,extraCallees:L,extraEgress:P,correlations:U}=f.formData,M=a(()=>l?Ja(Qa(l,Te),r?.callers):r?.callers??[],[l,r?.callers]),F=a(()=>l?Ja(Qa(l,Ie),r?.callees):r?.callees??[],[l,r?.callees]),k=a(()=>l?Ja(Qa(l,ye),r?.egress):r?.egress??[],[l,r?.egress]),H=a(()=>l?Ja(Qa(l,fe),r?.transactions):r?.transactions??[],[l,r?.transactions]),x=a(()=>or(w),[w]),$=a(()=>or(L),[L]),V=a(()=>or(P),[P]),Y=a(()=>l?{callers:M.length>0||x.length>0||l.rules.some(e=>e.key===Te),callees:F.length>0||$.length>0||l.rules.some(e=>e.key===Ie),egress:k.length>0||V.length>0||l.rules.some(e=>e.key===ye),transactions:H.length>0||l.rules.some(e=>e.key===fe)}:{callers:M.length>0||x.length>0,callees:F.length>0||$.length>0,egress:k.length>0||V.length>0,transactions:(r?.transactions?.length??0)>0},[l,r,M,F,k,H,x,$,V]),B=f.isFormDirty,W=!!g&&!!v,j=!!A,q=U.some(er),Q=!y&&!_&&(R===Ee.Service?W:j&&q),z=y&&!_&&B&&(R===Ee.Service||q),X=y&&B&&!_,J=y&&!!I,Z=o(()=>{y&&f.resetFormData(l?rr(l):nr(r,R))},[y,l,r,R,f]),ee=o(e=>f.handleFormChange("mode",e),[f]),te=o(e=>{y||f.handleFormChange("scopeType",e)},[f,y]),ae=o(e=>f.handleFormChange("correlations",e),[f]),re=o(e=>f.handleFormChange("extraCallers",e),[f]),ne=o(e=>f.handleFormChange("extraCallees",e),[f]),oe=o(e=>f.handleFormChange("extraEgress",e),[f]),se=o((e,t)=>f.handleFormChange("callers",ir(f.formData.callers,e,t)),[f]),ie=o((e,t)=>f.handleFormChange("callees",ir(f.formData.callees,e,t)),[f]),ce=o((e,t)=>f.handleFormChange("egress",ir(f.formData.egress,e,t)),[f]),le=o((e,t)=>f.handleFormChange("transactions",ir(f.formData.transactions,e,t)),[f]),de=o(e=>f.handleFormChange("callers",e?[...M]:[]),[f,M]),ue=o(e=>f.handleFormChange("callees",e?[...F]:[]),[f,F]),pe=o(e=>f.handleFormChange("egress",e?[...k]:[]),[f,k]),_e=o(e=>f.handleFormChange("transactions",e?[...H]:[]),[f,H]),Ne=o(()=>{if(R===Ee.Transaction){const e=l?.rules.find(e=>e.key===Se)?.origin;return(e=>{const t=e.correlations.map(Za).filter(e=>!!e);return e.scopeKey.trim()&&t.length?{scope:Ee.Transaction,scopeKey:e.scopeKey.trim(),rules:[{key:Se,label:me,mode:e.mode,correlations:t,origin:e.origin||void 0}]}:null})({scopeKey:A,mode:O,correlations:U,origin:e})}return W?(e=>{const t=e.governed??{},a=e.origins??{},r=[{key:Te,label:"Allowed callers",allowlist:e.callers,keep:e.callers.length>0||!!t.callers},{key:Ie,label:"Allowed callees",allowlist:e.callees,keep:e.callees.length>0||!!t.callees},{key:ye,label:"Allowed egress",allowlist:e.egress,keep:e.egress.length>0||!!t.egress},{key:fe,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:Ee.Service,scopeKey:y&&l?l.scopeKey:`${g}/${v}`,mode:O,callers:Ja(C,x),callees:Ja(G,$),egress:Ja(D,V),transactions:b,governed:Y,origins:l?Object.fromEntries(l.rules.map(e=>[e.key,e.origin])):void 0}):null},[R,A,O,U,W,y,l,g,v,C,G,D,b,x,$,V,Y]),he=o(async()=>{if(!(y?z:Q))return;const e=Ne();if(e){N(!0);try{await T(e)}finally{N(!1)}}},[y,z,Q,Ne,T]),ge=o(async()=>{if(I&&l&&!_){N(!0);try{await I(l.scopeKey,l.scope)}finally{N(!1)}}},[I,l,_]),ve=a(()=>({profile:r,profileLoading:n,guardrail:l,isEdit:y,namespace:g,service:v,transactionId:A,transactions:c,onTransactionChange:E,genericForm:f,isDirty:B,isSubmitting:_,canCreate:Q,canUpdate:z,canDiscard:X,canDelete:J,hideActions:p,handleDiscard:Z,handleSubmit:he,handleDelete:ge,setMode:ee,setScopeType:te,setCorrelations:ae,callerItems:M,calleeItems:F,egressItems:k,transactionItems:H,setExtraCallers:re,setExtraCallees:ne,setExtraEgress:oe,toggleCaller:se,toggleCallee:ie,toggleEgress:ce,toggleTransaction:le,toggleAllCallers:de,toggleAllCallees:ue,toggleAllEgress:pe,toggleAllTransactions:_e}),[r,n,l,y,g,v,A,c,E,f,B,_,Q,z,X,J,p,Z,he,ge,ee,te,ae,M,F,k,H,re,ne,oe,se,ie,ce,le,de,ue,pe,_e]);return e(sr.Provider,{value:ve,children:t})},lr=()=>{const e=r(sr);if(!e)throw new Error("useGuardrailFormContext must be used within a GuardrailFormContextProvider");return e};var dr;(e=>{e.Minutes="minutes",e.Hours="hours",e.Days="days"})(dr||(dr={}));const ur=e=>e.scope===Ee.Global,mr=Object.values(Ne),Sr=n(null),Er=(e,t)=>`${e}/${t}`,pr=({children:t,services:r,transactions:n,existingOverrides:c,initialClass:l,onSubmit:d})=>{const u=K((e=>({deviationClass:e||mr[0],scopeType:Ee.Service,selectedKey:""}))(l)),[m,S]=s(!1),{deviationClass:E,scopeType:p,selectedKey:T}=u.formData;i(()=>{l&&u.handleFormChange("deviationClass",l)},[l,u]);const I=a(()=>c.filter(e=>e.class===E).map(e=>e.scopeKey),[c,E]),y=a(()=>{const e=new Set,t=[];for(const a of r){if(!a.namespace||!a.service)continue;const r=Er(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:ba(e)})).sort((e,t)=>e.label.localeCompare(t.label)),[n]),_=p===Ee.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 N=!!E&&!!T&&!m,h=o(async()=>{if(!N)return;const e=_.find(e=>e.id===T);S(!0);try{await d({class:E,scope:p,scopeKey:T,name:e?.label||T})}finally{S(!1)}},[N,_,T,E,p,d]),g=a(()=>({services:r,transactions:n,existingOverrides:c,genericForm:u,options:_,canCreate:N,submitting:m,handleSubmit:h}),[r,n,c,u,_,N,m,h]);return e(Sr.Provider,{value:g,children:t})},Tr=()=>{const e=r(Sr);if(!e)throw new Error("useLearningOverrideFormContext must be used within a LearningOverrideFormContextProvider");return e};let Ir=0;const yr=()=>"cond-"+ ++Ir,fr=(e,t,a)=>`${e}:${t||"global"}:${a}`,_r=(e,t)=>{switch(t){case dr.Days:return Math.max(0,Math.round(24*e*60));case dr.Hours:return Math.max(0,Math.round(60*e));case dr.Minutes:default:return Math.max(0,Math.round(e))}},Nr=e=>e<=0?{value:0,unit:dr.Minutes}:e%1440==0?{value:e/1440,unit:dr.Days}:e%60==0?{value:e/60,unit:dr.Hours}:{value:e,unit:dr.Minutes},hr=e=>{const{value:t,unit:a}=Nr(e);return a===dr.Days?7===t?"1w":`${t}d`:a===dr.Hours?`${t}h`:`${t}m`},gr=e=>{const{value:t,unit:a}=Nr(e);return a===dr.Days?1===t?"1 day":`${t} days`:a===dr.Hours?1===t?"1 hour":`${t} hours`:1===t?"1 minute":`${t} minutes`},vr=e=>{switch(e.type){case ge.StableObservations:return`Unchanged for ${e.value} observations`;case ge.StableDuration:return`unchanged for ${hr(_r(e.value,e.durationUnit))}`;case ge.MinObservations:return`Min ${e.value} observations`;case ge.MinDuration:return`min ${hr(_r(e.value,e.durationUnit))}`;default:return""}},Ar=e=>{switch(e.type){case ge.StableObservations:return`unchanged for ${e.value} observations`;case ge.StableDuration:return`unchanged for ${gr(_r(e.value,e.durationUnit))}`;case ge.MinObservations:return`at least ${e.value} observations`;case ge.MinDuration:return`at least ${gr(_r(e.value,e.durationUnit))}`;default:return""}},Rr=(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===Ae.All?" AND ":t===Ae.KOf?` (${he} ${a??1}) `:" OR ";return r.join(n)})(t.map(vr),e,a):"Falls back to count-only default",Or=e=>{const{value:t,durationUnit:a}=(e=>{switch(e.type){case ge.StableObservations:return{value:e.stableObservations??0,durationUnit:dr.Hours};case ge.MinObservations:return{value:e.minObservations??0,durationUnit:dr.Hours};case ge.StableDuration:{const t=e.stableMinutes??0,a=Nr(t);return{value:a.value,durationUnit:a.unit}}case ge.MinDuration:{const t=e.minDurationMinutes??0,a=Nr(t);return{value:a.value,durationUnit:a.unit}}default:return{value:0,durationUnit:dr.Hours}}})(e);return{key:yr(),type:e.type,value:t,durationUnit:a}},Cr=e=>{const t=_r(e.value,e.durationUnit);switch(e.type){case ge.StableObservations:return{type:e.type,minObservations:null,minDurationMinutes:null,stableObservations:e.value,stableMinutes:null};case ge.MinObservations:return{type:e.type,minObservations:e.value,minDurationMinutes:null,stableObservations:null,stableMinutes:null};case ge.StableDuration:return{type:e.type,minObservations:null,minDurationMinutes:null,stableObservations:null,stableMinutes:t};case ge.MinDuration:return{type:e.type,minObservations:null,minDurationMinutes:t,stableObservations:null,stableMinutes:null};default:return{type:e.type}}},Gr=(e=ge.StableObservations)=>({key:yr(),type:e,value:ve(e)?1:100,durationUnit:dr.Hours}),Dr=e=>{const t=(e.conditions??[]).map(Or),a=e.mode,r=e.minMatches??null,n=e.scope,o=Re[e.class],s=n===Ee.Global?o:`${o} · ${e.scopeKey}`;return{id:fr(n,e.scopeKey,e.class),name:s,class:e.class,mode:a,conditions:t,minMatches:r,scope:n,scopeKey:e.scopeKey,summary:Rr(a,t,r)}},br=(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!==Ee.Transaction)return e;const t=a.get(e.scopeKey);return t?{...e,name:`${Re[e.class]} · ${ba(t)}`}:e})},wr=e=>({class:e.class,mode:e.mode,conditions:e.conditions.map(Cr),minMatches:e.mode===Ae.KOf?e.minMatches??1:null,scope:e.scope,scopeKey:e.scopeKey}),Lr=({scope:e,scopeKey:t,source:a,displayName:r})=>{const n=a.conditions.map(e=>({...e,key:yr()})),o=r||t;return{id:fr(e,t,a.class),name:`${Re[a.class]} · ${o}`,class:a.class,mode:a.mode,conditions:n,minMatches:a.minMatches,scope:e,scopeKey:t,summary:Rr(a.mode,n,a.minMatches)}},Pr=e=>{const t=[Gr()],a=Ae.Any;return{id:fr(Ee.Global,"",e),name:Re[e],class:e,mode:a,conditions:t,minMatches:null,scope:Ee.Global,scopeKey:"",summary:Rr(a,t,null)}},Ur=e=>({...e,summary:Rr(e.mode,e.conditions,e.minMatches)}),Mr=n(null),Fr=({children:t,policy:r,onSave:n,onDelete:c})=>{const l=K(r),[d,u]=s(!1),[m,S]=s(!1),E=l.formData,p=!ur(E);i(()=>{l.resetFormData(r)},[r]);const T=l.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(Ar).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===Ae.All?"AND":e===Ae.KOf?`${he} ${a??1}`:"OR"}})(E.mode,E.conditions,E.minMatches),[E.mode,E.conditions,E.minMatches]),N=a(()=>Rr(E.mode,E.conditions,E.minMatches),[E.mode,E.conditions,E.minMatches]),h=o(e=>{l.handleFormChange(void 0,void 0,Ur({...l.formData,conditions:e(l.formData.conditions)}))},[l]),g=o(e=>{const t=e[0]||Ae.Any,a=l.formData;l.handleFormChange(void 0,void 0,Ur({...a,mode:t,minMatches:t===Ae.KOf?a.minMatches??1:null}))},[l]),v=o((e,t)=>{h(a=>a.map(a=>a.key===e?((e,t)=>{const a=ve(e.type),r=ve(t);return a===r?{...e,type:t}:{...e,type:t,value:r?1:100,durationUnit:e.durationUnit||dr.Hours}})(a,t):a))},[h]),A=o((e,t)=>{const a=Number(t);h(t=>t.map(t=>t.key===e?{...t,value:Number.isFinite(a)?a:0}:t))},[h]),R=o((e,t)=>{h(a=>a.map(a=>a.key===e?{...a,durationUnit:t}:a))},[h]),O=o(e=>{h(t=>t.filter(t=>t.key!==e))},[h]),C=o(()=>{h(e=>[...e,Gr()])},[h]),G=o(e=>{l.handleFormChange(void 0,void 0,Ur({...l.formData,minMatches:Math.max(1,e||1)}))},[l]),D=o(async()=>{if(y){u(!0);try{await n(Ur(l.formData))}finally{u(!1)}}},[l.formData,y,n]),b=o(()=>{l.resetFormData(r)},[l,r]),w=o(async()=>{if(c){S(!0);try{await c()}finally{S(!1)}}},[c]),L=a(()=>({policy:r,genericForm:l,isDirty:T,canUpdate:y,canDiscard:f,isOverride:p,isSaving:d,isDeleting:m,promotesWhen:_,currently:N,handleModeChange:g,handleConditionTypeChange:v,handleConditionValueChange:A,handleDurationUnitChange:R,handleRemoveCondition:O,handleAddCondition:C,handleMinMatchesChange:G,handleSave:D,handleDiscard:b,handleDelete:w}),[r,l,T,y,f,p,d,m,_,N,g,v,A,R,O,C,G,D,b,w]);return e(Mr.Provider,{value:L,children:t})},kr=()=>{const e=r(Mr);if(!e)throw new Error("useLearningPolicyFormContext must be used within a LearningPolicyFormContextProvider");return e},Hr={examplesPerTransaction:0,exampleSampleIntervalSeconds:0,observationRetentionDays:0,maxResidentTransactions:0,maxBaselineSetMembers:0,flushIntervalSeconds:0,autoTransactionGuardrail:!0,identityDimensions:[...Oe]},xr=e=>e.map(e=>({key:e.key.trim(),enabled:e.enabled})).filter(e=>e.key.length>0),$r=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})):[...Oe]}),Kr=n(null),Vr=({children:t,settings:r,onSave:n})=>{const c=K(Hr),[l,d]=s(!1),[u,m]=s(!1),S=a(()=>r?JSON.stringify($r(r)):"",[r]);i(()=>{r&&S&&c.resetFormData($r(r))},[S]);const E=c.formData,p=!!r&&c.isFormDirty,T=p&&(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<=Ce&&r.size===a.length})(E)&&!l,I=p&&!l,y=E.identityDimensions.filter(e=>e.enabled&&e.key.trim()).length,f=o(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:xr(e.identityDimensions)},resetTransactions:t||void 0}))(E,e))}finally{d(!1),m(!1)}}},[r,E,n]),_=o(async()=>{r&&T&&(((e,t)=>{const a=$r(t);return r=xr(e.identityDimensions),n=xr(a.identityDimensions),!(r.length===n.length&&r.every((e,t)=>e.key===n[t].key&&e.enabled===n[t].enabled));var r,n})(E,r)?m(!0):await f(!1))},[r,T,E,f]),N=o(()=>{r&&I&&c.resetFormData($r(r))},[r,I,c]),h=o((e,t)=>{c.handleFormChange(void 0,void 0,{...c.formData,identityDimensions:c.formData.identityDimensions.map((a,r)=>r===e?{...a,...t}:a)})},[c]),g=o(e=>{c.handleFormChange(void 0,void 0,{...c.formData,identityDimensions:c.formData.identityDimensions.filter((t,a)=>a!==e)})},[c]),v=o(()=>{const e=c.formData.identityDimensions.filter(e=>e.enabled&&e.key.trim()).length;c.handleFormChange(void 0,void 0,{...c.formData,identityDimensions:[...c.formData.identityDimensions,{key:"",enabled:e<Ce}]})},[c]),A=a(()=>({settings:r,genericForm:c,isDirty:p,canUpdate:T,canDiscard:I,isSaving:l,enabledDimCount:y,identityConfirmOpen:u,setIdentityConfirmOpen:m,handleSave:_,handleDiscard:N,persist:f,updateDim:h,removeDim:g,addDim:v}),[r,c,p,T,I,l,y,u,_,N,f,h,g,v]);return e(Kr.Provider,{value:A,children:t})},Yr=()=>{const e=r(Kr);if(!e)throw new Error("useSystemSettingsFormContext must be used within a SystemSettingsFormContextProvider");return e},Br={disabled:!1,ruleName:"",notes:"",sourceScopes:xe(),workloads:null,instrumentationLibraries:null,payloadCollection:null,codeAttributes:null,headersCollection:null,customInstrumentations:null,networkMetrics:null},Wr=n(null),jr=({children:t,sourceOptions:r=[],namespaceOptions:n=[]})=>{const[i,c]=s(null),l=K(Br),d=o(e=>{l.resetFormData(),l.handleErrorChange(void 0,void 0,{}),c(e)},[]),u=o((e,t)=>{var a;l.resetFormData((({ruleName:e,notes:t,disabled:a,sourceScopes:r,instrumentationLibraries:n,payloadCollection:o,codeAttributes:s,headersCollection:i,customInstrumentations:c,networkMetrics:l,workloads:d})=>({ruleName:e||"",notes:t||"",disabled:!!a,sourceScopes:He(r),workloads:d??null,instrumentationLibraries:n??null,payloadCollection:o??null,codeAttributes:s??null,headersCollection:i??null,customInstrumentations:c??null,networkMetrics:l??null}))(e)),l.handleErrorChange(void 0,void 0,{}),c(t??(a=e.type,Ge.find(e=>e.type===a)??null))},[]),m=o(()=>{if(!i)return{errorMessage:"No rule type selected",preparedFormData:V(Br)};const e=((e,t)=>{const a=V(e),{workloads:r,...n}=a,o={...n,sourceScopes:ke(a.sourceScopes)?null:a.sourceScopes,...r?.length?{workloads:r}:{}};return o.headersCollection?.[De.HeaderKeys]?.length&&(o.headersCollection[De.HeaderKeys]=o.headersCollection[De.HeaderKeys].map(e=>e.trim()).filter(e=>e)),o.customInstrumentations?.[be.Golang]?.length&&(o.customInstrumentations[be.Golang]=o.customInstrumentations[be.Golang].map(e=>new we(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})),o.customInstrumentations?.[be.Java]?.length&&(o.customInstrumentations[be.Java]=o.customInstrumentations[be.Java].map(e=>new Le(e.className,e.methodName)).filter(e=>{return t=e,!(!t.className?.trim()&&!t.methodName?.trim());var t})),o.customInstrumentations?.[be.Php]?.length&&(o.customInstrumentations[be.Php]=o.customInstrumentations[be.Php].map(e=>new Pe(e.className,e.functionName)).filter(e=>{return t=e,!(!t.className?.trim()&&!t.functionName?.trim());var t})),t===Ue.NetworkMetrics&&(o.networkMetrics=!0),o})(l.formData,i.type),t=((e,t)=>{const a={};switch(e){case Ue.CodeAttributes:Object.values(t.codeAttributes||{}).some(e=>null!=e)||(a.codeAttributes="Code attributes are required");break;case Ue.PayloadCollection:Object.values(t.payloadCollection||{}).some(e=>null!=e)||(a.payloadCollection="Payload collection are required");break;case Ue.HeadersCollection:t.headersCollection?.[De.HeaderKeys]?.length||(a.headersCollection="Header keys are required");break;case Ue.CustomInstrumentation:{const e=t.customInstrumentations?.[be.Golang]||[],r=t.customInstrumentations?.[be.Java]||[],n=t.customInstrumentations?.[be.Php]||[];if(!e.length&&!r.length&&!n.length){a.customInstrumentations="Custom instrumentation are required";break}const o=e.findIndex(e=>!new we(e.packageName,e.functionName,e.receiverName,e.receiverMethodName).Verify());if(-1!==o){a.customInstrumentations=`Golang probe #${o+1} is invalid: provide a package name plus either a function name OR both a receiver name and receiver method name`;break}const s=r.findIndex(e=>!new Le(e.className,e.methodName).Verify());if(-1!==s){a.customInstrumentations=`Java probe #${s+1} is invalid: both class name and method name are required`;break}const i=n.findIndex(e=>!new Pe(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 l.handleErrorChange(void 0,void 0,t),{errorMessage:Object.keys(t).length>0?"Invalid form values":void 0,preparedFormData:e}},[l,i]),S=a(()=>({selectedOption:i,onSelectOption:d,loadRule:u,genericForm:l,validateFormData:m,sourceOptions:r,namespaceOptions:n}),[i,d,u,l,m,r,n]);return e(Wr.Provider,{value:S,children:t})},qr=()=>{const e=r(Wr);if(!e)throw new Error("useRuleFormContext must be used within a RuleFormContextProvider");return e};var Qr;(e=>{e.Create="create",e.View="view",e.EditAutoNoisy="edit-auto-noisy",e.EditAutoCostReduction="edit-auto-cost-reduction",e.EditAutoHighlyRelevant="edit-auto-highly-relevant"})(Qr||(Qr={}));const zr=n(null),Xr=["50","25","10","1"];function Jr(e){const t=String(e);return Xr.includes(t)?t:"custom"}const Zr=({category:t,sourceOptions:r=[],namespaceOptions:n=[],children:c})=>{const{formData:l,handleFormChange:d,resetFormData:u}=K(Be(t)),[m,S]=s(null);i(()=>{u(Be(t)),S(null)},[t]);const E=o(e=>{S(null),d(void 0,void 0,{...l,...e})},[l,d]),p=o(()=>{u(Be(t)),S(null)},[t,u]),T=a(()=>({formType:Qr.Create,category:t,formData:l,handleChange:E,resetForm:p,duplicateWarning:m,setDuplicateWarning:S,sourceOptions:r,namespaceOptions:n}),[t,l,E,p,m,r,n]);return e(zr.Provider,{value:T,children:c})},en=({data:t,defaultEditMode:r,sourceOptions:n=[],namespaceOptions:l=[],children:d})=>{const[u,m]=s(!1),{formData:S,handleFormChange:E,resetFormData:p}=K(void 0),T=c(null),[I,y]=s(null);i(()=>{t!==T.current&&(T.current=t,t&&r?(p(Ye(t)),y(null),m(!0)):(m(!1),y(null)))},[t,r]);const f=o(e=>{y(null),E(void 0,void 0,{...S,...e})},[S,E]),_=o(()=>{t&&(p(Ye(t)),y(null),m(!0))},[t,p]),N=o(()=>{m(!1),y(null)},[]),h=a(()=>({formType:Qr.View,data:t,isEditing:u,formData:S,handleChange:f,handleEdit:_,handleCancelEdit:N,duplicateWarning:I,setDuplicateWarning:y,sourceOptions:n,namespaceOptions:l}),[t,u,S,f,_,N,I,n,l]);return e(zr.Provider,{value:h,children:d})};function tn(e){const[t,r]=s(()=>0===e?"all":"sample"),[n,o]=s(()=>Jr(e)),[c,l]=s(()=>"custom"===Jr(e)?String(e):"");i(()=>{r(0===e?"all":"sample");const t=Jr(e);o(t),l("custom"===t?String(e):"")},[e]);const d=a(()=>"all"===t?0:"custom"===n?Number(c)||0:Number(n),[t,n,c]);return{percentageMode:t,setPercentageMode:r,percentagePreset:n,setPercentagePreset:o,customPercentage:c,setCustomPercentage:l,resolvedPercentage:d}}const an=({enabled:t,keepPercentage:r,children:n})=>{const[o,c]=s(t),l=tn(r);i(()=>{c(t)},[t]);const d=a(()=>Ve({enabled:o,keepPercentage:l.resolvedPercentage}),[o,l.resolvedPercentage]),u=a(()=>({formType:Qr.EditAutoNoisy,localEnabled:o,setLocalEnabled:c,...l,summary:d}),[o,l,d]);return e(zr.Provider,{value:u,children:n})},rn=({enabled:t,dropPercentage:r,children:n})=>{const[o,c]=s(t),l=tn(r);i(()=>{c(t)},[t]);const d=a(()=>Ke(o?{disabled:!1,percentageAtMost:l.resolvedPercentage}:null),[o,l.resolvedPercentage]),u=a(()=>({formType:Qr.EditAutoCostReduction,localEnabled:o,setLocalEnabled:c,...l,summary:d}),[o,l,d]);return e(zr.Provider,{value:u,children:n})},nn=({enabled:t,children:r})=>{const[n,o]=s(t);i(()=>{o(t)},[t]);const c=a(()=>$e(n?{disabled:!1}:null),[n]),l=a(()=>({formType:Qr.EditAutoHighlyRelevant,localEnabled:n,setLocalEnabled:o,summary:c}),[n,c]);return e(zr.Provider,{value:l,children:r})},on=t=>{switch(t.formType){case Qr.Create:return e(Zr,{...t});case Qr.View:return e(en,{...t});case Qr.EditAutoNoisy:return e(an,{...t});case Qr.EditAutoCostReduction:return e(rn,{...t});case Qr.EditAutoHighlyRelevant:return e(nn,{...t})}};function sn(e){const t=r(zr);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 cn={otelServiceName:"",currentStreamName:""},ln=n(null),dn=({children:t})=>{const[r,n]=s(void 0),i=K(cn),c=o(e=>{i.resetFormData((({serviceName:e,id:t})=>({otelServiceName:e||t.name||"",currentStreamName:""}))(e)),i.handleErrorChange(void 0,void 0,{}),n(void 0)},[]),l=o(()=>{const e=V(i.formData);return i.handleErrorChange(void 0,void 0,{}),n(void 0),{errorMessage:void 0,preparedFormData:e}},[i]),d=a(()=>({loadSource:c,genericForm:i,validateFormData:l,errorMessage:r}),[c,i,l,r]);return e(ln.Provider,{value:d,children:t})},un=()=>{const e=r(ln);if(!e)throw new Error("useSourceEditFormContext must be used within a SourceEditFormContextProvider");return e},mn=new Set([Me.StaticPod]),Sn=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}},En=(e,t,a)=>{if(t&&!e.name.toLowerCase().includes(t.toLowerCase()))return!1;if(a.showOnlySelected){const{isAllSourced:t,isSomeSourced:a,isFutureApps:r}=Sn(e);return t||a||r}return!0},pn=(e,t,a)=>!(t&&!e.name.toLowerCase().includes(t.toLowerCase()))&&(!a.showOnlySelected||e.selected),Tn=n({snapshots:null,setSnapshots:()=>{},isFetching:!1,setIsFetching:()=>{},formData:[],handleSourceChange:()=>{},handleSelectAll:()=>{},formDiff:{},isFormDirty:!1}),In=(e,t)=>`${e}\0${t}`,yn=(e,t,a,r)=>`${e}\0${t}\0${a}/${r}`,fn=(e,t)=>e.name===t.name&&e.kind===t.kind&&(e.region??"")===(t.region??""),_n=(e,t,a)=>{const r=[];return t.workloads.forEach(n=>{const o=e?.workloads.find(e=>fn(e,n));n.selected!==o?.selected&&r.push({namespace:t.name,name:n.name,kind:n.kind,region:n.region||void 0,selected:n.selected||!1,currentStreamName:a})}),r},Nn=({children:t,selectedConnectionIds:r,initialInputs:n})=>{const{tier:l}=We(),d=l===Fe.Onprem,{capabilities:u}=ea(),m=u.canInstrumentNamespaces,{selectedStreamName:S}=y(),[E,p]=s(!1),[I,f]=s(null),[_,N]=s([]),h=c(new Set),g=o((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&&h.current.add(In(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&&h.current.add(yn(t.clusterId,e.name,a.kind,a.name))}))})})},[]);i(()=>{I&&N(e=>{const t=((e,t)=>V(((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 o=new Map(n.workloads.map(e=>[`${e.kind}/${e.name}`,e])),s=a.has(In(e.clusterId,t.name));return{...t,selected:s?n.selected:t.selected,workloads:t.workloads.map(r=>{const n=o.get(`${r.kind}/${r.name}`),s=a.has(yn(e.clusterId,t.name,r.kind,r.name));return n&&s?{...r,selected:n.selected}:r})}})}})(t,a,h.current);if(n?.[t.clusterId]){const e=n[t.clusterId],a=V(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=>{mn.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(o=>{const s=t.find(t=>t.clusterId===e.clusterId)?.namespaces.find(e=>e.name===o.name);if(!r){const t=_n(s,o,a);return void(t.length>0&&(n[e.clusterId]||(n[e.clusterId]=[]),n[e.clusterId].push(...t)))}const i=o.selected||!1;if(i!==s?.selected)n[e.clusterId]||(n[e.clusterId]=[]),n[e.clusterId].push({namespace:o.name,selected:i,currentStreamName:a}),i?n[e.clusterId]=n[e.clusterId].filter(e=>e.namespace!==o.name||e.namespace===o.name&&(!e.name||!e.kind)):o.workloads.forEach(t=>{t.selected&&n[e.clusterId].push({namespace:o.name,name:t.name,kind:t.kind,region:t.region||void 0,selected:!0,currentStreamName:a})});else{const t=_n(s,o,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=o(e=>!d&&mn.has(e),[d]),O=o(({clusterId:e,workloadId:t,selected:a,auto:r})=>{N(n=>{const o=V(n),s=o.findIndex(t=>t.clusterId===e);if(-1===s)return o;const i=o[s].namespaces.findIndex(e=>e.name===t.namespace);if(-1===i)return o;if(t.kind&&t.name){const e=o[s].namespaces[i].workloads.findIndex(e=>fn(e,{name:t.name,kind:t.kind,region:t.region}));if(-1===e)return o;const r="boolean"==typeof a?a:!o[s].namespaces[i].workloads[e].selected;o[s].namespaces[i].workloads[e].selected=r,m&&(r?o[s].namespaces[i].workloads.filter(e=>!R(e.kind)).every(e=>e.selected)&&(o[s].namespaces[i].selected=!0):o[s].namespaces[i].selected=!1)}else if(m){const e="boolean"==typeof r?r:!o[s].namespaces[i].selected;o[s].namespaces[i].selected=e,e?o[s].namespaces[i].workloads.forEach(e=>{R(e.kind)||(e.selected=!0)}):"boolean"!=typeof a||a||o[s].namespaces[i].workloads.forEach(e=>{e.selected=!1})}else{const e="boolean"==typeof a?a:"boolean"!=typeof r||r;o[s].namespaces[i].workloads.forEach(t=>{e&&R(t.kind)||(t.selected=e)})}return g(n,o),o})},[R,m,g]),C=o(({clusterId:e,namespaceName:t,boolean:a,searchText:r="",searchBy:n="",filters:o})=>{N(s=>{const i=V(s),c=n===T.Namespace?r:"",l=n===T.Source?r:"",d=!!c||!!l||!!o?.showOnlySelected;return i.forEach((r,n)=>{e&&r.clusterId!==e||r.namespaces.forEach(({name:e,workloads:r},s)=>{if(!t||e===t)if(d)if(t){if(r.forEach((e,t)=>{a&&R(e.kind)||pn(e,l,o||{showOnlySelected:!1})&&(i[n].namespaces[s].workloads[t].selected=a)}),m){const e=i[n].namespaces[s].workloads.filter(e=>!R(e.kind)).every(e=>e.selected);i[n].namespaces[s].selected=e}}else{if(!En(i[n].namespaces[s],c,o||{showOnlySelected:!1}))return;m&&(i[n].namespaces[s].selected=a),r.forEach((e,t)=>{a&&R(e.kind)||(i[n].namespaces[s].workloads[t].selected=a)})}else m&&(i[n].namespaces[s].selected=a),r.forEach((e,t)=>{a&&R(e.kind)||(i[n].namespaces[s].workloads[t].selected=a)})})}),g(s,i),i})},[R,m,g]);return e(Tn.Provider,{value:{snapshots:I,setSnapshots:f,isFetching:E,setIsFetching:p,formData:_,handleSourceChange:O,handleSelectAll:C,formDiff:v,isFormDirty:A},children:t})},hn=()=>r(Tn);export{mn as $,ca as A,ea as B,ma as C,Ta as D,qr as E,sn as F,cr as G,un as H,hn as I,Yr as J,va as K,pr as L,Ra as M,Aa as N,Et as O,ba as P,Oa as Q,jr as R,Qr as S,Ga as T,dr as U,mr as V,$a as W,Ua as X,La as Y,Pa as Z,pn as _,vt as a,En as a0,Sn as a1,wa as a2,Ca as a3,ur as a4,Pr as a5,Lr as a6,br as a7,Dr as a8,wr as a9,Ka as aa,qa as ab,ha as b,Ha as c,Ya as d,Fr as e,dt as f,on as g,dn as h,Nn as i,Vr as j,Pt as k,la as l,bt as m,wt as n,Dt as o,Ut as p,Sa as q,gt as r,Ia as s,ga as t,lt as u,xa as v,Ba as w,lr as x,Tr as y,kr as z};
|