@profoundlogic/coderflow-server 0.7.6 → 0.7.8

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 (188) hide show
  1. package/dist/base-image/agent-wrapper.sh +3 -1
  2. package/dist/coder-server.js +1 -1
  3. package/dist/config.js +1 -1
  4. package/dist/lib/agent-keepalive.js +1 -1
  5. package/dist/lib/agent-models.js +1 -1
  6. package/dist/lib/api-keys.js +1 -1
  7. package/dist/lib/apiKeys.js +1 -1
  8. package/dist/lib/app-server-ports.js +1 -1
  9. package/dist/lib/auto-judge.js +1 -1
  10. package/dist/lib/automation-service.js +1 -1
  11. package/dist/lib/basic-auth.js +1 -1
  12. package/dist/lib/bindings.js +1 -1
  13. package/dist/lib/build-history.js +1 -1
  14. package/dist/lib/build-output-service.js +1 -1
  15. package/dist/lib/build-scheduler.js +1 -1
  16. package/dist/lib/build-service.js +1 -1
  17. package/dist/lib/ca-certificates.js +1 -1
  18. package/dist/lib/claude-oauth-refresh.js +1 -1
  19. package/dist/lib/cli/build.js +1 -1
  20. package/dist/lib/cli/cleanup-users.js +1 -1
  21. package/dist/lib/cli/config-command.js +1 -1
  22. package/dist/lib/cli/config.js +1 -1
  23. package/dist/lib/cli/create-user.js +1 -1
  24. package/dist/lib/cli/grant-admin.js +1 -1
  25. package/dist/lib/cli/init.js +1 -1
  26. package/dist/lib/cli/jira.js +1 -1
  27. package/dist/lib/cli/license.js +1 -1
  28. package/dist/lib/cli/list-roles.js +1 -1
  29. package/dist/lib/cli/list-users.js +1 -1
  30. package/dist/lib/cli/server-manager.js +1 -1
  31. package/dist/lib/cli/set-password.js +1 -1
  32. package/dist/lib/compression-filter.js +1 -0
  33. package/dist/lib/config-migration.js +1 -1
  34. package/dist/lib/container-credential-sync.js +1 -1
  35. package/dist/lib/container-tokens.js +1 -1
  36. package/dist/lib/data-dir.js +1 -1
  37. package/dist/lib/deployment-history.js +1 -1
  38. package/dist/lib/deployment-service.js +1 -1
  39. package/dist/lib/docker-utils.js +1 -1
  40. package/dist/lib/email.js +1 -1
  41. package/dist/lib/emailTemplates.js +1 -1
  42. package/dist/lib/entitlement.js +1 -1
  43. package/dist/lib/external-connections.js +1 -1
  44. package/dist/lib/fetch-utils.js +1 -1
  45. package/dist/lib/git-commit-details-route.js +1 -1
  46. package/dist/lib/git-history-diff-guardrails.js +1 -1
  47. package/dist/lib/git-provider-service.js +1 -1
  48. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
  49. package/dist/lib/git-provider-setup/index.js +1 -1
  50. package/dist/lib/git-provider-setup/setup-factory.js +1 -1
  51. package/dist/lib/git-provider-setup/setup-interface.js +1 -1
  52. package/dist/lib/git-providers/azure-devops-provider.js +1 -1
  53. package/dist/lib/git-providers/github-app-provider.js +1 -1
  54. package/dist/lib/git-providers/index.js +1 -1
  55. package/dist/lib/git-providers/provider-factory.js +1 -1
  56. package/dist/lib/git-providers/provider-interface.js +1 -1
  57. package/dist/lib/github-urls.js +1 -1
  58. package/dist/lib/group-objective-linking.js +1 -1
  59. package/dist/lib/ibmi-sync.js +1 -1
  60. package/dist/lib/jira-client.js +1 -1
  61. package/dist/lib/judge-blinding.js +1 -1
  62. package/dist/lib/logger.js +1 -1
  63. package/dist/lib/memory-utils.js +1 -1
  64. package/dist/lib/migration-to-scoped-rbac.js +1 -1
  65. package/dist/lib/model-fetcher.js +1 -1
  66. package/dist/lib/notifications.js +1 -1
  67. package/dist/lib/objective-context.js +1 -1
  68. package/dist/lib/oidc-auth.js +1 -1
  69. package/dist/lib/oidc-device-flow.js +1 -1
  70. package/dist/lib/passwordTokens.js +1 -1
  71. package/dist/lib/permission-resolver.js +1 -1
  72. package/dist/lib/pin-cascade.js +1 -1
  73. package/dist/lib/provider-accounts.js +1 -1
  74. package/dist/lib/provider-oauth.js +1 -1
  75. package/dist/lib/provider-profile.js +1 -1
  76. package/dist/lib/provider-token-refresh.js +1 -1
  77. package/dist/lib/rbac-user-state.js +1 -1
  78. package/dist/lib/request-url.js +1 -1
  79. package/dist/lib/rewind.js +1 -1
  80. package/dist/lib/role-definitions.js +1 -1
  81. package/dist/lib/roles.js +1 -1
  82. package/dist/lib/secrets.js +1 -1
  83. package/dist/lib/setup-repo-git-auth.js +1 -1
  84. package/dist/lib/state-capture.js +1 -1
  85. package/dist/lib/static-files.js +1 -1
  86. package/dist/lib/task-aliases.js +1 -1
  87. package/dist/lib/task-name-format.js +1 -1
  88. package/dist/lib/task-name-generator.js +1 -1
  89. package/dist/lib/task-source-metadata.js +1 -1
  90. package/dist/lib/teams.js +1 -1
  91. package/dist/lib/user-git-oauth.js +1 -1
  92. package/dist/lib/user-git-tokens.js +1 -1
  93. package/dist/lib/users.js +1 -1
  94. package/dist/middleware/requireAuth.js +1 -1
  95. package/dist/middleware/requireInit.js +1 -1
  96. package/dist/middleware/requirePermission.js +1 -1
  97. package/dist/package.json +1 -1
  98. package/dist/playwright.config.js +1 -1
  99. package/dist/playwright.task-terminal.config.js +1 -1
  100. package/dist/routes/apiKeys.js +1 -1
  101. package/dist/routes/auth-oidc.js +1 -1
  102. package/dist/routes/auth.js +1 -1
  103. package/dist/routes/automations.js +1 -1
  104. package/dist/routes/bindings.js +1 -1
  105. package/dist/routes/build.js +1 -1
  106. package/dist/routes/containers.js +1 -1
  107. package/dist/routes/deploy-task.js +1 -1
  108. package/dist/routes/environment-management.js +1 -1
  109. package/dist/routes/environments.js +1 -1
  110. package/dist/routes/external-skills.js +1 -1
  111. package/dist/routes/git-credentials.js +1 -1
  112. package/dist/routes/git-oauth.js +1 -1
  113. package/dist/routes/git-provider-setup.js +1 -1
  114. package/dist/routes/health.js +1 -1
  115. package/dist/routes/jira.js +1 -1
  116. package/dist/routes/logs.js +1 -0
  117. package/dist/routes/objective-management.js +1 -1
  118. package/dist/routes/password.js +1 -1
  119. package/dist/routes/prompt.js +1 -1
  120. package/dist/routes/provider-auth.js +1 -1
  121. package/dist/routes/qa.js +1 -1
  122. package/dist/routes/roles.js +1 -1
  123. package/dist/routes/settings.js +1 -1
  124. package/dist/routes/skill-management.js +1 -1
  125. package/dist/routes/skills.js +1 -1
  126. package/dist/routes/stats.js +1 -0
  127. package/dist/routes/tasks.js +1 -1
  128. package/dist/routes/teams.js +1 -1
  129. package/dist/routes/templates.js +1 -1
  130. package/dist/routes/test-task.js +1 -1
  131. package/dist/routes/test.js +1 -1
  132. package/dist/routes/users.js +1 -1
  133. package/dist/routes/visualizations.js +1 -1
  134. package/dist/scripts/create-user.js +1 -1
  135. package/dist/scripts/migrate-config-to-data-dir.js +1 -1
  136. package/dist/start.js +1 -1
  137. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  138. package/dist/web-ui/public/activity-feed.js +1 -1
  139. package/dist/web-ui/public/activity-formatters.js +1 -1
  140. package/dist/web-ui/public/admin.css +575 -0
  141. package/dist/web-ui/public/admin.html +636 -0
  142. package/dist/web-ui/public/admin.js +1 -0
  143. package/dist/web-ui/public/agent-event-parser.js +1 -1
  144. package/dist/web-ui/public/app.js +1 -1
  145. package/dist/web-ui/public/approve-dialog.js +1 -1
  146. package/dist/web-ui/public/automation-links.js +1 -1
  147. package/dist/web-ui/public/automation-schedule.js +1 -1
  148. package/dist/web-ui/public/comments-widget.js +1 -1
  149. package/dist/web-ui/public/diff-utils.js +1 -1
  150. package/dist/web-ui/public/environments.html +2 -2
  151. package/dist/web-ui/public/environments.js +1 -1
  152. package/dist/web-ui/public/feedback-widget.js +1 -1
  153. package/dist/web-ui/public/file-selection-tree.js +1 -1
  154. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  155. package/dist/web-ui/public/git-history.html +2 -2
  156. package/dist/web-ui/public/git-history.js +1 -1
  157. package/dist/web-ui/public/git-status.js +1 -1
  158. package/dist/web-ui/public/ibmi-file-filter.js +1 -1
  159. package/dist/web-ui/public/index.html +2 -170
  160. package/dist/web-ui/public/index.js +1 -1
  161. package/dist/web-ui/public/login.js +1 -1
  162. package/dist/web-ui/public/markdown-editor.js +1 -1
  163. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  164. package/dist/web-ui/public/modal-maximize.js +1 -1
  165. package/dist/web-ui/public/notifications.js +1 -1
  166. package/dist/web-ui/public/permissions.js +1 -1
  167. package/dist/web-ui/public/pr-dialog.js +1 -1
  168. package/dist/web-ui/public/roles.html +2 -2
  169. package/dist/web-ui/public/roles.js +1 -1
  170. package/dist/web-ui/public/settings.html +66 -4
  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.html +2 -2
  174. package/dist/web-ui/public/skills.js +1 -1
  175. package/dist/web-ui/public/sse-client.js +1 -1
  176. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  177. package/dist/web-ui/public/styles.css +1 -1
  178. package/dist/web-ui/public/task-judging-helpers.js +1 -1
  179. package/dist/web-ui/public/task.js +1 -1
  180. package/dist/web-ui/public/teams.html +2 -2
  181. package/dist/web-ui/public/teams.js +1 -1
  182. package/dist/web-ui/public/terminal.js +1 -1
  183. package/dist/web-ui/public/theme.js +1 -1
  184. package/dist/web-ui/public/users.html +2 -2
  185. package/dist/web-ui/public/users.js +1 -1
  186. package/dist/web-ui/public/variant-grouping.js +1 -1
  187. package/package.json +1 -1
  188. package/dist/web-ui/public/server-health.js +0 -1
