@profoundlogic/coderflow-server 0.8.4 → 0.8.5

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 (177) hide show
  1. package/dist/coder-server.js +1 -1
  2. package/dist/config.js +1 -1
  3. package/dist/lib/agent-keepalive.js +1 -1
  4. package/dist/lib/agent-models.js +1 -1
  5. package/dist/lib/api-keys.js +1 -1
  6. package/dist/lib/apiKeys.js +1 -1
  7. package/dist/lib/app-server-ports.js +1 -1
  8. package/dist/lib/auto-judge.js +1 -1
  9. package/dist/lib/automation-service.js +1 -1
  10. package/dist/lib/basic-auth.js +1 -1
  11. package/dist/lib/bindings.js +1 -1
  12. package/dist/lib/build-history.js +1 -1
  13. package/dist/lib/build-output-service.js +1 -1
  14. package/dist/lib/build-scheduler.js +1 -1
  15. package/dist/lib/build-service.js +1 -1
  16. package/dist/lib/ca-certificates.js +1 -1
  17. package/dist/lib/claude-oauth-refresh.js +1 -1
  18. package/dist/lib/cli/build.js +1 -1
  19. package/dist/lib/cli/cleanup-users.js +1 -1
  20. package/dist/lib/cli/config-command.js +1 -1
  21. package/dist/lib/cli/config.js +1 -1
  22. package/dist/lib/cli/create-user.js +1 -1
  23. package/dist/lib/cli/grant-admin.js +1 -1
  24. package/dist/lib/cli/init.js +1 -1
  25. package/dist/lib/cli/jira.js +1 -1
  26. package/dist/lib/cli/license.js +1 -1
  27. package/dist/lib/cli/list-roles.js +1 -1
  28. package/dist/lib/cli/list-users.js +1 -1
  29. package/dist/lib/cli/server-manager.js +1 -1
  30. package/dist/lib/cli/set-password.js +1 -1
  31. package/dist/lib/compression-filter.js +1 -1
  32. package/dist/lib/config-migration.js +1 -1
  33. package/dist/lib/container-credential-sync.js +1 -1
  34. package/dist/lib/container-tokens.js +1 -1
  35. package/dist/lib/data-dir.js +1 -1
  36. package/dist/lib/deployment-history.js +1 -1
  37. package/dist/lib/deployment-service.js +1 -1
  38. package/dist/lib/docker-utils.js +1 -1
  39. package/dist/lib/email.js +1 -1
  40. package/dist/lib/emailTemplates.js +1 -1
  41. package/dist/lib/entitlement.js +1 -1
  42. package/dist/lib/external-connections.js +1 -1
  43. package/dist/lib/fetch-utils.js +1 -1
  44. package/dist/lib/git-commit-details-route.js +1 -1
  45. package/dist/lib/git-history-diff-guardrails.js +1 -1
  46. package/dist/lib/git-provider-service.js +1 -1
  47. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
  48. package/dist/lib/git-provider-setup/index.js +1 -1
  49. package/dist/lib/git-provider-setup/setup-factory.js +1 -1
  50. package/dist/lib/git-provider-setup/setup-interface.js +1 -1
  51. package/dist/lib/git-providers/azure-devops-provider.js +1 -1
  52. package/dist/lib/git-providers/github-app-provider.js +1 -1
  53. package/dist/lib/git-providers/index.js +1 -1
  54. package/dist/lib/git-providers/provider-factory.js +1 -1
  55. package/dist/lib/git-providers/provider-interface.js +1 -1
  56. package/dist/lib/github-urls.js +1 -1
  57. package/dist/lib/group-objective-linking.js +1 -1
  58. package/dist/lib/ibmi-sync.js +1 -1
  59. package/dist/lib/jira-client.js +1 -1
  60. package/dist/lib/judge-blinding.js +1 -1
  61. package/dist/lib/logger.js +1 -1
  62. package/dist/lib/memory-utils.js +1 -1
  63. package/dist/lib/migration-to-scoped-rbac.js +1 -1
  64. package/dist/lib/model-fetcher.js +1 -1
  65. package/dist/lib/notifications.js +1 -1
  66. package/dist/lib/objective-context.js +1 -1
  67. package/dist/lib/oidc-auth.js +1 -1
  68. package/dist/lib/oidc-device-flow.js +1 -1
  69. package/dist/lib/passwordTokens.js +1 -1
  70. package/dist/lib/permission-resolver.js +1 -1
  71. package/dist/lib/pin-cascade.js +1 -1
  72. package/dist/lib/provider-accounts.js +1 -1
  73. package/dist/lib/provider-oauth.js +1 -1
  74. package/dist/lib/provider-profile.js +1 -1
  75. package/dist/lib/provider-token-refresh.js +1 -1
  76. package/dist/lib/rbac-user-state.js +1 -1
  77. package/dist/lib/request-url.js +1 -1
  78. package/dist/lib/rewind.js +1 -1
  79. package/dist/lib/role-definitions.js +1 -1
  80. package/dist/lib/roles.js +1 -1
  81. package/dist/lib/secrets.js +1 -1
  82. package/dist/lib/setup-repo-git-auth.js +1 -1
  83. package/dist/lib/state-capture.js +1 -1
  84. package/dist/lib/static-files.js +1 -1
  85. package/dist/lib/task-aliases.js +1 -1
  86. package/dist/lib/task-container-init.js +1 -1
  87. package/dist/lib/task-context-usage.js +1 -1
  88. package/dist/lib/task-name-format.js +1 -1
  89. package/dist/lib/task-name-generator.js +1 -1
  90. package/dist/lib/task-source-metadata.js +1 -1
  91. package/dist/lib/teams.js +1 -1
  92. package/dist/lib/user-git-oauth.js +1 -1
  93. package/dist/lib/user-git-tokens.js +1 -1
  94. package/dist/lib/users.js +1 -1
  95. package/dist/middleware/requireAuth.js +1 -1
  96. package/dist/middleware/requireInit.js +1 -1
  97. package/dist/middleware/requirePermission.js +1 -1
  98. package/dist/package.json +1 -1
  99. package/dist/playwright.config.js +1 -1
  100. package/dist/playwright.task-terminal.config.js +1 -1
  101. package/dist/routes/apiKeys.js +1 -1
  102. package/dist/routes/auth-oidc.js +1 -1
  103. package/dist/routes/auth.js +1 -1
  104. package/dist/routes/automations.js +1 -1
  105. package/dist/routes/bindings.js +1 -1
  106. package/dist/routes/build.js +1 -1
  107. package/dist/routes/containers.js +1 -1
  108. package/dist/routes/deploy-task.js +1 -1
  109. package/dist/routes/environment-management.js +1 -1
  110. package/dist/routes/environments.js +1 -1
  111. package/dist/routes/external-skills.js +1 -1
  112. package/dist/routes/git-credentials.js +1 -1
  113. package/dist/routes/git-oauth.js +1 -1
  114. package/dist/routes/git-provider-setup.js +1 -1
  115. package/dist/routes/health.js +1 -1
  116. package/dist/routes/jira.js +1 -1
  117. package/dist/routes/logs.js +1 -1
  118. package/dist/routes/objective-management.js +1 -1
  119. package/dist/routes/password.js +1 -1
  120. package/dist/routes/prompt.js +1 -1
  121. package/dist/routes/provider-auth.js +1 -1
  122. package/dist/routes/qa.js +1 -1
  123. package/dist/routes/roles.js +1 -1
  124. package/dist/routes/settings.js +1 -1
  125. package/dist/routes/skill-management.js +1 -1
  126. package/dist/routes/skills.js +1 -1
  127. package/dist/routes/stats.js +1 -1
  128. package/dist/routes/tasks.js +1 -1
  129. package/dist/routes/teams.js +1 -1
  130. package/dist/routes/templates.js +1 -1
  131. package/dist/routes/test-task.js +1 -1
  132. package/dist/routes/test.js +1 -1
  133. package/dist/routes/users.js +1 -1
  134. package/dist/routes/visualizations.js +1 -1
  135. package/dist/scripts/create-user.js +1 -1
  136. package/dist/scripts/migrate-config-to-data-dir.js +1 -1
  137. package/dist/start.js +1 -1
  138. package/dist/web-ui/public/activity-detail-modal.js +1 -1
  139. package/dist/web-ui/public/activity-feed.js +1 -1
  140. package/dist/web-ui/public/activity-formatters.js +1 -1
  141. package/dist/web-ui/public/admin.js +1 -1
  142. package/dist/web-ui/public/agent-event-parser.js +1 -1
  143. package/dist/web-ui/public/app.js +1 -1
  144. package/dist/web-ui/public/approve-dialog.js +1 -1
  145. package/dist/web-ui/public/automation-links.js +1 -1
  146. package/dist/web-ui/public/automation-schedule.js +1 -1
  147. package/dist/web-ui/public/comments-widget.js +1 -1
  148. package/dist/web-ui/public/diff-utils.js +1 -1
  149. package/dist/web-ui/public/environments.js +1 -1
  150. package/dist/web-ui/public/feedback-widget.js +1 -1
  151. package/dist/web-ui/public/file-selection-tree.js +1 -1
  152. package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
  153. package/dist/web-ui/public/git-history.js +1 -1
  154. package/dist/web-ui/public/git-status.js +1 -1
  155. package/dist/web-ui/public/ibmi-file-filter.js +1 -1
  156. package/dist/web-ui/public/index.js +1 -1
  157. package/dist/web-ui/public/login.js +1 -1
  158. package/dist/web-ui/public/markdown-editor.js +1 -1
  159. package/dist/web-ui/public/markdown-file-editor.js +1 -1
  160. package/dist/web-ui/public/modal-maximize.js +1 -1
  161. package/dist/web-ui/public/notifications.js +1 -1
  162. package/dist/web-ui/public/permissions.js +1 -1
  163. package/dist/web-ui/public/pr-dialog.js +1 -1
  164. package/dist/web-ui/public/roles.js +1 -1
  165. package/dist/web-ui/public/settings.js +1 -1
  166. package/dist/web-ui/public/setup-password.js +1 -1
  167. package/dist/web-ui/public/skills.js +1 -1
  168. package/dist/web-ui/public/sse-client.js +1 -1
  169. package/dist/web-ui/public/sse-shared-worker.js +1 -1
  170. package/dist/web-ui/public/task-judging-helpers.js +1 -1
  171. package/dist/web-ui/public/task.js +1 -1
  172. package/dist/web-ui/public/teams.js +1 -1
  173. package/dist/web-ui/public/terminal.js +1 -1
  174. package/dist/web-ui/public/theme.js +1 -1
  175. package/dist/web-ui/public/users.js +1 -1
  176. package/dist/web-ui/public/variant-grouping.js +1 -1
  177. package/package.json +1 -1
