@profoundlogic/coderflow-server 0.2.9 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/base-image/agent-wrapper.sh +7 -8
- package/dist/coder-server.js +1 -1
- package/dist/config/skill-catalog.json +9 -0
- package/dist/config.js +1 -1
- package/dist/lib/agent-keepalive.js +1 -1
- package/dist/lib/api-keys.js +1 -1
- package/dist/lib/apiKeys.js +1 -1
- package/dist/lib/app-server-ports.js +1 -1
- package/dist/lib/auto-judge.js +1 -1
- package/dist/lib/basic-auth.js +1 -1
- package/dist/lib/build-history.js +1 -1
- package/dist/lib/build-output-service.js +1 -1
- package/dist/lib/build-scheduler.js +1 -1
- package/dist/lib/build-service.js +1 -1
- package/dist/lib/ca-certificates.js +1 -1
- package/dist/lib/claude-oauth-refresh.js +1 -1
- package/dist/lib/cli/build.js +1 -1
- package/dist/lib/cli/config-command.js +1 -1
- package/dist/lib/cli/config.js +1 -1
- package/dist/lib/cli/create-user.js +1 -1
- package/dist/lib/cli/init.js +1 -1
- package/dist/lib/cli/jira.js +1 -1
- package/dist/lib/cli/license.js +1 -1
- package/dist/lib/cli/server-manager.js +1 -1
- package/dist/lib/container-credential-sync.js +1 -0
- package/dist/lib/container-tokens.js +1 -1
- package/dist/lib/data-dir.js +1 -1
- package/dist/lib/deployment-history.js +1 -1
- package/dist/lib/deployment-service.js +1 -1
- package/dist/lib/docker-utils.js +1 -1
- package/dist/lib/email.js +1 -1
- package/dist/lib/emailTemplates.js +1 -1
- package/dist/lib/entitlement.js +1 -1
- package/dist/lib/fetch-utils.js +1 -1
- package/dist/lib/git-commit-details-route.js +1 -1
- package/dist/lib/git-history-diff-guardrails.js +1 -1
- package/dist/lib/git-provider-service.js +1 -1
- package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
- package/dist/lib/git-provider-setup/index.js +1 -1
- package/dist/lib/git-provider-setup/setup-factory.js +1 -1
- package/dist/lib/git-provider-setup/setup-interface.js +1 -1
- package/dist/lib/git-providers/azure-devops-provider.js +1 -1
- package/dist/lib/git-providers/github-app-provider.js +1 -1
- package/dist/lib/git-providers/index.js +1 -1
- package/dist/lib/git-providers/provider-factory.js +1 -1
- package/dist/lib/git-providers/provider-interface.js +1 -1
- package/dist/lib/github-urls.js +1 -1
- package/dist/lib/group-objective-linking.js +1 -1
- package/dist/lib/jira-client.js +1 -1
- package/dist/lib/judge-blinding.js +1 -1
- package/dist/lib/logger.js +1 -1
- package/dist/lib/model-fetcher.js +1 -1
- package/dist/lib/notifications.js +1 -1
- package/dist/lib/oidc-auth.js +1 -1
- package/dist/lib/oidc-device-flow.js +1 -1
- package/dist/lib/passwordTokens.js +1 -1
- package/dist/lib/pin-cascade.js +1 -1
- package/dist/lib/provider-accounts.js +1 -1
- package/dist/lib/provider-oauth.js +1 -1
- package/dist/lib/provider-profile.js +1 -1
- package/dist/lib/provider-token-refresh.js +1 -1
- package/dist/lib/request-url.js +1 -1
- package/dist/lib/rewind.js +1 -1
- package/dist/lib/roles.js +1 -1
- package/dist/lib/secrets.js +1 -1
- package/dist/lib/setup-repo-git-auth.js +1 -1
- package/dist/lib/state-capture.js +1 -1
- package/dist/lib/static-files.js +1 -1
- package/dist/lib/task-name-generator.js +1 -1
- package/dist/lib/user-git-oauth.js +1 -1
- package/dist/lib/user-git-tokens.js +1 -1
- package/dist/lib/users.js +1 -1
- package/dist/middleware/requireAuth.js +1 -1
- package/dist/middleware/requireInit.js +1 -1
- package/dist/middleware/requirePermission.js +1 -1
- package/dist/package.json +1 -1
- package/dist/routes/apiKeys.js +1 -1
- package/dist/routes/auth-oidc.js +1 -1
- package/dist/routes/auth.js +1 -1
- package/dist/routes/build.js +1 -1
- package/dist/routes/containers.js +1 -1
- package/dist/routes/deploy-task.js +1 -1
- package/dist/routes/environment-management.js +1 -1
- package/dist/routes/environments.js +1 -1
- package/dist/routes/external-skills.js +1 -1
- package/dist/routes/git-credentials.js +1 -1
- package/dist/routes/git-oauth.js +1 -1
- package/dist/routes/git-provider-setup.js +1 -1
- package/dist/routes/health.js +1 -1
- package/dist/routes/jira.js +1 -1
- package/dist/routes/objective-management.js +1 -1
- package/dist/routes/password.js +1 -1
- package/dist/routes/prompt.js +1 -1
- package/dist/routes/provider-auth.js +1 -1
- package/dist/routes/qa.js +1 -1
- package/dist/routes/settings.js +1 -1
- package/dist/routes/skill-management.js +1 -1
- package/dist/routes/skills.js +1 -1
- package/dist/routes/tasks.js +1 -1
- package/dist/routes/templates.js +1 -1
- package/dist/routes/test-task.js +1 -1
- package/dist/routes/test.js +1 -1
- package/dist/routes/users.js +1 -1
- package/dist/routes/visualizations.js +1 -1
- package/dist/scripts/create-user.js +1 -1
- package/dist/shipped-skills/environment-templates/SKILL.md +32 -109
- package/dist/start.js +1 -1
- package/dist/web-ui/public/activity-detail-modal.js +1 -1
- package/dist/web-ui/public/activity-feed.js +1 -1
- package/dist/web-ui/public/activity-formatters.js +1 -1
- package/dist/web-ui/public/agent-event-parser.js +1 -1
- package/dist/web-ui/public/app.js +1 -1
- package/dist/web-ui/public/approve-dialog.js +1 -1
- package/dist/web-ui/public/comments-widget.js +1 -1
- package/dist/web-ui/public/diff-utils.js +1 -1
- package/dist/web-ui/public/docs/admin/skills.md +1 -1
- package/dist/web-ui/public/environments.html +24 -1
- package/dist/web-ui/public/environments.js +1 -1
- package/dist/web-ui/public/feedback-widget.js +1 -1
- package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
- package/dist/web-ui/public/git-history.js +1 -1
- package/dist/web-ui/public/git-status.js +1 -1
- package/dist/web-ui/public/index.js +1 -1
- package/dist/web-ui/public/login.js +1 -1
- package/dist/web-ui/public/markdown-editor.js +1 -1
- package/dist/web-ui/public/markdown-file-editor.js +1 -1
- package/dist/web-ui/public/modal-maximize.js +1 -1
- package/dist/web-ui/public/notifications.js +1 -1
- package/dist/web-ui/public/server-health.js +1 -1
- package/dist/web-ui/public/settings.js +1 -1
- package/dist/web-ui/public/setup-password.js +1 -1
- package/dist/web-ui/public/skills.css +29 -0
- package/dist/web-ui/public/skills.html +15 -0
- package/dist/web-ui/public/skills.js +1 -1
- package/dist/web-ui/public/sse-client.js +1 -1
- package/dist/web-ui/public/sse-shared-worker.js +1 -1
- package/dist/web-ui/public/task.js +1 -1
- package/dist/web-ui/public/terminal.js +1 -1
- package/dist/web-ui/public/theme.js +1 -1
- package/dist/web-ui/public/users.html +1 -1
- package/dist/web-ui/public/users.js +1 -1
- package/dist/web-ui/public/variant-grouping.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x55cc96,_0x29de4f){const _0x464376=_0x7fe8,_0x316ace=_0x55cc96();while(!![]){try{const _0xdfadd0=parseInt(_0x464376(0x193))/0x1+parseInt(_0x464376(0x19f))/0x2*(parseInt(_0x464376(0x197))/0x3)+parseInt(_0x464376(0x17c))/0x4+-parseInt(_0x464376(0x180))/0x5+parseInt(_0x464376(0x179))/0x6+parseInt(_0x464376(0x19e))/0x7*(parseInt(_0x464376(0x18f))/0x8)+parseInt(_0x464376(0x186))/0x9*(-parseInt(_0x464376(0x185))/0xa);if(_0xdfadd0===_0x29de4f)break;else _0x316ace['push'](_0x316ace['shift']());}catch(_0x5ba601){_0x316ace['push'](_0x316ace['shift']());}}}(_0xcb82,0xd7681));const DEFAULT_DURATION_MS=0xfa;function prefersReducedMotion(){const _0x13cc43=_0x7fe8;try{return window[_0x13cc43(0x178)]&&window['matchMedia'](_0x13cc43(0x18d))[_0x13cc43(0x17f)];}catch{return![];}}function safeCancelAnimations(_0x2d2593){const _0x967d2b=_0x7fe8;if(!_0x2d2593||typeof _0x2d2593[_0x967d2b(0x192)]!==_0x967d2b(0x183))return;try{_0x2d2593[_0x967d2b(0x192)]()[_0x967d2b(0x195)](_0x3577e5=>_0x3577e5['cancel']());}catch{}}function animateRestoreFlip({contentEl:_0x18ee7b,fromRect:_0x4118f7,toRect:_0x159f89,durationMs:_0x57fc1b}){const _0x5375eb=_0x7fe8;if(!_0x18ee7b)return;if(!_0x4118f7||!_0x159f89)return;if(prefersReducedMotion())return;const _0x1b46d0=_0x159f89[_0x5375eb(0x17e)]||0x0,_0x237244=_0x159f89[_0x5375eb(0x19a)]||0x0,_0x5875ed=_0x4118f7['width']||0x0,_0x4ec119=_0x4118f7[_0x5375eb(0x19a)]||0x0;if(_0x1b46d0<=0x0||_0x237244<=0x0||_0x5875ed<=0x0||_0x4ec119<=0x0)return;const _0x2aca53=_0x4118f7['left']-_0x159f89[_0x5375eb(0x184)],_0x12eb32=_0x4118f7[_0x5375eb(0x18a)]-_0x159f89[_0x5375eb(0x18a)],_0x54fdc8=_0x5875ed/_0x1b46d0,_0x2ef615=_0x4ec119/_0x237244;if(!Number[_0x5375eb(0x189)](_0x2aca53)||!Number[_0x5375eb(0x189)](_0x12eb32)||!Number[_0x5375eb(0x189)](_0x54fdc8)||!Number['isFinite'](_0x2ef615))return;safeCancelAnimations(_0x18ee7b);const _0x5c0ec7=_0x18ee7b[_0x5375eb(0x19d)][_0x5375eb(0x182)],_0x101be1=_0x18ee7b['style']['transformOrigin'],_0x53ddb0=_0x18ee7b[_0x5375eb(0x19d)]['willChange'];_0x18ee7b[_0x5375eb(0x19d)][_0x5375eb(0x182)]=_0x5375eb(0x17d),_0x18ee7b[_0x5375eb(0x19d)]['transformOrigin']='top\x20left',_0x18ee7b[_0x5375eb(0x19d)][_0x5375eb(0x1a0)]=_0x5375eb(0x194);const _0x161322=_0x5375eb(0x1a1)+_0x2aca53+_0x5375eb(0x18b)+_0x12eb32+_0x5375eb(0x18c)+_0x54fdc8+',\x20'+_0x2ef615+')',_0x547d3c=_0x18ee7b[_0x5375eb(0x196)]([{'transform':_0x161322},{'transform':'none'}],{'duration':_0x57fc1b,'easing':_0x5375eb(0x190),'fill':'both'}),_0x366c31=()=>{const _0x7a51fc=_0x5375eb;_0x18ee7b['style'][_0x7a51fc(0x182)]=_0x5c0ec7,_0x18ee7b[_0x7a51fc(0x19d)][_0x7a51fc(0x188)]=_0x101be1,_0x18ee7b[_0x7a51fc(0x19d)][_0x7a51fc(0x1a0)]=_0x53ddb0;};_0x547d3c[_0x5375eb(0x199)](_0x5375eb(0x198),_0x366c31,{'once':!![]}),_0x547d3c['addEventListener'](_0x5375eb(0x1a2),_0x366c31,{'once':!![]});}export function toggleModalMaximize(_0x24048d,_0x57b537={}){const _0x3dc582=_0x7fe8;if(!_0x24048d)return;const {storageKey:_0xd9cc2,updateIcon:_0x5a8d5d,onAfterToggle:_0xcc4a44,durationMs:durationMs=DEFAULT_DURATION_MS}=_0x57b537,_0x2df256=_0x24048d[_0x3dc582(0x17a)](_0x3dc582(0x187)),_0x16f925=_0x24048d[_0x3dc582(0x19b)]['contains']('maximized'),_0x38cfc7=!_0x16f925;if(!_0x2df256){_0x24048d[_0x3dc582(0x19b)]['toggle'](_0x3dc582(0x19c)),_0x5a8d5d?.(_0x38cfc7),_0xcc4a44?.(_0x38cfc7);if(_0xd9cc2)try{localStorage['setItem'](_0xd9cc2,String(_0x38cfc7));}catch{}return;}if(_0x16f925&&!prefersReducedMotion()){const _0x4166b7=_0x2df256[_0x3dc582(0x17b)]();_0x24048d['classList'][_0x3dc582(0x18e)](_0x3dc582(0x19c));const _0xe051ae=_0x2df256[_0x3dc582(0x17b)]();animateRestoreFlip({'contentEl':_0x2df256,'fromRect':_0x4166b7,'toRect':_0xe051ae,'durationMs':durationMs});}else _0x24048d[_0x3dc582(0x19b)][_0x3dc582(0x181)]('maximized');_0x5a8d5d?.(_0x38cfc7),_0xcc4a44?.(_0x38cfc7);if(_0xd9cc2)try{localStorage[_0x3dc582(0x191)](_0xd9cc2,String(_0x38cfc7));}catch{}}function _0x7fe8(_0x183eea,_0x5896a6){_0x183eea=_0x183eea-0x178;const _0xcb820c=_0xcb82();let _0x7fe879=_0xcb820c[_0x183eea];if(_0x7fe8['KtZYUM']===undefined){var _0x4a3a59=function(_0x9e6512){const _0x5bc1f7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2d2593='',_0x3577e5='';for(let _0x18ee7b=0x0,_0x4118f7,_0x159f89,_0x57fc1b=0x0;_0x159f89=_0x9e6512['charAt'](_0x57fc1b++);~_0x159f89&&(_0x4118f7=_0x18ee7b%0x4?_0x4118f7*0x40+_0x159f89:_0x159f89,_0x18ee7b++%0x4)?_0x2d2593+=String['fromCharCode'](0xff&_0x4118f7>>(-0x2*_0x18ee7b&0x6)):0x0){_0x159f89=_0x5bc1f7['indexOf'](_0x159f89);}for(let _0x1b46d0=0x0,_0x237244=_0x2d2593['length'];_0x1b46d0<_0x237244;_0x1b46d0++){_0x3577e5+='%'+('00'+_0x2d2593['charCodeAt'](_0x1b46d0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3577e5);};_0x7fe8['YHTgfF']=_0x4a3a59,_0x7fe8['MsGyrQ']={},_0x7fe8['KtZYUM']=!![];}const _0x5cacc1=_0xcb820c[0x0],_0x3d4ecc=_0x183eea+_0x5cacc1,_0x3352e6=_0x7fe8['MsGyrQ'][_0x3d4ecc];return!_0x3352e6?(_0x7fe879=_0x7fe8['YHTgfF'](_0x7fe879),_0x7fe8['MsGyrQ'][_0x3d4ecc]=_0x7fe879):_0x7fe879=_0x3352e6,_0x7fe879;}function _0xcb82(){const _0x15b2bc=['DhjHBNnPDgLVBG','zNvUy3rPB24','BgvMDa','mJK5mezJB1rbEG','mteZmZaXvw5OBeft','lM1VzgfSlwnVBNrLBNq','DhjHBNnMB3jTt3jPz2LU','AxngAw5PDgu','Dg9W','ChGSia','ChGPihnJywXLka','khbYzwzLCNmTCMvKDwnLzc1TB3rPB246ihjLzhvJzsK','CMvTB3zL','mJe4nJa0mhPhwezdAG','zwfZzq','C2v0sxrLBq','z2v0qw5PBwf0Aw9UCW','mtKWodu0s3Div0zy','DhjHBNnMB3jT','zM9YrwfJAa','yw5PBwf0zq','ntC4nde1uw51vMrl','zMLUAxnO','ywrKrxzLBNrmAxn0zw5LCG','AgvPz2H0','y2XHC3nmAxn0','Bwf4Aw1PEMvK','C3r5Bgu','ndjuEvLIAxC','mtrQvMzHCg4','D2LSBenOyw5Nzq','DhjHBNnSyxrLka','y2fUy2vS','Bwf0y2HnzwrPyq','nZG5ntG4mfHTChHZuG','CxvLCNLtzwXLy3rVCG','z2v0qM91BMrPBMDdBgLLBNrszwn0','mZu3mdu3nMPfBK12zW','BM9Uzq','D2LKDgG','Bwf0y2HLCW','mZCXmteZnwLNB1roAW','Dg9Nz2XL'];_0xcb82=function(){return _0x15b2bc;};return _0xcb82();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function _0x1da6(){const _0x4ef116=['BMfTzq','tM90AwzPy2f0Aw9UihbLCM1PC3nPB24GBM90igDYyw50zwq','ChvZAa','DgvZDerLC2nYAxb0Aw9U','rgvWBg95','mZyZntC2tgH0D2nQ','BgvUz3rO','Aw5ZDhj1y3rPB25Z','DgfZAY5ODg1Sp2LKpq','zMfSC2u','mtmWnJC5muHbBK16sG','nZa2otHcExLMAuC','yM9KEq','Dg9vChbLCKnHC2u','mtj4C3rWyxG','zgvWBg95uhjVzMLSzq','y2XVC2u','BM90AwzPy2f0Aw9UCY1LBMfIBgvK','x2jSyw5R','yMfKz2u','zgvMyxvSDf9Hz2vUDa','mtrsq1P6tg8','C2v0sxrLBq','lI4U','zxjYB3i','zM9SBg93vxbiAxn0B3j5','mZK1mti4zujMAK1f','C2XPy2u','q09ervjFquDftLq','rMfPBgvKihrVihjLCxvLC3qGBM90AwzPy2f0Aw9UihbLCM1PC3nPB246','DgfZA0LK','zM9YrwfJAa','DgfZA1r5Cgu','C3rHDhvZ','AgfZ','ic0G','CgvYBwLZC2LVBG','zxHPDenVzgu','C3vIC3rYAw5N','ChjLDMvUDerLzMf1Bhq','zM9JDxm','vw5RBM93BG','rgvWBg95oIa','rMfPBgvKihrVihnOB3CGBM90AwzPy2f0Aw9UoG','DgfZAY0','A2v5','zgvUAwvK','Dw5ZDxbWB3j0zwq','AxnbCNjHEq','l2zHDMLJB24UAwnV','AxntDxbWB3j0zwq','BM90AwzPzwqT','nJaXody0mgjNz3DRDa','B3bLBG','Dhj1zq','DhjPBq','B25dBgLJAW','CMvXDwvZDfbLCM1PC3nPB24','mZuWohfUuu9RtG','D2fYBG','mty2nZCXtMHft0vg','C2LSzw50','DgvZDe5HBwu','y29TCgXLDgvK','B25JBgLJAW','zhvYyxrPB24','zgvWBg95','mJDuEe5Pvg4','mMDOtKrqyG','mJuWvKLyzfLy','vgvZDdOG','z3jHBNrLza','w0zVBgXVDY11Cf0G','zgvZy3jPChrPB24','DgfN','AxnfBMfIBgvK','z2v0sxrLBq'];_0x1da6=function(){return _0x4ef116;};return _0x1da6();}(function(_0x22c90e,_0x1bbdc7){const _0x279bf5=_0x37f2,_0x2b7429=_0x22c90e();while(!![]){try{const _0x1e64ca=parseInt(_0x279bf5(0x208))/0x1*(parseInt(_0x279bf5(0x1de))/0x2)+parseInt(_0x279bf5(0x207))/0x3*(-parseInt(_0x279bf5(0x1fe))/0x4)+-parseInt(_0x279bf5(0x209))/0x5*(-parseInt(_0x279bf5(0x1cf))/0x6)+-parseInt(_0x279bf5(0x1d9))/0x7*(-parseInt(_0x279bf5(0x1c9))/0x8)+-parseInt(_0x279bf5(0x1ce))/0x9+-parseInt(_0x279bf5(0x1f8))/0xa+-parseInt(_0x279bf5(0x200))/0xb*(-parseInt(_0x279bf5(0x1d2))/0xc);if(_0x1e64ca===_0x1bbdc7)break;else _0x2b7429['push'](_0x2b7429['shift']());}catch(_0x2fbf16){_0x2b7429['push'](_0x2b7429['shift']());}}}(_0x1da6,0x51e11));function _0x37f2(_0x2c8902,_0x453042){_0x2c8902=_0x2c8902-0x1c4;const _0x1da636=_0x1da6();let _0x37f2e7=_0x1da636[_0x2c8902];if(_0x37f2['CCutdU']===undefined){var _0x51b300=function(_0x5b5111){const _0x1d9147='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x447f2e='',_0x22aaa5='';for(let _0x156ce9=0x0,_0x24b64f,_0x11b400,_0x1c5bd7=0x0;_0x11b400=_0x5b5111['charAt'](_0x1c5bd7++);~_0x11b400&&(_0x24b64f=_0x156ce9%0x4?_0x24b64f*0x40+_0x11b400:_0x11b400,_0x156ce9++%0x4)?_0x447f2e+=String['fromCharCode'](0xff&_0x24b64f>>(-0x2*_0x156ce9&0x6)):0x0){_0x11b400=_0x1d9147['indexOf'](_0x11b400);}for(let _0x334a24=0x0,_0x42f91f=_0x447f2e['length'];_0x334a24<_0x42f91f;_0x334a24++){_0x22aaa5+='%'+('00'+_0x447f2e['charCodeAt'](_0x334a24)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x22aaa5);};_0x37f2['kBojnD']=_0x51b300,_0x37f2['VFIZrL']={},_0x37f2['CCutdU']=!![];}const _0xbf9c20=_0x1da636[0x0],_0x2cc0dd=_0x2c8902+_0xbf9c20,_0x10f784=_0x37f2['VFIZrL'][_0x2cc0dd];return!_0x10f784?(_0x37f2e7=_0x37f2['kBojnD'](_0x37f2e7),_0x37f2['VFIZrL'][_0x2cc0dd]=_0x37f2e7):_0x37f2e7=_0x10f784,_0x37f2e7;}export const NotificationManager={'isSupported'(){return'Notification'in window;},'isEnabled'(){const _0x5cbdb5=_0x37f2;if(!this[_0x5cbdb5(0x1f6)]())return![];return localStorage[_0x5cbdb5(0x210)](_0x5cbdb5(0x1d5))===_0x5cbdb5(0x1fa);},'setEnabled'(_0x447f2e){const _0x468c14=_0x37f2;localStorage[_0x468c14(0x1da)](_0x468c14(0x1d5),_0x447f2e?_0x468c14(0x1fa):_0x468c14(0x1cd));},'getPermission'(){const _0xf53c5e=_0x37f2;if(!this[_0xf53c5e(0x1f6)]())return _0xf53c5e(0x1f3);return Notification[_0xf53c5e(0x1e8)];},async 'requestPermission'(){const _0x45c1a0=_0x37f2;if(!this[_0x45c1a0(0x1f6)]())return _0x45c1a0(0x1f3);if(Notification[_0x45c1a0(0x1e8)]===_0x45c1a0(0x20b))return _0x45c1a0(0x20b);if(Notification[_0x45c1a0(0x1e8)]===_0x45c1a0(0x1f2))return _0x45c1a0(0x1f2);try{const _0x22aaa5=await Notification[_0x45c1a0(0x1fd)]();return _0x22aaa5;}catch(_0x156ce9){return console[_0x45c1a0(0x1dc)](_0x45c1a0(0x1e1),_0x156ce9),_0x45c1a0(0x1f2);}},async 'show'(_0x24b64f,_0x11b400={}){const _0x40e506=_0x37f2;if(!this[_0x40e506(0x20f)]())return null;if(!this[_0x40e506(0x1f6)]())return console['warn']('Notifications\x20are\x20not\x20supported\x20in\x20this\x20browser'),null;if(Notification['permission']!==_0x40e506(0x20b))return console[_0x40e506(0x1ff)](_0x40e506(0x1c5)),null;try{const _0x1c5bd7=new Notification(_0x24b64f,{'icon':_0x11b400['icon']||_0x40e506(0x1f5),'badge':_0x11b400[_0x40e506(0x1d7)]||_0x40e506(0x1f5),'body':_0x11b400[_0x40e506(0x1d0)]||'','tag':_0x11b400[_0x40e506(0x20e)]||'','requireInteraction':_0x11b400['requireInteraction']||![],'silent':_0x11b400[_0x40e506(0x201)]||![],'data':_0x11b400['data']||{}});_0x11b400['onClick']&&(_0x1c5bd7[_0x40e506(0x204)]=_0x334a24=>{const _0x406a41=_0x40e506;_0x334a24[_0x406a41(0x1eb)](),window[_0x406a41(0x1ec)](),_0x11b400[_0x406a41(0x1fc)](_0x334a24,_0x1c5bd7),_0x1c5bd7['close']();});if(!_0x11b400['requireInteraction']){const _0x42f91f=_0x11b400[_0x40e506(0x205)]||0x1388;setTimeout(()=>{const _0x3530b4=_0x40e506;_0x1c5bd7[_0x3530b4(0x1d4)]();},_0x42f91f);}return _0x1c5bd7;}catch(_0x5148ec){return console['error'](_0x40e506(0x1ef),_0x5148ec),null;}},async 'notifyTaskComplete'(_0x1722cf){const _0x29fb53=_0x37f2,_0x3eb464=_0x1722cf[_0x29fb53(0x1e9)]!==undefined?_0x1722cf[_0x29fb53(0x1e9)]:_0x1722cf['exit_code'],_0x464b3a=_0x1722cf[_0x29fb53(0x1e5)]===_0x29fb53(0x203)&&_0x3eb464===0x0,_0x1a0667=_0x464b3a?'✅\x20Task\x20Completed\x20Successfully':'❌\x20Task\x20Failed';let _0x3e5559;if(_0x1722cf[_0x29fb53(0x1e4)]==='test'){const _0x2e5648=_0x1722cf[_0x29fb53(0x202)]||'Test',_0x2a9fcd=_0x1722cf[_0x29fb53(0x1c7)]||_0x1722cf[_0x29fb53(0x20d)]||'';if(_0x2a9fcd&&_0x2a9fcd['length']>0x0){let _0x51904b=_0x2a9fcd;_0x2a9fcd[_0x29fb53(0x1ca)]>0x50&&(_0x51904b=_0x2a9fcd['substring'](0x0,0x4d)+_0x29fb53(0x1db)),_0x3e5559=_0x29fb53(0x20a)+_0x2e5648+_0x29fb53(0x1e7)+_0x51904b;}else _0x3e5559=_0x29fb53(0x20a)+_0x2e5648;}else{if(_0x1722cf['taskType']===_0x29fb53(0x206)){const _0x1c390f=_0x1722cf[_0x29fb53(0x1d3)]||_0x29fb53(0x1c8),_0x220a66=_0x1722cf['deployDescription']||_0x1722cf[_0x29fb53(0x20d)]||'';if(_0x220a66&&_0x220a66['length']>0x0){let _0x5cebbd=_0x220a66;_0x220a66[_0x29fb53(0x1ca)]>0x50&&(_0x5cebbd=_0x220a66[_0x29fb53(0x1ea)](0x0,0x4d)+_0x29fb53(0x1db)),_0x3e5559=_0x29fb53(0x1ee)+_0x1c390f+_0x29fb53(0x1e7)+_0x5cebbd;}else _0x3e5559=_0x29fb53(0x1ee)+_0x1c390f;}else{const _0x4b79ff=_0x1722cf[_0x29fb53(0x1c4)]?_0x1722cf['name'][_0x29fb53(0x1fb)]():null,_0x11f736=_0x1722cf['envVars']?.[_0x29fb53(0x1e0)]||_0x1722cf['envVars']?.[_0x29fb53(0x1d8)]||_0x29fb53(0x1ed),_0x20a410=_0x11f736['charAt'](0x0)[_0x29fb53(0x1d1)]()+_0x11f736[_0x29fb53(0x1df)](0x1);let _0x2c500c,_0x5f0dc5=![];if(_0x1722cf[_0x29fb53(0x1dd)]&&Array[_0x29fb53(0x1f4)](_0x1722cf[_0x29fb53(0x1dd)])&&_0x1722cf[_0x29fb53(0x1dd)][_0x29fb53(0x1ca)]>0x0){const _0x5861e9=_0x1722cf[_0x29fb53(0x1dd)][_0x1722cf[_0x29fb53(0x1dd)]['length']-0x1];_0x2c500c=_0x5861e9[_0x29fb53(0x1cb)],_0x5f0dc5=!![];}else _0x2c500c=_0x1722cf[_0x29fb53(0x20d)]||_0x1722cf[_0x29fb53(0x1cb)]||_0x1722cf[_0x29fb53(0x1e2)];_0x2c500c[_0x29fb53(0x1ca)]>0x64&&(_0x2c500c=_0x2c500c[_0x29fb53(0x1ea)](0x0,0x61)+_0x29fb53(0x1db));const _0x57137a=_0x5f0dc5?_0x29fb53(0x20c):'';_0x4b79ff?_0x3e5559=_0x4b79ff+'\x0a'+_0x20a410+':\x20'+_0x57137a+_0x2c500c:_0x3e5559=_0x20a410+':\x20'+_0x57137a+_0x2c500c;}}return this['show'](_0x1a0667,{'body':_0x3e5559,'tag':_0x29fb53(0x1f0)+_0x1722cf[_0x29fb53(0x1e2)],'requireInteraction':![],'duration':0x1f40,'data':{'taskId':_0x1722cf['taskId']},'onClick':(_0x29c53f,_0x4f1077)=>{const _0x57f3c2=_0x29fb53;window[_0x57f3c2(0x1f9)](_0x57f3c2(0x1cc)+_0x1722cf['taskId'],_0x57f3c2(0x1d6));}});},'shouldNotify'(_0x2de952,_0x256534){const _0x26c1fe=_0x37f2;if(!this[_0x26c1fe(0x20f)]())return![];if(_0x2de952['status']!==_0x26c1fe(0x203)&&_0x2de952[_0x26c1fe(0x1e5)]!=='failed')return![];if(!_0x256534[_0x26c1fe(0x1e6)](_0x2de952['taskId']))return![];const _0x15cff7=_0x26c1fe(0x1f7)+_0x2de952['taskId'];if(sessionStorage['getItem'](_0x15cff7)==='true')return![];return!![];},'markNotified'(_0x5a3add){const _0x1f3289=_0x37f2;sessionStorage[_0x1f3289(0x1da)](_0x1f3289(0x1f7)+_0x5a3add,_0x1f3289(0x1fa));},'clearNotificationHistory'(){const _0x1ed0ed=_0x37f2,_0x2d1e89=[];for(let _0x5f333c=0x0;_0x5f333c<sessionStorage[_0x1ed0ed(0x1ca)];_0x5f333c++){const _0x31b0e2=sessionStorage[_0x1ed0ed(0x1f1)](_0x5f333c);_0x31b0e2['startsWith'](_0x1ed0ed(0x1f7))&&_0x2d1e89[_0x1ed0ed(0x1c6)](_0x31b0e2);}_0x2d1e89[_0x1ed0ed(0x1e3)](_0x16b517=>sessionStorage['removeItem'](_0x16b517));}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x358927=_0x1d2d;(function(_0x14e84d,_0xac435b){const _0x4c32e8=_0x1d2d,_0x547edc=_0x14e84d();while(!![]){try{const _0x4f7caa=parseInt(_0x4c32e8(0x121))/0x1*(parseInt(_0x4c32e8(0xe8))/0x2)+parseInt(_0x4c32e8(0xc0))/0x3+-parseInt(_0x4c32e8(0xbd))/0x4+-parseInt(_0x4c32e8(0x106))/0x5+-parseInt(_0x4c32e8(0x10a))/0x6*(-parseInt(_0x4c32e8(0x100))/0x7)+parseInt(_0x4c32e8(0x103))/0x8*(-parseInt(_0x4c32e8(0x107))/0x9)+parseInt(_0x4c32e8(0xd9))/0xa;if(_0x4f7caa===_0xac435b)break;else _0x547edc['push'](_0x547edc['shift']());}catch(_0x5a860c){_0x547edc['push'](_0x547edc['shift']());}}}(_0x389c,0x27396));import{API}from'./app.js';let modalInjected=![];const SERVER_HEALTH_MODAL_HTML='\x0a<div\x20id=\x22server-health-modal\x22\x20class=\x22modal\x22\x20hidden>\x0a\x20\x20<div\x20class=\x22modal-overlay\x22></div>\x0a\x20\x20<div\x20class=\x22modal-content\x22>\x0a\x20\x20\x20\x20<div\x20class=\x22modal-header\x22>\x0a\x20\x20\x20\x20\x20\x20<h2>Server\x20Health</h2>\x0a\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22modal-close\x22\x20id=\x22server-health-close\x22\x20aria-label=\x22Close\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<svg\x20width=\x2224\x22\x20height=\x2224\x22\x20viewBox=\x220\x200\x2024\x2024\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222\x22\x20stroke-linecap=\x22round\x22\x20stroke-linejoin=\x22round\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<line\x20x1=\x2218\x22\x20y1=\x226\x22\x20x2=\x226\x22\x20y2=\x2218\x22></line>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<line\x20x1=\x226\x22\x20y1=\x226\x22\x20x2=\x2218\x22\x20y2=\x2218\x22></line>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</svg>\x0a\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<div\x20class=\x22modal-body\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20id=\x22server-health-loading\x22\x20class=\x22loading\x22>Loading\x20server\x20metrics</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20id=\x22server-health-error\x22\x20class=\x22error-message\x22\x20hidden></div>\x0a\x20\x20\x20\x20\x20\x20<div\x20id=\x22server-health-content\x22\x20hidden>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22health-metrics\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-icon\x22>💻</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-details\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-label\x22>CPU\x20Usage</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-value\x22\x20id=\x22cpu-usage\x22>-</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-progress\x22\x20role=\x22progressbar\x22\x20aria-label=\x22CPU\x20usage\x22\x20aria-valuemin=\x220\x22\x20aria-valuemax=\x22100\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-progress-fill\x22\x20id=\x22cpu-progress\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-icon\x22>🧠</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-details\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-label\x22>Memory\x20Usage</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-value\x22\x20id=\x22memory-usage\x22>-</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-progress\x22\x20role=\x22progressbar\x22\x20aria-label=\x22Memory\x20usage\x22\x20aria-valuemin=\x220\x22\x20aria-valuemax=\x22100\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-progress-fill\x22\x20id=\x22memory-progress\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-icon\x22>💾</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-details\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-label\x22>Disk\x20Usage</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-value\x22\x20id=\x22disk-usage\x22>-</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-progress\x22\x20role=\x22progressbar\x22\x20aria-label=\x22Disk\x20usage\x22\x20aria-valuemin=\x220\x22\x20aria-valuemax=\x22100\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-progress-fill\x22\x20id=\x22disk-progress\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-icon\x22>🐳</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-details\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-label\x22>Docker\x20Containers</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-value\x22\x20id=\x22docker-containers\x22>-</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-progress\x22\x20role=\x22progressbar\x22\x20aria-label=\x22Running\x20containers\x20ratio\x22\x20aria-valuemin=\x220\x22\x20aria-valuemax=\x22100\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-progress-fill\x22\x20id=\x22docker-progress\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-card\x20metric-card-wide\x22\x20id=\x22docker-storage-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-icon\x22>📦</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-details\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-label\x22>Docker\x20Storage</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-value\x22\x20id=\x22docker-storage-total\x22>-</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-progress\x22\x20id=\x22docker-storage-progress-wrap\x22\x20role=\x22progressbar\x22\x20aria-label=\x22Docker\x20storage\x20usage\x22\x20aria-valuemin=\x220\x22\x20aria-valuemax=\x22100\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-progress-fill\x22\x20id=\x22docker-storage-progress\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-sub\x22\x20id=\x22docker-storage-available\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-sub\x22\x20id=\x22docker-storage-reclaimable\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22docker-storage-breakdown\x22\x20id=\x22docker-storage-breakdown\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22storage-item\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22storage-label\x22>Images:</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22storage-value\x22\x20id=\x22docker-storage-images\x22>-</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22storage-item\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22storage-label\x22>Containers:</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22storage-value\x22\x20id=\x22docker-storage-containers\x22>-</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22storage-item\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22storage-label\x22>Volumes:</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22storage-value\x22\x20id=\x22docker-storage-volumes\x22>-</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22storage-item\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22storage-label\x22>Build\x20Cache:</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22storage-value\x22\x20id=\x22docker-storage-buildcache\x22>-</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-icon\x22>⏱️</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-details\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-label\x22>Server\x20Uptime</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-value\x22\x20id=\x22server-uptime\x22>-</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-icon\x22>📡</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-details\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-label\x22>User\x20Sessions</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22metric-value\x22\x20id=\x22active-sessions\x22>-</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22health-actions\x20collapsible-section\x22\x20id=\x22cleanup-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22health-actions-header\x20collapsible-toggle\x22\x20id=\x22cleanup-toggle\x22\x20aria-expanded=\x22false\x22\x20aria-controls=\x22cleanup-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22health-actions-title\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<svg\x20class=\x22collapse-chevron\x22\x20width=\x2216\x22\x20height=\x2216\x22\x20viewBox=\x220\x200\x2024\x2024\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222\x22\x20stroke-linecap=\x22round\x22\x20stroke-linejoin=\x22round\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<polyline\x20points=\x229\x2018\x2015\x2012\x209\x206\x22></polyline>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</svg>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Clean\x20Up\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20id=\x22server-health-action-status\x22\x20class=\x22health-action-status\x22\x20aria-live=\x22polite\x22\x20hidden></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22collapsible-content\x22\x20id=\x22cleanup-content\x22\x20hidden>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-cards\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-icon\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<svg\x20width=\x2224\x22\x20height=\x2224\x22\x20viewBox=\x220\x200\x2024\x2024\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222\x22\x20stroke-linecap=\x22round\x22\x20stroke-linejoin=\x22round\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<rect\x20x=\x223\x22\x20y=\x223\x22\x20width=\x2218\x22\x20height=\x2218\x22\x20rx=\x222\x22\x20ry=\x222\x22></rect>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<line\x20x1=\x229\x22\x20y1=\x229\x22\x20x2=\x2215\x22\x20y2=\x2215\x22></line>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<line\x20x1=\x2215\x22\x20y1=\x229\x22\x20x2=\x229\x22\x20y2=\x2215\x22></line>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</svg>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-title\x22>Stop\x20All\x20Containers</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-description\x22>Gracefully\x20stop\x20all\x20running\x20Docker\x20containers.\x20Active\x20coding\x20sessions\x20will\x20be\x20terminated.</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-secondary\x20cleanup-card-btn\x22\x20id=\x22server-stop-containers\x22>Stop</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-icon\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<svg\x20width=\x2224\x22\x20height=\x2224\x22\x20viewBox=\x220\x200\x2024\x2024\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222\x22\x20stroke-linecap=\x22round\x22\x20stroke-linejoin=\x22round\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<polyline\x20points=\x223\x206\x205\x206\x2021\x206\x22></polyline>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<path\x20d=\x22M19\x206v14a2\x202\x200\x200\x201-2\x202H7a2\x202\x200\x200\x201-2-2V6m3\x200V4a2\x202\x200\x200\x201\x202-2h4a2\x202\x200\x200\x201\x202\x202v2\x22></path>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</svg>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-title\x22>Remove\x20Stopped\x20Containers</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-description\x22>Delete\x20all\x20stopped\x20containers\x20to\x20free\x20up\x20disk\x20space.\x20This\x20cannot\x20be\x20undone.</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-secondary\x20cleanup-card-btn\x22\x20id=\x22server-remove-stopped\x22>Remove</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card\x20cleanup-card-danger\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-icon\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<svg\x20width=\x2224\x22\x20height=\x2224\x22\x20viewBox=\x220\x200\x2024\x2024\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222\x22\x20stroke-linecap=\x22round\x22\x20stroke-linejoin=\x22round\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<path\x20d=\x22M12\x202L2\x207l10\x205\x2010-5-10-5z\x22></path>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<path\x20d=\x22M2\x2017l10\x205\x2010-5\x22></path>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<path\x20d=\x22M2\x2012l10\x205\x2010-5\x22></path>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</svg>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-title\x22>Docker\x20System\x20Prune</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22cleanup-card-description\x22>Remove\x20all\x20stopped\x20containers,\x20unused\x20networks,\x20dangling\x20images,\x20and\x20build\x20cache.\x20Frees\x20significant\x20disk\x20space.</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-danger\x20cleanup-card-btn\x22\x20id=\x22server-prune-docker\x22>Prune</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<div\x20class=\x22modal-actions\x22>\x0a\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20id=\x22server-health-refresh\x22\x20class=\x22btn-secondary\x22>Refresh</button>\x0a\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20id=\x22server-health-ok\x22\x20class=\x22btn-primary\x22>OK</button>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a</div>\x0a';function ensureModalExists(){const _0x478932=_0x1d2d;if(modalInjected||document[_0x478932(0xff)]('server-health-modal'))return;const _0x2678a4=document[_0x478932(0x113)]('div');_0x2678a4[_0x478932(0xbc)]=SERVER_HEALTH_MODAL_HTML,document[_0x478932(0x114)][_0x478932(0xcd)](_0x2678a4[_0x478932(0x10f)]),modalInjected=!![];}function _0x389c(){const _0x4cab73=['Aw5JBhvKzq','zg9JA2vYlxn0B3jHz2uTCMvJBgfPBwfIBgu','D2LKDgG','C3rHDhvZvgv4Da','yxjPys1LEhbHBMrLza','rMfPBgvKihrVigXVywqGBwv0CMLJCZOG','lI4U','BwvTB3j5','C2vYDMvYlwHLywX0Ac1Hy3rPB24TC3rHDhvZ','B3bLBLnLCNzLCKHLywX0Ae1VzgfS','C2vYDMvYlwHLywX0Ac1JBg9Zzq','Dg9mB3DLCKnHC2u','CgfYzw50rwXLBwvUDa','zxjYB3i','zg9JA2vYlxbYB2DYzxnZ','z2v0rwXLBwvUDej5swq','mZG5mZrqtKXVDha','C3r5Bgu','lM1VzgfSlw92zxjSyxK','nJyWotuYuujhzLb5','CNvUBMLUzW','zgLZCgXHEq','mti3mJqZnuHtyMrPzq','ouzzuejHzq','zg9JA2vYlxn0B3jHz2uTDM9SDw1LCW','y2XLyw51Cc10B2DNBgu','nJbiv21lDfC','Dxb0Aw1L','zgLZAY11C2fNzq','zg9JA2vYlxn0B3jHz2uTyxzHAwXHyMXL','B25JBgLJAW','zMLYC3rfBgvTzw50q2HPBgq','zM9YrwfJAa','rMfPBgvKihrVigXVywqGC2vYDMvYigHLywX0AcbTzxrYAwnZoG','zg9JA2vYlxn0B3jHz2uTChjVz3jLC3m','y3jLyxrLrwXLBwvUDa','yM9KEq','D2fYBMLUzW','y3b1lxbYB2DYzxnZ','C3rHDhvZlwnYAxrPy2fS','u2vYDMvYignSzwfUDxaGywn0Aw9UigzHAwXLzcaO','zg9JA2vYu3rVCMfNzq','CMvTB3zLu3rVChbLzenVBNrHAw5LCNm','C2vYDMvYlwHLywX0Ac1JB250zw50','AgLKzgvU','C2v0qxr0CMLIDxrL','zMfSC2u','C3rHDhvZ','tg9HzgLUzYbZzxj2zxiGBwv0CMLJCW','mu9lt0PXqG','rMfPBgvKihDOAwXLia','Dg9Nz2XL','zg9JA2vY','zg9JA2vYlxn0B3jHz2uTAw1Hz2vZ','Aw5Uzxjive1m','ntCXnZu2CgHozxPI','C2vYDMvYlwHLywX0Ac1TB2rHBa','CMvJBgfPBwfIBgveAxnWBgf5','nty1ndqWzgnrEu9z','BwvZC2fNzq','Dw5KzwzPBMvK','zxHWyw5Kzwq','CgvYy2vUDa','yxbWBgLJyxrPB24VANnVBG','BwLU','C3vJy2vZCW','C2vYDMvYlwHLywX0Ac1YzwzYzxnO','y2XHC3nmAxn0','A2v5zg93BG','y29UDgfPBMvYCW','C2vYDMvYlwHLywX0Ac1LCNjVCG','yxbWzw5Kq2HPBgq','u3rVChbPBMCGy29UDgfPBMvYCW','C3rVCefSBenVBNrHAw5LCNm','yxjPys12ywX1zw5VDW','zgLZAY1WCM9NCMvZCW','yxzHAwXHyMXLrgLZCgXHEq','zgLZywjSzwq','y2XLyw51Cc1Zzwn0Aw9U','Dg90ywW','Dgv4DenVBNrLBNq','C3rHDhvZlxDHCM5PBMC','C3rHDhvZlw9R','mZG0ode4mfvoAu1SuG','zgLZAW','C2vYDMvYlxvWDgLTzq','CMvTB3zLrxzLBNrmAxn0zw5LCG','y3jPDgLJywW','y3b1','y2XLyw51Cc1JB250zw50','C2vYDMvYlxjLBw92zs1ZDg9WCgvK','uMvTB3zPBMCGC3rVChbLzcbJB250ywLUzxjZ','C2vYDMvYlwHLywX0Ac1SB2fKAw5N','BwvTB3j5lxvZywDL','A2v5','r0vu','ignVBxbSzxrLza','CMvTB3zL','mJm1nZHjBMPmAhC','Chj1BMveB2nRzxjszxnVDxjJzxm','C2vYDMvYlxn0B3aTy29UDgfPBMvYCW','ywrK','zg9JA2vYlxn0B3jHz2uTDg90ywW','zg9JA2vYlxn0B3jHz2uTy29UDgfPBMvYCW','yNvPBgrdywnOzq','CxvLCNLtzwXLy3rVCG'];_0x389c=function(){return _0x4cab73;};return _0x389c();}function _0x1d2d(_0x2e59f4,_0x5b63b7){_0x2e59f4=_0x2e59f4-0xb9;const _0x389c78=_0x389c();let _0x1d2ded=_0x389c78[_0x2e59f4];if(_0x1d2d['LAeSKy']===undefined){var _0x1f5785=function(_0x5a67a9){const _0x4e5b5c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2678a4='',_0x307dfd='';for(let _0x1b7f63=0x0,_0x57d200,_0x591503,_0x5060f1=0x0;_0x591503=_0x5a67a9['charAt'](_0x5060f1++);~_0x591503&&(_0x57d200=_0x1b7f63%0x4?_0x57d200*0x40+_0x591503:_0x591503,_0x1b7f63++%0x4)?_0x2678a4+=String['fromCharCode'](0xff&_0x57d200>>(-0x2*_0x1b7f63&0x6)):0x0){_0x591503=_0x4e5b5c['indexOf'](_0x591503);}for(let _0x425b65=0x0,_0x122fbb=_0x2678a4['length'];_0x425b65<_0x122fbb;_0x425b65++){_0x307dfd+='%'+('00'+_0x2678a4['charCodeAt'](_0x425b65)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x307dfd);};_0x1d2d['NTaaBj']=_0x1f5785,_0x1d2d['KqqdML']={},_0x1d2d['LAeSKy']=!![];}const _0x4a9cc1=_0x389c78[0x0],_0x54398f=_0x2e59f4+_0x4a9cc1,_0x465c57=_0x1d2d['KqqdML'][_0x54398f];return!_0x465c57?(_0x1d2ded=_0x1d2d['NTaaBj'](_0x1d2ded),_0x1d2d['KqqdML'][_0x54398f]=_0x1d2ded):_0x1d2ded=_0x465c57,_0x1d2ded;}function clampPercent(_0x307dfd){const _0x1b050d=_0x1d2d;if(!Number['isFinite'](_0x307dfd))return 0x0;return Math['max'](0x0,Math[_0x1b050d(0xc6)](0x64,Math['round'](_0x307dfd)));}function setMetricProgress(_0x1b7f63,_0x57d200,_0x591503='ok'){const _0x56d536=_0x1d2d,_0x5060f1=document[_0x56d536(0xff)](_0x1b7f63);if(!_0x5060f1)return;const _0x425b65=_0x5060f1[_0x56d536(0xfc)],_0x122fbb=clampPercent(_0x57d200);_0x5060f1[_0x56d536(0x101)][_0x56d536(0xf2)]=_0x122fbb+'%',_0x5060f1['classList'][_0x56d536(0xe7)]('status-ok',_0x56d536(0xd7),_0x56d536(0x117)),_0x5060f1[_0x56d536(0xc9)][_0x56d536(0xeb)](_0x591503==='critical'?_0x56d536(0x117):_0x591503===_0x56d536(0x115)?_0x56d536(0xd7):_0x56d536(0xd8)),_0x425b65&&_0x425b65[_0x56d536(0x11d)](_0x56d536(0xd0),String(_0x122fbb));}function statusFromPercent(_0x2262af){const _0x46a54f=_0x1d2d;if(_0x2262af>=0x5a)return _0x46a54f(0xdd);if(_0x2262af>=0x4b)return _0x46a54f(0x115);return'ok';}async function loadServerHealthMetrics(){const _0x2435e6=_0x1d2d,_0x176c9e=document[_0x2435e6(0xff)](_0x2435e6(0xe2)),_0x11f0a4=document[_0x2435e6(0xff)]('server-health-error'),_0x3a8855=document[_0x2435e6(0xff)](_0x2435e6(0x11b));if(!_0x176c9e||!_0x11f0a4||!_0x3a8855)return;_0x176c9e[_0x2435e6(0xd6)]=_0x2435e6(0x120);try{const _0x36959b=await fetch('/health/metrics',{'method':_0x2435e6(0xe5),'headers':{'Content-Type':_0x2435e6(0xc5)},'credentials':_0x2435e6(0xf0)});if(!_0x36959b['ok'])throw new Error(_0x2435e6(0xf5)+_0x36959b[_0x2435e6(0xf3)]);const _0x4b07e3=await _0x36959b['json']();document[_0x2435e6(0xff)]('cpu-usage')[_0x2435e6(0xd6)]=_0x4b07e3['cpu'][_0x2435e6(0x105)],document[_0x2435e6(0xff)](_0x2435e6(0xe3))[_0x2435e6(0xd6)]=_0x4b07e3[_0x2435e6(0xf7)][_0x2435e6(0x105)],document[_0x2435e6(0xff)](_0x2435e6(0x10c))[_0x2435e6(0xd6)]=_0x4b07e3[_0x2435e6(0xda)][_0x2435e6(0x105)],document[_0x2435e6(0xff)]('docker-containers')[_0x2435e6(0xd6)]=_0x4b07e3[_0x2435e6(0xba)][_0x2435e6(0x105)],document['getElementById'](_0x2435e6(0xdb))[_0x2435e6(0xd6)]=_0x4b07e3[_0x2435e6(0x10b)][_0x2435e6(0x105)],document[_0x2435e6(0xff)]('active-sessions')['textContent']=_0x4b07e3['sessions'][_0x2435e6(0x105)],setMetricProgress(_0x2435e6(0x116),_0x4b07e3[_0x2435e6(0xde)]['percent'],statusFromPercent(_0x4b07e3['cpu'][_0x2435e6(0xc4)])),setMetricProgress('memory-progress',_0x4b07e3[_0x2435e6(0xf7)][_0x2435e6(0xc4)],statusFromPercent(_0x4b07e3[_0x2435e6(0xf7)]['percent'])),setMetricProgress(_0x2435e6(0xd1),_0x4b07e3[_0x2435e6(0xda)]['percent'],statusFromPercent(_0x4b07e3['disk']['percent']));const _0x276370=_0x4b07e3['docker'][_0x2435e6(0xd5)]>0x0?_0x4b07e3[_0x2435e6(0xba)][_0x2435e6(0x104)]/_0x4b07e3[_0x2435e6(0xba)][_0x2435e6(0xd5)]*0x64:0x0;setMetricProgress(_0x2435e6(0xfe),_0x276370);if(_0x4b07e3[_0x2435e6(0x119)]){const _0x52087b=document[_0x2435e6(0xff)]('docker-storage-card');document[_0x2435e6(0xff)](_0x2435e6(0xec))['textContent']=_0x4b07e3[_0x2435e6(0x119)][_0x2435e6(0x105)];const _0x2e2750=document['getElementById'](_0x2435e6(0x10d));_0x4b07e3[_0x2435e6(0x119)][_0x2435e6(0xd2)]?(_0x2e2750[_0x2435e6(0xd6)]=_0x4b07e3['dockerStorage'][_0x2435e6(0xd2)],_0x2e2750[_0x2435e6(0x11c)]=![]):_0x2e2750[_0x2435e6(0x11c)]=!![];document[_0x2435e6(0xff)](_0x2435e6(0xf1))[_0x2435e6(0xd6)]=_0x4b07e3[_0x2435e6(0x119)][_0x2435e6(0xbf)],document[_0x2435e6(0xff)](_0x2435e6(0xbb))['textContent']=_0x4b07e3[_0x2435e6(0x119)]['images'][_0x2435e6(0x105)],document[_0x2435e6(0xff)](_0x2435e6(0xed))['textContent']=_0x4b07e3[_0x2435e6(0x119)][_0x2435e6(0xcb)][_0x2435e6(0x105)],document[_0x2435e6(0xff)](_0x2435e6(0x108))['textContent']=_0x4b07e3[_0x2435e6(0x119)]['volumes']['display'],document[_0x2435e6(0xff)]('docker-storage-buildcache')[_0x2435e6(0xd6)]=_0x4b07e3['dockerStorage'][_0x2435e6(0xee)][_0x2435e6(0x105)],setMetricProgress(_0x2435e6(0x112),_0x4b07e3['dockerStorage'][_0x2435e6(0xc4)],_0x4b07e3['dockerStorage']['status']),_0x52087b[_0x2435e6(0xc9)][_0x2435e6(0xe7)](_0x2435e6(0xd7),'status-critical');if(_0x4b07e3[_0x2435e6(0x119)]['status']===_0x2435e6(0xdd))_0x52087b[_0x2435e6(0xc9)][_0x2435e6(0xeb)](_0x2435e6(0x117));else _0x4b07e3[_0x2435e6(0x119)][_0x2435e6(0x11f)]===_0x2435e6(0x115)&&_0x52087b[_0x2435e6(0xc9)][_0x2435e6(0xeb)](_0x2435e6(0xd7));}_0x176c9e['hidden']=!![],_0x3a8855['hidden']=![];}catch(_0x256413){console[_0x2435e6(0xfd)](_0x2435e6(0x111),_0x256413),_0x176c9e[_0x2435e6(0x11c)]=!![],_0x11f0a4[_0x2435e6(0x11c)]=![],_0x11f0a4[_0x2435e6(0xd6)]='Failed\x20to\x20load\x20server\x20metrics:\x20'+_0x256413[_0x2435e6(0xc1)];}}export async function openServerHealthModal(){const _0x12bcac=_0x1d2d;ensureModalExists();const _0x222a6a=document[_0x12bcac(0xff)](_0x12bcac(0xbe)),_0x243c39=document[_0x12bcac(0xff)](_0x12bcac(0xe2)),_0x41f8d8=document[_0x12bcac(0xff)](_0x12bcac(0xcc)),_0x4605b4=document[_0x12bcac(0xff)](_0x12bcac(0x11b)),_0x6852e8=document['getElementById'](_0x12bcac(0xfa)),_0x576def=document[_0x12bcac(0xff)]('server-health-ok'),_0x222a08=document[_0x12bcac(0xff)](_0x12bcac(0xc8)),_0x16e1ee=document[_0x12bcac(0xff)](_0x12bcac(0xea)),_0x32db41=document[_0x12bcac(0xff)](_0x12bcac(0xe0)),_0x5a81d1=document[_0x12bcac(0xff)]('server-prune-docker'),_0x3eb8cc=document[_0x12bcac(0xff)](_0x12bcac(0xf8)),_0x71bdfd=document[_0x12bcac(0xff)](_0x12bcac(0x109)),_0xeefcf1=document['getElementById'](_0x12bcac(0xdf)),_0x3fe82e=document[_0x12bcac(0xff)](_0x12bcac(0xd4));if(!_0x222a6a)return;_0x222a6a[_0x12bcac(0x11c)]=![],_0x243c39[_0x12bcac(0x11c)]=![],_0x41f8d8['hidden']=!![],_0x4605b4[_0x12bcac(0x11c)]=!![];_0x3eb8cc&&(_0x3eb8cc[_0x12bcac(0x11c)]=!![],_0x3eb8cc[_0x12bcac(0xd6)]='',_0x3eb8cc[_0x12bcac(0xc9)][_0x12bcac(0xe7)]('success','error'));_0x3fe82e&&_0x3fe82e[_0x12bcac(0xc9)][_0x12bcac(0xe7)](_0x12bcac(0xc3));_0xeefcf1&&(_0xeefcf1[_0x12bcac(0x11c)]=!![]);_0x71bdfd&&_0x71bdfd[_0x12bcac(0x11d)](_0x12bcac(0xf4),_0x12bcac(0x11e));const _0x4fd3a4=[_0x16e1ee,_0x32db41,_0x5a81d1,_0x222a08],_0x487a9c=_0x2decc5=>{const _0x2aaac6=_0x12bcac;_0x4fd3a4[_0x2aaac6(0x110)](_0x2dc0a4=>{const _0x379072=_0x2aaac6;if(_0x2dc0a4)_0x2dc0a4[_0x379072(0xd3)]=_0x2decc5;});},_0x206830=(_0x22e16a,_0x10447a='info')=>{const _0x29b54a=_0x12bcac;if(!_0x3eb8cc)return;_0x3eb8cc['hidden']=![],_0x3eb8cc[_0x29b54a(0xd6)]=_0x22e16a,_0x3eb8cc[_0x29b54a(0xc9)]['remove'](_0x29b54a(0xc7),_0x29b54a(0xfd));if(_0x10447a==='success')_0x3eb8cc[_0x29b54a(0xc9)][_0x29b54a(0xeb)](_0x29b54a(0xc7));else _0x10447a==='error'&&_0x3eb8cc['classList'][_0x29b54a(0xeb)]('error');};await loadServerHealthMetrics();const _0x4eee7f=()=>{const _0x55e444=_0x12bcac;_0x222a6a[_0x55e444(0x11c)]=!![],document[_0x55e444(0xdc)](_0x55e444(0xca),_0x3b61ab);},_0x3b61ab=_0x48e69e=>{const _0x14938a=_0x12bcac;_0x48e69e[_0x14938a(0xe4)]==='Escape'&&!_0x222a6a[_0x14938a(0x11c)]&&_0x4eee7f();};_0x6852e8[_0x12bcac(0x10e)]=_0x4eee7f,_0x576def['onclick']=_0x4eee7f,_0x222a08[_0x12bcac(0x10e)]=async()=>{const _0x40306c=_0x12bcac;_0x243c39[_0x40306c(0x11c)]=![],_0x41f8d8[_0x40306c(0x11c)]=!![],_0x4605b4['hidden']=!![],await loadServerHealthMetrics();};const _0x431738=async(_0x182f64,_0x2fa7d8)=>{const _0x199929=_0x12bcac;_0x243c39[_0x199929(0xd6)]=_0x182f64,_0x243c39[_0x199929(0x11c)]=![],_0x41f8d8[_0x199929(0x11c)]=!![],_0x4605b4['hidden']=!![],_0x487a9c(!![]),_0x206830(_0x182f64+_0x199929(0xf6));try{const _0x362f3c=await _0x2fa7d8(),_0x59088e=_0x362f3c?.[_0x199929(0xc1)]||_0x182f64+_0x199929(0xe6);_0x206830(_0x59088e,_0x199929(0xc7));}catch(_0x159d26){console['error'](_0x199929(0x118)+_0x182f64+')',_0x159d26),_0x206830(_0x159d26[_0x199929(0xc1)]||_0x199929(0x122)+_0x182f64[_0x199929(0xfb)](),'error');}finally{await loadServerHealthMetrics(),_0x487a9c(![]);}};_0x16e1ee&&(_0x16e1ee[_0x12bcac(0x10e)]=()=>_0x431738(_0x12bcac(0xce),()=>API[_0x12bcac(0xcf)]()));_0x32db41&&(_0x32db41[_0x12bcac(0x10e)]=()=>_0x431738(_0x12bcac(0xe1),()=>API[_0x12bcac(0x11a)]()));_0x5a81d1&&(_0x5a81d1[_0x12bcac(0x10e)]=()=>_0x431738('Pruning\x20Docker\x20resources',()=>API[_0x12bcac(0xe9)]()));_0x71bdfd&&_0xeefcf1&&_0x3fe82e&&(_0x71bdfd[_0x12bcac(0x10e)]=()=>{const _0xfa7e35=_0x12bcac,_0x1927b9=_0x3fe82e['classList'][_0xfa7e35(0xb9)]('expanded');_0xeefcf1['hidden']=!_0x1927b9,_0x71bdfd[_0xfa7e35(0x11d)]('aria-expanded',_0x1927b9?'true':_0xfa7e35(0x11e));});document['addEventListener'](_0x12bcac(0xca),_0x3b61ab);const _0x20b6ba=_0x222a6a[_0x12bcac(0xef)](_0x12bcac(0x102));_0x20b6ba&&(_0x20b6ba[_0x12bcac(0x10e)]=_0x4eee7f);}export{loadServerHealthMetrics};typeof window!==_0x358927(0xc2)&&(window[_0x358927(0xf9)]=openServerHealthModal);
|
|
1
|
+
const _0x46be89=_0x3187;(function(_0xe820ae,_0x51c736){const _0x5ac699=_0x3187,_0x147d05=_0xe820ae();while(!![]){try{const _0xdd9734=parseInt(_0x5ac699(0xb8))/0x1*(-parseInt(_0x5ac699(0xcc))/0x2)+-parseInt(_0x5ac699(0xe4))/0x3*(-parseInt(_0x5ac699(0xa7))/0x4)+parseInt(_0x5ac699(0xe1))/0x5+-parseInt(_0x5ac699(0xa1))/0x6*(-parseInt(_0x5ac699(0xda))/0x7)+parseInt(_0x5ac699(0xb0))/0x8*(-parseInt(_0x5ac699(0xdf))/0x9)+parseInt(_0x5ac699(0xa0))/0xa*(-parseInt(_0x5ac699(0x8d))/0xb)+parseInt(_0x5ac699(0xc3))/0xc*(parseInt(_0x5ac699(0xbe))/0xd);if(_0xdd9734===_0x51c736)break;else _0x147d05['push'](_0x147d05['shift']());}catch(_0x578970){_0x147d05['push'](_0x147d05['shift']());}}}(_0x147e,0xd4245));import{API}from'./app.js';function _0x147e(){const _0x55f9a9=['Chj1BMveB2nRzxjszxnVDxjJzxm','C2vYDMvYlxvWDgLTzq','ywn0AxzLlxnLC3nPB25Z','Aw5MBW','Dxb0Aw1L','zg9JA2vYlxn0B3jHz2uTChjVz3jLC3m','B3bLBLnLCNzLCKHLywX0Ae1VzgfS','zgLZAW','mJK2ntrdBKPPEgG','C2vYDMvYlwHLywX0Ac1TB2rHBa','zxHWyw5Kzwq','ywrK','CgfYzw50rwXLBwvUDa','C2vYDMvYlwHLywX0Ac1JBg9Zzq','zg9JA2vYlxn0B3jHz2uTDM9SDw1LCW','A2v5','rMfPBgvKihrVigXVywqGC2vYDMvYigHLywX0AcbTzxrYAwnZoG','C2vYDMvYlwHLywX0Ac1LCNjVCG','zxjYB3i','C3rHDhvZlwnYAxrPy2fS','C2vZC2LVBNm','Dg9mB3DLCKnHC2u','mZeXnJK2DeDMsxvI','DM9SDw1LCW','rMfPBgvKihDOAwXLia','ywrKrxzLBNrmAxn0zw5LCG','rxnJyxbL','oti5mdC2m0fUC1DxzW','zg9JA2vYlxn0B3jHz2uTy29UDgfPBMvYCW','mJa1mZu3mePtvNndsW','y3jPDgLJywW','y3jLyxrLrwXLBwvUDa','ntq5zMnHChHj','cJXKAxyGAwq9iNnLCNzLCI1OzwfSDgGTBw9KywWIignSyxnZpsjTB2rHBciGAgLKzgvUpGOGidXKAxyGy2XHC3m9iM1VzgfSlw92zxjSyxKIpJWVzgL2pGOGidXKAxyGy2XHC3m9iM1VzgfSlwnVBNrLBNqIpGOGicaGpgrPDIbJBgfZCZ0IBw9KywWTAgvHzgvYiJ4kicaGicaGpgGYpLnLCNzLCIbizwfSDgG8l2GYpGOGicaGica8yNv0Dg9Uihr5Cgu9iMj1DhrVBIiGy2XHC3m9iM1VzgfSlwnSB3nLiIbPzd0IC2vYDMvYlwHLywX0Ac1JBg9ZzsiGyxjPys1SywjLBd0Iq2XVC2uIpGOGicaGicaGidXZDMCGD2LKDgG9iJi0iIbOzwLNAhq9iJi0iIb2Awv3qM94psiWidaGmJqGmJqIigzPBgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIihn0CM9Rzs1SAw5Ly2fWpsjYB3vUzciGC3rYB2TLlwXPBMvQB2LUpsjYB3vUzci+cIaGicaGicaGica8BgLUzsb4mt0ImtGIihKXpsi2iIb4mJ0InIiGEti9iJe4iJ48l2XPBMu+cIaGicaGicaGica8BgLUzsb4mt0InIiGEte9iJyIihGYpsiXociGEti9iJe4iJ48l2XPBMu+cIaGicaGicaGpc9ZDMC+cIaGicaGidWVyNv0Dg9UpGOGicaGpc9KAxy+cIaGica8zgL2ignSyxnZpsjTB2rHBc1IB2r5iJ4kicaGicaGpgrPDIbPzd0IC2vYDMvYlwHLywX0Ac1SB2fKAw5NiIbJBgfZCZ0IBg9HzgLUzYi+tg9HzgLUzYbZzxj2zxiGBwv0CMLJCZWVzgL2pGOGicaGica8zgL2igLKpsjZzxj2zxiTAgvHBhrOlwvYCM9YiIbJBgfZCZ0IzxjYB3iTBwvZC2fNzsiGAgLKzgvUpJWVzgL2pGOGicaGica8zgL2igLKpsjZzxj2zxiTAgvHBhrOlwnVBNrLBNqIigHPzgrLBJ4kicaGicaGica8zgL2ignSyxnZpsjOzwfSDgGTBwv0CMLJCYi+cIaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTy2fYzci+cIaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1Py29UiJ7WN5k7pc9KAxy+cIaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1KzxrHAwXZiJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTBgfIzwWIpKnqvsbvC2fNztWVzgL2pGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY12ywX1zsiGAwq9iMnWDs11C2fNzsi+ltWVzgL2pGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1WCM9NCMvZCYiGCM9Szt0IChjVz3jLC3nIyxiIigfYAweTBgfIzwW9iKnqvsb1C2fNzsiGyxjPys12ywX1zw1PBJ0ImciGyxjPys12ywX1zw1HEd0ImtaWiJ4kicaGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1WCM9NCMvZCY1MAwXSiIbPzd0Iy3b1lxbYB2DYzxnZiJ48l2rPDJ4kicaGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGicaGpc9KAxy+cIaGicaGicaGica8l2rPDJ4kicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1JyxjKiJ4kicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwLJB24IpVcFP6a8l2rPDJ4kicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwrLDgfPBhmIpGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1SywjLBci+twvTB3j5ifvZywDLpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxzHBhvLiIbPzd0IBwvTB3j5lxvZywDLiJ4Tpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZiIbYB2XLpsjWCM9NCMvZC2jHCIiGyxjPys1SywjLBd0ItwvTB3j5ihvZywDLiIbHCMLHlxzHBhvLBwLUpsiWiIbHCMLHlxzHBhvLBwf4psiXmdaIpGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZlwzPBgWIigLKpsjTzw1VCNKTChjVz3jLC3mIpJWVzgL2pGOGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwnHCMqIpGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTAwnVBIi+8j+sVJWVzgL2pGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTzgv0ywLSCYi+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwXHyMvSiJ5eAxnRifvZywDLpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxzHBhvLiIbPzd0IzgLZAY11C2fNzsi+ltWVzgL2pGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1WCM9NCMvZCYiGCM9Szt0IChjVz3jLC3nIyxiIigfYAweTBgfIzwW9iKrPC2SGDxnHz2uIigfYAweTDMfSDwvTAw49iJaIigfYAweTDMfSDwvTyxG9iJeWmci+cIaGicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTChjVz3jLC3mTzMLSBciGAwq9iMrPC2STChjVz3jLC3mIpJWVzgL2pGOGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwnHCMqIpGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTAwnVBIi+8j+qSZWVzgL2pGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTzgv0ywLSCYi+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwXHyMvSiJ5eB2nRzxiGq29UDgfPBMvYCZWVzgL2pGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY12ywX1zsiGAwq9iMrVy2TLCI1JB250ywLUzxjZiJ4Tpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZiIbYB2XLpsjWCM9NCMvZC2jHCIiGyxjPys1SywjLBd0IuNvUBMLUzYbJB250ywLUzxjZihjHDgLViIbHCMLHlxzHBhvLBwLUpsiWiIbHCMLHlxzHBhvLBwf4psiXmdaIpGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZlwzPBgWIigLKpsjKB2nRzxiTChjVz3jLC3mIpJWVzgL2pGOGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwnHCMqGBwv0CMLJlwnHCMqTD2LKzsiGAwq9iMrVy2TLCI1ZDg9YywDLlwnHCMqIpGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTAwnVBIi+8j+tPJWVzgL2pGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTzgv0ywLSCYi+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwXHyMvSiJ5eB2nRzxiGu3rVCMfNztWVzgL2pGOGicaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY12ywX1zsiGAwq9iMrVy2TLCI1ZDg9YywDLlxrVDgfSiJ4Tpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZiIbPzd0Izg9JA2vYlxn0B3jHz2uTChjVz3jLC3mTD3jHCciGCM9Szt0IChjVz3jLC3nIyxiIigfYAweTBgfIzwW9iKrVy2TLCIbZDg9YywDLihvZywDLiIbHCMLHlxzHBhvLBwLUpsiWiIbHCMLHlxzHBhvLBwf4psiXmdaIpGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxbYB2DYzxnZlwzPBgWIigLKpsjKB2nRzxiTC3rVCMfNzs1WCM9NCMvZCYi+pc9KAxy+cIaGicaGicaGicaGicaGpc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxn1yIiGAwq9iMrVy2TLCI1ZDg9YywDLlwf2ywLSywjSzsi+pc9KAxy+cIaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlxn1yIiGAwq9iMrVy2TLCI1ZDg9YywDLlxjLy2XHAw1HyMXLiJ48l2rPDJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjKB2nRzxiTC3rVCMfNzs1ICMvHA2rVD24IigLKpsjKB2nRzxiTC3rVCMfNzs1ICMvHA2rVD24IpGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IC3rVCMfNzs1PDgvTiJ4kicaGicaGicaGicaGicaGicaGphnWyw4Gy2XHC3m9iNn0B3jHz2uTBgfIzwWIpKLTywDLCZO8l3nWyw4+cIaGicaGicaGicaGicaGicaGidXZCgfUignSyxnZpsjZDg9YywDLlxzHBhvLiIbPzd0Izg9JA2vYlxn0B3jHz2uTAw1Hz2vZiJ4Tpc9ZCgfUpGOGicaGicaGicaGicaGicaGpc9KAxy+cIaGicaGicaGicaGicaGica8zgL2ignSyxnZpsjZDg9YywDLlwL0zw0IpGOGicaGicaGicaGicaGicaGica8C3bHBIbJBgfZCZ0IC3rVCMfNzs1SywjLBci+q29UDgfPBMvYCZO8l3nWyw4+cIaGicaGicaGicaGicaGicaGidXZCgfUignSyxnZpsjZDg9YywDLlxzHBhvLiIbPzd0Izg9JA2vYlxn0B3jHz2uTy29UDgfPBMvYCYi+ltWVC3bHBJ4kicaGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0IC3rVCMfNzs1PDgvTiJ4kicaGicaGicaGicaGicaGicaGphnWyw4Gy2XHC3m9iNn0B3jHz2uTBgfIzwWIpLzVBhvTzxm6pc9ZCgfUpGOGicaGicaGicaGicaGicaGica8C3bHBIbJBgfZCZ0IC3rVCMfNzs12ywX1zsiGAwq9iMrVy2TLCI1ZDg9YywDLlxzVBhvTzxmIpI08l3nWyw4+cIaGicaGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGicaGicaGidXKAxyGy2XHC3m9iNn0B3jHz2uTAxrLBsi+cIaGicaGicaGicaGicaGicaGidXZCgfUignSyxnZpsjZDg9YywDLlwXHyMvSiJ5cDwLSzcbdywnOztO8l3nWyw4+cIaGicaGicaGicaGicaGicaGidXZCgfUignSyxnZpsjZDg9YywDLlxzHBhvLiIbPzd0Izg9JA2vYlxn0B3jHz2uTyNvPBgrJywnOzsi+ltWVC3bHBJ4kicaGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpgrPDIbJBgfZCZ0IBwv0CMLJlwnHCMqIpGOGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTAwnVBIi+4O+X77Ippc9KAxy+cIaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1KzxrHAwXZiJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTBgfIzwWIpLnLCNzLCIbvChrPBwu8l2rPDJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTDMfSDwuIigLKpsjZzxj2zxiTDxb0Aw1LiJ4Tpc9KAxy+cIaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGpc9KAxy+cIaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTy2fYzci+cIaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1Py29UiJ7WN5oHpc9KAxy+cIaGicaGicaGicaGidXKAxyGy2XHC3m9iM1LDhjPyY1KzxrHAwXZiJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTBgfIzwWIpLvZzxiGu2vZC2LVBNm8l2rPDJ4kicaGicaGicaGicaGica8zgL2ignSyxnZpsjTzxrYAwmTDMfSDwuIigLKpsjHy3rPDMuTC2vZC2LVBNmIpI08l2rPDJ4kicaGicaGicaGicaGpc9KAxy+cIaGicaGicaGica8l2rPDJ4kicaGicaGica8l2rPDJ4kicaGicaGica8zgL2ignSyxnZpsjOzwfSDgGTywn0Aw9UCYbJB2XSyxbZAwjSzs1Zzwn0Aw9UiIbPzd0Iy2XLyw51Cc1Zzwn0Aw9UiJ4kicaGicaGicaGidXIDxr0B24GDhLWzt0IyNv0Dg9UiIbJBgfZCZ0IAgvHBhrOlwfJDgLVBNmTAgvHzgvYignVBgXHChnPyMXLlxrVz2DSzsiGAwq9iMnSzwfUDxaTDg9Nz2XLiIbHCMLHlwv4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BgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIihn0CM9Rzs1SAw5Ly2fWpsjYB3vUzciGC3rYB2TLlwXPBMvQB2LUpsjYB3vUzci+cIaGicaGicaGicaGicaGicaGicaGphbHDgGGzd0ItteYidjmmIa3BdeWiduGmtaTns0Xmc01EIi+pc9WyxrOpGOGicaGicaGicaGicaGicaGicaGidXWyxrOigq9iK0Yide3BdeWiduGmtaTnsi+pc9WyxrOpGOGicaGicaGicaGicaGicaGicaGidXWyxrOigq9iK0YideYBdeWiduGmtaTnsi+pc9WyxrOpGOGicaGicaGicaGicaGicaGica8l3n2zZ4kicaGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0Iy2XLyw51Cc1JyxjKlwnVBNrLBNqIpGOGicaGicaGicaGicaGicaGica8zgL2ignSyxnZpsjJBgvHBNvWlwnHCMqTDgL0BguIpKrVy2TLCIbtExn0zw0Guhj1BMu8l2rPDJ4kicaGicaGicaGicaGicaGicaGpgrPDIbJBgfZCZ0Iy2XLyw51Cc1JyxjKlwrLC2nYAxb0Aw9UiJ5szw1VDMuGywXSihn0B3bWzwqGy29UDgfPBMvYCYWGDw51C2vKig5LDhDVCMTZlcbKyw5NBgLUzYbPBwfNzxmSigfUzcbIDwLSzcbJywnOzs4GrNjLzxmGC2LNBMLMAwnHBNqGzgLZAYbZCgfJzs48l2rPDJ4kicaGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGicaGicaGpgj1DhrVBIb0ExbLpsjIDxr0B24IignSyxnZpsjIDg4TzgfUz2vYignSzwfUDxaTy2fYzc1IDg4IigLKpsjZzxj2zxiTChj1BMuTzg9JA2vYiJ5qCNvUztWVyNv0Dg9UpGOGicaGicaGicaGicaGidWVzgL2pGOGicaGicaGicaGica8l2rPDJ4kicaGicaGicaGidWVzgL2pGOGicaGicaGidWVzgL2pGOGicaGica8l2rPDJ4kicaGidWVzgL2pGOGicaGpgrPDIbJBgfZCZ0IBw9KywWTywn0Aw9UCYi+cIaGicaGidXIDxr0B24GDhLWzt0IyNv0Dg9UiIbPzd0IC2vYDMvYlwHLywX0Ac1YzwzYzxnOiIbJBgfZCZ0IyNrUlxnLy29UzgfYEsi+uMvMCMvZAdWVyNv0Dg9UpGOGicaGica8yNv0Dg9Uihr5Cgu9iMj1DhrVBIiGAwq9iNnLCNzLCI1OzwfSDgGTB2SIignSyxnZpsjIDg4TChjPBwfYEsi+t0S8l2j1DhrVBJ4kicaGidWVzgL2pGOGidWVzgL2pGO8l2rPDJ4k','ANnVBG','C3rHDhvZlxDHCM5PBMC','Dgv4DenVBNrLBNq','r0vu','z2v0rwXLBwvUDej5swq','AxngAw5PDgu','zg9JA2vY','zg9JA2vYu3rVCMfNzq','uhj1BMLUzYbeB2nRzxiGCMvZB3vYy2vZ','CMvTB3zL','C2vYDMvYlwHLywX0Ac1JB250zw50','zg9JA2vYlxn0B3jHz2uTy2fYza','CNvUBMLUzW','B25JBgLJAW','C3rVCefSBenVBNrHAw5LCNm','BwvTB3j5','Dw5KzwzPBMvK','mtCXndCWotDctLnNqu0','zg9JA2vYlwnVBNrHAw5LCNm','zgLZCgXHEq','u3rVChbPBMCGy29UDgfPBMvYCW','lI4U','y3b1lxvZywDL','y2XLyw51Cc1JB250zw50','zg9JA2vYlxn0B3jHz2uTyxzHAwXHyMXL','C2vYDMvYlwHLywX0Ac1YzwzYzxnO','C3rHDhvZlw9R','C2vYDMvYlxbYDw5LlwrVy2TLCG','C3vJy2vZCW','C2vYDMvYlwHLywX0Ac1SB2fKAw5N','Aw5Uzxjive1m','BwvTB3j5lxvZywDL','zMLYC3rfBgvTzw50q2HPBgq','C3rHDhvZ','C2vYDMvYlwHLywX0Ac1Hy3rPB24TC3rHDhvZ','l2HLywX0Ac9TzxrYAwnZ','mtbju2ncEva','ndHiEw9ODKS','y2XHC3nmAxn0','zgLZywjSzwq','yxjPys12ywX1zw5VDW','yxzHAwXHyMXLrgLZCgXHEq','y2XLyw51Cc10B2DNBgu','mJa0mJb4shDpz2m','u2vYDMvYignSzwfUDxaGywn0Aw9UigzHAwXLzcaO','zgL2','yxjPys1LEhbHBMrLza','AgLKzgvU','BwLU','zM9YrwfJAa','Bwf4','BwvZC2fNzq','ohbuAfnrDG','yNvPBgrdywnOzq','Dg90ywW','CxvLCNLtzwXLy3rVCG','rMfPBgvKihrVigXVywqGC2vYDMvYig1LDhjPy3m6ia','zg9JA2vYlxn0B3jHz2uTAw1Hz2vZ','CgvYy2vUDa','Aw1Hz2vZ','mtrpzKnoyKi','D2fYBMLUzW','C2v0qxr0CMLIDxrL','y3b1lxbYB2DYzxnZ','y3b1','zg9JA2vYlxn0B3jHz2uTCMvJBgfPBwfIBgu','nti4mtLVD1fHAxe','zgLZAY11C2fNzq','C2vYDMvYlxn0B3aTy29UDgfPBMvYCW','A2v5zg93BG','zMfSC2u','ntGWogLxBwH0uG'];_0x147e=function(){return _0x55f9a9;};return _0x147e();}let modalInjected=![];const SERVER_HEALTH_MODAL_HTML=_0x46be89(0xe5);function ensureModalExists(){const _0x47e1df=_0x46be89;if(modalInjected||document[_0x47e1df(0xea)](_0x47e1df(0xcd)))return;const _0x16f1e6=document[_0x47e1df(0xe3)](_0x47e1df(0xa9));_0x16f1e6[_0x47e1df(0x9a)]=SERVER_HEALTH_MODAL_HTML,document['body']['appendChild'](_0x16f1e6[_0x47e1df(0x9c)]),modalInjected=!![];}function clampPercent(_0x108757){const _0x1de068=_0x46be89;if(!Number[_0x1de068(0xeb)](_0x108757))return 0x0;return Math[_0x1de068(0xae)](0x0,Math[_0x1de068(0xac)](0x64,Math['round'](_0x108757)));}function setMetricProgress(_0x30cbeb,_0x24a3bc,_0xa8692f='ok'){const _0x355a93=_0x46be89,_0xf65628=document[_0x355a93(0xea)](_0x30cbeb);if(!_0xf65628)return;const _0x14e75f=_0xf65628[_0x355a93(0xd0)],_0x4537ac=clampPercent(_0x24a3bc);_0xf65628['style']['width']=_0x4537ac+'%',_0xf65628['classList'][_0x355a93(0xef)](_0x355a93(0x96),_0x355a93(0xe7),_0x355a93(0xd7)),_0xf65628[_0x355a93(0xa2)][_0x355a93(0xcf)](_0xa8692f==='critical'?_0x355a93(0xd7):_0xa8692f===_0x355a93(0xb9)?_0x355a93(0xe7):_0x355a93(0x96)),_0x14e75f&&_0x14e75f['setAttribute'](_0x355a93(0xa4),String(_0x4537ac));}function _0x3187(_0x39d6e6,_0x234224){_0x39d6e6=_0x39d6e6-0x87;const _0x147e1f=_0x147e();let _0x3187c1=_0x147e1f[_0x39d6e6];if(_0x3187['sRxiTA']===undefined){var _0x3c1d9e=function(_0x450db8){const _0x40c396='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x16f1e6='',_0x108757='';for(let _0x30cbeb=0x0,_0x24a3bc,_0xa8692f,_0xf65628=0x0;_0xa8692f=_0x450db8['charAt'](_0xf65628++);~_0xa8692f&&(_0x24a3bc=_0x30cbeb%0x4?_0x24a3bc*0x40+_0xa8692f:_0xa8692f,_0x30cbeb++%0x4)?_0x16f1e6+=String['fromCharCode'](0xff&_0x24a3bc>>(-0x2*_0x30cbeb&0x6)):0x0){_0xa8692f=_0x40c396['indexOf'](_0xa8692f);}for(let _0x14e75f=0x0,_0x4537ac=_0x16f1e6['length'];_0x14e75f<_0x4537ac;_0x14e75f++){_0x108757+='%'+('00'+_0x16f1e6['charCodeAt'](_0x14e75f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x108757);};_0x3187['hXlnqN']=_0x3c1d9e,_0x3187['RSzBbW']={},_0x3187['sRxiTA']=!![];}const _0x16fa3d=_0x147e1f[0x0],_0x13cc3b=_0x39d6e6+_0x16fa3d,_0x70945c=_0x3187['RSzBbW'][_0x13cc3b];return!_0x70945c?(_0x3187c1=_0x3187['hXlnqN'](_0x3187c1),_0x3187['RSzBbW'][_0x13cc3b]=_0x3187c1):_0x3187c1=_0x70945c,_0x3187c1;}function statusFromPercent(_0x4d66aa){const _0x263f97=_0x46be89;if(_0x4d66aa>=0x5a)return _0x263f97(0xe2);if(_0x4d66aa>=0x4b)return'warning';return'ok';}async function loadServerHealthMetrics(){const _0x21307a=_0x46be89,_0x24945c=document[_0x21307a(0xea)](_0x21307a(0x99)),_0x204cc6=document[_0x21307a(0xea)](_0x21307a(0xd5)),_0x27e9ce=document[_0x21307a(0xea)](_0x21307a(0xf0));if(!_0x24945c||!_0x204cc6||!_0x27e9ce)return;_0x24945c[_0x21307a(0xe8)]='Loading\x20server\x20metrics';try{const _0x5996ac=await fetch(_0x21307a(0x9f),{'method':_0x21307a(0xe9),'headers':{'Content-Type':'application/json'},'credentials':'include'});if(!_0x5996ac['ok'])throw new Error('Failed\x20to\x20load\x20metrics:\x20'+_0x5996ac['statusText']);const _0x583c54=await _0x5996ac[_0x21307a(0xe6)]();document[_0x21307a(0xea)](_0x21307a(0x92))[_0x21307a(0xe8)]=_0x583c54[_0x21307a(0xbc)]['display'],document[_0x21307a(0xea)](_0x21307a(0x9b))[_0x21307a(0xe8)]=_0x583c54[_0x21307a(0x8b)][_0x21307a(0x8f)],document['getElementById'](_0x21307a(0xbf))[_0x21307a(0xe8)]=_0x583c54[_0x21307a(0xcb)][_0x21307a(0x8f)],document[_0x21307a(0xea)](_0x21307a(0x8e))[_0x21307a(0xe8)]=_0x583c54[_0x21307a(0xec)]['display'],document[_0x21307a(0xea)](_0x21307a(0xc5))[_0x21307a(0xe8)]=_0x583c54[_0x21307a(0xc8)][_0x21307a(0x8f)],document[_0x21307a(0xea)](_0x21307a(0xc6))[_0x21307a(0xe8)]=_0x583c54[_0x21307a(0xd8)][_0x21307a(0x8f)],setMetricProgress(_0x21307a(0xbb),_0x583c54[_0x21307a(0xbc)][_0x21307a(0xb6)],statusFromPercent(_0x583c54[_0x21307a(0xbc)]['percent'])),setMetricProgress('memory-progress',_0x583c54['memory'][_0x21307a(0xb6)],statusFromPercent(_0x583c54['memory'][_0x21307a(0xb6)])),setMetricProgress('disk-progress',_0x583c54[_0x21307a(0xcb)][_0x21307a(0xb6)],statusFromPercent(_0x583c54[_0x21307a(0xcb)][_0x21307a(0xb6)]));const _0x1c0f4f=_0x583c54[_0x21307a(0xec)][_0x21307a(0xb2)]>0x0?_0x583c54[_0x21307a(0xec)][_0x21307a(0x88)]/_0x583c54['docker'][_0x21307a(0xb2)]*0x64:0x0;setMetricProgress('docker-progress',_0x1c0f4f);if(_0x583c54['dockerStorage']){const _0x5349fc=document[_0x21307a(0xea)](_0x21307a(0x87));document[_0x21307a(0xea)]('docker-storage-total')[_0x21307a(0xe8)]=_0x583c54['dockerStorage'][_0x21307a(0x8f)];const _0x43194d=document[_0x21307a(0xea)](_0x21307a(0x94));_0x583c54['dockerStorage'][_0x21307a(0xa5)]?(_0x43194d[_0x21307a(0xe8)]=_0x583c54[_0x21307a(0xed)][_0x21307a(0xa5)],_0x43194d[_0x21307a(0xab)]=![]):_0x43194d[_0x21307a(0xab)]=!![];document[_0x21307a(0xea)](_0x21307a(0xbd))[_0x21307a(0xe8)]=_0x583c54[_0x21307a(0xed)]['reclaimableDisplay'],document[_0x21307a(0xea)](_0x21307a(0xb5))[_0x21307a(0xe8)]=_0x583c54[_0x21307a(0xed)][_0x21307a(0xb7)][_0x21307a(0x8f)],document[_0x21307a(0xea)](_0x21307a(0xe0))[_0x21307a(0xe8)]=_0x583c54[_0x21307a(0xed)]['containers'][_0x21307a(0x8f)],document['getElementById'](_0x21307a(0xd2))[_0x21307a(0xe8)]=_0x583c54[_0x21307a(0xed)][_0x21307a(0xdb)]['display'],document[_0x21307a(0xea)]('docker-storage-buildcache')['textContent']=_0x583c54[_0x21307a(0xed)][_0x21307a(0xb1)][_0x21307a(0x8f)],setMetricProgress(_0x21307a(0xc9),_0x583c54[_0x21307a(0xed)][_0x21307a(0xb6)],_0x583c54[_0x21307a(0xed)]['status']),_0x5349fc['classList'][_0x21307a(0xef)](_0x21307a(0xe7),_0x21307a(0xd7));if(_0x583c54[_0x21307a(0xed)]['status']===_0x21307a(0xe2))_0x5349fc['classList'][_0x21307a(0xcf)](_0x21307a(0xd7));else _0x583c54['dockerStorage'][_0x21307a(0x9d)]===_0x21307a(0xb9)&&_0x5349fc[_0x21307a(0xa2)]['add'](_0x21307a(0xe7));}_0x24945c['hidden']=!![],_0x27e9ce[_0x21307a(0xab)]=![];}catch(_0x571fb5){console['error'](_0x21307a(0xd4),_0x571fb5),_0x24945c['hidden']=!![],_0x204cc6[_0x21307a(0xab)]=![],_0x204cc6['textContent']=_0x21307a(0xb4)+_0x571fb5['message'];}}export async function openServerHealthModal(){const _0xa75474=_0x46be89;ensureModalExists();const _0x3d5d3f=document[_0xa75474(0xea)](_0xa75474(0xcd)),_0x28deb9=document[_0xa75474(0xea)](_0xa75474(0x99)),_0x28f3bd=document[_0xa75474(0xea)]('server-health-error'),_0x287880=document[_0xa75474(0xea)](_0xa75474(0xf0)),_0xc78ac7=document[_0xa75474(0xea)](_0xa75474(0xd1)),_0xef056e=document[_0xa75474(0xea)]('server-health-ok'),_0x53b4d5=document['getElementById'](_0xa75474(0x95)),_0x346b39=document[_0xa75474(0xea)](_0xa75474(0xc0)),_0x6bbf0d=document['getElementById']('server-remove-stopped'),_0xf80409=document['getElementById'](_0xa75474(0x97)),_0x47cd05=document[_0xa75474(0xea)](_0xa75474(0x9e)),_0xc59acc=document[_0xa75474(0xea)](_0xa75474(0xa6)),_0x24ee03=document[_0xa75474(0xea)](_0xa75474(0x93)),_0x2a92ba=document[_0xa75474(0xea)]('cleanup-section');if(!_0x3d5d3f)return;_0x3d5d3f[_0xa75474(0xab)]=![],_0x28deb9[_0xa75474(0xab)]=![],_0x28f3bd['hidden']=!![],_0x287880[_0xa75474(0xab)]=!![];_0x47cd05&&(_0x47cd05[_0xa75474(0xab)]=!![],_0x47cd05['textContent']='',_0x47cd05[_0xa75474(0xa2)][_0xa75474(0xef)](_0xa75474(0x98),_0xa75474(0xd6)));_0x2a92ba&&_0x2a92ba[_0xa75474(0xa2)][_0xa75474(0xef)](_0xa75474(0xce));_0x24ee03&&(_0x24ee03[_0xa75474(0xab)]=!![]);_0xc59acc&&_0xc59acc['setAttribute'](_0xa75474(0xaa),'false');const _0x20165d=[_0x346b39,_0x6bbf0d,_0xf80409,_0x53b4d5],_0x3f5e47=_0x4e9127=>{const _0x19ffee=_0xa75474;_0x20165d[_0x19ffee(0xad)](_0x57af82=>{const _0x522e58=_0x19ffee;if(_0x57af82)_0x57af82[_0x522e58(0xa3)]=_0x4e9127;});},_0x4a240c=(_0x165e9d,_0x22765e=_0xa75474(0xc7))=>{const _0x798efd=_0xa75474;if(!_0x47cd05)return;_0x47cd05[_0x798efd(0xab)]=![],_0x47cd05['textContent']=_0x165e9d,_0x47cd05[_0x798efd(0xa2)][_0x798efd(0xef)](_0x798efd(0x98),_0x798efd(0xd6));if(_0x22765e===_0x798efd(0x98))_0x47cd05[_0x798efd(0xa2)][_0x798efd(0xcf)](_0x798efd(0x98));else _0x22765e==='error'&&_0x47cd05[_0x798efd(0xa2)][_0x798efd(0xcf)](_0x798efd(0xd6));};await loadServerHealthMetrics();const _0xd82744=()=>{const _0x3e0738=_0xa75474;_0x3d5d3f[_0x3e0738(0xab)]=!![],document['removeEventListener'](_0x3e0738(0xc1),_0x1a525a);},_0x1a525a=_0x2e4a24=>{const _0x49b14b=_0xa75474;_0x2e4a24[_0x49b14b(0xd3)]===_0x49b14b(0xde)&&!_0x3d5d3f[_0x49b14b(0xab)]&&_0xd82744();};_0xc78ac7[_0xa75474(0x89)]=_0xd82744,_0xef056e[_0xa75474(0x89)]=_0xd82744,_0x53b4d5[_0xa75474(0x89)]=async()=>{const _0x96a6ac=_0xa75474;_0x28deb9[_0x96a6ac(0xab)]=![],_0x28f3bd[_0x96a6ac(0xab)]=!![],_0x287880[_0x96a6ac(0xab)]=!![],await loadServerHealthMetrics();};const _0x5979d6=async(_0x33147c,_0x22e0cf)=>{const _0x4f453e=_0xa75474;_0x28deb9['textContent']=_0x33147c,_0x28deb9['hidden']=![],_0x28f3bd[_0x4f453e(0xab)]=!![],_0x287880[_0x4f453e(0xab)]=!![],_0x3f5e47(!![]),_0x4a240c(_0x33147c+_0x4f453e(0x91));try{const _0xce185b=await _0x22e0cf(),_0x3bbfe3=_0xce185b?.[_0x4f453e(0xaf)]||_0x33147c+'\x20completed';_0x4a240c(_0x3bbfe3,'success');}catch(_0x3f5df7){console[_0x4f453e(0xd6)](_0x4f453e(0xa8)+_0x33147c+')',_0x3f5df7),_0x4a240c(_0x3f5df7['message']||_0x4f453e(0xdc)+_0x33147c[_0x4f453e(0xd9)](),_0x4f453e(0xd6));}finally{await loadServerHealthMetrics(),_0x3f5e47(![]);}};_0x346b39&&(_0x346b39['onclick']=()=>_0x5979d6(_0xa75474(0x90),()=>API[_0xa75474(0x8a)]()));_0x6bbf0d&&(_0x6bbf0d[_0xa75474(0x89)]=()=>_0x5979d6('Removing\x20stopped\x20containers',()=>API['removeStoppedContainers']()));_0xf80409&&(_0xf80409[_0xa75474(0x89)]=()=>_0x5979d6(_0xa75474(0xee),()=>API[_0xa75474(0xc4)]()));_0xc59acc&&_0x24ee03&&_0x2a92ba&&(_0xc59acc[_0xa75474(0x89)]=()=>{const _0x133e6c=_0xa75474,_0x2d9007=_0x2a92ba[_0x133e6c(0xa2)]['toggle']('expanded');_0x24ee03['hidden']=!_0x2d9007,_0xc59acc[_0x133e6c(0xba)]('aria-expanded',_0x2d9007?'true':_0x133e6c(0xc2));});document[_0xa75474(0xdd)]('keydown',_0x1a525a);const _0x1bec4d=_0x3d5d3f[_0xa75474(0xb3)]('.modal-overlay');_0x1bec4d&&(_0x1bec4d[_0xa75474(0x89)]=_0xd82744);}export{loadServerHealthMetrics};typeof window!==_0x46be89(0x8c)&&(window[_0x46be89(0xca)]=openServerHealthModal);
|