@profoundlogic/coderflow-server 0.8.4 → 0.8.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/dist/coder-server.js +1 -1
  2. package/dist/config.js +1 -1
  3. package/dist/lib/agent-keepalive.js +1 -1
  4. package/dist/lib/agent-models.js +1 -1
  5. package/dist/lib/api-keys.js +1 -1
  6. package/dist/lib/apiKeys.js +1 -1
  7. package/dist/lib/app-server-ports.js +1 -1
  8. package/dist/lib/auto-judge.js +1 -1
  9. package/dist/lib/automation-service.js +1 -1
  10. package/dist/lib/basic-auth.js +1 -1
  11. package/dist/lib/bindings.js +1 -1
  12. package/dist/lib/build-history.js +1 -1
  13. package/dist/lib/build-output-service.js +1 -1
  14. package/dist/lib/build-scheduler.js +1 -1
  15. package/dist/lib/build-service.js +1 -1
  16. package/dist/lib/ca-certificates.js +1 -1
  17. package/dist/lib/claude-oauth-refresh.js +1 -1
  18. package/dist/lib/cli/build.js +1 -1
  19. package/dist/lib/cli/cleanup-users.js +1 -1
  20. package/dist/lib/cli/config-command.js +1 -1
  21. package/dist/lib/cli/config.js +1 -1
  22. package/dist/lib/cli/create-user.js +1 -1
  23. package/dist/lib/cli/grant-admin.js +1 -1
  24. package/dist/lib/cli/init.js +1 -1
  25. package/dist/lib/cli/jira.js +1 -1
  26. package/dist/lib/cli/license.js +1 -1
  27. package/dist/lib/cli/list-roles.js +1 -1
  28. package/dist/lib/cli/list-users.js +1 -1
  29. package/dist/lib/cli/server-manager.js +1 -1
  30. package/dist/lib/cli/set-password.js +1 -1
  31. package/dist/lib/compression-filter.js +1 -1
  32. package/dist/lib/config-migration.js +1 -1
  33. package/dist/lib/container-credential-sync.js +1 -1
  34. package/dist/lib/container-tokens.js +1 -1
  35. package/dist/lib/data-dir.js +1 -1
  36. package/dist/lib/deployment-history.js +1 -1
  37. package/dist/lib/deployment-service.js +1 -1
  38. package/dist/lib/docker-utils.js +1 -1
  39. package/dist/lib/email.js +1 -1
  40. package/dist/lib/emailTemplates.js +1 -1
  41. package/dist/lib/entitlement.js +1 -1
  42. package/dist/lib/external-connections.js +1 -1
  43. package/dist/lib/fetch-utils.js +1 -1
  44. package/dist/lib/git-commit-details-route.js +1 -1
  45. package/dist/lib/git-history-diff-guardrails.js +1 -1
  46. package/dist/lib/git-provider-service.js +1 -1
  47. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
  48. package/dist/lib/git-provider-setup/index.js +1 -1
  49. package/dist/lib/git-provider-setup/setup-factory.js +1 -1
  50. package/dist/lib/git-provider-setup/setup-interface.js +1 -1
  51. package/dist/lib/git-providers/azure-devops-provider.js +1 -1
  52. package/dist/lib/git-providers/github-app-provider.js +1 -1
  53. package/dist/lib/git-providers/index.js +1 -1
  54. package/dist/lib/git-providers/provider-factory.js +1 -1
  55. package/dist/lib/git-providers/provider-interface.js +1 -1
  56. package/dist/lib/github-urls.js +1 -1
  57. package/dist/lib/group-objective-linking.js +1 -1
  58. package/dist/lib/ibmi-sync.js +1 -1
  59. package/dist/lib/jira-client.js +1 -1
  60. package/dist/lib/judge-blinding.js +1 -1
  61. package/dist/lib/logger.js +1 -1
  62. package/dist/lib/memory-utils.js +1 -1
  63. package/dist/lib/migration-to-scoped-rbac.js +1 -1
  64. package/dist/lib/model-fetcher.js +1 -1
  65. package/dist/lib/notifications.js +1 -1
  66. package/dist/lib/objective-context.js +1 -1
  67. package/dist/lib/oidc-auth.js +1 -1
  68. package/dist/lib/oidc-device-flow.js +1 -1
  69. package/dist/lib/passwordTokens.js +1 -1
  70. package/dist/lib/permission-resolver.js +1 -1
  71. package/dist/lib/pin-cascade.js +1 -1
  72. package/dist/lib/provider-accounts.js +1 -1
  73. package/dist/lib/provider-oauth.js +1 -1
  74. package/dist/lib/provider-profile.js +1 -1
  75. package/dist/lib/provider-token-refresh.js +1 -1
  76. package/dist/lib/rbac-user-state.js +1 -1
  77. package/dist/lib/request-url.js +1 -1
  78. package/dist/lib/rewind.js +1 -1
  79. package/dist/lib/role-definitions.js +1 -1
  80. package/dist/lib/roles.js +1 -1
  81. package/dist/lib/secrets.js +1 -1
  82. package/dist/lib/setup-repo-git-auth.js +1 -1
  83. package/dist/lib/state-capture.js +1 -1
  84. package/dist/lib/static-files.js +1 -1
  85. package/dist/lib/task-aliases.js +1 -1
  86. package/dist/lib/task-container-init.js +1 -1
  87. package/dist/lib/task-context-usage.js +1 -1
  88. package/dist/lib/task-name-format.js +1 -1
  89. package/dist/lib/task-name-generator.js +1 -1
  90. package/dist/lib/task-source-metadata.js +1 -1
  91. package/dist/lib/teams.js +1 -1
  92. package/dist/lib/user-git-oauth.js +1 -1
  93. package/dist/lib/user-git-tokens.js +1 -1
  94. package/dist/lib/users.js +1 -1
  95. package/dist/middleware/requireAuth.js +1 -1
  96. package/dist/middleware/requireInit.js +1 -1
  97. package/dist/middleware/requirePermission.js +1 -1
  98. package/dist/package.json +1 -1
  99. package/dist/playwright.config.js +1 -1
  100. package/dist/playwright.task-terminal.config.js +1 -1
  101. package/dist/routes/apiKeys.js +1 -1
  102. package/dist/routes/auth-oidc.js +1 -1
  103. package/dist/routes/auth.js +1 -1
  104. package/dist/routes/automations.js +1 -1
  105. package/dist/routes/bindings.js +1 -1
  106. package/dist/routes/build.js +1 -1
  107. package/dist/routes/containers.js +1 -1
  108. package/dist/routes/deploy-task.js +1 -1
  109. package/dist/routes/environment-management.js +1 -1
  110. package/dist/routes/environments.js +1 -1
  111. package/dist/routes/external-skills.js +1 -1
  112. package/dist/routes/git-credentials.js +1 -1
  113. package/dist/routes/git-oauth.js +1 -1
  114. package/dist/routes/git-provider-setup.js +1 -1
  115. package/dist/routes/health.js +1 -1
  116. package/dist/routes/jira.js +1 -1
  117. package/dist/routes/logs.js +1 -1
  118. package/dist/routes/objective-management.js +1 -1
  119. package/dist/routes/password.js +1 -1
  120. package/dist/routes/prompt.js +1 -1
  121. package/dist/routes/provider-auth.js +1 -1
  122. package/dist/routes/qa.js +1 -1
  123. package/dist/routes/roles.js +1 -1
  124. package/dist/routes/settings.js +1 -1
  125. package/dist/routes/skill-management.js +1 -1
  126. package/dist/routes/skills.js +1 -1
  127. package/dist/routes/stats.js +1 -1
  128. package/dist/routes/tasks.js +1 -1
  129. package/dist/routes/teams.js +1 -1
  130. package/dist/routes/templates.js +1 -1
  131. package/dist/routes/test-task.js +1 -1
  132. package/dist/routes/test.js +1 -1
  133. package/dist/routes/users.js +1 -1
  134. package/dist/routes/visualizations.js +1 -1
  135. package/dist/scripts/create-user.js +1 -1
  136. package/dist/scripts/migrate-config-to-data-dir.js +1 -1
  137. package/dist/start.js +1 -1
  138. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  139. package/dist/web-ui/public/activity-feed.js +1 -1
  140. package/dist/web-ui/public/activity-formatters.js +1 -1
  141. package/dist/web-ui/public/admin.css +60 -0
  142. package/dist/web-ui/public/admin.html +6 -0
  143. package/dist/web-ui/public/admin.js +1 -1
  144. package/dist/web-ui/public/agent-event-parser.js +1 -1
  145. package/dist/web-ui/public/app.js +1 -1
  146. package/dist/web-ui/public/approve-dialog.js +1 -1
  147. package/dist/web-ui/public/automation-links.js +1 -1
  148. package/dist/web-ui/public/automation-schedule.js +1 -1
  149. package/dist/web-ui/public/comments-widget.js +1 -1
  150. package/dist/web-ui/public/diff-utils.js +1 -1
  151. package/dist/web-ui/public/environments.js +1 -1
  152. package/dist/web-ui/public/feedback-widget.js +1 -1
  153. package/dist/web-ui/public/file-selection-tree.js +1 -1
  154. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  155. package/dist/web-ui/public/git-history.js +1 -1
  156. package/dist/web-ui/public/git-status.js +1 -1
  157. package/dist/web-ui/public/ibmi-file-filter.js +1 -1
  158. package/dist/web-ui/public/index.js +1 -1
  159. package/dist/web-ui/public/login.js +1 -1
  160. package/dist/web-ui/public/markdown-editor.js +1 -1
  161. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  162. package/dist/web-ui/public/modal-maximize.js +1 -1
  163. package/dist/web-ui/public/notifications.js +1 -1
  164. package/dist/web-ui/public/permissions.js +1 -1
  165. package/dist/web-ui/public/pr-dialog.js +1 -1
  166. package/dist/web-ui/public/roles.js +1 -1
  167. package/dist/web-ui/public/settings.js +1 -1
  168. package/dist/web-ui/public/setup-password.js +1 -1
  169. package/dist/web-ui/public/skills.js +1 -1
  170. package/dist/web-ui/public/sse-client.js +1 -1
  171. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  172. package/dist/web-ui/public/task-judging-helpers.js +1 -1
  173. package/dist/web-ui/public/task.js +1 -1
  174. package/dist/web-ui/public/teams.js +1 -1
  175. package/dist/web-ui/public/terminal.js +1 -1
  176. package/dist/web-ui/public/theme.js +1 -1
  177. package/dist/web-ui/public/users.js +1 -1
  178. package/dist/web-ui/public/variant-grouping.js +1 -1
  179. 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 _0x130cf8=await checkAdminAccess();await initializeAdminMenu(_0x130cf8),setupEventListeners(),await loadEnvironmentOptions(),document['getElementById']('admin-loading')['hidden']=!![],document['getElementById']('admin-content')['hidden']=![];const _0x120209=getSessionValue('admin-health-auto-refresh');if(_0x120209!==null){const _0x4ebd12=document['getElementById']('health-auto-refresh');if(_0x4ebd12)_0x4ebd12['checked']=_0x120209!=='false';}const _0x4862c4=getSessionValue('admin-logs-order');(_0x4862c4===LOG_ORDER_ASC||_0x4862c4===LOG_ORDER_DESC)&&(state['logs']['order']=_0x4862c4);syncLogOrderUi();const _0x1f1bdb=getSessionValue('admin-active-section'),_0xdc075f=['health','logs','usage']['includes'](_0x1f1bdb)?_0x1f1bdb:'health';await switchSection(_0xdc075f);}catch(_0x14e7bf){console['error']('Failed\x20to\x20initialize\x20Server\x20Administration\x20page',_0x14e7bf),document['getElementById']('admin-loading')['hidden']=!![],document['getElementById']('admin-error')['hidden']=![],document['getElementById']('admin-error-message')['textContent']=_0x14e7bf['message']||'Unknown\x20error';}}async function checkAdminAccess(){try{const _0x22649f=await API['getCurrentUser']();if(!window['Permissions']?.['hasServerPermission'](_0x22649f,'*')){Utils['showToast']('Access\x20denied:\x20Admin\x20privileges\x20required','error'),setTimeout(()=>{window['location']['href']='index.html';},0x7d0);throw new Error('Access\x20denied');}return _0x22649f;}catch(_0x4e09f8){_0x4e09f8['message']!=='Access\x20denied'&&(window['location']['href']='login.html');throw _0x4e09f8;}}function setupEventListeners(){document['querySelectorAll']('.settings-nav-item')['forEach'](_0x5b03cc=>{_0x5b03cc['addEventListener']('click',()=>switchSection(_0x5b03cc['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'](_0x6c62e0=>{_0x6c62e0['addEventListener']('click',()=>{state['logs']['level']=_0x6c62e0['dataset']['level']||'ALL',updateActiveFilterButtons('#logs-level-filters',state['logs']['level']),loadLogs({'showLoading':![]});});}),document['querySelectorAll']('#logs-order-toggle\x20.admin-filter-btn')['forEach'](_0x470f30=>{_0x470f30['addEventListener']('click',()=>{setLogOrder(_0x470f30['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',_0x5bf7d6=>{state['usage']['environment']=_0x5bf7d6['target']['value']||'',loadUsage({'showLoading':![]});}),document['querySelectorAll']('#usage-period-buttons\x20.admin-filter-btn')['forEach'](_0x573d3f=>{_0x573d3f['addEventListener']('click',()=>{state['usage']['days']=_0x573d3f['dataset']['days']||'30',updateActiveFilterButtons('#usage-period-buttons',state['usage']['days']),loadUsage({'showLoading':![]});});});}async function switchSection(_0x16de40){if(!_0x16de40)return;document['querySelectorAll']('.settings-nav-item')['forEach'](_0x282c31=>{const _0x3ca98b=_0x282c31['dataset']['section']===_0x16de40;_0x282c31['classList']['toggle']('active',_0x3ca98b),_0x282c31['setAttribute']('aria-selected',String(_0x3ca98b));}),document['querySelectorAll']('.settings-panel')['forEach'](_0x4f67cb=>{const _0x63fde4=_0x4f67cb['id']==='section-'+_0x16de40;_0x4f67cb['hidden']=!_0x63fde4,_0x4f67cb['classList']['toggle']('active',_0x63fde4);}),state['currentSection']=_0x16de40,setSessionValue('admin-active-section',_0x16de40),_0x16de40!=='health'&&stopHealthAutoRefresh(),_0x16de40!=='logs'&&stopLogStream(),_0x16de40==='health'&&(syncHealthAutoRefresh(),await loadHealth({'showLoading':!state['health']['loaded']})),_0x16de40==='logs'&&(await loadLogs({'showLoading':!state['logs']['loaded']}),state['logs']['live']?startLogStream():updateLogsLiveUi()),_0x16de40==='usage'&&await loadUsage({'showLoading':!state['usage']['loaded']});}function getSessionValue(_0x7f340){try{return sessionStorage['getItem'](_0x7f340);}catch{return null;}}function setSessionValue(_0x3adedc,_0x5d8845){try{sessionStorage['setItem'](_0x3adedc,_0x5d8845);}catch{}}async function loadEnvironmentOptions(){const _0x3b1754=await API['get']('/environments');state['environments']=(_0x3b1754['environments']||[])['map'](_0x3eab95=>_0x3eab95?.['name'])['filter'](Boolean)['sort']((_0x2ea18b,_0x31a196)=>_0x2ea18b['localeCompare'](_0x31a196));const _0x3f337a=document['getElementById']('usage-environment-filter');if(!_0x3f337a)return;_0x3f337a['innerHTML']='<option\x20value=\x22\x22>All\x20environments</option>'+state['environments']['map'](_0x1f407a=>'<option\x20value=\x22'+Utils['escapeHtml'](_0x1f407a)+'\x22>'+Utils['escapeHtml'](_0x1f407a)+'</option>')['join'](''),_0x3f337a['value']=state['usage']['environment'];}function syncHealthAutoRefresh(){const _0x4fd7ca=document['getElementById']('health-auto-refresh');if(_0x4fd7ca)setSessionValue('admin-health-auto-refresh',String(_0x4fd7ca['checked']));const _0x23d212=state['currentSection']==='health'&&!!_0x4fd7ca?.['checked'];stopHealthAutoRefresh();if(!_0x23d212)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 _0x42ccd5=document['getElementById']('health-loading'),_0x27eaeb=document['getElementById']('health-error'),_0x1573c7=document['getElementById']('health-content');(showLoading||!state['health']['loaded'])&&(_0x42ccd5['hidden']=![],_0x27eaeb['hidden']=!![],_0x1573c7['hidden']=!![]);try{const [_0x36f228]=await Promise['all']([API['get']('/health/metrics'),loadUpdateSettings()['catch'](_0x286e4b=>{console['error']('Failed\x20to\x20load\x20update\x20settings',_0x286e4b),state['health']['updateEnabled']=![],state['health']['hasRestartCommand']=![],syncHealthActionButtons();})]);renderHealthMetrics(_0x36f228),!state['health']['currentVersion']&&await loadVersionStatus({'checkUpdates':![]}),_0x42ccd5['hidden']=!![],_0x27eaeb['hidden']=!![],_0x1573c7['hidden']=![],state['health']['loaded']=!![];}catch(_0x436ac6){console['error']('Failed\x20to\x20load\x20server\x20metrics',_0x436ac6),_0x42ccd5['hidden']=!![],_0x27eaeb['hidden']=![],_0x1573c7['hidden']=!![],document['getElementById']('health-error-message')['textContent']=_0x436ac6['message']||'Unknown\x20error';}finally{state['health']['request']=null;}})()),state['health']['request'];}function syncHealthActionButtons(){const _0x17430f=document['getElementById']('health-update-btn'),_0x515059=document['getElementById']('health-restart-btn');if(!_0x17430f||!_0x515059)return;const _0x190b87=state['health']['updateEnabled'],_0x23e523=_0x190b87&&state['health']['versionChecked']&&state['health']['updateAvailable'];_0x17430f['hidden']=!_0x23e523,_0x17430f['disabled']=state['health']['updateInProgress']||state['health']['restartInProgress']||!state['health']['latestVersion'],_0x17430f['textContent']=state['health']['updateInProgress']?'Updating...':'Update\x20Server',_0x515059['hidden']=!_0x190b87,_0x515059['disabled']=state['health']['updateInProgress']||state['health']['restartInProgress'];}function setUpdateOutput({status:_0x3a4fb7,output:_0x3f8ff1}){const _0x295fd7=document['getElementById']('health-update-output-wrap'),_0x4b74ed=document['getElementById']('health-update-status'),_0x36e9c3=document['getElementById']('health-update-output');if(!_0x295fd7||!_0x4b74ed||!_0x36e9c3)return;const _0x1e7918=_0x3a4fb7||'';_0x295fd7['hidden']=![],_0x4b74ed['className']='admin-update-status',_0x1e7918&&_0x4b74ed['classList']['add'](_0x1e7918),_0x4b74ed['textContent']=_0x1e7918==='success'?'Success':_0x1e7918==='error'?'Failed':'In\x20Progress',_0x36e9c3['textContent']=_0x3f8ff1||'No\x20output\x20returned.';}function buildCommandOutput(_0x1b137e,_0x3afde4){const _0x888acf=[];typeof _0x1b137e==='string'&&_0x1b137e['trim']()&&_0x888acf['push'](_0x1b137e['trim']());if(typeof _0x3afde4==='string'&&_0x3afde4['trim']()){const _0x4acc30=_0x3afde4['trim'](),_0x4d136a=_0x888acf['some'](_0x280101=>_0x280101['includes'](_0x4acc30));!_0x4d136a&&_0x888acf['push']('Error:\x0a'+_0x4acc30);}return _0x888acf['join']('\x0a\x0a');}function showRestartOverlay({title:_0x3075a6,message:_0x2ceb13,showRetry:showRetry=![]}){const _0xf3b6a5=document['getElementById']('health-restart-overlay'),_0x436d54=document['getElementById']('restart-overlay-title'),_0x47f714=document['getElementById']('restart-overlay-message'),_0x2a3250=document['getElementById']('restart-overlay-retry');if(!_0xf3b6a5||!_0x436d54||!_0x47f714||!_0x2a3250)return;_0x436d54['textContent']=_0x3075a6,_0x47f714['textContent']=_0x2ceb13,_0x2a3250['hidden']=!showRetry,_0xf3b6a5['hidden']=![];}function hideRestartOverlay(){const _0x11f8eb=document['getElementById']('health-restart-overlay');_0x11f8eb&&(_0x11f8eb['hidden']=!![]);}function sleep(_0x3b3acd){return new Promise(_0x266762=>{window['setTimeout'](_0x266762,_0x3b3acd);});}async function loadUpdateSettings(){const _0x56d10e=await API['getUpdateSettings']();return state['health']['updateEnabled']=!!_0x56d10e['enabled'],state['health']['hasRestartCommand']=!!_0x56d10e['hasRestartCommand'],syncHealthActionButtons(),_0x56d10e;}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 _0x54d28b=await API['applyServerUpdate'](state['health']['latestVersion']),_0x1d3c3d=buildCommandOutput(_0x54d28b['output'],_0x54d28b['error']);_0x54d28b['success']?(setUpdateOutput({'status':'success','output':_0x1d3c3d||'Server\x20update\x20to\x20'+state['health']['latestVersion']+'\x20completed.'}),Utils['showSuccess']('Server\x20update\x20to\x20'+state['health']['latestVersion']+'\x20completed')):(setUpdateOutput({'status':'error','output':_0x1d3c3d||'Server\x20update\x20failed\x20without\x20additional\x20output.'}),Utils['showError'](_0x54d28b['error']||'Server\x20update\x20failed'));}catch(_0x57fa33){setUpdateOutput({'status':'error','output':buildCommandOutput(_0x57fa33['output'],_0x57fa33['commandError']||_0x57fa33['message'])||'Failed\x20to\x20apply\x20server\x20update.'}),Utils['showError'](_0x57fa33['message']||'Failed\x20to\x20apply\x20server\x20update');}finally{state['health']['updateInProgress']=![],syncHealthActionButtons();}}function showRestartConfirmation(){if(!state['health']['updateEnabled']||state['health']['restartInProgress'])return;const _0x4dd025=document['getElementById']('restart-modal');_0x4dd025&&(_0x4dd025['hidden']=![]);}function hideRestartModal(){const _0x1a5156=document['getElementById']('restart-modal');_0x1a5156&&(_0x1a5156['hidden']=!![]);}async function confirmRestart(){if(state['health']['restartInProgress'])return;hideRestartModal(),state['health']['restartInProgress']=!![],syncHealthActionButtons();try{await API['restartServer'](),await waitForServerRestart();}catch(_0x155773){state['health']['restartInProgress']=![],syncHealthActionButtons(),hideRestartOverlay(),Utils['showError'](_0x155773['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 _0x1ea7ec=Date['now']();let _0x1756d9=![];for(let _0x3241e7=0x0;_0x3241e7<RESTART_POLL_MAX_ATTEMPTS;_0x3241e7+=0x1){await sleep(RESTART_POLL_INTERVAL_MS);try{await API['get']('/health?ts='+Date['now']());const _0xb95d93=Date['now']()-_0x1ea7ec;if(_0x1756d9||_0xb95d93>=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(_0x807a1c){_0x1756d9=!![];}}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 _0xf8746f=document['getElementById']('health-check-updates-btn');_0xf8746f&&(_0xf8746f['disabled']=!![],_0xf8746f['textContent']=checkUpdates?'Checking...':'Loading...');try{const _0x376f36=await API['get']('/health');state['health']['currentVersion']=_0x376f36['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 _0x296e97=await API['get']('/health/check-updates');state['health']['versionChecked']=!![],state['health']['latestVersion']=_0x296e97['latestVersion']||'Unavailable',state['health']['installCommand']=_0x296e97['installCommand']||null,state['health']['updateAvailable']=!!_0x296e97['updateAvailable'],document['getElementById']('health-version-current')['textContent']=_0x296e97['currentVersion']||state['health']['currentVersion'],document['getElementById']('health-version-latest')['textContent']=state['health']['latestVersion'],document['getElementById']('health-version-status')['textContent']=buildVersionStatusText(_0x296e97),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(_0x187a07){console['error']('Failed\x20to\x20load\x20version\x20status',_0x187a07),state['health']['updateAvailable']=![],document['getElementById']('health-version-status')['textContent']='Unable\x20to\x20load\x20version\x20status:\x20'+_0x187a07['message'],document['getElementById']('health-install-command-wrap')['hidden']=!![],document['getElementById']('health-copy-install-btn')['hidden']=!![],syncHealthActionButtons();}finally{_0xf8746f&&(_0xf8746f['disabled']=![],_0xf8746f['textContent']='Check\x20for\x20Updates');}}function buildVersionStatusText(_0x45e0c8){const _0x4bab84=_0x45e0c8?.['versionStatus'];if(_0x4bab84==='update-available')return'Update\x20available:\x20'+_0x45e0c8['currentVersion']+'\x20→\x20'+_0x45e0c8['latestVersion'];if(_0x4bab84==='up-to-date')return'Running\x20the\x20latest\x20published\x20version\x20('+_0x45e0c8['latestVersion']+').';if(_0x4bab84==='ahead-of-latest')return'This\x20server\x20is\x20ahead\x20of\x20npm\x20latest\x20('+_0x45e0c8['latestVersion']+').';return'Unable\x20to\x20compare\x20current\x20and\x20latest\x20versions.';}async function copyInstallCommand(){if(!state['health']['installCommand'])return;const _0x28c6f0=await Utils['copyToClipboard'](state['health']['installCommand']);_0x28c6f0?Utils['showSuccess']('Install\x20command\x20copied'):Utils['showError']('Failed\x20to\x20copy\x20install\x20command');}function renderHealthMetrics(_0x1fc581){document['getElementById']('cpu-usage')['textContent']=_0x1fc581['cpu']?.['display']||'-',document['getElementById']('memory-usage')['textContent']=_0x1fc581['memory']?.['display']||'-',document['getElementById']('disk-usage')['textContent']=_0x1fc581['disk']?.['display']||'-',document['getElementById']('docker-containers')['textContent']=_0x1fc581['docker']?.['display']||'-',document['getElementById']('server-uptime')['textContent']=_0x1fc581['uptime']?.['display']||'-',document['getElementById']('active-sessions')['textContent']=_0x1fc581['sessions']?.['display']||'-',setMetricProgress('cpu-progress',_0x1fc581['cpu']?.['percent'],statusFromPercent(_0x1fc581['cpu']?.['percent'])),setMetricProgress('memory-progress',_0x1fc581['memory']?.['percent'],statusFromPercent(_0x1fc581['memory']?.['percent'])),setMetricProgress('disk-progress',_0x1fc581['disk']?.['percent'],statusFromPercent(_0x1fc581['disk']?.['percent']));const _0x1257bb=_0x1fc581['docker']?.['total']>0x0?_0x1fc581['docker']['running']/_0x1fc581['docker']['total']*0x64:0x0;setMetricProgress('docker-progress',_0x1257bb,'ok');const _0x298a19=_0x1fc581['dockerStorage']||{},_0x3dff1d=document['getElementById']('docker-storage-card');document['getElementById']('docker-storage-total')['textContent']=_0x298a19['display']||'-',document['getElementById']('docker-storage-available')['textContent']=_0x298a19['availableDisplay']||'',document['getElementById']('docker-storage-available')['hidden']=!_0x298a19['availableDisplay'],document['getElementById']('docker-storage-reclaimable')['textContent']=_0x298a19['reclaimableDisplay']||'',document['getElementById']('docker-storage-images')['textContent']=_0x298a19['images']?.['display']||'-',document['getElementById']('docker-storage-containers')['textContent']=_0x298a19['containers']?.['display']||'-',document['getElementById']('docker-storage-volumes')['textContent']=_0x298a19['volumes']?.['display']||'-',document['getElementById']('docker-storage-buildcache')['textContent']=_0x298a19['buildCache']?.['display']||'-',setMetricProgress('docker-storage-progress',_0x298a19['percent'],_0x298a19['status']||'ok'),_0x3dff1d['classList']['remove']('status-warning','status-critical'),_0x298a19['status']==='warning'&&_0x3dff1d['classList']['add']('status-warning'),_0x298a19['status']==='critical'&&_0x3dff1d['classList']['add']('status-critical');}function clampPercent(_0x301a4b){if(!Number['isFinite'](_0x301a4b))return 0x0;return Math['max'](0x0,Math['min'](0x64,Math['round'](_0x301a4b)));}function statusFromPercent(_0x4aaf28){if(!Number['isFinite'](_0x4aaf28))return'ok';if(_0x4aaf28>=0x5a)return'critical';if(_0x4aaf28>=0x4b)return'warning';return'ok';}function setMetricProgress(_0x5853ee,_0x5dcd92,_0x53b488='ok'){const _0x38f6d5=document['getElementById'](_0x5853ee);if(!_0x38f6d5)return;const _0x46cb4f=clampPercent(_0x5dcd92);_0x38f6d5['style']['width']=_0x46cb4f+'%',_0x38f6d5['classList']['remove']('status-ok','status-warning','status-critical'),_0x38f6d5['classList']['add'](_0x53b488==='critical'?'status-critical':_0x53b488==='warning'?'status-warning':'status-ok'),_0x38f6d5['parentElement']?.['setAttribute']('aria-valuenow',String(_0x46cb4f));}async function runCleanupAction(_0x3600e3,_0x4e32a2){const _0x5a661e=document['getElementById']('server-health-action-status'),_0x1eccae=[document['getElementById']('health-refresh-btn'),document['getElementById']('server-stop-containers'),document['getElementById']('server-remove-stopped'),document['getElementById']('server-prune-docker')]['filter'](Boolean);_0x1eccae['forEach'](_0x2314f2=>{_0x2314f2['disabled']=!![];}),_0x5a661e['hidden']=![],_0x5a661e['classList']['remove']('success','error'),_0x5a661e['textContent']=_0x3600e3+'...';try{const _0x4e7259=await _0x4e32a2();_0x5a661e['classList']['add']('success'),_0x5a661e['textContent']=_0x4e7259?.['message']||_0x3600e3+'\x20complete',await loadHealth({'showLoading':!![]});}catch(_0x35f7b1){console['error'](_0x3600e3+'\x20failed',_0x35f7b1),_0x5a661e['classList']['add']('error'),_0x5a661e['textContent']=_0x35f7b1['message']||_0x3600e3+'\x20failed';}finally{_0x1eccae['forEach'](_0x3b423d=>{_0x3b423d['disabled']=![];});}}function toggleCleanupSection(){const _0x3b23de=document['getElementById']('cleanup-section'),_0x31339f=document['getElementById']('cleanup-content'),_0x464bab=document['getElementById']('cleanup-toggle');if(!_0x3b23de||!_0x31339f||!_0x464bab)return;const _0x23c813=_0x3b23de['classList']['toggle']('expanded');_0x31339f['hidden']=!_0x23c813,_0x464bab['setAttribute']('aria-expanded',String(_0x23c813));}async function loadLogs({showLoading:showLoading=![]}={}){if(state['logs']['request'])return state['logs']['request'];return state['logs']['request']=((async()=>{const _0x534ce8=document['getElementById']('logs-loading'),_0x36469f=document['getElementById']('logs-error');(showLoading||!state['logs']['loaded'])&&(_0x534ce8['hidden']=![],_0x36469f['hidden']=!![],document['getElementById']('logs-empty')['hidden']=!![],document['getElementById']('logs-container')['hidden']=!![]);try{const _0x5be166=new URLSearchParams({'limit':'500'});state['logs']['level']!=='ALL'&&_0x5be166['set']('level',state['logs']['level']);state['logs']['search']&&_0x5be166['set']('search',state['logs']['search']);const _0x38243f=await API['get']('/logs?'+_0x5be166['toString']());state['logs']['entries']=Array['isArray'](_0x38243f['entries'])?_0x38243f['entries']['slice'](-state['logs']['maxEntries']):[],state['logs']['total']=Number(_0x38243f['total'])||0x0,state['logs']['minLevel']=_0x38243f['minLevel']||'INFO',state['logs']['loaded']=!![],_0x534ce8['hidden']=!![],_0x36469f['hidden']=!![],renderLogs();}catch(_0x412866){console['error']('Failed\x20to\x20load\x20logs',_0x412866),_0x534ce8['hidden']=!![],_0x36469f['hidden']=![],document['getElementById']('logs-error-message')['textContent']=_0x412866['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 _0x9f95a9=document['getElementById']('logs-container'),_0x1c12e1=document['getElementById']('logs-empty'),_0x49ad4b=stickToLiveEdge||state['logs']['autoScroll']&&state['logs']['live'],_0xf27a1a=_0x9f95a9?.['scrollTop']||0x0,_0x15eac0=_0x9f95a9?.['scrollHeight']||0x0,_0x94a559=getOrderedLogEntries();updateLogsMeta(_0x94a559['length']);if(_0x94a559['length']===0x0){_0x9f95a9['hidden']=!![],_0x1c12e1['hidden']=![];return;}_0x1c12e1['hidden']=!![],_0x9f95a9['hidden']=![],_0x9f95a9['innerHTML']=_0x94a559['map'](renderLogEntry)['join']('');if(_0x49ad4b){scrollLogsToLiveEdge(_0x9f95a9);return;}if(state['logs']['order']===LOG_ORDER_DESC){const _0x2e5a2c=_0x9f95a9['scrollHeight'],_0x4fec2d=_0x2e5a2c-_0x15eac0;_0x9f95a9['scrollTop']=_0xf27a1a>0x0?_0xf27a1a+Math['max'](_0x4fec2d,0x0):_0xf27a1a;return;}_0x9f95a9['scrollTop']=_0xf27a1a;}function getVisibleLogEntries(){const _0x3fd65c=state['logs']['search']['trim']()['toLowerCase']();return state['logs']['entries']['filter'](_0x2edf87=>{if(state['logs']['level']!=='ALL'&&_0x2edf87['level']!==state['logs']['level'])return![];if(!_0x3fd65c)return!![];const _0x3def41=String(_0x2edf87['message']||'')['toLowerCase'](),_0x32a0e9=_0x2edf87['context']?JSON['stringify'](_0x2edf87['context'])['toLowerCase']():'';return _0x3def41['includes'](_0x3fd65c)||_0x32a0e9['includes'](_0x3fd65c);});}function getOrderedLogEntries(){const _0x1ee635=getVisibleLogEntries();return state['logs']['order']===LOG_ORDER_DESC?_0x1ee635['slice']()['reverse']():_0x1ee635;}function renderLogEntry(_0x4c84c3){const _0x101972=Utils['escapeHtml'](formatDateTime(_0x4c84c3['timestamp'])),_0x407a04=Utils['escapeHtml'](String(_0x4c84c3['level']||'INFO')),_0x16a864=Utils['escapeHtml'](String(_0x4c84c3['message']||'')),_0x1b2201=_0x4c84c3['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'](_0x4c84c3['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>'+_0x101972+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22admin-log-level\x20level-'+_0x407a04['toLowerCase']()+'\x22>'+_0x407a04+'</span>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-log-message\x22>'+_0x16a864+'</div>\x0a\x20\x20\x20\x20\x20\x20'+_0x1b2201+'\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}function updateLogsMeta(_0x510cd5){const _0x31c68c=document['getElementById']('logs-meta');if(!_0x31c68c)return;const _0x447910=state['logs']['entries']['length'],_0x3b9a44=state['logs']['level']!=='ALL'||!!state['logs']['search']['trim'](),_0x2ff0d8=state['logs']['order']===LOG_ORDER_DESC?'newest\x20first':'oldest\x20first';_0x31c68c['textContent']=_0x3b9a44?'Showing\x20'+_0x510cd5+'\x20of\x20'+_0x447910+'\x20loaded\x20entries\x20for\x20the\x20current\x20filters\x20in\x20'+_0x2ff0d8+'\x20order.\x20Minimum\x20runtime\x20level:\x20'+state['logs']['minLevel']+'.':'Showing\x20'+_0x510cd5+'\x20recent\x20buffered\x20entries\x20in\x20'+_0x2ff0d8+'\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 _0x4bbc2c=document['getElementById']('logs-live-toggle'),_0x383c23=document['getElementById']('logs-stream-status');if(!_0x4bbc2c||!_0x383c23)return;_0x383c23['classList']['remove']('live','error');if(!state['logs']['live']){_0x383c23['textContent']='Paused',_0x4bbc2c['textContent']='Start\x20Live';return;}if(state['logs']['streamState']==='live')_0x383c23['textContent']='Live',_0x383c23['classList']['add']('live');else state['logs']['streamState']==='error'?(_0x383c23['textContent']='Reconnecting',_0x383c23['classList']['add']('error')):_0x383c23['textContent']='Connecting';_0x4bbc2c['textContent']='Pause\x20Live';}function startLogStream(){if(state['currentSection']!=='logs'||state['logs']['stream'])return;state['logs']['streamState']='connecting',updateLogsLiveUi();const _0x490f94=new EventSource(API['getBaseUrl']()+'/logs/stream');state['logs']['stream']=_0x490f94,_0x490f94['addEventListener']('log',_0x5999ce=>{try{const _0x42d711=JSON['parse'](_0x5999ce['data']);state['logs']['entries']['push'](_0x42d711),state['logs']['entries']['length']>state['logs']['maxEntries']&&state['logs']['entries']['shift'](),renderLogs();}catch(_0x399f94){console['error']('Failed\x20to\x20parse\x20log\x20stream\x20event',_0x399f94);}}),_0x490f94['onopen']=()=>{state['logs']['streamState']='live',updateLogsLiveUi();},_0x490f94['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(_0x438e19,{focusLiveEdge:focusLiveEdge=![]}={}){const _0x3a835f=_0x438e19===LOG_ORDER_DESC?LOG_ORDER_DESC:LOG_ORDER_ASC;if(state['logs']['order']===_0x3a835f){focusLiveEdge&&(state['logs']['autoScroll']=!![],renderLogs({'stickToLiveEdge':!![]}));return;}state['logs']['order']=_0x3a835f,setSessionValue('admin-logs-order',_0x3a835f),syncLogOrderUi(),focusLiveEdge&&(state['logs']['autoScroll']=!![]),renderLogs({'stickToLiveEdge':focusLiveEdge});}function syncLogOrderUi(){updateActiveFilterButtons('#logs-order-toggle',state['logs']['order']);}function handleLogsSearchInput(_0x1713aa){const _0x53711b=_0x1713aa['target']['value']||'';state['logs']['searchTimer']&&clearTimeout(state['logs']['searchTimer']),state['logs']['searchTimer']=window['setTimeout'](()=>{state['logs']['search']=_0x53711b,loadLogs({'showLoading':![]});},LOG_SEARCH_DEBOUNCE_MS);}function updateLogAutoScrollState(){const _0x22125c=document['getElementById']('logs-container');if(!_0x22125c)return;const _0x484d72=state['logs']['order']===LOG_ORDER_DESC?_0x22125c['scrollTop']:_0x22125c['scrollHeight']-_0x22125c['scrollTop']-_0x22125c['clientHeight'];state['logs']['autoScroll']=_0x484d72<0x20;}async function loadUsage({showLoading:showLoading=![]}={}){if(state['usage']['request'])return state['usage']['request'];return state['usage']['request']=((async()=>{const _0x1a8891=document['getElementById']('usage-loading'),_0x2c5558=document['getElementById']('usage-error');(showLoading||!state['usage']['loaded'])&&(_0x1a8891['hidden']=![],_0x2c5558['hidden']=!![],document['getElementById']('usage-empty')['hidden']=!![],document['getElementById']('usage-content')['hidden']=!![]);try{const _0x33d2c2=new URLSearchParams();_0x33d2c2['set']('days',state['usage']['days']);state['usage']['environment']&&_0x33d2c2['set']('environment',state['usage']['environment']);const _0x248a32=await API['get']('/stats?'+_0x33d2c2['toString']());state['usage']['loaded']=!![],_0x1a8891['hidden']=!![],_0x2c5558['hidden']=!![],renderUsage(_0x248a32);}catch(_0x2d4276){console['error']('Failed\x20to\x20load\x20usage\x20statistics',_0x2d4276),_0x1a8891['hidden']=!![],_0x2c5558['hidden']=![],document['getElementById']('usage-error-message')['textContent']=_0x2d4276['message']||'Unknown\x20error',document['getElementById']('usage-empty')['hidden']=!![],document['getElementById']('usage-content')['hidden']=!![];}finally{state['usage']['request']=null;}})()),state['usage']['request'];}function renderUsage(_0x1514ed){const _0x43e5dc=Number(_0x1514ed?.['tasks']?.['total'])||0x0,_0x55f93b=document['getElementById']('usage-empty'),_0x16b97d=document['getElementById']('usage-content');if(_0x43e5dc===0x0){_0x55f93b['hidden']=![],_0x16b97d['hidden']=!![];return;}_0x55f93b['hidden']=!![],_0x16b97d['hidden']=![];const _0x1303a8=Number(_0x1514ed?.['approvalRate']?.['successRate'])||0x0,_0x1c54f8=Math['round'](_0x1303a8*0x64),_0x57e2da=_0x1514ed?.['code']?.['approved']||{},_0x25641e=Number(_0x57e2da?.['tasks'])||0x0,_0x2d8f5a=(Number(_0x57e2da?.['linesAdded'])||0x0)-(Number(_0x57e2da?.['linesDeleted'])||0x0),_0x27e558=(Number(_0x1514ed?.['code']?.['linesAdded'])||0x0)-(Number(_0x1514ed?.['code']?.['linesDeleted'])||0x0),_0x589dc8=Number(_0x1514ed?.['timing']?.['averageDurationMinutes'])||0x0;setSummaryValue('usage-total-tasks',formatNumber(_0x43e5dc)),setSummaryValue('usage-success-rate',_0x1c54f8+'%',statusClassFromPercent(_0x1c54f8)),setSummaryValue('usage-net-lines',formatSignedNumber(_0x27e558)),setSummaryValue('usage-average-duration',formatDurationMinutes(_0x589dc8));const _0x5f0676=_0x43e5dc>0x0?Math['round'](_0x25641e/_0x43e5dc*0x64):0x0;document['getElementById']('usage-approved-summary')['textContent']=formatNumber(_0x25641e)+'\x20approved\x20('+_0x5f0676+'%)\x20·\x20'+formatNumber(_0x1514ed['timing']['totalDurationHours']||0x0)+'h\x20total',document['getElementById']('usage-success-detail')['textContent']=(_0x1514ed['approvalRate']['completed']||0x0)+'\x20completed\x20/\x20'+(_0x1514ed['approvalRate']['failed']||0x0)+'\x20failed\x20/\x20'+(_0x1514ed['approvalRate']['interrupted']||0x0)+'\x20interrupted',document['getElementById']('usage-net-lines-detail')['textContent']='+'+formatNumber(_0x1514ed['code']['linesAdded']||0x0)+'\x20/\x20-'+formatNumber(_0x1514ed['code']['linesDeleted']||0x0)+'\x20·\x20Approved\x20'+formatSignedNumber(_0x2d8f5a)+'\x20net',document['getElementById']('usage-average-duration-detail')['textContent']=formatDurationMinutes(_0x1514ed['timing']['medianDurationMinutes']||0x0)+'\x20median\x20·\x20'+formatNumber(_0x1514ed['timing']['totalDurationHours']||0x0)+'h\x20total',document['getElementById']('usage-period-summary')['textContent']=buildPeriodSummary(_0x1514ed['period']),renderBarList('usage-status-bars',_0x1514ed['tasks']['byStatus']||{}),renderObjectTable('usage-type-body',_0x1514ed['tasks']['byType']||{},_0x43e5dc,{'includePercent':!![],'labelFormatter':prettifyKey}),renderObjectTable('usage-environment-body',_0x1514ed['tasks']['byEnvironment']||{},_0x43e5dc),renderUserTable('usage-user-body',_0x1514ed['tasks']['byUser']||[]),renderObjectTable('usage-source-body',_0x1514ed['tasks']['bySource']||{},_0x43e5dc,{'labelFormatter':prettifyKey}),document['getElementById']('usage-lines-added')['textContent']=formatNumber(_0x1514ed['code']['linesAdded']||0x0),document['getElementById']('usage-lines-deleted')['textContent']=formatNumber(_0x1514ed['code']['linesDeleted']||0x0),document['getElementById']('usage-files-changed')['textContent']=formatNumber(_0x1514ed['code']['filesChanged']||0x0),document['getElementById']('usage-repositories-affected')['textContent']=formatNumber(_0x1514ed['code']['repositoriesAffected']||0x0),document['getElementById']('usage-approved-lines-added')['textContent']=formatNumber(_0x57e2da['linesAdded']||0x0),document['getElementById']('usage-approved-lines-deleted')['textContent']=formatNumber(_0x57e2da['linesDeleted']||0x0),document['getElementById']('usage-approved-files-changed')['textContent']=formatNumber(_0x57e2da['filesChanged']||0x0),document['getElementById']('usage-approved-repositories-affected')['textContent']=formatNumber(_0x57e2da['repositoriesAffected']||0x0);const _0x41461a=(_0x13a13e,_0x43325f)=>_0x13a13e>0x0?Math['round'](_0x43325f/_0x13a13e*0x64):0x0;document['getElementById']('usage-added-pct')['style']['width']=_0x41461a(_0x1514ed['code']['linesAdded']||0x0,_0x57e2da['linesAdded']||0x0)+'%',document['getElementById']('usage-deleted-pct')['style']['width']=_0x41461a(_0x1514ed['code']['linesDeleted']||0x0,_0x57e2da['linesDeleted']||0x0)+'%',document['getElementById']('usage-files-pct')['style']['width']=_0x41461a(_0x1514ed['code']['filesChanged']||0x0,_0x57e2da['filesChanged']||0x0)+'%',document['getElementById']('usage-repos-pct')['style']['width']=_0x41461a(_0x1514ed['code']['repositoriesAffected']||0x0,_0x57e2da['repositoriesAffected']||0x0)+'%';}function buildPeriodSummary(_0x35432e){const _0x43f49b=_0x35432e?.['from']?formatDateTime(_0x35432e['from']):'the\x20earliest\x20loaded\x20task',_0x1b7f52=_0x35432e?.['to']?formatDateTime(_0x35432e['to']):'now',_0x4e1873=_0x35432e?.['days']?_0x35432e['days']+'\x20day\x20window':'All\x20available\x20task\x20history';return _0x4e1873+'\x20·\x20'+_0x43f49b+'\x20to\x20'+_0x1b7f52;}function renderBarList(_0x492d58,_0x30d41a){const _0x42c706=document['getElementById'](_0x492d58);if(!_0x42c706)return;const _0x1c39af=Object['entries'](_0x30d41a)['filter'](([,_0x575892])=>Number(_0x575892)>0x0)['sort']((_0x1de064,_0x24cded)=>_0x24cded[0x1]-_0x1de064[0x1]),_0x41e14c=_0x1c39af['reduce']((_0x46973a,[,_0x52207e])=>_0x46973a+Number(_0x52207e||0x0),0x0);if(_0x1c39af['length']===0x0){_0x42c706['innerHTML']='<div\x20class=\x22text-muted\x22>No\x20data\x20available.</div>';return;}_0x42c706['innerHTML']=_0x1c39af['map'](([_0x37bbc0,_0x4f6ed2])=>{const _0x41f60f=_0x41e14c>0x0?Math['max'](0x2,Math['round'](_0x4f6ed2/_0x41e14c*0x64)):0x0,_0x37db99=Utils['escapeHtml'](prettifyKey(_0x37bbc0)),_0x453966=Utils['escapeHtml'](formatNumber(_0x4f6ed2));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>'+_0x37db99+'</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(_0x37bbc0)['toLowerCase']())+'\x22\x20style=\x22width:\x20'+_0x41f60f+'%\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>'+_0x453966+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';})['join']('');}function renderObjectTable(_0x4f2016,_0x531913,_0x4743c0,{includePercent:includePercent=![],labelFormatter:labelFormatter=null}={}){const _0x383826=document['getElementById'](_0x4f2016);if(!_0x383826)return;const _0x583352=Object['entries'](_0x531913)['filter'](([,_0x27f267])=>Number(_0x27f267)>0x0)['sort']((_0x369f09,_0x2847a5)=>_0x2847a5[0x1]-_0x369f09[0x1]||String(_0x369f09[0x0])['localeCompare'](String(_0x2847a5[0x0])));if(_0x583352['length']===0x0){_0x383826['innerHTML']='<tr><td\x20colspan=\x22'+(includePercent?0x3:0x2)+'\x22\x20class=\x22text-muted\x22>No\x20data\x20available.</td></tr>';return;}_0x383826['innerHTML']=_0x583352['map'](([_0x3f3330,_0x2b69a5])=>{const _0x589f3a=labelFormatter?labelFormatter(_0x3f3330):_0x3f3330,_0x1133ef=includePercent?'<td>'+formatPercent(_0x4743c0>0x0?_0x2b69a5/_0x4743c0*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(_0x589f3a))+'</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](formatNumber(_0x2b69a5))+'</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x1133ef+'\x0a\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20';})['join']('');}function renderUserTable(_0x3159ca,_0x2fbcd4){const _0x1847ce=document['getElementById'](_0x3159ca);if(!_0x1847ce)return;if(!Array['isArray'](_0x2fbcd4)||_0x2fbcd4['length']===0x0){_0x1847ce['innerHTML']='<tr><td\x20colspan=\x222\x22\x20class=\x22text-muted\x22>No\x20data\x20available.</td></tr>';return;}_0x1847ce['innerHTML']=_0x2fbcd4['map'](_0xfbd531=>'\x0a\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](_0xfbd531['name']||_0xfbd531['username']||_0xfbd531['userId']||'Unknown')+'</td>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](formatNumber(_0xfbd531['count']||0x0))+'</td>\x0a\x20\x20\x20\x20</tr>\x0a\x20\x20')['join']('');}function updateActiveFilterButtons(_0x4cc3e7,_0x4ed0b7){document['querySelectorAll'](_0x4cc3e7+'\x20.admin-filter-btn')['forEach'](_0x25fb8=>{_0x25fb8['classList']['toggle']('active',_0x25fb8['dataset']['level']===_0x4ed0b7||_0x25fb8['dataset']['days']===_0x4ed0b7||_0x25fb8['dataset']['order']===_0x4ed0b7);});}function scrollLogsToLiveEdge(_0xa0d441){if(!_0xa0d441)return;if(state['logs']['order']===LOG_ORDER_DESC){_0xa0d441['scrollTop']=0x0;return;}_0xa0d441['scrollTop']=_0xa0d441['scrollHeight'];}function setSummaryValue(_0x56437d,_0x10a113,_0x3fce3c=''){const _0x308bfc=document['getElementById'](_0x56437d);if(!_0x308bfc)return;_0x308bfc['textContent']=_0x10a113,_0x308bfc['classList']['remove']('status-good','status-warn','status-bad'),_0x3fce3c&&_0x308bfc['classList']['add'](_0x3fce3c);}function statusClassFromPercent(_0xfa43f5){if(_0xfa43f5>=0x50)return'status-good';if(_0xfa43f5>0x3c)return'status-warn';return'status-bad';}function formatDateTime(_0x978331){const _0x44fa54=new Date(_0x978331);if(Number['isNaN'](_0x44fa54['getTime']()))return _0x978331||'Unknown';return _0x44fa54['toLocaleString']();}function formatDurationMinutes(_0x4abb60){const _0x18b3d0=Math['round'](Number(_0x4abb60)||0x0);if(_0x18b3d0<0x3c)return _0x18b3d0+'m';const _0x4007c6=Math['floor'](_0x18b3d0/0x3c),_0x4352d9=_0x18b3d0%0x3c;return _0x4352d9>0x0?_0x4007c6+'h\x20'+_0x4352d9+'m':_0x4007c6+'h';}function formatPercent(_0xe3991f){return Math['round'](Number(_0xe3991f)||0x0)+'%';}function formatNumber(_0x30b6e9){return NUMBER_FORMATTER['format'](Number(_0x30b6e9)||0x0);}function formatSignedNumber(_0x2bd0e7){const _0x171b77=Number(_0x2bd0e7)||0x0;if(_0x171b77>0x0)return'+'+formatNumber(_0x171b77);return formatNumber(_0x171b77);}function prettifyKey(_0x1c3651){return String(_0x1c3651)['replace'](/[_-]+/g,'\x20')['replace'](/\b\w/g,_0x28198e=>_0x28198e['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 _0x411ae5=await checkAdminAccess();await initializeAdminMenu(_0x411ae5),setupEventListeners(),await loadEnvironmentOptions(),document['getElementById']('admin-loading')['hidden']=!![],document['getElementById']('admin-content')['hidden']=![];const _0x1ba7b5=getSessionValue('admin-health-auto-refresh');if(_0x1ba7b5!==null){const _0x3a6e38=document['getElementById']('health-auto-refresh');if(_0x3a6e38)_0x3a6e38['checked']=_0x1ba7b5!=='false';}const _0x176fe6=getSessionValue('admin-logs-order');(_0x176fe6===LOG_ORDER_ASC||_0x176fe6===LOG_ORDER_DESC)&&(state['logs']['order']=_0x176fe6);syncLogOrderUi();const _0xf267e=getSessionValue('admin-active-section'),_0x4611dc=['health','logs','usage']['includes'](_0xf267e)?_0xf267e:'health';await switchSection(_0x4611dc);}catch(_0x113035){console['error']('Failed\x20to\x20initialize\x20Server\x20Administration\x20page',_0x113035),document['getElementById']('admin-loading')['hidden']=!![],document['getElementById']('admin-error')['hidden']=![],document['getElementById']('admin-error-message')['textContent']=_0x113035['message']||'Unknown\x20error';}}async function checkAdminAccess(){try{const _0x48bda8=await API['getCurrentUser']();if(!window['Permissions']?.['hasServerPermission'](_0x48bda8,'*')){Utils['showToast']('Access\x20denied:\x20Admin\x20privileges\x20required','error'),setTimeout(()=>{window['location']['href']='index.html';},0x7d0);throw new Error('Access\x20denied');}return _0x48bda8;}catch(_0xf3ae4d){_0xf3ae4d['message']!=='Access\x20denied'&&(window['location']['href']='login.html');throw _0xf3ae4d;}}function setupEventListeners(){document['querySelectorAll']('.settings-nav-item')['forEach'](_0x46c835=>{_0x46c835['addEventListener']('click',()=>switchSection(_0x46c835['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'](_0xf84622=>{_0xf84622['addEventListener']('click',()=>{state['logs']['level']=_0xf84622['dataset']['level']||'ALL',updateActiveFilterButtons('#logs-level-filters',state['logs']['level']),loadLogs({'showLoading':![]});});}),document['querySelectorAll']('#logs-order-toggle\x20.admin-filter-btn')['forEach'](_0x482ba4=>{_0x482ba4['addEventListener']('click',()=>{setLogOrder(_0x482ba4['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',_0x3660b7=>{state['usage']['environment']=_0x3660b7['target']['value']||'',loadUsage({'showLoading':![]});}),document['querySelectorAll']('#usage-period-buttons\x20.admin-filter-btn')['forEach'](_0x30df88=>{_0x30df88['addEventListener']('click',()=>{state['usage']['days']=_0x30df88['dataset']['days']||'30',updateActiveFilterButtons('#usage-period-buttons',state['usage']['days']),loadUsage({'showLoading':![]});});});}async function switchSection(_0x2ea350){if(!_0x2ea350)return;document['querySelectorAll']('.settings-nav-item')['forEach'](_0x366fda=>{const _0x42974f=_0x366fda['dataset']['section']===_0x2ea350;_0x366fda['classList']['toggle']('active',_0x42974f),_0x366fda['setAttribute']('aria-selected',String(_0x42974f));}),document['querySelectorAll']('.settings-panel')['forEach'](_0x26d42e=>{const _0x329512=_0x26d42e['id']==='section-'+_0x2ea350;_0x26d42e['hidden']=!_0x329512,_0x26d42e['classList']['toggle']('active',_0x329512);}),state['currentSection']=_0x2ea350,setSessionValue('admin-active-section',_0x2ea350),_0x2ea350!=='health'&&stopHealthAutoRefresh(),_0x2ea350!=='logs'&&stopLogStream(),_0x2ea350==='health'&&(syncHealthAutoRefresh(),await loadHealth({'showLoading':!state['health']['loaded']})),_0x2ea350==='logs'&&(await loadLogs({'showLoading':!state['logs']['loaded']}),state['logs']['live']?startLogStream():updateLogsLiveUi()),_0x2ea350==='usage'&&await loadUsage({'showLoading':!state['usage']['loaded']});}function getSessionValue(_0x3fb7f0){try{return sessionStorage['getItem'](_0x3fb7f0);}catch{return null;}}function setSessionValue(_0x59e963,_0x10dbde){try{sessionStorage['setItem'](_0x59e963,_0x10dbde);}catch{}}async function loadEnvironmentOptions(){const _0x13da5b=await API['get']('/environments');state['environments']=(_0x13da5b['environments']||[])['map'](_0x490a52=>_0x490a52?.['name'])['filter'](Boolean)['sort']((_0x1fb471,_0x22db4d)=>_0x1fb471['localeCompare'](_0x22db4d));const _0x13ba0e=document['getElementById']('usage-environment-filter');if(!_0x13ba0e)return;_0x13ba0e['innerHTML']='<option\x20value=\x22\x22>All\x20environments</option>'+state['environments']['map'](_0x32587c=>'<option\x20value=\x22'+Utils['escapeHtml'](_0x32587c)+'\x22>'+Utils['escapeHtml'](_0x32587c)+'</option>')['join'](''),_0x13ba0e['value']=state['usage']['environment'];}function syncHealthAutoRefresh(){const _0x37d94c=document['getElementById']('health-auto-refresh');if(_0x37d94c)setSessionValue('admin-health-auto-refresh',String(_0x37d94c['checked']));const _0x25cbd6=state['currentSection']==='health'&&!!_0x37d94c?.['checked'];stopHealthAutoRefresh();if(!_0x25cbd6)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 _0x4df90e=document['getElementById']('health-loading'),_0x1fa8c5=document['getElementById']('health-error'),_0x59f76e=document['getElementById']('health-content');(showLoading||!state['health']['loaded'])&&(_0x4df90e['hidden']=![],_0x1fa8c5['hidden']=!![],_0x59f76e['hidden']=!![]);try{const [_0x23aff2]=await Promise['all']([API['get']('/health/metrics'),loadUpdateSettings()['catch'](_0x35697a=>{console['error']('Failed\x20to\x20load\x20update\x20settings',_0x35697a),state['health']['updateEnabled']=![],state['health']['hasRestartCommand']=![],syncHealthActionButtons();})]);renderHealthMetrics(_0x23aff2),!state['health']['currentVersion']&&await loadVersionStatus({'checkUpdates':![]}),_0x4df90e['hidden']=!![],_0x1fa8c5['hidden']=!![],_0x59f76e['hidden']=![],state['health']['loaded']=!![];}catch(_0x5bf965){console['error']('Failed\x20to\x20load\x20server\x20metrics',_0x5bf965),_0x4df90e['hidden']=!![],_0x1fa8c5['hidden']=![],_0x59f76e['hidden']=!![],document['getElementById']('health-error-message')['textContent']=_0x5bf965['message']||'Unknown\x20error';}finally{state['health']['request']=null;}})()),state['health']['request'];}function syncHealthActionButtons(){const _0x4da972=document['getElementById']('health-update-btn'),_0x500b17=document['getElementById']('health-restart-btn');if(!_0x4da972||!_0x500b17)return;const _0x5a09a2=state['health']['updateEnabled'],_0x38ad20=_0x5a09a2&&state['health']['versionChecked']&&state['health']['updateAvailable'];_0x4da972['hidden']=!_0x38ad20,_0x4da972['disabled']=state['health']['updateInProgress']||state['health']['restartInProgress']||!state['health']['latestVersion'],_0x4da972['textContent']=state['health']['updateInProgress']?'Updating...':'Update\x20Server',_0x500b17['hidden']=!_0x5a09a2,_0x500b17['disabled']=state['health']['updateInProgress']||state['health']['restartInProgress'];}function setUpdateOutput({status:_0x1182e7,output:_0x3b90fe}){const _0x13a969=document['getElementById']('health-update-output-wrap'),_0x109b9e=document['getElementById']('health-update-status'),_0x221fa0=document['getElementById']('health-update-output');if(!_0x13a969||!_0x109b9e||!_0x221fa0)return;const _0x4358d4=_0x1182e7||'';_0x13a969['hidden']=![],_0x109b9e['className']='admin-update-status',_0x4358d4&&_0x109b9e['classList']['add'](_0x4358d4),_0x109b9e['textContent']=_0x4358d4==='success'?'Success':_0x4358d4==='error'?'Failed':'In\x20Progress',_0x221fa0['textContent']=_0x3b90fe||'No\x20output\x20returned.';}function buildCommandOutput(_0xef84b2,_0x388005){const _0x329fbe=[];typeof _0xef84b2==='string'&&_0xef84b2['trim']()&&_0x329fbe['push'](_0xef84b2['trim']());if(typeof _0x388005==='string'&&_0x388005['trim']()){const _0x1062a=_0x388005['trim'](),_0x43ddf8=_0x329fbe['some'](_0x43a347=>_0x43a347['includes'](_0x1062a));!_0x43ddf8&&_0x329fbe['push']('Error:\x0a'+_0x1062a);}return _0x329fbe['join']('\x0a\x0a');}function showRestartOverlay({title:_0x410967,message:_0x65d4b1,showRetry:showRetry=![]}){const _0x1f3a2f=document['getElementById']('health-restart-overlay'),_0x2e17cf=document['getElementById']('restart-overlay-title'),_0x221c95=document['getElementById']('restart-overlay-message'),_0x12c227=document['getElementById']('restart-overlay-retry');if(!_0x1f3a2f||!_0x2e17cf||!_0x221c95||!_0x12c227)return;_0x2e17cf['textContent']=_0x410967,_0x221c95['textContent']=_0x65d4b1,_0x12c227['hidden']=!showRetry,_0x1f3a2f['hidden']=![];}function hideRestartOverlay(){const _0xd91b36=document['getElementById']('health-restart-overlay');_0xd91b36&&(_0xd91b36['hidden']=!![]);}function sleep(_0x22f97c){return new Promise(_0xffd389=>{window['setTimeout'](_0xffd389,_0x22f97c);});}async function loadUpdateSettings(){const _0x18018c=await API['getUpdateSettings']();return state['health']['updateEnabled']=!!_0x18018c['enabled'],state['health']['hasRestartCommand']=!!_0x18018c['hasRestartCommand'],syncHealthActionButtons(),_0x18018c;}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 _0x110d57=await API['applyServerUpdate'](state['health']['latestVersion']),_0x35e5b9=buildCommandOutput(_0x110d57['output'],_0x110d57['error']);_0x110d57['success']?(setUpdateOutput({'status':'success','output':_0x35e5b9||'Server\x20update\x20to\x20'+state['health']['latestVersion']+'\x20completed.'}),Utils['showSuccess']('Server\x20update\x20to\x20'+state['health']['latestVersion']+'\x20completed')):(setUpdateOutput({'status':'error','output':_0x35e5b9||'Server\x20update\x20failed\x20without\x20additional\x20output.'}),Utils['showError'](_0x110d57['error']||'Server\x20update\x20failed'));}catch(_0x1fed94){setUpdateOutput({'status':'error','output':buildCommandOutput(_0x1fed94['output'],_0x1fed94['commandError']||_0x1fed94['message'])||'Failed\x20to\x20apply\x20server\x20update.'}),Utils['showError'](_0x1fed94['message']||'Failed\x20to\x20apply\x20server\x20update');}finally{state['health']['updateInProgress']=![],syncHealthActionButtons();}}function showRestartConfirmation(){if(!state['health']['updateEnabled']||state['health']['restartInProgress'])return;const _0x47db5c=document['getElementById']('restart-modal');_0x47db5c&&(_0x47db5c['hidden']=![]);}function hideRestartModal(){const _0x2f950b=document['getElementById']('restart-modal');_0x2f950b&&(_0x2f950b['hidden']=!![]);}async function confirmRestart(){if(state['health']['restartInProgress'])return;hideRestartModal(),state['health']['restartInProgress']=!![],syncHealthActionButtons();try{await API['restartServer'](),await waitForServerRestart();}catch(_0xb59e7c){state['health']['restartInProgress']=![],syncHealthActionButtons(),hideRestartOverlay(),Utils['showError'](_0xb59e7c['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 _0x3abdf7=Date['now']();let _0x484fba=![];for(let _0x55f38a=0x0;_0x55f38a<RESTART_POLL_MAX_ATTEMPTS;_0x55f38a+=0x1){await sleep(RESTART_POLL_INTERVAL_MS);try{await API['get']('/health?ts='+Date['now']());const _0x1041ab=Date['now']()-_0x3abdf7;if(_0x484fba||_0x1041ab>=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(_0x21e376){_0x484fba=!![];}}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 _0x5811b3=document['getElementById']('health-check-updates-btn');_0x5811b3&&(_0x5811b3['disabled']=!![],_0x5811b3['textContent']=checkUpdates?'Checking...':'Loading...');try{const _0x4fd967=await API['get']('/health');state['health']['currentVersion']=_0x4fd967['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 _0x156891=await API['get']('/health/check-updates');state['health']['versionChecked']=!![],state['health']['latestVersion']=_0x156891['latestVersion']||'Unavailable',state['health']['installCommand']=_0x156891['installCommand']||null,state['health']['updateAvailable']=!!_0x156891['updateAvailable'],document['getElementById']('health-version-current')['textContent']=_0x156891['currentVersion']||state['health']['currentVersion'],document['getElementById']('health-version-latest')['textContent']=state['health']['latestVersion'],document['getElementById']('health-version-status')['textContent']=buildVersionStatusText(_0x156891),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(_0xf380b7){console['error']('Failed\x20to\x20load\x20version\x20status',_0xf380b7),state['health']['updateAvailable']=![],document['getElementById']('health-version-status')['textContent']='Unable\x20to\x20load\x20version\x20status:\x20'+_0xf380b7['message'],document['getElementById']('health-install-command-wrap')['hidden']=!![],document['getElementById']('health-copy-install-btn')['hidden']=!![],syncHealthActionButtons();}finally{_0x5811b3&&(_0x5811b3['disabled']=![],_0x5811b3['textContent']='Check\x20for\x20Updates');}}function buildVersionStatusText(_0x546274){const _0x177270=_0x546274?.['versionStatus'];if(_0x177270==='update-available')return'Update\x20available:\x20'+_0x546274['currentVersion']+'\x20→\x20'+_0x546274['latestVersion'];if(_0x177270==='up-to-date')return'Running\x20the\x20latest\x20published\x20version\x20('+_0x546274['latestVersion']+').';if(_0x177270==='ahead-of-latest')return'This\x20server\x20is\x20ahead\x20of\x20npm\x20latest\x20('+_0x546274['latestVersion']+').';return'Unable\x20to\x20compare\x20current\x20and\x20latest\x20versions.';}async function copyInstallCommand(){if(!state['health']['installCommand'])return;const _0x102bf5=await Utils['copyToClipboard'](state['health']['installCommand']);_0x102bf5?Utils['showSuccess']('Install\x20command\x20copied'):Utils['showError']('Failed\x20to\x20copy\x20install\x20command');}function renderHealthMetrics(_0x3086cf){document['getElementById']('cpu-usage')['textContent']=_0x3086cf['cpu']?.['display']||'-',document['getElementById']('memory-usage')['textContent']=_0x3086cf['memory']?.['display']||'-',document['getElementById']('disk-usage')['textContent']=_0x3086cf['disk']?.['display']||'-',document['getElementById']('docker-containers')['textContent']=_0x3086cf['docker']?.['display']||'-',document['getElementById']('server-uptime')['textContent']=_0x3086cf['uptime']?.['display']||'-',document['getElementById']('active-sessions')['textContent']=_0x3086cf['sessions']?.['display']||'-',setMetricProgress('cpu-progress',_0x3086cf['cpu']?.['percent'],statusFromPercent(_0x3086cf['cpu']?.['percent'])),setMetricProgress('memory-progress',_0x3086cf['memory']?.['percent'],statusFromPercent(_0x3086cf['memory']?.['percent'])),setMetricProgress('disk-progress',_0x3086cf['disk']?.['percent'],statusFromPercent(_0x3086cf['disk']?.['percent']));const _0x2376f0=_0x3086cf['docker']?.['total']>0x0?_0x3086cf['docker']['running']/_0x3086cf['docker']['total']*0x64:0x0;setMetricProgress('docker-progress',_0x2376f0,'ok');const _0x36d23e=_0x3086cf['dockerStorage']||{},_0x2f8b93=document['getElementById']('docker-storage-card');document['getElementById']('docker-storage-total')['textContent']=_0x36d23e['display']||'-',document['getElementById']('docker-storage-available')['textContent']=_0x36d23e['availableDisplay']||'',document['getElementById']('docker-storage-available')['hidden']=!_0x36d23e['availableDisplay'],document['getElementById']('docker-storage-reclaimable')['textContent']=_0x36d23e['reclaimableDisplay']||'',document['getElementById']('docker-storage-images')['textContent']=_0x36d23e['images']?.['display']||'-',document['getElementById']('docker-storage-containers')['textContent']=_0x36d23e['containers']?.['display']||'-',document['getElementById']('docker-storage-volumes')['textContent']=_0x36d23e['volumes']?.['display']||'-',document['getElementById']('docker-storage-buildcache')['textContent']=_0x36d23e['buildCache']?.['display']||'-',setMetricProgress('docker-storage-progress',_0x36d23e['percent'],_0x36d23e['status']||'ok'),_0x2f8b93['classList']['remove']('status-warning','status-critical'),_0x36d23e['status']==='warning'&&_0x2f8b93['classList']['add']('status-warning'),_0x36d23e['status']==='critical'&&_0x2f8b93['classList']['add']('status-critical');}function clampPercent(_0x4037ea){if(!Number['isFinite'](_0x4037ea))return 0x0;return Math['max'](0x0,Math['min'](0x64,Math['round'](_0x4037ea)));}function statusFromPercent(_0x11a0c3){if(!Number['isFinite'](_0x11a0c3))return'ok';if(_0x11a0c3>=0x5a)return'critical';if(_0x11a0c3>=0x4b)return'warning';return'ok';}function setMetricProgress(_0x9aced6,_0x31b3da,_0x2addaf='ok'){const _0x4bee6f=document['getElementById'](_0x9aced6);if(!_0x4bee6f)return;const _0xd3d091=clampPercent(_0x31b3da);_0x4bee6f['style']['width']=_0xd3d091+'%',_0x4bee6f['classList']['remove']('status-ok','status-warning','status-critical'),_0x4bee6f['classList']['add'](_0x2addaf==='critical'?'status-critical':_0x2addaf==='warning'?'status-warning':'status-ok'),_0x4bee6f['parentElement']?.['setAttribute']('aria-valuenow',String(_0xd3d091));}async function runCleanupAction(_0x136900,_0x3cf4b4){const _0x78921b=document['getElementById']('server-health-action-status'),_0x34e4b=[document['getElementById']('health-refresh-btn'),document['getElementById']('server-stop-containers'),document['getElementById']('server-remove-stopped'),document['getElementById']('server-prune-docker')]['filter'](Boolean);_0x34e4b['forEach'](_0x412acb=>{_0x412acb['disabled']=!![];}),_0x78921b['hidden']=![],_0x78921b['classList']['remove']('success','error'),_0x78921b['textContent']=_0x136900+'...';try{const _0x41baa6=await _0x3cf4b4();_0x78921b['classList']['add']('success'),_0x78921b['textContent']=_0x41baa6?.['message']||_0x136900+'\x20complete',await loadHealth({'showLoading':!![]});}catch(_0x9e8993){console['error'](_0x136900+'\x20failed',_0x9e8993),_0x78921b['classList']['add']('error'),_0x78921b['textContent']=_0x9e8993['message']||_0x136900+'\x20failed';}finally{_0x34e4b['forEach'](_0x346c41=>{_0x346c41['disabled']=![];});}}function toggleCleanupSection(){const _0x3a096f=document['getElementById']('cleanup-section'),_0x7caa17=document['getElementById']('cleanup-content'),_0x127097=document['getElementById']('cleanup-toggle');if(!_0x3a096f||!_0x7caa17||!_0x127097)return;const _0x3a6055=_0x3a096f['classList']['toggle']('expanded');_0x7caa17['hidden']=!_0x3a6055,_0x127097['setAttribute']('aria-expanded',String(_0x3a6055));}async function loadLogs({showLoading:showLoading=![]}={}){if(state['logs']['request'])return state['logs']['request'];return state['logs']['request']=((async()=>{const _0x20645e=document['getElementById']('logs-loading'),_0x44a0a3=document['getElementById']('logs-error');(showLoading||!state['logs']['loaded'])&&(_0x20645e['hidden']=![],_0x44a0a3['hidden']=!![],document['getElementById']('logs-empty')['hidden']=!![],document['getElementById']('logs-container')['hidden']=!![]);try{const _0x12c39b=new URLSearchParams({'limit':'500'});state['logs']['level']!=='ALL'&&_0x12c39b['set']('level',state['logs']['level']);state['logs']['search']&&_0x12c39b['set']('search',state['logs']['search']);const _0xb85d9b=await API['get']('/logs?'+_0x12c39b['toString']());state['logs']['entries']=Array['isArray'](_0xb85d9b['entries'])?normalizeLogEntries(_0xb85d9b['entries'])['slice'](-state['logs']['maxEntries']):[],state['logs']['selectedEntryIds']['clear'](),state['logs']['total']=Number(_0xb85d9b['total'])||0x0,state['logs']['minLevel']=_0xb85d9b['minLevel']||'INFO',state['logs']['loaded']=!![],_0x20645e['hidden']=!![],_0x44a0a3['hidden']=!![],renderLogs();}catch(_0x2433ef){console['error']('Failed\x20to\x20load\x20logs',_0x2433ef),_0x20645e['hidden']=!![],_0x44a0a3['hidden']=![],document['getElementById']('logs-error-message')['textContent']=_0x2433ef['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 _0x5ac318=document['getElementById']('logs-container'),_0x23cbda=document['getElementById']('logs-empty'),_0x5826e3=stickToLiveEdge||state['logs']['autoScroll']&&state['logs']['live'],_0x5b4ffb=_0x5ac318?.['scrollTop']||0x0,_0x468b0b=_0x5ac318?.['scrollHeight']||0x0,_0x502618=getOrderedLogEntries();updateLogsMeta(_0x502618['length']),syncLogSelectionUi(_0x502618);if(_0x502618['length']===0x0){_0x5ac318['hidden']=!![],_0x23cbda['hidden']=![];return;}_0x23cbda['hidden']=!![],_0x5ac318['hidden']=![],_0x5ac318['innerHTML']=_0x502618['map'](renderLogEntry)['join']('');if(_0x5826e3){scrollLogsToLiveEdge(_0x5ac318);return;}if(state['logs']['order']===LOG_ORDER_DESC){const _0x827124=_0x5ac318['scrollHeight'],_0x262b63=_0x827124-_0x468b0b;_0x5ac318['scrollTop']=_0x5b4ffb>0x0?_0x5b4ffb+Math['max'](_0x262b63,0x0):_0x5b4ffb;return;}_0x5ac318['scrollTop']=_0x5b4ffb;}function createLogEntryId(){const _0x451122=state['logs']['nextEntryId'];return state['logs']['nextEntryId']+=0x1,'server-log-'+_0x451122;}function normalizeLogEntry(_0x28e6b8){return{..._0x28e6b8,'_clientId':createLogEntryId()};}function normalizeLogEntries(_0x39becc){return _0x39becc['map'](normalizeLogEntry);}function getVisibleLogEntries(){const _0x34c858=state['logs']['search']['trim']()['toLowerCase']();return state['logs']['entries']['filter'](_0x5ca5d0=>{if(state['logs']['level']!=='ALL'&&_0x5ca5d0['level']!==state['logs']['level'])return![];if(!_0x34c858)return!![];const _0x46265e=String(_0x5ca5d0['message']||'')['toLowerCase'](),_0x266295=_0x5ca5d0['context']?JSON['stringify'](_0x5ca5d0['context'])['toLowerCase']():'';return _0x46265e['includes'](_0x34c858)||_0x266295['includes'](_0x34c858);});}function getOrderedLogEntries(){const _0x111072=getVisibleLogEntries();return state['logs']['order']===LOG_ORDER_DESC?_0x111072['slice']()['reverse']():_0x111072;}function findLogEntry(_0x2fd9a4){return state['logs']['entries']['find'](_0x46c282=>_0x46c282['_clientId']===_0x2fd9a4)||null;}function getSelectedVisibleLogEntries(_0x4a8a39=getOrderedLogEntries()){return _0x4a8a39['filter'](_0x4a2717=>state['logs']['selectedEntryIds']['has'](_0x4a2717['_clientId']));}function renderLogEntry(_0x3bdc8b){const _0x58a743=Utils['escapeHtml'](String(_0x3bdc8b['_clientId']||'')),_0x5064b2=Utils['escapeHtml'](formatDateTime(_0x3bdc8b['timestamp'])),_0x543b76=Utils['escapeHtml'](String(_0x3bdc8b['level']||'INFO')),_0x374948=Utils['escapeHtml'](String(_0x3bdc8b['message']||'')),_0xc85f9a=formatLogContext(_0x3bdc8b['context']),_0x4fa61b=_0xc85f9a?'\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'](_0xc85f9a)+'</pre>\x0a\x20\x20\x20\x20\x20\x20</details>\x0a\x20\x20\x20\x20':'',_0x20ef87=state['logs']['selectedEntryIds']['has'](_0x3bdc8b['_clientId'])?'\x20selected':'';return'\x0a\x20\x20\x20\x20<div\x20class=\x22admin-log-entry'+_0x20ef87+'\x22\x20data-log-entry-id=\x22'+_0x58a743+'\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'+_0x58a743+'\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20aria-label=\x22Select\x20log\x20entry\x20from\x20'+_0x5064b2+'\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x20ef87?'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>'+_0x5064b2+'</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-'+_0x543b76['toLowerCase']()+'\x22>'+_0x543b76+'</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'+_0x58a743+'\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>'+_0x374948+'</div>\x0a\x20\x20\x20\x20\x20\x20'+_0x4fa61b+'\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}function updateLogsMeta(_0x22eaa7){const _0x1e48b3=document['getElementById']('logs-meta');if(!_0x1e48b3)return;const _0x319896=state['logs']['entries']['length'],_0x5cf4cf=state['logs']['level']!=='ALL'||!!state['logs']['search']['trim'](),_0x326aa0=state['logs']['order']===LOG_ORDER_DESC?'newest\x20first':'oldest\x20first';_0x1e48b3['textContent']=_0x5cf4cf?'Showing\x20'+_0x22eaa7+'\x20of\x20'+_0x319896+'\x20loaded\x20entries\x20for\x20the\x20current\x20filters\x20in\x20'+_0x326aa0+'\x20order.\x20Minimum\x20runtime\x20level:\x20'+state['logs']['minLevel']+'.':'Showing\x20'+_0x22eaa7+'\x20recent\x20buffered\x20entries\x20in\x20'+_0x326aa0+'\x20order.\x20Minimum\x20runtime\x20level:\x20'+state['logs']['minLevel']+'.';}function syncLogSelectionUi(_0x237cb2=getOrderedLogEntries()){const _0x11580b=document['getElementById']('logs-selection-count'),_0x447e31=document['getElementById']('logs-select-visible-btn'),_0x1646ee=document['getElementById']('logs-clear-selection-btn'),_0xa808dc=document['getElementById']('logs-copy-selected-btn'),_0xf9e844=getSelectedVisibleLogEntries(_0x237cb2),_0x56ce3d=_0x237cb2['length']>0x0,_0x1f4647=_0xf9e844['length']>0x0,_0x56b9db=_0x56ce3d&&_0xf9e844['length']===_0x237cb2['length'],_0x231c3c=state['logs']['level']!=='ALL'||!!state['logs']['search']['trim'](),_0x90d87a=_0x231c3c?'Select\x20Filtered':'Select\x20All\x20Shown',_0x2566e0=_0x231c3c?'Deselect\x20Filtered':'Deselect\x20All\x20Shown';_0x11580b&&(_0x11580b['textContent']=_0xf9e844['length']+'\x20selected'),_0x447e31&&(_0x447e31['disabled']=!_0x56ce3d,_0x447e31['textContent']=_0x56b9db?_0x2566e0:_0x90d87a),_0x1646ee&&(_0x1646ee['disabled']=!_0x1f4647),_0xa808dc&&(_0xa808dc['disabled']=!_0x1f4647);}function toggleLogsLiveMode(){state['logs']['live']=!state['logs']['live'],state['logs']['live']?(state['logs']['autoScroll']=!![],renderLogs({'stickToLiveEdge':!![]}),startLogStream()):stopLogStream(),updateLogsLiveUi();}function updateLogsLiveUi(){const _0x2541d7=document['getElementById']('logs-live-toggle'),_0x6d1858=document['getElementById']('logs-stream-status');if(!_0x2541d7||!_0x6d1858)return;_0x6d1858['classList']['remove']('live','error');if(!state['logs']['live']){_0x6d1858['textContent']='Paused',_0x2541d7['textContent']='Start\x20Live';return;}if(state['logs']['streamState']==='live')_0x6d1858['textContent']='Live',_0x6d1858['classList']['add']('live');else state['logs']['streamState']==='error'?(_0x6d1858['textContent']='Reconnecting',_0x6d1858['classList']['add']('error')):_0x6d1858['textContent']='Connecting';_0x2541d7['textContent']='Pause\x20Live';}function startLogStream(){if(state['currentSection']!=='logs'||state['logs']['stream'])return;state['logs']['streamState']='connecting',updateLogsLiveUi();const _0xb968e7=new EventSource(API['getBaseUrl']()+'/logs/stream');state['logs']['stream']=_0xb968e7,_0xb968e7['addEventListener']('log',_0x396cb2=>{try{const _0x31db76=normalizeLogEntry(JSON['parse'](_0x396cb2['data']));state['logs']['entries']['push'](_0x31db76);if(state['logs']['entries']['length']>state['logs']['maxEntries']){const _0x1717f5=state['logs']['entries']['shift']();state['logs']['selectedEntryIds']['delete'](_0x1717f5?.['_clientId']);}renderLogs();}catch(_0x4aef37){console['error']('Failed\x20to\x20parse\x20log\x20stream\x20event',_0x4aef37);}}),_0xb968e7['onopen']=()=>{state['logs']['streamState']='live',updateLogsLiveUi();},_0xb968e7['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(_0x2bdb33){const _0x119ebd=_0x2bdb33['target']['closest']('[data-log-copy-id]');if(!_0x119ebd)return;const _0x133fb7=findLogEntry(_0x119ebd['dataset']['logCopyId']||'');if(!_0x133fb7){Utils['showError']('Log\x20entry\x20is\x20no\x20longer\x20available');return;}copyLogEntries([_0x133fb7],{'successMessage':'Log\x20entry\x20copied'});}function handleLogContainerChange(_0x29b729){const _0x46ac07=_0x29b729['target']['closest']('.admin-log-select-checkbox');if(!_0x46ac07)return;const _0x113340=_0x46ac07['dataset']['logEntryId']||'';if(!_0x113340)return;_0x46ac07['checked']?state['logs']['selectedEntryIds']['add'](_0x113340):state['logs']['selectedEntryIds']['delete'](_0x113340),_0x46ac07['closest']('.admin-log-entry')?.['classList']['toggle']('selected',_0x46ac07['checked']),syncLogSelectionUi();}function toggleVisibleLogSelection(){const _0x821024=getOrderedLogEntries();if(_0x821024['length']===0x0)return;const _0x41f775=getSelectedVisibleLogEntries(_0x821024),_0x3656b2=_0x41f775['length']!==_0x821024['length'];_0x821024['forEach'](_0x16728a=>{_0x3656b2?state['logs']['selectedEntryIds']['add'](_0x16728a['_clientId']):state['logs']['selectedEntryIds']['delete'](_0x16728a['_clientId']);}),renderLogs();}function clearSelectedLogEntries(){if(state['logs']['selectedEntryIds']['size']===0x0)return;state['logs']['selectedEntryIds']['clear'](),renderLogs();}async function copySelectedLogEntries(){const _0xf967f6=getSelectedVisibleLogEntries();if(_0xf967f6['length']===0x0)return;await copyLogEntries(_0xf967f6,{'successMessage':_0xf967f6['length']===0x1?'Log\x20entry\x20copied':_0xf967f6['length']+'\x20log\x20entries\x20copied'});}async function copyLogEntries(_0x4e325a,{successMessage:successMessage='Log\x20entries\x20copied'}={}){const _0x9ea104=formatLogEntriesForClipboard(_0x4e325a);if(!_0x9ea104){Utils['showError']('No\x20log\x20content\x20available\x20to\x20copy');return;}const _0x343be4=await Utils['copyToClipboard'](_0x9ea104);_0x343be4?Utils['showSuccess'](successMessage):Utils['showError']('Failed\x20to\x20copy\x20logs');}function setLogOrder(_0x4d88c0,{focusLiveEdge:focusLiveEdge=![]}={}){const _0x3313d0=_0x4d88c0===LOG_ORDER_DESC?LOG_ORDER_DESC:LOG_ORDER_ASC;if(state['logs']['order']===_0x3313d0){focusLiveEdge&&(state['logs']['autoScroll']=!![],renderLogs({'stickToLiveEdge':!![]}));return;}state['logs']['order']=_0x3313d0,setSessionValue('admin-logs-order',_0x3313d0),syncLogOrderUi(),focusLiveEdge&&(state['logs']['autoScroll']=!![]),renderLogs({'stickToLiveEdge':focusLiveEdge});}function syncLogOrderUi(){updateActiveFilterButtons('#logs-order-toggle',state['logs']['order']);}function handleLogsSearchInput(_0x3196bb){const _0x39bf96=_0x3196bb['target']['value']||'';state['logs']['searchTimer']&&clearTimeout(state['logs']['searchTimer']),state['logs']['searchTimer']=window['setTimeout'](()=>{state['logs']['search']=_0x39bf96,loadLogs({'showLoading':![]});},LOG_SEARCH_DEBOUNCE_MS);}function updateLogAutoScrollState(){const _0x43840e=document['getElementById']('logs-container');if(!_0x43840e)return;const _0x1f3ce7=state['logs']['order']===LOG_ORDER_DESC?_0x43840e['scrollTop']:_0x43840e['scrollHeight']-_0x43840e['scrollTop']-_0x43840e['clientHeight'];state['logs']['autoScroll']=_0x1f3ce7<0x20;}async function loadUsage({showLoading:showLoading=![]}={}){if(state['usage']['request'])return state['usage']['request'];return state['usage']['request']=((async()=>{const _0x4cf3aa=document['getElementById']('usage-loading'),_0x44a297=document['getElementById']('usage-error');(showLoading||!state['usage']['loaded'])&&(_0x4cf3aa['hidden']=![],_0x44a297['hidden']=!![],document['getElementById']('usage-empty')['hidden']=!![],document['getElementById']('usage-content')['hidden']=!![]);try{const _0x4a751f=new URLSearchParams();_0x4a751f['set']('days',state['usage']['days']);state['usage']['environment']&&_0x4a751f['set']('environment',state['usage']['environment']);const _0x575c28=await API['get']('/stats?'+_0x4a751f['toString']());state['usage']['loaded']=!![],_0x4cf3aa['hidden']=!![],_0x44a297['hidden']=!![],renderUsage(_0x575c28);}catch(_0x2fbae6){console['error']('Failed\x20to\x20load\x20usage\x20statistics',_0x2fbae6),_0x4cf3aa['hidden']=!![],_0x44a297['hidden']=![],document['getElementById']('usage-error-message')['textContent']=_0x2fbae6['message']||'Unknown\x20error',document['getElementById']('usage-empty')['hidden']=!![],document['getElementById']('usage-content')['hidden']=!![];}finally{state['usage']['request']=null;}})()),state['usage']['request'];}function renderUsage(_0x36f40f){const _0x506d0f=Number(_0x36f40f?.['tasks']?.['total'])||0x0,_0x55b9fa=document['getElementById']('usage-empty'),_0x582a64=document['getElementById']('usage-content');if(_0x506d0f===0x0){_0x55b9fa['hidden']=![],_0x582a64['hidden']=!![];return;}_0x55b9fa['hidden']=!![],_0x582a64['hidden']=![];const _0x177442=Number(_0x36f40f?.['approvalRate']?.['successRate'])||0x0,_0x21d630=Math['round'](_0x177442*0x64),_0x5022c7=_0x36f40f?.['code']?.['approved']||{},_0x48d01a=Number(_0x5022c7?.['tasks'])||0x0,_0x18a1f2=(Number(_0x5022c7?.['linesAdded'])||0x0)-(Number(_0x5022c7?.['linesDeleted'])||0x0),_0x2a5475=(Number(_0x36f40f?.['code']?.['linesAdded'])||0x0)-(Number(_0x36f40f?.['code']?.['linesDeleted'])||0x0),_0x436138=Number(_0x36f40f?.['timing']?.['averageDurationMinutes'])||0x0;setSummaryValue('usage-total-tasks',formatNumber(_0x506d0f)),setSummaryValue('usage-success-rate',_0x21d630+'%',statusClassFromPercent(_0x21d630)),setSummaryValue('usage-net-lines',formatSignedNumber(_0x2a5475)),setSummaryValue('usage-average-duration',formatDurationMinutes(_0x436138));const _0x59d8d5=_0x506d0f>0x0?Math['round'](_0x48d01a/_0x506d0f*0x64):0x0;document['getElementById']('usage-approved-summary')['textContent']=formatNumber(_0x48d01a)+'\x20approved\x20('+_0x59d8d5+'%)\x20·\x20'+formatNumber(_0x36f40f['timing']['totalDurationHours']||0x0)+'h\x20total',document['getElementById']('usage-success-detail')['textContent']=(_0x36f40f['approvalRate']['completed']||0x0)+'\x20completed\x20/\x20'+(_0x36f40f['approvalRate']['failed']||0x0)+'\x20failed\x20/\x20'+(_0x36f40f['approvalRate']['interrupted']||0x0)+'\x20interrupted',document['getElementById']('usage-net-lines-detail')['textContent']='+'+formatNumber(_0x36f40f['code']['linesAdded']||0x0)+'\x20/\x20-'+formatNumber(_0x36f40f['code']['linesDeleted']||0x0)+'\x20·\x20Approved\x20'+formatSignedNumber(_0x18a1f2)+'\x20net',document['getElementById']('usage-average-duration-detail')['textContent']=formatDurationMinutes(_0x36f40f['timing']['medianDurationMinutes']||0x0)+'\x20median\x20·\x20'+formatNumber(_0x36f40f['timing']['totalDurationHours']||0x0)+'h\x20total',document['getElementById']('usage-period-summary')['textContent']=buildPeriodSummary(_0x36f40f['period']),renderBarList('usage-status-bars',_0x36f40f['tasks']['byStatus']||{}),renderObjectTable('usage-type-body',_0x36f40f['tasks']['byType']||{},_0x506d0f,{'includePercent':!![],'labelFormatter':prettifyKey}),renderObjectTable('usage-environment-body',_0x36f40f['tasks']['byEnvironment']||{},_0x506d0f),renderUserTable('usage-user-body',_0x36f40f['tasks']['byUser']||[]),renderObjectTable('usage-source-body',_0x36f40f['tasks']['bySource']||{},_0x506d0f,{'labelFormatter':prettifyKey}),document['getElementById']('usage-lines-added')['textContent']=formatNumber(_0x36f40f['code']['linesAdded']||0x0),document['getElementById']('usage-lines-deleted')['textContent']=formatNumber(_0x36f40f['code']['linesDeleted']||0x0),document['getElementById']('usage-files-changed')['textContent']=formatNumber(_0x36f40f['code']['filesChanged']||0x0),document['getElementById']('usage-repositories-affected')['textContent']=formatNumber(_0x36f40f['code']['repositoriesAffected']||0x0),document['getElementById']('usage-approved-lines-added')['textContent']=formatNumber(_0x5022c7['linesAdded']||0x0),document['getElementById']('usage-approved-lines-deleted')['textContent']=formatNumber(_0x5022c7['linesDeleted']||0x0),document['getElementById']('usage-approved-files-changed')['textContent']=formatNumber(_0x5022c7['filesChanged']||0x0),document['getElementById']('usage-approved-repositories-affected')['textContent']=formatNumber(_0x5022c7['repositoriesAffected']||0x0);const _0x32e05d=(_0x13a4ce,_0x346c6e)=>_0x13a4ce>0x0?Math['round'](_0x346c6e/_0x13a4ce*0x64):0x0;document['getElementById']('usage-added-pct')['style']['width']=_0x32e05d(_0x36f40f['code']['linesAdded']||0x0,_0x5022c7['linesAdded']||0x0)+'%',document['getElementById']('usage-deleted-pct')['style']['width']=_0x32e05d(_0x36f40f['code']['linesDeleted']||0x0,_0x5022c7['linesDeleted']||0x0)+'%',document['getElementById']('usage-files-pct')['style']['width']=_0x32e05d(_0x36f40f['code']['filesChanged']||0x0,_0x5022c7['filesChanged']||0x0)+'%',document['getElementById']('usage-repos-pct')['style']['width']=_0x32e05d(_0x36f40f['code']['repositoriesAffected']||0x0,_0x5022c7['repositoriesAffected']||0x0)+'%';}function buildPeriodSummary(_0x58d613){const _0x92f16b=_0x58d613?.['from']?formatDateTime(_0x58d613['from']):'the\x20earliest\x20loaded\x20task',_0x508718=_0x58d613?.['to']?formatDateTime(_0x58d613['to']):'now',_0x5ee31e=_0x58d613?.['days']?_0x58d613['days']+'\x20day\x20window':'All\x20available\x20task\x20history';return _0x5ee31e+'\x20·\x20'+_0x92f16b+'\x20to\x20'+_0x508718;}function renderBarList(_0x1d4f11,_0x30b330){const _0x42192c=document['getElementById'](_0x1d4f11);if(!_0x42192c)return;const _0x852db7=Object['entries'](_0x30b330)['filter'](([,_0x370c0d])=>Number(_0x370c0d)>0x0)['sort']((_0x1c3418,_0x2f2027)=>_0x2f2027[0x1]-_0x1c3418[0x1]),_0x4d2e4f=_0x852db7['reduce']((_0x2764d2,[,_0x4cf94b])=>_0x2764d2+Number(_0x4cf94b||0x0),0x0);if(_0x852db7['length']===0x0){_0x42192c['innerHTML']='<div\x20class=\x22text-muted\x22>No\x20data\x20available.</div>';return;}_0x42192c['innerHTML']=_0x852db7['map'](([_0x3a3b69,_0x10c216])=>{const _0x3a8f3b=_0x4d2e4f>0x0?Math['max'](0x2,Math['round'](_0x10c216/_0x4d2e4f*0x64)):0x0,_0x2f6972=Utils['escapeHtml'](prettifyKey(_0x3a3b69)),_0xd88e11=Utils['escapeHtml'](formatNumber(_0x10c216));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>'+_0x2f6972+'</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(_0x3a3b69)['toLowerCase']())+'\x22\x20style=\x22width:\x20'+_0x3a8f3b+'%\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>'+_0xd88e11+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';})['join']('');}function renderObjectTable(_0x10e061,_0x568a78,_0x455401,{includePercent:includePercent=![],labelFormatter:labelFormatter=null}={}){const _0x349ccd=document['getElementById'](_0x10e061);if(!_0x349ccd)return;const _0x45529f=Object['entries'](_0x568a78)['filter'](([,_0x3a7404])=>Number(_0x3a7404)>0x0)['sort']((_0x253a76,_0xb97b74)=>_0xb97b74[0x1]-_0x253a76[0x1]||String(_0x253a76[0x0])['localeCompare'](String(_0xb97b74[0x0])));if(_0x45529f['length']===0x0){_0x349ccd['innerHTML']='<tr><td\x20colspan=\x22'+(includePercent?0x3:0x2)+'\x22\x20class=\x22text-muted\x22>No\x20data\x20available.</td></tr>';return;}_0x349ccd['innerHTML']=_0x45529f['map'](([_0x3b32ec,_0x9de4c])=>{const _0x43ab1a=labelFormatter?labelFormatter(_0x3b32ec):_0x3b32ec,_0x4ae53b=includePercent?'<td>'+formatPercent(_0x455401>0x0?_0x9de4c/_0x455401*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(_0x43ab1a))+'</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](formatNumber(_0x9de4c))+'</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x4ae53b+'\x0a\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20';})['join']('');}function renderUserTable(_0x414509,_0x592d75){const _0x3ab7a4=document['getElementById'](_0x414509);if(!_0x3ab7a4)return;if(!Array['isArray'](_0x592d75)||_0x592d75['length']===0x0){_0x3ab7a4['innerHTML']='<tr><td\x20colspan=\x222\x22\x20class=\x22text-muted\x22>No\x20data\x20available.</td></tr>';return;}_0x3ab7a4['innerHTML']=_0x592d75['map'](_0x516fea=>'\x0a\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](_0x516fea['name']||_0x516fea['username']||_0x516fea['userId']||'Unknown')+'</td>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](formatNumber(_0x516fea['count']||0x0))+'</td>\x0a\x20\x20\x20\x20</tr>\x0a\x20\x20')['join']('');}function updateActiveFilterButtons(_0x23a1ae,_0x393251){document['querySelectorAll'](_0x23a1ae+'\x20.admin-filter-btn')['forEach'](_0xc2ecb0=>{_0xc2ecb0['classList']['toggle']('active',_0xc2ecb0['dataset']['level']===_0x393251||_0xc2ecb0['dataset']['days']===_0x393251||_0xc2ecb0['dataset']['order']===_0x393251);});}function scrollLogsToLiveEdge(_0x52edba){if(!_0x52edba)return;if(state['logs']['order']===LOG_ORDER_DESC){_0x52edba['scrollTop']=0x0;return;}_0x52edba['scrollTop']=_0x52edba['scrollHeight'];}function setSummaryValue(_0x3a41cf,_0x5383b2,_0x458e13=''){const _0x1b846f=document['getElementById'](_0x3a41cf);if(!_0x1b846f)return;_0x1b846f['textContent']=_0x5383b2,_0x1b846f['classList']['remove']('status-good','status-warn','status-bad'),_0x458e13&&_0x1b846f['classList']['add'](_0x458e13);}function statusClassFromPercent(_0xd265ba){if(_0xd265ba>=0x50)return'status-good';if(_0xd265ba>0x3c)return'status-warn';return'status-bad';}function formatDateTime(_0x480d97){const _0x1ec36e=new Date(_0x480d97);if(Number['isNaN'](_0x1ec36e['getTime']()))return _0x480d97||'Unknown';return _0x1ec36e['toLocaleString']();}function formatLogContext(_0x50d5fd){if(!_0x50d5fd)return'';try{return JSON['stringify'](_0x50d5fd,null,0x2);}catch{return String(_0x50d5fd);}}function formatLogEntryForClipboard(_0x2e6a27){const _0x273bb2=['['+formatDateTime(_0x2e6a27['timestamp'])+']\x20'+String(_0x2e6a27['level']||'INFO')['toUpperCase']()];_0x2e6a27['message']&&_0x273bb2['push'](String(_0x2e6a27['message']));const _0x7e04d0=formatLogContext(_0x2e6a27['context']);return _0x7e04d0&&(_0x273bb2['push']('Context:'),_0x273bb2['push'](_0x7e04d0)),_0x273bb2['join']('\x0a');}function formatLogEntriesForClipboard(_0xd90677){if(!Array['isArray'](_0xd90677)||_0xd90677['length']===0x0)return'';return _0xd90677['map'](formatLogEntryForClipboard)['join']('\x0a\x0a');}function formatDurationMinutes(_0x59f4ed){const _0x5076d3=Math['round'](Number(_0x59f4ed)||0x0);if(_0x5076d3<0x3c)return _0x5076d3+'m';const _0x5ebd47=Math['floor'](_0x5076d3/0x3c),_0x3f3e1b=_0x5076d3%0x3c;return _0x3f3e1b>0x0?_0x5ebd47+'h\x20'+_0x3f3e1b+'m':_0x5ebd47+'h';}function formatPercent(_0x2573c6){return Math['round'](Number(_0x2573c6)||0x0)+'%';}function formatNumber(_0x61b3a4){return NUMBER_FORMATTER['format'](Number(_0x61b3a4)||0x0);}function formatSignedNumber(_0x5185fe){const _0x3c8211=Number(_0x5185fe)||0x0;if(_0x3c8211>0x0)return'+'+formatNumber(_0x3c8211);return formatNumber(_0x3c8211);}function prettifyKey(_0x1faef5){return String(_0x1faef5)['replace'](/[_-]+/g,'\x20')['replace'](/\b\w/g,_0x5f5160=>_0x5f5160['toUpperCase']());}
@@ -1 +1 @@
1
- export function parseEventsToActivities(_0x5b5acb){const _0x3679f6=[];let _0x1fdc1f=null,_0x318c42=null,_0x3b7004=null,_0x2633d8=null;return _0x5b5acb['forEach'](_0x485f06=>{if(_0x485f06['type']==='assistant'&&_0x485f06['message']?.['content'])_0x485f06['message']['content']['forEach']((_0x2c45a9,_0x127f42)=>{if(_0x2c45a9['type']==='text'){const _0x3d04d6=_0x2c45a9['id']||_0x485f06['message']['id']+'-'+_0x485f06['timestamp']+'-'+_0x127f42,_0xd41719=_0x485f06['message']['stop_reason']==='end_turn';_0x3679f6['push']({'icon':_0xd41719?'🤖':'💭','action':_0xd41719?'Response':'Thinking','detail':truncate(_0x2c45a9['text'],0x64),'status':'success','id':_0x3d04d6,'fullContent':_0x2c45a9['text'],'expandable':!![],'isAgentResponse':_0xd41719,'timestamp':_0x485f06['timestamp'],'rawData':{'event':_0x485f06,'block':_0x2c45a9}});}else{if(_0x2c45a9['type']==='tool_use'){const _0x51b7d8=_0x2c45a9['name']==='TodoWrite'||_0x2c45a9['name']==='AskUserQuestion'||_0x2c45a9['name']==='ExitPlanMode';_0x3679f6['push']({'icon':getToolIcon(_0x2c45a9['name']),'action':_0x2c45a9['name'],'detail':formatToolInputCompact(_0x2c45a9['name'],_0x2c45a9['input']),'status':'running','id':_0x2c45a9['id'],'fullContent':_0x51b7d8?_0x2c45a9['input']:null,'expandable':_0x51b7d8,'toolInput':_0x2c45a9['input'],'timestamp':_0x485f06['timestamp'],'rawData':{'event':_0x485f06,'block':_0x2c45a9}});}}});else{if(_0x485f06['type']==='user'&&_0x485f06['message']?.['content'])_0x485f06['message']['content']['forEach'](_0x263637=>{if(_0x263637['type']==='tool_result'){const _0x4306a0=_0x3679f6['find'](_0x306057=>_0x306057['id']===_0x263637['tool_use_id']);_0x4306a0&&(_0x4306a0['status']=_0x263637['is_error']?'error':'success',shouldBeExpandable(_0x4306a0['action'])&&(_0x4306a0['fullContent']=formatToolResult(_0x4306a0['action'],_0x263637['content'],_0x4306a0['toolInput'],_0x263637['is_error'],_0x485f06['tool_use_result']),_0x4306a0['expandable']=!![]),_0x4306a0['rawData']=mergeRawData(_0x4306a0['rawData'],{'toolResultEvent':_0x485f06,'toolResult':_0x263637}));}});else{if(_0x485f06['type']==='turn.started')_0x2633d8=_0x3679f6['length'];else{if(_0x485f06['type']==='turn.completed')promoteCodexTurnThinkingToResponse(_0x3679f6,_0x2633d8),_0x2633d8=_0x3679f6['length'];else{if(_0x485f06['type']==='item.started'&&_0x485f06['item']){const _0xc4564=_0x485f06['item'];if(_0xc4564['type']==='command_execution'){const _0x281b69=_0xc4564['id']+'-'+_0x485f06['timestamp'];_0x3679f6['push']({'icon':'🖥️','action':'Bash','detail':truncate(_0xc4564['command']||'',0x64),'status':'running','id':_0x281b69,'codexItemId':_0xc4564['id'],'toolInput':{'command':_0xc4564['command']},'timestamp':_0x485f06['timestamp'],'rawData':{'event':_0x485f06}});}}else{if(_0x485f06['type']==='item.completed'&&_0x485f06['item']){const _0x25808e=_0x485f06['item'];if(_0x25808e['type']==='reasoning')_0x3679f6['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x25808e['text']||'',0x64),'status':'success','id':_0x25808e['id']+'-'+_0x485f06['timestamp'],'fullContent':_0x25808e['text'],'expandable':!![],'timestamp':_0x485f06['timestamp'],'rawData':{'event':_0x485f06}});else{if(_0x25808e['type']==='agent_message')_0x3679f6['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x25808e['text']||'',0x64),'status':'success','id':_0x25808e['id']+'-'+_0x485f06['timestamp'],'fullContent':_0x25808e['text'],'expandable':!![],'isAgentResponse':![],'isCodexAgentMessage':!![],'timestamp':_0x485f06['timestamp'],'rawData':{'event':_0x485f06}});else{if(_0x25808e['type']==='command_execution'){const _0x16b4d2=_0x3679f6['find'](_0x385dee=>_0x385dee['codexItemId']===_0x25808e['id'])||_0x3679f6['find'](_0x57354a=>_0x57354a['id']===_0x25808e['id']);if(_0x16b4d2){const _0x3e9a6d=_0x25808e['status']==='completed'&&_0x25808e['exit_code']===0x0;_0x16b4d2['status']=_0x3e9a6d?'success':'error',_0x16b4d2['fullContent']=formatCodexCommandResult(_0x25808e['command'],_0x25808e['stdout'],_0x25808e['stderr'],_0x25808e['exit_code'],_0x25808e['aggregated_output']),_0x16b4d2['expandable']=!![],_0x16b4d2['rawData']=mergeRawData(_0x16b4d2['rawData'],{'completionEvent':_0x485f06});}}}}}else{if(_0x485f06['type']==='init'&&_0x485f06['session_id'])_0x1fdc1f=null,_0x318c42=null,_0x3b7004=null;else{if(_0x485f06['type']==='message'&&_0x485f06['role']==='assistant'&&_0x485f06['content']){if(_0x485f06['delta'])!_0x1fdc1f?(_0x1fdc1f=_0x485f06['content'],_0x318c42='gemini-msg-'+_0x485f06['timestamp'],_0x3b7004=_0x485f06['timestamp']):_0x1fdc1f+=_0x485f06['content'];else{const _0x4c56f4=stripBobToolNotation(_0x485f06['content']);_0x4c56f4['trim']()&&_0x3679f6['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x4c56f4,0x64),'status':'success','id':'gemini-msg-'+_0x485f06['timestamp'],'fullContent':_0x4c56f4,'expandable':!![],'timestamp':_0x485f06['timestamp'],'rawData':{'event':_0x485f06}});}}else{if(_0x485f06['type']==='tool_use'&&_0x485f06['tool_name']){if(_0x1fdc1f){const _0x47f2a2=stripBobToolNotation(_0x1fdc1f);_0x47f2a2['trim']()&&_0x3679f6['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x47f2a2,0x64),'status':'success','id':_0x318c42,'fullContent':_0x47f2a2,'expandable':!![],'timestamp':_0x3b7004,'rawData':{'bufferedContent':_0x1fdc1f,'messageId':_0x318c42,'flushedBy':_0x485f06}}),_0x1fdc1f=null,_0x318c42=null,_0x3b7004=null;}const {icon:_0x6e6aec,action:_0x570f7f,detail:_0x5569b6}=mapGeminiTool(_0x485f06['tool_name'],_0x485f06['parameters']),_0x1c7d88=_0x485f06['tool_name']==='attempt_completion',_0x36936a=_0x570f7f==='TodoWrite';_0x3679f6['push']({'icon':_0x6e6aec,'action':_0x570f7f,'detail':_0x5569b6,'status':_0x1c7d88?'success':'running','id':_0x485f06['tool_id'],'toolInput':_0x485f06['parameters'],'fullContent':_0x1c7d88?_0x485f06['parameters']?.['result']||'':_0x36936a?normalizeTodoContent(_0x485f06['parameters']):undefined,'expandable':_0x1c7d88||_0x36936a,'isAgentResponse':_0x1c7d88,'timestamp':_0x485f06['timestamp'],'rawData':{'event':_0x485f06}});}else{if(_0x485f06['type']==='tool_result'&&_0x485f06['tool_id']){const _0x20f6d6=_0x3679f6['find'](_0x1d639e=>_0x1d639e['id']===_0x485f06['tool_id']);if(_0x20f6d6){const _0x3c348f=_0x485f06['status']==='success';_0x20f6d6['status']=_0x3c348f?'success':'error';if(shouldBeExpandable(_0x20f6d6['action'])){const _0x56f135=_0x485f06['output']||_0x485f06['content']||_0x485f06['result']||_0x485f06['stdout']||'',_0x27a19d=_0x485f06['error']?.['message']||'',_0x416ea4=_0x3c348f?_0x56f135:'Error:\x20'+_0x27a19d+'\x0a'+_0x56f135;_0x20f6d6['fullContent']=formatToolResult(_0x20f6d6['action'],_0x416ea4,_0x20f6d6['toolInput'],!_0x3c348f),_0x20f6d6['expandable']=!![];}_0x20f6d6['rawData']=mergeRawData(_0x20f6d6['rawData'],{'toolResultEvent':_0x485f06});}}else _0x485f06['type']==='result'&&_0x485f06['stats']&&(_0x1fdc1f&&(_0x3679f6['push']({'icon':'🤖','action':'Response','detail':truncate(_0x1fdc1f,0x64),'status':'success','id':_0x318c42||'gemini-msg-final','fullContent':_0x1fdc1f,'expandable':!![],'isAgentResponse':!![],'timestamp':_0x3b7004,'rawData':{'bufferedContent':_0x1fdc1f,'messageId':_0x318c42||'gemini-msg-final','resultEvent':_0x485f06}}),_0x1fdc1f=null,_0x318c42=null,_0x3b7004=null));}}}}}}}}}}),_0x3679f6;}function mapGeminiTool(_0x59a6e1,_0x3d1386){let _0x4239f0='🔧',_0x56a4f5=_0x59a6e1,_0x2083ef='';if(_0x59a6e1==='bash'||_0x59a6e1==='run_shell_command'||_0x59a6e1==='execute_command')_0x4239f0='🖥️',_0x56a4f5='Bash',_0x2083ef=truncate(_0x3d1386?.['command']||'',0x64);else{if(_0x59a6e1==='read_file'||_0x59a6e1==='read_many_files')_0x4239f0='📖',_0x56a4f5='Read',_0x2083ef=_0x3d1386?.['path']||_0x3d1386?.['file_path']||(Array['isArray'](_0x3d1386?.['paths'])?_0x3d1386['paths']['join'](',\x20'):'')||'';else{if(_0x59a6e1==='write_file'||_0x59a6e1==='write_to_file')_0x4239f0='✍️',_0x56a4f5='Write',_0x2083ef=_0x3d1386?.['path']||_0x3d1386?.['file_path']||'';else{if(_0x59a6e1==='edit_file'||_0x59a6e1==='replace'||_0x59a6e1==='search_and_replace')_0x4239f0='✏️',_0x56a4f5='Edit',_0x2083ef=_0x3d1386?.['path']||_0x3d1386?.['file_path']||'';else{if(_0x59a6e1==='search_file_content')_0x4239f0='🔎',_0x56a4f5='Grep',_0x2083ef='\x22'+(_0x3d1386?.['pattern']||_0x3d1386?.['query']||'')+'\x22';else{if(_0x59a6e1==='write_todos'||_0x59a6e1==='update_todo_list')_0x4239f0='<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>',_0x56a4f5='TodoWrite',_0x2083ef=formatTodoWriteInput(normalizeTodoContent(_0x3d1386)||{});else{if(_0x59a6e1==='apply_diff'||_0x59a6e1==='insert_content')_0x4239f0='✏️',_0x56a4f5='Edit',_0x2083ef=_0x3d1386?.['file_path']||_0x3d1386?.['path']||'';else{if(_0x59a6e1==='attempt_completion')_0x4239f0='🤖',_0x56a4f5='Response',_0x2083ef=truncate(_0x3d1386?.['result']||'',0x64);else{if(_0x59a6e1==='list_directory'||_0x59a6e1==='list_dir'||_0x59a6e1==='list_files')_0x4239f0='🔍',_0x56a4f5='Glob',_0x2083ef=_0x3d1386?.['path']||_0x3d1386?.['directory']||'';else{if(_0x59a6e1==='search_files'||_0x59a6e1==='grep_search')_0x4239f0='🔎',_0x56a4f5='Grep',_0x2083ef='\x22'+(_0x3d1386?.['pattern']||_0x3d1386?.['query']||_0x3d1386?.['regex']||'')+'\x22';else{if(_0x59a6e1==='web_fetch')_0x4239f0='🌐',_0x56a4f5='WebFetch',_0x2083ef=_0x3d1386?.['url']||'';else{if(_0x59a6e1==='ask_followup_question')_0x4239f0='❓',_0x56a4f5='AskUserQuestion',_0x2083ef=truncate(_0x3d1386?.['question']||'',0x64);else{if(_0x59a6e1==='google_web_search')_0x4239f0='🔍',_0x56a4f5='WebSearch',_0x2083ef=truncate(_0x3d1386?.['query']||'',0x64);else _0x59a6e1==='save_memory'?(_0x4239f0='💾',_0x56a4f5='SaveMemory',_0x2083ef=truncate(_0x3d1386?.['key']||_0x3d1386?.['content']||'',0x64)):_0x2083ef=truncate(JSON['stringify'](_0x3d1386),0x50);}}}}}}}}}}}}return{'icon':_0x4239f0,'action':_0x56a4f5,'detail':_0x2083ef};}function getToolIcon(_0x2e39d0){const _0x3df33c={'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 _0x3df33c[_0x2e39d0]||'🔧';}function formatToolInputCompact(_0x926ea9,_0x3014b6){if(!_0x3014b6)return'';switch(_0x926ea9){case'Read':return _0x3014b6['path']||_0x3014b6['file_path']||'';case'Write':case'Edit':const _0xdfb467=_0x3014b6['path']||_0x3014b6['file_path']||'',_0x23c8b7=_0x3014b6['content']?.['length']||_0x3014b6['new_string']?.['length']||0x0;return''+_0xdfb467+(_0x23c8b7>0x0?'\x20('+_0x23c8b7+'\x20chars)':'');case'Bash':return truncate(_0x3014b6['command']||'',0x50);case'Glob':return _0x3014b6['pattern']||'';case'Grep':return'\x22'+(_0x3014b6['pattern']||'')+'\x22';case'TodoWrite':return formatTodoWriteInput(_0x3014b6);case'AskUserQuestion':return formatAskUserQuestionCompact(_0x3014b6);case'Agent':return _0x3014b6['description']||truncate(_0x3014b6['prompt']||'',0x50);case'ToolSearch':return _0x3014b6['query']||'';case'EnterPlanMode':return'Entering\x20plan\x20mode';case'ExitPlanMode':{const _0x560f55=_0x3014b6['plan']||'',_0x144fdf=_0x560f55['match'](/^#\s+(.+)/m);return _0x144fdf?truncate(_0x144fdf[0x1],0x3c):'Plan\x20complete';}default:return truncate(JSON['stringify'](_0x3014b6),0x50);}}function parseTodoMarkdown(_0x4830f9){if(typeof _0x4830f9!=='string')return null;const _0x2808ff=_0x4830f9['split']('\x0a')['map'](_0x2e54fe=>_0x2e54fe['trim']())['filter'](_0x2424ca=>/^\[[ x\-]\]/i['test'](_0x2424ca));if(_0x2808ff['length']===0x0)return null;return _0x2808ff['map'](_0x34980d=>{const _0x2536ee=_0x34980d['match'](/^\[(.)\]/)?.[0x1]||'\x20',_0xe62494=_0x34980d['replace'](/^\[.\]\s*/,'')['trim']();let _0x41ceb7='pending';if(_0x2536ee['toLowerCase']()==='x')_0x41ceb7='completed';else{if(_0x2536ee==='-')_0x41ceb7='in_progress';}return{'description':_0xe62494,'status':_0x41ceb7};});}function normalizeTodoContent(_0x5b5cf3){if(!_0x5b5cf3)return _0x5b5cf3;if(Array['isArray'](_0x5b5cf3['todos']))return _0x5b5cf3;if(typeof _0x5b5cf3['todos']==='string'){const _0x393a9f=parseTodoMarkdown(_0x5b5cf3['todos']);if(_0x393a9f)return{..._0x5b5cf3,'todos':_0x393a9f};}return _0x5b5cf3;}function formatTodoWriteInput(_0x482588){if(!_0x482588['todos']||!Array['isArray'](_0x482588['todos']))return truncate(JSON['stringify'](_0x482588),0x32);const _0x17d7e1=_0x482588['todos'],_0x4d1b6a={'pending':'○','in_progress':'◐','completed':'●'},_0x88703c=_0x17d7e1['slice'](0x0,0x3)['map'](_0x238eea=>{const _0x243548=_0x4d1b6a[_0x238eea['status']]||'○',_0x452386=truncate(_0x238eea['content']||_0x238eea['description']||'No\x20description\x20provided',0x28);return _0x243548+'\x20'+_0x452386;})['join'](',\x20'),_0x53206e=_0x17d7e1['length']-0x3,_0x418cc2=_0x53206e>0x0?',\x20+'+_0x53206e+'\x20more':'';return _0x88703c+_0x418cc2;}function stripBobToolNotation(_0x22bb35){if(!_0x22bb35)return'';return _0x22bb35['replace'](/\[using tool \w+:[^\]]*\]\n?/g,'')['trim']();}function shouldBeExpandable(_0x3adad0){const _0x406410=['Bash','Read','Write','Edit','Grep','Glob','WebFetch','WebSearch','NotebookEdit','Agent','Skill','Task','AskUserQuestion','ExitPlanMode','SaveMemory','TodoWrite'];return _0x406410['includes'](_0x3adad0);}function formatAskUserQuestionCompact(_0xf86d02){if(!_0xf86d02?.['questions']||!Array['isArray'](_0xf86d02['questions'])||_0xf86d02['questions']['length']===0x0){if(_0xf86d02?.['question'])return truncate(_0xf86d02['question'],0x50);return truncate(JSON['stringify'](_0xf86d02),0x50);}const _0x1545d9=_0xf86d02['questions'][0x0],_0x146150=_0x1545d9['question']||_0x1545d9['header']||'',_0x1447d4=_0xf86d02['questions']['length']>0x1?'\x20(+'+(_0xf86d02['questions']['length']-0x1)+'\x20more)':'';return truncate(_0x146150,0x46)+_0x1447d4;}function formatToolResult(_0x4973f3,_0x257512,_0x3b17b2,_0x14d1cf,_0x22fcb9){if(_0x14d1cf){if(_0x4973f3==='ExitPlanMode')return{'toolName':'ExitPlanMode','plan':_0x3b17b2?.['plan']||'','error':!![],'content':typeof _0x257512==='string'?_0x257512:JSON['stringify'](_0x257512,null,0x2)};if(_0x4973f3==='AskUserQuestion')return{'toolName':'AskUserQuestion','questions':_0x3b17b2?.['questions']||(_0x3b17b2?.['question']?[_0x3b17b2]:[]),'error':!![],'denied':!![],'content':typeof _0x257512==='string'?_0x257512:JSON['stringify'](_0x257512,null,0x2)};return{'toolName':_0x4973f3,'toolInput':_0x3b17b2,'error':!![],'content':typeof _0x257512==='string'?_0x257512:JSON['stringify'](_0x257512,null,0x2)};}switch(_0x4973f3){case'Bash':return{'toolName':'Bash','command':_0x3b17b2?.['command']||'','output':typeof _0x257512==='string'?_0x257512:_0x257512?JSON['stringify'](_0x257512,null,0x2):''};case'Read':return{'toolName':'Read','filePath':_0x3b17b2?.['path']||_0x3b17b2?.['file_path']||'','content':typeof _0x257512==='string'?_0x257512:_0x257512?JSON['stringify'](_0x257512,null,0x2):''};case'Write':return{'toolName':'Write','filePath':_0x3b17b2?.['path']||_0x3b17b2?.['file_path']||'','content':_0x3b17b2?.['content']||'','result':typeof _0x257512==='string'?_0x257512:'File\x20written\x20successfully'};case'Edit':const _0x1cd4dc=_0x22fcb9?.['structuredPatch']?.[0x0]?.['oldStart']||null;return{'toolName':'Edit','filePath':_0x3b17b2?.['path']||_0x3b17b2?.['file_path']||'','oldString':_0x3b17b2?.['old_string']||'','newString':_0x3b17b2?.['new_string']||'','replaceAll':_0x3b17b2?.['replace_all']||![],'startLine':_0x1cd4dc,'result':typeof _0x257512==='string'?_0x257512:'File\x20edited\x20successfully'};case'Grep':return{'toolName':'Grep','pattern':_0x3b17b2?.['pattern']||'','path':_0x3b17b2?.['path']||'','outputMode':_0x3b17b2?.['output_mode']||'files_with_matches','content':typeof _0x257512==='string'?_0x257512:_0x257512?JSON['stringify'](_0x257512,null,0x2):''};case'Glob':return{'toolName':'Glob','pattern':_0x3b17b2?.['pattern']||'','path':_0x3b17b2?.['path']||'','content':typeof _0x257512==='string'?_0x257512:_0x257512?JSON['stringify'](_0x257512,null,0x2):''};case'WebFetch':return{'toolName':'WebFetch','url':_0x3b17b2?.['url']||'','prompt':_0x3b17b2?.['prompt']||'','content':typeof _0x257512==='string'?_0x257512:_0x257512?JSON['stringify'](_0x257512,null,0x2):''};case'WebSearch':return{'toolName':'WebSearch','query':_0x3b17b2?.['query']||'','content':typeof _0x257512==='string'?_0x257512:_0x257512?JSON['stringify'](_0x257512,null,0x2):''};case'NotebookEdit':return{'toolName':'NotebookEdit','notebookPath':_0x3b17b2?.['notebook_path']||'','cellId':_0x3b17b2?.['cell_id']||'','newSource':_0x3b17b2?.['new_source']||'','result':typeof _0x257512==='string'?_0x257512:'Notebook\x20cell\x20edited\x20successfully'};case'Agent':return{'toolName':'Agent','description':_0x3b17b2?.['description']||'','subagentType':_0x3b17b2?.['subagent_type']||'','model':_0x3b17b2?.['model']||'','prompt':_0x3b17b2?.['prompt']||'','content':typeof _0x257512==='string'?_0x257512:_0x257512?JSON['stringify'](_0x257512,null,0x2):''};case'Skill':return{'toolName':'Skill','toolInput':_0x3b17b2,'skill':_0x3b17b2?.['skill']||'','content':typeof _0x257512==='string'?_0x257512:_0x257512?JSON['stringify'](_0x257512,null,0x2):''};case'Task':return{'toolName':'Task','description':_0x3b17b2?.['description']||'','subagentType':_0x3b17b2?.['subagent_type']||'','prompt':_0x3b17b2?.['prompt']||'','content':typeof _0x257512==='string'?_0x257512:_0x257512?JSON['stringify'](_0x257512,null,0x2):''};case'AskUserQuestion':return{'toolName':'AskUserQuestion','questions':_0x3b17b2?.['questions']||(_0x3b17b2?.['question']?[_0x3b17b2]:[]),'answer':typeof _0x257512==='string'?_0x257512:_0x257512?JSON['stringify'](_0x257512,null,0x2):''};case'ExitPlanMode':return{'toolName':'ExitPlanMode','plan':_0x3b17b2?.['plan']||'','result':typeof _0x257512==='string'?_0x257512:''};case'SaveMemory':return{'toolName':'SaveMemory','key':_0x3b17b2?.['key']||'','content':typeof _0x257512==='string'?_0x257512:_0x257512?JSON['stringify'](_0x257512,null,0x2):''};default:return{'toolName':_0x4973f3,'toolInput':_0x3b17b2,'content':typeof _0x257512==='string'?_0x257512:_0x257512?JSON['stringify'](_0x257512,null,0x2):''};}}function formatCodexCommandResult(_0x36d29d,_0x1471ce,_0x376729,_0x416650,_0x9521b6){return{'toolName':'Bash','command':_0x36d29d||'','stdout':_0x1471ce||'','stderr':_0x376729||'','exitCode':_0x416650,'aggregated_output':_0x9521b6||''};}function promoteCodexTurnThinkingToResponse(_0x5a0cc4,_0x58fb3a=null){const _0x30af7a=Number['isInteger'](_0x58fb3a)&&_0x58fb3a>=0x0?_0x58fb3a:0x0;for(let _0x1425e5=_0x5a0cc4['length']-0x1;_0x1425e5>=_0x30af7a;_0x1425e5--){const _0x84185c=_0x5a0cc4[_0x1425e5];if(!_0x84185c?.['isCodexAgentMessage'])continue;if(_0x84185c['action']==='Response'||_0x84185c['isAgentResponse'])return;if(_0x84185c['action']==='Thinking'){_0x84185c['action']='Response',_0x84185c['icon']='🤖',_0x84185c['isAgentResponse']=!![];return;}}}function mergeRawData(_0x556332,_0x184cd8){if(!_0x184cd8)return _0x556332||null;const _0x21b1c6=typeof _0x184cd8==='object'&&_0x184cd8!==null?_0x184cd8:{'value':_0x184cd8};if(!_0x556332)return _0x21b1c6;if(typeof _0x556332==='object'&&_0x556332!==null&&!Array['isArray'](_0x556332))return{..._0x556332,..._0x21b1c6};return{'initial':_0x556332,..._0x21b1c6};}function truncate(_0x437426,_0x3e7584){if(!_0x437426||_0x437426['length']<=_0x3e7584)return _0x437426||'';return _0x437426['substring'](0x0,_0x3e7584)+'...';}export function calculateEventStats(_0x3fcd86){const _0x55a50d={'total':_0x3fcd86['length'],'toolUses':0x0,'toolResults':0x0,'thinking':0x0,'messages':0x0};return _0x3fcd86['forEach'](_0x1bcd3a=>{if(_0x1bcd3a['type']==='assistant'&&_0x1bcd3a['message']?.['content'])_0x1bcd3a['message']['content']['forEach'](_0x3c4b55=>{if(_0x3c4b55['type']==='tool_use')_0x55a50d['toolUses']++;else _0x3c4b55['type']==='text'&&_0x55a50d['thinking']++;});else{if(_0x1bcd3a['type']==='user'&&_0x1bcd3a['message']?.['content'])_0x1bcd3a['message']['content']['forEach'](_0x54cbed=>{_0x54cbed['type']==='tool_result'&&_0x55a50d['toolResults']++;});else{if((_0x1bcd3a['type']==='item.completed'||_0x1bcd3a['type']==='item.started')&&_0x1bcd3a['item']){if(_0x1bcd3a['item']['type']==='command_execution')_0x55a50d['toolUses']++,_0x1bcd3a['type']==='item.completed'&&_0x1bcd3a['item']['status']==='completed'&&_0x55a50d['toolResults']++;else{if(_0x1bcd3a['item']['type']==='reasoning')_0x55a50d['thinking']++;else _0x1bcd3a['item']['type']==='agent_message'&&_0x55a50d['messages']++;}}else{if(_0x1bcd3a['type']==='message'&&_0x1bcd3a['role']==='assistant'&&_0x1bcd3a['content'])_0x55a50d['thinking']++;else{if(_0x1bcd3a['type']==='tool_use'&&_0x1bcd3a['tool_name'])_0x55a50d['toolUses']++;else _0x1bcd3a['type']==='tool_result'&&_0x1bcd3a['tool_id']&&_0x55a50d['toolResults']++;}}}}}),_0x55a50d;}
1
+ export function parseEventsToActivities(_0x4f77ad){const _0x3317e9=[];let _0x57120b=null,_0x229c0a=null,_0x3abd83=null,_0x4e300f=null;return _0x4f77ad['forEach'](_0x277230=>{if(_0x277230['type']==='assistant'&&_0x277230['message']?.['content'])_0x277230['message']['content']['forEach']((_0x59d176,_0x36cd9e)=>{if(_0x59d176['type']==='text'){const _0xf461be=_0x59d176['id']||_0x277230['message']['id']+'-'+_0x277230['timestamp']+'-'+_0x36cd9e,_0xf924a=_0x277230['message']['stop_reason']==='end_turn';_0x3317e9['push']({'icon':_0xf924a?'🤖':'💭','action':_0xf924a?'Response':'Thinking','detail':truncate(_0x59d176['text'],0x64),'status':'success','id':_0xf461be,'fullContent':_0x59d176['text'],'expandable':!![],'isAgentResponse':_0xf924a,'timestamp':_0x277230['timestamp'],'rawData':{'event':_0x277230,'block':_0x59d176}});}else{if(_0x59d176['type']==='tool_use'){const _0x2e5ac4=_0x59d176['name']==='TodoWrite'||_0x59d176['name']==='AskUserQuestion'||_0x59d176['name']==='ExitPlanMode';_0x3317e9['push']({'icon':getToolIcon(_0x59d176['name']),'action':_0x59d176['name'],'detail':formatToolInputCompact(_0x59d176['name'],_0x59d176['input']),'status':'running','id':_0x59d176['id'],'fullContent':_0x2e5ac4?_0x59d176['input']:null,'expandable':_0x2e5ac4,'toolInput':_0x59d176['input'],'timestamp':_0x277230['timestamp'],'rawData':{'event':_0x277230,'block':_0x59d176}});}}});else{if(_0x277230['type']==='user'&&_0x277230['message']?.['content'])_0x277230['message']['content']['forEach'](_0x3e7fad=>{if(_0x3e7fad['type']==='tool_result'){const _0x53df49=_0x3317e9['find'](_0x5ca0a2=>_0x5ca0a2['id']===_0x3e7fad['tool_use_id']);_0x53df49&&(_0x53df49['status']=_0x3e7fad['is_error']?'error':'success',shouldBeExpandable(_0x53df49['action'])&&(_0x53df49['fullContent']=formatToolResult(_0x53df49['action'],_0x3e7fad['content'],_0x53df49['toolInput'],_0x3e7fad['is_error'],_0x277230['tool_use_result']),_0x53df49['expandable']=!![]),_0x53df49['rawData']=mergeRawData(_0x53df49['rawData'],{'toolResultEvent':_0x277230,'toolResult':_0x3e7fad}));}});else{if(_0x277230['type']==='turn.started')_0x4e300f=_0x3317e9['length'];else{if(_0x277230['type']==='turn.completed')promoteCodexTurnThinkingToResponse(_0x3317e9,_0x4e300f),_0x4e300f=_0x3317e9['length'];else{if(_0x277230['type']==='item.started'&&_0x277230['item']){const _0x64aa70=_0x277230['item'];if(_0x64aa70['type']==='command_execution'){const _0x372068=_0x64aa70['id']+'-'+_0x277230['timestamp'];_0x3317e9['push']({'icon':'🖥️','action':'Bash','detail':truncate(_0x64aa70['command']||'',0x64),'status':'running','id':_0x372068,'codexItemId':_0x64aa70['id'],'toolInput':{'command':_0x64aa70['command']},'timestamp':_0x277230['timestamp'],'rawData':{'event':_0x277230}});}}else{if(_0x277230['type']==='item.completed'&&_0x277230['item']){const _0x337e89=_0x277230['item'];if(_0x337e89['type']==='reasoning')_0x3317e9['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x337e89['text']||'',0x64),'status':'success','id':_0x337e89['id']+'-'+_0x277230['timestamp'],'fullContent':_0x337e89['text'],'expandable':!![],'timestamp':_0x277230['timestamp'],'rawData':{'event':_0x277230}});else{if(_0x337e89['type']==='agent_message')_0x3317e9['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x337e89['text']||'',0x64),'status':'success','id':_0x337e89['id']+'-'+_0x277230['timestamp'],'fullContent':_0x337e89['text'],'expandable':!![],'isAgentResponse':![],'isCodexAgentMessage':!![],'timestamp':_0x277230['timestamp'],'rawData':{'event':_0x277230}});else{if(_0x337e89['type']==='command_execution'){const _0x30c4a0=_0x3317e9['find'](_0x4134ee=>_0x4134ee['codexItemId']===_0x337e89['id'])||_0x3317e9['find'](_0x444b06=>_0x444b06['id']===_0x337e89['id']);if(_0x30c4a0){const _0x5c194c=_0x337e89['status']==='completed'&&_0x337e89['exit_code']===0x0;_0x30c4a0['status']=_0x5c194c?'success':'error',_0x30c4a0['fullContent']=formatCodexCommandResult(_0x337e89['command'],_0x337e89['stdout'],_0x337e89['stderr'],_0x337e89['exit_code'],_0x337e89['aggregated_output']),_0x30c4a0['expandable']=!![],_0x30c4a0['rawData']=mergeRawData(_0x30c4a0['rawData'],{'completionEvent':_0x277230});}}}}}else{if(_0x277230['type']==='init'&&_0x277230['session_id'])_0x57120b=null,_0x229c0a=null,_0x3abd83=null;else{if(_0x277230['type']==='message'&&_0x277230['role']==='assistant'&&_0x277230['content']){if(_0x277230['delta'])!_0x57120b?(_0x57120b=_0x277230['content'],_0x229c0a='gemini-msg-'+_0x277230['timestamp'],_0x3abd83=_0x277230['timestamp']):_0x57120b+=_0x277230['content'];else{const _0x9f6008=stripBobToolNotation(_0x277230['content']);_0x9f6008['trim']()&&_0x3317e9['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x9f6008,0x64),'status':'success','id':'gemini-msg-'+_0x277230['timestamp'],'fullContent':_0x9f6008,'expandable':!![],'timestamp':_0x277230['timestamp'],'rawData':{'event':_0x277230}});}}else{if(_0x277230['type']==='tool_use'&&_0x277230['tool_name']){if(_0x57120b){const _0x2f8c68=stripBobToolNotation(_0x57120b);_0x2f8c68['trim']()&&_0x3317e9['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x2f8c68,0x64),'status':'success','id':_0x229c0a,'fullContent':_0x2f8c68,'expandable':!![],'timestamp':_0x3abd83,'rawData':{'bufferedContent':_0x57120b,'messageId':_0x229c0a,'flushedBy':_0x277230}}),_0x57120b=null,_0x229c0a=null,_0x3abd83=null;}const {icon:_0x2752e7,action:_0xb46bf9,detail:_0x1dfb4d}=mapGeminiTool(_0x277230['tool_name'],_0x277230['parameters']),_0x40e77f=_0x277230['tool_name']==='attempt_completion',_0x1d651e=_0xb46bf9==='TodoWrite';_0x3317e9['push']({'icon':_0x2752e7,'action':_0xb46bf9,'detail':_0x1dfb4d,'status':_0x40e77f?'success':'running','id':_0x277230['tool_id'],'toolInput':_0x277230['parameters'],'fullContent':_0x40e77f?_0x277230['parameters']?.['result']||'':_0x1d651e?normalizeTodoContent(_0x277230['parameters']):undefined,'expandable':_0x40e77f||_0x1d651e,'isAgentResponse':_0x40e77f,'timestamp':_0x277230['timestamp'],'rawData':{'event':_0x277230}});}else{if(_0x277230['type']==='tool_result'&&_0x277230['tool_id']){const _0x3eafbc=_0x3317e9['find'](_0x4bd310=>_0x4bd310['id']===_0x277230['tool_id']);if(_0x3eafbc){const _0x1ecac7=_0x277230['status']==='success';_0x3eafbc['status']=_0x1ecac7?'success':'error';if(shouldBeExpandable(_0x3eafbc['action'])){const _0x407b1e=_0x277230['output']||_0x277230['content']||_0x277230['result']||_0x277230['stdout']||'',_0x4fd7ab=_0x277230['error']?.['message']||'',_0x296988=_0x1ecac7?_0x407b1e:'Error:\x20'+_0x4fd7ab+'\x0a'+_0x407b1e;_0x3eafbc['fullContent']=formatToolResult(_0x3eafbc['action'],_0x296988,_0x3eafbc['toolInput'],!_0x1ecac7),_0x3eafbc['expandable']=!![];}_0x3eafbc['rawData']=mergeRawData(_0x3eafbc['rawData'],{'toolResultEvent':_0x277230});}}else _0x277230['type']==='result'&&_0x277230['stats']&&(_0x57120b&&(_0x3317e9['push']({'icon':'🤖','action':'Response','detail':truncate(_0x57120b,0x64),'status':'success','id':_0x229c0a||'gemini-msg-final','fullContent':_0x57120b,'expandable':!![],'isAgentResponse':!![],'timestamp':_0x3abd83,'rawData':{'bufferedContent':_0x57120b,'messageId':_0x229c0a||'gemini-msg-final','resultEvent':_0x277230}}),_0x57120b=null,_0x229c0a=null,_0x3abd83=null));}}}}}}}}}}),_0x3317e9;}function mapGeminiTool(_0x32b87f,_0x5c349c){let _0xa72142='🔧',_0x41ee22=_0x32b87f,_0x5ea97b='';if(_0x32b87f==='bash'||_0x32b87f==='run_shell_command'||_0x32b87f==='execute_command')_0xa72142='🖥️',_0x41ee22='Bash',_0x5ea97b=truncate(_0x5c349c?.['command']||'',0x64);else{if(_0x32b87f==='read_file'||_0x32b87f==='read_many_files')_0xa72142='📖',_0x41ee22='Read',_0x5ea97b=_0x5c349c?.['path']||_0x5c349c?.['file_path']||(Array['isArray'](_0x5c349c?.['paths'])?_0x5c349c['paths']['join'](',\x20'):'')||'';else{if(_0x32b87f==='write_file'||_0x32b87f==='write_to_file')_0xa72142='✍️',_0x41ee22='Write',_0x5ea97b=_0x5c349c?.['path']||_0x5c349c?.['file_path']||'';else{if(_0x32b87f==='edit_file'||_0x32b87f==='replace'||_0x32b87f==='search_and_replace')_0xa72142='✏️',_0x41ee22='Edit',_0x5ea97b=_0x5c349c?.['path']||_0x5c349c?.['file_path']||'';else{if(_0x32b87f==='search_file_content')_0xa72142='🔎',_0x41ee22='Grep',_0x5ea97b='\x22'+(_0x5c349c?.['pattern']||_0x5c349c?.['query']||'')+'\x22';else{if(_0x32b87f==='write_todos'||_0x32b87f==='update_todo_list')_0xa72142='<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>',_0x41ee22='TodoWrite',_0x5ea97b=formatTodoWriteInput(normalizeTodoContent(_0x5c349c)||{});else{if(_0x32b87f==='apply_diff'||_0x32b87f==='insert_content')_0xa72142='✏️',_0x41ee22='Edit',_0x5ea97b=_0x5c349c?.['file_path']||_0x5c349c?.['path']||'';else{if(_0x32b87f==='attempt_completion')_0xa72142='🤖',_0x41ee22='Response',_0x5ea97b=truncate(_0x5c349c?.['result']||'',0x64);else{if(_0x32b87f==='list_directory'||_0x32b87f==='list_dir'||_0x32b87f==='list_files')_0xa72142='🔍',_0x41ee22='Glob',_0x5ea97b=_0x5c349c?.['path']||_0x5c349c?.['directory']||'';else{if(_0x32b87f==='search_files'||_0x32b87f==='grep_search')_0xa72142='🔎',_0x41ee22='Grep',_0x5ea97b='\x22'+(_0x5c349c?.['pattern']||_0x5c349c?.['query']||_0x5c349c?.['regex']||'')+'\x22';else{if(_0x32b87f==='web_fetch')_0xa72142='🌐',_0x41ee22='WebFetch',_0x5ea97b=_0x5c349c?.['url']||'';else{if(_0x32b87f==='ask_followup_question')_0xa72142='❓',_0x41ee22='AskUserQuestion',_0x5ea97b=truncate(_0x5c349c?.['question']||'',0x64);else{if(_0x32b87f==='google_web_search')_0xa72142='🔍',_0x41ee22='WebSearch',_0x5ea97b=truncate(_0x5c349c?.['query']||'',0x64);else _0x32b87f==='save_memory'?(_0xa72142='💾',_0x41ee22='SaveMemory',_0x5ea97b=truncate(_0x5c349c?.['key']||_0x5c349c?.['content']||'',0x64)):_0x5ea97b=truncate(JSON['stringify'](_0x5c349c),0x50);}}}}}}}}}}}}return{'icon':_0xa72142,'action':_0x41ee22,'detail':_0x5ea97b};}function getToolIcon(_0x2dc233){const _0x5a9401={'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 _0x5a9401[_0x2dc233]||'🔧';}function formatToolInputCompact(_0x2badff,_0x3a845b){if(!_0x3a845b)return'';switch(_0x2badff){case'Read':return _0x3a845b['path']||_0x3a845b['file_path']||'';case'Write':case'Edit':const _0x40f840=_0x3a845b['path']||_0x3a845b['file_path']||'',_0x5ad79a=_0x3a845b['content']?.['length']||_0x3a845b['new_string']?.['length']||0x0;return''+_0x40f840+(_0x5ad79a>0x0?'\x20('+_0x5ad79a+'\x20chars)':'');case'Bash':return truncate(_0x3a845b['command']||'',0x50);case'Glob':return _0x3a845b['pattern']||'';case'Grep':return'\x22'+(_0x3a845b['pattern']||'')+'\x22';case'TodoWrite':return formatTodoWriteInput(_0x3a845b);case'AskUserQuestion':return formatAskUserQuestionCompact(_0x3a845b);case'Agent':return _0x3a845b['description']||truncate(_0x3a845b['prompt']||'',0x50);case'ToolSearch':return _0x3a845b['query']||'';case'EnterPlanMode':return'Entering\x20plan\x20mode';case'ExitPlanMode':{const _0x5cc4d7=_0x3a845b['plan']||'',_0x579fb3=_0x5cc4d7['match'](/^#\s+(.+)/m);return _0x579fb3?truncate(_0x579fb3[0x1],0x3c):'Plan\x20complete';}default:return truncate(JSON['stringify'](_0x3a845b),0x50);}}function parseTodoMarkdown(_0x5c7ad0){if(typeof _0x5c7ad0!=='string')return null;const _0x458ff1=_0x5c7ad0['split']('\x0a')['map'](_0x2b16a9=>_0x2b16a9['trim']())['filter'](_0x610fed=>/^\[[ x\-]\]/i['test'](_0x610fed));if(_0x458ff1['length']===0x0)return null;return _0x458ff1['map'](_0x29ec75=>{const _0x3004dc=_0x29ec75['match'](/^\[(.)\]/)?.[0x1]||'\x20',_0x5d736c=_0x29ec75['replace'](/^\[.\]\s*/,'')['trim']();let _0x5bc063='pending';if(_0x3004dc['toLowerCase']()==='x')_0x5bc063='completed';else{if(_0x3004dc==='-')_0x5bc063='in_progress';}return{'description':_0x5d736c,'status':_0x5bc063};});}function normalizeTodoContent(_0x1e91fc){if(!_0x1e91fc)return _0x1e91fc;if(Array['isArray'](_0x1e91fc['todos']))return _0x1e91fc;if(typeof _0x1e91fc['todos']==='string'){const _0x200ee3=parseTodoMarkdown(_0x1e91fc['todos']);if(_0x200ee3)return{..._0x1e91fc,'todos':_0x200ee3};}return _0x1e91fc;}function formatTodoWriteInput(_0x110c4e){if(!_0x110c4e['todos']||!Array['isArray'](_0x110c4e['todos']))return truncate(JSON['stringify'](_0x110c4e),0x32);const _0x5ee8f2=_0x110c4e['todos'],_0x3612ed={'pending':'○','in_progress':'◐','completed':'●'},_0x25b083=_0x5ee8f2['slice'](0x0,0x3)['map'](_0x108d2e=>{const _0x285f53=_0x3612ed[_0x108d2e['status']]||'○',_0x1d6f6c=truncate(_0x108d2e['content']||_0x108d2e['description']||'No\x20description\x20provided',0x28);return _0x285f53+'\x20'+_0x1d6f6c;})['join'](',\x20'),_0x3b4646=_0x5ee8f2['length']-0x3,_0xcaf8aa=_0x3b4646>0x0?',\x20+'+_0x3b4646+'\x20more':'';return _0x25b083+_0xcaf8aa;}function stripBobToolNotation(_0xe07bb1){if(!_0xe07bb1)return'';return _0xe07bb1['replace'](/\[using tool \w+:[^\]]*\]\n?/g,'')['trim']();}function shouldBeExpandable(_0x23d0d6){const _0xba05b2=['Bash','Read','Write','Edit','Grep','Glob','WebFetch','WebSearch','NotebookEdit','Agent','Skill','Task','AskUserQuestion','ExitPlanMode','SaveMemory','TodoWrite'];return _0xba05b2['includes'](_0x23d0d6);}function formatAskUserQuestionCompact(_0x4fe6dd){if(!_0x4fe6dd?.['questions']||!Array['isArray'](_0x4fe6dd['questions'])||_0x4fe6dd['questions']['length']===0x0){if(_0x4fe6dd?.['question'])return truncate(_0x4fe6dd['question'],0x50);return truncate(JSON['stringify'](_0x4fe6dd),0x50);}const _0x2edc72=_0x4fe6dd['questions'][0x0],_0x3f397a=_0x2edc72['question']||_0x2edc72['header']||'',_0x1bda21=_0x4fe6dd['questions']['length']>0x1?'\x20(+'+(_0x4fe6dd['questions']['length']-0x1)+'\x20more)':'';return truncate(_0x3f397a,0x46)+_0x1bda21;}function formatToolResult(_0x530486,_0xac814d,_0x356387,_0x43bfca,_0xfaded1){if(_0x43bfca){if(_0x530486==='ExitPlanMode')return{'toolName':'ExitPlanMode','plan':_0x356387?.['plan']||'','error':!![],'content':typeof _0xac814d==='string'?_0xac814d:JSON['stringify'](_0xac814d,null,0x2)};if(_0x530486==='AskUserQuestion')return{'toolName':'AskUserQuestion','questions':_0x356387?.['questions']||(_0x356387?.['question']?[_0x356387]:[]),'error':!![],'denied':!![],'content':typeof _0xac814d==='string'?_0xac814d:JSON['stringify'](_0xac814d,null,0x2)};return{'toolName':_0x530486,'toolInput':_0x356387,'error':!![],'content':typeof _0xac814d==='string'?_0xac814d:JSON['stringify'](_0xac814d,null,0x2)};}switch(_0x530486){case'Bash':return{'toolName':'Bash','command':_0x356387?.['command']||'','output':typeof _0xac814d==='string'?_0xac814d:_0xac814d?JSON['stringify'](_0xac814d,null,0x2):''};case'Read':return{'toolName':'Read','filePath':_0x356387?.['path']||_0x356387?.['file_path']||'','content':typeof _0xac814d==='string'?_0xac814d:_0xac814d?JSON['stringify'](_0xac814d,null,0x2):''};case'Write':return{'toolName':'Write','filePath':_0x356387?.['path']||_0x356387?.['file_path']||'','content':_0x356387?.['content']||'','result':typeof _0xac814d==='string'?_0xac814d:'File\x20written\x20successfully'};case'Edit':const _0x3332c6=_0xfaded1?.['structuredPatch']?.[0x0]?.['oldStart']||null;return{'toolName':'Edit','filePath':_0x356387?.['path']||_0x356387?.['file_path']||'','oldString':_0x356387?.['old_string']||'','newString':_0x356387?.['new_string']||'','replaceAll':_0x356387?.['replace_all']||![],'startLine':_0x3332c6,'result':typeof _0xac814d==='string'?_0xac814d:'File\x20edited\x20successfully'};case'Grep':return{'toolName':'Grep','pattern':_0x356387?.['pattern']||'','path':_0x356387?.['path']||'','outputMode':_0x356387?.['output_mode']||'files_with_matches','content':typeof _0xac814d==='string'?_0xac814d:_0xac814d?JSON['stringify'](_0xac814d,null,0x2):''};case'Glob':return{'toolName':'Glob','pattern':_0x356387?.['pattern']||'','path':_0x356387?.['path']||'','content':typeof _0xac814d==='string'?_0xac814d:_0xac814d?JSON['stringify'](_0xac814d,null,0x2):''};case'WebFetch':return{'toolName':'WebFetch','url':_0x356387?.['url']||'','prompt':_0x356387?.['prompt']||'','content':typeof _0xac814d==='string'?_0xac814d:_0xac814d?JSON['stringify'](_0xac814d,null,0x2):''};case'WebSearch':return{'toolName':'WebSearch','query':_0x356387?.['query']||'','content':typeof _0xac814d==='string'?_0xac814d:_0xac814d?JSON['stringify'](_0xac814d,null,0x2):''};case'NotebookEdit':return{'toolName':'NotebookEdit','notebookPath':_0x356387?.['notebook_path']||'','cellId':_0x356387?.['cell_id']||'','newSource':_0x356387?.['new_source']||'','result':typeof _0xac814d==='string'?_0xac814d:'Notebook\x20cell\x20edited\x20successfully'};case'Agent':return{'toolName':'Agent','description':_0x356387?.['description']||'','subagentType':_0x356387?.['subagent_type']||'','model':_0x356387?.['model']||'','prompt':_0x356387?.['prompt']||'','content':typeof _0xac814d==='string'?_0xac814d:_0xac814d?JSON['stringify'](_0xac814d,null,0x2):''};case'Skill':return{'toolName':'Skill','toolInput':_0x356387,'skill':_0x356387?.['skill']||'','content':typeof _0xac814d==='string'?_0xac814d:_0xac814d?JSON['stringify'](_0xac814d,null,0x2):''};case'Task':return{'toolName':'Task','description':_0x356387?.['description']||'','subagentType':_0x356387?.['subagent_type']||'','prompt':_0x356387?.['prompt']||'','content':typeof _0xac814d==='string'?_0xac814d:_0xac814d?JSON['stringify'](_0xac814d,null,0x2):''};case'AskUserQuestion':return{'toolName':'AskUserQuestion','questions':_0x356387?.['questions']||(_0x356387?.['question']?[_0x356387]:[]),'answer':typeof _0xac814d==='string'?_0xac814d:_0xac814d?JSON['stringify'](_0xac814d,null,0x2):''};case'ExitPlanMode':return{'toolName':'ExitPlanMode','plan':_0x356387?.['plan']||'','result':typeof _0xac814d==='string'?_0xac814d:''};case'SaveMemory':return{'toolName':'SaveMemory','key':_0x356387?.['key']||'','content':typeof _0xac814d==='string'?_0xac814d:_0xac814d?JSON['stringify'](_0xac814d,null,0x2):''};default:return{'toolName':_0x530486,'toolInput':_0x356387,'content':typeof _0xac814d==='string'?_0xac814d:_0xac814d?JSON['stringify'](_0xac814d,null,0x2):''};}}function formatCodexCommandResult(_0x101e58,_0x496140,_0x391535,_0x28a7c1,_0x496d2c){return{'toolName':'Bash','command':_0x101e58||'','stdout':_0x496140||'','stderr':_0x391535||'','exitCode':_0x28a7c1,'aggregated_output':_0x496d2c||''};}function promoteCodexTurnThinkingToResponse(_0x3e04ec,_0xde0fb6=null){const _0x6725a3=Number['isInteger'](_0xde0fb6)&&_0xde0fb6>=0x0?_0xde0fb6:0x0;for(let _0x39366a=_0x3e04ec['length']-0x1;_0x39366a>=_0x6725a3;_0x39366a--){const _0x2bda3f=_0x3e04ec[_0x39366a];if(!_0x2bda3f?.['isCodexAgentMessage'])continue;if(_0x2bda3f['action']==='Response'||_0x2bda3f['isAgentResponse'])return;if(_0x2bda3f['action']==='Thinking'){_0x2bda3f['action']='Response',_0x2bda3f['icon']='🤖',_0x2bda3f['isAgentResponse']=!![];return;}}}function mergeRawData(_0xa67978,_0x16e916){if(!_0x16e916)return _0xa67978||null;const _0x4b53f1=typeof _0x16e916==='object'&&_0x16e916!==null?_0x16e916:{'value':_0x16e916};if(!_0xa67978)return _0x4b53f1;if(typeof _0xa67978==='object'&&_0xa67978!==null&&!Array['isArray'](_0xa67978))return{..._0xa67978,..._0x4b53f1};return{'initial':_0xa67978,..._0x4b53f1};}function truncate(_0x3df591,_0x30c5f2){if(!_0x3df591||_0x3df591['length']<=_0x30c5f2)return _0x3df591||'';return _0x3df591['substring'](0x0,_0x30c5f2)+'...';}export function calculateEventStats(_0x434bf5){const _0x304374={'total':_0x434bf5['length'],'toolUses':0x0,'toolResults':0x0,'thinking':0x0,'messages':0x0};return _0x434bf5['forEach'](_0x3e2999=>{if(_0x3e2999['type']==='assistant'&&_0x3e2999['message']?.['content'])_0x3e2999['message']['content']['forEach'](_0x22e76c=>{if(_0x22e76c['type']==='tool_use')_0x304374['toolUses']++;else _0x22e76c['type']==='text'&&_0x304374['thinking']++;});else{if(_0x3e2999['type']==='user'&&_0x3e2999['message']?.['content'])_0x3e2999['message']['content']['forEach'](_0x3a3677=>{_0x3a3677['type']==='tool_result'&&_0x304374['toolResults']++;});else{if((_0x3e2999['type']==='item.completed'||_0x3e2999['type']==='item.started')&&_0x3e2999['item']){if(_0x3e2999['item']['type']==='command_execution')_0x304374['toolUses']++,_0x3e2999['type']==='item.completed'&&_0x3e2999['item']['status']==='completed'&&_0x304374['toolResults']++;else{if(_0x3e2999['item']['type']==='reasoning')_0x304374['thinking']++;else _0x3e2999['item']['type']==='agent_message'&&_0x304374['messages']++;}}else{if(_0x3e2999['type']==='message'&&_0x3e2999['role']==='assistant'&&_0x3e2999['content'])_0x304374['thinking']++;else{if(_0x3e2999['type']==='tool_use'&&_0x3e2999['tool_name'])_0x304374['toolUses']++;else _0x3e2999['type']==='tool_result'&&_0x3e2999['tool_id']&&_0x304374['toolResults']++;}}}}}),_0x304374;}