@profoundlogic/coderflow-server 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/LICENSE.txt +322 -0
  2. package/README.md +158 -0
  3. package/dist/LICENSE.txt +322 -0
  4. package/dist/README.md +158 -0
  5. package/dist/base-image/Dockerfile +184 -0
  6. package/dist/base-image/agent-wrapper.sh +143 -0
  7. package/dist/base-image/apply-local-state.sh +357 -0
  8. package/dist/base-image/coder-git-credential-helper +307 -0
  9. package/dist/base-image/entrypoint.sh +942 -0
  10. package/dist/base-image/ssh_config_template +41 -0
  11. package/dist/base-image/start-code-server.sh +76 -0
  12. package/dist/base-image/sync-repos.sh +170 -0
  13. package/dist/base-image/vscode-extensions.txt +10 -0
  14. package/dist/base-image/vscode-settings.json +41 -0
  15. package/dist/coder-server.js +2 -0
  16. package/dist/config/cli-models.json +45 -0
  17. package/dist/config/imported-skills.schema.json +83 -0
  18. package/dist/config/skill-catalog.json +18 -0
  19. package/dist/config/skill-catalog.schema.json +140 -0
  20. package/dist/config.js +1 -0
  21. package/dist/examples/oidc.json.example +11 -0
  22. package/dist/lib/agent-keepalive.js +1 -0
  23. package/dist/lib/api-keys.js +1 -0
  24. package/dist/lib/apiKeys.js +1 -0
  25. package/dist/lib/auto-judge.js +1 -0
  26. package/dist/lib/basic-auth.js +1 -0
  27. package/dist/lib/build-history.js +1 -0
  28. package/dist/lib/build-output-service.js +1 -0
  29. package/dist/lib/build-scheduler.js +1 -0
  30. package/dist/lib/build-service.js +1 -0
  31. package/dist/lib/claude-oauth-refresh.js +1 -0
  32. package/dist/lib/cli/build.js +1 -0
  33. package/dist/lib/cli/config-command.js +1 -0
  34. package/dist/lib/cli/config.js +1 -0
  35. package/dist/lib/cli/create-user.js +1 -0
  36. package/dist/lib/cli/init.js +1 -0
  37. package/dist/lib/cli/jira.js +1 -0
  38. package/dist/lib/cli/license.js +1 -0
  39. package/dist/lib/cli/server-manager.js +1 -0
  40. package/dist/lib/container-tokens.js +1 -0
  41. package/dist/lib/data-dir.js +1 -0
  42. package/dist/lib/deployment-history.js +1 -0
  43. package/dist/lib/deployment-service.js +1 -0
  44. package/dist/lib/docker-utils.js +1 -0
  45. package/dist/lib/email.js +1 -0
  46. package/dist/lib/emailTemplates.js +1 -0
  47. package/dist/lib/entitlement.js +1 -0
  48. package/dist/lib/fetch-utils.js +1 -0
  49. package/dist/lib/git-provider-service.js +1 -0
  50. package/dist/lib/git-provider-setup/assets/coderflow_github_app.png +0 -0
  51. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -0
  52. package/dist/lib/git-provider-setup/index.js +1 -0
  53. package/dist/lib/git-provider-setup/setup-factory.js +1 -0
  54. package/dist/lib/git-provider-setup/setup-interface.js +1 -0
  55. package/dist/lib/git-providers/azure-devops-provider.js +1 -0
  56. package/dist/lib/git-providers/github-app-provider.js +1 -0
  57. package/dist/lib/git-providers/index.js +1 -0
  58. package/dist/lib/git-providers/provider-factory.js +1 -0
  59. package/dist/lib/git-providers/provider-interface.js +1 -0
  60. package/dist/lib/jira-client.js +1 -0
  61. package/dist/lib/logger.js +1 -0
  62. package/dist/lib/model-fetcher.js +1 -0
  63. package/dist/lib/notifications.js +1 -0
  64. package/dist/lib/oidc-auth.js +1 -0
  65. package/dist/lib/oidc-device-flow.js +1 -0
  66. package/dist/lib/passwordTokens.js +1 -0
  67. package/dist/lib/pin-cascade.js +1 -0
  68. package/dist/lib/provider-accounts.js +1 -0
  69. package/dist/lib/provider-oauth.js +1 -0
  70. package/dist/lib/provider-profile.js +1 -0
  71. package/dist/lib/provider-token-refresh.js +1 -0
  72. package/dist/lib/roles.js +1 -0
  73. package/dist/lib/secrets.js +1 -0
  74. package/dist/lib/state-capture.js +1 -0
  75. package/dist/lib/static-files.js +1 -0
  76. package/dist/lib/task-name-generator.js +1 -0
  77. package/dist/lib/users.js +1 -0
  78. package/dist/middleware/requireAuth.js +1 -0
  79. package/dist/middleware/requireInit.js +1 -0
  80. package/dist/middleware/requirePermission.js +1 -0
  81. package/dist/package-lock.json +4151 -0
  82. package/dist/package.json +50 -0
  83. package/dist/routes/apiKeys.js +1 -0
  84. package/dist/routes/auth-oidc.js +1 -0
  85. package/dist/routes/auth.js +1 -0
  86. package/dist/routes/build.js +1 -0
  87. package/dist/routes/containers.js +1 -0
  88. package/dist/routes/deploy-task.js +1 -0
  89. package/dist/routes/environment-management.js +1 -0
  90. package/dist/routes/environments.js +1 -0
  91. package/dist/routes/external-skills.js +1 -0
  92. package/dist/routes/git-credentials.js +1 -0
  93. package/dist/routes/git-provider-setup.js +1 -0
  94. package/dist/routes/health.js +1 -0
  95. package/dist/routes/jira.js +1 -0
  96. package/dist/routes/objective-management.js +1 -0
  97. package/dist/routes/password.js +1 -0
  98. package/dist/routes/prompt.js +1 -0
  99. package/dist/routes/provider-auth.js +1 -0
  100. package/dist/routes/qa.js +1 -0
  101. package/dist/routes/settings.js +1 -0
  102. package/dist/routes/skill-management.js +1 -0
  103. package/dist/routes/skills.js +1 -0
  104. package/dist/routes/tasks.js +2 -0
  105. package/dist/routes/templates.js +1 -0
  106. package/dist/routes/test-task.js +1 -0
  107. package/dist/routes/test.js +1 -0
  108. package/dist/routes/users.js +1 -0
  109. package/dist/routes/visualizations.js +1 -0
  110. package/dist/schemas/template-metadata.schema.json +178 -0
  111. package/dist/scripts/create-user.js +2 -0
  112. package/dist/shipped-skills/environment-instructions/SKILL.md +154 -0
  113. package/dist/shipped-skills/environment-templates/SKILL.md +282 -0
  114. package/dist/shipped-skills/objective-management/SKILL.md +238 -0
  115. package/dist/shipped-skills/skill-editor/SKILL.md +326 -0
  116. package/dist/start.js +2 -0
  117. package/dist/web-ui/public/activity-detail-modal.js +1 -0
  118. package/dist/web-ui/public/activity-feed.js +1 -0
  119. package/dist/web-ui/public/activity-formatters.js +1 -0
  120. package/dist/web-ui/public/agent-event-parser.js +1 -0
  121. package/dist/web-ui/public/app.js +1 -0
  122. package/dist/web-ui/public/approve-dialog.js +1 -0
  123. package/dist/web-ui/public/coderflow-logo-reversed.svg +46 -0
  124. package/dist/web-ui/public/coderflow-logo.svg +46 -0
  125. package/dist/web-ui/public/comments-widget.js +1 -0
  126. package/dist/web-ui/public/docs/.nojekyll +0 -0
  127. package/dist/web-ui/public/docs/README.md +26 -0
  128. package/dist/web-ui/public/docs/_sidebar.md +47 -0
  129. package/dist/web-ui/public/docs/admin/ai-providers.md +132 -0
  130. package/dist/web-ui/public/docs/admin/email-notifications.md +69 -0
  131. package/dist/web-ui/public/docs/admin/environments.md +215 -0
  132. package/dist/web-ui/public/docs/admin/git-providers.md +147 -0
  133. package/dist/web-ui/public/docs/admin/installation.md +313 -0
  134. package/dist/web-ui/public/docs/admin/skills.md +35 -0
  135. package/dist/web-ui/public/docs/admin/sso.md +241 -0
  136. package/dist/web-ui/public/docs/admin/users-and-roles.md +57 -0
  137. package/dist/web-ui/public/docs/code/cli.md +102 -0
  138. package/dist/web-ui/public/docs/code/files-and-editing.md +86 -0
  139. package/dist/web-ui/public/docs/code/terminal-access.md +110 -0
  140. package/dist/web-ui/public/docs/code/vscode-extension.md +58 -0
  141. package/dist/web-ui/public/docs/getting-started/core-concepts.md +129 -0
  142. package/dist/web-ui/public/docs/getting-started/overview.md +46 -0
  143. package/dist/web-ui/public/docs/index.html +151 -0
  144. package/dist/web-ui/public/docs/integrations/custom.md +58 -0
  145. package/dist/web-ui/public/docs/integrations/ibmi/overview.md +58 -0
  146. package/dist/web-ui/public/docs/integrations/overview.md +48 -0
  147. package/dist/web-ui/public/docs/objectives/qa-mode.md +90 -0
  148. package/dist/web-ui/public/docs/objectives/staged-tasks.md +60 -0
  149. package/dist/web-ui/public/docs/objectives/working-with-objectives.md +102 -0
  150. package/dist/web-ui/public/docs/tasks/approval-and-deployment.md +83 -0
  151. package/dist/web-ui/public/docs/tasks/creating-tasks.md +111 -0
  152. package/dist/web-ui/public/docs/tasks/judging.md +114 -0
  153. package/dist/web-ui/public/docs/tasks/providing-feedback.md +41 -0
  154. package/dist/web-ui/public/docs/tasks/task-groups.md +73 -0
  155. package/dist/web-ui/public/docs/tasks/winner-selection.md +75 -0
  156. package/dist/web-ui/public/docs/templates/batch-processing.md +152 -0
  157. package/dist/web-ui/public/docs/templates/task-templates.md +44 -0
  158. package/dist/web-ui/public/docs/templates/template-examples.md +93 -0
  159. package/dist/web-ui/public/docs/testing/profound-automated-testing.md +77 -0
  160. package/dist/web-ui/public/docs/testing/task-visualizations.md +42 -0
  161. package/dist/web-ui/public/docs/testing/testing-menu.md +118 -0
  162. package/dist/web-ui/public/environments.css +3942 -0
  163. package/dist/web-ui/public/environments.html +1791 -0
  164. package/dist/web-ui/public/environments.js +1 -0
  165. package/dist/web-ui/public/favicon-16.png +0 -0
  166. package/dist/web-ui/public/favicon-32.png +0 -0
  167. package/dist/web-ui/public/favicon.ico +0 -0
  168. package/dist/web-ui/public/feedback-widget.css +3133 -0
  169. package/dist/web-ui/public/feedback-widget.js +1 -0
  170. package/dist/web-ui/public/git-history.css +2663 -0
  171. package/dist/web-ui/public/git-history.html +272 -0
  172. package/dist/web-ui/public/git-history.js +1 -0
  173. package/dist/web-ui/public/git-status.js +1 -0
  174. package/dist/web-ui/public/index.html +1459 -0
  175. package/dist/web-ui/public/index.js +1 -0
  176. package/dist/web-ui/public/login.html +346 -0
  177. package/dist/web-ui/public/login.js +1 -0
  178. package/dist/web-ui/public/markdown-editor.js +1 -0
  179. package/dist/web-ui/public/markdown-file-editor.js +1 -0
  180. package/dist/web-ui/public/modal-maximize.js +1 -0
  181. package/dist/web-ui/public/notifications.js +1 -0
  182. package/dist/web-ui/public/server-health.js +1 -0
  183. package/dist/web-ui/public/settings.css +761 -0
  184. package/dist/web-ui/public/settings.html +1044 -0
  185. package/dist/web-ui/public/settings.js +1 -0
  186. package/dist/web-ui/public/setup-password.html +355 -0
  187. package/dist/web-ui/public/setup-password.js +1 -0
  188. package/dist/web-ui/public/skills.css +1949 -0
  189. package/dist/web-ui/public/skills.html +820 -0
  190. package/dist/web-ui/public/skills.js +1 -0
  191. package/dist/web-ui/public/sse-client.js +1 -0
  192. package/dist/web-ui/public/sse-shared-worker.js +1 -0
  193. package/dist/web-ui/public/styles.css +18614 -0
  194. package/dist/web-ui/public/task.html +1779 -0
  195. package/dist/web-ui/public/task.js +1 -0
  196. package/dist/web-ui/public/terminal.html +45 -0
  197. package/dist/web-ui/public/terminal.js +1 -0
  198. package/dist/web-ui/public/theme.js +1 -0
  199. package/dist/web-ui/public/users.html +298 -0
  200. package/dist/web-ui/public/users.js +1 -0
  201. package/dist/web-ui/public/variant-grouping.js +1 -0
  202. package/package.json +63 -0