@@ -1 +1 @@
1
- export function escapeHtml(_0x59bc29){if(!_0x59bc29)return'';return String(_0x59bc29)['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#039;');}function computeLineDiff(_0x4070ca,_0x14587d,_0x54d2be,_0x5f169d){const _0x3d3314=(_0x4070ca||'')['split']('\x0a'),_0x290f5a=(_0x14587d||'')['split']('\x0a'),_0x2dcf83=(_0x54d2be||0x1)-0x1,_0x6b23c4=(_0x5f169d||_0x54d2be||0x1)-0x1,_0x75dab8=computeLCS(_0x3d3314,_0x290f5a),_0x9f87ca={'left':[],'right':[]};let _0x612b6f=0x0,_0x2106b8=0x0,_0x2fd81b=0x0;while(_0x612b6f<_0x3d3314['length']||_0x2106b8<_0x290f5a['length']){if(_0x2fd81b<_0x75dab8['length']&&_0x612b6f<_0x3d3314['length']&&_0x3d3314[_0x612b6f]===_0x75dab8[_0x2fd81b]&&_0x2106b8<_0x290f5a['length']&&_0x290f5a[_0x2106b8]===_0x75dab8[_0x2fd81b])_0x9f87ca['left']['push']({'type':'context','content':_0x3d3314[_0x612b6f],'lineNum':_0x612b6f+0x1+_0x2dcf83}),_0x9f87ca['right']['push']({'type':'context','content':_0x290f5a[_0x2106b8],'lineNum':_0x2106b8+0x1+_0x6b23c4}),_0x612b6f++,_0x2106b8++,_0x2fd81b++;else{if(_0x2fd81b<_0x75dab8['length']&&_0x2106b8<_0x290f5a['length']&&_0x290f5a[_0x2106b8]===_0x75dab8[_0x2fd81b])_0x9f87ca['left']['push']({'type':'remove','content':_0x3d3314[_0x612b6f],'lineNum':_0x612b6f+0x1+_0x2dcf83}),_0x9f87ca['right']['push']({'type':'empty','content':'','lineNum':null}),_0x612b6f++;else{if(_0x2fd81b<_0x75dab8['length']&&_0x612b6f<_0x3d3314['length']&&_0x3d3314[_0x612b6f]===_0x75dab8[_0x2fd81b])_0x9f87ca['left']['push']({'type':'empty','content':'','lineNum':null}),_0x9f87ca['right']['push']({'type':'add','content':_0x290f5a[_0x2106b8],'lineNum':_0x2106b8+0x1+_0x6b23c4}),_0x2106b8++;else{if(_0x612b6f<_0x3d3314['length']&&_0x2106b8<_0x290f5a['length'])_0x9f87ca['left']['push']({'type':'remove','content':_0x3d3314[_0x612b6f],'lineNum':_0x612b6f+0x1+_0x2dcf83}),_0x9f87ca['right']['push']({'type':'add','content':_0x290f5a[_0x2106b8],'lineNum':_0x2106b8+0x1+_0x6b23c4}),_0x612b6f++,_0x2106b8++;else{if(_0x612b6f<_0x3d3314['length'])_0x9f87ca['left']['push']({'type':'remove','content':_0x3d3314[_0x612b6f],'lineNum':_0x612b6f+0x1+_0x2dcf83}),_0x9f87ca['right']['push']({'type':'empty','content':'','lineNum':null}),_0x612b6f++;else _0x2106b8<_0x290f5a['length']&&(_0x9f87ca['left']['push']({'type':'empty','content':'','lineNum':null}),_0x9f87ca['right']['push']({'type':'add','content':_0x290f5a[_0x2106b8],'lineNum':_0x2106b8+0x1+_0x6b23c4}),_0x2106b8++);}}}}}return _0x9f87ca;}function computeLCS(_0x23399a,_0x5da314){const _0x181fc8=_0x23399a['length'],_0x27c89e=_0x5da314['length'],_0x324d89=Array(_0x181fc8+0x1)['fill'](null)['map'](()=>Array(_0x27c89e+0x1)['fill'](0x0));for(let _0x40dd85=0x1;_0x40dd85<=_0x181fc8;_0x40dd85++){for(let _0x41f48c=0x1;_0x41f48c<=_0x27c89e;_0x41f48c++){_0x23399a[_0x40dd85-0x1]===_0x5da314[_0x41f48c-0x1]?_0x324d89[_0x40dd85][_0x41f48c]=_0x324d89[_0x40dd85-0x1][_0x41f48c-0x1]+0x1:_0x324d89[_0x40dd85][_0x41f48c]=Math['max'](_0x324d89[_0x40dd85-0x1][_0x41f48c],_0x324d89[_0x40dd85][_0x41f48c-0x1]);}}const _0xde2a22=[];let _0x16d5de=_0x181fc8,_0x309ea2=_0x27c89e;while(_0x16d5de>0x0&&_0x309ea2>0x0){if(_0x23399a[_0x16d5de-0x1]===_0x5da314[_0x309ea2-0x1])_0xde2a22['unshift'](_0x23399a[_0x16d5de-0x1]),_0x16d5de--,_0x309ea2--;else _0x324d89[_0x16d5de-0x1][_0x309ea2]>_0x324d89[_0x16d5de][_0x309ea2-0x1]?_0x16d5de--:_0x309ea2--;}return _0xde2a22;}function renderEditDiffLine(_0x12b210,_0x9be567){const _0xb4fbe2=_0x12b210['lineNum']!==null?String(_0x12b210['lineNum'])['padStart'](0x4,'\x20'):'\x20\x20\x20\x20',_0x11306f=escapeHtml(_0x12b210['content']);let _0x5ef9ec='edit-diff-line',_0x12b5be='\x20';switch(_0x12b210['type']){case'add':_0x5ef9ec+='\x20edit-diff-add',_0x12b5be='+';break;case'remove':_0x5ef9ec+='\x20edit-diff-remove',_0x12b5be='-';break;case'empty':_0x5ef9ec+='\x20edit-diff-empty',_0x12b5be='\x20';break;default:_0x5ef9ec+='\x20edit-diff-context',_0x12b5be='\x20';}return'<div\x20class=\x22'+_0x5ef9ec+'\x22><span\x20class=\x22edit-diff-line-num\x22>'+_0xb4fbe2+'</span><span\x20class=\x22edit-diff-prefix\x22>'+_0x12b5be+'</span><span\x20class=\x22edit-diff-content\x22>'+(_0x11306f||'&nbsp;')+'</span></div>';}export function formatBashDetail(_0x2afc78){if(!_0x2afc78)return'<p>No\x20data\x20available</p>';if(_0x2afc78['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20bash-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Command:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-code\x22>'+escapeHtml(_0x2afc78['toolInput']?.['command']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x2afc78['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';if(_0x2afc78['stdout']!==undefined||_0x2afc78['stderr']!==undefined||_0x2afc78['aggregated_output']!==undefined){const _0x43a0c5=_0x2afc78['aggregated_output']&&_0x2afc78['aggregated_output']['trim']()['length']>0x0,_0x156427=!_0x43a0c5&&_0x2afc78['stdout']&&_0x2afc78['stdout']['trim']()['length']>0x0,_0x57198e=_0x2afc78['stderr']&&_0x2afc78['stderr']['trim']()['length']>0x0;return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20bash-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Command:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-code\x22>'+escapeHtml(_0x2afc78['command']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x43a0c5?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Output:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x2afc78['aggregated_output'])+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x156427?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Output:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x2afc78['stdout'])+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x57198e?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error\x20Output:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x2afc78['stderr'])+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+(!_0x43a0c5&&!_0x156427&&!_0x57198e?'<div\x20class=\x22tool-section\x22><p\x20class=\x22muted-text\x22>No\x20output</p></div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Exit\x20Code:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22exit-code\x20'+(_0x2afc78['exitCode']===0x0?'success':'error')+'\x22>'+_0x2afc78['exitCode']+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';}return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20bash-detail\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Command:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-code\x22>'+escapeHtml(_0x2afc78['command']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Output:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x2afc78['output']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatReadDetail(_0x3303e2){if(!_0x3303e2)return'<p>No\x20data\x20available</p>';if(_0x3303e2['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20read-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>File:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x3303e2['toolInput']?.['file_path']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x3303e2['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20read-detail\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>File:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x3303e2['filePath']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Content:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x3303e2['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatWriteDetail(_0x53253a){if(!_0x53253a)return'<p>No\x20data\x20available</p>';if(_0x53253a['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20write-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>File:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x53253a['toolInput']?.['file_path']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x53253a['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';const _0x1ac322=_0x53253a['content']['length']>0xc350?_0x53253a['content']['substring'](0x0,0xc350)+'\x0a\x0a...\x20[Content\x20truncated\x20at\x2050KB\x20for\x20display]':_0x53253a['content'];return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20write-detail\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>File:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x53253a['filePath']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Content\x20Written\x20('+_0x53253a['content']['length']+'\x20chars):</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x1ac322)+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatEditDetail(_0x169fa3){if(!_0x169fa3)return'<p>No\x20data\x20available</p>';if(_0x169fa3['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20edit-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>File:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x169fa3['toolInput']?.['file_path']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x169fa3['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';if(_0x169fa3['diff']&&!_0x169fa3['oldString']&&!_0x169fa3['newString'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20edit-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>File:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x169fa3['filePath']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Changes:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x169fa3['diff'])+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x169fa3['result']?'<div\x20class=\x22tool-section\x22><div\x20class=\x22tool-section-header\x22>Result:</div><div\x20class=\x22tool-output-summary\x22>'+escapeHtml(_0x169fa3['result'])+'</div></div>':'')+'\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';const _0x452ddb=computeLineDiff(_0x169fa3['oldString'],_0x169fa3['newString'],_0x169fa3['startLine'],_0x169fa3['startLine']),_0x40f37e=Math['max'](_0x452ddb['left']['length'],_0x452ddb['right']['length']);let _0x378121='';for(let _0xdd8492=0x0;_0xdd8492<_0x40f37e;_0xdd8492++){const _0x2c683d=_0x452ddb['left'][_0xdd8492]||{'type':'empty','content':'','lineNum':null},_0x1201b4=_0x452ddb['right'][_0xdd8492]||{'type':'empty','content':'','lineNum':null};_0x378121+='\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22edit-diff-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22edit-diff-side\x20edit-diff-left\x22>'+renderEditDiffLine(_0x2c683d,'left')+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22edit-diff-side\x20edit-diff-right\x22>'+renderEditDiffLine(_0x1201b4,'right')+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';}const _0x5d2a25=_0x452ddb['left']['filter'](_0x4f3492=>_0x4f3492['type']==='remove')['length'],_0x43ed45=_0x452ddb['right']['filter'](_0x5561bc=>_0x5561bc['type']==='add')['length'];return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20edit-detail\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>File:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x169fa3['filePath']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22edit-diff-summary\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22edit-diff-mode\x22>Replace\x20'+(_0x169fa3['replaceAll']?'All':'First')+'\x20Occurrence</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22edit-diff-stats\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22edit-diff-removed\x22>-'+_0x5d2a25+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22edit-diff-added\x22>+'+_0x43ed45+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22edit-diff-container\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22edit-diff-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22edit-diff-header-left\x22>Old</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22edit-diff-header-right\x22>New</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22edit-diff-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x378121+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatGrepDetail(_0x14ed55){if(!_0x14ed55)return'<p>No\x20data\x20available</p>';if(_0x14ed55['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20grep-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Pattern:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<code\x20class=\x22inline-code\x22>'+escapeHtml(_0x14ed55['toolInput']?.['pattern']||'')+'</code>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x14ed55['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20grep-detail\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Pattern:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<code\x20class=\x22inline-code\x22>'+escapeHtml(_0x14ed55['pattern']||'')+'</code>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20'+(_0x14ed55['path']?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Path:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x14ed55['path'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Output\x20Mode:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div>'+escapeHtml(_0x14ed55['outputMode']||'files_with_matches')+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Results:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x14ed55['content']||'No\x20matches\x20found')+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatGlobDetail(_0x1273af){if(!_0x1273af)return'<p>No\x20data\x20available</p>';if(_0x1273af['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20glob-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Pattern:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<code\x20class=\x22inline-code\x22>'+escapeHtml(_0x1273af['toolInput']?.['pattern']||'')+'</code>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x1273af['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20glob-detail\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Pattern:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<code\x20class=\x22inline-code\x22>'+escapeHtml(_0x1273af['pattern']||'')+'</code>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20'+(_0x1273af['path']?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Path:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x1273af['path'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Matching\x20Files:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x1273af['content']||'No\x20files\x20found')+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatWebFetchDetail(_0x1b12ad){if(!_0x1b12ad)return'<p>No\x20data\x20available</p>';if(_0x1b12ad['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20webfetch-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>URL:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<a\x20href=\x22'+escapeHtml(_0x1b12ad['toolInput']?.['url']||'')+'\x22\x20target=\x22_blank\x22\x20class=\x22external-link\x22>'+escapeHtml(_0x1b12ad['toolInput']?.['url']||'')+'</a>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x1b12ad['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20webfetch-detail\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>URL:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<a\x20href=\x22'+escapeHtml(_0x1b12ad['url']||'')+'\x22\x20target=\x22_blank\x22\x20class=\x22external-link\x22>'+escapeHtml(_0x1b12ad['url']||'')+'</a>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20'+(_0x1b12ad['prompt']?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Prompt:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22prompt-text\x22>'+escapeHtml(_0x1b12ad['prompt'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Content:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x1b12ad['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatWebSearchDetail(_0x4439be){if(!_0x4439be)return'<p>No\x20data\x20available</p>';if(_0x4439be['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20websearch-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Query:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22search-query\x22>'+escapeHtml(_0x4439be['toolInput']?.['query']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x4439be['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20websearch-detail\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Query:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22search-query\x22>'+escapeHtml(_0x4439be['query']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Results:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x4439be['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatNotebookEditDetail(_0x3b3151){if(!_0x3b3151)return'<p>No\x20data\x20available</p>';if(_0x3b3151['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20notebook-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Notebook:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x3b3151['toolInput']?.['notebook_path']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x3b3151['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20notebook-detail\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Notebook:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x3b3151['notebookPath']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20'+(_0x3b3151['cellId']?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Cell\x20ID:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<code\x20class=\x22inline-code\x22>'+escapeHtml(_0x3b3151['cellId'])+'</code>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>New\x20Source:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x3b3151['newSource']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatSkillDetail(_0xa02a43){if(!_0xa02a43)return'<p>No\x20data\x20available</p>';if(_0xa02a43['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20skill-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Skill:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<code\x20class=\x22inline-code\x22>'+escapeHtml(_0xa02a43['toolInput']?.['skill']||'')+'</code>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0xa02a43['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';const _0xe96b63=_0xa02a43['toolInput']?.['skill']||_0xa02a43['skill']||'',_0x3e588e=_0xa02a43['content']||_0xa02a43['output']||'';return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20skill-detail\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Skill:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<code\x20class=\x22inline-code\x22>'+escapeHtml(_0xe96b63)+'</code>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20'+(_0x3e588e?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Output:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x3e588e)+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatAskUserQuestionDetail(_0x47586f){if(!_0x47586f)return'<p>No\x20data\x20available</p>';if(_0x47586f['error']&&(!_0x47586f['questions']||_0x47586f['questions']['length']===0x0))return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20ask-question-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x47586f['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';const _0x1880b9=_0x47586f['questions']||(_0x47586f['question']?[_0x47586f]:[]);if(_0x1880b9['length']===0x0)return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20ask-question-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22fallback-content\x22>'+escapeHtml(JSON['stringify'](_0x47586f,null,0x2))+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';const _0x363b2a=_0x1880b9['map']((_0x373529,_0x2e0a4d)=>{const _0x2a9555=_0x373529['header']?'<span\x20class=\x22ask-question-summary-chip\x22>'+escapeHtml(_0x373529['header'])+'</span>':'',_0x5de64b=_0x373529['question']?escapeHtml(_0x373529['question']):_0x373529['header']?'':'Question',_0x4fedb6=_0x373529['options']?.['length']||0x0,_0x2697f9=_0x4fedb6>0x0?'<span\x20class=\x22ask-question-summary-count\x22>'+_0x4fedb6+'\x20options</span>':'',_0x3f0ecf=_0x373529['multiSelect']?'<span\x20class=\x22ask-question-multi-badge\x22>Multi-select</span>':'',_0x3bbdf3=_0x1880b9['length']>0x1?'<span\x20class=\x22ask-question-summary-num\x22>'+(_0x2e0a4d+0x1)+'.</span>\x20':'';let _0x1dc590='';return _0x373529['options']&&Array['isArray'](_0x373529['options'])&&_0x373529['options']['length']>0x0&&(_0x1dc590='\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ask-question-options\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x373529['options']['map'](_0x5912cb=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ask-question-option\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ask-question-option-label\x22>'+escapeHtml(_0x5912cb['label']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x5912cb['description']?'<div\x20class=\x22ask-question-option-desc\x22>'+escapeHtml(_0x5912cb['description'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x5912cb['preview']?'<pre\x20class=\x22ask-question-option-preview\x22>'+escapeHtml(_0x5912cb['preview'])+'</pre>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20')['join']('')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20'),'\x0a\x20\x20\x20\x20\x20\x20<details\x20class=\x22ask-question-collapsible\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<summary\x20class=\x22ask-question-summary\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x3bbdf3+_0x2a9555+'<span\x20class=\x22ask-question-summary-text\x22>'+_0x5de64b+'</span>'+_0x2697f9+_0x3f0ecf+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</summary>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ask-question-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x1dc590+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</details>\x0a\x20\x20\x20\x20';})['join']('');let _0x1ada69='';if(_0x47586f['answer'])_0x1ada69='\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Answer:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x47586f['answer'])+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';else _0x47586f['denied']&&(_0x1ada69='<div\x20class=\x22ask-question-denied-badge\x22>Awaiting\x20answer\x20—\x20use\x20the\x20form\x20below\x20to\x20respond</div>');return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20ask-question-detail\x22>\x0a\x20\x20\x20\x20\x20\x20'+_0x363b2a+'\x0a\x20\x20\x20\x20\x20\x20'+_0x1ada69+'\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatAgentDetail(_0x53d8f4){if(!_0x53d8f4)return'<p>No\x20data\x20available</p>';if(_0x53d8f4['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20agent-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Agent:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22task-description\x22>'+escapeHtml(_0x53d8f4['toolInput']?.['description']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x53d8f4['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';const _0x18c25a=_0x53d8f4['description']||_0x53d8f4['toolInput']?.['description']||'',_0x55460a=_0x53d8f4['subagentType']||_0x53d8f4['toolInput']?.['subagent_type']||'',_0x487e46=_0x53d8f4['model']||_0x53d8f4['toolInput']?.['model']||'',_0x1a4d57=_0x53d8f4['prompt']||_0x53d8f4['toolInput']?.['prompt']||'',_0x1058ad=_0x53d8f4['content']||'';return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20agent-detail\x22>\x0a\x20\x20\x20\x20\x20\x20'+(_0x18c25a?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Description:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22task-description\x22>'+escapeHtml(_0x18c25a)+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20'+(_0x55460a?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Agent\x20Type:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<code\x20class=\x22inline-code\x22>'+escapeHtml(_0x55460a)+'</code>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20'+(_0x487e46?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Model:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<code\x20class=\x22inline-code\x22>'+escapeHtml(_0x487e46)+'</code>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20'+(_0x1a4d57?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Prompt:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x1a4d57)+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20'+(_0x1058ad?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Result:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x1058ad)+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatTaskDetail(_0x5074e0){if(!_0x5074e0)return'<p>No\x20data\x20available</p>';if(_0x5074e0['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20task-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Task:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22task-description\x22>'+escapeHtml(_0x5074e0['toolInput']?.['description']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x5074e0['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';const _0x2989fb=_0x5074e0['description']||_0x5074e0['toolInput']?.['description']||'',_0x3f0b4d=_0x5074e0['subagentType']||_0x5074e0['toolInput']?.['subagent_type']||'',_0x15b6b2=_0x5074e0['prompt']||_0x5074e0['toolInput']?.['prompt']||'',_0x3dc916=_0x5074e0['content']||'';return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20task-detail\x22>\x0a\x20\x20\x20\x20\x20\x20'+(_0x2989fb?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Description:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22task-description\x22>'+escapeHtml(_0x2989fb)+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20'+(_0x3f0b4d?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Agent\x20Type:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<code\x20class=\x22inline-code\x22>'+escapeHtml(_0x3f0b4d)+'</code>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20'+(_0x15b6b2?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Prompt:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x15b6b2)+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20'+(_0x3dc916?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Result:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x3dc916)+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}
1
+ export function escapeHtml(_0x2f8ac8){if(!_0x2f8ac8)return'';return String(_0x2f8ac8)['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#039;');}function computeLineDiff(_0x3b44a0,_0x174e7c,_0x1e1b4f,_0x261945){const _0x324b2c=(_0x3b44a0||'')['split']('\x0a'),_0x5472f6=(_0x174e7c||'')['split']('\x0a'),_0x2a955e=(_0x1e1b4f||0x1)-0x1,_0x193a27=(_0x261945||_0x1e1b4f||0x1)-0x1,_0x1740be=computeLCS(_0x324b2c,_0x5472f6),_0x373720={'left':[],'right':[]};let _0x35b0b1=0x0,_0x40f84a=0x0,_0x5db1e1=0x0;while(_0x35b0b1<_0x324b2c['length']||_0x40f84a<_0x5472f6['length']){if(_0x5db1e1<_0x1740be['length']&&_0x35b0b1<_0x324b2c['length']&&_0x324b2c[_0x35b0b1]===_0x1740be[_0x5db1e1]&&_0x40f84a<_0x5472f6['length']&&_0x5472f6[_0x40f84a]===_0x1740be[_0x5db1e1])_0x373720['left']['push']({'type':'context','content':_0x324b2c[_0x35b0b1],'lineNum':_0x35b0b1+0x1+_0x2a955e}),_0x373720['right']['push']({'type':'context','content':_0x5472f6[_0x40f84a],'lineNum':_0x40f84a+0x1+_0x193a27}),_0x35b0b1++,_0x40f84a++,_0x5db1e1++;else{if(_0x5db1e1<_0x1740be['length']&&_0x40f84a<_0x5472f6['length']&&_0x5472f6[_0x40f84a]===_0x1740be[_0x5db1e1])_0x373720['left']['push']({'type':'remove','content':_0x324b2c[_0x35b0b1],'lineNum':_0x35b0b1+0x1+_0x2a955e}),_0x373720['right']['push']({'type':'empty','content':'','lineNum':null}),_0x35b0b1++;else{if(_0x5db1e1<_0x1740be['length']&&_0x35b0b1<_0x324b2c['length']&&_0x324b2c[_0x35b0b1]===_0x1740be[_0x5db1e1])_0x373720['left']['push']({'type':'empty','content':'','lineNum':null}),_0x373720['right']['push']({'type':'add','content':_0x5472f6[_0x40f84a],'lineNum':_0x40f84a+0x1+_0x193a27}),_0x40f84a++;else{if(_0x35b0b1<_0x324b2c['length']&&_0x40f84a<_0x5472f6['length'])_0x373720['left']['push']({'type':'remove','content':_0x324b2c[_0x35b0b1],'lineNum':_0x35b0b1+0x1+_0x2a955e}),_0x373720['right']['push']({'type':'add','content':_0x5472f6[_0x40f84a],'lineNum':_0x40f84a+0x1+_0x193a27}),_0x35b0b1++,_0x40f84a++;else{if(_0x35b0b1<_0x324b2c['length'])_0x373720['left']['push']({'type':'remove','content':_0x324b2c[_0x35b0b1],'lineNum':_0x35b0b1+0x1+_0x2a955e}),_0x373720['right']['push']({'type':'empty','content':'','lineNum':null}),_0x35b0b1++;else _0x40f84a<_0x5472f6['length']&&(_0x373720['left']['push']({'type':'empty','content':'','lineNum':null}),_0x373720['right']['push']({'type':'add','content':_0x5472f6[_0x40f84a],'lineNum':_0x40f84a+0x1+_0x193a27}),_0x40f84a++);}}}}}return _0x373720;}function computeLCS(_0x3526f2,_0x3606c5){const _0x33ceac=_0x3526f2['length'],_0x20418d=_0x3606c5['length'],_0xfde9a8=Array(_0x33ceac+0x1)['fill'](null)['map'](()=>Array(_0x20418d+0x1)['fill'](0x0));for(let _0x1b2486=0x1;_0x1b2486<=_0x33ceac;_0x1b2486++){for(let _0xc50dda=0x1;_0xc50dda<=_0x20418d;_0xc50dda++){_0x3526f2[_0x1b2486-0x1]===_0x3606c5[_0xc50dda-0x1]?_0xfde9a8[_0x1b2486][_0xc50dda]=_0xfde9a8[_0x1b2486-0x1][_0xc50dda-0x1]+0x1:_0xfde9a8[_0x1b2486][_0xc50dda]=Math['max'](_0xfde9a8[_0x1b2486-0x1][_0xc50dda],_0xfde9a8[_0x1b2486][_0xc50dda-0x1]);}}const _0x202e9e=[];let _0x4158d6=_0x33ceac,_0x4c276b=_0x20418d;while(_0x4158d6>0x0&&_0x4c276b>0x0){if(_0x3526f2[_0x4158d6-0x1]===_0x3606c5[_0x4c276b-0x1])_0x202e9e['unshift'](_0x3526f2[_0x4158d6-0x1]),_0x4158d6--,_0x4c276b--;else _0xfde9a8[_0x4158d6-0x1][_0x4c276b]>_0xfde9a8[_0x4158d6][_0x4c276b-0x1]?_0x4158d6--:_0x4c276b--;}return _0x202e9e;}function renderEditDiffLine(_0xc9e34b,_0x25fe1e){const _0x262498=_0xc9e34b['lineNum']!==null?String(_0xc9e34b['lineNum'])['padStart'](0x4,'\x20'):'\x20\x20\x20\x20',_0x55fac4=escapeHtml(_0xc9e34b['content']);let _0x110ffe='edit-diff-line',_0x3a6f90='\x20';switch(_0xc9e34b['type']){case'add':_0x110ffe+='\x20edit-diff-add',_0x3a6f90='+';break;case'remove':_0x110ffe+='\x20edit-diff-remove',_0x3a6f90='-';break;case'empty':_0x110ffe+='\x20edit-diff-empty',_0x3a6f90='\x20';break;default:_0x110ffe+='\x20edit-diff-context',_0x3a6f90='\x20';}return'<div\x20class=\x22'+_0x110ffe+'\x22><span\x20class=\x22edit-diff-line-num\x22>'+_0x262498+'</span><span\x20class=\x22edit-diff-prefix\x22>'+_0x3a6f90+'</span><span\x20class=\x22edit-diff-content\x22>'+(_0x55fac4||'&nbsp;')+'</span></div>';}export function formatBashDetail(_0xef0fe0){if(!_0xef0fe0)return'<p>No\x20data\x20available</p>';if(_0xef0fe0['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20bash-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Command:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-code\x22>'+escapeHtml(_0xef0fe0['toolInput']?.['command']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0xef0fe0['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';if(_0xef0fe0['stdout']!==undefined||_0xef0fe0['stderr']!==undefined||_0xef0fe0['aggregated_output']!==undefined){const _0x15c63f=_0xef0fe0['aggregated_output']&&_0xef0fe0['aggregated_output']['trim']()['length']>0x0,_0x45c2f=!_0x15c63f&&_0xef0fe0['stdout']&&_0xef0fe0['stdout']['trim']()['length']>0x0,_0x2b243f=_0xef0fe0['stderr']&&_0xef0fe0['stderr']['trim']()['length']>0x0;return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20bash-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Command:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-code\x22>'+escapeHtml(_0xef0fe0['command']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x15c63f?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Output:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0xef0fe0['aggregated_output'])+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x45c2f?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Output:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0xef0fe0['stdout'])+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x2b243f?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error\x20Output:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0xef0fe0['stderr'])+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+(!_0x15c63f&&!_0x45c2f&&!_0x2b243f?'<div\x20class=\x22tool-section\x22><p\x20class=\x22muted-text\x22>No\x20output</p></div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Exit\x20Code:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22exit-code\x20'+(_0xef0fe0['exitCode']===0x0?'success':'error')+'\x22>'+_0xef0fe0['exitCode']+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';}return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20bash-detail\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Command:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-code\x22>'+escapeHtml(_0xef0fe0['command']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Output:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0xef0fe0['output']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatReadDetail(_0x339a78){if(!_0x339a78)return'<p>No\x20data\x20available</p>';if(_0x339a78['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20read-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>File:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x339a78['toolInput']?.['file_path']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x339a78['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20read-detail\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>File:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x339a78['filePath']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Content:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x339a78['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatWriteDetail(_0x19d805){if(!_0x19d805)return'<p>No\x20data\x20available</p>';if(_0x19d805['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20write-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>File:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x19d805['toolInput']?.['file_path']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x19d805['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';const _0x19be11=_0x19d805['content']['length']>0xc350?_0x19d805['content']['substring'](0x0,0xc350)+'\x0a\x0a...\x20[Content\x20truncated\x20at\x2050KB\x20for\x20display]':_0x19d805['content'];return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20write-detail\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>File:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x19d805['filePath']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Content\x20Written\x20('+_0x19d805['content']['length']+'\x20chars):</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x19be11)+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatEditDetail(_0x257fb3){if(!_0x257fb3)return'<p>No\x20data\x20available</p>';if(_0x257fb3['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20edit-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>File:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x257fb3['toolInput']?.['file_path']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x257fb3['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';if(_0x257fb3['diff']&&!_0x257fb3['oldString']&&!_0x257fb3['newString'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20edit-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>File:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x257fb3['filePath']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Changes:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x257fb3['diff'])+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x257fb3['result']?'<div\x20class=\x22tool-section\x22><div\x20class=\x22tool-section-header\x22>Result:</div><div\x20class=\x22tool-output-summary\x22>'+escapeHtml(_0x257fb3['result'])+'</div></div>':'')+'\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';const _0x198123=computeLineDiff(_0x257fb3['oldString'],_0x257fb3['newString'],_0x257fb3['startLine'],_0x257fb3['startLine']),_0x5d7bd9=Math['max'](_0x198123['left']['length'],_0x198123['right']['length']);let _0x57b25a='';for(let _0xc0710d=0x0;_0xc0710d<_0x5d7bd9;_0xc0710d++){const _0x33cb8c=_0x198123['left'][_0xc0710d]||{'type':'empty','content':'','lineNum':null},_0x25d2fb=_0x198123['right'][_0xc0710d]||{'type':'empty','content':'','lineNum':null};_0x57b25a+='\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22edit-diff-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22edit-diff-side\x20edit-diff-left\x22>'+renderEditDiffLine(_0x33cb8c,'left')+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22edit-diff-side\x20edit-diff-right\x22>'+renderEditDiffLine(_0x25d2fb,'right')+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';}const _0x19cae7=_0x198123['left']['filter'](_0x1c1ead=>_0x1c1ead['type']==='remove')['length'],_0x1abc82=_0x198123['right']['filter'](_0x5b56da=>_0x5b56da['type']==='add')['length'];return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20edit-detail\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>File:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x257fb3['filePath']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22edit-diff-summary\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22edit-diff-mode\x22>Replace\x20'+(_0x257fb3['replaceAll']?'All':'First')+'\x20Occurrence</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22edit-diff-stats\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22edit-diff-removed\x22>-'+_0x19cae7+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22edit-diff-added\x22>+'+_0x1abc82+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22edit-diff-container\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22edit-diff-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22edit-diff-header-left\x22>Old</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22edit-diff-header-right\x22>New</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22edit-diff-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x57b25a+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatGrepDetail(_0x216fc8){if(!_0x216fc8)return'<p>No\x20data\x20available</p>';if(_0x216fc8['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20grep-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Pattern:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<code\x20class=\x22inline-code\x22>'+escapeHtml(_0x216fc8['toolInput']?.['pattern']||'')+'</code>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x216fc8['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20grep-detail\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Pattern:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<code\x20class=\x22inline-code\x22>'+escapeHtml(_0x216fc8['pattern']||'')+'</code>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20'+(_0x216fc8['path']?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Path:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x216fc8['path'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Output\x20Mode:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div>'+escapeHtml(_0x216fc8['outputMode']||'files_with_matches')+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Results:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x216fc8['content']||'No\x20matches\x20found')+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatGlobDetail(_0x5dbb71){if(!_0x5dbb71)return'<p>No\x20data\x20available</p>';if(_0x5dbb71['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20glob-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Pattern:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<code\x20class=\x22inline-code\x22>'+escapeHtml(_0x5dbb71['toolInput']?.['pattern']||'')+'</code>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x5dbb71['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20glob-detail\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Pattern:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<code\x20class=\x22inline-code\x22>'+escapeHtml(_0x5dbb71['pattern']||'')+'</code>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20'+(_0x5dbb71['path']?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Path:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x5dbb71['path'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Matching\x20Files:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x5dbb71['content']||'No\x20files\x20found')+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatWebFetchDetail(_0x260a95){if(!_0x260a95)return'<p>No\x20data\x20available</p>';if(_0x260a95['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20webfetch-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>URL:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<a\x20href=\x22'+escapeHtml(_0x260a95['toolInput']?.['url']||'')+'\x22\x20target=\x22_blank\x22\x20class=\x22external-link\x22>'+escapeHtml(_0x260a95['toolInput']?.['url']||'')+'</a>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x260a95['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20webfetch-detail\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>URL:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<a\x20href=\x22'+escapeHtml(_0x260a95['url']||'')+'\x22\x20target=\x22_blank\x22\x20class=\x22external-link\x22>'+escapeHtml(_0x260a95['url']||'')+'</a>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20'+(_0x260a95['prompt']?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Prompt:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22prompt-text\x22>'+escapeHtml(_0x260a95['prompt'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Content:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x260a95['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatWebSearchDetail(_0x2e29d4){if(!_0x2e29d4)return'<p>No\x20data\x20available</p>';if(_0x2e29d4['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20websearch-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Query:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22search-query\x22>'+escapeHtml(_0x2e29d4['toolInput']?.['query']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x2e29d4['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20websearch-detail\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Query:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22search-query\x22>'+escapeHtml(_0x2e29d4['query']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Results:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x2e29d4['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatNotebookEditDetail(_0x51b7b0){if(!_0x51b7b0)return'<p>No\x20data\x20available</p>';if(_0x51b7b0['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20notebook-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Notebook:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x51b7b0['toolInput']?.['notebook_path']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x51b7b0['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20notebook-detail\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Notebook:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22file-path\x22>'+escapeHtml(_0x51b7b0['notebookPath']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20'+(_0x51b7b0['cellId']?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Cell\x20ID:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<code\x20class=\x22inline-code\x22>'+escapeHtml(_0x51b7b0['cellId'])+'</code>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>New\x20Source:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x51b7b0['newSource']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatSkillDetail(_0x524053){if(!_0x524053)return'<p>No\x20data\x20available</p>';if(_0x524053['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20skill-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Skill:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<code\x20class=\x22inline-code\x22>'+escapeHtml(_0x524053['toolInput']?.['skill']||'')+'</code>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x524053['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';const _0x50e760=_0x524053['toolInput']?.['skill']||_0x524053['skill']||'',_0x2836b6=_0x524053['content']||_0x524053['output']||'';return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20skill-detail\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Skill:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<code\x20class=\x22inline-code\x22>'+escapeHtml(_0x50e760)+'</code>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20'+(_0x2836b6?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Output:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x2836b6)+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatAskUserQuestionDetail(_0x5f3e6c){if(!_0x5f3e6c)return'<p>No\x20data\x20available</p>';if(_0x5f3e6c['error']&&(!_0x5f3e6c['questions']||_0x5f3e6c['questions']['length']===0x0))return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20ask-question-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x5f3e6c['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';const _0x4355b1=_0x5f3e6c['questions']||(_0x5f3e6c['question']?[_0x5f3e6c]:[]);if(_0x4355b1['length']===0x0)return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20ask-question-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22fallback-content\x22>'+escapeHtml(JSON['stringify'](_0x5f3e6c,null,0x2))+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';const _0x1f5e47=_0x4355b1['map']((_0x3fe488,_0x1a87b1)=>{const _0x5be867=_0x3fe488['header']?'<span\x20class=\x22ask-question-summary-chip\x22>'+escapeHtml(_0x3fe488['header'])+'</span>':'',_0x49be54=_0x3fe488['question']?escapeHtml(_0x3fe488['question']):_0x3fe488['header']?'':'Question',_0xaca0d3=_0x3fe488['options']?.['length']||0x0,_0x1e920b=_0xaca0d3>0x0?'<span\x20class=\x22ask-question-summary-count\x22>'+_0xaca0d3+'\x20options</span>':'',_0x5ae445=_0x3fe488['multiSelect']?'<span\x20class=\x22ask-question-multi-badge\x22>Multi-select</span>':'',_0x2fa504=_0x4355b1['length']>0x1?'<span\x20class=\x22ask-question-summary-num\x22>'+(_0x1a87b1+0x1)+'.</span>\x20':'';let _0x46651e='';return _0x3fe488['options']&&Array['isArray'](_0x3fe488['options'])&&_0x3fe488['options']['length']>0x0&&(_0x46651e='\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ask-question-options\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x3fe488['options']['map'](_0x4d0d17=>'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ask-question-option\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ask-question-option-label\x22>'+escapeHtml(_0x4d0d17['label']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x4d0d17['description']?'<div\x20class=\x22ask-question-option-desc\x22>'+escapeHtml(_0x4d0d17['description'])+'</div>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x4d0d17['preview']?'<pre\x20class=\x22ask-question-option-preview\x22>'+escapeHtml(_0x4d0d17['preview'])+'</pre>':'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20')['join']('')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20'),'\x0a\x20\x20\x20\x20\x20\x20<details\x20class=\x22ask-question-collapsible\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<summary\x20class=\x22ask-question-summary\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x2fa504+_0x5be867+'<span\x20class=\x22ask-question-summary-text\x22>'+_0x49be54+'</span>'+_0x1e920b+_0x5ae445+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</summary>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22ask-question-body\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+_0x46651e+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</details>\x0a\x20\x20\x20\x20';})['join']('');let _0x90835='';if(_0x5f3e6c['answer'])_0x90835='\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Answer:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x5f3e6c['answer'])+'</pre>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';else _0x5f3e6c['denied']&&(_0x90835='<div\x20class=\x22ask-question-denied-badge\x22>Awaiting\x20answer\x20—\x20use\x20the\x20form\x20below\x20to\x20respond</div>');return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20ask-question-detail\x22>\x0a\x20\x20\x20\x20\x20\x20'+_0x1f5e47+'\x0a\x20\x20\x20\x20\x20\x20'+_0x90835+'\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatAgentDetail(_0x420bf6){if(!_0x420bf6)return'<p>No\x20data\x20available</p>';if(_0x420bf6['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20agent-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Agent:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22task-description\x22>'+escapeHtml(_0x420bf6['toolInput']?.['description']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x420bf6['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';const _0x278e31=_0x420bf6['description']||_0x420bf6['toolInput']?.['description']||'',_0x18f38e=_0x420bf6['subagentType']||_0x420bf6['toolInput']?.['subagent_type']||'',_0x3b5bea=_0x420bf6['model']||_0x420bf6['toolInput']?.['model']||'',_0x1922e0=_0x420bf6['prompt']||_0x420bf6['toolInput']?.['prompt']||'',_0xfde7b3=_0x420bf6['content']||'';return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20agent-detail\x22>\x0a\x20\x20\x20\x20\x20\x20'+(_0x278e31?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Description:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22task-description\x22>'+escapeHtml(_0x278e31)+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20'+(_0x18f38e?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Agent\x20Type:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<code\x20class=\x22inline-code\x22>'+escapeHtml(_0x18f38e)+'</code>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20'+(_0x3b5bea?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Model:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<code\x20class=\x22inline-code\x22>'+escapeHtml(_0x3b5bea)+'</code>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20'+(_0x1922e0?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Prompt:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x1922e0)+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20'+(_0xfde7b3?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Result:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0xfde7b3)+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}export function formatTaskDetail(_0x57d0f1){if(!_0x57d0f1)return'<p>No\x20data\x20available</p>';if(_0x57d0f1['error'])return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20task-detail\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Task:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22task-description\x22>'+escapeHtml(_0x57d0f1['toolInput']?.['description']||'')+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x20error-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Error:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x20error-output\x22>'+escapeHtml(_0x57d0f1['content']||'')+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';const _0x4b47fb=_0x57d0f1['description']||_0x57d0f1['toolInput']?.['description']||'',_0xc37a21=_0x57d0f1['subagentType']||_0x57d0f1['toolInput']?.['subagent_type']||'',_0x4e6620=_0x57d0f1['prompt']||_0x57d0f1['toolInput']?.['prompt']||'',_0x9623e4=_0x57d0f1['content']||'';return'\x0a\x20\x20\x20\x20<div\x20class=\x22tool-detail\x20task-detail\x22>\x0a\x20\x20\x20\x20\x20\x20'+(_0x4b47fb?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Description:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22task-description\x22>'+escapeHtml(_0x4b47fb)+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20'+(_0xc37a21?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Agent\x20Type:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<code\x20class=\x22inline-code\x22>'+escapeHtml(_0xc37a21)+'</code>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20'+(_0x4e6620?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Prompt:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x4e6620)+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20\x20\x20'+(_0x9623e4?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22tool-section-header\x22>Result:</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20class=\x22tool-output\x22>'+escapeHtml(_0x9623e4)+'</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20':'')+'\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}
@@ -1 +1 @@
1
- import{API,Utils,initializeAdminMenu}from'./app.js';import{initTheme,mountThemeToggle}from'./theme.js';const HEALTH_REFRESH_INTERVAL_MS=0x7530,LOG_SEARCH_DEBOUNCE_MS=0xfa,LOG_ORDER_ASC='asc',LOG_ORDER_DESC='desc',RESTART_POLL_INTERVAL_MS=0x7d0,RESTART_POLL_MAX_ATTEMPTS=0x1e,RESTART_MIN_SUCCESS_DELAY_MS=0x1b58,NUMBER_FORMATTER=new Intl['NumberFormat'](),state={'currentSection':'health','environments':[],'health':{'loaded':![],'request':null,'autoRefreshTimer':null,'versionChecked':![],'currentVersion':null,'latestVersion':null,'installCommand':null,'updateEnabled':![],'hasRestartCommand':![],'updateInProgress':![],'restartInProgress':![],'updateAvailable':![]},'logs':{'loaded':![],'request':null,'entries':[],'total':0x0,'minLevel':'INFO','level':'ALL','order':LOG_ORDER_ASC,'search':'','maxEntries':0x3e8,'stream':null,'streamState':'paused','live':![],'autoScroll':!![],'searchTimer':null},'usage':{'loaded':![],'request':null,'days':'30','environment':''}};document['addEventListener']('DOMContentLoaded',initialize);async function initialize(){try{initTheme(),mountThemeToggle();const _0x130cf8=await checkAdminAccess();await initializeAdminMenu(_0x130cf8),setupEventListeners(),await loadEnvironmentOptions(),document['getElementById']('admin-loading')['hidden']=!![],document['getElementById']('admin-content')['hidden']=![];const _0x120209=getSessionValue('admin-health-auto-refresh');if(_0x120209!==null){const _0x4ebd12=document['getElementById']('health-auto-refresh');if(_0x4ebd12)_0x4ebd12['checked']=_0x120209!=='false';}const _0x4862c4=getSessionValue('admin-logs-order');(_0x4862c4===LOG_ORDER_ASC||_0x4862c4===LOG_ORDER_DESC)&&(state['logs']['order']=_0x4862c4);syncLogOrderUi();const _0x1f1bdb=getSessionValue('admin-active-section'),_0xdc075f=['health','logs','usage']['includes'](_0x1f1bdb)?_0x1f1bdb:'health';await switchSection(_0xdc075f);}catch(_0x14e7bf){console['error']('Failed\x20to\x20initialize\x20Server\x20Administration\x20page',_0x14e7bf),document['getElementById']('admin-loading')['hidden']=!![],document['getElementById']('admin-error')['hidden']=![],document['getElementById']('admin-error-message')['textContent']=_0x14e7bf['message']||'Unknown\x20error';}}async function checkAdminAccess(){try{const _0x22649f=await API['getCurrentUser']();if(!window['Permissions']?.['hasServerPermission'](_0x22649f,'*')){Utils['showToast']('Access\x20denied:\x20Admin\x20privileges\x20required','error'),setTimeout(()=>{window['location']['href']='index.html';},0x7d0);throw new Error('Access\x20denied');}return _0x22649f;}catch(_0x4e09f8){_0x4e09f8['message']!=='Access\x20denied'&&(window['location']['href']='login.html');throw _0x4e09f8;}}function setupEventListeners(){document['querySelectorAll']('.settings-nav-item')['forEach'](_0x5b03cc=>{_0x5b03cc['addEventListener']('click',()=>switchSection(_0x5b03cc['dataset']['section']));}),document['getElementById']('retry-admin-btn')?.['addEventListener']('click',()=>{window['location']['reload']();}),document['getElementById']('health-refresh-btn')?.['addEventListener']('click',()=>loadHealth({'showLoading':!![]})),document['getElementById']('retry-health-btn')?.['addEventListener']('click',()=>loadHealth({'showLoading':!![]})),document['getElementById']('health-auto-refresh')?.['addEventListener']('change',syncHealthAutoRefresh),document['getElementById']('health-check-updates-btn')?.['addEventListener']('click',()=>loadVersionStatus({'checkUpdates':!![]})),document['getElementById']('health-copy-install-btn')?.['addEventListener']('click',copyInstallCommand),document['getElementById']('health-update-btn')?.['addEventListener']('click',applyUpdate),document['getElementById']('health-restart-btn')?.['addEventListener']('click',showRestartConfirmation),document['getElementById']('confirm-restart-btn')?.['addEventListener']('click',confirmRestart),document['getElementById']('cancel-restart-btn')?.['addEventListener']('click',hideRestartModal),document['getElementById']('close-restart-modal')?.['addEventListener']('click',hideRestartModal),document['querySelector']('#restart-modal\x20.modal-overlay')?.['addEventListener']('click',hideRestartModal),document['getElementById']('restart-overlay-retry')?.['addEventListener']('click',()=>waitForServerRestart({'manualRetry':!![]})),document['getElementById']('server-stop-containers')?.['addEventListener']('click',()=>runCleanupAction('Stopping\x20containers',()=>API['stopAllContainers']())),document['getElementById']('server-remove-stopped')?.['addEventListener']('click',()=>runCleanupAction('Removing\x20stopped\x20containers',()=>API['removeStoppedContainers']())),document['getElementById']('server-prune-docker')?.['addEventListener']('click',()=>runCleanupAction('Pruning\x20Docker\x20resources',()=>API['pruneDockerResources']())),document['getElementById']('cleanup-toggle')?.['addEventListener']('click',toggleCleanupSection),document['getElementById']('logs-refresh-btn')?.['addEventListener']('click',()=>loadLogs({'showLoading':!![]})),document['getElementById']('retry-logs-btn')?.['addEventListener']('click',()=>loadLogs({'showLoading':!![]})),document['getElementById']('logs-live-toggle')?.['addEventListener']('click',toggleLogsLiveMode),document['getElementById']('logs-clear-btn')?.['addEventListener']('click',clearDisplayedLogs),document['getElementById']('logs-search-input')?.['addEventListener']('input',handleLogsSearchInput),document['querySelectorAll']('#logs-level-filters\x20.admin-filter-btn')['forEach'](_0x6c62e0=>{_0x6c62e0['addEventListener']('click',()=>{state['logs']['level']=_0x6c62e0['dataset']['level']||'ALL',updateActiveFilterButtons('#logs-level-filters',state['logs']['level']),loadLogs({'showLoading':![]});});}),document['querySelectorAll']('#logs-order-toggle\x20.admin-filter-btn')['forEach'](_0x470f30=>{_0x470f30['addEventListener']('click',()=>{setLogOrder(_0x470f30['dataset']['order'],{'focusLiveEdge':!![]});});}),document['getElementById']('logs-container')?.['addEventListener']('scroll',updateLogAutoScrollState),document['getElementById']('usage-refresh-btn')?.['addEventListener']('click',()=>loadUsage({'showLoading':!![]})),document['getElementById']('retry-usage-btn')?.['addEventListener']('click',()=>loadUsage({'showLoading':!![]})),document['getElementById']('usage-environment-filter')?.['addEventListener']('change',_0x5bf7d6=>{state['usage']['environment']=_0x5bf7d6['target']['value']||'',loadUsage({'showLoading':![]});}),document['querySelectorAll']('#usage-period-buttons\x20.admin-filter-btn')['forEach'](_0x573d3f=>{_0x573d3f['addEventListener']('click',()=>{state['usage']['days']=_0x573d3f['dataset']['days']||'30',updateActiveFilterButtons('#usage-period-buttons',state['usage']['days']),loadUsage({'showLoading':![]});});});}async function switchSection(_0x16de40){if(!_0x16de40)return;document['querySelectorAll']('.settings-nav-item')['forEach'](_0x282c31=>{const _0x3ca98b=_0x282c31['dataset']['section']===_0x16de40;_0x282c31['classList']['toggle']('active',_0x3ca98b),_0x282c31['setAttribute']('aria-selected',String(_0x3ca98b));}),document['querySelectorAll']('.settings-panel')['forEach'](_0x4f67cb=>{const _0x63fde4=_0x4f67cb['id']==='section-'+_0x16de40;_0x4f67cb['hidden']=!_0x63fde4,_0x4f67cb['classList']['toggle']('active',_0x63fde4);}),state['currentSection']=_0x16de40,setSessionValue('admin-active-section',_0x16de40),_0x16de40!=='health'&&stopHealthAutoRefresh(),_0x16de40!=='logs'&&stopLogStream(),_0x16de40==='health'&&(syncHealthAutoRefresh(),await loadHealth({'showLoading':!state['health']['loaded']})),_0x16de40==='logs'&&(await loadLogs({'showLoading':!state['logs']['loaded']}),state['logs']['live']?startLogStream():updateLogsLiveUi()),_0x16de40==='usage'&&await loadUsage({'showLoading':!state['usage']['loaded']});}function getSessionValue(_0x7f340){try{return sessionStorage['getItem'](_0x7f340);}catch{return null;}}function setSessionValue(_0x3adedc,_0x5d8845){try{sessionStorage['setItem'](_0x3adedc,_0x5d8845);}catch{}}async function loadEnvironmentOptions(){const _0x3b1754=await API['get']('/environments');state['environments']=(_0x3b1754['environments']||[])['map'](_0x3eab95=>_0x3eab95?.['name'])['filter'](Boolean)['sort']((_0x2ea18b,_0x31a196)=>_0x2ea18b['localeCompare'](_0x31a196));const _0x3f337a=document['getElementById']('usage-environment-filter');if(!_0x3f337a)return;_0x3f337a['innerHTML']='<option\x20value=\x22\x22>All\x20environments</option>'+state['environments']['map'](_0x1f407a=>'<option\x20value=\x22'+Utils['escapeHtml'](_0x1f407a)+'\x22>'+Utils['escapeHtml'](_0x1f407a)+'</option>')['join'](''),_0x3f337a['value']=state['usage']['environment'];}function syncHealthAutoRefresh(){const _0x4fd7ca=document['getElementById']('health-auto-refresh');if(_0x4fd7ca)setSessionValue('admin-health-auto-refresh',String(_0x4fd7ca['checked']));const _0x23d212=state['currentSection']==='health'&&!!_0x4fd7ca?.['checked'];stopHealthAutoRefresh();if(!_0x23d212)return;state['health']['autoRefreshTimer']=window['setInterval'](()=>{loadHealth({'showLoading':![]});},HEALTH_REFRESH_INTERVAL_MS);}function stopHealthAutoRefresh(){state['health']['autoRefreshTimer']&&(clearInterval(state['health']['autoRefreshTimer']),state['health']['autoRefreshTimer']=null);}async function loadHealth({showLoading:showLoading=![]}={}){if(state['health']['request'])return state['health']['request'];return state['health']['request']=((async()=>{const _0x42ccd5=document['getElementById']('health-loading'),_0x27eaeb=document['getElementById']('health-error'),_0x1573c7=document['getElementById']('health-content');(showLoading||!state['health']['loaded'])&&(_0x42ccd5['hidden']=![],_0x27eaeb['hidden']=!![],_0x1573c7['hidden']=!![]);try{const [_0x36f228]=await Promise['all']([API['get']('/health/metrics'),loadUpdateSettings()['catch'](_0x286e4b=>{console['error']('Failed\x20to\x20load\x20update\x20settings',_0x286e4b),state['health']['updateEnabled']=![],state['health']['hasRestartCommand']=![],syncHealthActionButtons();})]);renderHealthMetrics(_0x36f228),!state['health']['currentVersion']&&await loadVersionStatus({'checkUpdates':![]}),_0x42ccd5['hidden']=!![],_0x27eaeb['hidden']=!![],_0x1573c7['hidden']=![],state['health']['loaded']=!![];}catch(_0x436ac6){console['error']('Failed\x20to\x20load\x20server\x20metrics',_0x436ac6),_0x42ccd5['hidden']=!![],_0x27eaeb['hidden']=![],_0x1573c7['hidden']=!![],document['getElementById']('health-error-message')['textContent']=_0x436ac6['message']||'Unknown\x20error';}finally{state['health']['request']=null;}})()),state['health']['request'];}function syncHealthActionButtons(){const _0x17430f=document['getElementById']('health-update-btn'),_0x515059=document['getElementById']('health-restart-btn');if(!_0x17430f||!_0x515059)return;const _0x190b87=state['health']['updateEnabled'],_0x23e523=_0x190b87&&state['health']['versionChecked']&&state['health']['updateAvailable'];_0x17430f['hidden']=!_0x23e523,_0x17430f['disabled']=state['health']['updateInProgress']||state['health']['restartInProgress']||!state['health']['latestVersion'],_0x17430f['textContent']=state['health']['updateInProgress']?'Updating...':'Update\x20Server',_0x515059['hidden']=!_0x190b87,_0x515059['disabled']=state['health']['updateInProgress']||state['health']['restartInProgress'];}function setUpdateOutput({status:_0x3a4fb7,output:_0x3f8ff1}){const _0x295fd7=document['getElementById']('health-update-output-wrap'),_0x4b74ed=document['getElementById']('health-update-status'),_0x36e9c3=document['getElementById']('health-update-output');if(!_0x295fd7||!_0x4b74ed||!_0x36e9c3)return;const _0x1e7918=_0x3a4fb7||'';_0x295fd7['hidden']=![],_0x4b74ed['className']='admin-update-status',_0x1e7918&&_0x4b74ed['classList']['add'](_0x1e7918),_0x4b74ed['textContent']=_0x1e7918==='success'?'Success':_0x1e7918==='error'?'Failed':'In\x20Progress',_0x36e9c3['textContent']=_0x3f8ff1||'No\x20output\x20returned.';}function buildCommandOutput(_0x1b137e,_0x3afde4){const _0x888acf=[];typeof _0x1b137e==='string'&&_0x1b137e['trim']()&&_0x888acf['push'](_0x1b137e['trim']());if(typeof _0x3afde4==='string'&&_0x3afde4['trim']()){const _0x4acc30=_0x3afde4['trim'](),_0x4d136a=_0x888acf['some'](_0x280101=>_0x280101['includes'](_0x4acc30));!_0x4d136a&&_0x888acf['push']('Error:\x0a'+_0x4acc30);}return _0x888acf['join']('\x0a\x0a');}function showRestartOverlay({title:_0x3075a6,message:_0x2ceb13,showRetry:showRetry=![]}){const _0xf3b6a5=document['getElementById']('health-restart-overlay'),_0x436d54=document['getElementById']('restart-overlay-title'),_0x47f714=document['getElementById']('restart-overlay-message'),_0x2a3250=document['getElementById']('restart-overlay-retry');if(!_0xf3b6a5||!_0x436d54||!_0x47f714||!_0x2a3250)return;_0x436d54['textContent']=_0x3075a6,_0x47f714['textContent']=_0x2ceb13,_0x2a3250['hidden']=!showRetry,_0xf3b6a5['hidden']=![];}function hideRestartOverlay(){const _0x11f8eb=document['getElementById']('health-restart-overlay');_0x11f8eb&&(_0x11f8eb['hidden']=!![]);}function sleep(_0x3b3acd){return new Promise(_0x266762=>{window['setTimeout'](_0x266762,_0x3b3acd);});}async function loadUpdateSettings(){const _0x56d10e=await API['getUpdateSettings']();return state['health']['updateEnabled']=!!_0x56d10e['enabled'],state['health']['hasRestartCommand']=!!_0x56d10e['hasRestartCommand'],syncHealthActionButtons(),_0x56d10e;}async function applyUpdate(){if(state['health']['updateInProgress']||!state['health']['latestVersion'])return;state['health']['updateInProgress']=!![],syncHealthActionButtons(),setUpdateOutput({'status':'in-progress','output':'Applying\x20server\x20update\x20to\x20'+state['health']['latestVersion']+'...'});try{const _0x54d28b=await API['applyServerUpdate'](state['health']['latestVersion']),_0x1d3c3d=buildCommandOutput(_0x54d28b['output'],_0x54d28b['error']);_0x54d28b['success']?(setUpdateOutput({'status':'success','output':_0x1d3c3d||'Server\x20update\x20to\x20'+state['health']['latestVersion']+'\x20completed.'}),Utils['showSuccess']('Server\x20update\x20to\x20'+state['health']['latestVersion']+'\x20completed')):(setUpdateOutput({'status':'error','output':_0x1d3c3d||'Server\x20update\x20failed\x20without\x20additional\x20output.'}),Utils['showError'](_0x54d28b['error']||'Server\x20update\x20failed'));}catch(_0x57fa33){setUpdateOutput({'status':'error','output':buildCommandOutput(_0x57fa33['output'],_0x57fa33['commandError']||_0x57fa33['message'])||'Failed\x20to\x20apply\x20server\x20update.'}),Utils['showError'](_0x57fa33['message']||'Failed\x20to\x20apply\x20server\x20update');}finally{state['health']['updateInProgress']=![],syncHealthActionButtons();}}function showRestartConfirmation(){if(!state['health']['updateEnabled']||state['health']['restartInProgress'])return;const _0x4dd025=document['getElementById']('restart-modal');_0x4dd025&&(_0x4dd025['hidden']=![]);}function hideRestartModal(){const _0x1a5156=document['getElementById']('restart-modal');_0x1a5156&&(_0x1a5156['hidden']=!![]);}async function confirmRestart(){if(state['health']['restartInProgress'])return;hideRestartModal(),state['health']['restartInProgress']=!![],syncHealthActionButtons();try{await API['restartServer'](),await waitForServerRestart();}catch(_0x155773){state['health']['restartInProgress']=![],syncHealthActionButtons(),hideRestartOverlay(),Utils['showError'](_0x155773['message']||'Failed\x20to\x20restart\x20server');}}async function waitForServerRestart({manualRetry:manualRetry=![]}={}){state['health']['restartInProgress']=!![],syncHealthActionButtons(),stopHealthAutoRefresh(),showRestartOverlay({'title':manualRetry?'Retrying\x20server\x20connection...':'Waiting\x20for\x20server\x20to\x20restart...','message':'The\x20page\x20will\x20automatically\x20refresh\x20when\x20the\x20server\x20is\x20back\x20online.','showRetry':![]});const _0x1ea7ec=Date['now']();let _0x1756d9=![];for(let _0x3241e7=0x0;_0x3241e7<RESTART_POLL_MAX_ATTEMPTS;_0x3241e7+=0x1){await sleep(RESTART_POLL_INTERVAL_MS);try{await API['get']('/health?ts='+Date['now']());const _0xb95d93=Date['now']()-_0x1ea7ec;if(_0x1756d9||_0xb95d93>=RESTART_MIN_SUCCESS_DELAY_MS){state['health']['restartInProgress']=![],state['health']['currentVersion']=null,hideRestartOverlay(),syncHealthActionButtons(),Utils['showSuccess']('Server\x20restart\x20complete'),await loadHealth({'showLoading':!![]}),syncHealthAutoRefresh();return;}}catch(_0x807a1c){_0x1756d9=!![];}}state['health']['restartInProgress']=![],syncHealthActionButtons(),showRestartOverlay({'title':'Unable\x20to\x20reconnect\x20to\x20the\x20server','message':'The\x20server\x20may\x20still\x20be\x20restarting.\x20Retry\x20the\x20connection\x20when\x20you\x20are\x20ready.','showRetry':!![]}),Utils['showError']('Server\x20restart\x20is\x20taking\x20longer\x20than\x20expected');}async function loadVersionStatus({checkUpdates:checkUpdates=![]}={}){const _0xf8746f=document['getElementById']('health-check-updates-btn');_0xf8746f&&(_0xf8746f['disabled']=!![],_0xf8746f['textContent']=checkUpdates?'Checking...':'Loading...');try{const _0x376f36=await API['get']('/health');state['health']['currentVersion']=_0x376f36['version']||'Unavailable',document['getElementById']('health-version-current')['textContent']=state['health']['currentVersion'];if(!checkUpdates&&!state['health']['versionChecked']){state['health']['updateAvailable']=![],document['getElementById']('health-version-status')['textContent']='Update\x20status\x20has\x20not\x20been\x20checked\x20yet.',document['getElementById']('health-version-latest')['textContent']=state['health']['latestVersion']||'Not\x20checked',syncHealthActionButtons();return;}if(checkUpdates){const _0x296e97=await API['get']('/health/check-updates');state['health']['versionChecked']=!![],state['health']['latestVersion']=_0x296e97['latestVersion']||'Unavailable',state['health']['installCommand']=_0x296e97['installCommand']||null,state['health']['updateAvailable']=!!_0x296e97['updateAvailable'],document['getElementById']('health-version-current')['textContent']=_0x296e97['currentVersion']||state['health']['currentVersion'],document['getElementById']('health-version-latest')['textContent']=state['health']['latestVersion'],document['getElementById']('health-version-status')['textContent']=buildVersionStatusText(_0x296e97),document['getElementById']('health-install-command')['textContent']=state['health']['installCommand']||'',document['getElementById']('health-install-command-wrap')['hidden']=!state['health']['installCommand'],document['getElementById']('health-copy-install-btn')['hidden']=!state['health']['installCommand'];}syncHealthActionButtons();}catch(_0x187a07){console['error']('Failed\x20to\x20load\x20version\x20status',_0x187a07),state['health']['updateAvailable']=![],document['getElementById']('health-version-status')['textContent']='Unable\x20to\x20load\x20version\x20status:\x20'+_0x187a07['message'],document['getElementById']('health-install-command-wrap')['hidden']=!![],document['getElementById']('health-copy-install-btn')['hidden']=!![],syncHealthActionButtons();}finally{_0xf8746f&&(_0xf8746f['disabled']=![],_0xf8746f['textContent']='Check\x20for\x20Updates');}}function buildVersionStatusText(_0x45e0c8){const _0x4bab84=_0x45e0c8?.['versionStatus'];if(_0x4bab84==='update-available')return'Update\x20available:\x20'+_0x45e0c8['currentVersion']+'\x20→\x20'+_0x45e0c8['latestVersion'];if(_0x4bab84==='up-to-date')return'Running\x20the\x20latest\x20published\x20version\x20('+_0x45e0c8['latestVersion']+').';if(_0x4bab84==='ahead-of-latest')return'This\x20server\x20is\x20ahead\x20of\x20npm\x20latest\x20('+_0x45e0c8['latestVersion']+').';return'Unable\x20to\x20compare\x20current\x20and\x20latest\x20versions.';}async function copyInstallCommand(){if(!state['health']['installCommand'])return;const _0x28c6f0=await Utils['copyToClipboard'](state['health']['installCommand']);_0x28c6f0?Utils['showSuccess']('Install\x20command\x20copied'):Utils['showError']('Failed\x20to\x20copy\x20install\x20command');}function renderHealthMetrics(_0x1fc581){document['getElementById']('cpu-usage')['textContent']=_0x1fc581['cpu']?.['display']||'-',document['getElementById']('memory-usage')['textContent']=_0x1fc581['memory']?.['display']||'-',document['getElementById']('disk-usage')['textContent']=_0x1fc581['disk']?.['display']||'-',document['getElementById']('docker-containers')['textContent']=_0x1fc581['docker']?.['display']||'-',document['getElementById']('server-uptime')['textContent']=_0x1fc581['uptime']?.['display']||'-',document['getElementById']('active-sessions')['textContent']=_0x1fc581['sessions']?.['display']||'-',setMetricProgress('cpu-progress',_0x1fc581['cpu']?.['percent'],statusFromPercent(_0x1fc581['cpu']?.['percent'])),setMetricProgress('memory-progress',_0x1fc581['memory']?.['percent'],statusFromPercent(_0x1fc581['memory']?.['percent'])),setMetricProgress('disk-progress',_0x1fc581['disk']?.['percent'],statusFromPercent(_0x1fc581['disk']?.['percent']));const _0x1257bb=_0x1fc581['docker']?.['total']>0x0?_0x1fc581['docker']['running']/_0x1fc581['docker']['total']*0x64:0x0;setMetricProgress('docker-progress',_0x1257bb,'ok');const _0x298a19=_0x1fc581['dockerStorage']||{},_0x3dff1d=document['getElementById']('docker-storage-card');document['getElementById']('docker-storage-total')['textContent']=_0x298a19['display']||'-',document['getElementById']('docker-storage-available')['textContent']=_0x298a19['availableDisplay']||'',document['getElementById']('docker-storage-available')['hidden']=!_0x298a19['availableDisplay'],document['getElementById']('docker-storage-reclaimable')['textContent']=_0x298a19['reclaimableDisplay']||'',document['getElementById']('docker-storage-images')['textContent']=_0x298a19['images']?.['display']||'-',document['getElementById']('docker-storage-containers')['textContent']=_0x298a19['containers']?.['display']||'-',document['getElementById']('docker-storage-volumes')['textContent']=_0x298a19['volumes']?.['display']||'-',document['getElementById']('docker-storage-buildcache')['textContent']=_0x298a19['buildCache']?.['display']||'-',setMetricProgress('docker-storage-progress',_0x298a19['percent'],_0x298a19['status']||'ok'),_0x3dff1d['classList']['remove']('status-warning','status-critical'),_0x298a19['status']==='warning'&&_0x3dff1d['classList']['add']('status-warning'),_0x298a19['status']==='critical'&&_0x3dff1d['classList']['add']('status-critical');}function clampPercent(_0x301a4b){if(!Number['isFinite'](_0x301a4b))return 0x0;return Math['max'](0x0,Math['min'](0x64,Math['round'](_0x301a4b)));}function statusFromPercent(_0x4aaf28){if(!Number['isFinite'](_0x4aaf28))return'ok';if(_0x4aaf28>=0x5a)return'critical';if(_0x4aaf28>=0x4b)return'warning';return'ok';}function setMetricProgress(_0x5853ee,_0x5dcd92,_0x53b488='ok'){const _0x38f6d5=document['getElementById'](_0x5853ee);if(!_0x38f6d5)return;const _0x46cb4f=clampPercent(_0x5dcd92);_0x38f6d5['style']['width']=_0x46cb4f+'%',_0x38f6d5['classList']['remove']('status-ok','status-warning','status-critical'),_0x38f6d5['classList']['add'](_0x53b488==='critical'?'status-critical':_0x53b488==='warning'?'status-warning':'status-ok'),_0x38f6d5['parentElement']?.['setAttribute']('aria-valuenow',String(_0x46cb4f));}async function runCleanupAction(_0x3600e3,_0x4e32a2){const _0x5a661e=document['getElementById']('server-health-action-status'),_0x1eccae=[document['getElementById']('health-refresh-btn'),document['getElementById']('server-stop-containers'),document['getElementById']('server-remove-stopped'),document['getElementById']('server-prune-docker')]['filter'](Boolean);_0x1eccae['forEach'](_0x2314f2=>{_0x2314f2['disabled']=!![];}),_0x5a661e['hidden']=![],_0x5a661e['classList']['remove']('success','error'),_0x5a661e['textContent']=_0x3600e3+'...';try{const _0x4e7259=await _0x4e32a2();_0x5a661e['classList']['add']('success'),_0x5a661e['textContent']=_0x4e7259?.['message']||_0x3600e3+'\x20complete',await loadHealth({'showLoading':!![]});}catch(_0x35f7b1){console['error'](_0x3600e3+'\x20failed',_0x35f7b1),_0x5a661e['classList']['add']('error'),_0x5a661e['textContent']=_0x35f7b1['message']||_0x3600e3+'\x20failed';}finally{_0x1eccae['forEach'](_0x3b423d=>{_0x3b423d['disabled']=![];});}}function toggleCleanupSection(){const _0x3b23de=document['getElementById']('cleanup-section'),_0x31339f=document['getElementById']('cleanup-content'),_0x464bab=document['getElementById']('cleanup-toggle');if(!_0x3b23de||!_0x31339f||!_0x464bab)return;const _0x23c813=_0x3b23de['classList']['toggle']('expanded');_0x31339f['hidden']=!_0x23c813,_0x464bab['setAttribute']('aria-expanded',String(_0x23c813));}async function loadLogs({showLoading:showLoading=![]}={}){if(state['logs']['request'])return state['logs']['request'];return state['logs']['request']=((async()=>{const _0x534ce8=document['getElementById']('logs-loading'),_0x36469f=document['getElementById']('logs-error');(showLoading||!state['logs']['loaded'])&&(_0x534ce8['hidden']=![],_0x36469f['hidden']=!![],document['getElementById']('logs-empty')['hidden']=!![],document['getElementById']('logs-container')['hidden']=!![]);try{const _0x5be166=new URLSearchParams({'limit':'500'});state['logs']['level']!=='ALL'&&_0x5be166['set']('level',state['logs']['level']);state['logs']['search']&&_0x5be166['set']('search',state['logs']['search']);const _0x38243f=await API['get']('/logs?'+_0x5be166['toString']());state['logs']['entries']=Array['isArray'](_0x38243f['entries'])?_0x38243f['entries']['slice'](-state['logs']['maxEntries']):[],state['logs']['total']=Number(_0x38243f['total'])||0x0,state['logs']['minLevel']=_0x38243f['minLevel']||'INFO',state['logs']['loaded']=!![],_0x534ce8['hidden']=!![],_0x36469f['hidden']=!![],renderLogs();}catch(_0x412866){console['error']('Failed\x20to\x20load\x20logs',_0x412866),_0x534ce8['hidden']=!![],_0x36469f['hidden']=![],document['getElementById']('logs-error-message')['textContent']=_0x412866['message']||'Unknown\x20error',document['getElementById']('logs-empty')['hidden']=!![],document['getElementById']('logs-container')['hidden']=!![];}finally{state['logs']['request']=null;}})()),state['logs']['request'];}function renderLogs({stickToLiveEdge:stickToLiveEdge=![]}={}){const _0x9f95a9=document['getElementById']('logs-container'),_0x1c12e1=document['getElementById']('logs-empty'),_0x49ad4b=stickToLiveEdge||state['logs']['autoScroll']&&state['logs']['live'],_0xf27a1a=_0x9f95a9?.['scrollTop']||0x0,_0x15eac0=_0x9f95a9?.['scrollHeight']||0x0,_0x94a559=getOrderedLogEntries();updateLogsMeta(_0x94a559['length']);if(_0x94a559['length']===0x0){_0x9f95a9['hidden']=!![],_0x1c12e1['hidden']=![];return;}_0x1c12e1['hidden']=!![],_0x9f95a9['hidden']=![],_0x9f95a9['innerHTML']=_0x94a559['map'](renderLogEntry)['join']('');if(_0x49ad4b){scrollLogsToLiveEdge(_0x9f95a9);return;}if(state['logs']['order']===LOG_ORDER_DESC){const _0x2e5a2c=_0x9f95a9['scrollHeight'],_0x4fec2d=_0x2e5a2c-_0x15eac0;_0x9f95a9['scrollTop']=_0xf27a1a>0x0?_0xf27a1a+Math['max'](_0x4fec2d,0x0):_0xf27a1a;return;}_0x9f95a9['scrollTop']=_0xf27a1a;}function getVisibleLogEntries(){const _0x3fd65c=state['logs']['search']['trim']()['toLowerCase']();return state['logs']['entries']['filter'](_0x2edf87=>{if(state['logs']['level']!=='ALL'&&_0x2edf87['level']!==state['logs']['level'])return![];if(!_0x3fd65c)return!![];const _0x3def41=String(_0x2edf87['message']||'')['toLowerCase'](),_0x32a0e9=_0x2edf87['context']?JSON['stringify'](_0x2edf87['context'])['toLowerCase']():'';return _0x3def41['includes'](_0x3fd65c)||_0x32a0e9['includes'](_0x3fd65c);});}function getOrderedLogEntries(){const _0x1ee635=getVisibleLogEntries();return state['logs']['order']===LOG_ORDER_DESC?_0x1ee635['slice']()['reverse']():_0x1ee635;}function renderLogEntry(_0x4c84c3){const _0x101972=Utils['escapeHtml'](formatDateTime(_0x4c84c3['timestamp'])),_0x407a04=Utils['escapeHtml'](String(_0x4c84c3['level']||'INFO')),_0x16a864=Utils['escapeHtml'](String(_0x4c84c3['message']||'')),_0x1b2201=_0x4c84c3['context']?'\x0a\x20\x20\x20\x20\x20\x20<details\x20class=\x22admin-log-context\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<summary>Context</summary>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre>'+Utils['escapeHtml'](JSON['stringify'](_0x4c84c3['context'],null,0x2))+'</pre>\x0a\x20\x20\x20\x20\x20\x20</details>\x0a\x20\x20\x20\x20':'';return'\x0a\x20\x20\x20\x20<div\x20class=\x22admin-log-entry\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-log-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22admin-log-timestamp\x22>'+_0x101972+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22admin-log-level\x20level-'+_0x407a04['toLowerCase']()+'\x22>'+_0x407a04+'</span>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-log-message\x22>'+_0x16a864+'</div>\x0a\x20\x20\x20\x20\x20\x20'+_0x1b2201+'\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}function updateLogsMeta(_0x510cd5){const _0x31c68c=document['getElementById']('logs-meta');if(!_0x31c68c)return;const _0x447910=state['logs']['entries']['length'],_0x3b9a44=state['logs']['level']!=='ALL'||!!state['logs']['search']['trim'](),_0x2ff0d8=state['logs']['order']===LOG_ORDER_DESC?'newest\x20first':'oldest\x20first';_0x31c68c['textContent']=_0x3b9a44?'Showing\x20'+_0x510cd5+'\x20of\x20'+_0x447910+'\x20loaded\x20entries\x20for\x20the\x20current\x20filters\x20in\x20'+_0x2ff0d8+'\x20order.\x20Minimum\x20runtime\x20level:\x20'+state['logs']['minLevel']+'.':'Showing\x20'+_0x510cd5+'\x20recent\x20buffered\x20entries\x20in\x20'+_0x2ff0d8+'\x20order.\x20Minimum\x20runtime\x20level:\x20'+state['logs']['minLevel']+'.';}function toggleLogsLiveMode(){state['logs']['live']=!state['logs']['live'],state['logs']['live']?(state['logs']['autoScroll']=!![],renderLogs({'stickToLiveEdge':!![]}),startLogStream()):stopLogStream(),updateLogsLiveUi();}function updateLogsLiveUi(){const _0x4bbc2c=document['getElementById']('logs-live-toggle'),_0x383c23=document['getElementById']('logs-stream-status');if(!_0x4bbc2c||!_0x383c23)return;_0x383c23['classList']['remove']('live','error');if(!state['logs']['live']){_0x383c23['textContent']='Paused',_0x4bbc2c['textContent']='Start\x20Live';return;}if(state['logs']['streamState']==='live')_0x383c23['textContent']='Live',_0x383c23['classList']['add']('live');else state['logs']['streamState']==='error'?(_0x383c23['textContent']='Reconnecting',_0x383c23['classList']['add']('error')):_0x383c23['textContent']='Connecting';_0x4bbc2c['textContent']='Pause\x20Live';}function startLogStream(){if(state['currentSection']!=='logs'||state['logs']['stream'])return;state['logs']['streamState']='connecting',updateLogsLiveUi();const _0x490f94=new EventSource(API['getBaseUrl']()+'/logs/stream');state['logs']['stream']=_0x490f94,_0x490f94['addEventListener']('log',_0x5999ce=>{try{const _0x42d711=JSON['parse'](_0x5999ce['data']);state['logs']['entries']['push'](_0x42d711),state['logs']['entries']['length']>state['logs']['maxEntries']&&state['logs']['entries']['shift'](),renderLogs();}catch(_0x399f94){console['error']('Failed\x20to\x20parse\x20log\x20stream\x20event',_0x399f94);}}),_0x490f94['onopen']=()=>{state['logs']['streamState']='live',updateLogsLiveUi();},_0x490f94['onerror']=()=>{state['logs']['streamState']='error',updateLogsLiveUi();};}function stopLogStream(){state['logs']['stream']&&(state['logs']['stream']['close'](),state['logs']['stream']=null),state['logs']['streamState']='paused',updateLogsLiveUi();}function clearDisplayedLogs(){state['logs']['entries']=[],renderLogs();}function setLogOrder(_0x438e19,{focusLiveEdge:focusLiveEdge=![]}={}){const _0x3a835f=_0x438e19===LOG_ORDER_DESC?LOG_ORDER_DESC:LOG_ORDER_ASC;if(state['logs']['order']===_0x3a835f){focusLiveEdge&&(state['logs']['autoScroll']=!![],renderLogs({'stickToLiveEdge':!![]}));return;}state['logs']['order']=_0x3a835f,setSessionValue('admin-logs-order',_0x3a835f),syncLogOrderUi(),focusLiveEdge&&(state['logs']['autoScroll']=!![]),renderLogs({'stickToLiveEdge':focusLiveEdge});}function syncLogOrderUi(){updateActiveFilterButtons('#logs-order-toggle',state['logs']['order']);}function handleLogsSearchInput(_0x1713aa){const _0x53711b=_0x1713aa['target']['value']||'';state['logs']['searchTimer']&&clearTimeout(state['logs']['searchTimer']),state['logs']['searchTimer']=window['setTimeout'](()=>{state['logs']['search']=_0x53711b,loadLogs({'showLoading':![]});},LOG_SEARCH_DEBOUNCE_MS);}function updateLogAutoScrollState(){const _0x22125c=document['getElementById']('logs-container');if(!_0x22125c)return;const _0x484d72=state['logs']['order']===LOG_ORDER_DESC?_0x22125c['scrollTop']:_0x22125c['scrollHeight']-_0x22125c['scrollTop']-_0x22125c['clientHeight'];state['logs']['autoScroll']=_0x484d72<0x20;}async function loadUsage({showLoading:showLoading=![]}={}){if(state['usage']['request'])return state['usage']['request'];return state['usage']['request']=((async()=>{const _0x1a8891=document['getElementById']('usage-loading'),_0x2c5558=document['getElementById']('usage-error');(showLoading||!state['usage']['loaded'])&&(_0x1a8891['hidden']=![],_0x2c5558['hidden']=!![],document['getElementById']('usage-empty')['hidden']=!![],document['getElementById']('usage-content')['hidden']=!![]);try{const _0x33d2c2=new URLSearchParams();_0x33d2c2['set']('days',state['usage']['days']);state['usage']['environment']&&_0x33d2c2['set']('environment',state['usage']['environment']);const _0x248a32=await API['get']('/stats?'+_0x33d2c2['toString']());state['usage']['loaded']=!![],_0x1a8891['hidden']=!![],_0x2c5558['hidden']=!![],renderUsage(_0x248a32);}catch(_0x2d4276){console['error']('Failed\x20to\x20load\x20usage\x20statistics',_0x2d4276),_0x1a8891['hidden']=!![],_0x2c5558['hidden']=![],document['getElementById']('usage-error-message')['textContent']=_0x2d4276['message']||'Unknown\x20error',document['getElementById']('usage-empty')['hidden']=!![],document['getElementById']('usage-content')['hidden']=!![];}finally{state['usage']['request']=null;}})()),state['usage']['request'];}function renderUsage(_0x1514ed){const _0x43e5dc=Number(_0x1514ed?.['tasks']?.['total'])||0x0,_0x55f93b=document['getElementById']('usage-empty'),_0x16b97d=document['getElementById']('usage-content');if(_0x43e5dc===0x0){_0x55f93b['hidden']=![],_0x16b97d['hidden']=!![];return;}_0x55f93b['hidden']=!![],_0x16b97d['hidden']=![];const _0x1303a8=Number(_0x1514ed?.['approvalRate']?.['successRate'])||0x0,_0x1c54f8=Math['round'](_0x1303a8*0x64),_0x57e2da=_0x1514ed?.['code']?.['approved']||{},_0x25641e=Number(_0x57e2da?.['tasks'])||0x0,_0x2d8f5a=(Number(_0x57e2da?.['linesAdded'])||0x0)-(Number(_0x57e2da?.['linesDeleted'])||0x0),_0x27e558=(Number(_0x1514ed?.['code']?.['linesAdded'])||0x0)-(Number(_0x1514ed?.['code']?.['linesDeleted'])||0x0),_0x589dc8=Number(_0x1514ed?.['timing']?.['averageDurationMinutes'])||0x0;setSummaryValue('usage-total-tasks',formatNumber(_0x43e5dc)),setSummaryValue('usage-success-rate',_0x1c54f8+'%',statusClassFromPercent(_0x1c54f8)),setSummaryValue('usage-net-lines',formatSignedNumber(_0x27e558)),setSummaryValue('usage-average-duration',formatDurationMinutes(_0x589dc8));const _0x5f0676=_0x43e5dc>0x0?Math['round'](_0x25641e/_0x43e5dc*0x64):0x0;document['getElementById']('usage-approved-summary')['textContent']=formatNumber(_0x25641e)+'\x20approved\x20('+_0x5f0676+'%)\x20·\x20'+formatNumber(_0x1514ed['timing']['totalDurationHours']||0x0)+'h\x20total',document['getElementById']('usage-success-detail')['textContent']=(_0x1514ed['approvalRate']['completed']||0x0)+'\x20completed\x20/\x20'+(_0x1514ed['approvalRate']['failed']||0x0)+'\x20failed\x20/\x20'+(_0x1514ed['approvalRate']['interrupted']||0x0)+'\x20interrupted',document['getElementById']('usage-net-lines-detail')['textContent']='+'+formatNumber(_0x1514ed['code']['linesAdded']||0x0)+'\x20/\x20-'+formatNumber(_0x1514ed['code']['linesDeleted']||0x0)+'\x20·\x20Approved\x20'+formatSignedNumber(_0x2d8f5a)+'\x20net',document['getElementById']('usage-average-duration-detail')['textContent']=formatDurationMinutes(_0x1514ed['timing']['medianDurationMinutes']||0x0)+'\x20median\x20·\x20'+formatNumber(_0x1514ed['timing']['totalDurationHours']||0x0)+'h\x20total',document['getElementById']('usage-period-summary')['textContent']=buildPeriodSummary(_0x1514ed['period']),renderBarList('usage-status-bars',_0x1514ed['tasks']['byStatus']||{}),renderObjectTable('usage-type-body',_0x1514ed['tasks']['byType']||{},_0x43e5dc,{'includePercent':!![],'labelFormatter':prettifyKey}),renderObjectTable('usage-environment-body',_0x1514ed['tasks']['byEnvironment']||{},_0x43e5dc),renderUserTable('usage-user-body',_0x1514ed['tasks']['byUser']||[]),renderObjectTable('usage-source-body',_0x1514ed['tasks']['bySource']||{},_0x43e5dc,{'labelFormatter':prettifyKey}),document['getElementById']('usage-lines-added')['textContent']=formatNumber(_0x1514ed['code']['linesAdded']||0x0),document['getElementById']('usage-lines-deleted')['textContent']=formatNumber(_0x1514ed['code']['linesDeleted']||0x0),document['getElementById']('usage-files-changed')['textContent']=formatNumber(_0x1514ed['code']['filesChanged']||0x0),document['getElementById']('usage-repositories-affected')['textContent']=formatNumber(_0x1514ed['code']['repositoriesAffected']||0x0),document['getElementById']('usage-approved-lines-added')['textContent']=formatNumber(_0x57e2da['linesAdded']||0x0),document['getElementById']('usage-approved-lines-deleted')['textContent']=formatNumber(_0x57e2da['linesDeleted']||0x0),document['getElementById']('usage-approved-files-changed')['textContent']=formatNumber(_0x57e2da['filesChanged']||0x0),document['getElementById']('usage-approved-repositories-affected')['textContent']=formatNumber(_0x57e2da['repositoriesAffected']||0x0);const _0x41461a=(_0x13a13e,_0x43325f)=>_0x13a13e>0x0?Math['round'](_0x43325f/_0x13a13e*0x64):0x0;document['getElementById']('usage-added-pct')['style']['width']=_0x41461a(_0x1514ed['code']['linesAdded']||0x0,_0x57e2da['linesAdded']||0x0)+'%',document['getElementById']('usage-deleted-pct')['style']['width']=_0x41461a(_0x1514ed['code']['linesDeleted']||0x0,_0x57e2da['linesDeleted']||0x0)+'%',document['getElementById']('usage-files-pct')['style']['width']=_0x41461a(_0x1514ed['code']['filesChanged']||0x0,_0x57e2da['filesChanged']||0x0)+'%',document['getElementById']('usage-repos-pct')['style']['width']=_0x41461a(_0x1514ed['code']['repositoriesAffected']||0x0,_0x57e2da['repositoriesAffected']||0x0)+'%';}function buildPeriodSummary(_0x35432e){const _0x43f49b=_0x35432e?.['from']?formatDateTime(_0x35432e['from']):'the\x20earliest\x20loaded\x20task',_0x1b7f52=_0x35432e?.['to']?formatDateTime(_0x35432e['to']):'now',_0x4e1873=_0x35432e?.['days']?_0x35432e['days']+'\x20day\x20window':'All\x20available\x20task\x20history';return _0x4e1873+'\x20·\x20'+_0x43f49b+'\x20to\x20'+_0x1b7f52;}function renderBarList(_0x492d58,_0x30d41a){const _0x42c706=document['getElementById'](_0x492d58);if(!_0x42c706)return;const _0x1c39af=Object['entries'](_0x30d41a)['filter'](([,_0x575892])=>Number(_0x575892)>0x0)['sort']((_0x1de064,_0x24cded)=>_0x24cded[0x1]-_0x1de064[0x1]),_0x41e14c=_0x1c39af['reduce']((_0x46973a,[,_0x52207e])=>_0x46973a+Number(_0x52207e||0x0),0x0);if(_0x1c39af['length']===0x0){_0x42c706['innerHTML']='<div\x20class=\x22text-muted\x22>No\x20data\x20available.</div>';return;}_0x42c706['innerHTML']=_0x1c39af['map'](([_0x37bbc0,_0x4f6ed2])=>{const _0x41f60f=_0x41e14c>0x0?Math['max'](0x2,Math['round'](_0x4f6ed2/_0x41e14c*0x64)):0x0,_0x37db99=Utils['escapeHtml'](prettifyKey(_0x37bbc0)),_0x453966=Utils['escapeHtml'](formatNumber(_0x4f6ed2));return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-bar-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-bar-label\x22>'+_0x37db99+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-bar-track\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-bar-fill\x20status-'+Utils['escapeHtml'](String(_0x37bbc0)['toLowerCase']())+'\x22\x20style=\x22width:\x20'+_0x41f60f+'%\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-bar-value\x22>'+_0x453966+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';})['join']('');}function renderObjectTable(_0x4f2016,_0x531913,_0x4743c0,{includePercent:includePercent=![],labelFormatter:labelFormatter=null}={}){const _0x383826=document['getElementById'](_0x4f2016);if(!_0x383826)return;const _0x583352=Object['entries'](_0x531913)['filter'](([,_0x27f267])=>Number(_0x27f267)>0x0)['sort']((_0x369f09,_0x2847a5)=>_0x2847a5[0x1]-_0x369f09[0x1]||String(_0x369f09[0x0])['localeCompare'](String(_0x2847a5[0x0])));if(_0x583352['length']===0x0){_0x383826['innerHTML']='<tr><td\x20colspan=\x22'+(includePercent?0x3:0x2)+'\x22\x20class=\x22text-muted\x22>No\x20data\x20available.</td></tr>';return;}_0x383826['innerHTML']=_0x583352['map'](([_0x3f3330,_0x2b69a5])=>{const _0x589f3a=labelFormatter?labelFormatter(_0x3f3330):_0x3f3330,_0x1133ef=includePercent?'<td>'+formatPercent(_0x4743c0>0x0?_0x2b69a5/_0x4743c0*0x64:0x0)+'</td>':'';return'\x0a\x20\x20\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](String(_0x589f3a))+'</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](formatNumber(_0x2b69a5))+'</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x1133ef+'\x0a\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20';})['join']('');}function renderUserTable(_0x3159ca,_0x2fbcd4){const _0x1847ce=document['getElementById'](_0x3159ca);if(!_0x1847ce)return;if(!Array['isArray'](_0x2fbcd4)||_0x2fbcd4['length']===0x0){_0x1847ce['innerHTML']='<tr><td\x20colspan=\x222\x22\x20class=\x22text-muted\x22>No\x20data\x20available.</td></tr>';return;}_0x1847ce['innerHTML']=_0x2fbcd4['map'](_0xfbd531=>'\x0a\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](_0xfbd531['name']||_0xfbd531['username']||_0xfbd531['userId']||'Unknown')+'</td>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](formatNumber(_0xfbd531['count']||0x0))+'</td>\x0a\x20\x20\x20\x20</tr>\x0a\x20\x20')['join']('');}function updateActiveFilterButtons(_0x4cc3e7,_0x4ed0b7){document['querySelectorAll'](_0x4cc3e7+'\x20.admin-filter-btn')['forEach'](_0x25fb8=>{_0x25fb8['classList']['toggle']('active',_0x25fb8['dataset']['level']===_0x4ed0b7||_0x25fb8['dataset']['days']===_0x4ed0b7||_0x25fb8['dataset']['order']===_0x4ed0b7);});}function scrollLogsToLiveEdge(_0xa0d441){if(!_0xa0d441)return;if(state['logs']['order']===LOG_ORDER_DESC){_0xa0d441['scrollTop']=0x0;return;}_0xa0d441['scrollTop']=_0xa0d441['scrollHeight'];}function setSummaryValue(_0x56437d,_0x10a113,_0x3fce3c=''){const _0x308bfc=document['getElementById'](_0x56437d);if(!_0x308bfc)return;_0x308bfc['textContent']=_0x10a113,_0x308bfc['classList']['remove']('status-good','status-warn','status-bad'),_0x3fce3c&&_0x308bfc['classList']['add'](_0x3fce3c);}function statusClassFromPercent(_0xfa43f5){if(_0xfa43f5>=0x50)return'status-good';if(_0xfa43f5>0x3c)return'status-warn';return'status-bad';}function formatDateTime(_0x978331){const _0x44fa54=new Date(_0x978331);if(Number['isNaN'](_0x44fa54['getTime']()))return _0x978331||'Unknown';return _0x44fa54['toLocaleString']();}function formatDurationMinutes(_0x4abb60){const _0x18b3d0=Math['round'](Number(_0x4abb60)||0x0);if(_0x18b3d0<0x3c)return _0x18b3d0+'m';const _0x4007c6=Math['floor'](_0x18b3d0/0x3c),_0x4352d9=_0x18b3d0%0x3c;return _0x4352d9>0x0?_0x4007c6+'h\x20'+_0x4352d9+'m':_0x4007c6+'h';}function formatPercent(_0xe3991f){return Math['round'](Number(_0xe3991f)||0x0)+'%';}function formatNumber(_0x30b6e9){return NUMBER_FORMATTER['format'](Number(_0x30b6e9)||0x0);}function formatSignedNumber(_0x2bd0e7){const _0x171b77=Number(_0x2bd0e7)||0x0;if(_0x171b77>0x0)return'+'+formatNumber(_0x171b77);return formatNumber(_0x171b77);}function prettifyKey(_0x1c3651){return String(_0x1c3651)['replace'](/[_-]+/g,'\x20')['replace'](/\b\w/g,_0x28198e=>_0x28198e['toUpperCase']());}
1
+ import{API,Utils,initializeAdminMenu}from'./app.js';import{initTheme,mountThemeToggle}from'./theme.js';const HEALTH_REFRESH_INTERVAL_MS=0x7530,LOG_SEARCH_DEBOUNCE_MS=0xfa,LOG_ORDER_ASC='asc',LOG_ORDER_DESC='desc',RESTART_POLL_INTERVAL_MS=0x7d0,RESTART_POLL_MAX_ATTEMPTS=0x1e,RESTART_MIN_SUCCESS_DELAY_MS=0x1b58,NUMBER_FORMATTER=new Intl['NumberFormat'](),state={'currentSection':'health','environments':[],'health':{'loaded':![],'request':null,'autoRefreshTimer':null,'versionChecked':![],'currentVersion':null,'latestVersion':null,'installCommand':null,'updateEnabled':![],'hasRestartCommand':![],'updateInProgress':![],'restartInProgress':![],'updateAvailable':![]},'logs':{'loaded':![],'request':null,'entries':[],'total':0x0,'minLevel':'INFO','level':'ALL','order':LOG_ORDER_ASC,'search':'','maxEntries':0x3e8,'stream':null,'streamState':'paused','live':![],'autoScroll':!![],'searchTimer':null},'usage':{'loaded':![],'request':null,'days':'30','environment':''}};document['addEventListener']('DOMContentLoaded',initialize);async function initialize(){try{initTheme(),mountThemeToggle();const _0x2187a8=await checkAdminAccess();await initializeAdminMenu(_0x2187a8),setupEventListeners(),await loadEnvironmentOptions(),document['getElementById']('admin-loading')['hidden']=!![],document['getElementById']('admin-content')['hidden']=![];const _0x2a2e5e=getSessionValue('admin-health-auto-refresh');if(_0x2a2e5e!==null){const _0x49b633=document['getElementById']('health-auto-refresh');if(_0x49b633)_0x49b633['checked']=_0x2a2e5e!=='false';}const _0x1f409f=getSessionValue('admin-logs-order');(_0x1f409f===LOG_ORDER_ASC||_0x1f409f===LOG_ORDER_DESC)&&(state['logs']['order']=_0x1f409f);syncLogOrderUi();const _0x2ea00a=getSessionValue('admin-active-section'),_0x5301f9=['health','logs','usage']['includes'](_0x2ea00a)?_0x2ea00a:'health';await switchSection(_0x5301f9);}catch(_0x1b7534){console['error']('Failed\x20to\x20initialize\x20Server\x20Administration\x20page',_0x1b7534),document['getElementById']('admin-loading')['hidden']=!![],document['getElementById']('admin-error')['hidden']=![],document['getElementById']('admin-error-message')['textContent']=_0x1b7534['message']||'Unknown\x20error';}}async function checkAdminAccess(){try{const _0x5b958c=await API['getCurrentUser']();if(!window['Permissions']?.['hasServerPermission'](_0x5b958c,'*')){Utils['showToast']('Access\x20denied:\x20Admin\x20privileges\x20required','error'),setTimeout(()=>{window['location']['href']='index.html';},0x7d0);throw new Error('Access\x20denied');}return _0x5b958c;}catch(_0x23ede9){_0x23ede9['message']!=='Access\x20denied'&&(window['location']['href']='login.html');throw _0x23ede9;}}function setupEventListeners(){document['querySelectorAll']('.settings-nav-item')['forEach'](_0x4bac50=>{_0x4bac50['addEventListener']('click',()=>switchSection(_0x4bac50['dataset']['section']));}),document['getElementById']('retry-admin-btn')?.['addEventListener']('click',()=>{window['location']['reload']();}),document['getElementById']('health-refresh-btn')?.['addEventListener']('click',()=>loadHealth({'showLoading':!![]})),document['getElementById']('retry-health-btn')?.['addEventListener']('click',()=>loadHealth({'showLoading':!![]})),document['getElementById']('health-auto-refresh')?.['addEventListener']('change',syncHealthAutoRefresh),document['getElementById']('health-check-updates-btn')?.['addEventListener']('click',()=>loadVersionStatus({'checkUpdates':!![]})),document['getElementById']('health-copy-install-btn')?.['addEventListener']('click',copyInstallCommand),document['getElementById']('health-update-btn')?.['addEventListener']('click',applyUpdate),document['getElementById']('health-restart-btn')?.['addEventListener']('click',showRestartConfirmation),document['getElementById']('confirm-restart-btn')?.['addEventListener']('click',confirmRestart),document['getElementById']('cancel-restart-btn')?.['addEventListener']('click',hideRestartModal),document['getElementById']('close-restart-modal')?.['addEventListener']('click',hideRestartModal),document['querySelector']('#restart-modal\x20.modal-overlay')?.['addEventListener']('click',hideRestartModal),document['getElementById']('restart-overlay-retry')?.['addEventListener']('click',()=>waitForServerRestart({'manualRetry':!![]})),document['getElementById']('server-stop-containers')?.['addEventListener']('click',()=>runCleanupAction('Stopping\x20containers',()=>API['stopAllContainers']())),document['getElementById']('server-remove-stopped')?.['addEventListener']('click',()=>runCleanupAction('Removing\x20stopped\x20containers',()=>API['removeStoppedContainers']())),document['getElementById']('server-prune-docker')?.['addEventListener']('click',()=>runCleanupAction('Pruning\x20Docker\x20resources',()=>API['pruneDockerResources']())),document['getElementById']('cleanup-toggle')?.['addEventListener']('click',toggleCleanupSection),document['getElementById']('logs-refresh-btn')?.['addEventListener']('click',()=>loadLogs({'showLoading':!![]})),document['getElementById']('retry-logs-btn')?.['addEventListener']('click',()=>loadLogs({'showLoading':!![]})),document['getElementById']('logs-live-toggle')?.['addEventListener']('click',toggleLogsLiveMode),document['getElementById']('logs-clear-btn')?.['addEventListener']('click',clearDisplayedLogs),document['getElementById']('logs-search-input')?.['addEventListener']('input',handleLogsSearchInput),document['querySelectorAll']('#logs-level-filters\x20.admin-filter-btn')['forEach'](_0xfa726=>{_0xfa726['addEventListener']('click',()=>{state['logs']['level']=_0xfa726['dataset']['level']||'ALL',updateActiveFilterButtons('#logs-level-filters',state['logs']['level']),loadLogs({'showLoading':![]});});}),document['querySelectorAll']('#logs-order-toggle\x20.admin-filter-btn')['forEach'](_0x177f9d=>{_0x177f9d['addEventListener']('click',()=>{setLogOrder(_0x177f9d['dataset']['order'],{'focusLiveEdge':!![]});});}),document['getElementById']('logs-container')?.['addEventListener']('scroll',updateLogAutoScrollState),document['getElementById']('usage-refresh-btn')?.['addEventListener']('click',()=>loadUsage({'showLoading':!![]})),document['getElementById']('retry-usage-btn')?.['addEventListener']('click',()=>loadUsage({'showLoading':!![]})),document['getElementById']('usage-environment-filter')?.['addEventListener']('change',_0x25ffd1=>{state['usage']['environment']=_0x25ffd1['target']['value']||'',loadUsage({'showLoading':![]});}),document['querySelectorAll']('#usage-period-buttons\x20.admin-filter-btn')['forEach'](_0x419697=>{_0x419697['addEventListener']('click',()=>{state['usage']['days']=_0x419697['dataset']['days']||'30',updateActiveFilterButtons('#usage-period-buttons',state['usage']['days']),loadUsage({'showLoading':![]});});});}async function switchSection(_0x3b5155){if(!_0x3b5155)return;document['querySelectorAll']('.settings-nav-item')['forEach'](_0x5becf8=>{const _0x1dcda3=_0x5becf8['dataset']['section']===_0x3b5155;_0x5becf8['classList']['toggle']('active',_0x1dcda3),_0x5becf8['setAttribute']('aria-selected',String(_0x1dcda3));}),document['querySelectorAll']('.settings-panel')['forEach'](_0x4e9980=>{const _0x3d8cab=_0x4e9980['id']==='section-'+_0x3b5155;_0x4e9980['hidden']=!_0x3d8cab,_0x4e9980['classList']['toggle']('active',_0x3d8cab);}),state['currentSection']=_0x3b5155,setSessionValue('admin-active-section',_0x3b5155),_0x3b5155!=='health'&&stopHealthAutoRefresh(),_0x3b5155!=='logs'&&stopLogStream(),_0x3b5155==='health'&&(syncHealthAutoRefresh(),await loadHealth({'showLoading':!state['health']['loaded']})),_0x3b5155==='logs'&&(await loadLogs({'showLoading':!state['logs']['loaded']}),state['logs']['live']?startLogStream():updateLogsLiveUi()),_0x3b5155==='usage'&&await loadUsage({'showLoading':!state['usage']['loaded']});}function getSessionValue(_0x37e901){try{return sessionStorage['getItem'](_0x37e901);}catch{return null;}}function setSessionValue(_0x5adc38,_0x17a67c){try{sessionStorage['setItem'](_0x5adc38,_0x17a67c);}catch{}}async function loadEnvironmentOptions(){const _0x187329=await API['get']('/environments');state['environments']=(_0x187329['environments']||[])['map'](_0x349746=>_0x349746?.['name'])['filter'](Boolean)['sort']((_0x5420c6,_0x5f19fa)=>_0x5420c6['localeCompare'](_0x5f19fa));const _0xfd535f=document['getElementById']('usage-environment-filter');if(!_0xfd535f)return;_0xfd535f['innerHTML']='<option\x20value=\x22\x22>All\x20environments</option>'+state['environments']['map'](_0x2a5974=>'<option\x20value=\x22'+Utils['escapeHtml'](_0x2a5974)+'\x22>'+Utils['escapeHtml'](_0x2a5974)+'</option>')['join'](''),_0xfd535f['value']=state['usage']['environment'];}function syncHealthAutoRefresh(){const _0x228e59=document['getElementById']('health-auto-refresh');if(_0x228e59)setSessionValue('admin-health-auto-refresh',String(_0x228e59['checked']));const _0x1cdab8=state['currentSection']==='health'&&!!_0x228e59?.['checked'];stopHealthAutoRefresh();if(!_0x1cdab8)return;state['health']['autoRefreshTimer']=window['setInterval'](()=>{loadHealth({'showLoading':![]});},HEALTH_REFRESH_INTERVAL_MS);}function stopHealthAutoRefresh(){state['health']['autoRefreshTimer']&&(clearInterval(state['health']['autoRefreshTimer']),state['health']['autoRefreshTimer']=null);}async function loadHealth({showLoading:showLoading=![]}={}){if(state['health']['request'])return state['health']['request'];return state['health']['request']=((async()=>{const _0x5a8787=document['getElementById']('health-loading'),_0x899752=document['getElementById']('health-error'),_0x1bcd8c=document['getElementById']('health-content');(showLoading||!state['health']['loaded'])&&(_0x5a8787['hidden']=![],_0x899752['hidden']=!![],_0x1bcd8c['hidden']=!![]);try{const [_0xb42425]=await Promise['all']([API['get']('/health/metrics'),loadUpdateSettings()['catch'](_0x508ec1=>{console['error']('Failed\x20to\x20load\x20update\x20settings',_0x508ec1),state['health']['updateEnabled']=![],state['health']['hasRestartCommand']=![],syncHealthActionButtons();})]);renderHealthMetrics(_0xb42425),!state['health']['currentVersion']&&await loadVersionStatus({'checkUpdates':![]}),_0x5a8787['hidden']=!![],_0x899752['hidden']=!![],_0x1bcd8c['hidden']=![],state['health']['loaded']=!![];}catch(_0x529db8){console['error']('Failed\x20to\x20load\x20server\x20metrics',_0x529db8),_0x5a8787['hidden']=!![],_0x899752['hidden']=![],_0x1bcd8c['hidden']=!![],document['getElementById']('health-error-message')['textContent']=_0x529db8['message']||'Unknown\x20error';}finally{state['health']['request']=null;}})()),state['health']['request'];}function syncHealthActionButtons(){const _0xe038d3=document['getElementById']('health-update-btn'),_0x2606bb=document['getElementById']('health-restart-btn');if(!_0xe038d3||!_0x2606bb)return;const _0x48f5b6=state['health']['updateEnabled'],_0x5246c3=_0x48f5b6&&state['health']['versionChecked']&&state['health']['updateAvailable'];_0xe038d3['hidden']=!_0x5246c3,_0xe038d3['disabled']=state['health']['updateInProgress']||state['health']['restartInProgress']||!state['health']['latestVersion'],_0xe038d3['textContent']=state['health']['updateInProgress']?'Updating...':'Update\x20Server',_0x2606bb['hidden']=!_0x48f5b6,_0x2606bb['disabled']=state['health']['updateInProgress']||state['health']['restartInProgress'];}function setUpdateOutput({status:_0x8740f5,output:_0x43cee8}){const _0x10a35c=document['getElementById']('health-update-output-wrap'),_0x54f96a=document['getElementById']('health-update-status'),_0x1bfafd=document['getElementById']('health-update-output');if(!_0x10a35c||!_0x54f96a||!_0x1bfafd)return;const _0x2efaf7=_0x8740f5||'';_0x10a35c['hidden']=![],_0x54f96a['className']='admin-update-status',_0x2efaf7&&_0x54f96a['classList']['add'](_0x2efaf7),_0x54f96a['textContent']=_0x2efaf7==='success'?'Success':_0x2efaf7==='error'?'Failed':'In\x20Progress',_0x1bfafd['textContent']=_0x43cee8||'No\x20output\x20returned.';}function buildCommandOutput(_0x4d52b1,_0x1d777a){const _0x2c4d4e=[];typeof _0x4d52b1==='string'&&_0x4d52b1['trim']()&&_0x2c4d4e['push'](_0x4d52b1['trim']());if(typeof _0x1d777a==='string'&&_0x1d777a['trim']()){const _0x4d30d1=_0x1d777a['trim'](),_0x1ebca0=_0x2c4d4e['some'](_0x4c6446=>_0x4c6446['includes'](_0x4d30d1));!_0x1ebca0&&_0x2c4d4e['push']('Error:\x0a'+_0x4d30d1);}return _0x2c4d4e['join']('\x0a\x0a');}function showRestartOverlay({title:_0x50eb22,message:_0x1ec343,showRetry:showRetry=![]}){const _0x1a91c8=document['getElementById']('health-restart-overlay'),_0xdf673f=document['getElementById']('restart-overlay-title'),_0xd188f4=document['getElementById']('restart-overlay-message'),_0x57e723=document['getElementById']('restart-overlay-retry');if(!_0x1a91c8||!_0xdf673f||!_0xd188f4||!_0x57e723)return;_0xdf673f['textContent']=_0x50eb22,_0xd188f4['textContent']=_0x1ec343,_0x57e723['hidden']=!showRetry,_0x1a91c8['hidden']=![];}function hideRestartOverlay(){const _0x411e61=document['getElementById']('health-restart-overlay');_0x411e61&&(_0x411e61['hidden']=!![]);}function sleep(_0x1e80c8){return new Promise(_0x1896d0=>{window['setTimeout'](_0x1896d0,_0x1e80c8);});}async function loadUpdateSettings(){const _0x19ec41=await API['getUpdateSettings']();return state['health']['updateEnabled']=!!_0x19ec41['enabled'],state['health']['hasRestartCommand']=!!_0x19ec41['hasRestartCommand'],syncHealthActionButtons(),_0x19ec41;}async function applyUpdate(){if(state['health']['updateInProgress']||!state['health']['latestVersion'])return;state['health']['updateInProgress']=!![],syncHealthActionButtons(),setUpdateOutput({'status':'in-progress','output':'Applying\x20server\x20update\x20to\x20'+state['health']['latestVersion']+'...'});try{const _0x2986c5=await API['applyServerUpdate'](state['health']['latestVersion']),_0x12bf84=buildCommandOutput(_0x2986c5['output'],_0x2986c5['error']);_0x2986c5['success']?(setUpdateOutput({'status':'success','output':_0x12bf84||'Server\x20update\x20to\x20'+state['health']['latestVersion']+'\x20completed.'}),Utils['showSuccess']('Server\x20update\x20to\x20'+state['health']['latestVersion']+'\x20completed')):(setUpdateOutput({'status':'error','output':_0x12bf84||'Server\x20update\x20failed\x20without\x20additional\x20output.'}),Utils['showError'](_0x2986c5['error']||'Server\x20update\x20failed'));}catch(_0x14b0f1){setUpdateOutput({'status':'error','output':buildCommandOutput(_0x14b0f1['output'],_0x14b0f1['commandError']||_0x14b0f1['message'])||'Failed\x20to\x20apply\x20server\x20update.'}),Utils['showError'](_0x14b0f1['message']||'Failed\x20to\x20apply\x20server\x20update');}finally{state['health']['updateInProgress']=![],syncHealthActionButtons();}}function showRestartConfirmation(){if(!state['health']['updateEnabled']||state['health']['restartInProgress'])return;const _0x369758=document['getElementById']('restart-modal');_0x369758&&(_0x369758['hidden']=![]);}function hideRestartModal(){const _0x5e73c8=document['getElementById']('restart-modal');_0x5e73c8&&(_0x5e73c8['hidden']=!![]);}async function confirmRestart(){if(state['health']['restartInProgress'])return;hideRestartModal(),state['health']['restartInProgress']=!![],syncHealthActionButtons();try{await API['restartServer'](),await waitForServerRestart();}catch(_0x55d319){state['health']['restartInProgress']=![],syncHealthActionButtons(),hideRestartOverlay(),Utils['showError'](_0x55d319['message']||'Failed\x20to\x20restart\x20server');}}async function waitForServerRestart({manualRetry:manualRetry=![]}={}){state['health']['restartInProgress']=!![],syncHealthActionButtons(),stopHealthAutoRefresh(),showRestartOverlay({'title':manualRetry?'Retrying\x20server\x20connection...':'Waiting\x20for\x20server\x20to\x20restart...','message':'The\x20page\x20will\x20automatically\x20refresh\x20when\x20the\x20server\x20is\x20back\x20online.','showRetry':![]});const _0x32688c=Date['now']();let _0x484101=![];for(let _0x46ca29=0x0;_0x46ca29<RESTART_POLL_MAX_ATTEMPTS;_0x46ca29+=0x1){await sleep(RESTART_POLL_INTERVAL_MS);try{await API['get']('/health?ts='+Date['now']());const _0x307d45=Date['now']()-_0x32688c;if(_0x484101||_0x307d45>=RESTART_MIN_SUCCESS_DELAY_MS){state['health']['restartInProgress']=![],state['health']['currentVersion']=null,hideRestartOverlay(),syncHealthActionButtons(),Utils['showSuccess']('Server\x20restart\x20complete'),await loadHealth({'showLoading':!![]}),syncHealthAutoRefresh();return;}}catch(_0x42c4c1){_0x484101=!![];}}state['health']['restartInProgress']=![],syncHealthActionButtons(),showRestartOverlay({'title':'Unable\x20to\x20reconnect\x20to\x20the\x20server','message':'The\x20server\x20may\x20still\x20be\x20restarting.\x20Retry\x20the\x20connection\x20when\x20you\x20are\x20ready.','showRetry':!![]}),Utils['showError']('Server\x20restart\x20is\x20taking\x20longer\x20than\x20expected');}async function loadVersionStatus({checkUpdates:checkUpdates=![]}={}){const _0x4ca5f1=document['getElementById']('health-check-updates-btn');_0x4ca5f1&&(_0x4ca5f1['disabled']=!![],_0x4ca5f1['textContent']=checkUpdates?'Checking...':'Loading...');try{const _0x2efb74=await API['get']('/health');state['health']['currentVersion']=_0x2efb74['version']||'Unavailable',document['getElementById']('health-version-current')['textContent']=state['health']['currentVersion'];if(!checkUpdates&&!state['health']['versionChecked']){state['health']['updateAvailable']=![],document['getElementById']('health-version-status')['textContent']='Update\x20status\x20has\x20not\x20been\x20checked\x20yet.',document['getElementById']('health-version-latest')['textContent']=state['health']['latestVersion']||'Not\x20checked',syncHealthActionButtons();return;}if(checkUpdates){const _0x54975c=await API['get']('/health/check-updates');state['health']['versionChecked']=!![],state['health']['latestVersion']=_0x54975c['latestVersion']||'Unavailable',state['health']['installCommand']=_0x54975c['installCommand']||null,state['health']['updateAvailable']=!!_0x54975c['updateAvailable'],document['getElementById']('health-version-current')['textContent']=_0x54975c['currentVersion']||state['health']['currentVersion'],document['getElementById']('health-version-latest')['textContent']=state['health']['latestVersion'],document['getElementById']('health-version-status')['textContent']=buildVersionStatusText(_0x54975c),document['getElementById']('health-install-command')['textContent']=state['health']['installCommand']||'',document['getElementById']('health-install-command-wrap')['hidden']=!state['health']['installCommand'],document['getElementById']('health-copy-install-btn')['hidden']=!state['health']['installCommand'];}syncHealthActionButtons();}catch(_0x5aef0b){console['error']('Failed\x20to\x20load\x20version\x20status',_0x5aef0b),state['health']['updateAvailable']=![],document['getElementById']('health-version-status')['textContent']='Unable\x20to\x20load\x20version\x20status:\x20'+_0x5aef0b['message'],document['getElementById']('health-install-command-wrap')['hidden']=!![],document['getElementById']('health-copy-install-btn')['hidden']=!![],syncHealthActionButtons();}finally{_0x4ca5f1&&(_0x4ca5f1['disabled']=![],_0x4ca5f1['textContent']='Check\x20for\x20Updates');}}function buildVersionStatusText(_0x59c073){const _0x4fa6cc=_0x59c073?.['versionStatus'];if(_0x4fa6cc==='update-available')return'Update\x20available:\x20'+_0x59c073['currentVersion']+'\x20→\x20'+_0x59c073['latestVersion'];if(_0x4fa6cc==='up-to-date')return'Running\x20the\x20latest\x20published\x20version\x20('+_0x59c073['latestVersion']+').';if(_0x4fa6cc==='ahead-of-latest')return'This\x20server\x20is\x20ahead\x20of\x20npm\x20latest\x20('+_0x59c073['latestVersion']+').';return'Unable\x20to\x20compare\x20current\x20and\x20latest\x20versions.';}async function copyInstallCommand(){if(!state['health']['installCommand'])return;const _0x168830=await Utils['copyToClipboard'](state['health']['installCommand']);_0x168830?Utils['showSuccess']('Install\x20command\x20copied'):Utils['showError']('Failed\x20to\x20copy\x20install\x20command');}function renderHealthMetrics(_0x208e59){document['getElementById']('cpu-usage')['textContent']=_0x208e59['cpu']?.['display']||'-',document['getElementById']('memory-usage')['textContent']=_0x208e59['memory']?.['display']||'-',document['getElementById']('disk-usage')['textContent']=_0x208e59['disk']?.['display']||'-',document['getElementById']('docker-containers')['textContent']=_0x208e59['docker']?.['display']||'-',document['getElementById']('server-uptime')['textContent']=_0x208e59['uptime']?.['display']||'-',document['getElementById']('active-sessions')['textContent']=_0x208e59['sessions']?.['display']||'-',setMetricProgress('cpu-progress',_0x208e59['cpu']?.['percent'],statusFromPercent(_0x208e59['cpu']?.['percent'])),setMetricProgress('memory-progress',_0x208e59['memory']?.['percent'],statusFromPercent(_0x208e59['memory']?.['percent'])),setMetricProgress('disk-progress',_0x208e59['disk']?.['percent'],statusFromPercent(_0x208e59['disk']?.['percent']));const _0x9af17=_0x208e59['docker']?.['total']>0x0?_0x208e59['docker']['running']/_0x208e59['docker']['total']*0x64:0x0;setMetricProgress('docker-progress',_0x9af17,'ok');const _0x2cdf9b=_0x208e59['dockerStorage']||{},_0x1d5943=document['getElementById']('docker-storage-card');document['getElementById']('docker-storage-total')['textContent']=_0x2cdf9b['display']||'-',document['getElementById']('docker-storage-available')['textContent']=_0x2cdf9b['availableDisplay']||'',document['getElementById']('docker-storage-available')['hidden']=!_0x2cdf9b['availableDisplay'],document['getElementById']('docker-storage-reclaimable')['textContent']=_0x2cdf9b['reclaimableDisplay']||'',document['getElementById']('docker-storage-images')['textContent']=_0x2cdf9b['images']?.['display']||'-',document['getElementById']('docker-storage-containers')['textContent']=_0x2cdf9b['containers']?.['display']||'-',document['getElementById']('docker-storage-volumes')['textContent']=_0x2cdf9b['volumes']?.['display']||'-',document['getElementById']('docker-storage-buildcache')['textContent']=_0x2cdf9b['buildCache']?.['display']||'-',setMetricProgress('docker-storage-progress',_0x2cdf9b['percent'],_0x2cdf9b['status']||'ok'),_0x1d5943['classList']['remove']('status-warning','status-critical'),_0x2cdf9b['status']==='warning'&&_0x1d5943['classList']['add']('status-warning'),_0x2cdf9b['status']==='critical'&&_0x1d5943['classList']['add']('status-critical');}function clampPercent(_0x41bb1f){if(!Number['isFinite'](_0x41bb1f))return 0x0;return Math['max'](0x0,Math['min'](0x64,Math['round'](_0x41bb1f)));}function statusFromPercent(_0x4bd057){if(!Number['isFinite'](_0x4bd057))return'ok';if(_0x4bd057>=0x5a)return'critical';if(_0x4bd057>=0x4b)return'warning';return'ok';}function setMetricProgress(_0x468f87,_0x24d12e,_0x57763b='ok'){const _0x3299f3=document['getElementById'](_0x468f87);if(!_0x3299f3)return;const _0x350d3e=clampPercent(_0x24d12e);_0x3299f3['style']['width']=_0x350d3e+'%',_0x3299f3['classList']['remove']('status-ok','status-warning','status-critical'),_0x3299f3['classList']['add'](_0x57763b==='critical'?'status-critical':_0x57763b==='warning'?'status-warning':'status-ok'),_0x3299f3['parentElement']?.['setAttribute']('aria-valuenow',String(_0x350d3e));}async function runCleanupAction(_0x578eb2,_0x664751){const _0x1c99c2=document['getElementById']('server-health-action-status'),_0x2a8d4a=[document['getElementById']('health-refresh-btn'),document['getElementById']('server-stop-containers'),document['getElementById']('server-remove-stopped'),document['getElementById']('server-prune-docker')]['filter'](Boolean);_0x2a8d4a['forEach'](_0x7c9232=>{_0x7c9232['disabled']=!![];}),_0x1c99c2['hidden']=![],_0x1c99c2['classList']['remove']('success','error'),_0x1c99c2['textContent']=_0x578eb2+'...';try{const _0x3d7d32=await _0x664751();_0x1c99c2['classList']['add']('success'),_0x1c99c2['textContent']=_0x3d7d32?.['message']||_0x578eb2+'\x20complete',await loadHealth({'showLoading':!![]});}catch(_0x23e009){console['error'](_0x578eb2+'\x20failed',_0x23e009),_0x1c99c2['classList']['add']('error'),_0x1c99c2['textContent']=_0x23e009['message']||_0x578eb2+'\x20failed';}finally{_0x2a8d4a['forEach'](_0x31ca62=>{_0x31ca62['disabled']=![];});}}function toggleCleanupSection(){const _0x2b5f5b=document['getElementById']('cleanup-section'),_0x18f7d3=document['getElementById']('cleanup-content'),_0x3948a1=document['getElementById']('cleanup-toggle');if(!_0x2b5f5b||!_0x18f7d3||!_0x3948a1)return;const _0x1a0d37=_0x2b5f5b['classList']['toggle']('expanded');_0x18f7d3['hidden']=!_0x1a0d37,_0x3948a1['setAttribute']('aria-expanded',String(_0x1a0d37));}async function loadLogs({showLoading:showLoading=![]}={}){if(state['logs']['request'])return state['logs']['request'];return state['logs']['request']=((async()=>{const _0xbf6436=document['getElementById']('logs-loading'),_0x5dc4b5=document['getElementById']('logs-error');(showLoading||!state['logs']['loaded'])&&(_0xbf6436['hidden']=![],_0x5dc4b5['hidden']=!![],document['getElementById']('logs-empty')['hidden']=!![],document['getElementById']('logs-container')['hidden']=!![]);try{const _0x4d8723=new URLSearchParams({'limit':'500'});state['logs']['level']!=='ALL'&&_0x4d8723['set']('level',state['logs']['level']);state['logs']['search']&&_0x4d8723['set']('search',state['logs']['search']);const _0x3eef59=await API['get']('/logs?'+_0x4d8723['toString']());state['logs']['entries']=Array['isArray'](_0x3eef59['entries'])?_0x3eef59['entries']['slice'](-state['logs']['maxEntries']):[],state['logs']['total']=Number(_0x3eef59['total'])||0x0,state['logs']['minLevel']=_0x3eef59['minLevel']||'INFO',state['logs']['loaded']=!![],_0xbf6436['hidden']=!![],_0x5dc4b5['hidden']=!![],renderLogs();}catch(_0x59b32e){console['error']('Failed\x20to\x20load\x20logs',_0x59b32e),_0xbf6436['hidden']=!![],_0x5dc4b5['hidden']=![],document['getElementById']('logs-error-message')['textContent']=_0x59b32e['message']||'Unknown\x20error',document['getElementById']('logs-empty')['hidden']=!![],document['getElementById']('logs-container')['hidden']=!![];}finally{state['logs']['request']=null;}})()),state['logs']['request'];}function renderLogs({stickToLiveEdge:stickToLiveEdge=![]}={}){const _0x31b557=document['getElementById']('logs-container'),_0x274414=document['getElementById']('logs-empty'),_0x1bb7e5=stickToLiveEdge||state['logs']['autoScroll']&&state['logs']['live'],_0x508432=_0x31b557?.['scrollTop']||0x0,_0x1c13a5=_0x31b557?.['scrollHeight']||0x0,_0xf83c7b=getOrderedLogEntries();updateLogsMeta(_0xf83c7b['length']);if(_0xf83c7b['length']===0x0){_0x31b557['hidden']=!![],_0x274414['hidden']=![];return;}_0x274414['hidden']=!![],_0x31b557['hidden']=![],_0x31b557['innerHTML']=_0xf83c7b['map'](renderLogEntry)['join']('');if(_0x1bb7e5){scrollLogsToLiveEdge(_0x31b557);return;}if(state['logs']['order']===LOG_ORDER_DESC){const _0x237061=_0x31b557['scrollHeight'],_0x11388d=_0x237061-_0x1c13a5;_0x31b557['scrollTop']=_0x508432>0x0?_0x508432+Math['max'](_0x11388d,0x0):_0x508432;return;}_0x31b557['scrollTop']=_0x508432;}function getVisibleLogEntries(){const _0x3053cd=state['logs']['search']['trim']()['toLowerCase']();return state['logs']['entries']['filter'](_0x5710e5=>{if(state['logs']['level']!=='ALL'&&_0x5710e5['level']!==state['logs']['level'])return![];if(!_0x3053cd)return!![];const _0x26f684=String(_0x5710e5['message']||'')['toLowerCase'](),_0x2885b8=_0x5710e5['context']?JSON['stringify'](_0x5710e5['context'])['toLowerCase']():'';return _0x26f684['includes'](_0x3053cd)||_0x2885b8['includes'](_0x3053cd);});}function getOrderedLogEntries(){const _0x534519=getVisibleLogEntries();return state['logs']['order']===LOG_ORDER_DESC?_0x534519['slice']()['reverse']():_0x534519;}function renderLogEntry(_0x3c2e56){const _0x53be70=Utils['escapeHtml'](formatDateTime(_0x3c2e56['timestamp'])),_0x5df785=Utils['escapeHtml'](String(_0x3c2e56['level']||'INFO')),_0x4441ee=Utils['escapeHtml'](String(_0x3c2e56['message']||'')),_0x4f89e3=_0x3c2e56['context']?'\x0a\x20\x20\x20\x20\x20\x20<details\x20class=\x22admin-log-context\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<summary>Context</summary>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre>'+Utils['escapeHtml'](JSON['stringify'](_0x3c2e56['context'],null,0x2))+'</pre>\x0a\x20\x20\x20\x20\x20\x20</details>\x0a\x20\x20\x20\x20':'';return'\x0a\x20\x20\x20\x20<div\x20class=\x22admin-log-entry\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-log-header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22admin-log-timestamp\x22>'+_0x53be70+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22admin-log-level\x20level-'+_0x5df785['toLowerCase']()+'\x22>'+_0x5df785+'</span>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-log-message\x22>'+_0x4441ee+'</div>\x0a\x20\x20\x20\x20\x20\x20'+_0x4f89e3+'\x0a\x20\x20\x20\x20</div>\x0a\x20\x20';}function updateLogsMeta(_0x3d4cf5){const _0x15fe4c=document['getElementById']('logs-meta');if(!_0x15fe4c)return;const _0x3dab7a=state['logs']['entries']['length'],_0x536f09=state['logs']['level']!=='ALL'||!!state['logs']['search']['trim'](),_0x5bcd1c=state['logs']['order']===LOG_ORDER_DESC?'newest\x20first':'oldest\x20first';_0x15fe4c['textContent']=_0x536f09?'Showing\x20'+_0x3d4cf5+'\x20of\x20'+_0x3dab7a+'\x20loaded\x20entries\x20for\x20the\x20current\x20filters\x20in\x20'+_0x5bcd1c+'\x20order.\x20Minimum\x20runtime\x20level:\x20'+state['logs']['minLevel']+'.':'Showing\x20'+_0x3d4cf5+'\x20recent\x20buffered\x20entries\x20in\x20'+_0x5bcd1c+'\x20order.\x20Minimum\x20runtime\x20level:\x20'+state['logs']['minLevel']+'.';}function toggleLogsLiveMode(){state['logs']['live']=!state['logs']['live'],state['logs']['live']?(state['logs']['autoScroll']=!![],renderLogs({'stickToLiveEdge':!![]}),startLogStream()):stopLogStream(),updateLogsLiveUi();}function updateLogsLiveUi(){const _0x41daf5=document['getElementById']('logs-live-toggle'),_0x25258d=document['getElementById']('logs-stream-status');if(!_0x41daf5||!_0x25258d)return;_0x25258d['classList']['remove']('live','error');if(!state['logs']['live']){_0x25258d['textContent']='Paused',_0x41daf5['textContent']='Start\x20Live';return;}if(state['logs']['streamState']==='live')_0x25258d['textContent']='Live',_0x25258d['classList']['add']('live');else state['logs']['streamState']==='error'?(_0x25258d['textContent']='Reconnecting',_0x25258d['classList']['add']('error')):_0x25258d['textContent']='Connecting';_0x41daf5['textContent']='Pause\x20Live';}function startLogStream(){if(state['currentSection']!=='logs'||state['logs']['stream'])return;state['logs']['streamState']='connecting',updateLogsLiveUi();const _0x4060c2=new EventSource(API['getBaseUrl']()+'/logs/stream');state['logs']['stream']=_0x4060c2,_0x4060c2['addEventListener']('log',_0x16058e=>{try{const _0x21d297=JSON['parse'](_0x16058e['data']);state['logs']['entries']['push'](_0x21d297),state['logs']['entries']['length']>state['logs']['maxEntries']&&state['logs']['entries']['shift'](),renderLogs();}catch(_0x20d7bc){console['error']('Failed\x20to\x20parse\x20log\x20stream\x20event',_0x20d7bc);}}),_0x4060c2['onopen']=()=>{state['logs']['streamState']='live',updateLogsLiveUi();},_0x4060c2['onerror']=()=>{state['logs']['streamState']='error',updateLogsLiveUi();};}function stopLogStream(){state['logs']['stream']&&(state['logs']['stream']['close'](),state['logs']['stream']=null),state['logs']['streamState']='paused',updateLogsLiveUi();}function clearDisplayedLogs(){state['logs']['entries']=[],renderLogs();}function setLogOrder(_0x37200,{focusLiveEdge:focusLiveEdge=![]}={}){const _0x515753=_0x37200===LOG_ORDER_DESC?LOG_ORDER_DESC:LOG_ORDER_ASC;if(state['logs']['order']===_0x515753){focusLiveEdge&&(state['logs']['autoScroll']=!![],renderLogs({'stickToLiveEdge':!![]}));return;}state['logs']['order']=_0x515753,setSessionValue('admin-logs-order',_0x515753),syncLogOrderUi(),focusLiveEdge&&(state['logs']['autoScroll']=!![]),renderLogs({'stickToLiveEdge':focusLiveEdge});}function syncLogOrderUi(){updateActiveFilterButtons('#logs-order-toggle',state['logs']['order']);}function handleLogsSearchInput(_0x1ae3ea){const _0x468b40=_0x1ae3ea['target']['value']||'';state['logs']['searchTimer']&&clearTimeout(state['logs']['searchTimer']),state['logs']['searchTimer']=window['setTimeout'](()=>{state['logs']['search']=_0x468b40,loadLogs({'showLoading':![]});},LOG_SEARCH_DEBOUNCE_MS);}function updateLogAutoScrollState(){const _0x4e5f99=document['getElementById']('logs-container');if(!_0x4e5f99)return;const _0x59fa53=state['logs']['order']===LOG_ORDER_DESC?_0x4e5f99['scrollTop']:_0x4e5f99['scrollHeight']-_0x4e5f99['scrollTop']-_0x4e5f99['clientHeight'];state['logs']['autoScroll']=_0x59fa53<0x20;}async function loadUsage({showLoading:showLoading=![]}={}){if(state['usage']['request'])return state['usage']['request'];return state['usage']['request']=((async()=>{const _0x3dfdd7=document['getElementById']('usage-loading'),_0x3378f7=document['getElementById']('usage-error');(showLoading||!state['usage']['loaded'])&&(_0x3dfdd7['hidden']=![],_0x3378f7['hidden']=!![],document['getElementById']('usage-empty')['hidden']=!![],document['getElementById']('usage-content')['hidden']=!![]);try{const _0x1dc1ba=new URLSearchParams();_0x1dc1ba['set']('days',state['usage']['days']);state['usage']['environment']&&_0x1dc1ba['set']('environment',state['usage']['environment']);const _0xdf5215=await API['get']('/stats?'+_0x1dc1ba['toString']());state['usage']['loaded']=!![],_0x3dfdd7['hidden']=!![],_0x3378f7['hidden']=!![],renderUsage(_0xdf5215);}catch(_0x49aaa1){console['error']('Failed\x20to\x20load\x20usage\x20statistics',_0x49aaa1),_0x3dfdd7['hidden']=!![],_0x3378f7['hidden']=![],document['getElementById']('usage-error-message')['textContent']=_0x49aaa1['message']||'Unknown\x20error',document['getElementById']('usage-empty')['hidden']=!![],document['getElementById']('usage-content')['hidden']=!![];}finally{state['usage']['request']=null;}})()),state['usage']['request'];}function renderUsage(_0xe1483b){const _0x324cb9=Number(_0xe1483b?.['tasks']?.['total'])||0x0,_0x1d9eb3=document['getElementById']('usage-empty'),_0x30a482=document['getElementById']('usage-content');if(_0x324cb9===0x0){_0x1d9eb3['hidden']=![],_0x30a482['hidden']=!![];return;}_0x1d9eb3['hidden']=!![],_0x30a482['hidden']=![];const _0x21a33b=Number(_0xe1483b?.['approvalRate']?.['successRate'])||0x0,_0x3331fd=Math['round'](_0x21a33b*0x64),_0x244ed=_0xe1483b?.['code']?.['approved']||{},_0x4a400a=Number(_0x244ed?.['tasks'])||0x0,_0x22a224=(Number(_0x244ed?.['linesAdded'])||0x0)-(Number(_0x244ed?.['linesDeleted'])||0x0),_0x3dfd9a=(Number(_0xe1483b?.['code']?.['linesAdded'])||0x0)-(Number(_0xe1483b?.['code']?.['linesDeleted'])||0x0),_0x1fe7cf=Number(_0xe1483b?.['timing']?.['averageDurationMinutes'])||0x0;setSummaryValue('usage-total-tasks',formatNumber(_0x324cb9)),setSummaryValue('usage-success-rate',_0x3331fd+'%',statusClassFromPercent(_0x3331fd)),setSummaryValue('usage-net-lines',formatSignedNumber(_0x3dfd9a)),setSummaryValue('usage-average-duration',formatDurationMinutes(_0x1fe7cf));const _0x3d6d57=_0x324cb9>0x0?Math['round'](_0x4a400a/_0x324cb9*0x64):0x0;document['getElementById']('usage-approved-summary')['textContent']=formatNumber(_0x4a400a)+'\x20approved\x20('+_0x3d6d57+'%)\x20·\x20'+formatNumber(_0xe1483b['timing']['totalDurationHours']||0x0)+'h\x20total',document['getElementById']('usage-success-detail')['textContent']=(_0xe1483b['approvalRate']['completed']||0x0)+'\x20completed\x20/\x20'+(_0xe1483b['approvalRate']['failed']||0x0)+'\x20failed\x20/\x20'+(_0xe1483b['approvalRate']['interrupted']||0x0)+'\x20interrupted',document['getElementById']('usage-net-lines-detail')['textContent']='+'+formatNumber(_0xe1483b['code']['linesAdded']||0x0)+'\x20/\x20-'+formatNumber(_0xe1483b['code']['linesDeleted']||0x0)+'\x20·\x20Approved\x20'+formatSignedNumber(_0x22a224)+'\x20net',document['getElementById']('usage-average-duration-detail')['textContent']=formatDurationMinutes(_0xe1483b['timing']['medianDurationMinutes']||0x0)+'\x20median\x20·\x20'+formatNumber(_0xe1483b['timing']['totalDurationHours']||0x0)+'h\x20total',document['getElementById']('usage-period-summary')['textContent']=buildPeriodSummary(_0xe1483b['period']),renderBarList('usage-status-bars',_0xe1483b['tasks']['byStatus']||{}),renderObjectTable('usage-type-body',_0xe1483b['tasks']['byType']||{},_0x324cb9,{'includePercent':!![],'labelFormatter':prettifyKey}),renderObjectTable('usage-environment-body',_0xe1483b['tasks']['byEnvironment']||{},_0x324cb9),renderUserTable('usage-user-body',_0xe1483b['tasks']['byUser']||[]),renderObjectTable('usage-source-body',_0xe1483b['tasks']['bySource']||{},_0x324cb9,{'labelFormatter':prettifyKey}),document['getElementById']('usage-lines-added')['textContent']=formatNumber(_0xe1483b['code']['linesAdded']||0x0),document['getElementById']('usage-lines-deleted')['textContent']=formatNumber(_0xe1483b['code']['linesDeleted']||0x0),document['getElementById']('usage-files-changed')['textContent']=formatNumber(_0xe1483b['code']['filesChanged']||0x0),document['getElementById']('usage-repositories-affected')['textContent']=formatNumber(_0xe1483b['code']['repositoriesAffected']||0x0),document['getElementById']('usage-approved-lines-added')['textContent']=formatNumber(_0x244ed['linesAdded']||0x0),document['getElementById']('usage-approved-lines-deleted')['textContent']=formatNumber(_0x244ed['linesDeleted']||0x0),document['getElementById']('usage-approved-files-changed')['textContent']=formatNumber(_0x244ed['filesChanged']||0x0),document['getElementById']('usage-approved-repositories-affected')['textContent']=formatNumber(_0x244ed['repositoriesAffected']||0x0);const _0x2b89e6=(_0x17e898,_0x109137)=>_0x17e898>0x0?Math['round'](_0x109137/_0x17e898*0x64):0x0;document['getElementById']('usage-added-pct')['style']['width']=_0x2b89e6(_0xe1483b['code']['linesAdded']||0x0,_0x244ed['linesAdded']||0x0)+'%',document['getElementById']('usage-deleted-pct')['style']['width']=_0x2b89e6(_0xe1483b['code']['linesDeleted']||0x0,_0x244ed['linesDeleted']||0x0)+'%',document['getElementById']('usage-files-pct')['style']['width']=_0x2b89e6(_0xe1483b['code']['filesChanged']||0x0,_0x244ed['filesChanged']||0x0)+'%',document['getElementById']('usage-repos-pct')['style']['width']=_0x2b89e6(_0xe1483b['code']['repositoriesAffected']||0x0,_0x244ed['repositoriesAffected']||0x0)+'%';}function buildPeriodSummary(_0x5c4d90){const _0x2c191d=_0x5c4d90?.['from']?formatDateTime(_0x5c4d90['from']):'the\x20earliest\x20loaded\x20task',_0x128c1e=_0x5c4d90?.['to']?formatDateTime(_0x5c4d90['to']):'now',_0xec0677=_0x5c4d90?.['days']?_0x5c4d90['days']+'\x20day\x20window':'All\x20available\x20task\x20history';return _0xec0677+'\x20·\x20'+_0x2c191d+'\x20to\x20'+_0x128c1e;}function renderBarList(_0x2f5a94,_0x3bb36b){const _0x4d54df=document['getElementById'](_0x2f5a94);if(!_0x4d54df)return;const _0x42adfa=Object['entries'](_0x3bb36b)['filter'](([,_0x4c45bd])=>Number(_0x4c45bd)>0x0)['sort']((_0x408a0c,_0x53ba59)=>_0x53ba59[0x1]-_0x408a0c[0x1]),_0x557c29=_0x42adfa['reduce']((_0x9035de,[,_0x53f9a2])=>_0x9035de+Number(_0x53f9a2||0x0),0x0);if(_0x42adfa['length']===0x0){_0x4d54df['innerHTML']='<div\x20class=\x22text-muted\x22>No\x20data\x20available.</div>';return;}_0x4d54df['innerHTML']=_0x42adfa['map'](([_0x1f700a,_0x331cfb])=>{const _0x51a98e=_0x557c29>0x0?Math['max'](0x2,Math['round'](_0x331cfb/_0x557c29*0x64)):0x0,_0x391cbc=Utils['escapeHtml'](prettifyKey(_0x1f700a)),_0x4f462d=Utils['escapeHtml'](formatNumber(_0x331cfb));return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-bar-row\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-bar-label\x22>'+_0x391cbc+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-bar-track\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-bar-fill\x20status-'+Utils['escapeHtml'](String(_0x1f700a)['toLowerCase']())+'\x22\x20style=\x22width:\x20'+_0x51a98e+'%\x22></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22admin-bar-value\x22>'+_0x4f462d+'</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';})['join']('');}function renderObjectTable(_0xadb43e,_0x51cc14,_0x2fb04a,{includePercent:includePercent=![],labelFormatter:labelFormatter=null}={}){const _0x3ec279=document['getElementById'](_0xadb43e);if(!_0x3ec279)return;const _0x49328d=Object['entries'](_0x51cc14)['filter'](([,_0x207325])=>Number(_0x207325)>0x0)['sort']((_0x53cde2,_0x29f4b4)=>_0x29f4b4[0x1]-_0x53cde2[0x1]||String(_0x53cde2[0x0])['localeCompare'](String(_0x29f4b4[0x0])));if(_0x49328d['length']===0x0){_0x3ec279['innerHTML']='<tr><td\x20colspan=\x22'+(includePercent?0x3:0x2)+'\x22\x20class=\x22text-muted\x22>No\x20data\x20available.</td></tr>';return;}_0x3ec279['innerHTML']=_0x49328d['map'](([_0x566e44,_0x4d58])=>{const _0x3dd453=labelFormatter?labelFormatter(_0x566e44):_0x566e44,_0x1f6373=includePercent?'<td>'+formatPercent(_0x2fb04a>0x0?_0x4d58/_0x2fb04a*0x64:0x0)+'</td>':'';return'\x0a\x20\x20\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](String(_0x3dd453))+'</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](formatNumber(_0x4d58))+'</td>\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+_0x1f6373+'\x0a\x20\x20\x20\x20\x20\x20</tr>\x0a\x20\x20\x20\x20';})['join']('');}function renderUserTable(_0x5b27aa,_0x5c4684){const _0x14856e=document['getElementById'](_0x5b27aa);if(!_0x14856e)return;if(!Array['isArray'](_0x5c4684)||_0x5c4684['length']===0x0){_0x14856e['innerHTML']='<tr><td\x20colspan=\x222\x22\x20class=\x22text-muted\x22>No\x20data\x20available.</td></tr>';return;}_0x14856e['innerHTML']=_0x5c4684['map'](_0x374082=>'\x0a\x20\x20\x20\x20<tr>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](_0x374082['name']||_0x374082['username']||_0x374082['userId']||'Unknown')+'</td>\x0a\x20\x20\x20\x20\x20\x20<td>'+Utils['escapeHtml'](formatNumber(_0x374082['count']||0x0))+'</td>\x0a\x20\x20\x20\x20</tr>\x0a\x20\x20')['join']('');}function updateActiveFilterButtons(_0x49fc73,_0x91f51){document['querySelectorAll'](_0x49fc73+'\x20.admin-filter-btn')['forEach'](_0x180738=>{_0x180738['classList']['toggle']('active',_0x180738['dataset']['level']===_0x91f51||_0x180738['dataset']['days']===_0x91f51||_0x180738['dataset']['order']===_0x91f51);});}function scrollLogsToLiveEdge(_0x341d4c){if(!_0x341d4c)return;if(state['logs']['order']===LOG_ORDER_DESC){_0x341d4c['scrollTop']=0x0;return;}_0x341d4c['scrollTop']=_0x341d4c['scrollHeight'];}function setSummaryValue(_0x3ab754,_0x259a05,_0x3313d0=''){const _0x4aa2e1=document['getElementById'](_0x3ab754);if(!_0x4aa2e1)return;_0x4aa2e1['textContent']=_0x259a05,_0x4aa2e1['classList']['remove']('status-good','status-warn','status-bad'),_0x3313d0&&_0x4aa2e1['classList']['add'](_0x3313d0);}function statusClassFromPercent(_0x2f9698){if(_0x2f9698>=0x50)return'status-good';if(_0x2f9698>0x3c)return'status-warn';return'status-bad';}function formatDateTime(_0x72d7a2){const _0xe2eebf=new Date(_0x72d7a2);if(Number['isNaN'](_0xe2eebf['getTime']()))return _0x72d7a2||'Unknown';return _0xe2eebf['toLocaleString']();}function formatDurationMinutes(_0x3a3a8a){const _0x5e16c4=Math['round'](Number(_0x3a3a8a)||0x0);if(_0x5e16c4<0x3c)return _0x5e16c4+'m';const _0x2ca5ba=Math['floor'](_0x5e16c4/0x3c),_0x2a9b07=_0x5e16c4%0x3c;return _0x2a9b07>0x0?_0x2ca5ba+'h\x20'+_0x2a9b07+'m':_0x2ca5ba+'h';}function formatPercent(_0x5d9b91){return Math['round'](Number(_0x5d9b91)||0x0)+'%';}function formatNumber(_0x1c030c){return NUMBER_FORMATTER['format'](Number(_0x1c030c)||0x0);}function formatSignedNumber(_0x33cf2f){const _0x385489=Number(_0x33cf2f)||0x0;if(_0x385489>0x0)return'+'+formatNumber(_0x385489);return formatNumber(_0x385489);}function prettifyKey(_0x20d426){return String(_0x20d426)['replace'](/[_-]+/g,'\x20')['replace'](/\b\w/g,_0x5e469=>_0x5e469['toUpperCase']());}