@profoundlogic/coderflow-server 0.8.5 → 0.8.7
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/Dockerfile +3 -2
- package/dist/base-image/agent-wrapper.sh +7 -2
- package/dist/coder-server.js +1 -1
- package/dist/config.js +1 -1
- package/dist/lib/agent-keepalive.js +1 -1
- package/dist/lib/agent-models.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/automation-service.js +1 -1
- package/dist/lib/basic-auth.js +1 -1
- package/dist/lib/bindings.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/cleanup-users.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/grant-admin.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/list-roles.js +1 -1
- package/dist/lib/cli/list-users.js +1 -1
- package/dist/lib/cli/server-manager.js +1 -1
- package/dist/lib/cli/set-password.js +1 -1
- package/dist/lib/compression-filter.js +1 -1
- package/dist/lib/config-migration.js +1 -1
- package/dist/lib/container-credential-sync.js +1 -1
- 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/external-connections.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/ibmi-sync.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/memory-utils.js +1 -1
- package/dist/lib/migration-to-scoped-rbac.js +1 -1
- package/dist/lib/model-fetcher.js +1 -1
- package/dist/lib/notifications.js +1 -1
- package/dist/lib/objective-context.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/permission-resolver.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/rbac-user-state.js +1 -1
- package/dist/lib/request-url.js +1 -1
- package/dist/lib/rewind.js +1 -1
- package/dist/lib/role-definitions.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/slack-service.js +1 -0
- package/dist/lib/state-capture.js +1 -1
- package/dist/lib/static-files.js +1 -1
- package/dist/lib/task-aliases.js +1 -1
- package/dist/lib/task-container-init.js +1 -1
- package/dist/lib/task-context-usage.js +1 -1
- package/dist/lib/task-name-format.js +1 -1
- package/dist/lib/task-name-generator.js +1 -1
- package/dist/lib/task-source-metadata.js +1 -1
- package/dist/lib/teams.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/playwright.config.js +1 -1
- package/dist/playwright.task-terminal.config.js +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/automations.js +1 -1
- package/dist/routes/bindings.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/logs.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/roles.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/slack.js +1 -0
- package/dist/routes/stats.js +1 -1
- package/dist/routes/tasks.js +1 -1
- package/dist/routes/teams.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/scripts/migrate-config-to-data-dir.js +1 -1
- 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/admin.css +60 -0
- package/dist/web-ui/public/admin.html +6 -0
- package/dist/web-ui/public/admin.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/automation-links.js +1 -1
- package/dist/web-ui/public/automation-schedule.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/environments.js +1 -1
- package/dist/web-ui/public/feedback-widget.js +1 -1
- package/dist/web-ui/public/file-selection-tree.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/ibmi-file-filter.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/permissions.js +1 -1
- package/dist/web-ui/public/pr-dialog.js +1 -1
- package/dist/web-ui/public/roles.js +1 -1
- package/dist/web-ui/public/settings.html +146 -0
- 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.js +1 -1
- package/dist/web-ui/public/sse-client.js +1 -1
- package/dist/web-ui/public/sse-client.transport-warning.js +1 -0
- package/dist/web-ui/public/sse-shared-worker.js +1 -1
- package/dist/web-ui/public/task-judging-helpers.js +1 -1
- package/dist/web-ui/public/task.js +1 -1
- package/dist/web-ui/public/teams.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.js +1 -1
- package/dist/web-ui/public/variant-grouping.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{API,Utils,initializeAdminMenu}from'./app.js';import{initTheme,mountThemeToggle}from'./theme.js';const HEALTH_REFRESH_INTERVAL_MS=0x7530,LOG_SEARCH_DEBOUNCE_MS=0xfa,LOG_ORDER_ASC='asc',LOG_ORDER_DESC='desc',RESTART_POLL_INTERVAL_MS=0x7d0,RESTART_POLL_MAX_ATTEMPTS=0x1e,RESTART_MIN_SUCCESS_DELAY_MS=0x1b58,NUMBER_FORMATTER=new Intl['NumberFormat'](),state={'currentSection':'health','environments':[],'health':{'loaded':![],'request':null,'autoRefreshTimer':null,'versionChecked':![],'currentVersion':null,'latestVersion':null,'installCommand':null,'updateEnabled':![],'hasRestartCommand':![],'updateInProgress':![],'restartInProgress':![],'updateAvailable':![]},'logs':{'loaded':![],'request':null,'entries':[],'total':0x0,'minLevel':'INFO','level':'ALL','order':LOG_ORDER_ASC,'search':'','maxEntries':0x3e8,'stream':null,'streamState':'paused','live':![],'autoScroll':!![],'searchTimer':null},'usage':{'loaded':![],'request':null,'days':'30','environment':''}};document['addEventListener']('DOMContentLoaded',initialize);async function initialize(){try{initTheme(),mountThemeToggle();const _0x2187a8=await checkAdminAccess();await initializeAdminMenu(_0x2187a8),setupEventListeners(),await loadEnvironmentOptions(),document['getElementById']('admin-loading')['hidden']=!![],document['getElementById']('admin-content')['hidden']=![];const _0x2a2e5e=getSessionValue('admin-health-auto-refresh');if(_0x2a2e5e!==null){const _0x49b633=document['getElementById']('health-auto-refresh');if(_0x49b633)_0x49b633['checked']=_0x2a2e5e!=='false';}const _0x1f409f=getSessionValue('admin-logs-order');(_0x1f409f===LOG_ORDER_ASC||_0x1f409f===LOG_ORDER_DESC)&&(state['logs']['order']=_0x1f409f);syncLogOrderUi();const _0x2ea00a=getSessionValue('admin-active-section'),_0x5301f9=['health','logs','usage']['includes'](_0x2ea00a)?_0x2ea00a:'health';await switchSection(_0x5301f9);}catch(_0x1b7534){console['error']('Failed\x20to\x20initialize\x20Server\x20Administration\x20page',_0x1b7534),document['getElementById']('admin-loading')['hidden']=!![],document['getElementById']('admin-error')['hidden']=![],document['getElementById']('admin-error-message')['textContent']=_0x1b7534['message']||'Unknown\x20error';}}async function checkAdminAccess(){try{const _0x5b958c=await API['getCurrentUser']();if(!window['Permissions']?.['hasServerPermission'](_0x5b958c,'*')){Utils['showToast']('Access\x20denied:\x20Admin\x20privileges\x20required','error'),setTimeout(()=>{window['location']['href']='index.html';},0x7d0);throw new Error('Access\x20denied');}return _0x5b958c;}catch(_0x23ede9){_0x23ede9['message']!=='Access\x20denied'&&(window['location']['href']='login.html');throw _0x23ede9;}}function setupEventListeners(){document['querySelectorAll']('.settings-nav-item')['forEach'](_0x4bac50=>{_0x4bac50['addEventListener']('click',()=>switchSection(_0x4bac50['dataset']['section']));}),document['getElementById']('retry-admin-btn')?.['addEventListener']('click',()=>{window['location']['reload']();}),document['getElementById']('health-refresh-btn')?.['addEventListener']('click',()=>loadHealth({'showLoading':!![]})),document['getElementById']('retry-health-btn')?.['addEventListener']('click',()=>loadHealth({'showLoading':!![]})),document['getElementById']('health-auto-refresh')?.['addEventListener']('change',syncHealthAutoRefresh),document['getElementById']('health-check-updates-btn')?.['addEventListener']('click',()=>loadVersionStatus({'checkUpdates':!![]})),document['getElementById']('health-copy-install-btn')?.['addEventListener']('click',copyInstallCommand),document['getElementById']('health-update-btn')?.['addEventListener']('click',applyUpdate),document['getElementById']('health-restart-btn')?.['addEventListener']('click',showRestartConfirmation),document['getElementById']('confirm-restart-btn')?.['addEventListener']('click',confirmRestart),document['getElementById']('cancel-restart-btn')?.['addEventListener']('click',hideRestartModal),document['getElementById']('close-restart-modal')?.['addEventListener']('click',hideRestartModal),document['querySelector']('#restart-modal\x20.modal-overlay')?.['addEventListener']('click',hideRestartModal),document['getElementById']('restart-overlay-retry')?.['addEventListener']('click',()=>waitForServerRestart({'manualRetry':!![]})),document['getElementById']('server-stop-containers')?.['addEventListener']('click',()=>runCleanupAction('Stopping\x20containers',()=>API['stopAllContainers']())),document['getElementById']('server-remove-stopped')?.['addEventListener']('click',()=>runCleanupAction('Removing\x20stopped\x20containers',()=>API['removeStoppedContainers']())),document['getElementById']('server-prune-docker')?.['addEventListener']('click',()=>runCleanupAction('Pruning\x20Docker\x20resources',()=>API['pruneDockerResources']())),document['getElementById']('cleanup-toggle')?.['addEventListener']('click',toggleCleanupSection),document['getElementById']('logs-refresh-btn')?.['addEventListener']('click',()=>loadLogs({'showLoading':!![]})),document['getElementById']('retry-logs-btn')?.['addEventListener']('click',()=>loadLogs({'showLoading':!![]})),document['getElementById']('logs-live-toggle')?.['addEventListener']('click',toggleLogsLiveMode),document['getElementById']('logs-clear-btn')?.['addEventListener']('click',clearDisplayedLogs),document['getElementById']('logs-search-input')?.['addEventListener']('input',handleLogsSearchInput),document['querySelectorAll']('#logs-level-filters\x20.admin-filter-btn')['forEach'](_0xfa726=>{_0xfa726['addEventListener']('click',()=>{state['logs']['level']=_0xfa726['dataset']['level']||'ALL',updateActiveFilterButtons('#logs-level-filters',state['logs']['level']),loadLogs({'showLoading':![]});});}),document['querySelectorAll']('#logs-order-toggle\x20.admin-filter-btn')['forEach'](_0x177f9d=>{_0x177f9d['addEventListener']('click',()=>{setLogOrder(_0x177f9d['dataset']['order'],{'focusLiveEdge':!![]});});}),document['getElementById']('logs-container')?.['addEventListener']('scroll',updateLogAutoScrollState),document['getElementById']('usage-refresh-btn')?.['addEventListener']('click',()=>loadUsage({'showLoading':!![]})),document['getElementById']('retry-usage-btn')?.['addEventListener']('click',()=>loadUsage({'showLoading':!![]})),document['getElementById']('usage-environment-filter')?.['addEventListener']('change',_0x25ffd1=>{state['usage']['environment']=_0x25ffd1['target']['value']||'',loadUsage({'showLoading':![]});}),document['querySelectorAll']('#usage-period-buttons\x20.admin-filter-btn')['forEach'](_0x419697=>{_0x419697['addEventListener']('click',()=>{state['usage']['days']=_0x419697['dataset']['days']||'30',updateActiveFilterButtons('#usage-period-buttons',state['usage']['days']),loadUsage({'showLoading':![]});});});}async function switchSection(_0x3b5155){if(!_0x3b5155)return;document['querySelectorAll']('.settings-nav-item')['forEach'](_0x5becf8=>{const _0x1dcda3=_0x5becf8['dataset']['section']===_0x3b5155;_0x5becf8['classList']['toggle']('active',_0x1dcda3),_0x5becf8['setAttribute']('aria-selected',String(_0x1dcda3));}),document['querySelectorAll']('.settings-panel')['forEach'](_0x4e9980=>{const _0x3d8cab=_0x4e9980['id']==='section-'+_0x3b5155;_0x4e9980['hidden']=!_0x3d8cab,_0x4e9980['classList']['toggle']('active',_0x3d8cab);}),state['currentSection']=_0x3b5155,setSessionValue('admin-active-section',_0x3b5155),_0x3b5155!=='health'&&stopHealthAutoRefresh(),_0x3b5155!=='logs'&&stopLogStream(),_0x3b5155==='health'&&(syncHealthAutoRefresh(),await loadHealth({'showLoading':!state['health']['loaded']})),_0x3b5155==='logs'&&(await loadLogs({'showLoading':!state['logs']['loaded']}),state['logs']['live']?startLogStream():updateLogsLiveUi()),_0x3b5155==='usage'&&await loadUsage({'showLoading':!state['usage']['loaded']});}function getSessionValue(_0x37e901){try{return sessionStorage['getItem'](_0x37e901);}catch{return null;}}function setSessionValue(_0x5adc38,_0x17a67c){try{sessionStorage['setItem'](_0x5adc38,_0x17a67c);}catch{}}async function loadEnvironmentOptions(){const _0x187329=await API['get']('/environments');state['environments']=(_0x187329['environments']||[])['map'](_0x349746=>_0x349746?.['name'])['filter'](Boolean)['sort']((_0x5420c6,_0x5f19fa)=>_0x5420c6['localeCompare'](_0x5f19fa));const _0xfd535f=document['getElementById']('usage-environment-filter');if(!_0xfd535f)return;_0xfd535f['innerHTML']='<option\x20value=\x22\x22>All\x20environments</option>'+state['environments']['map'](_0x2a5974=>'<option\x20value=\x22'+Utils['escapeHtml'](_0x2a5974)+'\x22>'+Utils['escapeHtml'](_0x2a5974)+'</option>')['join'](''),_0xfd535f['value']=state['usage']['environment'];}function syncHealthAutoRefresh(){const _0x228e59=document['getElementById']('health-auto-refresh');if(_0x228e59)setSessionValue('admin-health-auto-refresh',String(_0x228e59['checked']));const _0x1cdab8=state['currentSection']==='health'&&!!_0x228e59?.['checked'];stopHealthAutoRefresh();if(!_0x1cdab8)return;state['health']['autoRefreshTimer']=window['setInterval'](()=>{loadHealth({'showLoading':![]});},HEALTH_REFRESH_INTERVAL_MS);}function stopHealthAutoRefresh(){state['health']['autoRefreshTimer']&&(clearInterval(state['health']['autoRefreshTimer']),state['health']['autoRefreshTimer']=null);}async function loadHealth({showLoading:showLoading=![]}={}){if(state['health']['request'])return state['health']['request'];return state['health']['request']=((async()=>{const _0x5a8787=document['getElementById']('health-loading'),_0x899752=document['getElementById']('health-error'),_0x1bcd8c=document['getElementById']('health-content');(showLoading||!state['health']['loaded'])&&(_0x5a8787['hidden']=![],_0x899752['hidden']=!![],_0x1bcd8c['hidden']=!![]);try{const [_0xb42425]=await Promise['all']([API['get']('/health/metrics'),loadUpdateSettings()['catch'](_0x508ec1=>{console['error']('Failed\x20to\x20load\x20update\x20settings',_0x508ec1),state['health']['updateEnabled']=![],state['health']['hasRestartCommand']=![],syncHealthActionButtons();})]);renderHealthMetrics(_0xb42425),!state['health']['currentVersion']&&await loadVersionStatus({'checkUpdates':![]}),_0x5a8787['hidden']=!![],_0x899752['hidden']=!![],_0x1bcd8c['hidden']=![],state['health']['loaded']=!![];}catch(_0x529db8){console['error']('Failed\x20to\x20load\x20server\x20metrics',_0x529db8),_0x5a8787['hidden']=!![],_0x899752['hidden']=![],_0x1bcd8c['hidden']=!![],document['getElementById']('health-error-message')['textContent']=_0x529db8['message']||'Unknown\x20error';}finally{state['health']['request']=null;}})()),state['health']['request'];}function syncHealthActionButtons(){const _0xe038d3=document['getElementById']('health-update-btn'),_0x2606bb=document['getElementById']('health-restart-btn');if(!_0xe038d3||!_0x2606bb)return;const _0x48f5b6=state['health']['updateEnabled'],_0x5246c3=_0x48f5b6&&state['health']['versionChecked']&&state['health']['updateAvailable'];_0xe038d3['hidden']=!_0x5246c3,_0xe038d3['disabled']=state['health']['updateInProgress']||state['health']['restartInProgress']||!state['health']['latestVersion'],_0xe038d3['textContent']=state['health']['updateInProgress']?'Updating...':'Update\x20Server',_0x2606bb['hidden']=!_0x48f5b6,_0x2606bb['disabled']=state['health']['updateInProgress']||state['health']['restartInProgress'];}function setUpdateOutput({status:_0x8740f5,output:_0x43cee8}){const _0x10a35c=document['getElementById']('health-update-output-wrap'),_0x54f96a=document['getElementById']('health-update-status'),_0x1bfafd=document['getElementById']('health-update-output');if(!_0x10a35c||!_0x54f96a||!_0x1bfafd)return;const _0x2efaf7=_0x8740f5||'';_0x10a35c['hidden']=![],_0x54f96a['className']='admin-update-status',_0x2efaf7&&_0x54f96a['classList']['add'](_0x2efaf7),_0x54f96a['textContent']=_0x2efaf7==='success'?'Success':_0x2efaf7==='error'?'Failed':'In\x20Progress',_0x1bfafd['textContent']=_0x43cee8||'No\x20output\x20returned.';}function buildCommandOutput(_0x4d52b1,_0x1d777a){const _0x2c4d4e=[];typeof _0x4d52b1==='string'&&_0x4d52b1['trim']()&&_0x2c4d4e['push'](_0x4d52b1['trim']());if(typeof _0x1d777a==='string'&&_0x1d777a['trim']()){const _0x4d30d1=_0x1d777a['trim'](),_0x1ebca0=_0x2c4d4e['some'](_0x4c6446=>_0x4c6446['includes'](_0x4d30d1));!_0x1ebca0&&_0x2c4d4e['push']('Error:\x0a'+_0x4d30d1);}return _0x2c4d4e['join']('\x0a\x0a');}function showRestartOverlay({title:_0x50eb22,message:_0x1ec343,showRetry:showRetry=![]}){const _0x1a91c8=document['getElementById']('health-restart-overlay'),_0xdf673f=document['getElementById']('restart-overlay-title'),_0xd188f4=document['getElementById']('restart-overlay-message'),_0x57e723=document['getElementById']('restart-overlay-retry');if(!_0x1a91c8||!_0xdf673f||!_0xd188f4||!_0x57e723)return;_0xdf673f['textContent']=_0x50eb22,_0xd188f4['textContent']=_0x1ec343,_0x57e723['hidden']=!showRetry,_0x1a91c8['hidden']=![];}function hideRestartOverlay(){const _0x411e61=document['getElementById']('health-restart-overlay');_0x411e61&&(_0x411e61['hidden']=!![]);}function sleep(_0x1e80c8){return new Promise(_0x1896d0=>{window['setTimeout'](_0x1896d0,_0x1e80c8);});}async function loadUpdateSettings(){const _0x19ec41=await API['getUpdateSettings']();return state['health']['updateEnabled']=!!_0x19ec41['enabled'],state['health']['hasRestartCommand']=!!_0x19ec41['hasRestartCommand'],syncHealthActionButtons(),_0x19ec41;}async function applyUpdate(){if(state['health']['updateInProgress']||!state['health']['latestVersion'])return;state['health']['updateInProgress']=!![],syncHealthActionButtons(),setUpdateOutput({'status':'in-progress','output':'Applying\x20server\x20update\x20to\x20'+state['health']['latestVersion']+'...'});try{const _0x2986c5=await API['applyServerUpdate'](state['health']['latestVersion']),_0x12bf84=buildCommandOutput(_0x2986c5['output'],_0x2986c5['error']);_0x2986c5['success']?(setUpdateOutput({'status':'success','output':_0x12bf84||'Server\x20update\x20to\x20'+state['health']['latestVersion']+'\x20completed.'}),Utils['showSuccess']('Server\x20update\x20to\x20'+state['health']['latestVersion']+'\x20completed')):(setUpdateOutput({'status':'error','output':_0x12bf84||'Server\x20update\x20failed\x20without\x20additional\x20output.'}),Utils['showError'](_0x2986c5['error']||'Server\x20update\x20failed'));}catch(_0x14b0f1){setUpdateOutput({'status':'error','output':buildCommandOutput(_0x14b0f1['output'],_0x14b0f1['commandError']||_0x14b0f1['message'])||'Failed\x20to\x20apply\x20server\x20update.'}),Utils['showError'](_0x14b0f1['message']||'Failed\x20to\x20apply\x20server\x20update');}finally{state['health']['updateInProgress']=![],syncHealthActionButtons();}}function showRestartConfirmation(){if(!state['health']['updateEnabled']||state['health']['restartInProgress'])return;const _0x369758=document['getElementById']('restart-modal');_0x369758&&(_0x369758['hidden']=![]);}function hideRestartModal(){const _0x5e73c8=document['getElementById']('restart-modal');_0x5e73c8&&(_0x5e73c8['hidden']=!![]);}async function confirmRestart(){if(state['health']['restartInProgress'])return;hideRestartModal(),state['health']['restartInProgress']=!![],syncHealthActionButtons();try{await API['restartServer'](),await waitForServerRestart();}catch(_0x55d319){state['health']['restartInProgress']=![],syncHealthActionButtons(),hideRestartOverlay(),Utils['showError'](_0x55d319['message']||'Failed\x20to\x20restart\x20server');}}async function waitForServerRestart({manualRetry:manualRetry=![]}={}){state['health']['restartInProgress']=!![],syncHealthActionButtons(),stopHealthAutoRefresh(),showRestartOverlay({'title':manualRetry?'Retrying\x20server\x20connection...':'Waiting\x20for\x20server\x20to\x20restart...','message':'The\x20page\x20will\x20automatically\x20refresh\x20when\x20the\x20server\x20is\x20back\x20online.','showRetry':![]});const _0x32688c=Date['now']();let _0x484101=![];for(let _0x46ca29=0x0;_0x46ca29<RESTART_POLL_MAX_ATTEMPTS;_0x46ca29+=0x1){await sleep(RESTART_POLL_INTERVAL_MS);try{await API['get']('/health?ts='+Date['now']());const _0x307d45=Date['now']()-_0x32688c;if(_0x484101||_0x307d45>=RESTART_MIN_SUCCESS_DELAY_MS){state['health']['restartInProgress']=![],state['health']['currentVersion']=null,hideRestartOverlay(),syncHealthActionButtons(),Utils['showSuccess']('Server\x20restart\x20complete'),await loadHealth({'showLoading':!![]}),syncHealthAutoRefresh();return;}}catch(_0x42c4c1){_0x484101=!![];}}state['health']['restartInProgress']=![],syncHealthActionButtons(),showRestartOverlay({'title':'Unable\x20to\x20reconnect\x20to\x20the\x20server','message':'The\x20server\x20may\x20still\x20be\x20restarting.\x20Retry\x20the\x20connection\x20when\x20you\x20are\x20ready.','showRetry':!![]}),Utils['showError']('Server\x20restart\x20is\x20taking\x20longer\x20than\x20expected');}async function loadVersionStatus({checkUpdates:checkUpdates=![]}={}){const _0x4ca5f1=document['getElementById']('health-check-updates-btn');_0x4ca5f1&&(_0x4ca5f1['disabled']=!![],_0x4ca5f1['textContent']=checkUpdates?'Checking...':'Loading...');try{const _0x2efb74=await API['get']('/health');state['health']['currentVersion']=_0x2efb74['version']||'Unavailable',document['getElementById']('health-version-current')['textContent']=state['health']['currentVersion'];if(!checkUpdates&&!state['health']['versionChecked']){state['health']['updateAvailable']=![],document['getElementById']('health-version-status')['textContent']='Update\x20status\x20has\x20not\x20been\x20checked\x20yet.',document['getElementById']('health-version-latest')['textContent']=state['health']['latestVersion']||'Not\x20checked',syncHealthActionButtons();return;}if(checkUpdates){const _0x54975c=await API['get']('/health/check-updates');state['health']['versionChecked']=!![],state['health']['latestVersion']=_0x54975c['latestVersion']||'Unavailable',state['health']['installCommand']=_0x54975c['installCommand']||null,state['health']['updateAvailable']=!!_0x54975c['updateAvailable'],document['getElementById']('health-version-current')['textContent']=_0x54975c['currentVersion']||state['health']['currentVersion'],document['getElementById']('health-version-latest')['textContent']=state['health']['latestVersion'],document['getElementById']('health-version-status')['textContent']=buildVersionStatusText(_0x54975c),document['getElementById']('health-install-command')['textContent']=state['health']['installCommand']||'',document['getElementById']('health-install-command-wrap')['hidden']=!state['health']['installCommand'],document['getElementById']('health-copy-install-btn')['hidden']=!state['health']['installCommand'];}syncHealthActionButtons();}catch(_0x5aef0b){console['error']('Failed\x20to\x20load\x20version\x20status',_0x5aef0b),state['health']['updateAvailable']=![],document['getElementById']('health-version-status')['textContent']='Unable\x20to\x20load\x20version\x20status:\x20'+_0x5aef0b['message'],document['getElementById']('health-install-command-wrap')['hidden']=!![],document['getElementById']('health-copy-install-btn')['hidden']=!![],syncHealthActionButtons();}finally{_0x4ca5f1&&(_0x4ca5f1['disabled']=![],_0x4ca5f1['textContent']='Check\x20for\x20Updates');}}function buildVersionStatusText(_0x59c073){const _0x4fa6cc=_0x59c073?.['versionStatus'];if(_0x4fa6cc==='update-available')return'Update\x20available:\x20'+_0x59c073['currentVersion']+'\x20→\x20'+_0x59c073['latestVersion'];if(_0x4fa6cc==='up-to-date')return'Running\x20the\x20latest\x20published\x20version\x20('+_0x59c073['latestVersion']+').';if(_0x4fa6cc==='ahead-of-latest')return'This\x20server\x20is\x20ahead\x20of\x20npm\x20latest\x20('+_0x59c073['latestVersion']+').';return'Unable\x20to\x20compare\x20current\x20and\x20latest\x20versions.';}async function copyInstallCommand(){if(!state['health']['installCommand'])return;const _0x168830=await Utils['copyToClipboard'](state['health']['installCommand']);_0x168830?Utils['showSuccess']('Install\x20command\x20copied'):Utils['showError']('Failed\x20to\x20copy\x20install\x20command');}function renderHealthMetrics(_0x208e59){document['getElementById']('cpu-usage')['textContent']=_0x208e59['cpu']?.['display']||'-',document['getElementById']('memory-usage')['textContent']=_0x208e59['memory']?.['display']||'-',document['getElementById']('disk-usage')['textContent']=_0x208e59['disk']?.['display']||'-',document['getElementById']('docker-containers')['textContent']=_0x208e59['docker']?.['display']||'-',document['getElementById']('server-uptime')['textContent']=_0x208e59['uptime']?.['display']||'-',document['getElementById']('active-sessions')['textContent']=_0x208e59['sessions']?.['display']||'-',setMetricProgress('cpu-progress',_0x208e59['cpu']?.['percent'],statusFromPercent(_0x208e59['cpu']?.['percent'])),setMetricProgress('memory-progress',_0x208e59['memory']?.['percent'],statusFromPercent(_0x208e59['memory']?.['percent'])),setMetricProgress('disk-progress',_0x208e59['disk']?.['percent'],statusFromPercent(_0x208e59['disk']?.['percent']));const _0x9af17=_0x208e59['docker']?.['total']>0x0?_0x208e59['docker']['running']/_0x208e59['docker']['total']*0x64:0x0;setMetricProgress('docker-progress',_0x9af17,'ok');const _0x2cdf9b=_0x208e59['dockerStorage']||{},_0x1d5943=document['getElementById']('docker-storage-card');document['getElementById']('docker-storage-total')['textContent']=_0x2cdf9b['display']||'-',document['getElementById']('docker-storage-available')['textContent']=_0x2cdf9b['availableDisplay']||'',document['getElementById']('docker-storage-available')['hidden']=!_0x2cdf9b['availableDisplay'],document['getElementById']('docker-storage-reclaimable')['textContent']=_0x2cdf9b['reclaimableDisplay']||'',document['getElementById']('docker-storage-images')['textContent']=_0x2cdf9b['images']?.['display']||'-',document['getElementById']('docker-storage-containers')['textContent']=_0x2cdf9b['containers']?.['display']||'-',document['getElementById']('docker-storage-volumes')['textContent']=_0x2cdf9b['volumes']?.['display']||'-',document['getElementById']('docker-storage-buildcache')['textContent']=_0x2cdf9b['buildCache']?.['display']||'-',setMetricProgress('docker-storage-progress',_0x2cdf9b['percent'],_0x2cdf9b['status']||'ok'),_0x1d5943['classList']['remove']('status-warning','status-critical'),_0x2cdf9b['status']==='warning'&&_0x1d5943['classList']['add']('status-warning'),_0x2cdf9b['status']==='critical'&&_0x1d5943['classList']['add']('status-critical');}function clampPercent(_0x41bb1f){if(!Number['isFinite'](_0x41bb1f))return 0x0;return Math['max'](0x0,Math['min'](0x64,Math['round'](_0x41bb1f)));}function statusFromPercent(_0x4bd057){if(!Number['isFinite'](_0x4bd057))return'ok';if(_0x4bd057>=0x5a)return'critical';if(_0x4bd057>=0x4b)return'warning';return'ok';}function setMetricProgress(_0x468f87,_0x24d12e,_0x57763b='ok'){const _0x3299f3=document['getElementById'](_0x468f87);if(!_0x3299f3)return;const _0x350d3e=clampPercent(_0x24d12e);_0x3299f3['style']['width']=_0x350d3e+'%',_0x3299f3['classList']['remove']('status-ok','status-warning','status-critical'),_0x3299f3['classList']['add'](_0x57763b==='critical'?'status-critical':_0x57763b==='warning'?'status-warning':'status-ok'),_0x3299f3['parentElement']?.['setAttribute']('aria-valuenow',String(_0x350d3e));}async function runCleanupAction(_0x578eb2,_0x664751){const _0x1c99c2=document['getElementById']('server-health-action-status'),_0x2a8d4a=[document['getElementById']('health-refresh-btn'),document['getElementById']('server-stop-containers'),document['getElementById']('server-remove-stopped'),document['getElementById']('server-prune-docker')]['filter'](Boolean);_0x2a8d4a['forEach'](_0x7c9232=>{_0x7c9232['disabled']=!![];}),_0x1c99c2['hidden']=![],_0x1c99c2['classList']['remove']('success','error'),_0x1c99c2['textContent']=_0x578eb2+'...';try{const _0x3d7d32=await _0x664751();_0x1c99c2['classList']['add']('success'),_0x1c99c2['textContent']=_0x3d7d32?.['message']||_0x578eb2+'\x20complete',await loadHealth({'showLoading':!![]});}catch(_0x23e009){console['error'](_0x578eb2+'\x20failed',_0x23e009),_0x1c99c2['classList']['add']('error'),_0x1c99c2['textContent']=_0x23e009['message']||_0x578eb2+'\x20failed';}finally{_0x2a8d4a['forEach'](_0x31ca62=>{_0x31ca62['disabled']=![];});}}function toggleCleanupSection(){const _0x2b5f5b=document['getElementById']('cleanup-section'),_0x18f7d3=document['getElementById']('cleanup-content'),_0x3948a1=document['getElementById']('cleanup-toggle');if(!_0x2b5f5b||!_0x18f7d3||!_0x3948a1)return;const _0x1a0d37=_0x2b5f5b['classList']['toggle']('expanded');_0x18f7d3['hidden']=!_0x1a0d37,_0x3948a1['setAttribute']('aria-expanded',String(_0x1a0d37));}async function loadLogs({showLoading:showLoading=![]}={}){if(state['logs']['request'])return state['logs']['request'];return state['logs']['request']=((async()=>{const _0xbf6436=document['getElementById']('logs-loading'),_0x5dc4b5=document['getElementById']('logs-error');(showLoading||!state['logs']['loaded'])&&(_0xbf6436['hidden']=![],_0x5dc4b5['hidden']=!![],document['getElementById']('logs-empty')['hidden']=!![],document['getElementById']('logs-container')['hidden']=!![]);try{const _0x4d8723=new URLSearchParams({'limit':'500'});state['logs']['level']!=='ALL'&&_0x4d8723['set']('level',state['logs']['level']);state['logs']['search']&&_0x4d8723['set']('search',state['logs']['search']);const _0x3eef59=await API['get']('/logs?'+_0x4d8723['toString']());state['logs']['entries']=Array['isArray'](_0x3eef59['entries'])?_0x3eef59['entries']['slice'](-state['logs']['maxEntries']):[],state['logs']['total']=Number(_0x3eef59['total'])||0x0,state['logs']['minLevel']=_0x3eef59['minLevel']||'INFO',state['logs']['loaded']=!![],_0xbf6436['hidden']=!![],_0x5dc4b5['hidden']=!![],renderLogs();}catch(_0x59b32e){console['error']('Failed\x20to\x20load\x20logs',_0x59b32e),_0xbf6436['hidden']=!![],_0x5dc4b5['hidden']=![],document['getElementById']('logs-error-message')['textContent']=_0x59b32e['message']||'Unknown\x20error',document['getElementById']('logs-empty')['hidden']=!![],document['getElementById']('logs-container')['hidden']=!![];}finally{state['logs']['request']=null;}})()),state['logs']['request'];}function renderLogs({stickToLiveEdge:stickToLiveEdge=![]}={}){const _0x31b557=document['getElementById']('logs-container'),_0x274414=document['getElementById']('logs-empty'),_0x1bb7e5=stickToLiveEdge||state['logs']['autoScroll']&&state['logs']['live'],_0x508432=_0x31b557?.['scrollTop']||0x0,_0x1c13a5=_0x31b557?.['scrollHeight']||0x0,_0xf83c7b=getOrderedLogEntries();updateLogsMeta(_0xf83c7b['length']);if(_0xf83c7b['length']===0x0){_0x31b557['hidden']=!![],_0x274414['hidden']=![];return;}_0x274414['hidden']=!![],_0x31b557['hidden']=![],_0x31b557['innerHTML']=_0xf83c7b['map'](renderLogEntry)['join']('');if(_0x1bb7e5){scrollLogsToLiveEdge(_0x31b557);return;}if(state['logs']['order']===LOG_ORDER_DESC){const _0x237061=_0x31b557['scrollHeight'],_0x11388d=_0x237061-_0x1c13a5;_0x31b557['scrollTop']=_0x508432>0x0?_0x508432+Math['max'](_0x11388d,0x0):_0x508432;return;}_0x31b557['scrollTop']=_0x508432;}function getVisibleLogEntries(){const _0x3053cd=state['logs']['search']['trim']()['toLowerCase']();return state['logs']['entries']['filter'](_0x5710e5=>{if(state['logs']['level']!=='ALL'&&_0x5710e5['level']!==state['logs']['level'])return![];if(!_0x3053cd)return!![];const _0x26f684=String(_0x5710e5['message']||'')['toLowerCase'](),_0x2885b8=_0x5710e5['context']?JSON['stringify'](_0x5710e5['context'])['toLowerCase']():'';return _0x26f684['includes'](_0x3053cd)||_0x2885b8['includes'](_0x3053cd);});}function getOrderedLogEntries(){const _0x534519=getVisibleLogEntries();return state['logs']['order']===LOG_ORDER_DESC?_0x534519['slice']()['reverse']():_0x534519;}function renderLogEntry(_0x3c2e56){const _0x53be70=Utils['escapeHtml'](formatDateTime(_0x3c2e56['timestamp'])),_0x5df785=Utils['escapeHtml'](String(_0x3c2e56['level']||'INFO')),_0x4441ee=Utils['escapeHtml'](String(_0x3c2e56['message']||'')),_0x4f89e3=_0x3c2e56['context']?'\x0a\x20\x20\x20\x20\x20\x20<details\x20class=\x22admin-log-context\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<summary>Context</summary>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre>'+Utils['escapeHtml'](JSON['stringify'](_0x3c2e56['context'],null,0x2))+'</pre>\x0a\x20\x20\x20\x20\x20\x20</details>\x0a\x20\x20\x20\x20':'';return'\x0a\x20\x20\x20\x20<div\x20class=\x22admin-log-entry\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-log-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22admin-log-timestamp\x22>'+_0x53be70+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22admin-log-level\x20level-'+_0x5df785['toLowerCase']()+'\x22>'+_0x5df785+'</span>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-log-message\x22>'+_0x4441ee+'</div>\x0a\x20\x20\x20\x20\x20\x20'+_0x4f89e3+'\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}function updateLogsMeta(_0x3d4cf5){const _0x15fe4c=document['getElementById']('logs-meta');if(!_0x15fe4c)return;const _0x3dab7a=state['logs']['entries']['length'],_0x536f09=state['logs']['level']!=='ALL'||!!state['logs']['search']['trim'](),_0x5bcd1c=state['logs']['order']===LOG_ORDER_DESC?'newest\x20first':'oldest\x20first';_0x15fe4c['textContent']=_0x536f09?'Showing\x20'+_0x3d4cf5+'\x20of\x20'+_0x3dab7a+'\x20loaded\x20entries\x20for\x20the\x20current\x20filters\x20in\x20'+_0x5bcd1c+'\x20order.\x20Minimum\x20runtime\x20level:\x20'+state['logs']['minLevel']+'.':'Showing\x20'+_0x3d4cf5+'\x20recent\x20buffered\x20entries\x20in\x20'+_0x5bcd1c+'\x20order.\x20Minimum\x20runtime\x20level:\x20'+state['logs']['minLevel']+'.';}function toggleLogsLiveMode(){state['logs']['live']=!state['logs']['live'],state['logs']['live']?(state['logs']['autoScroll']=!![],renderLogs({'stickToLiveEdge':!![]}),startLogStream()):stopLogStream(),updateLogsLiveUi();}function updateLogsLiveUi(){const _0x41daf5=document['getElementById']('logs-live-toggle'),_0x25258d=document['getElementById']('logs-stream-status');if(!_0x41daf5||!_0x25258d)return;_0x25258d['classList']['remove']('live','error');if(!state['logs']['live']){_0x25258d['textContent']='Paused',_0x41daf5['textContent']='Start\x20Live';return;}if(state['logs']['streamState']==='live')_0x25258d['textContent']='Live',_0x25258d['classList']['add']('live');else state['logs']['streamState']==='error'?(_0x25258d['textContent']='Reconnecting',_0x25258d['classList']['add']('error')):_0x25258d['textContent']='Connecting';_0x41daf5['textContent']='Pause\x20Live';}function startLogStream(){if(state['currentSection']!=='logs'||state['logs']['stream'])return;state['logs']['streamState']='connecting',updateLogsLiveUi();const _0x4060c2=new EventSource(API['getBaseUrl']()+'/logs/stream');state['logs']['stream']=_0x4060c2,_0x4060c2['addEventListener']('log',_0x16058e=>{try{const _0x21d297=JSON['parse'](_0x16058e['data']);state['logs']['entries']['push'](_0x21d297),state['logs']['entries']['length']>state['logs']['maxEntries']&&state['logs']['entries']['shift'](),renderLogs();}catch(_0x20d7bc){console['error']('Failed\x20to\x20parse\x20log\x20stream\x20event',_0x20d7bc);}}),_0x4060c2['onopen']=()=>{state['logs']['streamState']='live',updateLogsLiveUi();},_0x4060c2['onerror']=()=>{state['logs']['streamState']='error',updateLogsLiveUi();};}function stopLogStream(){state['logs']['stream']&&(state['logs']['stream']['close'](),state['logs']['stream']=null),state['logs']['streamState']='paused',updateLogsLiveUi();}function clearDisplayedLogs(){state['logs']['entries']=[],renderLogs();}function setLogOrder(_0x37200,{focusLiveEdge:focusLiveEdge=![]}={}){const _0x515753=_0x37200===LOG_ORDER_DESC?LOG_ORDER_DESC:LOG_ORDER_ASC;if(state['logs']['order']===_0x515753){focusLiveEdge&&(state['logs']['autoScroll']=!![],renderLogs({'stickToLiveEdge':!![]}));return;}state['logs']['order']=_0x515753,setSessionValue('admin-logs-order',_0x515753),syncLogOrderUi(),focusLiveEdge&&(state['logs']['autoScroll']=!![]),renderLogs({'stickToLiveEdge':focusLiveEdge});}function syncLogOrderUi(){updateActiveFilterButtons('#logs-order-toggle',state['logs']['order']);}function handleLogsSearchInput(_0x1ae3ea){const _0x468b40=_0x1ae3ea['target']['value']||'';state['logs']['searchTimer']&&clearTimeout(state['logs']['searchTimer']),state['logs']['searchTimer']=window['setTimeout'](()=>{state['logs']['search']=_0x468b40,loadLogs({'showLoading':![]});},LOG_SEARCH_DEBOUNCE_MS);}function updateLogAutoScrollState(){const _0x4e5f99=document['getElementById']('logs-container');if(!_0x4e5f99)return;const _0x59fa53=state['logs']['order']===LOG_ORDER_DESC?_0x4e5f99['scrollTop']:_0x4e5f99['scrollHeight']-_0x4e5f99['scrollTop']-_0x4e5f99['clientHeight'];state['logs']['autoScroll']=_0x59fa53<0x20;}async function loadUsage({showLoading:showLoading=![]}={}){if(state['usage']['request'])return state['usage']['request'];return state['usage']['request']=((async()=>{const _0x3dfdd7=document['getElementById']('usage-loading'),_0x3378f7=document['getElementById']('usage-error');(showLoading||!state['usage']['loaded'])&&(_0x3dfdd7['hidden']=![],_0x3378f7['hidden']=!![],document['getElementById']('usage-empty')['hidden']=!![],document['getElementById']('usage-content')['hidden']=!![]);try{const _0x1dc1ba=new URLSearchParams();_0x1dc1ba['set']('days',state['usage']['days']);state['usage']['environment']&&_0x1dc1ba['set']('environment',state['usage']['environment']);const _0xdf5215=await API['get']('/stats?'+_0x1dc1ba['toString']());state['usage']['loaded']=!![],_0x3dfdd7['hidden']=!![],_0x3378f7['hidden']=!![],renderUsage(_0xdf5215);}catch(_0x49aaa1){console['error']('Failed\x20to\x20load\x20usage\x20statistics',_0x49aaa1),_0x3dfdd7['hidden']=!![],_0x3378f7['hidden']=![],document['getElementById']('usage-error-message')['textContent']=_0x49aaa1['message']||'Unknown\x20error',document['getElementById']('usage-empty')['hidden']=!![],document['getElementById']('usage-content')['hidden']=!![];}finally{state['usage']['request']=null;}})()),state['usage']['request'];}function renderUsage(_0xe1483b){const _0x324cb9=Number(_0xe1483b?.['tasks']?.['total'])||0x0,_0x1d9eb3=document['getElementById']('usage-empty'),_0x30a482=document['getElementById']('usage-content');if(_0x324cb9===0x0){_0x1d9eb3['hidden']=![],_0x30a482['hidden']=!![];return;}_0x1d9eb3['hidden']=!![],_0x30a482['hidden']=![];const _0x21a33b=Number(_0xe1483b?.['approvalRate']?.['successRate'])||0x0,_0x3331fd=Math['round'](_0x21a33b*0x64),_0x244ed=_0xe1483b?.['code']?.['approved']||{},_0x4a400a=Number(_0x244ed?.['tasks'])||0x0,_0x22a224=(Number(_0x244ed?.['linesAdded'])||0x0)-(Number(_0x244ed?.['linesDeleted'])||0x0),_0x3dfd9a=(Number(_0xe1483b?.['code']?.['linesAdded'])||0x0)-(Number(_0xe1483b?.['code']?.['linesDeleted'])||0x0),_0x1fe7cf=Number(_0xe1483b?.['timing']?.['averageDurationMinutes'])||0x0;setSummaryValue('usage-total-tasks',formatNumber(_0x324cb9)),setSummaryValue('usage-success-rate',_0x3331fd+'%',statusClassFromPercent(_0x3331fd)),setSummaryValue('usage-net-lines',formatSignedNumber(_0x3dfd9a)),setSummaryValue('usage-average-duration',formatDurationMinutes(_0x1fe7cf));const _0x3d6d57=_0x324cb9>0x0?Math['round'](_0x4a400a/_0x324cb9*0x64):0x0;document['getElementById']('usage-approved-summary')['textContent']=formatNumber(_0x4a400a)+'\x20approved\x20('+_0x3d6d57+'%)\x20·\x20'+formatNumber(_0xe1483b['timing']['totalDurationHours']||0x0)+'h\x20total',document['getElementById']('usage-success-detail')['textContent']=(_0xe1483b['approvalRate']['completed']||0x0)+'\x20completed\x20/\x20'+(_0xe1483b['approvalRate']['failed']||0x0)+'\x20failed\x20/\x20'+(_0xe1483b['approvalRate']['interrupted']||0x0)+'\x20interrupted',document['getElementById']('usage-net-lines-detail')['textContent']='+'+formatNumber(_0xe1483b['code']['linesAdded']||0x0)+'\x20/\x20-'+formatNumber(_0xe1483b['code']['linesDeleted']||0x0)+'\x20·\x20Approved\x20'+formatSignedNumber(_0x22a224)+'\x20net',document['getElementById']('usage-average-duration-detail')['textContent']=formatDurationMinutes(_0xe1483b['timing']['medianDurationMinutes']||0x0)+'\x20median\x20·\x20'+formatNumber(_0xe1483b['timing']['totalDurationHours']||0x0)+'h\x20total',document['getElementById']('usage-period-summary')['textContent']=buildPeriodSummary(_0xe1483b['period']),renderBarList('usage-status-bars',_0xe1483b['tasks']['byStatus']||{}),renderObjectTable('usage-type-body',_0xe1483b['tasks']['byType']||{},_0x324cb9,{'includePercent':!![],'labelFormatter':prettifyKey}),renderObjectTable('usage-environment-body',_0xe1483b['tasks']['byEnvironment']||{},_0x324cb9),renderUserTable('usage-user-body',_0xe1483b['tasks']['byUser']||[]),renderObjectTable('usage-source-body',_0xe1483b['tasks']['bySource']||{},_0x324cb9,{'labelFormatter':prettifyKey}),document['getElementById']('usage-lines-added')['textContent']=formatNumber(_0xe1483b['code']['linesAdded']||0x0),document['getElementById']('usage-lines-deleted')['textContent']=formatNumber(_0xe1483b['code']['linesDeleted']||0x0),document['getElementById']('usage-files-changed')['textContent']=formatNumber(_0xe1483b['code']['filesChanged']||0x0),document['getElementById']('usage-repositories-affected')['textContent']=formatNumber(_0xe1483b['code']['repositoriesAffected']||0x0),document['getElementById']('usage-approved-lines-added')['textContent']=formatNumber(_0x244ed['linesAdded']||0x0),document['getElementById']('usage-approved-lines-deleted')['textContent']=formatNumber(_0x244ed['linesDeleted']||0x0),document['getElementById']('usage-approved-files-changed')['textContent']=formatNumber(_0x244ed['filesChanged']||0x0),document['getElementById']('usage-approved-repositories-affected')['textContent']=formatNumber(_0x244ed['repositoriesAffected']||0x0);const _0x2b89e6=(_0x17e898,_0x109137)=>_0x17e898>0x0?Math['round'](_0x109137/_0x17e898*0x64):0x0;document['getElementById']('usage-added-pct')['style']['width']=_0x2b89e6(_0xe1483b['code']['linesAdded']||0x0,_0x244ed['linesAdded']||0x0)+'%',document['getElementById']('usage-deleted-pct')['style']['width']=_0x2b89e6(_0xe1483b['code']['linesDeleted']||0x0,_0x244ed['linesDeleted']||0x0)+'%',document['getElementById']('usage-files-pct')['style']['width']=_0x2b89e6(_0xe1483b['code']['filesChanged']||0x0,_0x244ed['filesChanged']||0x0)+'%',document['getElementById']('usage-repos-pct')['style']['width']=_0x2b89e6(_0xe1483b['code']['repositoriesAffected']||0x0,_0x244ed['repositoriesAffected']||0x0)+'%';}function buildPeriodSummary(_0x5c4d90){const _0x2c191d=_0x5c4d90?.['from']?formatDateTime(_0x5c4d90['from']):'the\x20earliest\x20loaded\x20task',_0x128c1e=_0x5c4d90?.['to']?formatDateTime(_0x5c4d90['to']):'now',_0xec0677=_0x5c4d90?.['days']?_0x5c4d90['days']+'\x20day\x20window':'All\x20available\x20task\x20history';return _0xec0677+'\x20·\x20'+_0x2c191d+'\x20to\x20'+_0x128c1e;}function renderBarList(_0x2f5a94,_0x3bb36b){const _0x4d54df=document['getElementById'](_0x2f5a94);if(!_0x4d54df)return;const _0x42adfa=Object['entries'](_0x3bb36b)['filter'](([,_0x4c45bd])=>Number(_0x4c45bd)>0x0)['sort']((_0x408a0c,_0x53ba59)=>_0x53ba59[0x1]-_0x408a0c[0x1]),_0x557c29=_0x42adfa['reduce']((_0x9035de,[,_0x53f9a2])=>_0x9035de+Number(_0x53f9a2||0x0),0x0);if(_0x42adfa['length']===0x0){_0x4d54df['innerHTML']='<div\x20class=\x22text-muted\x22>No\x20data\x20available.</div>';return;}_0x4d54df['innerHTML']=_0x42adfa['map'](([_0x1f700a,_0x331cfb])=>{const _0x51a98e=_0x557c29>0x0?Math['max'](0x2,Math['round'](_0x331cfb/_0x557c29*0x64)):0x0,_0x391cbc=Utils['escapeHtml'](prettifyKey(_0x1f700a)),_0x4f462d=Utils['escapeHtml'](formatNumber(_0x331cfb));return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-bar-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-bar-label\x22>'+_0x391cbc+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-bar-track\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-bar-fill\x20status-'+Utils['escapeHtml'](String(_0x1f700a)['toLowerCase']())+'\x22\x20style=\x22width:\x20'+_0x51a98e+'%\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-bar-value\x22>'+_0x4f462d+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';})['join']('');}function renderObjectTable(_0xadb43e,_0x51cc14,_0x2fb04a,{includePercent:includePercent=![],labelFormatter:labelFormatter=null}={}){const _0x3ec279=document['getElementById'](_0xadb43e);if(!_0x3ec279)return;const _0x49328d=Object['entries'](_0x51cc14)['filter'](([,_0x207325])=>Number(_0x207325)>0x0)['sort']((_0x53cde2,_0x29f4b4)=>_0x29f4b4[0x1]-_0x53cde2[0x1]||String(_0x53cde2[0x0])['localeCompare'](String(_0x29f4b4[0x0])));if(_0x49328d['length']===0x0){_0x3ec279['innerHTML']='<tr><td\x20colspan=\x22'+(includePercent?0x3:0x2)+'\x22\x20class=\x22text-muted\x22>No\x20data\x20available.</td></tr>';return;}_0x3ec279['innerHTML']=_0x49328d['map'](([_0x566e44,_0x4d58])=>{const _0x3dd453=labelFormatter?labelFormatter(_0x566e44):_0x566e44,_0x1f6373=includePercent?'<td>'+formatPercent(_0x2fb04a>0x0?_0x4d58/_0x2fb04a*0x64:0x0)+'</td>':'';return'\x0a\x20\x20\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](String(_0x3dd453))+'</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](formatNumber(_0x4d58))+'</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x1f6373+'\x0a\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20';})['join']('');}function renderUserTable(_0x5b27aa,_0x5c4684){const _0x14856e=document['getElementById'](_0x5b27aa);if(!_0x14856e)return;if(!Array['isArray'](_0x5c4684)||_0x5c4684['length']===0x0){_0x14856e['innerHTML']='<tr><td\x20colspan=\x222\x22\x20class=\x22text-muted\x22>No\x20data\x20available.</td></tr>';return;}_0x14856e['innerHTML']=_0x5c4684['map'](_0x374082=>'\x0a\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](_0x374082['name']||_0x374082['username']||_0x374082['userId']||'Unknown')+'</td>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](formatNumber(_0x374082['count']||0x0))+'</td>\x0a\x20\x20\x20\x20</tr>\x0a\x20\x20')['join']('');}function updateActiveFilterButtons(_0x49fc73,_0x91f51){document['querySelectorAll'](_0x49fc73+'\x20.admin-filter-btn')['forEach'](_0x180738=>{_0x180738['classList']['toggle']('active',_0x180738['dataset']['level']===_0x91f51||_0x180738['dataset']['days']===_0x91f51||_0x180738['dataset']['order']===_0x91f51);});}function scrollLogsToLiveEdge(_0x341d4c){if(!_0x341d4c)return;if(state['logs']['order']===LOG_ORDER_DESC){_0x341d4c['scrollTop']=0x0;return;}_0x341d4c['scrollTop']=_0x341d4c['scrollHeight'];}function setSummaryValue(_0x3ab754,_0x259a05,_0x3313d0=''){const _0x4aa2e1=document['getElementById'](_0x3ab754);if(!_0x4aa2e1)return;_0x4aa2e1['textContent']=_0x259a05,_0x4aa2e1['classList']['remove']('status-good','status-warn','status-bad'),_0x3313d0&&_0x4aa2e1['classList']['add'](_0x3313d0);}function statusClassFromPercent(_0x2f9698){if(_0x2f9698>=0x50)return'status-good';if(_0x2f9698>0x3c)return'status-warn';return'status-bad';}function formatDateTime(_0x72d7a2){const _0xe2eebf=new Date(_0x72d7a2);if(Number['isNaN'](_0xe2eebf['getTime']()))return _0x72d7a2||'Unknown';return _0xe2eebf['toLocaleString']();}function formatDurationMinutes(_0x3a3a8a){const _0x5e16c4=Math['round'](Number(_0x3a3a8a)||0x0);if(_0x5e16c4<0x3c)return _0x5e16c4+'m';const _0x2ca5ba=Math['floor'](_0x5e16c4/0x3c),_0x2a9b07=_0x5e16c4%0x3c;return _0x2a9b07>0x0?_0x2ca5ba+'h\x20'+_0x2a9b07+'m':_0x2ca5ba+'h';}function formatPercent(_0x5d9b91){return Math['round'](Number(_0x5d9b91)||0x0)+'%';}function formatNumber(_0x1c030c){return NUMBER_FORMATTER['format'](Number(_0x1c030c)||0x0);}function formatSignedNumber(_0x33cf2f){const _0x385489=Number(_0x33cf2f)||0x0;if(_0x385489>0x0)return'+'+formatNumber(_0x385489);return formatNumber(_0x385489);}function prettifyKey(_0x20d426){return String(_0x20d426)['replace'](/[_-]+/g,'\x20')['replace'](/\b\w/g,_0x5e469=>_0x5e469['toUpperCase']());}
|
|
1
|
+
import{API,Utils,initializeAdminMenu}from'./app.js';import{initTheme,mountThemeToggle}from'./theme.js';const HEALTH_REFRESH_INTERVAL_MS=0x7530,LOG_SEARCH_DEBOUNCE_MS=0xfa,LOG_ORDER_ASC='asc',LOG_ORDER_DESC='desc',RESTART_POLL_INTERVAL_MS=0x7d0,RESTART_POLL_MAX_ATTEMPTS=0x1e,RESTART_MIN_SUCCESS_DELAY_MS=0x1b58,NUMBER_FORMATTER=new Intl['NumberFormat'](),state={'currentSection':'health','environments':[],'health':{'loaded':![],'request':null,'autoRefreshTimer':null,'versionChecked':![],'currentVersion':null,'latestVersion':null,'installCommand':null,'updateEnabled':![],'hasRestartCommand':![],'updateInProgress':![],'restartInProgress':![],'updateAvailable':![]},'logs':{'loaded':![],'request':null,'entries':[],'nextEntryId':0x1,'selectedEntryIds':new Set(),'total':0x0,'minLevel':'INFO','level':'ALL','order':LOG_ORDER_ASC,'search':'','maxEntries':0x3e8,'stream':null,'streamState':'paused','live':![],'autoScroll':!![],'searchTimer':null},'usage':{'loaded':![],'request':null,'days':'30','environment':''}};document['addEventListener']('DOMContentLoaded',initialize);async function initialize(){try{initTheme(),mountThemeToggle();const _0x5584f8=await checkAdminAccess();await initializeAdminMenu(_0x5584f8),setupEventListeners(),await loadEnvironmentOptions(),document['getElementById']('admin-loading')['hidden']=!![],document['getElementById']('admin-content')['hidden']=![];const _0x44dd56=getSessionValue('admin-health-auto-refresh');if(_0x44dd56!==null){const _0x105ed0=document['getElementById']('health-auto-refresh');if(_0x105ed0)_0x105ed0['checked']=_0x44dd56!=='false';}const _0x34ace2=getSessionValue('admin-logs-order');(_0x34ace2===LOG_ORDER_ASC||_0x34ace2===LOG_ORDER_DESC)&&(state['logs']['order']=_0x34ace2);syncLogOrderUi();const _0x179894=getSessionValue('admin-active-section'),_0x28327=['health','logs','usage']['includes'](_0x179894)?_0x179894:'health';await switchSection(_0x28327);}catch(_0x4ae7c3){console['error']('Failed\x20to\x20initialize\x20Server\x20Administration\x20page',_0x4ae7c3),document['getElementById']('admin-loading')['hidden']=!![],document['getElementById']('admin-error')['hidden']=![],document['getElementById']('admin-error-message')['textContent']=_0x4ae7c3['message']||'Unknown\x20error';}}async function checkAdminAccess(){try{const _0x3de85a=await API['getCurrentUser']();if(!window['Permissions']?.['hasServerPermission'](_0x3de85a,'*')){Utils['showToast']('Access\x20denied:\x20Admin\x20privileges\x20required','error'),setTimeout(()=>{window['location']['href']='index.html';},0x7d0);throw new Error('Access\x20denied');}return _0x3de85a;}catch(_0x782bed){_0x782bed['message']!=='Access\x20denied'&&(window['location']['href']='login.html');throw _0x782bed;}}function setupEventListeners(){document['querySelectorAll']('.settings-nav-item')['forEach'](_0x5d969c=>{_0x5d969c['addEventListener']('click',()=>switchSection(_0x5d969c['dataset']['section']));}),document['getElementById']('retry-admin-btn')?.['addEventListener']('click',()=>{window['location']['reload']();}),document['getElementById']('health-refresh-btn')?.['addEventListener']('click',()=>loadHealth({'showLoading':!![]})),document['getElementById']('retry-health-btn')?.['addEventListener']('click',()=>loadHealth({'showLoading':!![]})),document['getElementById']('health-auto-refresh')?.['addEventListener']('change',syncHealthAutoRefresh),document['getElementById']('health-check-updates-btn')?.['addEventListener']('click',()=>loadVersionStatus({'checkUpdates':!![]})),document['getElementById']('health-copy-install-btn')?.['addEventListener']('click',copyInstallCommand),document['getElementById']('health-update-btn')?.['addEventListener']('click',applyUpdate),document['getElementById']('health-restart-btn')?.['addEventListener']('click',showRestartConfirmation),document['getElementById']('confirm-restart-btn')?.['addEventListener']('click',confirmRestart),document['getElementById']('cancel-restart-btn')?.['addEventListener']('click',hideRestartModal),document['getElementById']('close-restart-modal')?.['addEventListener']('click',hideRestartModal),document['querySelector']('#restart-modal\x20.modal-overlay')?.['addEventListener']('click',hideRestartModal),document['getElementById']('restart-overlay-retry')?.['addEventListener']('click',()=>waitForServerRestart({'manualRetry':!![]})),document['getElementById']('server-stop-containers')?.['addEventListener']('click',()=>runCleanupAction('Stopping\x20containers',()=>API['stopAllContainers']())),document['getElementById']('server-remove-stopped')?.['addEventListener']('click',()=>runCleanupAction('Removing\x20stopped\x20containers',()=>API['removeStoppedContainers']())),document['getElementById']('server-prune-docker')?.['addEventListener']('click',()=>runCleanupAction('Pruning\x20Docker\x20resources',()=>API['pruneDockerResources']())),document['getElementById']('cleanup-toggle')?.['addEventListener']('click',toggleCleanupSection),document['getElementById']('logs-refresh-btn')?.['addEventListener']('click',()=>loadLogs({'showLoading':!![]})),document['getElementById']('retry-logs-btn')?.['addEventListener']('click',()=>loadLogs({'showLoading':!![]})),document['getElementById']('logs-live-toggle')?.['addEventListener']('click',toggleLogsLiveMode),document['getElementById']('logs-clear-btn')?.['addEventListener']('click',clearDisplayedLogs),document['getElementById']('logs-select-visible-btn')?.['addEventListener']('click',toggleVisibleLogSelection),document['getElementById']('logs-clear-selection-btn')?.['addEventListener']('click',clearSelectedLogEntries),document['getElementById']('logs-copy-selected-btn')?.['addEventListener']('click',copySelectedLogEntries),document['getElementById']('logs-search-input')?.['addEventListener']('input',handleLogsSearchInput),document['querySelectorAll']('#logs-level-filters\x20.admin-filter-btn')['forEach'](_0x52046e=>{_0x52046e['addEventListener']('click',()=>{state['logs']['level']=_0x52046e['dataset']['level']||'ALL',updateActiveFilterButtons('#logs-level-filters',state['logs']['level']),loadLogs({'showLoading':![]});});}),document['querySelectorAll']('#logs-order-toggle\x20.admin-filter-btn')['forEach'](_0x1b29eb=>{_0x1b29eb['addEventListener']('click',()=>{setLogOrder(_0x1b29eb['dataset']['order'],{'focusLiveEdge':!![]});});}),document['getElementById']('logs-container')?.['addEventListener']('click',handleLogContainerClick),document['getElementById']('logs-container')?.['addEventListener']('change',handleLogContainerChange),document['getElementById']('logs-container')?.['addEventListener']('scroll',updateLogAutoScrollState),document['getElementById']('usage-refresh-btn')?.['addEventListener']('click',()=>loadUsage({'showLoading':!![]})),document['getElementById']('retry-usage-btn')?.['addEventListener']('click',()=>loadUsage({'showLoading':!![]})),document['getElementById']('usage-environment-filter')?.['addEventListener']('change',_0x17192d=>{state['usage']['environment']=_0x17192d['target']['value']||'',loadUsage({'showLoading':![]});}),document['querySelectorAll']('#usage-period-buttons\x20.admin-filter-btn')['forEach'](_0x35f26c=>{_0x35f26c['addEventListener']('click',()=>{state['usage']['days']=_0x35f26c['dataset']['days']||'30',updateActiveFilterButtons('#usage-period-buttons',state['usage']['days']),loadUsage({'showLoading':![]});});});}async function switchSection(_0x2a0cba){if(!_0x2a0cba)return;document['querySelectorAll']('.settings-nav-item')['forEach'](_0x26d365=>{const _0x31f1db=_0x26d365['dataset']['section']===_0x2a0cba;_0x26d365['classList']['toggle']('active',_0x31f1db),_0x26d365['setAttribute']('aria-selected',String(_0x31f1db));}),document['querySelectorAll']('.settings-panel')['forEach'](_0x4e6f35=>{const _0x14d33c=_0x4e6f35['id']==='section-'+_0x2a0cba;_0x4e6f35['hidden']=!_0x14d33c,_0x4e6f35['classList']['toggle']('active',_0x14d33c);}),state['currentSection']=_0x2a0cba,setSessionValue('admin-active-section',_0x2a0cba),_0x2a0cba!=='health'&&stopHealthAutoRefresh(),_0x2a0cba!=='logs'&&stopLogStream(),_0x2a0cba==='health'&&(syncHealthAutoRefresh(),await loadHealth({'showLoading':!state['health']['loaded']})),_0x2a0cba==='logs'&&(await loadLogs({'showLoading':!state['logs']['loaded']}),state['logs']['live']?startLogStream():updateLogsLiveUi()),_0x2a0cba==='usage'&&await loadUsage({'showLoading':!state['usage']['loaded']});}function getSessionValue(_0x27af51){try{return sessionStorage['getItem'](_0x27af51);}catch{return null;}}function setSessionValue(_0x5b70b5,_0x47788a){try{sessionStorage['setItem'](_0x5b70b5,_0x47788a);}catch{}}async function loadEnvironmentOptions(){const _0x1dc69e=await API['get']('/environments');state['environments']=(_0x1dc69e['environments']||[])['map'](_0x2847ee=>_0x2847ee?.['name'])['filter'](Boolean)['sort']((_0x401d5d,_0x20beab)=>_0x401d5d['localeCompare'](_0x20beab));const _0x195018=document['getElementById']('usage-environment-filter');if(!_0x195018)return;_0x195018['innerHTML']='<option\x20value=\x22\x22>All\x20environments</option>'+state['environments']['map'](_0x32a842=>'<option\x20value=\x22'+Utils['escapeHtml'](_0x32a842)+'\x22>'+Utils['escapeHtml'](_0x32a842)+'</option>')['join'](''),_0x195018['value']=state['usage']['environment'];}function syncHealthAutoRefresh(){const _0x3e8f99=document['getElementById']('health-auto-refresh');if(_0x3e8f99)setSessionValue('admin-health-auto-refresh',String(_0x3e8f99['checked']));const _0x464e69=state['currentSection']==='health'&&!!_0x3e8f99?.['checked'];stopHealthAutoRefresh();if(!_0x464e69)return;state['health']['autoRefreshTimer']=window['setInterval'](()=>{loadHealth({'showLoading':![]});},HEALTH_REFRESH_INTERVAL_MS);}function stopHealthAutoRefresh(){state['health']['autoRefreshTimer']&&(clearInterval(state['health']['autoRefreshTimer']),state['health']['autoRefreshTimer']=null);}async function loadHealth({showLoading:showLoading=![]}={}){if(state['health']['request'])return state['health']['request'];return state['health']['request']=((async()=>{const _0x51bb63=document['getElementById']('health-loading'),_0x282e89=document['getElementById']('health-error'),_0x30d608=document['getElementById']('health-content');(showLoading||!state['health']['loaded'])&&(_0x51bb63['hidden']=![],_0x282e89['hidden']=!![],_0x30d608['hidden']=!![]);try{const [_0x9bc8e5]=await Promise['all']([API['get']('/health/metrics'),loadUpdateSettings()['catch'](_0x194348=>{console['error']('Failed\x20to\x20load\x20update\x20settings',_0x194348),state['health']['updateEnabled']=![],state['health']['hasRestartCommand']=![],syncHealthActionButtons();})]);renderHealthMetrics(_0x9bc8e5),!state['health']['currentVersion']&&await loadVersionStatus({'checkUpdates':![]}),_0x51bb63['hidden']=!![],_0x282e89['hidden']=!![],_0x30d608['hidden']=![],state['health']['loaded']=!![];}catch(_0x21f473){console['error']('Failed\x20to\x20load\x20server\x20metrics',_0x21f473),_0x51bb63['hidden']=!![],_0x282e89['hidden']=![],_0x30d608['hidden']=!![],document['getElementById']('health-error-message')['textContent']=_0x21f473['message']||'Unknown\x20error';}finally{state['health']['request']=null;}})()),state['health']['request'];}function syncHealthActionButtons(){const _0x2cf989=document['getElementById']('health-update-btn'),_0x2a2e21=document['getElementById']('health-restart-btn');if(!_0x2cf989||!_0x2a2e21)return;const _0x3446a2=state['health']['updateEnabled'],_0x2b7a1f=_0x3446a2&&state['health']['versionChecked']&&state['health']['updateAvailable'];_0x2cf989['hidden']=!_0x2b7a1f,_0x2cf989['disabled']=state['health']['updateInProgress']||state['health']['restartInProgress']||!state['health']['latestVersion'],_0x2cf989['textContent']=state['health']['updateInProgress']?'Updating...':'Update\x20Server',_0x2a2e21['hidden']=!_0x3446a2,_0x2a2e21['disabled']=state['health']['updateInProgress']||state['health']['restartInProgress'];}function setUpdateOutput({status:_0x26d25f,output:_0x156c33}){const _0x495d37=document['getElementById']('health-update-output-wrap'),_0x1d3aa9=document['getElementById']('health-update-status'),_0x3cc4e9=document['getElementById']('health-update-output');if(!_0x495d37||!_0x1d3aa9||!_0x3cc4e9)return;const _0x4fe9bd=_0x26d25f||'';_0x495d37['hidden']=![],_0x1d3aa9['className']='admin-update-status',_0x4fe9bd&&_0x1d3aa9['classList']['add'](_0x4fe9bd),_0x1d3aa9['textContent']=_0x4fe9bd==='success'?'Success':_0x4fe9bd==='error'?'Failed':'In\x20Progress',_0x3cc4e9['textContent']=_0x156c33||'No\x20output\x20returned.';}function buildCommandOutput(_0x3d7393,_0x4122fa){const _0x5d17b0=[];typeof _0x3d7393==='string'&&_0x3d7393['trim']()&&_0x5d17b0['push'](_0x3d7393['trim']());if(typeof _0x4122fa==='string'&&_0x4122fa['trim']()){const _0x230452=_0x4122fa['trim'](),_0x65d5d0=_0x5d17b0['some'](_0x43b73e=>_0x43b73e['includes'](_0x230452));!_0x65d5d0&&_0x5d17b0['push']('Error:\x0a'+_0x230452);}return _0x5d17b0['join']('\x0a\x0a');}function showRestartOverlay({title:_0x433cba,message:_0x372ae7,showRetry:showRetry=![]}){const _0x27b616=document['getElementById']('health-restart-overlay'),_0x28f902=document['getElementById']('restart-overlay-title'),_0x7f9e36=document['getElementById']('restart-overlay-message'),_0x49fcbc=document['getElementById']('restart-overlay-retry');if(!_0x27b616||!_0x28f902||!_0x7f9e36||!_0x49fcbc)return;_0x28f902['textContent']=_0x433cba,_0x7f9e36['textContent']=_0x372ae7,_0x49fcbc['hidden']=!showRetry,_0x27b616['hidden']=![];}function hideRestartOverlay(){const _0x1488ba=document['getElementById']('health-restart-overlay');_0x1488ba&&(_0x1488ba['hidden']=!![]);}function sleep(_0x3ddad3){return new Promise(_0x1e6a17=>{window['setTimeout'](_0x1e6a17,_0x3ddad3);});}async function loadUpdateSettings(){const _0x226f9f=await API['getUpdateSettings']();return state['health']['updateEnabled']=!!_0x226f9f['enabled'],state['health']['hasRestartCommand']=!!_0x226f9f['hasRestartCommand'],syncHealthActionButtons(),_0x226f9f;}async function applyUpdate(){if(state['health']['updateInProgress']||!state['health']['latestVersion'])return;state['health']['updateInProgress']=!![],syncHealthActionButtons(),setUpdateOutput({'status':'in-progress','output':'Applying\x20server\x20update\x20to\x20'+state['health']['latestVersion']+'...'});try{const _0x3cd4e4=await API['applyServerUpdate'](state['health']['latestVersion']),_0x2985c8=buildCommandOutput(_0x3cd4e4['output'],_0x3cd4e4['error']);_0x3cd4e4['success']?(setUpdateOutput({'status':'success','output':_0x2985c8||'Server\x20update\x20to\x20'+state['health']['latestVersion']+'\x20completed.'}),Utils['showSuccess']('Server\x20update\x20to\x20'+state['health']['latestVersion']+'\x20completed')):(setUpdateOutput({'status':'error','output':_0x2985c8||'Server\x20update\x20failed\x20without\x20additional\x20output.'}),Utils['showError'](_0x3cd4e4['error']||'Server\x20update\x20failed'));}catch(_0x39094b){setUpdateOutput({'status':'error','output':buildCommandOutput(_0x39094b['output'],_0x39094b['commandError']||_0x39094b['message'])||'Failed\x20to\x20apply\x20server\x20update.'}),Utils['showError'](_0x39094b['message']||'Failed\x20to\x20apply\x20server\x20update');}finally{state['health']['updateInProgress']=![],syncHealthActionButtons();}}function showRestartConfirmation(){if(!state['health']['updateEnabled']||state['health']['restartInProgress'])return;const _0x5b99f0=document['getElementById']('restart-modal');_0x5b99f0&&(_0x5b99f0['hidden']=![]);}function hideRestartModal(){const _0x26d15b=document['getElementById']('restart-modal');_0x26d15b&&(_0x26d15b['hidden']=!![]);}async function confirmRestart(){if(state['health']['restartInProgress'])return;hideRestartModal(),state['health']['restartInProgress']=!![],syncHealthActionButtons();try{await API['restartServer'](),await waitForServerRestart();}catch(_0x53804b){state['health']['restartInProgress']=![],syncHealthActionButtons(),hideRestartOverlay(),Utils['showError'](_0x53804b['message']||'Failed\x20to\x20restart\x20server');}}async function waitForServerRestart({manualRetry:manualRetry=![]}={}){state['health']['restartInProgress']=!![],syncHealthActionButtons(),stopHealthAutoRefresh(),showRestartOverlay({'title':manualRetry?'Retrying\x20server\x20connection...':'Waiting\x20for\x20server\x20to\x20restart...','message':'The\x20page\x20will\x20automatically\x20refresh\x20when\x20the\x20server\x20is\x20back\x20online.','showRetry':![]});const _0xcbd78c=Date['now']();let _0x458d48=![];for(let _0x3ad136=0x0;_0x3ad136<RESTART_POLL_MAX_ATTEMPTS;_0x3ad136+=0x1){await sleep(RESTART_POLL_INTERVAL_MS);try{await API['get']('/health?ts='+Date['now']());const _0x5bfb58=Date['now']()-_0xcbd78c;if(_0x458d48||_0x5bfb58>=RESTART_MIN_SUCCESS_DELAY_MS){state['health']['restartInProgress']=![],state['health']['currentVersion']=null,hideRestartOverlay(),syncHealthActionButtons(),Utils['showSuccess']('Server\x20restart\x20complete'),await loadHealth({'showLoading':!![]}),syncHealthAutoRefresh();return;}}catch(_0x38e7fd){_0x458d48=!![];}}state['health']['restartInProgress']=![],syncHealthActionButtons(),showRestartOverlay({'title':'Unable\x20to\x20reconnect\x20to\x20the\x20server','message':'The\x20server\x20may\x20still\x20be\x20restarting.\x20Retry\x20the\x20connection\x20when\x20you\x20are\x20ready.','showRetry':!![]}),Utils['showError']('Server\x20restart\x20is\x20taking\x20longer\x20than\x20expected');}async function loadVersionStatus({checkUpdates:checkUpdates=![]}={}){const _0x19c80e=document['getElementById']('health-check-updates-btn');_0x19c80e&&(_0x19c80e['disabled']=!![],_0x19c80e['textContent']=checkUpdates?'Checking...':'Loading...');try{const _0x1e8539=await API['get']('/health');state['health']['currentVersion']=_0x1e8539['version']||'Unavailable',document['getElementById']('health-version-current')['textContent']=state['health']['currentVersion'];if(!checkUpdates&&!state['health']['versionChecked']){state['health']['updateAvailable']=![],document['getElementById']('health-version-status')['textContent']='Update\x20status\x20has\x20not\x20been\x20checked\x20yet.',document['getElementById']('health-version-latest')['textContent']=state['health']['latestVersion']||'Not\x20checked',syncHealthActionButtons();return;}if(checkUpdates){const _0x5c5572=await API['get']('/health/check-updates');state['health']['versionChecked']=!![],state['health']['latestVersion']=_0x5c5572['latestVersion']||'Unavailable',state['health']['installCommand']=_0x5c5572['installCommand']||null,state['health']['updateAvailable']=!!_0x5c5572['updateAvailable'],document['getElementById']('health-version-current')['textContent']=_0x5c5572['currentVersion']||state['health']['currentVersion'],document['getElementById']('health-version-latest')['textContent']=state['health']['latestVersion'],document['getElementById']('health-version-status')['textContent']=buildVersionStatusText(_0x5c5572),document['getElementById']('health-install-command')['textContent']=state['health']['installCommand']||'',document['getElementById']('health-install-command-wrap')['hidden']=!state['health']['installCommand'],document['getElementById']('health-copy-install-btn')['hidden']=!state['health']['installCommand'];}syncHealthActionButtons();}catch(_0x5acec6){console['error']('Failed\x20to\x20load\x20version\x20status',_0x5acec6),state['health']['updateAvailable']=![],document['getElementById']('health-version-status')['textContent']='Unable\x20to\x20load\x20version\x20status:\x20'+_0x5acec6['message'],document['getElementById']('health-install-command-wrap')['hidden']=!![],document['getElementById']('health-copy-install-btn')['hidden']=!![],syncHealthActionButtons();}finally{_0x19c80e&&(_0x19c80e['disabled']=![],_0x19c80e['textContent']='Check\x20for\x20Updates');}}function buildVersionStatusText(_0x282438){const _0x23e109=_0x282438?.['versionStatus'];if(_0x23e109==='update-available')return'Update\x20available:\x20'+_0x282438['currentVersion']+'\x20→\x20'+_0x282438['latestVersion'];if(_0x23e109==='up-to-date')return'Running\x20the\x20latest\x20published\x20version\x20('+_0x282438['latestVersion']+').';if(_0x23e109==='ahead-of-latest')return'This\x20server\x20is\x20ahead\x20of\x20npm\x20latest\x20('+_0x282438['latestVersion']+').';return'Unable\x20to\x20compare\x20current\x20and\x20latest\x20versions.';}async function copyInstallCommand(){if(!state['health']['installCommand'])return;const _0xe275ec=await Utils['copyToClipboard'](state['health']['installCommand']);_0xe275ec?Utils['showSuccess']('Install\x20command\x20copied'):Utils['showError']('Failed\x20to\x20copy\x20install\x20command');}function renderHealthMetrics(_0x5ea856){document['getElementById']('cpu-usage')['textContent']=_0x5ea856['cpu']?.['display']||'-',document['getElementById']('memory-usage')['textContent']=_0x5ea856['memory']?.['display']||'-',document['getElementById']('disk-usage')['textContent']=_0x5ea856['disk']?.['display']||'-',document['getElementById']('docker-containers')['textContent']=_0x5ea856['docker']?.['display']||'-',document['getElementById']('server-uptime')['textContent']=_0x5ea856['uptime']?.['display']||'-',document['getElementById']('active-sessions')['textContent']=_0x5ea856['sessions']?.['display']||'-',setMetricProgress('cpu-progress',_0x5ea856['cpu']?.['percent'],statusFromPercent(_0x5ea856['cpu']?.['percent'])),setMetricProgress('memory-progress',_0x5ea856['memory']?.['percent'],statusFromPercent(_0x5ea856['memory']?.['percent'])),setMetricProgress('disk-progress',_0x5ea856['disk']?.['percent'],statusFromPercent(_0x5ea856['disk']?.['percent']));const _0x44e164=_0x5ea856['docker']?.['total']>0x0?_0x5ea856['docker']['running']/_0x5ea856['docker']['total']*0x64:0x0;setMetricProgress('docker-progress',_0x44e164,'ok');const _0x3be015=_0x5ea856['dockerStorage']||{},_0x2c2d29=document['getElementById']('docker-storage-card');document['getElementById']('docker-storage-total')['textContent']=_0x3be015['display']||'-',document['getElementById']('docker-storage-available')['textContent']=_0x3be015['availableDisplay']||'',document['getElementById']('docker-storage-available')['hidden']=!_0x3be015['availableDisplay'],document['getElementById']('docker-storage-reclaimable')['textContent']=_0x3be015['reclaimableDisplay']||'',document['getElementById']('docker-storage-images')['textContent']=_0x3be015['images']?.['display']||'-',document['getElementById']('docker-storage-containers')['textContent']=_0x3be015['containers']?.['display']||'-',document['getElementById']('docker-storage-volumes')['textContent']=_0x3be015['volumes']?.['display']||'-',document['getElementById']('docker-storage-buildcache')['textContent']=_0x3be015['buildCache']?.['display']||'-',setMetricProgress('docker-storage-progress',_0x3be015['percent'],_0x3be015['status']||'ok'),_0x2c2d29['classList']['remove']('status-warning','status-critical'),_0x3be015['status']==='warning'&&_0x2c2d29['classList']['add']('status-warning'),_0x3be015['status']==='critical'&&_0x2c2d29['classList']['add']('status-critical');}function clampPercent(_0x1ef618){if(!Number['isFinite'](_0x1ef618))return 0x0;return Math['max'](0x0,Math['min'](0x64,Math['round'](_0x1ef618)));}function statusFromPercent(_0x444c4c){if(!Number['isFinite'](_0x444c4c))return'ok';if(_0x444c4c>=0x5a)return'critical';if(_0x444c4c>=0x4b)return'warning';return'ok';}function setMetricProgress(_0x470876,_0x3de072,_0x1802ae='ok'){const _0x3e7154=document['getElementById'](_0x470876);if(!_0x3e7154)return;const _0x19165a=clampPercent(_0x3de072);_0x3e7154['style']['width']=_0x19165a+'%',_0x3e7154['classList']['remove']('status-ok','status-warning','status-critical'),_0x3e7154['classList']['add'](_0x1802ae==='critical'?'status-critical':_0x1802ae==='warning'?'status-warning':'status-ok'),_0x3e7154['parentElement']?.['setAttribute']('aria-valuenow',String(_0x19165a));}async function runCleanupAction(_0x51d602,_0x35082f){const _0x17c8d1=document['getElementById']('server-health-action-status'),_0x47c1b8=[document['getElementById']('health-refresh-btn'),document['getElementById']('server-stop-containers'),document['getElementById']('server-remove-stopped'),document['getElementById']('server-prune-docker')]['filter'](Boolean);_0x47c1b8['forEach'](_0x2322e4=>{_0x2322e4['disabled']=!![];}),_0x17c8d1['hidden']=![],_0x17c8d1['classList']['remove']('success','error'),_0x17c8d1['textContent']=_0x51d602+'...';try{const _0x487d0a=await _0x35082f();_0x17c8d1['classList']['add']('success'),_0x17c8d1['textContent']=_0x487d0a?.['message']||_0x51d602+'\x20complete',await loadHealth({'showLoading':!![]});}catch(_0x981a6a){console['error'](_0x51d602+'\x20failed',_0x981a6a),_0x17c8d1['classList']['add']('error'),_0x17c8d1['textContent']=_0x981a6a['message']||_0x51d602+'\x20failed';}finally{_0x47c1b8['forEach'](_0x4588e6=>{_0x4588e6['disabled']=![];});}}function toggleCleanupSection(){const _0x4bad0d=document['getElementById']('cleanup-section'),_0xbd3cea=document['getElementById']('cleanup-content'),_0x7d6b0c=document['getElementById']('cleanup-toggle');if(!_0x4bad0d||!_0xbd3cea||!_0x7d6b0c)return;const _0x288d34=_0x4bad0d['classList']['toggle']('expanded');_0xbd3cea['hidden']=!_0x288d34,_0x7d6b0c['setAttribute']('aria-expanded',String(_0x288d34));}async function loadLogs({showLoading:showLoading=![]}={}){if(state['logs']['request'])return state['logs']['request'];return state['logs']['request']=((async()=>{const _0x481dc6=document['getElementById']('logs-loading'),_0x2e90c9=document['getElementById']('logs-error');(showLoading||!state['logs']['loaded'])&&(_0x481dc6['hidden']=![],_0x2e90c9['hidden']=!![],document['getElementById']('logs-empty')['hidden']=!![],document['getElementById']('logs-container')['hidden']=!![]);try{const _0x42fef0=new URLSearchParams({'limit':'500'});state['logs']['level']!=='ALL'&&_0x42fef0['set']('level',state['logs']['level']);state['logs']['search']&&_0x42fef0['set']('search',state['logs']['search']);const _0xc0d32f=await API['get']('/logs?'+_0x42fef0['toString']());state['logs']['entries']=Array['isArray'](_0xc0d32f['entries'])?normalizeLogEntries(_0xc0d32f['entries'])['slice'](-state['logs']['maxEntries']):[],state['logs']['selectedEntryIds']['clear'](),state['logs']['total']=Number(_0xc0d32f['total'])||0x0,state['logs']['minLevel']=_0xc0d32f['minLevel']||'INFO',state['logs']['loaded']=!![],_0x481dc6['hidden']=!![],_0x2e90c9['hidden']=!![],renderLogs();}catch(_0x4b75b5){console['error']('Failed\x20to\x20load\x20logs',_0x4b75b5),_0x481dc6['hidden']=!![],_0x2e90c9['hidden']=![],document['getElementById']('logs-error-message')['textContent']=_0x4b75b5['message']||'Unknown\x20error',document['getElementById']('logs-empty')['hidden']=!![],document['getElementById']('logs-container')['hidden']=!![];}finally{state['logs']['request']=null;}})()),state['logs']['request'];}function renderLogs({stickToLiveEdge:stickToLiveEdge=![]}={}){const _0x23e9a3=document['getElementById']('logs-container'),_0x2958b2=document['getElementById']('logs-empty'),_0x15b1c9=stickToLiveEdge||state['logs']['autoScroll']&&state['logs']['live'],_0x558eba=_0x23e9a3?.['scrollTop']||0x0,_0xd39699=_0x23e9a3?.['scrollHeight']||0x0,_0x14b05c=getOrderedLogEntries();updateLogsMeta(_0x14b05c['length']),syncLogSelectionUi(_0x14b05c);if(_0x14b05c['length']===0x0){_0x23e9a3['hidden']=!![],_0x2958b2['hidden']=![];return;}_0x2958b2['hidden']=!![],_0x23e9a3['hidden']=![],_0x23e9a3['innerHTML']=_0x14b05c['map'](renderLogEntry)['join']('');if(_0x15b1c9){scrollLogsToLiveEdge(_0x23e9a3);return;}if(state['logs']['order']===LOG_ORDER_DESC){const _0x3639f5=_0x23e9a3['scrollHeight'],_0x3466d0=_0x3639f5-_0xd39699;_0x23e9a3['scrollTop']=_0x558eba>0x0?_0x558eba+Math['max'](_0x3466d0,0x0):_0x558eba;return;}_0x23e9a3['scrollTop']=_0x558eba;}function createLogEntryId(){const _0x3b3bd2=state['logs']['nextEntryId'];return state['logs']['nextEntryId']+=0x1,'server-log-'+_0x3b3bd2;}function normalizeLogEntry(_0x10317d){return{..._0x10317d,'_clientId':createLogEntryId()};}function normalizeLogEntries(_0x1a6038){return _0x1a6038['map'](normalizeLogEntry);}function getVisibleLogEntries(){const _0x471a34=state['logs']['search']['trim']()['toLowerCase']();return state['logs']['entries']['filter'](_0x4c3408=>{if(state['logs']['level']!=='ALL'&&_0x4c3408['level']!==state['logs']['level'])return![];if(!_0x471a34)return!![];const _0x26fd71=String(_0x4c3408['message']||'')['toLowerCase'](),_0x38faf3=_0x4c3408['context']?JSON['stringify'](_0x4c3408['context'])['toLowerCase']():'';return _0x26fd71['includes'](_0x471a34)||_0x38faf3['includes'](_0x471a34);});}function getOrderedLogEntries(){const _0x1017c5=getVisibleLogEntries();return state['logs']['order']===LOG_ORDER_DESC?_0x1017c5['slice']()['reverse']():_0x1017c5;}function findLogEntry(_0x186545){return state['logs']['entries']['find'](_0x3e5f82=>_0x3e5f82['_clientId']===_0x186545)||null;}function getSelectedVisibleLogEntries(_0x2bccf1=getOrderedLogEntries()){return _0x2bccf1['filter'](_0x82b31b=>state['logs']['selectedEntryIds']['has'](_0x82b31b['_clientId']));}function renderLogEntry(_0x3051f5){const _0x3badec=Utils['escapeHtml'](String(_0x3051f5['_clientId']||'')),_0x4a59b8=Utils['escapeHtml'](formatDateTime(_0x3051f5['timestamp'])),_0x43dc2a=Utils['escapeHtml'](String(_0x3051f5['level']||'INFO')),_0x6852e5=Utils['escapeHtml'](String(_0x3051f5['message']||'')),_0x4cae08=formatLogContext(_0x3051f5['context']),_0x5e34c8=_0x4cae08?'\x0a\x20\x20\x20\x20\x20\x20<details\x20class=\x22admin-log-context\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<summary>Context</summary>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre>'+Utils['escapeHtml'](_0x4cae08)+'</pre>\x0a\x20\x20\x20\x20\x20\x20</details>\x0a\x20\x20\x20\x20':'',_0xcda610=state['logs']['selectedEntryIds']['has'](_0x3051f5['_clientId'])?'\x20selected':'';return'\x0a\x20\x20\x20\x20<div\x20class=\x22admin-log-entry'+_0xcda610+'\x22\x20data-log-entry-id=\x22'+_0x3badec+'\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-log-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-log-header-main\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<label\x20class=\x22admin-log-select\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<input\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type=\x22checkbox\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20class=\x22admin-log-select-checkbox\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20data-log-entry-id=\x22'+_0x3badec+'\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20aria-label=\x22Select\x20log\x20entry\x20from\x20'+_0x4a59b8+'\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0xcda610?'checked':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22admin-log-timestamp\x22>'+_0x4a59b8+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</label>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22admin-log-level\x20level-'+_0x43dc2a['toLowerCase']()+'\x22>'+_0x43dc2a+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-log-actions\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20type=\x22button\x22\x20class=\x22btn-ghost\x20btn-small\x20admin-log-copy-btn\x22\x20data-log-copy-id=\x22'+_0x3badec+'\x22>Copy</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-log-message\x22>'+_0x6852e5+'</div>\x0a\x20\x20\x20\x20\x20\x20'+_0x5e34c8+'\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}function updateLogsMeta(_0x2f9ed9){const _0x3f2da2=document['getElementById']('logs-meta');if(!_0x3f2da2)return;const _0x20d715=state['logs']['entries']['length'],_0x2c9a2d=state['logs']['level']!=='ALL'||!!state['logs']['search']['trim'](),_0x4fde0e=state['logs']['order']===LOG_ORDER_DESC?'newest\x20first':'oldest\x20first';_0x3f2da2['textContent']=_0x2c9a2d?'Showing\x20'+_0x2f9ed9+'\x20of\x20'+_0x20d715+'\x20loaded\x20entries\x20for\x20the\x20current\x20filters\x20in\x20'+_0x4fde0e+'\x20order.\x20Minimum\x20runtime\x20level:\x20'+state['logs']['minLevel']+'.':'Showing\x20'+_0x2f9ed9+'\x20recent\x20buffered\x20entries\x20in\x20'+_0x4fde0e+'\x20order.\x20Minimum\x20runtime\x20level:\x20'+state['logs']['minLevel']+'.';}function syncLogSelectionUi(_0x16b7f2=getOrderedLogEntries()){const _0x171844=document['getElementById']('logs-selection-count'),_0x58a683=document['getElementById']('logs-select-visible-btn'),_0x15ff9f=document['getElementById']('logs-clear-selection-btn'),_0x7e2a31=document['getElementById']('logs-copy-selected-btn'),_0x574db5=getSelectedVisibleLogEntries(_0x16b7f2),_0x5657bb=_0x16b7f2['length']>0x0,_0x200f5d=_0x574db5['length']>0x0,_0x497f93=_0x5657bb&&_0x574db5['length']===_0x16b7f2['length'],_0x18fc90=state['logs']['level']!=='ALL'||!!state['logs']['search']['trim'](),_0x3fd708=_0x18fc90?'Select\x20Filtered':'Select\x20All\x20Shown',_0x59db16=_0x18fc90?'Deselect\x20Filtered':'Deselect\x20All\x20Shown';_0x171844&&(_0x171844['textContent']=_0x574db5['length']+'\x20selected'),_0x58a683&&(_0x58a683['disabled']=!_0x5657bb,_0x58a683['textContent']=_0x497f93?_0x59db16:_0x3fd708),_0x15ff9f&&(_0x15ff9f['disabled']=!_0x200f5d),_0x7e2a31&&(_0x7e2a31['disabled']=!_0x200f5d);}function toggleLogsLiveMode(){state['logs']['live']=!state['logs']['live'],state['logs']['live']?(state['logs']['autoScroll']=!![],renderLogs({'stickToLiveEdge':!![]}),startLogStream()):stopLogStream(),updateLogsLiveUi();}function updateLogsLiveUi(){const _0x1ca469=document['getElementById']('logs-live-toggle'),_0x262e76=document['getElementById']('logs-stream-status');if(!_0x1ca469||!_0x262e76)return;_0x262e76['classList']['remove']('live','error');if(!state['logs']['live']){_0x262e76['textContent']='Paused',_0x1ca469['textContent']='Start\x20Live';return;}if(state['logs']['streamState']==='live')_0x262e76['textContent']='Live',_0x262e76['classList']['add']('live');else state['logs']['streamState']==='error'?(_0x262e76['textContent']='Reconnecting',_0x262e76['classList']['add']('error')):_0x262e76['textContent']='Connecting';_0x1ca469['textContent']='Pause\x20Live';}function startLogStream(){if(state['currentSection']!=='logs'||state['logs']['stream'])return;state['logs']['streamState']='connecting',updateLogsLiveUi();const _0x12a9ed=new EventSource(API['getBaseUrl']()+'/logs/stream');state['logs']['stream']=_0x12a9ed,_0x12a9ed['addEventListener']('log',_0x21f88a=>{try{const _0xff6dc9=normalizeLogEntry(JSON['parse'](_0x21f88a['data']));state['logs']['entries']['push'](_0xff6dc9);if(state['logs']['entries']['length']>state['logs']['maxEntries']){const _0x2dc1bb=state['logs']['entries']['shift']();state['logs']['selectedEntryIds']['delete'](_0x2dc1bb?.['_clientId']);}renderLogs();}catch(_0x1d736d){console['error']('Failed\x20to\x20parse\x20log\x20stream\x20event',_0x1d736d);}}),_0x12a9ed['onopen']=()=>{state['logs']['streamState']='live',updateLogsLiveUi();},_0x12a9ed['onerror']=()=>{state['logs']['streamState']='error',updateLogsLiveUi();};}function stopLogStream(){state['logs']['stream']&&(state['logs']['stream']['close'](),state['logs']['stream']=null),state['logs']['streamState']='paused',updateLogsLiveUi();}function clearDisplayedLogs(){state['logs']['entries']=[],state['logs']['selectedEntryIds']['clear'](),renderLogs();}function handleLogContainerClick(_0x30bd01){const _0x4303fc=_0x30bd01['target']['closest']('[data-log-copy-id]');if(!_0x4303fc)return;const _0x4d24cf=findLogEntry(_0x4303fc['dataset']['logCopyId']||'');if(!_0x4d24cf){Utils['showError']('Log\x20entry\x20is\x20no\x20longer\x20available');return;}copyLogEntries([_0x4d24cf],{'successMessage':'Log\x20entry\x20copied'});}function handleLogContainerChange(_0x5148b9){const _0x1d5f9a=_0x5148b9['target']['closest']('.admin-log-select-checkbox');if(!_0x1d5f9a)return;const _0x495459=_0x1d5f9a['dataset']['logEntryId']||'';if(!_0x495459)return;_0x1d5f9a['checked']?state['logs']['selectedEntryIds']['add'](_0x495459):state['logs']['selectedEntryIds']['delete'](_0x495459),_0x1d5f9a['closest']('.admin-log-entry')?.['classList']['toggle']('selected',_0x1d5f9a['checked']),syncLogSelectionUi();}function toggleVisibleLogSelection(){const _0x47fbcd=getOrderedLogEntries();if(_0x47fbcd['length']===0x0)return;const _0x51294a=getSelectedVisibleLogEntries(_0x47fbcd),_0x529c3=_0x51294a['length']!==_0x47fbcd['length'];_0x47fbcd['forEach'](_0x93ef61=>{_0x529c3?state['logs']['selectedEntryIds']['add'](_0x93ef61['_clientId']):state['logs']['selectedEntryIds']['delete'](_0x93ef61['_clientId']);}),renderLogs();}function clearSelectedLogEntries(){if(state['logs']['selectedEntryIds']['size']===0x0)return;state['logs']['selectedEntryIds']['clear'](),renderLogs();}async function copySelectedLogEntries(){const _0x3766bc=getSelectedVisibleLogEntries();if(_0x3766bc['length']===0x0)return;await copyLogEntries(_0x3766bc,{'successMessage':_0x3766bc['length']===0x1?'Log\x20entry\x20copied':_0x3766bc['length']+'\x20log\x20entries\x20copied'});}async function copyLogEntries(_0xb8b7ac,{successMessage:successMessage='Log\x20entries\x20copied'}={}){const _0x23a63c=formatLogEntriesForClipboard(_0xb8b7ac);if(!_0x23a63c){Utils['showError']('No\x20log\x20content\x20available\x20to\x20copy');return;}const _0x39273b=await Utils['copyToClipboard'](_0x23a63c);_0x39273b?Utils['showSuccess'](successMessage):Utils['showError']('Failed\x20to\x20copy\x20logs');}function setLogOrder(_0x48c1d1,{focusLiveEdge:focusLiveEdge=![]}={}){const _0x284936=_0x48c1d1===LOG_ORDER_DESC?LOG_ORDER_DESC:LOG_ORDER_ASC;if(state['logs']['order']===_0x284936){focusLiveEdge&&(state['logs']['autoScroll']=!![],renderLogs({'stickToLiveEdge':!![]}));return;}state['logs']['order']=_0x284936,setSessionValue('admin-logs-order',_0x284936),syncLogOrderUi(),focusLiveEdge&&(state['logs']['autoScroll']=!![]),renderLogs({'stickToLiveEdge':focusLiveEdge});}function syncLogOrderUi(){updateActiveFilterButtons('#logs-order-toggle',state['logs']['order']);}function handleLogsSearchInput(_0x2e14ff){const _0xcdbdd8=_0x2e14ff['target']['value']||'';state['logs']['searchTimer']&&clearTimeout(state['logs']['searchTimer']),state['logs']['searchTimer']=window['setTimeout'](()=>{state['logs']['search']=_0xcdbdd8,loadLogs({'showLoading':![]});},LOG_SEARCH_DEBOUNCE_MS);}function updateLogAutoScrollState(){const _0x563bd4=document['getElementById']('logs-container');if(!_0x563bd4)return;const _0x1998d9=state['logs']['order']===LOG_ORDER_DESC?_0x563bd4['scrollTop']:_0x563bd4['scrollHeight']-_0x563bd4['scrollTop']-_0x563bd4['clientHeight'];state['logs']['autoScroll']=_0x1998d9<0x20;}async function loadUsage({showLoading:showLoading=![]}={}){if(state['usage']['request'])return state['usage']['request'];return state['usage']['request']=((async()=>{const _0xd0e132=document['getElementById']('usage-loading'),_0x5259fc=document['getElementById']('usage-error');(showLoading||!state['usage']['loaded'])&&(_0xd0e132['hidden']=![],_0x5259fc['hidden']=!![],document['getElementById']('usage-empty')['hidden']=!![],document['getElementById']('usage-content')['hidden']=!![]);try{const _0x31ecc3=new URLSearchParams();_0x31ecc3['set']('days',state['usage']['days']);state['usage']['environment']&&_0x31ecc3['set']('environment',state['usage']['environment']);const _0x4f59cb=await API['get']('/stats?'+_0x31ecc3['toString']());state['usage']['loaded']=!![],_0xd0e132['hidden']=!![],_0x5259fc['hidden']=!![],renderUsage(_0x4f59cb);}catch(_0x410758){console['error']('Failed\x20to\x20load\x20usage\x20statistics',_0x410758),_0xd0e132['hidden']=!![],_0x5259fc['hidden']=![],document['getElementById']('usage-error-message')['textContent']=_0x410758['message']||'Unknown\x20error',document['getElementById']('usage-empty')['hidden']=!![],document['getElementById']('usage-content')['hidden']=!![];}finally{state['usage']['request']=null;}})()),state['usage']['request'];}function renderUsage(_0x1195f6){const _0x541afa=Number(_0x1195f6?.['tasks']?.['total'])||0x0,_0x4f9e10=document['getElementById']('usage-empty'),_0xa5a562=document['getElementById']('usage-content');if(_0x541afa===0x0){_0x4f9e10['hidden']=![],_0xa5a562['hidden']=!![];return;}_0x4f9e10['hidden']=!![],_0xa5a562['hidden']=![];const _0x3bb5b7=Number(_0x1195f6?.['approvalRate']?.['successRate'])||0x0,_0x5271ff=Math['round'](_0x3bb5b7*0x64),_0x558486=_0x1195f6?.['code']?.['approved']||{},_0x12d98e=Number(_0x558486?.['tasks'])||0x0,_0x478bbd=(Number(_0x558486?.['linesAdded'])||0x0)-(Number(_0x558486?.['linesDeleted'])||0x0),_0x349f2b=(Number(_0x1195f6?.['code']?.['linesAdded'])||0x0)-(Number(_0x1195f6?.['code']?.['linesDeleted'])||0x0),_0x52707f=Number(_0x1195f6?.['timing']?.['averageDurationMinutes'])||0x0;setSummaryValue('usage-total-tasks',formatNumber(_0x541afa)),setSummaryValue('usage-success-rate',_0x5271ff+'%',statusClassFromPercent(_0x5271ff)),setSummaryValue('usage-net-lines',formatSignedNumber(_0x349f2b)),setSummaryValue('usage-average-duration',formatDurationMinutes(_0x52707f));const _0xc8219b=_0x541afa>0x0?Math['round'](_0x12d98e/_0x541afa*0x64):0x0;document['getElementById']('usage-approved-summary')['textContent']=formatNumber(_0x12d98e)+'\x20approved\x20('+_0xc8219b+'%)\x20·\x20'+formatNumber(_0x1195f6['timing']['totalDurationHours']||0x0)+'h\x20total',document['getElementById']('usage-success-detail')['textContent']=(_0x1195f6['approvalRate']['completed']||0x0)+'\x20completed\x20/\x20'+(_0x1195f6['approvalRate']['failed']||0x0)+'\x20failed\x20/\x20'+(_0x1195f6['approvalRate']['interrupted']||0x0)+'\x20interrupted',document['getElementById']('usage-net-lines-detail')['textContent']='+'+formatNumber(_0x1195f6['code']['linesAdded']||0x0)+'\x20/\x20-'+formatNumber(_0x1195f6['code']['linesDeleted']||0x0)+'\x20·\x20Approved\x20'+formatSignedNumber(_0x478bbd)+'\x20net',document['getElementById']('usage-average-duration-detail')['textContent']=formatDurationMinutes(_0x1195f6['timing']['medianDurationMinutes']||0x0)+'\x20median\x20·\x20'+formatNumber(_0x1195f6['timing']['totalDurationHours']||0x0)+'h\x20total',document['getElementById']('usage-period-summary')['textContent']=buildPeriodSummary(_0x1195f6['period']),renderBarList('usage-status-bars',_0x1195f6['tasks']['byStatus']||{}),renderObjectTable('usage-type-body',_0x1195f6['tasks']['byType']||{},_0x541afa,{'includePercent':!![],'labelFormatter':prettifyKey}),renderObjectTable('usage-environment-body',_0x1195f6['tasks']['byEnvironment']||{},_0x541afa),renderUserTable('usage-user-body',_0x1195f6['tasks']['byUser']||[]),renderObjectTable('usage-source-body',_0x1195f6['tasks']['bySource']||{},_0x541afa,{'labelFormatter':prettifyKey}),document['getElementById']('usage-lines-added')['textContent']=formatNumber(_0x1195f6['code']['linesAdded']||0x0),document['getElementById']('usage-lines-deleted')['textContent']=formatNumber(_0x1195f6['code']['linesDeleted']||0x0),document['getElementById']('usage-files-changed')['textContent']=formatNumber(_0x1195f6['code']['filesChanged']||0x0),document['getElementById']('usage-repositories-affected')['textContent']=formatNumber(_0x1195f6['code']['repositoriesAffected']||0x0),document['getElementById']('usage-approved-lines-added')['textContent']=formatNumber(_0x558486['linesAdded']||0x0),document['getElementById']('usage-approved-lines-deleted')['textContent']=formatNumber(_0x558486['linesDeleted']||0x0),document['getElementById']('usage-approved-files-changed')['textContent']=formatNumber(_0x558486['filesChanged']||0x0),document['getElementById']('usage-approved-repositories-affected')['textContent']=formatNumber(_0x558486['repositoriesAffected']||0x0);const _0x4e7ee2=(_0x130d20,_0x4b9ea0)=>_0x130d20>0x0?Math['round'](_0x4b9ea0/_0x130d20*0x64):0x0;document['getElementById']('usage-added-pct')['style']['width']=_0x4e7ee2(_0x1195f6['code']['linesAdded']||0x0,_0x558486['linesAdded']||0x0)+'%',document['getElementById']('usage-deleted-pct')['style']['width']=_0x4e7ee2(_0x1195f6['code']['linesDeleted']||0x0,_0x558486['linesDeleted']||0x0)+'%',document['getElementById']('usage-files-pct')['style']['width']=_0x4e7ee2(_0x1195f6['code']['filesChanged']||0x0,_0x558486['filesChanged']||0x0)+'%',document['getElementById']('usage-repos-pct')['style']['width']=_0x4e7ee2(_0x1195f6['code']['repositoriesAffected']||0x0,_0x558486['repositoriesAffected']||0x0)+'%';}function buildPeriodSummary(_0x54bb4b){const _0x4e73b3=_0x54bb4b?.['from']?formatDateTime(_0x54bb4b['from']):'the\x20earliest\x20loaded\x20task',_0x44b525=_0x54bb4b?.['to']?formatDateTime(_0x54bb4b['to']):'now',_0xea97cc=_0x54bb4b?.['days']?_0x54bb4b['days']+'\x20day\x20window':'All\x20available\x20task\x20history';return _0xea97cc+'\x20·\x20'+_0x4e73b3+'\x20to\x20'+_0x44b525;}function renderBarList(_0x4922db,_0x59b0fd){const _0x43bc7c=document['getElementById'](_0x4922db);if(!_0x43bc7c)return;const _0x51357c=Object['entries'](_0x59b0fd)['filter'](([,_0x4e29f5])=>Number(_0x4e29f5)>0x0)['sort']((_0x1d0606,_0x46249b)=>_0x46249b[0x1]-_0x1d0606[0x1]),_0x122b49=_0x51357c['reduce']((_0x20d86f,[,_0x47263c])=>_0x20d86f+Number(_0x47263c||0x0),0x0);if(_0x51357c['length']===0x0){_0x43bc7c['innerHTML']='<div\x20class=\x22text-muted\x22>No\x20data\x20available.</div>';return;}_0x43bc7c['innerHTML']=_0x51357c['map'](([_0x4ec2a5,_0xe1e3fb])=>{const _0x3b9b05=_0x122b49>0x0?Math['max'](0x2,Math['round'](_0xe1e3fb/_0x122b49*0x64)):0x0,_0x4d1c07=Utils['escapeHtml'](prettifyKey(_0x4ec2a5)),_0x340ddb=Utils['escapeHtml'](formatNumber(_0xe1e3fb));return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-bar-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-bar-label\x22>'+_0x4d1c07+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-bar-track\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-bar-fill\x20status-'+Utils['escapeHtml'](String(_0x4ec2a5)['toLowerCase']())+'\x22\x20style=\x22width:\x20'+_0x3b9b05+'%\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-bar-value\x22>'+_0x340ddb+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';})['join']('');}function renderObjectTable(_0x3d1e15,_0x32080d,_0x165062,{includePercent:includePercent=![],labelFormatter:labelFormatter=null}={}){const _0x6f22ea=document['getElementById'](_0x3d1e15);if(!_0x6f22ea)return;const _0x5eda42=Object['entries'](_0x32080d)['filter'](([,_0x557642])=>Number(_0x557642)>0x0)['sort']((_0x1a8525,_0x48b93c)=>_0x48b93c[0x1]-_0x1a8525[0x1]||String(_0x1a8525[0x0])['localeCompare'](String(_0x48b93c[0x0])));if(_0x5eda42['length']===0x0){_0x6f22ea['innerHTML']='<tr><td\x20colspan=\x22'+(includePercent?0x3:0x2)+'\x22\x20class=\x22text-muted\x22>No\x20data\x20available.</td></tr>';return;}_0x6f22ea['innerHTML']=_0x5eda42['map'](([_0x5981bc,_0x3d2644])=>{const _0x10c4d6=labelFormatter?labelFormatter(_0x5981bc):_0x5981bc,_0x21a7f8=includePercent?'<td>'+formatPercent(_0x165062>0x0?_0x3d2644/_0x165062*0x64:0x0)+'</td>':'';return'\x0a\x20\x20\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](String(_0x10c4d6))+'</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](formatNumber(_0x3d2644))+'</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x21a7f8+'\x0a\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20';})['join']('');}function renderUserTable(_0x2d7e18,_0x366e6c){const _0xe20b09=document['getElementById'](_0x2d7e18);if(!_0xe20b09)return;if(!Array['isArray'](_0x366e6c)||_0x366e6c['length']===0x0){_0xe20b09['innerHTML']='<tr><td\x20colspan=\x222\x22\x20class=\x22text-muted\x22>No\x20data\x20available.</td></tr>';return;}_0xe20b09['innerHTML']=_0x366e6c['map'](_0x4156ce=>'\x0a\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](_0x4156ce['name']||_0x4156ce['username']||_0x4156ce['userId']||'Unknown')+'</td>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](formatNumber(_0x4156ce['count']||0x0))+'</td>\x0a\x20\x20\x20\x20</tr>\x0a\x20\x20')['join']('');}function updateActiveFilterButtons(_0x18278a,_0x472e18){document['querySelectorAll'](_0x18278a+'\x20.admin-filter-btn')['forEach'](_0x9c1d13=>{_0x9c1d13['classList']['toggle']('active',_0x9c1d13['dataset']['level']===_0x472e18||_0x9c1d13['dataset']['days']===_0x472e18||_0x9c1d13['dataset']['order']===_0x472e18);});}function scrollLogsToLiveEdge(_0x584957){if(!_0x584957)return;if(state['logs']['order']===LOG_ORDER_DESC){_0x584957['scrollTop']=0x0;return;}_0x584957['scrollTop']=_0x584957['scrollHeight'];}function setSummaryValue(_0x9f7c3b,_0x8775eb,_0x580e53=''){const _0xd62ff8=document['getElementById'](_0x9f7c3b);if(!_0xd62ff8)return;_0xd62ff8['textContent']=_0x8775eb,_0xd62ff8['classList']['remove']('status-good','status-warn','status-bad'),_0x580e53&&_0xd62ff8['classList']['add'](_0x580e53);}function statusClassFromPercent(_0x4b14ed){if(_0x4b14ed>=0x50)return'status-good';if(_0x4b14ed>0x3c)return'status-warn';return'status-bad';}function formatDateTime(_0x2057f7){const _0xc7f565=new Date(_0x2057f7);if(Number['isNaN'](_0xc7f565['getTime']()))return _0x2057f7||'Unknown';return _0xc7f565['toLocaleString']();}function formatLogContext(_0x4136b1){if(!_0x4136b1)return'';try{return JSON['stringify'](_0x4136b1,null,0x2);}catch{return String(_0x4136b1);}}function formatLogEntryForClipboard(_0xa43901){const _0x1771d8=['['+formatDateTime(_0xa43901['timestamp'])+']\x20'+String(_0xa43901['level']||'INFO')['toUpperCase']()];_0xa43901['message']&&_0x1771d8['push'](String(_0xa43901['message']));const _0x3f6df6=formatLogContext(_0xa43901['context']);return _0x3f6df6&&(_0x1771d8['push']('Context:'),_0x1771d8['push'](_0x3f6df6)),_0x1771d8['join']('\x0a');}function formatLogEntriesForClipboard(_0x40297e){if(!Array['isArray'](_0x40297e)||_0x40297e['length']===0x0)return'';return _0x40297e['map'](formatLogEntryForClipboard)['join']('\x0a\x0a');}function formatDurationMinutes(_0x6054ca){const _0x4cbce0=Math['round'](Number(_0x6054ca)||0x0);if(_0x4cbce0<0x3c)return _0x4cbce0+'m';const _0x5f0c9e=Math['floor'](_0x4cbce0/0x3c),_0x318439=_0x4cbce0%0x3c;return _0x318439>0x0?_0x5f0c9e+'h\x20'+_0x318439+'m':_0x5f0c9e+'h';}function formatPercent(_0x2cb7cf){return Math['round'](Number(_0x2cb7cf)||0x0)+'%';}function formatNumber(_0x195fee){return NUMBER_FORMATTER['format'](Number(_0x195fee)||0x0);}function formatSignedNumber(_0x336d69){const _0x156632=Number(_0x336d69)||0x0;if(_0x156632>0x0)return'+'+formatNumber(_0x156632);return formatNumber(_0x156632);}function prettifyKey(_0x30d089){return String(_0x30d089)['replace'](/[_-]+/g,'\x20')['replace'](/\b\w/g,_0x18ce1f=>_0x18ce1f['toUpperCase']());}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export function parseEventsToActivities(_0x563e6d){const _0x544494=[];let _0x5009ee=null,_0x2d2e3f=null,_0x303d26=null,_0x1ecd14=null;return _0x563e6d['forEach'](_0x3da93f=>{if(_0x3da93f['type']==='assistant'&&_0x3da93f['message']?.['content'])_0x3da93f['message']['content']['forEach']((_0x13c486,_0x2f188f)=>{if(_0x13c486['type']==='text'){const _0x5066fd=_0x13c486['id']||_0x3da93f['message']['id']+'-'+_0x3da93f['timestamp']+'-'+_0x2f188f,_0x327dd0=_0x3da93f['message']['stop_reason']==='end_turn';_0x544494['push']({'icon':_0x327dd0?'🤖':'💭','action':_0x327dd0?'Response':'Thinking','detail':truncate(_0x13c486['text'],0x64),'status':'success','id':_0x5066fd,'fullContent':_0x13c486['text'],'expandable':!![],'isAgentResponse':_0x327dd0,'timestamp':_0x3da93f['timestamp'],'rawData':{'event':_0x3da93f,'block':_0x13c486}});}else{if(_0x13c486['type']==='tool_use'){const _0x395444=_0x13c486['name']==='TodoWrite'||_0x13c486['name']==='AskUserQuestion'||_0x13c486['name']==='ExitPlanMode';_0x544494['push']({'icon':getToolIcon(_0x13c486['name']),'action':_0x13c486['name'],'detail':formatToolInputCompact(_0x13c486['name'],_0x13c486['input']),'status':'running','id':_0x13c486['id'],'fullContent':_0x395444?_0x13c486['input']:null,'expandable':_0x395444,'toolInput':_0x13c486['input'],'timestamp':_0x3da93f['timestamp'],'rawData':{'event':_0x3da93f,'block':_0x13c486}});}}});else{if(_0x3da93f['type']==='user'&&_0x3da93f['message']?.['content'])_0x3da93f['message']['content']['forEach'](_0x4b13a6=>{if(_0x4b13a6['type']==='tool_result'){const _0x567cb1=_0x544494['find'](_0x5c6052=>_0x5c6052['id']===_0x4b13a6['tool_use_id']);_0x567cb1&&(_0x567cb1['status']=_0x4b13a6['is_error']?'error':'success',shouldBeExpandable(_0x567cb1['action'])&&(_0x567cb1['fullContent']=formatToolResult(_0x567cb1['action'],_0x4b13a6['content'],_0x567cb1['toolInput'],_0x4b13a6['is_error'],_0x3da93f['tool_use_result']),_0x567cb1['expandable']=!![]),_0x567cb1['rawData']=mergeRawData(_0x567cb1['rawData'],{'toolResultEvent':_0x3da93f,'toolResult':_0x4b13a6}));}});else{if(_0x3da93f['type']==='turn.started')_0x1ecd14=_0x544494['length'];else{if(_0x3da93f['type']==='turn.completed')promoteCodexTurnThinkingToResponse(_0x544494,_0x1ecd14),_0x1ecd14=_0x544494['length'];else{if(_0x3da93f['type']==='item.started'&&_0x3da93f['item']){const _0x2ff99c=_0x3da93f['item'];if(_0x2ff99c['type']==='command_execution'){const _0xd6c207=_0x2ff99c['id']+'-'+_0x3da93f['timestamp'];_0x544494['push']({'icon':'🖥️','action':'Bash','detail':truncate(_0x2ff99c['command']||'',0x64),'status':'running','id':_0xd6c207,'codexItemId':_0x2ff99c['id'],'toolInput':{'command':_0x2ff99c['command']},'timestamp':_0x3da93f['timestamp'],'rawData':{'event':_0x3da93f}});}}else{if(_0x3da93f['type']==='item.completed'&&_0x3da93f['item']){const _0x467888=_0x3da93f['item'];if(_0x467888['type']==='reasoning')_0x544494['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x467888['text']||'',0x64),'status':'success','id':_0x467888['id']+'-'+_0x3da93f['timestamp'],'fullContent':_0x467888['text'],'expandable':!![],'timestamp':_0x3da93f['timestamp'],'rawData':{'event':_0x3da93f}});else{if(_0x467888['type']==='agent_message')_0x544494['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x467888['text']||'',0x64),'status':'success','id':_0x467888['id']+'-'+_0x3da93f['timestamp'],'fullContent':_0x467888['text'],'expandable':!![],'isAgentResponse':![],'isCodexAgentMessage':!![],'timestamp':_0x3da93f['timestamp'],'rawData':{'event':_0x3da93f}});else{if(_0x467888['type']==='command_execution'){const _0x1b515a=_0x544494['find'](_0x3d1c6d=>_0x3d1c6d['codexItemId']===_0x467888['id'])||_0x544494['find'](_0x31e4fa=>_0x31e4fa['id']===_0x467888['id']);if(_0x1b515a){const _0x3cec44=_0x467888['status']==='completed'&&_0x467888['exit_code']===0x0;_0x1b515a['status']=_0x3cec44?'success':'error',_0x1b515a['fullContent']=formatCodexCommandResult(_0x467888['command'],_0x467888['stdout'],_0x467888['stderr'],_0x467888['exit_code'],_0x467888['aggregated_output']),_0x1b515a['expandable']=!![],_0x1b515a['rawData']=mergeRawData(_0x1b515a['rawData'],{'completionEvent':_0x3da93f});}}}}}else{if(_0x3da93f['type']==='init'&&_0x3da93f['session_id'])_0x5009ee=null,_0x2d2e3f=null,_0x303d26=null;else{if(_0x3da93f['type']==='message'&&_0x3da93f['role']==='assistant'&&_0x3da93f['content']){if(_0x3da93f['delta'])!_0x5009ee?(_0x5009ee=_0x3da93f['content'],_0x2d2e3f='gemini-msg-'+_0x3da93f['timestamp'],_0x303d26=_0x3da93f['timestamp']):_0x5009ee+=_0x3da93f['content'];else{const _0x50607c=stripBobToolNotation(_0x3da93f['content']);_0x50607c['trim']()&&_0x544494['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x50607c,0x64),'status':'success','id':'gemini-msg-'+_0x3da93f['timestamp'],'fullContent':_0x50607c,'expandable':!![],'timestamp':_0x3da93f['timestamp'],'rawData':{'event':_0x3da93f}});}}else{if(_0x3da93f['type']==='tool_use'&&_0x3da93f['tool_name']){if(_0x5009ee){const _0x2b8dcf=stripBobToolNotation(_0x5009ee);_0x2b8dcf['trim']()&&_0x544494['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x2b8dcf,0x64),'status':'success','id':_0x2d2e3f,'fullContent':_0x2b8dcf,'expandable':!![],'timestamp':_0x303d26,'rawData':{'bufferedContent':_0x5009ee,'messageId':_0x2d2e3f,'flushedBy':_0x3da93f}}),_0x5009ee=null,_0x2d2e3f=null,_0x303d26=null;}const {icon:_0x3efe66,action:_0x73f77,detail:_0x5a0ba9}=mapGeminiTool(_0x3da93f['tool_name'],_0x3da93f['parameters']),_0x3442b7=_0x3da93f['tool_name']==='attempt_completion',_0x2c0172=_0x73f77==='TodoWrite';_0x544494['push']({'icon':_0x3efe66,'action':_0x73f77,'detail':_0x5a0ba9,'status':_0x3442b7?'success':'running','id':_0x3da93f['tool_id'],'toolInput':_0x3da93f['parameters'],'fullContent':_0x3442b7?_0x3da93f['parameters']?.['result']||'':_0x2c0172?normalizeTodoContent(_0x3da93f['parameters']):undefined,'expandable':_0x3442b7||_0x2c0172,'isAgentResponse':_0x3442b7,'timestamp':_0x3da93f['timestamp'],'rawData':{'event':_0x3da93f}});}else{if(_0x3da93f['type']==='tool_result'&&_0x3da93f['tool_id']){const _0x254439=_0x544494['find'](_0x53bffe=>_0x53bffe['id']===_0x3da93f['tool_id']);if(_0x254439){const _0x258265=_0x3da93f['status']==='success';_0x254439['status']=_0x258265?'success':'error';if(shouldBeExpandable(_0x254439['action'])){const _0x15eec3=_0x3da93f['output']||_0x3da93f['content']||_0x3da93f['result']||_0x3da93f['stdout']||'',_0x2fc96e=_0x3da93f['error']?.['message']||'',_0x6aec5e=_0x258265?_0x15eec3:'Error:\x20'+_0x2fc96e+'\x0a'+_0x15eec3;_0x254439['fullContent']=formatToolResult(_0x254439['action'],_0x6aec5e,_0x254439['toolInput'],!_0x258265),_0x254439['expandable']=!![];}_0x254439['rawData']=mergeRawData(_0x254439['rawData'],{'toolResultEvent':_0x3da93f});}}else _0x3da93f['type']==='result'&&_0x3da93f['stats']&&(_0x5009ee&&(_0x544494['push']({'icon':'🤖','action':'Response','detail':truncate(_0x5009ee,0x64),'status':'success','id':_0x2d2e3f||'gemini-msg-final','fullContent':_0x5009ee,'expandable':!![],'isAgentResponse':!![],'timestamp':_0x303d26,'rawData':{'bufferedContent':_0x5009ee,'messageId':_0x2d2e3f||'gemini-msg-final','resultEvent':_0x3da93f}}),_0x5009ee=null,_0x2d2e3f=null,_0x303d26=null));}}}}}}}}}}),_0x544494;}function mapGeminiTool(_0x49e9eb,_0x4fc6ad){let _0x4385e0='🔧',_0x4d30ab=_0x49e9eb,_0x4ff64e='';if(_0x49e9eb==='bash'||_0x49e9eb==='run_shell_command'||_0x49e9eb==='execute_command')_0x4385e0='🖥️',_0x4d30ab='Bash',_0x4ff64e=truncate(_0x4fc6ad?.['command']||'',0x64);else{if(_0x49e9eb==='read_file'||_0x49e9eb==='read_many_files')_0x4385e0='📖',_0x4d30ab='Read',_0x4ff64e=_0x4fc6ad?.['path']||_0x4fc6ad?.['file_path']||(Array['isArray'](_0x4fc6ad?.['paths'])?_0x4fc6ad['paths']['join'](',\x20'):'')||'';else{if(_0x49e9eb==='write_file'||_0x49e9eb==='write_to_file')_0x4385e0='✍️',_0x4d30ab='Write',_0x4ff64e=_0x4fc6ad?.['path']||_0x4fc6ad?.['file_path']||'';else{if(_0x49e9eb==='edit_file'||_0x49e9eb==='replace'||_0x49e9eb==='search_and_replace')_0x4385e0='✏️',_0x4d30ab='Edit',_0x4ff64e=_0x4fc6ad?.['path']||_0x4fc6ad?.['file_path']||'';else{if(_0x49e9eb==='search_file_content')_0x4385e0='🔎',_0x4d30ab='Grep',_0x4ff64e='\x22'+(_0x4fc6ad?.['pattern']||_0x4fc6ad?.['query']||'')+'\x22';else{if(_0x49e9eb==='write_todos'||_0x49e9eb==='update_todo_list')_0x4385e0='<svg\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><line\x20x1=\x2210\x22\x20y1=\x226\x22\x20x2=\x2221\x22\x20y2=\x226\x22></line><line\x20x1=\x2210\x22\x20y1=\x2212\x22\x20x2=\x2221\x22\x20y2=\x2212\x22></line><line\x20x1=\x2210\x22\x20y1=\x2218\x22\x20x2=\x2221\x22\x20y2=\x2218\x22></line><polyline\x20points=\x223\x206\x204\x207\x206\x205\x22></polyline><polyline\x20points=\x223\x2012\x204\x2013\x206\x2011\x22></polyline><polyline\x20points=\x223\x2018\x204\x2019\x206\x2017\x22></polyline></svg>',_0x4d30ab='TodoWrite',_0x4ff64e=formatTodoWriteInput(normalizeTodoContent(_0x4fc6ad)||{});else{if(_0x49e9eb==='apply_diff'||_0x49e9eb==='insert_content')_0x4385e0='✏️',_0x4d30ab='Edit',_0x4ff64e=_0x4fc6ad?.['file_path']||_0x4fc6ad?.['path']||'';else{if(_0x49e9eb==='attempt_completion')_0x4385e0='🤖',_0x4d30ab='Response',_0x4ff64e=truncate(_0x4fc6ad?.['result']||'',0x64);else{if(_0x49e9eb==='list_directory'||_0x49e9eb==='list_dir'||_0x49e9eb==='list_files')_0x4385e0='🔍',_0x4d30ab='Glob',_0x4ff64e=_0x4fc6ad?.['path']||_0x4fc6ad?.['directory']||'';else{if(_0x49e9eb==='search_files'||_0x49e9eb==='grep_search')_0x4385e0='🔎',_0x4d30ab='Grep',_0x4ff64e='\x22'+(_0x4fc6ad?.['pattern']||_0x4fc6ad?.['query']||_0x4fc6ad?.['regex']||'')+'\x22';else{if(_0x49e9eb==='web_fetch')_0x4385e0='🌐',_0x4d30ab='WebFetch',_0x4ff64e=_0x4fc6ad?.['url']||'';else{if(_0x49e9eb==='ask_followup_question')_0x4385e0='❓',_0x4d30ab='AskUserQuestion',_0x4ff64e=truncate(_0x4fc6ad?.['question']||'',0x64);else{if(_0x49e9eb==='google_web_search')_0x4385e0='🔍',_0x4d30ab='WebSearch',_0x4ff64e=truncate(_0x4fc6ad?.['query']||'',0x64);else _0x49e9eb==='save_memory'?(_0x4385e0='💾',_0x4d30ab='SaveMemory',_0x4ff64e=truncate(_0x4fc6ad?.['key']||_0x4fc6ad?.['content']||'',0x64)):_0x4ff64e=truncate(JSON['stringify'](_0x4fc6ad),0x50);}}}}}}}}}}}}return{'icon':_0x4385e0,'action':_0x4d30ab,'detail':_0x4ff64e};}function getToolIcon(_0x446585){const _0xe96c44={'Read':'📖','Write':'✍️','Edit':'✏️','Bash':'🖥️','Glob':'🔍','Grep':'🔎','Task':'🤖','WebFetch':'🌐','WebSearch':'🔍','SlashCommand':'⚡','TodoWrite':'<svg\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><line\x20x1=\x2210\x22\x20y1=\x226\x22\x20x2=\x2221\x22\x20y2=\x226\x22></line><line\x20x1=\x2210\x22\x20y1=\x2212\x22\x20x2=\x2221\x22\x20y2=\x2212\x22></line><line\x20x1=\x2210\x22\x20y1=\x2218\x22\x20x2=\x2221\x22\x20y2=\x2218\x22></line><polyline\x20points=\x223\x206\x204\x207\x206\x205\x22></polyline><polyline\x20points=\x223\x2012\x204\x2013\x206\x2011\x22></polyline><polyline\x20points=\x223\x2018\x204\x2019\x206\x2017\x22></polyline></svg>','AskUserQuestion':'❓','NotebookEdit':'📓','ToolSearch':'🔌','Agent':'🤖','EnterPlanMode':'📋','ExitPlanMode':'📋'};return _0xe96c44[_0x446585]||'🔧';}function formatToolInputCompact(_0x28e135,_0x2abe64){if(!_0x2abe64)return'';switch(_0x28e135){case'Read':return _0x2abe64['path']||_0x2abe64['file_path']||'';case'Write':case'Edit':const _0x1459f5=_0x2abe64['path']||_0x2abe64['file_path']||'',_0x20d222=_0x2abe64['content']?.['length']||_0x2abe64['new_string']?.['length']||0x0;return''+_0x1459f5+(_0x20d222>0x0?'\x20('+_0x20d222+'\x20chars)':'');case'Bash':return truncate(_0x2abe64['command']||'',0x50);case'Glob':return _0x2abe64['pattern']||'';case'Grep':return'\x22'+(_0x2abe64['pattern']||'')+'\x22';case'TodoWrite':return formatTodoWriteInput(_0x2abe64);case'AskUserQuestion':return formatAskUserQuestionCompact(_0x2abe64);case'Agent':return _0x2abe64['description']||truncate(_0x2abe64['prompt']||'',0x50);case'ToolSearch':return _0x2abe64['query']||'';case'EnterPlanMode':return'Entering\x20plan\x20mode';case'ExitPlanMode':{const _0x547b28=_0x2abe64['plan']||'',_0x14c02a=_0x547b28['match'](/^#\s+(.+)/m);return _0x14c02a?truncate(_0x14c02a[0x1],0x3c):'Plan\x20complete';}default:return truncate(JSON['stringify'](_0x2abe64),0x50);}}function parseTodoMarkdown(_0x59b84d){if(typeof _0x59b84d!=='string')return null;const _0x1cb4d3=_0x59b84d['split']('\x0a')['map'](_0x5001a2=>_0x5001a2['trim']())['filter'](_0x3555cc=>/^\[[ x\-]\]/i['test'](_0x3555cc));if(_0x1cb4d3['length']===0x0)return null;return _0x1cb4d3['map'](_0x43702d=>{const _0x4f2003=_0x43702d['match'](/^\[(.)\]/)?.[0x1]||'\x20',_0xf2e6b3=_0x43702d['replace'](/^\[.\]\s*/,'')['trim']();let _0x3b3adc='pending';if(_0x4f2003['toLowerCase']()==='x')_0x3b3adc='completed';else{if(_0x4f2003==='-')_0x3b3adc='in_progress';}return{'description':_0xf2e6b3,'status':_0x3b3adc};});}function normalizeTodoContent(_0x3c3243){if(!_0x3c3243)return _0x3c3243;if(Array['isArray'](_0x3c3243['todos']))return _0x3c3243;if(typeof _0x3c3243['todos']==='string'){const _0x6a9dbc=parseTodoMarkdown(_0x3c3243['todos']);if(_0x6a9dbc)return{..._0x3c3243,'todos':_0x6a9dbc};}return _0x3c3243;}function formatTodoWriteInput(_0x4ce3f3){if(!_0x4ce3f3['todos']||!Array['isArray'](_0x4ce3f3['todos']))return truncate(JSON['stringify'](_0x4ce3f3),0x32);const _0x3b23ce=_0x4ce3f3['todos'],_0x157896={'pending':'○','in_progress':'◐','completed':'●'},_0x3c5587=_0x3b23ce['slice'](0x0,0x3)['map'](_0x3e60c3=>{const _0x28d844=_0x157896[_0x3e60c3['status']]||'○',_0x4e245f=truncate(_0x3e60c3['content']||_0x3e60c3['description']||'No\x20description\x20provided',0x28);return _0x28d844+'\x20'+_0x4e245f;})['join'](',\x20'),_0x2e645e=_0x3b23ce['length']-0x3,_0x18ec8e=_0x2e645e>0x0?',\x20+'+_0x2e645e+'\x20more':'';return _0x3c5587+_0x18ec8e;}function stripBobToolNotation(_0x369577){if(!_0x369577)return'';return _0x369577['replace'](/\[using tool \w+:[^\]]*\]\n?/g,'')['trim']();}function shouldBeExpandable(_0x4e7505){const _0x93891=['Bash','Read','Write','Edit','Grep','Glob','WebFetch','WebSearch','NotebookEdit','Agent','Skill','Task','AskUserQuestion','ExitPlanMode','SaveMemory','TodoWrite'];return _0x93891['includes'](_0x4e7505);}function formatAskUserQuestionCompact(_0x574444){if(!_0x574444?.['questions']||!Array['isArray'](_0x574444['questions'])||_0x574444['questions']['length']===0x0){if(_0x574444?.['question'])return truncate(_0x574444['question'],0x50);return truncate(JSON['stringify'](_0x574444),0x50);}const _0x36ea8a=_0x574444['questions'][0x0],_0x5cb79f=_0x36ea8a['question']||_0x36ea8a['header']||'',_0x442ae7=_0x574444['questions']['length']>0x1?'\x20(+'+(_0x574444['questions']['length']-0x1)+'\x20more)':'';return truncate(_0x5cb79f,0x46)+_0x442ae7;}function formatToolResult(_0x329025,_0x1c814f,_0x35a0d3,_0xae6610,_0x2e0077){if(_0xae6610){if(_0x329025==='ExitPlanMode')return{'toolName':'ExitPlanMode','plan':_0x35a0d3?.['plan']||'','error':!![],'content':typeof _0x1c814f==='string'?_0x1c814f:JSON['stringify'](_0x1c814f,null,0x2)};if(_0x329025==='AskUserQuestion')return{'toolName':'AskUserQuestion','questions':_0x35a0d3?.['questions']||(_0x35a0d3?.['question']?[_0x35a0d3]:[]),'error':!![],'denied':!![],'content':typeof _0x1c814f==='string'?_0x1c814f:JSON['stringify'](_0x1c814f,null,0x2)};return{'toolName':_0x329025,'toolInput':_0x35a0d3,'error':!![],'content':typeof _0x1c814f==='string'?_0x1c814f:JSON['stringify'](_0x1c814f,null,0x2)};}switch(_0x329025){case'Bash':return{'toolName':'Bash','command':_0x35a0d3?.['command']||'','output':typeof _0x1c814f==='string'?_0x1c814f:_0x1c814f?JSON['stringify'](_0x1c814f,null,0x2):''};case'Read':return{'toolName':'Read','filePath':_0x35a0d3?.['path']||_0x35a0d3?.['file_path']||'','content':typeof _0x1c814f==='string'?_0x1c814f:_0x1c814f?JSON['stringify'](_0x1c814f,null,0x2):''};case'Write':return{'toolName':'Write','filePath':_0x35a0d3?.['path']||_0x35a0d3?.['file_path']||'','content':_0x35a0d3?.['content']||'','result':typeof _0x1c814f==='string'?_0x1c814f:'File\x20written\x20successfully'};case'Edit':const _0xfb10e9=_0x2e0077?.['structuredPatch']?.[0x0]?.['oldStart']||null;return{'toolName':'Edit','filePath':_0x35a0d3?.['path']||_0x35a0d3?.['file_path']||'','oldString':_0x35a0d3?.['old_string']||'','newString':_0x35a0d3?.['new_string']||'','replaceAll':_0x35a0d3?.['replace_all']||![],'startLine':_0xfb10e9,'result':typeof _0x1c814f==='string'?_0x1c814f:'File\x20edited\x20successfully'};case'Grep':return{'toolName':'Grep','pattern':_0x35a0d3?.['pattern']||'','path':_0x35a0d3?.['path']||'','outputMode':_0x35a0d3?.['output_mode']||'files_with_matches','content':typeof _0x1c814f==='string'?_0x1c814f:_0x1c814f?JSON['stringify'](_0x1c814f,null,0x2):''};case'Glob':return{'toolName':'Glob','pattern':_0x35a0d3?.['pattern']||'','path':_0x35a0d3?.['path']||'','content':typeof _0x1c814f==='string'?_0x1c814f:_0x1c814f?JSON['stringify'](_0x1c814f,null,0x2):''};case'WebFetch':return{'toolName':'WebFetch','url':_0x35a0d3?.['url']||'','prompt':_0x35a0d3?.['prompt']||'','content':typeof _0x1c814f==='string'?_0x1c814f:_0x1c814f?JSON['stringify'](_0x1c814f,null,0x2):''};case'WebSearch':return{'toolName':'WebSearch','query':_0x35a0d3?.['query']||'','content':typeof _0x1c814f==='string'?_0x1c814f:_0x1c814f?JSON['stringify'](_0x1c814f,null,0x2):''};case'NotebookEdit':return{'toolName':'NotebookEdit','notebookPath':_0x35a0d3?.['notebook_path']||'','cellId':_0x35a0d3?.['cell_id']||'','newSource':_0x35a0d3?.['new_source']||'','result':typeof _0x1c814f==='string'?_0x1c814f:'Notebook\x20cell\x20edited\x20successfully'};case'Agent':return{'toolName':'Agent','description':_0x35a0d3?.['description']||'','subagentType':_0x35a0d3?.['subagent_type']||'','model':_0x35a0d3?.['model']||'','prompt':_0x35a0d3?.['prompt']||'','content':typeof _0x1c814f==='string'?_0x1c814f:_0x1c814f?JSON['stringify'](_0x1c814f,null,0x2):''};case'Skill':return{'toolName':'Skill','toolInput':_0x35a0d3,'skill':_0x35a0d3?.['skill']||'','content':typeof _0x1c814f==='string'?_0x1c814f:_0x1c814f?JSON['stringify'](_0x1c814f,null,0x2):''};case'Task':return{'toolName':'Task','description':_0x35a0d3?.['description']||'','subagentType':_0x35a0d3?.['subagent_type']||'','prompt':_0x35a0d3?.['prompt']||'','content':typeof _0x1c814f==='string'?_0x1c814f:_0x1c814f?JSON['stringify'](_0x1c814f,null,0x2):''};case'AskUserQuestion':return{'toolName':'AskUserQuestion','questions':_0x35a0d3?.['questions']||(_0x35a0d3?.['question']?[_0x35a0d3]:[]),'answer':typeof _0x1c814f==='string'?_0x1c814f:_0x1c814f?JSON['stringify'](_0x1c814f,null,0x2):''};case'ExitPlanMode':return{'toolName':'ExitPlanMode','plan':_0x35a0d3?.['plan']||'','result':typeof _0x1c814f==='string'?_0x1c814f:''};case'SaveMemory':return{'toolName':'SaveMemory','key':_0x35a0d3?.['key']||'','content':typeof _0x1c814f==='string'?_0x1c814f:_0x1c814f?JSON['stringify'](_0x1c814f,null,0x2):''};default:return{'toolName':_0x329025,'toolInput':_0x35a0d3,'content':typeof _0x1c814f==='string'?_0x1c814f:_0x1c814f?JSON['stringify'](_0x1c814f,null,0x2):''};}}function formatCodexCommandResult(_0x1adb7f,_0x4a29cb,_0x449470,_0x1dac03,_0x4a3bbd){return{'toolName':'Bash','command':_0x1adb7f||'','stdout':_0x4a29cb||'','stderr':_0x449470||'','exitCode':_0x1dac03,'aggregated_output':_0x4a3bbd||''};}function promoteCodexTurnThinkingToResponse(_0x5749ff,_0x165663=null){const _0x1ccfc4=Number['isInteger'](_0x165663)&&_0x165663>=0x0?_0x165663:0x0;for(let _0x5cd43a=_0x5749ff['length']-0x1;_0x5cd43a>=_0x1ccfc4;_0x5cd43a--){const _0x4662b0=_0x5749ff[_0x5cd43a];if(!_0x4662b0?.['isCodexAgentMessage'])continue;if(_0x4662b0['action']==='Response'||_0x4662b0['isAgentResponse'])return;if(_0x4662b0['action']==='Thinking'){_0x4662b0['action']='Response',_0x4662b0['icon']='🤖',_0x4662b0['isAgentResponse']=!![];return;}}}function mergeRawData(_0x2200ee,_0x55a785){if(!_0x55a785)return _0x2200ee||null;const _0x10e2fe=typeof _0x55a785==='object'&&_0x55a785!==null?_0x55a785:{'value':_0x55a785};if(!_0x2200ee)return _0x10e2fe;if(typeof _0x2200ee==='object'&&_0x2200ee!==null&&!Array['isArray'](_0x2200ee))return{..._0x2200ee,..._0x10e2fe};return{'initial':_0x2200ee,..._0x10e2fe};}function truncate(_0x178fb8,_0x1c8ac5){if(!_0x178fb8||_0x178fb8['length']<=_0x1c8ac5)return _0x178fb8||'';return _0x178fb8['substring'](0x0,_0x1c8ac5)+'...';}export function calculateEventStats(_0x5bcc40){const _0x18bde2={'total':_0x5bcc40['length'],'toolUses':0x0,'toolResults':0x0,'thinking':0x0,'messages':0x0};return _0x5bcc40['forEach'](_0x2a5e65=>{if(_0x2a5e65['type']==='assistant'&&_0x2a5e65['message']?.['content'])_0x2a5e65['message']['content']['forEach'](_0x3407ca=>{if(_0x3407ca['type']==='tool_use')_0x18bde2['toolUses']++;else _0x3407ca['type']==='text'&&_0x18bde2['thinking']++;});else{if(_0x2a5e65['type']==='user'&&_0x2a5e65['message']?.['content'])_0x2a5e65['message']['content']['forEach'](_0x3ccb29=>{_0x3ccb29['type']==='tool_result'&&_0x18bde2['toolResults']++;});else{if((_0x2a5e65['type']==='item.completed'||_0x2a5e65['type']==='item.started')&&_0x2a5e65['item']){if(_0x2a5e65['item']['type']==='command_execution')_0x18bde2['toolUses']++,_0x2a5e65['type']==='item.completed'&&_0x2a5e65['item']['status']==='completed'&&_0x18bde2['toolResults']++;else{if(_0x2a5e65['item']['type']==='reasoning')_0x18bde2['thinking']++;else _0x2a5e65['item']['type']==='agent_message'&&_0x18bde2['messages']++;}}else{if(_0x2a5e65['type']==='message'&&_0x2a5e65['role']==='assistant'&&_0x2a5e65['content'])_0x18bde2['thinking']++;else{if(_0x2a5e65['type']==='tool_use'&&_0x2a5e65['tool_name'])_0x18bde2['toolUses']++;else _0x2a5e65['type']==='tool_result'&&_0x2a5e65['tool_id']&&_0x18bde2['toolResults']++;}}}}}),_0x18bde2;}
|
|
1
|
+
export function parseEventsToActivities(_0x5bf77d){const _0x40f51d=[];let _0x12c4b3=null,_0x2053d0=null,_0x410224=null,_0x59aeb6=null;return _0x5bf77d['forEach'](_0x176d00=>{if(_0x176d00['type']==='assistant'&&_0x176d00['message']?.['content'])_0x176d00['message']['content']['forEach']((_0x58ffa8,_0x411e48)=>{if(_0x58ffa8['type']==='text'){const _0x5114f6=_0x58ffa8['id']||_0x176d00['message']['id']+'-'+_0x176d00['timestamp']+'-'+_0x411e48,_0x47fd50=_0x176d00['message']['stop_reason']==='end_turn';_0x40f51d['push']({'icon':_0x47fd50?'🤖':'💭','action':_0x47fd50?'Response':'Thinking','detail':truncate(_0x58ffa8['text'],0x64),'status':'success','id':_0x5114f6,'fullContent':_0x58ffa8['text'],'expandable':!![],'isAgentResponse':_0x47fd50,'timestamp':_0x176d00['timestamp'],'rawData':{'event':_0x176d00,'block':_0x58ffa8}});}else{if(_0x58ffa8['type']==='tool_use'){const _0x11de7f=_0x58ffa8['name']==='TodoWrite'||_0x58ffa8['name']==='AskUserQuestion'||_0x58ffa8['name']==='ExitPlanMode';_0x40f51d['push']({'icon':getToolIcon(_0x58ffa8['name']),'action':_0x58ffa8['name'],'detail':formatToolInputCompact(_0x58ffa8['name'],_0x58ffa8['input']),'status':'running','id':_0x58ffa8['id'],'fullContent':_0x11de7f?_0x58ffa8['input']:null,'expandable':_0x11de7f,'toolInput':_0x58ffa8['input'],'timestamp':_0x176d00['timestamp'],'rawData':{'event':_0x176d00,'block':_0x58ffa8}});}}});else{if(_0x176d00['type']==='user'&&_0x176d00['message']?.['content'])_0x176d00['message']['content']['forEach'](_0x156ba1=>{if(_0x156ba1['type']==='tool_result'){const _0x5d7bb0=_0x40f51d['find'](_0x3a7ed8=>_0x3a7ed8['id']===_0x156ba1['tool_use_id']);_0x5d7bb0&&(_0x5d7bb0['status']=_0x156ba1['is_error']?'error':'success',shouldBeExpandable(_0x5d7bb0['action'])&&(_0x5d7bb0['fullContent']=formatToolResult(_0x5d7bb0['action'],_0x156ba1['content'],_0x5d7bb0['toolInput'],_0x156ba1['is_error'],_0x176d00['tool_use_result']),_0x5d7bb0['expandable']=!![]),_0x5d7bb0['rawData']=mergeRawData(_0x5d7bb0['rawData'],{'toolResultEvent':_0x176d00,'toolResult':_0x156ba1}));}});else{if(_0x176d00['type']==='turn.started')_0x59aeb6=_0x40f51d['length'];else{if(_0x176d00['type']==='turn.completed')promoteCodexTurnThinkingToResponse(_0x40f51d,_0x59aeb6),_0x59aeb6=_0x40f51d['length'];else{if(_0x176d00['type']==='item.started'&&_0x176d00['item']){const _0x15ea89=_0x176d00['item'];if(_0x15ea89['type']==='command_execution'){const _0x119b2e=_0x15ea89['id']+'-'+_0x176d00['timestamp'];_0x40f51d['push']({'icon':'🖥️','action':'Bash','detail':truncate(_0x15ea89['command']||'',0x64),'status':'running','id':_0x119b2e,'codexItemId':_0x15ea89['id'],'toolInput':{'command':_0x15ea89['command']},'timestamp':_0x176d00['timestamp'],'rawData':{'event':_0x176d00}});}}else{if(_0x176d00['type']==='item.completed'&&_0x176d00['item']){const _0xa2cdd9=_0x176d00['item'];if(_0xa2cdd9['type']==='reasoning')_0x40f51d['push']({'icon':'💭','action':'Thinking','detail':truncate(_0xa2cdd9['text']||'',0x64),'status':'success','id':_0xa2cdd9['id']+'-'+_0x176d00['timestamp'],'fullContent':_0xa2cdd9['text'],'expandable':!![],'timestamp':_0x176d00['timestamp'],'rawData':{'event':_0x176d00}});else{if(_0xa2cdd9['type']==='agent_message')_0x40f51d['push']({'icon':'💭','action':'Thinking','detail':truncate(_0xa2cdd9['text']||'',0x64),'status':'success','id':_0xa2cdd9['id']+'-'+_0x176d00['timestamp'],'fullContent':_0xa2cdd9['text'],'expandable':!![],'isAgentResponse':![],'isCodexAgentMessage':!![],'timestamp':_0x176d00['timestamp'],'rawData':{'event':_0x176d00}});else{if(_0xa2cdd9['type']==='command_execution'){const _0x29664d=_0x40f51d['find'](_0x4b4a21=>_0x4b4a21['codexItemId']===_0xa2cdd9['id'])||_0x40f51d['find'](_0x20d7ea=>_0x20d7ea['id']===_0xa2cdd9['id']);if(_0x29664d){const _0xd16d2c=_0xa2cdd9['status']==='completed'&&_0xa2cdd9['exit_code']===0x0;_0x29664d['status']=_0xd16d2c?'success':'error',_0x29664d['fullContent']=formatCodexCommandResult(_0xa2cdd9['command'],_0xa2cdd9['stdout'],_0xa2cdd9['stderr'],_0xa2cdd9['exit_code'],_0xa2cdd9['aggregated_output']),_0x29664d['expandable']=!![],_0x29664d['rawData']=mergeRawData(_0x29664d['rawData'],{'completionEvent':_0x176d00});}}}}}else{if(_0x176d00['type']==='init'&&_0x176d00['session_id'])_0x12c4b3=null,_0x2053d0=null,_0x410224=null;else{if(_0x176d00['type']==='message'&&_0x176d00['role']==='assistant'&&_0x176d00['content']){if(_0x176d00['delta'])!_0x12c4b3?(_0x12c4b3=_0x176d00['content'],_0x2053d0='gemini-msg-'+_0x176d00['timestamp'],_0x410224=_0x176d00['timestamp']):_0x12c4b3+=_0x176d00['content'];else{const _0x3c6586=stripBobToolNotation(_0x176d00['content']);_0x3c6586['trim']()&&_0x40f51d['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x3c6586,0x64),'status':'success','id':'gemini-msg-'+_0x176d00['timestamp'],'fullContent':_0x3c6586,'expandable':!![],'timestamp':_0x176d00['timestamp'],'rawData':{'event':_0x176d00}});}}else{if(_0x176d00['type']==='tool_use'&&_0x176d00['tool_name']){if(_0x12c4b3){const _0x13f674=stripBobToolNotation(_0x12c4b3);_0x13f674['trim']()&&_0x40f51d['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x13f674,0x64),'status':'success','id':_0x2053d0,'fullContent':_0x13f674,'expandable':!![],'timestamp':_0x410224,'rawData':{'bufferedContent':_0x12c4b3,'messageId':_0x2053d0,'flushedBy':_0x176d00}}),_0x12c4b3=null,_0x2053d0=null,_0x410224=null;}const {icon:_0x336d62,action:_0x5c6b80,detail:_0x2e28c9}=mapGeminiTool(_0x176d00['tool_name'],_0x176d00['parameters']),_0x433a97=_0x176d00['tool_name']==='attempt_completion',_0x2661f2=_0x5c6b80==='TodoWrite';_0x40f51d['push']({'icon':_0x336d62,'action':_0x5c6b80,'detail':_0x2e28c9,'status':_0x433a97?'success':'running','id':_0x176d00['tool_id'],'toolInput':_0x176d00['parameters'],'fullContent':_0x433a97?_0x176d00['parameters']?.['result']||'':_0x2661f2?normalizeTodoContent(_0x176d00['parameters']):undefined,'expandable':_0x433a97||_0x2661f2,'isAgentResponse':_0x433a97,'timestamp':_0x176d00['timestamp'],'rawData':{'event':_0x176d00}});}else{if(_0x176d00['type']==='tool_result'&&_0x176d00['tool_id']){const _0x2a153b=_0x40f51d['find'](_0x50b25b=>_0x50b25b['id']===_0x176d00['tool_id']);if(_0x2a153b){const _0x3f9b67=_0x176d00['status']==='success';_0x2a153b['status']=_0x3f9b67?'success':'error';if(shouldBeExpandable(_0x2a153b['action'])){const _0x496bb5=_0x176d00['output']||_0x176d00['content']||_0x176d00['result']||_0x176d00['stdout']||'',_0x271072=_0x176d00['error']?.['message']||'',_0x57fad8=_0x3f9b67?_0x496bb5:'Error:\x20'+_0x271072+'\x0a'+_0x496bb5;_0x2a153b['fullContent']=formatToolResult(_0x2a153b['action'],_0x57fad8,_0x2a153b['toolInput'],!_0x3f9b67),_0x2a153b['expandable']=!![];}_0x2a153b['rawData']=mergeRawData(_0x2a153b['rawData'],{'toolResultEvent':_0x176d00});}}else _0x176d00['type']==='result'&&_0x176d00['stats']&&(_0x12c4b3&&(_0x40f51d['push']({'icon':'🤖','action':'Response','detail':truncate(_0x12c4b3,0x64),'status':'success','id':_0x2053d0||'gemini-msg-final','fullContent':_0x12c4b3,'expandable':!![],'isAgentResponse':!![],'timestamp':_0x410224,'rawData':{'bufferedContent':_0x12c4b3,'messageId':_0x2053d0||'gemini-msg-final','resultEvent':_0x176d00}}),_0x12c4b3=null,_0x2053d0=null,_0x410224=null));}}}}}}}}}}),_0x40f51d;}function mapGeminiTool(_0x4d83ff,_0xb34a4){let _0x4c4543='🔧',_0x2f5e00=_0x4d83ff,_0x5e19e0='';if(_0x4d83ff==='bash'||_0x4d83ff==='run_shell_command'||_0x4d83ff==='execute_command')_0x4c4543='🖥️',_0x2f5e00='Bash',_0x5e19e0=truncate(_0xb34a4?.['command']||'',0x64);else{if(_0x4d83ff==='read_file'||_0x4d83ff==='read_many_files')_0x4c4543='📖',_0x2f5e00='Read',_0x5e19e0=_0xb34a4?.['path']||_0xb34a4?.['file_path']||(Array['isArray'](_0xb34a4?.['paths'])?_0xb34a4['paths']['join'](',\x20'):'')||'';else{if(_0x4d83ff==='write_file'||_0x4d83ff==='write_to_file')_0x4c4543='✍️',_0x2f5e00='Write',_0x5e19e0=_0xb34a4?.['path']||_0xb34a4?.['file_path']||'';else{if(_0x4d83ff==='edit_file'||_0x4d83ff==='replace'||_0x4d83ff==='search_and_replace')_0x4c4543='✏️',_0x2f5e00='Edit',_0x5e19e0=_0xb34a4?.['path']||_0xb34a4?.['file_path']||'';else{if(_0x4d83ff==='search_file_content')_0x4c4543='🔎',_0x2f5e00='Grep',_0x5e19e0='\x22'+(_0xb34a4?.['pattern']||_0xb34a4?.['query']||'')+'\x22';else{if(_0x4d83ff==='write_todos'||_0x4d83ff==='update_todo_list')_0x4c4543='<svg\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><line\x20x1=\x2210\x22\x20y1=\x226\x22\x20x2=\x2221\x22\x20y2=\x226\x22></line><line\x20x1=\x2210\x22\x20y1=\x2212\x22\x20x2=\x2221\x22\x20y2=\x2212\x22></line><line\x20x1=\x2210\x22\x20y1=\x2218\x22\x20x2=\x2221\x22\x20y2=\x2218\x22></line><polyline\x20points=\x223\x206\x204\x207\x206\x205\x22></polyline><polyline\x20points=\x223\x2012\x204\x2013\x206\x2011\x22></polyline><polyline\x20points=\x223\x2018\x204\x2019\x206\x2017\x22></polyline></svg>',_0x2f5e00='TodoWrite',_0x5e19e0=formatTodoWriteInput(normalizeTodoContent(_0xb34a4)||{});else{if(_0x4d83ff==='apply_diff'||_0x4d83ff==='insert_content')_0x4c4543='✏️',_0x2f5e00='Edit',_0x5e19e0=_0xb34a4?.['file_path']||_0xb34a4?.['path']||'';else{if(_0x4d83ff==='attempt_completion')_0x4c4543='🤖',_0x2f5e00='Response',_0x5e19e0=truncate(_0xb34a4?.['result']||'',0x64);else{if(_0x4d83ff==='list_directory'||_0x4d83ff==='list_dir'||_0x4d83ff==='list_files')_0x4c4543='🔍',_0x2f5e00='Glob',_0x5e19e0=_0xb34a4?.['path']||_0xb34a4?.['directory']||'';else{if(_0x4d83ff==='search_files'||_0x4d83ff==='grep_search')_0x4c4543='🔎',_0x2f5e00='Grep',_0x5e19e0='\x22'+(_0xb34a4?.['pattern']||_0xb34a4?.['query']||_0xb34a4?.['regex']||'')+'\x22';else{if(_0x4d83ff==='web_fetch')_0x4c4543='🌐',_0x2f5e00='WebFetch',_0x5e19e0=_0xb34a4?.['url']||'';else{if(_0x4d83ff==='ask_followup_question')_0x4c4543='❓',_0x2f5e00='AskUserQuestion',_0x5e19e0=truncate(_0xb34a4?.['question']||'',0x64);else{if(_0x4d83ff==='google_web_search')_0x4c4543='🔍',_0x2f5e00='WebSearch',_0x5e19e0=truncate(_0xb34a4?.['query']||'',0x64);else _0x4d83ff==='save_memory'?(_0x4c4543='💾',_0x2f5e00='SaveMemory',_0x5e19e0=truncate(_0xb34a4?.['key']||_0xb34a4?.['content']||'',0x64)):_0x5e19e0=truncate(JSON['stringify'](_0xb34a4),0x50);}}}}}}}}}}}}return{'icon':_0x4c4543,'action':_0x2f5e00,'detail':_0x5e19e0};}function getToolIcon(_0x210cf4){const _0x34a25a={'Read':'📖','Write':'✍️','Edit':'✏️','Bash':'🖥️','Glob':'🔍','Grep':'🔎','Task':'🤖','WebFetch':'🌐','WebSearch':'🔍','SlashCommand':'⚡','TodoWrite':'<svg\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><line\x20x1=\x2210\x22\x20y1=\x226\x22\x20x2=\x2221\x22\x20y2=\x226\x22></line><line\x20x1=\x2210\x22\x20y1=\x2212\x22\x20x2=\x2221\x22\x20y2=\x2212\x22></line><line\x20x1=\x2210\x22\x20y1=\x2218\x22\x20x2=\x2221\x22\x20y2=\x2218\x22></line><polyline\x20points=\x223\x206\x204\x207\x206\x205\x22></polyline><polyline\x20points=\x223\x2012\x204\x2013\x206\x2011\x22></polyline><polyline\x20points=\x223\x2018\x204\x2019\x206\x2017\x22></polyline></svg>','AskUserQuestion':'❓','NotebookEdit':'📓','ToolSearch':'🔌','Agent':'🤖','EnterPlanMode':'📋','ExitPlanMode':'📋'};return _0x34a25a[_0x210cf4]||'🔧';}function formatToolInputCompact(_0x273853,_0x15bdf8){if(!_0x15bdf8)return'';switch(_0x273853){case'Read':return _0x15bdf8['path']||_0x15bdf8['file_path']||'';case'Write':case'Edit':const _0x394f0b=_0x15bdf8['path']||_0x15bdf8['file_path']||'',_0x199741=_0x15bdf8['content']?.['length']||_0x15bdf8['new_string']?.['length']||0x0;return''+_0x394f0b+(_0x199741>0x0?'\x20('+_0x199741+'\x20chars)':'');case'Bash':return truncate(_0x15bdf8['command']||'',0x50);case'Glob':return _0x15bdf8['pattern']||'';case'Grep':return'\x22'+(_0x15bdf8['pattern']||'')+'\x22';case'TodoWrite':return formatTodoWriteInput(_0x15bdf8);case'AskUserQuestion':return formatAskUserQuestionCompact(_0x15bdf8);case'Agent':return _0x15bdf8['description']||truncate(_0x15bdf8['prompt']||'',0x50);case'ToolSearch':return _0x15bdf8['query']||'';case'EnterPlanMode':return'Entering\x20plan\x20mode';case'ExitPlanMode':{const _0x54f448=_0x15bdf8['plan']||'',_0x3cacea=_0x54f448['match'](/^#\s+(.+)/m);return _0x3cacea?truncate(_0x3cacea[0x1],0x3c):'Plan\x20complete';}default:return truncate(JSON['stringify'](_0x15bdf8),0x50);}}function parseTodoMarkdown(_0x4ddf0a){if(typeof _0x4ddf0a!=='string')return null;const _0x40429c=_0x4ddf0a['split']('\x0a')['map'](_0x201120=>_0x201120['trim']())['filter'](_0x59004f=>/^\[[ x\-]\]/i['test'](_0x59004f));if(_0x40429c['length']===0x0)return null;return _0x40429c['map'](_0x52f527=>{const _0x4710d0=_0x52f527['match'](/^\[(.)\]/)?.[0x1]||'\x20',_0x515e9e=_0x52f527['replace'](/^\[.\]\s*/,'')['trim']();let _0x5dbc80='pending';if(_0x4710d0['toLowerCase']()==='x')_0x5dbc80='completed';else{if(_0x4710d0==='-')_0x5dbc80='in_progress';}return{'description':_0x515e9e,'status':_0x5dbc80};});}function normalizeTodoContent(_0x48492f){if(!_0x48492f)return _0x48492f;if(Array['isArray'](_0x48492f['todos']))return _0x48492f;if(typeof _0x48492f['todos']==='string'){const _0x1c886e=parseTodoMarkdown(_0x48492f['todos']);if(_0x1c886e)return{..._0x48492f,'todos':_0x1c886e};}return _0x48492f;}function formatTodoWriteInput(_0x9611e7){if(!_0x9611e7['todos']||!Array['isArray'](_0x9611e7['todos']))return truncate(JSON['stringify'](_0x9611e7),0x32);const _0x5b5b97=_0x9611e7['todos'],_0x36c89b={'pending':'○','in_progress':'◐','completed':'●'},_0x29725e=_0x5b5b97['slice'](0x0,0x3)['map'](_0x107282=>{const _0x1eed80=_0x36c89b[_0x107282['status']]||'○',_0x3a3ed4=truncate(_0x107282['content']||_0x107282['description']||'No\x20description\x20provided',0x28);return _0x1eed80+'\x20'+_0x3a3ed4;})['join'](',\x20'),_0xc66da5=_0x5b5b97['length']-0x3,_0x556a5d=_0xc66da5>0x0?',\x20+'+_0xc66da5+'\x20more':'';return _0x29725e+_0x556a5d;}function stripBobToolNotation(_0x405ce6){if(!_0x405ce6)return'';return _0x405ce6['replace'](/\[using tool \w+:[^\]]*\]\n?/g,'')['trim']();}function shouldBeExpandable(_0x5e0b6d){const _0x1f7183=['Bash','Read','Write','Edit','Grep','Glob','WebFetch','WebSearch','NotebookEdit','Agent','Skill','Task','AskUserQuestion','ExitPlanMode','SaveMemory','TodoWrite'];return _0x1f7183['includes'](_0x5e0b6d);}function formatAskUserQuestionCompact(_0x568fa1){if(!_0x568fa1?.['questions']||!Array['isArray'](_0x568fa1['questions'])||_0x568fa1['questions']['length']===0x0){if(_0x568fa1?.['question'])return truncate(_0x568fa1['question'],0x50);return truncate(JSON['stringify'](_0x568fa1),0x50);}const _0x4a30a0=_0x568fa1['questions'][0x0],_0x280253=_0x4a30a0['question']||_0x4a30a0['header']||'',_0x1eb9c2=_0x568fa1['questions']['length']>0x1?'\x20(+'+(_0x568fa1['questions']['length']-0x1)+'\x20more)':'';return truncate(_0x280253,0x46)+_0x1eb9c2;}function formatToolResult(_0x2a61d2,_0x4e25b7,_0x1ccdc8,_0x5b25b4,_0x24857d){if(_0x5b25b4){if(_0x2a61d2==='ExitPlanMode')return{'toolName':'ExitPlanMode','plan':_0x1ccdc8?.['plan']||'','error':!![],'content':typeof _0x4e25b7==='string'?_0x4e25b7:JSON['stringify'](_0x4e25b7,null,0x2)};if(_0x2a61d2==='AskUserQuestion')return{'toolName':'AskUserQuestion','questions':_0x1ccdc8?.['questions']||(_0x1ccdc8?.['question']?[_0x1ccdc8]:[]),'error':!![],'denied':!![],'content':typeof _0x4e25b7==='string'?_0x4e25b7:JSON['stringify'](_0x4e25b7,null,0x2)};return{'toolName':_0x2a61d2,'toolInput':_0x1ccdc8,'error':!![],'content':typeof _0x4e25b7==='string'?_0x4e25b7:JSON['stringify'](_0x4e25b7,null,0x2)};}switch(_0x2a61d2){case'Bash':return{'toolName':'Bash','command':_0x1ccdc8?.['command']||'','output':typeof _0x4e25b7==='string'?_0x4e25b7:_0x4e25b7?JSON['stringify'](_0x4e25b7,null,0x2):''};case'Read':return{'toolName':'Read','filePath':_0x1ccdc8?.['path']||_0x1ccdc8?.['file_path']||'','content':typeof _0x4e25b7==='string'?_0x4e25b7:_0x4e25b7?JSON['stringify'](_0x4e25b7,null,0x2):''};case'Write':return{'toolName':'Write','filePath':_0x1ccdc8?.['path']||_0x1ccdc8?.['file_path']||'','content':_0x1ccdc8?.['content']||'','result':typeof _0x4e25b7==='string'?_0x4e25b7:'File\x20written\x20successfully'};case'Edit':const _0x893618=_0x24857d?.['structuredPatch']?.[0x0]?.['oldStart']||null;return{'toolName':'Edit','filePath':_0x1ccdc8?.['path']||_0x1ccdc8?.['file_path']||'','oldString':_0x1ccdc8?.['old_string']||'','newString':_0x1ccdc8?.['new_string']||'','replaceAll':_0x1ccdc8?.['replace_all']||![],'startLine':_0x893618,'result':typeof _0x4e25b7==='string'?_0x4e25b7:'File\x20edited\x20successfully'};case'Grep':return{'toolName':'Grep','pattern':_0x1ccdc8?.['pattern']||'','path':_0x1ccdc8?.['path']||'','outputMode':_0x1ccdc8?.['output_mode']||'files_with_matches','content':typeof _0x4e25b7==='string'?_0x4e25b7:_0x4e25b7?JSON['stringify'](_0x4e25b7,null,0x2):''};case'Glob':return{'toolName':'Glob','pattern':_0x1ccdc8?.['pattern']||'','path':_0x1ccdc8?.['path']||'','content':typeof _0x4e25b7==='string'?_0x4e25b7:_0x4e25b7?JSON['stringify'](_0x4e25b7,null,0x2):''};case'WebFetch':return{'toolName':'WebFetch','url':_0x1ccdc8?.['url']||'','prompt':_0x1ccdc8?.['prompt']||'','content':typeof _0x4e25b7==='string'?_0x4e25b7:_0x4e25b7?JSON['stringify'](_0x4e25b7,null,0x2):''};case'WebSearch':return{'toolName':'WebSearch','query':_0x1ccdc8?.['query']||'','content':typeof _0x4e25b7==='string'?_0x4e25b7:_0x4e25b7?JSON['stringify'](_0x4e25b7,null,0x2):''};case'NotebookEdit':return{'toolName':'NotebookEdit','notebookPath':_0x1ccdc8?.['notebook_path']||'','cellId':_0x1ccdc8?.['cell_id']||'','newSource':_0x1ccdc8?.['new_source']||'','result':typeof _0x4e25b7==='string'?_0x4e25b7:'Notebook\x20cell\x20edited\x20successfully'};case'Agent':return{'toolName':'Agent','description':_0x1ccdc8?.['description']||'','subagentType':_0x1ccdc8?.['subagent_type']||'','model':_0x1ccdc8?.['model']||'','prompt':_0x1ccdc8?.['prompt']||'','content':typeof _0x4e25b7==='string'?_0x4e25b7:_0x4e25b7?JSON['stringify'](_0x4e25b7,null,0x2):''};case'Skill':return{'toolName':'Skill','toolInput':_0x1ccdc8,'skill':_0x1ccdc8?.['skill']||'','content':typeof _0x4e25b7==='string'?_0x4e25b7:_0x4e25b7?JSON['stringify'](_0x4e25b7,null,0x2):''};case'Task':return{'toolName':'Task','description':_0x1ccdc8?.['description']||'','subagentType':_0x1ccdc8?.['subagent_type']||'','prompt':_0x1ccdc8?.['prompt']||'','content':typeof _0x4e25b7==='string'?_0x4e25b7:_0x4e25b7?JSON['stringify'](_0x4e25b7,null,0x2):''};case'AskUserQuestion':return{'toolName':'AskUserQuestion','questions':_0x1ccdc8?.['questions']||(_0x1ccdc8?.['question']?[_0x1ccdc8]:[]),'answer':typeof _0x4e25b7==='string'?_0x4e25b7:_0x4e25b7?JSON['stringify'](_0x4e25b7,null,0x2):''};case'ExitPlanMode':return{'toolName':'ExitPlanMode','plan':_0x1ccdc8?.['plan']||'','result':typeof _0x4e25b7==='string'?_0x4e25b7:''};case'SaveMemory':return{'toolName':'SaveMemory','key':_0x1ccdc8?.['key']||'','content':typeof _0x4e25b7==='string'?_0x4e25b7:_0x4e25b7?JSON['stringify'](_0x4e25b7,null,0x2):''};default:return{'toolName':_0x2a61d2,'toolInput':_0x1ccdc8,'content':typeof _0x4e25b7==='string'?_0x4e25b7:_0x4e25b7?JSON['stringify'](_0x4e25b7,null,0x2):''};}}function formatCodexCommandResult(_0x4c782c,_0x3ebb5f,_0x4138c0,_0x18796a,_0xa5ed37){return{'toolName':'Bash','command':_0x4c782c||'','stdout':_0x3ebb5f||'','stderr':_0x4138c0||'','exitCode':_0x18796a,'aggregated_output':_0xa5ed37||''};}function promoteCodexTurnThinkingToResponse(_0x2dac56,_0x584f71=null){const _0x485165=Number['isInteger'](_0x584f71)&&_0x584f71>=0x0?_0x584f71:0x0;for(let _0x3fa467=_0x2dac56['length']-0x1;_0x3fa467>=_0x485165;_0x3fa467--){const _0x31586d=_0x2dac56[_0x3fa467];if(!_0x31586d?.['isCodexAgentMessage'])continue;if(_0x31586d['action']==='Response'||_0x31586d['isAgentResponse'])return;if(_0x31586d['action']==='Thinking'){_0x31586d['action']='Response',_0x31586d['icon']='🤖',_0x31586d['isAgentResponse']=!![];return;}}}function mergeRawData(_0x4191a0,_0x2977a5){if(!_0x2977a5)return _0x4191a0||null;const _0x1d4f3a=typeof _0x2977a5==='object'&&_0x2977a5!==null?_0x2977a5:{'value':_0x2977a5};if(!_0x4191a0)return _0x1d4f3a;if(typeof _0x4191a0==='object'&&_0x4191a0!==null&&!Array['isArray'](_0x4191a0))return{..._0x4191a0,..._0x1d4f3a};return{'initial':_0x4191a0,..._0x1d4f3a};}function truncate(_0x86c7ee,_0x3f9e57){if(!_0x86c7ee||_0x86c7ee['length']<=_0x3f9e57)return _0x86c7ee||'';return _0x86c7ee['substring'](0x0,_0x3f9e57)+'...';}export function calculateEventStats(_0x3b6d77){const _0x35c792={'total':_0x3b6d77['length'],'toolUses':0x0,'toolResults':0x0,'thinking':0x0,'messages':0x0};return _0x3b6d77['forEach'](_0x919701=>{if(_0x919701['type']==='assistant'&&_0x919701['message']?.['content'])_0x919701['message']['content']['forEach'](_0x15d4b4=>{if(_0x15d4b4['type']==='tool_use')_0x35c792['toolUses']++;else _0x15d4b4['type']==='text'&&_0x35c792['thinking']++;});else{if(_0x919701['type']==='user'&&_0x919701['message']?.['content'])_0x919701['message']['content']['forEach'](_0x108f2f=>{_0x108f2f['type']==='tool_result'&&_0x35c792['toolResults']++;});else{if((_0x919701['type']==='item.completed'||_0x919701['type']==='item.started')&&_0x919701['item']){if(_0x919701['item']['type']==='command_execution')_0x35c792['toolUses']++,_0x919701['type']==='item.completed'&&_0x919701['item']['status']==='completed'&&_0x35c792['toolResults']++;else{if(_0x919701['item']['type']==='reasoning')_0x35c792['thinking']++;else _0x919701['item']['type']==='agent_message'&&_0x35c792['messages']++;}}else{if(_0x919701['type']==='message'&&_0x919701['role']==='assistant'&&_0x919701['content'])_0x35c792['thinking']++;else{if(_0x919701['type']==='tool_use'&&_0x919701['tool_name'])_0x35c792['toolUses']++;else _0x919701['type']==='tool_result'&&_0x919701['tool_id']&&_0x35c792['toolResults']++;}}}}}),_0x35c792;}
|