@omniviewdev/runtime 0.12.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/api.cjs +1 -1
  2. package/dist/api.d.ts +2 -2
  3. package/dist/api.js +199 -175
  4. package/dist/bindings/events/index.d.ts +4 -0
  5. package/dist/bindings/github.com/omniviewdev/omniview/backend/pkg/plugin/resource/index.d.ts +1 -1
  6. package/dist/bindings/github.com/omniviewdev/omniview/backend/pkg/plugin/resource/models.d.ts +20 -0
  7. package/dist/bindings/github.com/omniviewdev/omniview/backend/pkg/plugin/resource/servicewrapper.d.ts +2 -0
  8. package/dist/bindings/github.com/omniviewdev/omniview/backend/pkg/settings/binding.d.ts +8 -0
  9. package/dist/bindings/github.com/omniviewdev/omniview/backend/pkg/settings/index.d.ts +3 -0
  10. package/dist/bindings/github.com/omniviewdev/omniview/backend/pkg/settings/models.d.ts +33 -0
  11. package/dist/bindings/github.com/omniviewdev/omniview/{backend/pkg/plugin/settings → internal/profiling}/index.d.ts +1 -0
  12. package/dist/bindings/github.com/omniviewdev/omniview/internal/profiling/models.d.ts +12 -0
  13. package/dist/bindings/github.com/omniviewdev/omniview/internal/profiling/servicewrapper.d.ts +3 -0
  14. package/dist/bindings/github.com/omniviewdev/plugin-sdk/pkg/resource/v2/index.d.ts +2 -2
  15. package/dist/bindings/github.com/omniviewdev/plugin-sdk/pkg/resource/v2/models.d.ts +47 -1
  16. package/dist/bindings/github.com/omniviewdev/plugin-sdk/settings/models.d.ts +8 -0
  17. package/dist/connection/metadata.d.ts +42 -0
  18. package/dist/context/plugins/usePluginContext.d.ts +0 -1
  19. package/dist/context/settings/SettingsContext.d.ts +0 -1
  20. package/dist/hooks/connection/index.d.ts +2 -0
  21. package/dist/hooks/connection/useConnectionMetadata.d.ts +16 -0
  22. package/dist/hooks/settings/index.d.ts +1 -0
  23. package/dist/hooks/settings/useScopedSettings.d.ts +30 -0
  24. package/dist/index.cjs +4 -4
  25. package/dist/index.js +2766 -2480
  26. package/dist/{models-Cg1YRHQm.js → models-BJgLAHwq.js} +1 -1
  27. package/dist/{models-UwESEW2B.js → models-BTzXdmUY.js} +183 -175
  28. package/dist/{models-dzj-SsFZ.cjs → models-BhsFYb70.cjs} +1 -1
  29. package/dist/models-NYvUa5Yc.cjs +1 -0
  30. package/dist/models.cjs +1 -1
  31. package/dist/models.js +8 -8
  32. package/dist/resource/v2/client.d.ts +3 -0
  33. package/dist/servicewrapper-B-DdHGSp.cjs +1 -0
  34. package/dist/servicewrapper-Bl98xvmZ.js +639 -0
  35. package/package.json +3 -3
  36. package/dist/bindings/github.com/omniviewdev/omniview/backend/pkg/plugin/settings/servicewrapper.d.ts +0 -19
  37. package/dist/bindings/github.com/omniviewdev/omniview/internal/settings/index.d.ts +0 -2
  38. package/dist/bindings/github.com/omniviewdev/omniview/internal/settings/servicewrapper.d.ts +0 -52
  39. package/dist/models-DSGyy8lg.cjs +0 -1
  40. package/dist/servicewrapper-BOM6A8IG.cjs +0 -1
  41. package/dist/servicewrapper-Bda7yi8z.js +0 -684
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const D=require("react/jsx-runtime"),W=require("react/compiler-runtime"),b=require("react"),Q=require("./graph-wHun0Bkz.cjs"),k=require("@tanstack/react-query"),L=require("./servicewrapper-BOM6A8IG.cjs");require("./index-BVi9X4oU.cjs");const G=require("./events-DnLqUWri.cjs"),Fe=require("react-router"),J=require("@omniviewdev/base-ui"),at=require("./models-DSGyy8lg.cjs"),Zt=require("react-router/dom"),Me=b.createContext(void 0),Y={PLUGIN_NOT_FOUND:"omniview:plugin/not-found",PLUGIN_NOT_LOADED:"omniview:plugin/not-loaded",PLUGIN_ALREADY_LOADED:"omniview:plugin/already-loaded",PLUGIN_INSTALL_FAILED:"omniview:plugin/install-failed",PLUGIN_LOAD_FAILED:"omniview:plugin/load-failed",PLUGIN_BUILD_FAILED:"omniview:plugin/build-failed",PLUGIN_COMMITTED_CLEANUP_PENDING:"omniview:plugin/committed-cleanup-pending",PLUGIN_COMMIT_UNCERTAIN:"omniview:plugin/commit-uncertain",SETTINGS_MISSING_CONFIG:"omniview:settings/missing-config",SETTINGS_INVALID_CONFIG:"omniview:settings/invalid-config",RESOURCE_NOT_FOUND:"omniview:resource/not-found",RESOURCE_FORBIDDEN:"omniview:resource/forbidden",RESOURCE_UNAUTHORIZED:"omniview:resource/unauthorized",RESOURCE_CONFLICT:"omniview:resource/conflict",RESOURCE_TIMEOUT:"omniview:resource/timeout",RESOURCE_LIMIT:"omniview:resource/limit",RESOURCE_CONTINUATION_EXPIRED:"omniview:resource/continuation-expired",RESOURCE_RESET_REQUIRED:"omniview:resource/reset-required",RESOURCE_PARTIAL:"omniview:resource/partial",RESOURCE_PROVIDER_ERROR:"omniview:resource/provider-error",CONNECTION_NOT_FOUND:"omniview:connection/not-found",CONNECTION_FAILED:"omniview:connection/failed",SESSION_NOT_FOUND:"omniview:session/not-found",SESSION_FAILED:"omniview:session/failed",CANCELLED:"omniview:cancelled",INTERNAL:"omniview:internal",VALIDATION:"omniview:validation",NOT_IMPLEMENTED:"omniview:not-implemented"};let Te=null;function Xt(t){return Te=t,()=>{Te===t&&(Te=null)}}function It(t){if(!Te)throw new Error(`cannot navigate to "${t}": this window has no page navigator`);Te(t)}const Et={INVALID_REQUEST:[Y.VALIDATION,400,"correctRequest"],UNSUPPORTED:[Y.NOT_IMPLEMENTED,501,"refreshContract"],FORBIDDEN:[Y.RESOURCE_FORBIDDEN,403,"none"],UNAUTHORIZED:[Y.RESOURCE_UNAUTHORIZED,401,"none"],NOT_FOUND:[Y.RESOURCE_NOT_FOUND,404,"none"],CONFLICT:[Y.RESOURCE_CONFLICT,409,"refreshContract"],ALREADY_EXISTS:[Y.RESOURCE_CONFLICT,409,"refreshContract"],CANCELLED:[Y.CANCELLED,499,"none"],TIMEOUT:[Y.RESOURCE_TIMEOUT,408,"none"],UNAVAILABLE:[Y.CONNECTION_FAILED,503,"reconnect"],CONNECTION_ERROR:[Y.CONNECTION_FAILED,503,"reconnect"],CERTIFICATE_ERROR:[Y.CONNECTION_FAILED,502,"reconnect"],RESOURCE_LIMIT:[Y.RESOURCE_LIMIT,429,"correctRequest"],CONTINUATION_EXPIRED:[Y.RESOURCE_CONTINUATION_EXPIRED,410,"restartQuery"],RESET_REQUIRED:[Y.RESOURCE_RESET_REQUIRED,409,"restartQuery"],PARTIAL_RESULT:[Y.RESOURCE_PARTIAL,422,"none"],PROVIDER_ERROR:[Y.RESOURCE_PROVIDER_ERROR,502,"none"],INTERNAL:[Y.INTERNAL,500,"none"]};function Ge(t){return typeof t=="object"&&t!==null?t:void 0}function de(t,e){return typeof t=="string"&&t.length>0&&t.length<=e}function Ke(){return{type:Y.CANCELLED,code:"CANCELLED",title:"Cancelled",status:499,detail:"The operation was cancelled.",recovery:"none"}}function Le(t,e){if(e>4)return;if(t==="cancelled")return Ke();if(typeof t=="string"){const n=t.trim();if(!n.startsWith("{"))return;try{return Le(JSON.parse(n),e+1)}catch{return}}const s=Ge(t);if(s){if(s.name==="AbortError"||s.name==="CancelError")return Ke();if(de(s.type,256)&&de(s.title,256)&&typeof s.status=="number"&&Number.isInteger(s.status)&&s.status>=100&&s.status<=599&&typeof s.detail=="string"&&s.detail.length<=4096){const n={type:s.type,title:s.title,status:s.status,detail:s.detail};de(s.code,64)&&(n.code=s.code),de(s.requestId,256)&&(n.requestId=s.requestId),de(s.instance,512)&&(n.instance=s.instance),Array.isArray(s.suggestions)&&(n.suggestions=s.suggestions.filter(i=>de(i,512)).slice(0,8)),Array.isArray(s.actions)&&(n.actions=s.actions.filter(i=>{const o=Ge(i);return!!o&&["navigate","retry","open-url","copy"].includes(String(o.type))&&de(o.label,256)&&(o.target===void 0||de(o.target,4096))}).slice(0,8)),["correctRequest","refreshContract","restartQuery","reconnect","none"].includes(String(s.recovery))&&(n.recovery=s.recovery);const r=Ge(s.location);return r?.unit==="utf8-byte"&&typeof r.start=="number"&&typeof r.end=="number"&&Number.isSafeInteger(r.start)&&Number.isSafeInteger(r.end)&&r.start>=0&&r.end>=r.start&&(n.location={start:r.start,end:r.end,unit:"utf8-byte"}),n}if(typeof s.code=="string"&&typeof s.title=="string"&&typeof s.message=="string"){let n=s.code;if(n==="PERMISSION_DENIED"&&(n="FORBIDDEN"),["INVALID_INPUT","FILTER_UNKNOWN_FIELD","FILTER_INVALID_OPERATOR"].includes(n)&&(n="INVALID_REQUEST"),Object.prototype.hasOwnProperty.call(Et,n)||(n="INTERNAL"),n==="CANCELLED")return Ke();const[r,i,o]=Et[n],u=n==="FORBIDDEN"||n==="UNAUTHORIZED"||n==="INTERNAL"||n==="PROVIDER_ERROR";return{type:r,status:i,code:n,recovery:o,title:u?n==="FORBIDDEN"?"Access denied":n==="UNAUTHORIZED"?"Authentication required":"Operation failed":de(s.title,256)?s.title:"Operation failed",detail:u?"The operation could not be completed.":de(s.message,4096)?s.message:"The operation could not be completed.",...!u&&Array.isArray(s.suggestions)?{suggestions:s.suggestions.filter(l=>de(l,512)).slice(0,8)}:{}}}return Le(s.message,e+1)??Le(s.cause,e+1)}}function ce(t){return Le(t,0)??{type:Y.INTERNAL,title:t==null?"Unknown error":"Error",status:500,detail:t==null?"An unknown error occurred.":"The operation could not be completed."}}function Oe(t){return ce(t).type===Y.CANCELLED}function _t(t){switch(t.type){case"navigate":return{label:t.label,onClick:()=>{It((t.target??"/").replace(/^#/,""))}};case"open-url":return{label:t.label,onClick:()=>{window.open(t.target,"_blank")}};case"copy":return{label:t.label,onClick:()=>{navigator.clipboard.writeText(t.target??"")}};case"retry":return{label:t.label,onClick:()=>{}};default:return{label:t.label,onClick:()=>{}}}}function xt(t,e){const s=[t.detail,...t.suggestions?.map(r=>`• ${r}`)??[]].join(`
2
- `);return{message:e||(t.title!=="Error"?t.title:"Operation failed"),status:"error",details:s,actions:t.actions?.map(_t)}}function Ie(t,e,s){if(Oe(e))return;const n=ce(e);t(xt(n,s))}function ne(t,e){return s=>{if(Oe(s))return;const n=ce(s);t(xt(n,n.title!=="Error"?n.title:e))}}function en(t){const e=W.c(2);let s;return e[0]!==t?(s=D.jsx(tn,{...t},t.pluginId),e[0]=t,e[1]=s):s=e[1],s}function tn(t){const e=W.c(40),{children:s,pluginId:n,headless:r}=t,i=r===void 0?!1:r;let o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o={},e[0]=o):o=e[0];const[u,l]=b.useState(o);let c;e[1]===Symbol.for("react.memo_cache_sentinel")?(c=new at.PluginMeta,e[1]=c):c=e[1];const[f,a]=b.useState(c),[d,h]=b.useState(!1),[y,g]=b.useState(null),p=b.useRef(0),m=b.useRef(0);console.debug("[PluginContextProvider] render",{pluginId:n,metaLoaded:d,metaError:!!y});let v;e[2]!==n?(v=()=>{if(n===void 0||n==="")return;const N=p.current=p.current+1;console.debug(`[PluginContextProvider] fetching settings for "${n}"`),L.PluginValues(n).then(F=>{N===p.current&&(console.debug(`[PluginContextProvider] settings loaded for "${n}"`,Object.keys(F)),l(F))}).catch(F=>{if(N!==p.current)return;const C=ce(F);console.error(`[PluginContextProvider] error fetching settings for "${n}":`,C.detail)})},e[2]=n,e[3]=v):v=e[3];const S=v;let E;e[4]!==n?(E=()=>{if(n===void 0||n===""){console.debug("[PluginContextProvider] skipping meta fetch — empty pluginId");return}const N=m.current=m.current+1;console.debug(`[PluginContextProvider] fetching meta for "${n}"`),L.GetPluginMeta(n).then(F=>{N===m.current&&(console.debug(`[PluginContextProvider] meta loaded for "${n}"`,{name:F?.name,version:F?.version}),a(F),h(!0))}).catch(F=>{if(N!==m.current)return;const C=ce(F);console.error(`[PluginContextProvider] error fetching meta for "${n}":`,C.detail),g(C.detail),h(!1)})},e[4]=n,e[5]=E):E=e[5];const w=E;let x,I;e[6]!==w||e[7]!==S||e[8]!==d||e[9]!==n?(x=()=>{if(d)return;const N=()=>{g(null),S(),w()},F=[G.On("plugin/init_complete",N),G.On("plugin/dev_install_complete",C=>{C.data?.id===n&&N()}),G.On("plugin/inventory_changed",N)];return()=>{for(const C of F)C()}},I=[n,d,S,w],e[6]=w,e[7]=S,e[8]=d,e[9]=n,e[10]=x,e[11]=I):(x=e[10],I=e[11]),b.useEffect(x,I);let _,R;if(e[12]!==w||e[13]!==S||e[14]!==n?(_=()=>(console.debug(`[PluginContextProvider] useEffect — pluginId changed to "${n}"`),S(),w(),()=>{p.current=p.current+1,m.current=m.current+1}),R=[n,S,w],e[12]=w,e[13]=S,e[14]=n,e[15]=_,e[16]=R):(_=e[15],R=e[16]),b.useEffect(_,R),y){if(i)throw new Error(y);let N,F,C;e[17]===Symbol.for("react.memo_cache_sentinel")?(C={display:"flex",flex:1,alignItems:"center",justifyContent:"center",padding:24},N={maxWidth:480,width:"100%",border:"1px solid #7F1D1D",borderRadius:8,backgroundColor:"#1C1917",padding:20,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},F={display:"flex",alignItems:"center",gap:8,marginBottom:12},e[17]=N,e[18]=F,e[19]=C):(N=e[17],F=e[18],C=e[19]);let O,P;e[20]===Symbol.for("react.memo_cache_sentinel")?(O=D.jsxs("div",{style:F,children:[D.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"#EF4444",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[D.jsx("circle",{cx:"12",cy:"12",r:"10"}),D.jsx("line",{x1:"12",y1:"8",x2:"12",y2:"12"}),D.jsx("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"})]}),D.jsx("span",{style:{fontSize:14,fontWeight:600,color:"#FECACA"},children:"Plugin failed to load"})]}),P={fontSize:13,color:"#A1A1AA",margin:"0 0 16px"},e[20]=O,e[21]=P):(O=e[20],P=e[21]);let $;e[22]!==y?($=D.jsx("p",{style:P,children:y}),e[22]=y,e[23]=$):$=e[23];let A;e[24]!==w?(A=()=>{g(null),w()},e[24]=w,e[25]=A):A=e[25];let q;e[26]===Symbol.for("react.memo_cache_sentinel")?(q={background:"transparent",color:"#F87171",border:"1px solid #7F1D1D",borderRadius:6,padding:"6px 14px",fontSize:13,fontWeight:500,cursor:"pointer"},e[26]=q):q=e[26];let j;e[27]!==A?(j=D.jsx("button",{onClick:A,style:q,children:"Retry"}),e[27]=A,e[28]=j):j=e[28];let B;return e[29]!==$||e[30]!==j?(B=D.jsx("div",{style:C,children:D.jsxs("div",{style:N,children:[O,$,j]})}),e[29]=$,e[30]=j,e[31]=B):B=e[31],B}if(!d){if(i)return null;let N;return e[32]===Symbol.for("react.memo_cache_sentinel")?(N=D.jsxs("div",{style:{display:"flex",flex:1,alignItems:"center",justifyContent:"center"},children:[D.jsx("div",{style:{width:24,height:24,border:"2px solid #3F3F46",borderTopColor:"#A1A1AA",borderRadius:"50%",animation:"plugin-spin 0.8s linear infinite"}}),D.jsx("style",{children:"@keyframes plugin-spin { to { transform: rotate(360deg); } }"})]}),e[32]=N):N=e[32],N}let T;e[33]!==f||e[34]!==n||e[35]!==u?(T={pluginId:n,settings:u,meta:f},e[33]=f,e[34]=n,e[35]=u,e[36]=T):T=e[36];let M;return e[37]!==s||e[38]!==T?(M=D.jsx(Me.Provider,{value:T,children:s}),e[37]=s,e[38]=T,e[39]=M):M=e[39],M}function je(){const t=b.useContext(Me);if(!t)throw new Error("usePluginContext must be used within a PluginContextProvider");return t}function nn(){return je().settings}const lt=b.createContext(void 0),rn=t=>{const e=W.c(10),{children:s}=t;let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n={},e[0]=n):n=e[0];const[r,i]=b.useState(n),o=b.useRef(0);let u;e[1]===Symbol.for("react.memo_cache_sentinel")?(u=()=>{const g=o.current+1;o.current=g,L.Values().then(p=>{g===o.current&&i(p)}).catch(p=>{g===o.current&&console.error("Error fetching settings:",p)})},e[1]=u):u=e[1];const l=u;let c,f;e[2]===Symbol.for("react.memo_cache_sentinel")?(c=()=>{const g=G.On("settings/changed",()=>l());return l(),()=>{o.current=o.current+1,g()}},f=[l],e[2]=c,e[3]=f):(c=e[2],f=e[3]),b.useEffect(c,f);let a;e[4]===Symbol.for("react.memo_cache_sentinel")?(a=()=>{l()},e[4]=a):a=e[4];const d=a;let h;e[5]!==r?(h={settings:r,reload:d},e[5]=r,e[6]=h):h=e[6];let y;return e[7]!==s||e[8]!==h?(y=D.jsx(lt.Provider,{value:h,children:s}),e[7]=s,e[8]=h,e[9]=y):y=e[9],y},Rt={height:32,focused:0,tabs:[],createTab:()=>{},createTabs:()=>{},updateTab:()=>{},focusTab:()=>{},reorderTab:()=>{},closeTab:()=>{},closeTabs:()=>{},resizeDrawer:()=>{},closeDrawer:()=>{},fullscreenDrawer:()=>{}},Dt=b.createContext(Rt),Nt=b.createContext(void 0),kt=b.createContext(void 0),ut=b.createContext(void 0),sn=3e4,on=t=>{const e=W.c(12),{children:s}=t;let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=[],e[0]=n):n=e[0];const[r,i]=b.useState(n);let o;e[1]===Symbol.for("react.memo_cache_sentinel")?(o=m=>{i(v=>[m,...v])},e[1]=o):o=e[1];const u=o;let l;e[2]===Symbol.for("react.memo_cache_sentinel")?(l=(m,v)=>{i(S=>S.map(E=>E.id===m?{...E,...v}:E))},e[2]=l):l=e[2];const c=l;let f;e[3]===Symbol.for("react.memo_cache_sentinel")?(f=m=>{i(v=>v.filter(S=>S.id!==m))},e[3]=f):f=e[3];const a=f;let d,h;e[4]!==r?(d=()=>{const m=[];for(const v of r)if(v.status!=="running"){const S=Date.now()-(v.completedAt??v.startedAt),E=Math.max(0,sn-S);m.push(setTimeout(()=>a(v.id),E))}return()=>m.forEach(clearTimeout)},h=[r,a],e[4]=r,e[5]=d,e[6]=h):(d=e[5],h=e[6]),b.useEffect(d,h);let y;e[7]!==r?(y={operations:r,addOperation:u,updateOperation:c,removeOperation:a},e[7]=r,e[8]=y):y=e[8];const g=y;let p;return e[9]!==s||e[10]!==g?(p=D.jsx(ut.Provider,{value:g,children:s}),e[9]=s,e[10]=g,e[11]=p):p=e[11],p},$e=b.createContext(null),cn=t=>{const e=W.c(3),{actions:s,children:n}=t;let r;return e[0]!==s||e[1]!==n?(r=D.jsx($e.Provider,{value:s,children:n}),e[0]=s,e[1]=n,e[2]=r):r=e[2],r};function an(){const t=b.useContext($e);if(!t)throw new Error("useWindowActions must be used inside a workspace window (WindowActionsProvider)");return t}var Ze=function(t,e){return Ze=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(s,n){s.__proto__=n}||function(s,n){for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(s[r]=n[r])},Ze(t,e)};function ln(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");Ze(t,e);function s(){this.constructor=t}t.prototype=e===null?Object.create(e):(s.prototype=e.prototype,new s)}var Be="Invariant Violation",St=Object.setPrototypeOf,un=St===void 0?function(t,e){return t.__proto__=e,t}:St,dn=(function(t){ln(e,t);function e(s){s===void 0&&(s=Be);var n=t.call(this,typeof s=="number"?Be+": "+s+" (see https://github.com/apollographql/invariant-packages)":s)||this;return n.framesToPop=1,n.name=Be,un(n,e.prototype),n}return e})(Error);function Xe(t,e){if(!t)throw new dn(e)}var Tt=["debug","log","warn","error","silent"],fn=Tt.indexOf("log");function Ae(t){return function(){if(Tt.indexOf(t)>=fn){var e=console[t]||console.log;return e.apply(console,arguments)}}}(function(t){t.debug=Ae("debug"),t.log=Ae("log"),t.warn=Ae("warn"),t.error=Ae("error")})(Xe||(Xe={}));const Ot=b.createContext(void 0),Pt=()=>b.useContext(Ot);function dt(t){const e=W.c(6),s=Pt(),n=b.useRef(null);let r;e[0]!==t||e[1]!==s?(r=l=>{let c=s?.getExtensionPoint(t),f=c?.subscribe(l);const a=s?.subscribe(()=>{const d=s.getExtensionPoint(t);d!==c&&(f?.(),c=d,f=c?.subscribe(l)),l()});return()=>{f?.(),a?.()}},e[0]=t,e[1]=s,e[2]=r):r=e[2];const i=r;let o;e[3]!==t||e[4]!==s?(o=()=>{const l=s?.getExtensionPoint(t),c=l?.version??-1,f=n.current;if(f&&f.store===l&&f.version===c)return f;const a={store:l,version:c,contributions:l?.listAll()??[]};return n.current=a,a},e[3]=t,e[4]=s,e[5]=o):o=e[5];const u=o;return b.useSyncExternalStore(i,u,u)}function hn(t){return dt(t).store}const pn=t=>{const e=W.c(5),{registry:s,children:n}=t;let r;e[0]!==s?(r=()=>s,e[0]=s,e[1]=r):r=e[1];const[i]=b.useState(r);Xe(i===s,"You can't change the extension registry after it has been rendered");let o;return e[2]!==n||e[3]!==i?(o=D.jsx(Ot.Provider,{value:i,children:n}),e[2]=n,e[3]=i,e[4]=o):o=e[4],o},ze=t=>{if(!t||typeof t!="string")throw new TypeError(`extensionName is required to be a string and can't be: "${t}" (${typeof t})`);return t.trim()};class At{id;mode;_pluginId;_version=0;_contributions=new Map;_lookupCache=new Map;_matcher;_select;_listeners=new Set;constructor(e){this.id=e.id,this.mode=e.mode??"multiple",this._pluginId=e.pluginId,this._matcher=e.matcher,this._select=e.select}get pluginId(){return this._pluginId}get version(){return this._version}register(e){if(this._contributions.has(e.id))throw new Error(`Contribution with id "${e.id}" already exists in extension point "${this.id}"`);this._contributions.set(e.id,e),this._invalidateCache(),this._notify()}unregister(e){this._contributions.delete(e)&&(this._invalidateCache(),this._notify())}provide(e){return this._getMatched(e).map(n=>n.value)}list(e){return this._getMatched(e)}listAll(){return Array.from(this._contributions.values())}subscribe(e){return this._listeners.add(e),()=>{this._listeners.delete(e)}}removeContributionsByPlugin(e){let s=!1;for(const[n,r]of this._contributions)r.plugin===e&&(this._contributions.delete(n),s=!0);s&&(this._invalidateCache(),this._notify())}_getMatched(e){const s=this._getCacheKey(e);if(s!=null){const r=this._lookupCache.get(s);if(r){const i=r.map(o=>this._contributions.get(o)).filter(o=>o!=null);return this._applyMode(i,e)}}let n=this._sortDeterministic(Array.from(this._contributions.values()));return this._matcher&&e!==void 0&&(n=n.filter(r=>this._matcher(r,e))),s!=null&&this._lookupCache.set(s,n.map(r=>r.id)),this._applyMode(n,e)}_applyMode(e,s){if(this.mode==="single"){if(this._select){const n=this._select(e,s);return n?[n]:[]}return e.length>0?[e[0]]:[]}return e}_sortDeterministic(e){return[...e].sort((s,n)=>{const r=s.plugin.localeCompare(n.plugin);return r!==0?r:s.id.localeCompare(n.id)})}_getCacheKey(e){if(e!=null&&typeof e=="object"&&"getCacheKey"in e){const s=e.getCacheKey;if(typeof s=="function")return s()}}_invalidateCache(){this._lookupCache.clear()}_notify(){this._version++;for(const e of this._listeners)e()}}class gn{_stores=new Map;_storeUnsubs=new Map;_listeners=new Set;constructor(e){if(e?.initialStores)for(const s of e.initialStores)this.addExtensionPoint(s)}addExtensionPoint(e){const s=ze(e.id);if(this._stores.has(s)){const r=this._stores.get(s);throw new Error(`Extension point "${s}" already exists (owned by "${r.pluginId??"unknown"}")`)}const n=new At({...e,id:s});this._stores.set(s,n),this._storeUnsubs.set(s,n.subscribe(()=>this._notify())),this._notify()}getExtensionPoint(e){const s=ze(e);return this._stores.get(s)}hasExtensionPoint(e){const s=ze(e);return this._stores.has(s)}listExtensionPoints(){return Array.from(this._stores.keys())}removeExtensionPoints(e){let s=!1;for(const[n,r]of this._stores)r.pluginId===e&&(this._storeUnsubs.get(n)?.(),this._storeUnsubs.delete(n),this._stores.delete(n),s=!0);s&&this._notify()}removeContributions(e){for(const s of this._stores.values())s.removeContributionsByPlugin(e);this._notify()}subscribe(e){return this._listeners.add(e),()=>{this._listeners.delete(e)}}_notify(){for(const e of this._listeners)e()}}const ie={Panel:{position:"fixed",right:"var(--ov-space-3)",bottom:36,zIndex:"calc(var(--ov-z-toast, 9999) + 1)",width:"min(480px, calc(100vw - 24px))",minWidth:0,maxHeight:"min(560px, calc(100dvh - 64px))",display:"flex",flexDirection:"column",overflow:"hidden",padding:0},Header:{flex:"none",gap:"var(--ov-space-2)",paddingInline:"var(--ov-space-3)",background:"var(--ov-color-bg-surface-raised)",borderBottom:"1px solid var(--ov-color-border-muted)"},HeaderActions:{marginLeft:"auto"},List:{minHeight:0,overflowY:"auto",overscrollBehavior:"contain"},Notice:{borderTop:"1px solid var(--ov-color-border-muted)"},Row:{display:"flex",alignItems:"center",gap:"var(--ov-space-1)",padding:"var(--ov-space-2) var(--ov-space-2) var(--ov-space-2) var(--ov-space-3)"},ErrorIcon:{flex:"none",color:"var(--ov-color-danger)"},Message:{flex:1,minWidth:0,justifyContent:"flex-start",textAlign:"left"},MessageText:{minWidth:0,overflowWrap:"anywhere"},Details:{padding:"0 var(--ov-space-3) var(--ov-space-3) 36px"},Code:{display:"block",margin:"var(--ov-space-2) 0",padding:"var(--ov-space-3)",maxHeight:240,overflow:"auto",whiteSpace:"pre-wrap",overflowWrap:"anywhere",lineHeight:1.5,userSelect:"text"},Actions:{display:"flex",flexWrap:"wrap",gap:"var(--ov-space-2)"},CopyError:{margin:0,padding:"var(--ov-space-3)",borderTop:"1px solid var(--ov-color-border-muted)"}},Lt=b.createContext(void 0),yn={default:"info",info:"info",success:"success",warning:"warning",error:"danger"},mn=({children:t})=>{const{toast:e}=J.useToast(),[s,n]=b.useState([]),[r,i]=b.useState([]),[o,u]=b.useState(!1),[l,c]=b.useState(),[f,a]=b.useState(""),d=b.useRef(0),h=b.useRef(null);b.useEffect(()=>{if(!o)return;const p=document.activeElement;h.current?.focus();const m=v=>{v.key==="Escape"&&(v.stopPropagation(),u(!1))};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m),p instanceof HTMLElement&&p.isConnected&&p.focus()}},[o]);const y=p=>{n(m=>[...m,p])},g=(p,m,v)=>{const S=typeof p=="object";let E="",w="info",x,I=5e3,_;if(S){if(E=p.message,p.showOnce){if(s.includes(E))return;y(E)}w=p.status,x=p.details,I=p.autoHideDuration??5e3,_=p.actions}else E=p,w=m,x=v;let R;if(w==="error"){const T={id:++d.current,message:E,details:x,created:new Date().toISOString(),actions:_};i(M=>[...M,T].slice(-20)),R={label:"Details",onClick:()=>{c(T.id),u(!0)}}}e(w==="error"?E:x??E,{severity:yn[w]??"info",title:w!=="error"&&x?E:void 0,duration:I,action:R??_?.[0]})};return D.jsxs(Lt.Provider,{value:{showSnackbar:g,openNotifications:()=>{u(!0)},notificationCount:r.length},children:[t,o&&D.jsxs(J.Card,{ref:h,style:ie.Panel,size:"sm",variant:"outline",surface:"overlay",elevation:3,"aria-label":"Notifications",tabIndex:-1,children:[D.jsxs(J.Toolbar,{size:"sm",style:ie.Header,children:[D.jsx(J.Text,{size:"sm",weight:"semibold",children:"Notifications"}),D.jsx(J.Text,{size:"xs",tone:"muted",children:r.length}),D.jsxs(J.Toolbar.Group,{style:ie.HeaderActions,children:[D.jsx(J.IconButton,{size:"sm",variant:"ghost","aria-label":"Clear history",title:"Clear history",disabled:r.length===0,onClick:()=>{i([]),c(void 0),a("")},children:D.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:D.jsx("path",{d:"m3 3 6 6m0-6L3 9M13 6h8M3 14h18M3 20h18"})})}),D.jsx(J.IconButton,{size:"sm",variant:"ghost","aria-label":"Close notifications",title:"Close notifications",onClick:()=>{u(!1)},children:D.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:D.jsx("path",{d:"m6 9 6 6 6-6"})})})]})]}),D.jsxs("div",{style:ie.List,children:[r.length===0&&D.jsx(J.EmptyState,{size:"sm",title:"No recent errors",description:"Error details will appear here."}),r.slice().reverse().map(p=>{const m=l===p.id;return D.jsxs("div",{style:ie.Notice,children:[D.jsxs("div",{style:ie.Row,children:[D.jsxs("svg",{style:ie.ErrorIcon,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-label":"Error",role:"img",children:[D.jsx("circle",{cx:"12",cy:"12",r:"9"}),D.jsx("path",{d:"m9 9 6 6m0-6-6 6"})]}),D.jsx(J.Button,{size:"sm",variant:"ghost",style:ie.Message,"aria-expanded":m,"aria-controls":`notification-${p.id}`,title:p.message,onClick:()=>{c(m?void 0:p.id),a("")},children:D.jsx(J.Text,{size:"sm",style:ie.MessageText,truncate:!m,children:p.message})}),D.jsx(J.IconButton,{size:"sm",variant:"ghost","aria-label":m?"Collapse details":"Expand details",title:m?"Collapse details":"Expand details","aria-expanded":m,"aria-controls":`notification-${p.id}`,onClick:()=>{c(m?void 0:p.id),a("")},children:D.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:D.jsx("path",{d:m?"m6 15 6-6 6 6":"m6 9 6 6 6-6"})})}),D.jsx(J.IconButton,{size:"sm",variant:"ghost","aria-label":`Dismiss ${p.message}`,title:"Dismiss notification",onClick:()=>{i(v=>v.filter(S=>S.id!==p.id)),m&&(c(void 0),a(""))},children:D.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:D.jsx("path",{d:"m6 6 12 12m0-12L6 18"})})})]}),D.jsx("div",{id:`notification-${p.id}`,hidden:!m,style:ie.Details,children:m&&D.jsxs(D.Fragment,{children:[D.jsx(J.Text,{size:"xs",tone:"muted",children:D.jsx("time",{dateTime:p.created,children:new Date(p.created).toLocaleString()})}),D.jsx(J.Code,{size:"sm",style:ie.Code,children:p.details?.length?p.details:p.message}),D.jsxs("div",{style:ie.Actions,children:[D.jsx(J.Button,{size:"sm",variant:"ghost",onClick:async()=>{a("");try{await navigator.clipboard.writeText(`${p.message}
3
- ${p.created}
4
- ${p.details??""}`)}catch{a("Copy failed. Select the diagnostic text and copy it manually.")}},children:"Copy details"}),p.actions?.map((v,S)=>D.jsx(J.Button,{size:"sm",variant:"outline",onClick:v.onClick,children:v.label},`${v.label}-${S}`))]})]})})]},p.id)})]}),f&&D.jsx(J.Text,{as:"p",size:"sm",role:"status",style:ie.CopyError,children:f})]})]})},ue=()=>{const t=b.useContext(Lt);if(t===void 0)throw new Error("useCustomSnackbar must be used within a CustomSnackbarProvider");return t},ye={all:t=>[t,"resource-v2"],scope:(t,e)=>[t,"resource-v2","target",e],list:(t,e)=>[t,"resource-v2","enumerate",e],nativeQuery:(t,e)=>[t,"resource-v2","native-query",e],resource:(t,e)=>[t,"resource-v2","get",e]};function K(t){const s=b.useContext(Me)?.pluginId??t;if(!s)throw new Error("pluginID must be provided either via PluginContext or as an explicit parameter");return s}const le=new Map,Re=new Map;let Je=0,xe=[],ft=0;const Ft={phase:"checking"};function Ee(t,e){const s=JSON.stringify([t,e]);let n=le.get(s);return n||(n={pluginID:t,connectionID:e,key:s,snapshot:Ft,listeners:new Set,users:0,version:0,generation:++ft,starts:new Set},le.set(s,n)),n}function Ne(t,e){t.snapshot.phase==="connected"&&e.phase!=="connected"&&(t.generation=++ft),t.snapshot=e;for(const s of t.listeners)s()}function Se(t,e,s=!1){t.generation=++ft,t.version++,s||(t.operation=void 0),Ne(t,e)}function vn(t){switch(t){case"CONNECTED":return"connected";case"DISCONNECTED":return"disconnected";case"PENDING":return"connecting";case"UNAUTHORIZED":return"unauthorized";case"FORBIDDEN":return"forbidden";case"NOT_FOUND":return"not-found";default:return"error"}}function ht(t){const e=t?.trim();if(e)return e.startsWith("{")||e.startsWith("[")||e.length>512||/[\r\n]|\bgoroutine\b|\bat\s+\S+\s+\(.*:\d+:\d+\)/.test(e)?"The connection operation could not be completed.":e}function qt(t,e){const s=vn(t.status);return{phase:s,connection:e,message:ht(t.error||t.details)||(s==="error"?"The connection is not ready.":void 0)}}function Mt(t,e){const s=ce(t);return{phase:s.status===401?"unauthorized":s.status===403?"forbidden":s.status===404?"not-found":"error",connection:e,message:ht(s.detail||s.title)}}function He(t,e){e=ht(e)||"The plugin is unavailable.",Re.set(t,e);for(const s of le.values())s.pluginID===t&&Se(s,{phase:"error",message:e,connection:s.snapshot.connection})}function bt(t){const e=Re.delete(t);for(const s of le.values())s.pluginID===t&&(!e&&s.snapshot.phase==="checking"&&s.operation?.kind==="check"||(Se(s,{phase:"checking",connection:s.snapshot.connection}),s.users&&ge(s,"check").catch(()=>{})))}function _e(){if(!(typeof document<"u"&&document.visibilityState==="hidden"))for(const t of le.values())t.users&&!Re.has(t.pluginID)&&ge(t,"check",!0).catch(()=>{})}function En(){xe.length||(xe=[G.On("connection/status",({data:t})=>{const e=le.get(JSON.stringify([t.pluginID,t.connectionID]));!e||Re.has(t.pluginID)||e.stop&&t.status!=="DISCONNECTED"||t.status!=="DISCONNECTED"&&e.starts.size&&e.operation?.kind!=="start"||Se(e,qt({status:t.status,error:"",details:""},e.snapshot.connection),t.status==="CONNECTED")}),G.On("plugin/crash",({data:t})=>He(t.pluginID,t.error||"The plugin stopped unexpectedly.")),G.On("plugin/crash_recovery_failed",({data:t})=>He(t.pluginID,t.error||"Plugin recovery failed.")),G.On("plugin/recovered",({data:t})=>bt(t.pluginID)),G.On("plugin/state_change",({data:t})=>{t.to==="Running"?bt(t.pluginID):He(t.pluginID,t.reason||`The plugin is ${t.to}.`)})],typeof window<"u"&&(window.addEventListener("focus",_e),window.addEventListener("pageshow",_e),xe.push(()=>{window.removeEventListener("focus",_e),window.removeEventListener("pageshow",_e)})),typeof document<"u"&&(document.addEventListener("visibilitychange",_e),xe.push(()=>document.removeEventListener("visibilitychange",_e))))}function Ce(t){return le.set(t.key,t),t.users++,Je++,En(),()=>{if(t.users--,Je--,t.users||(Se(t,Ft),le.get(t.key)===t&&le.delete(t.key)),!Je){for(const e of xe)e();xe=[],Re.clear()}}}function ge(t,e,s=!1){if(t.stop)return Promise.reject(new Error("Connection is disconnecting. Wait for it to stop before connecting."));const n=Re.get(t.pluginID);if(n)return Ne(t,{phase:"error",message:n,connection:t.snapshot.connection}),Promise.reject(new Error(n));if(t.operation&&(e==="check"||t.operation.kind==="start"))return t.operation.promise;const r=++t.version;(!s||t.snapshot.phase!=="connected")&&Ne(t,{phase:e==="start"?"connecting":"checking",connection:t.snapshot.connection}),e==="start"&&t.starts.add(r);const i=Promise.resolve().then(()=>{if(t.version!==r)throw new Error("Connection readiness changed before the operation began.");return e==="start"?L.StartConnection(t.pluginID,t.connectionID):L.CheckConnection(t.pluginID,t.connectionID)}).then(o=>(t.version===r&&Ne(t,qt(o,o.connection??t.snapshot.connection)),o),o=>{throw t.version===r&&Ne(t,Mt(o,t.snapshot.connection)),o}).finally(()=>{e==="start"&&t.starts.delete(r),t.operation?.version===r&&(t.operation=void 0)});return t.operation={kind:e,promise:i,version:r},i}function We(t,e){return{getSnapshot:()=>Ee(t,e).snapshot,subscribe:s=>{const n=Ee(t,e),r=n.users===0,i=Ce(n);return n.listeners.add(s),r&&ge(n,"check").catch(()=>{}),()=>{n.listeners.delete(s),i()}},connect:async()=>{const s=Ee(t,e),n=Ce(s);try{await ge(s,"start")}catch{}finally{n()}},retry:async()=>{const s=Ee(t,e),n=Ce(s);try{await ge(s,"check")}catch{}finally{n()}}}}async function Pe(t,e){const s=Ee(t,e),n=Ce(s);try{try{await ge(s,"check",!0)}catch{}if(s.snapshot.phase!=="connected")throw new Error(s.snapshot.message||`Connection ${e} is ${s.snapshot.phase}. Connect before continuing.`)}finally{n()}}async function Sn(t,e,s){const n=Ee(t,e),r=Ce(n);try{try{await ge(n,"check",!0)}catch{}if(n.snapshot.phase!=="connected")throw new Error(n.snapshot.message||`Connection ${e} is ${n.snapshot.phase}. Connect before continuing.`);const i=n.generation,o=await s();if(n.generation!==i||n.snapshot.phase!=="connected")throw new Error(`Connection ${e} changed while the operation was in progress. Retry after connecting.`);return o}finally{r()}}function et(t,e){return le.get(JSON.stringify([t,e]))?.generation}function ke(t,e,s){const n=le.get(JSON.stringify([t,e]));return s!==void 0&&n?.generation===s&&n.snapshot.phase==="connected"}async function bn(t,e){const s=Ee(t,e),n=Ce(s);try{return await ge(s,"start")}finally{n()}}function jt(t,e){const s=Ee(t,e);if(s.stop)return s.stop;const n=Ce(s),r=Promise.resolve().then(()=>L.StopConnection(t,e)).then(i=>(Se(s,{phase:"disconnected",connection:i}),i),i=>{throw Se(s,Mt(i,s.snapshot.connection)),i}).finally(()=>{s.stop=void 0,n()});return s.stop=r,Se(s,{phase:"disconnected",message:"Disconnecting. Wait for the connection to stop before reconnecting.",connection:s.snapshot.connection}),r}function wt(t,e,s=!1){const n=le.get(JSON.stringify([t,e]));n&&(Se(n,{phase:s?"not-found":"checking",connection:s?void 0:n.snapshot.connection}),!s&&n.users&&ge(n,"check").catch(()=>{}))}function Ve(t){if(!t.applied)throw new Error("Connection profile was not applied");return t}const wn=t=>{const e=W.c(89),{pluginID:s,connectionID:n,enabled:r}=t,i=r===void 0?!0:r,o=K(s),u=k.useQueryClient(),{showSnackbar:l}=ue();let c;e[0]!==n||e[1]!==o?(c=[o,"connection","detail",n],e[0]=n,e[1]=o,e[2]=c):c=e[2];const f=c;let a;e[3]!==o||e[4]!==u?(a=async()=>{await Promise.all([u.invalidateQueries({queryKey:[o,"connection"]}),u.invalidateQueries({queryKey:ye.all(o)}),u.invalidateQueries({queryKey:[o,"resource-v2","editor-schemas"]})])},e[3]=o,e[4]=u,e[5]=a):a=e[5];const d=a;let h;e[6]!==n||e[7]!==d||e[8]!==o?(h=async()=>{wt(o,n),await d()},e[6]=n,e[7]=d,e[8]=o,e[9]=h):h=e[9];const y=h;let g;e[10]!==n||e[11]!==o?(g=()=>bn(o,n),e[10]=n,e[11]=o,e[12]=g):g=e[12];let p;e[13]!==l?(p=ne(l,"Failed to start connection"),e[13]=l,e[14]=p):p=e[14];let m;e[15]!==d||e[16]!==g||e[17]!==p?(m={mutationFn:g,onSuccess:d,onError:p},e[15]=d,e[16]=g,e[17]=p,e[18]=m):m=e[18];const{mutateAsync:v}=k.useMutation(m);let S;e[19]!==n||e[20]!==o?(S=()=>jt(o,n),e[19]=n,e[20]=o,e[21]=S):S=e[21];let E;e[22]!==l?(E=ne(l,"Failed to stop connection"),e[22]=l,e[23]=E):E=e[23];let w;e[24]!==d||e[25]!==S||e[26]!==E?(w={mutationFn:S,onSuccess:d,onError:E},e[24]=d,e[25]=S,e[26]=E,e[27]=w):w=e[27];const{mutateAsync:x}=k.useMutation(w);let I;e[28]!==o?(I=me=>L.SaveConnectionProfile(o,me).then(Ve),e[28]=o,e[29]=I):I=e[29];let _,R;e[30]!==l?(_=()=>{l("Connection profile saved","success")},R=ne(l,"Failed to save connection profile"),e[30]=l,e[31]=_,e[32]=R):(_=e[31],R=e[32]);let T;e[33]!==y||e[34]!==I||e[35]!==_||e[36]!==R?(T={mutationFn:I,onSuccess:_,onError:R,onSettled:y},e[33]=y,e[34]=I,e[35]=_,e[36]=R,e[37]=T):T=e[37];const{mutateAsync:M}=k.useMutation(T);let N;e[38]!==n||e[39]!==o?(N=()=>L.ImportConnectionProfile(o,n).then(Ve),e[38]=n,e[39]=o,e[40]=N):N=e[40];let F,C;e[41]!==l?(F=()=>{l("Connection profile imported","success")},C=ne(l,"Failed to import connection profile"),e[41]=l,e[42]=F,e[43]=C):(F=e[42],C=e[43]);let O;e[44]!==y||e[45]!==N||e[46]!==F||e[47]!==C?(O={mutationFn:N,onSuccess:F,onError:C,onSettled:y},e[44]=y,e[45]=N,e[46]=F,e[47]=C,e[48]=O):O=e[48];const{mutateAsync:P}=k.useMutation(O);let $;e[49]!==n||e[50]!==o?($=()=>L.ResetConnectionProfile(o,n).then(Ve),e[49]=n,e[50]=o,e[51]=$):$=e[51];let A,q;e[52]!==l?(A=()=>{l("Connection profile reset","success")},q=ne(l,"Failed to reset connection profile"),e[52]=l,e[53]=A,e[54]=q):(A=e[53],q=e[54]);let j;e[55]!==y||e[56]!==$||e[57]!==A||e[58]!==q?(j={mutationFn:$,onSuccess:A,onError:q,onSettled:y},e[55]=y,e[56]=$,e[57]=A,e[58]=q,e[59]=j):j=e[59];const{mutateAsync:B}=k.useMutation(j);let z;e[60]!==n||e[61]!==o?(z=()=>L.RemoveConnection(o,n),e[60]=n,e[61]=o,e[62]=z):z=e[62];let H;e[63]!==n||e[64]!==o||e[65]!==l?(H=()=>{wt(o,n,!0),l("Connection disabled","success")},e[63]=n,e[64]=o,e[65]=l,e[66]=H):H=e[66];let Z;e[67]!==l?(Z=ne(l,"Failed to disable connection"),e[67]=l,e[68]=Z):Z=e[68];let V;e[69]!==d||e[70]!==z||e[71]!==H||e[72]!==Z?(V={mutationFn:z,onSuccess:H,onError:Z,onSettled:d},e[69]=d,e[70]=z,e[71]=H,e[72]=Z,e[73]=V):V=e[73];const{mutateAsync:te}=k.useMutation(V);let U;e[74]!==n||e[75]!==o?(U=()=>L.GetConnection(o,n),e[74]=n,e[75]=o,e[76]=U):U=e[76];const X=i&&!!n;let fe;e[77]!==f||e[78]!==U||e[79]!==X?(fe={queryKey:f,queryFn:U,enabled:X},e[77]=f,e[78]=U,e[79]=X,e[80]=fe):fe=e[80];const he=k.useQuery(fe);let pe;return e[81]!==he||e[82]!==P||e[83]!==te||e[84]!==B||e[85]!==M||e[86]!==v||e[87]!==x?(pe={connection:he,startConnection:v,stopConnection:x,saveConnectionProfile:M,importConnectionProfile:P,resetConnectionProfile:B,removeConnection:te},e[81]=he,e[82]=P,e[83]=te,e[84]=B,e[85]=M,e[86]=v,e[87]=x,e[88]=pe):pe=e[88],pe},$t=t=>[t,"connection","list"],Cn=t=>{const e=W.c(33),{plugin:s}=t,n=K(s),r=k.useQueryClient(),{showSnackbar:i}=ue();let o;e[0]!==n?(o=$t(n),e[0]=n,e[1]=o):o=e[1];const u=o;let l;e[2]!==n?(l=_=>L.StartConnectionWatch(n,_),e[2]=n,e[3]=l):l=e[3];let c;e[4]!==i?(c=ne(i,"Failed to start connection watch"),e[4]=i,e[5]=c):c=e[5];let f;e[6]!==l||e[7]!==c?(f={mutationFn:l,onError:c},e[6]=l,e[7]=c,e[8]=f):f=e[8];const{mutateAsync:a}=k.useMutation(f);let d;e[9]!==n?(d=_=>L.StopConnectionWatch(n,_),e[9]=n,e[10]=d):d=e[10];let h;e[11]!==i?(h=ne(i,"Failed to stop connection watch"),e[11]=i,e[12]=h):h=e[12];let y;e[13]!==d||e[14]!==h?(y={mutationFn:d,onError:h},e[13]=d,e[14]=h,e[15]=y):y=e[15];const{mutateAsync:g}=k.useMutation(y);let p;e[16]!==r||e[17]!==u?(p=_=>{const R=_.data;console.log("got update to connections",R),r.setQueryData(u,R)},e[16]=r,e[17]=u,e[18]=p):p=e[18];const m=p;let v,S;e[19]!==m||e[20]!==n?(S=()=>{const _=G.On(`${n}/connection/sync`,m);return()=>{_()}},v=[n,m],e[19]=m,e[20]=n,e[21]=v,e[22]=S):(v=e[21],S=e[22]),b.useEffect(S,v);let E;e[23]!==n||e[24]!==i?(E=async()=>{try{return await L.ListConnections(n)}catch(_){const R=_;console.log(R),ne(i,"Failed to load connections")(R)}return[]},e[23]=n,e[24]=i,e[25]=E):E=e[25];let w;e[26]!==u||e[27]!==E?(w={queryKey:u,queryFn:E,staleTime:3e4,placeholderData:k.keepPreviousData},e[26]=u,e[27]=E,e[28]=w):w=e[28];const x=k.useQuery(w);let I;return e[29]!==x||e[30]!==a||e[31]!==g?(I={connections:x,startWatch:a,stopWatch:g},e[29]=x,e[30]=a,e[31]=g,e[32]=I):I=e[32],I},In={phase:"checking"},_n={getSnapshot:()=>In,subscribe:()=>()=>{},connect:async()=>{},retry:async()=>{}};function oe(t){const e=W.c(8),{pluginID:s,connectionID:n,enabled:r}=t,i=r===void 0?!0:r,o=K(s);let u;e[0]!==n||e[1]!==i||e[2]!==o?(u=i?We(o,n):_n,e[0]=n,e[1]=i,e[2]=o,e[3]=u):u=e[3];const l=u,c=b.useSyncExternalStore(l.subscribe,l.getSnapshot,l.getSnapshot);let f;return e[4]!==c||e[5]!==l.connect||e[6]!==l.retry?(f={...c,connect:l.connect,retry:l.retry},e[4]=c,e[5]=l.connect,e[6]=l.retry,e[7]=f):f=e[7],f}function ae(t,e){const s=k.useQueryClient();return b.useCallback(async(n,r,i,o=e)=>{const u=o,l=et(t,u),c=()=>l!==void 0&&ke(t,u,l);if(r.aborted||!c())throw new k.CancelledError({revert:!0});let f,a=!1,d=!1;const h=()=>{f&&"cancel"in f&&typeof f.cancel=="function"&&Promise.resolve(f.cancel()).catch(p=>{console.error("Failed to cancel resource query",p)}),g()},y=We(t,u).subscribe(()=>{c()||(a=!0,s.cancelQueries({queryKey:n,exact:!0}).catch(p=>{console.error("Failed to cancel invalidated resource query",p)}))}),g=()=>{d||(d=!0,y())};r.addEventListener("abort",h,{once:!0});try{if(r.aborted||a||!c())throw new k.CancelledError({revert:!0});f=i();const p=await f;if(r.aborted||a||!c())throw new k.CancelledError({revert:!0});return p}finally{r.removeEventListener("abort",h),g()}},[t,e,s])}const xn=t=>{const e=W.c(20),{pluginID:s,route:n,dimension:r,enabled:i}=t,o=i===void 0?!0:i,u=K(s),l=o&&!!r;let c;e[0]!==u||e[1]!==n.connection||e[2]!==l?(c={pluginID:u,connectionID:n.connection,enabled:l},e[0]=u,e[1]=n.connection,e[2]=l,e[3]=c):c=e[3];const f=oe(c),a=ae(u,n.connection),d=o&&!!u&&!!n.connection&&!!r&&f.phase==="connected";let h;e[4]!==r||e[5]!==u||e[6]!==n?(h=[u,"resource-v2","scope-values",n,r],e[4]=r,e[5]=u,e[6]=n,e[7]=h):h=e[7];let y;e[8]!==r||e[9]!==a||e[10]!==u||e[11]!==d||e[12]!==n?(y=d?v=>{const{signal:S,queryKey:E}=v;return a(E,S,()=>L.ScopeValues(u,n,r))}:k.skipToken,e[8]=r,e[9]=a,e[10]=u,e[11]=d,e[12]=n,e[13]=y):y=e[13];let g;e[14]!==d||e[15]!==h||e[16]!==y?(g={queryKey:h,queryFn:y,enabled:d},e[14]=d,e[15]=h,e[16]=y,e[17]=g):g=e[17];const p=k.useQuery(g);let m;return e[18]!==p?(m={values:p},e[18]=p,e[19]=m):m=e[19],m};function tt(t){const e=Object.values(t.states),s=e.length;let n=0,r=0,i=0,o=0;for(const f of e)f===Q.WatchState.WatchStateSynced&&n++,(f===Q.WatchState.WatchStateError||f===Q.WatchState.WatchStateFailed)&&r++,f===Q.WatchState.WatchStateForbidden&&i++,f===Q.WatchState.WatchStateSkipped&&o++;const u=s-o,l=e.filter(f=>f===Q.WatchState.WatchStateSynced||f===Q.WatchState.WatchStateError||f===Q.WatchState.WatchStateStopped||f===Q.WatchState.WatchStateFailed||f===Q.WatchState.WatchStateForbidden).length,c=u>0?l/u:0;return{pluginID:t.pluginID,connectionID:t.connectionID,totalResources:s,watchedTotal:u,syncedCount:n,errorCount:r,forbiddenCount:i,skippedCount:o,doneCount:l,progress:c}}function Ue(t){return t.watchedTotal>0&&t.doneCount>=t.watchedTotal}function Wt(t){return t.some(e=>!Ue(e))}function Ut(t){const e=t.reduce((n,r)=>n+r.watchedTotal,0);return e===0?0:t.reduce((n,r)=>n+r.doneCount,0)/e}function pt(t,e){return JSON.stringify([t,e.route.connection])}function nt(t,e,s){const n=pt(e,s);t.has(n)||t.set(n,{states:{},pluginID:e,connectionID:s.route.connection});const r=t.get(n);return r.states[s.type]=s.state,r}function Rn(){const[t,e]=b.useState(new Map),s=b.useRef(t),n=b.useRef(new Map),r=b.useRef(new Map),[i,o]=b.useState(!0),[u,l]=b.useState(),c=b.useRef({generation:0}),[f,a]=b.useState({}),[d,h]=b.useState(new Map),y=b.useRef(new Map),[g,p]=b.useState(new Map);b.useEffect(()=>{const C=G.On("plugin/crash_recovery_failed",P=>{const $=P.data,A=$?.pluginID;A&&p(q=>{const j=new Map(q);return j.set(A,$.error??"Crash recovery failed"),j})}),O=G.On("plugin/recovered",P=>{const A=P.data?.pluginID;A&&p(q=>{if(!q.has(A))return q;const j=new Map(q);return j.delete(A),j})});return()=>{C(),O()}},[]);const m=b.useCallback(async()=>{const C=++c.current.generation;n.current.clear(),r.current.clear();let O;try{O=L.GetAllConnectionStates()}catch(P){O=Promise.reject(P)}await O.then(P=>{if(C!==c.current.generation||!P)return;const $={},A=new Map,q=new Map;for(const[j,B]of Object.entries(P))if(B){$[j]=B.map(z=>z.connection);for(const z of B){const H=JSON.stringify([j,z.connection.id]),Z=n.current.get(H)??{readiness:z.readiness,readinessError:z.readinessError};if(A.set(H,Z),Z.readiness!=="CONNECTED")continue;const V={pluginID:j,connectionID:z.connection.id,states:{}};if(z.resources)for(const[te,U]of Object.entries(z.resources))V.states[te]=U;Object.assign(V.states,r.current.get(H)?.states),y.current.set(H,V),q.set(H,tt(V))}}a($);for(const[j,B]of n.current)A.set(j,B);s.current=A,e(A),h(q)}).catch(P=>{C===c.current.generation&&l(ce(P))}).finally(()=>{C===c.current.generation&&o(!1)})},[]),v=b.useCallback(async()=>{o(!0),l(void 0),await m()},[m]);b.useEffect(()=>{const C=c.current;return m().catch(O=>{console.error("Connection status refresh failed:",O)}),()=>{++C.generation}},[m]),b.useEffect(()=>{let C=!0,O=0;const P=G.On("connection/status",$=>{const A=$.data,q=JSON.stringify([A.pluginID,A.connectionID]),j=A.status==="DISCONNECTED"||A.status==="PENDING"||A.status==="CONNECTED"||A.status==="FAILED"?A.status:"UNKNOWN",B={readiness:j};n.current.set(q,B);const z=new Map(s.current);z.set(q,B),s.current=z,e(z),j!=="CONNECTED"&&(h(V=>{const te=new Map(V);return te.delete(q),te}),y.current.delete(q),r.current.delete(q));const H=++O,Z=c.current.generation;L.ListAllConnections().then(V=>{if(!C||H!==O||Z!==c.current.generation||!V)return;const te={};for(const[U,X]of Object.entries(V))X!=null&&(te[U]=X);a(te)}).catch(V=>{C&&H===O&&Z===c.current.generation&&console.error("Connection metadata refresh failed:",V)})});return()=>{C=!1,P()}},[]);const S=b.useCallback(C=>{const O=C.data,P=pt(O.pluginID,O);if(s.current.get(P)?.readiness!=="CONNECTED")return;const $=nt(y.current,O.pluginID,O);nt(r.current,O.pluginID,O);const A=tt($);h(q=>{const j=new Map(q);return j.set(P,A),j})},[]);b.useEffect(()=>G.On("watch/STATE",S),[S]);const E=b.useCallback(async(C,O)=>{await jt(C,O)},[]),w=b.useCallback(async(C,O)=>{if(s.current.get(JSON.stringify([C,O]))?.readiness!=="CONNECTED")return;const P={connection:O},$=await L.Catalog(C,{route:P}),A=await Promise.all($.types.filter(q=>q.capabilities.some(j=>j.operation==="update")).map(q=>L.ResolveTarget(C,{route:P,type:q.type})));await L.StartConnectionWatch(C,A.map(q=>q.target))},[]),x=b.useCallback(async C=>{const O=g.get(C);p(P=>{if(!P.has(C))return P;const $=new Map(P);return $.delete(C),$});try{await L.RetryFailedPlugin(C)}catch(P){throw p($=>{const A=new Map($);return A.set(C,O??"Reload failed"),A}),P}},[g]),I=[],_=new Set(t.keys());for(const[C,O]of Object.entries(f))for(const P of O)_.add(JSON.stringify([C,P.id]));for(const C of _){const[O,P]=JSON.parse(C),A=(f[O]??[]).find(Z=>Z.id===P),q=t.get(C)??{readiness:"UNKNOWN"},j=q.readiness==="CONNECTED"?d.get(C):void 0,B=j!=null&&!Ue(j),z=j!=null&&j.errorCount>0,H=g.get(O);I.push({pluginID:O,connectionID:P,name:A?.name??P,avatar:A?.avatar??"",readiness:q.readiness,readinessError:q.readinessError,sync:j,isSyncing:B,hasErrors:z||H!=null||q.readiness==="FAILED"||q.readinessError!=null,pluginFailed:H!=null,pluginError:H})}const R=new Map;for(const C of I){const O=R.get(C.pluginID)??[];O.push(C),R.set(C.pluginID,O)}const T=I.flatMap(C=>C.sync?[C.sync]:[]),M=I.filter(C=>C.isSyncing),N=I.filter(C=>C.hasErrors),F=I.filter(C=>C.pluginFailed);return{isLoading:i,error:u,refresh:v,entries:I,grouped:R,connectedCount:I.filter(C=>C.readiness==="CONNECTED").length,syncingCount:M.length,errorCount:N.length,failedCount:F.length,hasSyncing:Wt(T),aggregateProgress:Ut(T),disconnect:E,retryWatch:w,retryPlugin:x}}function Dn(t){const e=W.c(9),{pluginID:s}=t,n=K(s);let r,i;e[0]!==n?(r=[n,"connection","profiles"],i=f=>{const{signal:a}=f;a.throwIfAborted();const d=L.ListConnectionProfiles(n),h=()=>{d.cancel()};return a.addEventListener("abort",h,{once:!0}),d.finally(()=>a.removeEventListener("abort",h))},e[0]=n,e[1]=r,e[2]=i):(r=e[1],i=e[2]);const o=!!n;let u;e[3]!==r||e[4]!==i||e[5]!==o?(u={queryKey:r,queryFn:i,enabled:o,retry:!1},e[3]=r,e[4]=i,e[5]=o,e[6]=u):u=e[6];const l=k.useQuery(u);let c;return e[7]!==l?(c={profiles:l},e[7]=l,e[8]=c):c=e[8],c}const Nn={display:"flex",alignItems:"center",justifyContent:"center",minHeight:240,height:"100%",padding:24,boxSizing:"border-box",color:"var(--ov-color-fg-default)"},kn={width:"100%",maxWidth:560,minWidth:0,display:"flex",flexDirection:"column",gap:16},Tn={display:"flex",alignItems:"center",gap:12},On={margin:0,fontSize:"1.125rem",fontWeight:600},Pn={display:"flex",flexWrap:"wrap",gap:8},Ye={margin:0,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},An={width:20,height:20,flexShrink:0},Ln={checking:{title:"Checking connection",description:"Checking whether this connection is ready before loading resources."},disconnected:{title:"Connection is disconnected",description:"Connect to load resources and continue at this location."},connecting:{title:"Connecting",description:"Establishing the connection. Resources will load here when it is ready."},unauthorized:{title:"Authentication required",description:"The connection could not authenticate. Check its credentials, then connect again."},forbidden:{title:"Connection access denied",description:"The connection is not permitted to access this target. Check its credentials and permissions."},"not-found":{title:"Connection not found",description:"This saved connection is no longer available. Return to connections or check its configuration."},error:{title:"Connection could not be verified",description:"Check the connection settings and network, then connect again or retry the check."}};function Qt(t){const e=W.c(44),{state:s,connectionName:n,connectionDetails:r,onEditConnection:i,onBack:o,backLabel:u}=t,l=u===void 0?"Back to connections":u,c=b.useId();if(s.phase==="connected")return null;const f=s.phase==="checking"||s.phase==="connecting",a=Ln[s.phase],d=n??s.connection?.name;let h;e[0]!==r||e[1]!==d?(h=r??(d&&D.jsx(J.Text,{size:"sm",tone:"muted",style:Ye,children:d})),e[0]=r,e[1]=d,e[2]=h):h=e[2];let y;e[3]!==f?(y=f&&D.jsx(J.Spinner,{style:An,"aria-hidden":"true"}),e[3]=f,e[4]=y):y=e[4];let g;e[5]!==c||e[6]!==a.title?(g=D.jsx("h2",{id:c,style:On,children:a.title}),e[5]=c,e[6]=a.title,e[7]=g):g=e[7];let p;e[8]!==y||e[9]!==g?(p=D.jsxs("div",{style:Tn,role:"status","aria-live":"polite",children:[y,g]}),e[8]=y,e[9]=g,e[10]=p):p=e[10];let m;e[11]!==a.description?(m=D.jsx(J.Text,{as:"p",size:"sm",tone:"muted",style:Ye,children:a.description}),e[11]=a.description,e[12]=m):m=e[12];let v;e[13]!==f||e[14]!==s.message?(v=s.message&&D.jsx(J.Text,{as:"p",size:"sm",style:Ye,role:f?"status":"alert",children:s.message}),e[13]=f,e[14]=s.message,e[15]=v):v=e[15];let S;e[16]!==f||e[17]!==s?(S=s.phase!=="not-found"&&D.jsx(J.Button,{size:"sm",variant:"solid",color:"brand",disabled:f,onClick:()=>{s.connect()},children:"Connect and continue"}),e[16]=f,e[17]=s,e[18]=S):S=e[18];const E=s.phase==="checking";let w;e[19]!==s?(w=()=>{s.retry()},e[19]=s,e[20]=w):w=e[20];let x;e[21]!==w||e[22]!==E?(x=D.jsx(J.Button,{size:"sm",variant:"outline",color:"neutral",disabled:E,onClick:w,children:"Retry check"}),e[21]=w,e[22]=E,e[23]=x):x=e[23];let I;e[24]!==i?(I=i&&D.jsx(J.Button,{size:"sm",variant:"outline",color:"neutral",onClick:i,children:"Edit connection"}),e[24]=i,e[25]=I):I=e[25];let _;e[26]!==l||e[27]!==o?(_=o&&D.jsx(J.Button,{size:"sm",variant:"outline",color:"neutral",onClick:o,children:l}),e[26]=l,e[27]=o,e[28]=_):_=e[28];let R;e[29]!==x||e[30]!==I||e[31]!==_||e[32]!==S?(R=D.jsxs("div",{style:Pn,children:[S,x,I,_]}),e[29]=x,e[30]=I,e[31]=_,e[32]=S,e[33]=R):R=e[33];let T;e[34]!==R||e[35]!==h||e[36]!==p||e[37]!==m||e[38]!==v?(T=D.jsxs("div",{style:kn,children:[h,p,m,v,R]}),e[34]=R,e[35]=h,e[36]=p,e[37]=m,e[38]=v,e[39]=T):T=e[39];let M;return e[40]!==f||e[41]!==c||e[42]!==T?(M=D.jsx("section",{style:Nn,"aria-labelledby":c,"aria-busy":f,children:T}),e[40]=f,e[41]=c,e[42]=T,e[43]=M):M=e[43],M}function Fn(t){const e=W.c(9),{pluginID:s,connectionID:n,children:r,fallback:i}=t;let o;e[0]!==n||e[1]!==s?(o={pluginID:s,connectionID:n},e[0]=n,e[1]=s,e[2]=o):o=e[2];const u=oe(o);if(u.phase!=="connected"){let c;return e[3]!==n||e[4]!==i||e[5]!==u?(c=i?i(u):D.jsx(Qt,{state:u,connectionName:u.connection?.name||n}),e[3]=n,e[4]=i,e[5]=u,e[6]=c):c=e[6],c}let l;return e[7]!==r?(l=D.jsx(D.Fragment,{children:r}),e[7]=r,e[8]=l):l=e[8],l}function qn(t){const e=W.c(7),s=K(t.pluginID);let n;e[0]!==s||e[1]!==t.connectionID?(n=JSON.stringify([s,t.connectionID]),e[0]=s,e[1]=t.connectionID,e[2]=n):n=e[2];let r;return e[3]!==s||e[4]!==t||e[5]!==n?(r=b.createElement(Fn,{...t,pluginID:s,key:n}),e[3]=s,e[4]=t,e[5]=n,e[6]=r):r=e[6],r}function Mn(t,e){return e===null?t===null:Array.isArray(e)?Array.isArray(t):typeof e=="object"?typeof t=="object"&&t!==null&&!Array.isArray(t):typeof t==typeof e}function jn(t,e,s){const n=W.c(29),r=K(t),i=k.useQueryClient();let o;n[0]!==e||n[1]!==r?(o=[r,"data",e],n[0]=e,n[1]=r,n[2]=o):o=n[2];const u=o;let l;n[3]!==s||n[4]!==e||n[5]!==r?(l=async()=>{const E=await L.Get(r,e);return E==null?s:Mn(E,s)?E:(console.warn(`[usePluginData] stored value for "${e}" has unexpected type (expected ${Array.isArray(s)?"array":typeof s}, got ${Array.isArray(E)?"array":typeof E}). Using default.`),s)},n[3]=s,n[4]=e,n[5]=r,n[6]=l):l=n[6];let c;n[7]!==u||n[8]!==l?(c={queryKey:u,queryFn:l},n[7]=u,n[8]=l,n[9]=c):c=n[9];const f=k.useQuery(c);let a;n[10]!==e||n[11]!==r?(a=async E=>{await L.Set(r,e,E)},n[10]=e,n[11]=r,n[12]=a):a=n[12];let d,h,y;n[13]!==i||n[14]!==u?(d=async E=>{await i.cancelQueries({queryKey:u});const w=i.getQueryData(u);return i.setQueryData(u,E),{previous:w}},h=(E,w,x)=>{x?.previous!==void 0&&i.setQueryData(u,x.previous)},y=()=>{i.invalidateQueries({queryKey:u})},n[13]=i,n[14]=u,n[15]=d,n[16]=h,n[17]=y):(d=n[15],h=n[16],y=n[17]);let g;n[18]!==a||n[19]!==d||n[20]!==h||n[21]!==y?(g={mutationFn:a,onMutate:d,onError:h,onSettled:y},n[18]=a,n[19]=d,n[20]=h,n[21]=y,n[22]=g):g=n[22];const p=k.useMutation(g),m=f.data??s;let v;n[23]!==p?(v=async E=>{await p.mutateAsync(E)},n[23]=p,n[24]=v):v=n[24];let S;return n[25]!==f.isLoading||n[26]!==m||n[27]!==v?(S={data:m,update:v,isLoading:f.isLoading},n[25]=f.isLoading,n[26]=m,n[27]=v,n[28]=S):S=n[28],S}const $n=()=>{const t=b.useContext(Nt);if(!t)throw new Error("useRightDrawer must be used within a RightDrawerProvider");return t},gt=()=>{const t=b.useContext(Dt);if(t===void 0)throw new Error("useBottomDrawer must be used within a BottomDrawerProvider");return t},Wn=({pluginID:t})=>{const e=K(t),{showSnackbar:s}=ue(),{createTab:n,updateTab:r}=gt();return{createSession:k.useMutation({mutationFn:async({connectionID:o,icon:u,label:l,opts:c,recovery:f})=>{const a=`pending-${crypto.randomUUID()}`;n({id:a,title:l??"Connecting...",variant:"terminal",icon:u??"LuSquareTerminal",properties:{status:"connecting",pluginID:e,connectionID:o,opts:{...c},recovery:f}});const d=at.SessionOptions.createFrom({command:["/bin/bash"],tty:!0,...c});try{const h=await L.CreateSession(e,o,d);if(!h)throw new Error("Failed to create session: null response");return r({id:a},{id:h.id,title:l??`Session ${h.id.substring(0,8)}`,properties:{status:"connected",pluginID:e,connectionID:o,opts:{...c},recovery:f}}),h}catch(h){const y=ce(h);return r({id:a},{properties:{status:"error",error:y.detail,pluginID:e,connectionID:o,opts:{...c},recovery:f,errorInfo:{title:y.title||"Session error",suggestion:y.detail,raw:y.detail}}}),Ie(s,h,"Failed to start session"),null}}}).mutateAsync}},Un=t=>{const e=W.c(15),{pluginID:s}=t,n=K(s),{showSnackbar:r}=ue(),{createTab:i}=gt();let o;e[0]!==i||e[1]!==n?(o=async y=>{const{connectionID:g,resourceKey:p,resourceID:m,resourceData:v,reference:S,route:E,icon:w,label:x,target:I,follow:_,tailLines:R,params:T}=y,F={resource_key:p,resource_id:m,resource_data:v,reference:S,route:E,options:{target:I??"",follow:_===void 0?!0:_,include_previous:!1,include_timestamps:!0,tail_lines:R===void 0?1e3:R,since_seconds:0,limit_bytes:0,include_source_events:!0,params:T??{}}},C=await L.CreateSession$1(n,g,F);if(!C)throw new Error("Failed to create log session: null response");return i({id:C.id,title:x??`Logs ${C.id.substring(0,8)}`,variant:"logs",icon:w??"LuLogs"}),C},e[0]=i,e[1]=n,e[2]=o):o=e[2];let u;e[3]!==r?(u=ne(r,"Failed to start log session"),e[3]=r,e[4]=u):u=e[4];let l;e[5]!==o||e[6]!==u?(l={mutationFn:o,onError:u},e[5]=o,e[6]=u,e[7]=l):l=e[7];const c=k.useMutation(l);let f;e[8]!==r?(f=ne(r,"Failed to close log session"),e[8]=r,e[9]=f):f=e[9];let a;e[10]!==f?(a={mutationFn:Qn,onError:f},e[10]=f,e[11]=a):a=e[11];const d=k.useMutation(a);let h;return e[12]!==d.mutateAsync||e[13]!==c.mutateAsync?(h={createLogSession:c.mutateAsync,closeLogSession:d.mutateAsync},e[12]=d.mutateAsync,e[13]=c.mutateAsync,e[14]=h):h=e[14],h};async function Qn(t){await L.CloseSession(t)}const Gn=()=>{const t=W.c(1);let e;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e={queryKey:["metric","providers"],queryFn:L.GetProviders,staleTime:3e4},t[0]=e):e=t[0],k.useQuery(e)},Gt=t=>{const e=W.c(7);let s,n;e[0]!==t?(s=["metric","providers",t],n=()=>L.GetProvidersForResource(t),e[0]=t,e[1]=s,e[2]=n):(s=e[1],n=e[2]);const r=!!t;let i;return e[3]!==s||e[4]!==n||e[5]!==r?(i={queryKey:s,queryFn:n,enabled:r,staleTime:3e4},e[3]=s,e[4]=n,e[5]=r,e[6]=i):i=e[6],k.useQuery(i)},Kn=t=>{const e=W.c(45),{connectionID:s,resourceKey:n,resourceID:r,resourceNamespace:i,resourceData:o,reference:u,route:l,params:c,metricIDs:f,shape:a,timeRange:d,refreshInterval:h,enabled:y}=t,g=i===void 0?"":i;let p;e[0]!==f?(p=f===void 0?[]:f,e[0]=f,e[1]=p):p=e[1];const m=p,v=a===void 0?0:a,S=h===void 0?0:h,E=y===void 0?!0:y,{data:w,isLoading:x}=Gt(n);let I;e[2]!==w?(I=w??[],e[2]=w,e[3]=I):I=e[3];const _=I,R=d?Math.max(Math.floor((d.end.getTime()-d.start.getTime())/250),15e3)*1e6:0;let T;e[4]!==d?.start?(T=d?.start?.getTime(),e[4]=d?.start,e[5]=T):T=e[5];let M;e[6]!==d?.end?(M=d?.end?.getTime(),e[6]=d?.end,e[7]=M):M=e[7];let N;e[8]!==s||e[9]!==m||e[10]!==c||e[11]!==u||e[12]!==r||e[13]!==n||e[14]!==g||e[15]!==l||e[16]!==v||e[17]!==T||e[18]!==M?(N=["metric","query",s,n,r,g,u,l,c,m,v,T,M],e[8]=s,e[9]=m,e[10]=c,e[11]=u,e[12]=r,e[13]=n,e[14]=g,e[15]=l,e[16]=v,e[17]=T,e[18]=M,e[19]=N):N=e[19];let F;e[20]!==s||e[21]!==m||e[22]!==c||e[23]!==u||e[24]!==o||e[25]!==r||e[26]!==n||e[27]!==g||e[28]!==l||e[29]!==v||e[30]!==R||e[31]!==d?.end||e[32]!==d?.start?(F=async()=>{const z=await L.QueryAll(s,{resource_key:n,resource_id:r,resource_namespace:g,resource_data:o,reference:u,route:l,params:c,metric_ids:m,shape:v,start_time:(d?.start??new Date(0)).toISOString(),end_time:(d?.end??new Date(0)).toISOString(),step:R}),H={};for(const[Z,V]of Object.entries(z))V!=null&&(H[Z]=V);return H},e[20]=s,e[21]=m,e[22]=c,e[23]=u,e[24]=o,e[25]=r,e[26]=n,e[27]=g,e[28]=l,e[29]=v,e[30]=R,e[31]=d?.end,e[32]=d?.start,e[33]=F):F=e[33];const C=E&&!!s&&!!n&&_.length>0,O=S>0?S:void 0;let P;e[34]!==F||e[35]!==C||e[36]!==O||e[37]!==N?(P={queryKey:N,queryFn:F,enabled:C,refetchInterval:O,staleTime:5e3,placeholderData:k.keepPreviousData},e[34]=F,e[35]=C,e[36]=O,e[37]=N,e[38]=P):P=e[38];const $=k.useQuery(P),A=$.data??void 0,q=x||$.isLoading,j=$.error;let B;return e[39]!==$.refetch||e[40]!==_||e[41]!==A||e[42]!==q||e[43]!==j?(B={data:A,providers:_,isLoading:q,error:j,refetch:$.refetch},e[39]=$.refetch,e[40]=_,e[41]=A,e[42]=q,e[43]=j,e[44]=B):B=e[44],B},Bn=t=>{const{pluginID:e,connectionID:s,resourceKey:n,resourceID:r,resourceNamespace:i="",resourceData:o,reference:u,route:l,params:c,metricIDs:f=[],interval:a=1e4,enabled:d=!0}=t,h=K(e),[y,g]=b.useState(null),[p,m]=b.useState(null),[v,S]=b.useState(!1),[E,w]=b.useState(null),x=b.useRef(null),I=b.useCallback(async()=>{if(!(!d||!h||!s||!n))try{const R=await L.Subscribe(h,s,{resource_key:n,resource_id:r,resource_namespace:i,resource_data:o,reference:u,route:l,params:c,metric_ids:f,interval:a*1e6});m(R),S(!0),w(null);const T=G.On(`core/metrics/data/${R}`,N=>{const F=N.data;try{const C=JSON.parse(F);C.results&&(g(C.results),S(!0),w(null))}catch(C){console.error("Failed to parse metric stream data:",C)}}),M=G.On(`core/metrics/error/${R}`,N=>{const F=N.data;try{const C=JSON.parse(F);let O="Unknown error";if(C&&typeof C=="object"&&("error"in C&&typeof C.error=="string"&&C.error&&(O=C.error),"operation_error"in C)){const P=C.operation_error;P&&typeof P=="object"&&"message"in P&&typeof P.message=="string"&&(O=P.message)}w(O),S(!1)}catch{w("Failed to parse metric stream error")}});x.current=()=>{T(),M()}}catch(R){w(R instanceof Error?R.message:String(R))}},[h,s,n,r,i,o,u,l,c,f,a,d]),_=b.useCallback(async()=>{if(p)try{await L.Unsubscribe(p)}catch(R){console.error("Failed to unsubscribe:",R)}x.current&&(x.current(),x.current=null),m(null),S(!1)},[p]);return b.useEffect(()=>()=>{p&&L.Unsubscribe(p).catch(console.error),x.current&&x.current()},[p]),{data:y,subscriptionID:p,isStreaming:v,error:E,start:I,stop:_}},we=["networker","portforward","all-sessions"];function zn(){const t=W.c(17),{showSnackbar:e}=ue(),s=k.useQueryClient();let n;t[0]===Symbol.for("react.memo_cache_sentinel")?(n={queryKey:[...we],queryFn:Vn,retry:!1},t[0]=n):n=t[0];const r=k.useQuery(n);let i,o;t[1]!==s?(i=()=>{const y=G.On("core/networker/portforward/created",()=>{s.invalidateQueries({queryKey:[...we]})}),g=G.On("core/networker/portforward/closed",()=>{s.invalidateQueries({queryKey:[...we]})});return()=>{y(),g()}},o=[s],t[1]=s,t[2]=i,t[3]=o):(i=t[2],o=t[3]),b.useEffect(i,o);let u;t[4]!==r.data?(u=r.data??[],t[4]=r.data,t[5]=u):u=t[5];const l=u;let c;t[6]!==e?(c=ne(e,"Failed to close port forwarding session"),t[6]=e,t[7]=c):c=t[7];let f;t[8]!==s?(f=async()=>{await s.invalidateQueries({queryKey:[...we]})},t[8]=s,t[9]=f):f=t[9];let a;t[10]!==c||t[11]!==f?(a={mutationFn:Hn,onError:c,onSuccess:f},t[10]=c,t[11]=f,t[12]=a):a=t[12];const d=k.useMutation(a);let h;return t[13]!==l||t[14]!==d.mutateAsync||t[15]!==r?(h={sessions:r,activeSessions:l,closeSession:d.mutateAsync,openInBrowser:Jn},t[13]=l,t[14]=d.mutateAsync,t[15]=r,t[16]=h):h=t[16],h}function Jn(t){return G.OpenURL(`http://localhost:${t}`)}async function Hn(t){return L.ClosePortForwardSession(t)}async function Vn(){return L.ListAllPortForwardSessions().catch(Yn)}function Yn(t){if(ce(t).detail.includes("not found"))return[];throw t}function Zn(t){const e=W.c(36),{pluginID:s,connectionID:n,resourceID:r}=t,i=K(s);let o;e[0]!==n||e[1]!==i||e[2]!==r?(o=["networker","portforward","sessions",i,n,r],e[0]=n,e[1]=i,e[2]=r,e[3]=o):o=e[3];const u=o,{showSnackbar:l}=ue(),c=k.useQueryClient();let f;e[4]!==n||e[5]!==i||e[6]!==r||e[7]!==l?(f=async()=>L.FindPortForwardSessions(i,n,at.FindPortForwardSessionRequest.createFrom({resource_id:r,connection_id:n})).catch(I=>{const _=ce(I);return _.detail.includes("not found")?[]:(l({message:"Failed to fetch port forward sessions",status:"error",details:_.detail}),[])}),e[4]=n,e[5]=i,e[6]=r,e[7]=l,e[8]=f):f=e[8];let a;e[9]!==u||e[10]!==f?(a={queryKey:u,queryFn:f,retry:!1},e[9]=u,e[10]=f,e[11]=a):a=e[11];const d=k.useQuery(a);let h;e[12]!==n||e[13]!==i?(h=async I=>{const{opts:_}=I,R={local_port:_.localPort||0,remote_port:_.remotePort,protocol:_.protocol||"TCP",connection_type:"RESOURCE",connection:{resource_data:_.resource,reference:_.reference,route:_.route,connection_id:n,plugin_id:i,resource_id:_.resourceId,resource_key:_.resourceKey},labels:_.labels??{},params:_.parameters??{}},T=await L.StartResourcePortForwardingSession(i,n,R);if(!T)throw new Error("Failed to start port forwarding: null response");return _.openInBrowser&&G.OpenURL(`http://localhost:${T.local_port}`),T},e[12]=n,e[13]=i,e[14]=h):h=e[14];let y;e[15]!==l?(y=ne(l,"Failed to start port forwarding session"),e[15]=l,e[16]=y):y=e[16];let g;e[17]!==c||e[18]!==u?(g=async()=>{await Promise.all([c.invalidateQueries({queryKey:u}),c.invalidateQueries({queryKey:[...we]})])},e[17]=c,e[18]=u,e[19]=g):g=e[19];let p;e[20]!==h||e[21]!==y||e[22]!==g?(p={mutationFn:h,onError:y,onSuccess:g},e[20]=h,e[21]=y,e[22]=g,e[23]=p):p=e[23];const m=k.useMutation(p);let v;e[24]!==l?(v=ne(l,"Failed to close port forwarding session"),e[24]=l,e[25]=v):v=e[25];let S;e[26]!==c||e[27]!==u?(S=async()=>{await Promise.all([c.invalidateQueries({queryKey:u}),c.invalidateQueries({queryKey:[...we]})])},e[26]=c,e[27]=u,e[28]=S):S=e[28];let E;e[29]!==v||e[30]!==S?(E={mutationFn:Xn,onError:v,onSuccess:S},e[29]=v,e[30]=S,e[31]=E):E=e[31];const w=k.useMutation(E);let x;return e[32]!==w.mutateAsync||e[33]!==m.mutateAsync||e[34]!==d?(x={sessions:d,forward:m.mutateAsync,close:w.mutateAsync},e[32]=w.mutateAsync,e[33]=m.mutateAsync,e[34]=d,e[35]=x):x=e[35],x}async function Xn(t){const{opts:e}=t;return L.ClosePortForwardSession(e.sessionID)}const er=()=>{const t=b.useContext(kt);if(!t)throw new Error("useConfirmationModal must be used within a ConfirmationModalProvider");return t},tr=t=>{const e=W.c(31),{pluginID:s,request:n,enabled:r}=t,i=r===void 0?!0:r,o=K(s),u=n?.request.route.connection??"",l=i&&!!n;let c;e[0]!==u||e[1]!==o||e[2]!==l?(c={pluginID:o,connectionID:u,enabled:l},e[0]=u,e[1]=o,e[2]=l,e[3]=c):c=e[3];const f=oe(c),a=ae(o,u),d=k.useQueryClient(),{showSnackbar:h}=ue();let y;e[4]!==o||e[5]!==n?(y=ye.resource(o,n),e[4]=o,e[5]=n,e[6]=y):y=e[6];const g=y,p=i&&!!n&&f.phase==="connected";let m;e[7]!==o||e[8]!==n?(m=async T=>{if(!n)throw new Error("Resource target is not resolved");return await Pe(o,n.request.route.connection),L.Mutate(o,{...T,route:n.request.route,reference:n.request.reference})},e[7]=o,e[8]=n,e[9]=m):m=e[9];let v;e[10]!==o||e[11]!==d?(v=async()=>{await d.invalidateQueries({queryKey:ye.all(o)})},e[10]=o,e[11]=d,e[12]=v):v=e[12];let S;e[13]!==h?(S=ne(h,"Failed to mutate resource"),e[13]=h,e[14]=S):S=e[14];let E;e[15]!==m||e[16]!==v||e[17]!==S?(E={mutationFn:m,onSuccess:v,onError:S},e[15]=m,e[16]=v,e[17]=S,e[18]=E):E=e[18];const{mutateAsync:w}=k.useMutation(E);let x;e[19]!==a||e[20]!==o||e[21]!==p||e[22]!==n?(x=p?T=>{const{signal:M,queryKey:N}=T;return a(N,M,()=>L.Get$1(o,n))}:k.skipToken,e[19]=a,e[20]=o,e[21]=p,e[22]=n,e[23]=x):x=e[23];let I;e[24]!==p||e[25]!==g||e[26]!==x?(I={queryKey:g,queryFn:x,retry:!1,enabled:p},e[24]=p,e[25]=g,e[26]=x,e[27]=I):I=e[27];const _=k.useQuery(I);let R;return e[28]!==w||e[29]!==_?(R={resource:_,mutate:w},e[28]=w,e[29]=_,e[30]=R):R=e[30],R},nr=t=>{const e=W.c(11);let s;e[0]!==t.area||e[1]!==t.plugin||e[2]!==t.resource?(s=["component",t.plugin,t.resource,t.area],e[0]=t.area,e[1]=t.plugin,e[2]=t.resource,e[3]=s):s=e[3];const n=s;let r;e[4]!==t?(r=async()=>L.GetResourceAreaComponent(t),e[4]=t,e[5]=r):r=e[5];let i;e[6]!==n||e[7]!==r?(i={queryKey:n,queryFn:r},e[6]=n,e[7]=r,e[8]=i):i=e[8];const o=k.useQuery(i);let u;return e[9]!==o?(u={component:o},e[9]=o,e[10]=u):u=e[10],u},rr=t=>{const e=W.c(18),{pluginID:s,route:n,enabled:r}=t,i=r===void 0?!0:r,o=K(s);let u;e[0]!==i||e[1]!==o||e[2]!==n.connection?(u={pluginID:o,connectionID:n.connection,enabled:i},e[0]=i,e[1]=o,e[2]=n.connection,e[3]=u):u=e[3];const l=oe(u),c=ae(o,n.connection),f=i&&!!o&&!!n.connection&&l.phase==="connected";let a;e[4]!==o||e[5]!==n?(a=[o,"resource-v2","groups",n],e[4]=o,e[5]=n,e[6]=a):a=e[6];let d;e[7]!==c||e[8]!==o||e[9]!==f||e[10]!==n?(d=f?p=>{const{signal:m,queryKey:v}=p;return c(v,m,()=>L.GetResourceGroups(o,n))}:k.skipToken,e[7]=c,e[8]=o,e[9]=f,e[10]=n,e[11]=d):d=e[11];let h;e[12]!==f||e[13]!==a||e[14]!==d?(h={queryKey:a,queryFn:d,enabled:f,retry:!1},e[12]=f,e[13]=a,e[14]=d,e[15]=h):h=e[15];const y=k.useQuery(h);let g;return e[16]!==y?(g={groups:y},e[16]=y,e[17]=g):g=e[17],g},sr=t=>{const e=W.c(28),{pluginID:s,searches:n,enabled:r}=t,i=r===void 0?!0:r,o=K(s);let u;e[0]!==i||e[1]!==n?(u=JSON.stringify(i?[...new Set(n.map(or))].sort():[]),e[0]=i,e[1]=n,e[2]=u):u=e[2];const l=u;let c;if(e[3]!==l||e[4]!==o){const v=JSON.parse(l);let S;e[6]!==o?(S=E=>[E,We(o,E)],e[6]=o,e[7]=S):S=e[7],c=new Map(v.map(S)),e[3]=l,e[4]=o,e[5]=c}else c=e[5];const f=c;let a,d;e[8]!==f?(a=()=>JSON.stringify([...f.values()].map(ir)),d=v=>{const S=[...f.values()].map(E=>E.subscribe(v));return()=>{for(const E of S)E()}},e[8]=f,e[9]=a,e[10]=d):(a=e[9],d=e[10]);let h;e[11]!==f||e[12]!==a||e[13]!==d?(h={stores:f,getSnapshot:a,subscribe:d},e[11]=f,e[12]=a,e[13]=d,e[14]=h):h=e[14];const y=h;b.useSyncExternalStore(y.subscribe,y.getSnapshot,y.getSnapshot);const g=ae(o,"");let p;if(e[15]!==i||e[16]!==g||e[17]!==o||e[18]!==y.stores||e[19]!==n){let v;e[21]!==i||e[22]!==g||e[23]!==o||e[24]!==y.stores?(v=S=>{const E=S.request.target.route.connection,w=i&&y.stores.get(E)?.getSnapshot().phase==="connected";return{queryKey:ye.nativeQuery(o,S),queryFn:w?x=>{const{signal:I,queryKey:_}=x;return g(_,I,()=>L.NativeQuery(o,S),E)}:k.skipToken,retry:!1,enabled:w}},e[21]=i,e[22]=g,e[23]=o,e[24]=y.stores,e[25]=v):v=e[25],p=n.map(v),e[15]=i,e[16]=g,e[17]=o,e[18]=y.stores,e[19]=n,e[20]=p}else p=e[20];let m;return e[26]!==p?(m={queries:p},e[26]=p,e[27]=m):m=e[27],k.useQueries(m)};function or(t){return t.request.target.route.connection}function ir(t){return t.getSnapshot().phase}const cr=t=>{const e=W.c(21),{pluginID:s,route:n,type:r}=t,i=K(s),o=!!r;let u;e[0]!==i||e[1]!==n.connection||e[2]!==o?(u={pluginID:i,connectionID:n.connection,enabled:o},e[0]=i,e[1]=n.connection,e[2]=o,e[3]=u):u=e[3];const l=oe(u),c=ae(i,n.connection),f=!!i&&!!n.connection&&!!r&&l.phase==="connected";let a;e[4]!==i||e[5]!==n?(a=[i,"resource-v2","catalog",n],e[4]=i,e[5]=n,e[6]=a):a=e[6];let d;e[7]!==c||e[8]!==i||e[9]!==f||e[10]!==n?(d=f?m=>{const{signal:v,queryKey:S}=m;return c(S,v,()=>L.Catalog(i,{route:n}))}:k.skipToken,e[7]=c,e[8]=i,e[9]=f,e[10]=n,e[11]=d):d=e[11];let h;e[12]!==r?(h=m=>m.types.find(v=>v.type===r),e[12]=r,e[13]=h):h=e[13];let y;e[14]!==f||e[15]!==a||e[16]!==d||e[17]!==h?(y={queryKey:a,queryFn:d,select:h,enabled:f,retry:!1},e[14]=f,e[15]=a,e[16]=d,e[17]=h,e[18]=y):y=e[18];const g=k.useQuery(y);let p;return e[19]!==g?(p={resourceType:g},e[19]=g,e[20]=p):p=e[20],p},ar=t=>{const e=W.c(18),{pluginID:s,route:n,enabled:r}=t,i=r===void 0?!0:r,o=K(s);let u;e[0]!==i||e[1]!==o||e[2]!==n.connection?(u={pluginID:o,connectionID:n.connection,enabled:i},e[0]=i,e[1]=o,e[2]=n.connection,e[3]=u):u=e[3];const l=oe(u),c=ae(o,n.connection),f=i&&!!o&&!!n.connection&&l.phase==="connected";let a;e[4]!==o||e[5]!==n?(a=[o,"resource-v2","catalog",n],e[4]=o,e[5]=n,e[6]=a):a=e[6];let d;e[7]!==c||e[8]!==o||e[9]!==f||e[10]!==n?(d=f?p=>{const{signal:m,queryKey:v}=p;return c(v,m,()=>L.Catalog(o,{route:n}))}:k.skipToken,e[7]=c,e[8]=o,e[9]=f,e[10]=n,e[11]=d):d=e[11];let h;e[12]!==f||e[13]!==a||e[14]!==d?(h={queryKey:a,queryFn:d,select:lr,enabled:f,retry:!1},e[12]=f,e[13]=a,e[14]=d,e[15]=h):h=e[15];const y=k.useQuery(h);let g;return e[16]!==y?(g={resourceTypes:y},e[16]=y,e[17]=g):g=e[17],g};function lr(t){return t.types}function rt(t,e,s=!1,n=!1){if(!t||!e.length&&!s)return t;if(n){const c=new Map(t.records.map(f=>[f.key,f]));for(const f of e)f.type==="DELETE"?c.delete(f.payload.key):c.set(f.payload.record.key,f.payload.record);return{records:[...c.values()],sourcePage:t.sourcePage,view:{guarantee:"bestEffort",count:{kind:"unknown"},membershipStale:!1}}}let r;const i=e.length>1?new Map(t.records.map((c,f)=>[c.key,f])):void 0,o=new Set;let u=t.view?.membershipStale===!0||s;for(const c of e){const f=c.type==="DELETE"?c.payload.key:c.payload.record.key,a=i?i.get(f)??-1:t.records.findIndex(d=>d.key===f);c.type==="DELETE"?(a!==-1&&o.add(a),u=!0):a===-1||o.has(a)?u=!0:(r??t.records)[a]!==c.payload.record&&(r??=[...t.records],r[a]=c.payload.record)}if(!r&&!o.size&&t.view?.membershipStale===u&&t.view.guarantee==="bestEffort"&&t.view.count.kind==="unknown"&&t.view.sourceRevision===void 0)return t;const l=r??t.records;return{records:o.size?l.filter((c,f)=>!o.has(f)):l,sourcePage:t.sourcePage,view:{guarantee:"bestEffort",count:{kind:"unknown"},membershipStale:u}}}function Kt(t,e,s,n){const r=W.c(36);let i;r[0]===Symbol.for("react.memo_cache_sentinel")?(i=new Map,r[0]=i):i=r[0];const o=b.useRef(i),u=b.useRef(!1),l=b.useRef(void 0),c=b.useRef(void 0),f=b.useRef(s),a=n?.enabled??!0,d=n?.isCurrent,h=n?.collection??!1;let y;r[1]!==h||r[2]!==a||r[3]!==d||r[4]!==t||r[5]!==e?(y={queryClient:t,queryKey:e,enabled:a,isCurrent:d,collection:h},r[1]=h,r[2]=a,r[3]=d,r[4]=t,r[5]=e,r[6]=y):y=r[6];const g=y,p=b.useRef(void 0);let m;r[7]!==a||r[8]!==d||r[9]!==g?(m=()=>p.current===g&&a&&(!d||d()),r[7]=a,r[8]=d,r[9]=g,r[10]=m):m=r[10];const v=m;let S,E;r[11]!==s?(S=()=>{f.current=s},E=[s],r[11]=s,r[12]=S,r[13]=E):(S=r[12],E=r[13]),b.useLayoutEffect(S,E);const w=n?.syncWindowMs??500;let x;r[14]!==h||r[15]!==v||r[16]!==t||r[17]!==e||r[18]!==g?(x=()=>{if(p.current!==g)return;if(window.clearTimeout(l.current),c.current!==void 0&&cancelAnimationFrame(c.current),l.current=void 0,c.current=void 0,!v()){o.current.clear(),u.current=!1;return}if(!o.current.size&&!u.current||!t.getQueryData(e)||h&&t.getQueryState(e)?.fetchStatus==="fetching")return;const N=[...o.current.values()],F=u.current;o.current.clear(),u.current=!1;const C=t.getQueryCache().find({queryKey:e,exact:!0});h&&C?.state.status==="error"?C.setState({data:v()?rt(C.state.data,N,F,h):C.state.data}):t.setQueryData(e,O=>v()?rt(O,N,F,h):O);for(const O of N){if(!v())return;O.type==="DELETE"?t.invalidateQueries({queryKey:[e[0],"resource-v2","get"],predicate:P=>v()&&P.state.data?.key===O.payload.key}):t.setQueriesData({queryKey:[e[0],"resource-v2","get"]},P=>v()&&P?.key===O.payload.record.key?O.payload.record:P)}},r[14]=h,r[15]=v,r[16]=t,r[17]=e,r[18]=g,r[19]=x):x=r[19];const I=x;let _;r[20]!==h||r[21]!==v||r[22]!==I||r[23]!==t||r[24]!==e||r[25]!==w?(_=N=>{if(!v())return;const F=N.type==="DELETE"?N.payload.key:N.payload.record.key,C=t.getQueryData(e);h||C?.records.some(O=>O.key===F)?o.current.set(F,N):u.current=!0,!h&&N.type==="DELETE"&&(u.current=!0),!(l.current!==void 0||c.current!==void 0)&&(l.current=window.setTimeout(I,w),f.current!==Q.WatchState.WatchStateSyncing&&(c.current=requestAnimationFrame(I)))},r[20]=h,r[21]=v,r[22]=I,r[23]=t,r[24]=e,r[25]=w,r[26]=_):_=r[26];const R=_;let T,M;return r[27]!==h||r[28]!==v||r[29]!==a||r[30]!==I||r[31]!==t||r[32]!==e||r[33]!==g?(T=()=>{if(!a)return;p.current=g;const N=o.current,F=t.getQueryCache().subscribe(C=>{!v()||C.type!=="updated"||C.query.queryHash!==k.hashKey(e)||(C.action.type==="fetch"?(N.clear(),u.current=!1):(C.action.type==="success"||h&&C.action.type==="error")&&I())});return()=>{p.current=void 0,F(),window.clearTimeout(l.current),c.current!==void 0&&cancelAnimationFrame(c.current),N.clear(),u.current=!1,l.current=void 0,c.current=void 0}},M=[t,e,I,a,g,v,h],r[27]=h,r[28]=v,r[29]=a,r[30]=I,r[31]=t,r[32]=e,r[33]=g,r[34]=T,r[35]=M):(T=r[34],M=r[35]),b.useLayoutEffect(T,M),R}const ur={getSnapshot:()=>{},subscribe:()=>()=>{}},dr=({pluginID:t,request:e,enabled:s=!0,live:n=!0,collection:r=!1})=>{const i=K(t),o=k.useQueryClient(),{showSnackbar:u}=ue(),l=b.useRef(u);b.useLayoutEffect(()=>{l.current=u},[u]);const c=k.hashKey([e]),[f,a]=b.useState({hash:c,request:e});f.hash!==c&&a({hash:c,request:e});const d=f.hash===c?f.request:e,h=d?.request.target.route.connection??"",y=s&&!!d,g=oe({pluginID:i,connectionID:h,enabled:y}),p=b.useMemo(()=>y?{subscribe:We(i,h).subscribe,getSnapshot:()=>et(i,h)}:ur,[i,h,y]),m=b.useSyncExternalStore(p.subscribe,p.getSnapshot,p.getSnapshot),v=ae(i,h),S=y&&g.phase==="connected",E=d?k.hashKey([i,d.targetId,d.request.target,r]):void 0,w=b.useCallback(U=>r?[...ye.list(i,U),"collection"]:ye.list(i,U),[i,r]),x=b.useCallback(async(U,X,fe)=>{if(!r)return v(fe,X,()=>L.Enumerate(i,U));const he=et(i,h),pe=new Map,me=new Set;let se,ve;do{if(X.aborted||he===void 0||!ke(i,h,he))throw new k.CancelledError({revert:!0});const be=await v(fe,X,()=>L.Enumerate(i,{...U,request:{...U.request,cursor:se}}));if(X.aborted||!ke(i,h,he))throw new k.CancelledError({revert:!0});ve??=be;for(const De of be.records){if(De.targetId!==U.targetId)throw new Error("Collection page returned a different resource target");pe.set(De.key,De)}if(se=be.sourcePage.nextCursor,se){if(me.has(se))throw new Error("Collection enumeration repeated a source cursor");me.add(se)}}while(se);return{records:[...pe.values()],sourcePage:{...ve.sourcePage,nextCursor:void 0,count:{kind:"unknown"},sourceRevision:void 0},view:{guarantee:"bestEffort",count:{kind:"unknown"},membershipStale:!1}}},[r,v,i,h]),I=b.useMemo(()=>w(d),[w,d]),_=k.useQuery({queryKey:I,queryFn:S?({signal:U,queryKey:X})=>x(d,U,X):k.skipToken,enabled:S,retry:!1,gcTime:0,placeholderData:void 0}),[R,T]=b.useState();let M=R;E&&d&&_.isSuccess&&_.data?(R?.identity!==E||R.requestHash!==c)&&(M={identity:E,requestHash:c,request:d},T(M)):R&&R.identity!==E&&(M=void 0,T(void 0));const N=E&&M?.identity===E?M.request:void 0,F=b.useMemo(()=>w(N),[w,N]),C=k.useQuery({queryKey:F,queryFn:S&&N?({signal:U,queryKey:X})=>x(N,U,X):k.skipToken,enabled:!1,retry:!1,gcTime:0,placeholderData:void 0}),O=b.useMemo(()=>N&&C.data?{request:N,page:C.data}:void 0,[N,C.data]),P=S&&n&&!!N,$=b.useMemo(()=>({pluginID:i,acquiredRequest:N,generation:m,enabled:P}),[i,N,m,P]),[A,q]=b.useState(),j=P&&A?.scope===$?A.state:Q.WatchState.WatchStateIdle,B=P&&A?.scope===$?A.error:void 0,z=P&&A?.scope===$&&A.live,H=b.useCallback(()=>m!==void 0&&ke(i,h,m),[i,h,m]),Z=Kt(o,F,j,{enabled:P,isCurrent:H,collection:r}),V=b.useRef(Promise.resolve());b.useEffect(()=>{if(!P||!N)return;const U=N.request.target,X={targetId:N.targetId,target:U};let fe=!0,he=!1,pe=!1,me;const se=()=>fe&&m!==void 0&&ke(i,h,m),ve=ee=>{se()&&q(re=>({state:Q.WatchState.WatchStateIdle,live:!1,...re?.scope===$?re:{},...ee,scope:$}))},be=`${i}/${U.route.connection}/${U.type}`,De=[G.On(`${be}/ADD`,ee=>{const re=ee.data;se()&&re.record.targetId===X.targetId&&Z({type:"ADD",payload:re})}),G.On(`${be}/UPDATE`,ee=>{const re=ee.data;se()&&re.record.targetId===X.targetId&&Z({type:"UPDATE",payload:re})}),G.On(`${be}/DELETE`,ee=>{const re=ee.data;se()&&re.targetId===X.targetId&&Z({type:"DELETE",payload:re})}),G.On(`${i}/${U.route.connection}/watch/STATE`,ee=>{const re=ee.data;!se()||re.type!==U.type||re.route.connection!==U.route.connection||(pe=!0,ve({state:re.state,error:re.error}))})],yt=()=>{for(const ee of De)ee()},mt=L.GetWatchState(i,U.route);mt.then(ee=>{!pe&&ee?.resources[U.type]!==void 0&&ve({state:ee.resources[U.type]})}).catch(ee=>ve({error:ee}));const vt=V.current.then(async()=>{se()&&(await L.SubscribeResource(i,X),he=!0,se()&&(me=L.EnsureResourceWatch(i,U),await me,ve({live:!0})))}).catch(ee=>{yt(),ve({error:ee,state:Q.WatchState.WatchStateError,live:!1}),se()&&Ie(l.current,ee,"Failed to subscribe to resource updates")});return V.current=vt,()=>{fe=!1,yt(),mt.cancel(),me?.cancel(),V.current=vt.then(async()=>{he&&await L.UnsubscribeResource(i,X)}).catch(ee=>{Ie(l.current,ee,"Failed to unsubscribe from resource updates")})}},[i,h,N,P,m,$,Z]);const te=O!==void 0;return{resources:_,acquired:O,isAcquiredRequestCurrent:te&&M?.requestHash===c,refreshAcquiredPage:C.refetch,view:O?.page.view,membershipStale:O?.page.view?.membershipStale??!1,watchState:te?j:Q.WatchState.WatchStateIdle,isLive:te&&z,isSyncing:te&&j===Q.WatchState.WatchStateSyncing,isSynced:te&&j===Q.WatchState.WatchStateSynced,watchError:te?B??(j===Q.WatchState.WatchStateError||j===Q.WatchState.WatchStateFailed||j===Q.WatchState.WatchStateForbidden?!0:void 0):void 0,guarantee:te&&z?"bestEffort":void 0}},fr=t=>{const e=W.c(13),{pluginID:s}=t,n=K(s),r=k.useQueryClient(),{showSnackbar:i}=ue();let o;e[0]!==n?(o=async d=>(await Pe(n,d.route.connection),L.Mutate(n,d)),e[0]=n,e[1]=o):o=e[1];let u;e[2]!==n||e[3]!==r?(u=async()=>{await r.invalidateQueries({queryKey:ye.all(n)})},e[2]=n,e[3]=r,e[4]=u):u=e[4];let l;e[5]!==i?(l=ne(i,"Failed to mutate resource"),e[5]=i,e[6]=l):l=e[6];let c;e[7]!==o||e[8]!==u||e[9]!==l?(c={mutationFn:o,onSuccess:u,onError:l},e[7]=o,e[8]=u,e[9]=l,e[10]=c):c=e[10];const f=k.useMutation(c);let a;return e[11]!==f?(a={mutate:f.mutateAsync,mutation:f},e[11]=f,e[12]=a):a=e[12],a},hr=t=>{const e=W.c(25),{pluginID:s,route:n,type:r,enabled:i}=t,o=i===void 0?!0:i,u=K(s),l=n.connection,c=o&&!!r;let f;e[0]!==l||e[1]!==u||e[2]!==c?(f={pluginID:u,connectionID:l,enabled:c},e[0]=l,e[1]=u,e[2]=c,e[3]=f):f=e[3];const a=oe(f),d=ae(u,l);let h;e[4]!==u||e[5]!==n||e[6]!==r?(h=[u,"resource-v2","actions",n,r],e[4]=u,e[5]=n,e[6]=r,e[7]=h):h=e[7];let y;e[8]!==o||e[9]!==d||e[10]!==u||e[11]!==a||e[12]!==n||e[13]!==r?(y=o&&r&&a.phase==="connected"?E=>{const{signal:w,queryKey:x}=E;return d(x,w,()=>L.GetActions(u,n,r))}:k.skipToken,e[8]=o,e[9]=d,e[10]=u,e[11]=a,e[12]=n,e[13]=r,e[14]=y):y=e[14];const g=o&&!!u&&!!n.connection&&!!r&&a.phase==="connected";let p;e[15]!==h||e[16]!==y||e[17]!==g?(p={queryKey:h,queryFn:y,enabled:g,staleTime:3e5},e[15]=h,e[16]=y,e[17]=g,e[18]=p):p=e[18];const m=k.useQuery(p);let v;e[19]!==m.data?(v=m.data??[],e[19]=m.data,e[20]=v):v=e[20];let S;return e[21]!==m.error||e[22]!==m.isLoading||e[23]!==v?(S={actions:v,isLoading:m.isLoading,error:m.error},e[21]=m.error,e[22]=m.isLoading,e[23]=v,e[24]=S):S=e[24],S},pr=t=>{const e=W.c(15),{pluginID:s}=t,n=K(s),r=k.useQueryClient(),{showSnackbar:i}=ue();let o;e[0]!==n?(o=async d=>(await Pe(n,d.route.connection),L.Action(n,d)),e[0]=n,e[1]=o):o=e[1];let u;e[2]!==n||e[3]!==r?(u=async()=>{await r.invalidateQueries({queryKey:ye.all(n)})},e[2]=n,e[3]=r,e[4]=u):u=e[4];let l;e[5]!==i?(l=(d,h)=>{Ie(i,d,`Failed to execute action "${h.action}"`)},e[5]=i,e[6]=l):l=e[6];let c;e[7]!==o||e[8]!==u||e[9]!==l?(c={mutationFn:o,onSuccess:u,onError:l},e[7]=o,e[8]=u,e[9]=l,e[10]=c):c=e[10];const f=k.useMutation(c);let a;return e[11]!==f.error||e[12]!==f.isPending||e[13]!==f.mutateAsync?(a={executeAction:f.mutateAsync,isExecuting:f.isPending,error:f.error},e[11]=f.error,e[12]=f.isPending,e[13]=f.mutateAsync,e[14]=a):a=e[14],a},gr=t=>{const e=W.c(27),{pluginID:s,route:n,enabled:r}=t,i=r===void 0?!0:r,o=K(s),u=k.useQueryClient();let l;e[0]!==i||e[1]!==o||e[2]!==n.connection?(l={pluginID:o,connectionID:n.connection,enabled:i},e[0]=i,e[1]=o,e[2]=n.connection,e[3]=l):l=e[3];const c=oe(l),f=ae(o,n.connection),a=i&&!!o&&!!n.connection&&c.phase==="connected";let d;e[4]!==o||e[5]!==n?(d=[o,"resource-v2","editor-schemas",n],e[4]=o,e[5]=n,e[6]=d):d=e[6];let h;e[7]!==f||e[8]!==o||e[9]!==u||e[10]!==a||e[11]!==n?(h=a?S=>{const{signal:E,queryKey:w}=S;return f(w,E,async()=>{const x=await f(w,E,()=>L.GetEditorSchemas(o,n)),I=[],_=new Set;for(const R of x){const T=R.binding.documentRef;if(!T)continue;const M=JSON.stringify([T.id,T.revision]);_.has(M)||(I.push(await u.fetchQuery({queryKey:[o,"resource-v2","schema-document",n,T],queryFn:N=>{const{signal:F,queryKey:C}=N;return f(C,AbortSignal.any([E,F]),()=>L.GetSchemaDocument(o,n,T))},staleTime:1/0})),_.add(M))}return{schemas:x,documents:I}})}:k.skipToken,e[7]=f,e[8]=o,e[9]=u,e[10]=a,e[11]=n,e[12]=h):h=e[12];let y;e[13]!==a||e[14]!==d||e[15]!==h?(y={queryKey:d,queryFn:h,enabled:a,staleTime:6e5,retry:1},e[13]=a,e[14]=d,e[15]=h,e[16]=y):y=e[16];const g=k.useQuery(y);let p;e[17]!==g.data?.schemas?(p=g.data?.schemas??[],e[17]=g.data?.schemas,e[18]=p):p=e[18];let m;e[19]!==g.data?.documents?(m=g.data?.documents??[],e[19]=g.data?.documents,e[20]=m):m=e[20];let v;return e[21]!==g.error||e[22]!==g.isLoading||e[23]!==g.refetch||e[24]!==p||e[25]!==m?(v={schemas:p,documents:m,isLoading:g.isLoading,error:g.error,refetch:g.refetch},e[21]=g.error,e[22]=g.isLoading,e[23]=g.refetch,e[24]=p,e[25]=m,e[26]=v):v=e[26],v};function Ct(t){const e=Object.values(t.resources);return{...t,totalResources:e.length,syncedCount:e.filter(s=>s===Q.WatchState.WatchStateSynced).length,errorCount:e.filter(s=>s===Q.WatchState.WatchStateError||s===Q.WatchState.WatchStateFailed).length}}const yr=t=>{const e=W.c(38),{pluginID:s,route:n,enabled:r}=t,i=r===void 0?!0:r,o=K(s),u=k.useQueryClient(),l=n.connection;let c;e[0]!==l?(c={connection:l},e[0]=l,e[1]=c):c=e[1];let f;e[2]!==o||e[3]!==c?(f=[o,"resource-v2","watch-state",c],e[2]=o,e[3]=c,e[4]=f):f=e[4];const a=f;let d;e[5]===Symbol.for("react.memo_cache_sentinel")?(d=[],e[5]=d):d=e[5];const h=b.useRef(d),y=b.useRef(!1);let g;e[6]!==u||e[7]!==a?(g=A=>{u.setQueryData(a,q=>q&&Ct({...q,resources:{...q.resources,[A.type]:A.state},resourceCounts:{...q.resourceCounts,[A.type]:A.count}}))},e[6]=u,e[7]=a,e[8]=g):g=e[8];const p=g;let m;e[9]!==l||e[10]!==o?(m=async()=>{const A=await L.GetWatchState(o,{connection:l});if(!A)throw new Error("Failed to get watch state: null response");return Ct(A)},e[9]=l,e[10]=o,e[11]=m):m=e[11];const v=i&&!!o&&!!l;let S;e[12]!==a||e[13]!==m||e[14]!==v?(S={queryKey:a,queryFn:m,enabled:v,refetchInterval:vr},e[12]=a,e[13]=m,e[14]=v,e[15]=S):S=e[15];const E=k.useQuery(S);let w,x;e[16]!==p||e[17]!==l||e[18]!==i||e[19]!==o?(x=()=>{if(y.current=!1,h.current=[],!i||!l)return;const A=G.On(`${o}/${l}/watch/STATE`,q=>{const j=q.data;j.route.connection===l&&(y.current?p(j):h.current.push(j))});return()=>{A(),y.current=!1,h.current=[]}},w=[o,l,i,p],e[16]=p,e[17]=l,e[18]=i,e[19]=o,e[20]=w,e[21]=x):(w=e[20],x=e[21]),b.useEffect(x,w);let I,_;e[22]!==p||e[23]!==E.data?(I=()=>{if(!E.data||y.current)return;y.current=!0;const A=h.current;h.current=[];for(const q of A)p(q)},_=[E.data,p],e[22]=p,e[23]=E.data,e[24]=I,e[25]=_):(I=e[24],_=e[25]),b.useEffect(I,_);let R;e[26]!==E.data?.resources?(R=Object.values(E.data?.resources??{}),e[26]=E.data?.resources,e[27]=R):R=e[27];const T=R;let M;e[28]!==T?(M=T.filter(Er),e[28]=T,e[29]=M):M=e[29];const N=M.length;let F;e[30]!==E.data?.resources?(F=A=>E.data?.resources[A],e[30]=E.data?.resources,e[31]=F):F=e[31];const C=T.length>0&&N===T.length,O=T.length?N/T.length:0,P=E.data?.errorCount??0;let $;return e[32]!==E||e[33]!==F||e[34]!==C||e[35]!==O||e[36]!==P?($={summary:E,getResourceState:F,isFullySynced:C,syncProgress:O,errorCount:P,guarantee:"bestEffort"},e[32]=E,e[33]=F,e[34]=C,e[35]=O,e[36]=P,e[37]=$):$=e[37],$};function mr(t){return t!==Q.WatchState.WatchStateIdle&&t!==Q.WatchState.WatchStateSyncing}function vr(t){const e=Object.values(t.state.data?.resources??{});return e.length&&e.every(mr)?!1:3e3}function Er(t){return t!==Q.WatchState.WatchStateIdle&&t!==Q.WatchState.WatchStateSyncing}const Sr=()=>{const t=W.c(16);let e;t[0]===Symbol.for("react.memo_cache_sentinel")?(e=new Map,t[0]=e):e=t[0];const[s,n]=b.useState(e);let r;t[1]===Symbol.for("react.memo_cache_sentinel")?(r=new Map,t[1]=r):r=t[1];const i=b.useRef(r);let o;t[2]===Symbol.for("react.memo_cache_sentinel")?(o=new Map,t[2]=o):o=t[2];const u=b.useRef(o);let l;t[3]===Symbol.for("react.memo_cache_sentinel")?(l=v=>{const S=v.data,E=pt(S.pluginID,S),w=nt(i.current,S.pluginID,S),x=tt(w);if(n(I=>{const _=new Map(I);return _.set(E,x),_}),u.current.has(E)&&(clearTimeout(u.current.get(E)),u.current.delete(E)),Ue(x)){const I=setTimeout(()=>{n(_=>{const R=new Map(_);return R.delete(E),R}),i.current.delete(E),u.current.delete(E)},5e3);u.current.set(E,I)}},t[3]=l):l=t[3];const c=l;let f,a;t[4]===Symbol.for("react.memo_cache_sentinel")?(f=()=>{const v=u.current,S=G.On("watch/STATE",c);return()=>{S();for(const E of v.values())clearTimeout(E);v.clear()}},a=[c],t[4]=f,t[5]=a):(f=t[4],a=t[5]),b.useEffect(f,a);let d,h,y,g;t[6]!==s?(y=Array.from(s.values()),d=Wt(y),h=y.find(br)??y[0]??null,g=Ut(y),t[6]=s,t[7]=d,t[8]=h,t[9]=y,t[10]=g):(d=t[7],h=t[8],y=t[9],g=t[10]);const p=g;let m;return t[11]!==p||t[12]!==d||t[13]!==h||t[14]!==y?(m={syncs:y,hasSyncing:d,primarySync:h,aggregateProgress:p},t[11]=p,t[12]=d,t[13]=h,t[14]=y,t[15]=m):m=t[15],m};function br(t){return!Ue(t)}const Bt=()=>{const t=b.useContext(ut);if(!t)throw new Error("useOperations must be used within an OperationsProvider");return t};function qe(t){switch(t.kind){case"null":return null;case"bool":case"string":case"double":case"timestamp":return t.value;case"int64":case"uint64":{const e=BigInt(t.value);return e>=-9007199254740991n&&e<=9007199254740991n?Number(e):e}case"list":return t.value.map(qe);case"map":return Object.fromEntries(Object.entries(t.value).map(([e,s])=>[e,qe(s)]))}}function st(t){for(let e=0;e<t.length;e++){const s=t.charCodeAt(e);if(s>=55296&&s<=56319){const n=t.charCodeAt(++e);if(!(n>=56320&&n<=57343))throw new TypeError("Resource strings require valid Unicode")}else if(s>=56320&&s<=57343)throw new TypeError("Resource strings require valid Unicode")}return t}function ot(t){const e=BigInt(t);if(e>=-(1n<<63n)&&e<=(1n<<63n)-1n)return{kind:"int64",value:e.toString()};if(e>=0n&&e<=(1n<<64n)-1n)return{kind:"uint64",value:e.toString()};throw new RangeError("Integer exceeds the resource Value range")}function it(t){if(t===null)return{kind:"null"};if(typeof t=="boolean")return{kind:"bool",value:t};if(typeof t=="string")return{kind:"string",value:st(t)};if(typeof t=="bigint")return ot(t.toString());if(typeof t=="number"){if(!Number.isFinite(t))throw new TypeError("Resource values require finite numbers");if(Number.isInteger(t)&&!Object.is(t,-0)){if(!Number.isSafeInteger(t))throw new RangeError("Use bigint for exact resource integers");return ot(t.toString())}return{kind:"double",value:t}}if(Array.isArray(t))return{kind:"list",value:t.map(it)};if(typeof t=="object"&&Object.getPrototypeOf(t)===Object.prototype)return{kind:"map",value:Object.fromEntries(Object.entries(t).map(([e,s])=>[st(e),it(s)]))};throw new TypeError("Unsupported resource value")}function ct(t){switch(t.kind){case"null":return"null";case"bool":case"string":case"timestamp":return JSON.stringify(t.value);case"int64":case"uint64":return t.value;case"double":{if(!Number.isFinite(t.value))throw new TypeError("Resource values require finite numbers");if(Object.is(t.value,-0))return"-0.0";const e=JSON.stringify(t.value);return/[.eE]/.test(e)?e:`${e}.0`}case"list":return`[${t.value.map(ct).join(",")}]`;case"map":return`{${Object.entries(t.value).map(([e,s])=>`${JSON.stringify(e)}:${ct(s)}`).join(",")}}`}}function wr(t){let e=0;const s=()=>{throw new SyntaxError(`Invalid resource JSON at offset ${e}`)},n=()=>{for(;e<t.length&&/[\t\n\r ]/.test(t[e]);)e++},r=()=>{const u=e++;for(;e<t.length;){const l=t[e++];if(l==="\\"){e++;continue}if(l==='"')return st(JSON.parse(t.slice(u,e)))}return s()},i=u=>{if(u>64)throw new RangeError("Resource JSON exceeds maximum depth");n();const l=t[e];if(l==='"')return{kind:"string",value:r()};if(l==="["){e++,n();const a=[];if(t[e]==="]")return e++,{kind:"list",value:a};for(;e<t.length;){if(a.push(i(u+1)),n(),t[e]==="]")return e++,{kind:"list",value:a};if(t[e++]!==",")return s()}return s()}if(l==="{"){e++,n();const a=[],d=new Set;if(t[e]==="}")return e++,{kind:"map",value:{}};for(;e<t.length;){if(n(),t[e]!=='"')return s();const h=r();if(d.has(h))throw new SyntaxError(`Duplicate resource JSON key: ${h}`);if(d.add(h),n(),t[e++]!==":")return s();if(a.push([h,i(u+1)]),n(),t[e]==="}")return e++,{kind:"map",value:Object.fromEntries(a)};if(t[e++]!==",")return s()}return s()}for(const[a,d]of[["null",{kind:"null"}],["true",{kind:"bool",value:!0}],["false",{kind:"bool",value:!1}]])if(t.startsWith(a,e))return e+=a.length,d;const c=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(t.slice(e));if(!c)return s();if(e+=c[0].length,!/[.eE]/.test(c[0])&&c[0]!=="-0")return ot(c[0]);const f=Number(c[0]);if(!Number.isFinite(f))throw new RangeError("Resource JSON number must be finite");return{kind:"double",value:f}},o=i(0);return n(),e!==t.length?s():o}const Cr=({pluginID:t})=>{const e=K(t),{showSnackbar:s}=ue(),{addOperation:n,updateOperation:r}=Bt(),i=b.useRef(new Set),o=b.useCallback((c,f=!1)=>{c.disposed||(c.disposed=!0,c.unsubscribe?.(),c.open?.cancel(),c.attach?.cancel(),c.handle&&(L.CancelStreamAction(c.handle).catch(()=>{}),f&&r(c.handle,{status:"cancelled",message:"Cancelled",completedAt:Date.now()})),i.current.delete(c))},[r]);b.useEffect(()=>()=>{for(const c of i.current)o(c,!0)},[e,o]);const u=b.useCallback(async({request:c,label:f})=>{const a={disposed:!1,terminal:!1,sequence:0};i.current.add(a);try{if(await Pe(e,c.route.connection),a.disposed)throw new Error("Stream action was cancelled before the connection became ready");a.open=L.StreamAction(e,c);const d=await a.open;if(a.open=void 0,a.disposed)return L.CancelStreamAction(d).catch(()=>{}),d;a.handle=d,n({id:d,label:f,resourceKey:c.typeTarget?.type??c.reference?.address.type??"",resourceName:c.reference?.address.id??"",connectionID:c.route.connection,status:"running",startedAt:Date.now()});const h=g=>{if(a.disposed||!Number.isSafeInteger(g.sequence)||g.sequence<=a.sequence)return;a.sequence=g.sequence;const p=g.event,m=p.data?qe(p.data):void 0,v=m&&typeof m=="object"&&!Array.isArray(m)?m:{};if(p.type==="error"){a.terminal=!0;const S=ce(p.error);r(d,{status:Oe(S)?"cancelled":"error",message:S.title,completedAt:Date.now()}),Ie(s,S,f),o(a)}else if(p.type==="complete"){a.terminal=!0;const S=typeof v.message=="string"?v.message:`${f} completed`;r(d,{status:"completed",message:S,completedAt:Date.now()}),s(S,"success"),o(a)}else r(d,{message:typeof v.message=="string"?v.message:void 0,progress:(typeof v.ready=="number"||typeof v.ready=="bigint")&&(typeof v.desired=="number"||typeof v.desired=="bigint")?{ready:Number(v.ready),desired:Number(v.desired)}:void 0})};a.unsubscribe=G.On(`action/stream/${d}`,g=>h(g.data)),a.attach=L.AttachStreamAction(d);const y=await a.attach;return a.attach=void 0,h(y),d}catch(d){if(a.terminal&&a.handle)return a.handle;throw a.disposed||(a.handle&&r(a.handle,{status:Oe(d)?"cancelled":"error",message:ce(d).title,completedAt:Date.now()}),Ie(s,d,`Failed to start "${c.action}"`)),o(a),d}},[e,n,r,s,o]),l=b.useCallback(c=>{for(const f of i.current)if(f.handle===c){o(f,!0);return}},[o]);return{startStreamAction:u,cancelStreamAction:l}};function zt(t,e){return`${t}/${e}/graph/CHANGED`}function Qe(t,e,s,n){const r=W.c(16),i=k.useQueryClient(),o=b.useRef(s);let u,l;r[0]!==s?(u=()=>{o.current=s},l=[s],r[0]=s,r[1]=u,r[2]=l):(u=r[1],l=r[2]),b.useLayoutEffect(u,l);let c;r[3]!==s?(c=JSON.stringify(s),r[3]=s,r[4]=c):c=r[4];const f=c;let a;r[5]!==e||r[6]!==n||r[7]!==t||r[8]!==i?(a=()=>{if(!n||!t||!e)return;const h=G.On(zt(t,e),()=>{i.invalidateQueries({queryKey:o.current,exact:!0})});return()=>{h()}},r[5]=e,r[6]=n,r[7]=t,r[8]=i,r[9]=a):a=r[9];let d;r[10]!==e||r[11]!==n||r[12]!==f||r[13]!==t||r[14]!==i?(d=[i,t,e,f,n],r[10]=e,r[11]=n,r[12]=f,r[13]=t,r[14]=i,r[15]=d):d=r[15],b.useEffect(a,d)}const Ir={owns:{outgoing:"Owns",incoming:"Owned by"},runs_on:{outgoing:"Runs on",incoming:"Running here"},uses:{outgoing:"Uses",incoming:"Used by"},exposes:{outgoing:"Exposes",incoming:"Exposed by"},manages:{outgoing:"Manages",incoming:"Managed by"},member_of:{outgoing:"Member of",incoming:"Members"},selects:{outgoing:"Selects",incoming:"Selected by"}};function _r(t,e){const s=Ir[t];if(s)return s[e];const n=t.replace(/_/g," ");return e==="outgoing"?n:`${n} (incoming)`}function Jt(t,e){return e.map(s=>{const n=Q.sameGraphNode(s.source,t);return{resource:n?s.target:s.source,type:s.type,direction:n?"outgoing":"incoming",label:s.label}})}const xr=t=>{const e=W.c(38),{pluginID:s,reference:n,route:r,direction:i,relationshipType:o,enabled:u,refetchInterval:l}=t,c=i===void 0?"both":i,f=u===void 0?!0:u,a=l===void 0?!1:l,d=K(s),h=o??null;let y;e[0]!==c||e[1]!==d||e[2]!==n||e[3]!==r||e[4]!==h?(y=["RESOURCE_RELATED",d,n,r,c,h],e[0]=c,e[1]=d,e[2]=n,e[3]=r,e[4]=h,e[5]=y):y=e[5];const g=y,p=f&&!!n.address.id;let m;e[6]!==d||e[7]!==r.connection||e[8]!==p?(m={pluginID:d,connectionID:r.connection,enabled:p},e[6]=d,e[7]=r.connection,e[8]=p,e[9]=m):m=e[9];const v=oe(m),S=ae(d,r.connection),E=f&&!!d&&!!r.connection&&!!n.address.id&&v.phase==="connected";Qe(d,r.connection,g,E);let w;e[10]!==c||e[11]!==S||e[12]!==d||e[13]!==E||e[14]!==n||e[15]!==o||e[16]!==r?(w=E?M=>{const{signal:N,queryKey:F}=M;return S(F,N,()=>L.GetRelated(d,n,r,c,o??null))}:k.skipToken,e[10]=c,e[11]=S,e[12]=d,e[13]=E,e[14]=n,e[15]=o,e[16]=r,e[17]=w):w=e[17];let x;e[18]!==E||e[19]!==g||e[20]!==a||e[21]!==w?(x={queryKey:g,queryFn:w,enabled:E,refetchInterval:a},e[18]=E,e[19]=g,e[20]=a,e[21]=w,e[22]=x):x=e[22];const I=k.useQuery(x);let _,R;if(e[23]!==d||e[24]!==I.data||e[25]!==n||e[26]!==r){const M={pluginId:d,reference:n};let N;e[29]!==I.data?(N=I.data??[],e[29]=I.data,e[30]=N):N=e[30],_=N,R=Jt(M,_),e[23]=d,e[24]=I.data,e[25]=n,e[26]=r,e[27]=_,e[28]=R}else _=e[27],R=e[28];let T;return e[31]!==_||e[32]!==I.error||e[33]!==I.isFetching||e[34]!==I.isLoading||e[35]!==I.refetch||e[36]!==R?(T={related:R,edges:_,isLoading:I.isLoading,isFetching:I.isFetching,error:I.error,refetch:I.refetch},e[31]=_,e[32]=I.error,e[33]=I.isFetching,e[34]=I.isLoading,e[35]=I.refetch,e[36]=R,e[37]=T):T=e[37],T},Rr=t=>{const e=W.c(27),{pluginID:s,reference:n,route:r,maxDepth:i,enabled:o,refetchInterval:u}=t,l=i===void 0?3:i,c=o===void 0?!0:o,f=u===void 0?!1:u,a=K(s);let d;e[0]!==l||e[1]!==a||e[2]!==n||e[3]!==r?(d=["RESOURCE_DEPENDENCY_TREE",a,n,r,l],e[0]=l,e[1]=a,e[2]=n,e[3]=r,e[4]=d):d=e[4];const h=d,y=c&&!!n.address.id;let g;e[5]!==a||e[6]!==r.connection||e[7]!==y?(g={pluginID:a,connectionID:r.connection,enabled:y},e[5]=a,e[6]=r.connection,e[7]=y,e[8]=g):g=e[8];const p=oe(g),m=ae(a,r.connection),v=c&&!!a&&!!r.connection&&!!n.address.id&&p.phase==="connected";Qe(a,r.connection,h,v);let S;e[9]!==m||e[10]!==l||e[11]!==a||e[12]!==v||e[13]!==n||e[14]!==r?(S=v?_=>{const{signal:R,queryKey:T}=_;return m(T,R,()=>L.GetDependencyTree(a,n,r,l))}:k.skipToken,e[9]=m,e[10]=l,e[11]=a,e[12]=v,e[13]=n,e[14]=r,e[15]=S):S=e[15];let E;e[16]!==v||e[17]!==h||e[18]!==f||e[19]!==S?(E={queryKey:h,queryFn:S,enabled:v,refetchInterval:f},e[16]=v,e[17]=h,e[18]=f,e[19]=S,e[20]=E):E=e[20];const w=k.useQuery(E),x=w.data??null;let I;return e[21]!==w.error||e[22]!==w.isFetching||e[23]!==w.isLoading||e[24]!==w.refetch||e[25]!==x?(I={tree:x,isLoading:w.isLoading,isFetching:w.isFetching,error:w.error,refetch:w.refetch},e[21]=w.error,e[22]=w.isFetching,e[23]=w.isLoading,e[24]=w.refetch,e[25]=x,e[26]=I):I=e[26],I},Dr=t=>{const e=W.c(28),{pluginID:s,reference:n,route:r,upDepth:i,downDepth:o,enabled:u}=t,l=i===void 0?2:i,c=o===void 0?3:o,f=u===void 0?!0:u,a=K(s);let d;e[0]!==c||e[1]!==a||e[2]!==n||e[3]!==r||e[4]!==l?(d=["RESOURCE_GRAPH",a,n,r,l,c],e[0]=c,e[1]=a,e[2]=n,e[3]=r,e[4]=l,e[5]=d):d=e[5];const h=d,y=f&&!!n.address.id;let g;e[6]!==a||e[7]!==r.connection||e[8]!==y?(g={pluginID:a,connectionID:r.connection,enabled:y},e[6]=a,e[7]=r.connection,e[8]=y,e[9]=g):g=e[9];const p=oe(g),m=ae(a,r.connection),v=f&&!!a&&!!r.connection&&!!n.address.id&&p.phase==="connected";Qe(a,r.connection,h,v);let S;e[10]!==c||e[11]!==m||e[12]!==a||e[13]!==v||e[14]!==n||e[15]!==r||e[16]!==l?(S=v?_=>{const{signal:R,queryKey:T}=_;return m(T,R,()=>L.GetSubgraph(a,n,r,l,c))}:k.skipToken,e[10]=c,e[11]=m,e[12]=a,e[13]=v,e[14]=n,e[15]=r,e[16]=l,e[17]=S):S=e[17];let E;e[18]!==v||e[19]!==h||e[20]!==S?(E={queryKey:h,queryFn:S,enabled:v,retry:!1},e[18]=v,e[19]=h,e[20]=S,e[21]=E):E=e[21];const w=k.useQuery(E),x=w.data??null;let I;return e[22]!==w.error||e[23]!==w.isFetching||e[24]!==w.isLoading||e[25]!==w.refetch||e[26]!==x?(I={graph:x,isLoading:w.isLoading,isFetching:w.isFetching,error:w.error,refetch:w.refetch},e[22]=w.error,e[23]=w.isFetching,e[24]=w.isLoading,e[25]=w.refetch,e[26]=x,e[27]=I):I=e[27],I},Nr=()=>{const t=b.useContext(lt);if(!t)throw new Error("useSettings must be used within a SettingsProvider");return t},kr=1,Tr=t=>{const e=W.c(19);let s,n,r,i;if(e[0]!==t){const{to:g,withinContext:p,onClick:m,onAuxClick:v,...S}=t;i=g,n=m,s=v,r=S,e[0]=t,e[1]=s,e[2]=n,e[3]=r,e[4]=i}else s=e[1],n=e[2],r=e[3],i=e[4];const{pluginId:o}=je(),u=b.useContext($e);o||console.error("Link used outside of a plugin context");const l=`/_plugin/${o}${i.startsWith("/")?"":"/"}${i}`;let c;e[5]!==n||e[6]!==l||e[7]!==u?(c=g=>{n?.(g),!(g.defaultPrevented||!u||!(g.ctrlKey||g.metaKey))&&(g.preventDefault(),u.openInNewTab(l,{background:!0}))},e[5]=n,e[6]=l,e[7]=u,e[8]=c):c=e[8];const f=c;let a;e[9]!==s||e[10]!==l||e[11]!==u?(a=g=>{s?.(g),!(g.defaultPrevented||!u||g.button!==kr)&&(g.preventDefault(),u.openInNewTab(l,{background:!0}))},e[9]=s,e[10]=l,e[11]=u,e[12]=a):a=e[12];const d=a;let h;e[13]===Symbol.for("react.memo_cache_sentinel")?(h={textDecoration:"none",color:"inherit"},e[13]=h):h=e[13];let y;return e[14]!==d||e[15]!==f||e[16]!==r||e[17]!==l?(y=D.jsx(Fe.Link,{style:h,...r,to:l,onClick:f,onAuxClick:d}),e[14]=d,e[15]=f,e[16]=r,e[17]=l,e[18]=y):y=e[18],y};function Or(){const t=W.c(10),e=Fe.useNavigate(),s=Fe.useLocation(),{pluginId:n}=je();n||console.error("usePluginRouter used outside of a plugin context");const r=`/_plugin/${n}`;let i;t[0]!==s.pathname||t[1]!==r?(i=s.pathname.startsWith(r)?s.pathname.slice(r.length)||"/":s.pathname,t[0]=s.pathname,t[1]=r,t[2]=i):i=t[2];const o=i;let u;t[3]!==e||t[4]!==r?(u=(f,a)=>{const{...d}=a??{};f.startsWith("/")?e(`${r}${f}`,d):e(f,d)},t[3]=e,t[4]=r,t[5]=u):u=t[5];const l=u;let c;return t[6]!==s||t[7]!==l||t[8]!==o?(c={location:s,navigate:l,pluginPath:o},t[6]=s,t[7]=l,t[8]=o,t[9]=c):c=t[9],c}class Pr{}class Ar{_extensions;root;pages;_routes;get extensions(){return this._extensions||[]}get Routes(){if(!this._routes&&this.root)return[{path:"",index:!0,Component:this.root}];if(!this._routes?.length)throw new Error("cannot use plugin without a root page or router");return this._routes}get Window(){if(!this._routes&&this.root)return D.jsx(this.root,{});const e=Fe.createMemoryRouter(this._routes||[]);return D.jsx(Zt.RouterProvider,{router:e})}registerExtensionPoints(e){return this._extensions=e||[],this}setRootPage(e){return this.root=e,this}withPage(e,s){return this.pages||(this.pages={}),this.pages[e]?(console.warn("Cannot register page with the same name. Please use a different name."),this):(this.pages[e]=s,this)}withRoutes(e){return this._routes=e,this}}var Ht=(t=>(t.MISSING_MANIFEST="MISSING_MANIFEST",t.MISSING_PLUGIN="MISSING_PLUGIN",t.MISSING_ENTRYPOINT="MISSING_ENTRYPOINT",t))(Ht||{});const Vt="omniview/global-search/open";function Lr(t={}){window.dispatchEvent(new CustomEvent(Vt,{detail:t}))}const Yt="omniview/resource/icons";class Fr extends b.Component{state={failed:!1,resetToken:this.props.resetToken};static getDerivedStateFromProps(e,s){return e.resetToken!==s.resetToken?{failed:!1,resetToken:e.resetToken}:null}static getDerivedStateFromError(){return{failed:!0}}render(){return this.state.failed?this.props.fallback:this.props.children}}function qr(t,e){try{return t?.schemaVersion!==1||typeof t.resolve!="function"?void 0:t.resolve(e)}catch{return}}function Mr(t){const e=W.c(7);let s,n;e[0]!==t?({icon:s,...n}=t,e[0]=t,e[1]=s,e[2]=n):(s=e[1],n=e[2]);const r=n["aria-hidden"]??!0;let i;return e[3]!==s||e[4]!==n||e[5]!==r?(i=D.jsx(s,{...n,"aria-hidden":r}),e[3]=s,e[4]=n,e[5]=r,e[6]=i):i=e[6],i}function jr(t){const e=W.c(17);let s,n,r,i;e[0]!==t?({pluginId:n,resourceKey:i,fallback:s,...r}=t,e[0]=t,e[1]=s,e[2]=n,e[3]=r,e[4]=i):(s=e[1],n=e[2],r=e[3],i=e[4]);const{version:o,contributions:u}=dt(Yt);let l;e[5]!==s||e[6]!==r?(l=s===void 0?D.jsx("svg",{width:r.size??16,height:r.size??16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",className:r.className,"aria-hidden":r["aria-hidden"]??!0,children:D.jsx("path",{d:"m12 3 9 5v8l-9 5-9-5V8l9-5Zm0 9 9-4M12 12 3 8m9 4v9"})}):s,e[5]=s,e[6]=r,e[7]=l):l=e[7];const c=l;let f;if(e[8]!==u||e[9]!==c||e[10]!==n||e[11]!==r||e[12]!==i||e[13]!==o){f=Symbol.for("react.early_return_sentinel");e:for(const d of u){if(d.plugin!==n)continue;const h=qr(d.value,i);if(h){f=D.jsx(Fr,{resetToken:d,fallback:c,children:D.jsx(b.Suspense,{fallback:c,children:D.jsx(Mr,{icon:h,...r})})},JSON.stringify([n,i,o,d.id]));break e}}e[8]=u,e[9]=c,e[10]=n,e[11]=r,e[12]=i,e[13]=o,e[14]=f}else f=e[14];if(f!==Symbol.for("react.early_return_sentinel"))return f;let a;return e[15]!==c?(a=D.jsx(D.Fragment,{children:c}),e[15]=c,e[16]=a):a=e[16],a}function $r(t){const e=W.c(23);let s,n,r;e[0]!==t?({pluginID:s,enabled:r,...n}=t,e[0]=t,e[1]=s,e[2]=n,e[3]=r):(s=e[1],n=e[2],r=e[3]);const i=r===void 0?!0:r,o=K(s),u=i&&!!n.type;let l;e[4]!==o||e[5]!==n.route.connection||e[6]!==u?(l={pluginID:o,connectionID:n.route.connection,enabled:u},e[4]=o,e[5]=n.route.connection,e[6]=u,e[7]=l):l=e[7];const c=oe(l),f=ae(o,n.route.connection),a=i&&!!o&&!!n.route.connection&&!!n.type&&c.phase==="connected";let d;e[8]!==o||e[9]!==n?(d=[o,"resource-v2","resolve-target",n],e[8]=o,e[9]=n,e[10]=d):d=e[10];let h;e[11]!==f||e[12]!==o||e[13]!==a||e[14]!==n?(h=a?v=>{const{signal:S,queryKey:E}=v;return f(E,S,()=>L.ResolveTarget(o,n))}:k.skipToken,e[11]=f,e[12]=o,e[13]=a,e[14]=n,e[15]=h):h=e[15];let y;e[16]!==a||e[17]!==d||e[18]!==h?(y={queryKey:d,queryFn:h,enabled:a,retry:!1,placeholderData:void 0},e[16]=a,e[17]=d,e[18]=h,e[19]=y):y=e[19];const g=k.useQuery(y),p=a&&g.isSuccess&&!g.isFetching?g.data:void 0;let m;return e[20]!==g||e[21]!==p?(m={...g,data:p},e[20]=g,e[21]=p,e[22]=m):m=e[22],m}exports.SyncPolicy=Q.SyncPolicy;exports.WatchState=Q.WatchState;exports.sameGraphNode=Q.sameGraphNode;exports.ALL_SESSIONS_KEY=we;exports.BottomDrawerContext=Dt;exports.ConfirmationModalContext=kt;exports.ConnectionBoundary=qn;exports.ConnectionBoundaryFallback=Qt;exports.ErrorTypes=Y;exports.ExtensionPointRegistry=gn;exports.ExtensionPointStore=At;exports.ExtensionProvider=pn;exports.GLOBAL_SEARCH_OPEN_EVENT=Vt;exports.Link=Tr;exports.OperationsContext=ut;exports.OperationsProvider=on;exports.PluginContext=Me;exports.PluginContextProvider=en;exports.PluginErrorCode=Ht;exports.PluginWindow=Ar;exports.PluginWindowRootProps=Pr;exports.RESOURCE_ICON_EXTENSION_POINT_ID=Yt;exports.ResourceIcon=jr;exports.RightDrawerContext=Nt;exports.SettingsContext=lt;exports.SettingsProvider=rn;exports.SnackbarProvider=mn;exports.WindowActionsContext=$e;exports.WindowActionsProvider=cn;exports.actionToSnackbar=_t;exports.applyBatch=rt;exports.connectionListQueryKey=$t;exports.createErrorHandler=ne;exports.defaultState=Rt;exports.graphChangedEvent=zt;exports.isCancelledError=Oe;exports.jsonTextToValue=wr;exports.jsonToValue=it;exports.navigateActivePage=It;exports.openGlobalSearch=Lr;exports.parseAppError=ce;exports.registerActivePageNavigator=Xt;exports.relationshipLabel=_r;exports.requireConnectionReady=Pe;exports.resourceQueryKeys=ye;exports.showAppError=Ie;exports.toRelatedResources=Jt;exports.useActiveSyncs=Sr;exports.useBottomDrawer=gt;exports.useConfirmationModal=er;exports.useConnection=wn;exports.useConnectionProfiles=Dn;exports.useConnectionReadiness=oe;exports.useConnectionStatus=Rn;exports.useConnections=Cn;exports.useDependencyTree=Rr;exports.useEditorSchemas=gr;exports.useEventBatcher=Kt;exports.useExec=Wn;exports.useExecuteAction=pr;exports.useExtensionPoint=hn;exports.useExtensionPointSnapshot=dt;exports.useExtensionRegistry=Pt;exports.useLogs=Un;exports.useMetricProviders=Gn;exports.useMetricProvidersForResource=Gt;exports.useMetricStream=Bn;exports.useOperations=Bt;exports.usePluginContext=je;exports.usePluginData=jn;exports.usePluginRouter=Or;exports.usePluginSettings=nn;exports.usePortForwardSessions=zn;exports.useRefetchOnGraphChange=Qe;exports.useRelatedResources=xr;exports.useResolvedPluginId=K;exports.useResolvedResourceTarget=$r;exports.useResource=tr;exports.useResourceActions=hr;exports.useResourceAreaComponent=nr;exports.useResourceGraph=Dr;exports.useResourceGroups=rr;exports.useResourceMetrics=Kn;exports.useResourceMutations=fr;exports.useResourcePortForwarder=Zn;exports.useResourceSearch=sr;exports.useResourceType=cr;exports.useResourceTypes=ar;exports.useResources=dr;exports.useRightDrawer=$n;exports.useScopeValues=xn;exports.useSettings=Nr;exports.useSnackbar=ue;exports.useStreamAction=Cr;exports.useWatchState=yr;exports.useWindowActions=an;exports.valueToJSON=qe;exports.valueToJSONText=ct;exports.withConnectionReady=Sn;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("react/jsx-runtime"),$=require("react/compiler-runtime"),E=require("react"),K=require("./graph-wHun0Bkz.cjs"),k=require("@tanstack/react-query"),L=require("./servicewrapper-B-DdHGSp.cjs");require("./index-BVi9X4oU.cjs");const Q=require("./events-DnLqUWri.cjs"),$e=require("react-router"),z=require("@omniviewdev/base-ui"),ht=require("./models-NYvUa5Yc.cjs"),hn=require("react-router/dom"),Ke=E.createContext(void 0),We={kind:"host"},Lt=t=>["settings",t.kind,t.kind==="plugin"?t.pluginId:""],yn={};async function Ft(t,e){await t.cancelQueries(e),await t.invalidateQueries(e)}const He=new WeakMap;function mn(t){let e=He.get(t);if(!e){const s=r=>{const i=r?["settings",r.kind,r.kind==="plugin"?r.pluginId:""]:["settings","plugin"];Ft(t,{queryKey:i})},n=[Q.On("settings/changed",r=>{s(r.data)}),Q.On("plugin/init_complete",()=>s()),Q.On("plugin/inventory_changed",()=>s()),Q.On("plugin/dev_reload_complete",()=>s()),Q.On("plugin/recovered",()=>s()),Q.On("plugin/dev_install_complete",r=>{const i=r.data?.id;typeof i=="string"&&s({kind:"plugin",pluginId:i})})];e={users:0,stop:()=>{for(const r of n)r()}},He.set(t,e)}return e.users++,()=>{--e.users===0&&(e.stop(),He.delete(t))}}function qt(t,e,s){return t.kind==="host"?`${e}.${s}`:s}function yt(t){const e=$.c(25),s=k.useQueryClient(),n=t.kind,r=t.pluginId;let i,o;e[0]!==s?(i=()=>mn(s),o=[s],e[0]=s,e[1]=i,e[2]=o):(i=e[1],o=e[2]),E.useEffect(i,o);let c;e[3]!==t?(c=Lt(t),e[3]=t,e[4]=c):c=e[4];let u;e[5]!==t?(u=async y=>{const{signal:S}=y,b=await L.GetSnapshot(t);return S.throwIfAborted(),b},e[5]=t,e[6]=u):u=e[6];let a;e[7]!==c||e[8]!==u?(a={queryKey:c,queryFn:u,staleTime:1/0,retry:!1},e[7]=c,e[8]=u,e[9]=a):a=e[9];const d=k.useQuery(a);let l;e[10]!==s||e[11]!==n||e[12]!==r||e[13]!==t?(l={mutationFn:async y=>{const S=await L.Commit(t,y);return await Ft(s,{queryKey:["settings",n,r??""]}),S}},e[10]=s,e[11]=n,e[12]=r,e[13]=t,e[14]=l):l=e[14];const{mutateAsync:f}=k.useMutation(l);let p;e[15]!==n||e[16]!==r?(p=(y,S)=>L.Validate(n==="host"?We:{kind:n,pluginId:r},y,S),e[15]=n,e[16]=r,e[17]=p):p=e[17];const v=p,h=d.data?.categories??yn,g=d.error??void 0;let m;return e[18]!==f||e[19]!==d.data||e[20]!==d.isPending||e[21]!==h||e[22]!==g||e[23]!==v?(m={snapshot:d.data,categories:h,isLoading:d.isPending,error:g,commit:f,validate:v},e[18]=f,e[19]=d.data,e[20]=d.isPending,e[21]=h,e[22]=g,e[23]=v,e[24]=m):m=e[24],m}const V={PLUGIN_NOT_FOUND:"omniview:plugin/not-found",PLUGIN_NOT_LOADED:"omniview:plugin/not-loaded",PLUGIN_ALREADY_LOADED:"omniview:plugin/already-loaded",PLUGIN_INSTALL_FAILED:"omniview:plugin/install-failed",PLUGIN_LOAD_FAILED:"omniview:plugin/load-failed",PLUGIN_BUILD_FAILED:"omniview:plugin/build-failed",PLUGIN_COMMITTED_CLEANUP_PENDING:"omniview:plugin/committed-cleanup-pending",PLUGIN_COMMIT_UNCERTAIN:"omniview:plugin/commit-uncertain",SETTINGS_MISSING_CONFIG:"omniview:settings/missing-config",SETTINGS_INVALID_CONFIG:"omniview:settings/invalid-config",RESOURCE_NOT_FOUND:"omniview:resource/not-found",RESOURCE_FORBIDDEN:"omniview:resource/forbidden",RESOURCE_UNAUTHORIZED:"omniview:resource/unauthorized",RESOURCE_CONFLICT:"omniview:resource/conflict",RESOURCE_TIMEOUT:"omniview:resource/timeout",RESOURCE_LIMIT:"omniview:resource/limit",RESOURCE_CONTINUATION_EXPIRED:"omniview:resource/continuation-expired",RESOURCE_RESET_REQUIRED:"omniview:resource/reset-required",RESOURCE_PARTIAL:"omniview:resource/partial",RESOURCE_PROVIDER_ERROR:"omniview:resource/provider-error",CONNECTION_NOT_FOUND:"omniview:connection/not-found",CONNECTION_FAILED:"omniview:connection/failed",SESSION_NOT_FOUND:"omniview:session/not-found",SESSION_FAILED:"omniview:session/failed",CANCELLED:"omniview:cancelled",INTERNAL:"omniview:internal",VALIDATION:"omniview:validation",NOT_IMPLEMENTED:"omniview:not-implemented"};let Ae=null;function vn(t){return Ae=t,()=>{Ae===t&&(Ae=null)}}function Mt(t){if(!Ae)throw new Error(`cannot navigate to "${t}": this window has no page navigator`);Ae(t)}const Ot={INVALID_REQUEST:[V.VALIDATION,400,"correctRequest"],UNSUPPORTED:[V.NOT_IMPLEMENTED,501,"refreshContract"],FORBIDDEN:[V.RESOURCE_FORBIDDEN,403,"none"],UNAUTHORIZED:[V.RESOURCE_UNAUTHORIZED,401,"none"],NOT_FOUND:[V.RESOURCE_NOT_FOUND,404,"none"],CONFLICT:[V.RESOURCE_CONFLICT,409,"refreshContract"],ALREADY_EXISTS:[V.RESOURCE_CONFLICT,409,"refreshContract"],CANCELLED:[V.CANCELLED,499,"none"],TIMEOUT:[V.RESOURCE_TIMEOUT,408,"none"],UNAVAILABLE:[V.CONNECTION_FAILED,503,"reconnect"],CONNECTION_ERROR:[V.CONNECTION_FAILED,503,"reconnect"],CERTIFICATE_ERROR:[V.CONNECTION_FAILED,502,"reconnect"],RESOURCE_LIMIT:[V.RESOURCE_LIMIT,429,"correctRequest"],CONTINUATION_EXPIRED:[V.RESOURCE_CONTINUATION_EXPIRED,410,"restartQuery"],RESET_REQUIRED:[V.RESOURCE_RESET_REQUIRED,409,"restartQuery"],PARTIAL_RESULT:[V.RESOURCE_PARTIAL,422,"none"],PROVIDER_ERROR:[V.RESOURCE_PROVIDER_ERROR,502,"none"],INTERNAL:[V.INTERNAL,500,"none"]};function Ve(t){return typeof t=="object"&&t!==null?t:void 0}function de(t,e){return typeof t=="string"&&t.length>0&&t.length<=e}function Ye(){return{type:V.CANCELLED,code:"CANCELLED",title:"Cancelled",status:499,detail:"The operation was cancelled.",recovery:"none"}}function je(t,e){if(e>4)return;if(t==="cancelled")return Ye();if(typeof t=="string"){const n=t.trim();if(!n.startsWith("{"))return;try{return je(JSON.parse(n),e+1)}catch{return}}const s=Ve(t);if(s){if(s.name==="AbortError"||s.name==="CancelError")return Ye();if(de(s.type,256)&&de(s.title,256)&&typeof s.status=="number"&&Number.isInteger(s.status)&&s.status>=100&&s.status<=599&&typeof s.detail=="string"&&s.detail.length<=4096){const n={type:s.type,title:s.title,status:s.status,detail:s.detail};de(s.code,64)&&(n.code=s.code),de(s.requestId,256)&&(n.requestId=s.requestId),de(s.instance,512)&&(n.instance=s.instance),Array.isArray(s.suggestions)&&(n.suggestions=s.suggestions.filter(i=>de(i,512)).slice(0,8)),Array.isArray(s.actions)&&(n.actions=s.actions.filter(i=>{const o=Ve(i);return!!o&&["navigate","retry","open-url","copy"].includes(String(o.type))&&de(o.label,256)&&(o.target===void 0||de(o.target,4096))}).slice(0,8)),["correctRequest","refreshContract","restartQuery","reconnect","none"].includes(String(s.recovery))&&(n.recovery=s.recovery);const r=Ve(s.location);return r?.unit==="utf8-byte"&&typeof r.start=="number"&&typeof r.end=="number"&&Number.isSafeInteger(r.start)&&Number.isSafeInteger(r.end)&&r.start>=0&&r.end>=r.start&&(n.location={start:r.start,end:r.end,unit:"utf8-byte"}),n}if(typeof s.code=="string"&&typeof s.title=="string"&&typeof s.message=="string"){let n=s.code;if(n==="PERMISSION_DENIED"&&(n="FORBIDDEN"),["INVALID_INPUT","FILTER_UNKNOWN_FIELD","FILTER_INVALID_OPERATOR"].includes(n)&&(n="INVALID_REQUEST"),Object.prototype.hasOwnProperty.call(Ot,n)||(n="INTERNAL"),n==="CANCELLED")return Ye();const[r,i,o]=Ot[n],c=n==="FORBIDDEN"||n==="UNAUTHORIZED"||n==="INTERNAL"||n==="PROVIDER_ERROR";return{type:r,status:i,code:n,recovery:o,title:c?n==="FORBIDDEN"?"Access denied":n==="UNAUTHORIZED"?"Authentication required":"Operation failed":de(s.title,256)?s.title:"Operation failed",detail:c?"The operation could not be completed.":de(s.message,4096)?s.message:"The operation could not be completed.",...!c&&Array.isArray(s.suggestions)?{suggestions:s.suggestions.filter(u=>de(u,512)).slice(0,8)}:{}}}return je(s.message,e+1)??je(s.cause,e+1)}}function le(t){return je(t,0)??{type:V.INTERNAL,title:t==null?"Unknown error":"Error",status:500,detail:t==null?"An unknown error occurred.":"The operation could not be completed."}}function Le(t){return le(t).type===V.CANCELLED}function jt(t){switch(t.type){case"navigate":return{label:t.label,onClick:()=>{Mt((t.target??"/").replace(/^#/,""))}};case"open-url":return{label:t.label,onClick:()=>{window.open(t.target,"_blank")}};case"copy":return{label:t.label,onClick:()=>{navigator.clipboard.writeText(t.target??"")}};case"retry":return{label:t.label,onClick:()=>{}};default:return{label:t.label,onClick:()=>{}}}}function $t(t,e){const s=[t.detail,...t.suggestions?.map(r=>`• ${r}`)??[]].join(`
2
+ `);return{message:e||(t.title!=="Error"?t.title:"Operation failed"),status:"error",details:s,actions:t.actions?.map(jt)}}function _e(t,e,s){if(Le(e))return;const n=le(e);t($t(n,s))}function ne(t,e){return s=>{if(Le(s))return;const n=le(s);t($t(n,n.title!=="Error"?n.title:e))}}function Sn(t){const e=$.c(2);let s;return e[0]!==t?(s=O.jsx(bn,{...t},t.pluginId),e[0]=t,e[1]=s):s=e[1],s}function bn(t){const e=$.c(40),{children:s,pluginId:n,headless:r}=t,i=r===void 0?!1:r;let o;e[0]!==n?(o={kind:"plugin",pluginId:n},e[0]=n,e[1]=o):o=e[1];const{categories:c}=yt(o);let u;e[2]!==c.plugin?.settings||e[3]!==n?(u=Object.fromEntries(Object.entries(c.plugin?.settings??{}).filter(En).map(R=>{const[F,T]=R;return[`${n}.${F}`,T.value]})),e[2]=c.plugin?.settings,e[3]=n,e[4]=u):u=e[4];const a=u;let d;e[5]===Symbol.for("react.memo_cache_sentinel")?(d=new ht.PluginMeta,e[5]=d):d=e[5];const[l,f]=E.useState(d),[p,v]=E.useState(!1),[h,g]=E.useState(null),m=E.useRef(0);console.debug("[PluginContextProvider] render",{pluginId:n,metaLoaded:p,metaError:!!h});let y;e[6]!==n?(y=()=>{if(n===void 0||n===""){console.debug("[PluginContextProvider] skipping meta fetch — empty pluginId");return}const R=m.current=m.current+1;console.debug(`[PluginContextProvider] fetching meta for "${n}"`),L.GetPluginMeta(n).then(F=>{R===m.current&&(console.debug(`[PluginContextProvider] meta loaded for "${n}"`,{name:F?.name,version:F?.version}),f(F),v(!0))}).catch(F=>{if(R!==m.current)return;const T=le(F);console.error(`[PluginContextProvider] error fetching meta for "${n}":`,T.detail),g(T.detail),v(!1)})},e[6]=n,e[7]=y):y=e[7];const S=y;let b,w;e[8]!==S||e[9]!==p||e[10]!==n?(b=()=>{if(p)return;const R=()=>{g(null),S()},F=[Q.On("plugin/init_complete",R),Q.On("plugin/dev_install_complete",T=>{T.data?.id===n&&R()}),Q.On("plugin/inventory_changed",R)];return()=>{for(const T of F)T()}},w=[n,p,S],e[8]=S,e[9]=p,e[10]=n,e[11]=b,e[12]=w):(b=e[11],w=e[12]),E.useEffect(b,w);let x,I;if(e[13]!==S||e[14]!==n?(x=()=>(console.debug(`[PluginContextProvider] useEffect — pluginId changed to "${n}"`),S(),()=>{m.current=m.current+1}),I=[n,S],e[13]=S,e[14]=n,e[15]=x,e[16]=I):(x=e[15],I=e[16]),E.useEffect(x,I),h){if(i)throw new Error(h);let R,F,T;e[17]===Symbol.for("react.memo_cache_sentinel")?(T={display:"flex",flex:1,alignItems:"center",justifyContent:"center",padding:24},R={maxWidth:480,width:"100%",border:"1px solid #7F1D1D",borderRadius:8,backgroundColor:"#1C1917",padding:20,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},F={display:"flex",alignItems:"center",gap:8,marginBottom:12},e[17]=R,e[18]=F,e[19]=T):(R=e[17],F=e[18],T=e[19]);let j,C;e[20]===Symbol.for("react.memo_cache_sentinel")?(j=O.jsxs("div",{style:F,children:[O.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"#EF4444",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[O.jsx("circle",{cx:"12",cy:"12",r:"10"}),O.jsx("line",{x1:"12",y1:"8",x2:"12",y2:"12"}),O.jsx("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"})]}),O.jsx("span",{style:{fontSize:14,fontWeight:600,color:"#FECACA"},children:"Plugin failed to load"})]}),C={fontSize:13,color:"#A1A1AA",margin:"0 0 16px"},e[20]=j,e[21]=C):(j=e[20],C=e[21]);let N;e[22]!==h?(N=O.jsx("p",{style:C,children:h}),e[22]=h,e[23]=N):N=e[23];let P;e[24]!==S?(P=()=>{g(null),S()},e[24]=S,e[25]=P):P=e[25];let M;e[26]===Symbol.for("react.memo_cache_sentinel")?(M={background:"transparent",color:"#F87171",border:"1px solid #7F1D1D",borderRadius:6,padding:"6px 14px",fontSize:13,fontWeight:500,cursor:"pointer"},e[26]=M):M=e[26];let A;e[27]!==P?(A=O.jsx("button",{onClick:P,style:M,children:"Retry"}),e[27]=P,e[28]=A):A=e[28];let q;return e[29]!==N||e[30]!==A?(q=O.jsx("div",{style:T,children:O.jsxs("div",{style:R,children:[j,N,A]})}),e[29]=N,e[30]=A,e[31]=q):q=e[31],q}if(!p){if(i)return null;let R;return e[32]===Symbol.for("react.memo_cache_sentinel")?(R=O.jsxs("div",{style:{display:"flex",flex:1,alignItems:"center",justifyContent:"center"},children:[O.jsx("div",{style:{width:24,height:24,border:"2px solid #3F3F46",borderTopColor:"#A1A1AA",borderRadius:"50%",animation:"plugin-spin 0.8s linear infinite"}}),O.jsx("style",{children:"@keyframes plugin-spin { to { transform: rotate(360deg); } }"})]}),e[32]=R):R=e[32],R}let _;e[33]!==l||e[34]!==n||e[35]!==a?(_={pluginId:n,settings:a,meta:l},e[33]=l,e[34]=n,e[35]=a,e[36]=_):_=e[36];let D;return e[37]!==s||e[38]!==_?(D=O.jsx(Ke.Provider,{value:_,children:s}),e[37]=s,e[38]=_,e[39]=D):D=e[39],D}function En(t){const[,e]=t;return e!==void 0}function mt(){const t=E.useContext(Ke);if(!t)throw new Error("usePluginContext must be used within a PluginContextProvider");return t}const vt=E.createContext(void 0),wn=t=>{const e=$.c(7),{children:s}=t,{categories:n}=yt(We);let r;if(e[0]!==n){r={};for(const[u,a]of Object.entries(n))for(const[d,l]of Object.entries(a?.settings??{}))l&&(r[qt(We,u,d)]=l.value);e[0]=n,e[1]=r}else r=e[1];const i=r;let o;e[2]!==i?(o={settings:i},e[2]=i,e[3]=o):o=e[3];let c;return e[4]!==s||e[5]!==o?(c=O.jsx(vt.Provider,{value:o,children:s}),e[4]=s,e[5]=o,e[6]=c):c=e[6],c},Wt={height:32,focused:0,tabs:[],createTab:()=>{},createTabs:()=>{},updateTab:()=>{},focusTab:()=>{},reorderTab:()=>{},closeTab:()=>{},closeTabs:()=>{},resizeDrawer:()=>{},closeDrawer:()=>{},fullscreenDrawer:()=>{}},Qt=E.createContext(Wt),Ut=E.createContext(void 0),Kt=E.createContext(void 0),St=E.createContext(void 0),Cn=3e4,In=t=>{const e=$.c(12),{children:s}=t;let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=[],e[0]=n):n=e[0];const[r,i]=E.useState(n);let o;e[1]===Symbol.for("react.memo_cache_sentinel")?(o=m=>{i(y=>[m,...y])},e[1]=o):o=e[1];const c=o;let u;e[2]===Symbol.for("react.memo_cache_sentinel")?(u=(m,y)=>{i(S=>S.map(b=>b.id===m?{...b,...y}:b))},e[2]=u):u=e[2];const a=u;let d;e[3]===Symbol.for("react.memo_cache_sentinel")?(d=m=>{i(y=>y.filter(S=>S.id!==m))},e[3]=d):d=e[3];const l=d;let f,p;e[4]!==r?(f=()=>{const m=[];for(const y of r)if(y.status!=="running"){const S=Date.now()-(y.completedAt??y.startedAt),b=Math.max(0,Cn-S);m.push(setTimeout(()=>l(y.id),b))}return()=>m.forEach(clearTimeout)},p=[r,l],e[4]=r,e[5]=f,e[6]=p):(f=e[5],p=e[6]),E.useEffect(f,p);let v;e[7]!==r?(v={operations:r,addOperation:c,updateOperation:a,removeOperation:l},e[7]=r,e[8]=v):v=e[8];const h=v;let g;return e[9]!==s||e[10]!==h?(g=O.jsx(St.Provider,{value:h,children:s}),e[9]=s,e[10]=h,e[11]=g):g=e[11],g},Ge=E.createContext(null),_n=t=>{const e=$.c(3),{actions:s,children:n}=t;let r;return e[0]!==s||e[1]!==n?(r=O.jsx(Ge.Provider,{value:s,children:n}),e[0]=s,e[1]=n,e[2]=r):r=e[2],r};function xn(){const t=E.useContext(Ge);if(!t)throw new Error("useWindowActions must be used inside a workspace window (WindowActionsProvider)");return t}var ot=function(t,e){return ot=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(s,n){s.__proto__=n}||function(s,n){for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(s[r]=n[r])},ot(t,e)};function Rn(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");ot(t,e);function s(){this.constructor=t}t.prototype=e===null?Object.create(e):(s.prototype=e.prototype,new s)}var Ze="Invariant Violation",kt=Object.setPrototypeOf,Dn=kt===void 0?function(t,e){return t.__proto__=e,t}:kt,On=(function(t){Rn(e,t);function e(s){s===void 0&&(s=Ze);var n=t.call(this,typeof s=="number"?Ze+": "+s+" (see https://github.com/apollographql/invariant-packages)":s)||this;return n.framesToPop=1,n.name=Ze,Dn(n,e.prototype),n}return e})(Error);function it(t,e){if(!t)throw new On(e)}var Gt=["debug","log","warn","error","silent"],kn=Gt.indexOf("log");function Me(t){return function(){if(Gt.indexOf(t)>=kn){var e=console[t]||console.log;return e.apply(console,arguments)}}}(function(t){t.debug=Me("debug"),t.log=Me("log"),t.warn=Me("warn"),t.error=Me("error")})(it||(it={}));const Bt=E.createContext(void 0),zt=()=>E.useContext(Bt);function bt(t){const e=$.c(6),s=zt(),n=E.useRef(null);let r;e[0]!==t||e[1]!==s?(r=u=>{let a=s?.getExtensionPoint(t),d=a?.subscribe(u);const l=s?.subscribe(()=>{const f=s.getExtensionPoint(t);f!==a&&(d?.(),a=f,d=a?.subscribe(u)),u()});return()=>{d?.(),l?.()}},e[0]=t,e[1]=s,e[2]=r):r=e[2];const i=r;let o;e[3]!==t||e[4]!==s?(o=()=>{const u=s?.getExtensionPoint(t),a=u?.version??-1,d=n.current;if(d&&d.store===u&&d.version===a)return d;const l={store:u,version:a,contributions:u?.listAll()??[]};return n.current=l,l},e[3]=t,e[4]=s,e[5]=o):o=e[5];const c=o;return E.useSyncExternalStore(i,c,c)}function Tn(t){return bt(t).store}const Nn=t=>{const e=$.c(5),{registry:s,children:n}=t;let r;e[0]!==s?(r=()=>s,e[0]=s,e[1]=r):r=e[1];const[i]=E.useState(r);it(i===s,"You can't change the extension registry after it has been rendered");let o;return e[2]!==n||e[3]!==i?(o=O.jsx(Bt.Provider,{value:i,children:n}),e[2]=n,e[3]=i,e[4]=o):o=e[4],o},Xe=t=>{if(!t||typeof t!="string")throw new TypeError(`extensionName is required to be a string and can't be: "${t}" (${typeof t})`);return t.trim()};class Jt{id;mode;_pluginId;_version=0;_contributions=new Map;_lookupCache=new Map;_matcher;_select;_listeners=new Set;constructor(e){this.id=e.id,this.mode=e.mode??"multiple",this._pluginId=e.pluginId,this._matcher=e.matcher,this._select=e.select}get pluginId(){return this._pluginId}get version(){return this._version}register(e){if(this._contributions.has(e.id))throw new Error(`Contribution with id "${e.id}" already exists in extension point "${this.id}"`);this._contributions.set(e.id,e),this._invalidateCache(),this._notify()}unregister(e){this._contributions.delete(e)&&(this._invalidateCache(),this._notify())}provide(e){return this._getMatched(e).map(n=>n.value)}list(e){return this._getMatched(e)}listAll(){return Array.from(this._contributions.values())}subscribe(e){return this._listeners.add(e),()=>{this._listeners.delete(e)}}removeContributionsByPlugin(e){let s=!1;for(const[n,r]of this._contributions)r.plugin===e&&(this._contributions.delete(n),s=!0);s&&(this._invalidateCache(),this._notify())}_getMatched(e){const s=this._getCacheKey(e);if(s!=null){const r=this._lookupCache.get(s);if(r){const i=r.map(o=>this._contributions.get(o)).filter(o=>o!=null);return this._applyMode(i,e)}}let n=this._sortDeterministic(Array.from(this._contributions.values()));return this._matcher&&e!==void 0&&(n=n.filter(r=>this._matcher(r,e))),s!=null&&this._lookupCache.set(s,n.map(r=>r.id)),this._applyMode(n,e)}_applyMode(e,s){if(this.mode==="single"){if(this._select){const n=this._select(e,s);return n?[n]:[]}return e.length>0?[e[0]]:[]}return e}_sortDeterministic(e){return[...e].sort((s,n)=>{const r=s.plugin.localeCompare(n.plugin);return r!==0?r:s.id.localeCompare(n.id)})}_getCacheKey(e){if(e!=null&&typeof e=="object"&&"getCacheKey"in e){const s=e.getCacheKey;if(typeof s=="function")return s()}}_invalidateCache(){this._lookupCache.clear()}_notify(){this._version++;for(const e of this._listeners)e()}}class Pn{_stores=new Map;_storeUnsubs=new Map;_listeners=new Set;constructor(e){if(e?.initialStores)for(const s of e.initialStores)this.addExtensionPoint(s)}addExtensionPoint(e){const s=Xe(e.id);if(this._stores.has(s)){const r=this._stores.get(s);throw new Error(`Extension point "${s}" already exists (owned by "${r.pluginId??"unknown"}")`)}const n=new Jt({...e,id:s});this._stores.set(s,n),this._storeUnsubs.set(s,n.subscribe(()=>this._notify())),this._notify()}getExtensionPoint(e){const s=Xe(e);return this._stores.get(s)}hasExtensionPoint(e){const s=Xe(e);return this._stores.has(s)}listExtensionPoints(){return Array.from(this._stores.keys())}removeExtensionPoints(e){let s=!1;for(const[n,r]of this._stores)r.pluginId===e&&(this._storeUnsubs.get(n)?.(),this._storeUnsubs.delete(n),this._stores.delete(n),s=!0);s&&this._notify()}removeContributions(e){for(const s of this._stores.values())s.removeContributionsByPlugin(e);this._notify()}subscribe(e){return this._listeners.add(e),()=>{this._listeners.delete(e)}}_notify(){for(const e of this._listeners)e()}}const ie={Panel:{position:"fixed",right:"var(--ov-space-3)",bottom:36,zIndex:"calc(var(--ov-z-toast, 9999) + 1)",width:"min(480px, calc(100vw - 24px))",minWidth:0,maxHeight:"min(560px, calc(100dvh - 64px))",display:"flex",flexDirection:"column",overflow:"hidden",padding:0},Header:{flex:"none",gap:"var(--ov-space-2)",paddingInline:"var(--ov-space-3)",background:"var(--ov-color-bg-surface-raised)",borderBottom:"1px solid var(--ov-color-border-muted)"},HeaderActions:{marginLeft:"auto"},List:{minHeight:0,overflowY:"auto",overscrollBehavior:"contain"},Notice:{borderTop:"1px solid var(--ov-color-border-muted)"},Row:{display:"flex",alignItems:"center",gap:"var(--ov-space-1)",padding:"var(--ov-space-2) var(--ov-space-2) var(--ov-space-2) var(--ov-space-3)"},ErrorIcon:{flex:"none",color:"var(--ov-color-danger)"},Message:{flex:1,minWidth:0,justifyContent:"flex-start",textAlign:"left"},MessageText:{minWidth:0,overflowWrap:"anywhere"},Details:{padding:"0 var(--ov-space-3) var(--ov-space-3) 36px"},Code:{display:"block",margin:"var(--ov-space-2) 0",padding:"var(--ov-space-3)",maxHeight:240,overflow:"auto",whiteSpace:"pre-wrap",overflowWrap:"anywhere",lineHeight:1.5,userSelect:"text"},Actions:{display:"flex",flexWrap:"wrap",gap:"var(--ov-space-2)"},CopyError:{margin:0,padding:"var(--ov-space-3)",borderTop:"1px solid var(--ov-color-border-muted)"}},Ht=E.createContext(void 0),An={default:"info",info:"info",success:"success",warning:"warning",error:"danger"},Ln=({children:t})=>{const{toast:e}=z.useToast(),[s,n]=E.useState([]),[r,i]=E.useState([]),[o,c]=E.useState(!1),[u,a]=E.useState(),[d,l]=E.useState(""),f=E.useRef(0),p=E.useRef(null);E.useEffect(()=>{if(!o)return;const g=document.activeElement;p.current?.focus();const m=y=>{y.key==="Escape"&&(y.stopPropagation(),c(!1))};return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m),g instanceof HTMLElement&&g.isConnected&&g.focus()}},[o]);const v=g=>{n(m=>[...m,g])},h=(g,m,y)=>{const S=typeof g=="object";let b="",w="info",x,I=5e3,_;if(S){if(b=g.message,g.showOnce){if(s.includes(b))return;v(b)}w=g.status,x=g.details,I=g.autoHideDuration??5e3,_=g.actions}else b=g,w=m,x=y;let D;if(w==="error"){const R={id:++f.current,message:b,details:x,created:new Date().toISOString(),actions:_};i(F=>[...F,R].slice(-20)),D={label:"Details",onClick:()=>{a(R.id),c(!0)}}}e(w==="error"?b:x??b,{severity:An[w]??"info",title:w!=="error"&&x?b:void 0,duration:I,action:D??_?.[0]})};return O.jsxs(Ht.Provider,{value:{showSnackbar:h,openNotifications:()=>{c(!0)},notificationCount:r.length},children:[t,o&&O.jsxs(z.Card,{ref:p,style:ie.Panel,size:"sm",variant:"outline",surface:"overlay",elevation:3,"aria-label":"Notifications",tabIndex:-1,children:[O.jsxs(z.Toolbar,{size:"sm",style:ie.Header,children:[O.jsx(z.Text,{size:"sm",weight:"semibold",children:"Notifications"}),O.jsx(z.Text,{size:"xs",tone:"muted",children:r.length}),O.jsxs(z.Toolbar.Group,{style:ie.HeaderActions,children:[O.jsx(z.IconButton,{size:"sm",variant:"ghost","aria-label":"Clear history",title:"Clear history",disabled:r.length===0,onClick:()=>{i([]),a(void 0),l("")},children:O.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:O.jsx("path",{d:"m3 3 6 6m0-6L3 9M13 6h8M3 14h18M3 20h18"})})}),O.jsx(z.IconButton,{size:"sm",variant:"ghost","aria-label":"Close notifications",title:"Close notifications",onClick:()=>{c(!1)},children:O.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:O.jsx("path",{d:"m6 9 6 6 6-6"})})})]})]}),O.jsxs("div",{style:ie.List,children:[r.length===0&&O.jsx(z.EmptyState,{size:"sm",title:"No recent errors",description:"Error details will appear here."}),r.slice().reverse().map(g=>{const m=u===g.id;return O.jsxs("div",{style:ie.Notice,children:[O.jsxs("div",{style:ie.Row,children:[O.jsxs("svg",{style:ie.ErrorIcon,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-label":"Error",role:"img",children:[O.jsx("circle",{cx:"12",cy:"12",r:"9"}),O.jsx("path",{d:"m9 9 6 6m0-6-6 6"})]}),O.jsx(z.Button,{size:"sm",variant:"ghost",style:ie.Message,"aria-expanded":m,"aria-controls":`notification-${g.id}`,title:g.message,onClick:()=>{a(m?void 0:g.id),l("")},children:O.jsx(z.Text,{size:"sm",style:ie.MessageText,truncate:!m,children:g.message})}),O.jsx(z.IconButton,{size:"sm",variant:"ghost","aria-label":m?"Collapse details":"Expand details",title:m?"Collapse details":"Expand details","aria-expanded":m,"aria-controls":`notification-${g.id}`,onClick:()=>{a(m?void 0:g.id),l("")},children:O.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:O.jsx("path",{d:m?"m6 15 6-6 6 6":"m6 9 6 6 6-6"})})}),O.jsx(z.IconButton,{size:"sm",variant:"ghost","aria-label":`Dismiss ${g.message}`,title:"Dismiss notification",onClick:()=>{i(y=>y.filter(S=>S.id!==g.id)),m&&(a(void 0),l(""))},children:O.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:O.jsx("path",{d:"m6 6 12 12m0-12L6 18"})})})]}),O.jsx("div",{id:`notification-${g.id}`,hidden:!m,style:ie.Details,children:m&&O.jsxs(O.Fragment,{children:[O.jsx(z.Text,{size:"xs",tone:"muted",children:O.jsx("time",{dateTime:g.created,children:new Date(g.created).toLocaleString()})}),O.jsx(z.Code,{size:"sm",style:ie.Code,children:g.details?.length?g.details:g.message}),O.jsxs("div",{style:ie.Actions,children:[O.jsx(z.Button,{size:"sm",variant:"ghost",onClick:async()=>{l("");try{await navigator.clipboard.writeText(`${g.message}
3
+ ${g.created}
4
+ ${g.details??""}`)}catch{l("Copy failed. Select the diagnostic text and copy it manually.")}},children:"Copy details"}),g.actions?.map((y,S)=>O.jsx(z.Button,{size:"sm",variant:"outline",onClick:y.onClick,children:y.label},`${y.label}-${S}`))]})]})})]},g.id)})]}),d&&O.jsx(z.Text,{as:"p",size:"sm",role:"status",style:ie.CopyError,children:d})]})]})},ue=()=>{const t=E.useContext(Ht);if(t===void 0)throw new Error("useCustomSnackbar must be used within a CustomSnackbarProvider");return t},me={all:t=>[t,"resource-v2"],scope:(t,e)=>[t,"resource-v2","target",e],list:(t,e)=>[t,"resource-v2","enumerate",e],nativeQuery:(t,e)=>[t,"resource-v2","native-query",e],resource:(t,e)=>[t,"resource-v2","get",e]};function G(t){const s=E.useContext(Ke)?.pluginId??t;if(!s)throw new Error("pluginID must be provided either via PluginContext or as an explicit parameter");return s}const ae=new Map,ke=new Map;let et=0,Re=[],Et=0;const Vt={phase:"checking"};function be(t,e){const s=JSON.stringify([t,e]);let n=ae.get(s);return n||(n={pluginID:t,connectionID:e,key:s,snapshot:Vt,listeners:new Set,users:0,version:0,generation:++Et,starts:new Set},ae.set(s,n)),n}function Ne(t,e){t.snapshot.phase==="connected"&&e.phase!=="connected"&&(t.generation=++Et),t.snapshot=e;for(const s of t.listeners)s()}function Ee(t,e,s=!1){t.generation=++Et,t.version++,s||(t.operation=void 0),Ne(t,e)}function Fn(t){switch(t){case"CONNECTED":return"connected";case"DISCONNECTED":return"disconnected";case"PENDING":return"connecting";case"UNAUTHORIZED":return"unauthorized";case"FORBIDDEN":return"forbidden";case"NOT_FOUND":return"not-found";default:return"error"}}function wt(t){const e=t?.trim();if(e)return e.startsWith("{")||e.startsWith("[")||e.length>512||/[\r\n]|\bgoroutine\b|\bat\s+\S+\s+\(.*:\d+:\d+\)/.test(e)?"The connection operation could not be completed.":e}function Yt(t,e){const s=Fn(t.status);return{phase:s,connection:e,message:wt(t.error||t.details)||(s==="error"?"The connection is not ready.":void 0)}}function Zt(t,e){const s=le(t);return{phase:s.status===401?"unauthorized":s.status===403?"forbidden":s.status===404?"not-found":"error",connection:e,message:wt(s.detail||s.title)}}function tt(t,e){e=wt(e)||"The plugin is unavailable.",ke.set(t,e);for(const s of ae.values())s.pluginID===t&&Ee(s,{phase:"error",message:e,connection:s.snapshot.connection})}function Tt(t){const e=ke.delete(t);for(const s of ae.values())s.pluginID===t&&(!e&&s.snapshot.phase==="checking"&&s.operation?.kind==="check"||(Ee(s,{phase:"checking",connection:s.snapshot.connection}),s.users&&ye(s,"check").catch(()=>{})))}function xe(){if(!(typeof document<"u"&&document.visibilityState==="hidden"))for(const t of ae.values())t.users&&!ke.has(t.pluginID)&&ye(t,"check",!0).catch(()=>{})}function qn(){Re.length||(Re=[Q.On("connection/status",({data:t})=>{const e=ae.get(JSON.stringify([t.pluginID,t.connectionID]));!e||ke.has(t.pluginID)||e.stop&&t.status!=="DISCONNECTED"||t.status!=="DISCONNECTED"&&e.starts.size&&e.operation?.kind!=="start"||Ee(e,Yt({status:t.status,error:"",details:""},e.snapshot.connection),t.status==="CONNECTED")}),Q.On("plugin/crash",({data:t})=>tt(t.pluginID,t.error||"The plugin stopped unexpectedly.")),Q.On("plugin/crash_recovery_failed",({data:t})=>tt(t.pluginID,t.error||"Plugin recovery failed.")),Q.On("plugin/recovered",({data:t})=>Tt(t.pluginID)),Q.On("plugin/state_change",({data:t})=>{t.to==="Running"?Tt(t.pluginID):tt(t.pluginID,t.reason||`The plugin is ${t.to}.`)})],typeof window<"u"&&(window.addEventListener("focus",xe),window.addEventListener("pageshow",xe),Re.push(()=>{window.removeEventListener("focus",xe),window.removeEventListener("pageshow",xe)})),typeof document<"u"&&(document.addEventListener("visibilitychange",xe),Re.push(()=>document.removeEventListener("visibilitychange",xe))))}function Ie(t){return ae.set(t.key,t),t.users++,et++,qn(),()=>{if(t.users--,et--,t.users||(Ee(t,Vt),ae.get(t.key)===t&&ae.delete(t.key)),!et){for(const e of Re)e();Re=[],ke.clear()}}}function ye(t,e,s=!1){if(t.stop)return Promise.reject(new Error("Connection is disconnecting. Wait for it to stop before connecting."));const n=ke.get(t.pluginID);if(n)return Ne(t,{phase:"error",message:n,connection:t.snapshot.connection}),Promise.reject(new Error(n));if(t.operation&&(e==="check"||t.operation.kind==="start"))return t.operation.promise;const r=++t.version;(!s||t.snapshot.phase!=="connected")&&Ne(t,{phase:e==="start"?"connecting":"checking",connection:t.snapshot.connection}),e==="start"&&t.starts.add(r);const i=Promise.resolve().then(()=>{if(t.version!==r)throw new Error("Connection readiness changed before the operation began.");return e==="start"?L.StartConnection(t.pluginID,t.connectionID):L.CheckConnection(t.pluginID,t.connectionID)}).then(o=>(t.version===r&&Ne(t,Yt(o,o.connection??t.snapshot.connection)),o),o=>{throw t.version===r&&Ne(t,Zt(o,t.snapshot.connection)),o}).finally(()=>{e==="start"&&t.starts.delete(r),t.operation?.version===r&&(t.operation=void 0)});return t.operation={kind:e,promise:i,version:r},i}function Be(t,e){return{getSnapshot:()=>be(t,e).snapshot,subscribe:s=>{const n=be(t,e),r=n.users===0,i=Ie(n);return n.listeners.add(s),r&&ye(n,"check").catch(()=>{}),()=>{n.listeners.delete(s),i()}},connect:async()=>{const s=be(t,e),n=Ie(s);try{await ye(s,"start")}catch{}finally{n()}},retry:async()=>{const s=be(t,e),n=Ie(s);try{await ye(s,"check")}catch{}finally{n()}}}}async function Fe(t,e){const s=be(t,e),n=Ie(s);try{try{await ye(s,"check",!0)}catch{}if(s.snapshot.phase!=="connected")throw new Error(s.snapshot.message||`Connection ${e} is ${s.snapshot.phase}. Connect before continuing.`)}finally{n()}}async function Mn(t,e,s){const n=be(t,e),r=Ie(n);try{try{await ye(n,"check",!0)}catch{}if(n.snapshot.phase!=="connected")throw new Error(n.snapshot.message||`Connection ${e} is ${n.snapshot.phase}. Connect before continuing.`);const i=n.generation,o=await s();if(n.generation!==i||n.snapshot.phase!=="connected")throw new Error(`Connection ${e} changed while the operation was in progress. Retry after connecting.`);return o}finally{r()}}function ct(t,e){return ae.get(JSON.stringify([t,e]))?.generation}function Pe(t,e,s){const n=ae.get(JSON.stringify([t,e]));return s!==void 0&&n?.generation===s&&n.snapshot.phase==="connected"}async function jn(t,e){const s=be(t,e),n=Ie(s);try{return await ye(s,"start")}finally{n()}}function Xt(t,e){const s=be(t,e);if(s.stop)return s.stop;const n=Ie(s),r=Promise.resolve().then(()=>L.StopConnection(t,e)).then(i=>(Ee(s,{phase:"disconnected",connection:i}),i),i=>{throw Ee(s,Zt(i,s.snapshot.connection)),i}).finally(()=>{s.stop=void 0,n()});return s.stop=r,Ee(s,{phase:"disconnected",message:"Disconnecting. Wait for the connection to stop before reconnecting.",connection:s.snapshot.connection}),r}function Nt(t,e,s=!1){const n=ae.get(JSON.stringify([t,e]));n&&(Ee(n,{phase:s?"not-found":"checking",connection:s?void 0:n.snapshot.connection}),!s&&n.users&&ye(n,"check").catch(()=>{}))}function nt(t){if(!t.applied)throw new Error("Connection profile was not applied");return t}const $n=t=>{const e=$.c(89),{pluginID:s,connectionID:n,enabled:r}=t,i=r===void 0?!0:r,o=G(s),c=k.useQueryClient(),{showSnackbar:u}=ue();let a;e[0]!==n||e[1]!==o?(a=[o,"connection","detail",n],e[0]=n,e[1]=o,e[2]=a):a=e[2];const d=a;let l;e[3]!==o||e[4]!==c?(l=async()=>{await Promise.all([c.invalidateQueries({queryKey:[o,"connection"]}),c.invalidateQueries({queryKey:me.all(o)}),c.invalidateQueries({queryKey:[o,"resource-v2","editor-schemas"]})])},e[3]=o,e[4]=c,e[5]=l):l=e[5];const f=l;let p;e[6]!==n||e[7]!==f||e[8]!==o?(p=async()=>{Nt(o,n),await f()},e[6]=n,e[7]=f,e[8]=o,e[9]=p):p=e[9];const v=p;let h;e[10]!==n||e[11]!==o?(h=()=>jn(o,n),e[10]=n,e[11]=o,e[12]=h):h=e[12];let g;e[13]!==u?(g=ne(u,"Failed to start connection"),e[13]=u,e[14]=g):g=e[14];let m;e[15]!==f||e[16]!==h||e[17]!==g?(m={mutationFn:h,onSuccess:f,onError:g},e[15]=f,e[16]=h,e[17]=g,e[18]=m):m=e[18];const{mutateAsync:y}=k.useMutation(m);let S;e[19]!==n||e[20]!==o?(S=()=>Xt(o,n),e[19]=n,e[20]=o,e[21]=S):S=e[21];let b;e[22]!==u?(b=ne(u,"Failed to stop connection"),e[22]=u,e[23]=b):b=e[23];let w;e[24]!==f||e[25]!==S||e[26]!==b?(w={mutationFn:S,onSuccess:f,onError:b},e[24]=f,e[25]=S,e[26]=b,e[27]=w):w=e[27];const{mutateAsync:x}=k.useMutation(w);let I;e[28]!==o?(I=ve=>L.SaveConnectionProfile(o,ve).then(nt),e[28]=o,e[29]=I):I=e[29];let _,D;e[30]!==u?(_=()=>{u("Connection profile saved","success")},D=ne(u,"Failed to save connection profile"),e[30]=u,e[31]=_,e[32]=D):(_=e[31],D=e[32]);let R;e[33]!==v||e[34]!==I||e[35]!==_||e[36]!==D?(R={mutationFn:I,onSuccess:_,onError:D,onSettled:v},e[33]=v,e[34]=I,e[35]=_,e[36]=D,e[37]=R):R=e[37];const{mutateAsync:F}=k.useMutation(R);let T;e[38]!==n||e[39]!==o?(T=()=>L.ImportConnectionProfile(o,n).then(nt),e[38]=n,e[39]=o,e[40]=T):T=e[40];let j,C;e[41]!==u?(j=()=>{u("Connection profile imported","success")},C=ne(u,"Failed to import connection profile"),e[41]=u,e[42]=j,e[43]=C):(j=e[42],C=e[43]);let N;e[44]!==v||e[45]!==T||e[46]!==j||e[47]!==C?(N={mutationFn:T,onSuccess:j,onError:C,onSettled:v},e[44]=v,e[45]=T,e[46]=j,e[47]=C,e[48]=N):N=e[48];const{mutateAsync:P}=k.useMutation(N);let M;e[49]!==n||e[50]!==o?(M=()=>L.ResetConnectionProfile(o,n).then(nt),e[49]=n,e[50]=o,e[51]=M):M=e[51];let A,q;e[52]!==u?(A=()=>{u("Connection profile reset","success")},q=ne(u,"Failed to reset connection profile"),e[52]=u,e[53]=A,e[54]=q):(A=e[53],q=e[54]);let W;e[55]!==v||e[56]!==M||e[57]!==A||e[58]!==q?(W={mutationFn:M,onSuccess:A,onError:q,onSettled:v},e[55]=v,e[56]=M,e[57]=A,e[58]=q,e[59]=W):W=e[59];const{mutateAsync:Y}=k.useMutation(W);let B;e[60]!==n||e[61]!==o?(B=()=>L.RemoveConnection(o,n),e[60]=n,e[61]=o,e[62]=B):B=e[62];let J;e[63]!==n||e[64]!==o||e[65]!==u?(J=()=>{Nt(o,n,!0),u("Connection disabled","success")},e[63]=n,e[64]=o,e[65]=u,e[66]=J):J=e[66];let Z;e[67]!==u?(Z=ne(u,"Failed to disable connection"),e[67]=u,e[68]=Z):Z=e[68];let H;e[69]!==f||e[70]!==B||e[71]!==J||e[72]!==Z?(H={mutationFn:B,onSuccess:J,onError:Z,onSettled:f},e[69]=f,e[70]=B,e[71]=J,e[72]=Z,e[73]=H):H=e[73];const{mutateAsync:te}=k.useMutation(H);let U;e[74]!==n||e[75]!==o?(U=()=>L.GetConnection(o,n),e[74]=n,e[75]=o,e[76]=U):U=e[76];const X=i&&!!n;let fe;e[77]!==d||e[78]!==U||e[79]!==X?(fe={queryKey:d,queryFn:U,enabled:X},e[77]=d,e[78]=U,e[79]=X,e[80]=fe):fe=e[80];const pe=k.useQuery(fe);let ge;return e[81]!==pe||e[82]!==P||e[83]!==te||e[84]!==Y||e[85]!==F||e[86]!==y||e[87]!==x?(ge={connection:pe,startConnection:y,stopConnection:x,saveConnectionProfile:F,importConnectionProfile:P,resetConnectionProfile:Y,removeConnection:te},e[81]=pe,e[82]=P,e[83]=te,e[84]=Y,e[85]=F,e[86]=y,e[87]=x,e[88]=ge):ge=e[88],ge},en=t=>[t,"connection","list"],Wn=t=>{const e=$.c(33),{plugin:s}=t,n=G(s),r=k.useQueryClient(),{showSnackbar:i}=ue();let o;e[0]!==n?(o=en(n),e[0]=n,e[1]=o):o=e[1];const c=o;let u;e[2]!==n?(u=_=>L.StartConnectionWatch(n,_),e[2]=n,e[3]=u):u=e[3];let a;e[4]!==i?(a=ne(i,"Failed to start connection watch"),e[4]=i,e[5]=a):a=e[5];let d;e[6]!==u||e[7]!==a?(d={mutationFn:u,onError:a},e[6]=u,e[7]=a,e[8]=d):d=e[8];const{mutateAsync:l}=k.useMutation(d);let f;e[9]!==n?(f=_=>L.StopConnectionWatch(n,_),e[9]=n,e[10]=f):f=e[10];let p;e[11]!==i?(p=ne(i,"Failed to stop connection watch"),e[11]=i,e[12]=p):p=e[12];let v;e[13]!==f||e[14]!==p?(v={mutationFn:f,onError:p},e[13]=f,e[14]=p,e[15]=v):v=e[15];const{mutateAsync:h}=k.useMutation(v);let g;e[16]!==r||e[17]!==c?(g=_=>{const D=_.data;console.log("got update to connections",D),r.setQueryData(c,D)},e[16]=r,e[17]=c,e[18]=g):g=e[18];const m=g;let y,S;e[19]!==m||e[20]!==n?(S=()=>{const _=Q.On(`${n}/connection/sync`,m);return()=>{_()}},y=[n,m],e[19]=m,e[20]=n,e[21]=y,e[22]=S):(y=e[21],S=e[22]),E.useEffect(S,y);let b;e[23]!==n||e[24]!==i?(b=async()=>{try{return await L.ListConnections(n)}catch(_){const D=_;console.log(D),ne(i,"Failed to load connections")(D)}return[]},e[23]=n,e[24]=i,e[25]=b):b=e[25];let w;e[26]!==c||e[27]!==b?(w={queryKey:c,queryFn:b,staleTime:3e4,placeholderData:k.keepPreviousData},e[26]=c,e[27]=b,e[28]=w):w=e[28];const x=k.useQuery(w);let I;return e[29]!==x||e[30]!==l||e[31]!==h?(I={connections:x,startWatch:l,stopWatch:h},e[29]=x,e[30]=l,e[31]=h,e[32]=I):I=e[32],I},Qn={phase:"checking"},Un={getSnapshot:()=>Qn,subscribe:()=>()=>{},connect:async()=>{},retry:async()=>{}};function oe(t){const e=$.c(8),{pluginID:s,connectionID:n,enabled:r}=t,i=r===void 0?!0:r,o=G(s);let c;e[0]!==n||e[1]!==i||e[2]!==o?(c=i?Be(o,n):Un,e[0]=n,e[1]=i,e[2]=o,e[3]=c):c=e[3];const u=c,a=E.useSyncExternalStore(u.subscribe,u.getSnapshot,u.getSnapshot);let d;return e[4]!==a||e[5]!==u.connect||e[6]!==u.retry?(d={...a,connect:u.connect,retry:u.retry},e[4]=a,e[5]=u.connect,e[6]=u.retry,e[7]=d):d=e[7],d}function ce(t,e){const s=k.useQueryClient();return E.useCallback(async(n,r,i,o=e)=>{const c=o,u=ct(t,c),a=()=>u!==void 0&&Pe(t,c,u);if(r.aborted||!a())throw new k.CancelledError({revert:!0});let d,l=!1,f=!1;const p=()=>{d&&"cancel"in d&&typeof d.cancel=="function"&&Promise.resolve(d.cancel()).catch(g=>{console.error("Failed to cancel resource query",g)}),h()},v=Be(t,c).subscribe(()=>{a()||(l=!0,s.cancelQueries({queryKey:n,exact:!0}).catch(g=>{console.error("Failed to cancel invalidated resource query",g)}))}),h=()=>{f||(f=!0,v())};r.addEventListener("abort",p,{once:!0});try{if(r.aborted||l||!a())throw new k.CancelledError({revert:!0});d=i();const g=await d;if(r.aborted||l||!a())throw new k.CancelledError({revert:!0});return g}finally{r.removeEventListener("abort",p),h()}},[t,e,s])}const Kn=t=>{const e=$.c(20),{pluginID:s,route:n,dimension:r,enabled:i}=t,o=i===void 0?!0:i,c=G(s),u=o&&!!r;let a;e[0]!==c||e[1]!==n.connection||e[2]!==u?(a={pluginID:c,connectionID:n.connection,enabled:u},e[0]=c,e[1]=n.connection,e[2]=u,e[3]=a):a=e[3];const d=oe(a),l=ce(c,n.connection),f=o&&!!c&&!!n.connection&&!!r&&d.phase==="connected";let p;e[4]!==r||e[5]!==c||e[6]!==n?(p=[c,"resource-v2","scope-values",n,r],e[4]=r,e[5]=c,e[6]=n,e[7]=p):p=e[7];let v;e[8]!==r||e[9]!==l||e[10]!==c||e[11]!==f||e[12]!==n?(v=f?y=>{const{signal:S,queryKey:b}=y;return l(b,S,()=>L.ScopeValues(c,n,r))}:k.skipToken,e[8]=r,e[9]=l,e[10]=c,e[11]=f,e[12]=n,e[13]=v):v=e[13];let h;e[14]!==f||e[15]!==p||e[16]!==v?(h={queryKey:p,queryFn:v,enabled:f},e[14]=f,e[15]=p,e[16]=v,e[17]=h):h=e[17];const g=k.useQuery(h);let m;return e[18]!==g?(m={values:g},e[18]=g,e[19]=m):m=e[19],m};function at(t){const e=Object.values(t.states),s=e.length;let n=0,r=0,i=0,o=0;for(const d of e)d===K.WatchState.WatchStateSynced&&n++,(d===K.WatchState.WatchStateError||d===K.WatchState.WatchStateFailed)&&r++,d===K.WatchState.WatchStateForbidden&&i++,d===K.WatchState.WatchStateSkipped&&o++;const c=s-o,u=e.filter(d=>d===K.WatchState.WatchStateSynced||d===K.WatchState.WatchStateError||d===K.WatchState.WatchStateStopped||d===K.WatchState.WatchStateFailed||d===K.WatchState.WatchStateForbidden).length,a=c>0?u/c:0;return{pluginID:t.pluginID,connectionID:t.connectionID,totalResources:s,watchedTotal:c,syncedCount:n,errorCount:r,forbiddenCount:i,skippedCount:o,doneCount:u,progress:a}}function ze(t){return t.watchedTotal>0&&t.doneCount>=t.watchedTotal}function tn(t){return t.some(e=>!ze(e))}function nn(t){const e=t.reduce((n,r)=>n+r.watchedTotal,0);return e===0?0:t.reduce((n,r)=>n+r.doneCount,0)/e}function Ct(t,e){return JSON.stringify([t,e.route.connection])}function lt(t,e,s){const n=Ct(e,s);t.has(n)||t.set(n,{states:{},pluginID:e,connectionID:s.route.connection});const r=t.get(n);return r.states[s.type]=s.state,r}function Gn(){const[t,e]=E.useState(new Map),s=E.useRef(t),n=E.useRef(new Map),r=E.useRef(new Map),[i,o]=E.useState(!0),[c,u]=E.useState(),a=E.useRef({generation:0}),[d,l]=E.useState({}),[f,p]=E.useState(new Map),v=E.useRef(new Map),[h,g]=E.useState(new Map);E.useEffect(()=>{const C=Q.On("plugin/crash_recovery_failed",P=>{const M=P.data,A=M?.pluginID;A&&g(q=>{const W=new Map(q);return W.set(A,M.error??"Crash recovery failed"),W})}),N=Q.On("plugin/recovered",P=>{const A=P.data?.pluginID;A&&g(q=>{if(!q.has(A))return q;const W=new Map(q);return W.delete(A),W})});return()=>{C(),N()}},[]);const m=E.useCallback(async()=>{const C=++a.current.generation;n.current.clear(),r.current.clear();let N;try{N=L.GetAllConnectionStates()}catch(P){N=Promise.reject(P)}await N.then(P=>{if(C!==a.current.generation||!P)return;const M={},A=new Map,q=new Map;for(const[W,Y]of Object.entries(P))if(Y){M[W]=Y.map(B=>B.connection);for(const B of Y){const J=JSON.stringify([W,B.connection.id]),Z=n.current.get(J)??{readiness:B.readiness,readinessError:B.readinessError};if(A.set(J,Z),Z.readiness!=="CONNECTED")continue;const H={pluginID:W,connectionID:B.connection.id,states:{}};if(B.resources)for(const[te,U]of Object.entries(B.resources))H.states[te]=U;Object.assign(H.states,r.current.get(J)?.states),v.current.set(J,H),q.set(J,at(H))}}l(M);for(const[W,Y]of n.current)A.set(W,Y);s.current=A,e(A),p(q)}).catch(P=>{C===a.current.generation&&u(le(P))}).finally(()=>{C===a.current.generation&&o(!1)})},[]),y=E.useCallback(async()=>{o(!0),u(void 0),await m()},[m]);E.useEffect(()=>{const C=a.current;return m().catch(N=>{console.error("Connection status refresh failed:",N)}),()=>{++C.generation}},[m]),E.useEffect(()=>{let C=!0,N=0;const P=Q.On("connection/status",M=>{const A=M.data,q=JSON.stringify([A.pluginID,A.connectionID]),W=A.status==="DISCONNECTED"||A.status==="PENDING"||A.status==="CONNECTED"||A.status==="FAILED"?A.status:"UNKNOWN",Y={readiness:W};n.current.set(q,Y);const B=new Map(s.current);B.set(q,Y),s.current=B,e(B),W!=="CONNECTED"&&(p(H=>{const te=new Map(H);return te.delete(q),te}),v.current.delete(q),r.current.delete(q));const J=++N,Z=a.current.generation;L.ListAllConnections().then(H=>{if(!C||J!==N||Z!==a.current.generation||!H)return;const te={};for(const[U,X]of Object.entries(H))X!=null&&(te[U]=X);l(te)}).catch(H=>{C&&J===N&&Z===a.current.generation&&console.error("Connection metadata refresh failed:",H)})});return()=>{C=!1,P()}},[]);const S=E.useCallback(C=>{const N=C.data,P=Ct(N.pluginID,N);if(s.current.get(P)?.readiness!=="CONNECTED")return;const M=lt(v.current,N.pluginID,N);lt(r.current,N.pluginID,N);const A=at(M);p(q=>{const W=new Map(q);return W.set(P,A),W})},[]);E.useEffect(()=>Q.On("watch/STATE",S),[S]);const b=E.useCallback(async(C,N)=>{await Xt(C,N)},[]),w=E.useCallback(async(C,N)=>{if(s.current.get(JSON.stringify([C,N]))?.readiness!=="CONNECTED")return;const P={connection:N},M=await L.Catalog(C,{route:P}),A=await Promise.all(M.types.filter(q=>q.capabilities.some(W=>W.operation==="update")).map(q=>L.ResolveTarget(C,{route:P,type:q.type})));await L.StartConnectionWatch(C,A.map(q=>q.target))},[]),x=E.useCallback(async C=>{const N=h.get(C);g(P=>{if(!P.has(C))return P;const M=new Map(P);return M.delete(C),M});try{await L.RetryFailedPlugin(C)}catch(P){throw g(M=>{const A=new Map(M);return A.set(C,N??"Reload failed"),A}),P}},[h]),I=[],_=new Set(t.keys());for(const[C,N]of Object.entries(d))for(const P of N)_.add(JSON.stringify([C,P.id]));for(const C of _){const[N,P]=JSON.parse(C),A=(d[N]??[]).find(Z=>Z.id===P),q=t.get(C)??{readiness:"UNKNOWN"},W=q.readiness==="CONNECTED"?f.get(C):void 0,Y=W!=null&&!ze(W),B=W!=null&&W.errorCount>0,J=h.get(N);I.push({pluginID:N,connectionID:P,name:A?.name??P,avatar:A?.avatar??"",readiness:q.readiness,readinessError:q.readinessError,sync:W,isSyncing:Y,hasErrors:B||J!=null||q.readiness==="FAILED"||q.readinessError!=null,pluginFailed:J!=null,pluginError:J})}const D=new Map;for(const C of I){const N=D.get(C.pluginID)??[];N.push(C),D.set(C.pluginID,N)}const R=I.flatMap(C=>C.sync?[C.sync]:[]),F=I.filter(C=>C.isSyncing),T=I.filter(C=>C.hasErrors),j=I.filter(C=>C.pluginFailed);return{isLoading:i,error:c,refresh:y,entries:I,grouped:D,connectedCount:I.filter(C=>C.readiness==="CONNECTED").length,syncingCount:F.length,errorCount:T.length,failedCount:j.length,hasSyncing:tn(R),aggregateProgress:nn(R),disconnect:b,retryWatch:w,retryPlugin:x}}function Bn(t){const e=$.c(9),{pluginID:s}=t,n=G(s);let r,i;e[0]!==n?(r=[n,"connection","profiles"],i=d=>{const{signal:l}=d;l.throwIfAborted();const f=L.ListConnectionProfiles(n),p=()=>{f.cancel()};return l.addEventListener("abort",p,{once:!0}),f.finally(()=>l.removeEventListener("abort",p))},e[0]=n,e[1]=r,e[2]=i):(r=e[1],i=e[2]);const o=!!n;let c;e[3]!==r||e[4]!==i||e[5]!==o?(c={queryKey:r,queryFn:i,enabled:o,retry:!1},e[3]=r,e[4]=i,e[5]=o,e[6]=c):c=e[6];const u=k.useQuery(c);let a;return e[7]!==u?(a={profiles:u},e[7]=u,e[8]=a):a=e[8],a}const zn={display:"flex",alignItems:"center",justifyContent:"center",minHeight:240,height:"100%",padding:24,boxSizing:"border-box",color:"var(--ov-color-fg-default)"},Jn={width:"100%",maxWidth:560,minWidth:0,display:"flex",flexDirection:"column",gap:16},Hn={display:"flex",alignItems:"center",gap:12},Vn={margin:0,fontSize:"1.125rem",fontWeight:600},Yn={display:"flex",flexWrap:"wrap",gap:8},st={margin:0,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},Zn={width:20,height:20,flexShrink:0},Xn={checking:{title:"Checking connection",description:"Checking whether this connection is ready before loading resources."},disconnected:{title:"Connection is disconnected",description:"Connect to load resources and continue at this location."},connecting:{title:"Connecting",description:"Establishing the connection. Resources will load here when it is ready."},unauthorized:{title:"Authentication required",description:"The connection could not authenticate. Check its credentials, then connect again."},forbidden:{title:"Connection access denied",description:"The connection is not permitted to access this target. Check its credentials and permissions."},"not-found":{title:"Connection not found",description:"This saved connection is no longer available. Return to connections or check its configuration."},error:{title:"Connection could not be verified",description:"Check the connection settings and network, then connect again or retry the check."}};function sn(t){const e=$.c(44),{state:s,connectionName:n,connectionDetails:r,onEditConnection:i,onBack:o,backLabel:c}=t,u=c===void 0?"Back to connections":c,a=E.useId();if(s.phase==="connected")return null;const d=s.phase==="checking"||s.phase==="connecting",l=Xn[s.phase],f=n??s.connection?.name;let p;e[0]!==r||e[1]!==f?(p=r??(f&&O.jsx(z.Text,{size:"sm",tone:"muted",style:st,children:f})),e[0]=r,e[1]=f,e[2]=p):p=e[2];let v;e[3]!==d?(v=d&&O.jsx(z.Spinner,{style:Zn,"aria-hidden":"true"}),e[3]=d,e[4]=v):v=e[4];let h;e[5]!==a||e[6]!==l.title?(h=O.jsx("h2",{id:a,style:Vn,children:l.title}),e[5]=a,e[6]=l.title,e[7]=h):h=e[7];let g;e[8]!==v||e[9]!==h?(g=O.jsxs("div",{style:Hn,role:"status","aria-live":"polite",children:[v,h]}),e[8]=v,e[9]=h,e[10]=g):g=e[10];let m;e[11]!==l.description?(m=O.jsx(z.Text,{as:"p",size:"sm",tone:"muted",style:st,children:l.description}),e[11]=l.description,e[12]=m):m=e[12];let y;e[13]!==d||e[14]!==s.message?(y=s.message&&O.jsx(z.Text,{as:"p",size:"sm",style:st,role:d?"status":"alert",children:s.message}),e[13]=d,e[14]=s.message,e[15]=y):y=e[15];let S;e[16]!==d||e[17]!==s?(S=s.phase!=="not-found"&&O.jsx(z.Button,{size:"sm",variant:"solid",color:"brand",disabled:d,onClick:()=>{s.connect()},children:"Connect and continue"}),e[16]=d,e[17]=s,e[18]=S):S=e[18];const b=s.phase==="checking";let w;e[19]!==s?(w=()=>{s.retry()},e[19]=s,e[20]=w):w=e[20];let x;e[21]!==w||e[22]!==b?(x=O.jsx(z.Button,{size:"sm",variant:"outline",color:"neutral",disabled:b,onClick:w,children:"Retry check"}),e[21]=w,e[22]=b,e[23]=x):x=e[23];let I;e[24]!==i?(I=i&&O.jsx(z.Button,{size:"sm",variant:"outline",color:"neutral",onClick:i,children:"Edit connection"}),e[24]=i,e[25]=I):I=e[25];let _;e[26]!==u||e[27]!==o?(_=o&&O.jsx(z.Button,{size:"sm",variant:"outline",color:"neutral",onClick:o,children:u}),e[26]=u,e[27]=o,e[28]=_):_=e[28];let D;e[29]!==x||e[30]!==I||e[31]!==_||e[32]!==S?(D=O.jsxs("div",{style:Yn,children:[S,x,I,_]}),e[29]=x,e[30]=I,e[31]=_,e[32]=S,e[33]=D):D=e[33];let R;e[34]!==D||e[35]!==p||e[36]!==g||e[37]!==m||e[38]!==y?(R=O.jsxs("div",{style:Jn,children:[p,g,m,y,D]}),e[34]=D,e[35]=p,e[36]=g,e[37]=m,e[38]=y,e[39]=R):R=e[39];let F;return e[40]!==d||e[41]!==a||e[42]!==R?(F=O.jsx("section",{style:zn,"aria-labelledby":a,"aria-busy":d,children:R}),e[40]=d,e[41]=a,e[42]=R,e[43]=F):F=e[43],F}function es(t){const e=$.c(9),{pluginID:s,connectionID:n,children:r,fallback:i}=t;let o;e[0]!==n||e[1]!==s?(o={pluginID:s,connectionID:n},e[0]=n,e[1]=s,e[2]=o):o=e[2];const c=oe(o);if(c.phase!=="connected"){let a;return e[3]!==n||e[4]!==i||e[5]!==c?(a=i?i(c):O.jsx(sn,{state:c,connectionName:c.connection?.name||n}),e[3]=n,e[4]=i,e[5]=c,e[6]=a):a=e[6],a}let u;return e[7]!==r?(u=O.jsx(O.Fragment,{children:r}),e[7]=r,e[8]=u):u=e[8],u}function ts(t){const e=$.c(7),s=G(t.pluginID);let n;e[0]!==s||e[1]!==t.connectionID?(n=JSON.stringify([s,t.connectionID]),e[0]=s,e[1]=t.connectionID,e[2]=n):n=e[2];let r;return e[3]!==s||e[4]!==t||e[5]!==n?(r=E.createElement(es,{...t,pluginID:s,key:n}),e[3]=s,e[4]=t,e[5]=n,e[6]=r):r=e[6],r}const qe={supported:void 0,transportAvailable:!1,isLoading:!1},De=new Map;let rt,Pt=0;function he(t,e){const s={...t.state,...e};Object.keys(s).every(n=>Object.is(s[n],t.state[n]))||(t.state=s,t.listeners.forEach(n=>n()))}function Oe(t,e){let s=De.get(t);s||(s={retired:new Set,connections:new Map},De.set(t,s));let n=s.connections.get(e);return n||(n={pluginID:t,connectionID:e,state:qe,listeners:new Set,epoch:0,eventVersion:0},s.connections.set(e,n)),n}function ns(t){return t&&/^[0-9]+$/.test(t)?BigInt(t):void 0}function rn(t,e){if(Object.is(t,e))return!0;if(t===null||e===null||typeof t!="object"||typeof e!="object"||Array.isArray(t)!==Array.isArray(e))return!1;const s=t,n=e,r=Object.keys(s);return r.length!==Object.keys(n).length?!1:r.every(i=>Object.prototype.hasOwnProperty.call(n,i)&&rn(s[i],n[i]))}function ss(t,e){if(!t)return e;const s={...e.entries};let n=Object.keys(t.entries).length===Object.keys(s).length;for(const r of Object.keys(s))rn(t.entries[r],s[r])?s[r]=t.entries[r]:n=!1;return{...e,entries:n?t.entries:s}}function on(t,e){const s=De.get(t.pluginID);if(!s||s.retired.has(t.registrationID))return;if(s.registrationID!==t.registrationID){if(s.registrationID&&!e)return;if(s.registrationID){s.retired.add(s.registrationID);for(const i of s.connections.values())i.epoch++,i.pending=void 0,i.revision=void 0,he(i,{...qe,snapshot:void 0,error:void 0})}s.registrationID=t.registrationID}const n=t.snapshot?.connectionID??t.connectionID,r=n===void 0?[...s.connections.values()]:[s.connections.get(n)].filter(i=>!!i);for(const i of r){e&&i.eventVersion++;const o=i.state.transportAvailable,c=ns(t.snapshot?.revision??t.revision);if(c!==void 0&&(i.revision===void 0||c>i.revision)&&(i.revision=c,he(i,{snapshot:t.removed?void 0:t.snapshot?ss(i.state.snapshot,t.snapshot):i.state.snapshot})),!t.transportAvailable){i.epoch++,i.pending=void 0,he(i,{supported:t.supported,transportAvailable:!1,isLoading:!1});continue}if(n===void 0){he(i,{supported:t.supported,transportAvailable:!t.supported}),t.supported&&i.listeners.size?Qe(i,!1):he(i,{isLoading:!1,error:void 0});continue}he(i,{supported:t.supported,transportAvailable:!e||o,isLoading:!1,error:void 0}),e&&!o&&i.listeners.size&&Qe(i,!1)}}function Qe(t,e){if(!t.listeners.size||t.state.supported===!1)return Promise.resolve();if(!e&&t.pending)return t.pending;const s=t.epoch,n=t.eventVersion;he(t,{isLoading:!0,error:void 0});const r=e?L.RefreshConnectionMetadata:L.GetConnectionMetadata,i=Promise.resolve().then(()=>{if(!(t.epoch!==s||!t.listeners.size||t.state.supported===!1))return r(t.pluginID,t.connectionID)}).then(o=>{if(!o||t.epoch!==s||!t.listeners.size||o.pluginID!==t.pluginID)return;const c=o.snapshot?.connectionID??o.connectionID;c!==void 0&&c!==t.connectionID||on({...o,connectionID:t.connectionID},!1)}).catch(o=>{t.epoch===s&&t.eventVersion===n&&t.listeners.size&&he(t,{error:o,isLoading:!1})}).finally(()=>{t.pending===i&&(t.pending=void 0),t.epoch===s&&t.listeners.size&&he(t,{isLoading:!1})});return e||(t.pending=i),i}function It(t,e){return t.listeners.add(e),Pt++===0&&(rt=Q.On("resource/connection/metadata",s=>on(s.data,!0))),t.listeners.size===1&&Qe(t,!1),()=>{t.listeners.delete(e),t.listeners.size||(t.epoch++,t.pending=void 0,De.get(t.pluginID)?.connections.delete(t.connectionID)),--Pt===0&&(rt?.(),rt=void 0,De.clear())}}function rs(t,e){const s=$.c(15),n=G(t),r=n!==void 0&&e!==void 0;let i;s[0]!==e||s[1]!==r||s[2]!==n?(i=p=>r?It(Oe(n,e),p):is,s[0]=e,s[1]=r,s[2]=n,s[3]=i):i=s[3];const o=i;let c;s[4]!==e||s[5]!==r||s[6]!==n?(c=()=>r?Oe(n,e).state:qe,s[4]=e,s[5]=r,s[6]=n,s[7]=c):c=s[7];const u=c,a=E.useSyncExternalStore(o,u,os);let d;s[8]!==e||s[9]!==r||s[10]!==n?(d=()=>{const p=r?De.get(n)?.connections.get(e):void 0;return p?Qe(p,!0):Promise.resolve()},s[8]=e,s[9]=r,s[10]=n,s[11]=d):d=s[11];const l=d;let f;return s[12]!==l||s[13]!==a?(f={...a,refresh:l},s[12]=l,s[13]=a,s[14]=f):f=s[14],f}function os(){return qe}function is(){}function cs(t,e){const s=JSON.parse(e);let n=new Map;return{subscribe(r){const i=s.map(o=>It(Oe(t,o),r));return()=>i.forEach(o=>o())},read(){const r=s.map(i=>Oe(t,i).state);return(n.size!==s.length||s.some((i,o)=>n.get(i)!==r[o]))&&(n=new Map(s.map((i,o)=>[i,r[o]]))),n}}}function as(t,e){const s=$.c(5),n=G(t);let r;s[0]!==e?(r=JSON.stringify([...new Set(e)]),s[0]=e,s[1]=r):r=s[1];const i=r;let o;s[2]!==i||s[3]!==n?(o=cs(n,i),s[2]=i,s[3]=n,s[4]=o):o=s[4];const c=o;return E.useSyncExternalStore(c.subscribe,c.read,c.read)}function ls(t,e,s){let n,r;return{read(){const i=e===void 0?qe:Oe(t,e).state;return n!==i&&(r=s(i),n=i),r}}}function us(t,e,s){const n=$.c(7),r=G(t);let i;n[0]!==e||n[1]!==r?(i=a=>e===void 0?ds:It(Oe(r,e),a),n[0]=e,n[1]=r,n[2]=i):i=n[2];const o=i;let c;n[3]!==e||n[4]!==r||n[5]!==s?(c=ls(r,e,s),n[3]=e,n[4]=r,n[5]=s,n[6]=c):c=n[6];const u=c;return E.useSyncExternalStore(o,u.read,u.read)}function ds(){}function fs(t,e,s){if(!e||!t?.active)return;const n=t.entries[s];return n?.state==="current"&&typeof n.value=="string"?n.value:void 0}function ps(t,e){return e===null?t===null:Array.isArray(e)?Array.isArray(t):typeof e=="object"?typeof t=="object"&&t!==null&&!Array.isArray(t):typeof t==typeof e}function gs(t,e,s){const n=$.c(29),r=G(t),i=k.useQueryClient();let o;n[0]!==e||n[1]!==r?(o=[r,"data",e],n[0]=e,n[1]=r,n[2]=o):o=n[2];const c=o;let u;n[3]!==s||n[4]!==e||n[5]!==r?(u=async()=>{const b=await L.Get(r,e);return b==null?s:ps(b,s)?b:(console.warn(`[usePluginData] stored value for "${e}" has unexpected type (expected ${Array.isArray(s)?"array":typeof s}, got ${Array.isArray(b)?"array":typeof b}). Using default.`),s)},n[3]=s,n[4]=e,n[5]=r,n[6]=u):u=n[6];let a;n[7]!==c||n[8]!==u?(a={queryKey:c,queryFn:u},n[7]=c,n[8]=u,n[9]=a):a=n[9];const d=k.useQuery(a);let l;n[10]!==e||n[11]!==r?(l=async b=>{await L.Set(r,e,b)},n[10]=e,n[11]=r,n[12]=l):l=n[12];let f,p,v;n[13]!==i||n[14]!==c?(f=async b=>{await i.cancelQueries({queryKey:c});const w=i.getQueryData(c);return i.setQueryData(c,b),{previous:w}},p=(b,w,x)=>{x?.previous!==void 0&&i.setQueryData(c,x.previous)},v=()=>{i.invalidateQueries({queryKey:c})},n[13]=i,n[14]=c,n[15]=f,n[16]=p,n[17]=v):(f=n[15],p=n[16],v=n[17]);let h;n[18]!==l||n[19]!==f||n[20]!==p||n[21]!==v?(h={mutationFn:l,onMutate:f,onError:p,onSettled:v},n[18]=l,n[19]=f,n[20]=p,n[21]=v,n[22]=h):h=n[22];const g=k.useMutation(h),m=d.data??s;let y;n[23]!==g?(y=async b=>{await g.mutateAsync(b)},n[23]=g,n[24]=y):y=n[24];let S;return n[25]!==d.isLoading||n[26]!==m||n[27]!==y?(S={data:m,update:y,isLoading:d.isLoading},n[25]=d.isLoading,n[26]=m,n[27]=y,n[28]=S):S=n[28],S}const hs=()=>{const t=E.useContext(Ut);if(!t)throw new Error("useRightDrawer must be used within a RightDrawerProvider");return t},_t=()=>{const t=E.useContext(Qt);if(t===void 0)throw new Error("useBottomDrawer must be used within a BottomDrawerProvider");return t},ys=({pluginID:t})=>{const e=G(t),{showSnackbar:s}=ue(),{createTab:n,updateTab:r}=_t();return{createSession:k.useMutation({mutationFn:async({connectionID:o,icon:c,label:u,opts:a,recovery:d})=>{const l=`pending-${crypto.randomUUID()}`;n({id:l,title:u??"Connecting...",variant:"terminal",icon:c??"LuSquareTerminal",properties:{status:"connecting",pluginID:e,connectionID:o,opts:{...a},recovery:d}});const f=ht.SessionOptions.createFrom({command:["/bin/bash"],tty:!0,...a});try{const p=await L.CreateSession(e,o,f);if(!p)throw new Error("Failed to create session: null response");return r({id:l},{id:p.id,title:u??`Session ${p.id.substring(0,8)}`,properties:{status:"connected",pluginID:e,connectionID:o,opts:{...a},recovery:d}}),p}catch(p){const v=le(p);return r({id:l},{properties:{status:"error",error:v.detail,pluginID:e,connectionID:o,opts:{...a},recovery:d,errorInfo:{title:v.title||"Session error",suggestion:v.detail,raw:v.detail}}}),_e(s,p,"Failed to start session"),null}}}).mutateAsync}},ms=t=>{const e=$.c(15),{pluginID:s}=t,n=G(s),{showSnackbar:r}=ue(),{createTab:i}=_t();let o;e[0]!==i||e[1]!==n?(o=async v=>{const{connectionID:h,resourceKey:g,resourceID:m,resourceData:y,reference:S,route:b,icon:w,label:x,target:I,follow:_,tailLines:D,params:R}=v,j={resource_key:g,resource_id:m,resource_data:y,reference:S,route:b,options:{target:I??"",follow:_===void 0?!0:_,include_previous:!1,include_timestamps:!0,tail_lines:D===void 0?1e3:D,since_seconds:0,limit_bytes:0,include_source_events:!0,params:R??{}}},C=await L.CreateSession$1(n,h,j);if(!C)throw new Error("Failed to create log session: null response");return i({id:C.id,title:x??`Logs ${C.id.substring(0,8)}`,variant:"logs",icon:w??"LuLogs"}),C},e[0]=i,e[1]=n,e[2]=o):o=e[2];let c;e[3]!==r?(c=ne(r,"Failed to start log session"),e[3]=r,e[4]=c):c=e[4];let u;e[5]!==o||e[6]!==c?(u={mutationFn:o,onError:c},e[5]=o,e[6]=c,e[7]=u):u=e[7];const a=k.useMutation(u);let d;e[8]!==r?(d=ne(r,"Failed to close log session"),e[8]=r,e[9]=d):d=e[9];let l;e[10]!==d?(l={mutationFn:vs,onError:d},e[10]=d,e[11]=l):l=e[11];const f=k.useMutation(l);let p;return e[12]!==f.mutateAsync||e[13]!==a.mutateAsync?(p={createLogSession:a.mutateAsync,closeLogSession:f.mutateAsync},e[12]=f.mutateAsync,e[13]=a.mutateAsync,e[14]=p):p=e[14],p};async function vs(t){await L.CloseSession(t)}const Ss=()=>{const t=$.c(1);let e;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e={queryKey:["metric","providers"],queryFn:L.GetProviders,staleTime:3e4},t[0]=e):e=t[0],k.useQuery(e)},cn=t=>{const e=$.c(7);let s,n;e[0]!==t?(s=["metric","providers",t],n=()=>L.GetProvidersForResource(t),e[0]=t,e[1]=s,e[2]=n):(s=e[1],n=e[2]);const r=!!t;let i;return e[3]!==s||e[4]!==n||e[5]!==r?(i={queryKey:s,queryFn:n,enabled:r,staleTime:3e4},e[3]=s,e[4]=n,e[5]=r,e[6]=i):i=e[6],k.useQuery(i)},bs=t=>{const e=$.c(45),{connectionID:s,resourceKey:n,resourceID:r,resourceNamespace:i,resourceData:o,reference:c,route:u,params:a,metricIDs:d,shape:l,timeRange:f,refreshInterval:p,enabled:v}=t,h=i===void 0?"":i;let g;e[0]!==d?(g=d===void 0?[]:d,e[0]=d,e[1]=g):g=e[1];const m=g,y=l===void 0?0:l,S=p===void 0?0:p,b=v===void 0?!0:v,{data:w,isLoading:x}=cn(n);let I;e[2]!==w?(I=w??[],e[2]=w,e[3]=I):I=e[3];const _=I,D=f?Math.max(Math.floor((f.end.getTime()-f.start.getTime())/250),15e3)*1e6:0;let R;e[4]!==f?.start?(R=f?.start?.getTime(),e[4]=f?.start,e[5]=R):R=e[5];let F;e[6]!==f?.end?(F=f?.end?.getTime(),e[6]=f?.end,e[7]=F):F=e[7];let T;e[8]!==s||e[9]!==m||e[10]!==a||e[11]!==c||e[12]!==r||e[13]!==n||e[14]!==h||e[15]!==u||e[16]!==y||e[17]!==R||e[18]!==F?(T=["metric","query",s,n,r,h,c,u,a,m,y,R,F],e[8]=s,e[9]=m,e[10]=a,e[11]=c,e[12]=r,e[13]=n,e[14]=h,e[15]=u,e[16]=y,e[17]=R,e[18]=F,e[19]=T):T=e[19];let j;e[20]!==s||e[21]!==m||e[22]!==a||e[23]!==c||e[24]!==o||e[25]!==r||e[26]!==n||e[27]!==h||e[28]!==u||e[29]!==y||e[30]!==D||e[31]!==f?.end||e[32]!==f?.start?(j=async()=>{const B=await L.QueryAll(s,{resource_key:n,resource_id:r,resource_namespace:h,resource_data:o,reference:c,route:u,params:a,metric_ids:m,shape:y,start_time:(f?.start??new Date(0)).toISOString(),end_time:(f?.end??new Date(0)).toISOString(),step:D}),J={};for(const[Z,H]of Object.entries(B))H!=null&&(J[Z]=H);return J},e[20]=s,e[21]=m,e[22]=a,e[23]=c,e[24]=o,e[25]=r,e[26]=n,e[27]=h,e[28]=u,e[29]=y,e[30]=D,e[31]=f?.end,e[32]=f?.start,e[33]=j):j=e[33];const C=b&&!!s&&!!n&&_.length>0,N=S>0?S:void 0;let P;e[34]!==j||e[35]!==C||e[36]!==N||e[37]!==T?(P={queryKey:T,queryFn:j,enabled:C,refetchInterval:N,staleTime:5e3,placeholderData:k.keepPreviousData},e[34]=j,e[35]=C,e[36]=N,e[37]=T,e[38]=P):P=e[38];const M=k.useQuery(P),A=M.data??void 0,q=x||M.isLoading,W=M.error;let Y;return e[39]!==M.refetch||e[40]!==_||e[41]!==A||e[42]!==q||e[43]!==W?(Y={data:A,providers:_,isLoading:q,error:W,refetch:M.refetch},e[39]=M.refetch,e[40]=_,e[41]=A,e[42]=q,e[43]=W,e[44]=Y):Y=e[44],Y},Es=t=>{const{pluginID:e,connectionID:s,resourceKey:n,resourceID:r,resourceNamespace:i="",resourceData:o,reference:c,route:u,params:a,metricIDs:d=[],interval:l=1e4,enabled:f=!0}=t,p=G(e),[v,h]=E.useState(null),[g,m]=E.useState(null),[y,S]=E.useState(!1),[b,w]=E.useState(null),x=E.useRef(null),I=E.useCallback(async()=>{if(!(!f||!p||!s||!n))try{const D=await L.Subscribe(p,s,{resource_key:n,resource_id:r,resource_namespace:i,resource_data:o,reference:c,route:u,params:a,metric_ids:d,interval:l*1e6});m(D),S(!0),w(null);const R=Q.On(`core/metrics/data/${D}`,T=>{const j=T.data;try{const C=JSON.parse(j);C.results&&(h(C.results),S(!0),w(null))}catch(C){console.error("Failed to parse metric stream data:",C)}}),F=Q.On(`core/metrics/error/${D}`,T=>{const j=T.data;try{const C=JSON.parse(j);let N="Unknown error";if(C&&typeof C=="object"&&("error"in C&&typeof C.error=="string"&&C.error&&(N=C.error),"operation_error"in C)){const P=C.operation_error;P&&typeof P=="object"&&"message"in P&&typeof P.message=="string"&&(N=P.message)}w(N),S(!1)}catch{w("Failed to parse metric stream error")}});x.current=()=>{R(),F()}}catch(D){w(D instanceof Error?D.message:String(D))}},[p,s,n,r,i,o,c,u,a,d,l,f]),_=E.useCallback(async()=>{if(g)try{await L.Unsubscribe(g)}catch(D){console.error("Failed to unsubscribe:",D)}x.current&&(x.current(),x.current=null),m(null),S(!1)},[g]);return E.useEffect(()=>()=>{g&&L.Unsubscribe(g).catch(console.error),x.current&&x.current()},[g]),{data:v,subscriptionID:g,isStreaming:y,error:b,start:I,stop:_}},Ce=["networker","portforward","all-sessions"];function ws(){const t=$.c(17),{showSnackbar:e}=ue(),s=k.useQueryClient();let n;t[0]===Symbol.for("react.memo_cache_sentinel")?(n={queryKey:[...Ce],queryFn:_s,retry:!1},t[0]=n):n=t[0];const r=k.useQuery(n);let i,o;t[1]!==s?(i=()=>{const v=Q.On("core/networker/portforward/created",()=>{s.invalidateQueries({queryKey:[...Ce]})}),h=Q.On("core/networker/portforward/closed",()=>{s.invalidateQueries({queryKey:[...Ce]})});return()=>{v(),h()}},o=[s],t[1]=s,t[2]=i,t[3]=o):(i=t[2],o=t[3]),E.useEffect(i,o);let c;t[4]!==r.data?(c=r.data??[],t[4]=r.data,t[5]=c):c=t[5];const u=c;let a;t[6]!==e?(a=ne(e,"Failed to close port forwarding session"),t[6]=e,t[7]=a):a=t[7];let d;t[8]!==s?(d=async()=>{await s.invalidateQueries({queryKey:[...Ce]})},t[8]=s,t[9]=d):d=t[9];let l;t[10]!==a||t[11]!==d?(l={mutationFn:Is,onError:a,onSuccess:d},t[10]=a,t[11]=d,t[12]=l):l=t[12];const f=k.useMutation(l);let p;return t[13]!==u||t[14]!==f.mutateAsync||t[15]!==r?(p={sessions:r,activeSessions:u,closeSession:f.mutateAsync,openInBrowser:Cs},t[13]=u,t[14]=f.mutateAsync,t[15]=r,t[16]=p):p=t[16],p}function Cs(t){return Q.OpenURL(`http://localhost:${t}`)}async function Is(t){return L.ClosePortForwardSession(t)}async function _s(){return L.ListAllPortForwardSessions().catch(xs)}function xs(t){if(le(t).detail.includes("not found"))return[];throw t}function Rs(t){const e=$.c(36),{pluginID:s,connectionID:n,resourceID:r}=t,i=G(s);let o;e[0]!==n||e[1]!==i||e[2]!==r?(o=["networker","portforward","sessions",i,n,r],e[0]=n,e[1]=i,e[2]=r,e[3]=o):o=e[3];const c=o,{showSnackbar:u}=ue(),a=k.useQueryClient();let d;e[4]!==n||e[5]!==i||e[6]!==r||e[7]!==u?(d=async()=>L.FindPortForwardSessions(i,n,ht.FindPortForwardSessionRequest.createFrom({resource_id:r,connection_id:n})).catch(I=>{const _=le(I);return _.detail.includes("not found")?[]:(u({message:"Failed to fetch port forward sessions",status:"error",details:_.detail}),[])}),e[4]=n,e[5]=i,e[6]=r,e[7]=u,e[8]=d):d=e[8];let l;e[9]!==c||e[10]!==d?(l={queryKey:c,queryFn:d,retry:!1},e[9]=c,e[10]=d,e[11]=l):l=e[11];const f=k.useQuery(l);let p;e[12]!==n||e[13]!==i?(p=async I=>{const{opts:_}=I,D={local_port:_.localPort||0,remote_port:_.remotePort,protocol:_.protocol||"TCP",connection_type:"RESOURCE",connection:{resource_data:_.resource,reference:_.reference,route:_.route,connection_id:n,plugin_id:i,resource_id:_.resourceId,resource_key:_.resourceKey},labels:_.labels??{},params:_.parameters??{}},R=await L.StartResourcePortForwardingSession(i,n,D);if(!R)throw new Error("Failed to start port forwarding: null response");return _.openInBrowser&&Q.OpenURL(`http://localhost:${R.local_port}`),R},e[12]=n,e[13]=i,e[14]=p):p=e[14];let v;e[15]!==u?(v=ne(u,"Failed to start port forwarding session"),e[15]=u,e[16]=v):v=e[16];let h;e[17]!==a||e[18]!==c?(h=async()=>{await Promise.all([a.invalidateQueries({queryKey:c}),a.invalidateQueries({queryKey:[...Ce]})])},e[17]=a,e[18]=c,e[19]=h):h=e[19];let g;e[20]!==p||e[21]!==v||e[22]!==h?(g={mutationFn:p,onError:v,onSuccess:h},e[20]=p,e[21]=v,e[22]=h,e[23]=g):g=e[23];const m=k.useMutation(g);let y;e[24]!==u?(y=ne(u,"Failed to close port forwarding session"),e[24]=u,e[25]=y):y=e[25];let S;e[26]!==a||e[27]!==c?(S=async()=>{await Promise.all([a.invalidateQueries({queryKey:c}),a.invalidateQueries({queryKey:[...Ce]})])},e[26]=a,e[27]=c,e[28]=S):S=e[28];let b;e[29]!==y||e[30]!==S?(b={mutationFn:Ds,onError:y,onSuccess:S},e[29]=y,e[30]=S,e[31]=b):b=e[31];const w=k.useMutation(b);let x;return e[32]!==w.mutateAsync||e[33]!==m.mutateAsync||e[34]!==f?(x={sessions:f,forward:m.mutateAsync,close:w.mutateAsync},e[32]=w.mutateAsync,e[33]=m.mutateAsync,e[34]=f,e[35]=x):x=e[35],x}async function Ds(t){const{opts:e}=t;return L.ClosePortForwardSession(e.sessionID)}const Os=()=>{const t=E.useContext(Kt);if(!t)throw new Error("useConfirmationModal must be used within a ConfirmationModalProvider");return t},ks=t=>{const e=$.c(31),{pluginID:s,request:n,enabled:r}=t,i=r===void 0?!0:r,o=G(s),c=n?.request.route.connection??"",u=i&&!!n;let a;e[0]!==c||e[1]!==o||e[2]!==u?(a={pluginID:o,connectionID:c,enabled:u},e[0]=c,e[1]=o,e[2]=u,e[3]=a):a=e[3];const d=oe(a),l=ce(o,c),f=k.useQueryClient(),{showSnackbar:p}=ue();let v;e[4]!==o||e[5]!==n?(v=me.resource(o,n),e[4]=o,e[5]=n,e[6]=v):v=e[6];const h=v,g=i&&!!n&&d.phase==="connected";let m;e[7]!==o||e[8]!==n?(m=async R=>{if(!n)throw new Error("Resource target is not resolved");return await Fe(o,n.request.route.connection),L.Mutate(o,{...R,route:n.request.route,reference:n.request.reference})},e[7]=o,e[8]=n,e[9]=m):m=e[9];let y;e[10]!==o||e[11]!==f?(y=async()=>{await f.invalidateQueries({queryKey:me.all(o)})},e[10]=o,e[11]=f,e[12]=y):y=e[12];let S;e[13]!==p?(S=ne(p,"Failed to mutate resource"),e[13]=p,e[14]=S):S=e[14];let b;e[15]!==m||e[16]!==y||e[17]!==S?(b={mutationFn:m,onSuccess:y,onError:S},e[15]=m,e[16]=y,e[17]=S,e[18]=b):b=e[18];const{mutateAsync:w}=k.useMutation(b);let x;e[19]!==l||e[20]!==o||e[21]!==g||e[22]!==n?(x=g?R=>{const{signal:F,queryKey:T}=R;return l(T,F,()=>L.Get$1(o,n))}:k.skipToken,e[19]=l,e[20]=o,e[21]=g,e[22]=n,e[23]=x):x=e[23];let I;e[24]!==g||e[25]!==h||e[26]!==x?(I={queryKey:h,queryFn:x,retry:!1,enabled:g},e[24]=g,e[25]=h,e[26]=x,e[27]=I):I=e[27];const _=k.useQuery(I);let D;return e[28]!==w||e[29]!==_?(D={resource:_,mutate:w},e[28]=w,e[29]=_,e[30]=D):D=e[30],D},Ts=t=>{const e=$.c(11);let s;e[0]!==t.area||e[1]!==t.plugin||e[2]!==t.resource?(s=["component",t.plugin,t.resource,t.area],e[0]=t.area,e[1]=t.plugin,e[2]=t.resource,e[3]=s):s=e[3];const n=s;let r;e[4]!==t?(r=async()=>L.GetResourceAreaComponent(t),e[4]=t,e[5]=r):r=e[5];let i;e[6]!==n||e[7]!==r?(i={queryKey:n,queryFn:r},e[6]=n,e[7]=r,e[8]=i):i=e[8];const o=k.useQuery(i);let c;return e[9]!==o?(c={component:o},e[9]=o,e[10]=c):c=e[10],c},Ns=t=>{const e=$.c(18),{pluginID:s,route:n,enabled:r}=t,i=r===void 0?!0:r,o=G(s);let c;e[0]!==i||e[1]!==o||e[2]!==n.connection?(c={pluginID:o,connectionID:n.connection,enabled:i},e[0]=i,e[1]=o,e[2]=n.connection,e[3]=c):c=e[3];const u=oe(c),a=ce(o,n.connection),d=i&&!!o&&!!n.connection&&u.phase==="connected";let l;e[4]!==o||e[5]!==n?(l=[o,"resource-v2","groups",n],e[4]=o,e[5]=n,e[6]=l):l=e[6];let f;e[7]!==a||e[8]!==o||e[9]!==d||e[10]!==n?(f=d?g=>{const{signal:m,queryKey:y}=g;return a(y,m,()=>L.GetResourceGroups(o,n))}:k.skipToken,e[7]=a,e[8]=o,e[9]=d,e[10]=n,e[11]=f):f=e[11];let p;e[12]!==d||e[13]!==l||e[14]!==f?(p={queryKey:l,queryFn:f,enabled:d,retry:!1},e[12]=d,e[13]=l,e[14]=f,e[15]=p):p=e[15];const v=k.useQuery(p);let h;return e[16]!==v?(h={groups:v},e[16]=v,e[17]=h):h=e[17],h},Ps=t=>{const e=$.c(28),{pluginID:s,searches:n,enabled:r}=t,i=r===void 0?!0:r,o=G(s);let c;e[0]!==i||e[1]!==n?(c=JSON.stringify(i?[...new Set(n.map(As))].sort():[]),e[0]=i,e[1]=n,e[2]=c):c=e[2];const u=c;let a;if(e[3]!==u||e[4]!==o){const y=JSON.parse(u);let S;e[6]!==o?(S=b=>[b,Be(o,b)],e[6]=o,e[7]=S):S=e[7],a=new Map(y.map(S)),e[3]=u,e[4]=o,e[5]=a}else a=e[5];const d=a;let l,f;e[8]!==d?(l=()=>JSON.stringify([...d.values()].map(Ls)),f=y=>{const S=[...d.values()].map(b=>b.subscribe(y));return()=>{for(const b of S)b()}},e[8]=d,e[9]=l,e[10]=f):(l=e[9],f=e[10]);let p;e[11]!==d||e[12]!==l||e[13]!==f?(p={stores:d,getSnapshot:l,subscribe:f},e[11]=d,e[12]=l,e[13]=f,e[14]=p):p=e[14];const v=p;E.useSyncExternalStore(v.subscribe,v.getSnapshot,v.getSnapshot);const h=ce(o,"");let g;if(e[15]!==i||e[16]!==h||e[17]!==o||e[18]!==v.stores||e[19]!==n){let y;e[21]!==i||e[22]!==h||e[23]!==o||e[24]!==v.stores?(y=S=>{const b=S.request.target.route.connection,w=i&&v.stores.get(b)?.getSnapshot().phase==="connected";return{queryKey:me.nativeQuery(o,S),queryFn:w?x=>{const{signal:I,queryKey:_}=x;return h(_,I,()=>L.NativeQuery(o,S),b)}:k.skipToken,retry:!1,enabled:w}},e[21]=i,e[22]=h,e[23]=o,e[24]=v.stores,e[25]=y):y=e[25],g=n.map(y),e[15]=i,e[16]=h,e[17]=o,e[18]=v.stores,e[19]=n,e[20]=g}else g=e[20];let m;return e[26]!==g?(m={queries:g},e[26]=g,e[27]=m):m=e[27],k.useQueries(m)};function As(t){return t.request.target.route.connection}function Ls(t){return t.getSnapshot().phase}const Fs=t=>{const e=$.c(21),{pluginID:s,route:n,type:r}=t,i=G(s),o=!!r;let c;e[0]!==i||e[1]!==n.connection||e[2]!==o?(c={pluginID:i,connectionID:n.connection,enabled:o},e[0]=i,e[1]=n.connection,e[2]=o,e[3]=c):c=e[3];const u=oe(c),a=ce(i,n.connection),d=!!i&&!!n.connection&&!!r&&u.phase==="connected";let l;e[4]!==i||e[5]!==n?(l=[i,"resource-v2","catalog",n],e[4]=i,e[5]=n,e[6]=l):l=e[6];let f;e[7]!==a||e[8]!==i||e[9]!==d||e[10]!==n?(f=d?m=>{const{signal:y,queryKey:S}=m;return a(S,y,()=>L.Catalog(i,{route:n}))}:k.skipToken,e[7]=a,e[8]=i,e[9]=d,e[10]=n,e[11]=f):f=e[11];let p;e[12]!==r?(p=m=>m.types.find(y=>y.type===r),e[12]=r,e[13]=p):p=e[13];let v;e[14]!==d||e[15]!==l||e[16]!==f||e[17]!==p?(v={queryKey:l,queryFn:f,select:p,enabled:d,retry:!1},e[14]=d,e[15]=l,e[16]=f,e[17]=p,e[18]=v):v=e[18];const h=k.useQuery(v);let g;return e[19]!==h?(g={resourceType:h},e[19]=h,e[20]=g):g=e[20],g},qs=t=>{const e=$.c(18),{pluginID:s,route:n,enabled:r}=t,i=r===void 0?!0:r,o=G(s);let c;e[0]!==i||e[1]!==o||e[2]!==n.connection?(c={pluginID:o,connectionID:n.connection,enabled:i},e[0]=i,e[1]=o,e[2]=n.connection,e[3]=c):c=e[3];const u=oe(c),a=ce(o,n.connection),d=i&&!!o&&!!n.connection&&u.phase==="connected";let l;e[4]!==o||e[5]!==n?(l=[o,"resource-v2","catalog",n],e[4]=o,e[5]=n,e[6]=l):l=e[6];let f;e[7]!==a||e[8]!==o||e[9]!==d||e[10]!==n?(f=d?g=>{const{signal:m,queryKey:y}=g;return a(y,m,()=>L.Catalog(o,{route:n}))}:k.skipToken,e[7]=a,e[8]=o,e[9]=d,e[10]=n,e[11]=f):f=e[11];let p;e[12]!==d||e[13]!==l||e[14]!==f?(p={queryKey:l,queryFn:f,select:Ms,enabled:d,retry:!1},e[12]=d,e[13]=l,e[14]=f,e[15]=p):p=e[15];const v=k.useQuery(p);let h;return e[16]!==v?(h={resourceTypes:v},e[16]=v,e[17]=h):h=e[17],h};function Ms(t){return t.types}function ut(t,e,s=!1,n=!1){if(!t||!e.length&&!s)return t;if(n){const a=new Map(t.records.map(d=>[d.key,d]));for(const d of e)d.type==="DELETE"?a.delete(d.payload.key):a.set(d.payload.record.key,d.payload.record);return{records:[...a.values()],sourcePage:t.sourcePage,view:{guarantee:"bestEffort",count:{kind:"unknown"},membershipStale:!1}}}let r;const i=e.length>1?new Map(t.records.map((a,d)=>[a.key,d])):void 0,o=new Set;let c=t.view?.membershipStale===!0||s;for(const a of e){const d=a.type==="DELETE"?a.payload.key:a.payload.record.key,l=i?i.get(d)??-1:t.records.findIndex(f=>f.key===d);a.type==="DELETE"?(l!==-1&&o.add(l),c=!0):l===-1||o.has(l)?c=!0:(r??t.records)[l]!==a.payload.record&&(r??=[...t.records],r[l]=a.payload.record)}if(!r&&!o.size&&t.view?.membershipStale===c&&t.view.guarantee==="bestEffort"&&t.view.count.kind==="unknown"&&t.view.sourceRevision===void 0)return t;const u=r??t.records;return{records:o.size?u.filter((a,d)=>!o.has(d)):u,sourcePage:t.sourcePage,view:{guarantee:"bestEffort",count:{kind:"unknown"},membershipStale:c}}}function an(t,e,s,n){const r=$.c(36);let i;r[0]===Symbol.for("react.memo_cache_sentinel")?(i=new Map,r[0]=i):i=r[0];const o=E.useRef(i),c=E.useRef(!1),u=E.useRef(void 0),a=E.useRef(void 0),d=E.useRef(s),l=n?.enabled??!0,f=n?.isCurrent,p=n?.collection??!1;let v;r[1]!==p||r[2]!==l||r[3]!==f||r[4]!==t||r[5]!==e?(v={queryClient:t,queryKey:e,enabled:l,isCurrent:f,collection:p},r[1]=p,r[2]=l,r[3]=f,r[4]=t,r[5]=e,r[6]=v):v=r[6];const h=v,g=E.useRef(void 0);let m;r[7]!==l||r[8]!==f||r[9]!==h?(m=()=>g.current===h&&l&&(!f||f()),r[7]=l,r[8]=f,r[9]=h,r[10]=m):m=r[10];const y=m;let S,b;r[11]!==s?(S=()=>{d.current=s},b=[s],r[11]=s,r[12]=S,r[13]=b):(S=r[12],b=r[13]),E.useLayoutEffect(S,b);const w=n?.syncWindowMs??500;let x;r[14]!==p||r[15]!==y||r[16]!==t||r[17]!==e||r[18]!==h?(x=()=>{if(g.current!==h)return;if(window.clearTimeout(u.current),a.current!==void 0&&cancelAnimationFrame(a.current),u.current=void 0,a.current=void 0,!y()){o.current.clear(),c.current=!1;return}if(!o.current.size&&!c.current||!t.getQueryData(e)||p&&t.getQueryState(e)?.fetchStatus==="fetching")return;const T=[...o.current.values()],j=c.current;o.current.clear(),c.current=!1;const C=t.getQueryCache().find({queryKey:e,exact:!0});p&&C?.state.status==="error"?C.setState({data:y()?ut(C.state.data,T,j,p):C.state.data}):t.setQueryData(e,N=>y()?ut(N,T,j,p):N);for(const N of T){if(!y())return;N.type==="DELETE"?t.invalidateQueries({queryKey:[e[0],"resource-v2","get"],predicate:P=>y()&&P.state.data?.key===N.payload.key}):t.setQueriesData({queryKey:[e[0],"resource-v2","get"]},P=>y()&&P?.key===N.payload.record.key?N.payload.record:P)}},r[14]=p,r[15]=y,r[16]=t,r[17]=e,r[18]=h,r[19]=x):x=r[19];const I=x;let _;r[20]!==p||r[21]!==y||r[22]!==I||r[23]!==t||r[24]!==e||r[25]!==w?(_=T=>{if(!y())return;const j=T.type==="DELETE"?T.payload.key:T.payload.record.key,C=t.getQueryData(e);p||C?.records.some(N=>N.key===j)?o.current.set(j,T):c.current=!0,!p&&T.type==="DELETE"&&(c.current=!0),!(u.current!==void 0||a.current!==void 0)&&(u.current=window.setTimeout(I,w),d.current!==K.WatchState.WatchStateSyncing&&(a.current=requestAnimationFrame(I)))},r[20]=p,r[21]=y,r[22]=I,r[23]=t,r[24]=e,r[25]=w,r[26]=_):_=r[26];const D=_;let R,F;return r[27]!==p||r[28]!==y||r[29]!==l||r[30]!==I||r[31]!==t||r[32]!==e||r[33]!==h?(R=()=>{if(!l)return;g.current=h;const T=o.current,j=t.getQueryCache().subscribe(C=>{!y()||C.type!=="updated"||C.query.queryHash!==k.hashKey(e)||(C.action.type==="fetch"?(T.clear(),c.current=!1):(C.action.type==="success"||p&&C.action.type==="error")&&I())});return()=>{g.current=void 0,j(),window.clearTimeout(u.current),a.current!==void 0&&cancelAnimationFrame(a.current),T.clear(),c.current=!1,u.current=void 0,a.current=void 0}},F=[t,e,I,l,h,y,p],r[27]=p,r[28]=y,r[29]=l,r[30]=I,r[31]=t,r[32]=e,r[33]=h,r[34]=R,r[35]=F):(R=r[34],F=r[35]),E.useLayoutEffect(R,F),D}const js={getSnapshot:()=>{},subscribe:()=>()=>{}},$s=({pluginID:t,request:e,enabled:s=!0,live:n=!0,collection:r=!1})=>{const i=G(t),o=k.useQueryClient(),{showSnackbar:c}=ue(),u=E.useRef(c);E.useLayoutEffect(()=>{u.current=c},[c]);const a=k.hashKey([e]),[d,l]=E.useState({hash:a,request:e});d.hash!==a&&l({hash:a,request:e});const f=d.hash===a?d.request:e,p=f?.request.target.route.connection??"",v=s&&!!f,h=oe({pluginID:i,connectionID:p,enabled:v}),g=E.useMemo(()=>v?{subscribe:Be(i,p).subscribe,getSnapshot:()=>ct(i,p)}:js,[i,p,v]),m=E.useSyncExternalStore(g.subscribe,g.getSnapshot,g.getSnapshot),y=ce(i,p),S=v&&h.phase==="connected",b=f?k.hashKey([i,f.targetId,f.request.target,r]):void 0,w=E.useCallback(U=>r?[...me.list(i,U),"collection"]:me.list(i,U),[i,r]),x=E.useCallback(async(U,X,fe)=>{if(!r)return y(fe,X,()=>L.Enumerate(i,U));const pe=ct(i,p),ge=new Map,ve=new Set;let re,Se;do{if(X.aborted||pe===void 0||!Pe(i,p,pe))throw new k.CancelledError({revert:!0});const we=await y(fe,X,()=>L.Enumerate(i,{...U,request:{...U.request,cursor:re}}));if(X.aborted||!Pe(i,p,pe))throw new k.CancelledError({revert:!0});Se??=we;for(const Te of we.records){if(Te.targetId!==U.targetId)throw new Error("Collection page returned a different resource target");ge.set(Te.key,Te)}if(re=we.sourcePage.nextCursor,re){if(ve.has(re))throw new Error("Collection enumeration repeated a source cursor");ve.add(re)}}while(re);return{records:[...ge.values()],sourcePage:{...Se.sourcePage,nextCursor:void 0,count:{kind:"unknown"},sourceRevision:void 0},view:{guarantee:"bestEffort",count:{kind:"unknown"},membershipStale:!1}}},[r,y,i,p]),I=E.useMemo(()=>w(f),[w,f]),_=k.useQuery({queryKey:I,queryFn:S?({signal:U,queryKey:X})=>x(f,U,X):k.skipToken,enabled:S,retry:!1,gcTime:0,placeholderData:void 0}),[D,R]=E.useState();let F=D;b&&f&&_.isSuccess&&_.data?(D?.identity!==b||D.requestHash!==a)&&(F={identity:b,requestHash:a,request:f},R(F)):D&&D.identity!==b&&(F=void 0,R(void 0));const T=b&&F?.identity===b?F.request:void 0,j=E.useMemo(()=>w(T),[w,T]),C=k.useQuery({queryKey:j,queryFn:S&&T?({signal:U,queryKey:X})=>x(T,U,X):k.skipToken,enabled:!1,retry:!1,gcTime:0,placeholderData:void 0}),N=E.useMemo(()=>T&&C.data?{request:T,page:C.data}:void 0,[T,C.data]),P=S&&n&&!!T,M=E.useMemo(()=>({pluginID:i,acquiredRequest:T,generation:m,enabled:P}),[i,T,m,P]),[A,q]=E.useState(),W=P&&A?.scope===M?A.state:K.WatchState.WatchStateIdle,Y=P&&A?.scope===M?A.error:void 0,B=P&&A?.scope===M&&A.live,J=E.useCallback(()=>m!==void 0&&Pe(i,p,m),[i,p,m]),Z=an(o,j,W,{enabled:P,isCurrent:J,collection:r}),H=E.useRef(Promise.resolve());E.useEffect(()=>{if(!P||!T)return;const U=T.request.target,X={targetId:T.targetId,target:U};let fe=!0,pe=!1,ge=!1,ve;const re=()=>fe&&m!==void 0&&Pe(i,p,m),Se=ee=>{re()&&q(se=>({state:K.WatchState.WatchStateIdle,live:!1,...se?.scope===M?se:{},...ee,scope:M}))},we=`${i}/${U.route.connection}/${U.type}`,Te=[Q.On(`${we}/ADD`,ee=>{const se=ee.data;re()&&se.record.targetId===X.targetId&&Z({type:"ADD",payload:se})}),Q.On(`${we}/UPDATE`,ee=>{const se=ee.data;re()&&se.record.targetId===X.targetId&&Z({type:"UPDATE",payload:se})}),Q.On(`${we}/DELETE`,ee=>{const se=ee.data;re()&&se.targetId===X.targetId&&Z({type:"DELETE",payload:se})}),Q.On(`${i}/${U.route.connection}/watch/STATE`,ee=>{const se=ee.data;!re()||se.type!==U.type||se.route.connection!==U.route.connection||(ge=!0,Se({state:se.state,error:se.error}))})],xt=()=>{for(const ee of Te)ee()},Rt=L.GetWatchState(i,U.route);Rt.then(ee=>{!ge&&ee?.resources[U.type]!==void 0&&Se({state:ee.resources[U.type]})}).catch(ee=>Se({error:ee}));const Dt=H.current.then(async()=>{re()&&(await L.SubscribeResource(i,X),pe=!0,re()&&(ve=L.EnsureResourceWatch(i,U),await ve,Se({live:!0})))}).catch(ee=>{xt(),Se({error:ee,state:K.WatchState.WatchStateError,live:!1}),re()&&_e(u.current,ee,"Failed to subscribe to resource updates")});return H.current=Dt,()=>{fe=!1,xt(),Rt.cancel(),ve?.cancel(),H.current=Dt.then(async()=>{pe&&await L.UnsubscribeResource(i,X)}).catch(ee=>{_e(u.current,ee,"Failed to unsubscribe from resource updates")})}},[i,p,T,P,m,M,Z]);const te=N!==void 0;return{resources:_,acquired:N,isAcquiredRequestCurrent:te&&F?.requestHash===a,refreshAcquiredPage:C.refetch,view:N?.page.view,membershipStale:N?.page.view?.membershipStale??!1,watchState:te?W:K.WatchState.WatchStateIdle,isLive:te&&B,isSyncing:te&&W===K.WatchState.WatchStateSyncing,isSynced:te&&W===K.WatchState.WatchStateSynced,watchError:te?Y??(W===K.WatchState.WatchStateError||W===K.WatchState.WatchStateFailed||W===K.WatchState.WatchStateForbidden?!0:void 0):void 0,guarantee:te&&B?"bestEffort":void 0}},Ws=t=>{const e=$.c(13),{pluginID:s}=t,n=G(s),r=k.useQueryClient(),{showSnackbar:i}=ue();let o;e[0]!==n?(o=async f=>(await Fe(n,f.route.connection),L.Mutate(n,f)),e[0]=n,e[1]=o):o=e[1];let c;e[2]!==n||e[3]!==r?(c=async()=>{await r.invalidateQueries({queryKey:me.all(n)})},e[2]=n,e[3]=r,e[4]=c):c=e[4];let u;e[5]!==i?(u=ne(i,"Failed to mutate resource"),e[5]=i,e[6]=u):u=e[6];let a;e[7]!==o||e[8]!==c||e[9]!==u?(a={mutationFn:o,onSuccess:c,onError:u},e[7]=o,e[8]=c,e[9]=u,e[10]=a):a=e[10];const d=k.useMutation(a);let l;return e[11]!==d?(l={mutate:d.mutateAsync,mutation:d},e[11]=d,e[12]=l):l=e[12],l},Qs=t=>{const e=$.c(25),{pluginID:s,route:n,type:r,enabled:i}=t,o=i===void 0?!0:i,c=G(s),u=n.connection,a=o&&!!r;let d;e[0]!==u||e[1]!==c||e[2]!==a?(d={pluginID:c,connectionID:u,enabled:a},e[0]=u,e[1]=c,e[2]=a,e[3]=d):d=e[3];const l=oe(d),f=ce(c,u);let p;e[4]!==c||e[5]!==n||e[6]!==r?(p=[c,"resource-v2","actions",n,r],e[4]=c,e[5]=n,e[6]=r,e[7]=p):p=e[7];let v;e[8]!==o||e[9]!==f||e[10]!==c||e[11]!==l||e[12]!==n||e[13]!==r?(v=o&&r&&l.phase==="connected"?b=>{const{signal:w,queryKey:x}=b;return f(x,w,()=>L.GetActions(c,n,r))}:k.skipToken,e[8]=o,e[9]=f,e[10]=c,e[11]=l,e[12]=n,e[13]=r,e[14]=v):v=e[14];const h=o&&!!c&&!!n.connection&&!!r&&l.phase==="connected";let g;e[15]!==p||e[16]!==v||e[17]!==h?(g={queryKey:p,queryFn:v,enabled:h,staleTime:3e5},e[15]=p,e[16]=v,e[17]=h,e[18]=g):g=e[18];const m=k.useQuery(g);let y;e[19]!==m.data?(y=m.data??[],e[19]=m.data,e[20]=y):y=e[20];let S;return e[21]!==m.error||e[22]!==m.isLoading||e[23]!==y?(S={actions:y,isLoading:m.isLoading,error:m.error},e[21]=m.error,e[22]=m.isLoading,e[23]=y,e[24]=S):S=e[24],S},Us=t=>{const e=$.c(15),{pluginID:s}=t,n=G(s),r=k.useQueryClient(),{showSnackbar:i}=ue();let o;e[0]!==n?(o=async f=>(await Fe(n,f.route.connection),L.Action(n,f)),e[0]=n,e[1]=o):o=e[1];let c;e[2]!==n||e[3]!==r?(c=async()=>{await r.invalidateQueries({queryKey:me.all(n)})},e[2]=n,e[3]=r,e[4]=c):c=e[4];let u;e[5]!==i?(u=(f,p)=>{_e(i,f,`Failed to execute action "${p.action}"`)},e[5]=i,e[6]=u):u=e[6];let a;e[7]!==o||e[8]!==c||e[9]!==u?(a={mutationFn:o,onSuccess:c,onError:u},e[7]=o,e[8]=c,e[9]=u,e[10]=a):a=e[10];const d=k.useMutation(a);let l;return e[11]!==d.error||e[12]!==d.isPending||e[13]!==d.mutateAsync?(l={executeAction:d.mutateAsync,isExecuting:d.isPending,error:d.error},e[11]=d.error,e[12]=d.isPending,e[13]=d.mutateAsync,e[14]=l):l=e[14],l},Ks=t=>{const e=$.c(27),{pluginID:s,route:n,enabled:r}=t,i=r===void 0?!0:r,o=G(s),c=k.useQueryClient();let u;e[0]!==i||e[1]!==o||e[2]!==n.connection?(u={pluginID:o,connectionID:n.connection,enabled:i},e[0]=i,e[1]=o,e[2]=n.connection,e[3]=u):u=e[3];const a=oe(u),d=ce(o,n.connection),l=i&&!!o&&!!n.connection&&a.phase==="connected";let f;e[4]!==o||e[5]!==n?(f=[o,"resource-v2","editor-schemas",n],e[4]=o,e[5]=n,e[6]=f):f=e[6];let p;e[7]!==d||e[8]!==o||e[9]!==c||e[10]!==l||e[11]!==n?(p=l?S=>{const{signal:b,queryKey:w}=S;return d(w,b,async()=>{const x=await d(w,b,()=>L.GetEditorSchemas(o,n)),I=[],_=new Set;for(const D of x){const R=D.binding.documentRef;if(!R)continue;const F=JSON.stringify([R.id,R.revision]);_.has(F)||(I.push(await c.fetchQuery({queryKey:[o,"resource-v2","schema-document",n,R],queryFn:T=>{const{signal:j,queryKey:C}=T;return d(C,AbortSignal.any([b,j]),()=>L.GetSchemaDocument(o,n,R))},staleTime:1/0})),_.add(F))}return{schemas:x,documents:I}})}:k.skipToken,e[7]=d,e[8]=o,e[9]=c,e[10]=l,e[11]=n,e[12]=p):p=e[12];let v;e[13]!==l||e[14]!==f||e[15]!==p?(v={queryKey:f,queryFn:p,enabled:l,staleTime:6e5,retry:1},e[13]=l,e[14]=f,e[15]=p,e[16]=v):v=e[16];const h=k.useQuery(v);let g;e[17]!==h.data?.schemas?(g=h.data?.schemas??[],e[17]=h.data?.schemas,e[18]=g):g=e[18];let m;e[19]!==h.data?.documents?(m=h.data?.documents??[],e[19]=h.data?.documents,e[20]=m):m=e[20];let y;return e[21]!==h.error||e[22]!==h.isLoading||e[23]!==h.refetch||e[24]!==g||e[25]!==m?(y={schemas:g,documents:m,isLoading:h.isLoading,error:h.error,refetch:h.refetch},e[21]=h.error,e[22]=h.isLoading,e[23]=h.refetch,e[24]=g,e[25]=m,e[26]=y):y=e[26],y};function At(t){const e=Object.values(t.resources);return{...t,totalResources:e.length,syncedCount:e.filter(s=>s===K.WatchState.WatchStateSynced).length,errorCount:e.filter(s=>s===K.WatchState.WatchStateError||s===K.WatchState.WatchStateFailed).length}}const Gs=t=>{const e=$.c(38),{pluginID:s,route:n,enabled:r}=t,i=r===void 0?!0:r,o=G(s),c=k.useQueryClient(),u=n.connection;let a;e[0]!==u?(a={connection:u},e[0]=u,e[1]=a):a=e[1];let d;e[2]!==o||e[3]!==a?(d=[o,"resource-v2","watch-state",a],e[2]=o,e[3]=a,e[4]=d):d=e[4];const l=d;let f;e[5]===Symbol.for("react.memo_cache_sentinel")?(f=[],e[5]=f):f=e[5];const p=E.useRef(f),v=E.useRef(!1);let h;e[6]!==c||e[7]!==l?(h=A=>{c.setQueryData(l,q=>q&&At({...q,resources:{...q.resources,[A.type]:A.state},resourceCounts:{...q.resourceCounts,[A.type]:A.count}}))},e[6]=c,e[7]=l,e[8]=h):h=e[8];const g=h;let m;e[9]!==u||e[10]!==o?(m=async()=>{const A=await L.GetWatchState(o,{connection:u});if(!A)throw new Error("Failed to get watch state: null response");return At(A)},e[9]=u,e[10]=o,e[11]=m):m=e[11];const y=i&&!!o&&!!u;let S;e[12]!==l||e[13]!==m||e[14]!==y?(S={queryKey:l,queryFn:m,enabled:y,refetchInterval:zs},e[12]=l,e[13]=m,e[14]=y,e[15]=S):S=e[15];const b=k.useQuery(S);let w,x;e[16]!==g||e[17]!==u||e[18]!==i||e[19]!==o?(x=()=>{if(v.current=!1,p.current=[],!i||!u)return;const A=Q.On(`${o}/${u}/watch/STATE`,q=>{const W=q.data;W.route.connection===u&&(v.current?g(W):p.current.push(W))});return()=>{A(),v.current=!1,p.current=[]}},w=[o,u,i,g],e[16]=g,e[17]=u,e[18]=i,e[19]=o,e[20]=w,e[21]=x):(w=e[20],x=e[21]),E.useEffect(x,w);let I,_;e[22]!==g||e[23]!==b.data?(I=()=>{if(!b.data||v.current)return;v.current=!0;const A=p.current;p.current=[];for(const q of A)g(q)},_=[b.data,g],e[22]=g,e[23]=b.data,e[24]=I,e[25]=_):(I=e[24],_=e[25]),E.useEffect(I,_);let D;e[26]!==b.data?.resources?(D=Object.values(b.data?.resources??{}),e[26]=b.data?.resources,e[27]=D):D=e[27];const R=D;let F;e[28]!==R?(F=R.filter(Js),e[28]=R,e[29]=F):F=e[29];const T=F.length;let j;e[30]!==b.data?.resources?(j=A=>b.data?.resources[A],e[30]=b.data?.resources,e[31]=j):j=e[31];const C=R.length>0&&T===R.length,N=R.length?T/R.length:0,P=b.data?.errorCount??0;let M;return e[32]!==b||e[33]!==j||e[34]!==C||e[35]!==N||e[36]!==P?(M={summary:b,getResourceState:j,isFullySynced:C,syncProgress:N,errorCount:P,guarantee:"bestEffort"},e[32]=b,e[33]=j,e[34]=C,e[35]=N,e[36]=P,e[37]=M):M=e[37],M};function Bs(t){return t!==K.WatchState.WatchStateIdle&&t!==K.WatchState.WatchStateSyncing}function zs(t){const e=Object.values(t.state.data?.resources??{});return e.length&&e.every(Bs)?!1:3e3}function Js(t){return t!==K.WatchState.WatchStateIdle&&t!==K.WatchState.WatchStateSyncing}const Hs=()=>{const t=$.c(16);let e;t[0]===Symbol.for("react.memo_cache_sentinel")?(e=new Map,t[0]=e):e=t[0];const[s,n]=E.useState(e);let r;t[1]===Symbol.for("react.memo_cache_sentinel")?(r=new Map,t[1]=r):r=t[1];const i=E.useRef(r);let o;t[2]===Symbol.for("react.memo_cache_sentinel")?(o=new Map,t[2]=o):o=t[2];const c=E.useRef(o);let u;t[3]===Symbol.for("react.memo_cache_sentinel")?(u=y=>{const S=y.data,b=Ct(S.pluginID,S),w=lt(i.current,S.pluginID,S),x=at(w);if(n(I=>{const _=new Map(I);return _.set(b,x),_}),c.current.has(b)&&(clearTimeout(c.current.get(b)),c.current.delete(b)),ze(x)){const I=setTimeout(()=>{n(_=>{const D=new Map(_);return D.delete(b),D}),i.current.delete(b),c.current.delete(b)},5e3);c.current.set(b,I)}},t[3]=u):u=t[3];const a=u;let d,l;t[4]===Symbol.for("react.memo_cache_sentinel")?(d=()=>{const y=c.current,S=Q.On("watch/STATE",a);return()=>{S();for(const b of y.values())clearTimeout(b);y.clear()}},l=[a],t[4]=d,t[5]=l):(d=t[4],l=t[5]),E.useEffect(d,l);let f,p,v,h;t[6]!==s?(v=Array.from(s.values()),f=tn(v),p=v.find(Vs)??v[0]??null,h=nn(v),t[6]=s,t[7]=f,t[8]=p,t[9]=v,t[10]=h):(f=t[7],p=t[8],v=t[9],h=t[10]);const g=h;let m;return t[11]!==g||t[12]!==f||t[13]!==p||t[14]!==v?(m={syncs:v,hasSyncing:f,primarySync:p,aggregateProgress:g},t[11]=g,t[12]=f,t[13]=p,t[14]=v,t[15]=m):m=t[15],m};function Vs(t){return!ze(t)}const ln=()=>{const t=E.useContext(St);if(!t)throw new Error("useOperations must be used within an OperationsProvider");return t};function Ue(t){switch(t.kind){case"null":return null;case"bool":case"string":case"double":case"timestamp":return t.value;case"int64":case"uint64":{const e=BigInt(t.value);return e>=-9007199254740991n&&e<=9007199254740991n?Number(e):e}case"list":return t.value.map(Ue);case"map":return Object.fromEntries(Object.entries(t.value).map(([e,s])=>[e,Ue(s)]))}}function dt(t){for(let e=0;e<t.length;e++){const s=t.charCodeAt(e);if(s>=55296&&s<=56319){const n=t.charCodeAt(++e);if(!(n>=56320&&n<=57343))throw new TypeError("Resource strings require valid Unicode")}else if(s>=56320&&s<=57343)throw new TypeError("Resource strings require valid Unicode")}return t}function ft(t){const e=BigInt(t);if(e>=-(1n<<63n)&&e<=(1n<<63n)-1n)return{kind:"int64",value:e.toString()};if(e>=0n&&e<=(1n<<64n)-1n)return{kind:"uint64",value:e.toString()};throw new RangeError("Integer exceeds the resource Value range")}function pt(t){if(t===null)return{kind:"null"};if(typeof t=="boolean")return{kind:"bool",value:t};if(typeof t=="string")return{kind:"string",value:dt(t)};if(typeof t=="bigint")return ft(t.toString());if(typeof t=="number"){if(!Number.isFinite(t))throw new TypeError("Resource values require finite numbers");if(Number.isInteger(t)&&!Object.is(t,-0)){if(!Number.isSafeInteger(t))throw new RangeError("Use bigint for exact resource integers");return ft(t.toString())}return{kind:"double",value:t}}if(Array.isArray(t))return{kind:"list",value:t.map(pt)};if(typeof t=="object"&&Object.getPrototypeOf(t)===Object.prototype)return{kind:"map",value:Object.fromEntries(Object.entries(t).map(([e,s])=>[dt(e),pt(s)]))};throw new TypeError("Unsupported resource value")}function gt(t){switch(t.kind){case"null":return"null";case"bool":case"string":case"timestamp":return JSON.stringify(t.value);case"int64":case"uint64":return t.value;case"double":{if(!Number.isFinite(t.value))throw new TypeError("Resource values require finite numbers");if(Object.is(t.value,-0))return"-0.0";const e=JSON.stringify(t.value);return/[.eE]/.test(e)?e:`${e}.0`}case"list":return`[${t.value.map(gt).join(",")}]`;case"map":return`{${Object.entries(t.value).map(([e,s])=>`${JSON.stringify(e)}:${gt(s)}`).join(",")}}`}}function Ys(t){let e=0;const s=()=>{throw new SyntaxError(`Invalid resource JSON at offset ${e}`)},n=()=>{for(;e<t.length&&/[\t\n\r ]/.test(t[e]);)e++},r=()=>{const c=e++;for(;e<t.length;){const u=t[e++];if(u==="\\"){e++;continue}if(u==='"')return dt(JSON.parse(t.slice(c,e)))}return s()},i=c=>{if(c>64)throw new RangeError("Resource JSON exceeds maximum depth");n();const u=t[e];if(u==='"')return{kind:"string",value:r()};if(u==="["){e++,n();const l=[];if(t[e]==="]")return e++,{kind:"list",value:l};for(;e<t.length;){if(l.push(i(c+1)),n(),t[e]==="]")return e++,{kind:"list",value:l};if(t[e++]!==",")return s()}return s()}if(u==="{"){e++,n();const l=[],f=new Set;if(t[e]==="}")return e++,{kind:"map",value:{}};for(;e<t.length;){if(n(),t[e]!=='"')return s();const p=r();if(f.has(p))throw new SyntaxError(`Duplicate resource JSON key: ${p}`);if(f.add(p),n(),t[e++]!==":")return s();if(l.push([p,i(c+1)]),n(),t[e]==="}")return e++,{kind:"map",value:Object.fromEntries(l)};if(t[e++]!==",")return s()}return s()}for(const[l,f]of[["null",{kind:"null"}],["true",{kind:"bool",value:!0}],["false",{kind:"bool",value:!1}]])if(t.startsWith(l,e))return e+=l.length,f;const a=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(t.slice(e));if(!a)return s();if(e+=a[0].length,!/[.eE]/.test(a[0])&&a[0]!=="-0")return ft(a[0]);const d=Number(a[0]);if(!Number.isFinite(d))throw new RangeError("Resource JSON number must be finite");return{kind:"double",value:d}},o=i(0);return n(),e!==t.length?s():o}const Zs=({pluginID:t})=>{const e=G(t),{showSnackbar:s}=ue(),{addOperation:n,updateOperation:r}=ln(),i=E.useRef(new Set),o=E.useCallback((a,d=!1)=>{a.disposed||(a.disposed=!0,a.unsubscribe?.(),a.open?.cancel(),a.attach?.cancel(),a.handle&&(L.CancelStreamAction(a.handle).catch(()=>{}),d&&r(a.handle,{status:"cancelled",message:"Cancelled",completedAt:Date.now()})),i.current.delete(a))},[r]);E.useEffect(()=>()=>{for(const a of i.current)o(a,!0)},[e,o]);const c=E.useCallback(async({request:a,label:d})=>{const l={disposed:!1,terminal:!1,sequence:0};i.current.add(l);try{if(await Fe(e,a.route.connection),l.disposed)throw new Error("Stream action was cancelled before the connection became ready");l.open=L.StreamAction(e,a);const f=await l.open;if(l.open=void 0,l.disposed)return L.CancelStreamAction(f).catch(()=>{}),f;l.handle=f,n({id:f,label:d,resourceKey:a.typeTarget?.type??a.reference?.address.type??"",resourceName:a.reference?.address.id??"",connectionID:a.route.connection,status:"running",startedAt:Date.now()});const p=h=>{if(l.disposed||!Number.isSafeInteger(h.sequence)||h.sequence<=l.sequence)return;l.sequence=h.sequence;const g=h.event,m=g.data?Ue(g.data):void 0,y=m&&typeof m=="object"&&!Array.isArray(m)?m:{};if(g.type==="error"){l.terminal=!0;const S=le(g.error);r(f,{status:Le(S)?"cancelled":"error",message:S.title,completedAt:Date.now()}),_e(s,S,d),o(l)}else if(g.type==="complete"){l.terminal=!0;const S=typeof y.message=="string"?y.message:`${d} completed`;r(f,{status:"completed",message:S,completedAt:Date.now()}),s(S,"success"),o(l)}else r(f,{message:typeof y.message=="string"?y.message:void 0,progress:(typeof y.ready=="number"||typeof y.ready=="bigint")&&(typeof y.desired=="number"||typeof y.desired=="bigint")?{ready:Number(y.ready),desired:Number(y.desired)}:void 0})};l.unsubscribe=Q.On(`action/stream/${f}`,h=>p(h.data)),l.attach=L.AttachStreamAction(f);const v=await l.attach;return l.attach=void 0,p(v),f}catch(f){if(l.terminal&&l.handle)return l.handle;throw l.disposed||(l.handle&&r(l.handle,{status:Le(f)?"cancelled":"error",message:le(f).title,completedAt:Date.now()}),_e(s,f,`Failed to start "${a.action}"`)),o(l),f}},[e,n,r,s,o]),u=E.useCallback(a=>{for(const d of i.current)if(d.handle===a){o(d,!0);return}},[o]);return{startStreamAction:c,cancelStreamAction:u}};function un(t,e){return`${t}/${e}/graph/CHANGED`}function Je(t,e,s,n){const r=$.c(16),i=k.useQueryClient(),o=E.useRef(s);let c,u;r[0]!==s?(c=()=>{o.current=s},u=[s],r[0]=s,r[1]=c,r[2]=u):(c=r[1],u=r[2]),E.useLayoutEffect(c,u);let a;r[3]!==s?(a=JSON.stringify(s),r[3]=s,r[4]=a):a=r[4];const d=a;let l;r[5]!==e||r[6]!==n||r[7]!==t||r[8]!==i?(l=()=>{if(!n||!t||!e)return;const p=Q.On(un(t,e),()=>{i.invalidateQueries({queryKey:o.current,exact:!0})});return()=>{p()}},r[5]=e,r[6]=n,r[7]=t,r[8]=i,r[9]=l):l=r[9];let f;r[10]!==e||r[11]!==n||r[12]!==d||r[13]!==t||r[14]!==i?(f=[i,t,e,d,n],r[10]=e,r[11]=n,r[12]=d,r[13]=t,r[14]=i,r[15]=f):f=r[15],E.useEffect(l,f)}const Xs={owns:{outgoing:"Owns",incoming:"Owned by"},runs_on:{outgoing:"Runs on",incoming:"Running here"},uses:{outgoing:"Uses",incoming:"Used by"},exposes:{outgoing:"Exposes",incoming:"Exposed by"},manages:{outgoing:"Manages",incoming:"Managed by"},member_of:{outgoing:"Member of",incoming:"Members"},selects:{outgoing:"Selects",incoming:"Selected by"}};function er(t,e){const s=Xs[t];if(s)return s[e];const n=t.replace(/_/g," ");return e==="outgoing"?n:`${n} (incoming)`}function dn(t,e){return e.map(s=>{const n=K.sameGraphNode(s.source,t);return{resource:n?s.target:s.source,type:s.type,direction:n?"outgoing":"incoming",label:s.label}})}const tr=t=>{const e=$.c(38),{pluginID:s,reference:n,route:r,direction:i,relationshipType:o,enabled:c,refetchInterval:u}=t,a=i===void 0?"both":i,d=c===void 0?!0:c,l=u===void 0?!1:u,f=G(s),p=o??null;let v;e[0]!==a||e[1]!==f||e[2]!==n||e[3]!==r||e[4]!==p?(v=["RESOURCE_RELATED",f,n,r,a,p],e[0]=a,e[1]=f,e[2]=n,e[3]=r,e[4]=p,e[5]=v):v=e[5];const h=v,g=d&&!!n.address.id;let m;e[6]!==f||e[7]!==r.connection||e[8]!==g?(m={pluginID:f,connectionID:r.connection,enabled:g},e[6]=f,e[7]=r.connection,e[8]=g,e[9]=m):m=e[9];const y=oe(m),S=ce(f,r.connection),b=d&&!!f&&!!r.connection&&!!n.address.id&&y.phase==="connected";Je(f,r.connection,h,b);let w;e[10]!==a||e[11]!==S||e[12]!==f||e[13]!==b||e[14]!==n||e[15]!==o||e[16]!==r?(w=b?F=>{const{signal:T,queryKey:j}=F;return S(j,T,()=>L.GetRelated(f,n,r,a,o??null))}:k.skipToken,e[10]=a,e[11]=S,e[12]=f,e[13]=b,e[14]=n,e[15]=o,e[16]=r,e[17]=w):w=e[17];let x;e[18]!==b||e[19]!==h||e[20]!==l||e[21]!==w?(x={queryKey:h,queryFn:w,enabled:b,refetchInterval:l},e[18]=b,e[19]=h,e[20]=l,e[21]=w,e[22]=x):x=e[22];const I=k.useQuery(x);let _,D;if(e[23]!==f||e[24]!==I.data||e[25]!==n||e[26]!==r){const F={pluginId:f,reference:n};let T;e[29]!==I.data?(T=I.data??[],e[29]=I.data,e[30]=T):T=e[30],_=T,D=dn(F,_),e[23]=f,e[24]=I.data,e[25]=n,e[26]=r,e[27]=_,e[28]=D}else _=e[27],D=e[28];let R;return e[31]!==_||e[32]!==I.error||e[33]!==I.isFetching||e[34]!==I.isLoading||e[35]!==I.refetch||e[36]!==D?(R={related:D,edges:_,isLoading:I.isLoading,isFetching:I.isFetching,error:I.error,refetch:I.refetch},e[31]=_,e[32]=I.error,e[33]=I.isFetching,e[34]=I.isLoading,e[35]=I.refetch,e[36]=D,e[37]=R):R=e[37],R},nr=t=>{const e=$.c(27),{pluginID:s,reference:n,route:r,maxDepth:i,enabled:o,refetchInterval:c}=t,u=i===void 0?3:i,a=o===void 0?!0:o,d=c===void 0?!1:c,l=G(s);let f;e[0]!==u||e[1]!==l||e[2]!==n||e[3]!==r?(f=["RESOURCE_DEPENDENCY_TREE",l,n,r,u],e[0]=u,e[1]=l,e[2]=n,e[3]=r,e[4]=f):f=e[4];const p=f,v=a&&!!n.address.id;let h;e[5]!==l||e[6]!==r.connection||e[7]!==v?(h={pluginID:l,connectionID:r.connection,enabled:v},e[5]=l,e[6]=r.connection,e[7]=v,e[8]=h):h=e[8];const g=oe(h),m=ce(l,r.connection),y=a&&!!l&&!!r.connection&&!!n.address.id&&g.phase==="connected";Je(l,r.connection,p,y);let S;e[9]!==m||e[10]!==u||e[11]!==l||e[12]!==y||e[13]!==n||e[14]!==r?(S=y?_=>{const{signal:D,queryKey:R}=_;return m(R,D,()=>L.GetDependencyTree(l,n,r,u))}:k.skipToken,e[9]=m,e[10]=u,e[11]=l,e[12]=y,e[13]=n,e[14]=r,e[15]=S):S=e[15];let b;e[16]!==y||e[17]!==p||e[18]!==d||e[19]!==S?(b={queryKey:p,queryFn:S,enabled:y,refetchInterval:d},e[16]=y,e[17]=p,e[18]=d,e[19]=S,e[20]=b):b=e[20];const w=k.useQuery(b),x=w.data??null;let I;return e[21]!==w.error||e[22]!==w.isFetching||e[23]!==w.isLoading||e[24]!==w.refetch||e[25]!==x?(I={tree:x,isLoading:w.isLoading,isFetching:w.isFetching,error:w.error,refetch:w.refetch},e[21]=w.error,e[22]=w.isFetching,e[23]=w.isLoading,e[24]=w.refetch,e[25]=x,e[26]=I):I=e[26],I},sr=t=>{const e=$.c(28),{pluginID:s,reference:n,route:r,upDepth:i,downDepth:o,enabled:c}=t,u=i===void 0?2:i,a=o===void 0?3:o,d=c===void 0?!0:c,l=G(s);let f;e[0]!==a||e[1]!==l||e[2]!==n||e[3]!==r||e[4]!==u?(f=["RESOURCE_GRAPH",l,n,r,u,a],e[0]=a,e[1]=l,e[2]=n,e[3]=r,e[4]=u,e[5]=f):f=e[5];const p=f,v=d&&!!n.address.id;let h;e[6]!==l||e[7]!==r.connection||e[8]!==v?(h={pluginID:l,connectionID:r.connection,enabled:v},e[6]=l,e[7]=r.connection,e[8]=v,e[9]=h):h=e[9];const g=oe(h),m=ce(l,r.connection),y=d&&!!l&&!!r.connection&&!!n.address.id&&g.phase==="connected";Je(l,r.connection,p,y);let S;e[10]!==a||e[11]!==m||e[12]!==l||e[13]!==y||e[14]!==n||e[15]!==r||e[16]!==u?(S=y?_=>{const{signal:D,queryKey:R}=_;return m(R,D,()=>L.GetSubgraph(l,n,r,u,a))}:k.skipToken,e[10]=a,e[11]=m,e[12]=l,e[13]=y,e[14]=n,e[15]=r,e[16]=u,e[17]=S):S=e[17];let b;e[18]!==y||e[19]!==p||e[20]!==S?(b={queryKey:p,queryFn:S,enabled:y,retry:!1},e[18]=y,e[19]=p,e[20]=S,e[21]=b):b=e[21];const w=k.useQuery(b),x=w.data??null;let I;return e[22]!==w.error||e[23]!==w.isFetching||e[24]!==w.isLoading||e[25]!==w.refetch||e[26]!==x?(I={graph:x,isLoading:w.isLoading,isFetching:w.isFetching,error:w.error,refetch:w.refetch},e[22]=w.error,e[23]=w.isFetching,e[24]=w.isLoading,e[25]=w.refetch,e[26]=x,e[27]=I):I=e[27],I},rr=()=>{const t=E.useContext(vt);if(!t)throw new Error("useSettings must be used within a SettingsProvider");return t},or=1,ir=t=>{const e=$.c(19);let s,n,r,i;if(e[0]!==t){const{to:h,withinContext:g,onClick:m,onAuxClick:y,...S}=t;i=h,n=m,s=y,r=S,e[0]=t,e[1]=s,e[2]=n,e[3]=r,e[4]=i}else s=e[1],n=e[2],r=e[3],i=e[4];const{pluginId:o}=mt(),c=E.useContext(Ge);o||console.error("Link used outside of a plugin context");const u=`/_plugin/${o}${i.startsWith("/")?"":"/"}${i}`;let a;e[5]!==n||e[6]!==u||e[7]!==c?(a=h=>{n?.(h),!(h.defaultPrevented||!c||!(h.ctrlKey||h.metaKey))&&(h.preventDefault(),c.openInNewTab(u,{background:!0}))},e[5]=n,e[6]=u,e[7]=c,e[8]=a):a=e[8];const d=a;let l;e[9]!==s||e[10]!==u||e[11]!==c?(l=h=>{s?.(h),!(h.defaultPrevented||!c||h.button!==or)&&(h.preventDefault(),c.openInNewTab(u,{background:!0}))},e[9]=s,e[10]=u,e[11]=c,e[12]=l):l=e[12];const f=l;let p;e[13]===Symbol.for("react.memo_cache_sentinel")?(p={textDecoration:"none",color:"inherit"},e[13]=p):p=e[13];let v;return e[14]!==f||e[15]!==d||e[16]!==r||e[17]!==u?(v=O.jsx($e.Link,{style:p,...r,to:u,onClick:d,onAuxClick:f}),e[14]=f,e[15]=d,e[16]=r,e[17]=u,e[18]=v):v=e[18],v};function cr(){const t=$.c(10),e=$e.useNavigate(),s=$e.useLocation(),{pluginId:n}=mt();n||console.error("usePluginRouter used outside of a plugin context");const r=`/_plugin/${n}`;let i;t[0]!==s.pathname||t[1]!==r?(i=s.pathname.startsWith(r)?s.pathname.slice(r.length)||"/":s.pathname,t[0]=s.pathname,t[1]=r,t[2]=i):i=t[2];const o=i;let c;t[3]!==e||t[4]!==r?(c=(d,l)=>{const{...f}=l??{};d.startsWith("/")?e(`${r}${d}`,f):e(d,f)},t[3]=e,t[4]=r,t[5]=c):c=t[5];const u=c;let a;return t[6]!==s||t[7]!==u||t[8]!==o?(a={location:s,navigate:u,pluginPath:o},t[6]=s,t[7]=u,t[8]=o,t[9]=a):a=t[9],a}class ar{}class lr{_extensions;root;pages;_routes;get extensions(){return this._extensions||[]}get Routes(){if(!this._routes&&this.root)return[{path:"",index:!0,Component:this.root}];if(!this._routes?.length)throw new Error("cannot use plugin without a root page or router");return this._routes}get Window(){if(!this._routes&&this.root)return O.jsx(this.root,{});const e=$e.createMemoryRouter(this._routes||[]);return O.jsx(hn.RouterProvider,{router:e})}registerExtensionPoints(e){return this._extensions=e||[],this}setRootPage(e){return this.root=e,this}withPage(e,s){return this.pages||(this.pages={}),this.pages[e]?(console.warn("Cannot register page with the same name. Please use a different name."),this):(this.pages[e]=s,this)}withRoutes(e){return this._routes=e,this}}var fn=(t=>(t.MISSING_MANIFEST="MISSING_MANIFEST",t.MISSING_PLUGIN="MISSING_PLUGIN",t.MISSING_ENTRYPOINT="MISSING_ENTRYPOINT",t))(fn||{});const pn="omniview/global-search/open";function ur(t={}){window.dispatchEvent(new CustomEvent(pn,{detail:t}))}const gn="omniview/resource/icons";class dr extends E.Component{state={failed:!1,resetToken:this.props.resetToken};static getDerivedStateFromProps(e,s){return e.resetToken!==s.resetToken?{failed:!1,resetToken:e.resetToken}:null}static getDerivedStateFromError(){return{failed:!0}}render(){return this.state.failed?this.props.fallback:this.props.children}}function fr(t,e){try{return t?.schemaVersion!==1||typeof t.resolve!="function"?void 0:t.resolve(e)}catch{return}}function pr(t){const e=$.c(7);let s,n;e[0]!==t?({icon:s,...n}=t,e[0]=t,e[1]=s,e[2]=n):(s=e[1],n=e[2]);const r=n["aria-hidden"]??!0;let i;return e[3]!==s||e[4]!==n||e[5]!==r?(i=O.jsx(s,{...n,"aria-hidden":r}),e[3]=s,e[4]=n,e[5]=r,e[6]=i):i=e[6],i}function gr(t){const e=$.c(17);let s,n,r,i;e[0]!==t?({pluginId:n,resourceKey:i,fallback:s,...r}=t,e[0]=t,e[1]=s,e[2]=n,e[3]=r,e[4]=i):(s=e[1],n=e[2],r=e[3],i=e[4]);const{version:o,contributions:c}=bt(gn);let u;e[5]!==s||e[6]!==r?(u=s===void 0?O.jsx("svg",{width:r.size??16,height:r.size??16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",className:r.className,"aria-hidden":r["aria-hidden"]??!0,children:O.jsx("path",{d:"m12 3 9 5v8l-9 5-9-5V8l9-5Zm0 9 9-4M12 12 3 8m9 4v9"})}):s,e[5]=s,e[6]=r,e[7]=u):u=e[7];const a=u;let d;if(e[8]!==c||e[9]!==a||e[10]!==n||e[11]!==r||e[12]!==i||e[13]!==o){d=Symbol.for("react.early_return_sentinel");e:for(const f of c){if(f.plugin!==n)continue;const p=fr(f.value,i);if(p){d=O.jsx(dr,{resetToken:f,fallback:a,children:O.jsx(E.Suspense,{fallback:a,children:O.jsx(pr,{icon:p,...r})})},JSON.stringify([n,i,o,f.id]));break e}}e[8]=c,e[9]=a,e[10]=n,e[11]=r,e[12]=i,e[13]=o,e[14]=d}else d=e[14];if(d!==Symbol.for("react.early_return_sentinel"))return d;let l;return e[15]!==a?(l=O.jsx(O.Fragment,{children:a}),e[15]=a,e[16]=l):l=e[16],l}function hr(t){const e=$.c(23);let s,n,r;e[0]!==t?({pluginID:s,enabled:r,...n}=t,e[0]=t,e[1]=s,e[2]=n,e[3]=r):(s=e[1],n=e[2],r=e[3]);const i=r===void 0?!0:r,o=G(s),c=i&&!!n.type;let u;e[4]!==o||e[5]!==n.route.connection||e[6]!==c?(u={pluginID:o,connectionID:n.route.connection,enabled:c},e[4]=o,e[5]=n.route.connection,e[6]=c,e[7]=u):u=e[7];const a=oe(u),d=ce(o,n.route.connection),l=i&&!!o&&!!n.route.connection&&!!n.type&&a.phase==="connected";let f;e[8]!==o||e[9]!==n?(f=[o,"resource-v2","resolve-target",n],e[8]=o,e[9]=n,e[10]=f):f=e[10];let p;e[11]!==d||e[12]!==o||e[13]!==l||e[14]!==n?(p=l?y=>{const{signal:S,queryKey:b}=y;return d(b,S,()=>L.ResolveTarget(o,n))}:k.skipToken,e[11]=d,e[12]=o,e[13]=l,e[14]=n,e[15]=p):p=e[15];let v;e[16]!==l||e[17]!==f||e[18]!==p?(v={queryKey:f,queryFn:p,enabled:l,retry:!1,placeholderData:void 0},e[16]=l,e[17]=f,e[18]=p,e[19]=v):v=e[19];const h=k.useQuery(v),g=l&&h.isSuccess&&!h.isFetching?h.data:void 0;let m;return e[20]!==h||e[21]!==g?(m={...h,data:g},e[20]=h,e[21]=g,e[22]=m):m=e[22],m}exports.SyncPolicy=K.SyncPolicy;exports.WatchState=K.WatchState;exports.sameGraphNode=K.sameGraphNode;exports.ALL_SESSIONS_KEY=Ce;exports.BottomDrawerContext=Qt;exports.ConfirmationModalContext=Kt;exports.ConnectionBoundary=ts;exports.ConnectionBoundaryFallback=sn;exports.ErrorTypes=V;exports.ExtensionPointRegistry=Pn;exports.ExtensionPointStore=Jt;exports.ExtensionProvider=Nn;exports.GLOBAL_SEARCH_OPEN_EVENT=pn;exports.HOST_SETTINGS_SCOPE=We;exports.Link=ir;exports.OperationsContext=St;exports.OperationsProvider=In;exports.PluginContext=Ke;exports.PluginContextProvider=Sn;exports.PluginErrorCode=fn;exports.PluginWindow=lr;exports.PluginWindowRootProps=ar;exports.RESOURCE_ICON_EXTENSION_POINT_ID=gn;exports.ResourceIcon=gr;exports.RightDrawerContext=Ut;exports.SettingsContext=vt;exports.SettingsProvider=wn;exports.SnackbarProvider=Ln;exports.WindowActionsContext=Ge;exports.WindowActionsProvider=_n;exports.actionToSnackbar=jt;exports.applyBatch=ut;exports.connectionListQueryKey=en;exports.createErrorHandler=ne;exports.defaultState=Wt;exports.graphChangedEvent=un;exports.isCancelledError=Le;exports.jsonTextToValue=Ys;exports.jsonToValue=pt;exports.navigateActivePage=Mt;exports.openGlobalSearch=ur;exports.parseAppError=le;exports.readCurrentConnectionMetadataString=fs;exports.registerActivePageNavigator=vn;exports.relationshipLabel=er;exports.requireConnectionReady=Fe;exports.resourceQueryKeys=me;exports.scopedSettingID=qt;exports.settingsQueryKey=Lt;exports.showAppError=_e;exports.toRelatedResources=dn;exports.useActiveSyncs=Hs;exports.useBottomDrawer=_t;exports.useConfirmationModal=Os;exports.useConnection=$n;exports.useConnectionMetadata=rs;exports.useConnectionMetadataConnections=as;exports.useConnectionMetadataSelector=us;exports.useConnectionProfiles=Bn;exports.useConnectionReadiness=oe;exports.useConnectionStatus=Gn;exports.useConnections=Wn;exports.useDependencyTree=nr;exports.useEditorSchemas=Ks;exports.useEventBatcher=an;exports.useExec=ys;exports.useExecuteAction=Us;exports.useExtensionPoint=Tn;exports.useExtensionPointSnapshot=bt;exports.useExtensionRegistry=zt;exports.useLogs=ms;exports.useMetricProviders=Ss;exports.useMetricProvidersForResource=cn;exports.useMetricStream=Es;exports.useOperations=ln;exports.usePluginContext=mt;exports.usePluginData=gs;exports.usePluginRouter=cr;exports.usePortForwardSessions=ws;exports.useRefetchOnGraphChange=Je;exports.useRelatedResources=tr;exports.useResolvedPluginId=G;exports.useResolvedResourceTarget=hr;exports.useResource=ks;exports.useResourceActions=Qs;exports.useResourceAreaComponent=Ts;exports.useResourceGraph=sr;exports.useResourceGroups=Ns;exports.useResourceMetrics=bs;exports.useResourceMutations=Ws;exports.useResourcePortForwarder=Rs;exports.useResourceSearch=Ps;exports.useResourceType=Fs;exports.useResourceTypes=qs;exports.useResources=$s;exports.useRightDrawer=hs;exports.useScopeValues=Kn;exports.useScopedSettings=yt;exports.useSettings=rr;exports.useSnackbar=ue;exports.useStreamAction=Zs;exports.useWatchState=Gs;exports.useWindowActions=xn;exports.valueToJSON=Ue;exports.valueToJSONText=gt;exports.withConnectionReady=Mn;