@profoundlogic/coderflow-server 0.7.9 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/dist/base-image/coder-git-credential-helper +16 -0
  2. package/dist/base-image/entrypoint.sh +75 -5
  3. package/dist/base-image/sync-repos.sh +30 -1
  4. package/dist/coder-server.js +1 -1
  5. package/dist/config.js +1 -1
  6. package/dist/lib/agent-keepalive.js +1 -1
  7. package/dist/lib/agent-models.js +1 -1
  8. package/dist/lib/api-keys.js +1 -1
  9. package/dist/lib/apiKeys.js +1 -1
  10. package/dist/lib/app-server-ports.js +1 -1
  11. package/dist/lib/auto-judge.js +1 -1
  12. package/dist/lib/automation-service.js +1 -1
  13. package/dist/lib/basic-auth.js +1 -1
  14. package/dist/lib/bindings.js +1 -1
  15. package/dist/lib/build-history.js +1 -1
  16. package/dist/lib/build-output-service.js +1 -1
  17. package/dist/lib/build-scheduler.js +1 -1
  18. package/dist/lib/build-service.js +1 -1
  19. package/dist/lib/ca-certificates.js +1 -1
  20. package/dist/lib/claude-oauth-refresh.js +1 -1
  21. package/dist/lib/cli/build.js +1 -1
  22. package/dist/lib/cli/cleanup-users.js +1 -1
  23. package/dist/lib/cli/config-command.js +1 -1
  24. package/dist/lib/cli/config.js +1 -1
  25. package/dist/lib/cli/create-user.js +1 -1
  26. package/dist/lib/cli/grant-admin.js +1 -1
  27. package/dist/lib/cli/init.js +1 -1
  28. package/dist/lib/cli/jira.js +1 -1
  29. package/dist/lib/cli/license.js +1 -1
  30. package/dist/lib/cli/list-roles.js +1 -1
  31. package/dist/lib/cli/list-users.js +1 -1
  32. package/dist/lib/cli/server-manager.js +1 -1
  33. package/dist/lib/cli/set-password.js +1 -1
  34. package/dist/lib/compression-filter.js +1 -1
  35. package/dist/lib/config-migration.js +1 -1
  36. package/dist/lib/container-credential-sync.js +1 -1
  37. package/dist/lib/container-tokens.js +1 -1
  38. package/dist/lib/data-dir.js +1 -1
  39. package/dist/lib/deployment-history.js +1 -1
  40. package/dist/lib/deployment-service.js +1 -1
  41. package/dist/lib/docker-utils.js +1 -1
  42. package/dist/lib/email.js +1 -1
  43. package/dist/lib/emailTemplates.js +1 -1
  44. package/dist/lib/entitlement.js +1 -1
  45. package/dist/lib/external-connections.js +1 -1
  46. package/dist/lib/fetch-utils.js +1 -1
  47. package/dist/lib/git-commit-details-route.js +1 -1
  48. package/dist/lib/git-history-diff-guardrails.js +1 -1
  49. package/dist/lib/git-provider-service.js +1 -1
  50. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
  51. package/dist/lib/git-provider-setup/index.js +1 -1
  52. package/dist/lib/git-provider-setup/setup-factory.js +1 -1
  53. package/dist/lib/git-provider-setup/setup-interface.js +1 -1
  54. package/dist/lib/git-providers/azure-devops-provider.js +1 -1
  55. package/dist/lib/git-providers/github-app-provider.js +1 -1
  56. package/dist/lib/git-providers/index.js +1 -1
  57. package/dist/lib/git-providers/provider-factory.js +1 -1
  58. package/dist/lib/git-providers/provider-interface.js +1 -1
  59. package/dist/lib/github-urls.js +1 -1
  60. package/dist/lib/group-objective-linking.js +1 -1
  61. package/dist/lib/ibmi-sync.js +1 -1
  62. package/dist/lib/jira-client.js +1 -1
  63. package/dist/lib/judge-blinding.js +1 -1
  64. package/dist/lib/logger.js +1 -1
  65. package/dist/lib/memory-utils.js +1 -1
  66. package/dist/lib/migration-to-scoped-rbac.js +1 -1
  67. package/dist/lib/model-fetcher.js +1 -1
  68. package/dist/lib/notifications.js +1 -1
  69. package/dist/lib/objective-context.js +1 -1
  70. package/dist/lib/oidc-auth.js +1 -1
  71. package/dist/lib/oidc-device-flow.js +1 -1
  72. package/dist/lib/passwordTokens.js +1 -1
  73. package/dist/lib/permission-resolver.js +1 -1
  74. package/dist/lib/pin-cascade.js +1 -1
  75. package/dist/lib/provider-accounts.js +1 -1
  76. package/dist/lib/provider-oauth.js +1 -1
  77. package/dist/lib/provider-profile.js +1 -1
  78. package/dist/lib/provider-token-refresh.js +1 -1
  79. package/dist/lib/rbac-user-state.js +1 -1
  80. package/dist/lib/request-url.js +1 -1
  81. package/dist/lib/rewind.js +1 -1
  82. package/dist/lib/role-definitions.js +1 -1
  83. package/dist/lib/roles.js +1 -1
  84. package/dist/lib/secrets.js +1 -1
  85. package/dist/lib/setup-repo-git-auth.js +1 -1
  86. package/dist/lib/state-capture.js +1 -1
  87. package/dist/lib/static-files.js +1 -1
  88. package/dist/lib/task-aliases.js +1 -1
  89. package/dist/lib/task-container-init.js +1 -0
  90. package/dist/lib/task-context-usage.js +1 -0
  91. package/dist/lib/task-name-format.js +1 -1
  92. package/dist/lib/task-name-generator.js +1 -1
  93. package/dist/lib/task-source-metadata.js +1 -1
  94. package/dist/lib/teams.js +1 -1
  95. package/dist/lib/user-git-oauth.js +1 -1
  96. package/dist/lib/user-git-tokens.js +1 -1
  97. package/dist/lib/users.js +1 -1
  98. package/dist/middleware/requireAuth.js +1 -1
  99. package/dist/middleware/requireInit.js +1 -1
  100. package/dist/middleware/requirePermission.js +1 -1
  101. package/dist/package.json +1 -1
  102. package/dist/playwright.config.js +1 -1
  103. package/dist/playwright.task-terminal.config.js +1 -1
  104. package/dist/routes/apiKeys.js +1 -1
  105. package/dist/routes/auth-oidc.js +1 -1
  106. package/dist/routes/auth.js +1 -1
  107. package/dist/routes/automations.js +1 -1
  108. package/dist/routes/bindings.js +1 -1
  109. package/dist/routes/build.js +1 -1
  110. package/dist/routes/containers.js +1 -1
  111. package/dist/routes/deploy-task.js +1 -1
  112. package/dist/routes/environment-management.js +1 -1
  113. package/dist/routes/environments.js +1 -1
  114. package/dist/routes/external-skills.js +1 -1
  115. package/dist/routes/git-credentials.js +1 -1
  116. package/dist/routes/git-oauth.js +1 -1
  117. package/dist/routes/git-provider-setup.js +1 -1
  118. package/dist/routes/health.js +1 -1
  119. package/dist/routes/jira.js +1 -1
  120. package/dist/routes/logs.js +1 -1
  121. package/dist/routes/objective-management.js +1 -1
  122. package/dist/routes/password.js +1 -1
  123. package/dist/routes/prompt.js +1 -1
  124. package/dist/routes/provider-auth.js +1 -1
  125. package/dist/routes/qa.js +1 -1
  126. package/dist/routes/roles.js +1 -1
  127. package/dist/routes/settings.js +1 -1
  128. package/dist/routes/skill-management.js +1 -1
  129. package/dist/routes/skills.js +1 -1
  130. package/dist/routes/stats.js +1 -1
  131. package/dist/routes/tasks.js +1 -1
  132. package/dist/routes/teams.js +1 -1
  133. package/dist/routes/templates.js +1 -1
  134. package/dist/routes/test-task.js +1 -1
  135. package/dist/routes/test.js +1 -1
  136. package/dist/routes/users.js +1 -1
  137. package/dist/routes/visualizations.js +1 -1
  138. package/dist/scripts/create-user.js +1 -1
  139. package/dist/scripts/migrate-config-to-data-dir.js +1 -1
  140. package/dist/start.js +1 -1
  141. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  142. package/dist/web-ui/public/activity-feed.js +1 -1
  143. package/dist/web-ui/public/activity-formatters.js +1 -1
  144. package/dist/web-ui/public/admin.css +95 -1
  145. package/dist/web-ui/public/admin.html +29 -1
  146. package/dist/web-ui/public/admin.js +1 -1
  147. package/dist/web-ui/public/agent-event-parser.js +1 -1
  148. package/dist/web-ui/public/app.js +1 -1
  149. package/dist/web-ui/public/approve-dialog.js +1 -1
  150. package/dist/web-ui/public/automation-links.js +1 -1
  151. package/dist/web-ui/public/automation-schedule.js +1 -1
  152. package/dist/web-ui/public/comments-widget.js +1 -1
  153. package/dist/web-ui/public/diff-utils.js +1 -1
  154. package/dist/web-ui/public/environments.js +1 -1
  155. package/dist/web-ui/public/feedback-widget.css +45 -0
  156. package/dist/web-ui/public/feedback-widget.js +1 -1
  157. package/dist/web-ui/public/file-selection-tree.js +1 -1
  158. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  159. package/dist/web-ui/public/git-history.js +1 -1
  160. package/dist/web-ui/public/git-status.js +1 -1
  161. package/dist/web-ui/public/ibmi-file-filter.js +1 -1
  162. package/dist/web-ui/public/index.js +1 -1
  163. package/dist/web-ui/public/login.js +1 -1
  164. package/dist/web-ui/public/markdown-editor.js +1 -1
  165. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  166. package/dist/web-ui/public/modal-maximize.js +1 -1
  167. package/dist/web-ui/public/notifications.js +1 -1
  168. package/dist/web-ui/public/permissions.js +1 -1
  169. package/dist/web-ui/public/pr-dialog.js +1 -1
  170. package/dist/web-ui/public/roles.js +1 -1
  171. package/dist/web-ui/public/settings.js +1 -1
  172. package/dist/web-ui/public/setup-password.js +1 -1
  173. package/dist/web-ui/public/skills.js +1 -1
  174. package/dist/web-ui/public/sse-client.js +1 -1
  175. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  176. package/dist/web-ui/public/styles.css +81 -0
  177. package/dist/web-ui/public/task-judging-helpers.js +1 -1
  178. package/dist/web-ui/public/task.html +35 -1
  179. package/dist/web-ui/public/task.js +1 -1
  180. package/dist/web-ui/public/teams.js +1 -1
  181. package/dist/web-ui/public/terminal.js +1 -1
  182. package/dist/web-ui/public/theme.js +1 -1
  183. package/dist/web-ui/public/users.js +1 -1
  184. package/dist/web-ui/public/variant-grouping.js +1 -1
  185. 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,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','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 _0x238d08=await checkAdminAccess();await initializeAdminMenu(_0x238d08),setupEventListeners(),await loadEnvironmentOptions(),document['getElementById']('admin-loading')['hidden']=!![],document['getElementById']('admin-content')['hidden']=![];const _0x37c0b9=getSessionValue('admin-health-auto-refresh');if(_0x37c0b9!==null){const _0x19d3eb=document['getElementById']('health-auto-refresh');if(_0x19d3eb)_0x19d3eb['checked']=_0x37c0b9!=='false';}const _0x2ca4b9=getSessionValue('admin-active-section'),_0x3b49bd=['health','logs','usage']['includes'](_0x2ca4b9)?_0x2ca4b9:'health';await switchSection(_0x3b49bd);}catch(_0x59ea17){console['error']('Failed\x20to\x20initialize\x20Server\x20Administration\x20page',_0x59ea17),document['getElementById']('admin-loading')['hidden']=!![],document['getElementById']('admin-error')['hidden']=![],document['getElementById']('admin-error-message')['textContent']=_0x59ea17['message']||'Unknown\x20error';}}async function checkAdminAccess(){try{const _0x2a9ddf=await API['getCurrentUser']();if(!window['Permissions']?.['hasServerPermission'](_0x2a9ddf,'*')){Utils['showToast']('Access\x20denied:\x20Admin\x20privileges\x20required','error'),setTimeout(()=>{window['location']['href']='index.html';},0x7d0);throw new Error('Access\x20denied');}return _0x2a9ddf;}catch(_0x450491){_0x450491['message']!=='Access\x20denied'&&(window['location']['href']='login.html');throw _0x450491;}}function setupEventListeners(){document['querySelectorAll']('.settings-nav-item')['forEach'](_0x4ab3e8=>{_0x4ab3e8['addEventListener']('click',()=>switchSection(_0x4ab3e8['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'](_0x4128fe=>{_0x4128fe['addEventListener']('click',()=>{state['logs']['level']=_0x4128fe['dataset']['level']||'ALL',updateActiveFilterButtons('#logs-level-filters',state['logs']['level']),loadLogs({'showLoading':![]});});}),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',_0x470729=>{state['usage']['environment']=_0x470729['target']['value']||'',loadUsage({'showLoading':![]});}),document['querySelectorAll']('#usage-period-buttons\x20.admin-filter-btn')['forEach'](_0x11012e=>{_0x11012e['addEventListener']('click',()=>{state['usage']['days']=_0x11012e['dataset']['days']||'30',updateActiveFilterButtons('#usage-period-buttons',state['usage']['days']),loadUsage({'showLoading':![]});});});}async function switchSection(_0x2a1c8e){if(!_0x2a1c8e)return;document['querySelectorAll']('.settings-nav-item')['forEach'](_0x2f33db=>{const _0x30c9ca=_0x2f33db['dataset']['section']===_0x2a1c8e;_0x2f33db['classList']['toggle']('active',_0x30c9ca),_0x2f33db['setAttribute']('aria-selected',String(_0x30c9ca));}),document['querySelectorAll']('.settings-panel')['forEach'](_0x36ee0f=>{const _0x1cee45=_0x36ee0f['id']==='section-'+_0x2a1c8e;_0x36ee0f['hidden']=!_0x1cee45,_0x36ee0f['classList']['toggle']('active',_0x1cee45);}),state['currentSection']=_0x2a1c8e,setSessionValue('admin-active-section',_0x2a1c8e),_0x2a1c8e!=='health'&&stopHealthAutoRefresh(),_0x2a1c8e!=='logs'&&stopLogStream(),_0x2a1c8e==='health'&&(syncHealthAutoRefresh(),await loadHealth({'showLoading':!state['health']['loaded']})),_0x2a1c8e==='logs'&&(await loadLogs({'showLoading':!state['logs']['loaded']}),state['logs']['live']?startLogStream():updateLogsLiveUi()),_0x2a1c8e==='usage'&&await loadUsage({'showLoading':!state['usage']['loaded']});}function getSessionValue(_0x4fd8f9){try{return sessionStorage['getItem'](_0x4fd8f9);}catch{return null;}}function setSessionValue(_0x3c7697,_0x2e2776){try{sessionStorage['setItem'](_0x3c7697,_0x2e2776);}catch{}}async function loadEnvironmentOptions(){const _0x271bce=await API['get']('/environments');state['environments']=(_0x271bce['environments']||[])['map'](_0x207dbd=>_0x207dbd?.['name'])['filter'](Boolean)['sort']((_0xd5c2c4,_0x3629eb)=>_0xd5c2c4['localeCompare'](_0x3629eb));const _0x2c50f0=document['getElementById']('usage-environment-filter');if(!_0x2c50f0)return;_0x2c50f0['innerHTML']='<option\x20value=\x22\x22>All\x20environments</option>'+state['environments']['map'](_0x4b47c1=>'<option\x20value=\x22'+Utils['escapeHtml'](_0x4b47c1)+'\x22>'+Utils['escapeHtml'](_0x4b47c1)+'</option>')['join'](''),_0x2c50f0['value']=state['usage']['environment'];}function syncHealthAutoRefresh(){const _0x1c5b84=document['getElementById']('health-auto-refresh');if(_0x1c5b84)setSessionValue('admin-health-auto-refresh',String(_0x1c5b84['checked']));const _0x4110f0=state['currentSection']==='health'&&!!_0x1c5b84?.['checked'];stopHealthAutoRefresh();if(!_0x4110f0)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 _0x450d85=document['getElementById']('health-loading'),_0x5029ed=document['getElementById']('health-error'),_0x375626=document['getElementById']('health-content');(showLoading||!state['health']['loaded'])&&(_0x450d85['hidden']=![],_0x5029ed['hidden']=!![],_0x375626['hidden']=!![]);try{const [_0x42611f]=await Promise['all']([API['get']('/health/metrics'),loadUpdateSettings()['catch'](_0x553a00=>{console['error']('Failed\x20to\x20load\x20update\x20settings',_0x553a00),state['health']['updateEnabled']=![],state['health']['hasRestartCommand']=![],syncHealthActionButtons();})]);renderHealthMetrics(_0x42611f),!state['health']['currentVersion']&&await loadVersionStatus({'checkUpdates':![]}),_0x450d85['hidden']=!![],_0x5029ed['hidden']=!![],_0x375626['hidden']=![],state['health']['loaded']=!![];}catch(_0x483c7d){console['error']('Failed\x20to\x20load\x20server\x20metrics',_0x483c7d),_0x450d85['hidden']=!![],_0x5029ed['hidden']=![],_0x375626['hidden']=!![],document['getElementById']('health-error-message')['textContent']=_0x483c7d['message']||'Unknown\x20error';}finally{state['health']['request']=null;}})()),state['health']['request'];}function syncHealthActionButtons(){const _0x1555dc=document['getElementById']('health-update-btn'),_0x2e8901=document['getElementById']('health-restart-btn');if(!_0x1555dc||!_0x2e8901)return;const _0x1a7bc9=state['health']['updateEnabled'],_0x4efa65=_0x1a7bc9&&state['health']['versionChecked']&&state['health']['updateAvailable'];_0x1555dc['hidden']=!_0x4efa65,_0x1555dc['disabled']=state['health']['updateInProgress']||state['health']['restartInProgress']||!state['health']['latestVersion'],_0x1555dc['textContent']=state['health']['updateInProgress']?'Updating...':'Update\x20Server',_0x2e8901['hidden']=!_0x1a7bc9,_0x2e8901['disabled']=state['health']['updateInProgress']||state['health']['restartInProgress'];}function setUpdateOutput({status:_0x1b693e,output:_0x1a4a9b}){const _0x4358c4=document['getElementById']('health-update-output-wrap'),_0x538b27=document['getElementById']('health-update-status'),_0x43837d=document['getElementById']('health-update-output');if(!_0x4358c4||!_0x538b27||!_0x43837d)return;const _0x196160=_0x1b693e||'';_0x4358c4['hidden']=![],_0x538b27['className']='admin-update-status',_0x196160&&_0x538b27['classList']['add'](_0x196160),_0x538b27['textContent']=_0x196160==='success'?'Success':_0x196160==='error'?'Failed':'In\x20Progress',_0x43837d['textContent']=_0x1a4a9b||'No\x20output\x20returned.';}function buildCommandOutput(_0x48ac4f,_0x7c2d5a){const _0x4f0282=[];typeof _0x48ac4f==='string'&&_0x48ac4f['trim']()&&_0x4f0282['push'](_0x48ac4f['trim']());if(typeof _0x7c2d5a==='string'&&_0x7c2d5a['trim']()){const _0x4ef9ae=_0x7c2d5a['trim'](),_0x1034cf=_0x4f0282['some'](_0x4ad535=>_0x4ad535['includes'](_0x4ef9ae));!_0x1034cf&&_0x4f0282['push']('Error:\x0a'+_0x4ef9ae);}return _0x4f0282['join']('\x0a\x0a');}function showRestartOverlay({title:_0x1875f1,message:_0x1fd2f0,showRetry:showRetry=![]}){const _0x5a5570=document['getElementById']('health-restart-overlay'),_0x127e64=document['getElementById']('restart-overlay-title'),_0x3c44b7=document['getElementById']('restart-overlay-message'),_0x42c6a3=document['getElementById']('restart-overlay-retry');if(!_0x5a5570||!_0x127e64||!_0x3c44b7||!_0x42c6a3)return;_0x127e64['textContent']=_0x1875f1,_0x3c44b7['textContent']=_0x1fd2f0,_0x42c6a3['hidden']=!showRetry,_0x5a5570['hidden']=![];}function hideRestartOverlay(){const _0x5e3571=document['getElementById']('health-restart-overlay');_0x5e3571&&(_0x5e3571['hidden']=!![]);}function sleep(_0x413e22){return new Promise(_0x1775a8=>{window['setTimeout'](_0x1775a8,_0x413e22);});}async function loadUpdateSettings(){const _0x1b4dee=await API['getUpdateSettings']();return state['health']['updateEnabled']=!!_0x1b4dee['enabled'],state['health']['hasRestartCommand']=!!_0x1b4dee['hasRestartCommand'],syncHealthActionButtons(),_0x1b4dee;}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 _0x5279c5=await API['applyServerUpdate'](state['health']['latestVersion']),_0x550fd4=buildCommandOutput(_0x5279c5['output'],_0x5279c5['error']);_0x5279c5['success']?(setUpdateOutput({'status':'success','output':_0x550fd4||'Server\x20update\x20to\x20'+state['health']['latestVersion']+'\x20completed.'}),Utils['showSuccess']('Server\x20update\x20to\x20'+state['health']['latestVersion']+'\x20completed')):(setUpdateOutput({'status':'error','output':_0x550fd4||'Server\x20update\x20failed\x20without\x20additional\x20output.'}),Utils['showError'](_0x5279c5['error']||'Server\x20update\x20failed'));}catch(_0x535971){setUpdateOutput({'status':'error','output':buildCommandOutput(_0x535971['output'],_0x535971['commandError']||_0x535971['message'])||'Failed\x20to\x20apply\x20server\x20update.'}),Utils['showError'](_0x535971['message']||'Failed\x20to\x20apply\x20server\x20update');}finally{state['health']['updateInProgress']=![],syncHealthActionButtons();}}function showRestartConfirmation(){if(!state['health']['updateEnabled']||state['health']['restartInProgress'])return;const _0xd085dc=document['getElementById']('restart-modal');_0xd085dc&&(_0xd085dc['hidden']=![]);}function hideRestartModal(){const _0x460663=document['getElementById']('restart-modal');_0x460663&&(_0x460663['hidden']=!![]);}async function confirmRestart(){if(state['health']['restartInProgress'])return;hideRestartModal(),state['health']['restartInProgress']=!![],syncHealthActionButtons();try{await API['restartServer'](),await waitForServerRestart();}catch(_0x5d8950){state['health']['restartInProgress']=![],syncHealthActionButtons(),hideRestartOverlay(),Utils['showError'](_0x5d8950['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 _0x3a9ce3=Date['now']();let _0x317361=![];for(let _0x23a089=0x0;_0x23a089<RESTART_POLL_MAX_ATTEMPTS;_0x23a089+=0x1){await sleep(RESTART_POLL_INTERVAL_MS);try{await API['get']('/health?ts='+Date['now']());const _0x141637=Date['now']()-_0x3a9ce3;if(_0x317361||_0x141637>=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(_0x2da20e){_0x317361=!![];}}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 _0x5a5920=document['getElementById']('health-check-updates-btn');_0x5a5920&&(_0x5a5920['disabled']=!![],_0x5a5920['textContent']=checkUpdates?'Checking...':'Loading...');try{const _0x4a9615=await API['get']('/health');state['health']['currentVersion']=_0x4a9615['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 _0x397def=await API['get']('/health/check-updates');state['health']['versionChecked']=!![],state['health']['latestVersion']=_0x397def['latestVersion']||'Unavailable',state['health']['installCommand']=_0x397def['installCommand']||null,state['health']['updateAvailable']=!!_0x397def['updateAvailable'],document['getElementById']('health-version-current')['textContent']=_0x397def['currentVersion']||state['health']['currentVersion'],document['getElementById']('health-version-latest')['textContent']=state['health']['latestVersion'],document['getElementById']('health-version-status')['textContent']=buildVersionStatusText(_0x397def),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(_0x84d478){console['error']('Failed\x20to\x20load\x20version\x20status',_0x84d478),state['health']['updateAvailable']=![],document['getElementById']('health-version-status')['textContent']='Unable\x20to\x20load\x20version\x20status:\x20'+_0x84d478['message'],document['getElementById']('health-install-command-wrap')['hidden']=!![],document['getElementById']('health-copy-install-btn')['hidden']=!![],syncHealthActionButtons();}finally{_0x5a5920&&(_0x5a5920['disabled']=![],_0x5a5920['textContent']='Check\x20for\x20Updates');}}function buildVersionStatusText(_0x19b1c3){const _0x43d304=_0x19b1c3?.['versionStatus'];if(_0x43d304==='update-available')return'Update\x20available:\x20'+_0x19b1c3['currentVersion']+'\x20→\x20'+_0x19b1c3['latestVersion'];if(_0x43d304==='up-to-date')return'Running\x20the\x20latest\x20published\x20version\x20('+_0x19b1c3['latestVersion']+').';if(_0x43d304==='ahead-of-latest')return'This\x20server\x20is\x20ahead\x20of\x20npm\x20latest\x20('+_0x19b1c3['latestVersion']+').';return'Unable\x20to\x20compare\x20current\x20and\x20latest\x20versions.';}async function copyInstallCommand(){if(!state['health']['installCommand'])return;const _0x44a784=await Utils['copyToClipboard'](state['health']['installCommand']);_0x44a784?Utils['showSuccess']('Install\x20command\x20copied'):Utils['showError']('Failed\x20to\x20copy\x20install\x20command');}function renderHealthMetrics(_0x53a305){document['getElementById']('cpu-usage')['textContent']=_0x53a305['cpu']?.['display']||'-',document['getElementById']('memory-usage')['textContent']=_0x53a305['memory']?.['display']||'-',document['getElementById']('disk-usage')['textContent']=_0x53a305['disk']?.['display']||'-',document['getElementById']('docker-containers')['textContent']=_0x53a305['docker']?.['display']||'-',document['getElementById']('server-uptime')['textContent']=_0x53a305['uptime']?.['display']||'-',document['getElementById']('active-sessions')['textContent']=_0x53a305['sessions']?.['display']||'-',setMetricProgress('cpu-progress',_0x53a305['cpu']?.['percent'],statusFromPercent(_0x53a305['cpu']?.['percent'])),setMetricProgress('memory-progress',_0x53a305['memory']?.['percent'],statusFromPercent(_0x53a305['memory']?.['percent'])),setMetricProgress('disk-progress',_0x53a305['disk']?.['percent'],statusFromPercent(_0x53a305['disk']?.['percent']));const _0x2497b9=_0x53a305['docker']?.['total']>0x0?_0x53a305['docker']['running']/_0x53a305['docker']['total']*0x64:0x0;setMetricProgress('docker-progress',_0x2497b9,'ok');const _0x15e386=_0x53a305['dockerStorage']||{},_0x2c9826=document['getElementById']('docker-storage-card');document['getElementById']('docker-storage-total')['textContent']=_0x15e386['display']||'-',document['getElementById']('docker-storage-available')['textContent']=_0x15e386['availableDisplay']||'',document['getElementById']('docker-storage-available')['hidden']=!_0x15e386['availableDisplay'],document['getElementById']('docker-storage-reclaimable')['textContent']=_0x15e386['reclaimableDisplay']||'',document['getElementById']('docker-storage-images')['textContent']=_0x15e386['images']?.['display']||'-',document['getElementById']('docker-storage-containers')['textContent']=_0x15e386['containers']?.['display']||'-',document['getElementById']('docker-storage-volumes')['textContent']=_0x15e386['volumes']?.['display']||'-',document['getElementById']('docker-storage-buildcache')['textContent']=_0x15e386['buildCache']?.['display']||'-',setMetricProgress('docker-storage-progress',_0x15e386['percent'],_0x15e386['status']||'ok'),_0x2c9826['classList']['remove']('status-warning','status-critical'),_0x15e386['status']==='warning'&&_0x2c9826['classList']['add']('status-warning'),_0x15e386['status']==='critical'&&_0x2c9826['classList']['add']('status-critical');}function clampPercent(_0x5bac23){if(!Number['isFinite'](_0x5bac23))return 0x0;return Math['max'](0x0,Math['min'](0x64,Math['round'](_0x5bac23)));}function statusFromPercent(_0x5bc1cb){if(!Number['isFinite'](_0x5bc1cb))return'ok';if(_0x5bc1cb>=0x5a)return'critical';if(_0x5bc1cb>=0x4b)return'warning';return'ok';}function setMetricProgress(_0x573e2b,_0x203e4b,_0x44d4e4='ok'){const _0x23fe2b=document['getElementById'](_0x573e2b);if(!_0x23fe2b)return;const _0x5a7780=clampPercent(_0x203e4b);_0x23fe2b['style']['width']=_0x5a7780+'%',_0x23fe2b['classList']['remove']('status-ok','status-warning','status-critical'),_0x23fe2b['classList']['add'](_0x44d4e4==='critical'?'status-critical':_0x44d4e4==='warning'?'status-warning':'status-ok'),_0x23fe2b['parentElement']?.['setAttribute']('aria-valuenow',String(_0x5a7780));}async function runCleanupAction(_0x5094c6,_0x1c4c09){const _0x47a4be=document['getElementById']('server-health-action-status'),_0x65505d=[document['getElementById']('health-refresh-btn'),document['getElementById']('server-stop-containers'),document['getElementById']('server-remove-stopped'),document['getElementById']('server-prune-docker')]['filter'](Boolean);_0x65505d['forEach'](_0x11fc58=>{_0x11fc58['disabled']=!![];}),_0x47a4be['hidden']=![],_0x47a4be['classList']['remove']('success','error'),_0x47a4be['textContent']=_0x5094c6+'...';try{const _0x4d59f7=await _0x1c4c09();_0x47a4be['classList']['add']('success'),_0x47a4be['textContent']=_0x4d59f7?.['message']||_0x5094c6+'\x20complete',await loadHealth({'showLoading':!![]});}catch(_0x414659){console['error'](_0x5094c6+'\x20failed',_0x414659),_0x47a4be['classList']['add']('error'),_0x47a4be['textContent']=_0x414659['message']||_0x5094c6+'\x20failed';}finally{_0x65505d['forEach'](_0x4f86a3=>{_0x4f86a3['disabled']=![];});}}function toggleCleanupSection(){const _0x2ad855=document['getElementById']('cleanup-section'),_0x2b6a12=document['getElementById']('cleanup-content'),_0x4d882b=document['getElementById']('cleanup-toggle');if(!_0x2ad855||!_0x2b6a12||!_0x4d882b)return;const _0x3750a3=_0x2ad855['classList']['toggle']('expanded');_0x2b6a12['hidden']=!_0x3750a3,_0x4d882b['setAttribute']('aria-expanded',String(_0x3750a3));}async function loadLogs({showLoading:showLoading=![]}={}){if(state['logs']['request'])return state['logs']['request'];return state['logs']['request']=((async()=>{const _0x26c910=document['getElementById']('logs-loading'),_0x3ed96b=document['getElementById']('logs-error');(showLoading||!state['logs']['loaded'])&&(_0x26c910['hidden']=![],_0x3ed96b['hidden']=!![],document['getElementById']('logs-empty')['hidden']=!![],document['getElementById']('logs-container')['hidden']=!![]);try{const _0x70a66=new URLSearchParams({'limit':'500'});state['logs']['level']!=='ALL'&&_0x70a66['set']('level',state['logs']['level']);state['logs']['search']&&_0x70a66['set']('search',state['logs']['search']);const _0x5468db=await API['get']('/logs?'+_0x70a66['toString']());state['logs']['entries']=Array['isArray'](_0x5468db['entries'])?_0x5468db['entries']['slice'](-state['logs']['maxEntries']):[],state['logs']['total']=Number(_0x5468db['total'])||0x0,state['logs']['minLevel']=_0x5468db['minLevel']||'INFO',state['logs']['loaded']=!![],_0x26c910['hidden']=!![],_0x3ed96b['hidden']=!![],renderLogs();}catch(_0x157184){console['error']('Failed\x20to\x20load\x20logs',_0x157184),_0x26c910['hidden']=!![],_0x3ed96b['hidden']=![],document['getElementById']('logs-error-message')['textContent']=_0x157184['message']||'Unknown\x20error',document['getElementById']('logs-empty')['hidden']=!![],document['getElementById']('logs-container')['hidden']=!![];}finally{state['logs']['request']=null;}})()),state['logs']['request'];}function renderLogs(){const _0x38b0d2=document['getElementById']('logs-container'),_0x3b548f=document['getElementById']('logs-empty'),_0x528ef0=state['logs']['autoScroll']&&state['logs']['live'],_0x43aa8c=getVisibleLogEntries();updateLogsMeta(_0x43aa8c['length']);if(_0x43aa8c['length']===0x0){_0x38b0d2['hidden']=!![],_0x3b548f['hidden']=![];return;}_0x3b548f['hidden']=!![],_0x38b0d2['hidden']=![],_0x38b0d2['innerHTML']=_0x43aa8c['map'](renderLogEntry)['join'](''),_0x528ef0&&(_0x38b0d2['scrollTop']=_0x38b0d2['scrollHeight']);}function getVisibleLogEntries(){const _0x2d21c7=state['logs']['search']['trim']()['toLowerCase']();return state['logs']['entries']['filter'](_0x3f566d=>{if(state['logs']['level']!=='ALL'&&_0x3f566d['level']!==state['logs']['level'])return![];if(!_0x2d21c7)return!![];const _0x3f131c=String(_0x3f566d['message']||'')['toLowerCase'](),_0x442ea8=_0x3f566d['context']?JSON['stringify'](_0x3f566d['context'])['toLowerCase']():'';return _0x3f131c['includes'](_0x2d21c7)||_0x442ea8['includes'](_0x2d21c7);});}function renderLogEntry(_0x549a9e){const _0x3c7f79=Utils['escapeHtml'](formatDateTime(_0x549a9e['timestamp'])),_0x117940=Utils['escapeHtml'](String(_0x549a9e['level']||'INFO')),_0x156df8=Utils['escapeHtml'](String(_0x549a9e['message']||'')),_0x3dbf4c=_0x549a9e['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'](_0x549a9e['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>'+_0x3c7f79+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22admin-log-level\x20level-'+_0x117940['toLowerCase']()+'\x22>'+_0x117940+'</span>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-log-message\x22>'+_0x156df8+'</div>\x0a\x20\x20\x20\x20\x20\x20'+_0x3dbf4c+'\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}function updateLogsMeta(_0xe4f2f5){const _0x3f829e=document['getElementById']('logs-meta');if(!_0x3f829e)return;const _0x498489=state['logs']['entries']['length'],_0x12a88a=state['logs']['level']!=='ALL'||!!state['logs']['search']['trim']();_0x3f829e['textContent']=_0x12a88a?'Showing\x20'+_0xe4f2f5+'\x20of\x20'+_0x498489+'\x20loaded\x20entries\x20for\x20the\x20current\x20filters.\x20Minimum\x20runtime\x20level:\x20'+state['logs']['minLevel']+'.':'Showing\x20'+_0xe4f2f5+'\x20recent\x20buffered\x20entries.\x20Minimum\x20runtime\x20level:\x20'+state['logs']['minLevel']+'.';}function toggleLogsLiveMode(){state['logs']['live']=!state['logs']['live'],state['logs']['live']?startLogStream():stopLogStream(),updateLogsLiveUi();}function updateLogsLiveUi(){const _0x509f54=document['getElementById']('logs-live-toggle'),_0x13de42=document['getElementById']('logs-stream-status');if(!_0x509f54||!_0x13de42)return;_0x13de42['classList']['remove']('live','error');if(!state['logs']['live']){_0x13de42['textContent']='Paused',_0x509f54['textContent']='Start\x20Live';return;}if(state['logs']['streamState']==='live')_0x13de42['textContent']='Live',_0x13de42['classList']['add']('live');else state['logs']['streamState']==='error'?(_0x13de42['textContent']='Reconnecting',_0x13de42['classList']['add']('error')):_0x13de42['textContent']='Connecting';_0x509f54['textContent']='Pause\x20Live';}function startLogStream(){if(state['currentSection']!=='logs'||state['logs']['stream'])return;state['logs']['streamState']='connecting',updateLogsLiveUi();const _0x2dc432=new EventSource(API['getBaseUrl']()+'/logs/stream');state['logs']['stream']=_0x2dc432,_0x2dc432['addEventListener']('log',_0x52d4ee=>{try{const _0x4f0a2b=JSON['parse'](_0x52d4ee['data']);state['logs']['entries']['push'](_0x4f0a2b),state['logs']['entries']['length']>state['logs']['maxEntries']&&state['logs']['entries']['shift'](),renderLogs();}catch(_0x1737d2){console['error']('Failed\x20to\x20parse\x20log\x20stream\x20event',_0x1737d2);}}),_0x2dc432['onopen']=()=>{state['logs']['streamState']='live',updateLogsLiveUi();},_0x2dc432['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 handleLogsSearchInput(_0x5cac52){const _0x40fa65=_0x5cac52['target']['value']||'';state['logs']['searchTimer']&&clearTimeout(state['logs']['searchTimer']),state['logs']['searchTimer']=window['setTimeout'](()=>{state['logs']['search']=_0x40fa65,loadLogs({'showLoading':![]});},LOG_SEARCH_DEBOUNCE_MS);}function updateLogAutoScrollState(){const _0x748bb1=document['getElementById']('logs-container');if(!_0x748bb1)return;const _0x2a5d44=_0x748bb1['scrollHeight']-_0x748bb1['scrollTop']-_0x748bb1['clientHeight'];state['logs']['autoScroll']=_0x2a5d44<0x20;}async function loadUsage({showLoading:showLoading=![]}={}){if(state['usage']['request'])return state['usage']['request'];return state['usage']['request']=((async()=>{const _0x52992c=document['getElementById']('usage-loading'),_0x43e996=document['getElementById']('usage-error');(showLoading||!state['usage']['loaded'])&&(_0x52992c['hidden']=![],_0x43e996['hidden']=!![],document['getElementById']('usage-empty')['hidden']=!![],document['getElementById']('usage-content')['hidden']=!![]);try{const _0x2ffdd9=new URLSearchParams();_0x2ffdd9['set']('days',state['usage']['days']);state['usage']['environment']&&_0x2ffdd9['set']('environment',state['usage']['environment']);const _0x163575=await API['get']('/stats?'+_0x2ffdd9['toString']());state['usage']['loaded']=!![],_0x52992c['hidden']=!![],_0x43e996['hidden']=!![],renderUsage(_0x163575);}catch(_0x5dc220){console['error']('Failed\x20to\x20load\x20usage\x20statistics',_0x5dc220),_0x52992c['hidden']=!![],_0x43e996['hidden']=![],document['getElementById']('usage-error-message')['textContent']=_0x5dc220['message']||'Unknown\x20error',document['getElementById']('usage-empty')['hidden']=!![],document['getElementById']('usage-content')['hidden']=!![];}finally{state['usage']['request']=null;}})()),state['usage']['request'];}function renderUsage(_0x10f172){const _0x10a043=Number(_0x10f172?.['tasks']?.['total'])||0x0,_0xe69e25=document['getElementById']('usage-empty'),_0x33efd9=document['getElementById']('usage-content');if(_0x10a043===0x0){_0xe69e25['hidden']=![],_0x33efd9['hidden']=!![];return;}_0xe69e25['hidden']=!![],_0x33efd9['hidden']=![];const _0x280b84=Number(_0x10f172?.['approvalRate']?.['successRate'])||0x0,_0xc963aa=Math['round'](_0x280b84*0x64),_0x5e252b=_0x10f172?.['code']?.['approved']||{},_0x2786f8=Number(_0x5e252b?.['tasks'])||0x0,_0x316e88=(Number(_0x5e252b?.['linesAdded'])||0x0)-(Number(_0x5e252b?.['linesDeleted'])||0x0),_0x40112c=(Number(_0x10f172?.['code']?.['linesAdded'])||0x0)-(Number(_0x10f172?.['code']?.['linesDeleted'])||0x0),_0x3175b4=Number(_0x10f172?.['timing']?.['averageDurationMinutes'])||0x0;setSummaryValue('usage-total-tasks',formatNumber(_0x10a043)),setSummaryValue('usage-success-rate',_0xc963aa+'%',statusClassFromPercent(_0xc963aa)),setSummaryValue('usage-net-lines',formatSignedNumber(_0x40112c)),setSummaryValue('usage-average-duration',formatDurationMinutes(_0x3175b4));const _0x403ff1=_0x10a043>0x0?Math['round'](_0x2786f8/_0x10a043*0x64):0x0;document['getElementById']('usage-approved-summary')['textContent']=formatNumber(_0x2786f8)+'\x20approved\x20('+_0x403ff1+'%)\x20·\x20'+formatNumber(_0x10f172['timing']['totalDurationHours']||0x0)+'h\x20total',document['getElementById']('usage-success-detail')['textContent']=(_0x10f172['approvalRate']['completed']||0x0)+'\x20completed\x20/\x20'+(_0x10f172['approvalRate']['failed']||0x0)+'\x20failed\x20/\x20'+(_0x10f172['approvalRate']['interrupted']||0x0)+'\x20interrupted',document['getElementById']('usage-net-lines-detail')['textContent']='+'+formatNumber(_0x10f172['code']['linesAdded']||0x0)+'\x20/\x20-'+formatNumber(_0x10f172['code']['linesDeleted']||0x0)+'\x20·\x20Approved\x20'+formatSignedNumber(_0x316e88)+'\x20net',document['getElementById']('usage-average-duration-detail')['textContent']=formatDurationMinutes(_0x10f172['timing']['medianDurationMinutes']||0x0)+'\x20median\x20·\x20'+formatNumber(_0x10f172['timing']['totalDurationHours']||0x0)+'h\x20total',document['getElementById']('usage-period-summary')['textContent']=buildPeriodSummary(_0x10f172['period']),renderBarList('usage-status-bars',_0x10f172['tasks']['byStatus']||{}),renderObjectTable('usage-type-body',_0x10f172['tasks']['byType']||{},_0x10a043,{'includePercent':!![],'labelFormatter':prettifyKey}),renderObjectTable('usage-environment-body',_0x10f172['tasks']['byEnvironment']||{},_0x10a043),renderUserTable('usage-user-body',_0x10f172['tasks']['byUser']||[]),renderObjectTable('usage-source-body',_0x10f172['tasks']['bySource']||{},_0x10a043,{'labelFormatter':prettifyKey}),document['getElementById']('usage-lines-added')['textContent']=formatNumber(_0x10f172['code']['linesAdded']||0x0),document['getElementById']('usage-lines-deleted')['textContent']=formatNumber(_0x10f172['code']['linesDeleted']||0x0),document['getElementById']('usage-files-changed')['textContent']=formatNumber(_0x10f172['code']['filesChanged']||0x0),document['getElementById']('usage-repositories-affected')['textContent']=formatNumber(_0x10f172['code']['repositoriesAffected']||0x0),document['getElementById']('usage-approved-lines-added')['textContent']=formatNumber(_0x5e252b['linesAdded']||0x0),document['getElementById']('usage-approved-lines-deleted')['textContent']=formatNumber(_0x5e252b['linesDeleted']||0x0),document['getElementById']('usage-approved-files-changed')['textContent']=formatNumber(_0x5e252b['filesChanged']||0x0),document['getElementById']('usage-approved-repositories-affected')['textContent']=formatNumber(_0x5e252b['repositoriesAffected']||0x0);const _0x1e9da6=(_0x5b5b1c,_0x1acdfb)=>_0x5b5b1c>0x0?Math['round'](_0x1acdfb/_0x5b5b1c*0x64):0x0;document['getElementById']('usage-added-pct')['style']['width']=_0x1e9da6(_0x10f172['code']['linesAdded']||0x0,_0x5e252b['linesAdded']||0x0)+'%',document['getElementById']('usage-deleted-pct')['style']['width']=_0x1e9da6(_0x10f172['code']['linesDeleted']||0x0,_0x5e252b['linesDeleted']||0x0)+'%',document['getElementById']('usage-files-pct')['style']['width']=_0x1e9da6(_0x10f172['code']['filesChanged']||0x0,_0x5e252b['filesChanged']||0x0)+'%',document['getElementById']('usage-repos-pct')['style']['width']=_0x1e9da6(_0x10f172['code']['repositoriesAffected']||0x0,_0x5e252b['repositoriesAffected']||0x0)+'%';}function buildPeriodSummary(_0x60710b){const _0x52517f=_0x60710b?.['from']?formatDateTime(_0x60710b['from']):'the\x20earliest\x20loaded\x20task',_0x318dc4=_0x60710b?.['to']?formatDateTime(_0x60710b['to']):'now',_0x507b9f=_0x60710b?.['days']?_0x60710b['days']+'\x20day\x20window':'All\x20available\x20task\x20history';return _0x507b9f+'\x20·\x20'+_0x52517f+'\x20to\x20'+_0x318dc4;}function renderBarList(_0xc4441e,_0x711f66){const _0x40fcb=document['getElementById'](_0xc4441e);if(!_0x40fcb)return;const _0x2708e6=Object['entries'](_0x711f66)['filter'](([,_0x464632])=>Number(_0x464632)>0x0)['sort']((_0x1f4117,_0x553c88)=>_0x553c88[0x1]-_0x1f4117[0x1]),_0x4061bf=_0x2708e6['reduce']((_0x4e78fb,[,_0x40fb5e])=>_0x4e78fb+Number(_0x40fb5e||0x0),0x0);if(_0x2708e6['length']===0x0){_0x40fcb['innerHTML']='<div\x20class=\x22text-muted\x22>No\x20data\x20available.</div>';return;}_0x40fcb['innerHTML']=_0x2708e6['map'](([_0x623ad8,_0x24f369])=>{const _0x221edc=_0x4061bf>0x0?Math['max'](0x2,Math['round'](_0x24f369/_0x4061bf*0x64)):0x0,_0x2b08b6=Utils['escapeHtml'](prettifyKey(_0x623ad8)),_0x533f09=Utils['escapeHtml'](formatNumber(_0x24f369));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>'+_0x2b08b6+'</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(_0x623ad8)['toLowerCase']())+'\x22\x20style=\x22width:\x20'+_0x221edc+'%\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>'+_0x533f09+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';})['join']('');}function renderObjectTable(_0x5380bf,_0x30e2f1,_0x559ad4,{includePercent:includePercent=![],labelFormatter:labelFormatter=null}={}){const _0x21d001=document['getElementById'](_0x5380bf);if(!_0x21d001)return;const _0x422ce4=Object['entries'](_0x30e2f1)['filter'](([,_0x1710a7])=>Number(_0x1710a7)>0x0)['sort']((_0x5d95ec,_0x267316)=>_0x267316[0x1]-_0x5d95ec[0x1]||String(_0x5d95ec[0x0])['localeCompare'](String(_0x267316[0x0])));if(_0x422ce4['length']===0x0){_0x21d001['innerHTML']='<tr><td\x20colspan=\x22'+(includePercent?0x3:0x2)+'\x22\x20class=\x22text-muted\x22>No\x20data\x20available.</td></tr>';return;}_0x21d001['innerHTML']=_0x422ce4['map'](([_0x598e6a,_0x1e2042])=>{const _0x1bbbb2=labelFormatter?labelFormatter(_0x598e6a):_0x598e6a,_0x40e877=includePercent?'<td>'+formatPercent(_0x559ad4>0x0?_0x1e2042/_0x559ad4*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(_0x1bbbb2))+'</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](formatNumber(_0x1e2042))+'</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x40e877+'\x0a\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20';})['join']('');}function renderUserTable(_0x27f397,_0x31767a){const _0x3c20a3=document['getElementById'](_0x27f397);if(!_0x3c20a3)return;if(!Array['isArray'](_0x31767a)||_0x31767a['length']===0x0){_0x3c20a3['innerHTML']='<tr><td\x20colspan=\x222\x22\x20class=\x22text-muted\x22>No\x20data\x20available.</td></tr>';return;}_0x3c20a3['innerHTML']=_0x31767a['map'](_0x51b31b=>'\x0a\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](_0x51b31b['name']||_0x51b31b['username']||_0x51b31b['userId']||'Unknown')+'</td>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](formatNumber(_0x51b31b['count']||0x0))+'</td>\x0a\x20\x20\x20\x20</tr>\x0a\x20\x20')['join']('');}function updateActiveFilterButtons(_0x516619,_0x67d17f){document['querySelectorAll'](_0x516619+'\x20.admin-filter-btn')['forEach'](_0x9bc4b6=>{_0x9bc4b6['classList']['toggle']('active',_0x9bc4b6['dataset']['level']===_0x67d17f||_0x9bc4b6['dataset']['days']===_0x67d17f);});}function setSummaryValue(_0x15d040,_0x23bcd1,_0x33af1d=''){const _0x39b131=document['getElementById'](_0x15d040);if(!_0x39b131)return;_0x39b131['textContent']=_0x23bcd1,_0x39b131['classList']['remove']('status-good','status-warn','status-bad'),_0x33af1d&&_0x39b131['classList']['add'](_0x33af1d);}function statusClassFromPercent(_0x2475c6){if(_0x2475c6>=0x50)return'status-good';if(_0x2475c6>0x3c)return'status-warn';return'status-bad';}function formatDateTime(_0x41cf51){const _0xee814e=new Date(_0x41cf51);if(Number['isNaN'](_0xee814e['getTime']()))return _0x41cf51||'Unknown';return _0xee814e['toLocaleString']();}function formatDurationMinutes(_0x532eab){const _0x537adb=Math['round'](Number(_0x532eab)||0x0);if(_0x537adb<0x3c)return _0x537adb+'m';const _0xd17422=Math['floor'](_0x537adb/0x3c),_0xf21e63=_0x537adb%0x3c;return _0xf21e63>0x0?_0xd17422+'h\x20'+_0xf21e63+'m':_0xd17422+'h';}function formatPercent(_0x338bce){return Math['round'](Number(_0x338bce)||0x0)+'%';}function formatNumber(_0x48adbf){return NUMBER_FORMATTER['format'](Number(_0x48adbf)||0x0);}function formatSignedNumber(_0x59cd93){const _0x266f6d=Number(_0x59cd93)||0x0;if(_0x266f6d>0x0)return'+'+formatNumber(_0x266f6d);return formatNumber(_0x266f6d);}function prettifyKey(_0xb614a3){return String(_0xb614a3)['replace'](/[_-]+/g,'\x20')['replace'](/\b\w/g,_0x429372=>_0x429372['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':[],'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 _0x4cf3cb=await checkAdminAccess();await initializeAdminMenu(_0x4cf3cb),setupEventListeners(),await loadEnvironmentOptions(),document['getElementById']('admin-loading')['hidden']=!![],document['getElementById']('admin-content')['hidden']=![];const _0x53da8e=getSessionValue('admin-health-auto-refresh');if(_0x53da8e!==null){const _0x12fe3f=document['getElementById']('health-auto-refresh');if(_0x12fe3f)_0x12fe3f['checked']=_0x53da8e!=='false';}const _0x241efe=getSessionValue('admin-logs-order');(_0x241efe===LOG_ORDER_ASC||_0x241efe===LOG_ORDER_DESC)&&(state['logs']['order']=_0x241efe);syncLogOrderUi();const _0x317b52=getSessionValue('admin-active-section'),_0x34b33e=['health','logs','usage']['includes'](_0x317b52)?_0x317b52:'health';await switchSection(_0x34b33e);}catch(_0x44c358){console['error']('Failed\x20to\x20initialize\x20Server\x20Administration\x20page',_0x44c358),document['getElementById']('admin-loading')['hidden']=!![],document['getElementById']('admin-error')['hidden']=![],document['getElementById']('admin-error-message')['textContent']=_0x44c358['message']||'Unknown\x20error';}}async function checkAdminAccess(){try{const _0x55b601=await API['getCurrentUser']();if(!window['Permissions']?.['hasServerPermission'](_0x55b601,'*')){Utils['showToast']('Access\x20denied:\x20Admin\x20privileges\x20required','error'),setTimeout(()=>{window['location']['href']='index.html';},0x7d0);throw new Error('Access\x20denied');}return _0x55b601;}catch(_0xb9f041){_0xb9f041['message']!=='Access\x20denied'&&(window['location']['href']='login.html');throw _0xb9f041;}}function setupEventListeners(){document['querySelectorAll']('.settings-nav-item')['forEach'](_0x225a96=>{_0x225a96['addEventListener']('click',()=>switchSection(_0x225a96['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'](_0x4e2a81=>{_0x4e2a81['addEventListener']('click',()=>{state['logs']['level']=_0x4e2a81['dataset']['level']||'ALL',updateActiveFilterButtons('#logs-level-filters',state['logs']['level']),loadLogs({'showLoading':![]});});}),document['querySelectorAll']('#logs-order-toggle\x20.admin-filter-btn')['forEach'](_0x34d07c=>{_0x34d07c['addEventListener']('click',()=>{setLogOrder(_0x34d07c['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',_0x5c9378=>{state['usage']['environment']=_0x5c9378['target']['value']||'',loadUsage({'showLoading':![]});}),document['querySelectorAll']('#usage-period-buttons\x20.admin-filter-btn')['forEach'](_0x26bf2a=>{_0x26bf2a['addEventListener']('click',()=>{state['usage']['days']=_0x26bf2a['dataset']['days']||'30',updateActiveFilterButtons('#usage-period-buttons',state['usage']['days']),loadUsage({'showLoading':![]});});});}async function switchSection(_0x315936){if(!_0x315936)return;document['querySelectorAll']('.settings-nav-item')['forEach'](_0x51ba7d=>{const _0x29f202=_0x51ba7d['dataset']['section']===_0x315936;_0x51ba7d['classList']['toggle']('active',_0x29f202),_0x51ba7d['setAttribute']('aria-selected',String(_0x29f202));}),document['querySelectorAll']('.settings-panel')['forEach'](_0x135df9=>{const _0x587d86=_0x135df9['id']==='section-'+_0x315936;_0x135df9['hidden']=!_0x587d86,_0x135df9['classList']['toggle']('active',_0x587d86);}),state['currentSection']=_0x315936,setSessionValue('admin-active-section',_0x315936),_0x315936!=='health'&&stopHealthAutoRefresh(),_0x315936!=='logs'&&stopLogStream(),_0x315936==='health'&&(syncHealthAutoRefresh(),await loadHealth({'showLoading':!state['health']['loaded']})),_0x315936==='logs'&&(await loadLogs({'showLoading':!state['logs']['loaded']}),state['logs']['live']?startLogStream():updateLogsLiveUi()),_0x315936==='usage'&&await loadUsage({'showLoading':!state['usage']['loaded']});}function getSessionValue(_0x2eba2b){try{return sessionStorage['getItem'](_0x2eba2b);}catch{return null;}}function setSessionValue(_0x99e77f,_0x3b2436){try{sessionStorage['setItem'](_0x99e77f,_0x3b2436);}catch{}}async function loadEnvironmentOptions(){const _0x425c6c=await API['get']('/environments');state['environments']=(_0x425c6c['environments']||[])['map'](_0x239944=>_0x239944?.['name'])['filter'](Boolean)['sort']((_0x440312,_0x41e7b9)=>_0x440312['localeCompare'](_0x41e7b9));const _0x3230e3=document['getElementById']('usage-environment-filter');if(!_0x3230e3)return;_0x3230e3['innerHTML']='<option\x20value=\x22\x22>All\x20environments</option>'+state['environments']['map'](_0x592c5f=>'<option\x20value=\x22'+Utils['escapeHtml'](_0x592c5f)+'\x22>'+Utils['escapeHtml'](_0x592c5f)+'</option>')['join'](''),_0x3230e3['value']=state['usage']['environment'];}function syncHealthAutoRefresh(){const _0x1023c4=document['getElementById']('health-auto-refresh');if(_0x1023c4)setSessionValue('admin-health-auto-refresh',String(_0x1023c4['checked']));const _0x3562bf=state['currentSection']==='health'&&!!_0x1023c4?.['checked'];stopHealthAutoRefresh();if(!_0x3562bf)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 _0x149603=document['getElementById']('health-loading'),_0x2692bc=document['getElementById']('health-error'),_0x18a74d=document['getElementById']('health-content');(showLoading||!state['health']['loaded'])&&(_0x149603['hidden']=![],_0x2692bc['hidden']=!![],_0x18a74d['hidden']=!![]);try{const [_0x31b4ac]=await Promise['all']([API['get']('/health/metrics'),loadUpdateSettings()['catch'](_0x2b5e56=>{console['error']('Failed\x20to\x20load\x20update\x20settings',_0x2b5e56),state['health']['updateEnabled']=![],state['health']['hasRestartCommand']=![],syncHealthActionButtons();})]);renderHealthMetrics(_0x31b4ac),!state['health']['currentVersion']&&await loadVersionStatus({'checkUpdates':![]}),_0x149603['hidden']=!![],_0x2692bc['hidden']=!![],_0x18a74d['hidden']=![],state['health']['loaded']=!![];}catch(_0x39dea4){console['error']('Failed\x20to\x20load\x20server\x20metrics',_0x39dea4),_0x149603['hidden']=!![],_0x2692bc['hidden']=![],_0x18a74d['hidden']=!![],document['getElementById']('health-error-message')['textContent']=_0x39dea4['message']||'Unknown\x20error';}finally{state['health']['request']=null;}})()),state['health']['request'];}function syncHealthActionButtons(){const _0x3987ce=document['getElementById']('health-update-btn'),_0x453fcc=document['getElementById']('health-restart-btn');if(!_0x3987ce||!_0x453fcc)return;const _0x272d91=state['health']['updateEnabled'],_0x2db879=_0x272d91&&state['health']['versionChecked']&&state['health']['updateAvailable'];_0x3987ce['hidden']=!_0x2db879,_0x3987ce['disabled']=state['health']['updateInProgress']||state['health']['restartInProgress']||!state['health']['latestVersion'],_0x3987ce['textContent']=state['health']['updateInProgress']?'Updating...':'Update\x20Server',_0x453fcc['hidden']=!_0x272d91,_0x453fcc['disabled']=state['health']['updateInProgress']||state['health']['restartInProgress'];}function setUpdateOutput({status:_0x49425,output:_0x58ee50}){const _0x204ca3=document['getElementById']('health-update-output-wrap'),_0x51e94f=document['getElementById']('health-update-status'),_0xb877b9=document['getElementById']('health-update-output');if(!_0x204ca3||!_0x51e94f||!_0xb877b9)return;const _0x39e9e4=_0x49425||'';_0x204ca3['hidden']=![],_0x51e94f['className']='admin-update-status',_0x39e9e4&&_0x51e94f['classList']['add'](_0x39e9e4),_0x51e94f['textContent']=_0x39e9e4==='success'?'Success':_0x39e9e4==='error'?'Failed':'In\x20Progress',_0xb877b9['textContent']=_0x58ee50||'No\x20output\x20returned.';}function buildCommandOutput(_0x2d0436,_0x459f4c){const _0x402270=[];typeof _0x2d0436==='string'&&_0x2d0436['trim']()&&_0x402270['push'](_0x2d0436['trim']());if(typeof _0x459f4c==='string'&&_0x459f4c['trim']()){const _0x32c433=_0x459f4c['trim'](),_0x1c3de3=_0x402270['some'](_0x36629d=>_0x36629d['includes'](_0x32c433));!_0x1c3de3&&_0x402270['push']('Error:\x0a'+_0x32c433);}return _0x402270['join']('\x0a\x0a');}function showRestartOverlay({title:_0x1fb4fe,message:_0x8fbefd,showRetry:showRetry=![]}){const _0xf13cf2=document['getElementById']('health-restart-overlay'),_0x391fa3=document['getElementById']('restart-overlay-title'),_0x4c67f5=document['getElementById']('restart-overlay-message'),_0x1bcc25=document['getElementById']('restart-overlay-retry');if(!_0xf13cf2||!_0x391fa3||!_0x4c67f5||!_0x1bcc25)return;_0x391fa3['textContent']=_0x1fb4fe,_0x4c67f5['textContent']=_0x8fbefd,_0x1bcc25['hidden']=!showRetry,_0xf13cf2['hidden']=![];}function hideRestartOverlay(){const _0x1df2e4=document['getElementById']('health-restart-overlay');_0x1df2e4&&(_0x1df2e4['hidden']=!![]);}function sleep(_0xfc7b51){return new Promise(_0x50c214=>{window['setTimeout'](_0x50c214,_0xfc7b51);});}async function loadUpdateSettings(){const _0xf18758=await API['getUpdateSettings']();return state['health']['updateEnabled']=!!_0xf18758['enabled'],state['health']['hasRestartCommand']=!!_0xf18758['hasRestartCommand'],syncHealthActionButtons(),_0xf18758;}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 _0x45f8fe=await API['applyServerUpdate'](state['health']['latestVersion']),_0x28ff3b=buildCommandOutput(_0x45f8fe['output'],_0x45f8fe['error']);_0x45f8fe['success']?(setUpdateOutput({'status':'success','output':_0x28ff3b||'Server\x20update\x20to\x20'+state['health']['latestVersion']+'\x20completed.'}),Utils['showSuccess']('Server\x20update\x20to\x20'+state['health']['latestVersion']+'\x20completed')):(setUpdateOutput({'status':'error','output':_0x28ff3b||'Server\x20update\x20failed\x20without\x20additional\x20output.'}),Utils['showError'](_0x45f8fe['error']||'Server\x20update\x20failed'));}catch(_0x1ef5fb){setUpdateOutput({'status':'error','output':buildCommandOutput(_0x1ef5fb['output'],_0x1ef5fb['commandError']||_0x1ef5fb['message'])||'Failed\x20to\x20apply\x20server\x20update.'}),Utils['showError'](_0x1ef5fb['message']||'Failed\x20to\x20apply\x20server\x20update');}finally{state['health']['updateInProgress']=![],syncHealthActionButtons();}}function showRestartConfirmation(){if(!state['health']['updateEnabled']||state['health']['restartInProgress'])return;const _0xee333f=document['getElementById']('restart-modal');_0xee333f&&(_0xee333f['hidden']=![]);}function hideRestartModal(){const _0x25620e=document['getElementById']('restart-modal');_0x25620e&&(_0x25620e['hidden']=!![]);}async function confirmRestart(){if(state['health']['restartInProgress'])return;hideRestartModal(),state['health']['restartInProgress']=!![],syncHealthActionButtons();try{await API['restartServer'](),await waitForServerRestart();}catch(_0x23524c){state['health']['restartInProgress']=![],syncHealthActionButtons(),hideRestartOverlay(),Utils['showError'](_0x23524c['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 _0x8be165=Date['now']();let _0x582cfb=![];for(let _0x276c77=0x0;_0x276c77<RESTART_POLL_MAX_ATTEMPTS;_0x276c77+=0x1){await sleep(RESTART_POLL_INTERVAL_MS);try{await API['get']('/health?ts='+Date['now']());const _0x160325=Date['now']()-_0x8be165;if(_0x582cfb||_0x160325>=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(_0x11b5d6){_0x582cfb=!![];}}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 _0x4aa49e=document['getElementById']('health-check-updates-btn');_0x4aa49e&&(_0x4aa49e['disabled']=!![],_0x4aa49e['textContent']=checkUpdates?'Checking...':'Loading...');try{const _0x1fffde=await API['get']('/health');state['health']['currentVersion']=_0x1fffde['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 _0x3157c0=await API['get']('/health/check-updates');state['health']['versionChecked']=!![],state['health']['latestVersion']=_0x3157c0['latestVersion']||'Unavailable',state['health']['installCommand']=_0x3157c0['installCommand']||null,state['health']['updateAvailable']=!!_0x3157c0['updateAvailable'],document['getElementById']('health-version-current')['textContent']=_0x3157c0['currentVersion']||state['health']['currentVersion'],document['getElementById']('health-version-latest')['textContent']=state['health']['latestVersion'],document['getElementById']('health-version-status')['textContent']=buildVersionStatusText(_0x3157c0),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(_0x2b9061){console['error']('Failed\x20to\x20load\x20version\x20status',_0x2b9061),state['health']['updateAvailable']=![],document['getElementById']('health-version-status')['textContent']='Unable\x20to\x20load\x20version\x20status:\x20'+_0x2b9061['message'],document['getElementById']('health-install-command-wrap')['hidden']=!![],document['getElementById']('health-copy-install-btn')['hidden']=!![],syncHealthActionButtons();}finally{_0x4aa49e&&(_0x4aa49e['disabled']=![],_0x4aa49e['textContent']='Check\x20for\x20Updates');}}function buildVersionStatusText(_0x352902){const _0x52ca4b=_0x352902?.['versionStatus'];if(_0x52ca4b==='update-available')return'Update\x20available:\x20'+_0x352902['currentVersion']+'\x20→\x20'+_0x352902['latestVersion'];if(_0x52ca4b==='up-to-date')return'Running\x20the\x20latest\x20published\x20version\x20('+_0x352902['latestVersion']+').';if(_0x52ca4b==='ahead-of-latest')return'This\x20server\x20is\x20ahead\x20of\x20npm\x20latest\x20('+_0x352902['latestVersion']+').';return'Unable\x20to\x20compare\x20current\x20and\x20latest\x20versions.';}async function copyInstallCommand(){if(!state['health']['installCommand'])return;const _0x4785b7=await Utils['copyToClipboard'](state['health']['installCommand']);_0x4785b7?Utils['showSuccess']('Install\x20command\x20copied'):Utils['showError']('Failed\x20to\x20copy\x20install\x20command');}function renderHealthMetrics(_0x47d191){document['getElementById']('cpu-usage')['textContent']=_0x47d191['cpu']?.['display']||'-',document['getElementById']('memory-usage')['textContent']=_0x47d191['memory']?.['display']||'-',document['getElementById']('disk-usage')['textContent']=_0x47d191['disk']?.['display']||'-',document['getElementById']('docker-containers')['textContent']=_0x47d191['docker']?.['display']||'-',document['getElementById']('server-uptime')['textContent']=_0x47d191['uptime']?.['display']||'-',document['getElementById']('active-sessions')['textContent']=_0x47d191['sessions']?.['display']||'-',setMetricProgress('cpu-progress',_0x47d191['cpu']?.['percent'],statusFromPercent(_0x47d191['cpu']?.['percent'])),setMetricProgress('memory-progress',_0x47d191['memory']?.['percent'],statusFromPercent(_0x47d191['memory']?.['percent'])),setMetricProgress('disk-progress',_0x47d191['disk']?.['percent'],statusFromPercent(_0x47d191['disk']?.['percent']));const _0x3bd355=_0x47d191['docker']?.['total']>0x0?_0x47d191['docker']['running']/_0x47d191['docker']['total']*0x64:0x0;setMetricProgress('docker-progress',_0x3bd355,'ok');const _0x45824f=_0x47d191['dockerStorage']||{},_0x8516e7=document['getElementById']('docker-storage-card');document['getElementById']('docker-storage-total')['textContent']=_0x45824f['display']||'-',document['getElementById']('docker-storage-available')['textContent']=_0x45824f['availableDisplay']||'',document['getElementById']('docker-storage-available')['hidden']=!_0x45824f['availableDisplay'],document['getElementById']('docker-storage-reclaimable')['textContent']=_0x45824f['reclaimableDisplay']||'',document['getElementById']('docker-storage-images')['textContent']=_0x45824f['images']?.['display']||'-',document['getElementById']('docker-storage-containers')['textContent']=_0x45824f['containers']?.['display']||'-',document['getElementById']('docker-storage-volumes')['textContent']=_0x45824f['volumes']?.['display']||'-',document['getElementById']('docker-storage-buildcache')['textContent']=_0x45824f['buildCache']?.['display']||'-',setMetricProgress('docker-storage-progress',_0x45824f['percent'],_0x45824f['status']||'ok'),_0x8516e7['classList']['remove']('status-warning','status-critical'),_0x45824f['status']==='warning'&&_0x8516e7['classList']['add']('status-warning'),_0x45824f['status']==='critical'&&_0x8516e7['classList']['add']('status-critical');}function clampPercent(_0x10662c){if(!Number['isFinite'](_0x10662c))return 0x0;return Math['max'](0x0,Math['min'](0x64,Math['round'](_0x10662c)));}function statusFromPercent(_0x215139){if(!Number['isFinite'](_0x215139))return'ok';if(_0x215139>=0x5a)return'critical';if(_0x215139>=0x4b)return'warning';return'ok';}function setMetricProgress(_0x1a6b68,_0x17ebd6,_0x8a648a='ok'){const _0x5c1e83=document['getElementById'](_0x1a6b68);if(!_0x5c1e83)return;const _0x5937eb=clampPercent(_0x17ebd6);_0x5c1e83['style']['width']=_0x5937eb+'%',_0x5c1e83['classList']['remove']('status-ok','status-warning','status-critical'),_0x5c1e83['classList']['add'](_0x8a648a==='critical'?'status-critical':_0x8a648a==='warning'?'status-warning':'status-ok'),_0x5c1e83['parentElement']?.['setAttribute']('aria-valuenow',String(_0x5937eb));}async function runCleanupAction(_0x1bd73c,_0x1ce6e9){const _0x383019=document['getElementById']('server-health-action-status'),_0x30dc31=[document['getElementById']('health-refresh-btn'),document['getElementById']('server-stop-containers'),document['getElementById']('server-remove-stopped'),document['getElementById']('server-prune-docker')]['filter'](Boolean);_0x30dc31['forEach'](_0x3e40de=>{_0x3e40de['disabled']=!![];}),_0x383019['hidden']=![],_0x383019['classList']['remove']('success','error'),_0x383019['textContent']=_0x1bd73c+'...';try{const _0x56e3e7=await _0x1ce6e9();_0x383019['classList']['add']('success'),_0x383019['textContent']=_0x56e3e7?.['message']||_0x1bd73c+'\x20complete',await loadHealth({'showLoading':!![]});}catch(_0x1ba749){console['error'](_0x1bd73c+'\x20failed',_0x1ba749),_0x383019['classList']['add']('error'),_0x383019['textContent']=_0x1ba749['message']||_0x1bd73c+'\x20failed';}finally{_0x30dc31['forEach'](_0x5a06e8=>{_0x5a06e8['disabled']=![];});}}function toggleCleanupSection(){const _0x33a6cd=document['getElementById']('cleanup-section'),_0x4f1620=document['getElementById']('cleanup-content'),_0x5e0da9=document['getElementById']('cleanup-toggle');if(!_0x33a6cd||!_0x4f1620||!_0x5e0da9)return;const _0x1db3d3=_0x33a6cd['classList']['toggle']('expanded');_0x4f1620['hidden']=!_0x1db3d3,_0x5e0da9['setAttribute']('aria-expanded',String(_0x1db3d3));}async function loadLogs({showLoading:showLoading=![]}={}){if(state['logs']['request'])return state['logs']['request'];return state['logs']['request']=((async()=>{const _0x553dc0=document['getElementById']('logs-loading'),_0x1a7612=document['getElementById']('logs-error');(showLoading||!state['logs']['loaded'])&&(_0x553dc0['hidden']=![],_0x1a7612['hidden']=!![],document['getElementById']('logs-empty')['hidden']=!![],document['getElementById']('logs-container')['hidden']=!![]);try{const _0x2fe3dd=new URLSearchParams({'limit':'500'});state['logs']['level']!=='ALL'&&_0x2fe3dd['set']('level',state['logs']['level']);state['logs']['search']&&_0x2fe3dd['set']('search',state['logs']['search']);const _0x26892c=await API['get']('/logs?'+_0x2fe3dd['toString']());state['logs']['entries']=Array['isArray'](_0x26892c['entries'])?_0x26892c['entries']['slice'](-state['logs']['maxEntries']):[],state['logs']['total']=Number(_0x26892c['total'])||0x0,state['logs']['minLevel']=_0x26892c['minLevel']||'INFO',state['logs']['loaded']=!![],_0x553dc0['hidden']=!![],_0x1a7612['hidden']=!![],renderLogs();}catch(_0x4e124b){console['error']('Failed\x20to\x20load\x20logs',_0x4e124b),_0x553dc0['hidden']=!![],_0x1a7612['hidden']=![],document['getElementById']('logs-error-message')['textContent']=_0x4e124b['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 _0x3a952a=document['getElementById']('logs-container'),_0x540a51=document['getElementById']('logs-empty'),_0x427ef2=stickToLiveEdge||state['logs']['autoScroll']&&state['logs']['live'],_0x1b595b=_0x3a952a?.['scrollTop']||0x0,_0x6fe4a5=_0x3a952a?.['scrollHeight']||0x0,_0x107376=getOrderedLogEntries();updateLogsMeta(_0x107376['length']);if(_0x107376['length']===0x0){_0x3a952a['hidden']=!![],_0x540a51['hidden']=![];return;}_0x540a51['hidden']=!![],_0x3a952a['hidden']=![],_0x3a952a['innerHTML']=_0x107376['map'](renderLogEntry)['join']('');if(_0x427ef2){scrollLogsToLiveEdge(_0x3a952a);return;}if(state['logs']['order']===LOG_ORDER_DESC){const _0x2c1045=_0x3a952a['scrollHeight'],_0x5918ff=_0x2c1045-_0x6fe4a5;_0x3a952a['scrollTop']=_0x1b595b>0x0?_0x1b595b+Math['max'](_0x5918ff,0x0):_0x1b595b;return;}_0x3a952a['scrollTop']=_0x1b595b;}function getVisibleLogEntries(){const _0xd1b118=state['logs']['search']['trim']()['toLowerCase']();return state['logs']['entries']['filter'](_0x9f5ae3=>{if(state['logs']['level']!=='ALL'&&_0x9f5ae3['level']!==state['logs']['level'])return![];if(!_0xd1b118)return!![];const _0x128ade=String(_0x9f5ae3['message']||'')['toLowerCase'](),_0x17a17e=_0x9f5ae3['context']?JSON['stringify'](_0x9f5ae3['context'])['toLowerCase']():'';return _0x128ade['includes'](_0xd1b118)||_0x17a17e['includes'](_0xd1b118);});}function getOrderedLogEntries(){const _0x927f45=getVisibleLogEntries();return state['logs']['order']===LOG_ORDER_DESC?_0x927f45['slice']()['reverse']():_0x927f45;}function renderLogEntry(_0x2ffc7f){const _0x1a1c25=Utils['escapeHtml'](formatDateTime(_0x2ffc7f['timestamp'])),_0x88fc1d=Utils['escapeHtml'](String(_0x2ffc7f['level']||'INFO')),_0x3bc2bf=Utils['escapeHtml'](String(_0x2ffc7f['message']||'')),_0x38d3e7=_0x2ffc7f['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'](_0x2ffc7f['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>'+_0x1a1c25+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22admin-log-level\x20level-'+_0x88fc1d['toLowerCase']()+'\x22>'+_0x88fc1d+'</span>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-log-message\x22>'+_0x3bc2bf+'</div>\x0a\x20\x20\x20\x20\x20\x20'+_0x38d3e7+'\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}function updateLogsMeta(_0x34b999){const _0x4a400f=document['getElementById']('logs-meta');if(!_0x4a400f)return;const _0x4c6a52=state['logs']['entries']['length'],_0x5967ce=state['logs']['level']!=='ALL'||!!state['logs']['search']['trim'](),_0x55b976=state['logs']['order']===LOG_ORDER_DESC?'newest\x20first':'oldest\x20first';_0x4a400f['textContent']=_0x5967ce?'Showing\x20'+_0x34b999+'\x20of\x20'+_0x4c6a52+'\x20loaded\x20entries\x20for\x20the\x20current\x20filters\x20in\x20'+_0x55b976+'\x20order.\x20Minimum\x20runtime\x20level:\x20'+state['logs']['minLevel']+'.':'Showing\x20'+_0x34b999+'\x20recent\x20buffered\x20entries\x20in\x20'+_0x55b976+'\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 _0x376531=document['getElementById']('logs-live-toggle'),_0x4246da=document['getElementById']('logs-stream-status');if(!_0x376531||!_0x4246da)return;_0x4246da['classList']['remove']('live','error');if(!state['logs']['live']){_0x4246da['textContent']='Paused',_0x376531['textContent']='Start\x20Live';return;}if(state['logs']['streamState']==='live')_0x4246da['textContent']='Live',_0x4246da['classList']['add']('live');else state['logs']['streamState']==='error'?(_0x4246da['textContent']='Reconnecting',_0x4246da['classList']['add']('error')):_0x4246da['textContent']='Connecting';_0x376531['textContent']='Pause\x20Live';}function startLogStream(){if(state['currentSection']!=='logs'||state['logs']['stream'])return;state['logs']['streamState']='connecting',updateLogsLiveUi();const _0x414143=new EventSource(API['getBaseUrl']()+'/logs/stream');state['logs']['stream']=_0x414143,_0x414143['addEventListener']('log',_0x41b752=>{try{const _0x1d0848=JSON['parse'](_0x41b752['data']);state['logs']['entries']['push'](_0x1d0848),state['logs']['entries']['length']>state['logs']['maxEntries']&&state['logs']['entries']['shift'](),renderLogs();}catch(_0x81f5f8){console['error']('Failed\x20to\x20parse\x20log\x20stream\x20event',_0x81f5f8);}}),_0x414143['onopen']=()=>{state['logs']['streamState']='live',updateLogsLiveUi();},_0x414143['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(_0x4403cd,{focusLiveEdge:focusLiveEdge=![]}={}){const _0x3737ce=_0x4403cd===LOG_ORDER_DESC?LOG_ORDER_DESC:LOG_ORDER_ASC;if(state['logs']['order']===_0x3737ce){focusLiveEdge&&(state['logs']['autoScroll']=!![],renderLogs({'stickToLiveEdge':!![]}));return;}state['logs']['order']=_0x3737ce,setSessionValue('admin-logs-order',_0x3737ce),syncLogOrderUi(),focusLiveEdge&&(state['logs']['autoScroll']=!![]),renderLogs({'stickToLiveEdge':focusLiveEdge});}function syncLogOrderUi(){updateActiveFilterButtons('#logs-order-toggle',state['logs']['order']);}function handleLogsSearchInput(_0x47472c){const _0x59d8f1=_0x47472c['target']['value']||'';state['logs']['searchTimer']&&clearTimeout(state['logs']['searchTimer']),state['logs']['searchTimer']=window['setTimeout'](()=>{state['logs']['search']=_0x59d8f1,loadLogs({'showLoading':![]});},LOG_SEARCH_DEBOUNCE_MS);}function updateLogAutoScrollState(){const _0x5cb3fd=document['getElementById']('logs-container');if(!_0x5cb3fd)return;const _0x1b0c45=state['logs']['order']===LOG_ORDER_DESC?_0x5cb3fd['scrollTop']:_0x5cb3fd['scrollHeight']-_0x5cb3fd['scrollTop']-_0x5cb3fd['clientHeight'];state['logs']['autoScroll']=_0x1b0c45<0x20;}async function loadUsage({showLoading:showLoading=![]}={}){if(state['usage']['request'])return state['usage']['request'];return state['usage']['request']=((async()=>{const _0x4635f1=document['getElementById']('usage-loading'),_0x332647=document['getElementById']('usage-error');(showLoading||!state['usage']['loaded'])&&(_0x4635f1['hidden']=![],_0x332647['hidden']=!![],document['getElementById']('usage-empty')['hidden']=!![],document['getElementById']('usage-content')['hidden']=!![]);try{const _0x4323d8=new URLSearchParams();_0x4323d8['set']('days',state['usage']['days']);state['usage']['environment']&&_0x4323d8['set']('environment',state['usage']['environment']);const _0x33be38=await API['get']('/stats?'+_0x4323d8['toString']());state['usage']['loaded']=!![],_0x4635f1['hidden']=!![],_0x332647['hidden']=!![],renderUsage(_0x33be38);}catch(_0x960460){console['error']('Failed\x20to\x20load\x20usage\x20statistics',_0x960460),_0x4635f1['hidden']=!![],_0x332647['hidden']=![],document['getElementById']('usage-error-message')['textContent']=_0x960460['message']||'Unknown\x20error',document['getElementById']('usage-empty')['hidden']=!![],document['getElementById']('usage-content')['hidden']=!![];}finally{state['usage']['request']=null;}})()),state['usage']['request'];}function renderUsage(_0x467cdf){const _0x1b032b=Number(_0x467cdf?.['tasks']?.['total'])||0x0,_0x3053d6=document['getElementById']('usage-empty'),_0x3cf0b4=document['getElementById']('usage-content');if(_0x1b032b===0x0){_0x3053d6['hidden']=![],_0x3cf0b4['hidden']=!![];return;}_0x3053d6['hidden']=!![],_0x3cf0b4['hidden']=![];const _0xb9c3ec=Number(_0x467cdf?.['approvalRate']?.['successRate'])||0x0,_0x355fd6=Math['round'](_0xb9c3ec*0x64),_0xa5edd6=_0x467cdf?.['code']?.['approved']||{},_0x10279e=Number(_0xa5edd6?.['tasks'])||0x0,_0x5078e6=(Number(_0xa5edd6?.['linesAdded'])||0x0)-(Number(_0xa5edd6?.['linesDeleted'])||0x0),_0x4e2ee7=(Number(_0x467cdf?.['code']?.['linesAdded'])||0x0)-(Number(_0x467cdf?.['code']?.['linesDeleted'])||0x0),_0x314fae=Number(_0x467cdf?.['timing']?.['averageDurationMinutes'])||0x0;setSummaryValue('usage-total-tasks',formatNumber(_0x1b032b)),setSummaryValue('usage-success-rate',_0x355fd6+'%',statusClassFromPercent(_0x355fd6)),setSummaryValue('usage-net-lines',formatSignedNumber(_0x4e2ee7)),setSummaryValue('usage-average-duration',formatDurationMinutes(_0x314fae));const _0x48aee1=_0x1b032b>0x0?Math['round'](_0x10279e/_0x1b032b*0x64):0x0;document['getElementById']('usage-approved-summary')['textContent']=formatNumber(_0x10279e)+'\x20approved\x20('+_0x48aee1+'%)\x20·\x20'+formatNumber(_0x467cdf['timing']['totalDurationHours']||0x0)+'h\x20total',document['getElementById']('usage-success-detail')['textContent']=(_0x467cdf['approvalRate']['completed']||0x0)+'\x20completed\x20/\x20'+(_0x467cdf['approvalRate']['failed']||0x0)+'\x20failed\x20/\x20'+(_0x467cdf['approvalRate']['interrupted']||0x0)+'\x20interrupted',document['getElementById']('usage-net-lines-detail')['textContent']='+'+formatNumber(_0x467cdf['code']['linesAdded']||0x0)+'\x20/\x20-'+formatNumber(_0x467cdf['code']['linesDeleted']||0x0)+'\x20·\x20Approved\x20'+formatSignedNumber(_0x5078e6)+'\x20net',document['getElementById']('usage-average-duration-detail')['textContent']=formatDurationMinutes(_0x467cdf['timing']['medianDurationMinutes']||0x0)+'\x20median\x20·\x20'+formatNumber(_0x467cdf['timing']['totalDurationHours']||0x0)+'h\x20total',document['getElementById']('usage-period-summary')['textContent']=buildPeriodSummary(_0x467cdf['period']),renderBarList('usage-status-bars',_0x467cdf['tasks']['byStatus']||{}),renderObjectTable('usage-type-body',_0x467cdf['tasks']['byType']||{},_0x1b032b,{'includePercent':!![],'labelFormatter':prettifyKey}),renderObjectTable('usage-environment-body',_0x467cdf['tasks']['byEnvironment']||{},_0x1b032b),renderUserTable('usage-user-body',_0x467cdf['tasks']['byUser']||[]),renderObjectTable('usage-source-body',_0x467cdf['tasks']['bySource']||{},_0x1b032b,{'labelFormatter':prettifyKey}),document['getElementById']('usage-lines-added')['textContent']=formatNumber(_0x467cdf['code']['linesAdded']||0x0),document['getElementById']('usage-lines-deleted')['textContent']=formatNumber(_0x467cdf['code']['linesDeleted']||0x0),document['getElementById']('usage-files-changed')['textContent']=formatNumber(_0x467cdf['code']['filesChanged']||0x0),document['getElementById']('usage-repositories-affected')['textContent']=formatNumber(_0x467cdf['code']['repositoriesAffected']||0x0),document['getElementById']('usage-approved-lines-added')['textContent']=formatNumber(_0xa5edd6['linesAdded']||0x0),document['getElementById']('usage-approved-lines-deleted')['textContent']=formatNumber(_0xa5edd6['linesDeleted']||0x0),document['getElementById']('usage-approved-files-changed')['textContent']=formatNumber(_0xa5edd6['filesChanged']||0x0),document['getElementById']('usage-approved-repositories-affected')['textContent']=formatNumber(_0xa5edd6['repositoriesAffected']||0x0);const _0x252ba2=(_0x55c5c3,_0x213881)=>_0x55c5c3>0x0?Math['round'](_0x213881/_0x55c5c3*0x64):0x0;document['getElementById']('usage-added-pct')['style']['width']=_0x252ba2(_0x467cdf['code']['linesAdded']||0x0,_0xa5edd6['linesAdded']||0x0)+'%',document['getElementById']('usage-deleted-pct')['style']['width']=_0x252ba2(_0x467cdf['code']['linesDeleted']||0x0,_0xa5edd6['linesDeleted']||0x0)+'%',document['getElementById']('usage-files-pct')['style']['width']=_0x252ba2(_0x467cdf['code']['filesChanged']||0x0,_0xa5edd6['filesChanged']||0x0)+'%',document['getElementById']('usage-repos-pct')['style']['width']=_0x252ba2(_0x467cdf['code']['repositoriesAffected']||0x0,_0xa5edd6['repositoriesAffected']||0x0)+'%';}function buildPeriodSummary(_0x4a1542){const _0x364fbe=_0x4a1542?.['from']?formatDateTime(_0x4a1542['from']):'the\x20earliest\x20loaded\x20task',_0x8e719a=_0x4a1542?.['to']?formatDateTime(_0x4a1542['to']):'now',_0x3d6b9a=_0x4a1542?.['days']?_0x4a1542['days']+'\x20day\x20window':'All\x20available\x20task\x20history';return _0x3d6b9a+'\x20·\x20'+_0x364fbe+'\x20to\x20'+_0x8e719a;}function renderBarList(_0x369522,_0x5b8f52){const _0x1c001b=document['getElementById'](_0x369522);if(!_0x1c001b)return;const _0x35e486=Object['entries'](_0x5b8f52)['filter'](([,_0x2b0a44])=>Number(_0x2b0a44)>0x0)['sort']((_0x426349,_0x4f13d0)=>_0x4f13d0[0x1]-_0x426349[0x1]),_0x3ee584=_0x35e486['reduce']((_0x51815,[,_0x34fe06])=>_0x51815+Number(_0x34fe06||0x0),0x0);if(_0x35e486['length']===0x0){_0x1c001b['innerHTML']='<div\x20class=\x22text-muted\x22>No\x20data\x20available.</div>';return;}_0x1c001b['innerHTML']=_0x35e486['map'](([_0x98821d,_0xc3423e])=>{const _0x22d607=_0x3ee584>0x0?Math['max'](0x2,Math['round'](_0xc3423e/_0x3ee584*0x64)):0x0,_0xc4face=Utils['escapeHtml'](prettifyKey(_0x98821d)),_0x185b98=Utils['escapeHtml'](formatNumber(_0xc3423e));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>'+_0xc4face+'</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(_0x98821d)['toLowerCase']())+'\x22\x20style=\x22width:\x20'+_0x22d607+'%\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>'+_0x185b98+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';})['join']('');}function renderObjectTable(_0x304510,_0xb028c6,_0x186744,{includePercent:includePercent=![],labelFormatter:labelFormatter=null}={}){const _0x290b98=document['getElementById'](_0x304510);if(!_0x290b98)return;const _0x46d929=Object['entries'](_0xb028c6)['filter'](([,_0x5bf1ce])=>Number(_0x5bf1ce)>0x0)['sort']((_0x574af6,_0x5d3f34)=>_0x5d3f34[0x1]-_0x574af6[0x1]||String(_0x574af6[0x0])['localeCompare'](String(_0x5d3f34[0x0])));if(_0x46d929['length']===0x0){_0x290b98['innerHTML']='<tr><td\x20colspan=\x22'+(includePercent?0x3:0x2)+'\x22\x20class=\x22text-muted\x22>No\x20data\x20available.</td></tr>';return;}_0x290b98['innerHTML']=_0x46d929['map'](([_0x22f372,_0x3bf191])=>{const _0x349a60=labelFormatter?labelFormatter(_0x22f372):_0x22f372,_0x5a1cec=includePercent?'<td>'+formatPercent(_0x186744>0x0?_0x3bf191/_0x186744*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(_0x349a60))+'</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](formatNumber(_0x3bf191))+'</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x5a1cec+'\x0a\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20';})['join']('');}function renderUserTable(_0x5e0251,_0x17ab1b){const _0x21498a=document['getElementById'](_0x5e0251);if(!_0x21498a)return;if(!Array['isArray'](_0x17ab1b)||_0x17ab1b['length']===0x0){_0x21498a['innerHTML']='<tr><td\x20colspan=\x222\x22\x20class=\x22text-muted\x22>No\x20data\x20available.</td></tr>';return;}_0x21498a['innerHTML']=_0x17ab1b['map'](_0x4d86ba=>'\x0a\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](_0x4d86ba['name']||_0x4d86ba['username']||_0x4d86ba['userId']||'Unknown')+'</td>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](formatNumber(_0x4d86ba['count']||0x0))+'</td>\x0a\x20\x20\x20\x20</tr>\x0a\x20\x20')['join']('');}function updateActiveFilterButtons(_0x584aff,_0x3e17e0){document['querySelectorAll'](_0x584aff+'\x20.admin-filter-btn')['forEach'](_0x58b2ca=>{_0x58b2ca['classList']['toggle']('active',_0x58b2ca['dataset']['level']===_0x3e17e0||_0x58b2ca['dataset']['days']===_0x3e17e0||_0x58b2ca['dataset']['order']===_0x3e17e0);});}function scrollLogsToLiveEdge(_0x2a7d35){if(!_0x2a7d35)return;if(state['logs']['order']===LOG_ORDER_DESC){_0x2a7d35['scrollTop']=0x0;return;}_0x2a7d35['scrollTop']=_0x2a7d35['scrollHeight'];}function setSummaryValue(_0x329b6d,_0x496990,_0x16b1bf=''){const _0x37d3d3=document['getElementById'](_0x329b6d);if(!_0x37d3d3)return;_0x37d3d3['textContent']=_0x496990,_0x37d3d3['classList']['remove']('status-good','status-warn','status-bad'),_0x16b1bf&&_0x37d3d3['classList']['add'](_0x16b1bf);}function statusClassFromPercent(_0x5e6aeb){if(_0x5e6aeb>=0x50)return'status-good';if(_0x5e6aeb>0x3c)return'status-warn';return'status-bad';}function formatDateTime(_0x349e71){const _0x468672=new Date(_0x349e71);if(Number['isNaN'](_0x468672['getTime']()))return _0x349e71||'Unknown';return _0x468672['toLocaleString']();}function formatDurationMinutes(_0x4d65e9){const _0x4e1c0c=Math['round'](Number(_0x4d65e9)||0x0);if(_0x4e1c0c<0x3c)return _0x4e1c0c+'m';const _0x2adde1=Math['floor'](_0x4e1c0c/0x3c),_0x476662=_0x4e1c0c%0x3c;return _0x476662>0x0?_0x2adde1+'h\x20'+_0x476662+'m':_0x2adde1+'h';}function formatPercent(_0x1ba7c0){return Math['round'](Number(_0x1ba7c0)||0x0)+'%';}function formatNumber(_0x24506d){return NUMBER_FORMATTER['format'](Number(_0x24506d)||0x0);}function formatSignedNumber(_0x5b49b0){const _0x29ecc6=Number(_0x5b49b0)||0x0;if(_0x29ecc6>0x0)return'+'+formatNumber(_0x29ecc6);return formatNumber(_0x29ecc6);}function prettifyKey(_0x32e756){return String(_0x32e756)['replace'](/[_-]+/g,'\x20')['replace'](/\b\w/g,_0x28509a=>_0x28509a['toUpperCase']());}
@@ -1 +1 @@
1
- export function parseEventsToActivities(_0x8b65ff){const _0x713095=[];let _0x2ffa8b=null,_0x2adef8=null,_0x2e0389=null,_0xb8d7e8=null;return _0x8b65ff['forEach'](_0x7c0209=>{if(_0x7c0209['type']==='assistant'&&_0x7c0209['message']?.['content'])_0x7c0209['message']['content']['forEach']((_0xaf3f59,_0xb01649)=>{if(_0xaf3f59['type']==='text'){const _0x1b461f=_0xaf3f59['id']||_0x7c0209['message']['id']+'-'+_0x7c0209['timestamp']+'-'+_0xb01649,_0x148a15=_0x7c0209['message']['stop_reason']==='end_turn';_0x713095['push']({'icon':_0x148a15?'🤖':'💭','action':_0x148a15?'Response':'Thinking','detail':truncate(_0xaf3f59['text'],0x64),'status':'success','id':_0x1b461f,'fullContent':_0xaf3f59['text'],'expandable':!![],'isAgentResponse':_0x148a15,'timestamp':_0x7c0209['timestamp'],'rawData':{'event':_0x7c0209,'block':_0xaf3f59}});}else{if(_0xaf3f59['type']==='tool_use'){const _0x508922=_0xaf3f59['name']==='TodoWrite'||_0xaf3f59['name']==='AskUserQuestion'||_0xaf3f59['name']==='ExitPlanMode';_0x713095['push']({'icon':getToolIcon(_0xaf3f59['name']),'action':_0xaf3f59['name'],'detail':formatToolInputCompact(_0xaf3f59['name'],_0xaf3f59['input']),'status':'running','id':_0xaf3f59['id'],'fullContent':_0x508922?_0xaf3f59['input']:null,'expandable':_0x508922,'toolInput':_0xaf3f59['input'],'timestamp':_0x7c0209['timestamp'],'rawData':{'event':_0x7c0209,'block':_0xaf3f59}});}}});else{if(_0x7c0209['type']==='user'&&_0x7c0209['message']?.['content'])_0x7c0209['message']['content']['forEach'](_0x46e306=>{if(_0x46e306['type']==='tool_result'){const _0x2fd698=_0x713095['find'](_0x382f1c=>_0x382f1c['id']===_0x46e306['tool_use_id']);_0x2fd698&&(_0x2fd698['status']=_0x46e306['is_error']?'error':'success',shouldBeExpandable(_0x2fd698['action'])&&(_0x2fd698['fullContent']=formatToolResult(_0x2fd698['action'],_0x46e306['content'],_0x2fd698['toolInput'],_0x46e306['is_error'],_0x7c0209['tool_use_result']),_0x2fd698['expandable']=!![]),_0x2fd698['rawData']=mergeRawData(_0x2fd698['rawData'],{'toolResultEvent':_0x7c0209,'toolResult':_0x46e306}));}});else{if(_0x7c0209['type']==='turn.started')_0xb8d7e8=_0x713095['length'];else{if(_0x7c0209['type']==='turn.completed')promoteCodexTurnThinkingToResponse(_0x713095,_0xb8d7e8),_0xb8d7e8=_0x713095['length'];else{if(_0x7c0209['type']==='item.started'&&_0x7c0209['item']){const _0x5ba94b=_0x7c0209['item'];if(_0x5ba94b['type']==='command_execution'){const _0x56f55c=_0x5ba94b['id']+'-'+_0x7c0209['timestamp'];_0x713095['push']({'icon':'🖥️','action':'Bash','detail':truncate(_0x5ba94b['command']||'',0x64),'status':'running','id':_0x56f55c,'codexItemId':_0x5ba94b['id'],'toolInput':{'command':_0x5ba94b['command']},'timestamp':_0x7c0209['timestamp'],'rawData':{'event':_0x7c0209}});}}else{if(_0x7c0209['type']==='item.completed'&&_0x7c0209['item']){const _0x1f3972=_0x7c0209['item'];if(_0x1f3972['type']==='reasoning')_0x713095['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x1f3972['text']||'',0x64),'status':'success','id':_0x1f3972['id']+'-'+_0x7c0209['timestamp'],'fullContent':_0x1f3972['text'],'expandable':!![],'timestamp':_0x7c0209['timestamp'],'rawData':{'event':_0x7c0209}});else{if(_0x1f3972['type']==='agent_message')_0x713095['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x1f3972['text']||'',0x64),'status':'success','id':_0x1f3972['id']+'-'+_0x7c0209['timestamp'],'fullContent':_0x1f3972['text'],'expandable':!![],'isAgentResponse':![],'isCodexAgentMessage':!![],'timestamp':_0x7c0209['timestamp'],'rawData':{'event':_0x7c0209}});else{if(_0x1f3972['type']==='command_execution'){const _0x3936fc=_0x713095['find'](_0x45c018=>_0x45c018['codexItemId']===_0x1f3972['id'])||_0x713095['find'](_0x487976=>_0x487976['id']===_0x1f3972['id']);if(_0x3936fc){const _0x35f887=_0x1f3972['status']==='completed'&&_0x1f3972['exit_code']===0x0;_0x3936fc['status']=_0x35f887?'success':'error',_0x3936fc['fullContent']=formatCodexCommandResult(_0x1f3972['command'],_0x1f3972['stdout'],_0x1f3972['stderr'],_0x1f3972['exit_code'],_0x1f3972['aggregated_output']),_0x3936fc['expandable']=!![],_0x3936fc['rawData']=mergeRawData(_0x3936fc['rawData'],{'completionEvent':_0x7c0209});}}}}}else{if(_0x7c0209['type']==='init'&&_0x7c0209['session_id'])_0x2ffa8b=null,_0x2adef8=null,_0x2e0389=null;else{if(_0x7c0209['type']==='message'&&_0x7c0209['role']==='assistant'&&_0x7c0209['content']){if(_0x7c0209['delta'])!_0x2ffa8b?(_0x2ffa8b=_0x7c0209['content'],_0x2adef8='gemini-msg-'+_0x7c0209['timestamp'],_0x2e0389=_0x7c0209['timestamp']):_0x2ffa8b+=_0x7c0209['content'];else{const _0x1837a1=stripBobToolNotation(_0x7c0209['content']);_0x1837a1['trim']()&&_0x713095['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x1837a1,0x64),'status':'success','id':'gemini-msg-'+_0x7c0209['timestamp'],'fullContent':_0x1837a1,'expandable':!![],'timestamp':_0x7c0209['timestamp'],'rawData':{'event':_0x7c0209}});}}else{if(_0x7c0209['type']==='tool_use'&&_0x7c0209['tool_name']){if(_0x2ffa8b){const _0x5e136a=stripBobToolNotation(_0x2ffa8b);_0x5e136a['trim']()&&_0x713095['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x5e136a,0x64),'status':'success','id':_0x2adef8,'fullContent':_0x5e136a,'expandable':!![],'timestamp':_0x2e0389,'rawData':{'bufferedContent':_0x2ffa8b,'messageId':_0x2adef8,'flushedBy':_0x7c0209}}),_0x2ffa8b=null,_0x2adef8=null,_0x2e0389=null;}const {icon:_0x1bc741,action:_0x532147,detail:_0x299ba4}=mapGeminiTool(_0x7c0209['tool_name'],_0x7c0209['parameters']),_0x3c8e87=_0x7c0209['tool_name']==='attempt_completion',_0x4f68f6=_0x532147==='TodoWrite';_0x713095['push']({'icon':_0x1bc741,'action':_0x532147,'detail':_0x299ba4,'status':_0x3c8e87?'success':'running','id':_0x7c0209['tool_id'],'toolInput':_0x7c0209['parameters'],'fullContent':_0x3c8e87?_0x7c0209['parameters']?.['result']||'':_0x4f68f6?normalizeTodoContent(_0x7c0209['parameters']):undefined,'expandable':_0x3c8e87||_0x4f68f6,'isAgentResponse':_0x3c8e87,'timestamp':_0x7c0209['timestamp'],'rawData':{'event':_0x7c0209}});}else{if(_0x7c0209['type']==='tool_result'&&_0x7c0209['tool_id']){const _0xea157e=_0x713095['find'](_0x46dcc8=>_0x46dcc8['id']===_0x7c0209['tool_id']);if(_0xea157e){const _0x3d08bc=_0x7c0209['status']==='success';_0xea157e['status']=_0x3d08bc?'success':'error';if(shouldBeExpandable(_0xea157e['action'])){const _0x56e620=_0x7c0209['output']||_0x7c0209['content']||_0x7c0209['result']||_0x7c0209['stdout']||'',_0x5b289d=_0x7c0209['error']?.['message']||'',_0x3a2bb9=_0x3d08bc?_0x56e620:'Error:\x20'+_0x5b289d+'\x0a'+_0x56e620;_0xea157e['fullContent']=formatToolResult(_0xea157e['action'],_0x3a2bb9,_0xea157e['toolInput'],!_0x3d08bc),_0xea157e['expandable']=!![];}_0xea157e['rawData']=mergeRawData(_0xea157e['rawData'],{'toolResultEvent':_0x7c0209});}}else _0x7c0209['type']==='result'&&_0x7c0209['stats']&&(_0x2ffa8b&&(_0x713095['push']({'icon':'🤖','action':'Response','detail':truncate(_0x2ffa8b,0x64),'status':'success','id':_0x2adef8||'gemini-msg-final','fullContent':_0x2ffa8b,'expandable':!![],'isAgentResponse':!![],'timestamp':_0x2e0389,'rawData':{'bufferedContent':_0x2ffa8b,'messageId':_0x2adef8||'gemini-msg-final','resultEvent':_0x7c0209}}),_0x2ffa8b=null,_0x2adef8=null,_0x2e0389=null));}}}}}}}}}}),_0x713095;}function mapGeminiTool(_0x57ca1b,_0x42d29d){let _0x501ac6='🔧',_0xdbe561=_0x57ca1b,_0xa08e98='';if(_0x57ca1b==='bash'||_0x57ca1b==='run_shell_command'||_0x57ca1b==='execute_command')_0x501ac6='🖥️',_0xdbe561='Bash',_0xa08e98=truncate(_0x42d29d?.['command']||'',0x64);else{if(_0x57ca1b==='read_file'||_0x57ca1b==='read_many_files')_0x501ac6='📖',_0xdbe561='Read',_0xa08e98=_0x42d29d?.['path']||_0x42d29d?.['file_path']||(Array['isArray'](_0x42d29d?.['paths'])?_0x42d29d['paths']['join'](',\x20'):'')||'';else{if(_0x57ca1b==='write_file'||_0x57ca1b==='write_to_file')_0x501ac6='✍️',_0xdbe561='Write',_0xa08e98=_0x42d29d?.['path']||_0x42d29d?.['file_path']||'';else{if(_0x57ca1b==='edit_file'||_0x57ca1b==='replace'||_0x57ca1b==='search_and_replace')_0x501ac6='✏️',_0xdbe561='Edit',_0xa08e98=_0x42d29d?.['path']||_0x42d29d?.['file_path']||'';else{if(_0x57ca1b==='search_file_content')_0x501ac6='🔎',_0xdbe561='Grep',_0xa08e98='\x22'+(_0x42d29d?.['pattern']||_0x42d29d?.['query']||'')+'\x22';else{if(_0x57ca1b==='write_todos'||_0x57ca1b==='update_todo_list')_0x501ac6='<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>',_0xdbe561='TodoWrite',_0xa08e98=formatTodoWriteInput(normalizeTodoContent(_0x42d29d)||{});else{if(_0x57ca1b==='apply_diff'||_0x57ca1b==='insert_content')_0x501ac6='✏️',_0xdbe561='Edit',_0xa08e98=_0x42d29d?.['file_path']||_0x42d29d?.['path']||'';else{if(_0x57ca1b==='attempt_completion')_0x501ac6='🤖',_0xdbe561='Response',_0xa08e98=truncate(_0x42d29d?.['result']||'',0x64);else{if(_0x57ca1b==='list_directory'||_0x57ca1b==='list_dir'||_0x57ca1b==='list_files')_0x501ac6='🔍',_0xdbe561='Glob',_0xa08e98=_0x42d29d?.['path']||_0x42d29d?.['directory']||'';else{if(_0x57ca1b==='search_files'||_0x57ca1b==='grep_search')_0x501ac6='🔎',_0xdbe561='Grep',_0xa08e98='\x22'+(_0x42d29d?.['pattern']||_0x42d29d?.['query']||_0x42d29d?.['regex']||'')+'\x22';else{if(_0x57ca1b==='web_fetch')_0x501ac6='🌐',_0xdbe561='WebFetch',_0xa08e98=_0x42d29d?.['url']||'';else{if(_0x57ca1b==='ask_followup_question')_0x501ac6='❓',_0xdbe561='AskUserQuestion',_0xa08e98=truncate(_0x42d29d?.['question']||'',0x64);else{if(_0x57ca1b==='google_web_search')_0x501ac6='🔍',_0xdbe561='WebSearch',_0xa08e98=truncate(_0x42d29d?.['query']||'',0x64);else _0x57ca1b==='save_memory'?(_0x501ac6='💾',_0xdbe561='SaveMemory',_0xa08e98=truncate(_0x42d29d?.['key']||_0x42d29d?.['content']||'',0x64)):_0xa08e98=truncate(JSON['stringify'](_0x42d29d),0x50);}}}}}}}}}}}}return{'icon':_0x501ac6,'action':_0xdbe561,'detail':_0xa08e98};}function getToolIcon(_0x2779d0){const _0x5c9dd8={'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 _0x5c9dd8[_0x2779d0]||'🔧';}function formatToolInputCompact(_0x323180,_0x2ddfbe){if(!_0x2ddfbe)return'';switch(_0x323180){case'Read':return _0x2ddfbe['path']||_0x2ddfbe['file_path']||'';case'Write':case'Edit':const _0x4c04a3=_0x2ddfbe['path']||_0x2ddfbe['file_path']||'',_0x4bd08c=_0x2ddfbe['content']?.['length']||_0x2ddfbe['new_string']?.['length']||0x0;return''+_0x4c04a3+(_0x4bd08c>0x0?'\x20('+_0x4bd08c+'\x20chars)':'');case'Bash':return truncate(_0x2ddfbe['command']||'',0x50);case'Glob':return _0x2ddfbe['pattern']||'';case'Grep':return'\x22'+(_0x2ddfbe['pattern']||'')+'\x22';case'TodoWrite':return formatTodoWriteInput(_0x2ddfbe);case'AskUserQuestion':return formatAskUserQuestionCompact(_0x2ddfbe);case'Agent':return _0x2ddfbe['description']||truncate(_0x2ddfbe['prompt']||'',0x50);case'ToolSearch':return _0x2ddfbe['query']||'';case'EnterPlanMode':return'Entering\x20plan\x20mode';case'ExitPlanMode':{const _0x262685=_0x2ddfbe['plan']||'',_0x92ddf7=_0x262685['match'](/^#\s+(.+)/m);return _0x92ddf7?truncate(_0x92ddf7[0x1],0x3c):'Plan\x20complete';}default:return truncate(JSON['stringify'](_0x2ddfbe),0x50);}}function parseTodoMarkdown(_0x3cd6c3){if(typeof _0x3cd6c3!=='string')return null;const _0x8b68bb=_0x3cd6c3['split']('\x0a')['map'](_0x46a762=>_0x46a762['trim']())['filter'](_0xfab01e=>/^\[[ x\-]\]/i['test'](_0xfab01e));if(_0x8b68bb['length']===0x0)return null;return _0x8b68bb['map'](_0x679521=>{const _0x5e5f2e=_0x679521['match'](/^\[(.)\]/)?.[0x1]||'\x20',_0x21a4e7=_0x679521['replace'](/^\[.\]\s*/,'')['trim']();let _0x282955='pending';if(_0x5e5f2e['toLowerCase']()==='x')_0x282955='completed';else{if(_0x5e5f2e==='-')_0x282955='in_progress';}return{'description':_0x21a4e7,'status':_0x282955};});}function normalizeTodoContent(_0x27a44b){if(!_0x27a44b)return _0x27a44b;if(Array['isArray'](_0x27a44b['todos']))return _0x27a44b;if(typeof _0x27a44b['todos']==='string'){const _0x43d513=parseTodoMarkdown(_0x27a44b['todos']);if(_0x43d513)return{..._0x27a44b,'todos':_0x43d513};}return _0x27a44b;}function formatTodoWriteInput(_0x2acd23){if(!_0x2acd23['todos']||!Array['isArray'](_0x2acd23['todos']))return truncate(JSON['stringify'](_0x2acd23),0x32);const _0x2d23db=_0x2acd23['todos'],_0x1394fe={'pending':'○','in_progress':'◐','completed':'●'},_0xf5333d=_0x2d23db['slice'](0x0,0x3)['map'](_0x19bf74=>{const _0x3ba57e=_0x1394fe[_0x19bf74['status']]||'○',_0x2678e7=truncate(_0x19bf74['content']||_0x19bf74['description']||'No\x20description\x20provided',0x28);return _0x3ba57e+'\x20'+_0x2678e7;})['join'](',\x20'),_0x4b145b=_0x2d23db['length']-0x3,_0x2e2c0b=_0x4b145b>0x0?',\x20+'+_0x4b145b+'\x20more':'';return _0xf5333d+_0x2e2c0b;}function stripBobToolNotation(_0x3e4367){if(!_0x3e4367)return'';return _0x3e4367['replace'](/\[using tool \w+:[^\]]*\]\n?/g,'')['trim']();}function shouldBeExpandable(_0x3ea8b5){const _0x140db3=['Bash','Read','Write','Edit','Grep','Glob','WebFetch','WebSearch','NotebookEdit','Agent','Skill','Task','AskUserQuestion','ExitPlanMode','SaveMemory','TodoWrite'];return _0x140db3['includes'](_0x3ea8b5);}function formatAskUserQuestionCompact(_0xb43db){if(!_0xb43db?.['questions']||!Array['isArray'](_0xb43db['questions'])||_0xb43db['questions']['length']===0x0){if(_0xb43db?.['question'])return truncate(_0xb43db['question'],0x50);return truncate(JSON['stringify'](_0xb43db),0x50);}const _0x5e5eab=_0xb43db['questions'][0x0],_0x15089e=_0x5e5eab['question']||_0x5e5eab['header']||'',_0x34b119=_0xb43db['questions']['length']>0x1?'\x20(+'+(_0xb43db['questions']['length']-0x1)+'\x20more)':'';return truncate(_0x15089e,0x46)+_0x34b119;}function formatToolResult(_0x37458d,_0x29563a,_0x427121,_0x13cc1b,_0x12cab1){if(_0x13cc1b){if(_0x37458d==='ExitPlanMode')return{'toolName':'ExitPlanMode','plan':_0x427121?.['plan']||'','error':!![],'content':typeof _0x29563a==='string'?_0x29563a:JSON['stringify'](_0x29563a,null,0x2)};if(_0x37458d==='AskUserQuestion')return{'toolName':'AskUserQuestion','questions':_0x427121?.['questions']||(_0x427121?.['question']?[_0x427121]:[]),'error':!![],'denied':!![],'content':typeof _0x29563a==='string'?_0x29563a:JSON['stringify'](_0x29563a,null,0x2)};return{'toolName':_0x37458d,'toolInput':_0x427121,'error':!![],'content':typeof _0x29563a==='string'?_0x29563a:JSON['stringify'](_0x29563a,null,0x2)};}switch(_0x37458d){case'Bash':return{'toolName':'Bash','command':_0x427121?.['command']||'','output':typeof _0x29563a==='string'?_0x29563a:_0x29563a?JSON['stringify'](_0x29563a,null,0x2):''};case'Read':return{'toolName':'Read','filePath':_0x427121?.['path']||_0x427121?.['file_path']||'','content':typeof _0x29563a==='string'?_0x29563a:_0x29563a?JSON['stringify'](_0x29563a,null,0x2):''};case'Write':return{'toolName':'Write','filePath':_0x427121?.['path']||_0x427121?.['file_path']||'','content':_0x427121?.['content']||'','result':typeof _0x29563a==='string'?_0x29563a:'File\x20written\x20successfully'};case'Edit':const _0x1734bc=_0x12cab1?.['structuredPatch']?.[0x0]?.['oldStart']||null;return{'toolName':'Edit','filePath':_0x427121?.['path']||_0x427121?.['file_path']||'','oldString':_0x427121?.['old_string']||'','newString':_0x427121?.['new_string']||'','replaceAll':_0x427121?.['replace_all']||![],'startLine':_0x1734bc,'result':typeof _0x29563a==='string'?_0x29563a:'File\x20edited\x20successfully'};case'Grep':return{'toolName':'Grep','pattern':_0x427121?.['pattern']||'','path':_0x427121?.['path']||'','outputMode':_0x427121?.['output_mode']||'files_with_matches','content':typeof _0x29563a==='string'?_0x29563a:_0x29563a?JSON['stringify'](_0x29563a,null,0x2):''};case'Glob':return{'toolName':'Glob','pattern':_0x427121?.['pattern']||'','path':_0x427121?.['path']||'','content':typeof _0x29563a==='string'?_0x29563a:_0x29563a?JSON['stringify'](_0x29563a,null,0x2):''};case'WebFetch':return{'toolName':'WebFetch','url':_0x427121?.['url']||'','prompt':_0x427121?.['prompt']||'','content':typeof _0x29563a==='string'?_0x29563a:_0x29563a?JSON['stringify'](_0x29563a,null,0x2):''};case'WebSearch':return{'toolName':'WebSearch','query':_0x427121?.['query']||'','content':typeof _0x29563a==='string'?_0x29563a:_0x29563a?JSON['stringify'](_0x29563a,null,0x2):''};case'NotebookEdit':return{'toolName':'NotebookEdit','notebookPath':_0x427121?.['notebook_path']||'','cellId':_0x427121?.['cell_id']||'','newSource':_0x427121?.['new_source']||'','result':typeof _0x29563a==='string'?_0x29563a:'Notebook\x20cell\x20edited\x20successfully'};case'Agent':return{'toolName':'Agent','description':_0x427121?.['description']||'','subagentType':_0x427121?.['subagent_type']||'','model':_0x427121?.['model']||'','prompt':_0x427121?.['prompt']||'','content':typeof _0x29563a==='string'?_0x29563a:_0x29563a?JSON['stringify'](_0x29563a,null,0x2):''};case'Skill':return{'toolName':'Skill','toolInput':_0x427121,'skill':_0x427121?.['skill']||'','content':typeof _0x29563a==='string'?_0x29563a:_0x29563a?JSON['stringify'](_0x29563a,null,0x2):''};case'Task':return{'toolName':'Task','description':_0x427121?.['description']||'','subagentType':_0x427121?.['subagent_type']||'','prompt':_0x427121?.['prompt']||'','content':typeof _0x29563a==='string'?_0x29563a:_0x29563a?JSON['stringify'](_0x29563a,null,0x2):''};case'AskUserQuestion':return{'toolName':'AskUserQuestion','questions':_0x427121?.['questions']||(_0x427121?.['question']?[_0x427121]:[]),'answer':typeof _0x29563a==='string'?_0x29563a:_0x29563a?JSON['stringify'](_0x29563a,null,0x2):''};case'ExitPlanMode':return{'toolName':'ExitPlanMode','plan':_0x427121?.['plan']||'','result':typeof _0x29563a==='string'?_0x29563a:''};case'SaveMemory':return{'toolName':'SaveMemory','key':_0x427121?.['key']||'','content':typeof _0x29563a==='string'?_0x29563a:_0x29563a?JSON['stringify'](_0x29563a,null,0x2):''};default:return{'toolName':_0x37458d,'toolInput':_0x427121,'content':typeof _0x29563a==='string'?_0x29563a:_0x29563a?JSON['stringify'](_0x29563a,null,0x2):''};}}function formatCodexCommandResult(_0x12d6f5,_0x59633b,_0x1e9e88,_0x3715f6,_0x28e29a){return{'toolName':'Bash','command':_0x12d6f5||'','stdout':_0x59633b||'','stderr':_0x1e9e88||'','exitCode':_0x3715f6,'aggregated_output':_0x28e29a||''};}function promoteCodexTurnThinkingToResponse(_0x87c272,_0x5ad5b0=null){const _0x2f0c6f=Number['isInteger'](_0x5ad5b0)&&_0x5ad5b0>=0x0?_0x5ad5b0:0x0;for(let _0xbe7751=_0x87c272['length']-0x1;_0xbe7751>=_0x2f0c6f;_0xbe7751--){const _0x1ad3ea=_0x87c272[_0xbe7751];if(!_0x1ad3ea?.['isCodexAgentMessage'])continue;if(_0x1ad3ea['action']==='Response'||_0x1ad3ea['isAgentResponse'])return;if(_0x1ad3ea['action']==='Thinking'){_0x1ad3ea['action']='Response',_0x1ad3ea['icon']='🤖',_0x1ad3ea['isAgentResponse']=!![];return;}}}function mergeRawData(_0x33417d,_0x13bc38){if(!_0x13bc38)return _0x33417d||null;const _0x1f420c=typeof _0x13bc38==='object'&&_0x13bc38!==null?_0x13bc38:{'value':_0x13bc38};if(!_0x33417d)return _0x1f420c;if(typeof _0x33417d==='object'&&_0x33417d!==null&&!Array['isArray'](_0x33417d))return{..._0x33417d,..._0x1f420c};return{'initial':_0x33417d,..._0x1f420c};}function truncate(_0x4199db,_0x32b4a2){if(!_0x4199db||_0x4199db['length']<=_0x32b4a2)return _0x4199db||'';return _0x4199db['substring'](0x0,_0x32b4a2)+'...';}export function calculateEventStats(_0x4888dc){const _0x11c32f={'total':_0x4888dc['length'],'toolUses':0x0,'toolResults':0x0,'thinking':0x0,'messages':0x0};return _0x4888dc['forEach'](_0x120ead=>{if(_0x120ead['type']==='assistant'&&_0x120ead['message']?.['content'])_0x120ead['message']['content']['forEach'](_0x4e0874=>{if(_0x4e0874['type']==='tool_use')_0x11c32f['toolUses']++;else _0x4e0874['type']==='text'&&_0x11c32f['thinking']++;});else{if(_0x120ead['type']==='user'&&_0x120ead['message']?.['content'])_0x120ead['message']['content']['forEach'](_0x121f96=>{_0x121f96['type']==='tool_result'&&_0x11c32f['toolResults']++;});else{if((_0x120ead['type']==='item.completed'||_0x120ead['type']==='item.started')&&_0x120ead['item']){if(_0x120ead['item']['type']==='command_execution')_0x11c32f['toolUses']++,_0x120ead['type']==='item.completed'&&_0x120ead['item']['status']==='completed'&&_0x11c32f['toolResults']++;else{if(_0x120ead['item']['type']==='reasoning')_0x11c32f['thinking']++;else _0x120ead['item']['type']==='agent_message'&&_0x11c32f['messages']++;}}else{if(_0x120ead['type']==='message'&&_0x120ead['role']==='assistant'&&_0x120ead['content'])_0x11c32f['thinking']++;else{if(_0x120ead['type']==='tool_use'&&_0x120ead['tool_name'])_0x11c32f['toolUses']++;else _0x120ead['type']==='tool_result'&&_0x120ead['tool_id']&&_0x11c32f['toolResults']++;}}}}}),_0x11c32f;}
1
+ export function parseEventsToActivities(_0x113e3f){const _0x142973=[];let _0x85b606=null,_0x5cfc79=null,_0x2934f3=null,_0x588477=null;return _0x113e3f['forEach'](_0x2e3101=>{if(_0x2e3101['type']==='assistant'&&_0x2e3101['message']?.['content'])_0x2e3101['message']['content']['forEach']((_0x50cea2,_0x1e9529)=>{if(_0x50cea2['type']==='text'){const _0x25efd8=_0x50cea2['id']||_0x2e3101['message']['id']+'-'+_0x2e3101['timestamp']+'-'+_0x1e9529,_0x31fb9c=_0x2e3101['message']['stop_reason']==='end_turn';_0x142973['push']({'icon':_0x31fb9c?'🤖':'💭','action':_0x31fb9c?'Response':'Thinking','detail':truncate(_0x50cea2['text'],0x64),'status':'success','id':_0x25efd8,'fullContent':_0x50cea2['text'],'expandable':!![],'isAgentResponse':_0x31fb9c,'timestamp':_0x2e3101['timestamp'],'rawData':{'event':_0x2e3101,'block':_0x50cea2}});}else{if(_0x50cea2['type']==='tool_use'){const _0x1849bc=_0x50cea2['name']==='TodoWrite'||_0x50cea2['name']==='AskUserQuestion'||_0x50cea2['name']==='ExitPlanMode';_0x142973['push']({'icon':getToolIcon(_0x50cea2['name']),'action':_0x50cea2['name'],'detail':formatToolInputCompact(_0x50cea2['name'],_0x50cea2['input']),'status':'running','id':_0x50cea2['id'],'fullContent':_0x1849bc?_0x50cea2['input']:null,'expandable':_0x1849bc,'toolInput':_0x50cea2['input'],'timestamp':_0x2e3101['timestamp'],'rawData':{'event':_0x2e3101,'block':_0x50cea2}});}}});else{if(_0x2e3101['type']==='user'&&_0x2e3101['message']?.['content'])_0x2e3101['message']['content']['forEach'](_0x313f44=>{if(_0x313f44['type']==='tool_result'){const _0xac00e5=_0x142973['find'](_0x3e9e65=>_0x3e9e65['id']===_0x313f44['tool_use_id']);_0xac00e5&&(_0xac00e5['status']=_0x313f44['is_error']?'error':'success',shouldBeExpandable(_0xac00e5['action'])&&(_0xac00e5['fullContent']=formatToolResult(_0xac00e5['action'],_0x313f44['content'],_0xac00e5['toolInput'],_0x313f44['is_error'],_0x2e3101['tool_use_result']),_0xac00e5['expandable']=!![]),_0xac00e5['rawData']=mergeRawData(_0xac00e5['rawData'],{'toolResultEvent':_0x2e3101,'toolResult':_0x313f44}));}});else{if(_0x2e3101['type']==='turn.started')_0x588477=_0x142973['length'];else{if(_0x2e3101['type']==='turn.completed')promoteCodexTurnThinkingToResponse(_0x142973,_0x588477),_0x588477=_0x142973['length'];else{if(_0x2e3101['type']==='item.started'&&_0x2e3101['item']){const _0x185b6c=_0x2e3101['item'];if(_0x185b6c['type']==='command_execution'){const _0x297d1a=_0x185b6c['id']+'-'+_0x2e3101['timestamp'];_0x142973['push']({'icon':'🖥️','action':'Bash','detail':truncate(_0x185b6c['command']||'',0x64),'status':'running','id':_0x297d1a,'codexItemId':_0x185b6c['id'],'toolInput':{'command':_0x185b6c['command']},'timestamp':_0x2e3101['timestamp'],'rawData':{'event':_0x2e3101}});}}else{if(_0x2e3101['type']==='item.completed'&&_0x2e3101['item']){const _0x2fbbee=_0x2e3101['item'];if(_0x2fbbee['type']==='reasoning')_0x142973['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x2fbbee['text']||'',0x64),'status':'success','id':_0x2fbbee['id']+'-'+_0x2e3101['timestamp'],'fullContent':_0x2fbbee['text'],'expandable':!![],'timestamp':_0x2e3101['timestamp'],'rawData':{'event':_0x2e3101}});else{if(_0x2fbbee['type']==='agent_message')_0x142973['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x2fbbee['text']||'',0x64),'status':'success','id':_0x2fbbee['id']+'-'+_0x2e3101['timestamp'],'fullContent':_0x2fbbee['text'],'expandable':!![],'isAgentResponse':![],'isCodexAgentMessage':!![],'timestamp':_0x2e3101['timestamp'],'rawData':{'event':_0x2e3101}});else{if(_0x2fbbee['type']==='command_execution'){const _0x523508=_0x142973['find'](_0x19d00d=>_0x19d00d['codexItemId']===_0x2fbbee['id'])||_0x142973['find'](_0x3c0325=>_0x3c0325['id']===_0x2fbbee['id']);if(_0x523508){const _0x4f46be=_0x2fbbee['status']==='completed'&&_0x2fbbee['exit_code']===0x0;_0x523508['status']=_0x4f46be?'success':'error',_0x523508['fullContent']=formatCodexCommandResult(_0x2fbbee['command'],_0x2fbbee['stdout'],_0x2fbbee['stderr'],_0x2fbbee['exit_code'],_0x2fbbee['aggregated_output']),_0x523508['expandable']=!![],_0x523508['rawData']=mergeRawData(_0x523508['rawData'],{'completionEvent':_0x2e3101});}}}}}else{if(_0x2e3101['type']==='init'&&_0x2e3101['session_id'])_0x85b606=null,_0x5cfc79=null,_0x2934f3=null;else{if(_0x2e3101['type']==='message'&&_0x2e3101['role']==='assistant'&&_0x2e3101['content']){if(_0x2e3101['delta'])!_0x85b606?(_0x85b606=_0x2e3101['content'],_0x5cfc79='gemini-msg-'+_0x2e3101['timestamp'],_0x2934f3=_0x2e3101['timestamp']):_0x85b606+=_0x2e3101['content'];else{const _0x4e20ca=stripBobToolNotation(_0x2e3101['content']);_0x4e20ca['trim']()&&_0x142973['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x4e20ca,0x64),'status':'success','id':'gemini-msg-'+_0x2e3101['timestamp'],'fullContent':_0x4e20ca,'expandable':!![],'timestamp':_0x2e3101['timestamp'],'rawData':{'event':_0x2e3101}});}}else{if(_0x2e3101['type']==='tool_use'&&_0x2e3101['tool_name']){if(_0x85b606){const _0x998d9e=stripBobToolNotation(_0x85b606);_0x998d9e['trim']()&&_0x142973['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x998d9e,0x64),'status':'success','id':_0x5cfc79,'fullContent':_0x998d9e,'expandable':!![],'timestamp':_0x2934f3,'rawData':{'bufferedContent':_0x85b606,'messageId':_0x5cfc79,'flushedBy':_0x2e3101}}),_0x85b606=null,_0x5cfc79=null,_0x2934f3=null;}const {icon:_0x5aeb1e,action:_0xbc7bf2,detail:_0x52f0f9}=mapGeminiTool(_0x2e3101['tool_name'],_0x2e3101['parameters']),_0x4634b5=_0x2e3101['tool_name']==='attempt_completion',_0x1dd4d5=_0xbc7bf2==='TodoWrite';_0x142973['push']({'icon':_0x5aeb1e,'action':_0xbc7bf2,'detail':_0x52f0f9,'status':_0x4634b5?'success':'running','id':_0x2e3101['tool_id'],'toolInput':_0x2e3101['parameters'],'fullContent':_0x4634b5?_0x2e3101['parameters']?.['result']||'':_0x1dd4d5?normalizeTodoContent(_0x2e3101['parameters']):undefined,'expandable':_0x4634b5||_0x1dd4d5,'isAgentResponse':_0x4634b5,'timestamp':_0x2e3101['timestamp'],'rawData':{'event':_0x2e3101}});}else{if(_0x2e3101['type']==='tool_result'&&_0x2e3101['tool_id']){const _0x3d837d=_0x142973['find'](_0x3de999=>_0x3de999['id']===_0x2e3101['tool_id']);if(_0x3d837d){const _0x151f2f=_0x2e3101['status']==='success';_0x3d837d['status']=_0x151f2f?'success':'error';if(shouldBeExpandable(_0x3d837d['action'])){const _0x3a0eb9=_0x2e3101['output']||_0x2e3101['content']||_0x2e3101['result']||_0x2e3101['stdout']||'',_0x958bf=_0x2e3101['error']?.['message']||'',_0x4db2a2=_0x151f2f?_0x3a0eb9:'Error:\x20'+_0x958bf+'\x0a'+_0x3a0eb9;_0x3d837d['fullContent']=formatToolResult(_0x3d837d['action'],_0x4db2a2,_0x3d837d['toolInput'],!_0x151f2f),_0x3d837d['expandable']=!![];}_0x3d837d['rawData']=mergeRawData(_0x3d837d['rawData'],{'toolResultEvent':_0x2e3101});}}else _0x2e3101['type']==='result'&&_0x2e3101['stats']&&(_0x85b606&&(_0x142973['push']({'icon':'🤖','action':'Response','detail':truncate(_0x85b606,0x64),'status':'success','id':_0x5cfc79||'gemini-msg-final','fullContent':_0x85b606,'expandable':!![],'isAgentResponse':!![],'timestamp':_0x2934f3,'rawData':{'bufferedContent':_0x85b606,'messageId':_0x5cfc79||'gemini-msg-final','resultEvent':_0x2e3101}}),_0x85b606=null,_0x5cfc79=null,_0x2934f3=null));}}}}}}}}}}),_0x142973;}function mapGeminiTool(_0x5d267c,_0x105c91){let _0x341f86='🔧',_0x1935bd=_0x5d267c,_0xcc241e='';if(_0x5d267c==='bash'||_0x5d267c==='run_shell_command'||_0x5d267c==='execute_command')_0x341f86='🖥️',_0x1935bd='Bash',_0xcc241e=truncate(_0x105c91?.['command']||'',0x64);else{if(_0x5d267c==='read_file'||_0x5d267c==='read_many_files')_0x341f86='📖',_0x1935bd='Read',_0xcc241e=_0x105c91?.['path']||_0x105c91?.['file_path']||(Array['isArray'](_0x105c91?.['paths'])?_0x105c91['paths']['join'](',\x20'):'')||'';else{if(_0x5d267c==='write_file'||_0x5d267c==='write_to_file')_0x341f86='✍️',_0x1935bd='Write',_0xcc241e=_0x105c91?.['path']||_0x105c91?.['file_path']||'';else{if(_0x5d267c==='edit_file'||_0x5d267c==='replace'||_0x5d267c==='search_and_replace')_0x341f86='✏️',_0x1935bd='Edit',_0xcc241e=_0x105c91?.['path']||_0x105c91?.['file_path']||'';else{if(_0x5d267c==='search_file_content')_0x341f86='🔎',_0x1935bd='Grep',_0xcc241e='\x22'+(_0x105c91?.['pattern']||_0x105c91?.['query']||'')+'\x22';else{if(_0x5d267c==='write_todos'||_0x5d267c==='update_todo_list')_0x341f86='<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>',_0x1935bd='TodoWrite',_0xcc241e=formatTodoWriteInput(normalizeTodoContent(_0x105c91)||{});else{if(_0x5d267c==='apply_diff'||_0x5d267c==='insert_content')_0x341f86='✏️',_0x1935bd='Edit',_0xcc241e=_0x105c91?.['file_path']||_0x105c91?.['path']||'';else{if(_0x5d267c==='attempt_completion')_0x341f86='🤖',_0x1935bd='Response',_0xcc241e=truncate(_0x105c91?.['result']||'',0x64);else{if(_0x5d267c==='list_directory'||_0x5d267c==='list_dir'||_0x5d267c==='list_files')_0x341f86='🔍',_0x1935bd='Glob',_0xcc241e=_0x105c91?.['path']||_0x105c91?.['directory']||'';else{if(_0x5d267c==='search_files'||_0x5d267c==='grep_search')_0x341f86='🔎',_0x1935bd='Grep',_0xcc241e='\x22'+(_0x105c91?.['pattern']||_0x105c91?.['query']||_0x105c91?.['regex']||'')+'\x22';else{if(_0x5d267c==='web_fetch')_0x341f86='🌐',_0x1935bd='WebFetch',_0xcc241e=_0x105c91?.['url']||'';else{if(_0x5d267c==='ask_followup_question')_0x341f86='❓',_0x1935bd='AskUserQuestion',_0xcc241e=truncate(_0x105c91?.['question']||'',0x64);else{if(_0x5d267c==='google_web_search')_0x341f86='🔍',_0x1935bd='WebSearch',_0xcc241e=truncate(_0x105c91?.['query']||'',0x64);else _0x5d267c==='save_memory'?(_0x341f86='💾',_0x1935bd='SaveMemory',_0xcc241e=truncate(_0x105c91?.['key']||_0x105c91?.['content']||'',0x64)):_0xcc241e=truncate(JSON['stringify'](_0x105c91),0x50);}}}}}}}}}}}}return{'icon':_0x341f86,'action':_0x1935bd,'detail':_0xcc241e};}function getToolIcon(_0x3622ea){const _0x4fc14d={'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 _0x4fc14d[_0x3622ea]||'🔧';}function formatToolInputCompact(_0x5ce833,_0x52082c){if(!_0x52082c)return'';switch(_0x5ce833){case'Read':return _0x52082c['path']||_0x52082c['file_path']||'';case'Write':case'Edit':const _0x3c0ef1=_0x52082c['path']||_0x52082c['file_path']||'',_0x2ebb8b=_0x52082c['content']?.['length']||_0x52082c['new_string']?.['length']||0x0;return''+_0x3c0ef1+(_0x2ebb8b>0x0?'\x20('+_0x2ebb8b+'\x20chars)':'');case'Bash':return truncate(_0x52082c['command']||'',0x50);case'Glob':return _0x52082c['pattern']||'';case'Grep':return'\x22'+(_0x52082c['pattern']||'')+'\x22';case'TodoWrite':return formatTodoWriteInput(_0x52082c);case'AskUserQuestion':return formatAskUserQuestionCompact(_0x52082c);case'Agent':return _0x52082c['description']||truncate(_0x52082c['prompt']||'',0x50);case'ToolSearch':return _0x52082c['query']||'';case'EnterPlanMode':return'Entering\x20plan\x20mode';case'ExitPlanMode':{const _0x168f94=_0x52082c['plan']||'',_0x4bcf6c=_0x168f94['match'](/^#\s+(.+)/m);return _0x4bcf6c?truncate(_0x4bcf6c[0x1],0x3c):'Plan\x20complete';}default:return truncate(JSON['stringify'](_0x52082c),0x50);}}function parseTodoMarkdown(_0x1d3d1b){if(typeof _0x1d3d1b!=='string')return null;const _0x59332b=_0x1d3d1b['split']('\x0a')['map'](_0x5bf994=>_0x5bf994['trim']())['filter'](_0xf82f0a=>/^\[[ x\-]\]/i['test'](_0xf82f0a));if(_0x59332b['length']===0x0)return null;return _0x59332b['map'](_0x5b29dd=>{const _0xdf2f8b=_0x5b29dd['match'](/^\[(.)\]/)?.[0x1]||'\x20',_0x29829a=_0x5b29dd['replace'](/^\[.\]\s*/,'')['trim']();let _0x236d13='pending';if(_0xdf2f8b['toLowerCase']()==='x')_0x236d13='completed';else{if(_0xdf2f8b==='-')_0x236d13='in_progress';}return{'description':_0x29829a,'status':_0x236d13};});}function normalizeTodoContent(_0x841968){if(!_0x841968)return _0x841968;if(Array['isArray'](_0x841968['todos']))return _0x841968;if(typeof _0x841968['todos']==='string'){const _0x4bd71d=parseTodoMarkdown(_0x841968['todos']);if(_0x4bd71d)return{..._0x841968,'todos':_0x4bd71d};}return _0x841968;}function formatTodoWriteInput(_0x22bcca){if(!_0x22bcca['todos']||!Array['isArray'](_0x22bcca['todos']))return truncate(JSON['stringify'](_0x22bcca),0x32);const _0x290305=_0x22bcca['todos'],_0x1be707={'pending':'○','in_progress':'◐','completed':'●'},_0x275d9c=_0x290305['slice'](0x0,0x3)['map'](_0x3abe3e=>{const _0x2064f8=_0x1be707[_0x3abe3e['status']]||'○',_0x3ca37f=truncate(_0x3abe3e['content']||_0x3abe3e['description']||'No\x20description\x20provided',0x28);return _0x2064f8+'\x20'+_0x3ca37f;})['join'](',\x20'),_0x48e05c=_0x290305['length']-0x3,_0x578845=_0x48e05c>0x0?',\x20+'+_0x48e05c+'\x20more':'';return _0x275d9c+_0x578845;}function stripBobToolNotation(_0x3e9253){if(!_0x3e9253)return'';return _0x3e9253['replace'](/\[using tool \w+:[^\]]*\]\n?/g,'')['trim']();}function shouldBeExpandable(_0x2a63a1){const _0x41530b=['Bash','Read','Write','Edit','Grep','Glob','WebFetch','WebSearch','NotebookEdit','Agent','Skill','Task','AskUserQuestion','ExitPlanMode','SaveMemory','TodoWrite'];return _0x41530b['includes'](_0x2a63a1);}function formatAskUserQuestionCompact(_0x311096){if(!_0x311096?.['questions']||!Array['isArray'](_0x311096['questions'])||_0x311096['questions']['length']===0x0){if(_0x311096?.['question'])return truncate(_0x311096['question'],0x50);return truncate(JSON['stringify'](_0x311096),0x50);}const _0x172047=_0x311096['questions'][0x0],_0xabb5cb=_0x172047['question']||_0x172047['header']||'',_0x4aa572=_0x311096['questions']['length']>0x1?'\x20(+'+(_0x311096['questions']['length']-0x1)+'\x20more)':'';return truncate(_0xabb5cb,0x46)+_0x4aa572;}function formatToolResult(_0x1bbd96,_0x3450ce,_0x4349e2,_0x33c6b3,_0x528786){if(_0x33c6b3){if(_0x1bbd96==='ExitPlanMode')return{'toolName':'ExitPlanMode','plan':_0x4349e2?.['plan']||'','error':!![],'content':typeof _0x3450ce==='string'?_0x3450ce:JSON['stringify'](_0x3450ce,null,0x2)};if(_0x1bbd96==='AskUserQuestion')return{'toolName':'AskUserQuestion','questions':_0x4349e2?.['questions']||(_0x4349e2?.['question']?[_0x4349e2]:[]),'error':!![],'denied':!![],'content':typeof _0x3450ce==='string'?_0x3450ce:JSON['stringify'](_0x3450ce,null,0x2)};return{'toolName':_0x1bbd96,'toolInput':_0x4349e2,'error':!![],'content':typeof _0x3450ce==='string'?_0x3450ce:JSON['stringify'](_0x3450ce,null,0x2)};}switch(_0x1bbd96){case'Bash':return{'toolName':'Bash','command':_0x4349e2?.['command']||'','output':typeof _0x3450ce==='string'?_0x3450ce:_0x3450ce?JSON['stringify'](_0x3450ce,null,0x2):''};case'Read':return{'toolName':'Read','filePath':_0x4349e2?.['path']||_0x4349e2?.['file_path']||'','content':typeof _0x3450ce==='string'?_0x3450ce:_0x3450ce?JSON['stringify'](_0x3450ce,null,0x2):''};case'Write':return{'toolName':'Write','filePath':_0x4349e2?.['path']||_0x4349e2?.['file_path']||'','content':_0x4349e2?.['content']||'','result':typeof _0x3450ce==='string'?_0x3450ce:'File\x20written\x20successfully'};case'Edit':const _0x3ebd89=_0x528786?.['structuredPatch']?.[0x0]?.['oldStart']||null;return{'toolName':'Edit','filePath':_0x4349e2?.['path']||_0x4349e2?.['file_path']||'','oldString':_0x4349e2?.['old_string']||'','newString':_0x4349e2?.['new_string']||'','replaceAll':_0x4349e2?.['replace_all']||![],'startLine':_0x3ebd89,'result':typeof _0x3450ce==='string'?_0x3450ce:'File\x20edited\x20successfully'};case'Grep':return{'toolName':'Grep','pattern':_0x4349e2?.['pattern']||'','path':_0x4349e2?.['path']||'','outputMode':_0x4349e2?.['output_mode']||'files_with_matches','content':typeof _0x3450ce==='string'?_0x3450ce:_0x3450ce?JSON['stringify'](_0x3450ce,null,0x2):''};case'Glob':return{'toolName':'Glob','pattern':_0x4349e2?.['pattern']||'','path':_0x4349e2?.['path']||'','content':typeof _0x3450ce==='string'?_0x3450ce:_0x3450ce?JSON['stringify'](_0x3450ce,null,0x2):''};case'WebFetch':return{'toolName':'WebFetch','url':_0x4349e2?.['url']||'','prompt':_0x4349e2?.['prompt']||'','content':typeof _0x3450ce==='string'?_0x3450ce:_0x3450ce?JSON['stringify'](_0x3450ce,null,0x2):''};case'WebSearch':return{'toolName':'WebSearch','query':_0x4349e2?.['query']||'','content':typeof _0x3450ce==='string'?_0x3450ce:_0x3450ce?JSON['stringify'](_0x3450ce,null,0x2):''};case'NotebookEdit':return{'toolName':'NotebookEdit','notebookPath':_0x4349e2?.['notebook_path']||'','cellId':_0x4349e2?.['cell_id']||'','newSource':_0x4349e2?.['new_source']||'','result':typeof _0x3450ce==='string'?_0x3450ce:'Notebook\x20cell\x20edited\x20successfully'};case'Agent':return{'toolName':'Agent','description':_0x4349e2?.['description']||'','subagentType':_0x4349e2?.['subagent_type']||'','model':_0x4349e2?.['model']||'','prompt':_0x4349e2?.['prompt']||'','content':typeof _0x3450ce==='string'?_0x3450ce:_0x3450ce?JSON['stringify'](_0x3450ce,null,0x2):''};case'Skill':return{'toolName':'Skill','toolInput':_0x4349e2,'skill':_0x4349e2?.['skill']||'','content':typeof _0x3450ce==='string'?_0x3450ce:_0x3450ce?JSON['stringify'](_0x3450ce,null,0x2):''};case'Task':return{'toolName':'Task','description':_0x4349e2?.['description']||'','subagentType':_0x4349e2?.['subagent_type']||'','prompt':_0x4349e2?.['prompt']||'','content':typeof _0x3450ce==='string'?_0x3450ce:_0x3450ce?JSON['stringify'](_0x3450ce,null,0x2):''};case'AskUserQuestion':return{'toolName':'AskUserQuestion','questions':_0x4349e2?.['questions']||(_0x4349e2?.['question']?[_0x4349e2]:[]),'answer':typeof _0x3450ce==='string'?_0x3450ce:_0x3450ce?JSON['stringify'](_0x3450ce,null,0x2):''};case'ExitPlanMode':return{'toolName':'ExitPlanMode','plan':_0x4349e2?.['plan']||'','result':typeof _0x3450ce==='string'?_0x3450ce:''};case'SaveMemory':return{'toolName':'SaveMemory','key':_0x4349e2?.['key']||'','content':typeof _0x3450ce==='string'?_0x3450ce:_0x3450ce?JSON['stringify'](_0x3450ce,null,0x2):''};default:return{'toolName':_0x1bbd96,'toolInput':_0x4349e2,'content':typeof _0x3450ce==='string'?_0x3450ce:_0x3450ce?JSON['stringify'](_0x3450ce,null,0x2):''};}}function formatCodexCommandResult(_0xc84574,_0x7b7d0e,_0x6e7009,_0x548dae,_0x2aa5c2){return{'toolName':'Bash','command':_0xc84574||'','stdout':_0x7b7d0e||'','stderr':_0x6e7009||'','exitCode':_0x548dae,'aggregated_output':_0x2aa5c2||''};}function promoteCodexTurnThinkingToResponse(_0x1efbff,_0x18f8de=null){const _0x1f4d49=Number['isInteger'](_0x18f8de)&&_0x18f8de>=0x0?_0x18f8de:0x0;for(let _0x55239f=_0x1efbff['length']-0x1;_0x55239f>=_0x1f4d49;_0x55239f--){const _0x5cfd37=_0x1efbff[_0x55239f];if(!_0x5cfd37?.['isCodexAgentMessage'])continue;if(_0x5cfd37['action']==='Response'||_0x5cfd37['isAgentResponse'])return;if(_0x5cfd37['action']==='Thinking'){_0x5cfd37['action']='Response',_0x5cfd37['icon']='🤖',_0x5cfd37['isAgentResponse']=!![];return;}}}function mergeRawData(_0x516e53,_0x145107){if(!_0x145107)return _0x516e53||null;const _0x3c363f=typeof _0x145107==='object'&&_0x145107!==null?_0x145107:{'value':_0x145107};if(!_0x516e53)return _0x3c363f;if(typeof _0x516e53==='object'&&_0x516e53!==null&&!Array['isArray'](_0x516e53))return{..._0x516e53,..._0x3c363f};return{'initial':_0x516e53,..._0x3c363f};}function truncate(_0x47d24c,_0x29f5e7){if(!_0x47d24c||_0x47d24c['length']<=_0x29f5e7)return _0x47d24c||'';return _0x47d24c['substring'](0x0,_0x29f5e7)+'...';}export function calculateEventStats(_0x127393){const _0xf07e1c={'total':_0x127393['length'],'toolUses':0x0,'toolResults':0x0,'thinking':0x0,'messages':0x0};return _0x127393['forEach'](_0x14aff1=>{if(_0x14aff1['type']==='assistant'&&_0x14aff1['message']?.['content'])_0x14aff1['message']['content']['forEach'](_0x95af8=>{if(_0x95af8['type']==='tool_use')_0xf07e1c['toolUses']++;else _0x95af8['type']==='text'&&_0xf07e1c['thinking']++;});else{if(_0x14aff1['type']==='user'&&_0x14aff1['message']?.['content'])_0x14aff1['message']['content']['forEach'](_0x4224c4=>{_0x4224c4['type']==='tool_result'&&_0xf07e1c['toolResults']++;});else{if((_0x14aff1['type']==='item.completed'||_0x14aff1['type']==='item.started')&&_0x14aff1['item']){if(_0x14aff1['item']['type']==='command_execution')_0xf07e1c['toolUses']++,_0x14aff1['type']==='item.completed'&&_0x14aff1['item']['status']==='completed'&&_0xf07e1c['toolResults']++;else{if(_0x14aff1['item']['type']==='reasoning')_0xf07e1c['thinking']++;else _0x14aff1['item']['type']==='agent_message'&&_0xf07e1c['messages']++;}}else{if(_0x14aff1['type']==='message'&&_0x14aff1['role']==='assistant'&&_0x14aff1['content'])_0xf07e1c['thinking']++;else{if(_0x14aff1['type']==='tool_use'&&_0x14aff1['tool_name'])_0xf07e1c['toolUses']++;else _0x14aff1['type']==='tool_result'&&_0x14aff1['tool_id']&&_0xf07e1c['toolResults']++;}}}}}),_0xf07e1c;}