@@ -0,0 +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 _0x3cdbf2=await checkAdminAccess();await initializeAdminMenu(_0x3cdbf2),setupEventListeners(),await loadEnvironmentOptions(),document['getElementById']('admin-loading')['hidden']=!![],document['getElementById']('admin-content')['hidden']=![];const _0x5323c2=getSessionValue('admin-health-auto-refresh');if(_0x5323c2!==null){const _0x411a0e=document['getElementById']('health-auto-refresh');if(_0x411a0e)_0x411a0e['checked']=_0x5323c2!=='false';}const _0x4ed7ce=getSessionValue('admin-active-section'),_0x2b3b99=['health','logs','usage']['includes'](_0x4ed7ce)?_0x4ed7ce:'health';await switchSection(_0x2b3b99);}catch(_0x2a29ae){console['error']('Failed\x20to\x20initialize\x20Server\x20Administration\x20page',_0x2a29ae),document['getElementById']('admin-loading')['hidden']=!![],document['getElementById']('admin-error')['hidden']=![],document['getElementById']('admin-error-message')['textContent']=_0x2a29ae['message']||'Unknown\x20error';}}async function checkAdminAccess(){try{const _0x35ec21=await API['getCurrentUser']();if(!window['Permissions']?.['hasServerPermission'](_0x35ec21,'*')){Utils['showToast']('Access\x20denied:\x20Admin\x20privileges\x20required','error'),setTimeout(()=>{window['location']['href']='index.html';},0x7d0);throw new Error('Access\x20denied');}return _0x35ec21;}catch(_0x7b70){_0x7b70['message']!=='Access\x20denied'&&(window['location']['href']='login.html');throw _0x7b70;}}function setupEventListeners(){document['querySelectorAll']('.settings-nav-item')['forEach'](_0x140d15=>{_0x140d15['addEventListener']('click',()=>switchSection(_0x140d15['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'](_0x422883=>{_0x422883['addEventListener']('click',()=>{state['logs']['level']=_0x422883['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',_0x2ffb70=>{state['usage']['environment']=_0x2ffb70['target']['value']||'',loadUsage({'showLoading':![]});}),document['querySelectorAll']('#usage-period-buttons\x20.admin-filter-btn')['forEach'](_0x321d93=>{_0x321d93['addEventListener']('click',()=>{state['usage']['days']=_0x321d93['dataset']['days']||'30',updateActiveFilterButtons('#usage-period-buttons',state['usage']['days']),loadUsage({'showLoading':![]});});});}async function switchSection(_0x384945){if(!_0x384945)return;document['querySelectorAll']('.settings-nav-item')['forEach'](_0x3d1afb=>{const _0x4e7ec6=_0x3d1afb['dataset']['section']===_0x384945;_0x3d1afb['classList']['toggle']('active',_0x4e7ec6),_0x3d1afb['setAttribute']('aria-selected',String(_0x4e7ec6));}),document['querySelectorAll']('.settings-panel')['forEach'](_0x3c74da=>{const _0x27431f=_0x3c74da['id']==='section-'+_0x384945;_0x3c74da['hidden']=!_0x27431f,_0x3c74da['classList']['toggle']('active',_0x27431f);}),state['currentSection']=_0x384945,setSessionValue('admin-active-section',_0x384945),_0x384945!=='health'&&stopHealthAutoRefresh(),_0x384945!=='logs'&&stopLogStream(),_0x384945==='health'&&(syncHealthAutoRefresh(),await loadHealth({'showLoading':!state['health']['loaded']})),_0x384945==='logs'&&(await loadLogs({'showLoading':!state['logs']['loaded']}),state['logs']['live']?startLogStream():updateLogsLiveUi()),_0x384945==='usage'&&await loadUsage({'showLoading':!state['usage']['loaded']});}function getSessionValue(_0xa77c84){try{return sessionStorage['getItem'](_0xa77c84);}catch{return null;}}function setSessionValue(_0x2279e0,_0x298c2c){try{sessionStorage['setItem'](_0x2279e0,_0x298c2c);}catch{}}async function loadEnvironmentOptions(){const _0x3dafed=await API['get']('/environments');state['environments']=(_0x3dafed['environments']||[])['map'](_0x5e2a2d=>_0x5e2a2d?.['name'])['filter'](Boolean)['sort']((_0x3f6339,_0x41dbb0)=>_0x3f6339['localeCompare'](_0x41dbb0));const _0x26f583=document['getElementById']('usage-environment-filter');if(!_0x26f583)return;_0x26f583['innerHTML']='<option\x20value=\x22\x22>All\x20environments</option>'+state['environments']['map'](_0x28bca6=>'<option\x20value=\x22'+Utils['escapeHtml'](_0x28bca6)+'\x22>'+Utils['escapeHtml'](_0x28bca6)+'</option>')['join'](''),_0x26f583['value']=state['usage']['environment'];}function syncHealthAutoRefresh(){const _0x563b51=document['getElementById']('health-auto-refresh');if(_0x563b51)setSessionValue('admin-health-auto-refresh',String(_0x563b51['checked']));const _0x1e7079=state['currentSection']==='health'&&!!_0x563b51?.['checked'];stopHealthAutoRefresh();if(!_0x1e7079)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 _0x4d0721=document['getElementById']('health-loading'),_0x50a465=document['getElementById']('health-error'),_0x5d0855=document['getElementById']('health-content');(showLoading||!state['health']['loaded'])&&(_0x4d0721['hidden']=![],_0x50a465['hidden']=!![],_0x5d0855['hidden']=!![]);try{const [_0xc86547]=await Promise['all']([API['get']('/health/metrics'),loadUpdateSettings()['catch'](_0x1bb09f=>{console['error']('Failed\x20to\x20load\x20update\x20settings',_0x1bb09f),state['health']['updateEnabled']=![],state['health']['hasRestartCommand']=![],syncHealthActionButtons();})]);renderHealthMetrics(_0xc86547),!state['health']['currentVersion']&&await loadVersionStatus({'checkUpdates':![]}),_0x4d0721['hidden']=!![],_0x50a465['hidden']=!![],_0x5d0855['hidden']=![],state['health']['loaded']=!![];}catch(_0x535c28){console['error']('Failed\x20to\x20load\x20server\x20metrics',_0x535c28),_0x4d0721['hidden']=!![],_0x50a465['hidden']=![],_0x5d0855['hidden']=!![],document['getElementById']('health-error-message')['textContent']=_0x535c28['message']||'Unknown\x20error';}finally{state['health']['request']=null;}})()),state['health']['request'];}function syncHealthActionButtons(){const _0x33c1d0=document['getElementById']('health-update-btn'),_0x3ccf2b=document['getElementById']('health-restart-btn');if(!_0x33c1d0||!_0x3ccf2b)return;const _0x5774a7=state['health']['updateEnabled'],_0x450118=_0x5774a7&&state['health']['versionChecked']&&state['health']['updateAvailable'];_0x33c1d0['hidden']=!_0x450118,_0x33c1d0['disabled']=state['health']['updateInProgress']||state['health']['restartInProgress']||!state['health']['latestVersion'],_0x33c1d0['textContent']=state['health']['updateInProgress']?'Updating...':'Update\x20Server',_0x3ccf2b['hidden']=!_0x5774a7,_0x3ccf2b['disabled']=state['health']['updateInProgress']||state['health']['restartInProgress'];}function setUpdateOutput({status:_0x4ef1ec,output:_0x3601f8}){const _0x2bee4c=document['getElementById']('health-update-output-wrap'),_0x7321ff=document['getElementById']('health-update-status'),_0x2e35bf=document['getElementById']('health-update-output');if(!_0x2bee4c||!_0x7321ff||!_0x2e35bf)return;const _0x45465d=_0x4ef1ec||'';_0x2bee4c['hidden']=![],_0x7321ff['className']='admin-update-status',_0x45465d&&_0x7321ff['classList']['add'](_0x45465d),_0x7321ff['textContent']=_0x45465d==='success'?'Success':_0x45465d==='error'?'Failed':'In\x20Progress',_0x2e35bf['textContent']=_0x3601f8||'No\x20output\x20returned.';}function buildCommandOutput(_0x12499f,_0x16eb7f){const _0x4b56ad=[];typeof _0x12499f==='string'&&_0x12499f['trim']()&&_0x4b56ad['push'](_0x12499f['trim']());if(typeof _0x16eb7f==='string'&&_0x16eb7f['trim']()){const _0x5b0fd7=_0x16eb7f['trim'](),_0x57688e=_0x4b56ad['some'](_0x583ba5=>_0x583ba5['includes'](_0x5b0fd7));!_0x57688e&&_0x4b56ad['push']('Error:\x0a'+_0x5b0fd7);}return _0x4b56ad['join']('\x0a\x0a');}function showRestartOverlay({title:_0x188707,message:_0xb2cf33,showRetry:showRetry=![]}){const _0x21c2de=document['getElementById']('health-restart-overlay'),_0x584ed1=document['getElementById']('restart-overlay-title'),_0x268cc2=document['getElementById']('restart-overlay-message'),_0x5ccd3b=document['getElementById']('restart-overlay-retry');if(!_0x21c2de||!_0x584ed1||!_0x268cc2||!_0x5ccd3b)return;_0x584ed1['textContent']=_0x188707,_0x268cc2['textContent']=_0xb2cf33,_0x5ccd3b['hidden']=!showRetry,_0x21c2de['hidden']=![];}function hideRestartOverlay(){const _0x2acf5f=document['getElementById']('health-restart-overlay');_0x2acf5f&&(_0x2acf5f['hidden']=!![]);}function sleep(_0x979384){return new Promise(_0x8e06b5=>{window['setTimeout'](_0x8e06b5,_0x979384);});}async function loadUpdateSettings(){const _0x3397fe=await API['getUpdateSettings']();return state['health']['updateEnabled']=!!_0x3397fe['enabled'],state['health']['hasRestartCommand']=!!_0x3397fe['hasRestartCommand'],syncHealthActionButtons(),_0x3397fe;}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 _0x516c46=await API['applyServerUpdate'](state['health']['latestVersion']),_0xe2c5eb=buildCommandOutput(_0x516c46['output'],_0x516c46['error']);_0x516c46['success']?(setUpdateOutput({'status':'success','output':_0xe2c5eb||'Server\x20update\x20to\x20'+state['health']['latestVersion']+'\x20completed.'}),Utils['showSuccess']('Server\x20update\x20to\x20'+state['health']['latestVersion']+'\x20completed')):(setUpdateOutput({'status':'error','output':_0xe2c5eb||'Server\x20update\x20failed\x20without\x20additional\x20output.'}),Utils['showError'](_0x516c46['error']||'Server\x20update\x20failed'));}catch(_0x5e6d66){setUpdateOutput({'status':'error','output':buildCommandOutput(_0x5e6d66['output'],_0x5e6d66['commandError']||_0x5e6d66['message'])||'Failed\x20to\x20apply\x20server\x20update.'}),Utils['showError'](_0x5e6d66['message']||'Failed\x20to\x20apply\x20server\x20update');}finally{state['health']['updateInProgress']=![],syncHealthActionButtons();}}function showRestartConfirmation(){if(!state['health']['updateEnabled']||state['health']['restartInProgress'])return;const _0x2a7857=document['getElementById']('restart-modal');_0x2a7857&&(_0x2a7857['hidden']=![]);}function hideRestartModal(){const _0x5b1115=document['getElementById']('restart-modal');_0x5b1115&&(_0x5b1115['hidden']=!![]);}async function confirmRestart(){if(state['health']['restartInProgress'])return;hideRestartModal(),state['health']['restartInProgress']=!![],syncHealthActionButtons();try{await API['restartServer'](),await waitForServerRestart();}catch(_0x5074d9){state['health']['restartInProgress']=![],syncHealthActionButtons(),hideRestartOverlay(),Utils['showError'](_0x5074d9['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 _0x508f21=Date['now']();let _0x5eb464=![];for(let _0x136152=0x0;_0x136152<RESTART_POLL_MAX_ATTEMPTS;_0x136152+=0x1){await sleep(RESTART_POLL_INTERVAL_MS);try{await API['get']('/health?ts='+Date['now']());const _0x23625f=Date['now']()-_0x508f21;if(_0x5eb464||_0x23625f>=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(_0xfa78d8){_0x5eb464=!![];}}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 _0x3362d8=document['getElementById']('health-check-updates-btn');_0x3362d8&&(_0x3362d8['disabled']=!![],_0x3362d8['textContent']=checkUpdates?'Checking...':'Loading...');try{const _0x4bb314=await API['get']('/health');state['health']['currentVersion']=_0x4bb314['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 _0x5c77f1=await API['get']('/health/check-updates');state['health']['versionChecked']=!![],state['health']['latestVersion']=_0x5c77f1['latestVersion']||'Unavailable',state['health']['installCommand']=_0x5c77f1['installCommand']||null,state['health']['updateAvailable']=!!_0x5c77f1['updateAvailable'],document['getElementById']('health-version-current')['textContent']=_0x5c77f1['currentVersion']||state['health']['currentVersion'],document['getElementById']('health-version-latest')['textContent']=state['health']['latestVersion'],document['getElementById']('health-version-status')['textContent']=buildVersionStatusText(_0x5c77f1),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(_0x340ca3){console['error']('Failed\x20to\x20load\x20version\x20status',_0x340ca3),state['health']['updateAvailable']=![],document['getElementById']('health-version-status')['textContent']='Unable\x20to\x20load\x20version\x20status:\x20'+_0x340ca3['message'],document['getElementById']('health-install-command-wrap')['hidden']=!![],document['getElementById']('health-copy-install-btn')['hidden']=!![],syncHealthActionButtons();}finally{_0x3362d8&&(_0x3362d8['disabled']=![],_0x3362d8['textContent']='Check\x20for\x20Updates');}}function buildVersionStatusText(_0x3c0573){const _0x56195e=_0x3c0573?.['versionStatus'];if(_0x56195e==='update-available')return'Update\x20available:\x20'+_0x3c0573['currentVersion']+'\x20→\x20'+_0x3c0573['latestVersion'];if(_0x56195e==='up-to-date')return'Running\x20the\x20latest\x20published\x20version\x20('+_0x3c0573['latestVersion']+').';if(_0x56195e==='ahead-of-latest')return'This\x20server\x20is\x20ahead\x20of\x20npm\x20latest\x20('+_0x3c0573['latestVersion']+').';return'Unable\x20to\x20compare\x20current\x20and\x20latest\x20versions.';}async function copyInstallCommand(){if(!state['health']['installCommand'])return;const _0x25d705=await Utils['copyToClipboard'](state['health']['installCommand']);_0x25d705?Utils['showSuccess']('Install\x20command\x20copied'):Utils['showError']('Failed\x20to\x20copy\x20install\x20command');}function renderHealthMetrics(_0x55aab7){document['getElementById']('cpu-usage')['textContent']=_0x55aab7['cpu']?.['display']||'-',document['getElementById']('memory-usage')['textContent']=_0x55aab7['memory']?.['display']||'-',document['getElementById']('disk-usage')['textContent']=_0x55aab7['disk']?.['display']||'-',document['getElementById']('docker-containers')['textContent']=_0x55aab7['docker']?.['display']||'-',document['getElementById']('server-uptime')['textContent']=_0x55aab7['uptime']?.['display']||'-',document['getElementById']('active-sessions')['textContent']=_0x55aab7['sessions']?.['display']||'-',setMetricProgress('cpu-progress',_0x55aab7['cpu']?.['percent'],statusFromPercent(_0x55aab7['cpu']?.['percent'])),setMetricProgress('memory-progress',_0x55aab7['memory']?.['percent'],statusFromPercent(_0x55aab7['memory']?.['percent'])),setMetricProgress('disk-progress',_0x55aab7['disk']?.['percent'],statusFromPercent(_0x55aab7['disk']?.['percent']));const _0xa418b5=_0x55aab7['docker']?.['total']>0x0?_0x55aab7['docker']['running']/_0x55aab7['docker']['total']*0x64:0x0;setMetricProgress('docker-progress',_0xa418b5,'ok');const _0x103708=_0x55aab7['dockerStorage']||{},_0x2fd524=document['getElementById']('docker-storage-card');document['getElementById']('docker-storage-total')['textContent']=_0x103708['display']||'-',document['getElementById']('docker-storage-available')['textContent']=_0x103708['availableDisplay']||'',document['getElementById']('docker-storage-available')['hidden']=!_0x103708['availableDisplay'],document['getElementById']('docker-storage-reclaimable')['textContent']=_0x103708['reclaimableDisplay']||'',document['getElementById']('docker-storage-images')['textContent']=_0x103708['images']?.['display']||'-',document['getElementById']('docker-storage-containers')['textContent']=_0x103708['containers']?.['display']||'-',document['getElementById']('docker-storage-volumes')['textContent']=_0x103708['volumes']?.['display']||'-',document['getElementById']('docker-storage-buildcache')['textContent']=_0x103708['buildCache']?.['display']||'-',setMetricProgress('docker-storage-progress',_0x103708['percent'],_0x103708['status']||'ok'),_0x2fd524['classList']['remove']('status-warning','status-critical'),_0x103708['status']==='warning'&&_0x2fd524['classList']['add']('status-warning'),_0x103708['status']==='critical'&&_0x2fd524['classList']['add']('status-critical');}function clampPercent(_0x370039){if(!Number['isFinite'](_0x370039))return 0x0;return Math['max'](0x0,Math['min'](0x64,Math['round'](_0x370039)));}function statusFromPercent(_0x54dfb4){if(!Number['isFinite'](_0x54dfb4))return'ok';if(_0x54dfb4>=0x5a)return'critical';if(_0x54dfb4>=0x4b)return'warning';return'ok';}function setMetricProgress(_0x31d482,_0x1220c2,_0x857041='ok'){const _0x17f743=document['getElementById'](_0x31d482);if(!_0x17f743)return;const _0xf6b37c=clampPercent(_0x1220c2);_0x17f743['style']['width']=_0xf6b37c+'%',_0x17f743['classList']['remove']('status-ok','status-warning','status-critical'),_0x17f743['classList']['add'](_0x857041==='critical'?'status-critical':_0x857041==='warning'?'status-warning':'status-ok'),_0x17f743['parentElement']?.['setAttribute']('aria-valuenow',String(_0xf6b37c));}async function runCleanupAction(_0x301e9b,_0xb57f28){const _0x5cfd5c=document['getElementById']('server-health-action-status'),_0x36b5bb=[document['getElementById']('health-refresh-btn'),document['getElementById']('server-stop-containers'),document['getElementById']('server-remove-stopped'),document['getElementById']('server-prune-docker')]['filter'](Boolean);_0x36b5bb['forEach'](_0x4e4b24=>{_0x4e4b24['disabled']=!![];}),_0x5cfd5c['hidden']=![],_0x5cfd5c['classList']['remove']('success','error'),_0x5cfd5c['textContent']=_0x301e9b+'...';try{const _0x23cecb=await _0xb57f28();_0x5cfd5c['classList']['add']('success'),_0x5cfd5c['textContent']=_0x23cecb?.['message']||_0x301e9b+'\x20complete',await loadHealth({'showLoading':!![]});}catch(_0x2d618b){console['error'](_0x301e9b+'\x20failed',_0x2d618b),_0x5cfd5c['classList']['add']('error'),_0x5cfd5c['textContent']=_0x2d618b['message']||_0x301e9b+'\x20failed';}finally{_0x36b5bb['forEach'](_0x3ace68=>{_0x3ace68['disabled']=![];});}}function toggleCleanupSection(){const _0x59063b=document['getElementById']('cleanup-section'),_0x3318c8=document['getElementById']('cleanup-content'),_0x79a0dd=document['getElementById']('cleanup-toggle');if(!_0x59063b||!_0x3318c8||!_0x79a0dd)return;const _0x39e4d7=_0x59063b['classList']['toggle']('expanded');_0x3318c8['hidden']=!_0x39e4d7,_0x79a0dd['setAttribute']('aria-expanded',String(_0x39e4d7));}async function loadLogs({showLoading:showLoading=![]}={}){if(state['logs']['request'])return state['logs']['request'];return state['logs']['request']=((async()=>{const _0x58979c=document['getElementById']('logs-loading'),_0x4a7561=document['getElementById']('logs-error');(showLoading||!state['logs']['loaded'])&&(_0x58979c['hidden']=![],_0x4a7561['hidden']=!![],document['getElementById']('logs-empty')['hidden']=!![],document['getElementById']('logs-container')['hidden']=!![]);try{const _0x34f690=new URLSearchParams({'limit':'500'});state['logs']['level']!=='ALL'&&_0x34f690['set']('level',state['logs']['level']);state['logs']['search']&&_0x34f690['set']('search',state['logs']['search']);const _0x16be86=await API['get']('/logs?'+_0x34f690['toString']());state['logs']['entries']=Array['isArray'](_0x16be86['entries'])?_0x16be86['entries']['slice'](-state['logs']['maxEntries']):[],state['logs']['total']=Number(_0x16be86['total'])||0x0,state['logs']['minLevel']=_0x16be86['minLevel']||'INFO',state['logs']['loaded']=!![],_0x58979c['hidden']=!![],_0x4a7561['hidden']=!![],renderLogs();}catch(_0x41cda0){console['error']('Failed\x20to\x20load\x20logs',_0x41cda0),_0x58979c['hidden']=!![],_0x4a7561['hidden']=![],document['getElementById']('logs-error-message')['textContent']=_0x41cda0['message']||'Unknown\x20error',document['getElementById']('logs-empty')['hidden']=!![],document['getElementById']('logs-container')['hidden']=!![];}finally{state['logs']['request']=null;}})()),state['logs']['request'];}function renderLogs(){const _0x76a6ec=document['getElementById']('logs-container'),_0x180688=document['getElementById']('logs-empty'),_0x46a09c=state['logs']['autoScroll']&&state['logs']['live'],_0x49730f=getVisibleLogEntries();updateLogsMeta(_0x49730f['length']);if(_0x49730f['length']===0x0){_0x76a6ec['hidden']=!![],_0x180688['hidden']=![];return;}_0x180688['hidden']=!![],_0x76a6ec['hidden']=![],_0x76a6ec['innerHTML']=_0x49730f['map'](renderLogEntry)['join'](''),_0x46a09c&&(_0x76a6ec['scrollTop']=_0x76a6ec['scrollHeight']);}function getVisibleLogEntries(){const _0x129694=state['logs']['search']['trim']()['toLowerCase']();return state['logs']['entries']['filter'](_0x56575b=>{if(state['logs']['level']!=='ALL'&&_0x56575b['level']!==state['logs']['level'])return![];if(!_0x129694)return!![];const _0x215a68=String(_0x56575b['message']||'')['toLowerCase'](),_0x5e7c6d=_0x56575b['context']?JSON['stringify'](_0x56575b['context'])['toLowerCase']():'';return _0x215a68['includes'](_0x129694)||_0x5e7c6d['includes'](_0x129694);});}function renderLogEntry(_0x328d92){const _0x293e1c=Utils['escapeHtml'](formatDateTime(_0x328d92['timestamp'])),_0xd590fa=Utils['escapeHtml'](String(_0x328d92['level']||'INFO')),_0x2003c7=Utils['escapeHtml'](String(_0x328d92['message']||'')),_0x24d549=_0x328d92['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'](_0x328d92['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>'+_0x293e1c+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22admin-log-level\x20level-'+_0xd590fa['toLowerCase']()+'\x22>'+_0xd590fa+'</span>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-log-message\x22>'+_0x2003c7+'</div>\x0a\x20\x20\x20\x20\x20\x20'+_0x24d549+'\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}function updateLogsMeta(_0x131295){const _0x45d6f5=document['getElementById']('logs-meta');if(!_0x45d6f5)return;const _0x10c403=state['logs']['entries']['length'],_0x3182e1=state['logs']['level']!=='ALL'||!!state['logs']['search']['trim']();_0x45d6f5['textContent']=_0x3182e1?'Showing\x20'+_0x131295+'\x20of\x20'+_0x10c403+'\x20loaded\x20entries\x20for\x20the\x20current\x20filters.\x20Minimum\x20runtime\x20level:\x20'+state['logs']['minLevel']+'.':'Showing\x20'+_0x131295+'\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 _0x1bc442=document['getElementById']('logs-live-toggle'),_0xf7d59c=document['getElementById']('logs-stream-status');if(!_0x1bc442||!_0xf7d59c)return;_0xf7d59c['classList']['remove']('live','error');if(!state['logs']['live']){_0xf7d59c['textContent']='Paused',_0x1bc442['textContent']='Start\x20Live';return;}if(state['logs']['streamState']==='live')_0xf7d59c['textContent']='Live',_0xf7d59c['classList']['add']('live');else state['logs']['streamState']==='error'?(_0xf7d59c['textContent']='Reconnecting',_0xf7d59c['classList']['add']('error')):_0xf7d59c['textContent']='Connecting';_0x1bc442['textContent']='Pause\x20Live';}function startLogStream(){if(state['currentSection']!=='logs'||state['logs']['stream'])return;state['logs']['streamState']='connecting',updateLogsLiveUi();const _0x55aa26=new EventSource(API['getBaseUrl']()+'/logs/stream');state['logs']['stream']=_0x55aa26,_0x55aa26['addEventListener']('log',_0xe722c9=>{try{const _0x42e095=JSON['parse'](_0xe722c9['data']);state['logs']['entries']['push'](_0x42e095),state['logs']['entries']['length']>state['logs']['maxEntries']&&state['logs']['entries']['shift'](),renderLogs();}catch(_0x1f4e37){console['error']('Failed\x20to\x20parse\x20log\x20stream\x20event',_0x1f4e37);}}),_0x55aa26['onopen']=()=>{state['logs']['streamState']='live',updateLogsLiveUi();},_0x55aa26['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(_0x3fe9ea){const _0x2bb826=_0x3fe9ea['target']['value']||'';state['logs']['searchTimer']&&clearTimeout(state['logs']['searchTimer']),state['logs']['searchTimer']=window['setTimeout'](()=>{state['logs']['search']=_0x2bb826,loadLogs({'showLoading':![]});},LOG_SEARCH_DEBOUNCE_MS);}function updateLogAutoScrollState(){const _0x163258=document['getElementById']('logs-container');if(!_0x163258)return;const _0x5a135a=_0x163258['scrollHeight']-_0x163258['scrollTop']-_0x163258['clientHeight'];state['logs']['autoScroll']=_0x5a135a<0x20;}async function loadUsage({showLoading:showLoading=![]}={}){if(state['usage']['request'])return state['usage']['request'];return state['usage']['request']=((async()=>{const _0x2ed3db=document['getElementById']('usage-loading'),_0x5baf63=document['getElementById']('usage-error');(showLoading||!state['usage']['loaded'])&&(_0x2ed3db['hidden']=![],_0x5baf63['hidden']=!![],document['getElementById']('usage-empty')['hidden']=!![],document['getElementById']('usage-content')['hidden']=!![]);try{const _0x7db3ec=new URLSearchParams();_0x7db3ec['set']('days',state['usage']['days']);state['usage']['environment']&&_0x7db3ec['set']('environment',state['usage']['environment']);const _0x7b757e=await API['get']('/stats?'+_0x7db3ec['toString']());state['usage']['loaded']=!![],_0x2ed3db['hidden']=!![],_0x5baf63['hidden']=!![],renderUsage(_0x7b757e);}catch(_0x3acb23){console['error']('Failed\x20to\x20load\x20usage\x20statistics',_0x3acb23),_0x2ed3db['hidden']=!![],_0x5baf63['hidden']=![],document['getElementById']('usage-error-message')['textContent']=_0x3acb23['message']||'Unknown\x20error',document['getElementById']('usage-empty')['hidden']=!![],document['getElementById']('usage-content')['hidden']=!![];}finally{state['usage']['request']=null;}})()),state['usage']['request'];}function renderUsage(_0x35e1c9){const _0x374950=Number(_0x35e1c9?.['tasks']?.['total'])||0x0,_0x707c1a=document['getElementById']('usage-empty'),_0x1c8941=document['getElementById']('usage-content');if(_0x374950===0x0){_0x707c1a['hidden']=![],_0x1c8941['hidden']=!![];return;}_0x707c1a['hidden']=!![],_0x1c8941['hidden']=![];const _0x40191d=Number(_0x35e1c9?.['approvalRate']?.['successRate'])||0x0,_0x4d0311=Math['round'](_0x40191d*0x64),_0x36ac53=(Number(_0x35e1c9?.['code']?.['linesAdded'])||0x0)-(Number(_0x35e1c9?.['code']?.['linesDeleted'])||0x0),_0x46e9fa=Number(_0x35e1c9?.['timing']?.['averageDurationMinutes'])||0x0;setSummaryValue('usage-total-tasks',formatNumber(_0x374950)),setSummaryValue('usage-success-rate',_0x4d0311+'%',statusClassFromPercent(_0x4d0311)),setSummaryValue('usage-net-lines',formatSignedNumber(_0x36ac53)),setSummaryValue('usage-average-duration',formatDurationMinutes(_0x46e9fa)),document['getElementById']('usage-success-detail')['textContent']=(_0x35e1c9['approvalRate']['completed']||0x0)+'\x20completed\x20/\x20'+(_0x35e1c9['approvalRate']['failed']||0x0)+'\x20failed\x20/\x20'+(_0x35e1c9['approvalRate']['interrupted']||0x0)+'\x20interrupted',document['getElementById']('usage-net-lines-detail')['textContent']=formatNumber(_0x35e1c9['code']['linesAdded']||0x0)+'\x20added,\x20'+formatNumber(_0x35e1c9['code']['linesDeleted']||0x0)+'\x20deleted',document['getElementById']('usage-average-duration-detail')['textContent']=formatDurationMinutes(_0x35e1c9['timing']['medianDurationMinutes']||0x0)+'\x20median',document['getElementById']('usage-period-summary')['textContent']=buildPeriodSummary(_0x35e1c9['period']),renderBarList('usage-status-bars',_0x35e1c9['tasks']['byStatus']||{}),renderObjectTable('usage-type-body',_0x35e1c9['tasks']['byType']||{},_0x374950,{'includePercent':!![],'labelFormatter':prettifyKey}),renderObjectTable('usage-environment-body',_0x35e1c9['tasks']['byEnvironment']||{},_0x374950),renderUserTable('usage-user-body',_0x35e1c9['tasks']['byUser']||[]),renderObjectTable('usage-source-body',_0x35e1c9['tasks']['bySource']||{},_0x374950,{'labelFormatter':prettifyKey}),document['getElementById']('usage-lines-added')['textContent']=formatNumber(_0x35e1c9['code']['linesAdded']||0x0),document['getElementById']('usage-lines-deleted')['textContent']=formatNumber(_0x35e1c9['code']['linesDeleted']||0x0),document['getElementById']('usage-files-changed')['textContent']=formatNumber(_0x35e1c9['code']['filesChanged']||0x0),document['getElementById']('usage-repositories-affected')['textContent']=formatNumber(_0x35e1c9['code']['repositoriesAffected']||0x0),document['getElementById']('usage-median-duration')['textContent']=formatDurationMinutes(_0x35e1c9['timing']['medianDurationMinutes']||0x0),document['getElementById']('usage-total-duration')['textContent']=formatNumber(_0x35e1c9['timing']['totalDurationHours']||0x0)+'h';}function buildPeriodSummary(_0x218863){const _0x3522b1=_0x218863?.['from']?formatDateTime(_0x218863['from']):'the\x20earliest\x20loaded\x20task',_0x57cd4a=_0x218863?.['to']?formatDateTime(_0x218863['to']):'now',_0x24dfff=_0x218863?.['days']?_0x218863['days']+'\x20day\x20window':'All\x20available\x20task\x20history';return _0x24dfff+'\x20·\x20'+_0x3522b1+'\x20to\x20'+_0x57cd4a;}function renderBarList(_0x2ece79,_0x3566e4){const _0x41dfe6=document['getElementById'](_0x2ece79);if(!_0x41dfe6)return;const _0x537f78=Object['entries'](_0x3566e4)['filter'](([,_0x4e97db])=>Number(_0x4e97db)>0x0)['sort']((_0x58ae54,_0x42163a)=>_0x42163a[0x1]-_0x58ae54[0x1]),_0x20c43d=_0x537f78['reduce']((_0x161038,[,_0x351967])=>_0x161038+Number(_0x351967||0x0),0x0);if(_0x537f78['length']===0x0){_0x41dfe6['innerHTML']='<div\x20class=\x22text-muted\x22>No\x20data\x20available.</div>';return;}_0x41dfe6['innerHTML']=_0x537f78['map'](([_0x30cd15,_0x565f39])=>{const _0x20e838=_0x20c43d>0x0?Math['max'](0x2,Math['round'](_0x565f39/_0x20c43d*0x64)):0x0,_0xe97c7=Utils['escapeHtml'](prettifyKey(_0x30cd15)),_0x520c7c=Utils['escapeHtml'](formatNumber(_0x565f39));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>'+_0xe97c7+'</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(_0x30cd15)['toLowerCase']())+'\x22\x20style=\x22width:\x20'+_0x20e838+'%\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>'+_0x520c7c+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';})['join']('');}function renderObjectTable(_0x92f88e,_0xc531ed,_0x5b5367,{includePercent:includePercent=![],labelFormatter:labelFormatter=null}={}){const _0x522d09=document['getElementById'](_0x92f88e);if(!_0x522d09)return;const _0xdaf5f5=Object['entries'](_0xc531ed)['filter'](([,_0x5bab1d])=>Number(_0x5bab1d)>0x0)['sort']((_0x47021c,_0x204c7c)=>_0x204c7c[0x1]-_0x47021c[0x1]||String(_0x47021c[0x0])['localeCompare'](String(_0x204c7c[0x0])));if(_0xdaf5f5['length']===0x0){_0x522d09['innerHTML']='<tr><td\x20colspan=\x22'+(includePercent?0x3:0x2)+'\x22\x20class=\x22text-muted\x22>No\x20data\x20available.</td></tr>';return;}_0x522d09['innerHTML']=_0xdaf5f5['map'](([_0x134159,_0x41f49e])=>{const _0x33f969=labelFormatter?labelFormatter(_0x134159):_0x134159,_0x732f50=includePercent?'<td>'+formatPercent(_0x5b5367>0x0?_0x41f49e/_0x5b5367*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(_0x33f969))+'</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](formatNumber(_0x41f49e))+'</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x732f50+'\x0a\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20';})['join']('');}function renderUserTable(_0x106033,_0x439b2c){const _0xbf1614=document['getElementById'](_0x106033);if(!_0xbf1614)return;if(!Array['isArray'](_0x439b2c)||_0x439b2c['length']===0x0){_0xbf1614['innerHTML']='<tr><td\x20colspan=\x222\x22\x20class=\x22text-muted\x22>No\x20data\x20available.</td></tr>';return;}_0xbf1614['innerHTML']=_0x439b2c['map'](_0x277376=>'\x0a\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](_0x277376['name']||_0x277376['username']||_0x277376['userId']||'Unknown')+'</td>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](formatNumber(_0x277376['count']||0x0))+'</td>\x0a\x20\x20\x20\x20</tr>\x0a\x20\x20')['join']('');}function updateActiveFilterButtons(_0x181a55,_0x2d74fc){document['querySelectorAll'](_0x181a55+'\x20.admin-filter-btn')['forEach'](_0x427521=>{_0x427521['classList']['toggle']('active',_0x427521['dataset']['level']===_0x2d74fc||_0x427521['dataset']['days']===_0x2d74fc);});}function setSummaryValue(_0x36bca1,_0x2224e7,_0x16aee5=''){const _0x4d8d30=document['getElementById'](_0x36bca1);if(!_0x4d8d30)return;_0x4d8d30['textContent']=_0x2224e7,_0x4d8d30['classList']['remove']('status-good','status-warn','status-bad'),_0x16aee5&&_0x4d8d30['classList']['add'](_0x16aee5);}function statusClassFromPercent(_0x39b482){if(_0x39b482>=0x50)return'status-good';if(_0x39b482>0x3c)return'status-warn';return'status-bad';}function formatDateTime(_0x1db022){const _0x44f9ae=new Date(_0x1db022);if(Number['isNaN'](_0x44f9ae['getTime']()))return _0x1db022||'Unknown';return _0x44f9ae['toLocaleString']();}function formatDurationMinutes(_0xc039be){const _0x1e54fd=Math['round'](Number(_0xc039be)||0x0);if(_0x1e54fd<0x3c)return _0x1e54fd+'m';const _0x5a5c5a=Math['floor'](_0x1e54fd/0x3c),_0x3ee3fd=_0x1e54fd%0x3c;return _0x3ee3fd>0x0?_0x5a5c5a+'h\x20'+_0x3ee3fd+'m':_0x5a5c5a+'h';}function formatPercent(_0x108481){return Math['round'](Number(_0x108481)||0x0)+'%';}function formatNumber(_0x3eb3c7){return NUMBER_FORMATTER['format'](Number(_0x3eb3c7)||0x0);}function formatSignedNumber(_0x3a3f88){const _0x21881c=Number(_0x3a3f88)||0x0;if(_0x21881c>0x0)return'+'+formatNumber(_0x21881c);return formatNumber(_0x21881c);}function prettifyKey(_0x3fe6ac){return String(_0x3fe6ac)['replace'](/[_-]+/g,'\x20')['replace'](/\b\w/g,_0x38378d=>_0x38378d['toUpperCase']());}
@@ -1 +1 @@
1
- export function parseEventsToActivities(_0x48dcc6){const _0x842f99=[];let _0xaf6641=null,_0x1dcf70=null,_0x139715=null,_0x46d8ce=null;return _0x48dcc6['forEach'](_0x2e4c29=>{if(_0x2e4c29['type']==='assistant'&&_0x2e4c29['message']?.['content'])_0x2e4c29['message']['content']['forEach']((_0x28fef6,_0xab906a)=>{if(_0x28fef6['type']==='text'){const _0x4b6023=_0x28fef6['id']||_0x2e4c29['message']['id']+'-'+_0x2e4c29['timestamp']+'-'+_0xab906a,_0x39dcdb=_0x2e4c29['message']['stop_reason']==='end_turn';_0x842f99['push']({'icon':_0x39dcdb?'🤖':'💭','action':_0x39dcdb?'Response':'Thinking','detail':truncate(_0x28fef6['text'],0x64),'status':'success','id':_0x4b6023,'fullContent':_0x28fef6['text'],'expandable':!![],'isAgentResponse':_0x39dcdb,'timestamp':_0x2e4c29['timestamp'],'rawData':{'event':_0x2e4c29,'block':_0x28fef6}});}else{if(_0x28fef6['type']==='tool_use'){const _0x599f63=_0x28fef6['name']==='TodoWrite'||_0x28fef6['name']==='AskUserQuestion'||_0x28fef6['name']==='ExitPlanMode';_0x842f99['push']({'icon':getToolIcon(_0x28fef6['name']),'action':_0x28fef6['name'],'detail':formatToolInputCompact(_0x28fef6['name'],_0x28fef6['input']),'status':'running','id':_0x28fef6['id'],'fullContent':_0x599f63?_0x28fef6['input']:null,'expandable':_0x599f63,'toolInput':_0x28fef6['input'],'timestamp':_0x2e4c29['timestamp'],'rawData':{'event':_0x2e4c29,'block':_0x28fef6}});}}});else{if(_0x2e4c29['type']==='user'&&_0x2e4c29['message']?.['content'])_0x2e4c29['message']['content']['forEach'](_0x5cbb2a=>{if(_0x5cbb2a['type']==='tool_result'){const _0x49a481=_0x842f99['find'](_0x590230=>_0x590230['id']===_0x5cbb2a['tool_use_id']);_0x49a481&&(_0x49a481['status']=_0x5cbb2a['is_error']?'error':'success',shouldBeExpandable(_0x49a481['action'])&&(_0x49a481['fullContent']=formatToolResult(_0x49a481['action'],_0x5cbb2a['content'],_0x49a481['toolInput'],_0x5cbb2a['is_error'],_0x2e4c29['tool_use_result']),_0x49a481['expandable']=!![]),_0x49a481['rawData']=mergeRawData(_0x49a481['rawData'],{'toolResultEvent':_0x2e4c29,'toolResult':_0x5cbb2a}));}});else{if(_0x2e4c29['type']==='turn.started')_0x46d8ce=_0x842f99['length'];else{if(_0x2e4c29['type']==='turn.completed')promoteCodexTurnThinkingToResponse(_0x842f99,_0x46d8ce),_0x46d8ce=_0x842f99['length'];else{if(_0x2e4c29['type']==='item.started'&&_0x2e4c29['item']){const _0x5e2f8c=_0x2e4c29['item'];if(_0x5e2f8c['type']==='command_execution'){const _0x438c7d=_0x5e2f8c['id']+'-'+_0x2e4c29['timestamp'];_0x842f99['push']({'icon':'🖥️','action':'Bash','detail':truncate(_0x5e2f8c['command']||'',0x64),'status':'running','id':_0x438c7d,'codexItemId':_0x5e2f8c['id'],'toolInput':{'command':_0x5e2f8c['command']},'timestamp':_0x2e4c29['timestamp'],'rawData':{'event':_0x2e4c29}});}}else{if(_0x2e4c29['type']==='item.completed'&&_0x2e4c29['item']){const _0x21fb88=_0x2e4c29['item'];if(_0x21fb88['type']==='reasoning')_0x842f99['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x21fb88['text']||'',0x64),'status':'success','id':_0x21fb88['id']+'-'+_0x2e4c29['timestamp'],'fullContent':_0x21fb88['text'],'expandable':!![],'timestamp':_0x2e4c29['timestamp'],'rawData':{'event':_0x2e4c29}});else{if(_0x21fb88['type']==='agent_message')_0x842f99['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x21fb88['text']||'',0x64),'status':'success','id':_0x21fb88['id']+'-'+_0x2e4c29['timestamp'],'fullContent':_0x21fb88['text'],'expandable':!![],'isAgentResponse':![],'isCodexAgentMessage':!![],'timestamp':_0x2e4c29['timestamp'],'rawData':{'event':_0x2e4c29}});else{if(_0x21fb88['type']==='command_execution'){const _0x58cd1e=_0x842f99['find'](_0x5d7ce0=>_0x5d7ce0['codexItemId']===_0x21fb88['id'])||_0x842f99['find'](_0x191ce3=>_0x191ce3['id']===_0x21fb88['id']);if(_0x58cd1e){const _0x4683f3=_0x21fb88['status']==='completed'&&_0x21fb88['exit_code']===0x0;_0x58cd1e['status']=_0x4683f3?'success':'error',_0x58cd1e['fullContent']=formatCodexCommandResult(_0x21fb88['command'],_0x21fb88['stdout'],_0x21fb88['stderr'],_0x21fb88['exit_code'],_0x21fb88['aggregated_output']),_0x58cd1e['expandable']=!![],_0x58cd1e['rawData']=mergeRawData(_0x58cd1e['rawData'],{'completionEvent':_0x2e4c29});}}}}}else{if(_0x2e4c29['type']==='init'&&_0x2e4c29['session_id'])_0xaf6641=null,_0x1dcf70=null,_0x139715=null;else{if(_0x2e4c29['type']==='message'&&_0x2e4c29['role']==='assistant'&&_0x2e4c29['content']){if(_0x2e4c29['delta'])!_0xaf6641?(_0xaf6641=_0x2e4c29['content'],_0x1dcf70='gemini-msg-'+_0x2e4c29['timestamp'],_0x139715=_0x2e4c29['timestamp']):_0xaf6641+=_0x2e4c29['content'];else{const _0x56ff1c=stripBobToolNotation(_0x2e4c29['content']);_0x56ff1c['trim']()&&_0x842f99['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x56ff1c,0x64),'status':'success','id':'gemini-msg-'+_0x2e4c29['timestamp'],'fullContent':_0x56ff1c,'expandable':!![],'timestamp':_0x2e4c29['timestamp'],'rawData':{'event':_0x2e4c29}});}}else{if(_0x2e4c29['type']==='tool_use'&&_0x2e4c29['tool_name']){if(_0xaf6641){const _0xb3a232=stripBobToolNotation(_0xaf6641);_0xb3a232['trim']()&&_0x842f99['push']({'icon':'💭','action':'Thinking','detail':truncate(_0xb3a232,0x64),'status':'success','id':_0x1dcf70,'fullContent':_0xb3a232,'expandable':!![],'timestamp':_0x139715,'rawData':{'bufferedContent':_0xaf6641,'messageId':_0x1dcf70,'flushedBy':_0x2e4c29}}),_0xaf6641=null,_0x1dcf70=null,_0x139715=null;}const {icon:_0x1180a1,action:_0x49f5f1,detail:_0x5d07ba}=mapGeminiTool(_0x2e4c29['tool_name'],_0x2e4c29['parameters']),_0x466835=_0x2e4c29['tool_name']==='attempt_completion',_0x3fbb25=_0x49f5f1==='TodoWrite';_0x842f99['push']({'icon':_0x1180a1,'action':_0x49f5f1,'detail':_0x5d07ba,'status':_0x466835?'success':'running','id':_0x2e4c29['tool_id'],'toolInput':_0x2e4c29['parameters'],'fullContent':_0x466835?_0x2e4c29['parameters']?.['result']||'':_0x3fbb25?normalizeTodoContent(_0x2e4c29['parameters']):undefined,'expandable':_0x466835||_0x3fbb25,'isAgentResponse':_0x466835,'timestamp':_0x2e4c29['timestamp'],'rawData':{'event':_0x2e4c29}});}else{if(_0x2e4c29['type']==='tool_result'&&_0x2e4c29['tool_id']){const _0x355b5f=_0x842f99['find'](_0x2db1bc=>_0x2db1bc['id']===_0x2e4c29['tool_id']);if(_0x355b5f){const _0x26c501=_0x2e4c29['status']==='success';_0x355b5f['status']=_0x26c501?'success':'error';if(shouldBeExpandable(_0x355b5f['action'])){const _0x1df585=_0x2e4c29['output']||_0x2e4c29['content']||_0x2e4c29['result']||_0x2e4c29['stdout']||'',_0x4d4fb9=_0x2e4c29['error']?.['message']||'',_0x576a8a=_0x26c501?_0x1df585:'Error:\x20'+_0x4d4fb9+'\x0a'+_0x1df585;_0x355b5f['fullContent']=formatToolResult(_0x355b5f['action'],_0x576a8a,_0x355b5f['toolInput'],!_0x26c501),_0x355b5f['expandable']=!![];}_0x355b5f['rawData']=mergeRawData(_0x355b5f['rawData'],{'toolResultEvent':_0x2e4c29});}}else _0x2e4c29['type']==='result'&&_0x2e4c29['stats']&&(_0xaf6641&&(_0x842f99['push']({'icon':'🤖','action':'Response','detail':truncate(_0xaf6641,0x64),'status':'success','id':_0x1dcf70||'gemini-msg-final','fullContent':_0xaf6641,'expandable':!![],'isAgentResponse':!![],'timestamp':_0x139715,'rawData':{'bufferedContent':_0xaf6641,'messageId':_0x1dcf70||'gemini-msg-final','resultEvent':_0x2e4c29}}),_0xaf6641=null,_0x1dcf70=null,_0x139715=null));}}}}}}}}}}),_0x842f99;}function mapGeminiTool(_0x139b96,_0x412ed5){let _0x17eaa1='🔧',_0x3a98ed=_0x139b96,_0x2033b0='';if(_0x139b96==='bash'||_0x139b96==='run_shell_command'||_0x139b96==='execute_command')_0x17eaa1='🖥️',_0x3a98ed='Bash',_0x2033b0=truncate(_0x412ed5?.['command']||'',0x64);else{if(_0x139b96==='read_file'||_0x139b96==='read_many_files')_0x17eaa1='📖',_0x3a98ed='Read',_0x2033b0=_0x412ed5?.['path']||_0x412ed5?.['file_path']||(Array['isArray'](_0x412ed5?.['paths'])?_0x412ed5['paths']['join'](',\x20'):'')||'';else{if(_0x139b96==='write_file'||_0x139b96==='write_to_file')_0x17eaa1='✍️',_0x3a98ed='Write',_0x2033b0=_0x412ed5?.['path']||_0x412ed5?.['file_path']||'';else{if(_0x139b96==='edit_file'||_0x139b96==='replace'||_0x139b96==='search_and_replace')_0x17eaa1='✏️',_0x3a98ed='Edit',_0x2033b0=_0x412ed5?.['path']||_0x412ed5?.['file_path']||'';else{if(_0x139b96==='search_file_content')_0x17eaa1='🔎',_0x3a98ed='Grep',_0x2033b0='\x22'+(_0x412ed5?.['pattern']||_0x412ed5?.['query']||'')+'\x22';else{if(_0x139b96==='write_todos'||_0x139b96==='update_todo_list')_0x17eaa1='<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>',_0x3a98ed='TodoWrite',_0x2033b0=formatTodoWriteInput(normalizeTodoContent(_0x412ed5)||{});else{if(_0x139b96==='apply_diff'||_0x139b96==='insert_content')_0x17eaa1='✏️',_0x3a98ed='Edit',_0x2033b0=_0x412ed5?.['file_path']||_0x412ed5?.['path']||'';else{if(_0x139b96==='attempt_completion')_0x17eaa1='🤖',_0x3a98ed='Response',_0x2033b0=truncate(_0x412ed5?.['result']||'',0x64);else{if(_0x139b96==='list_directory'||_0x139b96==='list_dir'||_0x139b96==='list_files')_0x17eaa1='🔍',_0x3a98ed='Glob',_0x2033b0=_0x412ed5?.['path']||_0x412ed5?.['directory']||'';else{if(_0x139b96==='search_files'||_0x139b96==='grep_search')_0x17eaa1='🔎',_0x3a98ed='Grep',_0x2033b0='\x22'+(_0x412ed5?.['pattern']||_0x412ed5?.['query']||_0x412ed5?.['regex']||'')+'\x22';else{if(_0x139b96==='web_fetch')_0x17eaa1='🌐',_0x3a98ed='WebFetch',_0x2033b0=_0x412ed5?.['url']||'';else{if(_0x139b96==='ask_followup_question')_0x17eaa1='❓',_0x3a98ed='AskUserQuestion',_0x2033b0=truncate(_0x412ed5?.['question']||'',0x64);else{if(_0x139b96==='google_web_search')_0x17eaa1='🔍',_0x3a98ed='WebSearch',_0x2033b0=truncate(_0x412ed5?.['query']||'',0x64);else _0x139b96==='save_memory'?(_0x17eaa1='💾',_0x3a98ed='SaveMemory',_0x2033b0=truncate(_0x412ed5?.['key']||_0x412ed5?.['content']||'',0x64)):_0x2033b0=truncate(JSON['stringify'](_0x412ed5),0x50);}}}}}}}}}}}}return{'icon':_0x17eaa1,'action':_0x3a98ed,'detail':_0x2033b0};}function getToolIcon(_0xc85343){const _0x2bb703={'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 _0x2bb703[_0xc85343]||'🔧';}function formatToolInputCompact(_0xe20845,_0x56dac8){if(!_0x56dac8)return'';switch(_0xe20845){case'Read':return _0x56dac8['path']||_0x56dac8['file_path']||'';case'Write':case'Edit':const _0x45a4e5=_0x56dac8['path']||_0x56dac8['file_path']||'',_0x4d9cb3=_0x56dac8['content']?.['length']||_0x56dac8['new_string']?.['length']||0x0;return''+_0x45a4e5+(_0x4d9cb3>0x0?'\x20('+_0x4d9cb3+'\x20chars)':'');case'Bash':return truncate(_0x56dac8['command']||'',0x50);case'Glob':return _0x56dac8['pattern']||'';case'Grep':return'\x22'+(_0x56dac8['pattern']||'')+'\x22';case'TodoWrite':return formatTodoWriteInput(_0x56dac8);case'AskUserQuestion':return formatAskUserQuestionCompact(_0x56dac8);case'Agent':return _0x56dac8['description']||truncate(_0x56dac8['prompt']||'',0x50);case'ToolSearch':return _0x56dac8['query']||'';case'EnterPlanMode':return'Entering\x20plan\x20mode';case'ExitPlanMode':{const _0x19b1ac=_0x56dac8['plan']||'',_0x4244be=_0x19b1ac['match'](/^#\s+(.+)/m);return _0x4244be?truncate(_0x4244be[0x1],0x3c):'Plan\x20complete';}default:return truncate(JSON['stringify'](_0x56dac8),0x50);}}function parseTodoMarkdown(_0x25bcfc){if(typeof _0x25bcfc!=='string')return null;const _0xda3bff=_0x25bcfc['split']('\x0a')['map'](_0x3f0e27=>_0x3f0e27['trim']())['filter'](_0xef42ed=>/^\[[ x\-]\]/i['test'](_0xef42ed));if(_0xda3bff['length']===0x0)return null;return _0xda3bff['map'](_0x5468a9=>{const _0x3f0bda=_0x5468a9['match'](/^\[(.)\]/)?.[0x1]||'\x20',_0x32a88e=_0x5468a9['replace'](/^\[.\]\s*/,'')['trim']();let _0x40d27c='pending';if(_0x3f0bda['toLowerCase']()==='x')_0x40d27c='completed';else{if(_0x3f0bda==='-')_0x40d27c='in_progress';}return{'description':_0x32a88e,'status':_0x40d27c};});}function normalizeTodoContent(_0x31e95e){if(!_0x31e95e)return _0x31e95e;if(Array['isArray'](_0x31e95e['todos']))return _0x31e95e;if(typeof _0x31e95e['todos']==='string'){const _0x35646c=parseTodoMarkdown(_0x31e95e['todos']);if(_0x35646c)return{..._0x31e95e,'todos':_0x35646c};}return _0x31e95e;}function formatTodoWriteInput(_0x493f73){if(!_0x493f73['todos']||!Array['isArray'](_0x493f73['todos']))return truncate(JSON['stringify'](_0x493f73),0x32);const _0x51060f=_0x493f73['todos'],_0x1a1e72={'pending':'○','in_progress':'◐','completed':'●'},_0xafbbad=_0x51060f['slice'](0x0,0x3)['map'](_0xda348e=>{const _0x180389=_0x1a1e72[_0xda348e['status']]||'○',_0x4ad46d=truncate(_0xda348e['content']||_0xda348e['description']||'No\x20description\x20provided',0x28);return _0x180389+'\x20'+_0x4ad46d;})['join'](',\x20'),_0x343382=_0x51060f['length']-0x3,_0xf4bdcf=_0x343382>0x0?',\x20+'+_0x343382+'\x20more':'';return _0xafbbad+_0xf4bdcf;}function stripBobToolNotation(_0x238bb5){if(!_0x238bb5)return'';return _0x238bb5['replace'](/\[using tool \w+:[^\]]*\]\n?/g,'')['trim']();}function shouldBeExpandable(_0x2d5ab2){const _0x97494a=['Bash','Read','Write','Edit','Grep','Glob','WebFetch','WebSearch','NotebookEdit','Agent','Skill','Task','AskUserQuestion','ExitPlanMode','SaveMemory','TodoWrite'];return _0x97494a['includes'](_0x2d5ab2);}function formatAskUserQuestionCompact(_0x3985ee){if(!_0x3985ee?.['questions']||!Array['isArray'](_0x3985ee['questions'])||_0x3985ee['questions']['length']===0x0){if(_0x3985ee?.['question'])return truncate(_0x3985ee['question'],0x50);return truncate(JSON['stringify'](_0x3985ee),0x50);}const _0x1e52ce=_0x3985ee['questions'][0x0],_0x8df8ea=_0x1e52ce['question']||_0x1e52ce['header']||'',_0x5dd761=_0x3985ee['questions']['length']>0x1?'\x20(+'+(_0x3985ee['questions']['length']-0x1)+'\x20more)':'';return truncate(_0x8df8ea,0x46)+_0x5dd761;}function formatToolResult(_0x3bc50c,_0x2b3e68,_0x1b1246,_0x20de8b,_0x32a7e7){if(_0x20de8b){if(_0x3bc50c==='ExitPlanMode')return{'toolName':'ExitPlanMode','plan':_0x1b1246?.['plan']||'','error':!![],'content':typeof _0x2b3e68==='string'?_0x2b3e68:JSON['stringify'](_0x2b3e68,null,0x2)};if(_0x3bc50c==='AskUserQuestion')return{'toolName':'AskUserQuestion','questions':_0x1b1246?.['questions']||(_0x1b1246?.['question']?[_0x1b1246]:[]),'error':!![],'denied':!![],'content':typeof _0x2b3e68==='string'?_0x2b3e68:JSON['stringify'](_0x2b3e68,null,0x2)};return{'toolName':_0x3bc50c,'toolInput':_0x1b1246,'error':!![],'content':typeof _0x2b3e68==='string'?_0x2b3e68:JSON['stringify'](_0x2b3e68,null,0x2)};}switch(_0x3bc50c){case'Bash':return{'toolName':'Bash','command':_0x1b1246?.['command']||'','output':typeof _0x2b3e68==='string'?_0x2b3e68:_0x2b3e68?JSON['stringify'](_0x2b3e68,null,0x2):''};case'Read':return{'toolName':'Read','filePath':_0x1b1246?.['path']||_0x1b1246?.['file_path']||'','content':typeof _0x2b3e68==='string'?_0x2b3e68:_0x2b3e68?JSON['stringify'](_0x2b3e68,null,0x2):''};case'Write':return{'toolName':'Write','filePath':_0x1b1246?.['path']||_0x1b1246?.['file_path']||'','content':_0x1b1246?.['content']||'','result':typeof _0x2b3e68==='string'?_0x2b3e68:'File\x20written\x20successfully'};case'Edit':const _0x52222f=_0x32a7e7?.['structuredPatch']?.[0x0]?.['oldStart']||null;return{'toolName':'Edit','filePath':_0x1b1246?.['path']||_0x1b1246?.['file_path']||'','oldString':_0x1b1246?.['old_string']||'','newString':_0x1b1246?.['new_string']||'','replaceAll':_0x1b1246?.['replace_all']||![],'startLine':_0x52222f,'result':typeof _0x2b3e68==='string'?_0x2b3e68:'File\x20edited\x20successfully'};case'Grep':return{'toolName':'Grep','pattern':_0x1b1246?.['pattern']||'','path':_0x1b1246?.['path']||'','outputMode':_0x1b1246?.['output_mode']||'files_with_matches','content':typeof _0x2b3e68==='string'?_0x2b3e68:_0x2b3e68?JSON['stringify'](_0x2b3e68,null,0x2):''};case'Glob':return{'toolName':'Glob','pattern':_0x1b1246?.['pattern']||'','path':_0x1b1246?.['path']||'','content':typeof _0x2b3e68==='string'?_0x2b3e68:_0x2b3e68?JSON['stringify'](_0x2b3e68,null,0x2):''};case'WebFetch':return{'toolName':'WebFetch','url':_0x1b1246?.['url']||'','prompt':_0x1b1246?.['prompt']||'','content':typeof _0x2b3e68==='string'?_0x2b3e68:_0x2b3e68?JSON['stringify'](_0x2b3e68,null,0x2):''};case'WebSearch':return{'toolName':'WebSearch','query':_0x1b1246?.['query']||'','content':typeof _0x2b3e68==='string'?_0x2b3e68:_0x2b3e68?JSON['stringify'](_0x2b3e68,null,0x2):''};case'NotebookEdit':return{'toolName':'NotebookEdit','notebookPath':_0x1b1246?.['notebook_path']||'','cellId':_0x1b1246?.['cell_id']||'','newSource':_0x1b1246?.['new_source']||'','result':typeof _0x2b3e68==='string'?_0x2b3e68:'Notebook\x20cell\x20edited\x20successfully'};case'Agent':return{'toolName':'Agent','description':_0x1b1246?.['description']||'','subagentType':_0x1b1246?.['subagent_type']||'','model':_0x1b1246?.['model']||'','prompt':_0x1b1246?.['prompt']||'','content':typeof _0x2b3e68==='string'?_0x2b3e68:_0x2b3e68?JSON['stringify'](_0x2b3e68,null,0x2):''};case'Skill':return{'toolName':'Skill','toolInput':_0x1b1246,'skill':_0x1b1246?.['skill']||'','content':typeof _0x2b3e68==='string'?_0x2b3e68:_0x2b3e68?JSON['stringify'](_0x2b3e68,null,0x2):''};case'Task':return{'toolName':'Task','description':_0x1b1246?.['description']||'','subagentType':_0x1b1246?.['subagent_type']||'','prompt':_0x1b1246?.['prompt']||'','content':typeof _0x2b3e68==='string'?_0x2b3e68:_0x2b3e68?JSON['stringify'](_0x2b3e68,null,0x2):''};case'AskUserQuestion':return{'toolName':'AskUserQuestion','questions':_0x1b1246?.['questions']||(_0x1b1246?.['question']?[_0x1b1246]:[]),'answer':typeof _0x2b3e68==='string'?_0x2b3e68:_0x2b3e68?JSON['stringify'](_0x2b3e68,null,0x2):''};case'ExitPlanMode':return{'toolName':'ExitPlanMode','plan':_0x1b1246?.['plan']||'','result':typeof _0x2b3e68==='string'?_0x2b3e68:''};case'SaveMemory':return{'toolName':'SaveMemory','key':_0x1b1246?.['key']||'','content':typeof _0x2b3e68==='string'?_0x2b3e68:_0x2b3e68?JSON['stringify'](_0x2b3e68,null,0x2):''};default:return{'toolName':_0x3bc50c,'toolInput':_0x1b1246,'content':typeof _0x2b3e68==='string'?_0x2b3e68:_0x2b3e68?JSON['stringify'](_0x2b3e68,null,0x2):''};}}function formatCodexCommandResult(_0x3c0590,_0x14636c,_0x2e04bf,_0x291880,_0x24e323){return{'toolName':'Bash','command':_0x3c0590||'','stdout':_0x14636c||'','stderr':_0x2e04bf||'','exitCode':_0x291880,'aggregated_output':_0x24e323||''};}function promoteCodexTurnThinkingToResponse(_0x2e9b70,_0x12d82b=null){const _0x307e07=Number['isInteger'](_0x12d82b)&&_0x12d82b>=0x0?_0x12d82b:0x0;for(let _0x114cbb=_0x2e9b70['length']-0x1;_0x114cbb>=_0x307e07;_0x114cbb--){const _0x431591=_0x2e9b70[_0x114cbb];if(!_0x431591?.['isCodexAgentMessage'])continue;if(_0x431591['action']==='Response'||_0x431591['isAgentResponse'])return;if(_0x431591['action']==='Thinking'){_0x431591['action']='Response',_0x431591['icon']='🤖',_0x431591['isAgentResponse']=!![];return;}}}function mergeRawData(_0x541f62,_0x2850d8){if(!_0x2850d8)return _0x541f62||null;const _0x50a9e3=typeof _0x2850d8==='object'&&_0x2850d8!==null?_0x2850d8:{'value':_0x2850d8};if(!_0x541f62)return _0x50a9e3;if(typeof _0x541f62==='object'&&_0x541f62!==null&&!Array['isArray'](_0x541f62))return{..._0x541f62,..._0x50a9e3};return{'initial':_0x541f62,..._0x50a9e3};}function truncate(_0x2b768e,_0x32c240){if(!_0x2b768e||_0x2b768e['length']<=_0x32c240)return _0x2b768e||'';return _0x2b768e['substring'](0x0,_0x32c240)+'...';}export function calculateEventStats(_0x1dbab5){const _0x514365={'total':_0x1dbab5['length'],'toolUses':0x0,'toolResults':0x0,'thinking':0x0,'messages':0x0};return _0x1dbab5['forEach'](_0x9ef893=>{if(_0x9ef893['type']==='assistant'&&_0x9ef893['message']?.['content'])_0x9ef893['message']['content']['forEach'](_0x78c631=>{if(_0x78c631['type']==='tool_use')_0x514365['toolUses']++;else _0x78c631['type']==='text'&&_0x514365['thinking']++;});else{if(_0x9ef893['type']==='user'&&_0x9ef893['message']?.['content'])_0x9ef893['message']['content']['forEach'](_0x32db9c=>{_0x32db9c['type']==='tool_result'&&_0x514365['toolResults']++;});else{if((_0x9ef893['type']==='item.completed'||_0x9ef893['type']==='item.started')&&_0x9ef893['item']){if(_0x9ef893['item']['type']==='command_execution')_0x514365['toolUses']++,_0x9ef893['type']==='item.completed'&&_0x9ef893['item']['status']==='completed'&&_0x514365['toolResults']++;else{if(_0x9ef893['item']['type']==='reasoning')_0x514365['thinking']++;else _0x9ef893['item']['type']==='agent_message'&&_0x514365['messages']++;}}else{if(_0x9ef893['type']==='message'&&_0x9ef893['role']==='assistant'&&_0x9ef893['content'])_0x514365['thinking']++;else{if(_0x9ef893['type']==='tool_use'&&_0x9ef893['tool_name'])_0x514365['toolUses']++;else _0x9ef893['type']==='tool_result'&&_0x9ef893['tool_id']&&_0x514365['toolResults']++;}}}}}),_0x514365;}
1
+ export function parseEventsToActivities(_0x465449){const _0x531d73=[];let _0x208403=null,_0x5e6aa6=null,_0x16df14=null,_0x2c1668=null;return _0x465449['forEach'](_0x1e2f3a=>{if(_0x1e2f3a['type']==='assistant'&&_0x1e2f3a['message']?.['content'])_0x1e2f3a['message']['content']['forEach']((_0x15843f,_0x1357b)=>{if(_0x15843f['type']==='text'){const _0x46c365=_0x15843f['id']||_0x1e2f3a['message']['id']+'-'+_0x1e2f3a['timestamp']+'-'+_0x1357b,_0x4e9525=_0x1e2f3a['message']['stop_reason']==='end_turn';_0x531d73['push']({'icon':_0x4e9525?'🤖':'💭','action':_0x4e9525?'Response':'Thinking','detail':truncate(_0x15843f['text'],0x64),'status':'success','id':_0x46c365,'fullContent':_0x15843f['text'],'expandable':!![],'isAgentResponse':_0x4e9525,'timestamp':_0x1e2f3a['timestamp'],'rawData':{'event':_0x1e2f3a,'block':_0x15843f}});}else{if(_0x15843f['type']==='tool_use'){const _0x2faa0c=_0x15843f['name']==='TodoWrite'||_0x15843f['name']==='AskUserQuestion'||_0x15843f['name']==='ExitPlanMode';_0x531d73['push']({'icon':getToolIcon(_0x15843f['name']),'action':_0x15843f['name'],'detail':formatToolInputCompact(_0x15843f['name'],_0x15843f['input']),'status':'running','id':_0x15843f['id'],'fullContent':_0x2faa0c?_0x15843f['input']:null,'expandable':_0x2faa0c,'toolInput':_0x15843f['input'],'timestamp':_0x1e2f3a['timestamp'],'rawData':{'event':_0x1e2f3a,'block':_0x15843f}});}}});else{if(_0x1e2f3a['type']==='user'&&_0x1e2f3a['message']?.['content'])_0x1e2f3a['message']['content']['forEach'](_0x253806=>{if(_0x253806['type']==='tool_result'){const _0x359da1=_0x531d73['find'](_0x35806d=>_0x35806d['id']===_0x253806['tool_use_id']);_0x359da1&&(_0x359da1['status']=_0x253806['is_error']?'error':'success',shouldBeExpandable(_0x359da1['action'])&&(_0x359da1['fullContent']=formatToolResult(_0x359da1['action'],_0x253806['content'],_0x359da1['toolInput'],_0x253806['is_error'],_0x1e2f3a['tool_use_result']),_0x359da1['expandable']=!![]),_0x359da1['rawData']=mergeRawData(_0x359da1['rawData'],{'toolResultEvent':_0x1e2f3a,'toolResult':_0x253806}));}});else{if(_0x1e2f3a['type']==='turn.started')_0x2c1668=_0x531d73['length'];else{if(_0x1e2f3a['type']==='turn.completed')promoteCodexTurnThinkingToResponse(_0x531d73,_0x2c1668),_0x2c1668=_0x531d73['length'];else{if(_0x1e2f3a['type']==='item.started'&&_0x1e2f3a['item']){const _0xc1a070=_0x1e2f3a['item'];if(_0xc1a070['type']==='command_execution'){const _0x3368f7=_0xc1a070['id']+'-'+_0x1e2f3a['timestamp'];_0x531d73['push']({'icon':'🖥️','action':'Bash','detail':truncate(_0xc1a070['command']||'',0x64),'status':'running','id':_0x3368f7,'codexItemId':_0xc1a070['id'],'toolInput':{'command':_0xc1a070['command']},'timestamp':_0x1e2f3a['timestamp'],'rawData':{'event':_0x1e2f3a}});}}else{if(_0x1e2f3a['type']==='item.completed'&&_0x1e2f3a['item']){const _0x492554=_0x1e2f3a['item'];if(_0x492554['type']==='reasoning')_0x531d73['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x492554['text']||'',0x64),'status':'success','id':_0x492554['id']+'-'+_0x1e2f3a['timestamp'],'fullContent':_0x492554['text'],'expandable':!![],'timestamp':_0x1e2f3a['timestamp'],'rawData':{'event':_0x1e2f3a}});else{if(_0x492554['type']==='agent_message')_0x531d73['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x492554['text']||'',0x64),'status':'success','id':_0x492554['id']+'-'+_0x1e2f3a['timestamp'],'fullContent':_0x492554['text'],'expandable':!![],'isAgentResponse':![],'isCodexAgentMessage':!![],'timestamp':_0x1e2f3a['timestamp'],'rawData':{'event':_0x1e2f3a}});else{if(_0x492554['type']==='command_execution'){const _0x1fe76e=_0x531d73['find'](_0x7ca4fc=>_0x7ca4fc['codexItemId']===_0x492554['id'])||_0x531d73['find'](_0x5dba9e=>_0x5dba9e['id']===_0x492554['id']);if(_0x1fe76e){const _0x228142=_0x492554['status']==='completed'&&_0x492554['exit_code']===0x0;_0x1fe76e['status']=_0x228142?'success':'error',_0x1fe76e['fullContent']=formatCodexCommandResult(_0x492554['command'],_0x492554['stdout'],_0x492554['stderr'],_0x492554['exit_code'],_0x492554['aggregated_output']),_0x1fe76e['expandable']=!![],_0x1fe76e['rawData']=mergeRawData(_0x1fe76e['rawData'],{'completionEvent':_0x1e2f3a});}}}}}else{if(_0x1e2f3a['type']==='init'&&_0x1e2f3a['session_id'])_0x208403=null,_0x5e6aa6=null,_0x16df14=null;else{if(_0x1e2f3a['type']==='message'&&_0x1e2f3a['role']==='assistant'&&_0x1e2f3a['content']){if(_0x1e2f3a['delta'])!_0x208403?(_0x208403=_0x1e2f3a['content'],_0x5e6aa6='gemini-msg-'+_0x1e2f3a['timestamp'],_0x16df14=_0x1e2f3a['timestamp']):_0x208403+=_0x1e2f3a['content'];else{const _0x572156=stripBobToolNotation(_0x1e2f3a['content']);_0x572156['trim']()&&_0x531d73['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x572156,0x64),'status':'success','id':'gemini-msg-'+_0x1e2f3a['timestamp'],'fullContent':_0x572156,'expandable':!![],'timestamp':_0x1e2f3a['timestamp'],'rawData':{'event':_0x1e2f3a}});}}else{if(_0x1e2f3a['type']==='tool_use'&&_0x1e2f3a['tool_name']){if(_0x208403){const _0x1e8b6c=stripBobToolNotation(_0x208403);_0x1e8b6c['trim']()&&_0x531d73['push']({'icon':'💭','action':'Thinking','detail':truncate(_0x1e8b6c,0x64),'status':'success','id':_0x5e6aa6,'fullContent':_0x1e8b6c,'expandable':!![],'timestamp':_0x16df14,'rawData':{'bufferedContent':_0x208403,'messageId':_0x5e6aa6,'flushedBy':_0x1e2f3a}}),_0x208403=null,_0x5e6aa6=null,_0x16df14=null;}const {icon:_0x1716aa,action:_0xe79c5b,detail:_0x59e52d}=mapGeminiTool(_0x1e2f3a['tool_name'],_0x1e2f3a['parameters']),_0x216e6f=_0x1e2f3a['tool_name']==='attempt_completion',_0x131386=_0xe79c5b==='TodoWrite';_0x531d73['push']({'icon':_0x1716aa,'action':_0xe79c5b,'detail':_0x59e52d,'status':_0x216e6f?'success':'running','id':_0x1e2f3a['tool_id'],'toolInput':_0x1e2f3a['parameters'],'fullContent':_0x216e6f?_0x1e2f3a['parameters']?.['result']||'':_0x131386?normalizeTodoContent(_0x1e2f3a['parameters']):undefined,'expandable':_0x216e6f||_0x131386,'isAgentResponse':_0x216e6f,'timestamp':_0x1e2f3a['timestamp'],'rawData':{'event':_0x1e2f3a}});}else{if(_0x1e2f3a['type']==='tool_result'&&_0x1e2f3a['tool_id']){const _0x3deeea=_0x531d73['find'](_0x4fb51d=>_0x4fb51d['id']===_0x1e2f3a['tool_id']);if(_0x3deeea){const _0x250b40=_0x1e2f3a['status']==='success';_0x3deeea['status']=_0x250b40?'success':'error';if(shouldBeExpandable(_0x3deeea['action'])){const _0x44bef6=_0x1e2f3a['output']||_0x1e2f3a['content']||_0x1e2f3a['result']||_0x1e2f3a['stdout']||'',_0x24cbfc=_0x1e2f3a['error']?.['message']||'',_0x2f49a2=_0x250b40?_0x44bef6:'Error:\x20'+_0x24cbfc+'\x0a'+_0x44bef6;_0x3deeea['fullContent']=formatToolResult(_0x3deeea['action'],_0x2f49a2,_0x3deeea['toolInput'],!_0x250b40),_0x3deeea['expandable']=!![];}_0x3deeea['rawData']=mergeRawData(_0x3deeea['rawData'],{'toolResultEvent':_0x1e2f3a});}}else _0x1e2f3a['type']==='result'&&_0x1e2f3a['stats']&&(_0x208403&&(_0x531d73['push']({'icon':'🤖','action':'Response','detail':truncate(_0x208403,0x64),'status':'success','id':_0x5e6aa6||'gemini-msg-final','fullContent':_0x208403,'expandable':!![],'isAgentResponse':!![],'timestamp':_0x16df14,'rawData':{'bufferedContent':_0x208403,'messageId':_0x5e6aa6||'gemini-msg-final','resultEvent':_0x1e2f3a}}),_0x208403=null,_0x5e6aa6=null,_0x16df14=null));}}}}}}}}}}),_0x531d73;}function mapGeminiTool(_0x27715c,_0x348b63){let _0x4b0bd0='🔧',_0xc9c737=_0x27715c,_0x4d907d='';if(_0x27715c==='bash'||_0x27715c==='run_shell_command'||_0x27715c==='execute_command')_0x4b0bd0='🖥️',_0xc9c737='Bash',_0x4d907d=truncate(_0x348b63?.['command']||'',0x64);else{if(_0x27715c==='read_file'||_0x27715c==='read_many_files')_0x4b0bd0='📖',_0xc9c737='Read',_0x4d907d=_0x348b63?.['path']||_0x348b63?.['file_path']||(Array['isArray'](_0x348b63?.['paths'])?_0x348b63['paths']['join'](',\x20'):'')||'';else{if(_0x27715c==='write_file'||_0x27715c==='write_to_file')_0x4b0bd0='✍️',_0xc9c737='Write',_0x4d907d=_0x348b63?.['path']||_0x348b63?.['file_path']||'';else{if(_0x27715c==='edit_file'||_0x27715c==='replace'||_0x27715c==='search_and_replace')_0x4b0bd0='✏️',_0xc9c737='Edit',_0x4d907d=_0x348b63?.['path']||_0x348b63?.['file_path']||'';else{if(_0x27715c==='search_file_content')_0x4b0bd0='🔎',_0xc9c737='Grep',_0x4d907d='\x22'+(_0x348b63?.['pattern']||_0x348b63?.['query']||'')+'\x22';else{if(_0x27715c==='write_todos'||_0x27715c==='update_todo_list')_0x4b0bd0='<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>',_0xc9c737='TodoWrite',_0x4d907d=formatTodoWriteInput(normalizeTodoContent(_0x348b63)||{});else{if(_0x27715c==='apply_diff'||_0x27715c==='insert_content')_0x4b0bd0='✏️',_0xc9c737='Edit',_0x4d907d=_0x348b63?.['file_path']||_0x348b63?.['path']||'';else{if(_0x27715c==='attempt_completion')_0x4b0bd0='🤖',_0xc9c737='Response',_0x4d907d=truncate(_0x348b63?.['result']||'',0x64);else{if(_0x27715c==='list_directory'||_0x27715c==='list_dir'||_0x27715c==='list_files')_0x4b0bd0='🔍',_0xc9c737='Glob',_0x4d907d=_0x348b63?.['path']||_0x348b63?.['directory']||'';else{if(_0x27715c==='search_files'||_0x27715c==='grep_search')_0x4b0bd0='🔎',_0xc9c737='Grep',_0x4d907d='\x22'+(_0x348b63?.['pattern']||_0x348b63?.['query']||_0x348b63?.['regex']||'')+'\x22';else{if(_0x27715c==='web_fetch')_0x4b0bd0='🌐',_0xc9c737='WebFetch',_0x4d907d=_0x348b63?.['url']||'';else{if(_0x27715c==='ask_followup_question')_0x4b0bd0='❓',_0xc9c737='AskUserQuestion',_0x4d907d=truncate(_0x348b63?.['question']||'',0x64);else{if(_0x27715c==='google_web_search')_0x4b0bd0='🔍',_0xc9c737='WebSearch',_0x4d907d=truncate(_0x348b63?.['query']||'',0x64);else _0x27715c==='save_memory'?(_0x4b0bd0='💾',_0xc9c737='SaveMemory',_0x4d907d=truncate(_0x348b63?.['key']||_0x348b63?.['content']||'',0x64)):_0x4d907d=truncate(JSON['stringify'](_0x348b63),0x50);}}}}}}}}}}}}return{'icon':_0x4b0bd0,'action':_0xc9c737,'detail':_0x4d907d};}function getToolIcon(_0x58dbaf){const _0xca0046={'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 _0xca0046[_0x58dbaf]||'🔧';}function formatToolInputCompact(_0x53f718,_0x506dc1){if(!_0x506dc1)return'';switch(_0x53f718){case'Read':return _0x506dc1['path']||_0x506dc1['file_path']||'';case'Write':case'Edit':const _0x1fc33b=_0x506dc1['path']||_0x506dc1['file_path']||'',_0x3be74c=_0x506dc1['content']?.['length']||_0x506dc1['new_string']?.['length']||0x0;return''+_0x1fc33b+(_0x3be74c>0x0?'\x20('+_0x3be74c+'\x20chars)':'');case'Bash':return truncate(_0x506dc1['command']||'',0x50);case'Glob':return _0x506dc1['pattern']||'';case'Grep':return'\x22'+(_0x506dc1['pattern']||'')+'\x22';case'TodoWrite':return formatTodoWriteInput(_0x506dc1);case'AskUserQuestion':return formatAskUserQuestionCompact(_0x506dc1);case'Agent':return _0x506dc1['description']||truncate(_0x506dc1['prompt']||'',0x50);case'ToolSearch':return _0x506dc1['query']||'';case'EnterPlanMode':return'Entering\x20plan\x20mode';case'ExitPlanMode':{const _0x4508dd=_0x506dc1['plan']||'',_0x231134=_0x4508dd['match'](/^#\s+(.+)/m);return _0x231134?truncate(_0x231134[0x1],0x3c):'Plan\x20complete';}default:return truncate(JSON['stringify'](_0x506dc1),0x50);}}function parseTodoMarkdown(_0x19403c){if(typeof _0x19403c!=='string')return null;const _0xd9ed24=_0x19403c['split']('\x0a')['map'](_0x1e747e=>_0x1e747e['trim']())['filter'](_0x3e6449=>/^\[[ x\-]\]/i['test'](_0x3e6449));if(_0xd9ed24['length']===0x0)return null;return _0xd9ed24['map'](_0x43402e=>{const _0x24d5c7=_0x43402e['match'](/^\[(.)\]/)?.[0x1]||'\x20',_0x378c78=_0x43402e['replace'](/^\[.\]\s*/,'')['trim']();let _0x4a182d='pending';if(_0x24d5c7['toLowerCase']()==='x')_0x4a182d='completed';else{if(_0x24d5c7==='-')_0x4a182d='in_progress';}return{'description':_0x378c78,'status':_0x4a182d};});}function normalizeTodoContent(_0x5ecb75){if(!_0x5ecb75)return _0x5ecb75;if(Array['isArray'](_0x5ecb75['todos']))return _0x5ecb75;if(typeof _0x5ecb75['todos']==='string'){const _0x355e74=parseTodoMarkdown(_0x5ecb75['todos']);if(_0x355e74)return{..._0x5ecb75,'todos':_0x355e74};}return _0x5ecb75;}function formatTodoWriteInput(_0x76ac23){if(!_0x76ac23['todos']||!Array['isArray'](_0x76ac23['todos']))return truncate(JSON['stringify'](_0x76ac23),0x32);const _0x55d356=_0x76ac23['todos'],_0x4c969e={'pending':'○','in_progress':'◐','completed':'●'},_0x30dc09=_0x55d356['slice'](0x0,0x3)['map'](_0x119aea=>{const _0x328643=_0x4c969e[_0x119aea['status']]||'○',_0x19606d=truncate(_0x119aea['content']||_0x119aea['description']||'No\x20description\x20provided',0x28);return _0x328643+'\x20'+_0x19606d;})['join'](',\x20'),_0x1c7466=_0x55d356['length']-0x3,_0x58cb93=_0x1c7466>0x0?',\x20+'+_0x1c7466+'\x20more':'';return _0x30dc09+_0x58cb93;}function stripBobToolNotation(_0xddb43d){if(!_0xddb43d)return'';return _0xddb43d['replace'](/\[using tool \w+:[^\]]*\]\n?/g,'')['trim']();}function shouldBeExpandable(_0x2a1319){const _0x15f910=['Bash','Read','Write','Edit','Grep','Glob','WebFetch','WebSearch','NotebookEdit','Agent','Skill','Task','AskUserQuestion','ExitPlanMode','SaveMemory','TodoWrite'];return _0x15f910['includes'](_0x2a1319);}function formatAskUserQuestionCompact(_0x2e1ac7){if(!_0x2e1ac7?.['questions']||!Array['isArray'](_0x2e1ac7['questions'])||_0x2e1ac7['questions']['length']===0x0){if(_0x2e1ac7?.['question'])return truncate(_0x2e1ac7['question'],0x50);return truncate(JSON['stringify'](_0x2e1ac7),0x50);}const _0x3a999f=_0x2e1ac7['questions'][0x0],_0x53ac2a=_0x3a999f['question']||_0x3a999f['header']||'',_0x7c143c=_0x2e1ac7['questions']['length']>0x1?'\x20(+'+(_0x2e1ac7['questions']['length']-0x1)+'\x20more)':'';return truncate(_0x53ac2a,0x46)+_0x7c143c;}function formatToolResult(_0x48fdc0,_0x50deb5,_0x5a52f8,_0x57a686,_0x418a65){if(_0x57a686){if(_0x48fdc0==='ExitPlanMode')return{'toolName':'ExitPlanMode','plan':_0x5a52f8?.['plan']||'','error':!![],'content':typeof _0x50deb5==='string'?_0x50deb5:JSON['stringify'](_0x50deb5,null,0x2)};if(_0x48fdc0==='AskUserQuestion')return{'toolName':'AskUserQuestion','questions':_0x5a52f8?.['questions']||(_0x5a52f8?.['question']?[_0x5a52f8]:[]),'error':!![],'denied':!![],'content':typeof _0x50deb5==='string'?_0x50deb5:JSON['stringify'](_0x50deb5,null,0x2)};return{'toolName':_0x48fdc0,'toolInput':_0x5a52f8,'error':!![],'content':typeof _0x50deb5==='string'?_0x50deb5:JSON['stringify'](_0x50deb5,null,0x2)};}switch(_0x48fdc0){case'Bash':return{'toolName':'Bash','command':_0x5a52f8?.['command']||'','output':typeof _0x50deb5==='string'?_0x50deb5:_0x50deb5?JSON['stringify'](_0x50deb5,null,0x2):''};case'Read':return{'toolName':'Read','filePath':_0x5a52f8?.['path']||_0x5a52f8?.['file_path']||'','content':typeof _0x50deb5==='string'?_0x50deb5:_0x50deb5?JSON['stringify'](_0x50deb5,null,0x2):''};case'Write':return{'toolName':'Write','filePath':_0x5a52f8?.['path']||_0x5a52f8?.['file_path']||'','content':_0x5a52f8?.['content']||'','result':typeof _0x50deb5==='string'?_0x50deb5:'File\x20written\x20successfully'};case'Edit':const _0xe31aae=_0x418a65?.['structuredPatch']?.[0x0]?.['oldStart']||null;return{'toolName':'Edit','filePath':_0x5a52f8?.['path']||_0x5a52f8?.['file_path']||'','oldString':_0x5a52f8?.['old_string']||'','newString':_0x5a52f8?.['new_string']||'','replaceAll':_0x5a52f8?.['replace_all']||![],'startLine':_0xe31aae,'result':typeof _0x50deb5==='string'?_0x50deb5:'File\x20edited\x20successfully'};case'Grep':return{'toolName':'Grep','pattern':_0x5a52f8?.['pattern']||'','path':_0x5a52f8?.['path']||'','outputMode':_0x5a52f8?.['output_mode']||'files_with_matches','content':typeof _0x50deb5==='string'?_0x50deb5:_0x50deb5?JSON['stringify'](_0x50deb5,null,0x2):''};case'Glob':return{'toolName':'Glob','pattern':_0x5a52f8?.['pattern']||'','path':_0x5a52f8?.['path']||'','content':typeof _0x50deb5==='string'?_0x50deb5:_0x50deb5?JSON['stringify'](_0x50deb5,null,0x2):''};case'WebFetch':return{'toolName':'WebFetch','url':_0x5a52f8?.['url']||'','prompt':_0x5a52f8?.['prompt']||'','content':typeof _0x50deb5==='string'?_0x50deb5:_0x50deb5?JSON['stringify'](_0x50deb5,null,0x2):''};case'WebSearch':return{'toolName':'WebSearch','query':_0x5a52f8?.['query']||'','content':typeof _0x50deb5==='string'?_0x50deb5:_0x50deb5?JSON['stringify'](_0x50deb5,null,0x2):''};case'NotebookEdit':return{'toolName':'NotebookEdit','notebookPath':_0x5a52f8?.['notebook_path']||'','cellId':_0x5a52f8?.['cell_id']||'','newSource':_0x5a52f8?.['new_source']||'','result':typeof _0x50deb5==='string'?_0x50deb5:'Notebook\x20cell\x20edited\x20successfully'};case'Agent':return{'toolName':'Agent','description':_0x5a52f8?.['description']||'','subagentType':_0x5a52f8?.['subagent_type']||'','model':_0x5a52f8?.['model']||'','prompt':_0x5a52f8?.['prompt']||'','content':typeof _0x50deb5==='string'?_0x50deb5:_0x50deb5?JSON['stringify'](_0x50deb5,null,0x2):''};case'Skill':return{'toolName':'Skill','toolInput':_0x5a52f8,'skill':_0x5a52f8?.['skill']||'','content':typeof _0x50deb5==='string'?_0x50deb5:_0x50deb5?JSON['stringify'](_0x50deb5,null,0x2):''};case'Task':return{'toolName':'Task','description':_0x5a52f8?.['description']||'','subagentType':_0x5a52f8?.['subagent_type']||'','prompt':_0x5a52f8?.['prompt']||'','content':typeof _0x50deb5==='string'?_0x50deb5:_0x50deb5?JSON['stringify'](_0x50deb5,null,0x2):''};case'AskUserQuestion':return{'toolName':'AskUserQuestion','questions':_0x5a52f8?.['questions']||(_0x5a52f8?.['question']?[_0x5a52f8]:[]),'answer':typeof _0x50deb5==='string'?_0x50deb5:_0x50deb5?JSON['stringify'](_0x50deb5,null,0x2):''};case'ExitPlanMode':return{'toolName':'ExitPlanMode','plan':_0x5a52f8?.['plan']||'','result':typeof _0x50deb5==='string'?_0x50deb5:''};case'SaveMemory':return{'toolName':'SaveMemory','key':_0x5a52f8?.['key']||'','content':typeof _0x50deb5==='string'?_0x50deb5:_0x50deb5?JSON['stringify'](_0x50deb5,null,0x2):''};default:return{'toolName':_0x48fdc0,'toolInput':_0x5a52f8,'content':typeof _0x50deb5==='string'?_0x50deb5:_0x50deb5?JSON['stringify'](_0x50deb5,null,0x2):''};}}function formatCodexCommandResult(_0x374d79,_0x43ec05,_0x151469,_0x1adfcc,_0x36e59c){return{'toolName':'Bash','command':_0x374d79||'','stdout':_0x43ec05||'','stderr':_0x151469||'','exitCode':_0x1adfcc,'aggregated_output':_0x36e59c||''};}function promoteCodexTurnThinkingToResponse(_0x36fcc8,_0x3009c9=null){const _0x115534=Number['isInteger'](_0x3009c9)&&_0x3009c9>=0x0?_0x3009c9:0x0;for(let _0x4dc9bf=_0x36fcc8['length']-0x1;_0x4dc9bf>=_0x115534;_0x4dc9bf--){const _0x20a4ec=_0x36fcc8[_0x4dc9bf];if(!_0x20a4ec?.['isCodexAgentMessage'])continue;if(_0x20a4ec['action']==='Response'||_0x20a4ec['isAgentResponse'])return;if(_0x20a4ec['action']==='Thinking'){_0x20a4ec['action']='Response',_0x20a4ec['icon']='🤖',_0x20a4ec['isAgentResponse']=!![];return;}}}function mergeRawData(_0x569fa3,_0x2f4200){if(!_0x2f4200)return _0x569fa3||null;const _0x224941=typeof _0x2f4200==='object'&&_0x2f4200!==null?_0x2f4200:{'value':_0x2f4200};if(!_0x569fa3)return _0x224941;if(typeof _0x569fa3==='object'&&_0x569fa3!==null&&!Array['isArray'](_0x569fa3))return{..._0x569fa3,..._0x224941};return{'initial':_0x569fa3,..._0x224941};}function truncate(_0x5736db,_0x311d00){if(!_0x5736db||_0x5736db['length']<=_0x311d00)return _0x5736db||'';return _0x5736db['substring'](0x0,_0x311d00)+'...';}export function calculateEventStats(_0x1d44d4){const _0x300147={'total':_0x1d44d4['length'],'toolUses':0x0,'toolResults':0x0,'thinking':0x0,'messages':0x0};return _0x1d44d4['forEach'](_0x4bfaaf=>{if(_0x4bfaaf['type']==='assistant'&&_0x4bfaaf['message']?.['content'])_0x4bfaaf['message']['content']['forEach'](_0x457e24=>{if(_0x457e24['type']==='tool_use')_0x300147['toolUses']++;else _0x457e24['type']==='text'&&_0x300147['thinking']++;});else{if(_0x4bfaaf['type']==='user'&&_0x4bfaaf['message']?.['content'])_0x4bfaaf['message']['content']['forEach'](_0x13d4cf=>{_0x13d4cf['type']==='tool_result'&&_0x300147['toolResults']++;});else{if((_0x4bfaaf['type']==='item.completed'||_0x4bfaaf['type']==='item.started')&&_0x4bfaaf['item']){if(_0x4bfaaf['item']['type']==='command_execution')_0x300147['toolUses']++,_0x4bfaaf['type']==='item.completed'&&_0x4bfaaf['item']['status']==='completed'&&_0x300147['toolResults']++;else{if(_0x4bfaaf['item']['type']==='reasoning')_0x300147['thinking']++;else _0x4bfaaf['item']['type']==='agent_message'&&_0x300147['messages']++;}}else{if(_0x4bfaaf['type']==='message'&&_0x4bfaaf['role']==='assistant'&&_0x4bfaaf['content'])_0x300147['thinking']++;else{if(_0x4bfaaf['type']==='tool_use'&&_0x4bfaaf['tool_name'])_0x300147['toolUses']++;else _0x4bfaaf['type']==='tool_result'&&_0x4bfaaf['tool_id']&&_0x300147['toolResults']++;}}}}}),_0x300147;}