@@ -0,0 +1 @@
1
+ const _0x224687=_0x1589;(function(_0x6fa5d7,_0xa4eb0e){const _0x3fd7d3=_0x1589,_0x21a8dd=_0x6fa5d7();while(!![]){try{const _0x178eb9=-parseInt(_0x3fd7d3(0xfb))/0x1*(-parseInt(_0x3fd7d3(0x17c))/0x2)+-parseInt(_0x3fd7d3(0x106))/0x3*(-parseInt(_0x3fd7d3(0x1cf))/0x4)+parseInt(_0x3fd7d3(0x256))/0x5+-parseInt(_0x3fd7d3(0x12c))/0x6*(parseInt(_0x3fd7d3(0x231))/0x7)+-parseInt(_0x3fd7d3(0x15f))/0x8+parseInt(_0x3fd7d3(0xe3))/0x9*(-parseInt(_0x3fd7d3(0x17a))/0xa)+parseInt(_0x3fd7d3(0xce))/0xb*(parseInt(_0x3fd7d3(0x184))/0xc);if(_0x178eb9===_0xa4eb0e)break;else _0x21a8dd['push'](_0x21a8dd['shift']());}catch(_0x17df80){_0x21a8dd['push'](_0x21a8dd['shift']());}}}(_0x4842,0xac5a4));import{API,Utils,CustomSelect,ConfirmDialog,initializeAdminMenu}from'./app.js';import{initTheme,mountThemeToggle}from'./theme.js';const state={'currentSection':_0x224687(0x1c0),'setupConfig':null,'environments':[],'apiKeysConfig':{},'modelConfig':{},'availableModels':{},'providerStatus':{},'emailConfig':{},'ssoConfig':{},'gitProviders':[]},API_KEY_PLACEHOLDER=_0x224687(0x11d),customSelects={'agent':null,'environment':null,'claudeModel':null,'codexModel':null,'geminiModel':null,'codexReasoning':null,'ssoRole':null,'gitProviderType':null};function showInlineMessage(_0x3c9ea1,_0x38d344,_0x10ac16,_0x4518e5=null){const _0x14f348=_0x224687,_0xb96301=document[_0x14f348(0x247)](_0x3c9ea1+_0x14f348(0xc9));if(!_0xb96301){if(_0x38d344==='success')Utils[_0x14f348(0x1b6)](_0x10ac16);else Utils[_0x14f348(0x26a)](_0x10ac16);return;}_0xb96301[_0x14f348(0x178)]=_0x10ac16,_0xb96301['className']=_0x14f348(0xf3)+_0x38d344,_0xb96301[_0x14f348(0x17b)]=![];const _0x2e2cc3=_0x4518e5!==null?_0x4518e5:_0x38d344===_0x14f348(0xfa)?0x1388:0x0;_0x2e2cc3>0x0&&setTimeout(()=>{_0xb96301['hidden']=!![];},_0x2e2cc3);}function hideInlineMessage(_0x1cf1d8){const _0x31988c=_0x224687,_0x5ac793=document[_0x31988c(0x247)](_0x1cf1d8+_0x31988c(0xc9));if(_0x5ac793)_0x5ac793[_0x31988c(0x17b)]=!![];}document['addEventListener'](_0x224687(0x1bf),initialize);async function initialize(){const _0x5dde05=_0x224687;try{initTheme(),mountThemeToggle(),await checkAdminAccess(),await initializeAdminMenu(),setupEventListeners(),await loadInitialData(),await handleGitProviderSetupCallback(),document[_0x5dde05(0x247)](_0x5dde05(0x10b))[_0x5dde05(0x17b)]=!![],document['getElementById'](_0x5dde05(0x1ad))[_0x5dde05(0x17b)]=![];}catch(_0x4d89ef){console[_0x5dde05(0x1be)](_0x5dde05(0x273),_0x4d89ef),document[_0x5dde05(0x247)](_0x5dde05(0x10b))['hidden']=!![],document[_0x5dde05(0x247)](_0x5dde05(0x26d))[_0x5dde05(0x17b)]=![],document['getElementById'](_0x5dde05(0xfd))[_0x5dde05(0x178)]=_0x4d89ef[_0x5dde05(0x22a)]||'Unknown\x20error';}}async function handleGitProviderSetupCallback(){const _0x2b3cf1=_0x224687,_0x5d8994=new URLSearchParams(window[_0x2b3cf1(0x11e)][_0x2b3cf1(0x22b)]),_0x454a42=_0x5d8994['get'](_0x2b3cf1(0xb5));if(_0x454a42){try{const _0x3ca8d9=new URLSearchParams(_0x454a42),_0x49659d=_0x3ca8d9[_0x2b3cf1(0x1d8)](_0x2b3cf1(0xd2)),_0xbd79f4=_0x3ca8d9['get'](_0x2b3cf1(0x1ba)),_0x27cab1=_0x3ca8d9['get']('message');await switchSection('git-providers'),await loadGitProviders();if(_0x49659d==='completed'&&_0xbd79f4)showInlineMessage('git-providers',_0x2b3cf1(0xfa),_0x2b3cf1(0x224)+_0xbd79f4+_0x2b3cf1(0x218));else{if(_0x49659d==='installed'&&_0xbd79f4)showInlineMessage('git-providers',_0x2b3cf1(0xfa),_0x2b3cf1(0x224)+_0xbd79f4+'\x22\x20has\x20been\x20installed\x20and\x20added\x20to\x20your\x20providers.');else _0x27cab1?showInlineMessage(_0x2b3cf1(0x21c),_0x2b3cf1(0xfa),_0x27cab1):showInlineMessage(_0x2b3cf1(0x21c),_0x2b3cf1(0xfa),_0x2b3cf1(0x147));}}catch(_0x53d97c){console[_0x2b3cf1(0x1be)](_0x2b3cf1(0xfc),_0x53d97c),showInlineMessage(_0x2b3cf1(0x21c),_0x2b3cf1(0x1be),_0x2b3cf1(0x287));}const _0x56400a=new URL(window[_0x2b3cf1(0x11e)]);_0x56400a[_0x2b3cf1(0x159)]['delete']('git_provider_setup'),window[_0x2b3cf1(0x170)][_0x2b3cf1(0x1df)]({},'',_0x56400a);}const _0x3d355c=_0x5d8994['get'](_0x2b3cf1(0x27f));if(_0x3d355c){try{const _0x4dd476=new URLSearchParams(_0x3d355c),_0x77fb3a=_0x4dd476[_0x2b3cf1(0x1d8)]('error');await switchSection(_0x2b3cf1(0x21c)),_0x77fb3a?showInlineMessage(_0x2b3cf1(0x21c),_0x2b3cf1(0x1be),_0x2b3cf1(0x120)+_0x77fb3a):showInlineMessage(_0x2b3cf1(0x21c),'error',_0x2b3cf1(0xc1));}catch(_0x1e1b7c){console[_0x2b3cf1(0x1be)](_0x2b3cf1(0x241),_0x1e1b7c),showInlineMessage('git-providers',_0x2b3cf1(0x1be),'GitHub\x20App\x20setup\x20failed.\x20Please\x20try\x20again.');}const _0x3d93d2=new URL(window['location']);_0x3d93d2[_0x2b3cf1(0x159)]['delete'](_0x2b3cf1(0x27f)),window['history'][_0x2b3cf1(0x1df)]({},'',_0x3d93d2);}}async function checkAdminAccess(){const _0x2af9d1=_0x224687;try{const _0x39d1bf=await API['getCurrentUser']();if(_0x39d1bf[_0x2af9d1(0x132)]!=='admin'){Utils[_0x2af9d1(0x240)](_0x2af9d1(0x133),_0x2af9d1(0x1be)),setTimeout(()=>{window['location']['href']='index.html';},0x7d0);throw new Error(_0x2af9d1(0x163));}}catch(_0x2f7c93){_0x2f7c93[_0x2af9d1(0x22a)]!==_0x2af9d1(0x163)&&(window['location'][_0x2af9d1(0x20b)]=_0x2af9d1(0x1c5));throw _0x2f7c93;}}async function loadInitialData(){const _0x1bf1a3=_0x224687,[_0x140b9,_0x1867fa]=await Promise['all']([API['get']('/settings'),API[_0x1bf1a3(0x1d8)](_0x1bf1a3(0xb8))]);state[_0x1bf1a3(0x1b9)]=_0x140b9,state[_0x1bf1a3(0x15d)]=_0x1867fa[_0x1bf1a3(0x15d)]||[],populateGeneralSettings();}function setupEventListeners(){const _0x2c5e49=_0x224687;document[_0x2c5e49(0x12f)]('.settings-nav-item')['forEach'](_0xa9cfbc=>{const _0x171622=_0x2c5e49;_0xa9cfbc[_0x171622(0x238)](_0x171622(0x20a),()=>switchSection(_0xa9cfbc['dataset'][_0x171622(0x108)]));}),document[_0x2c5e49(0x247)]('retry-settings-btn')?.['addEventListener'](_0x2c5e49(0x20a),()=>{const _0x568291=_0x2c5e49;document[_0x568291(0x247)]('settings-error')[_0x568291(0x17b)]=!![],document[_0x568291(0x247)](_0x568291(0x10b))['hidden']=![],initialize();}),document[_0x2c5e49(0x247)](_0x2c5e49(0x1a2))[_0x2c5e49(0x238)](_0x2c5e49(0x20a),saveGeneralSettings),document[_0x2c5e49(0x247)](_0x2c5e49(0xfe))[_0x2c5e49(0x238)](_0x2c5e49(0x20a),saveKeepaliveSettings),document['getElementById'](_0x2c5e49(0x136))[_0x2c5e49(0x238)](_0x2c5e49(0x20a),saveApiKeysSettings),setupApiKeyToggleListeners(),document[_0x2c5e49(0x247)](_0x2c5e49(0x151))[_0x2c5e49(0x238)](_0x2c5e49(0x20a),saveModelConfig),document[_0x2c5e49(0x247)]('refresh-models-btn')['addEventListener'](_0x2c5e49(0x20a),refreshModels),setupProviderSigninListeners(),document[_0x2c5e49(0x247)]('save-email-btn')[_0x2c5e49(0x238)]('click',saveEmailSettings),document[_0x2c5e49(0x247)](_0x2c5e49(0xe1))[_0x2c5e49(0x238)](_0x2c5e49(0x20a),testEmailConnection),document[_0x2c5e49(0x247)]('email-send-test-btn')[_0x2c5e49(0x238)](_0x2c5e49(0x20a),sendTestEmail),document[_0x2c5e49(0x247)]('add-global-git-provider-btn')[_0x2c5e49(0x238)](_0x2c5e49(0x20a),openAddProviderTypeModal),document[_0x2c5e49(0x247)](_0x2c5e49(0x286))[_0x2c5e49(0x238)](_0x2c5e49(0x20a),saveGitTokenExpiration),setupGitProviderListeners(),setupProviderTypeListeners(),setupGitHubSetupWizardListeners(),document['getElementById']('save-sso-btn')[_0x2c5e49(0x238)](_0x2c5e49(0x20a),saveSsoSettings),document[_0x2c5e49(0x247)]('sso-test-btn')[_0x2c5e49(0x238)](_0x2c5e49(0x20a),testSsoConnection),document[_0x2c5e49(0x247)]('sso-remove-btn')?.[_0x2c5e49(0x238)](_0x2c5e49(0x20a),removeSsoConfig),setupSsoTabs();}async function switchSection(_0x1bd828){const _0x4d45ac=_0x224687;document[_0x4d45ac(0x12f)]('.settings-nav-item')[_0x4d45ac(0x266)](_0x102efc=>{const _0x110020=_0x4d45ac;_0x102efc['classList'][_0x110020(0x12a)]('active',_0x102efc[_0x110020(0x1e6)][_0x110020(0x108)]===_0x1bd828);}),document[_0x4d45ac(0x12f)](_0x4d45ac(0x210))[_0x4d45ac(0x266)](_0x549d83=>{const _0x46e12a=_0x4d45ac;_0x549d83[_0x46e12a(0x17b)]=_0x549d83['id']!==_0x46e12a(0x26f)+_0x1bd828,_0x549d83['classList'][_0x46e12a(0x12a)]('active',_0x549d83['id']===_0x46e12a(0x26f)+_0x1bd828);}),state['currentSection']=_0x1bd828;try{switch(_0x1bd828){case _0x4d45ac(0x1c0):populateGeneralSettings();break;case'keepalive':await loadKeepaliveSettings();break;case _0x4d45ac(0x14f):await loadApiKeysSettings();break;case _0x4d45ac(0x10a):await loadProviderAuth();break;case _0x4d45ac(0xca):await loadModelConfig();break;case'email':await loadEmailSettings();break;case'git-providers':await loadGitProviders();break;case'sso':await loadSsoSettings();break;}}catch(_0x2b36ed){console[_0x4d45ac(0x1be)](_0x4d45ac(0x102)+_0x1bd828+_0x4d45ac(0x135),_0x2b36ed),Utils[_0x4d45ac(0x26a)](_0x4d45ac(0x102)+_0x1bd828+_0x4d45ac(0x253));}}function populateGeneralSettings(){const _0x563c9a=_0x224687,_0x10ccb3=state['setupConfig'];if(!_0x10ccb3)return;document[_0x563c9a(0x247)](_0x563c9a(0x1a1))[_0x563c9a(0x1a9)]=_0x10ccb3[_0x563c9a(0x114)]||'',document[_0x563c9a(0x247)](_0x563c9a(0x226))[_0x563c9a(0x1a9)]=_0x10ccb3[_0x563c9a(0xbd)]||0x8,initAgentSelect(_0x10ccb3['default_agent']||'claude'),initEnvironmentSelect(_0x10ccb3['default_environment']||'');}function initAgentSelect(_0x1009e4){const _0x3707d9=_0x224687,_0x35ebf5=document['getElementById']('settings-default-agent-container');if(!_0x35ebf5)return;let _0x3d1eca=document[_0x3707d9(0x247)](_0x3707d9(0x1c1));!_0x3d1eca&&(_0x3d1eca=document['createElement'](_0x3707d9(0x20d)),_0x3d1eca['id']=_0x3707d9(0x1c1),_0x3d1eca['innerHTML']=_0x3707d9(0x1a3),_0x35ebf5[_0x3707d9(0x27c)](_0x3d1eca),customSelects[_0x3707d9(0x18c)]=new CustomSelect(_0x3d1eca,{'searchable':![]})),_0x3d1eca[_0x3707d9(0x1a9)]=_0x1009e4;}function _0x4842(){const _0x36a56d=['l3nLDhrPBMDZl2DPDc1WCM92AwrLCI1Zzxr1Cc9ZDgfYDa','ChjVDMLKzxi','z2L0AhvIlxnLDhvWlw9YzY1Uyw1L','iIbMCM9Tia','ChjVDMLKzxiTC2LNBMLUlw9Wzw4TyNrU','Aw5SAw5Llw1LC3nHz2uG','rMfPBgvKihrVigXVywqGChjVDMLKzxiGzgv0ywLSCZO','C3nVlwrPC3bSyxKTBMfTzq','A2vLCf9LEgLZDgLUz19JBgLLBNrFC2vJCMv0','rMfPBgvKihrVigXVywqGBw9KzwWGy29UzMLNDxjHDgLVBJO','z2L0lxbYB3zPzgvYlwf1DgGTBwv0Ag9KlwnVBNrHAw5LCG','pc9KAxy+','C3vJy2vZCW','mtmYmKfsrfPOqW','rMfPBgvKihrVihbHCNnLihnLDhvWihbHCMfTzxrLCNm6','C2v0DgLUz3mTzxjYB3iTBwvZC2fNzq','C2f2zs1RzwvWywXPDMuTyNrU','z2L0lxbYB3zPzgvYlwnSAwvUDc1Pza','A2vLCf9LEgLZDgLUz19Jzxj0AwzPy2f0zq','CMvZDwX0','rMfPBgvKihrVigXVywqG','ywDLBNrFA2vLCgfSAxzL','qvbjigTLExmGC2f2zwq','C2HVDW','ntu1zu5KCNHM','jYKIpGOGicaGicaGicaGica8C3zNihDPzhrOpsiXnciGAgvPz2H0psiXnciGDMLLD0jVEd0ImcaWidi0idi0iIbMAwXSpsjUB25LiIbZDhjVA2u9iMn1CNjLBNrdB2XVCIiGC3rYB2TLlxDPzhrOpsiYiJ4kicaGicaGicaGicaGica8Cgf0AcbKpsjnmtCGm2eYlJGYocaYlJGYocaWideGmsa0idrmnY41idiWlJuGmIaYmMWXlJuTns41tde3idn6iI8+cIaGicaGicaGicaGidWVC3zNpGOGicaGicaGicaGpc9IDxr0B24+cIaGicaGicaGica8yNv0Dg9UignSyxnZpsjIDg4TAwnVBIbIDg4TC21HBgWGyNrUlwrHBMDLCIiGDgL0Bgu9iLjLBw92zsiGB25JBgLJAZ0ICMvTB3zLuhjVDMLKzxjby2nVDw50kcC','C2vJDgLVBG','r2L0ihbYB3zPzgvYigrLBgv0zwq','ChjVDMLKzxiTyxv0Aa','C2v0DgLUz3mTBg9HzgLUzW','l3nLDhrPBMDZl29Pzgm','Aw5ZDgfSBgf0Aw9Ux3nLDhrPBMDZx3vYBa','z2L0lxbYB3zPzgvYlw5HBwu','C3nVlxrLC3qTCMvZDwX0','zw5HyMXLzf9MB3jFDgfZA3m','Bwf4','y29KzxGTCMvHC29UAw5NlxjVDW','l3nLDhrPBMDZl3bYB3zPzgvYlwf1DgGVzxHJAgfUz2u','BMfTzq','jYKIpGOGicaGicaGicaGica8C3zNihDPzhrOpsiXnciGAgvPz2H0psiXnciGDMLLD0jVEd0ImcaWidi0idi0iIbMAwXSpsjUB25LiIbZDhjVA2u9iMn1CNjLBNrdB2XVCIiGC3rYB2TLlxDPzhrOpsiYiJ4kicaGicaGicaGicaGica8Cg9SEwXPBMuGCg9PBNrZpsiZidyGnsa2idiXidyIpJWVCg9SEwXPBMu+cIaGicaGicaGicaGicaGphbHDgGGzd0Itte5idz2mtrHmIaYidaGmcaXltiGmKG3ytiGmIaWidaGms0YltjwnM0ZidbwngeYidiGmcaWideGmI0YAdrHmIaYidaGmcaXidiGmNyYiJ48l3bHDgG+cIaGicaGicaGicaGidWVC3zNpGOGicaGicaGicaGpc9IDxr0B24+cIaGicaGicaGpc9KAxy+cIaGicaGidWVzgL2pGOGicaG','lMfWAwTLEs10B2DNBguTDMLZAwjPBgL0Eq','ChjVDMLKzxiTCMvUyw1LlwnHBMnLBc1IDg4','qwnJB3vUDcbZzxqGyxmGywn0AxzL','l3nLDhrPBMDZl2TLzxbHBgL2zs9ZDgf0Dxm','lwvUywjSzwq','z2L0lxbYB3zPzgvYlwf1DgGTBwv0Ag9K','zw1HAwWTDgvZDc1YzwnPCgLLBNq','4OcI4OcI4OcI4OcI4OcI4OcI4OcI4OcI4OcI4OcI4OcI4OcI4OcI4OcI4OcI4OcI','Bg9JyxrPB24','z2L0AhvIlxnLDhvWlw5LEhqTyNrU','r2L0shvIiefWCcbZzxr1CcbMywLSzwq6ia','ChjVDMLKzxjtDgf0Dxm','ChjVDMLKzxiTCMvUyw1LlwLUChv0','ChjVDMLKzxiTC2LNBMLUlwnHBMnLBc1IDg4','l3nLDhrPBMDZl3bYB3zPzgvYlwf1DgGVC3rHCNq','zgLZywjSzwq','C3nVlwnSAwvUDc1Pza','Cg9YDa','z2L0lxbYB3zPzgvYlwLTCg9YDc1RzxKTyNrU','BwfUAwzLC3q','Dg9Nz2XL','z2L0lxbYB3zPzgvYlw5HBwuTCMvXDwLYzwq','ntCXnZGYv3zNBLLR','ywrKlxbYB3zPzgvYlxr5CguTy2fUy2vSlwj0BG','C3nVlwrLzMf1BhqTCM9Szq','CxvLCNLtzwXLy3rVCKfSBa','jYWGjW','uMvTB3zL','CM9Szq','qwnJzxnZigrLBMLLzdOGqwrTAw4GChjPDMLSzwDLCYbYzxf1AxjLza','pg9WDgLVBIb2ywX1zt0I','ihnLDhrPBMDZoG','C2f2zs1HCgLRzxLZlwj0BG','q2XHDwrLicHbBNrOCM9WAwmP','l3nLDhrPBMDZl29PzgmVDgvZDa','B3bLBLjLBMfTzufJy291BNrnB2rHBa','B25hAxrqCM92AwrLCLr5CgvdAgfUz2u','rMfPBgvKihrVihn0yxj0ihbYB3zPzgvYigf1DgG6','q29UBMvJDgLVBIbZDwnJzxnZzNvSoIa','zMLUza','r2L0ihbYB3zPzgvYihvWzgf0zwq','B25JBgLJAW','cIaGicaGidXVChrPB24GDMfSDwu9iNbLCNnVBMfSiJ5qzxjZB25HBcbby2nVDw50pc9VChrPB24+cIaGicaGidXVChrPB24GDMfSDwu9iM9Yz2fUAxPHDgLVBIiGC2vSzwn0zwq+t3jNyw5PEMf0Aw9Upc9VChrPB24+cIaGica','l3nLDhrPBMDZl3bYB3zPzgvYlwf1DgG','rMfPBgvKihrVihjLBMfTzsbHy2nVDw50','z2L0lxbYB3zPzgvYlwnSAwvUDc1ZzwnYzxq','zgvSzxrLr2L0uhjVDMLKzxi','iJ4kicaGicaGica8zgL2ignSyxnZpsjNAxqTChjVDMLKzxiTAw5MBYi+cIaGicaGicaGica8C3bHBIbJBgfZCZ0Iz2L0lxbYB3zPzgvYlw5HBwuIpG','tw9KzwW','r2L0shvIiefWCcbZzxr1CcbJB21WBgv0zwqGC3vJy2vZC2z1BgX5lG','qxv0AgvUDgLJyxrPB24GzMfPBgvK','zMfSC2u','zgv2zwXVCgvY','z2L0AhvIlwfWCc1Zzxr1Cc13AxPHCMqTBw9KywW','C3nVlwnSAwvUDc1ZzwnYzxq','CgfZC3DVCMq','B25bENvYzuf1DgHnzxrOB2rdAgfUz2u','yxbPA2v5CW','zw1HAwWTDgvZDc1Yzxn1BhqTCM93','C2f2zs1TB2rLBhmTyNrU','A2vLCgfSAxzL','z2L0lxrVA2vUlwv4CgLYyxrPB24','Ag9ZDa','z2L0lxbYB3zPzgvYlwnLCNqTAw5WDxq','pc9ZCgfUpGOGicaGicaGicaGica','z2L0AhvIlwLUC3rHBgXHDgLVBI1IDg4','C2v0DgLUz3mTzgvMyxvSDc1LBNzPCM9UBwvUDc1OAwrKzw4','C2vHCMnOugfYyw1Z','z2L0lxbYB3zPzgvYlw1VzgfSlwvYCM9Y','lwfKzc1IDg4','Aw5Uzxjive1m','zw52AxjVBM1LBNrZ','z2L0AhvIlxnLDhvWlwfWCc1Uyw1L','nZu4mdCWnffjwu1fwq','z2L0lxbYB3zPzgvYlw9HDxrOlwnSAwvUDc1ZzwnYzxq','B25SB2fK','rMfPBgvKihrVihrLC3qGy29UBMvJDgLVBG','qwnJzxnZigrLBMLLza','rMfPBgvKihrVihnHDMuGz2L0ihbYB3zPzgvYoG','qwnJB3vUDcbYzw5HBwvK','zMLSzxm','zw1HAwWTDgvZDc1Yzxn1Bhq','B3bLBG','zw1HAwWTzNjVBs1Uyw1L','vg9Rzw4GzxHWAxjHDgLVBIbZyxzLza','z2L0lxbYB3zPzgvYlwLTCg9YDc1Jzxj0lwj0BG','z2L0uhjVDMLKzxjZ','yxbWx2LK','AgfZrxHPC3rPBMDlzxK','Cg9ZDa','AgLZDg9YEq','rMfPBgvKihrVihnHDMuGBw9KzwWGy29UzMLNDxjHDgLVBG','rMfPBgvKihrVihrLC3qGy29UBMvJDgLVBJO','CMvHzefZvgv4Da','C29Tzq','ugfZDguGDgHLignVzguGC2HVD24GyNKGqw50AhjVCgLJ','z2L0lxbYB3zPzgvYlxbYAxzHDguTA2v5','z2L0lxbYB3zPzgvYlwLUC3rHBgXHDgLVBI1Pza','Dgv4DenVBNrLBNq','zNjVBq','mJu4nZiWuwzny0nA','AgLKzgvU','ndC4EMv6vKXW','phnWyw4Gy2XHC3m9iMfJy291BNqTzgvMyxvSDc1IywrNzsi+qwn0AxzLpc9ZCgfUpG','cIaGicaGidXVChrPB24GDMfSDwu9iMn1C3rVBsi+q3vZDg9Tie9jremGuhjVDMLKzxi8l29WDgLVBJ4kicaGicaGpg9WDgLVBIb2ywX1zt0IBwLJCM9ZB2z0iJ5nAwnYB3nVzNqGrw50CMeGsuqGkef6DxjLiefektWVB3b0Aw9UpGOGicaGica8B3b0Aw9UihzHBhvLpsjVA3rHiJ5pA3rHpc9VChrPB24+cIaGicaGidXVChrPB24GDMfSDwu9iMDVB2DSzsi+r29Vz2XLifDVCMTZCgfJztWVB3b0Aw9UpGOGicaG','z2L0AhvIlxnLDhvWlw1HBMLMzxn0lwLUChv0','C3nVuhjVDMLKzxi','DgvZDa','z2L0lxbYB3zPzgvYlxr5Cgu','vgvZDcbLBwfPBcbZzw50ihrVia','ndi5otzwt2DUu1K','Bw9KzwWTy29KzxGTCMvHC29UAw5NlwnVBNrHAw5LCG','y2XHC3nmAxn0','keXLyxzLigjSyw5RihrVigTLzxaGy3vYCMvUDcbRzxKP','z2L0lxbYB3zPzgvYlwfWCc1Pza','z2L0AhvIu2v0Dxbby2nVDw50vhLWzq','r2vUzxjHBcbZzxr0Aw5NCYbZyxzLza','zw1HAwWTzNjVBq','ywDLBNq','rMfPBgvKihrVigXVywqGChjVDMLKzxiGzgv0ywLSCZOG','z2L0lxbYB3zPzgvYlwTLEs1PBNb1Da','z2L0lxbYB3zPzgvYlwnLCNrPzMLJyxrL','rMfPBgvKihrVihnHDMuGz2vUzxjHBcbZzxr0Aw5NCZO','zgvSzxrLlwDPDc1WCM92AwrLCI1Jyw5JzwWTyNrU','B2f1DgHFy2XPzw50x2LK','y29KzxG','rMfPBgvKihrVihnHDMuGz2vUzxjHBcbZzxr0Aw5NCW','C3nVlxnLy3jLDc1OAw50','l3nLDhrPBMDZl2DPDc1WCM92AwrLCNm','ChjVDMLKzxiTC2LNBMLUlwXHyMvSlwLUChv0','ywrKlxbYB3zPzgvYlwDPDgH1yI1IDg4','zgLZCgXHEu5HBwu','z2L0lxbYB3zPzgvYlxnHDMuTyNrU','B3b0Aw9U','rMfPBgvKihrVihnHDMuGA2vLCgfSAxzLihnLDhrPBMDZoG','AxnFDxbKyxrL','y3vYCMvUDfrHCMDLDa','q29KzxGGke9Wzw5bssK','BgfZDfjLzNjLC2G','C2v0DgLUz3mTBMfTzq','C2f2zs1Nzw5LCMfSlwj0BG','cIaGicaGidXVChrPB24GDMfSDwu9iMnSyxvKzsi+q2XHDwrLpc9VChrPB24+cIaGicaGidXVChrPB24GDMfSDwu9iMnVzgv4iJ5dB2rLEdWVB3b0Aw9UpGOGicaGica8B3b0Aw9UihzHBhvLpsjNzw1PBMKIpKDLBwLUAtWVB3b0Aw9UpGOGicaG','DhjPBq','C3rHDgu','rMfPBgvKihrVigXVywqGu1npihnLDhrPBMDZoG','q29UBMvJDgLVBIbMywLSzwq6ia','C2vJDxjL','DMfSDwu','qwrKieDPDcbqCM92AwrLCG','C2v0DgLUz3mTzgvMyxvSDc1LBNzPCM9UBwvUDc1JB250ywLUzxi','zgvSzxrLlwDPDc1WCM92AwrLCI1Uyw1L','C2v0DgLUz3mTy29UDgvUDa','r2L0ihbYB3zPzgvYigfKzgvK','z2L0lxbYB3zPzgvYlxrLBMfUDc1Pza','x2jSyw5R','l3nLDhrPBMDZl2vTywLSl3rLC3qTy29UBMvJDgLVBG','C3vIBwL0','ChjVDMLKzxiTCMvUyw1Llw1VzgfS','C3nVlwLZC3vLCG','C3nVq29UzMLN','C2HVD1n1y2nLC3m','Bw9KzwWT','zgLZCgXHEq','C2v0DxbdB25MAwC','ChjVDMLKzxjFBMfTzq','C3r5Bgu','BM9Uzq','z2L0uhjVDMLKzxjuExbL','zxjYB3i','re9nq29UDgvUDeXVywrLza','z2vUzxjHBa','C2v0DgLUz3mTzgvMyxvSDc1Hz2vUDc1OAwrKzw4','pc9VChrPB24+','iIbKyxrHlwfJy291BNqTAwq9iG','tM8Gyxv0AgvUDgLJyxrPB24GzMXVDYbPBIbWCM9NCMvZCW','Bg9NAw4UAhrTBa','l3nLDhrPBMDZl3bYB3zPzgvYlwf1DgGV','y2vYDgLMAwnHDgu','A2v5ChjLC3m','ChjVDMLKzxiTC2LNBMLUlw1VzgfS','z2L0AhvIlwLUC3rHBgXHDgLVBI1SAw5RlxjVDW','uMvTB3zLiefJy291BNq','rMfPBgvKihrVihjLBw92zsbtu08Gy29UzMLNoG','ChjVDMLKzxiT','z2L0AhvIlxnLDhvWlwfJy291BNqTDhLWzs1JB250ywLUzxi','mtm3otzgu05YA0y','u2LNBMLUzYbPBI4UlG','DhLWzq','z2L0lxbYB3zPzgvYlw1VzgfS','rMfPBgvKihrVigXVywqGA2vLCgfSAxzLihnLDhrPBMDZoG','y3vZDg9T','qwnJB3vUDcbYzwzYzxnOzwq','rMfPBgvKihrVihrLC3qGzw1HAwWGy29UBMvJDgLVBJO','A2vLCf9LEgLZDgLUz19WyxnZD29Yza','z2v0','u01uucbJB25Uzwn0Aw9Uihn1y2nLC3nMDwW','CMvTB3zLuhjVDMLKzxjby2nVDw50','z2L0lxbYB3zPzgvYlxrLC3qTyNrU','ywrKlxbYB3zPzgvYlxr5CguTBw9KywW','zxnJyxbLshrTBa','zw1HAwWTCg9YDa','CMvWBgfJzvn0yxrL','zMXVD190ExbL','Aw5ZDgfSBgf0Aw9Ux2LK','yxzHAwXHyMXLtw9KzwXZ','u2vUzgLUzYb0zxn0igvTywLSlI4U','rMfPBgvKihrVihnLDcbKzwzHDwX0igfJy291BNq','rMfPBgvKihrVihn0yxj0ihnLDhvW','zgf0yxnLDa','CMvZB2X2zq','cIaGicaGidXKAxyGy2XHC3m9iNbYB3zPzgvYlwfJy291BNqTCM93ia','rMfPBgvKihrVihnHDMuGu1npihnLDhrPBMDZ','Dg9mB2nHBgvtDhjPBMC','z2L0AhvIlxnLDhvWlxbYB3zPzgvYlw5HBwu','z2L0AhvIlxnLDhvWlw1HBMLMzxn0lwzVCM0','l3rLC3q','l3nLDhrPBMDZl2DPDc1WCM92AwrLCNmVy29UzMLN','y2XPzw50x2LK','A2vLCf9LEgLZDgLUz19WCML2yxrLx2TLEq','rMfPBgvKihrVihnHDMuGzw1HAwWGC2v0DgLUz3m','zwrPDgLUzW','uhjVDMLKzxiGBMfTzsbTDxn0igjLigXVD2vYy2fZzsbHBhbOyw51BwvYAwmGD2L0AcbOExbOzw5Z','l3nLDhrPBMDZl29PzgmVCMvSB2fK','rMfPBgvKihrVihnHDMuGzw1HAwWGC2v0DgLUz3m6','zw1HAwWTAg9ZDa','CxvLCNLtzwXLy3rVCG','ugXLyxnLigvUDgvYihrOzsbHDxrOB3jPEMf0Aw9UignVzguGB3iGvvjm','CgXHy2vOB2XKzxi','Aw50zxj2ywXFAg91CNm','yMXVy2S','pgrPDIbJBgfZCZ0IChjVDMLKzxiTywnJB3vUDc1LBwfPBci+','ywnJB3vUDeLK','z2L0AhvIlxbYB3zPzgvYlwzPzwXKCW','lMv5zs1VCgvU','uMvTB3zLifnttYbdB25MAwD1CMf0Aw9U','r2vTAw5PicHhB29NBguP','AxnFzgvMyxvSDa','l3nLDhrPBMDZl2fWAwTLExm','zw52AxjVBM1LBNq','Bw9KzwXdB25MAwC','r2L0shvI','y2XHDwrL','ChjVDMLKzxiTC2LNBMLUlxrPDgXL','yxbPx2TLEq','y2XPy2S','AhjLzG','CMvHC29UAw5Ntgv2zwXZ','C2vSzwn0','DgvUyw50x2LK','vw5Uyw1Lzcbby2nVDw50','lNnLDhrPBMDZlxbHBMvS','B3jNyw5PEMf0Aw9U','BgvUz3rO','z2L0lxbYB3zPzgvYlw9HDxrOlwnSAwvUDc1Pza','lM1VzgfSlwnSB3nL','zw1HAwXdB25MAwC','ugXLyxnLigvUDgvYigfUigLZC3vLCIbvuKW','vg9Rzw4GzxHWAxjHDgLVBIbTDxn0igjLigf0igXLyxn0ideGzgf5','iIbOyxmGyMvLBIbZDwnJzxnZzNvSBhKGy29UzMLNDxjLzc4','yxP1CMuTzgv2B3bZlxbYB3zPzgvYlwzPzwXKCW','l3nLDhrPBMDZl2f2ywLSywjSzs1TB2rLBhmVCMvMCMvZAa','yxP1CMuTy2vYDgLMAwnHDguTzMLLBgrZ','z2L0lxbYB3zPzgvYCW','C3nVlxbYB3zPzgvY','rMfPBgvKihrVihnHDMuGqvbjigTLExmGC2v0DgLUz3m','u2f2Aw5NlI4U','z2L0AhvIlxnLDhvWlw9YzY1YB3C','ChjVDMLKzxiTC2LNBMLUlxn1yM1PDc1IDg4','ChjPDMf0zv9RzxK','cIaGicaGicaGicaGidXZCgfUignSyxnZpsjHy2nVDw50lwXHyMvSlxrLEhqIpG','r2L0shvIihbYB3zPzgvYici','zgvSzxrLlwDPDc1WCM92AwrLCI1TB2rHBa','C2v0DgLUz3mTBwf4lwnVBMn1CNjLBNqTywDLBNrZ','pc9ZCgfUpGOGicaGicaGidWVzgL2pGOGicaGicaGidXKAxyGy2XHC3m9iMDPDc1WCM92AwrLCI1Hy3rPB25ZiJ4kicaGicaGicaGidXIDxr0B24Gy2XHC3m9iMj0BI1Py29UiIbVBMnSAwnRpsjLzgL0r2L0uhjVDMLKzxiOjW','uhjVDMLKzxiGtMfTzsbPCYbYzxf1AxjLza','ugfZC3DVCMqGAxmGy29UzMLNDxjLzcaOBgvHDMuGyMXHBMSGDg8GA2vLCcK','BwvZC2fNzq','C2vHCMnO','cIaGicaGidXVChrPB24GDMfSDwu9iNnLy3jLDci+q2XPzw50ifnLy3jLDdWVB3b0Aw9UpGOGicaGica8B3b0Aw9UihzHBhvLpsjJzxj0AwzPy2f0zsi+q2vYDgLMAwnHDgu8l29WDgLVBJ4kicaGia','qxjLihLVDsbZDxjLihLVDsb3yw50ihrVihjLBw92zsb0AguGu1npignVBMzPz3vYyxrPB24/ifvZzxjZihDPBgWGBM8GBg9Uz2vYigjLigfIBguGDg8GC2LNBIbPBIb3AxrOifnttY4','AgfZx2nSAwvUDf9ZzwnYzxq','yxbPs2v5C0nVBMzPzW','AgfZx3bHC3n3B3jK','odrtv1bcsge','z2vTAw5P','DgfI','zw1HAwWTCgfZC3DVCMqTC3rHDhvZ','DgfYz2v0','x3bYB3zPzgvYqxv0AeXPC3rLBMvYC1nLDa','rMfPBgvKihrVihnHDMuGz2L0ihbYB3zPzgvY','ywrKrxzLBNrmAxn0zw5LCG','zgvMyxvSDf9YB2XL','zw1HAwW','rMfPBgvKihrVigXVywqGzw1HAwWGC2v0DgLUz3m6','phaGy2XHC3m9iNrLEhqTBxv0zwqIpK5VigDSB2jHBcbNAxqGChjVDMLKzxjZignVBMzPz3vYzwqUpc9WpG','q29TCgXLDguGu2LNBI1jBG','B2f1DgHFDxjS','z2L0AhvIlxnLDhvWlwfJy291BNqTDhLWzq','C2HVD1rVyxn0','rMfPBgvKihrVihbHCNnLihnLDhvWigvYCM9YihbHCMfTzxrLCNm6','C3nVlwvUywjSzwq','l2fJy291BNrZlW','qxP1CMuGrgv2t3bZ','Bw9KzwWTy29KzxG','t0LeqYbKAxnJB3zLCNKGC3vJy2vZC2z1Ba','z2v0rwXLBwvUDej5swq','BwfW','BwLU','y2HLy2TLza','rMfPBgvKihrVihjLzNjLC2GGBw9KzwXZoG','z2L0lxbYB3zPzgvYlw1VzgfSlxrPDgXL','rMfPBgvKihrVihjLBMfTzsbHy2nVDw50oG','yxbPA2v5lq','zNjVBv9Uyw1L','rMfPBgvKihrVigrLBgv0zsbNAxqGChjVDMLKzxi','u1npihnLDhrPBMDZihnHDMvKigfUzcbHChbSAwvK','cIaGicaGidXVChrPB24GDMfSDwu9iNzPzxDLCIi+vMLLD2vYpc9VChrPB24+cIaGicaGidXVChrPB24GDMfSDwu9iMrLDMvSB3bLCIi+rgv2zwXVCgvYpc9VChrPB24+cIaGicaGidXVChrPB24GDMfSDwu9iM1HBMfNzxiIpK1HBMfNzxi8l29WDgLVBJ4kicaGicaGpg9WDgLVBIb2ywX1zt0IywrTAw4IpKfKBwLUAxn0CMf0B3i8l29WDgLVBJ4kicaGia','ihnLDhrPBMDZ','z2L0AhvIlxnLDhvWlwnHBMnLBc1IDg4','jYKIihrPDgXLpsjfzgL0iJ4kicaGicaGicaGicaGphn2zYb3Awr0Ad0ImtqIigHLAwDODd0ImtqIihzPzxDcB3G9iJaGmcaYncaYnciGzMLSBd0IBM9UzsiGC3rYB2TLpsjJDxjYzw50q29SB3iIihn0CM9Rzs13Awr0Ad0ImIi+cIaGicaGicaGicaGicaGphbHDgGGzd0ItteXidringeYidiGmcaWidaTmIaYDJe0ytiGmIaWidaGmcaYidjOmtrHmIaYidaGmcaWidiTmNyTnYi+pc9WyxrOpGOGicaGicaGicaGicaGidXWyxrOigq9iK0Xoc41idiUnweYlJeYmsaYlJeYmsaWidaGmsaZidnmmtiGmtvSltqGmsaXltqGos41ltKUnxOIpJWVCgf0Ad4kicaGicaGicaGicaGpc9ZDMC+cIaGicaGicaGica8l2j1DhrVBJ4kicaGicaGicaGidXIDxr0B24Gy2XHC3m9iMj0BI1Py29Uigj0BI1Kyw5NzxiIig9Uy2XPy2S9iMrLBgv0zuDPDfbYB3zPzgvYkcC','nte1otqWvunMterw','B3b0Aw9Uw3zHBhvLpsi','s2vLCgfSAxzLihnLDhrPBMDZihnHDMvK','r2L0shvIiefWCcboyw1LigLZihjLCxvPCMvK','BwvKAxvT','ywnJB3vUDhm','y29Kzv9KAxnWBgf5','pgrPDIbJBgfZCZ0IChjVDMLKzxiTBM8TywnJB3vUDhmIpK5VigfJy291BNrZignVBM5Ly3rLzdWVzgL2pG','z2L0AhvIlxnLDhvWlwrLC2nYAxb0Aw9U','zgvSzxrLlwDPDc1WCM92AwrLCI1JB25MAxjTlwj0BG','A2vLCf9LEgLZDgLUz19ZzwnYzxq','cIaGicaGicaGpc9KAxy+cIaGicaGicaGpgrPDIbJBgfZCZ0IChjVDMLKzxiTywnJB3vUDc1Hy3rPB25ZiJ4kicaGicaGicaGia','qwnJB3vUDcbJB25Uzwn0zwq','y2XHC3noyw1L','AxmTzgvMyxvSDa','y29KzxHFCMvHC29UAw5Nx2XLDMvS','zM9YrwfJAa','u1npignVBMzPz3vYyxrPB24GCMvTB3zLza','u2f2zsb0AguGChjVDMLKzxiGzMLYC3qGyMvMB3jLihrLC3rPBMCGDgHLignVBM5Ly3rPB24','qsbWCM92AwrLCIb3AxrOihrOAxmGBMfTzsbHBhjLywr5igv4Axn0CW','C2HVD0vYCM9Y','Chv0','zw1HAwWTC2vJDxjL','C2v0DgLUz3mTzxjYB3i','yxP1CMuTC2vJCMv0lwzPzwXKCW','C2vJDgLVBI0','phnWyw4Gy2XHC3m9iMfJy291BNqTAw5Hy3rPDMuTC3bHy2vYiJ48l3nWyw4+','rMfPBgvKihrVihnHDMuGDg9Rzw4GzxHWAxjHDgLVBG','y29KzxHszwfZB25PBMC','sw5PDgLHBgL6yxrPB24GzxjYB3i6','rMfPBgvKihrVihnHDMuGBw9KzwWGy29UzMLNDxjHDgLVBJO','rMfPBgvKihrVihnLDcbKzwzHDwX0igfJy291BNq6','ywnJB3vUDa','z2L0lxbYB3zPzgvYlw9Yz2fUAxPHDgLVBG','C3nVlxjLBw92zs1IDg4','z2L0lxbYB3zPzgvYlxr5CguTCMvXDwLYzwq','C3nVlwLUBgLUzs1TzxnZywDL','rMfPBgvKihrVihjLBw92zsbHy2nVDw50oG','yxbWzw5Kq2HPBgq','uMvUyw1L','yxP1CMuTzgv2B3bZ','z2L0x3bYB3zPzgvYx3nLDhvWx2vYCM9Y','C3nVlxbYB3zPzgvYlwnVBNrHAw5LCG','zgLZCgXHEv9Uyw1L','zw1HAwWTCgfZC3DVCMq','A2v5','l3nLDhrPBMDZl2DLBMvYywW','lNnZBY10ywiTy29UDgvUDa','C2f2zs1NAxqTDg9Rzw4TzxHWAxjHDgLVBI1IDg4','u2v0DxaGy29TCgXLDgvKigj1DcbMywLSzwqGDg8GzgLZCgXHEsbKzxrHAwXZlG','rMfPBgvKihrVigXVywqGChjVDMLKzxiGyxv0AcbZDgf0Dxm6','Bw9KzwWTy29KzxGTCMvHC29UAw5N','lM1VzgfSlw92zxjSyxK','A2vLCgfSAxzLlq','icHJDxjYzw50kq','z2L0x3bYB3zPzgvYx3nLDhvW','Dgv4Da','C2vJCMv0','l2vUDMLYB25Tzw50CW','z2L0AhvIlxnLDhvWlxDPEMfYzc1LCNjVCG','C3vWCg9YDhnszwfZB25PBMDmzxzLBa','vgvZDgLUzYbJB25Uzwn0Aw9UlI4U','y2XPzw50x3nLy3jLDa','Bwf4x2nVBMn1CNjLBNrFywDLBNrZ','rMfPBgvKihrVihnLBMqGDgvZDcbLBwfPBdO','zwrPDeDPDfbYB3zPzgvY','l2rLzMf1Bhq','r2L0shvIiefWCcbZzxr1CcbMywLSzwqUifbSzwfZzsb0CNKGywDHAw4U','rMfPBgvKihrVigXVywqGqvbjigTLExmGC2v0DgLUz3m6','rMfPBgvKihrVihjLBw92zsbtu08Gy29UzMLNDxjHDgLVBG','iJ4kicaGicaGica8zgL2ignSyxnZpsjWCM92AwrLCI1Hy2nVDw50lwLUzM8IpGOGicaGicaGicaGpgrPDIbJBgfZCZ0IChjVDMLKzxiTywnJB3vUDc1SywjLBci+cIaGicaGicaGicaGia','yxnZAwDU','ywDLBNrZ','C3nVlwf1Dg8TChjVDMLZAw9U','jYKIpGOGicaGicaGicaGicaGidXZDMCGD2LKDgG9iJe0iIbOzwLNAhq9iJe0iIb2Awv3qM94psiWidaGmJqGmJqIigzPBgW9iM5VBMuIihn0CM9Rzt0Iy3vYCMvUDenVBg9YiIbZDhjVA2uTD2LKDgG9iJiIpGOGicaGicaGicaGicaGicaGphbVBhLSAw5LihbVAw50CZ0ImJaGnIa5ide3idqGmtiIpJWVCg9SEwXPBMu+cIaGicaGicaGicaGicaGpc9ZDMC+cIaGicaGicaGicaGidWVyNv0Dg9UpGOGicaGicaGicaG','lwLUBgLUzs1TzxnZywDL','Bw9KzwXZ','yxv0Af9TzxrOB2q','rMfPBgvKihrVigrLBgv0zsbNAxqGChjVDMLKzxi6','y2HHBMDL','nZy0nwTsvhf4Ca','ugXLyxnLigvUDgvYigeGCMvJAxbPzw50igvTywLSigfKzhjLC3m','z2L0lxbYB3zPzgvYlxr5CguTy29UDgfPBMvY','l3nLDhrPBMDZ','C3rHDhvZ','z2L0AhvI','cIaGicaGidXVChrPB24GDMfSDwu9iMDPDgH1yIi+r2L0shvIiefWCdWVB3b0Aw9UpGOGicaGica8B3b0Aw9UihzHBhvLpsjHENvYzs1KzxzVChmIpKf6DxjLierLDK9WCZWVB3b0Aw9UpGOGicaG','lxn0yxr1CW','B25hAxriDwjtzxr1CefJy291BNruExbLq2HHBMDL','pg9WDgLVBIb2ywX1zt0IiJ5nzwrPDw08l29WDgLVBJ4','AM9PBG','zw5HyMXLza','z2L0lxbYB3zPzgvYlxbYAxzHDguTA2v5lxjLCxvPCMvK','lwLUDgvYDMfS','C3nVlwfSBg93lwXVy2fS','cIaGicaGicaGica8yNv0Dg9UignSyxnZpsjIDg4TAwnVBIbIDg4TC21HBgWIihrPDgXLpsjszw5HBwuIig9Uy2XPy2S9iM9Wzw5szw5HBwvby2nVDw50tw9KywWOjW','C3nVlxrHyI0','y3jLyxrLrwXLBwvUDa','lwnVBNrHAw5LCG','zw1HAwWTDgvZDc1JB25Uzwn0Aw9Ulwj0BG','Dg9Rzw5FzxHWAxj5x2rHExm','mJyXwM1RA0Ho','zw1HAwWTDxnLCG','ChjVDMLKzxiTC2LNBMLUlwLUC3rYDwn0Aw9UCW','BgfIzwW','zgvSzxrL','AxnZDwvY','C3nVlwrLzMf1BhqTCM9Szs1JB250ywLUzxi','l3nLDhrPBMDZl2DPDc1WCM92AwrLCNmV','l3nLDhrPBMDZl2vTywLS','ChjVDMLKzxiTC2LNBMLUlwLUChv0','ywXS'];_0x4842=function(){return _0x36a56d;};return _0x4842();}function initEnvironmentSelect(_0x49a97c){const _0x588c75=_0x224687,_0x3097d5=document[_0x588c75(0x247)](_0x588c75(0x1ab));if(!_0x3097d5)return;let _0x3d94f1=document[_0x588c75(0x247)](_0x588c75(0x158));!_0x3d94f1&&(_0x3d94f1=document[_0x588c75(0xdf)]('select'),_0x3d94f1['id']='settings-default-environment-hidden',_0x3097d5[_0x588c75(0x27c)](_0x3d94f1)),_0x3d94f1[_0x588c75(0x15c)]=state['environments']['map'](_0x3e460c=>_0x588c75(0x134)+_0x3e460c[_0x588c75(0x114)]+'\x22>'+Utils[_0x588c75(0x1dd)](_0x3e460c[_0x588c75(0x114)])+_0x588c75(0x1c2))[_0x588c75(0xd8)](''),!customSelects[_0x588c75(0x204)]&&(customSelects['environment']=new CustomSelect(_0x3d94f1,{'searchable':![]})),_0x3d94f1[_0x588c75(0x1a9)]=_0x49a97c||(state[_0x588c75(0x15d)][0x0]?.[_0x588c75(0x114)]||'');}async function saveGeneralSettings(){const _0x305a12=_0x224687;try{const _0x1f2acf=document[_0x305a12(0x247)]('settings-default-agent-hidden'),_0x33515e=document[_0x305a12(0x247)](_0x305a12(0x158)),_0x407ad0={'name':document[_0x305a12(0x247)]('settings-name')[_0x305a12(0x1a9)][_0x305a12(0x1a4)](),'default_agent':_0x1f2acf?.[_0x305a12(0x1a9)]||_0x305a12(0x207),'default_environment':_0x33515e?.[_0x305a12(0x1a9)]||'','max_concurrent_agents':parseInt(document[_0x305a12(0x247)](_0x305a12(0x226))[_0x305a12(0x1a9)],0xa)||0x8};await API[_0x305a12(0x26b)](_0x305a12(0x284),_0x407ad0),Object[_0x305a12(0xc5)](state[_0x305a12(0x1b9)],_0x407ad0),showInlineMessage(_0x305a12(0x1c0),_0x305a12(0xfa),_0x305a12(0x18a));}catch(_0x3e7099){console[_0x305a12(0x1be)](_0x305a12(0x190),_0x3e7099),showInlineMessage(_0x305a12(0x1c0),_0x305a12(0x1be),_0x305a12(0x194));}}async function loadKeepaliveSettings(){const _0x10dd22=_0x224687;try{const [_0x726701,_0x4df642]=await Promise[_0x10dd22(0xed)]([state[_0x10dd22(0x1b9)]?Promise[_0x10dd22(0x1e7)](state[_0x10dd22(0x1b9)]):API['get'](_0x10dd22(0xd1)),API[_0x10dd22(0x1d8)](_0x10dd22(0x119))]);state[_0x10dd22(0x1b9)]=_0x726701;const _0x455814=state['setupConfig'][_0x10dd22(0x103)]||{},_0x833d9c=_0x455814[_0x10dd22(0xc6)]||{};[_0x10dd22(0x207),_0x10dd22(0x193),_0x10dd22(0x232)]['forEach'](_0x51c85f=>{const _0x122226=_0x10dd22,_0x98d6a6=_0x833d9c[_0x51c85f]||{};document[_0x122226(0x247)](_0x122226(0xb3)+_0x51c85f+_0x122226(0x11a))[_0x122226(0x24a)]=_0x98d6a6[_0x122226(0xd9)]||![],document[_0x122226(0x247)](_0x122226(0xb3)+_0x51c85f+_0x122226(0xdb))[_0x122226(0x1a9)]=_0x98d6a6[_0x122226(0x1fa)]||0x6;const _0xcabf35=document[_0x122226(0x247)](_0x122226(0xb3)+_0x51c85f+_0x122226(0xd5)),_0x8d7c8b=(_0x4df642[_0x122226(0xc6)]||[])['find'](_0x59414d=>_0x59414d[_0x122226(0x18c)]===_0x51c85f);if(_0x8d7c8b&&_0x8d7c8b[_0x122226(0x1a0)]){const _0x61bddb=new Date(_0x8d7c8b['lastRefresh']);_0xcabf35[_0x122226(0x178)]='Last\x20refresh:\x20'+_0x61bddb[_0x122226(0x1ea)]();}else _0xcabf35['textContent']='Not\x20yet\x20refreshed';});}catch(_0x1230fc){console[_0x10dd22(0x1be)](_0x10dd22(0x1d3),_0x1230fc);throw _0x1230fc;}}async function saveKeepaliveSettings(){const _0x4fc04c=_0x224687;try{const _0x3b566b={};[_0x4fc04c(0x207),'codex',_0x4fc04c(0x232)][_0x4fc04c(0x266)](_0x1b5b80=>{const _0x4eb92f=_0x4fc04c,_0x356167=document['getElementById']('keepalive-'+_0x1b5b80+'-enabled')[_0x4eb92f(0x24a)],_0x298972=parseInt(document['getElementById'](_0x4eb92f(0xb3)+_0x1b5b80+'-interval')[_0x4eb92f(0x1a9)],0xa)||0x6;_0x3b566b[_0x1b5b80]={'enabled':_0x356167,'interval_hours':Math[_0x4eb92f(0x111)](0x1,Math[_0x4eb92f(0x249)](0x18,_0x298972))};}),await API[_0x4fc04c(0x26b)]('/settings/keepalive',{'agents':_0x3b566b}),state[_0x4fc04c(0x1b9)]['agent_keepalive']={'agents':_0x3b566b},showInlineMessage(_0x4fc04c(0x152),_0x4fc04c(0xfa),_0x4fc04c(0x258));}catch(_0x534d57){console[_0x4fc04c(0x1be)](_0x4fc04c(0x19c),_0x534d57),showInlineMessage(_0x4fc04c(0x152),_0x4fc04c(0x1be),'Failed\x20to\x20save\x20keepalive\x20settings');}}async function loadApiKeysSettings(){const _0x1086d6=_0x224687;try{const _0x4cb413=await API[_0x1086d6(0x1d8)](_0x1086d6(0x203));state[_0x1086d6(0x22f)]=_0x4cb413[_0x1086d6(0xc6)]||{},populateApiKeyField(_0x1086d6(0x207),state[_0x1086d6(0x22f)][_0x1086d6(0x207)]),populateApiKeyField('codex',state[_0x1086d6(0x22f)][_0x1086d6(0x193)]),populateApiKeyField(_0x1086d6(0x232),state[_0x1086d6(0x22f)][_0x1086d6(0x232)]);}catch(_0x567e9f){console[_0x1086d6(0x1be)](_0x1086d6(0xc2),_0x567e9f);throw _0x567e9f;}}function populateApiKeyField(_0x121f69,_0x57cbc4){const _0x123e32=_0x224687,_0x4d9132=document['getElementById'](_0x123e32(0x24e)+_0x121f69),_0xe115b4=document['getElementById']('apikey-'+_0x121f69+'-enabled'),_0x49ae12=document[_0x123e32(0x1f7)]('[data-target=\x22apikey-'+_0x121f69+'\x22]');if(_0x57cbc4&&_0x57cbc4['has_key']){_0x4d9132[_0x123e32(0x1a9)]=API_KEY_PLACEHOLDER,_0x4d9132[_0x123e32(0x1e6)][_0x123e32(0x16e)]='true';if(_0x49ae12)_0x49ae12[_0x123e32(0x125)]=!![];}else{_0x4d9132[_0x123e32(0x1a9)]='',_0x4d9132[_0x123e32(0x1e6)][_0x123e32(0x16e)]=_0x123e32(0x149);if(_0x49ae12)_0x49ae12[_0x123e32(0x125)]=![];}_0xe115b4[_0x123e32(0x24a)]=_0x57cbc4?.[_0x123e32(0x110)]||![],_0x4d9132[_0x123e32(0x1d1)]=_0x123e32(0x14d);}function setupApiKeyToggleListeners(){const _0x1d080e=_0x224687;document[_0x1d080e(0x12f)](_0x1d080e(0x116))[_0x1d080e(0x266)](_0x59b72c=>{const _0x5c3ba6=_0x1d080e;_0x59b72c[_0x5c3ba6(0x238)](_0x5c3ba6(0x20a),toggleVisibility);});}function toggleVisibility(_0x3cca9e){const _0x58f17b=_0x224687,_0xe26277=_0x3cca9e[_0x58f17b(0x19e)],_0x15083e=_0xe26277['dataset'][_0x58f17b(0x235)],_0x1cc912=document[_0x58f17b(0x247)](_0x15083e);if(!_0x1cc912)return;const _0xedb86a=_0xe26277[_0x58f17b(0x1f7)](_0x58f17b(0x1ff)),_0x1496b7=_0xe26277[_0x58f17b(0x1f7)]('.eye-closed');if(_0x1cc912['type']==='password'){_0x1cc912[_0x58f17b(0x1d1)]=_0x58f17b(0xb6);if(_0xedb86a)_0xedb86a[_0x58f17b(0x1bb)][_0x58f17b(0x1b8)]='none';if(_0x1496b7)_0x1496b7[_0x58f17b(0x1bb)][_0x58f17b(0x1b8)]=_0x58f17b(0x1fb);}else{_0x1cc912[_0x58f17b(0x1d1)]='password';if(_0xedb86a)_0xedb86a[_0x58f17b(0x1bb)]['display']='block';if(_0x1496b7)_0x1496b7['style']['display']=_0x58f17b(0x1bc);}}async function saveApiKeysSettings(){const _0x18ddcf=_0x224687;try{const _0x50843a={};['claude',_0x18ddcf(0x193),'gemini'][_0x18ddcf(0x266)](_0x4e4a4c=>{const _0x4ccd10=_0x18ddcf,_0x3aa81e=document['getElementById'](_0x4ccd10(0x24e)+_0x4e4a4c),_0x1eebf3=document[_0x4ccd10(0x247)](_0x4ccd10(0x24e)+_0x4e4a4c+_0x4ccd10(0x11a)),_0x440645=_0x3aa81e[_0x4ccd10(0x1a9)]['trim'](),_0x3aedd6={'enabled_for_tasks':_0x1eebf3[_0x4ccd10(0x24a)]};if(_0x440645&&_0x440645!==API_KEY_PLACEHOLDER)_0x3aedd6[_0x4ccd10(0x209)]=_0x440645;else _0x440645===API_KEY_PLACEHOLDER&&_0x3aa81e[_0x4ccd10(0x1e6)]['hasExistingKey']==='true'&&(_0x3aedd6['keep_existing_key']=!![]);_0x50843a[_0x4e4a4c]=_0x3aedd6;}),await API[_0x18ddcf(0x26b)](_0x18ddcf(0x203),{'agents':_0x50843a}),showInlineMessage(_0x18ddcf(0x14f),_0x18ddcf(0xfa),_0x18ddcf(0x104)),await loadApiKeysSettings();}catch(_0x1ca749){console[_0x18ddcf(0x1be)]('Failed\x20to\x20save\x20API\x20keys\x20settings:',_0x1ca749),showInlineMessage('apikeys',_0x18ddcf(0x1be),_0x18ddcf(0x21e));}}const PROVIDER_NAMES={'claude':_0x224687(0x137),'codex':_0x224687(0x19f),'gemini':_0x224687(0x201)};let currentProviderOAuthState=null;async function loadProviderAuth(){const _0x55725f=_0x224687;try{const _0xd5140e=await API[_0x55725f(0x1d8)](_0x55725f(0x141));state[_0x55725f(0x121)]=_0xd5140e,renderProviderAccounts(_0xd5140e);}catch(_0x36ff93){console[_0x55725f(0x1be)](_0x55725f(0x288),_0x36ff93);throw _0x36ff93;}}function renderProviderAccounts(_0x4b7b6f){const _0x2a6be4=_0x224687;[_0x2a6be4(0x207),_0x2a6be4(0x193),_0x2a6be4(0x232)][_0x2a6be4(0x266)](_0x30a20a=>{const _0x5162df=_0x2a6be4,_0x2e3142=_0x4b7b6f[_0x30a20a]||{'accounts':[],'has_accounts':![]},_0x15e879=document[_0x5162df(0x247)]('provider-'+_0x30a20a+'-accounts');if(!_0x15e879)return;if(!_0x2e3142[_0x5162df(0x25b)]||_0x2e3142[_0x5162df(0x25b)][_0x5162df(0x212)]===0x0){_0x15e879[_0x5162df(0x15c)]=_0x5162df(0x25d);return;}_0x15e879[_0x5162df(0x15c)]=_0x2e3142[_0x5162df(0x25b)][_0x5162df(0x248)](_0x85df08=>{const _0x3d0ecf=_0x5162df,_0x432fcb=_0x85df08[_0x3d0ecf(0xe6)]||_0x85df08['email']||_0x3d0ecf(0x20f),_0x32df3e=_0x85df08[_0x3d0ecf(0x23a)]&&_0x85df08['label']&&_0x85df08[_0x3d0ecf(0xe6)]!==_0x85df08['email'];return _0x3d0ecf(0x1e8)+(_0x85df08[_0x3d0ecf(0x202)]?_0x3d0ecf(0x264):'')+_0x3d0ecf(0x1c3)+_0x85df08['id']+_0x3d0ecf(0xc4)+(_0x85df08['is_default']?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<svg\x20class=\x22account-active-check\x22\x20width=\x2216\x22\x20height=\x2216\x22\x20viewBox=\x220\x200\x2024\x2024\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222.5\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<polyline\x20points=\x2220\x206\x209\x2017\x204\x2012\x22></polyline>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</svg>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20':_0x3d0ecf(0x270))+_0x3d0ecf(0x223)+Utils[_0x3d0ecf(0x1dd)](_0x432fcb)+_0x3d0ecf(0x156)+(_0x85df08['is_default']?_0x3d0ecf(0x17d):'')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x32df3e?_0x3d0ecf(0x1fc)+Utils['escapeHtml'](_0x85df08[_0x3d0ecf(0x23a)])+_0x3d0ecf(0xf9):'')+_0x3d0ecf(0x261)+(!_0x85df08[_0x3d0ecf(0x202)]?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22btn-icon\x20btn-small\x22\x20title=\x22Set\x20as\x20active\x22\x20onclick=\x22setProviderAccountDefault(\x27'+_0x30a20a+'\x27,\x20\x27'+_0x85df08['id']+_0x3d0ecf(0xc8):'')+_0x3d0ecf(0xdd)+_0x30a20a+_0x3d0ecf(0x130)+_0x85df08['id']+_0x3d0ecf(0x130)+Utils[_0x3d0ecf(0x1dd)](_0x85df08[_0x3d0ecf(0xe6)]||'')+_0x3d0ecf(0x107)+_0x30a20a+_0x3d0ecf(0x130)+_0x85df08['id']+'\x27,\x20\x27'+Utils[_0x3d0ecf(0x1dd)](_0x432fcb)+_0x3d0ecf(0x115);})[_0x5162df(0xd8)]('');});}function setupProviderSigninListeners(){const _0x3925a7=_0x224687;if(window['_providerAuthListenersSet'])return;window[_0x3925a7(0x236)]=!![],[_0x3925a7(0x207),_0x3925a7(0x193),_0x3925a7(0x232)][_0x3925a7(0x266)](_0x36b63a=>{const _0x59e562=_0x3925a7,_0x403568=document[_0x59e562(0x247)](_0x59e562(0x1cd)+_0x36b63a+_0x59e562(0x15b));if(_0x403568)_0x403568['addEventListener']('click',()=>startProviderAuth(_0x36b63a));});const _0x4e294e=document['getElementById'](_0x3925a7(0x1c9));_0x4e294e&&(_0x4e294e[_0x3925a7(0x1f7)](_0x3925a7(0x214))?.[_0x3925a7(0x238)](_0x3925a7(0x20a),closeProviderSignin),_0x4e294e['querySelector'](_0x3925a7(0xb2))?.[_0x3925a7(0x238)](_0x3925a7(0x20a),closeProviderSignin),document[_0x3925a7(0x247)](_0x3925a7(0x123))?.[_0x3925a7(0x238)](_0x3925a7(0x20a),closeProviderSignin),document['getElementById'](_0x3925a7(0x221))?.[_0x3925a7(0x238)](_0x3925a7(0x20a),submitProviderCode));const _0x246adf=document[_0x3925a7(0x247)](_0x3925a7(0x1b3));_0x246adf&&(_0x246adf[_0x3925a7(0x1f7)](_0x3925a7(0x214))?.[_0x3925a7(0x238)](_0x3925a7(0x20a),closeProviderRename),_0x246adf[_0x3925a7(0x1f7)](_0x3925a7(0xb2))?.[_0x3925a7(0x238)](_0x3925a7(0x20a),closeProviderRename),document[_0x3925a7(0x247)](_0x3925a7(0x117))?.[_0x3925a7(0x238)](_0x3925a7(0x20a),closeProviderRename),document[_0x3925a7(0x247)]('provider-rename-save-btn')?.[_0x3925a7(0x238)](_0x3925a7(0x20a),saveProviderRename),document[_0x3925a7(0x247)]('provider-rename-input')?.[_0x3925a7(0x238)](_0x3925a7(0x1c8),_0x5d233b=>{const _0x3d403e=_0x3925a7;if(_0x5d233b[_0x3d403e(0x283)]==='Enter')saveProviderRename();}));}async function startProviderAuth(_0x18efc3){const _0x547eca=_0x224687;try{const _0x502925=await API['post'](_0x547eca(0x124),{'provider':_0x18efc3});currentProviderOAuthState={'provider':_0x18efc3,'state':_0x502925[_0x547eca(0x1a5)],'oauth_url':_0x502925[_0x547eca(0x23e)],'flow_type':_0x502925[_0x547eca(0x1e0)]},document[_0x547eca(0x247)](_0x547eca(0x208))[_0x547eca(0x178)]='Sign\x20in\x20with\x20'+PROVIDER_NAMES[_0x18efc3],document[_0x547eca(0x247)](_0x547eca(0xe5))[_0x547eca(0x178)]=_0x502925['instructions'];const _0x332109=document[_0x547eca(0x247)](_0x547eca(0xf2));_0x332109[_0x547eca(0x13f)]=()=>window[_0x547eca(0x168)](_0x502925[_0x547eca(0x23e)],'_blank'),document['getElementById']('provider-signin-input')[_0x547eca(0x1a9)]='',document[_0x547eca(0x247)](_0x547eca(0x197))[_0x547eca(0x1a9)]='';const _0x18872f=document[_0x547eca(0x247)]('provider-signin-label'),_0x5766ca=document[_0x547eca(0x247)]('provider-signin-localhost-notice');if(_0x502925['flow_type']===_0x547eca(0x25c)){_0x18872f[_0x547eca(0x178)]='Authorization\x20Code',document[_0x547eca(0x247)](_0x547eca(0xec))[_0x547eca(0x1f9)]=_0x547eca(0x175);if(_0x5766ca)_0x5766ca[_0x547eca(0x17b)]=!![];}else{_0x18872f['textContent']='Callback\x20URL',document[_0x547eca(0x247)](_0x547eca(0xec))[_0x547eca(0x1f9)]='Paste\x20the\x20full\x20URL\x20from\x20your\x20browser\x27s\x20address\x20bar';if(_0x5766ca)_0x5766ca[_0x547eca(0x17b)]=![];}document['getElementById']('provider-signin-modal')[_0x547eca(0x17b)]=![];}catch(_0x4429fd){console['error'](_0x547eca(0x13b),_0x4429fd),showInlineMessage(_0x547eca(0x10a),_0x547eca(0x1be),'Failed\x20to\x20start\x20authentication\x20flow');}}function closeProviderSignin(){const _0x314466=_0x224687;document[_0x314466(0x247)](_0x314466(0x1c9))[_0x314466(0x17b)]=!![],currentProviderOAuthState=null;}async function submitProviderCode(){const _0x25f4e6=_0x224687;if(!currentProviderOAuthState){showInlineMessage(_0x25f4e6(0x10a),_0x25f4e6(0x1be),_0x25f4e6(0x1c4));return;}const _0x26da44=document[_0x25f4e6(0x247)]('provider-signin-input')['value']['trim']();if(!_0x26da44){showInlineMessage('provider-auth','error',_0x25f4e6(0x1f8));return;}const _0x135220=document[_0x25f4e6(0x247)](_0x25f4e6(0x197))[_0x25f4e6(0x1a9)][_0x25f4e6(0x1a4)]()||null;try{const _0x4e99cb=document[_0x25f4e6(0x247)]('provider-signin-submit-btn');_0x4e99cb[_0x25f4e6(0x125)]=!![],_0x4e99cb[_0x25f4e6(0x178)]=_0x25f4e6(0x1d0);const _0x2b095b=await API[_0x25f4e6(0x16f)](_0x25f4e6(0x113),{'provider':currentProviderOAuthState['provider'],'input':_0x26da44,'state':currentProviderOAuthState['state'],'label':_0x135220}),_0x5df673=_0x2b095b[_0x25f4e6(0x276)]?.[_0x25f4e6(0x23a)]?'\x20('+_0x2b095b[_0x25f4e6(0x276)]['email']+')':'';closeProviderSignin(),_0x2b095b[_0x25f4e6(0x19d)]?showInlineMessage(_0x25f4e6(0x10a),_0x25f4e6(0xfa),_0x25f4e6(0x1d5)+_0x5df673):showInlineMessage(_0x25f4e6(0x10a),_0x25f4e6(0xfa),_0x25f4e6(0x262)+_0x5df673),await loadProviderAuth();}catch(_0x31f94c){console[_0x25f4e6(0x1be)]('Failed\x20to\x20complete\x20provider\x20auth:',_0x31f94c),showInlineMessage(_0x25f4e6(0x10a),_0x25f4e6(0x1be),_0x31f94c[_0x25f4e6(0x22a)]||_0x25f4e6(0x148));}finally{const _0x3dccae=document[_0x25f4e6(0x247)](_0x25f4e6(0x221));_0x3dccae[_0x25f4e6(0x125)]=![],_0x3dccae[_0x25f4e6(0x178)]=_0x25f4e6(0x23d);}}window['setProviderAccountDefault']=async function(_0x48c6a7,_0xfce3a6){const _0x22dfb6=_0x224687;try{await API['post']('/settings/provider-auth/'+_0x48c6a7+'/accounts/'+_0xfce3a6+_0x22dfb6(0xc0)),showInlineMessage(_0x22dfb6(0x10a),_0x22dfb6(0xfa),_0x22dfb6(0x118)),await loadProviderAuth();}catch(_0x5ae982){console[_0x22dfb6(0x1be)](_0x22dfb6(0x275),_0x5ae982),showInlineMessage(_0x22dfb6(0x10a),'error',_0x22dfb6(0x1e4));}},window[_0x224687(0x139)]=function(_0x29164b,_0x36aa9a,_0x17bd24){const _0x347004=_0x224687;document['getElementById'](_0x347004(0x122))['value']=_0x17bd24,document['getElementById'](_0x347004(0x1b3))[_0x347004(0x1e6)][_0x347004(0xef)]=_0x29164b,document[_0x347004(0x247)](_0x347004(0x1b3))[_0x347004(0x1e6)]['accountId']=_0x36aa9a,document[_0x347004(0x247)](_0x347004(0x1b3))[_0x347004(0x17b)]=![];};function closeProviderRename(){const _0x1392b9=_0x224687;document[_0x1392b9(0x247)]('provider-rename-modal')['hidden']=!![];}async function saveProviderRename(){const _0x4fd6f4=_0x224687,_0x380b24=document[_0x4fd6f4(0x247)]('provider-rename-modal'),_0x3b670d=_0x380b24['dataset'][_0x4fd6f4(0xef)],_0x3e2268=_0x380b24[_0x4fd6f4(0x1e6)][_0x4fd6f4(0x1fd)],_0xaa94d7=document[_0x4fd6f4(0x247)](_0x4fd6f4(0x122))[_0x4fd6f4(0x1a9)][_0x4fd6f4(0x1a4)]();if(!_0xaa94d7){Utils[_0x4fd6f4(0x26a)]('Account\x20name\x20cannot\x20be\x20empty');return;}try{const _0x259000=document['getElementById']('provider-rename-save-btn');_0x259000[_0x4fd6f4(0x125)]=!![],_0x259000[_0x4fd6f4(0x178)]=_0x4fd6f4(0x21f),await API[_0x4fd6f4(0x26b)](_0x4fd6f4(0x1c6)+_0x3b670d+_0x4fd6f4(0x243)+_0x3e2268,{'label':_0xaa94d7}),closeProviderRename(),showInlineMessage(_0x4fd6f4(0x10a),_0x4fd6f4(0xfa),_0x4fd6f4(0x165)),await loadProviderAuth();}catch(_0x33d2bc){console['error'](_0x4fd6f4(0x24d),_0x33d2bc),showInlineMessage('provider-auth',_0x4fd6f4(0x1be),_0x4fd6f4(0x142));}finally{const _0xb5e39f=document[_0x4fd6f4(0x247)]('provider-rename-save-btn');_0xb5e39f[_0x4fd6f4(0x125)]=![],_0xb5e39f['textContent']=_0x4fd6f4(0x27d);}}window[_0x224687(0x1da)]=async function(_0x5ad25f,_0x38ef74,_0x59fcac){const _0x172d2e=_0x224687,_0x30de9e=await ConfirmDialog[_0x172d2e(0x105)]({'title':_0x172d2e(0x1cb),'message':'Are\x20you\x20sure\x20you\x20want\x20to\x20remove\x20\x22'+_0x59fcac+_0x172d2e(0xf1)+PROVIDER_NAMES[_0x5ad25f]+'?','confirmText':_0x172d2e(0x131),'danger':!![]});if(!_0x30de9e)return;try{await API[_0x172d2e(0xe7)](_0x172d2e(0x1c6)+_0x5ad25f+_0x172d2e(0x243)+_0x38ef74),showInlineMessage(_0x172d2e(0x10a),_0x172d2e(0xfa),'Account\x20removed'),await loadProviderAuth();}catch(_0x1c64ed){console[_0x172d2e(0x1be)](_0x172d2e(0x27b),_0x1c64ed),showInlineMessage('provider-auth',_0x172d2e(0x1be),'Failed\x20to\x20remove\x20account');}};async function loadModelConfig(){const _0x5a89d8=_0x224687;try{const [_0x196802,_0x5e695c]=await Promise[_0x5a89d8(0xed)]([API['get']('/settings/available-models'),API['get']('/settings/models')]);state[_0x5a89d8(0x1e2)]=_0x196802,state[_0x5a89d8(0x205)]=_0x5e695c[_0x5a89d8(0xca)]||{},populateModelDropdowns(),setModelValues();}catch(_0x5a211c){console[_0x5a89d8(0x1be)](_0x5a89d8(0xf7),_0x5a211c);throw _0x5a211c;}}function populateModelDropdowns(){const _0x1baa85=_0x224687;['claude',_0x1baa85(0x193),_0x1baa85(0x232)][_0x1baa85(0x266)](_0x124628=>{const _0x128b05=_0x1baa85,_0x14ab4b=document['getElementById']('model-'+_0x124628+_0x128b05(0xe0));if(!_0x14ab4b)return;let _0x56b8bb=_0x14ab4b['querySelector'](_0x128b05(0x20d));!_0x56b8bb&&(_0x56b8bb=document[_0x128b05(0xdf)](_0x128b05(0x20d)),_0x56b8bb['id']=_0x128b05(0x1b7)+_0x124628,_0x14ab4b[_0x128b05(0x27c)](_0x56b8bb));const _0x3e9043=state[_0x128b05(0x1e2)][_0x124628]||{'models':[]},_0x4c1169=_0x3e9043[_0x128b05(0xca)]||[];_0x56b8bb['innerHTML']='<option\x20value=\x22\x22>Default</option>'+_0x4c1169[_0x128b05(0x248)](_0x2ff799=>'<option\x20value=\x22'+_0x2ff799['id']+'\x22>'+Utils['escapeHtml'](_0x2ff799[_0x128b05(0x199)])+_0x128b05(0x1c2))[_0x128b05(0xd8)](''),!customSelects[_0x124628+_0x128b05(0x146)]&&(customSelects[_0x124628+_0x128b05(0x146)]=new CustomSelect(_0x56b8bb,{'searchable':![]})),_0x124628===_0x128b05(0x193)&&_0x56b8bb[_0x128b05(0x238)](_0x128b05(0xcd),updateCodexReasoningVisibility);}),populateCodexReasoningLevels();}function _0x1589(_0x323324,_0x31fef){_0x323324=_0x323324-0xb1;const _0x484266=_0x4842();let _0x1589d1=_0x484266[_0x323324];if(_0x1589['hOdNtR']===undefined){var _0x5bece0=function(_0x10d609){const _0x4c9fe4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3c9ea1='',_0x38d344='';for(let _0x10ac16=0x0,_0x4518e5,_0xb96301,_0x2e2cc3=0x0;_0xb96301=_0x10d609['charAt'](_0x2e2cc3++);~_0xb96301&&(_0x4518e5=_0x10ac16%0x4?_0x4518e5*0x40+_0xb96301:_0xb96301,_0x10ac16++%0x4)?_0x3c9ea1+=String['fromCharCode'](0xff&_0x4518e5>>(-0x2*_0x10ac16&0x6)):0x0){_0xb96301=_0x4c9fe4['indexOf'](_0xb96301);}for(let _0x1cf1d8=0x0,_0x5ac793=_0x3c9ea1['length'];_0x1cf1d8<_0x5ac793;_0x1cf1d8++){_0x38d344+='%'+('00'+_0x3c9ea1['charCodeAt'](_0x1cf1d8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x38d344);};_0x1589['xNonNw']=_0x5bece0,_0x1589['GLFcnK']={},_0x1589['hOdNtR']=!![];}const _0x19ac51=_0x484266[0x0],_0x432a08=_0x323324+_0x19ac51,_0x2d00cf=_0x1589['GLFcnK'][_0x432a08];return!_0x2d00cf?(_0x1589d1=_0x1589['xNonNw'](_0x1589d1),_0x1589['GLFcnK'][_0x432a08]=_0x1589d1):_0x1589d1=_0x2d00cf,_0x1589d1;}function populateCodexReasoningLevels(){const _0x5bfa01=_0x224687,_0x28618f=document[_0x5bfa01(0x247)](_0x5bfa01(0x185));if(!_0x28618f)return;let _0x12e223=_0x28618f[_0x5bfa01(0x1f7)](_0x5bfa01(0x20d));!_0x12e223&&(_0x12e223=document[_0x5bfa01(0xdf)](_0x5bfa01(0x20d)),_0x12e223['id']=_0x5bfa01(0xb1),_0x28618f[_0x5bfa01(0x27c)](_0x12e223));const _0x1863be=state[_0x5bfa01(0x1e2)]['codex']||{},_0x1b1418=_0x1863be[_0x5bfa01(0x20c)]||[];_0x12e223[_0x5bfa01(0x15c)]=_0x5bfa01(0xd7)+_0x1b1418['filter'](_0xd9cbd8=>_0xd9cbd8['id']!==_0x5bfa01(0x25a))[_0x5bfa01(0x248)](_0x4a1882=>'<option\x20value=\x22'+_0x4a1882['id']+'\x22>'+Utils[_0x5bfa01(0x1dd)](_0x4a1882['displayName'])+'</option>')[_0x5bfa01(0xd8)](''),!customSelects[_0x5bfa01(0x272)]&&(customSelects['codexReasoning']=new CustomSelect(_0x12e223,{'searchable':![]}));}function setModelValues(){const _0x2793f1=_0x224687;[_0x2793f1(0x207),_0x2793f1(0x193),_0x2793f1(0x232)][_0x2793f1(0x266)](_0x57100d=>{const _0x140b7a=_0x2793f1,_0x6da9ee=document[_0x140b7a(0x247)](_0x140b7a(0x1b7)+_0x57100d);if(_0x6da9ee){const _0x11de48=state[_0x140b7a(0x205)][_0x57100d];if(_0x11de48&&!_0x6da9ee[_0x140b7a(0x1f7)](_0x140b7a(0x257)+_0x11de48+'\x22]')){const _0x5bcf56=document[_0x140b7a(0xdf)](_0x140b7a(0x19b));_0x5bcf56['value']=_0x11de48,_0x5bcf56['textContent']=_0x11de48+_0x140b7a(0xb4),_0x6da9ee['appendChild'](_0x5bcf56);}_0x6da9ee['value']=_0x11de48||'';}});const _0x47f2d1=document['getElementById']('model-codex-reasoning');_0x47f2d1&&(_0x47f2d1[_0x2793f1(0x1a9)]=state[_0x2793f1(0x205)][_0x2793f1(0x265)]||''),updateCodexReasoningVisibility();}function updateCodexReasoningVisibility(){const _0x48c222=_0x224687,_0x3212d3=document[_0x48c222(0x247)](_0x48c222(0x245)),_0x1816f4=document['getElementById'](_0x48c222(0x112)),_0x142e15=state['availableModels'][_0x48c222(0x193)]||{};if(!_0x1816f4)return;const _0x236887=_0x142e15[_0x48c222(0xba)]===!![],_0x5521a4=_0x3212d3?.[_0x48c222(0x1a9)]||'',_0x47af5f=(_0x142e15['models']||[])[_0x48c222(0x13d)](_0x10eaa3=>_0x10eaa3['id']===_0x5521a4),_0x870345=_0x236887&&(!_0x5521a4||_0x47af5f&&_0x47af5f[_0x48c222(0x20c)]?.[_0x48c222(0x212)]>0x0);_0x1816f4['hidden']=!_0x870345;}async function saveModelConfig(){const _0x3d155f=_0x224687;try{const _0x4319c2={};[_0x3d155f(0x207),_0x3d155f(0x193),_0x3d155f(0x232)][_0x3d155f(0x266)](_0x17df86=>{const _0xae07a9=_0x3d155f,_0x2dca24=document[_0xae07a9(0x247)](_0xae07a9(0x1b7)+_0x17df86);_0x2dca24&&_0x2dca24[_0xae07a9(0x1a9)]&&(_0x4319c2[_0x17df86]=_0x2dca24[_0xae07a9(0x1a9)]);});const _0x19bea9=document[_0x3d155f(0x247)]('model-codex-reasoning');_0x19bea9&&_0x19bea9['value']&&(_0x4319c2[_0x3d155f(0x265)]=_0x19bea9['value']),await API[_0x3d155f(0x26b)]('/settings/models',{'models':_0x4319c2}),state[_0x3d155f(0x205)]=_0x4319c2,showInlineMessage(_0x3d155f(0xca),_0x3d155f(0xfa),'Model\x20configuration\x20saved');}catch(_0x343cf6){console['error'](_0x3d155f(0x274),_0x343cf6),showInlineMessage('models',_0x3d155f(0x1be),_0x3d155f(0x171));}}async function refreshModels(){const _0x5a88a0=_0x224687;try{await API[_0x5a88a0(0x16f)](_0x5a88a0(0x21a)),showInlineMessage('models','success','Models\x20cache\x20refreshed'),await loadModelConfig();}catch(_0x22610a){console[_0x5a88a0(0x1be)](_0x5a88a0(0x24b),_0x22610a),showInlineMessage('models',_0x5a88a0(0x1be),'Failed\x20to\x20refresh\x20models');}}async function loadEmailSettings(){const _0x4ad847=_0x224687;try{const _0x5d3eb8=await API[_0x4ad847(0x1d8)]('/settings/email');state[_0x4ad847(0x215)]=_0x5d3eb8,document[_0x4ad847(0x247)]('email-host')['value']=_0x5d3eb8[_0x4ad847(0x154)]||'',document['getElementById'](_0x4ad847(0x1de))[_0x4ad847(0x1a9)]=_0x5d3eb8[_0x4ad847(0x127)]||0x24b,document[_0x4ad847(0x247)](_0x4ad847(0x26c))[_0x4ad847(0x24a)]=_0x5d3eb8[_0x4ad847(0x1a8)]||![],document[_0x4ad847(0x247)]('email-user')['value']=_0x5d3eb8['user']||'',document[_0x4ad847(0x247)](_0x4ad847(0x282))[_0x4ad847(0x1a9)]='',document[_0x4ad847(0x247)]('email-from')[_0x4ad847(0x1a9)]=_0x5d3eb8[_0x4ad847(0x179)]||'',document[_0x4ad847(0x247)](_0x4ad847(0x169))['value']=_0x5d3eb8[_0x4ad847(0x24f)]||'';const _0x2391e9=document[_0x4ad847(0x247)](_0x4ad847(0x234));_0x2391e9&&(_0x2391e9[_0x4ad847(0x178)]=_0x5d3eb8[_0x4ad847(0x230)]?_0x4ad847(0x229):'');}catch(_0x361dab){console['error'](_0x4ad847(0x23b),_0x361dab);throw _0x361dab;}}async function saveEmailSettings(){const _0x38b9c3=_0x224687;try{const _0x5c78a6={'host':document[_0x38b9c3(0x247)](_0x38b9c3(0x1f6))[_0x38b9c3(0x1a9)][_0x38b9c3(0x1a4)](),'port':parseInt(document[_0x38b9c3(0x247)]('email-port')[_0x38b9c3(0x1a9)],0xa)||0x24b,'secure':document[_0x38b9c3(0x247)](_0x38b9c3(0x26c))['checked'],'user':document[_0x38b9c3(0x247)](_0x38b9c3(0xe4))[_0x38b9c3(0x1a9)][_0x38b9c3(0x1a4)](),'from':document[_0x38b9c3(0x247)](_0x38b9c3(0x18b))['value'][_0x38b9c3(0x1a4)](),'from_name':document[_0x38b9c3(0x247)]('email-from-name')[_0x38b9c3(0x1a9)]['trim']()},_0x1648ac=document[_0x38b9c3(0x247)](_0x38b9c3(0x282))[_0x38b9c3(0x1a9)];_0x1648ac?_0x5c78a6[_0x38b9c3(0x14d)]=_0x1648ac:_0x5c78a6[_0x38b9c3(0x1d7)]=!![],await API['put'](_0x38b9c3(0xeb),_0x5c78a6),showInlineMessage('email',_0x38b9c3(0xfa),'Email\x20settings\x20saved'),await loadEmailSettings();}catch(_0x46cdcf){console[_0x38b9c3(0x1be)](_0x38b9c3(0x1f5),_0x46cdcf),showInlineMessage(_0x38b9c3(0x23a),_0x38b9c3(0x1be),_0x38b9c3(0x1f1));}}function showEmailTestResult(_0xa0bcb1,_0x42a00d){const _0x556930=_0x224687,_0x28d09f=document[_0x556930(0x247)](_0x556930(0x150)),_0x703e64=document[_0x556930(0x247)](_0x556930(0x167));_0x703e64['textContent']=_0x42a00d,_0x703e64[_0x556930(0x263)]='email-test-result\x20'+(_0xa0bcb1?_0x556930(0xfa):_0x556930(0x1be));if(_0x28d09f)_0x28d09f[_0x556930(0x17b)]=![];}async function testEmailConnection(){const _0x11338d=_0x224687,_0x221728=document[_0x11338d(0x247)](_0x11338d(0x150)),_0x341505=document['getElementById'](_0x11338d(0x167));_0x341505[_0x11338d(0x178)]=_0x11338d(0xbb),_0x341505['className']=_0x11338d(0x167);if(_0x221728)_0x221728['hidden']=![];try{const _0x455e2a={'host':document[_0x11338d(0x247)](_0x11338d(0x1f6))['value'][_0x11338d(0x1a4)](),'port':parseInt(document[_0x11338d(0x247)](_0x11338d(0x1de))[_0x11338d(0x1a9)],0xa)||0x24b,'secure':document[_0x11338d(0x247)](_0x11338d(0x26c))[_0x11338d(0x24a)],'user':document[_0x11338d(0x247)](_0x11338d(0xe4))[_0x11338d(0x1a9)]['trim']()},_0x44a815=document[_0x11338d(0x247)](_0x11338d(0x282))['value'];_0x44a815?_0x455e2a['password']=_0x44a815:_0x455e2a[_0x11338d(0x1d7)]=!![];const _0x2ab9cf=await API[_0x11338d(0x16f)](_0x11338d(0x1b1),_0x455e2a);_0x2ab9cf[_0x11338d(0xfa)]?showEmailTestResult(!![],_0x11338d(0x1d9)):showEmailTestResult(![],_0x11338d(0x1a7)+_0x2ab9cf[_0x11338d(0x1be)]);}catch(_0x24e3e8){console[_0x11338d(0x1be)](_0x11338d(0x1d6),_0x24e3e8),showEmailTestResult(![],_0x11338d(0x162));}}async function sendTestEmail(){const _0x3a7002=_0x224687,_0x13defc=document[_0x3a7002(0x247)](_0x3a7002(0x11c))[_0x3a7002(0x1a9)][_0x3a7002(0x1a4)]();if(!_0x13defc){showEmailTestResult(![],_0x3a7002(0xcf));return;}const _0x16f46b=document[_0x3a7002(0x247)](_0x3a7002(0x150)),_0x423bce=document['getElementById'](_0x3a7002(0x167));_0x423bce[_0x3a7002(0x178)]=_0x3a7002(0x1e3),_0x423bce[_0x3a7002(0x263)]=_0x3a7002(0x167);if(_0x16f46b)_0x16f46b[_0x3a7002(0x17b)]=![];try{const _0x5e92d3={'host':document[_0x3a7002(0x247)](_0x3a7002(0x1f6))[_0x3a7002(0x1a9)][_0x3a7002(0x1a4)](),'port':parseInt(document[_0x3a7002(0x247)]('email-port')[_0x3a7002(0x1a9)],0xa)||0x24b,'secure':document[_0x3a7002(0x247)]('email-secure')[_0x3a7002(0x24a)],'user':document['getElementById']('email-user')['value'][_0x3a7002(0x1a4)](),'from':document[_0x3a7002(0x247)](_0x3a7002(0x18b))[_0x3a7002(0x1a9)][_0x3a7002(0x1a4)](),'from_name':document[_0x3a7002(0x247)](_0x3a7002(0x169))[_0x3a7002(0x1a9)]['trim'](),'test_recipient':_0x13defc},_0x4a4feb=document[_0x3a7002(0x247)](_0x3a7002(0x282))[_0x3a7002(0x1a9)];_0x4a4feb?_0x5e92d3[_0x3a7002(0x14d)]=_0x4a4feb:_0x5e92d3[_0x3a7002(0x1d7)]=!![];const _0xb25bb6=await API[_0x3a7002(0x16f)]('/settings/email/send-test',_0x5e92d3);_0xb25bb6[_0x3a7002(0xfa)]?showEmailTestResult(!![],_0x3a7002(0x183)+_0x13defc):showEmailTestResult(![],'Failed\x20to\x20send:\x20'+_0xb25bb6[_0x3a7002(0x1be)]);}catch(_0xbf5d06){console[_0x3a7002(0x1be)](_0x3a7002(0xbe),_0xbf5d06),showEmailTestResult(![],'Failed\x20to\x20send\x20test\x20email');}}async function loadGitProviders(){const _0x37f0eb=_0x224687;try{const [_0x5a4158,_0x2c81af]=await Promise[_0x37f0eb(0xed)]([API[_0x37f0eb(0x1d8)](_0x37f0eb(0x196)),API['get'](_0x37f0eb(0x1ee))['catch'](()=>({}))]);state[_0x37f0eb(0x16c)]=_0x5a4158['providers']||[];const _0x13c9c6=document[_0x37f0eb(0x247)](_0x37f0eb(0x153));_0x13c9c6&&_0x2c81af[_0x37f0eb(0xe2)]&&(_0x13c9c6[_0x37f0eb(0x1a9)]=_0x2c81af[_0x37f0eb(0xe2)]),renderGitProviders();}catch(_0x3c6d21){console[_0x37f0eb(0x1be)]('Failed\x20to\x20load\x20git\x20providers:',_0x3c6d21);throw _0x3c6d21;}}async function saveGitTokenExpiration(){const _0x143a13=_0x224687;try{const _0x462dbc=parseInt(document[_0x143a13(0x247)](_0x143a13(0x153))[_0x143a13(0x1a9)],0xa);if(isNaN(_0x462dbc)||_0x462dbc<0x1){showInlineMessage(_0x143a13(0x21c),_0x143a13(0x1be),_0x143a13(0x217));return;}await API[_0x143a13(0x26b)](_0x143a13(0x1ee),{'token_expiry_days':_0x462dbc}),showInlineMessage('git-providers',_0x143a13(0xfa),_0x143a13(0x16a));}catch(_0x1b6b3e){console[_0x143a13(0x1be)]('Failed\x20to\x20save\x20token\x20expiration:',_0x1b6b3e),showInlineMessage(_0x143a13(0x21c),_0x143a13(0x1be),_0x143a13(0x271));}}function renderGitProviders(){const _0x3c5fc4=_0x224687,_0x2e00ae=document[_0x3c5fc4(0x247)]('global-git-providers-list');if(!_0x2e00ae)return;if(state[_0x3c5fc4(0x16c)][_0x3c5fc4(0x212)]===0x0){_0x2e00ae[_0x3c5fc4(0x15c)]=_0x3c5fc4(0x23c);return;}const _0x278f82=state[_0x3c5fc4(0x16c)][_0x3c5fc4(0x248)](_0x5b0271=>{const _0x376fe7=_0x3c5fc4,_0x29dc94=_0x5b0271[_0x376fe7(0x1d1)]===_0x376fe7(0xd3)?_0x376fe7(0x206):_0x5b0271[_0x376fe7(0x1d1)]===_0x376fe7(0x27e)?_0x376fe7(0x244):_0x5b0271[_0x376fe7(0x1d1)];return'\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22git-provider-item\x22\x20data-name=\x22'+Utils['escapeHtml'](_0x5b0271['name'])+_0x376fe7(0x145)+Utils[_0x376fe7(0x1dd)](_0x5b0271[_0x376fe7(0x114)])+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22git-provider-type\x22>'+Utils[_0x376fe7(0x1dd)](_0x29dc94)+_0x376fe7(0x227)+Utils['escapeHtml'](_0x5b0271[_0x376fe7(0x114)])+_0x376fe7(0x255)+Utils['escapeHtml'](_0x5b0271['name'])+'\x27)\x22\x20title=\x22Delete\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<svg\x20width=\x2214\x22\x20height=\x2214\x22\x20viewBox=\x220\x200\x2024\x2024\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<polyline\x20points=\x223\x206\x205\x206\x2021\x206\x22></polyline>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<path\x20d=\x22M19\x206v14a2\x202\x200\x200\x201-2\x202H7a2\x202\x200\x200\x201-2-2V6m3\x200V4a2\x202\x200\x200\x201\x202-2h4a2\x202\x200\x200\x201\x202\x202v2\x22></path>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</svg>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20';})[_0x3c5fc4(0xd8)]('');_0x2e00ae[_0x3c5fc4(0x15c)]=_0x278f82;}function setupGitProviderListeners(){const _0x17f457=_0x224687,_0x357047=document['getElementById'](_0x17f457(0x1d2));_0x357047&&(_0x357047[_0x17f457(0x1f7)](_0x17f457(0x214))?.[_0x17f457(0x238)](_0x17f457(0x20a),closeGitProviderModal),_0x357047[_0x17f457(0x1f7)](_0x17f457(0xb2))?.['addEventListener'](_0x17f457(0x20a),closeGitProviderModal),document[_0x17f457(0x247)]('git-provider-cancel-btn')?.[_0x17f457(0x238)](_0x17f457(0x20a),closeGitProviderModal),document[_0x17f457(0x247)](_0x17f457(0x19a))?.[_0x17f457(0x238)](_0x17f457(0x20a),saveGitProvider),document[_0x17f457(0x247)](_0x17f457(0x1db))?.[_0x17f457(0x238)](_0x17f457(0x20a),testGitProviderConnection),document[_0x17f457(0x247)](_0x17f457(0x128))?.[_0x17f457(0x238)](_0x17f457(0x20a),()=>{const _0x5c1664=_0x17f457;document[_0x5c1664(0x247)](_0x5c1664(0x18e))?.[_0x5c1664(0x20a)]();}),document[_0x17f457(0x247)](_0x17f457(0x18e))?.[_0x17f457(0x238)](_0x17f457(0xcd),handleKeyFileImport),document[_0x17f457(0x247)](_0x17f457(0x16b))?.['addEventListener'](_0x17f457(0x20a),()=>{const _0x4d4825=_0x17f457;document[_0x4d4825(0x247)](_0x4d4825(0x155))?.[_0x4d4825(0x20a)]();}),document[_0x17f457(0x247)]('git-provider-cert-input')?.[_0x17f457(0x238)](_0x17f457(0xcd),handleCertFileImport));const _0x176fcb=document[_0x17f457(0x247)](_0x17f457(0x225));_0x176fcb&&(_0x176fcb[_0x17f457(0x1f7)](_0x17f457(0x214))?.[_0x17f457(0x238)](_0x17f457(0x20a),closeDeleteGitProviderModal),_0x176fcb[_0x17f457(0x1f7)](_0x17f457(0xb2))?.['addEventListener'](_0x17f457(0x20a),closeDeleteGitProviderModal),document[_0x17f457(0x247)](_0x17f457(0x191))?.['addEventListener'](_0x17f457(0x20a),closeDeleteGitProviderModal),document[_0x17f457(0x247)](_0x17f457(0x25f))?.[_0x17f457(0x238)](_0x17f457(0x20a),confirmDeleteGitProvider));}function initGitProviderSelects(){const _0x263a85=_0x224687,_0x1d59dd=document[_0x263a85(0x247)](_0x263a85(0xd0));if(_0x1d59dd&&!document['getElementById'](_0x263a85(0x182))){const _0x26b59=document['createElement'](_0x263a85(0x20d));_0x26b59['id']=_0x263a85(0x182),_0x26b59['innerHTML']=_0x263a85(0xd4),_0x1d59dd[_0x263a85(0x27c)](_0x26b59),customSelects[_0x263a85(0x1bd)]=new CustomSelect(_0x26b59,{'searchable':![]}),_0x26b59[_0x263a85(0x238)](_0x263a85(0xcd),window[_0x263a85(0x13a)]);}const _0x983f=document[_0x263a85(0x247)](_0x263a85(0xf8));if(_0x983f&&!document['getElementById'](_0x263a85(0x11b))){const _0x22de37=document[_0x263a85(0xdf)](_0x263a85(0x20d));_0x22de37['id']=_0x263a85(0x11b),_0x22de37[_0x263a85(0x15c)]=_0x263a85(0x22c),_0x983f[_0x263a85(0x27c)](_0x22de37),customSelects['gitProviderAuthMethod']=new CustomSelect(_0x22de37,{'searchable':![]}),_0x22de37[_0x263a85(0x238)]('change',window['onAzureAuthMethodChange']);}}function initGitHubSetupSelects(){const _0x24680d=_0x224687,_0x389664=document[_0x24680d(0x247)](_0x24680d(0x1ce));if(_0x389664&&!document['getElementById'](_0x24680d(0x23f))){const _0x4dc0f8=document['createElement']('select');_0x4dc0f8['id']='github-setup-account-type',_0x4dc0f8['innerHTML']=_0x24680d(0x140),_0x389664[_0x24680d(0x27c)](_0x4dc0f8),customSelects[_0x24680d(0x189)]=new CustomSelect(_0x4dc0f8,{'searchable':![]}),_0x4dc0f8[_0x24680d(0x238)](_0x24680d(0xcd),window['onGitHubSetupAccountTypeChange']);}}window[_0x224687(0x13a)]=function(){const _0x45b59d=_0x224687,_0x292b29=document[_0x45b59d(0x247)](_0x45b59d(0x182)),_0x166d8e=_0x292b29?_0x292b29[_0x45b59d(0x1a9)]:_0x45b59d(0xd3);document['getElementById'](_0x45b59d(0x1fe))[_0x45b59d(0x17b)]=_0x166d8e!=='github',document[_0x45b59d(0x247)](_0x45b59d(0x219))[_0x45b59d(0x17b)]=_0x166d8e!=='azure-devops';},window[_0x224687(0x14e)]=function(){const _0x594ade=_0x224687,_0x190098=document[_0x594ade(0x247)](_0x594ade(0x11b)),_0x29d76f=_0x190098?_0x190098[_0x594ade(0x1a9)]:_0x594ade(0xb7);document[_0x594ade(0x247)](_0x594ade(0x26e))['hidden']=_0x29d76f!==_0x594ade(0xb7),document['getElementById'](_0x594ade(0x21b))[_0x594ade(0x17b)]=_0x29d76f!==_0x594ade(0x1c7);};function handleKeyFileImport(_0x16d20d){const _0x18b252=_0x224687,_0x624d09=_0x16d20d[_0x18b252(0x235)][_0x18b252(0x166)][0x0];if(_0x624d09){const _0x4afb97=new FileReader();_0x4afb97[_0x18b252(0x161)]=_0xc4be97=>{const _0x5e3fb3=_0x18b252;document[_0x5e3fb3(0x247)]('git-provider-private-key')['value']=_0xc4be97[_0x5e3fb3(0x235)][_0x5e3fb3(0x101)];},_0x4afb97['readAsText'](_0x624d09);}_0x16d20d['target'][_0x18b252(0x1a9)]='';}function handleCertFileImport(_0x2e8286){const _0x2c59f1=_0x224687,_0x276794=_0x2e8286[_0x2c59f1(0x235)]['files'][0x0];if(_0x276794){const _0x5026f8=new FileReader();_0x5026f8[_0x2c59f1(0x161)]=_0x52bb77=>{const _0x2f59fa=_0x2c59f1;document[_0x2f59fa(0x247)](_0x2f59fa(0x18f))[_0x2f59fa(0x1a9)]=_0x52bb77[_0x2f59fa(0x235)][_0x2f59fa(0x101)];},_0x5026f8[_0x2c59f1(0x173)](_0x276794);}_0x2e8286['target']['value']='';}async function openGitProviderModal(_0x12e148=null){const _0x57c524=_0x224687;initGitProviderSelects();const _0xb75f66=document[_0x57c524(0x247)](_0x57c524(0x1d2)),_0x598cb1=document[_0x57c524(0x247)](_0x57c524(0x24c)),_0x366f90=document['getElementById'](_0x57c524(0x15a));_0xb75f66[_0x57c524(0x1e6)]['editing']=_0x12e148||'',_0x598cb1[_0x57c524(0x178)]=_0x12e148?'Edit\x20Git\x20Provider':_0x57c524(0x1aa);if(_0x366f90)_0x366f90[_0x57c524(0x17b)]=!![];const _0x51fad4=!!_0x12e148;document[_0x57c524(0x247)](_0x57c524(0x12b))['hidden']=_0x51fad4,document[_0x57c524(0x247)]('git-provider-name-hint')['hidden']=_0x51fad4,document[_0x57c524(0x247)](_0x57c524(0x279))['hidden']=_0x51fad4,document[_0x57c524(0x247)](_0x57c524(0xda))[_0x57c524(0x17b)]=_0x51fad4,document['getElementById'](_0x57c524(0x10e))[_0x57c524(0x1a9)]='',document[_0x57c524(0x247)](_0x57c524(0x10e))[_0x57c524(0x125)]=![],document[_0x57c524(0x247)]('git-provider-type')[_0x57c524(0x1a9)]=_0x57c524(0xd3),document['getElementById'](_0x57c524(0x188))[_0x57c524(0x1a9)]='',document['getElementById'](_0x57c524(0x177))[_0x57c524(0x1a9)]='',document[_0x57c524(0x247)](_0x57c524(0x176))[_0x57c524(0x1a9)]='',document[_0x57c524(0x247)](_0x57c524(0x213))['value']='',document[_0x57c524(0x247)](_0x57c524(0x160))[_0x57c524(0x1a9)]='',document['getElementById']('git-provider-organization')[_0x57c524(0x1a9)]='',document['getElementById'](_0x57c524(0x1af))[_0x57c524(0x1a9)]='',document[_0x57c524(0x247)](_0x57c524(0xff))['value']='',document[_0x57c524(0x247)](_0x57c524(0x11b))[_0x57c524(0x1a9)]=_0x57c524(0xb7),document[_0x57c524(0x247)](_0x57c524(0x143))['value']='',document[_0x57c524(0x247)](_0x57c524(0x18f))[_0x57c524(0x1a9)]='',document[_0x57c524(0x247)](_0x57c524(0x1ca))[_0x57c524(0x17b)]=!![];if(_0x12e148)try{const _0x411759=await API[_0x57c524(0x1d8)](_0x57c524(0xea)+encodeURIComponent(_0x12e148));document[_0x57c524(0x247)]('git-provider-name')[_0x57c524(0x1a9)]=_0x411759[_0x57c524(0x114)],document['getElementById']('git-provider-name')['disabled']=!![],document[_0x57c524(0x247)](_0x57c524(0x182))['value']=_0x411759[_0x57c524(0x1d1)],document['getElementById']('git-provider-type')[_0x57c524(0x125)]=!![];if(_0x411759[_0x57c524(0x1d1)]===_0x57c524(0xd3))document[_0x57c524(0x247)](_0x57c524(0x188))[_0x57c524(0x1a9)]=_0x411759[_0x57c524(0x16d)]||'',document[_0x57c524(0x247)]('git-provider-installation-id')['value']=_0x411759[_0x57c524(0x1e1)]||'',_0x411759['has_private_key']&&(document[_0x57c524(0x247)](_0x57c524(0x176))[_0x57c524(0x1f9)]=_0x57c524(0x187)),_0x411759['client_id']&&(document[_0x57c524(0x247)]('git-provider-oauth-client-id')[_0x57c524(0x1a9)]=_0x411759[_0x57c524(0x1ef)]),_0x411759[_0x57c524(0x10d)]&&(document[_0x57c524(0x247)](_0x57c524(0x1ca))[_0x57c524(0x17b)]=![],document[_0x57c524(0x247)](_0x57c524(0x157))['onclick']=()=>window[_0x57c524(0x168)](_0x411759[_0x57c524(0x10d)],_0x57c524(0x1b0)));else _0x411759[_0x57c524(0x1d1)]===_0x57c524(0x27e)&&(document[_0x57c524(0x247)](_0x57c524(0x277))[_0x57c524(0x1a9)]=_0x411759['organization']||'',document[_0x57c524(0x247)](_0x57c524(0x1af))['value']=_0x411759[_0x57c524(0x20e)]||'',document['getElementById'](_0x57c524(0xff))[_0x57c524(0x1a9)]=_0x411759[_0x57c524(0x1ef)]||'',document[_0x57c524(0x247)](_0x57c524(0x11b))['value']=_0x411759[_0x57c524(0xcb)]||_0x57c524(0xb7),window[_0x57c524(0x14e)]());}catch(_0x585bf7){console[_0x57c524(0x1be)](_0x57c524(0xf4),_0x585bf7),showGitProviderError(_0x57c524(0x18d)+_0x585bf7[_0x57c524(0x22a)]);return;}else document[_0x57c524(0x247)]('git-provider-type')[_0x57c524(0x125)]=![],document[_0x57c524(0x247)](_0x57c524(0x176))['placeholder']='-----BEGIN\x20RSA\x20PRIVATE\x20KEY-----\x0a...\x0a-----END\x20RSA\x20PRIVATE\x20KEY-----';window['onGitProviderTypeChange'](),window['onAzureAuthMethodChange'](),_0xb75f66[_0x57c524(0x17b)]=![];}function closeGitProviderModal(){const _0x1c4b6c=_0x224687;document[_0x1c4b6c(0x247)](_0x1c4b6c(0x1d2))[_0x1c4b6c(0x17b)]=!![];}function showGitProviderError(_0x45da48){const _0x11cfa7=_0x224687,_0x47ccca=document[_0x11cfa7(0x247)](_0x11cfa7(0x15a));_0x47ccca&&(_0x47ccca[_0x11cfa7(0x178)]=_0x45da48,_0x47ccca[_0x11cfa7(0x17b)]=![]);}async function testGitProviderConnection(){const _0xd8ca6a=_0x224687,_0x5c3b03=document[_0xd8ca6a(0x247)]('git-provider-modal'),_0x1c428b=_0x5c3b03[_0xd8ca6a(0x1e6)][_0xd8ca6a(0x1f2)],_0x266206=document['getElementById'](_0xd8ca6a(0x10e))['value'][_0xd8ca6a(0x1a4)]();if(!_0x1c428b){showGitProviderError(_0xd8ca6a(0x268));return;}try{const _0x3e1d30=await API['post'](_0xd8ca6a(0xea)+encodeURIComponent(_0x266206)+_0xd8ca6a(0x1ed)),_0x7bbed5=document[_0xd8ca6a(0x247)](_0xd8ca6a(0x15a));_0x3e1d30[_0xd8ca6a(0xfa)]?_0x7bbed5&&(_0x7bbed5[_0xd8ca6a(0x178)]=_0xd8ca6a(0x13c)+(_0x3e1d30[_0xd8ca6a(0x22a)]||'OK'),_0x7bbed5['className']='modal-inline-message\x20success',_0x7bbed5[_0xd8ca6a(0x17b)]=![]):showGitProviderError('Connection\x20failed:\x20'+(_0x3e1d30['message']||_0x3e1d30['error']));}catch(_0x48e68a){console[_0xd8ca6a(0x1be)](_0xd8ca6a(0x172),_0x48e68a),showGitProviderError(_0x48e68a[_0xd8ca6a(0x22a)]||_0xd8ca6a(0x162));}}function collectGitProviderData(){const _0x3a9193=_0x224687,_0x1d8894=document[_0x3a9193(0x247)]('git-provider-name')['value'][_0x3a9193(0x1a4)](),_0x329fcc=document[_0x3a9193(0x247)](_0x3a9193(0x182))[_0x3a9193(0x1a9)];if(!_0x1d8894)return showGitProviderError('Provider\x20name\x20is\x20required'),null;const _0x2be6f8={'name':_0x1d8894,'type':_0x329fcc};if(_0x329fcc===_0x3a9193(0xd3)){_0x2be6f8['app_id']=document['getElementById'](_0x3a9193(0x188))[_0x3a9193(0x1a9)][_0x3a9193(0x1a4)](),_0x2be6f8[_0x3a9193(0x1e1)]=document[_0x3a9193(0x247)](_0x3a9193(0x177))[_0x3a9193(0x1a9)][_0x3a9193(0x1a4)]();const _0x4cf0de=document['getElementById'](_0x3a9193(0x176))['value'][_0x3a9193(0x1a4)]();_0x4cf0de&&(_0x2be6f8[_0x3a9193(0x222)]=_0x4cf0de);const _0x1f8ee0=document['getElementById'](_0x3a9193(0x213))[_0x3a9193(0x1a9)][_0x3a9193(0x1a4)]();_0x1f8ee0&&(_0x2be6f8[_0x3a9193(0x192)]=_0x1f8ee0);const _0x8cf5ec=document[_0x3a9193(0x247)](_0x3a9193(0x160))[_0x3a9193(0x1a9)][_0x3a9193(0x1a4)]();_0x8cf5ec&&(_0x2be6f8['oauth_client_secret']=_0x8cf5ec);}else{if(_0x329fcc===_0x3a9193(0x27e)){_0x2be6f8[_0x3a9193(0x211)]=document[_0x3a9193(0x247)](_0x3a9193(0x277))[_0x3a9193(0x1a9)][_0x3a9193(0x1a4)](),_0x2be6f8['tenant_id']=document['getElementById'](_0x3a9193(0x1af))[_0x3a9193(0x1a9)][_0x3a9193(0x1a4)](),_0x2be6f8[_0x3a9193(0x1ef)]=document[_0x3a9193(0x247)](_0x3a9193(0xff))[_0x3a9193(0x1a9)][_0x3a9193(0x1a4)](),_0x2be6f8['auth_method']=document[_0x3a9193(0x247)](_0x3a9193(0x11b))[_0x3a9193(0x1a9)];if(_0x2be6f8[_0x3a9193(0xcb)]==='secret'){const _0x2459f1=document['getElementById']('git-provider-client-secret')['value']['trim']();_0x2459f1&&(_0x2be6f8['client_secret']=_0x2459f1);}else{const _0x53f7af=document[_0x3a9193(0x247)]('git-provider-certificate')['value'][_0x3a9193(0x1a4)]();_0x53f7af&&(_0x2be6f8[_0x3a9193(0x1c7)]=_0x53f7af);}}}return _0x2be6f8;}async function saveGitProvider(){const _0x22fbf3=_0x224687,_0x554376=document[_0x22fbf3(0x247)]('git-provider-modal'),_0x5aaede=_0x554376[_0x22fbf3(0x1e6)][_0x22fbf3(0x1f2)],_0x35a460=document[_0x22fbf3(0x247)](_0x22fbf3(0x15a));if(_0x35a460)_0x35a460['hidden']=!![];const _0x192896=collectGitProviderData();if(!_0x192896)return;_0x5aaede&&(_0x192896['type']==='github'&&!_0x192896[_0x22fbf3(0x222)]&&(_0x192896[_0x22fbf3(0x1f0)]=!![]),_0x192896[_0x22fbf3(0x1d1)]===_0x22fbf3(0x27e)&&(_0x192896['auth_method']===_0x22fbf3(0xb7)&&!_0x192896[_0x22fbf3(0xbc)]&&(_0x192896[_0x22fbf3(0xf6)]=!![]),_0x192896['auth_method']===_0x22fbf3(0x1c7)&&!_0x192896[_0x22fbf3(0x1c7)]&&(_0x192896[_0x22fbf3(0x100)]=!![])));try{_0x5aaede?await API[_0x22fbf3(0x26b)](_0x22fbf3(0xea)+encodeURIComponent(_0x5aaede),_0x192896):await API['post'](_0x22fbf3(0x196),_0x192896),closeGitProviderModal(),showInlineMessage(_0x22fbf3(0x21c),_0x22fbf3(0xfa),_0x5aaede?_0x22fbf3(0x13e):_0x22fbf3(0x1ae)),await loadGitProviders();}catch(_0x2a0427){console[_0x22fbf3(0x1be)](_0x22fbf3(0x164),_0x2a0427),showGitProviderError(_0x2a0427[_0x22fbf3(0x22a)]||_0x22fbf3(0x237));}}window[_0x224687(0xbf)]=async function(_0x11324a){await openGitProviderModal(_0x11324a);},window[_0x224687(0x144)]=function(_0x2deb40){const _0x1ea524=_0x224687;document[_0x1ea524(0x247)](_0x1ea524(0x1ac))[_0x1ea524(0x178)]=_0x2deb40,document[_0x1ea524(0x247)](_0x1ea524(0x225))[_0x1ea524(0x1e6)][_0x1ea524(0x114)]=_0x2deb40,document[_0x1ea524(0x247)](_0x1ea524(0x225))['hidden']=![];};function closeDeleteGitProviderModal(){const _0x210786=_0x224687;document[_0x210786(0x247)](_0x210786(0x225))[_0x210786(0x17b)]=!![];}async function confirmDeleteGitProvider(){const _0x55a8cb=_0x224687,_0x9e8784=document['getElementById']('delete-git-provider-modal')[_0x55a8cb(0x1e6)][_0x55a8cb(0x114)];try{await API[_0x55a8cb(0xe7)](_0x55a8cb(0xea)+encodeURIComponent(_0x9e8784)),closeDeleteGitProviderModal(),showInlineMessage('git-providers',_0x55a8cb(0xfa),_0x55a8cb(0x109)),await loadGitProviders();}catch(_0x13ffb6){console[_0x55a8cb(0x1be)](_0x55a8cb(0xcc),_0x13ffb6),showInlineMessage('git-providers',_0x55a8cb(0x1be),_0x55a8cb(0x250));}}function setupProviderTypeListeners(){const _0x447864=_0x224687,_0x2b22a2=document[_0x447864(0x247)]('add-provider-type-modal');_0x2b22a2&&(_0x2b22a2[_0x447864(0x1f7)](_0x447864(0x214))?.['addEventListener']('click',closeAddProviderTypeModal),_0x2b22a2['querySelector'](_0x447864(0xb2))?.[_0x447864(0x238)](_0x447864(0x20a),closeAddProviderTypeModal),document[_0x447864(0x247)](_0x447864(0x12d))?.[_0x447864(0x238)]('click',closeAddProviderTypeModal),document['getElementById'](_0x447864(0x198))?.[_0x447864(0x238)](_0x447864(0x20a),openGitHubAppSetupWizard),document['getElementById']('add-provider-azure-btn')?.[_0x447864(0x238)](_0x447864(0x20a),openAzureDevOpsProviderModal));}function openAddProviderTypeModal(){const _0x458392=_0x224687;document[_0x458392(0x247)](_0x458392(0x1dc))[_0x458392(0x17b)]=![];}function closeAddProviderTypeModal(){const _0x428f34=_0x224687;document['getElementById'](_0x428f34(0x1dc))[_0x428f34(0x17b)]=!![];}function openAzureDevOpsProviderModal(){const _0x7aa9ce=_0x224687;closeAddProviderTypeModal(),openGitProviderModal(null),document[_0x7aa9ce(0x247)](_0x7aa9ce(0x182))['value']='azure-devops',window[_0x7aa9ce(0x13a)]();}function setupGitHubSetupWizardListeners(){const _0x2e2ae5=_0x224687,_0x3cb6f5=document[_0x2e2ae5(0x247)]('github-app-setup-wizard-modal');_0x3cb6f5&&(_0x3cb6f5[_0x2e2ae5(0x1f7)]('.modal-close')?.[_0x2e2ae5(0x238)]('click',closeGitHubAppSetupWizard),_0x3cb6f5['querySelector']('.modal-overlay')?.[_0x2e2ae5(0x238)](_0x2e2ae5(0x20a),closeGitHubAppSetupWizard),document[_0x2e2ae5(0x247)](_0x2e2ae5(0x254))?.['addEventListener']('click',closeGitHubAppSetupWizard),document['getElementById'](_0x2e2ae5(0x11f))?.['addEventListener']('click',gitHubSetupWizardNext));}function openGitHubAppSetupWizard(){const _0x47ba88=_0x224687;closeAddProviderTypeModal(),initGitHubSetupSelects(),document['getElementById'](_0x47ba88(0x15e))[_0x47ba88(0x1a9)]='',document[_0x47ba88(0x247)](_0x47ba88(0x25e))[_0x47ba88(0x1a9)]='',document[_0x47ba88(0x247)](_0x47ba88(0x23f))['value']='organization',document[_0x47ba88(0x247)](_0x47ba88(0xf0))[_0x47ba88(0x1a9)]='',document[_0x47ba88(0x247)]('github-setup-provider-name')[_0x47ba88(0x1a9)]='',document[_0x47ba88(0x247)](_0x47ba88(0xb9))[_0x47ba88(0x17b)]=!![],document[_0x47ba88(0x247)]('github-setup-next-btn')[_0x47ba88(0x17b)]=![],window[_0x47ba88(0xd6)](),document['getElementById'](_0x47ba88(0x14b))[_0x47ba88(0x17b)]=![];}function closeGitHubAppSetupWizard(){const _0x502f75=_0x224687;document['getElementById'](_0x502f75(0x14b))[_0x502f75(0x17b)]=!![];}window['onGitHubSetupAccountTypeChange']=function(){const _0x15c611=_0x224687,_0x2409af=document['getElementById']('github-setup-account-type'),_0x4de30d=_0x2409af?_0x2409af['value']:_0x15c611(0x211);document[_0x15c611(0x247)](_0x15c611(0x220))['hidden']=_0x4de30d!==_0x15c611(0x211);};async function gitHubSetupWizardNext(){const _0x15ada5=_0x224687,_0x584a33=document['getElementById'](_0x15ada5(0xb9));_0x584a33[_0x15ada5(0x17b)]=!![];const _0x207481=document['getElementById'](_0x15ada5(0x1eb))[_0x15ada5(0x1a9)]['trim'](),_0x3fdf14=document[_0x15ada5(0x247)](_0x15ada5(0x15e))[_0x15ada5(0x1a9)][_0x15ada5(0x1a4)](),_0x3d30b6=document[_0x15ada5(0x247)]('github-setup-description')[_0x15ada5(0x1a9)][_0x15ada5(0x1a4)](),_0x28fee9=document[_0x15ada5(0x247)](_0x15ada5(0x23f))['value'],_0x104005=document['getElementById']('github-setup-org-name')[_0x15ada5(0x1a9)][_0x15ada5(0x1a4)]();if(!_0x207481){_0x584a33[_0x15ada5(0x178)]=_0x15ada5(0x228),_0x584a33[_0x15ada5(0x17b)]=![];return;}if(!/^[a-z0-9][a-z0-9-]*[a-z0-9]$/[_0x15ada5(0x181)](_0x207481)&&_0x207481[_0x15ada5(0x212)]>0x1){_0x584a33[_0x15ada5(0x178)]=_0x15ada5(0x1f3),_0x584a33[_0x15ada5(0x17b)]=![];return;}if(state[_0x15ada5(0x16c)][_0x15ada5(0x174)](_0x433679=>_0x433679[_0x15ada5(0x114)]===_0x207481)){_0x584a33[_0x15ada5(0x178)]=_0x15ada5(0x269),_0x584a33['hidden']=![];return;}if(!_0x3fdf14){_0x584a33[_0x15ada5(0x178)]=_0x15ada5(0x259),_0x584a33['hidden']=![];return;}if(_0x28fee9==='organization'&&!_0x104005){_0x584a33[_0x15ada5(0x178)]='Organization\x20Name\x20is\x20required',_0x584a33[_0x15ada5(0x17b)]=![];return;}try{const _0xd4c05e=document[_0x15ada5(0x247)]('github-setup-next-btn');_0xd4c05e['disabled']=!![],_0xd4c05e[_0x15ada5(0x178)]='Starting...';const _0x1fb5ff=await API[_0x15ada5(0x16f)](_0x15ada5(0xee),{'type':_0x15ada5(0xd3),'config':{'providerName':_0x207481,'appName':_0x3fdf14,'description':_0x3d30b6,'accountType':_0x28fee9,'orgName':_0x28fee9===_0x15ada5(0x211)?_0x104005:undefined}}),_0x2da329=document[_0x15ada5(0x247)](_0x15ada5(0x1ec));_0x2da329['action']=_0x1fb5ff['redirect_url'],document[_0x15ada5(0x247)](_0x15ada5(0x17f))[_0x15ada5(0x1a9)]=_0x1fb5ff[_0x15ada5(0x129)],_0x2da329[_0x15ada5(0x1b2)]();}catch(_0x4b33d1){_0x584a33[_0x15ada5(0x178)]=_0x4b33d1[_0x15ada5(0x22a)]||_0x15ada5(0x1e5),_0x584a33[_0x15ada5(0x17b)]=![];}finally{const _0x430dda=document[_0x15ada5(0x247)](_0x15ada5(0x11f));_0x430dda[_0x15ada5(0x125)]=![],_0x430dda[_0x15ada5(0x178)]='Next';}}function setupSsoTabs(){const _0x1d0ac3=_0x224687,_0x2c68fc=document[_0x1d0ac3(0x12f)]('.sso-tab');_0x2c68fc['forEach'](_0x2af649=>{const _0xf9e956=_0x1d0ac3;_0x2af649[_0xf9e956(0x238)](_0xf9e956(0x20a),()=>{const _0x199bac=_0xf9e956,_0x44de81=_0x2af649[_0x199bac(0x1e6)][_0x199bac(0x233)];_0x2c68fc[_0x199bac(0x266)](_0x85a04e=>_0x85a04e[_0x199bac(0x186)][_0x199bac(0x12a)]('active',_0x85a04e[_0x199bac(0x1e6)]['tab']===_0x44de81)),document[_0x199bac(0x12f)](_0x199bac(0x285))['forEach'](_0x16d707=>{const _0x4671da=_0x199bac;_0x16d707[_0x4671da(0x186)][_0x4671da(0x12a)]('active',_0x16d707['id']===_0x4671da(0xde)+_0x44de81);});});});}function initSsoSelects(){const _0x501a8a=_0x224687,_0x1f981c=document[_0x501a8a(0x247)](_0x501a8a(0x280));if(_0x1f981c&&!document[_0x501a8a(0x247)](_0x501a8a(0x21d))){const _0x4f8694=document[_0x501a8a(0xdf)]('select');_0x4f8694['id']=_0x501a8a(0x21d),_0x4f8694[_0x501a8a(0x15c)]=_0x501a8a(0x17e),_0x1f981c['appendChild'](_0x4f8694),customSelects[_0x501a8a(0x180)]=new CustomSelect(_0x4f8694,{'searchable':![]});}const _0x209f86=document['getElementById'](_0x501a8a(0xe9));if(_0x209f86&&!document[_0x501a8a(0x247)](_0x501a8a(0x12e))){const _0x1f7c9a=document['createElement']('select');_0x1f7c9a['id']='sso-default-role',_0x1f7c9a['innerHTML']=_0x501a8a(0x252),_0x209f86[_0x501a8a(0x27c)](_0x1f7c9a),customSelects['ssoDefaultRole']=new CustomSelect(_0x1f7c9a,{'searchable':![]});}}function showSsoMessage(_0x48f0f5,_0xa5ea00){const _0x26f785=_0x224687,_0x2bcfac=document[_0x26f785(0x247)](_0x26f785(0x27a));_0x2bcfac&&(_0x2bcfac['textContent']=_0xa5ea00,_0x2bcfac[_0x26f785(0x263)]=_0x26f785(0xf3)+_0x48f0f5,_0x2bcfac[_0x26f785(0x17b)]=![],_0x48f0f5===_0x26f785(0xfa)&&setTimeout(()=>{const _0x41c6a2=_0x26f785;_0x2bcfac[_0x41c6a2(0x17b)]=!![];},0x1388));}function hideSsoMessage(){const _0x425c0b=_0x224687,_0x4fc42b=document[_0x425c0b(0x247)](_0x425c0b(0x27a));if(_0x4fc42b)_0x4fc42b[_0x425c0b(0x17b)]=!![];}async function loadSsoSettings(){const _0x400a3e=_0x224687;initSsoSelects();try{const _0xde338f=await API[_0x400a3e(0x1d8)](_0x400a3e(0x10c));state[_0x400a3e(0x1b5)]=_0xde338f,document[_0x400a3e(0x247)](_0x400a3e(0x242))[_0x400a3e(0x24a)]=_0xde338f['enabled']||![],document['getElementById'](_0x400a3e(0x21d))[_0x400a3e(0x1a9)]=_0xde338f[_0x400a3e(0xef)]||_0x400a3e(0x1d4),document[_0x400a3e(0x247)](_0x400a3e(0xf5))[_0x400a3e(0x1a9)]=_0xde338f[_0x400a3e(0x281)]||'',document[_0x400a3e(0x247)](_0x400a3e(0x1b4))[_0x400a3e(0x1a9)]=_0xde338f[_0x400a3e(0xe8)]||'',document['getElementById'](_0x400a3e(0x126))[_0x400a3e(0x1a9)]=_0xde338f['client_id']||'',document[_0x400a3e(0x247)](_0x400a3e(0x14c))[_0x400a3e(0x1a9)]='',document[_0x400a3e(0x247)](_0x400a3e(0xc7))[_0x400a3e(0x24a)]=_0xde338f['auto_provision']!==![],document[_0x400a3e(0x247)]('sso-default-role')[_0x400a3e(0x1a9)]=_0xde338f[_0x400a3e(0x239)]||_0x400a3e(0x14a),document[_0x400a3e(0x247)](_0x400a3e(0xdc))['checked']=_0xde338f['allow_local_auth']!==![];const _0xb970d1=document[_0x400a3e(0x247)](_0x400a3e(0x195));_0xb970d1&&(_0xb970d1[_0x400a3e(0x1bb)][_0x400a3e(0x1b8)]=_0xde338f[_0x400a3e(0x22e)]?_0x400a3e(0x1fb):_0x400a3e(0x1bc));const _0x58a006=document[_0x400a3e(0x247)](_0x400a3e(0x278));_0x58a006&&(_0x58a006[_0x400a3e(0x17b)]=!_0xde338f[_0x400a3e(0xd9)]);}catch(_0x33cb83){console[_0x400a3e(0x1be)](_0x400a3e(0x1a6),_0x33cb83);throw _0x33cb83;}}async function saveSsoSettings(){const _0x150da1=_0x224687;hideSsoMessage();try{const _0x419cdb={'enabled':document['getElementById'](_0x150da1(0x242))[_0x150da1(0x24a)],'provider':document['getElementById'](_0x150da1(0x21d))[_0x150da1(0x1a9)],'display_name':document['getElementById']('sso-display-name')[_0x150da1(0x1a9)]['trim'](),'issuer':document[_0x150da1(0x247)](_0x150da1(0x1b4))[_0x150da1(0x1a9)][_0x150da1(0x1a4)](),'client_id':document[_0x150da1(0x247)]('sso-client-id')['value'][_0x150da1(0x1a4)](),'auto_provision':document['getElementById'](_0x150da1(0xc7))[_0x150da1(0x24a)],'default_role':document[_0x150da1(0x247)](_0x150da1(0x12e))[_0x150da1(0x1a9)],'allow_local_auth':document[_0x150da1(0x247)](_0x150da1(0xdc))[_0x150da1(0x24a)]},_0x385e40=document[_0x150da1(0x247)]('sso-client-secret')[_0x150da1(0x1a9)];_0x385e40?_0x419cdb[_0x150da1(0xbc)]=_0x385e40:_0x419cdb[_0x150da1(0x260)]=!![],await API['put'](_0x150da1(0x10c),_0x419cdb),await API[_0x150da1(0x16f)](_0x150da1(0x1f4)),showSsoMessage('success',_0x150da1(0x251)),await loadSsoSettings();}catch(_0x4043be){console[_0x150da1(0x1be)]('Failed\x20to\x20save\x20SSO\x20settings:',_0x4043be),showSsoMessage(_0x150da1(0x1be),_0x150da1(0x1e9));}}async function testSsoConnection(){const _0x1c5143=_0x224687,_0x1a364c=document[_0x1c5143(0x247)](_0x1c5143(0x1b4))[_0x1c5143(0x1a9)][_0x1c5143(0x1a4)]();if(!_0x1a364c){showSsoTestResult(![],_0x1c5143(0x216));return;}const _0xf55c59=document[_0x1c5143(0x247)]('sso-test-result');_0xf55c59['textContent']=_0x1c5143(0xbb),_0xf55c59[_0x1c5143(0x263)]=_0x1c5143(0x10f),_0xf55c59['hidden']=![];try{const _0x2b5ae4=await API[_0x1c5143(0x16f)](_0x1c5143(0x138),{'issuer':_0x1a364c});_0x2b5ae4[_0x1c5143(0xfa)]?showSsoTestResult(!![],_0x1c5143(0x246)):showSsoTestResult(![],'Discovery\x20failed:\x20'+_0x2b5ae4[_0x1c5143(0x1be)]);}catch(_0x5a4167){console[_0x1c5143(0x1be)]('Failed\x20to\x20test\x20SSO\x20connection:',_0x5a4167),showSsoTestResult(![],_0x1c5143(0x162));}}function showSsoTestResult(_0x248fa1,_0x395413){const _0x6f2829=_0x224687,_0xbebd92=document['getElementById'](_0x6f2829(0x10f));_0xbebd92&&(_0xbebd92[_0x6f2829(0x178)]=_0x395413,_0xbebd92[_0x6f2829(0x263)]='sso-test-result\x20'+(_0x248fa1?_0x6f2829(0xfa):_0x6f2829(0x1be)),_0xbebd92['hidden']=![]);}async function removeSsoConfig(){const _0xa8e44e=_0x224687,_0x570a8b=await ConfirmDialog['show']({'title':_0xa8e44e(0x200),'message':_0xa8e44e(0x22d),'confirmText':_0xa8e44e(0x131),'danger':!![]});if(!_0x570a8b)return;try{await API[_0xa8e44e(0xe7)](_0xa8e44e(0x10c)),showSsoMessage(_0xa8e44e(0xfa),_0xa8e44e(0x267)),await loadSsoSettings();}catch(_0x15c79b){console[_0xa8e44e(0x1be)](_0xa8e44e(0x1cc),_0x15c79b),showSsoMessage('error',_0xa8e44e(0xc3));}}
@@ -0,0 +1,355 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Set Password · CoderFlow</title>
7
+ <link rel="icon" href="/favicon.svg" type="image/svg+xml">
8
+ <link rel="icon" href="/favicon-32.png" type="image/png" sizes="32x32">
9
+ <link rel="icon" href="/favicon-16.png" type="image/png" sizes="16x16">
10
+ <link rel="icon" href="/favicon.ico">
11
+ <script>
12
+ (() => {
13
+ const key = 'profound-coder-theme';
14
+ try {
15
+ const stored = localStorage.getItem(key);
16
+ const prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
17
+ const theme = stored === 'dark' || stored === 'light' ? stored : (prefersDark ? 'dark' : 'light');
18
+ document.documentElement.dataset.theme = theme;
19
+ document.documentElement.style.colorScheme = theme === 'dark' ? 'dark' : 'light';
20
+ } catch (error) {
21
+ document.documentElement.dataset.theme = 'light';
22
+ }
23
+ })();
24
+ </script>
25
+ <link rel="stylesheet" href="styles.css?v=83">
26
+ <script type="module" src="setup-password.js?v=55"></script>
27
+ <style>
28
+ body {
29
+ display: flex;
30
+ align-items: center;
31
+ justify-content: center;
32
+ min-height: 100vh;
33
+ background:
34
+ radial-gradient(circle at top right, rgba(var(--color-accent-rgb), 0.22) 0%, transparent 55%),
35
+ radial-gradient(circle at bottom left, rgba(var(--color-accent-rgb), 0.12) 0%, transparent 50%),
36
+ linear-gradient(135deg, var(--color-background) 0%, var(--color-surface-muted) 100%);
37
+ position: relative;
38
+ overflow: hidden;
39
+ }
40
+
41
+ body::before {
42
+ content: '';
43
+ position: absolute;
44
+ top: -50%;
45
+ right: -50%;
46
+ width: 100%;
47
+ height: 100%;
48
+ background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 70%);
49
+ animation: float 20s ease-in-out infinite;
50
+ }
51
+
52
+ :root[data-theme="dark"] body {
53
+ background:
54
+ radial-gradient(circle at top right, rgba(var(--color-accent-rgb), 0.18) 0%, transparent 60%),
55
+ radial-gradient(circle at bottom left, rgba(var(--color-accent-rgb), 0.12) 0%, transparent 50%),
56
+ linear-gradient(135deg, var(--color-background) 0%, #101a30 55%, #131f3a 100%);
57
+ }
58
+
59
+ :root[data-theme="dark"] body::before {
60
+ background: radial-gradient(circle, rgba(255, 255, 255, 0.06) 0%, transparent 70%);
61
+ }
62
+
63
+ @keyframes float {
64
+ 0%, 100% { transform: translate(0, 0) scale(1); }
65
+ 50% { transform: translate(-20px, 20px) scale(1.1); }
66
+ }
67
+
68
+ .setup-container {
69
+ width: 100%;
70
+ max-width: 480px;
71
+ padding: 2rem;
72
+ position: relative;
73
+ z-index: 1;
74
+ }
75
+
76
+ .setup-card {
77
+ background: rgba(255, 255, 255, 0.98);
78
+ backdrop-filter: blur(20px);
79
+ border: 1px solid rgba(255, 255, 255, 0.3);
80
+ border-radius: 24px;
81
+ padding: 3rem 2.5rem;
82
+ box-shadow: 0 24px 60px rgba(0, 0, 0, 0.3),
83
+ 0 0 0 1px rgba(255, 255, 255, 0.1) inset;
84
+ }
85
+
86
+ :root[data-theme="dark"] .setup-card {
87
+ background: rgba(15, 23, 42, 0.9);
88
+ border: 1px solid rgba(255, 255, 255, 0.08);
89
+ box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55),
90
+ 0 0 0 1px rgba(255, 255, 255, 0.04) inset;
91
+ }
92
+
93
+ .setup-header {
94
+ text-align: center;
95
+ margin-bottom: 2rem;
96
+ }
97
+
98
+ .setup-header h1 {
99
+ font-size: 2rem;
100
+ margin: 0 0 0.5rem 0;
101
+ font-weight: 700;
102
+ letter-spacing: -0.03em;
103
+ background: linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-dark) 100%);
104
+ -webkit-background-clip: text;
105
+ -webkit-text-fill-color: transparent;
106
+ background-clip: text;
107
+ }
108
+
109
+ .setup-header p {
110
+ margin: 0;
111
+ color: var(--color-text-secondary);
112
+ font-size: 0.938rem;
113
+ }
114
+
115
+ .user-info {
116
+ background: rgba(var(--color-accent-rgb), 0.06);
117
+ border: 2px solid rgba(var(--color-accent-rgb), 0.18);
118
+ border-radius: 12px;
119
+ padding: 1rem;
120
+ margin-bottom: 1.5rem;
121
+ text-align: center;
122
+ }
123
+
124
+ .user-info .username {
125
+ font-weight: 600;
126
+ font-size: 1.125rem;
127
+ color: var(--color-text);
128
+ }
129
+
130
+ .user-info .name {
131
+ font-size: 0.875rem;
132
+ color: var(--color-text-secondary);
133
+ margin-top: 0.25rem;
134
+ }
135
+
136
+ .setup-form {
137
+ display: flex;
138
+ flex-direction: column;
139
+ gap: 1.25rem;
140
+ }
141
+
142
+ .form-field {
143
+ display: flex;
144
+ flex-direction: column;
145
+ gap: 0.5rem;
146
+ }
147
+
148
+ .form-field label {
149
+ font-weight: 600;
150
+ font-size: 0.875rem;
151
+ color: var(--color-text);
152
+ }
153
+
154
+ .form-field input {
155
+ padding: 0.875rem 1rem;
156
+ border: 2px solid var(--color-border);
157
+ border-radius: 12px;
158
+ font-size: 1rem;
159
+ background: var(--color-surface);
160
+ color: var(--color-text);
161
+ transition: all 0.2s ease;
162
+ }
163
+
164
+ .form-field input:focus {
165
+ outline: none;
166
+ border-color: var(--color-accent);
167
+ box-shadow: 0 0 0 4px rgba(var(--color-accent-rgb), 0.12);
168
+ }
169
+
170
+ .password-requirements {
171
+ font-size: 0.813rem;
172
+ color: var(--color-text-secondary);
173
+ margin-top: -0.5rem;
174
+ }
175
+
176
+ .setup-message {
177
+ padding: 0.875rem 1rem;
178
+ border-radius: 12px;
179
+ font-size: 0.875rem;
180
+ font-weight: 500;
181
+ display: none;
182
+ }
183
+
184
+ .setup-message.error {
185
+ background: rgba(229, 83, 104, 0.1);
186
+ border: 2px solid var(--color-danger);
187
+ color: var(--color-danger);
188
+ }
189
+
190
+ .setup-message.success {
191
+ background: rgba(82, 196, 26, 0.1);
192
+ border: 2px solid var(--color-success);
193
+ color: var(--color-success);
194
+ }
195
+
196
+ .setup-message.info {
197
+ background: rgba(var(--color-accent-rgb), 0.1);
198
+ border: 2px solid var(--color-accent);
199
+ color: var(--color-accent);
200
+ }
201
+
202
+ :root[data-theme="dark"] .setup-message.error {
203
+ background: rgba(229, 83, 104, 0.18);
204
+ }
205
+
206
+ :root[data-theme="dark"] .setup-message.success {
207
+ background: rgba(82, 196, 26, 0.14);
208
+ }
209
+
210
+ :root[data-theme="dark"] .setup-message.info {
211
+ background: rgba(var(--color-accent-rgb), 0.2);
212
+ border-color: rgba(var(--color-accent-rgb), 0.5);
213
+ color: #d5e2ff;
214
+ }
215
+
216
+ .setup-message.visible {
217
+ display: block;
218
+ animation: slideIn 0.3s ease;
219
+ }
220
+
221
+ @keyframes slideIn {
222
+ from {
223
+ opacity: 0;
224
+ transform: translateY(-10px);
225
+ }
226
+ to {
227
+ opacity: 1;
228
+ transform: translateY(0);
229
+ }
230
+ }
231
+
232
+ .setup-submit {
233
+ margin-top: 0.75rem;
234
+ padding: 1rem;
235
+ font-size: 1rem;
236
+ border-radius: 12px;
237
+ background: linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-dark) 100%);
238
+ box-shadow: 0 8px 20px rgba(var(--color-accent-rgb), 0.3);
239
+ transition: all 0.2s ease;
240
+ }
241
+
242
+ .setup-submit:hover:not(:disabled) {
243
+ transform: translateY(-2px);
244
+ box-shadow: 0 12px 28px rgba(var(--color-accent-rgb), 0.4);
245
+ }
246
+
247
+ .setup-submit:active:not(:disabled) {
248
+ transform: translateY(0);
249
+ }
250
+
251
+ .setup-submit:disabled {
252
+ opacity: 0.6;
253
+ cursor: not-allowed;
254
+ }
255
+
256
+ .loading-spinner {
257
+ display: none;
258
+ text-align: center;
259
+ padding: 2rem;
260
+ }
261
+
262
+ .loading-spinner.visible {
263
+ display: block;
264
+ }
265
+
266
+ .spinner {
267
+ border: 3px solid rgba(var(--color-accent-rgb), 0.2);
268
+ border-top-color: var(--color-accent);
269
+ border-radius: 50%;
270
+ width: 40px;
271
+ height: 40px;
272
+ animation: spin 0.8s linear infinite;
273
+ margin: 0 auto;
274
+ }
275
+
276
+ @keyframes spin {
277
+ to { transform: rotate(360deg); }
278
+ }
279
+
280
+ @media (max-width: 480px) {
281
+ .setup-container {
282
+ padding: 1rem;
283
+ }
284
+
285
+ .setup-card {
286
+ padding: 2rem 1.5rem;
287
+ border-radius: 20px;
288
+ }
289
+
290
+ .setup-header h1 {
291
+ font-size: 1.75rem;
292
+ }
293
+ }
294
+ </style>
295
+ <!-- Dev QA shortcut: Ctrl+Shift+Q to launch current page in QA mode -->
296
+ </head>
297
+ <body>
298
+ <div class="setup-container">
299
+ <div class="setup-card">
300
+ <div class="setup-header">
301
+ <h1>Set Your Password</h1>
302
+ <p>Create a secure password for your account</p>
303
+ </div>
304
+
305
+ <div id="loading" class="loading-spinner visible">
306
+ <div class="spinner"></div>
307
+ <p style="margin-top: 1rem; color: var(--color-text-secondary);">Validating token...</p>
308
+ </div>
309
+
310
+ <div id="setup-content" style="display: none;">
311
+ <div id="user-info" class="user-info">
312
+ <div class="username" id="user-username"></div>
313
+ <div class="name" id="user-name"></div>
314
+ </div>
315
+
316
+ <form id="setup-form" class="setup-form">
317
+ <div id="setup-message" class="setup-message" role="alert"></div>
318
+
319
+ <div class="form-field">
320
+ <label for="password">New Password</label>
321
+ <input
322
+ type="password"
323
+ id="password"
324
+ name="password"
325
+ required
326
+ autocomplete="new-password"
327
+ autofocus
328
+ minlength="8"
329
+ >
330
+ <div class="password-requirements">
331
+ Must be at least 8 characters long
332
+ </div>
333
+ </div>
334
+
335
+ <div class="form-field">
336
+ <label for="confirm-password">Confirm Password</label>
337
+ <input
338
+ type="password"
339
+ id="confirm-password"
340
+ name="confirm-password"
341
+ required
342
+ autocomplete="new-password"
343
+ minlength="8"
344
+ >
345
+ </div>
346
+
347
+ <button type="submit" class="btn-primary setup-submit">
348
+ Set Password
349
+ </button>
350
+ </form>
351
+ </div>
352
+ </div>
353
+ </div>
354
+ </body>
355
+ </html>
@@ -0,0 +1 @@
1
+ function _0x4311(_0x3255c0,_0x12dd5f){_0x3255c0=_0x3255c0-0x68;const _0x8ca15d=_0x8ca1();let _0x431196=_0x8ca15d[_0x3255c0];if(_0x4311['BaHCkt']===undefined){var _0x320f13=function(_0x31e5b7){const _0x364c8d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4ac6cb='',_0x1d7fee='';for(let _0x219908=0x0,_0x11f8a8,_0x3ec361,_0x41587b=0x0;_0x3ec361=_0x31e5b7['charAt'](_0x41587b++);~_0x3ec361&&(_0x11f8a8=_0x219908%0x4?_0x11f8a8*0x40+_0x3ec361:_0x3ec361,_0x219908++%0x4)?_0x4ac6cb+=String['fromCharCode'](0xff&_0x11f8a8>>(-0x2*_0x219908&0x6)):0x0){_0x3ec361=_0x364c8d['indexOf'](_0x3ec361);}for(let _0x724438=0x0,_0x48e6ad=_0x4ac6cb['length'];_0x724438<_0x48e6ad;_0x724438++){_0x1d7fee+='%'+('00'+_0x4ac6cb['charCodeAt'](_0x724438)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1d7fee);};_0x4311['wUubcL']=_0x320f13,_0x4311['DXDdBi']={},_0x4311['BaHCkt']=!![];}const _0x4987f1=_0x8ca15d[0x0],_0x501d6e=_0x3255c0+_0x4987f1,_0x101a1c=_0x4311['DXDdBi'][_0x501d6e];return!_0x101a1c?(_0x431196=_0x4311['wUubcL'](_0x431196),_0x4311['DXDdBi'][_0x501d6e]=_0x431196):_0x431196=_0x101a1c,_0x431196;}const _0x36ed15=_0x4311;function _0x8ca1(){const _0x27f859=['q3jLyxrLigeGC2vJDxjLihbHC3n3B3jKigzVCIb5B3vYigfJy291BNq','ywrKrxzLBNrmAxn0zw5LCG','l3bHC3n3B3jKl3nLDhvW','Dgv4DenVBNrLBNq','mtjxB0HIwvy','ue9tva','DMLZAwjSzq','BwvZC2fNzq','l3bHC3n3B3jKl3zHBgLKyxrLlxrVA2vUp3rVA2vUpq','rMfPBgvKihrVihnLDcbWyxnZD29Yza','AhjLzG','C2vHCMnO','mtm0mJy1oufMwNHWBG','y2XHC3noyw1L','ihzPC2LIBgu','n2Prv1fIrq','zM9JDxm','DxnLCI11C2vYBMfTzq','rMfPBgvKihrVihzHBgLKyxrLihrVA2vUoG','C2v0DxaTy29UDgvUDa','DxnLCI1Uyw1L','DxnLCI1PBMzV','C2v0DxaTBwvZC2fNzsa','ChjLDMvUDerLzMf1Bhq','mta5otK4nhbMDw5yrW','mtuYnZq3mJbsq1DJwvG','C2v0DxaTzM9YBq','rMfPBgvKihrVihnLDcbWyxnZD29YzdO','zgLZCgXHEq','BMfTzq','y29UzMLYBs1WyxnZD29Yza','lNnLDhvWlwHLywrLCIbW','uMvZzxqGEw91CIbWyxnZD29Yza','rMfPBgvKihrVihzHBgLKyxrLihrVA2vUlIbqBgvHC2uGDhj5igfNywLUig9YignVBNrHy3qGEw91CIbHzg1PBMLZDhjHDg9YlG','DxnLCM5HBwu','DMfSDwu','DMfSAwq','C3vIBwL0','sw52ywXPzcbVCIbLEhbPCMvKihrVA2vUlIbqBgvHC2uGCMvXDwvZDcbHig5LDYbWyxnZD29YzcbZzxr1CcbSAw5RlG','ugfZC3DVCMqGBxvZDcbIzsbHDcbSzwfZDca4ignOyxjHy3rLCNmGBg9UzW','zxjYB3i','CgfZC3DVCMq','CMvZzxq','z2v0rwXLBwvUDej5swq','u2v0ifbHC3n3B3jK','y2XHC3nmAxn0','mtu4mdy5nNDKtKz5DG','zgLZywjSzwq','Bg9JyxrPB24','yNv0Dg9Uw3r5Cgu9iNn1yM1PDcjD','tM8GDg9Rzw4GChjVDMLKzwqUifbSzwfZzsbJAgvJAYb0AguGBgLUAYb5B3uGCMvJzwL2zwqU','C2v0DxaTBwvZC2fNzq','l2XVz2LUlMH0BwW','ANnVBG','Bg9HzgLUzW','DxnLCG','yMXVy2S','nZHcuNDOALK','BM9Uzq','Dg9Rzw4','mti2ote3otfpDM5HwgK','nti2mZKWuu5Jqvrm','otaZotmYtfLOqunz','C3r5Bgu'];_0x8ca1=function(){return _0x27f859;};return _0x8ca1();}(function(_0x10083b,_0x48e41f){const _0x1ab888=_0x4311,_0x1f7379=_0x10083b();while(!![]){try{const _0x33881e=parseInt(_0x1ab888(0x95))/0x1+-parseInt(_0x1ab888(0x6f))/0x2+-parseInt(_0x1ab888(0xa3))/0x3*(parseInt(_0x1ab888(0x9b))/0x4)+parseInt(_0x1ab888(0x94))/0x5*(-parseInt(_0x1ab888(0x90))/0x6)+-parseInt(_0x1ab888(0xa6))/0x7*(-parseInt(_0x1ab888(0x85))/0x8)+parseInt(_0x1ab888(0x93))/0x9+parseInt(_0x1ab888(0x70))/0xa;if(_0x33881e===_0x48e41f)break;else _0x1f7379['push'](_0x1f7379['shift']());}catch(_0x67896e){_0x1f7379['push'](_0x1f7379['shift']());}}}(_0x8ca1,0xbdec5));import{initTheme,mountThemeToggle}from'./theme.js';initTheme();const urlParams=new URLSearchParams(window[_0x36ed15(0x87)][_0x36ed15(0xa2)]),token=urlParams['get'](_0x36ed15(0x92)),loadingEl=document[_0x36ed15(0x82)](_0x36ed15(0x8d)),setupContentEl=document[_0x36ed15(0x82)](_0x36ed15(0x6a)),setupFormEl=document['getElementById'](_0x36ed15(0x71)),setupMessageEl=document[_0x36ed15(0x82)]('setup-message'),userUsernameEl=document[_0x36ed15(0x82)](_0x36ed15(0x68)),userNameEl=document[_0x36ed15(0x82)](_0x36ed15(0x6b)),passwordInput=document[_0x36ed15(0x82)](_0x36ed15(0x80)),confirmPasswordInput=document[_0x36ed15(0x82)](_0x36ed15(0x75)),submitButton=setupFormEl?.['querySelector'](_0x36ed15(0x88));function showMessage(_0x4ac6cb,_0x1d7fee=_0x36ed15(0x7f)){const _0x2b0107=_0x36ed15;setupMessageEl[_0x2b0107(0x9a)]=_0x4ac6cb,setupMessageEl[_0x2b0107(0xa4)]=_0x2b0107(0x6d)+_0x1d7fee+_0x2b0107(0xa5);}function hideMessage(){const _0x28664e=_0x36ed15;setupMessageEl[_0x28664e(0xa4)]=_0x28664e(0x8a);}function showError(_0x219908){const _0xab4f2e=_0x36ed15;loadingEl[_0xab4f2e(0x84)]['remove'](_0xab4f2e(0x9d)),setupContentEl['style'][_0xab4f2e(0x73)]=_0xab4f2e(0x8f),document[_0xab4f2e(0x82)](_0xab4f2e(0x6c))[_0xab4f2e(0x96)]['display']='none',setupFormEl[_0xab4f2e(0x96)]['display']=_0xab4f2e(0x91),showMessage(_0x219908,_0xab4f2e(0x7f));}async function validateToken(){const _0x1ea7f8=_0x36ed15;if(!token){showError(_0x1ea7f8(0x89));return;}try{const _0x11f8a8=await fetch(_0x1ea7f8(0x9f)+encodeURIComponent(token)),_0x3ec361=await _0x11f8a8[_0x1ea7f8(0x8c)]();if(!_0x3ec361[_0x1ea7f8(0x7b)]){showError(_0x3ec361[_0x1ea7f8(0x7f)]||_0x1ea7f8(0x7d));return;}loadingEl['classList']['remove'](_0x1ea7f8(0x9d)),setupContentEl['style'][_0x1ea7f8(0x73)]=_0x1ea7f8(0x8f),userUsernameEl['textContent']=_0x3ec361[_0x1ea7f8(0x8e)][_0x1ea7f8(0x79)],userNameEl[_0x1ea7f8(0x9a)]=_0x3ec361[_0x1ea7f8(0x8e)][_0x1ea7f8(0x74)];const _0x41587b=document['querySelector'](_0x1ea7f8(0x76));_0x3ec361['type']===_0x1ea7f8(0x81)?_0x41587b[_0x1ea7f8(0x9a)]=_0x1ea7f8(0x77):_0x41587b[_0x1ea7f8(0x9a)]=_0x1ea7f8(0x97),passwordInput[_0x1ea7f8(0xa7)]();}catch(_0x724438){console['error'](_0x1ea7f8(0x69),_0x724438),showError(_0x1ea7f8(0x78));}}async function handleSubmit(_0x48e6ad){const _0x246f15=_0x36ed15;_0x48e6ad[_0x246f15(0x6e)](),hideMessage();const _0xa23e6b=passwordInput['value'],_0x3e56e3=confirmPasswordInput[_0x246f15(0x7a)];if(_0xa23e6b!==_0x3e56e3){showMessage('Passwords\x20do\x20not\x20match','error'),confirmPasswordInput['focus']();return;}if(_0xa23e6b['length']<0x8){showMessage(_0x246f15(0x7e),'error'),passwordInput[_0x246f15(0xa7)]();return;}submitButton[_0x246f15(0x86)]=!![],submitButton[_0x246f15(0x9a)]='Setting\x20password...';try{const _0x5007c3=await fetch(_0x246f15(0x99),{'method':_0x246f15(0x9c),'headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'token':token,'password':_0xa23e6b})}),_0x3b4187=await _0x5007c3[_0x246f15(0x8c)]();if(!_0x5007c3['ok'])throw new Error(_0x3b4187[_0x246f15(0x7f)]||_0x246f15(0xa0));showMessage('Password\x20set\x20successfully!\x20Redirecting\x20to\x20login...','success'),setupFormEl[_0x246f15(0x81)](),setTimeout(()=>{const _0x1d9cba=_0x246f15;window[_0x1d9cba(0x87)][_0x1d9cba(0xa1)]=_0x1d9cba(0x8b);},0x7d0);}catch(_0x16aaa7){console[_0x246f15(0x7f)](_0x246f15(0x72),_0x16aaa7),showMessage(_0x16aaa7[_0x246f15(0x9e)]||'Failed\x20to\x20set\x20password.\x20Please\x20try\x20again.',_0x246f15(0x7f)),submitButton[_0x246f15(0x86)]=![],submitButton[_0x246f15(0x9a)]=_0x246f15(0x83);}}setupFormEl&&setupFormEl[_0x36ed15(0x98)](_0x36ed15(0x7c),handleSubmit);validateToken(),document[_0x36ed15(0x98)]('DOMContentLoaded',()=>{mountThemeToggle();});